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

/*body{
	font-family: "ballinger", sans-serif !important;
	font-weight: 400 !important
	font-style: normal;
}

.nav > li > a, .mobile-sidebar-levels-2 .nav > li > ul > li > a{
	font-family: "ballinger", sans-serif !important;
	font-weight: 700 !important;
	font-style: normal;
}

h1,h2,h3,h4,h5,h6 .heading-font, .off-canvas-center .nav-sidebar.nav-vertical > li > a{
	font-family: "ballinger", sans-serif !important;
	font-weight: 200 !important;
	font-style: normal;
}*/

/* 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{
	margin-bottom: 15px;
	text-transform: uppercase;
}

h3, h4, h5, h6{
	line-height: 1.5;
	letter-spacing: 0.02em;
	font-weight: 700 !important;
	margin-bottom: 10px;
	text-transform: uppercase;
}

.alt-font.mimic-h2{
	font-weight: 200 !important;
	letter-spacing: 0;
}

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

h2, .mimic-h2, .entry-title{
	font-size: clamp(2.2em, 1em + 2vw, 3em);
}

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

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

h5, .eyebrow{
	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);
}

h2 strong{
	font-weight: 600 !important;
}

.subhead{
	font-weight: 700 !important;
	opacity: 1;
	letter-spacing: .1em;
}

h3.lead, h4.lead, h5.lead{
	font-weight: 300 !important;
	text-transform: none !important;
	line-height: 1.2em;
}

.scale-down{
	font-size: 40%;
	font-weight: bold;
	display: inline-block; !important;
	margin-top: .5em;
	display: block;
}

/* ------ 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 color of checkmarks from flatsome's green */
.dark ul li.bullet-checkmark:before, .dark ul li.bullet-arrow:before, .dark ul li.bullet-star:before{
	color: white;
}

/* change the color of bullets. Set your colors at the top */
ul li.bullet-checkmark:before, ul li.bullet-arrow:before, ul li.bullet-star:before{
	color: var(--fs-color-primary);
}

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

@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 .img-inner .overlay{
	opacity: 1;
}

.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{
		display: block;
	}

	.icon-box-left .has-icon-bg .icon{
		position: unset;
	}

	.icon-box-left .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){
		padding-left: 45px;
		padding-right: 45px;
	}
}

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

	.break-early-12{
		flex-basis: 100%;
        max-width: 100%;
	}
	
	.be-remove-border:before {
		border-left: none !important;
	}

	.be-add-border:before{
		border-left: 1px dashed #ddd !important;
	}
}

/* ------ 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, 3, 24, .8) 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, 3, 24, .8) 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-solid > .col:first-child:before, .row-dashed > .col:first-child:before {
	border-left: none;
}

.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;
	}
}


@media (min-width: 550px) and (max-width: 849px){
	.row-solid > .col.medium-12:before, .row-solid > .col.medium-6:nth-child(2n+1):before, .row-solid > .col.medium-5:nth-child(2n+1):before, .row-solid > .col.medium-4:nth-child(3n+1):before, .row-solid > .col.medium-3:nth-child(4n+1):before, .row-solid > .col.medium-2:nth-child(6n+1):before,  .row-solid > .col.medium-2:nth-child(12n+1):before, 
	.row-dashed > .col.medium-12:before, .row-dashed > .col.medium-6:nth-child(2n+1):before, .row-dashed > .col.medium-5:nth-child(2n+1):before, .row-dashed > .col.medium-4:nth-child(3n+1):before, .row-dashed > .col.medium-3:nth-child(4n+1):before, .row-dashed > .col.medium-2:nth-child(6n+1):before, .row-dashed > .col.medium-2:nth-child(12n+1):before, 
	.remove-border-md:before 
	{
		border-left: none;
	}

	.add-border-md:before{
		border-left: 1px dashed #ddd !important;
	}

	.row-solid .add-border-md:before{
		border-left-style: solid
	}
}

@media (min-width: 850px){
	.row-solid > .col.large-12:before, .row-solid > .col.large-6:nth-child(2n+1):before, .row-solid > .col.large-5:nth-child(2n+1):before, .row-solid > .col.large-4:nth-child(3n+1):before, .row-solid > .col.large-3:nth-child(4n+1):before, .row-solid > .col.large-2:nth-child(6n+1):before,  .row-solid > .col.large-2:nth-child(12n+1):before, 
	.row-dashed > .col.large-12:before, .row-dashed > .col.large-6:nth-child(2n+1):before, .row-dashed > .col.large-5:nth-child(2n+1):before, .row-dashed > .col.large-4:nth-child(3n+1):before, .row-dashed > .col.large-3:nth-child(4n+1):before, .row-dashed > .col.large-2:nth-child(6n+1):before, .row-dashed > .col.large-2:nth-child(12n+1):before, 
	.remove-border-lg.col:before 
	{
		border-left: none;
	}

	.add-border-lg:before{
		border-left: 1px dashed #ddd !important;
	}

	.row-solid .add-border-lg:before{
		border-left-style: solid !important;
	}
}

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

.rounded-10 .img-inner, .rounded-10, .rounded-10 .banner-bg{
	border-radius: 10px;
}


/* custom scrolling tabs */

.connect-scrollto .ux-menu-link__link{
	border-bottom-width: 0;
	margin-bottom: 15px;
	border-radius: 99px;
	text-transform: uppercase;
	
	font-weight: 500;
	padding: 15px 25px;
	background-color: white;
}

.connect-scrollto .ux-menu-link__link.active, .connect-scrollto .ux-menu-link__link:hover{
	background-color: #000318;
	color: #8dbe3e;
}

.scroll-to-bullets{
	display: none;
}

/* customize header and footer links */
#footer .ux-menu-title:not(:first-child){
	padding-top: 30px;
}

#footer .ux-menu-title{
	border-bottom: 1px solid #434959;
	margin-bottom: 15px !important;
}

#footer .ux-menu-link__link{
	font-size: .85em;
	opacity: .7;
	transition: .2s ease-in;
	min-height: 0 !important;
	padding-bottom: 0em !important;
}

#footer .ux-menu-link__link:hover, header  .ux-menu-link__link:hover{
	opacity: 1;
	padding-left: 3px;
	font-weight: 500;
}

header .sub-menu .section .row{
	margin: auto;
}

header .sub-menu .ux-menu-title{
	color: #9ea1af;
	padding-top: 15px;
	padding-bottom: 20px; 
}

header .sub-menu .ux-menu-link__link{
	font-size: .9em;
	font-weight: 500;
	transition: .2s ease-in;
	min-height: 0 !important;
	padding-bottom: 10px !important;
	line-height: 1.4;
}

header .sub-menu .ux-menu-link__link:hover{
	color: var(--fs-color-secondary) !important;
}

header .sub-menu .button .icon-angle-right{
	padding-left: 0px;
	transition: .2s ease-in;
}

header .sub-menu .button:hover .icon-angle-right{
	padding-left: 5px;
}

header .sub-menu .button .icon-angle-right:before{
	content: url('/wp-content/uploads/2025/09/arrow-right-long-light-full.svg');
	display: block;
	width: 25px;
}

/* reposition pattern card */
.position-bottom img{
	object-position: 50% 100%;
}

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


/*------ brand tabs ------*/

/* get rid of tab titles */
.brand-tabs .nav li span{
	font-size: 0;
}

/* get rid of borders */
.brand-tabs .nav-vertical+.tab-panels{
	border-left: none;
}

/* tab sizing and spacing */
.brand-tabs .nav li span{
	margin: auto;
	max-width: 100%;
	max-height: 55px;
	z-index: 2;
}

.brand-tabs .nav li{
	border: none;
	margin-bottom: 15px;
}

/* hover effects and colors */
.brand-tabs .nav li a{
	background-color: white;
	padding: 10px;
	position: relative;
	overflow: hidden;
}

.brand-tabs .nav li a:before{
	content: '';
	display: block;
	position: absolute;
	border-radius: 100px;
	top: 50%;
	left: 50%;
	width: 0%;
	height: 0%;
	z-index: 0;
	transition: .2s ease-in-out;
}

.brand-tabs .nav li a:hover:before, .brand-tabs .nav li.active a:before{
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.brand-tabs .nav li#tab-crothall a:before{
	background-color: #3a8ddd
}

.brand-tabs .nav li#tab-morrison a:before{
	background-color: #8ebe3f
}

.brand-tabs .nav li#tab-intelas a:before{
	background-color: #f6cf10
}

.brand-tabs .nav li#tab-touchpoint a:before{
	background-color: #3a8ddd
}

.brand-tabs .nav li a:hover span, .brand-tabs .nav li.active a span{
	filter: brightness(0) invert(1);
}

/* add logos */
.brand-tabs .nav li#tab-crothall span{
	content: url('/wp-content/uploads/2025/10/crothall.svg');
}

.brand-tabs .nav li#tab-morrison span{
	content: url('/wp-content/uploads/2025/10/morrison.svg');
}

.brand-tabs .nav li#tab-intelas span{
	content: url('/wp-content/uploads/2025/10/intelas.svg');
}

.brand-tabs .nav li#tab-touchpoint span{
	content: url('/wp-content/uploads/2025/10/touchpoint.svg');
}

/* prevent white background when hovering on other tabs */
.brand-tabs .nav:hover>li:not(:hover)>a:before{
	opacity: .5
}

/* ---- Custom simple Tabs ---- */

.custom-pills .nav {
	margin-bottom: 30px
}

.custom-pills .nav a{
	padding: 0px 20px;
	background-color: #e5f0d6;
	margin-right: 10px;
}

.custom-pills .nav .active a{
	background-color: var(--fs-color-secondary)
}

/*----- logo corner image frame -----*/

.corner-logo-left img{
	border-radius: 13% 0px 200px;
}

@media (max-width: 850px){
	.corner-logo-left img{
		border-radius: 17% 0px 100px;
	}
}

.corner-logo-left:before{
	content: url('/wp-content/uploads/2025/10/corner-logo.svg');
	left: 0;
}

.corner-logo-left.grey-bg:before{
	content: url('/wp-content/uploads/2026/01/corner-logo-grey.svg');
	left: 0;
}

.corner-logo-right:before{
	content: url('/wp-content/uploads/2025/12/corner-logo-right.svg');
	right: 0;
}

.corner-logo-left:before, .corner-logo-right:before{
	position: absolute;
	top: 0;
	z-index: 1;
	width: 20%;
}

.corner-logo-right img{
	border-radius: 0px 13% 200px;
}

@media (max-width: 850px){
	.corner-logo-right img{
		border-radius: 0px 17% 100px;
	}
}

/* update menu underline color */
.nav-line-bottom>li>a:before, .nav-line-grow>li>a:before, .nav-line>li>a:before{
	background-color: var(--fs-color-secondary)
}

/* blog customizations */
.blog-wrapper .align-center > .large-10{
	max-width: 900px;
}

.blog-wrapper p{
	font-size: clamp(1em, 1em + .3vw, 1.2em);
}

.blog-wrapper p.lead{
	font-size: clamp(1.1em, 1em + .5vw, 1.5em);
	font-weight: 100;
}

.blog-wrapper h2{
	font-size: 35px;
	font-weight: 500 !important;
}

.blog-wrapper h3{
	font-size: 23px;
	font-weight: 600 !important;
	color: var(--fs-color-success)
}

@media (min-width: 649px){
	.blog-featured-title{
		max-width: calc(100% - 80px);
		margin: 30px auto 0px;
		border-radius: 120px 20px;
	}

	.blog-featured-title .page-title-inner{
		padding: 80px 50px;
	}
}

.blog-featured-title .page-title-inner{
	padding: 80px 15px;
}

.blog-featured-title .text-center{
	text-align: left;
	max-width: 900px;
}

.blog-featured-title  .entry-divider{
	margin-left: 0; 
}

.row-divided .col{
	border-color: #1d2333 !important;
}

/* allow hover on logo images */
.image-logo .img-inner{
	padding: 15px;
}

/* change break point for nav */

@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;		
	}

}

/* fix slider bullet position */
.support-slider ol{
	bottom: -30px;
}

/* blog */
.blog-cards > .col > .col-inner{
	background-color: white;
	border-radius: 10px;
}