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


/* ******************************
 * PADDING (ALL SIDES)
 * *************************** */
.padding-0-5.e-con,
.padding-0-5.elementor-element {
    padding: var(--space-0-5) !important;
}
.padding-1.e-con,
.padding-1.elementor-element {
    padding: var(--space-1) !important;
}
.padding-1-5.e-con,
.padding-1-5.elementor-element {
    padding: var(--space-1-5) !important;
}
.padding-xs.e-con,
.padding-xs.elementor-element {
    padding: var(--space-xs) !important;
}
.padding-3.e-con,
.padding-3.elementor-element {
    padding: var(--space-3) !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-3.e-con,
    .padding-3.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-0-5 { padding-top: var(--space-0-5) !important; padding-bottom: var(--space-0-5) !important; }
.padding-y-1 { padding-top: var(--space-1) !important; padding-bottom: var(--space-1) !important; }
.padding-y-1-5 { padding-top: var(--space-1-5) !important; padding-bottom: var(--space-1-5) !important; }
.padding-y-xs { padding-top: var(--space-xs) !important; padding-bottom: var(--space-xs) !important; }
.padding-y-3 { padding-top: var(--space-3) !important; padding-bottom: var(--space-3) !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-0-5.e-con,
.padding-top-0-5.elementor-element { padding-top: var(--space-0-5) !important; }
.padding-top-1.e-con,
.padding-top-1.elementor-element { padding-top: var(--space-1) !important; }
.padding-top-1-5.e-con,
.padding-top-1-5.elementor-element { padding-top: var(--space-1-5) !important; }
.padding-top-xs.e-con,
.padding-top-xs.elementor-element { padding-top: var(--space-xs) !important; }
.padding-top-3.e-con,
.padding-top-3.elementor-element { padding-top: var(--space-3) !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-0-5.e-con,
.padding-bottom-0-5.elementor-element { padding-bottom: var(--space-0-5) !important; }
.padding-bottom-1.e-con,
.padding-bottom-1.elementor-element { padding-bottom: var(--space-1) !important; }
.padding-bottom-1-5.e-con,
.padding-bottom-1-5.elementor-element { padding-bottom: var(--space-1-5) !important; }
.padding-bottom-xs.e-con,
.padding-bottom-xs.elementor-element { padding-bottom: var(--space-xs) !important; }
.padding-bottom-3.e-con,
.padding-bottom-3.elementor-element { padding-bottom: var(--space-3) !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; }

/* TABLET PADDING VERT OVERRIDES */
@media (max-width: 1024px) {
	.padding-top-0-1024 { padding-top: 0 !important;}
	.padding-bottom-0-1024 { padding-bottom: 0 !important;}	
	.padding-top-xs-1024 { padding-top: var(--space-xs) !important;}
	.padding-bottom-xs-1024 { padding-bottom: var(--space-xs) !important;}		
	.padding-y-xs-1024 { padding-top: var(--space-xs) !important; padding-bottom: var(--space-xs) !important; }
	.padding-top-sm-1024 { padding-top: var(--space-sm) !important;}
	.padding-bottom-sm-1024 { padding-bottom: var(--space-sm) !important;}		
	.padding-y-sm-1024 { padding-top: var(--space-sm) !important; padding-bottom: var(--space-sm) !important; }	
	.padding-top-md-1024 { padding-top: var(--space-md) !important;}
	.padding-bottom-md-1024 { padding-bottom: var(--space-md) !important;}		
	.padding-y-md-1024 { padding-top: var(--space-md) !important; padding-bottom: var(--space-md) !important; }		
}

/* MOBILE PADDING VERT OVERRIDES */
@media (max-width: 767px) {
	.padding-top-0-767.e-con { padding-top: 0 !important;}
	.padding-bottom-0-767.e-con { padding-bottom: 0 !important;}
	.padding-y-xs-767.e-con { padding-top: var(--space-xs) !important; padding-bottom: var(--space-xs) !important; }	
	.padding-top-xs-767.e-con { padding-top: var(--space-xs) !important;}
	.padding-bottom-xs-767.e-con { padding-bottom: var(--space-xs) !important;}	
	.padding-y-sm-767.e-con { padding-top: var(--space-sm) !important; padding-bottom: var(--space-sm) !important; }	
	.padding-top-sm-767.e-con { padding-top: var(--space-sm) !important;}	
	.padding-bottom-sm-767.e-con { padding-bottom: var(--space-sm) !important;}	
	.padding-y-md-767.e-con { padding-top: var(--space-md) !important; padding-bottom: var(--space-md) !important; }	
	.padding-top-md-767.e-con { padding-top: var(--space-md) !important;}	
	.padding-bottom-md-767.e-con { padding-bottom: var(--space-md) !important;}
	.padding-y-lg-767.e-con { padding-top: var(--space-lg) !important; padding-bottom: var(--space-lg) !important; }	
	.padding-top-lg-767.e-con { padding-top: var(--space-lg) !important;}	
	.padding-bottom-lg-767.e-con { padding-bottom: var(--space-lg) !important;}	
}


/* ******************************
 * PADDING X (LEFT + RIGHT)
 * *************************** */
.padding-x-0-5 { padding-left: var(--space-0-5) !important; padding-right: var(--space-0-5) !important; }
.padding-x-1 { padding-left: var(--space-1) !important; padding-right: var(--space-1) !important; }
.padding-x-1-5 { padding-left: var(--space-1-5) !important; padding-right: var(--space-1-5) !important; }
.padding-x-xs { padding-left: var(--space-xs) !important; padding-right: var(--space-xs) !important; }
.padding-x-3 { padding-left: var(--space-3) !important; padding-right: var(--space-3) !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-0-5.e-con { padding-left: var(--space-0-5) !important; }
.padding-left-1.e-con { padding-left: var(--space-1) !important; }
.padding-left-1-5.e-con { padding-left: var(--space-1-5) !important; }
.padding-left-xs.e-con { padding-left: var(--space-xs) !important; }
.padding-left-3.e-con { padding-left: var(--space-3) !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-0-5.e-con { padding-right: var(--space-0-5) !important; }
.padding-right-1.e-con { padding-right: var(--space-1) !important; }
.padding-right-1-5.e-con { padding-right: var(--space-1-5) !important; }
.padding-right-xs.e-con { padding-right: var(--space-xs) !important; }
.padding-right-3.e-con { padding-right: var(--space-3) !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; }

@media (max-width: 767px) {
	.padding-right-0-767.e-con { padding-right: 0 !important; }
	.padding-left-0-767.e-con { padding-left: 0 !important; }	
	.padding-x-0-767.e-con { padding-right: 0 !important; padding-left: 0 !important; }
}

/* Small mobile: compress X only, Y stays at 767px values */
@media (max-width: 480px) {
    .padding-x-3,
    .padding-left-3.e-con,
    .padding-right-3.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; }
	.padding-right-0-767.e-con { padding-right: 0 !important; }	
	.padding-left-0-767.e-con { padding-left: 0 !important; }	
	.padding-x-0-767.e-con { padding-right: 0 !important; padding-left: 0 !important; }	
}


/* ******************************
 * MARGIN Y (TOP + BOTTOM)
 * *************************** */
.margin-y-0-5.e-con { margin-top: var(--space-0-5) !important; margin-bottom: var(--space-0-5) !important; }
.margin-y-1.e-con { margin-top: var(--space-1) !important; margin-bottom: var(--space-1) !important; }
.margin-y-1-5.e-con { margin-top: var(--space-1-5) !important; margin-bottom: var(--space-1-5) !important; }
.margin-y-xs.e-con { margin-top: var(--space-xs) !important; margin-bottom: var(--space-xs) !important; }
.margin-y-3.e-con { margin-top: var(--space-3) !important; margin-bottom: var(--space-3) !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-0-5.e-con,
.margin-top-0-5.elementor-element,
.margin-top-0-5.elementor-widget { margin-top: var(--space-0-5) !important; }
.margin-top-1.e-con,
.margin-top-1.elementor-element,
.margin-top-1.elementor-widget { margin-top: var(--space-1) !important; }
.margin-top-1-5.e-con,
.margin-top-1-5.elementor-element,
.margin-top-1-5.elementor-widget { margin-top: var(--space-1-5) !important; }
.margin-top-xs.e-con,
.margin-top-xs.elementor-element,
.margin-top-xs.elementor-widget { margin-top: var(--space-xs) !important; }
.margin-top-3.e-con,
.margin-top-3.elementor-element,
.margin-top-3.elementor-widget { margin-top: var(--space-3) !important; }
.margin-top-sm.e-con,
.margin-top-sm.elementor-element,
.margin-top-sm.elementor-widget { margin-top: var(--space-sm) !important; }
.margin-top-md.e-con,
.margin-top-md.elementor-element,
.margin-top-md.elementor-widget { margin-top: var(--space-md) !important; }
.margin-top-lg.e-con,
.margin-top-lg.elementor-element,
.margin-top-lg.elementor-widget { margin-top: var(--space-lg) !important; }
.margin-top-xl.e-con,
.margin-top-xl.elementor-element,
.margin-top-xl.elementor-widget { margin-top: var(--space-xl) !important; }

/* MARGIN BOTTOM */
.margin-bottom-0-5.e-con,
.margin-bottom-0-5.elementor-element,
.margin-bottom-0-5.elementor-widget { margin-bottom: var(--space-0-5) !important; }
.margin-bottom-1.e-con,
.margin-bottom-1.elementor-element,
.margin-bottom-1.elementor-widget { margin-bottom: var(--space-1) !important; }
.margin-bottom-1-5.e-con,
.margin-bottom-1-5.elementor-element,
.margin-bottom-1-5.elementor-widget { margin-bottom: var(--space-1-5) !important; }
.margin-bottom-xs.e-con,
.margin-bottom-xs.elementor-element,
.margin-bottom-xs.elementor-widget { margin-bottom: var(--space-xs) !important; }
.margin-bottom-3.e-con,
.margin-bottom-3.elementor-element,
.margin-bottom-3.elementor-widget { margin-bottom: var(--space-3) !important; }
.margin-bottom-sm.e-con,
.margin-bottom-sm.elementor-element,
.margin-bottom-sm.elementor-widget { margin-bottom: var(--space-sm) !important; }
.margin-bottom-md.e-con,
.margin-bottom-md.elementor-element,
.margin-bottom-md.elementor-widget { margin-bottom: var(--space-md) !important; }
.margin-bottom-lg.e-con,
.margin-bottom-lg.elementor-element,
.margin-bottom-lg.elementor-widget { margin-bottom: var(--space-lg) !important; }
.margin-bottom-xl.e-con,
.margin-bottom-xl.elementor-element,
.margin-bottom-xl.elementor-widget { 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-0-5.e-con,   .gap-0-5 .e-con-inner,   .gap-0-5.content-wrapper   { gap: var(--space-0-5) !important; }
.gap-1.e-con,     .gap-1 .e-con-inner,     .gap-1.content-wrapper     { gap: var(--space-1) !important; }
.gap-1-5.e-con,   .gap-1-5 .e-con-inner,   .gap-1-5.content-wrapper   { gap: var(--space-1-5) !important; }
.gap-xs.e-con,    .gap-xs .e-con-inner,    .gap-xs.content-wrapper    { gap: var(--space-xs) !important; }
.gap-3.e-con,     .gap-3 .e-con-inner,     .gap-3.content-wrapper     { gap: var(--space-3) !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-0.e-con,
.gap-tablet-0 .e-con-inner,
.gap-tablet-0.content-wrapper     { gap: var(--space-0) !important; }
.gap-tablet-0-5.e-con,
.gap-tablet-0-5 .e-con-inner,
.gap-tablet-0-5.content-wrapper   { gap: var(--space-0-5) !important; }
.gap-tablet-1.e-con,
.gap-tablet-1 .e-con-inner,
.gap-tablet-1.content-wrapper     { gap: var(--space-1) !important; }
.gap-tablet-1-5.e-con,
.gap-tablet-1-5 .e-con-inner,
.gap-tablet-1-5.content-wrapper   { gap: var(--space-1-5) !important; }
.gap-tablet-xs.e-con,
.gap-tablet-xs .e-con-inner,
.gap-tablet-xs.content-wrapper    { gap: var(--space-xs) !important; }
.gap-tablet-3.e-con,
.gap-tablet-3 .e-con-inner,
.gap-tablet-3.content-wrapper     { gap: var(--space-3) !important; }
.gap-tablet-sm.e-con,
.gap-tablet-sm .e-con-inner,
.gap-tablet-sm.content-wrapper    { gap: var(--space-sm) !important; }
.gap-tablet-md.e-con,
.gap-tablet-md .e-con-inner,
.gap-tablet-md.content-wrapper    { gap: var(--space-md) !important; }
.gap-tablet-lg.e-con,
.gap-tablet-lg .e-con-inner,
.gap-tablet-lg.content-wrapper    { gap: var(--space-lg) !important; }
.gap-tablet-xl.e-con,
.gap-tablet-xl .e-con-inner,
.gap-tablet-xl.content-wrapper    { gap: var(--space-xl) !important; }
}

/* Gap Mobile 767px Overrides */
@media (max-width: 767px) {
.gap-mobile-0.e-con,
.gap-mobile-0 .e-con-inner,
.gap-mobile-0.content-wrapper     { gap: var(--space-0) !important; }
.gap-mobile-0-5.e-con,
.gap-mobile-0-5 .e-con-inner,
.gap-mobile-0-5.content-wrapper   { gap: var(--space-0-5) !important; }
.gap-mobile-1.e-con,
.gap-mobile-1 .e-con-inner,
.gap-mobile-1.content-wrapper     { gap: var(--space-1) !important; }
.gap-mobile-1-5.e-con,
.gap-mobile-1-5 .e-con-inner,
.gap-mobile-1-5.content-wrapper   { gap: var(--space-1-5) !important; }
.gap-mobile-xs.e-con,
.gap-mobile-xs .e-con-inner,
.gap-mobile-xs.content-wrapper    { gap: var(--space-xs) !important; }
.gap-mobile-3.e-con,
.gap-mobile-3 .e-con-inner,
.gap-mobile-3.content-wrapper     { gap: var(--space-3) !important; }
.gap-mobile-sm.e-con,
.gap-mobile-sm .e-con-inner,
.gap-mobile-sm.content-wrapper    { gap: var(--space-sm) !important; }
.gap-mobile-md.e-con,
.gap-mobile-md .e-con-inner,
.gap-mobile-md.content-wrapper    { gap: var(--space-md) !important; }
.gap-mobile-lg.e-con,
.gap-mobile-lg .e-con-inner,
.gap-mobile-lg.content-wrapper    { gap: var(--space-lg) !important; }
.gap-mobile-xl.e-con,
.gap-mobile-xl .e-con-inner,
.gap-mobile-xl.content-wrapper    { gap: var(--space-xl) !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;
    }
}


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


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


/* *****************************
 * FIXED BACKGROUND - DESKTOP DEFAULT
 * 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;
}


/* *****************************
 * FIXED BG - DISABLE ON TOUCH DEVICES
 * Covers all iPhones and iPads regardless of width/orientation
 * *************************** */
@media (pointer: coarse), (max-width: 1024px) {

    /* Disable Background-Attachment Fixed */
    .bg-fixed,
    .bg-fixed .elementor-background-overlay,
    .bg-fixed:before {
        background-attachment: scroll !important;
        background-size: cover !important;
        background-repeat: no-repeat !important;
        transform: translateZ(0);
    }

    /* Flatten Srcset-BG Image Parallax */
    .bg-fixed .srcset-bg img,
    .hero .srcset-bg img {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 0 !important;
        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;
    }

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

    /* Apple Landscape Elementor Pseudo-Element */
    .e--ua-appleWebkit .elementor-element.e-con::before {
        background-attachment: initial !important;
    }
}


/* *****************************
 * FIXED BG IMAGE - IMAGE POSITION ON LARGE & SMALL SCREENS
 * *************************** */
/* At All Widths - Vertical image position overrides for bg-fixed sections */
.bg-fixed.bg-0 .srcset-bg img { object-position: center 0%   !important; }
.bg-fixed.bg-25 .srcset-bg img { object-position: center 25%  !important; }
.bg-fixed.bg-33 .srcset-bg img { object-position: center 33%  !important; }
.bg-fixed.bg-50 .srcset-bg img { object-position: center 50%  !important; }
.bg-fixed.bg-67 .srcset-bg img { object-position: center 67%  !important; }
.bg-fixed.bg-75 .srcset-bg img { object-position: center 75%  !important; }
.bg-fixed.bg-100 .srcset-bg img { object-position: center 100% !important; }

@media (max-width: 1200px) {
	/* At 1200px - Horizontal image position overrides for bg-fixed sections */
	.bg-fixed.bg-1200-0   .srcset-bg img { object-position: 0%   center !important; }
	.bg-fixed.bg-1200-25  .srcset-bg img { object-position: 25%  center !important; }
	.bg-fixed.bg-1200-33  .srcset-bg img { object-position: 33%  center !important; }
	.bg-fixed.bg-1200-50  .srcset-bg img { object-position: 50%  center !important; }
	.bg-fixed.bg-1200-67  .srcset-bg img { object-position: 67%  center !important; }
	.bg-fixed.bg-1200-75  .srcset-bg img { object-position: 75%  center !important; }
	.bg-fixed.bg-1200-100 .srcset-bg img { object-position: 100% center !important; }
}

@media (max-width: 1024px) {
	/* At 1024px - Horizontal image position overrides for bg-fixed sections */
	.bg-fixed.bg-1024-0   .srcset-bg img { object-position: 0%   center !important; }
	.bg-fixed.bg-1024-25  .srcset-bg img { object-position: 25%  center !important; }
	.bg-fixed.bg-1024-33  .srcset-bg img { object-position: 33%  center !important; }
	.bg-fixed.bg-1024-50  .srcset-bg img { object-position: 50%  center !important; }
	.bg-fixed.bg-1024-67  .srcset-bg img { object-position: 67%  center !important; }
	.bg-fixed.bg-1024-75  .srcset-bg img { object-position: 75%  center !important; }
	.bg-fixed.bg-1024-100 .srcset-bg img { object-position: 100% center !important; }
}

@media (max-width: 767px) {
	/* At 767px - Vertical image position overrides for bg-fixed sections */
	.bg-fixed.bg-767-0   .srcset-bg img { object-position: center 0%   !important; }
	.bg-fixed.bg-767-25  .srcset-bg img { object-position: center 25%  !important; }
	.bg-fixed.bg-767-33  .srcset-bg img { object-position: center 33%  !important; }
	.bg-fixed.bg-767-50  .srcset-bg img { object-position: center 50%  !important; }
	.bg-fixed.bg-767-67  .srcset-bg img { object-position: center 67%  !important; }
	.bg-fixed.bg-767-75  .srcset-bg img { object-position: center 75%  !important; }
	.bg-fixed.bg-767-100 .srcset-bg img { object-position: center 100% !important; }
}

@media (max-width: 480px) {
	/* At 480px - Vertical image position overrides for bg-fixed sections */
	.bg-fixed.bg-480-0   .srcset-bg img { object-position: center 0%   !important; }
	.bg-fixed.bg-480-25  .srcset-bg img { object-position: center 25%  !important; }
	.bg-fixed.bg-480-33  .srcset-bg img { object-position: center 33%  !important; }
	.bg-fixed.bg-480-50  .srcset-bg img { object-position: center 50%  !important; }
	.bg-fixed.bg-480-67  .srcset-bg img { object-position: center 67%  !important; }
	.bg-fixed.bg-480-75  .srcset-bg img { object-position: center 75%  !important; }
	.bg-fixed.bg-480-100 .srcset-bg img { object-position: center 100% !important; }
}


/* ******************************
 * BLUR BG - add to container holding a srcset-bg image widget
 * *************************** */
.blur-bg .srcset-bg img,
.srcset-bg.blur-bg img {
    filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);	
    transform: scale(1.05);
}


/* ******************************
 * CONTENT BLUR BOX
 * *************************** */
.content-blur-box {
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(255, 255, 255, 0.18);
	box-shadow: 0 0 12px 9px rgba(0, 0, 0, 0.16);
	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);	
}


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


/* *****************************
 * BG WRAPPER INSET SHADOW
 * Add class "shadow-inset" to bg-wrapper in Elementor
 * *************************** */
.bg-wrapper.shadow-inset::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    box-shadow: rgba(0, 0, 0, 0.15) 0px 10px 12px 0px inset;
}


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

@media (max-width: 1024px) {
	body.home .hero {
		padding: 16rem 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;
}
*/

/* *****************************
* KEN BURNS EFFECT - HOME HERO ONLY
* *************************** */
@media (prefers-reduced-motion: no-preference) {
  body.home .hero .srcset-bg img {
    animation: ken-burns 25s ease forwards;
    transform-origin: center center;
  }
}

@keyframes ken-burns {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}


/* *****************************
 * INTRO SECTION CONTENT WRAPPER - make the content area less wide
 * *************************** */
.intro-section > .content-wrapper {
    max-width: 68%;
}
@media (max-width: 1600px) { .intro-section > .content-wrapper { max-width: 75%; } }
@media (max-width: 1440px) { .intro-section > .content-wrapper { max-width: 80%; } }
@media (max-width: 1200px) { .intro-section > .content-wrapper { max-width: 90%; } }
@media (max-width: 1024px) { .intro-section > .content-wrapper { max-width: 95%; } }
@media (max-width: 768px)  { .intro-section > .content-wrapper { max-width: 100%; } }


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


/* *****************************
 * HERO BG OVERLAY
 * *************************** */
/* Hero BG Wrapper Default Overlay */
.hero .bg-wrapper .overlay {
  background: linear-gradient(180deg, #1A2B6D 0%, #00ADEF 100%);
  mix-blend-mode: multiply;
  opacity: 1;
}


/* *****************************
 * BG OVERLAY
 * *************************** */
/* BG Wrapper Default Overlay */
.bg-wrapper .overlay {
  background: linear-gradient(180deg, #1A2B6D 0%, #00ADEF 100%);
  mix-blend-mode: multiply;
  opacity: 1;
}


/* *****************************
 * BG OVERLAY ALT
 * BG Wrapper Container CLASSES: bg-wrapper bg-overlay-alt
 * *************************** */
.bg-wrapper.bg-overlay-alt .overlay {
  background: radial-gradient(circle,#00ADEFAA 0%, #0A112B 100%) !important;
  mix-blend-mode: normal;
	opacity: 1;
}


/* *****************************
 * BG OVERLAY DARK
 * BG Wrapper Container CLASSES: bg-wrapper bg-overlay-dark
 * *************************** */
.bg-wrapper.bg-overlay-dark .overlay {
  background: linear-gradient(180deg, #0A112BEE 0%, #0A112BAA 100%);
  opacity: 1;
}


/* *****************************
 * BG OVERLAY LIGHT
 * BG Wrapper Container CLASSES: bg-wrapper bg-overlay-light
 * *************************** */
/* BG Overlay Light */
.bg-wrapper.bg-overlay-light .overlay {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.75) 0%, #00ADEFCC 100%);
  mix-blend-mode: normal;
  opacity: 1;
}


/* *****************************
 * BG OVERLAY GRADIENT IMAGE
 * BG Wrapper Container CLASSES: bg-wrapper bg-overlay-gradient 
 * add Gradient bg image in :after below
 * *************************** */
.bg-wrapper.bg-overlay-gradient .srcset-bg img {
    filter: grayscale(100%);
}
/* Kill the default dark overlay */
.bg-wrapper.bg-overlay-gradient .overlay::before {
    display: none;
}
.bg-wrapper.bg-overlay-gradient .srcset-bg .elementor-widget-container::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('');
    background-size: 100% 100%;
    mix-blend-mode: multiply;
}


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


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

.bg-wrapper:has(.srcset-bg) .overlay {
  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;	
}
.srcset-bg img {
  mix-blend-mode: normal;
}


/* *****************************
 * COLOR BACKGROUND IMAGE CONTAINERS - Image has Multiply Effect on Color Background 
 * BG Wrapper Container CLASSES: bg-wrapper bg-pic-overlay
 * *************************** */
/* BG PIC OVERLAY — matches Hero/Default gradient */
.bg-wrapper.bg-pic-overlay .srcset-bg .elementor-widget-container {
    background: linear-gradient(180deg, #1A2B6D 0%, #00ADEF 100%);
}
.bg-wrapper.bg-pic-overlay .srcset-bg img {
  mix-blend-mode: multiply !important;
}
.bg-wrapper.bg-pic-overlay .overlay {
  background: none !important;
}


/* *****************************
 * ALTERNATE COLOR BACKGROUND IMAGE CONTAINERS - Image has Multiply Effect on Color Background
 * BG Wrapper Container CLASSES: bg-wrapper bg-pic-overlay alt
 * *************************** */
/* BG PIC OVERLAY ALT — matches the radial bg-overlay-alt gradient */
.bg-wrapper.bg-pic-overlay.alt .srcset-bg .elementor-widget-container {
  background: radial-gradient(circle,#00ADEFAA 0%, #0A112B 100%) !important;
}
.bg-wrapper.bg-pic-overlay.alt .srcset-bg img {
  mix-blend-mode: multiply !important;
}
.bg-wrapper.bg-pic-overlay.alt .overlay {
  background: none !important;
}



/* Prevent flash of unblended image on load - only for pic-overlay with actual image */
.bg-wrapper.bg-pic-overlay:has(.srcset-bg) .srcset-bg img,
.bg-wrapper.bg-pic-overlay.alt:has(.srcset-bg) .srcset-bg img {
    animation: bg-fade-in 0ms 150ms both;
}
@keyframes bg-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}


/* *****************************
 * NO PARALLAX - Override for Srcset BG images inside a container with fixed bg so this image is NOT fixed/parallax
 * *************************** */
.no-parallax .srcset-bg,
.no-parallax .srcset-bg .elementor-widget-container {
    clip-path: none !important;
    z-index: 0 !important;
}
.no-parallax .srcset-bg img {
    position: absolute !important;
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
    will-change: auto !important;
    z-index: 0 !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;
}


/* *****************************
 * 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 LAYOUTS
* =========================================================
*
* PARENT ROW CLASSES (choose one)
*   .split-row-img-txt   image source first in DOM - image on LEFT desktop
*   .split-row-txt-img   text source first in DOM  - text  on LEFT desktop
*
* COLUMN WIDTH CLASSES (use ONE pair inside the row)
*   50/50:        .split-col--img      + .split-col--txt
*   Asymmetric:   .split-col--img-sm   + .split-col--txt-lg     (35% / 65%)
*                 .split-col--img-lg   + .split-col--txt-sm     (65% / 35%)
*
* IMAGE TYPE
*   By default, the image renders at its natural aspect ratio inside the
*   image column.
*   To make the image fill the column like a background image (stretching
*   to fill the full column height, cropping as needed), add the class
*   .srcset-bg to the image element itself.
*
* VERTICAL SPACING
*   The text column has built-in vertical padding (--space-md top + bottom on
*   desktop, --space-sm top + bottom on mobile) so text always has breathing
*   room and the image naturally ends up taller than the text - which is the
*   intended look.
*
*   To add EXTRA row-level breathing room (e.g. for rows with a colored
*   background, or when you want extra space around a section), add a
*   padding-y-* utility class to the PARENT row (padding-y-sm, padding-y-md,
*   padding-y-lg, etc.). This stacks on top of the built-in text padding.
*
* OPTIONAL MODIFIERS
*   .centered   on a .split-col--txt-lg: adds horizontal padding on the
*               outer side so centered text breathes
* ******************************************************* */

/* --- Parent rows: shared flex layout --- */
.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: 0.5rem;
}

/* --- Column widths --- */
/* 50/50 */
.split-row-img-txt .split-col--img,
.split-row-img-txt .split-col--txt,
.split-row-txt-img .split-col--img,
.split-row-txt-img .split-col--txt {
  flex: 0 0 50% !important;
  width: 50% !important;
  max-width: 50%;
}
/* sm = 35% */
.split-col--img-sm.e-con,
.split-col--txt-sm.e-con {
  flex: 0 0 35% !important;
  width: 35% !important;
  max-width: 35%;
}
/* lg = 65% */
.split-col--img-lg.e-con,
.split-col--txt-lg.e-con {
  flex: 0 0 65% !important;
  width: 65% !important;
  max-width: 65%;
}

/* --- Text columns: vertical centering + built-in vertical padding ---
   Default top/bottom padding gives text breathing room so the image naturally
   ends up taller than the text. Add padding-y-* on the parent row for extra. */
.split-row-img-txt .split-col--txt,
.split-row-img-txt .split-col--txt-sm,
.split-row-img-txt .split-col--txt-lg,
.split-row-txt-img .split-col--txt,
.split-row-txt-img .split-col--txt-sm,
.split-row-txt-img .split-col--txt-lg {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: var(--space-md) !important;
  padding-bottom: var(--space-md) !important;
}

/* --- Horizontal gutter (space between the two halves) ---
   Image side gets gutter toward the text; text side gets gutter away from the image. */
.split-row-img-txt .split-col--img,
.split-row-img-txt .split-col--img-sm,
.split-row-img-txt .split-col--img-lg {
  padding: var(--space-sm) var(--space-sm) var(--space-sm) 0 !important;
}
.split-row-img-txt .split-col--txt,
.split-row-img-txt .split-col--txt-sm,
.split-row-img-txt .split-col--txt-lg {
  padding-left: var(--space-sm) !important;
  padding-right: 0 !important;
}
.split-row-txt-img .split-col--img,
.split-row-txt-img .split-col--img-sm,
.split-row-txt-img .split-col--img-lg {
  padding: var(--space-sm) 0 var(--space-sm) var(--space-sm) !important;
}
.split-row-txt-img .split-col--txt,
.split-row-txt-img .split-col--txt-sm,
.split-row-txt-img .split-col--txt-lg {
  padding-right: var(--space-sm) !important;
  padding-left: 0 !important;
}

/* --- Optional .centered helper on .split-col--txt-lg ---
   Desktop only: adds horizontal padding on the outer side so centered text
   breathes. At mobile (≤767px) the text column is full-width with no gutter,
   so this rule doesn't apply. */
@media (min-width: 768px) {
  .split-row-img-txt .split-col--txt-lg.centered.e-con {
    padding-right: var(--space-sm) !important;
  }
  .split-row-txt-img .split-col--txt-lg.centered.e-con {
    padding-left: var(--space-sm) !important;
  }
}

/* --- Mobile: stack everything, text on top for img-txt rows --- */
@media (max-width: 767px) {
  .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;
  }

  /* All image columns: full width, no padding */
  .split-col--img.e-con,
  .split-col--img-sm.e-con,
  .split-col--img-lg.e-con {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100%;
    padding: 0 0 var(--space-md) 0 !important;
  }
  /* srcset-bg image columns need explicit height when stacked
     (they have no intrinsic height - they fill their parent) */
  .split-col--img.e-con:has(.srcset-bg),
  .split-col--img-sm.e-con:has(.srcset-bg),
  .split-col--img-lg.e-con:has(.srcset-bg) {
    min-height: 250px;
  }

  /* All text columns: full width, slim default vertical padding so stacked
     text has breathing room from the image above/below and the row edges */
  .split-row-img-txt .split-col--txt.e-con,
  .split-row-img-txt .split-col--txt-sm.e-con,
  .split-row-img-txt .split-col--txt-lg.e-con,
  .split-row-txt-img .split-col--txt.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-md) 0 var(--space-xs) 0 !important;
  }

  /* When the parent row has its own vertical padding (padding-y-*),
     drop the text column's TOP padding to 0 */
  [class*="padding-y-"].split-row-img-txt .split-col--txt.e-con,
  [class*="padding-y-"].split-row-img-txt .split-col--txt-sm.e-con,
  [class*="padding-y-"].split-row-img-txt .split-col--txt-lg.e-con,
  [class*="padding-y-"].split-row-txt-img .split-col--txt.e-con,
  [class*="padding-y-"].split-row-txt-img .split-col--txt-sm.e-con,
  [class*="padding-y-"].split-row-txt-img .split-col--txt-lg.e-con {
    padding-top: 0 !important;
    padding-bottom: var(--space-xs) !important;
  }
  /* When the parent row has its own vertical padding (padding-y-*),
     drop the image column's BOTTOM padding to 0 */	
  [class*="padding-y-"].split-row-img-txt .split-col--img.e-con,
  [class*="padding-y-"].split-row-img-txt .split-col--img-sm.e-con,
  [class*="padding-y-"].split-row-img-txt .split-col--img-lg.e-con,
  [class*="padding-y-"].split-row-txt-img .split-col--img.e-con,
  [class*="padding-y-"].split-row-txt-img .split-col--img-sm.e-con,
  [class*="padding-y-"].split-row-txt-img .split-col--img-lg.e-con {
    padding-bottom: 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-row-txt-boxes .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 */
.split-row-txt-boxes .content-box.e-con,
.split-row-txt-boxes .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 */
.split-row-txt-boxes .content-box .img.e-con,
.split-row-txt-boxes .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;
}
.split-row-txt-boxes .content-box .img.e-con,
.split-row-txt-boxes .content-box .img.e-con .elementor-widget-raven-image,
.split-row-txt-boxes .content-box .img.e-con .elementor-widget-container,
.split-row-txt-boxes .content-box .img.e-con .raven-image {
    height: 100% !important;
}
.split-row-txt-boxes .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 */
.split-row-txt-boxes .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 */
.split-row-txt-boxes .content-box .txt.e-con,
.split-row-txt-boxes .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;
}
.split-row-txt-boxes .content-box .txt.e-con h3 {
    font-size: var(--wst-card-title);
    margin-bottom: 0.75rem;
}
.split-row-txt-boxes .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-row-txt-boxes .split-col--boxes.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
    }
    .split-row-txt-boxes .content-box.e-con,
    .split-row-txt-boxes .split-col--boxes .content-box.e-con {
        --flex-direction: row !important;
    }
    .split-row-txt-boxes .content-box .img.e-con,
    .split-row-txt-boxes .split-col--boxes .content-box .img.e-con {
        width: 35% !important;
        flex: 0 0 35% !important;
        max-width: 35%;
    }
    .split-row-txt-boxes .content-box .txt.e-con,
    .split-row-txt-boxes .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) {
    .split-row-txt-boxes .content-box.e-con,
    .split-row-txt-boxes .split-col--boxes .content-box.e-con {
        --flex-direction: column !important;	
    }
    .split-row-txt-boxes .content-box .img.e-con,
    .split-row-txt-boxes .split-col--boxes .content-box .img.e-con {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100%;
    }
    .split-row-txt-boxes .content-box .txt.e-con,
    .split-row-txt-boxes .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) {
    .split-row-txt-boxes .content-box.e-con,
    .split-row-txt-boxes .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;
}
.split-fwrow-l-boxed-r-boxed .col-boxed-left.e-con,
.split-fwrow-l-boxed-r-boxed .col-boxed-right.e-con {
  justify-content: flex-start !important;
}

@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(--e-global-color-primary);
    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;
    }
}

/* *****************************
 * CONTENT CARDS
 * *************************** */
.content-cards {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 32px !important;
}

/* HOVER CARDS */
.content-cards a.card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.content-cards a.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

/* Card alternating colors */
.content-cards.cards-colors .card:nth-child(3n+1) {
    background-color: var(--color-lucky-point-darkest) !important;
}
.content-cards.cards-colors .card:nth-child(3n+2) {
    background-color: var(--color-lucky-point-dark) !important;
}
.content-cards.cards-colors .card:nth-child(3n+3) {
    background-color: var(--e-global-color-primary) !important;
}

/* Card Borders */
.content-cards.cards-borders .card {
	border: 1px solid #FFFFFF80;
	background-color: transparent !important;
}

/* Card */ 
.content-cards .card {
	border-radius: 16px;	
    padding: var(--space-xs);	
}


/* Title */
.content-cards .card-top h3 {
    font-size: var(--wst-card-title) !important;
    color: var(--color-white) !important;
	letter-spacing: 0 !important;
}

/* Text */
.content-cards .card-bottom p {
    font-size: var(--wst-body-text) !important;
    color: var(--color-white) !important;
}


/* *****************************
 * CARDS STACKED: Image on Top / Text on Bottom
 * *************************** */
/* Parent: cards flow into rows and wrap */
.cards-stacked.e-con.e-flex {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 32px !important;
	justify-content: center;	
}

/* Card: stack children vertically, kill padding so image is edge-to-edge */
.cards-stacked .content-box.e-con {
    flex-direction: column !important;
    padding: 0 !important;
    overflow: hidden !important;
	border: 1px solid #FFFFFF80;
	border-radius: 16px;
}
.cards-stacked.cards-reversed .content-box.e-con {
    flex-direction: column-reverse !important;
}

/* Image Container: full width, fixed top-half height */
.cards-stacked .content-box .img.e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    height: 14rem !important;
    padding: 0 !important;
    overflow: hidden !important;
    align-self: stretch !important;
}
.cards-stacked .content-box .img.e-con .elementor-widget-raven-image,
.cards-stacked .content-box .img.e-con .elementor-widget-container,
.cards-stacked .content-box .img.e-con .raven-image {
    height: 100% !important;
    width: 100% !important;
}
.cards-stacked .content-box .img.e-con img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

/* Image Container: add class img-contain to .cards-stacked - full width, fixed height, no clipping - good if need border radius on images with NO CROPPING */
.cards-stacked.img-contain .content-box .img.e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    height: 14rem !important;
    padding: 0 !important;
    overflow: hidden !important;
    align-self: stretch !important;
    background: transparent !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.cards-stacked.img-contain .content-box .img.e-con .elementor-widget-raven-image,
.cards-stacked.img-contain .content-box .img.e-con .elementor-widget-container,
.cards-stacked.img-contain .content-box .img.e-con .raven-image {
    height: 100% !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
}
.cards-stacked.img-contain .content-box .img.e-con img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
    border-radius: 16px !important;
}

/* Text Area */
.cards-stacked .content-box .txt.e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    padding: var(--space-xs) !important;
}
.cards-stacked h3,
.cards-stacked .elementor-heading-title {
    font-size: var(--wst-card-title) !important;
}
.cards-stacked .txt p {
    font-size: var(--wst-card-text) !important;
}


/* *****************************
 * CARDS STACKED - HOVER VARIANT - adjust as needed
 * *************************** */

/* Card: height auto, driven by .txt content */
.cards-stacked.hover-cards .content-box.e-con {
    height: auto !important;
    position: relative !important;
    overflow: hidden !important;
    background: #fff !important;
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.4s ease;
    flex-direction: column !important;
    display: flex !important;
}
.cards-stacked.hover-cards .content-box.e-con:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

/* txt: in normal flow — this is what drives the card height */
.cards-stacked.hover-cards .content-box .txt.e-con {
    position: relative !important;
    inset: auto !important;
    height: auto !important;
    width: 100% !important;
    background: #fff !important;
    padding: var(--space-xs) !important;
    gap: 0 !important;
    z-index: 2 !important;
    overflow: visible !important;
}

/* bg-wrapper: absolute, starts at 45% from top, covers bottom 55% as image area */
.cards-stacked.hover-cards .content-box .bg-wrapper {
    position: absolute !important;
    top: 45% !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: auto !important;
    width: 100% !important;
    z-index: 3 !important;
    overflow: hidden !important;
    transition: opacity 0.4s ease !important;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
}

/* srcset-bg img: override fixed/parallax positioning, fill the bg-wrapper */
.cards-stacked.hover-cards .content-box .bg-wrapper .srcset-bg,
.cards-stacked.hover-cards .content-box .bg-wrapper .srcset-bg .elementor-widget-container {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    width: 100% !important;
}
.cards-stacked.hover-cards .content-box .bg-wrapper .srcset-bg img {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    width: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    z-index: 1 !important;
}

/* Remove the white overlay that's built into bg-overlay-white-light */
.cards-stacked.hover-cards .content-box .bg-wrapper .overlay::before,
.cards-stacked.hover-cards .content-box .bg-wrapper .overlay::after {
    background: none !important;
    opacity: 0 !important;
}

/* Heading */
.cards-stacked.hover-cards .content-box .txt h3,
.cards-stacked.hover-cards .content-box .txt .elementor-heading-title {
    color: var(--color-bastille) !important;
    text-align: left !important;
    margin: 0 0 1rem 0 !important;
}

/* Para: always in flow (drives card height) but invisible by default */
.cards-stacked.hover-cards .content-box .txt .elementor-widget-text-editor {
    opacity: 0;
    transition: opacity 0.4s ease;
}
.cards-stacked.hover-cards .content-box .txt .elementor-widget-text-editor p {
    color: var(--color-bastille) !important;
    text-align: left !important;
    margin: 0 !important;
}

/* Hover: bg image fades out, para text fades in */
.cards-stacked.hover-cards .content-box:hover .bg-wrapper {
    opacity: 0;
}
.cards-stacked.hover-cards .content-box:hover .txt .elementor-widget-text-editor {
    opacity: 1;
}

@media (max-width: 1440px) {
    .cards-stacked.hover-cards .content-box .txt.e-con {
        align-items: center !important;
        text-align: center !important;
    }
    .cards-stacked.hover-cards .content-box .txt h3,
    .cards-stacked.hover-cards .content-box .txt .elementor-heading-title,
    .cards-stacked.hover-cards .content-box .txt .elementor-widget-text-editor p {
        text-align: center !important;
    }
}

@media (max-width: 1024px) {
    /* Card: keep overflow hidden so image stays clipped to rounded corners */
    .cards-stacked.hover-cards .content-box.e-con {
        height: auto !important;
        overflow: hidden !important;
        padding: 0 !important;
    }
    /* Disable hover shadow change */
    .cards-stacked.hover-cards .content-box.e-con:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    }
    /* Text wrapper: normal flow, sits at top of card */
    .cards-stacked.hover-cards .content-box .txt.e-con {
        position: relative !important;
        order: 1 !important;
        padding: var(--space-xs) !important;
        width: 100% !important;
    }
    /* Description: always visible */
    .cards-stacked.hover-cards .content-box .txt .elementor-widget-text-editor {
        opacity: 1 !important;
        margin-bottom: 0rem !important;
    }
    /* Image area: in flow, sits below text, fills bottom of card */
    .cards-stacked.hover-cards .content-box .bg-wrapper {
        position: relative !important;
        order: 2 !important;
        top: auto !important;
        bottom: auto !important;
        left: auto !important;
        right: auto !important;
        width: 100% !important;
        height: 200px !important;
		min-height: 0 !important;
		max-height: none !important;
		opacity: 1 !important;
		border-radius: 0 !important;
		flex-shrink: 0 !important;
		flex-basis: 200px !important;
    }

    /* Cancel hover image fade */
    .cards-stacked.hover-cards .content-box:hover .bg-wrapper {
        opacity: 1 !important;
    }
}


/* *****************************
 * CARDS - 2 Column Cards
 * (Left Full Height BG Image - Right Text Card, 2 per row)
 * *************************** */
/* Inner flex wrapper */
.cards-2-cols.e-con > .e-con-inner,
.cards-2-cols.e-con-boxed > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 32px !important;
    align-items: stretch !important;
}

/* Each card: 50% width */
.cards-2-cols .content-box.e-con {
    flex: 1 1 calc(50% - 32px) !important;
    min-width: 300px !important;
    max-width: calc(50% - 8px) !important;
    display: flex !important;
    flex-direction: row !important;
    overflow: hidden !important;
    background: var(--e-global-color-primary) !important;
    padding: 0 !important;
    height: auto !important;
}

/* Image column */
.cards-2-cols .content-box .img.e-con {
    flex: 0 0 38% !important;
    width: 38% !important;
    max-width: 38% !important;
    padding: 0 !important;
    overflow: hidden !important;
    align-self: stretch !important;
}

.cards-2-cols .content-box .img.e-con,
.cards-2-cols .content-box .img.e-con .elementor-widget-raven-image,
.cards-2-cols .content-box .img.e-con .elementor-widget-container,
.cards-2-cols .content-box .img.e-con .raven-image {
    height: 100% !important;
}

.cards-2-cols .content-box .img.e-con img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
}

/* Text column */
.cards-2-cols .content-box .txt.e-con {
    flex: 1 1 62% !important;
    padding: var(--space-xs) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    height: auto !important;
}

/* Title */
.cards-2-cols .content-box .txt.e-con h3,
.cards-2-cols .content-box .txt.e-con .elementor-heading-title {
    font-size: var(--wst-kicker) !important;
    color: var(--color-white) !important;
    text-align: left !important;
}

/* Body text */
.cards-2-cols .content-box .txt.e-con p {
    font-size: var(--wst-body-text) !important;
    color: var(--color-white) !important;
    text-align: left !important;
}

/* Tablet: keep 2 col, stack img on top of text */
@media (max-width: 1024px) {
    .cards-2-cols .content-box.e-con.e-con {
        flex-direction: column !important;
        min-width: 0 !important;
        max-width: calc(50% - 8px) !important;
    }
    .cards-2-cols .content-box .img.e-con.e-con {
        width: 100% !important;
        flex: 0 0 250px !important;
        max-width: 100% !important;
        height: 250px !important;
        min-height: 250px !important;
        padding: 0 !important;
        overflow: hidden !important;
        align-self: auto !important;
    }
    .cards-2-cols .content-box .img.e-con.e-con .elementor-widget-raven-image,
    .cards-2-cols .content-box .img.e-con.e-con .elementor-widget-container,
    .cards-2-cols .content-box .img.e-con.e-con .raven-image {
        height: 250px !important;
        width: 100% !important;
    }
    .cards-2-cols .content-box .img.e-con.e-con img {
        width: 100% !important;
        height: 250px !important;
        object-fit: cover !important;
        object-position: center top !important;
        display: block !important;
    }
    .cards-2-cols .content-box .txt.e-con.e-con {
        flex: 1 1 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: var(--space-xs) !important;
        align-items: center !important;
        height: auto !important;
    }
    .cards-2-cols .content-box .txt.e-con h3,
    .cards-2-cols .content-box .txt.e-con .elementor-heading-title {
        text-align: center !important;
    }
    .cards-2-cols .content-box .txt.e-con p {
        text-align: center !important;
    }
}

/* Mobile: 1 col */
@media (max-width: 680px) {
    .cards-2-cols .content-box.e-con.e-con {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
}


/* *****************************
 * CARDS COLUMNS (universal)
 * Works for any card-style parent that contains direct children acting as cards including Flip Box (.card, .content-box, .elementor-widget-flip-box).
 * Add .cards-cols-2 / .cards-cols-3 / .cards-cols-4 to the parent.
 * *************************** */

/* 2 Columns */
.cards-cols-2 > .card,
.cards-cols-2 > .content-box,
.cards-cols-2 > .elementor-widget-flip-box,
.cards-cols-2 > .e-con-inner > .card,
.cards-cols-2 > .e-con-inner > .content-box,
.cards-cols-2 > .e-con-inner > .elementor-widget-flip-box {
    flex: 1 1 calc(50% - 32px) !important;
    max-width: calc(50% - 32px) !important;
    min-width: 0;
}

/* 3 Columns */
.cards-cols-3 > .card,
.cards-cols-3 > .content-box,
.cards-cols-3 > .elementor-widget-flip-box,
.cards-cols-3 > .e-con-inner > .card,
.cards-cols-3 > .e-con-inner > .content-box,
.cards-cols-3 > .e-con-inner > .elementor-widget-flip-box {
    flex: 1 1 calc(33.333% - 32px) !important;
    max-width: calc(33.333% - 32px) !important;
    min-width: 0;
}

/* 4 Columns */
.cards-cols-4 > .card,
.cards-cols-4 > .content-box,
.cards-cols-4 > .elementor-widget-flip-box,
.cards-cols-4 > .e-con-inner > .card,
.cards-cols-4 > .e-con-inner > .content-box,
.cards-cols-4 > .e-con-inner > .elementor-widget-flip-box {
    flex: 1 1 calc(25% - 32px) !important;
    max-width: calc(25% - 32px) !important;
    min-width: 0;
}

/* ≤1440px — 4-col drops to 3 */
@media (max-width: 1440px) {
    .cards-cols-4 > .card,
    .cards-cols-4 > .content-box,
    .cards-cols-4 > .elementor-widget-flip-box,
    .cards-cols-4 > .e-con-inner > .card,
    .cards-cols-4 > .e-con-inner > .content-box,
    .cards-cols-4 > .e-con-inner > .elementor-widget-flip-box {
        flex: 1 1 calc(33.333% - 32px) !important;
        max-width: calc(33.333% - 32px) !important;
    }
}

/* ≤1024px — 3-col and 4-col drop to 2 */
@media (max-width: 1024px) {
    .cards-cols-3 > .card,
    .cards-cols-3 > .content-box,
    .cards-cols-3 > .elementor-widget-flip-box,
    .cards-cols-3 > .e-con-inner > .card,
    .cards-cols-3 > .e-con-inner > .content-box,
    .cards-cols-3 > .e-con-inner > .elementor-widget-flip-box,
    .cards-cols-4 > .card,
    .cards-cols-4 > .content-box,
    .cards-cols-4 > .elementor-widget-flip-box,
    .cards-cols-4 > .e-con-inner > .card,
    .cards-cols-4 > .e-con-inner > .content-box,
    .cards-cols-4 > .e-con-inner > .elementor-widget-flip-box {
        flex: 1 1 calc(50% - 32px) !important;
        max-width: calc(50% - 32px) !important;
    }
}

/* ≤600px — everything 1 column */
@media (max-width: 600px) {
    .cards-cols-2 > .card,
    .cards-cols-2 > .content-box,
    .cards-cols-2 > .elementor-widget-flip-box,
    .cards-cols-2 > .e-con-inner > .card,
    .cards-cols-2 > .e-con-inner > .content-box,
    .cards-cols-2 > .e-con-inner > .elementor-widget-flip-box,
    .cards-cols-3 > .card,
    .cards-cols-3 > .content-box,
    .cards-cols-3 > .elementor-widget-flip-box,
    .cards-cols-3 > .e-con-inner > .card,
    .cards-cols-3 > .e-con-inner > .content-box,
    .cards-cols-3 > .e-con-inner > .elementor-widget-flip-box,
    .cards-cols-4 > .card,
    .cards-cols-4 > .content-box,
    .cards-cols-4 > .elementor-widget-flip-box,
    .cards-cols-4 > .e-con-inner > .card,
    .cards-cols-4 > .e-con-inner > .content-box,
    .cards-cols-4 > .e-con-inner > .elementor-widget-flip-box {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }
}


/* ******************************
 * WST TEAM MEMBER CARDS
 * *************************** */

/* PARENT CONTAINERS */
.wst-team-members,
.wst-team-members .e-con-inner {
    display: block !important;
}
/* Hide description on card - only shown in modal */
.raven-team-members-wrapper .team-member--description {
    display: none;
}
/* Make cards clickable with hover effect */
.raven-team-members-wrapper .elementor-repeater-item {
    cursor: pointer;
}
.raven-team-members-wrapper .team-member {
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border-bottom: 3px solid var(--e-global-color-primary);
}
.raven-team-members-wrapper .team-member:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    border-bottom: 3px solid var(--e-global-color-accent);
}
/* Tighten content padding */
.raven-team-members-wrapper .team-member--content {
    padding: 16px;
}
/* Scale down name and title on card */
.raven-team-members-wrapper .team-member--name {
    font-size: var(--wst-card-text) !important;
    line-height: 1.3em;
    margin-bottom: 4px;
}
.raven-team-members-wrapper .team-member--position {
    font-size: var(--wst-body-text) !important;
    color: var(--e-global-color-secondary) !important;
    transition: color 0.25s ease;
}
.raven-team-members-wrapper .team-member:hover .team-member--position {
    color: var(--e-global-color-accent) !important;
}

/* ******************************
 * WST TEAM MODAL
 * *************************** */
.wst-team-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    z-index: 99999;
    align-items: center;
    justify-content: center;
}
.wst-team-modal-overlay.active {
    display: flex;
}
.wst-team-modal {
    background: #fff;
    max-width: 680px;
    width: 90%;
    max-height: 85vh;
    overflow-y: auto;
    border-radius: 6px;
    position: relative;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
/* Primary header band - scrolls with the modal, not fixed */
.wst-team-modal-header {
    background: var(--e-global-color-primary);
    width: 100%;
    display: flex;
    gap: 24px;
    align-items: flex-start;
    padding: 28px 32px;
    box-sizing: border-box;
}
.wst-team-modal-img {
    width: 110px;
    min-width: 110px;
    height: 130px;
    object-fit: cover;
    object-position: top;
    border: 2px solid var(--e-global-color-secondary);
    flex-shrink: 0;
}
.wst-team-modal-header-text {
    flex: 1;
    padding-top: 6px;
}
.wst-team-modal-name {
    font-size: var(--wst-h5) !important;
    font-weight: 700;
    margin: 0 0 6px;
    color: #ffffff;
    line-height: 1.2em;
}
.wst-team-modal-title {
    font-size: var(--wst-body-text) !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--e-global-color-secondary);
    margin: 0;
}
/* Bio body */
.wst-team-modal-bio {
    font-size: var(--wst-body-text) !important;
    line-height: 1.7;
    color: #080A0C;
    padding: 28px 32px 32px;
    box-sizing: border-box;
    width: 100%;
}
.wst-team-modal-bio p {
    margin: 0;
}
/* Close button */
.wst-team-modal-close {
    position: absolute;
    top: 12px;
    right: 14px;
    font-size: 20px !important;
    cursor: pointer;
    background: var(--e-global-color-accent) !important;
    border: none;
    line-height: 1;
    color: #fff;
    width: 24px;
    height: 24px;
    padding: 2px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
    z-index: 10;
}
.wst-team-modal-close:hover {
    background: var(--e-global-color-primary) !important;
}
@media (max-width: 600px) {
    .wst-team-modal-header {
        flex-direction: column;
        padding: 20px;
    }
    .wst-team-modal-img {
        width: 100%;
        height: auto;
        min-width: unset;
        max-height: none;
        object-fit: contain;
    }
    .wst-team-modal-bio {
        padding: 20px;
    }
}



/* ******************************
 * SPLIT BG COLOR / WHITE with RADIUS BOXES
 * *************************** */
@media (max-width: 480px) {
	.radius-boxes .box-txt,
	.radius-boxes .box-txt .content-wrapper {
		padding: 12px !important;
	}
	.radius-boxes .box-img .img-wrapper {
		padding: 14px !important;
	}	
}


