/* Lunar Ice V199 — one responsive landing system for every internal page.
   index.html is not linked to this file, so the homepage is untouched. */

/* Desktop and iPad landscape layouts: the fixed header occupies 160px. */
@media (min-width:901px){
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189),
  html body.about-page-v183 main > .about-hero-v183{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
    height:calc(100dvh - 160px)!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    overflow:hidden!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroCopy,
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroMedia,
  html body.about-page-v183 main > .about-hero-v183 .subheroCopy,
  html body.about-page-v183 main > .about-hero-v183 .subheroMedia{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    box-sizing:border-box!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroCopy,
  html body.about-page-v183 main > .about-hero-v183 .subheroCopy{
    display:flex!important;
    align-items:center!important;
    padding:42px 0!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroMedia:not(.festival-hero-v165) img,
  html body.about-page-v183 main > .about-hero-v183 .subheroMedia img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:cover!important;
  }
  html body:not(.home-v147) main > .subhero.info-hero-v138,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189,
  html body.contact-page-body-v187 main > .contact-landing-head-v135{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:calc(100dvh - 160px)!important;
    min-height:0!important;
    max-height:none!important;
    padding:42px 0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  html body:not(.home-v147) main > .subhero.info-hero-v138 .subheroCopy,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189 .subheroCopy{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    padding:42px 0!important;
  }
}

/* iPad portrait / medium tablet uses the site's 132px fixed header. */
@media (min-width:901px) and (max-width:1180px){
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189),
  html body.about-page-v183 main > .about-hero-v183,
  html body:not(.home-v147) main > .subhero.info-hero-v138,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189,
  html body.contact-page-body-v187 main > .contact-landing-head-v135{
    height:calc(100dvh - 132px)!important;
  }
}

/* Mobile and small tablet: fixed header is exactly 84px in the live cascade. */
@media (min-width:421px) and (max-width:900px){
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189),
  html body.about-page-v183 main > .about-hero-v183{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(0,58%) minmax(0,42%)!important;
    width:100%!important;
    height:calc(100dvh - 84px)!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    overflow:hidden!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroCopy,
  html body.about-page-v183 main > .about-hero-v183 .subheroCopy{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    padding:22px 0!important;
    align-items:center!important;
    box-sizing:border-box!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroMedia,
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroMedia:not(.festival-hero-v165) img,
  html body.about-page-v183 main > .about-hero-v183 .subheroMedia,
  html body.about-page-v183 main > .about-hero-v183 .subheroMedia img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:cover!important;
  }
  html body:not(.home-v147) main > .subhero.info-hero-v138,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189,
  html body.contact-page-body-v187 main > .contact-landing-head-v135{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:calc(100dvh - 84px)!important;
    min-height:0!important;
    max-height:none!important;
    padding:30px 0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  html body:not(.home-v147) main > .subhero.info-hero-v138 .subheroCopy,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189 .subheroCopy{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    padding:30px 0!important;
  }
}

/* Phones up to 420px use the final 78px header rule. */
@media (max-width:420px){
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189),
  html body.about-page-v183 main > .about-hero-v183{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(0,60%) minmax(0,40%)!important;
    width:100%!important;
    height:calc(100dvh - 78px)!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    overflow:hidden!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroCopy,
  html body.about-page-v183 main > .about-hero-v183 .subheroCopy{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    padding:18px 0!important;
    align-items:center!important;
    box-sizing:border-box!important;
  }
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroMedia,
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) .subheroMedia:not(.festival-hero-v165) img,
  html body.about-page-v183 main > .about-hero-v183 .subheroMedia,
  html body.about-page-v183 main > .about-hero-v183 .subheroMedia img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:cover!important;
  }
  html body:not(.home-v147) main > .subhero.info-hero-v138,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189,
  html body.contact-page-body-v187 main > .contact-landing-head-v135{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:calc(100dvh - 78px)!important;
    min-height:0!important;
    max-height:none!important;
    padding:26px 0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  html body:not(.home-v147) main > .subhero.info-hero-v138 .subheroCopy,
  html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189 .subheroCopy{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    padding:26px 0!important;
  }
}

/* V201 — restore concise landing introductions and protect mobile headings. */
html body.landing-compact-v187:not(.home-v147) main > .subhero:not(.info-hero-v138) .subheroCopy .wrap > p,
html body.about-page-v183 main > .about-hero-v183 .subheroCopy .wrap > p:first-of-type{
  display:block!important;
  max-width:620px!important;
  margin:18px 0 0!important;
  color:#e7eaf2!important;
  font-size:clamp(16px,1.25vw,19px)!important;
  line-height:1.5!important;
}

html body.faq-page-v185.landing-compact-v187 main > .subhero.faq-title-only-v189 .subheroCopy .wrap > p{
  max-width:720px!important;
  margin:20px auto 0!important;
  text-align:center!important;
}

html body.about-page-v183 main > .about-hero-v183 .subheroCopy .wrap > p:not(:first-of-type){
  display:none!important;
}

@media (max-width:900px){
  html body:not(.home-v147) main > .subhero:not(.info-hero-v138):not(.faq-title-only-v189) h1,
  html body.about-page-v183 main > .about-hero-v183 h1{
    max-width:16ch!important;
    margin:8px 0 0!important;
    font-size:clamp(34px,9.5vw,48px)!important;
    line-height:.94!important;
  }

  html body.landing-compact-v187:not(.home-v147) main > .subhero:not(.info-hero-v138) .subheroCopy .wrap > p,
  html body.about-page-v183 main > .about-hero-v183 .subheroCopy .wrap > p:first-of-type{
    margin-top:12px!important;
    font-size:clamp(14px,3.7vw,17px)!important;
    line-height:1.42!important;
  }
}
