/*
Theme Name: ChildTheme
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/


/* ------ fonts ------- */

/* font sizing and new classes */
.display-1 {
    font-size: clamp(55px, 1em + 7vw, 160px) !important;
	display: block;
}

.display-2 {
    font-size: clamp(55px, 1em + 5vw, 130px) !important;
	display: block;
}

.display-3 {
	font-size: clamp(45px, 1em + 4vw, 100px) !important;
	display: block;
 }
 
.display-4{
	font-size: clamp(40px, 1em + 3vw, 80px) !important;
	display: block;
}

.banner .res-text{
	font-size: 100% !important;
}

h1, h2, h3, h4, h5{
	margin-bottom: 15px;
}

h3, h4, h5, h6{
	line-height: 1.5;
}

h1{
	font-size: clamp(2.5em, 1em + 5vw, 3.5em);
}

h2{
	font-size: clamp(2.2em, 1em + 2vw, 2.8em);
}

h3{
	font-size: clamp(1.6em, 1em + 1.7vw, 2.2em);
}

h4{
	font-size: clamp(1.3em, 1em + 1.5vw, 1.7em);
}

h5{
	font-size: clamp(1.1em, 1em + .8vw, 1.4em);
}

h6{
	font-size: clamp(.9em, 1em + 0.3vw, 1.15em);
}

p, a span, ul, ol{
	font-size: clamp(.9em, 1em + .3vw, 1.15em);
}

p.lead{
	font-size: clamp(1.1em, 1em + .3vw, 1.3em);
}

.small{
	font-size: clamp(.7em, .8em + .3vw, 1em);
}

/* ------ Google Maps ------- */
/* adjust padding to change the height of maps */

.google-maps {
  position: relative;
  padding-bottom: 64%;
  height: 0;
  width:  100%;
  overflow: hidden;
}

.google-maps iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}


/* ------ Flatsome icons ------- */
/* change the color of bullets. */
ul li.bullet-checkmark:before, ul li.bullet-arrow:before, ul li.bullet-star:before{
	color: var(--fs-color-primary);
}

/*change color of checkmarks on dark backgrounds and hover */
.dark ul li.bullet-checkmark:before, .dark ul li.bullet-arrow:before, .dark ul li.bullet-star:before,
.clickable-card .col-inner:hover ul li.bullet-checkmark:before, .clickable-card .col-inner:hover ul li.bullet-arrow:before, .clickable-card .col-inner:hover ul li.bullet-star:before{
	color: white;
}

/* ------ Gravity Forms ------- */
.gform_wrapper legend{
    text-transform: none !important; 	
}

.gform_wrapper label{
    color: inherit;
}

.gform_wrapper .ginput_complex label{
	font-size: .8em !important;
}

.full-width .gform_button.button{
    width: 100%
}

.gform_wrapper.gravity-theme .gfield-choice-input{
	margin-bottom: 0;
}

.gform_wrapper .gfield_required{
	color: var(--fs-color-primary) !important;
}

.gform_button.button{
	border-radius: 5px;
}

/* horizontal forms */
.gform_wrapper .gf_simple_horizontal .gform_body{
	width: 100%;
	max-width: unset;
}

.gform_wrapper .gf_simple_horizontal .gform_button.button{
	margin: 0;
}

/* ------ Buttons ------- */
/* align buttons at bottom of cards (must be set to equal) */
.align-buttons:not(.push-down) .button, .push-down .col-inner div:nth-of-type(2){
	margin-top: auto;
}

.align-buttons .col-inner{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.align-buttons .text-center.col-inner{
	align-items: center;
}

.align-buttons .col-inner div{
	width: 100%;
}

/* for nested row buttons */

.align-buttons .col-inner > .row{
	height: 100%;
}

.align-buttons .row .col{
	padding-bottom: 0;
}

.align-buttons .row .col-inner{
	display: flex;
	height: 100%;
}

/* fix spacing on buttons */
.button:not(.circle):not(.is-link){
	padding: .5em 1.5em; 
	line-height: 1.6 !important;
}

.button:not(.icon) {
    display: inline-flex;
	flex-direction: row;
	justify-content: center;
	gap: .5em;
	text-align: left;
}

.button i{
	line-height: 2 !important; 
}

.button.is-underline{
	text-align: center;
}

@media (min-width: 850px){
	.center-lg-left-md .col-inner{
		text-align: center;
	}
}

/* fix social icons */
.social-icons .button.circle.icon{
	padding: 0;
}

.social-icons .button.circle.icon i{
	position: absolute;
	left: 50%;
	top: 50%; 
	transform: translate(-50%, -50%);
}

/* white button text color */
.button.white:not(.is-outline, .is-link, .is-underline), .button.white.is-outline:hover{
	color: var(--fs-color-primary) !important;
}

/* banner fix */
.banner a.fill{
	z-index: 11;
}

/* horizontally align icons */

.align-icons{
    align-items: center;
}


/* ------ Fill image height ------- */

.fill img, .fill .img-inner{
	height: 100%;
}

.fill img{
	object-fit: cover;
}

.show-radius .col-inner{
	overflow: hidden;
}

/* ------ Clickable Cards ------- */

/* position the a tag */
.clickable-card .clickable-card-link{
	position: absolute;
	display: block;
	width: 100%; 
	height: 100%;
	top: 0; 
	left: 0;
	z-index: 99;
}

.clickable-card .clickable-card-link span{
	font-size: 0;
	height: 0;
}

.clickable-card .clickable-card-link i{
	display: none;
}

/* hover effects */ 
.clickable-card > .col-inner, .clickable-card > .col-inner img{
	transition: .2s ease-in-out;
}

.clickable-card > .col-inner:hover{
	background-color: var(--fs-color-primary) !important; /* on hover, change your card color to a new color */
}

.clickable-card > .col-inner:hover *{
	color: white; /* make all the text inside your hovered card white */
}

.clickable-card > .col-inner:hover img{
	transform: scale(1.1); /* if you have an image in your card, make it grow on card hover */
}

/* ------ Flatsome Fixes ------- */
/* fix flatsome overlay error */
.overlay{
	width: calc(100% + 2px) !important;
}

/* fix for sliders with row align middle */
.flickity-slider .align-middle{
	align-self: unset !important;
}

/* fix alignment on absolute footer */
@media (min-width: 850px){
	.footer-secondary{
		padding: 0px !important;
	}
}


/* icon box fixes */
/* icon position on mobile for left aligned */
@media (max-width: 549px){
	.icon-box-left:not(.remove-wrap){
		display: block;
	}

	.icon-box-left:not(.remove-wrap) .has-icon-bg .icon{
		position: unset;
	}

	.icon-box-left:not(.remove-wrap) .icon-box-img+.icon-box-text {
		padding-left: 0px;
		padding-top: 15px;
	}
}

/* turn off hover for non-clickable elements */
.icon-box:hover:not(a .icon-box) .has-icon-bg .icon .icon-inner{
	background-color: transparent;
}

.icon-box:hover:not(a .icon-box) .has-icon-bg i, .icon-box:hover:not(a .icon-box) .has-icon-bg svg, .icon-box:hover:not(a .icon-box) .has-icon-bg svg path{
	fill: currentColor;
}

.dark a .icon-box:hover .has-icon-bg i, .dark a .icon-box:hover .has-icon-bg svg, .dark a .icon-box:hover .has-icon-bg svg path{
	fill: var(--fs-color-primary);
}

/* ------ Adjust Flatsome sizing ------- */
/* limit size of containers on mobile */
@media only screen and (max-width: 1200px){
	.container-width, .full-width .ubermenu-nav, .container:not(.banner-layers), .row:not(.row-collapse){
		width: calc(100% - 30px);
	}
}

/* adjust space on sides on >tablet */
@media screen and (min-width: 550px){
	
	/* header */
	.container{
		padding-left: 60px; 
		padding-right: 60px;
	}

	/* rows */
	.row:not(.row-full-width):not(.row .row):not(.row-collapse){
		padding-left: 45px;
		padding-right: 45px;
	}
}

/* break to 6 or 12 columns at 1100px instead of 850px */
@media (max-width: 1100px) and (min-width: 850px){
	.break-early-6{
		flex-basis: 50%;
        max-width: 50%;
	}

	.break-early-12{
		flex-basis: 100%;
        max-width: 100%;
	}
}

/* ------ Add gradient overlays ------- */
/* half overlay */
.half-overlay * {
	z-index: 2;
}

.half-overlay .img-inner:before, .half-overlay .banner-bg:before{
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, .35) 30%, rgba(0,0,0,0) 100%); /*customize gradient here*/
	z-index: 3;
}

@media (min-width: 850px){
	.half-overlay-left .section-bg-overlay{
		background-color: transparent !important;
		background: linear-gradient(90deg, rgba(0, 0, 0, .5) 0%, rgba(0,0,0,0) 100%); /*customize gradient here*/
	}
	
	.half-overlay-right .section-bg-overlay{
		background-color: transparent !important;
		background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0, 0, 0, .5) 100%); /*customize gradient here*/
	}
}


/* ------ Divided row fixes ------- */
/* divided borders on rows */
.row.row-divided > .col{
	padding-bottom: 0px;
}

@media (min-width: 850px){
	/* divided rows - add spacing for desktop */
	.row-divided .col-inner{
		padding: 30px;
	}
	
	.row.row-divided{
		padding-right: 15px !important;
		padding-left: 15px !important;
	}
}

@media (max-width: 849px){
	/* divided rows - add border and adjust spacing for mobile */
	.row-divided .col-inner{
		padding: 30px 0px 15px;
	}
	
	.row-divided>.col+.col:not(.large-12){
		border-top: 1px solid #ececec;
	}
}

/* Solid & Dashed borders on rows */
.row-dashed .col-inner, .row-solid .col-inner{
	padding: 30px;
}

.row.row-collapse.row-dashed .col-inner, .row.row-collapse.row-solid .col-inner{
	padding: 0px;
}

.row.row-small.row-dashed .col-inner, .row.row-small.row-solid .col-inner{
	padding: 15px;
}

.row-collapse.row-solid, .row-collapse.row-dashed{
	padding-right: 30px !important;
	padding-left: 30px !important;
}

@media (min-width: 550px){
	.row.row-large.row-dashed .col-inner, .row.row-large.row-solid .col-inner{
		padding: 50px;
	}

	.row.row-solid, .row.row-dashed{
		padding-right: 30px !important;
		padding-left: 30px !important;
	}

	.row-collapse.row-solid, .row-collapse.row-dashed{
		padding-right: 75px !important;
		padding-left: 75px !important;
	}
}

@media (max-width: 549px){
	.row-dashed .col-inner, .row-solid .col-inner{
		padding: 30px 15px;
	}
}

/* REMOVE LEFT BORDER on the first column of each row */
.row-solid .col.row-start:before, .row-dashed .col.row-start:before {
    border-left: none !important;
}

/* REMOVE BOTTOM BORDER on the last row */
.row-solid .col.last-row:after, .row-dashed .col.last-row:after {
    border-bottom: none !important;
}

/* ------ Classes Unique to this site ------- */

/* --- even sliders ---- */

.even-slider .slider-style-container .flickity-slider>:not(.is-selected){
	opacity: 1;
}

.even-slider .flickity-slider > div{
	transform: scale(.95);
}

.even-slider .flickity-slider > div .col-inner{
	min-height: 370px; /* adapt height to your slider */
}

/* gradient button */

.button.success:not(.is-outline):not(.is-link){
	border: none;
	overflow: hidden;
}

.button.success:not(.is-outline):not(.is-link) span{
	position: relative;
}

.button.success:not(.is-outline):not(.is-link):before{
	content: '';
	width: 150%;
	height: 100%;
	display: block;
	background: #F8541F;
	background: linear-gradient(90deg,rgba(248, 84, 31, 1) 0%, rgba(255, 192, 0, 1) 100%);
	position: absolute;
	top: 0;
	left: 0%;
	transition: .2s ease-in;
}

.button.success:not(.is-outline):not(.is-link):hover:before{
	animation: slide infinite 3s;
}

@keyframes slide{
	0%{
		left: 0%;
	}
	50%{
		left: -50%;
	}
	100%{
		left: 0%
	}
}

.gradient-text {
  background: linear-gradient(90deg,rgba(53, 33, 134, 1) 0%, rgba(41, 155, 216, 1) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* custom shadows */
.box-shadow, .box-shadow-2, .box-shadow-2-hover:hover, .row-box-shadow-2 .col-inner, .row-box-shadow-2-hover .col-inner:hover{
	box-shadow: rgb(165 160 149 / 20%) 0px 8px 24px;
}

/* customized icons */
.stylized-icon svg{
	padding: 0;
}

.stylized-icon .icon-inner{
	position: relative;
	padding: 7px;
	line-height: 0;
}

.stylized-icon .icon-inner:before{
	content: '';
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: currentcolor;
	z-index: 0;
	opacity: .1;
	border-radius: 10px;
}

/* arrow process section */

.process-arrows > .col:not(:last-of-type):after{
	content: url('/wp-content/uploads/2025/12/circle-arrow-right-solid-full.svg');
	position: absolute;
	display: block;
	top: 35%;
	right: -25px;
	width: 50px;
	z-index: 99;
}

@media (max-width: 1024px){
	.process-arrows > .col:not(:last-of-type):after{
		right: unset;
		top: unset;
		bottom: -15px;
		left: 50%; 
		transform: translateX(-50%) rotate(90deg)
	}
}

/* screen size fixes */

@media (min-width: 1600px){
	.xl-col-padding{
		padding-left: 90px;
	}
}

@media screen and (max-width: 1250px){
	
	.header .flex-right.show-for-medium{
		display: block !important;		
	}

	.header .flex-right.hide-for-medium, .header .flex-left.hide-for-medium{
		display: none !important;		
	}
}
/* ---- footer menu ---- */

footer .ux-menu-link__link{
	font-size: .9em;
}

footer .ux-menu-link__link:hover{
	opacity: .8;
	margin-left: 3px;
}

/* footer links */

footer h3, .small-title h3{
	font-size: 1em;
}


/* ---- super menu ---- */

header .sub-menu .ux-menu.ux-menu--divider-solid  .ux-menu-link__link {
	border: none !important;
	font-size: .95em;
	padding: 7px 10px;
	border-radius: 10px;
}

header .sub-menu .ux-menu.ux-menu--divider-solid  .ux-menu-link__link:hover{
	background-color: var(--fs-color-primary);
	color: white;
}

.off-canvas-left.dark .mfp-content, .off-canvas-right.dark .mfp-content {
    background-color: #24175b !important;
}

.mobile-sidebar-levels-2 .nav-slide>li>.sub-menu>li:not(.nav-slide-header)>a, .mobile-sidebar-levels-2 .nav-slide>li>ul.children>li:not(.nav-slide-header)>a{
	color: rgba(255, 255, 255, .8);
}