/* Seashell banner overlays - single source of truth.
   Important: banner images must NOT contain CSS gradients or pseudo-element overlays. */
.banner-with-overlay{position:relative!important;isolation:isolate!important;overflow:hidden}
.banner-overlay{position:absolute!important;inset:0!important;background:#000!important;opacity:.50!important;z-index:1!important;pointer-events:none!important}

/* Home rotating hero intentionally uses the stronger 72% overlay. */
.hero-slide>.banner-overlay{opacity:.72!important}

/* Keep the image/slides below and all readable content above the overlay. */
.banner-with-overlay>.banner-content,
.banner-with-overlay>.wrap,
.banner-with-overlay>div:not(.banner-overlay):not(.hero-slides),
.banner-with-overlay>strong,
.banner-with-overlay>span:not(.banner-overlay){position:relative!important;z-index:2!important}
.hero.banner-with-overlay>.hero-slides{position:absolute!important;inset:0!important;z-index:0!important}
.hero.banner-with-overlay .hero-slide{position:absolute!important;inset:0!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
.hero.banner-with-overlay .hero-slide>.banner-overlay{z-index:1!important}

/* Explicitly neutralize legacy pseudo overlays if an old browser cache contains prior rules. */
.hero::before,.stats::before,.promo::before,.hero-slide::after{content:none!important;display:none!important;background:none!important}
