/*
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, .mimic-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, .eyebrow *, .eyebrow{
	font-size: clamp(.9em, 1em + 0.3vw, 1.15em);
}

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

:is(p, ul, ol) :is(p, a span, ul, ol) {
  font-size: 1em; 
}

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

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

body{
	font-family: proxima-nova, sans-serif!important;
}

.nav > li > a, .mobile-sidebar-levels-2 .nav > li > ul > li > a {
	font-family: proxima-nova, sans-serif!important;
}

h1,h2,h3,h4,h5,h6, .heading-font, .off-canvas-center .nav-sidebar.nav-vertical > li > a{
	font-family: ivyora-display, serif!important;
}

.alt-font{
	font-family: ivyora-display, serif!important;
	font-style: italic!important;
}

/* ------ 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):not(.ux-search-submit){
	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:not(.icon-play){
	line-height: 2 !important; 
}

.button:not(.open-video) i{
	line-height: 2 !important; 
}

@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 */
}

.clickable-card:hover .image-overlay-add .overlay{
	opacity: 1;
}

.clickable-card > .col-inner:hover .is-divider {
	background-color:#fff!important;
}

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

.clickable-card.hover-secondary > .col-inner:hover *{
	color: #0b3f53; 
}

.clickable-card.hover-secondary > .col-inner:hover .is-divider {
	background-color:#0b3f53!important;
}

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



/* ------ 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 1024px instead of 850px */
@media (max-width: 1024px) 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:not(.row .row-divided .col-inner):not(.row-divided .row .col-inner) {
		padding: 30px;
	}
	
	.row.row-divided:not(.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.medium-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;
	}

	.row-divided>.col+.col.small-12{
		border-top: 1px solid #ececec;
	}
}

/* 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 ------------------------ */


/* -------------- animations --------------  */

/* initialize animations */ 
html:not([ng-app="uxBuilder"]) .fadecard, html:not([ng-app="uxBuilder"]) .slide-in {
	visibility: hidden;
	will-change: visibility;
}

/* Mobile (Default): Flows inline like normal text */
.desktop-break {
    display: inline; 
}

/* Desktop (768px and up): Forces the text to drop to a new line */
@media (min-width: 850px) {
    .desktop-break {
        display: block;
    }
}


/*aniamtion for stats*/
/* 1. Define the growing animation globally */
@keyframes growBarFromBottom {
  0% {
    -webkit-clip-path: inset(100% 0 0 0);
    clip-path: inset(100% 0 0 0); /* 100% hidden from the top */
  }
  100% {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0); /* Fully revealed */
  }
}

/* --- ONLY APPLY ON DESKTOP (850px and wider) --- */
@media (min-width: 850px) {
  
  /* 2. Set the initial hidden state */
  .barstats .col-inner {
    -webkit-clip-path: inset(100% 0 0 0);
    clip-path: inset(100% 0 0 0);
  }

  /* 3. Run the animation when the 'start-animating' class is added via JS */
  .barstats.start-animating .col-inner {
    animation: growBarFromBottom 1.2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
  }

  /* 4. Stagger the delays using your specific color classes */
  .redbar .col-inner    { animation-delay: 0.2s; }
  .yellowbar .col-inner { animation-delay: 0.4s; }
  .greenbar .col-inner  { animation-delay: 0.6s; }
  .tealbar .col-inner   { animation-delay: 0.8s; }
  .bluebar .col-inner   { animation-delay: 1.0s; }
  
}


/* -------------- footer --------------  */
.absolute-footer {
		display:none;
}

/*cta footer*/
.cta-container {
		position:relative;
}

.textured-bg {
    border-radius: 10px;
    overflow: hidden;
}

.textured-bg:before {
	content: '';
	 position: absolute;
	 top: 0;
	 left: 0;
 	 width: 100%;
	 height: 8px; 
	 z-index: 1;
	 background: url("/wp-content/uploads/2026/08/accent-top-bar.svg") 50% 50% / cover;
}


/* -------------- buttons --------------  */
.dark a.button.secondary:not(.is-outline, .is-link) {
	color: #083d52!important;
}

a.button.secondary:not(.is-outline, .is-link) {
	color: #083d52!important;
}

.is-outline span{
	color:#d9eded!important;
}
.is-outline:hover span{
	color:#083d52!important;
}

/* -------------- image cards --------------  */
/*image cards sidebar*/
.img-card-container .img-inner{
	overflow: hidden;
}

.img-card-container .img-inner:before{
	 content: '';
	 position: absolute;
	 top: 0;
	 left: 0;
	 width: 3%;
	 height: 100%;
	 z-index: 1;
	 background: url("/wp-content/uploads/2026/08/accent-sidebar-01.svg") 50% 50% / cover;
	transition: .2s ease-in-out;
 }

.clickable-card:hover .img-card-container .img-inner:before{
	transform: scale(1.1);
}



/* -------------- scribble accents --------------  */
.circle-accent {
  position: relative;
  display: inline-block;
  white-space: nowrap; /* Prevents the two words from stacking on small screens */
  z-index: 1; 
}

.circle-accent::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 125%; 
  height: 150%; 
  transform: translate(-50%, -50%); 
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 45' preserveAspectRatio='none'%3E%3Cpath d='M10,25 C15,10 50,5 90,10 C110,12 115,25 105,35 C85,45 25,45 10,30 C5,25 10,15 20,12' fill='none' stroke='%2385b8b5' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  z-index: -1; 
}

/* underline*/
.underline {
  position: relative;
  display: inline-block;
  white-space: nowrap; 
  z-index: 1; 
}

.underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.1em; 
  width: 100%;
  height: 0.30em; /* Keeps the thickness proportional to the font size */
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 15' preserveAspectRatio='none'%3E%3Cpath d='M2,10 C30,3 70,12 98,6' fill='none' stroke='%2385b8b5' stroke-width='8' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  z-index: -1; 
}

/* underline light*/
.underline-light {
  position: relative;
  display: inline-block;
  white-space: nowrap; 
  z-index: 1; 
}

.underline-light::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.1em; 
  width: 100%;
  height: 0.30em; /* Keeps the thickness proportional to the font size */
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 15' preserveAspectRatio='none'%3E%3Cpath d='M2,10 C30,3 70,12 98,6' fill='none' stroke='%23a3d3d0' stroke-width='8' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  z-index: -1; 
}



/* -------------- image frames --------------  */
.img-accent-container {
		position:relative;
}

.accent-round {
		position:absolute;
		top:0;
		left:0;
}


/* Make the column the positioning anchor */
.accent-img {
	position: relative!important;
}

.accent-img::after {
	content: ""; 
	display: block;
	position: absolute;
	left: -40px; 
	top: 50%;
	transform: translateY(-50%);
	z-index: 99;
	width: 110px; 
	height: 150px; 
	background-image: url("/wp-content/uploads/2026/08/accent-img-bar.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;
}


/* -------------- other elements --------------  */
/* customize accordions */

.accordion-title{
	border: none;
	border-radius: 5px;
	transition: .2s ease-in-out !important;
	padding: 20px 40px;
	font-weight: bold;
}

.accordion-title.active, .accordion-title:hover{
	background-color: #083d52;
	color: #fab75f;
}

.accordion-item{
	background-color: #fef4e7;
	margin-bottom: 15px;
	border-radius: 5px;
}

.accordion-inner{
	background-color: #fef4e7;
	border-radius: 0px 0px 5px 5px;
}

.accordion .toggle{
	left: unset;
	right: 0;
}

.toggle .icon-angle-down{
	width: 30px;
	height: 30px;
}

.toggle .icon-angle-down:before{
	content: '';
	display: block;
	height: 20px;
	width: 2px;
	background-color: var(--fs-color-primary);
	border-radius: 2px;
	margin: 5px auto;
	transition: transform .3s;
}

.toggle .icon-angle-down:after{
	content: '';
	display: block;
	position: absolute;
	top: 14px;
	left: 5px;
	height: 2px;
	width: 20px;
	background-color: var(--fs-color-primary);
	border-radius: 2px;
}
 
.accordion-title:hover .toggle .icon-angle-down:after, .accordion-title:hover .icon-angle-down:before,
.accordion-title.active .toggle .icon-angle-down:after, .accordion-title.active .icon-angle-down:before{
	background-color: var(--fs-color-secondary);
}

.accordion .toggle{
	top: .9em;
	right: 10px
}

.active>.toggle{
	transform: unset;
}

.active>.toggle .icon-angle-down:before{
	transform: rotate(90deg);
}

/*mobile menu*/
.off-canvas-right.dark .mfp-content {
    background-color: #08242f;
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage.percentbar_blue{
    background-color: #4d7b93!important;
}

button {
	border-radius:99px!important;
}

/*dropdown*/
.nav-dropdown-simple .nav-column li>a:hover,.nav-dropdown.nav-dropdown-simple>li>a:hover {
    background-color: rgba(250,183,95,.15)
}

.blog-cards > .col > .col-inner{
	background-color: #fef4e7!important;
	border-radius: 5px;
}

.blog-cards img {
	border-radius: 10px 10px 0px 0px;
}