/* Shared marketing-hero geometry. Article headers and the guide's scroll runway
   are intentionally not screen-sized. Text zoom always remains accessible. */
:root{--site-hero-stage:min(100svh,712px)}
@media(min-width:768px) and (max-width:1023px){:root{--ds-header:72px;--site-hero-stage:min(100svh,700px)}}
@media(min-width:1024px){:root{--site-hero-stage:min(100svh,clamp(600px,43.5vw,688px))}}
html body main :is(#hero.standard-hero,#hero.tp-hero,.rg-hero.standard-hero,.j-hero){
 box-sizing:border-box;min-height:var(--site-hero-stage)!important;height:auto!important;max-height:none!important;
 margin-top:0!important;padding-top:calc(var(--ds-header) + 28px)!important;padding-bottom:28px!important;
}
html body main :is(#hero.standard-hero,#hero.tp-hero,.rg-hero.standard-hero,.j-hero,#home-top) h1{
 font-family:var(--ds-display)!important;font-size:var(--ds-hero)!important;font-weight:400!important;line-height:1.06!important;letter-spacing:0!important;
}
@media(min-width:1024px){
 html body #home-top.hero{min-height:0!important;height:auto!important;margin-top:0!important}
 html body #home-top .hero-sticky{min-height:var(--site-hero-stage)!important;height:auto!important;padding-top:calc(var(--ds-header) + 28px)!important;padding-bottom:28px!important}
 html body main .zs-contact-hero .zs-inner{min-height:0!important;padding-block:0!important}
 html body main .rg-hero.standard-hero{display:flex;align-items:center}
 /* Contact only: a shorter stage, with the role dock seated on the hero's bottom edge. */
 html body main #hero.zs-contact-hero.standard-hero{min-height:min(100svh,clamp(500px,36vw,560px))!important;display:flex;flex-direction:column;background-position:0 0,center 22%}
 html body main #hero.zs-contact-hero .zs-inner{flex:1 0 auto;display:flex;flex-direction:column;width:100%;box-sizing:border-box}
 html body main #hero.zs-contact-hero .zs-hero-copy{margin-bottom:32px}
 html body main #hero.zs-contact-hero .zs-role-dock{margin-top:auto!important}
}
@media(max-width:1023px){
 html body main :is(#hero,#home-top,section)[data-mobile-reference]{
  min-height:var(--site-hero-stage)!important;height:auto!important;max-width:none!important;
  padding:calc(var(--ds-header) + 24px) var(--ds-gutter) 32px!important;
 }
 html body main :is(#hero,#home-top,section)[data-mobile-reference] h1{
  font-size:var(--ds-hero)!important;width:90%!important;max-width:90%!important;margin-bottom:14px!important;
 }
 html body main :is(#hero,#home-top,section)[data-mobile-reference] :is(.mh-intro,.tp-intro,.rg-lede,.zs-hero-copy>p:not(.zs-kicker)){
  font-size:1rem!important;line-height:1.5!important;width:82%!important;max-width:32rem!important;margin-bottom:16px!important;
 }
 html body main :is(#hero,#home-top,section)[data-mobile-reference] :is(.mh-actions,.zs-actions){width:90%!important;max-width:90%!important}
 html body main :is(#hero,#home-top,section)[data-mobile-reference] :is(.button,.zh-cta,.znh-button,.tp-button,.zs-button){font:600 1rem/1.25 var(--ds-ui)!important}
 html body main :is(#hero,#home-top,section)[data-mobile-reference] .mh-benefits{width:90%!important;max-width:90%!important}
 html body main :is(#hero,#home-top,section)[data-mobile-reference] :is(.zh-tile,.znh-tile) span{font-size:.875rem!important}
 html body main :is(#hero,#home-top,section)[data-mobile-reference] .mr-background::after{background:linear-gradient(180deg,#03152960,transparent 78%),linear-gradient(90deg,#03152955,transparent 95%)}
 html body main #hero.zs-contact-hero[data-mobile-reference]{min-height:min(100svh,600px)!important}
 html body main #hero.zs-contact-hero[data-mobile-reference] .mr-phone{margin-bottom:16px}
 html body main #hero.zs-contact-hero[data-mobile-reference] .zs-role-dock{margin-top:auto!important}
}
@media(min-width:600px) and (max-width:1023px){
 html body main :is(#hero,#home-top,section)[data-mobile-reference] h1{width:70%!important;max-width:70%!important}
 html body main :is(#hero,#home-top,section)[data-mobile-reference] :is(.mh-intro,.tp-intro,.rg-lede,.zs-hero-copy>p:not(.zs-kicker)){width:65%!important}
}
