/* r2r: one override at the end of the cascade (linked last in <head>, after live-base, motion, proto-2026, page css and inline motion).
   Grok modern-refresh-rec.md + Atlas round-3 items + crew-and-gallery-rec.md. Brand, logo, red call button and italic "runs." kept. */

/* ---- 1. Section rhythm ---- */
body,body.p26{background:var(--surface);background-image:none;background-attachment:scroll}
.section{padding:4.5rem 0}
.section-sm{padding:3rem 0}
.section-soft{background:var(--surface-2);background-image:none;border-block:1px solid rgba(18,26,42,.06);box-shadow:none}
.section-navy{background:var(--navy);background-image:none;box-shadow:none}
.section-navy::before,.section-navy::after{background:none!important;box-shadow:none!important}
@media (max-width:719px){.section{padding:3.25rem 0}.section-sm{padding:2.25rem 0}}

/* ---- 2. Type: weights mapped to the loaded files (Fraunces 500, Outfit 300) ---- */
body{font-size:1.0625rem;line-height:1.6;font-weight:300;letter-spacing:0}
h1,h2,h3,.section-head h2,.h2{font-weight:500}
.eyebrow{font-weight:500;font-size:.75rem;letter-spacing:.08em;margin-bottom:.65rem}
.p26-hero h1{font-size:clamp(3.25rem,5.5vw,4.75rem);line-height:.98;letter-spacing:-.03em;max-width:12ch}
.page-hero h1,.p26-phero h1{font-size:clamp(2.4rem,4vw,3.25rem);line-height:1.05;letter-spacing:-.03em}
.section-head h2,.h2,.cta-band h2{font-size:clamp(1.85rem,3vw,2.5rem);line-height:1.12;letter-spacing:-.025em;margin-bottom:.75rem}
.lead,.p26-hero .lead{font-size:1.125rem;line-height:1.55;max-width:38rem}
.p26-hero h1 em{color:var(--cyan-bright)}
@media (max-width:719px){.p26-hero h1{font-size:2.65rem;max-width:14ch}.section-head h2,.h2{font-size:1.75rem}.lead{font-size:1.05rem}}
.tg-eb,.promise-num,.p26-facts dt{letter-spacing:.08em;font-weight:500}

/* ---- 3. Flat cards and buttons ---- */
:root{--radius:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--shadow:0 1px 2px rgba(7,11,20,.06);--shadow-lg:0 1px 2px rgba(7,11,20,.06)}
.card,.special,.svc-card,.town,.promise,.p26 .special{background:var(--paper);background-image:none;border:1px solid rgba(18,26,42,.08);border-radius:var(--radius);box-shadow:var(--shadow)}
.card,.special,.svc-card,.town{padding:1.25rem 1.2rem}
.p26-cards .card{padding:1.25rem 1.2rem}
.card h3{font-size:1.2rem}
.rq{border-radius:var(--radius);box-shadow:var(--shadow);background-image:none}
.card::before,.special::before,.svc-card::before,.promise::before{box-shadow:none!important}
.btn{border-radius:999px;padding:.8rem 1.25rem;font-weight:500;font-size:.9375rem;letter-spacing:.01em;min-height:48px;box-shadow:none}
.btn-lg{padding:.9rem 1.4rem}
.btn-primary,.btn-primary:focus{background:var(--red);background-image:none;color:#fff;box-shadow:none}
.btn-primary:hover{background:var(--red-deep);background-image:none;box-shadow:none}
.btn-primary::before,.btn-primary::after{display:none!important}
.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.7);color:#fff;box-shadow:none}
.btn-outline:hover{background:transparent;border-color:#fff;color:#fff}
@media (max-width:719px){.mobile-callbar{background:var(--void);-webkit-backdrop-filter:none;backdrop-filter:none}.mobile-callbar .btn{min-height:48px}}

/* ---- 4. Motion: one duration, one distance, no hero zoom ---- */
:root{--m-dur:.45s;--m-ease:cubic-bezier(.22,1,.36,1)}
.m-on [data-reveal],.m-on [data-reveal=left],.m-on [data-reveal=right],.m-on [data-reveal=zoom]{transform:translate3d(0,8px,0);transition:opacity var(--m-dur) var(--m-ease),transform var(--m-dur) var(--m-ease);transition-delay:0ms}
.m-on [data-reveal][style*="--d:1"]{transition-delay:60ms}
.m-on [data-reveal].is-in{opacity:1;transform:none}
@media (max-width:719px){.m-on [data-reveal=left]:not(.is-in),.m-on [data-reveal=right]:not(.is-in){transform:translate3d(0,8px,0)}}
.lift,.btn{transition:transform .2s var(--m-ease),background-color .2s,border-color .2s,color .2s}
@media (hover:hover){.lift:hover,.m-on .lift.is-in:hover{transform:translate3d(0,-2px,0)}.btn:hover{transform:none}}
.btn:active{transform:none}
.m-zoom{animation:none!important;transform:none!important;will-change:auto!important}
[data-parallax]{will-change:auto}
@media (max-width:1100px){[data-parallax]{transform:none!important}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .m-on [data-reveal],.m-zoom,[data-parallax],.lift,.btn{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}
}

/* ---- 5. Hero veil, one shadow, fact row in the first paper band ---- */
.p26-hero .p26-veil{background:linear-gradient(90deg,rgba(7,11,20,.72) 0%,rgba(7,11,20,.28) 48%,rgba(7,11,20,.05) 100%)}
@media (max-width:719px){.p26-hero .p26-veil{background:linear-gradient(180deg,rgba(7,11,20,.62) 0%,rgba(7,11,20,.54) 45%,rgba(7,11,20,.62) 100%)}}
.p26-hero .lead,.p26-hero .hero-proof span,.p26-hero .p26-reassure,.p26-hero .hero-kicker{text-shadow:none}
.p26-hero h1{text-shadow:0 1px 2px rgba(7,11,20,.45)}
.p26-stats{margin:0 auto;padding:2.25rem 0 .25rem;gap:0}
.p26-stats .stat,.p26 .p26-stats .stat{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;border-left:1px solid rgba(18,26,42,.14);border-radius:0;box-shadow:none;padding:.25rem 1.25rem;text-align:left}
.p26-stats .stat:first-child{border-left:0}
.p26-stats .stat b{font-weight:500}
.p26-stats .stat>span{font-weight:300;color:#4a5263}
@media (max-width:719px){.p26-stats{margin-top:1rem;padding-top:1.25rem;gap:.75rem}.p26-stats .stat,.p26 .p26-stats .stat{padding:.1rem 0 .1rem .7rem}.p26-stats .stat:first-child{padding-left:0}}
.p26-facts div{-webkit-backdrop-filter:none;backdrop-filter:none}

/* ---- 6. Header: navy, blur on the header only, red underline on the current item ---- */
.p26-hdr::before{background:rgba(12,24,48,.92)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;box-shadow:none!important}
.p26-hdr .nav a{color:rgba(255,255,255,.78);font-size:.875rem;padding:.4rem .55rem;border-radius:0;background:transparent}
.p26-hdr .nav a:hover{color:#fff;background:transparent}
.p26-hdr .nav a[aria-current=page]{color:#fff;background:transparent;box-shadow:inset 0 -2px 0 var(--red)}
.nav-mobile{background:var(--navy);-webkit-backdrop-filter:none;backdrop-filter:none}
.nav-mobile a{font-size:1.05rem;padding:.85rem 0;border-radius:0;background:transparent}
.nav-mobile a[aria-current=page]{background:transparent;box-shadow:inset 0 -2px 0 var(--red)}

/* ---- 7. Footer ---- */
.site-footer{background:var(--void);background-image:none;color:rgba(255,255,255,.72);padding:3rem 0 1.5rem;font-size:.95rem;line-height:1.5}
.site-footer h3{font-size:.75rem;font-weight:500;letter-spacing:.08em;color:rgba(255,255,255,.62)}
.site-footer a{color:rgba(255,255,255,.88)}
.site-footer a:hover{color:#fff}
@media (max-width:719px){.site-footer a{display:inline-block;padding:.7rem 0}.site-footer,.p26 .site-footer{padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px))}}

/* ---- Atlas r3 item 1: the phone bar no longer covers the first screen ---- */
@media (max-width:719px){
  .p26-hero,.p26-phero,.hero{min-height:calc(100svh - 5rem);box-sizing:border-box;padding-bottom:1.25rem}
}

/* ---- Below-fold layout containment (not on heroes) ---- */
/* r2r: content-visibility tried and removed (section height estimates made the page jump 1-2.5k px while scrolling and left the last reveal unseen in the failsafe run) */

/* ---- Services billing card: member line ---- */
.p26-member-line{margin-top:.35rem}

/* ---- About truck caption second line ---- */
.ab-hero-media figcaption .ab-cap-sub{display:block;margin-top:.2rem;text-transform:none;letter-spacing:0;font-weight:400;font-size:.8rem;color:rgba(255,255,255,.82)}

/* ---- About crew: role-grouped compact list (crew-and-gallery-rec §1) ---- */
.ab-crew-groups .ab-crew-head{max-width:40rem;margin:0 auto 1.4rem;text-align:center}
.ab-crew-groups .ab-crew-head p{margin-left:auto;margin-right:auto}
.ab-counts{margin:.9rem 0 0;font-size:1rem;line-height:1.5;color:rgba(255,255,255,.86)}
.ab-counts b{color:#ff6b70;font-weight:500;font-family:var(--display)}
.ab-counts .dot{margin:0 .45rem;opacity:.5}
.ab-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;max-width:66rem;margin:0 auto}
.ab-group h3{margin:0 0 .45rem;padding-bottom:.45rem;border-bottom:1px solid rgba(255,255,255,.14);font-family:var(--body,inherit);font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#ff6b70}
.ab-groups .ab-people{display:block;margin:0;padding:0;list-style:none}
.ab-groups .ab-person{display:flex;align-items:center;gap:.55rem;padding:.35rem 0;margin:0;background:none;border:0;border-radius:0;box-shadow:none;min-height:0;text-align:left}
.ab-groups .ab-person+.ab-person{border-top:1px solid rgba(255,255,255,.06)}
.ab-groups .ab-init{flex:0 0 28px;width:28px;height:28px;margin:0;font-size:.66rem;line-height:28px;display:inline-grid;place-items:center;border-radius:50%}
.ab-groups .ab-person strong{font-size:.98rem;font-weight:500;font-family:var(--body,inherit)}
.ab-crew-close{text-align:center;margin:1.5rem 0 0;color:rgba(255,255,255,.86)}
.ab-crew-groups .ab-crew-cta{justify-content:center;margin-top:1rem}
@media (max-width:899px){.ab-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:719px){
  .ab-crew-groups .ab-crew-head{text-align:left;margin-bottom:1rem}
  .ab-counts{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem}
  .ab-counts .dot{display:none}
  .ab-counts span.c{display:flex;flex-direction:column;line-height:1.25}
  .ab-counts span.c b{font-size:1.5rem}
  .ab-groups{grid-template-columns:1fr;gap:1.1rem}
  .ab-groups .ab-people{display:grid;grid-template-columns:1fr 1fr;column-gap:.5rem}
  .ab-groups .ab-person+.ab-person{border-top:0}
  .ab-crew-close{text-align:left}
  .ab-crew-groups .ab-crew-cta{flex-direction:column;align-items:stretch}
  .ab-crew-groups .ab-crew-cta .btn-outline{order:-1}
}

/* ---- /our-work gallery: 7/5 lead row, then rows of 3 (crew-and-gallery-rec §3) ---- */
.ow-gal-head{max-width:44rem;margin:0 auto 1.6rem;text-align:center}
.ow-gal-head p{margin:.4rem auto 0}
.ow-gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.ow-gal>li{margin:0;grid-column:span 4;display:flex;flex-direction:column}
.ow-gal figure{margin:0;display:flex;flex-direction:column;height:100%}
.ow-gal .ow-ph{display:block;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;background:var(--navy)}
.ow-gal img{display:block;width:100%;height:100%;object-fit:cover}
.ow-gal figcaption{padding:.6rem .8rem .7rem;background:var(--paper);border:1px solid rgba(18,26,42,.08);border-top:0;border-radius:0 0 var(--radius) var(--radius);display:grid;gap:.1rem;flex:1}
.ow-gal figcaption strong{color:var(--navy);font-weight:500;font-size:.98rem}
.ow-gal figcaption span{color:#4a5263;font-size:.88rem;font-weight:300}
@media (min-width:900px){
  .ow-gal>li.ow-lead{grid-column:1/span 7;grid-row:1/span 2}
  .ow-gal>li.ow-side{grid-column:8/span 5}
  .ow-gal>li.ow-lead .ow-ph{aspect-ratio:auto;flex:1;min-height:0}
  .ow-gal>li.ow-lead figure{height:100%}
  .ow-gal>li.ow-side .ow-ph{aspect-ratio:auto;height:clamp(14rem,22vw,17.5rem)}
  .ow-gal>li.ow-side img{object-position:50% 45%}
}
@media (max-width:899px){
  .ow-gal{grid-template-columns:1fr 1fr;gap:8px}
  .ow-gal>li{grid-column:span 1}
  .ow-gal>li .ow-ph{aspect-ratio:1/1}
  .ow-gal>li.ow-lead,.ow-gal>li.ow-wide{grid-column:1/-1}
  .ow-gal>li.ow-lead .ow-ph,.ow-gal>li.ow-wide .ow-ph{aspect-ratio:4/5}
  .ow-gal figcaption span{display:none}
  .ow-gal>li.ow-lead figcaption span,.ow-gal>li.ow-wide figcaption span{display:block}
  .ow-gal figcaption{padding:.45rem .6rem .5rem}
}
.ow-steps{list-style:none;margin:1.6rem 0 0;padding:1rem 0 0;border-top:1px solid rgba(18,26,42,.12);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;counter-reset:s}
.ow-steps li{display:flex;align-items:baseline;gap:.5rem;color:var(--navy);font-size:.95rem;font-weight:400}
.ow-steps li b{font-family:var(--display);font-weight:500;color:var(--red);font-size:1.15rem}
@media (max-width:719px){.ow-steps{grid-template-columns:1fr 1fr;row-gap:.5rem}}
.ow-gal-cta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center;margin-top:1.6rem}
.ow-gal-cta .p26-muted{flex-basis:100%;text-align:center;margin:0}
.ab-col{display:grid;gap:1.25rem;align-content:start}
@media (max-width:719px){.ab-col{gap:1.1rem}}
.ab-lead{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;list-style:none;margin:0 auto 1.4rem;padding:0 0 1.1rem;max-width:66rem;border-bottom:1px solid rgba(255,255,255,.14)}
.ab-lead .ab-person{display:flex;align-items:center;gap:.55rem;margin:0;padding:0;background:none;border:0;box-shadow:none}
.ab-lead .ab-init{flex:0 0 28px;width:28px;height:28px;margin:0;font-size:.66rem;display:inline-grid;place-items:center;border-radius:50%}
.ab-lead strong{font-size:1rem;font-weight:500;font-family:var(--body,inherit)}
.ab-lead .ab-title{color:rgba(255,255,255,.78);font-weight:300}
.ab-counts .ab-total{font-weight:400}
@media (max-width:719px){.ab-lead{justify-content:flex-start;flex-direction:column;gap:.45rem}.ab-counts .ab-total{grid-column:1/-1;flex-direction:row!important;gap:.35rem;align-items:baseline}}
/* r2r fix-up: compact one-line rows beat the old big-card .ab-person rules */
.ab-crew-groups .ab-person{flex-direction:row!important;align-items:center;justify-content:flex-start;text-align:left;overflow:visible;background:none;border:0;border-radius:0;box-shadow:none;padding:.35rem 0;min-height:0;gap:.55rem}
.ab-crew-groups .ab-person::after,.ab-crew-groups .ab-person::before{display:none!important}
.ab-crew-groups .ab-person strong{font-family:var(--body,inherit);font-size:.98rem;font-weight:500;letter-spacing:0;line-height:1.3}
.ab-crew-groups .ab-init{margin:0!important}
.ab-crew-groups .ab-lead .ab-person{padding:0}
.ab-crew-groups .ab-lead .ab-title{margin-left:.1rem}
/* gallery fix-up: photo fills, captions stay two short lines */
.ow-gal figcaption{flex:none}
.ow-gal figure{height:100%}
@media (min-width:900px){
  .ow-gal>li.ow-lead .ow-ph{aspect-ratio:4/5;flex:none}
  .ow-gal>li.ow-side .ow-ph{height:auto;flex:1;min-height:0}
  .ow-gal>li.ow-side figure{height:100%}
}
@media (min-width:900px){
  .ow-gal>li.ow-side .ow-ph{position:relative;aspect-ratio:auto;height:0;flex:1 1 auto}
  .ow-gal>li.ow-side .ow-ph img{position:absolute;inset:0}
}
/* r2r: contact hero last fact cleared above the phone bar on tall phones */
@media (max-width:760px){.p26-phero.r2r-padbar{padding-bottom:5.5rem}}
/* r2r after Gate: 3-photo gallery. Desktop = 7/5 lead + two stacked (rules above); phones = lead full width, the two side by side at 4:5 with their caption lines */
@media (max-width:899px){
  .ow-gal>li.ow-side .ow-ph{aspect-ratio:4/5}
  .ow-gal>li.ow-side figcaption span{display:block}
}
/* r2r Atlas QA (b): Home service cards are text cards now (catalog shots live on Systems/Equipment/Services) */
.svc-grid.r2r-noimg .svc-card{display:flex;flex-direction:column;border-top:3px solid var(--red,#e3242b)}
.svc-grid.r2r-noimg .svc-card-body{flex:1;display:flex;flex-direction:column}
.svc-grid.r2r-noimg .svc-card-body .go{margin-top:auto}
/* r2r Atlas QA (c): sharper van shot, shown at its own shape and a little smaller on desktop */
.p26-wide-job.r2r-van .p26-job-img{aspect-ratio:1299/672}
.p26-wide-job.r2r-van .p26-job-img img{object-position:50% 50%}
@media (min-width:901px){.p26-wide-job.r2r-van{max-width:560px;justify-self:center;width:100%}}
@media (max-width:899px){.ow-gal>li.ow-side figcaption{flex:1 1 auto}}

/* ===== r2s (Grok pass 2) ===== */
/* Gate r2r: link on the About navy crew band; ow-02 top of the unit not cropped at desktop (Chris 7:57: keep) */
.ab-crew-close a{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media (min-width:900px){.ow-gal img[src*="/ow-02-"]{object-position:50% 20%}}
/* town call links: brand red is 4.41:1 on paper; one step darker passes AA */
.town .town-call{color:#b8141a}
/* truck page call button: the #ef2a32 top stop is 4.16:1 under white text; start the gradient at brand red */
a.b.call{background:linear-gradient(145deg,var(--red,#e3242b),var(--red-deep,#b3161c))}
.r2s-gm{display:none}
@media (max-width:719px){.r2s-gd{display:none}.r2s-gm{display:inline}}
.p26-work-grid.r2s-nofig{grid-template-columns:1fr;max-width:46rem;margin-inline:auto}
.tg-artwrap.r2s-noart{aspect-ratio:auto;flex:1;display:flex;align-items:center;margin:0;padding:.5rem clamp(1.3rem,3vw,2.2rem) clamp(1.6rem,3vw,2.4rem);-webkit-mask-image:none;mask-image:none;overflow:visible}
.tg-artwrap.r2s-noart .tg-steps-row{position:static;width:100%;padding:0;gap:0}
.tg-artwrap.r2s-noart .tg-steps-row li{text-align:left;font-size:1rem;font-weight:500;line-height:1.3;padding:1rem .9rem 0;border-top:2px solid rgba(18,26,42,.12)}
.tg-artwrap.r2s-noart .tg-steps-row li:first-child{border-top-color:var(--red,#e3242b)}
.tg-artwrap.r2s-noart .tg-steps-row li b{display:block;font-family:var(--display);font-weight:600;font-size:clamp(2rem,3vw,2.6rem);line-height:1;margin-bottom:.45rem;color:var(--red)}
@media (max-width:599px){.tg-artwrap.r2s-noart .tg-steps-row{grid-template-columns:1fr}.tg-artwrap.r2s-noart .tg-steps-row li{display:flex;gap:.9rem;align-items:baseline;padding:.7rem 0;border-top-width:1px}.tg-artwrap.r2s-noart .tg-steps-row li b{display:inline-block;min-width:1.6rem;margin:0;font-size:1.7rem}}
.tg-map-tile.r2s-nomap{background:var(--navy,#121a2a)}
.tg-tile.tg-split.r2s-nomap{min-height:0}
.tg-map-tile.r2s-nomap .tg-in{max-width:none;justify-content:center;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:2.2rem;align-content:center;align-items:end}
.tg-map-tile.r2s-nomap .tg-eb{grid-column:1}
.tg-map-tile.r2s-nomap .tg-h{grid-column:1;font-size:clamp(2rem,3.3vw,2.9rem)}
.tg-map-tile.r2s-nomap .tg-p{grid-column:2;grid-row:1/span 2;align-self:end;font-size:1.06rem;max-width:30rem;margin:0}
@media (max-width:899px){.tg-map-tile.r2s-nomap .tg-in{display:flex}.tg-map-tile.r2s-nomap .tg-p{max-width:none}}
.r2s-owgrid{display:grid;gap:1.6rem}
@media (min-width:900px){.r2s-owgrid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:3rem;align-items:center}}
.r2s-owfig{margin:0;max-width:30rem;width:100%;justify-self:end}
@media (max-width:899px){.r2s-owfig{max-width:none;justify-self:stretch}}
.r2s-owph{display:block;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;background:var(--navy)}
.r2s-owph img{display:block;width:100%;height:100%;object-fit:cover}
.r2s-owfig figcaption{display:grid;gap:.1rem;padding:.6rem .8rem .7rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-top:0;border-radius:0 0 var(--radius) var(--radius)}
.r2s-owfig figcaption strong{color:#fff;font-weight:500}
.r2s-owfig figcaption span{color:rgba(255,255,255,.78);font-size:.9rem;font-weight:300}
.ow-gal.ow-two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:60rem;margin-inline:auto}
.ow-gal.ow-two>li{grid-column:auto}
.ow-gal.ow-two .ow-ph{aspect-ratio:4/5}
.ow-gal.ow-two figcaption{flex:1 1 auto}
.ow-gal.ow-two figcaption span{display:block}
@media (max-width:899px){.ow-gal.ow-two{grid-template-columns:minmax(0,1fr);max-width:30rem;gap:12px}}

/* ===== r2s1 ===== */
/* F1: /our-work tile grid, no empty cells at 3 columns */
@media (min-width:901px){
 .tg-grid.r2s1-ow>.tg-tile:last-child{grid-column:3;grid-row:1/span 2}
 .tg-grid.r2s1-ow>.tg-tile.r2s-nomap{grid-column:1/-1;grid-row:3}
}
/* watch: /truck call sub-label at full opacity (white on brand red) */
a.b.call small{color:#fff;opacity:1}

/* ===== r2t ===== */
/* 1: phone bar clears the last line of every hero (Systems, Comfort Club, Warranty, About, How we work) */
@media (max-width:719px){
 .p26-phero .p26-facts,.ab-hero,.r2s-owhero .r2s-owfig{margin-bottom:.5rem}
 .p26-phero,.p26-phero-cc,.ab-hero,.r2s-owhero{padding-bottom:5.5rem}
 /* About, first screen at 390x844: the red Call button sat half under the bar; tighten the copy spacing so it ends above the bar */
 .ab-hero .ab-hero-panel{padding-top:18px}
 .ab-hero .ab-hero-copy h1{margin-bottom:.6rem}
 .ab-hero .ab-hero-copy .ab-lede{margin-bottom:1rem}
}
/* 3: van caption, sentence case */
.p26-job figcaption.r2t-cap{justify-content:flex-start;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:500}
.p26-job figcaption.r2t-cap span:last-child{white-space:normal}
/* 6: /our-work tall brands tile: larger, centred text block */
@media (min-width:901px){
 .tg-grid.r2s1-ow>.tg-tile:last-child .tg-in{justify-content:center;align-items:flex-start;padding:2.75rem 2.25rem;gap:.35rem}
 .tg-grid.r2s1-ow>.tg-tile:last-child .tg-ic-big{width:4.25rem;height:4.25rem;margin-bottom:1rem}
 .tg-grid.r2s1-ow>.tg-tile:last-child .tg-eb{font-size:.85rem}
 .tg-grid.r2s1-ow>.tg-tile:last-child .tg-h{font-size:clamp(2.4rem,3.1vw,3.1rem);line-height:1.05;margin:.4rem 0 .8rem}
 .tg-grid.r2s1-ow>.tg-tile:last-child .tg-p{font-size:1.12rem;line-height:1.55;max-width:24ch}
 .tg-grid.r2s1-ow>.tg-tile:last-child .tg-logo{width:min(100%,16rem);height:auto;margin-top:1.5rem}
}

/* ===== r2u ===== */
/* 1: on first load at 390x844 nothing in a hero ends below y=760 (bar top 773). Layout, not padding. */
.r2u-facts-m,.r2u-stats-m{display:none}
@media (max-width:719px){
 .p26-phero .r2u-facts-d{display:none}
 /* those heroes now end after the buttons: the r2t 5.5rem bar padding would only leave an empty navy band */
 .p26-phero:has(.r2u-facts-d),.ab-hero{padding-bottom:2.5rem}
 .r2u-facts-wrap{margin-bottom:2rem}
 .r2u-facts-m{display:grid}
 .r2u-facts-m div{background:#fff;border:1px solid rgba(12,24,48,.12);box-shadow:0 1px 2px rgba(12,24,48,.05)}
 .r2u-facts-m dt{color:#b8141a}
 .r2u-facts-m dd{color:var(--navy,#0c1830)}
 .ab-hero .r2u-stats-d{display:none}
 .r2u-stats-m{display:grid;border-top-color:rgba(12,24,48,.14)}
 .r2u-stats-m>div{border-right-color:rgba(12,24,48,.14)}
 .r2u-stats-m dt{color:var(--navy,#0c1830)}
 .r2u-stats-m dd{color:#4a5568}
 /* Services, Equipment, Contact: facts stay in the hero, compact */
 .p26-phero:not(.p26-phero-cc) .p26-facts:not(.r2u-facts-d){grid-template-columns:1fr 1fr;gap:.5rem;margin-top:-1.25rem}
 .p26-phero:not(.p26-phero-cc) .p26-facts:not(.r2u-facts-d) div{padding:.6rem .8rem}
 .p26-phero:not(.p26-phero-cc) .p26-facts:not(.r2u-facts-d) div:last-child:nth-child(odd){grid-column:1/-1}
 .p26-phero:not(.p26-phero-cc) .p26-facts:not(.r2u-facts-d) dd{font-size:.95rem;line-height:1.35}
 /* About: truck photo ~68px shorter so both buttons end above the bar */
 .ab-hero-media{aspect-ratio:4/2.6}
 /* How we work: hero photo capped to 16:9; the crop keeps the fan top, lid and grille of the finished unit in frame */
 .r2s-owhero .r2s-owph{aspect-ratio:16/9;max-height:220px}
 .r2s-owhero .r2s-owph img{object-position:50% 4%}
}
/* 4: Home hero at phone width: a little more veil behind the headline (same photo, same text) */
@media (max-width:719px){.p26-hero .p26-veil{background:linear-gradient(180deg,rgba(7,11,20,.72) 0%,rgba(7,11,20,.64) 45%,rgba(7,11,20,.66) 100%)}}

/* r2u1: Coastal Bend map card (Home) */
.p26-truck .dp.cb-map{justify-content:flex-start}
.dp.cb-map .cbmap{position:absolute;inset:0;width:100%;height:100%;display:block}
.dp.cb-map>span{text-shadow:0 2px 14px rgba(5,10,22,.65)}
.cbmap text{font-family:var(--font);fill:#fff;paint-order:stroke;stroke:#08101f;stroke-width:5px;stroke-linejoin:round}
.cbmap .t1{font-size:30px;font-weight:700}
.cbmap .t2{font-size:23px;font-weight:600}
.cbmap .t3{font-size:20px;font-weight:500;fill:#dbe9f7}
.cbmap .s1{font-size:22px;font-weight:700}
.cbmap .s2{font-size:18px;font-weight:500;fill:#cfe6f7}
.cbmap .w{font-family:var(--display);font-style:italic;font-size:21px;fill:#5ec8f5;fill-opacity:.8;stroke:none}
@media (max-width:600px){.cbmap .t1{font-size:34px}.cbmap .t2{font-size:27px}.cbmap .t3{font-size:24px}.cbmap .s1{font-size:25px}.cbmap .s2{font-size:21px}.cbmap .w{font-size:23px}}

/* ===== r2v ===== */
@media (max-width:719px){
 /* 1: Systems + Warranty heroes end after the buttons; no 100svh floor, so the facts cards sit right under the stripe */
 .p26-phero.r2v-nomin,.p26-phero:has(.r2u-facts-d){min-height:0}
 /* 3: About phone stats copy: fixed line boxes, numbers in fixed-width slots (count-up and font swap cannot move anything) */
 .r2u-stats-m dt{height:1em;line-height:1;white-space:nowrap;overflow:visible}
 .r2u-stats-m dd{min-height:1.35em;white-space:nowrap}
 .r2u-stats-m [data-count]{display:inline-block;text-align:right}
 .r2u-stats-m [data-count="2010"]{min-width:4ch}
 .r2u-stats-m [data-count="24"]{min-width:2ch}
}

/* ===== r2v1 ===== */
@media (max-width:719px){
 /* 2: Systems + Warranty heroes end right under the buttons; keep bar height (48px button + 2x0.7rem + 1px border) + ~20 px
    below them so the sticky phone bar never sits on a button when the hero end reaches the bottom of the screen */
 .p26 .p26-phero.r2v-nomin{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:719px) and (max-height:700px){
 /* 2: short phones (375x667, 360x640 ...): same content, tighter vertical rhythm, so both hero buttons clear the bar on first load */
 .p26 .p26-hero .container{padding-top:100px}
 .p26 .p26-hero h1{margin-bottom:12px}
 .p26 .p26-hero .lead{margin-bottom:16px;font-size:16.5px}
 .p26 .p26-hero .p26-reassure{margin-bottom:12px}
 .p26 .p26-hero .hero-ctas{gap:10px}
 .p26 .p26-phero{padding-top:108px}
 .p26 .p26-phero h1{font-size:34px}
 .p26 .p26-phero .p26-phero-grid p{font-size:17px}
 .p26 .p26-phero .hero-ctas{margin-top:18px;gap:10px}
}

/* ===== r2x fx: static final states (blocking; the animated parts load after the load event) ===== */
.p26-perks .special{position:relative}
.p26-perks .special::after{content:"";position:absolute;top:.9rem;right:.9rem;width:1.6rem;height:1.6rem;border-radius:50%;background:#1aa3e0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/62% no-repeat;box-shadow:0 2px 8px rgba(10,22,46,.18);pointer-events:none}
.cbmap .fxp-pulse{opacity:0;transform-box:fill-box;transform-origin:center}
.fx-ba-b,.fx-ba-r{display:none}
[data-cnt],[data-stat]{font-variant-numeric:tabular-nums}
@media (max-width:719px){.r2u-stats-m [data-stat]{display:inline-block;text-align:right}.r2u-stats-m [data-stat="2010"]{min-width:4ch}.r2u-stats-m [data-stat="24"]{min-width:2ch}}

/* ===== r2x Home logo intro (r2x6: crossfade via lg-xf; src+fetchpriority=low; decode→ready; shine .45s after ready; mask=640) ===== */
.lgx{display:none}
.lg-on .lgx{display:block;position:fixed;z-index:1001;pointer-events:none;transform-origin:0 0;will-change:transform,opacity;top:97px;left:calc(50% - min(150px,39vw));width:min(300px,78vw);height:calc(min(300px,78vw)/4.83);opacity:0}
.lg-on.lg-ready .lgx{opacity:1}
.lg-on.lg-fail .lgx,.lg-on .lgx.lgx-dock{display:none!important}
/* phones/tablets: layout reserve under .lg-on (kept if JS fails / lg-fail so no CLS) */
@media (max-width:999px){.lg-on .lgx-glow{display:block;position:absolute;left:-14%;right:-14%;top:-45%;bottom:-45%;background:radial-gradient(closest-side,rgba(5,10,22,.6),rgba(5,10,22,0))}.lg-on .p26-hero h1{margin-top:96px}}
@media (max-width:999px) and (max-height:700px){.lg-on .lgx{top:88px;left:calc(50% - min(100px,28vw));width:min(200px,56vw);height:calc(min(200px,56vw)/4.83)}.lg-on .p26-hero h1{margin-top:52px}}
@media (max-width:379px) and (max-height:700px){.lg-on .lgx{top:52px;left:calc(50% - min(84px,24vw));width:min(168px,48vw);height:calc(min(168px,48vw)/4.83)}.lg-on .p26-hero h1{margin-top:0}}
.lg-on .lgx img{display:block;width:100%;height:100%;position:relative;opacity:0}
.lg-on.lg-ready .lgx img{opacity:1}
.lg-hide .site-header a.logo .logo-img{opacity:0}
.lg-xf .lgx,.lg-xf .site-header a.logo .logo-img{transition:opacity .35s ease}
.lgx-glow{display:none}
.lgx-sh{position:absolute;inset:0;overflow:hidden;-webkit-mask:url(/images/ta-lockup-r2-dark.a726ec0c.svg) 0 0/100% 100% no-repeat;mask:url(/images/ta-lockup-r2-dark.a726ec0c.svg) 0 0/100% 100% no-repeat}
.lgx-sh b{position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(100deg,rgba(255,200,80,0) 0%,rgba(255,206,96,.85) 34%,rgba(255,248,220,1) 50%,rgba(255,206,96,.85) 66%,rgba(255,200,80,0) 100%);transform:translate3d(-110%,0,0);opacity:0}
/* shine only after decode (lg-ready) — not from a free-running timer on empty img */
.lg-on.lg-ready .lgx-sh b{animation:lgxsh 1.5s cubic-bezier(.45,.05,.35,1) .45s 1 both}
@keyframes lgxsh{0%{transform:translate3d(-110%,0,0);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translate3d(330%,0,0);opacity:0}}
@media (min-width:1000px) and (min-height:700px){
.lg-on .lgx{top:114px;width:347px;height:71.8px;left:calc(50% - 173.5px)}
.lg-on .lgx-glow{display:block;position:absolute;left:-18%;right:-18%;top:-55%;bottom:-55%;background:radial-gradient(closest-side,rgba(5,10,22,.62),rgba(5,10,22,0));will-change:opacity}
.lg-on .p26-hero .container{padding-top:225px}
}
@media (min-width:1000px) and (min-height:820px){.lg-on .lgx{width:411px;height:85.1px;left:calc(50% - 205.5px)}.lg-on .p26-hero .container{padding-top:241px}}
@media (min-width:1280px) and (min-height:700px){.lg-on .lgx{top:130px;width:432px;height:89.4px;left:calc(50% - 216px)}.lg-on .lgx-glow{left:-30%;right:-30%;top:-75%;bottom:-75%;background:radial-gradient(closest-side,rgba(5,10,22,.78),rgba(5,10,22,0))}.lg-on .p26-hero .container{padding-top:262px}}
@media (min-width:1280px) and (min-height:820px){.lg-on .lgx{width:512px;height:106.0px;left:calc(50% - 256px)}.lg-on .p26-hero .container{padding-top:283px}}
@media (prefers-reduced-motion:reduce){.lgx{display:none!important}.lg-hide .site-header a.logo .logo-img{opacity:1!important}}

/* ===== r2cb1 / r2x8: short phones — dock .hero-proof under stripe; clear About Call + Our Work caption ===== */
.hero-proof-dock{display:none}
@media (max-width:719px) and (max-height:700px){
 .p26-hero .hero-proof{display:none}
 .hero-proof-dock{display:block;margin:0 auto;padding:.35rem 0 0}
 .hero-proof-dock .hero-proof{gap:.55rem 1.35rem;margin:0}
 .hero-proof-dock .hero-proof span{color:#3a4254;text-shadow:none}
 .p26-hero .hero-ctas{margin-bottom:1.1rem}
 .hero-proof-dock + .p26-stats{margin-top:.85rem;padding-top:.85rem}

 /* About: shrink truck crop + tighten copy so Call clears sticky bar on first paint */
 .ab-hero{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}
 .ab-hero-media{aspect-ratio:4/1.5;max-height:148px}
 .ab-hero .ab-hero-panel{padding-top:10px;padding-bottom:0}
 .ab-hero .eyebrow{margin-bottom:.25rem}
 .ab-hero .ab-hero-copy h1{margin-bottom:.35rem;font-size:2rem;line-height:1.08}
 .ab-hero .ab-hero-copy .ab-lede{margin-bottom:.7rem;font-size:.92rem;line-height:1.35}
 .ab-hero .hero-ctas{margin-bottom:0;gap:8px}

 /* Our Work: smaller hero photo + tighter copy so figcaption clears bar */
 .r2s-owhero{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}
 .r2s-owhero .r2s-owph{aspect-ratio:16/9;max-height:110px}
 .r2s-owhero .r2s-owfig{margin-bottom:.75rem}
 .r2s-owhero .eyebrow{margin-bottom:.2rem}
 .r2s-owhero h1{font-size:1.85rem;margin:0 0 .35rem}
 .r2s-owhero .r2s-owgrid > div > p{margin:0 0 .45rem;font-size:.92rem;line-height:1.35}
 .r2s-owhero .hero-ctas{margin:.45rem 0 .35rem;gap:8px}
 .r2s-owhero .ow-txt{margin:.25rem 0 0;font-size:.85rem;line-height:1.3}
 .r2s-owfig figcaption{padding:.45rem .7rem .5rem}
}
/* logo-r2: keep the old desktop logo box; r2 lockup fits inside it */
@media (min-width:960px){.site-header.p26-hdr a.logo .logo-img{width:calc(4.1rem*1200/306);max-width:none;object-fit:contain;object-position:left center}}
@media (min-width:1280px){.site-header.p26-hdr a.logo .logo-img{width:calc(5.1rem*1200/306)}}

/* footer social icon row (polish7w4) */
.site-footer .footer-soc{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:0;width:calc(min(100%,13.8rem) + 22px);margin:-2px 0 .45rem -11px;position:relative}
.site-footer .footer-soc::after{content:"";position:absolute;left:11px;right:11px;bottom:-.2rem;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.14),rgba(255,255,255,.04))}
.site-footer .footer-soc a{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:rgba(255,255,255,.88);opacity:.78;transition:opacity .2s,color .2s,transform .25s}
.site-footer .footer-soc a:hover,.site-footer .footer-soc a:focus-visible{opacity:1;color:#fff;transform:translateY(-1px)}
.site-footer .footer-soc svg{width:22px;height:22px;display:block}
@media (prefers-reduced-motion:reduce){.site-footer .footer-soc a{transition:opacity .2s,color .2s}.site-footer .footer-soc a:hover{transform:none}}
