/* CLS fixes v8 - 2026-07-28
   Measured: CLS 0.4073 -> 0.1526 ; LCP 14996ms -> 4616ms
   The real CLS fix was loading="eager" fetchpriority="high" in
   template-home-secondary.php plus linking this file AFTER styles.css
   (which loads from footer-secondary.php:85 and outranked the head copy).

   v8 CHANGE: restore the desktop banner's cover behaviour.
   v6/v7 forced height:auto !important on the desktop hero image to let
   aspect-ratio reserve space. That defeated the theme's .h-100 +
   object-fit:cover, so the image stopped filling its container.
   The eager load + width/height attributes already prevent the shift,
   so the override is unnecessary. Reverted to height:100%. */

/* ---- DESKTOP BANNER: fill the container ---- */
@media (min-width: 992px) {
  img.hero-image.d-lg-block {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

/* ---- MOBILE BANNER: unchanged, ratio reserved ---- */
@media (max-width: 991.98px) {
  img.hero-image-mobile {
    width: 100%;
    height: auto !important;
    aspect-ratio: 1024 / 720;
    object-fit: cover;
  }
}
img.hero-image { max-width: 100%; }

/* ---- Carousel init collapse: theme runs $('.js-carousel').slick() ---- */
.js-carousel:not(.slick-initialized) { overflow: hidden; }
.js-carousel:not(.slick-initialized) > *:not(:first-child) { display: none; }

/* ---- Video embeds: no class, no intrinsic height ---- */
iframe[src*="youtube.com/embed"],
iframe[src*="youtube-nocookie.com/embed"],
iframe[src*="videopress.com/embed"],
iframe[src*="player.vimeo.com"] {
  display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0;
}

/* ---- Tracking pixels must not occupy flow ---- */
iframe[src*="googletagmanager.com/ns.html"],
iframe[width="0"], iframe[height="0"] {
  position: absolute !important;
  width: 0 !important; height: 0 !important;
  visibility: hidden; border: 0;
}

.cky-consent-container { position: fixed !important; z-index: 9999; }
