/* hsc pilot sprites */
.hsc{display:block;position:relative}.hsc img.still{display:block;width:100%;height:auto}
.hsc .hsc-f{position:absolute;inset:0;background-repeat:no-repeat;display:block;pointer-events:none}
.hsc.hsc-on img.still{visibility:hidden}
.t-about .ab-hrob.hsc img.still{height:auto}
@media(min-width:1200px){.t-about .ab-hero .ab-hrob.hsc{width:300px}}
@media(min-width:900px) and (max-width:1023px){.t-about .ab-hero .ab-hrob.hsc{width:130px;right:6px}}
@media(min-width:1600px){.t-about .ab-hero .ab-hrob.hsc{right:calc(50% - 650px)}}
/* AC repair cost robot: stands on the top edge of the "Talk to a real person" card */
html body.t-svc[data-svc="ac"] .pscall.hsc-acrc-host{position:relative;overflow:visible}
html body.t-svc[data-svc="ac"] .hsc-acrc{position:absolute;right:18px;bottom:calc(100% - 4px);width:150px;pointer-events:none}
@media(min-width:1000px){html body.t-svc[data-svc="ac"] .pscall.hsc-acrc-host{margin-top:150px}}
/* AC repair hero robot: phones >=100px on the lawn */
@media(max-width:699px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc{width:104px!important;transform:translateY(27px)}}
@media(min-width:1000px){html body.t-svc[data-svc="ac"] .hsc-acrc-m{display:none!important}}
/* AC repair 700-899: robot was hidden behind the glance card; stand it on the card's top edge, in front of the outdoor unit */
@media(min-width:700px) and (max-width:899px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc{width:100px!important;transform:translate(calc(210px - 70vw),-124px)}}
/* Plumbing hub hero: robot kneels on the floor left of the technician, in front of the toolbox */
@media(min-width:700px) and (max-width:1599px){html body.t-svc[data-svc="pl"] .svc-hero picture.hbg img{object-position:var(--hero-pos,60% 35%)!important}}
html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pw:200px}
@media(min-width:700px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{width:var(--pw)!important;left:calc(var(--pl) + 80px - var(--pw))!important;right:auto!important;top:auto!important;bottom:104px!important}}
@media(min-width:700px) and (max-width:899px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pw:150px;--pl:47.4%}}
@media(min-width:900px) and (max-width:1279px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pw:170px;--pl:58.6%}}
@media(min-width:900px) and (max-width:1099px){html body.t-svc[data-svc="pl"] .svc-hero picture.hbg img{object-position:var(--hero-pos,42% 35%)!important}html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pw:140px;--pl:calc(46.8% + 187px);bottom:96px!important}}
@media(min-width:1280px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pl:calc(60% - 15px)}}
@media(min-width:1600px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pw:200px;--pl:59%}}
/* Plumbing hub club robot: clipboard tick, once */
html body.t-hub .hub-th .svc-prob.hsc-plc{width:min(100%,230px)!important;position:relative!important}
@media(max-width:699px){html body.t-hub .hub-th .svc-prob.hsc-plc{width:150px!important}}
/* size standard (2026-10-24): every hero robot renders at About's body height per tier. --rb = standing body px; --k (inline) = sprite box width / body height */
:root{--rb:101px}
@media(min-width:700px){:root{--rb:179px}}
@media(min-width:900px) and (max-width:1023px){:root{--rb:137px}}
@media(min-width:1200px){:root{--rb:316px}}
html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc,html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{width:calc(var(--rb) * var(--k))!important}
html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{--pw:calc(var(--rb) * var(--k))}
/* plumbing >=1280: robot stands on the open floor right of the technician, clear of the sink pipes */
@media(min-width:1280px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{left:auto!important;right:4px!important;bottom:104px!important}}
/* AC repair >=1200: robot on the lawn at the right edge, clear of the technician */
@media(min-width:1200px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc{left:auto!important;right:0!important}}
/* hero2 (2026-10-24): new hero photos with open floor at right; robot stands there at every width */
html body.t-svc[data-svc="ac"] .svc-hero picture.hbg img{object-position:var(--hero-pos,100% 88%)!important}html body.t-svc[data-svc="pl"] .svc-hero picture.hbg img{object-position:var(--hero-pos,100% 75%)!important}
@media(min-width:700px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc,html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{left:auto!important;right:var(--rr,2%)!important;top:auto!important;bottom:var(--rbtm,104px)!important;transform:none!important}}
@media(min-width:1200px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc{left:auto!important;right:0!important}}
@media(max-width:699px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{left:auto!important;right:0!important}}
@media(min-width:700px) and (max-width:899px){html body.t-svc[data-svc="pl"] .svc-hero picture.hbg img{object-position:var(--hero-pos,42% 75%)!important}html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{right:auto!important;left:4px!important;--rbtm:104px}}
@media(min-width:1600px){html body.t-svc[data-svc="ac"] .svc-hero picture.hbg img,html body.t-svc[data-svc="pl"] .svc-hero picture.hbg img{object-position:var(--hero-pos,100% 30%)!important}}
@media(max-width:699px){html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{left:auto!important;right:72px!important;top:auto!important;bottom:0!important;transform:translateY(27px)!important}}
@media(min-width:700px) and (max-width:959px){html body.t-svc[data-svc="ac"] .svc-hero picture.hbg img{object-position:var(--hero-pos,45% 88%)!important}html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc{right:auto!important;left:4px!important}}
@media(min-width:900px) and (max-width:959px){html body.t-svc[data-svc="ac"] .svc-hero picture.hbg img{object-position:var(--hero-pos,72.7% 88%)!important}html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc{left:auto!important;right:0!important}}
@media(min-width:1200px) and (max-width:1599px){html body.t-svc[data-svc="ac"] .svc-hero picture.hbg img{width:112%!important;max-width:none!important;margin-left:-12%!important}}

/* pt1219u: phones - hero robot stands ON the hero photo exactly like About (offset parent .hc starts at the photo's bottom edge: bottom:calc(100% + 10px)), 10px from the side, 101px body; left corner = open wall/lawn (AC) and floor (Plumbing), clear of the tech, fixture, text and glance bar */
@media(max-width:699px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc,html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{position:absolute!important;left:10px!important;right:auto!important;top:auto!important;bottom:calc(100% + 10px)!important;transform:none!important;z-index:2!important}}
@media(min-width:600px) and (max-width:699px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc,html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{left:12px!important;bottom:calc(100% + 12px)!important}}
/* pt1224u: tablet 700-899 ACR/PL align to About (24px gutter, grounded above glance) */
@media(min-width:700px) and (max-width:899px){html body.t-svc[data-svc="ac"] .svc-hero .svc-hrob.hsc,html body.t-svc[data-svc="pl"] .svc-hero .svc-hrob.hsc{left:24px!important;right:auto!important}}
/* no sideways scroll: 700-899 booking fieldset min-content overflow (about.css nowrap tiles) - match Home */
@media(min-width:700px) and (max-width:899px){.t-about #book form.cb fieldset{min-width:0}.t-about #book .cb .tile span{white-space:normal!important}}
/* mp15 deep audit */
/* AC cost (>=1000): card + $ robot sit level with the text column's CTAs instead of hanging below it */
@media(min-width:1000px){html body.t-svc[data-svc="ac"] .pscall.hsc-acrc-host{margin-top:0;align-self:end}}
/* AC club (<=899): robot beside the eyebrow+title like About #promise, no glow disc */
@media(max-width:899px){html body.t-svc[data-svc="ac"] .psplit .psw{grid-template-columns:minmax(0,1fr) var(--cw)!important;column-gap:12px!important;row-gap:0!important;--cw:120px;grid-template-rows:1fr auto!important}
 html body.t-svc[data-svc="ac"] .psplit .psw>.pat{display:contents}
 html body.t-svc[data-svc="ac"] .psplit .psw>.pat>*{grid-column:1/-1}
 html body.t-svc[data-svc="ac"] .psplit .psw>.pat>.eb{grid-column:1;grid-row:1;align-self:end}
 html body.t-svc[data-svc="ac"] .psplit .psw>.pat>h2{grid-column:1;grid-row:2;align-self:end}
 html body.t-svc[data-svc="ac"] .psplit .psw>.pm{grid-column:2;grid-row:1/span 2;align-self:end;justify-self:end;order:0;width:var(--cw)!important;max-width:none!important;aspect-ratio:auto;background:none!important;border-radius:0}
 html body.t-svc[data-svc="ac"] .psplit .psw>.pm video{width:100%!important;max-width:none!important}}
@media(min-width:700px) and (max-width:899px){html body.t-svc[data-svc="ac"] .psplit .psw{--cw:130px}}
/* Plumbing club (<=699): eyebrow + title left, robot right of them (no overlap with the eyebrow) */
@media(max-width:699px){html body.t-hub .hub-club .ab-ph{display:grid!important;grid-template-columns:minmax(0,1fr) 120px!important;column-gap:12px!important;align-items:end;grid-template-rows:1fr auto!important}
 html body.t-hub .hub-club .ab-ph>div{display:contents!important}
 html body.t-hub .hub-club .ab-ph>div>.eb{grid-column:1;grid-row:1;align-self:end}
 html body.t-hub .hub-club .ab-ph>div>h2{grid-column:1;grid-row:2;margin-bottom:0}
 html body.t-hub .hub-club .ab-ph>div>.pp.intro{grid-column:1/-1;grid-row:3}
 html body.t-hub .hub-club .ab-ph>.svc-prob.hsc-plc{grid-column:2;grid-row:1/span 2;width:120px!important;margin:0!important;align-self:end;position:relative!important;inset:auto!important;transform:none!important}}
@media(max-width:699px){html body.t-hub main>.sec.hub-club .ab-ph>div>.pp.intro{margin-top:12px!important}html body.t-svc[data-svc="ac"] .sec.psplit .psw>.pat>h2{margin-bottom:0!important}html body.t-svc[data-svc="ac"] .sec.psplit .psw>.pat>h2+.pp{margin-top:18px!important}}

/* mp16: AC club hsc robot */
html body.t-svc[data-svc="ac"] .pm.hsc-acc{padding:0!important;margin-bottom:0!important;background:none!important}
html body.t-svc[data-svc="ac"] .pm.hsc-acc::before,html body.t-svc[data-svc="ac"] .pm.hsc-acc::after{display:none!important}
html body.t-svc[data-svc="ac"] .pm.hsc-acc img.still{width:100%!important;height:auto}
@media(min-width:900px){html body.t-svc[data-svc="ac"] .pm.hsc-acc{width:200px!important;align-self:end}}
/* mp17: AC club robot at 700-899 placed like About #promise (130px, centred on eyebrow+title) */
@media(min-width:700px) and (max-width:899px){html body.t-svc[data-svc="ac"] .psplit .psw{--cw:130px}html body.t-svc[data-svc="ac"] .psplit .psw>.pm{margin-bottom:-47px!important;position:relative;z-index:1}}
/* mp17: Plumbing offers at 700-899 stack like Home tickets (one column, 560px, centred) so bullet text never clips */
@media(min-width:700px) and (max-width:899px){html body.t-hub #offers .tickets{grid-template-columns:1fr!important;max-width:560px!important;margin-left:auto!important;margin-right:auto!important}}
/* mp18 (pt1234u): reviews heading on phones - eyebrow, title and intro use the full width (About pages forced text-wrap:balance, which wrapped the intro narrow). 4.9 block + mascot untouched. */
@media(max-width:699px){html body.t-about #reviews .rh .eb,html body.t-about #reviews .rh .intro{text-wrap:wrap!important;max-width:none!important;width:100%}html body.t-about #reviews .rh h2{max-width:none!important;width:100%}}
/* mp19 (t1242u): phones - offers + reviews heading full width, no balance/pretty */
@media(max-width:699px){html body.t-about #offers .wrap>.eb,html body.t-about #offers .wrap>h2,html body.t-about #offers .wrap>.intro,html body.t-about #reviews .rh .eb,html body.t-about #reviews .rh h2,html body.t-about #reviews .rh .intro{text-wrap:wrap!important;max-width:none!important;width:100%}}
/* mp19: coupon call button phone icon was yellow on yellow (invisible); match Home .btn.call icon (ink) */
html body.t-about #offers .tkc .ic{color:var(--ink)}
/* mp20 (pt1253u About audit): phones - text runs full width, no balance/pretty narrow wrapping; tap targets >=44px with no visual change */
@media(max-width:699px){
.t-about main :is(h1,h2,p,.intro,blockquote,figcaption,li),body.t-about #services .shead .intro,body.t-about #book .fct p:not(.eb2),body.t-about .ab-ph .intro,body.t-about main p.rt{text-wrap:wrap!important}
.t-about .hero .intro,.t-about .hero p,.t-about #services .shead :is(h2,.intro,p),.t-about #book .fct :is(h2,p){max-width:none!important}
}
.t-about a.sx-more,.t-about a.tlink{position:relative}
.t-about a.sx-more::after,.t-about a.tlink::after{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:46px;transform:translateY(-50%)}
/* mp20: 700px+ intro-to-content gap 34px (was 40) per audit spec; homepage still 40 */
@media(min-width:700px){body.t-about #services .shead .intro,body.t-about #reviews .rh .intro{margin-bottom:34px!important}body.t-about #promise .ab-ph{margin-bottom:34px!important}}
