/* hh.css nov5-sa-stillhide1: SA paint-box has NO visibility (match HVAC ac); hide after hh-on. was nov5-sa-armload1: gen-hh[data-hh=sa] still visible until hh-on (spec beats gen-hh noflash). was nov5-sa-polish1: SA still visible until hh-on + paint-box=canvas (mirror ac/pl/el); face/join via hh-sa.js. */
/* hh.css nov5-el-tester1: el still visible until hh-on (mirror ac/pl); el paint-box = ac gas2e. */
/* hh.css nov5-pl-pipe1b: pl still visible until hh-on (mirror ac gas2d); pl paint-box = ac gas2e. */
/* hh.css v21b (nov4-ac-gas2e: ac still = canvas paint box; keep gas2d instant still). was v20 (nov4-ac-gas2d: ac still visible until hh-on; GA noflash untouched). was v19 (nov4-gA-visfix: explicit .hh-fh width; keep noflash). was v18 (nov4-gA-noflash: html.js hides rest still before paint; no-JS keeps still; reduced-motion shows still) ; v17 (tpl v6: swoosh .hh-tr shown for el/ac) ; v1 (v12 anim2 at end): hub hero sprite box, sized to the Home hero scale (0.0012276 x Home mascot width per rig px) */
html body{--hhW:96px}
@media(min-width:700px){html body{--hhW:112px}}
@media(min-width:768px){html body{--hhW:clamp(124px,13vw,150px)}}
@media(min-width:1200px){html body{--hhW:clamp(120px,11vw,160px)}}
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh:not(#_):not(#_):not(#_){position:absolute!important;width:calc(var(--hhW)*var(--bw)*0.0012276)!important;height:auto!important;aspect-ratio:var(--ar)!important;top:auto!important;right:auto!important;left:6%!important;bottom:calc(100% + 12px)!important;transform:none!important;z-index:3!important;display:block!important;overflow:visible!important;pointer-events:none}
@media(min-width:700px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh:not(#_):not(#_):not(#_){left:auto!important;right:2%!important;bottom:104px!important}}
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh:not(#_):not(#_):not(#_) img.still{display:block!important;width:100%!important;height:100%!important;object-fit:contain}
html body .svc-hrob.hh.hh-js img.still{visibility:hidden}
/* noflash: hide rest poster as soon as head sets html.js (before deferred hh.js); no-JS keeps still visible */
html.js body .svc-hrob.hh img.still{visibility:hidden}
html.js body .svc-hrob.hh:not(.hh-on) .hh-f,html.js body .svc-hrob.hh:not(.hh-on) .hh-tw{visibility:hidden}
/* ac gas2d / pl-pipe1b / el-tester1: keep rest still visible from HTML paint until canvas hh-on (no blank while atlas warms). GA (gen-hh / other svc-hrob) untouched. Canvas stays hidden until hh-on so it does not cover the still. */
html.js body .svc-hrob.hh[data-hh="ac"]:not(.hh-on) img.still,
html body .svc-hrob.hh[data-hh="ac"].hh-js:not(.hh-on) img.still,
html.js body .svc-hrob.hh[data-hh="pl"]:not(.hh-on) img.still,
html body .svc-hrob.hh[data-hh="pl"].hh-js:not(.hh-on) img.still,
html.js body .svc-hrob.hh[data-hh="el"]:not(.hh-on) img.still,
html body .svc-hrob.hh[data-hh="el"].hh-js:not(.hh-on) img.still,
html.js body .svc-hrob.hh[data-hh="sa"]:not(.hh-on) img.still,
html body .svc-hrob.hh[data-hh="sa"].hh-js:not(.hh-on) img.still,
html.js body .gen-hh[data-hh="sa"]:not(.hh-on) img.still,
html body .gen-hh[data-hh="sa"].hh-js:not(.hh-on) img.still{visibility:visible!important}
/* ac gas2e: still shares hh-ac.js layoutPaintBox — height=host, width=hostH×600/496, left:50% translateX(-50%) bottom:0.
   High :not(#_) count beats bundle/nav1 mobile height/max-height:139px so first paint matches canvas rest. GA untouched. */
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-hub1.t-hub1.t-svc1 .svc-hero .svc-hrob.hh[data-hh="ac"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hero .hh[data-hh="ac"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hrob.hh[data-hh="ac"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main section.hero.ab-hero.svc-hero .svc-hrob.hh[data-hh="ac"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main .svc-hero .hh[data-hh="ac"] img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
  position:absolute!important;
  inset:auto!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:0!important;
  height:100%!important;
  width:auto!important;
  aspect-ratio:600/496!important;
  max-width:none!important;
  max-height:none!important;
  min-height:0!important;
  min-width:0!important;
  transform:translateX(-50%)!important;
  translate:none!important;
  transform-origin:50% 100%!important;
  object-fit:contain!important;
  object-position:50% 100%!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important
}
/* pl-pipe1b: still shares hh-pl.js layoutPaintBox — same paint box as ac gas2e / GA rest. */
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-hub1.t-hub1.t-svc1 .svc-hero .svc-hrob.hh[data-hh="pl"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hero .hh[data-hh="pl"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hrob.hh[data-hh="pl"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main section.hero.ab-hero.svc-hero .svc-hrob.hh[data-hh="pl"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main .svc-hero .hh[data-hh="pl"] img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
  position:absolute!important;
  inset:auto!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:0!important;
  height:100%!important;
  width:auto!important;
  aspect-ratio:600/496!important;
  max-width:none!important;
  max-height:none!important;
  min-height:0!important;
  min-width:0!important;
  transform:translateX(-50%)!important;
  translate:none!important;
  transform-origin:50% 100%!important;
  object-fit:contain!important;
  object-position:50% 100%!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important
}
/* el-tester1: still shares hh-el.js layoutPaintBox — same paint box as ac gas2e / GA rest. */
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body.t-hub1.t-hub1.t-svc1 .svc-hero .svc-hrob.hh[data-hh="el"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hero .hh[data-hh="el"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hrob.hh[data-hh="el"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main section.hero.ab-hero.svc-hero .svc-hrob.hh[data-hh="el"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main .svc-hero .hh[data-hh="el"] img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
  position:absolute!important;
  inset:auto!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:0!important;
  height:100%!important;
  width:auto!important;
  aspect-ratio:600/496!important;
  max-width:none!important;
  max-height:none!important;
  min-height:0!important;
  min-width:0!important;
  transform:translateX(-50%)!important;
  translate:none!important;
  transform-origin:50% 100%!important;
  object-fit:contain!important;
  object-position:50% 100%!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important
}
html body .svc-hrob.hh .hh-f{position:absolute;inset:0;background-repeat:no-repeat;will-change:transform}
@media (prefers-reduced-motion:reduce){html.js body .svc-hrob.hh img.still,html body .svc-hrob.hh.hh-js img.still{visibility:visible!important}html body .svc-hrob.hh .hh-f{display:none}}
/* club mascot: same rendered height on all three hubs (AC art box is the reference) */
html body.t-hub1.t-hub1 .hub-club .ab-ph>.t1-cm[style*="--cr"]:not(#_):not(#_){width:calc(140px*var(--cr))!important;max-width:none!important}
@media(min-width:900px){html body.t-hub1.t-hub1 .hub-club .ab-ph>.t1-cm[style*="--cr"]:not(#_):not(#_){width:calc(170px*var(--cr))!important;max-width:none!important}}
@media(max-width:699px){html body.t-hub1.t-hub1 .hub-club .ab-ph>.t1-cm[style*="--cr"]:not(#_):not(#_){width:calc(130px*var(--cr))!important;max-width:none!important}}
/* heading straight into cards: one gap on all hubs and widths (2x the 12px heading-intro step) */
html body.t-hub1.t-hub1 :is(#offers,.h1-signs) h2:has(+ :is(.tickets,.pck)):not(#_):not(#_){margin-bottom:0!important}
html body.t-hub1.t-hub1 :is(#offers,.h1-signs) h2 + :is(.tickets,.pck):not(#_):not(#_){margin-top:24px!important}
/* hub hero H1: no lone word on a line */
html body.t-hub1.t-hub1 .svc-hero h1:not(#_){text-wrap:balance}
/* text blocks: heading-to-text 12px at every width, like the heading-to-intro step elsewhere */
html body.t-hub1.t-hub1 :is(#after-hours,#older-homes,#repair-or-replace,#safety-inspection) h2 + .pab:not(#_):not(#_){margin-top:0!important}
/* hubv8b: electrical rests where Home rests on phones, so its Home-path run-in starts fully visible */
/* hubv8c: electrical rest spots - phones: empty wall left of the electrician; 700-899: below the text, left of the electrician; 900+: just right of the text column. Run-in starts fully off-screen left (hh.js). */
@media(max-width:699px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_){left:28%!important;right:auto!important}}
@media(min-width:700px) and (max-width:767px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_){left:14%!important;right:auto!important;bottom:76px!important}}
@media(min-width:768px) and (max-width:899px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_){left:24%!important;right:auto!important;bottom:76px!important}}
@media(min-width:900px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_){left:calc(max(0px,(100% - 1200px)/2) + 566px)!important;right:auto!important}}
html body .svc-hrob.hh .hh-f{transform-origin:50% 100%}
/* Home speed lines (same look as Home .trail), behind the sprite, trailing to the left */
html body .svc-hrob.hh .hh-tw{position:absolute;inset:0;pointer-events:none;will-change:transform}
html body .svc-hrob.hh .hh-tr{position:absolute;right:58%;top:30%;width:150%;height:38%;opacity:0;transform-origin:100% 50%;background:repeating-linear-gradient(180deg,transparent 0 5px,rgba(142,211,245,.9) 5px 8px);-webkit-mask:linear-gradient(90deg,transparent,#000 75%);mask:linear-gradient(90deg,transparent,#000 75%)}
@media (prefers-reduced-motion:reduce){html body .svc-hrob.hh .hh-tw{display:none}}
/* 900+: the run-in crosses the text column; text stays painted above the robot */
@media(min-width:900px){html body.t-hub1 .svc-hero:has(.hh[data-hh="el"]) .hc>:not(.hh):not(#_){position:relative;z-index:4}}
/* v8d ac acr-hub6 */
@media(max-width:699px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){left:28%!important;right:auto!important}}
@media(min-width:700px) and (max-width:767px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){left:14%!important;right:auto!important;bottom:76px!important}}
@media(min-width:768px) and (max-width:899px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){left:24%!important;right:auto!important;bottom:76px!important}}
@media(min-width:900px) and (max-width:1199px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){left:calc(100% - 208px)!important;right:auto!important}}
@media(min-width:1200px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){left:calc((100% - 1200px)/2 + 542px)!important;right:auto!important}}
@media(min-width:900px){html body.t-hub1 .svc-hero:has(.hh[data-hh="ac"]) .hc>:not(.hh):not(#_){position:relative;z-index:4}}
/* v8e pl-hub4: rest left of the man <900, right of him >=900 */
@media(max-width:699px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_){left:calc(28% - 128px)!important;right:auto!important}}
@media(min-width:700px) and (max-width:767px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_){left:calc(14% - 40px)!important;right:auto!important;bottom:76px!important}}
@media(min-width:768px) and (max-width:899px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_){left:calc(24% - 85px)!important;right:auto!important;bottom:76px!important}}
@media(min-width:900px) and (max-width:1199px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_){left:calc(100% - 312px)!important;right:auto!important}}
@media(min-width:1200px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_){left:calc((100% - 1200px)/2 + 897px)!important;right:auto!important}}
@media(min-width:900px){html body.t-hub1 .svc-hero:has(.hh[data-hh="pl"]) .hc>:not(.hh):not(#_){position:relative;z-index:4}}
/* v8i pl-arrival2: <700 keep the rest box fully on screen (was 19px off the left edge at 390) */
@media(max-width:699px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_):not(#_){left:max(0px,calc(28% - 128px))!important}}

/* hh-pos1 (2026-10-26): mascot never over photo objects. 700-899 every hh hero sits in the dark text band (left 14%/24%, bottom 76). >=900: default (inner heroes) stands on the clear ground at the right edge; el + pl move to the clear wall/floor right of the tech; our-work uses the default (photo ow-hero2 has clear ground at right). Animation untouched. */
@media(min-width:700px) and (max-width:767px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh:not(#_):not(#_):not(#_){left:14%!important;right:auto!important;bottom:76px!important}}
@media(min-width:768px) and (max-width:899px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh:not(#_):not(#_):not(#_){left:24%!important;right:auto!important;bottom:76px!important}}
@media(min-width:900px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh:not(#_):not(#_):not(#_){left:auto!important;right:calc(10px - var(--hhW)*var(--bw)*0.0003217)!important;bottom:44px!important}
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_):not(#_){left:auto!important;right:calc(10px - var(--hhW)*var(--bw)*0.0001768)!important}
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="pl"]:not(#_):not(#_):not(#_):not(#_){left:auto!important;right:calc(10px - var(--hhW)*var(--bw)*0.000356)!important;bottom:44px!important}}
@media(min-width:1200px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_):not(#_){left:auto!important;right:calc(10px - var(--hhW)*var(--bw)*0.0000327)!important;bottom:44px!important}}

/* hubs-anim1: el-hub5 / ac-hub10 use one 600x496 cell (box 1666x1377, robot runs in place, speed lines baked in). --bw keeps the robot's rendered height; margins (fraction of box width) keep its feet and left edge where the hub4/hub7 robot stood */
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_){margin-left:calc(calc(var(--hhW)*var(--bw)*0.0012276)*-0.148)!important;margin-bottom:calc(calc(var(--hhW)*var(--bw)*0.0012276)*-0.0333)!important}
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){margin-left:calc(calc(var(--hhW)*var(--bw)*0.0012276)*-0.1597)!important;margin-bottom:calc(calc(var(--hhW)*var(--bw)*0.0012276)*-0.0075)!important}
@media(min-width:900px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="el"]:not(#_):not(#_):not(#_){margin-right:calc(var(--hhW)*var(--bw)*0.0012276*-0.193)!important}}
@media(min-width:1200px){html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="ac"]:not(#_):not(#_):not(#_){margin-right:calc(var(--hhW)*var(--bw)*0.0012276*-0.1724)!important}}
/* hh.css v12 (anim2): general-page hero host (Home .hrun, About .hsc-about, city .mst) keeps its old box and position; the shared gen-wave5 clip sits in it, sized/placed (--gl/--gt/--gw, from the old art's body box) so the robot body height, feet line and centre match the old robot. No bob, no parallax, no sway. */
html body .gen-host:not(#_):not(#_){overflow:visible!important;animation:none!important}
html body .gen-host *:not(#_):not(#_){animation:none!important}
html body .gen-host>.gen-sp{display:block;width:100%;pointer-events:none}
html body .gen-host>.gen-hh:not(#_):not(#_):not(#_){position:absolute!important;left:var(--gl)!important;top:var(--gt)!important;right:auto!important;bottom:auto!important;width:var(--gw)!important;max-width:none!important;height:auto!important;aspect-ratio:600/496!important;display:block!important;margin:0!important;pointer-events:none;transform:none!important}
html body .gen-host>.gen-hh img.still:not(#_):not(#_):not(#_){display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain;position:static!important;transform:none!important}
html body .gen-hh.hh-js img.still:not(#_):not(#_):not(#_){visibility:hidden!important}
/* noflash: html.js hides gen rest still before paint; face/trail stay hidden until hh-on (run start) */
html.js body .gen-hh img.still:not(#_):not(#_):not(#_){visibility:hidden!important}
/* sa-armload1: MUST beat gen-hh noflash hide (same :not(#_) count + !important + data-hh=sa). Mirror HVAC ac gas2d. */
html.js body .gen-hh[data-hh="sa"]:not(.hh-on) img.still:not(#_):not(#_):not(#_):not(#_),
html body .gen-hh[data-hh="sa"].hh-js:not(.hh-on) img.still:not(#_):not(#_):not(#_):not(#_),
html.js body .svc-hrob.hh[data-hh="sa"]:not(.hh-on) img.still:not(#_):not(#_):not(#_):not(#_),
html body .svc-hrob.hh[data-hh="sa"].hh-js:not(.hh-on) img.still:not(#_):not(#_):not(#_):not(#_),
html.js body .gen-host>.gen-hh[data-hh="sa"]:not(.hh-on) img.still:not(#_):not(#_):not(#_):not(#_),
html body .gen-host>.gen-hh[data-hh="sa"].hh-js:not(.hh-on) img.still:not(#_):not(#_):not(#_):not(#_){visibility:visible!important}

/* sa-stillhide1: once hh-on, still MUST hide (beats any leftover paint-box/inline). Mirror HVAC: only one copy visible. */
html.js body .gen-hh[data-hh="sa"].hh-on img.still:not(#_):not(#_):not(#_):not(#_),
html body .gen-hh[data-hh="sa"].hh-js.hh-on img.still:not(#_):not(#_):not(#_):not(#_),
html.js body .svc-hrob.hh[data-hh="sa"].hh-on img.still:not(#_):not(#_):not(#_):not(#_),
html body .svc-hrob.hh[data-hh="sa"].hh-js.hh-on img.still:not(#_):not(#_):not(#_):not(#_),
html.js body .gen-host>.gen-hh[data-hh="sa"].hh-on img.still:not(#_):not(#_):not(#_):not(#_),
html body .gen-host>.gen-hh[data-hh="sa"].hh-js.hh-on img.still:not(#_):not(#_):not(#_):not(#_),
html body .hh[data-hh="sa"].hh-on>img.still:not(#_):not(#_):not(#_):not(#_),
html body .gen-hh[data-hh="sa"].hh-on>img.still:not(#_):not(#_):not(#_):not(#_){visibility:hidden!important;opacity:0!important}



/* sa-stillhide1: still shares hh-sa.js layoutPaintBox — same paint box as ac gas2e; NO visibility here (match HVAC). Hide after hh-on via gen-hh noflash + explicit .hh-on rule. */
html body.t-hub1.t-hub1 .svc-hero .svc-hrob.hh[data-hh="sa"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .svc-hrob.hh[data-hh="sa"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .gen-hh[data-hh="sa"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body main section.hero.ab-hero .gen-hh[data-hh="sa"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
html body .gen-host>.gen-hh[data-hh="sa"]>img.still:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_){
  position:absolute!important;
  inset:auto!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:0!important;
  height:100%!important;
  width:auto!important;
  aspect-ratio:600/496!important;
  max-width:none!important;
  max-height:none!important;
  min-height:0!important;
  min-width:0!important;
  transform:translateX(-50%)!important;
  translate:none!important;
  transform-origin:50% 100%!important;
  object-fit:contain!important;
  object-position:50% 100%!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}

html.js body .gen-hh:not(.hh-on) .hh-f,html.js body .gen-hh:not(.hh-on) .hh-tw{visibility:hidden!important}
html body .gen-hh .hh-f{position:absolute;inset:0;background-repeat:no-repeat;will-change:transform}
html body .gen-hh .hh-fh{position:absolute;bottom:0;left:50%;height:100%;width:calc(100% * 250 * 496 / (260 * 600));max-width:100%;aspect-ratio:250/260;transform:translateX(-50%);background-repeat:no-repeat;background-size:600% 600%;pointer-events:none;box-sizing:border-box}
html body .gen-hh .hh-tw{position:absolute;inset:0;pointer-events:none;will-change:transform}
html body .gen-hh .hh-tr{position:absolute;right:58%;top:30%;width:150%;height:38%;opacity:0;transform-origin:100% 50%;background:repeating-linear-gradient(180deg,transparent 0 5px,rgba(142,211,245,.9) 5px 8px);-webkit-mask:linear-gradient(90deg,transparent,#000 75%);mask:linear-gradient(90deg,transparent,#000 75%)}
@media (prefers-reduced-motion:reduce){html.js body .gen-hh img.still:not(#_):not(#_):not(#_),html body .gen-hh.hh-js img.still:not(#_):not(#_):not(#_){visibility:visible!important}html body .gen-hh .hh-f,html body .gen-hh .hh-tw{display:none}}
/* hh.css v13 (anim2 QA): Home ≥700px - the old desktop robot art sat ~5% taller with the feet lower than the phone art, so the shared clip takes the desktop body box (measured at 768/1440/1920: body height and feet line within 1px of the old robot) */
@media (min-width:700px){html body .hero .hrun.gen-host>.gen-hh:not(#_):not(#_):not(#_){--gl:-39.6%!important;--gt:-5.47%!important;--gw:213.2%!important}}
/* Plumbing hub: pl-hub6 cells carry ~2.8% more floor below the soles than pl-hub5; drop the clip by that so the feet stand on the previous ground line */
html body .svc-hero .hh[data-hh="pl"]:not(#_):not(#_){translate:0 2.8%}
/* anim2b: Pinellas Park 900-1199 photo fixes (kept) (object-position only; robot size/column unchanged) */
@media(min-width:900px) and (max-width:999px){html body.t-svc[data-svc="pp"] .svc-hero .hbg:not(#_) img{object-position:96% 50%!important}}
@media(min-width:1000px) and (max-width:1199px){html body.t-svc[data-svc="pp"] .svc-hero .hbg:not(#_) img{object-position:32% 50%!important}}
/* anim2d: per-band hero photo position data on <picture class="hbg"> (--hp-0 <700, --hp-700 700-899, --hp-900 900-999; --hp-1000/1440/1700 in r2.css) */
@media(max-width:699px){html body .hbg[style*="--hp-0:"]:not(#_) img{object-position:var(--hp-0)!important}}
@media(min-width:700px) and (max-width:899px){html body .hbg[style*="--hp-700:"]:not(#_) img{object-position:var(--hp-700)!important}}
@media(min-width:900px) and (max-width:999px){html body .hbg[style*="--hp-900:"]:not(#_) img{object-position:var(--hp-900)!important}}

/* sth-inner2: @≤699 el mascot keeps unify2 X/Y + 24px gap; trust stays left of him (beats svc-t1 max-width:none!important + about-a8 width:100%) */
@media(max-width:699px){
  html body.t-svc1.t-svc1.t-about .svc-hero.ab-hero:has(.hh[data-hh="el"]) .hc>ul.trust:not(#_):not(#_){
    max-width:calc(var(--hx) - 24px)!important;
    width:auto!important;
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:flex-start!important;
    grid-template-columns:none!important;
    gap:8px!important;
    box-sizing:border-box;
  }
  html body.t-svc1.t-svc1.t-about .svc-hero.ab-hero:has(.hh[data-hh="el"]) .hc>ul.trust:not(#_):not(#_) li:not(#_){
    white-space:normal!important;
    flex-direction:row!important;
    align-items:center!important;
    text-align:left!important;
    justify-self:auto!important;
  }
}
