/* --------------------------- */
/* Typography                  */
/* --------------------------- */

/* 1. DISPLAY CLASSES */
.display-1 {
    font-size: clamp(3.5rem, 1rem + 7vw, 10rem) !important;
    line-height: 1.1; 
}

.display-2 {
    font-size: clamp(3.5rem, 1rem + 5vw, 8rem) !important;
    line-height: 1.1;
}

.display-3 {
    font-size: clamp(2.8rem, 1rem + 4vw, 6.2rem) !important;
    line-height: 1.2;
}

.display-4 {
    font-size: clamp(2.5rem, 1rem + 3vw, 5rem) !important;
    line-height: 1.2;
}

/* 2. BASE HEADING RESETS */
h1, h2, h3, h4, h5 {
    margin-bottom: 15px;
}

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

/* 3. RESPONSIVE HEADINGS (Builder Compatible) */
h1, .h1 {
    font-size: clamp(2.5em, 1em + 5vw, 3.5em);
}

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

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

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

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

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

ul.remove-dividers li{
	border: none;
}

/* 4. FLUID BODY COPY (Builder Compatible) */

/* Target standard paragraphs and plain-text lists (ignores Flatsome UI elements) */
p, ul:not(.sub-menu, .nav), .p {
    font-size: clamp(0.9em, 0.8em + 0.4vw, 1.15em);
}

/* THE NESTING BUG FIX: Stops em units from compounding inside nested lists or blockquotes */
:is(p, ul, ol) :is(p, ul, ol, li) {
    font-size: 1em !important; 
}

/* Reset for use of span tags */
.reset-size {
    font-size: 1em !important;
}

/* Fluid Lead Paragraphs */
p.lead, .lead {
    font-size: clamp(1.1em, 1em + 0.3vw, 1.3em);
}

/* Standardized Small Text */
.small, small {
    font-size: 0.8em;
}

/* Fix Flatsome Banners */
.banner .res-text {
    font-size: 100% !important;
}

/* change base navigation sizing */
.nav>li>a, .nav>li.html, .sub-menu{
	font-size: .95em
}

.header-button .button{
	font-size: 1em;
}

/* --------------------------- */
/* Google Maps                 */
/* --------------------------- */

/* adjust padding to change the height of maps */
.google-maps iframe, .google-maps .uxb-wrapper--ux_html {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

/* --------------------------- */
/* 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 {
	color: white;
}

/* icon box alignment */
.align-icons{
    align-items: 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%);
}

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

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

	.icon-box-left.stack-mobile .icon-box-img+.icon-box-text {
		padding-left: 0px;
		padding-top: 15px;
	}
}

/* turn off hover effect 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);
}

/* fix removed space on icon boxes */
.icon-box .last-reset p{
	margin-bottom: 1.3em;
}

/* --------------------------- */
/* Gravity Forms               */
/* --------------------------- */

.gform_wrapper form{
	margin-bottom: 0;
}

.gform_wrapper legend{
    text-transform: none !important; 	
}

.gform_wrapper label{
    color: inherit;
}

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

/* get rid of margin */
.full-width .gform_button.button{
   margin-right: 0;
}

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

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

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

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

.gform-button--width-full{
	justify-content: center;
}

/* dark forms */
.dark .select-resize-ghost, .dark .select2-container .select2-choice, .dark .select2-container .select2-selection, .dark input[type=date], .dark input[type=email], .dark input[type=number], .dark input[type=password], .dark input[type=search], .dark input[type=tel], .dark input[type=text], .dark input[type=url], .dark select, .dark textarea{
	background-color: rgba(255, 255, 255, 0.08);
	color: white;
	font-weight: bold;
}

.dark input::placeholder,
.dark textarea::placeholder{
	color: rgba(255, 255, 255, .6);
}


/* --------------------------- */
/* Buttons                     */
/* --------------------------- */

/* fix spacing on buttons */
.button:not(.circle):not(.is-link):not(.ux-search-submit){
	padding: .5em 1.5em; 
}

.button:not(.icon) {
    display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: .7em;
}

.button i, button i{
	top: 0px;
}

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

@media(max-width: 849px){
	.tablet-align-left .text-right{
		text-align: left;
	}
}

/* white button text color */
.button.white:not(.is-outline, .is-link, .is-underline), .button.white.is-outline:hover{
	color: #210D33 !important;
}

/* Footer Menu Links */

footer .ux-menu-link__link{
	min-height: 0;
}

footer .ux-menu-link__text{
	font-size: .95em;
	transition: .2s ease;
}

.ux-menu.large .ux-menu-link__text{
	font-size: 1.1em;
}

.ux-menu.hover-effect .ux-menu-link__link:hover .ux-menu-link__text{
	padding-left: 3px;
	color: var(--fs-color-primary);
}


/* --------------------------- */
/* Images                      */
/* --------------------------- */

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

.fill img{
	object-fit: cover;
}

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

.image-top img{
	object-position: top;
}

.image-left img{
	object-position: left;
}

.image-right img{
	object-position: right;
}

.image-bottom img{
	object-position: bottom;
}


/* --------------------------- */
/* Gradient Overlays           */
/* --------------------------- */

@media (min-width: 850px){
	
	/* all gradients but center */ 
	.gradient-top .section-bg-overlay, .gradient-right .section-bg-overlay, .gradient-bottom .section-bg-overlay, .gradient-left .section-bg-overlay,
	.gradient-top .overlay, .gradient-right .overlay, .gradient-bottom .overlay, .gradient-left .overlay,
	.gradient-top .card-image-wrapper::after, .gradient-right .card-image-wrapper::after, .gradient-bottom .card-image-wrapper::after, .gradient-left .card-image-wrapper::after {
		background-color: transparent !important;
		background: linear-gradient(var(--gradient-angle), var(--gradient-linear-start) 0%, var(--gradient-linear-end) 80%);
	}
	
	.gradient-top .section-bg-overlay, .gradient-top .overlay, .gradient-top .card-image-wrapper::after { --gradient-angle: 0deg; }
	.gradient-right .section-bg-overlay, .gradient-right .overlay, .gradient-right .card-image-wrapper::after  { --gradient-angle: 90deg; }
	.gradient-bottom .section-bg-overlay, .gradient-bottom .overlay, .gradient-bottom .card-image-wrapper::after { --gradient-angle: 180deg; }
	.gradient-left .section-bg-overlay, .gradient-left .overlay, .gradient-left .card-image-wrapper::after { --gradient-angle: 270deg; }

	/* center gradient */ 
	.gradient-center .section-bg-overlay {
		background-color: transparent !important;
		background: radial-gradient(circle, var(--gradient-radial-inner) 40%, var(--gradient-radial-outer) 100%);
	}
}


/* --------------------------- */
/* Fix Divided Column Borders  */
/* --------------------------- */

/* Eliminate Flatsome's native pseudo-element borders */
.row-solid .col::before,
.row-solid .col::after,
.row-dashed .col::before,
.row-dashed .col::after {
    display: none !important;
}

/* Apply real borders to top-level columns */
.row-solid > .col {
    border-left: 1px solid #ddd !important;
    border-bottom: 1px solid #ddd !important;
}
.row-dashed > .col {
    border-left: 1px dashed #ddd !important;
    border-bottom: 1px dashed #ddd !important;
}


/* Hide borders based on the classes injected by your Vanilla JS */
.row-solid > .col.row-start,
.row-dashed > .col.row-start {
    border-left: 0 !important;
}
.row-solid > .col.last-row,
.row-dashed > .col.last-row {
    border-bottom: 0 !important;
}

.row-solid > .col{
	padding: 0px 15px !important;
}

.row-solid.row-large > .col{
	padding: 15px 30px 30px !important;
}

.row-solid.row-large > .col.row-start{
	padding: 15px 15px 30px !important;
}

.row-solid.row-small > .col{
	padding: 0px !important;
}

/* adjust color of divided columns */
.dark .row-divided>.col+.col, .dark .row-solid > .col {
	border-color: hsla(0,0%,100%,.3) !important;
}

/* --------------------------- */
/* Even Sliders.               */
/* --------------------------- */

.even-slider:not(.uxb-draggable) .flickity-viewport {
    height: var(--fixed-viewport-height) !important;
    transition: height 0s !important; 
}

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

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


/* --------------------------- */
/* Flatsome Fixes              */
/* --------------------------- */

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

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

/* add ability to wrap stacks (mobile) */
@media (max-width: 850px){
    .flex-wrap-tablet{
        flex-wrap: wrap;
    }
}

/* fix warped logos */
.ux-logo img{
    object-fit: contain;
}

/* ------ 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){
	.md-break-6{
		flex-basis: 50%;
        max-width: 50%;
	}

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