/* =========================================================
   V85 — Nav-safe hero offset
   Keeps every V83 promotional hero completely below the fixed
   navigation + announcement/promo bar on the first page load.
   The supplied hero artwork remains uncropped and responsive.
   ========================================================= */

/* Default desktop fallback: fixed header + promo bar + breathing room. */
body.theme-v38.v85-has-promo-bar .v83-page-hero{
  padding-top:144px!important;
  scroll-margin-top:144px;
}
body.theme-v38.v85-no-promo-bar .v83-page-hero{
  padding-top:94px!important;
  scroll-margin-top:94px;
}

/* The content shell itself must never slide beneath the fixed UI. */
body.theme-v38 .v83-page-hero .v83-hero-container,
body.theme-v38 .v83-page-hero .v83-hero-shell,
body.theme-v38 .v83-page-hero .v83-hero-copy,
body.theme-v38 .v83-page-hero .v83-hero-media-wrap{
  position:relative;
}

/* Small laptops / tablets use the 72px compact header and 44px promo. */
@media (min-width:761px) and (max-width:1360px){
  body.theme-v38.v85-has-promo-bar .v83-page-hero{
    padding-top:146px!important;
    scroll-margin-top:146px;
  }
  body.theme-v38.v85-no-promo-bar .v83-page-hero{
    padding-top:92px!important;
    scroll-margin-top:92px;
  }
}

/* Phones: include safe-area inset so notches never cover hero content. */
@media (max-width:760px){
  body.theme-v38.v85-has-promo-bar .v83-page-hero{
    padding-top:calc(max(8px, env(safe-area-inset-top)) + 128px)!important;
    scroll-margin-top:calc(max(8px, env(safe-area-inset-top)) + 128px);
  }
  body.theme-v38.v85-no-promo-bar .v83-page-hero{
    padding-top:calc(max(8px, env(safe-area-inset-top)) + 84px)!important;
    scroll-margin-top:calc(max(8px, env(safe-area-inset-top)) + 84px);
  }

  /* Keep the hero image fully visible after the mobile stack. */
  body.theme-v38 .v83-hero-media,
  body.theme-v38 .v83-hero-media img{
    max-height:none!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center!important;
  }
}

/* On very short desktop viewports, tighten interior spacing rather than
   pushing important hero controls behind the navigation. */
@media (min-width:901px) and (max-height:820px){
  body.theme-v38 .v83-hero-shell{padding:20px!important;gap:18px!important}
  body.theme-v38 .v83-hero-copy{gap:10px!important}
  body.theme-v38 .v83-hero-btn{min-height:46px!important;padding-block:10px!important}
  body.theme-v38 .v83-hero-offer{padding:11px 14px!important}
  body.theme-v38 .v83-hero-contact>a,
  body.theme-v38 .v83-hero-contact>div{padding:9px 10px!important}
  body.theme-v38 .v83-hero-proofbar>div{padding:9px 13px!important}
}

@media (prefers-reduced-motion:reduce){
  body.theme-v38 .v83-page-hero{scroll-behavior:auto}
}

/* Campaign Manager announcement bars replace the legacy promo bar when live.
   Pin them into the same safe position so they never cover the hero. */
body.theme-v38.v85-has-promo-bar > .campaign-announcement{
  position:fixed!important;
  top:92px!important;
  left:0!important;
  right:0!important;
  z-index:88!important;
  width:100%!important;
  margin:0!important;
  min-height:40px!important;
  border-radius:0!important;
}
body.theme-v38.v85-has-promo-bar > .campaign-announcement .campaign-announcement-link{
  min-height:40px!important;
}
@media (min-width:761px) and (max-width:1360px){
  body.theme-v38.v85-has-promo-bar > .campaign-announcement{
    top:90px!important;
    min-height:44px!important;
  }
  body.theme-v38.v85-has-promo-bar > .campaign-announcement .campaign-announcement-link{min-height:44px!important}
}
@media (max-width:760px){
  body.theme-v38.v85-has-promo-bar > .campaign-announcement{
    top:calc(max(8px, env(safe-area-inset-top)) + 72px)!important;
    min-height:44px!important;
  }
  body.theme-v38.v85-has-promo-bar > .campaign-announcement .campaign-announcement-link{min-height:44px!important}
}
