/* **********************************************************
 * SECTION COLUMN STYLES
 * ******************************************************** */

/* *****************************
 * CONTAINER ADDITIONAL STYLES
 * *************************** */


/* ******************************
 * BACKGROUND COLORS
 * *************************** */
.bg-primary {
  background: var(--e-global-color-primary);
}
.bg-secondary {
  background: var(--e-global-color-secondary);
}
.bg-accent {
  background: var(--e-global-color-accent);
}


/* ******************************
 * PADDING (ALL SIDES)
 * *************************** */
.padding-xs.e-con,
.padding-xs.elementor-element {
    padding: var(--space-xs) !important;
}
.padding-sm.e-con,
.padding-sm.elementor-element {
    padding: var(--space-sm) !important;
}
.padding-md.e-con,
.padding-md.elementor-element {
    padding: var(--space-md) !important;
}
.padding-lg.e-con,
.padding-lg.elementor-element {
    padding: var(--space-lg) !important;
}
.padding-xl.e-con,
.padding-xl.elementor-element {
    padding: var(--space-xl) !important;
}

/* Small mobile: compress all-around padding on X, keep Y */
@media (max-width: 480px) {
    .padding-xs.e-con,
    .padding-xs.elementor-element {
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
    .padding-sm.e-con,
    .padding-sm.elementor-element {
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
    .padding-md.e-con,
    .padding-md.elementor-element {
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
    .padding-lg.e-con,
    .padding-lg.elementor-element {
        padding-left: var(--space-md) !important;
        padding-right: var(--space-md) !important;
    }
    .padding-xl.e-con,
    .padding-xl.elementor-element {
        padding-left: var(--space-lg) !important;
        padding-right: var(--space-lg) !important;
    }
}


/* ******************************
 * PADDING Y (TOP + BOTTOM)
 * *************************** */
.padding-y-xs { padding-top: var(--space-xs) !important; padding-bottom: var(--space-xs) !important; }
.padding-y-sm { padding-top: var(--space-sm) !important; padding-bottom: var(--space-sm) !important; }
.padding-y-md { padding-top: var(--space-md) !important; padding-bottom: var(--space-md) !important; }
.padding-y-lg { padding-top: var(--space-lg) !important; padding-bottom: var(--space-lg) !important; }
.padding-y-xl { padding-top: var(--space-xl) !important; padding-bottom: var(--space-xl) !important; }

/* PADDING TOP */
.padding-top-xs.e-con,
.padding-top-xs.elementor-element { padding-top: var(--space-xs) !important; }
.padding-top-sm.e-con,
.padding-top-sm.elementor-element { padding-top: var(--space-sm) !important; }
.padding-top-md.e-con,
.padding-top-md.elementor-element { padding-top: var(--space-md) !important; }
.padding-top-lg.e-con,
.padding-top-lg.elementor-element { padding-top: var(--space-lg) !important; }
.padding-top-xl.e-con,
.padding-top-xl.elementor-element { padding-top: var(--space-xl) !important; }

/* PADDING BOTTOM */
.padding-bottom-xs.e-con,
.padding-bottom-xs.elementor-element { padding-bottom: var(--space-xs) !important; }
.padding-bottom-sm.e-con,
.padding-bottom-sm.elementor-element { padding-bottom: var(--space-sm) !important; }
.padding-bottom-md.e-con,
.padding-bottom-md.elementor-element { padding-bottom: var(--space-md) !important; }
.padding-bottom-lg.e-con,
.padding-bottom-lg.elementor-element { padding-bottom: var(--space-lg) !important; }
.padding-bottom-xl.e-con,
.padding-bottom-xl.elementor-element { padding-bottom: var(--space-xl) !important; }


/* ******************************
 * PADDING X (LEFT + RIGHT)
 * *************************** */
.padding-x-xs { padding-left: var(--space-xs) !important; padding-right: var(--space-xs) !important; }
.padding-x-sm { padding-left: var(--space-sm) !important; padding-right: var(--space-sm) !important; }
.padding-x-md { padding-left: var(--space-md) !important; padding-right: var(--space-md) !important; }
.padding-x-lg { padding-left: var(--space-lg) !important; padding-right: var(--space-lg) !important; }
.padding-x-xl { padding-left: var(--space-xl) !important; padding-right: var(--space-xl) !important; }

/* PADDING LEFT */
.padding-left-xs.e-con { padding-left: var(--space-xs) !important; }
.padding-left-sm.e-con { padding-left: var(--space-sm) !important; }
.padding-left-md.e-con { padding-left: var(--space-md) !important; }
.padding-left-lg.e-con { padding-left: var(--space-lg) !important; }
.padding-left-xl.e-con { padding-left: var(--space-xl) !important; }

/* PADDING RIGHT */
.padding-right-xs.e-con { padding-right: var(--space-xs) !important; }
.padding-right-sm.e-con { padding-right: var(--space-sm) !important; }
.padding-right-md.e-con { padding-right: var(--space-md) !important; }
.padding-right-lg.e-con { padding-right: var(--space-lg) !important; }
.padding-right-xl.e-con { padding-right: var(--space-xl) !important; }

/* Small mobile: compress X only, Y stays at 767px values */
@media (max-width: 480px) {
    .padding-x-xs,
    .padding-left-xs.e-con,
    .padding-right-xs.e-con  { padding-left: var(--space-xs) !important; padding-right: var(--space-xs) !important; }
    .padding-x-sm,
    .padding-left-sm.e-con,
    .padding-right-sm.e-con  { padding-left: var(--space-xs) !important; padding-right: var(--space-xs) !important; }
    .padding-x-md,
    .padding-left-md.e-con,
    .padding-right-md.e-con  { padding-left: var(--space-xs) !important; padding-right: var(--space-xs) !important; }
    .padding-x-lg,
    .padding-left-lg.e-con,
    .padding-right-lg.e-con  { padding-left: var(--space-md) !important; padding-right: var(--space-md) !important; }
    .padding-x-xl,
    .padding-left-xl.e-con,
    .padding-right-xl.e-con  { padding-left: var(--space-lg) !important; padding-right: var(--space-lg) !important; }
}


/* ******************************
 * MARGIN Y (TOP + BOTTOM)
 * *************************** */
.margin-y-xs.e-con { margin-top: var(--space-xs) !important; margin-bottom: var(--space-xs) !important; }
.margin-y-sm.e-con { margin-top: var(--space-sm) !important; margin-bottom: var(--space-sm) !important; }
.margin-y-md.e-con { margin-top: var(--space-md) !important; margin-bottom: var(--space-md) !important; }
.margin-y-lg.e-con { margin-top: var(--space-lg) !important; margin-bottom: var(--space-lg) !important; }
.margin-y-xl.e-con { margin-top: var(--space-xl) !important; margin-bottom: var(--space-xl) !important; }

/* MARGIN TOP */
.margin-top-xs.e-con,
.margin-top-xs.elementor-element { margin-top: var(--space-xs) !important; }
.margin-top-sm.e-con,
.margin-top-sm.elementor-element { margin-top: var(--space-sm) !important; }
.margin-top-md.e-con,
.margin-top-md.elementor-element { margin-top: var(--space-md) !important; }
.margin-top-lg.e-con,
.margin-top-lg.elementor-element { margin-top: var(--space-lg) !important; }
.margin-top-xl.e-con,
.margin-top-xl.elementor-element { margin-top: var(--space-xl) !important; }

/* MARGIN BOTTOM */
.margin-bottom-1.e-con,
.margin-bottom-1.elementor-element { margin-bottom: var(--space-1) !important; }
.margin-bottom-xs.e-con,
.margin-bottom-xs.elementor-element { margin-bottom: var(--space-xs) !important; }
.margin-bottom-sm.e-con,
.margin-bottom-sm.elementor-element { margin-bottom: var(--space-sm) !important; }
.margin-bottom-md.e-con,
.margin-bottom-md.elementor-element { margin-bottom: var(--space-md) !important; }
.margin-bottom-lg.e-con,
.margin-bottom-lg.elementor-element { margin-bottom: var(--space-lg) !important; }
.margin-bottom-xl.e-con,
.margin-bottom-xl.elementor-element { margin-bottom: var(--space-xl) !important; }


/* ******************************
 * ZERO OVERRIDES
 * *************************** */
.no-padding-top.e-con,
.no-padding-top.elementor-element { padding-top: 0 !important; }
.no-padding-bottom.e-con,
.no-padding-bottom.elementor-element { padding-bottom: 0 !important; }
.no-padding-left.e-con,
.no-padding-left.elementor-element { padding-left: 0 !important; }
.no-padding-right.e-con,
.no-padding-right.elementor-element { padding-right: 0 !important; }
.no-margin-top.e-con { margin-top: 0 !important; }
.no-margin-bottom.e-con { margin-bottom: 0 !important; }


/* ******************************
 * GAP
 * *************************** */
.gap-0.e-con,  .gap-0 .e-con-inner,  .gap-0.content-wrapper { gap: var(--space-0) !important; }
.gap-1.e-con,  .gap-1 .e-con-inner,  .gap-1.content-wrapper { gap: var(--space-1) !important; }
.gap-xs.e-con,  .gap-xs .e-con-inner,  .gap-xs.content-wrapper { gap: var(--space-xs) !important; }
.gap-sm.e-con,  .gap-sm .e-con-inner,  .gap-sm.content-wrapper { gap: var(--space-sm) !important; }
.gap-md.e-con,  .gap-md .e-con-inner,  .gap-md.content-wrapper { gap: var(--space-md) !important; }
.gap-lg.e-con,  .gap-lg .e-con-inner,  .gap-lg.content-wrapper { gap: var(--space-lg) !important; }
.gap-xl.e-con,  .gap-xl .e-con-inner,  .gap-xl.content-wrapper { gap: var(--space-xl) !important; }

/* Gap Tablet 1024px Overrides */
@media (max-width: 1024px) {
.gap-tablet-xs.e-con,
.gap-tablet-xs .e-con-inner,
.gap-tablet-xs.content-wrapper { gap: var(--space-xs) !important; }
.gap-tablet-1.e-con,
.gap-tablet-1 .e-con-inner,
.gap-tablet-1.content-wrapper { gap: var(--space-1) !important; }
.gap-tablet-0.e-con,
.gap-tablet-0 .e-con-inner,
.gap-tablet-0.content-wrapper { gap: var(--space-0) !important; }
}

/* Gap Mobile 767px Overrides */
@media (max-width: 767px) {
.gap-mobile-xs.e-con,
.gap-mobile-xs .e-con-inner,
.gap-mobile-xs.content-wrapper { gap: var(--space-xs) !important; }
.gap-mobile-1.e-con,
.gap-mobile-1 .e-con-inner,
.gap-mobile-1.content-wrapper { gap: var(--space-1) !important; }
.gap-mobile-0.e-con,
.gap-mobile-0 .e-con-inner,
.gap-mobile-0.content-wrapper { gap: var(--space-0) !important; }
}


/* ******************************
 * BORDER RADIUS
 * *************************** */
.radius-xs.e-con,
.radius-xs.elementor-element,
.img-radius-xs,
.img-radius-xs img,
.bg-wrapper:has(.srcset-bg.img-radius-xs) .overlay,
.bg-wrapper:has(.srcset-bg.img-radius-xs) .overlay:before,
.bg-wrapper:has(.srcset-bg.img-radius-xs) .overlay:after,
.bg-wrapper:has(.srcset-bg.img-radius-xs) .srcset-bg .elementor-widget-container {
    border-radius: var(--radius-xs) !important;
}

.radius-sm.e-con,
.radius-sm.elementor-element,
.img-radius-sm,
.img-radius-sm img,
.bg-wrapper:has(.srcset-bg.img-radius-sm) .overlay,
.bg-wrapper:has(.srcset-bg.img-radius-sm) .overlay:before,
.bg-wrapper:has(.srcset-bg.img-radius-sm) .overlay:after,
.bg-wrapper:has(.srcset-bg.img-radius-sm) .srcset-bg .elementor-widget-container {
    border-radius: var(--radius-sm) !important;
}

.radius-md.e-con,
.radius-md.elementor-element,
.img-radius-md,
.img-radius-md img,
.bg-wrapper:has(.srcset-bg.img-radius-md) .overlay,
.bg-wrapper:has(.srcset-bg.img-radius-md) .overlay:before,
.bg-wrapper:has(.srcset-bg.img-radius-md) .overlay:after,
.bg-wrapper:has(.srcset-bg.img-radius-md) .srcset-bg .elementor-widget-container {
    border-radius: var(--radius-md) !important;
}

.radius-lg.e-con,
.radius-lg.elementor-element,
.img-radius-lg,
.img-radius-lg img,
.bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay,
.bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay:before,
.bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay:after,
.bg-wrapper:has(.srcset-bg.img-radius-lg) .srcset-bg .elementor-widget-container {
    border-radius: var(--radius-lg) !important;
}

.radius-xl.e-con,
.radius-xl.elementor-element,
.img-radius-xl,
.img-radius-xl img,
.bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay,
.bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay:before,
.bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay:after,
.bg-wrapper:has(.srcset-bg.img-radius-xl) .srcset-bg .elementor-widget-container {
    border-radius: var(--radius-xl) !important;	
}


@media (max-width: 1024px) {
    .radius-lg.e-con,
    .radius-lg.elementor-element,
    .img-radius-lg img,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay:before,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay:after,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .srcset-bg .elementor-widget-container {
        border-radius: var(--radius-lg) !important;
    }

    .radius-xl.e-con,
    .radius-xl.elementor-element,
    .img-radius-xl img,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay:before,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay:after,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .srcset-bg .elementor-widget-container {
        border-radius: var(--radius-xl) !important;
    }
}

@media (max-width: 767px) {
    .radius-lg.e-con,
    .radius-lg.elementor-element,
    .img-radius-lg img,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay:before,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .overlay:after,
    .bg-wrapper:has(.srcset-bg.img-radius-lg) .srcset-bg .elementor-widget-container {
        border-radius: var(--radius-lg) !important;
    }

    .radius-xl.e-con,
    .radius-xl.elementor-element,
    .img-radius-xl img,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay:before,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .overlay:after,
    .bg-wrapper:has(.srcset-bg.img-radius-xl) .srcset-bg .elementor-widget-container {
        border-radius: var(--radius-xl) !important;
    }
}


/* *****************************
 * SRCSET BG IMAGE SHADOW - for single image using srcset
 * good for Text L Img R type layouts
 * and Image Shadow
 * *************************** */
.bg-wrapper:has(.srcset-bg.img-shadow) .overlay,
.bg-wrapper:has(.srcset-bg.img-shadow) .overlay:before,
.img-shadow img {
    box-shadow: 0px 0px 10px #00000035;
}


/* *****************************
 * HERO
 * *************************** */
.hero {
	background-color: var(--color-primary) !important;
}

/* FULL WIDTH HERO PADDING 
body.home .hero {
	padding: 30rem 0 10rem;
}
body:not(.home) .hero {
	padding: 20rem 0 10rem;
}
*/

/* HERO PADDING - Boxed Width */
body.home .hero .e-con-inner {
	padding: 30rem 0 10rem;
}
body:not(.home) .hero .e-con-inner {
	padding: 20rem 0 10rem;
}


/* *****************************
 * FULL WIDTH BANNER SECTIONS CONTENT WRAPPER - can use Hero Version if need / if Hero has centered content
 * *************************** */
.banner-section > .content-wrapper {
    max-width: 68%;
}
@media (max-width: 1600px) { .banner-section > .content-wrapper { max-width: 75%; } }
@media (max-width: 1440px) { .banner-section > .content-wrapper { max-width: 80%; } }
@media (max-width: 1200px) { .banner-section > .content-wrapper { max-width: 90%; } }
@media (max-width: 1024px) { .banner-section > .content-wrapper { max-width: 95%; } }
@media (max-width: 768px)  { .banner-section > .content-wrapper { max-width: 100%; } }

/*
.hero .content-wrapper,
.banner-section > .content-wrapper {
    max-width: 68%;
}
@media (max-width: 1600px) { .hero .content-wrapper, .banner-section > .content-wrapper { max-width: 75%; } }
@media (max-width: 1440px) { .hero .content-wrapper, .banner-section > .content-wrapper { max-width: 80%; } }
@media (max-width: 1200px) { .hero .content-wrapper, .banner-section > .content-wrapper { max-width: 90%; } }
@media (max-width: 1024px) { .hero .content-wrapper, .banner-section > .content-wrapper { max-width: 95%; } }
@media (max-width: 768px)  { .hero .content-wrapper, .banner-section > .content-wrapper { max-width: 100%; } }
*/


/* *****************************
 * BANNER SECTION
 * *************************** */
.banner-section > .content-wrapper {
    box-sizing: border-box;
}
@media (max-width: 768px) {
    .banner-section > .content-wrapper {
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
}


/* *****************************
 * BG OVERLAY
 * *************************** */
/* BG Wrapper Default Overlay */
.bg-wrapper .overlay:before {
  background: linear-gradient(0deg, rgba(0,0,0,0.60) 0%, rgba(0,0,0,0.60) 100%);
  opacity: 1;
}

/* BG Wrapper Light Overlay */
.bg-wrapper.bg-overlay-light .overlay:before {
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0) 100%);
  opacity: 1;
}

/* BG Wrapper Dark Overlay */
.bg-wrapper.bg-overlay-dark .overlay:before {
  background: linear-gradient(0deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.85) 100%);
  opacity: 1;
}

/* BG Wrapper No Overlay */
.bg-wrapper .overlay.none:before {
  background: linear-gradient(0deg, rgba(0,0,0,0.00) 0%, rgba(0,0,0,0.00) 100%);
  opacity: 0;
}

/* BG Wrapper Spruce Overlay */
.bg-wrapper.bg-overlay-spruce .overlay:before {
  background: linear-gradient(0deg, var(--color-limed-spruce) 0%, var(--color-gulf-stream) 100%);
  opacity: .9;
}

/* Orange Swoosh PNG */
.bg-wrapper.swoosh .overlay:after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(https://ticebusinesssolutions.com/wp-content/uploads/2026/03/Overlay-Banner-Orange-XShort.png);
  background-position: bottom center;
  background-repeat: no-repeat;
  background-size: contain; 
  mix-blend-mode: normal;
  opacity: .5;
}


/* BG OVERLAY GRADIENT */
/* Grayscale the photo */
.bg-overlay-gradient .srcset-bg img {
    filter: grayscale(100%);
}
/* Kill the default dark overlay */
.bg-overlay-gradient .overlay::before {
    display: none;
}

/* Replace orange swoosh with gradient PNG */
.bg-overlay-gradient .overlay::after {
    background-image: none;
}
.bg-overlay-gradient .srcset-bg .elementor-widget-container::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('/wp-content/uploads/2026/03/BG-Overlay-Gradient.png');
    background-size: 100% 100%;
    mix-blend-mode: multiply;
}


/* *****************************
 * SECTION MULTIPLY OVERLAY
 * *************************** */
.bg-overlay-multiply:before {
	mix-blend-mode: multiply !important;
}


/* *****************************
 * BACKGROUND IMAGE USING IMAGE ELEMENT INSTEAD OF CONTAINER BG SETTINGS
 * BG SOURCESET FOR Elementor Image Widget, Widget Container, Image
 * *************************** */
.srcset-bg,
.srcset-bg .elementor-widget-container {
    height: 100% !important;
    width: 100% !important;
    position: absolute;
    top: 0px;
    left: 0px;
	overflow: hidden !important;
}
.srcset-bg img {
    height: 100% !important;
    width: 100% !important;
    object-fit: cover; 
    object-position: center center;
}

/* OPTIONAL Fixed / Parallax Background Image */
.bg-fixed .srcset-bg,
.bg-fixed .srcset-bg .elementor-widget-container,
.hero .srcset-bg,
.hero .srcset-bg .elementor-widget-container {
	clip-path: inset(0);
}
.bg-fixed .srcset-bg img,
.hero .srcset-bg img {
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	will-change: transform;
}
/* END OPTIONAL Fixed / Parallax Background Image */


/* *****************************
 * BG OVERLAY - FLICKER FIX
 * Promotes overlay pseudo-element to its own compositor layer so it doesn't drop out during scroll repaints
 * *************************** */
.bg-wrapper .overlay:before {
    will-change: opacity;
    transform: translateZ(0);
    backface-visibility: hidden;
}


/* *****************************
 * NO COLOR OR EFFECT BACKGROUND IMAGE CONTAINERS
 * *************************** */
/* BG IMAGE COLOR */
.srcset-bg .elementor-widget-container {
  background-color: transparent !important;	
}
.srcset-bg img {
    mix-blend-mode: none !important;
    opacity: 1 !important;
}
.bg-icon .srcset-bg img {
	opacity: .25 !important;
}


/* *****************************
 * COLOR BACKGROUND IMAGE CONTAINERS - Image has Multiply Effect on Color Background 
 * BG Wrapper Container CLASSES: bg-wrapper bg-pic-overlay
 * *************************** */
/* BG IMAGE COLOR */
.bg-wrapper.bg-pic-overlay .srcset-bg .elementor-widget-container {
  background: linear-gradient(0deg, var(--color-limed-spruce, #3A4B4C) 0%, var(--color-gulf-stream, #6FA4AD) 100%) !important;
}
.bg-wrapper.bg-pic-overlay .srcset-bg img {
    mix-blend-mode: multiply !important;
    opacity: 1 !important;
}


/* *****************************
 * ALTERNATE COLOR BACKGROUND IMAGE CONTAINERS - Image has Multiply Effect on Color Background
 * BG Wrapper Container CLASSES: bg-wrapper bg-pic-overlay alt
 * *************************** */
/* BG IMAGE COLOR */
.bg-wrapper.bg-pic-overlay.alt .srcset-bg .elementor-widget-container {
  background: linear-gradient(0deg, var(--color-gulf-stream-light, #9abfc5) 0%, var(--color-ziggurat-light, #d2e5e7) 100%) !important;
}
.bg-wrapper.bg-pic-overlay.alt .srcset-bg img {
    mix-blend-mode: multiply !important;
    opacity: 1 !important;
}
.bg-wrapper.bg-pic-overlay.alt .overlay:before {
    background: none !important;
}

/* REMOVE PIC OVERLAY in Split Row Img Txt and Txt Image Sections */
.split-row-img-txt .bg-wrapper.bg-pic-overlay.alt.swoosh .srcset-bg .elementor-widget-container {
  background: transparent !important;
}
.split-row-txt-img .bg-wrapper .overlay:before {
  background: transparent !important;
}



/* *****************************
 * FIXED BG IMAGE - DISABLE ON SMALL SCREENS
 * *************************** */
@media (max-width: 767px) {
    .bg-fixed .srcset-bg img,
    .hero .srcset-bg img {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 0 !important;   /* was -1 — can't be negative with position:absolute or bg color buries it */
        will-change: auto;
    }
    .bg-fixed .srcset-bg,
    .bg-fixed .srcset-bg .elementor-widget-container,
    .hero .srcset-bg,
    .hero .srcset-bg .elementor-widget-container {
        clip-path: none !important;
        z-index: 0 !important;
    }
    /* Ensure content inside bg-fixed sections sits above the srcset-bg image */
    .bg-fixed > .e-con-inner > *:not(.srcset-bg):not(.bg-wrapper),
    .bg-fixed > .e-con-inner > .bg-wrapper ~ * {
        position: relative;
        z-index: 1;
    }
}


/* *****************************
 * BG ICON - background icon - set to fill container height & maintain aspect ratio width 
 * BG Wrapper Container CLASSES: bg-wrapper bg-icon
 * *************************** */
.bg-icon {
    position: absolute !important;
    top: -2% !important;
    right: -4rem !important;
    width: auto !important;
    height: 104% !important;
    z-index: 0 !important;
    pointer-events: none !important;
}

/* The srcset-bg inner container — let it size to the image naturally */
.bg-icon .srcset-bg {
    position: relative !important;
    width: auto !important;
    height: 100% !important;
    overflow: visible !important;
}
.bg-icon .srcset-bg .elementor-widget-container {
    width: auto !important;
    height: 100% !important;
    position: relative !important;
    overflow: visible !important;
}
.bg-icon .srcset-bg img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: unset !important;
}


/* *****************************
 * SEARCH BAR ROW - like on Blog, Blog Category, Shop
 * *************************** */
.search-col, 
.search-col .site-search,
.search-col .jet-search, 
.search-col .jet-ajax-search,
.search-col .jet-ajax-search__form,
.view-all-col,
.btn-archive-view-all a {
    height: 100% !important;
    width: 100%;	
}
.btn-archive-view-all .elementor-button-wrapper,
.btn-archive-view-all .ha-creative-btn-wrap {
	display: flex;
    width: 100%;
}


/* *****************************
 * ELEMENTOR VIDEO BACKGROUND
 * *************************** */
.elementor-background-video-container {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden;
    z-index: 0;
}
.elementor-background-video-hosted {
    position: absolute !important;
    top: 50%;
    left: 50%;
    width: 100vw !important;  /* Full viewport width for extra coverage */
    height: auto !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    transform: translate(-50%, -50%);
    max-width: none !important;  /* Overrides any max limits */
}


/* *****************************
 * PARALLAX SECTION BACKGROUND
 * *************************** */
.section-bg-parallax {
	/* Adjust the Effect */
    transform: translateZ(-1px) scale(1.15); 
    background-position: center !important;
    position: absolute;
}


/* *****************************
 * FIXED BACKGROUND - OVERRIDE SO ALSO FIXED ON MOBILE
 * Add the class bg-fixed to the section - adjust as needed
 * *************************** */
.bg-fixed,
.bg-fixed .elementor-background-overlay,
.bg-fixed:before {
    background-attachment: fixed !important;
    transform: translateZ(0);
}
.ios .bg-fixed,
.ios .bg-fixed .elementor-background-overlay,
.ios .bg-fixed:before {
    background-attachment: scroll !important;
    transform: translateZ(0); /* This can help with rendering */
}
html:not(.ios):not(.webkit) .bg-fixed,
html:not(.ios):not(.webkit) .bg-fixed .elementor-background-overlay,
html:not(.ios):not(.webkit) .bg-fixed:before {
    background-attachment: fixed !important;
}
@media (max-width: 1040px) {
	.mac .bg-fixed,
	.mac .bg-fixed .elementor-background-overlay,
	.mac .bg-fixed:before,
	.ios .bg-fixed,
	.ios .bg-fixed .elementor-background-overlay,
	.ios .bg-fixed:before,
	html.webkit.safari.retina .bg-fixed,
	html.webkit.safari.retina .bg-fixed .elementor-background-overlay,
	html.webkit.safari.retina .bg-fixed:before {
		background-attachment: scroll !important;
		transform: translateZ(0);
		background-size: cover !important;
		background-repeat: no-repeat !important;
	}
}


/* ******************************
 * FIXED BACKGROUND - IPAD PORTRAIT FIX
 * Disables fixed/parallax on retina Safari portrait (iPad)
 * landscape is handled separately below
 * *************************** */
@media (max-width: 1040px) and (orientation: portrait) {
    html.webkit.safari.retina .bg-fixed .srcset-bg img,
    html.webkit.safari.retina .hero .srcset-bg img {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        will-change: auto !important;
    }
    html.webkit.safari.retina .bg-fixed .srcset-bg,
    html.webkit.safari.retina .bg-fixed .srcset-bg .elementor-widget-container,
    html.webkit.safari.retina .hero .srcset-bg,
    html.webkit.safari.retina .hero .srcset-bg .elementor-widget-container {
        clip-path: none !important;
    }
}


/* ******************************
 * FIXED BACKGROUND - APPLE LANDSCAPE TWEAK
 * *************************** */
/* SAFARI */
@media only screen and (orientation: landscape) {
    .e--ua-appleWebkit.e--ua-safari .elementor-element.e-con::before {
        background-attachment: initial !important;
    }
}

/* OTHERS */
@media only screen and (orientation: landscape) {
    .e--ua-appleWebkit .elementor-element.e-con::before {
       background-attachment: initial !important;
    }
}


/* *****************************
 * COLUMN GRADIENT - use col-hover and colorX class on the column and change colors below, can add extra classes for different columns w/different colors
 e.g. Z Demo Content Page Custom Hover Image Boxes
 * *************************** */
.col-hover .elementor-widget-wrap.elementor-element-populated {
    background-color: transparent !important;
    background-image: none !important;
	overflow: hidden;
}
.col-hover .elementor-widget-wrap.elementor-element-populated:before,
.col-hover .elementor-widget-wrap.elementor-element-populated:after {
	content: "";
    display: block;
    position: absolute;
	margin: 1px;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    width: auto;
    height: auto;
	z-index: -1;	
	transition: all .5s ease-out;
}
.col-hover .elementor-widget-wrap.elementor-element-populated:before {
    z-index: -1;
	opacity: 1;
}
.col-hover .elementor-widget-wrap.elementor-element-populated:after {
    z-index: -1;
	opacity: 0;
}
.col-hover .elementor-widget-wrap.elementor-element-populated:hover:before {
	opacity: 0;
}
.col-hover .elementor-widget-wrap.elementor-element-populated:hover:after {
	 opacity: 1;
}
.col-hover.color1 .elementor-widget-wrap.elementor-element-populated:before {
	background-color: #99000050;
    background-image: linear-gradient(180deg, #fff 0%, #99000022 100%);
}
.col-hover.color1 .elementor-widget-wrap.elementor-element-populated:after {
	background-color: #99000050;
    background-image: linear-gradient(180deg, #99000022 0%, #fff 100%);	
}
.col-hover.color2 .elementor-widget-wrap.elementor-element-populated:before {
	background-color: #aaaaaa50;
    background-image: linear-gradient(180deg, #fff 0%, #aaaaaa22 100%);
}
.col-hover.color2 .elementor-widget-wrap.elementor-element-populated:after {
	background-color: #aaaaaa50;
    background-image: linear-gradient(180deg, #aaaaaa22 0%, #fff 100%);	
}


/* *****************************
 * SECTION CONTENT COLUMNS with INNER SECTION with PADDED COLUMNS 
   e.g. Z Demo Content Page - Services We Offer Cols
 * *************************** */
.section-content-cols.elementor-section.elementor-section-boxed > .elementor-container,
.section-content-cols.elementor-section.elementor-section-boxed > .elementor-container .inner-section-padded-cols .elementor-container {
	max-width: 77rem !important;
}
.inner-section-padded-cols {
    margin-left: -1rem; 
    margin-right: -1rem;	
}

@media (min-width: 1024px) {
	/* Equal Height */
	.section-content-cols .elementor-column.content-col {
		height: 100% !important;
	}
	.section-content-cols .elementor-inner-section .elementor-column-wrap {
		height: 100%;
		flex-direction: column;
	}
	.section-content-cols .inner-section-padded-cols .elementor-widget-wrap {
		height: 100%;
		flex-direction: column;
	}
	.section-content-cols .elementor-widget-icon {
	    margin-top: auto !important;
		padding: 1rem;
	}
}

@media (max-width: 1024px) {
	/* CONTENT COLUMNS */
	.section-content-cols .content-col.last {
		margin: 0 auto;
	}
}


/* *****************************
 * SECTION 3 COL INSET SHADOWS - like Contact
 * *************************** */
.section-3-cols .col1 {
    border-left: 0px solid #333 !important;
    border-right: 1px solid #000 !important; 
}
.section-3-cols .col2 {
    border-left: 1px solid #333 !important;
    border-right: 1px solid #000 !important;    
}
.section-3-cols .col3 {
    border-left: 1px solid #333 !important;
    border-right: 0px solid #000 !important;
}

@media (max-width:767px) {
    .section-3-cols .col1 {
        border-left: 0px solid #444 !important;
        border-right: 0px solid #000 !important; 
        border-top: 1px solid #444 !important; 
        border-bottom: 1px solid #000 !important;         
    }
    .section-3-cols .col2 {
        border-left: 0px solid #444 !important;
        border-right: 0px solid #000 !important;
        border-top: 1px solid #444 !important;        
        border-bottom: 1px solid #000 !important;        
    }
    .section-3-cols .col3 {
        border-left: 0px solid #444 !important;
        border-right: 0px solid #000 !important;  
        border-top: 1px solid #444 !important;         
    }   
}


/* ******************************************************* *
 *  WST CONTAINERS
 *  split-row-img-txt (bg src image left, text right):
 *  split-col--img-sm + split-col--txt-lg IMG SM + TXT LG
 *  split-col--img-lg + split-col--txt-sm IMG LG + TXT SM
 *
 *  split-row-txt-img (text left, bg src image right):
 *  split-col--txt-sm + split-col--img-lg TXT SM + IMG LG
 *  split-col--txt-lg + split-col--img-sm TXT LG + IMG SM
 *
 *  split-row-img-txt:  50/50 (image left, text right)
 *  split-col--img + split-col--txt
 *  
 *  split-row-txt-img:  50/50 (text left, image right) 
 *  split-col--txt + split-col--img
 * 
 *  split-row-txt-boxes:
 *  split-col--txt-sm + split-col--boxes + content-box--img-full
 *
 *  split-fwrow-l-boxed-r-full:
 *  l-boxed + r full
 *
 *  split-fwrow-l-boxed-r-full:
 *     .col-boxed (left, BG full-bleed, content boxed-aligned) + .col-full (right, full-bleed)
 *
 *  split-fwrow-l-full-r-boxed:
 *     .col-full (left, full-bleed) + .col-boxed (right, BG full-bleed, content boxed-aligned)
 *
 *  split-fwrow-l-boxed-r-boxed:
 *     .col-boxed-left + .col-boxed-right (both full-bleed BG, content aligns boxed edges)
 * ****************************************************** */
/* *****************************
 * SPLIT ROW TXT IMG COLUMNS
 * *************************** */
/* Parent Row Containers */
.split-row-img-txt,
.split-row-txt-img {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch;
    width: 100%;
}
.split-row-img-txt.e-con .e-con-inner,
.split-row-txt-img.e-con .e-con-inner {
    gap: .5rem;
}
/* Image Columns */
.split-col--img-sm.e-con {
    width: 35% !important;
    flex: 0 0 35% !important;
    max-width: 35%;
}
.split-col--img-lg.e-con {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65%;
}

/* Text Columns */
.split-row-img-txt .split-col--txt-lg.centered.e-con {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-md) var(--space-sm) var(--space-md)  var(--space-sm) !important;
}
.split-row-img-txt .split-col--txt-lg.e-con {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-md) 0 var(--space-md) var(--space-sm)  !important;
}
.split-row-img-txt .split-col--txt-sm.e-con {
	width: 35% !important;
    flex: 0 0 35% !important;
    max-width: 35%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-sm) 0 var(--space-sm) var(--space-sm) !important;
}
.split-row-txt-img .split-col--txt-lg.e-con {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-md) var(--space-sm) var(--space-md)  0 !important;
}
.split-row-txt-img .split-col--txt-sm.e-con {
    width: 35% !important;
    flex: 0 0 35% !important;
    max-width: 35%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-sm) var(--space-sm) var(--space-sm) 0 !important;
}

@media (max-width: 767px) {
	/* Image Columns */
    .split-row-img-txt,
    .split-row-txt-img {
        flex-direction: column !important;
    }
    .split-row-img-txt.e-con .e-con-inner,
    .split-row-txt-img.e-con .e-con-inner {
        flex-direction: column;
        gap: 0.5rem;
    }
    /* Text on top for split-row-img-txt (image is first in DOM) */
    .split-row-img-txt.e-con .e-con-inner {
        flex-direction: column-reverse !important;
    }
    .split-col--img-sm.e-con,
    .split-col--img-lg.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        min-height: 250px; /* give image column height when stacked */
    }

	/* Text Columns */
	.split-row-img-txt .split-col--txt-lg.centered.e-con,
	.split-row-img-txt .split-col--txt-lg.e-con,
	.split-row-img-txt .split-col--txt-sm.e-con,
	.split-row-txt-img .split-col--txt-sm.e-con,
	.split-row-txt-img .split-col--txt-lg.e-con	{
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        padding: var(--space-sm) var(--space-0) !important;	
    }
	/* Alternate Mobile Padding Top */
	.alt-mobile-padding-top .split-col--txt-sm.e-con,
	.alt-mobile-padding-top .split-col--txt-lg.e-con {
		padding-top:  var(--space-0) !important;		
	}
	
}



/* *****************************
 * 50/50 SPLIT ROW TXT IMG COLUMNS
 * *************************** */
/* ROW IMG TXT */
.split-row-img-txt .split-col--img {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;	
	padding: 0 var(--space-sm) 0 0 !important;
}
.split-row-img-txt .split-col--txt {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;	
	padding: var(--space-md) 0 var(--space-md) var(--space-sm)  !important;
}

/* ROW TXT IMG */
.split-row-txt-img .split-col--txt {
   width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;	
    padding: var(--space-md) var(--space-sm) var(--space-md)  0 !important;
}
.split-row-txt-img .split-col--img {
   width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;	
    padding: 0 0 0 var(--space-sm) !important;
}


@media (max-width: 767px) {
	/* Image Columns */
    .split-row-img-txt,
    .split-row-txt-img {
        flex-direction: column !important;
    }
    .split-row-img-txt.e-con .e-con-inner,
    .split-row-txt-img.e-con .e-con-inner {
        flex-direction: column;
        gap: 0.5rem;
    }
    /* Text on top for split-row-img-txt (image is first in DOM) */
    .split-row-img-txt.e-con .e-con-inner {
        flex-direction: column-reverse !important;
    }
    .split-col--img.e-con,
    .split-col--img.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        min-height: 250px; /* give image column height when stacked */
		padding: 0 !important;
    }

	/* Text Columns */
	.split-row-img-txt .split-col--txt.centered.e-con,
	.split-row-img-txt .split-col--txt.e-con,
	.split-row-img-txt .split-col--txt.e-con,
	.split-row-txt-img .split-col--txt.e-con,
	.split-row-txt-img .split-col--txt.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        padding: var(--space-sm) var(--space-0) !important;	
    }
	/* Alternate Mobile Padding Top */
	.alt-mobile-padding-top .split-col--txt.e-con {
		padding-top:  var(--space-0) !important;
	}
	
}


/* *****************************
 * SPLIT ROW TXT + COL BOXES
 * *************************** */
/* Parent Row Container */
.split-row-txt-boxes {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    width: 100%;
}
.split-row-txt-boxes.e-con .e-con-inner {
    gap: var(--space-xs);
    align-items: flex-start;
}
/* Text Label Column */
.split-row-txt-boxes .split-col--txt-sm.e-con {
    align-self: flex-start !important;
}
/* Boxes Column */
.split-col--boxes.e-con {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65%;
    padding: 0 !important;
    align-self: flex-start !important;
    height: auto !important;
}
.split-col--boxes.e-con > .e-con-inner {
    flex-direction: column !important;
    gap: 1.5rem !important;
    padding: 0 !important;
}
/* Content Box Card */
.content-box.e-con,
.split-col--boxes .content-box.e-con {
    --flex-direction: row !important;
    background: var(--e-global-color-accent) !important;
    width: 100% !important;
    flex: 0 0 auto !important;
    max-width: 100%;
    padding: var(--space-xs) !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden;
    align-items: stretch !important;
}
/* Image Column */
.content-box .img.e-con,
.split-col--boxes .content-box .img.e-con {
    width: 38% !important;
    flex: 0 0 38% !important;
    max-width: 38%;
    padding: 0 !important;
    overflow: hidden;
    align-self: stretch !important;
}
.content-box .img.e-con,
.content-box .img.e-con .elementor-widget-raven-image,
.content-box .img.e-con .elementor-widget-container,
.content-box .img.e-con .raven-image {
    height: 100% !important;
}
.content-box .img.e-con img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center top;
    display: block;
}
/* Content Box – Full Height Image Variant */
.content-box--img-full .img.e-con {
    --flex-grow: 1 !important;
    flex-grow: 1 !important;
    align-self: stretch !important;
    height: unset !important;
    min-height: 100% !important;
}
/* Text Column */
.content-box .txt.e-con,
.split-col--boxes .content-box .txt.e-con {
    width: 62% !important;
    flex: 0 0 62% !important;
    max-width: 62%;
    padding: 2.5rem 2.5rem 2rem !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    align-self: stretch !important;
    height: auto !important;
}
.content-box .txt.e-con h3 {
    font-size: var(--wst-card-title);
    margin-bottom: 0.75rem;
}
.content-box .txt.e-con p {
    font-size: var(--wst-card-text);
    margin-bottom: 1.25rem;
}

/* Tablet: ≤1024px */
@media (max-width: 1024px) {
    .split-row-txt-boxes {
        flex-direction: column !important;
    }
    .split-row-txt-boxes.e-con .e-con-inner {
        flex-direction: column !important;
        gap: 1rem;
    }
    .split-row-txt-boxes .split-col--txt-sm.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        padding: 0 0 1rem 0 !important;
    }
    .split-col--boxes.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
    }
    .content-box.e-con,
    .split-col--boxes .content-box.e-con {
        --flex-direction: row !important;
    }
    .content-box .img.e-con,
    .split-col--boxes .content-box .img.e-con {
        width: 35% !important;
        flex: 0 0 35% !important;
        max-width: 35%;
    }
    .content-box .txt.e-con,
    .split-col--boxes .content-box .txt.e-con {
        width: 65% !important;
        flex: 0 0 65% !important;
        max-width: 65%;
        padding: 2rem 1.75rem !important;
    }
}
/* Mobile: ≤767px */
@media (max-width: 767px) {
    .content-box.e-con,
    .split-col--boxes .content-box.e-con {
        --flex-direction: column !important;	
    }
    .content-box .img.e-con,
    .split-col--boxes .content-box .img.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
    }
    .content-box .txt.e-con,
    .split-col--boxes .content-box .txt.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        padding: 2rem 0rem !important;
    }
}
/* Mobile: ≤480px */
@media (max-width: 480px) {
    .content-box.e-con,
    .split-col--boxes .content-box.e-con {
        --flex-direction: column !important;
		padding: var(--space-1-5) !important;		
    }
}

/* *******************************************************
 *  FULL WIDTH SPLIT ROW - Boxed Left / Full Right  split-fwrow-l-boxed-r-full
 *  Full-width row: .col-boxed (left) + .col-full (right)
 *  BG fills full left half, content aligns with boxed containers
 * ******************************************************* */
.split-fwrow-l-boxed-r-full.e-con {
    padding: 0 !important;
}
.split-fwrow-l-boxed-r-full.e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch;
    gap: 0 !important;
    padding: 0 !important;
    width: 100%;
    max-width: 100% !important;
}
.split-fwrow-l-boxed-r-full .col-boxed.e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    padding-top: var(--space-lg) !important;
    padding-bottom: var(--space-lg) !important;
    padding-left: max(var(--space-xs), calc((100vw - 106rem) / 2 + 2rem)) !important;
    padding-right: var(--space-md) !important;
    box-sizing: border-box;
}
.split-fwrow-l-boxed-r-full .col-full.e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    padding: var(--space-sm) 0  !important;
    overflow: visible;
}
@media (max-width: 1024px) {
    .split-fwrow-l-boxed-r-full .col-boxed.e-con {
        padding-top: var(--space-lg) !important;
        padding-bottom: var(--space-lg) !important;
        padding-left: var(--space-sm) !important;
        padding-right: var(--space-sm) !important;
    }
}
@media (max-width: 767px) {
    .split-fwrow-l-boxed-r-full.e-con > .e-con-inner {
        flex-direction: column !important;
    }
    .split-fwrow-l-boxed-r-full .col-boxed.e-con,
    .split-fwrow-l-boxed-r-full .col-full.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
    }
    .split-fwrow-l-boxed-r-full .col-boxed.e-con {
        padding-top: var(--space-lg) !important;
        padding-bottom: var(--space-lg) !important;
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
}

/* *******************************************************
 *  FULL WIDTH SPLIT ROW - Full Left / Boxed Right  split-fwrow-l-full-r-boxed
 *  Full-width row: .col-full (left) + .col-boxed (right)
 *  BG fills full right half, content aligns with boxed containers
 * ******************************************************* */
.split-fwrow-l-full-r-boxed.e-con {
    padding: 0 !important;
}
.split-fwrow-l-full-r-boxed.e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch;
    gap: 0 !important;
    padding: 0 !important;
    width: 100%;
    max-width: 100% !important;
}
.split-fwrow-l-full-r-boxed .col-full.e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    padding: var(--space-sm) 0 !important;
    overflow: visible;
}
.split-fwrow-l-full-r-boxed .col-boxed.e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    padding-top: var(--space-lg) !important;
    padding-bottom: var(--space-lg) !important;
    padding-left: var(--space-md) !important;
    padding-right: max(var(--space-xs), calc((100vw - 106rem) / 2 + 2rem)) !important;
    box-sizing: border-box;
}
@media (max-width: 1024px) {
    .split-fwrow-l-full-r-boxed .col-boxed.e-con {
        padding-top: var(--space-lg) !important;
        padding-bottom: var(--space-lg) !important;
        padding-left: var(--space-sm) !important;
        padding-right: var(--space-sm) !important;
    }
}
@media (max-width: 767px) {
    .split-fwrow-l-full-r-boxed.e-con > .e-con-inner {
        flex-direction: column !important;
    }
    .split-fwrow-l-full-r-boxed .col-full.e-con,
    .split-fwrow-l-full-r-boxed .col-boxed.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
    }
    .split-fwrow-l-full-r-boxed .col-boxed.e-con {
        padding-top: var(--space-lg) !important;
        padding-bottom: var(--space-lg) !important;
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
}

/* *******************************************************
 *  FULL WIDTH SPLIT ROW - Boxed Left / Boxed Right  split-fwrow-l-boxed-r-boxed
 *  Full-width row: .col-boxed-left (left) + .col-boxed-right (right)
 *  Both halves have full BG, content aligns with boxed edges meeting at center
 * ******************************************************* */
.split-fwrow-l-boxed-r-boxed.e-con {
    padding: 0 !important;
}
.split-fwrow-l-boxed-r-boxed.e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch;
    gap: 0 !important;
    padding: 0 !important;
    width: 100%;
    max-width: 100% !important;
}
.split-fwrow-l-boxed-r-boxed .col-boxed-left.e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    padding-left: max(var(--space-xs), calc((100vw - 106rem) / 2 + var(--space-xs))) !important;
    padding-right: var(--space-md) !important;
    box-sizing: border-box;
}
.split-fwrow-l-boxed-r-boxed .col-boxed-right.e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50%;
    padding-left: var(--space-md) !important;
    padding-right: max(var(--space-xs), calc((100vw - 106rem) / 2 + var(--space-xs))) !important;
    box-sizing: border-box;
}
@media (max-width: 1024px) {
    .split-fwrow-l-boxed-r-boxed .col-boxed-left.e-con,
    .split-fwrow-l-boxed-r-boxed .col-boxed-right.e-con {
        padding-left: var(--space-sm) !important;
        padding-right: var(--space-sm) !important;
    }
}
@media (max-width: 767px) {
    .split-fwrow-l-boxed-r-boxed.e-con > .e-con-inner {
        flex-direction: column !important;
    }
    .split-fwrow-l-boxed-r-boxed .col-boxed-left.e-con,
    .split-fwrow-l-boxed-r-boxed .col-boxed-right.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
        padding-left: var(--space-xs) !important;
        padding-right: var(--space-xs) !important;
    }
}


/* *****************************
 * INNER CONTAINER LAYOUTS
 * *************************** */
/* 2-Column Text with Divider */
.text-2-cols {
    display: flex !important;
    flex-direction: row !important;
    gap: 0 !important;
    margin: var(--space-xs) 0 !important;
}
.text-2-cols > .elementor-element {
    flex: 1 1 0;
    min-width: 0;
}
.text-2-cols > .elementor-element:first-child {
    border-right: 1px solid var(--color-crail);
    padding-right: var(--space-xs);
    text-align: right;
}
.text-2-cols > .elementor-element:last-child {
    padding-left: var(--space-xs);
}

/* Stack at ≤1024px, no divider */
@media (max-width: 1024px) {
    .text-2-cols {
        flex-direction: column !important;
        gap: 10px !important;
        margin: 0 !important;
    }
    .text-2-cols > .elementor-element:first-child,
    .text-2-cols > .elementor-element:last-child,
    .text-2-cols .elementor-element {
        border-right: none;
        padding-right: 0;
        padding-left: 0;
        text-align: center !important;
    }
}


/* *****************************
 * WHITE BOX CARDS
 * *************************** */
.white-box-card {
	border: 2px solid var(--color-crail);
}

/* ******************************
 * WHITE BOX HOVER CARD
 * *************************** */
/* Card Title */
.white-box-card .elementor-flip-box__layer__title {
  font-size: var(--wst-card-title);
  font-family: Iquost;
  font-weight: 400;
  line-height: 1.3em;
  letter-spacing: -0.01em;
  margin-bottom: var(--space-1) !important;	
}
.white-box-card .elementor-flip-box__layer__description {
	line-height: 1.5em;
}

@media (max-width: 1024px) {
    /* Size to content */
    .white-box-card .elementor-flip-box {
        height: auto !important;
        cursor: default !important;        
    }

    /* Both layers back in normal flow, full width */
    .white-box-card .elementor-flip-box__layer {
        position: relative !important;
        height: auto !important;
        width: 100% !important;
        transform: none !important;
        backface-visibility: visible !important;
        opacity: 1 !important;
    }

    /* Hide the front, always show the back */
    .white-box-card .elementor-flip-box__front {
        display: none !important;
    }
    .white-box-card .elementor-flip-box__back {
        display: block !important;
    }

    /* Overlay sizes to its content */
    .white-box-card .elementor-flip-box__layer__overlay {
        height: auto !important;
    }
}


/* ******************************
 * SERVICES SLIDER CARDS
 * *************************** */
.slide-container {
    position: relative !important;
    overflow: hidden !important;
    border-radius: var(--radius-lg) !important;
    border: none !important;
    padding: var(--space-xl) var(--space-1) var(--space-1) !important;
    min-height: 40rem !important;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-mask-image: -webkit-radial-gradient(white, black);
	
}

/* Content wrapper: sits at the bottom, IS the frosted box */
.slide-container .slide-content-wrapper {
    height: auto !important;
    z-index: 2 !important;
    justify-content: flex-start !important;
    padding: var(--space-xs) !important;
    background: rgba(255, 255, 255, 0.55) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border-radius: var(--radius-sm) !important;
    gap: var(--space-xs) !important;
    min-height: 25rem !important;
	transition: all .75s ease;
}
.slide-container:hover .slide-content-wrapper {
    background: rgba(255, 255, 255, 0.5) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
}

/* Smooth transition on the image for hover blur */
.slide-container .srcset-bg img {
    transition: filter 0.25s ease;
    filter: blur(0px);
}
.slide-container:hover .srcset-bg img {
    filter: blur(2px); 
}

@media (max-width: 1700px) {
	.slide-container .slide-content-wrapper {
	    min-height: 30rem !important;
	}	
}

/* Arrow: top-right of the frosted box, rotated */
.slide-container .elementor-widget-raven-image {
  text-align: right !important;
}
.slide-container .elementor-widget-raven-image img {
  text-align: right !important;
  object-fit: contain !important;
  transform: rotate(320deg) !important;
	transition: all .5s;
}
.slide-container:hover .elementor-widget-raven-image img {
  transform: rotate(360deg) !important;
}


/* Card Content */
.slide-container .slide-content-wrapper .card-title {
  font-size: var(--wst-card-title);
  font-family: Iquost;
  font-weight: 400;
  line-height: 1.3em;
  letter-spacing: -0.01em;
  color: var(--color-neutral-darkest);
}
.slide-container .slide-content-wrapper .card-text {
  font-size: var(--wst-card-text);
  font-family: Raleway;
  font-weight: 400;
  line-height: 1.5em;
  letter-spacing: -0.01em;
  color: var(--color-neutral-darkest);	
}

@media (max-width: 1600px) {
	.slide-container {
		min-height: 45rem !important;
	}	
}

@media (max-width: 1200px) {
	.slide-container {
		min-height: 40rem !important;
	}	
}

@media (max-width: 1024px) {
	.slide-container {
		min-height: 40rem !important;
	}	
}