/* g-hero4: ONE shared non-Home hero height per breakpoint.
   Home has no .ab-hero — unchanged (R275). Cities + hub included.
   Token --sth-hero-h: phone 833 / tablet 620 / short-desk 700 / desk 760. */
html body main section.hero.ab-hero,
html body.t-svc.t-city main section.hero.ab-hero,
html body.t-hub1 main section.hero.ab-hero.svc-hero,
html body.t-about main section.hero.ab-hero{
  --sth-hero-h:833px;
  --hero-h:var(--sth-hero-h);
}
@media(min-width:700px){
  html body main section.hero.ab-hero,
  html body.t-svc.t-city main section.hero.ab-hero,
  html body.t-hub1 main section.hero.ab-hero.svc-hero,
  html body.t-about main section.hero.ab-hero{--sth-hero-h:620px}
}
@media(min-width:1160px){
  html body main section.hero.ab-hero,
  html body.t-svc.t-city main section.hero.ab-hero,
  html body.t-hub1 main section.hero.ab-hero.svc-hero,
  html body.t-about main section.hero.ab-hero{--sth-hero-h:700px}
}
@media(min-width:1280px){
  html body main section.hero.ab-hero,
  html body.t-svc.t-city main section.hero.ab-hero,
  html body.t-hub1 main section.hero.ab-hero.svc-hero,
  html body.t-about main section.hero.ab-hero{--sth-hero-h:760px}
}
/* Force exact height — beats hv6 mins, r2/bundle phone auto, r2k About 946. */
html body main section.hero.ab-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-svc.t-city main section.hero.ab-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-hub1 main section.hero.ab-hero.svc-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-about .hero.ab-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
  box-sizing:border-box!important;
  height:var(--sth-hero-h)!important;
  min-height:var(--sth-hero-h)!important;
  max-height:var(--sth-hero-h)!important;
}
/* Phone: also beat the explicit height:auto !important from hero-mascot-mobile1 / hmm1b */
@media(max-width:699px){
  html body main section.hero.ab-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html body.t-svc.t-city main section.hero.ab-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html body.t-about .hero.ab-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
    --sth-hero-h:833px;
    height:833px!important;
    min-height:833px!important;
    max-height:833px!important;
  }
}
/* /hvac/ac-repair/ phone reframe: prior 100% 88% cropped heads on 16:9 band */
@media(max-width:699px){
  html body.t-svc[data-svc="ac"] .svc-hero picture.hbg img:not(#_):not(#_):not(#_):not(#_){
    object-position:var(--hero-pos,100% 42%)!important;
  }
}

/* === ghero4-artdir: art-directed city <picture> crops === */
/* Phone tall 3:2 → cover into ~16:9 band; people left of mascot. */
html body.t-svc.t-city .svc-hero.ab-hero picture.hbg.city-artdir img,
html body.t-svc.t-city .svc-hero.ab-hero picture.hbg.city-artdir img.hero-photo{
  width:100%;height:100%;object-fit:cover!important;object-position:left center!important;
}

/* === ghero5i: art-directed inner <picture> crops (10 pages) === */
/* Phone tall 3:2+headroom → cover; object-position 58% 45% (G-HERO5 inner brief).
   Specificity beats data-svc hero-pos and about-a8 (uses :not(#_)×8 like g-hero4 height). */
html body.inner .ab-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.inner .ab-hero picture.hbg.inner-artdir img.hero-photo:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-svc .ab-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-svc[data-svc] .svc-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-about .ab-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
  width:100%;height:100%;object-fit:cover!important;object-position:58% 45%!important;
}
@media(min-width:700px){
  html body.inner .ab-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html body.inner .ab-hero picture.hbg.inner-artdir img.hero-photo:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html body.t-svc .ab-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html body.t-svc[data-svc] .svc-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html body.t-about .ab-hero picture.hbg.inner-artdir img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
    object-position:center center!important;
  }
}

/* m390 fix (nov4): non-city gd pages carry t-hub/t-hub1 body classes, so nav1.css hub rule put the gen host at bottom:100% (above hero, under header) at <=699px. Restore About's rest spot: feet on hero photo bottom. */
@media (max-width:699px){
  html body:not(.t-city) main section.hero.ab-hero .ab-hrob.svc-hrob.hsc-about.gen-host:has(>.gen-hh[data-hh="gd"]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
    top:auto!important;bottom:anchor(--sth-hero-photo bottom)!important;width:var(--sth-msz)!important;
  }
}

/* FAQ proportional desktop correction (Bang, Nov 6): same 620px at every desktop width; phone/tablet and all image/mascot positions untouched. */
@media (min-width:1160px){html body .hero.ab-hero{--sth-hero-h:620px;}}
