/* ══════════════════════════════════════════════════════════════════════════════
   Robert and Son Paving (2026-09-29): the road crew's route card, designed for Bob Harrison.
   Display: Overpass, the open cousin of Highway Gothic, heavy and tight, its italic for the voice.
   Reading: Public Sans. Motif: the painted road (a yellow centerline dash and a white edge line),
   route shields for the roads out of his yard, a white guide sign for where he works.
   Colours: fresh asphalt, red and tan tar and chip, centerline yellow, concrete paper.
   Photographs are the only dark. Every class is prefixed or scoped (.rsp2) against kit collisions.
   ══════════════════════════════════════════════════════════════════════════════ */
:root{--rd:"Overpass","Overpass Fallback",Arial,sans-serif;--nav-h:100px;--dash:repeating-linear-gradient(90deg,var(--lume) 0 46px,transparent 46px 78px)}
body.rsp2{background:var(--paper);color:var(--body);font-family:var(--sans)}
body.rsp2 main{overflow:clip}
.rsp2 .rd{font-family:var(--rd);font-weight:900;letter-spacing:-.025em;line-height:.98;color:var(--ink);margin:0;padding-bottom:.08em;text-wrap:balance}
.rsp2 .rd em{font-style:italic;font-weight:800;color:var(--accent)}
.rsp2 h2.rd{font-size:clamp(2.4rem,4.6vw,4.4rem)}
body.rsp2 .eyebrow{font-family:var(--rd);font-weight:800;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 18px}
.rsp2 .lede{font-size:18px;line-height:1.7;color:var(--muted);max-width:56ch;margin:22px 0 0}
.rsp2 .btns{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:32px}
.rsp2 .btn.rbtn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;border-radius:3px;border:0;background:var(--ink);color:#fff;
  font-family:var(--rd);font-size:16px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;box-shadow:inset 0 -4px 0 var(--lume);transition:background .3s,transform .3s,box-shadow .3s}
.rsp2 .btn.rbtn:hover{background:var(--accent);transform:translateY(-2px);box-shadow:inset 0 -6px 0 var(--lume)}
.rsp2 .tlink{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:17px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--lume);text-decoration-thickness:3px;text-underline-offset:7px;transition:color .3s}
.rsp2 .tlink:hover{color:var(--accent)}
.rsp2 .tlink.light{color:#fff}
/* the painted road: a yellow centerline dash, used as a rule */
.cl{height:8px;background:var(--dash);background-size:78px 8px}

/* ── header ── */
.nav.rsp{background:rgba(243,241,236,.95);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid var(--line);z-index:90}
.nav.rsp .nav-in{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;height:var(--nav-h)}
.nav.rsp .brand{margin:0;min-height:44px;text-decoration:none}
.nav.rsp .wm{display:flex;flex-direction:column}
.nav.rsp .w1{font-family:var(--rd);font-weight:900;font-size:30px;letter-spacing:-.02em;line-height:1;color:var(--ink);text-transform:uppercase}
.nav.rsp .w1 i{font-style:italic;color:var(--accent)}
.nav.rsp .w2{font-family:var(--rd);font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:6px;padding-top:6px;border-top:4px solid transparent;border-image:var(--dash) 4 0 0 0 / 4px 0 0 0 stretch}
.nav.rsp .nlinks{justify-self:center;display:flex;gap:32px}
.nav.rsp .nlinks a{font-size:17px;font-weight:500;color:var(--ink);padding:10px 0;text-decoration:none;border-bottom:3px solid transparent;transition:border-color .3s,color .3s}
.nav.rsp .nlinks a:hover,.nav.rsp .nlinks a[aria-current]{border-bottom-color:var(--lume)}
.nav.rsp .ncta{display:flex;align-items:center;gap:22px}
.nav.rsp .nphone{display:inline-flex;flex-direction:column;align-items:flex-end;justify-content:center;min-height:44px;font-family:var(--rd);font-size:19px;font-weight:800;color:var(--ink);text-decoration:none;line-height:1.1}
.nav.rsp .nphone span{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.nav.rsp .btn.rbtn{min-height:52px;padding:0 22px;font-size:15px}
.nav.rsp .menubtn{display:none;min-height:52px;border:1px solid rgba(28,30,33,.3);border-radius:3px;background:transparent}
@media(max-width:1239px){.nav.rsp .nlinks,.nav.rsp .nphone{display:none}.nav.rsp .menubtn{display:inline-flex}}
@media(max-width:760px){.nav.rsp .btn.rbtn{display:none}.nav.rsp .menubtn{width:auto;padding:0 18px}.nav.rsp .m-t{position:static;width:auto;height:auto;margin:0;clip:auto;overflow:visible}}
@media(max-width:640px){:root{--nav-h:86px}.nav.rsp .w1{font-size:23px}.nav.rsp .w2{font-size:11px;letter-spacing:.12em}}

/* ── HOME: three of his lanes to the horizon ── */
.rhero{position:relative;min-height:clamp(640px,calc(100svh - var(--nav-h)),940px);display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;color:#fff;padding:0 0 clamp(64px,9vh,110px)}
.rhero-ph{position:absolute;inset:0 0 8px;z-index:-2;display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:6px;background:var(--paper)}
.rhero-ph figure{margin:0;overflow:hidden;position:relative}
.rhero-ph img{width:100%;height:100%;object-fit:cover;display:block}
.rhero-ph .l1 img{object-position:50% 70%}.rhero-ph .l3 img{object-position:50% 60%}
/* 2026-10-15 SEO pass: the eager middle lane (the LCP image) is first in the source so no lazy image precedes it; the columns are pinned so the picture does not move */
.rhero-ph .l1{grid-column:1;grid-row:1}.rhero-ph .l2{grid-column:2;grid-row:1}.rhero-ph .l3{grid-column:3;grid-row:1}
.rhero::before{content:'';position:absolute;inset:0 0 8px;z-index:-1;background:linear-gradient(0deg,rgba(16,17,19,.86) 0%,rgba(16,17,19,.5) 36%,rgba(16,17,19,.08) 66%),linear-gradient(90deg,rgba(16,17,19,.5),rgba(16,17,19,0) 60%)}
.rhero>.cl{position:absolute;left:0;right:0;bottom:0}
body.rsp2 .rhero .eyebrow{color:var(--lume)}
.rhero h1.rd{font-size:clamp(3.4rem,8vw,8.2rem);color:#fff;text-transform:uppercase;line-height:.92}
.rhero h1.rd em{color:var(--lume);text-transform:none;font-size:.86em;display:inline-block;margin-top:.08em}
.rhero .sub{font-size:19px;line-height:1.6;color:rgba(255,255,255,.93);max-width:50ch;margin:24px 0 0}
.rhero .btn.rbtn{background:var(--lume);color:var(--ink);box-shadow:none}
.rhero .btn.rbtn:hover{background:#fff;color:var(--ink)}
@media(max-width:760px){.rhero-ph{grid-template-columns:1fr}.rhero-ph .l1,.rhero-ph .l3{display:none}.rhero-ph .l2{grid-column:1}.rhero{min-height:700px}.rhero h1.rd{font-size:clamp(3rem,13.5vw,4.4rem)}}

/* ── facts as type ── */
.facts-r{padding:clamp(56px,7vw,90px) 0 clamp(40px,5vw,60px);border-bottom:1px solid var(--line)}
.fr-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 40px}
.fr-row p{margin:0;display:flex;flex-direction:column;border-top:6px solid var(--ink);padding-top:16px}
.fr-row b{font-family:var(--rd);font-weight:900;font-size:clamp(3rem,5.6vw,5.2rem);line-height:.9;letter-spacing:-.03em;color:var(--ink)}
.fr-row span{font-size:17px;color:var(--muted);margin-top:10px;max-width:22ch}
.fr-row p:nth-child(2) b{color:var(--accent)}
.fr-lic{margin-top:34px;font-family:var(--rd);font-weight:800;font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media(max-width:800px){.fr-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── SIGNATURE: the surface finder (radio tabs + :has(), complete with scripts off) ── */
.surf{padding:clamp(90px,10vw,140px) 0;background:radial-gradient(55% 45% at 92% 8%,var(--paper-2),rgba(250,249,246,0) 70%),var(--paper)}
.surf-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:20px 50px;align-items:end;margin-bottom:clamp(36px,4vw,56px)}
.surf-head .lede{margin:0 0 10px}
.sf-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.sf-tab{position:relative;cursor:pointer}
.sf-tab input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sf-tab span{display:flex;flex-direction:column;min-height:64px;justify-content:center;padding:10px 22px;border:2px solid var(--ink);border-radius:3px;background:var(--paper-2);transition:background .3s,color .3s,transform .3s}
.sf-tab b{font-family:var(--rd);font-weight:900;font-size:19px;text-transform:uppercase;letter-spacing:.02em;color:inherit}
.sf-tab i{font-style:normal;font-size:15px;color:var(--muted);transition:color .3s}
.sf-tab:hover span{transform:translateY(-2px)}
.sf-tab input:checked+span{background:var(--ink);color:#fff;box-shadow:inset 0 -5px 0 var(--lume)}
.sf-tab input:checked+span i{color:rgba(255,255,255,.85)}
.sf-tab input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}
.sf-p{display:none;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);align-items:center}
.sf:has(#sf-asphalt:checked) .p-asphalt,.sf:has(#sf-chip:checked) .p-chip,.sf:has(#sf-stone:checked) .p-stone,.sf:has(#sf-seal:checked) .p-seal,.sf:has(#sf-repair:checked) .p-repair{display:grid;animation:sfin .45s cubic-bezier(.2,.7,.3,1)}
@supports not selector(:has(*)){.sf-p{display:grid;margin-bottom:60px}.sf-tabs{display:none}}
@keyframes sfin{from{transform:translateY(12px)}to{transform:none}}
.sf-ph{display:grid;gap:14px}
.sf-ph.two{grid-template-columns:1fr 1fr}
.sf-ph figure{margin:0}
.sf-ph img{width:100%;aspect-ratio:5/4;object-fit:cover;display:block}
.sf-ph.two img{aspect-ratio:3/4}
.sf-tx h3{font-family:var(--rd);font-weight:900;font-size:clamp(2.2rem,3.4vw,3.2rem);text-transform:uppercase;letter-spacing:-.01em;color:var(--ink);margin:0}
.sf-tx p{font-size:18px;line-height:1.7;color:var(--body);margin:16px 0 0}
.sf-tx .sf-gl{font-family:var(--rd);font-weight:800;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-top:26px}
.sf-tx ul,.incl{list-style:none;padding:0;margin:10px 0 18px}
.sf-tx li,.incl li{position:relative;padding:9px 0 9px 34px;font-size:17px;color:var(--body);border-bottom:1px solid var(--line)}
.sf-tx li::before,.incl li::before{content:'';position:absolute;left:0;top:19px;width:20px;height:5px;background:var(--lume)}
@media(max-width:900px){.surf-head,.sf-p{grid-template-columns:1fr}.sf-tab span{padding:8px 16px}.sf-tab b{font-size:16px}}

/* ── the groundwork ── */
.ground{padding:clamp(90px,10vw,140px) 0;background:var(--stone);border-top:1px solid var(--line)}
.gw-tx{max-width:900px}
.gw-row{list-style:none;padding:0;margin:clamp(44px,5vw,70px) 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3vw,44px);align-items:start}
.gw-row figure{margin:0 0 20px}
.gw-row img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.gw-row li:nth-child(2){margin-top:60px}.gw-row li:nth-child(2) img{aspect-ratio:1/1}
.gw-row li:nth-child(3) img{aspect-ratio:4/3}
.gw-n{display:block;font-family:var(--rd);font-weight:900;font-style:italic;font-size:3.2rem;line-height:1;color:var(--accent);border-bottom:6px solid transparent;border-image:var(--dash) 0 0 6 0 / 0 0 6px 0 stretch;padding-bottom:10px;width:100%}
.gw-row h3{font-family:var(--rd);font-weight:900;text-transform:uppercase;font-size:1.7rem;color:var(--ink);margin:14px 0 6px}
.gw-row p{font-size:17px;line-height:1.6;color:var(--muted);margin:0}
@media(max-width:900px){.gw-row{grid-template-columns:1fr;max-width:560px}.gw-row li:nth-child(2){margin-top:0}}

/* ── where we work: a white guide sign ── */
.route{padding:clamp(90px,10vw,140px) 0}
.route-in{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(36px,5vw,80px);align-items:center}
.shields{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 0}
.rs{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:70px;height:74px;padding:6px 10px 10px;background:#fff;border:3px solid var(--ink);color:var(--ink);font-family:var(--rd);font-weight:900;font-size:28px;line-height:1}
.rs b{font-size:12px;letter-spacing:.14em;margin-bottom:4px}
.rs.us{border-radius:8px 8px 40% 40% / 8px 8px 30% 30%}
.rs.md{border-radius:50%;min-width:74px}
.sign{background:#fff;border:4px solid var(--ink);border-radius:10px;box-shadow:0 0 0 8px #fff,0 0 0 10px var(--ink),0 30px 60px -30px rgba(28,30,33,.35);padding:8px 0}
.srow{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:18px;padding:20px 28px;text-decoration:none;color:var(--ink);border-bottom:2px solid var(--line);transition:background .3s}
.srow:last-child{border-bottom:0}
.srow:hover{background:var(--paper)}
.s-t{font-family:var(--rd);font-weight:900;font-size:clamp(1.4rem,2.2vw,1.9rem);text-transform:uppercase;letter-spacing:-.01em;line-height:1.1}
.s-d{grid-row:2;font-size:17px;color:var(--muted);margin-top:4px}
.s-a{grid-row:1 / span 2;grid-column:2;align-self:center;font-size:2.6rem;font-weight:900;line-height:1;transition:transform .3s}
.srow:hover .s-a{transform:translateX(4px)}
.srow.hot .s-t{color:var(--accent)}
@media(max-width:900px){.route-in{grid-template-columns:1fr}.srow{padding:18px 20px}}

/* ── parking lots ── */
.lots{padding:clamp(90px,10vw,140px) 0;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lots-in{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,.38fr) minmax(0,1fr);gap:clamp(18px,2.4vw,34px);align-items:end}
.lots figure{margin:0}
.lots-a img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.lots-b{align-self:start}.lots-b img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}
.lots-tx{padding-left:clamp(0px,2vw,30px)}
@media(max-width:1000px){.lots-in{grid-template-columns:1fr 1fr}.lots-tx{grid-column:1 / -1;padding:0}}

/* ── the work, sideways ── */
.work{padding:clamp(80px,9vw,130px) 0}
.work-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:20px 50px;align-items:end;margin-bottom:36px}
.work-head .lede{margin:0 0 8px}
.rwall{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(22px,calc((100vw - var(--wrap)) / 2)) 20px;scrollbar-width:thin}
.rwall figure{flex:0 0 clamp(250px,26vw,360px);margin:0;scroll-snap-align:start}
.rwall img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;transition:transform .3s}
.rwall .sq img{aspect-ratio:1/1}.rwall .lo img{aspect-ratio:4/5}
.rwall figure:hover img{transform:translateY(-4px)}
.rwall figcaption{font-size:15px;color:var(--muted);margin-top:10px;padding-top:10px;border-top:3px solid var(--ink)}
@media(max-width:800px){.work-head{grid-template-columns:1fr}}

/* ── Bob ── */
.bob{padding:clamp(80px,9vw,120px) 0 0;background:linear-gradient(180deg,var(--paper) 0%,var(--stone) 100%);border-top:1px solid var(--line)}
.bob-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,5vw,80px);align-items:end}
.bob-tx{padding-bottom:clamp(60px,8vw,110px)}
.bob-ph{margin:0;align-self:end;position:relative}
/* 2026-10-07 (Adam: "blend in perfect with the background"): the hard tan block behind Bob is gone. A soft warm glow in the
   section's own tan sits behind his shoulders with no edge anywhere, and bob.png itself now fades out over its lower 30%
   (original kept in assets/img/_src/bob-original-2026-09-29.png), so he settles into the page instead of being cut off. */
.bob-ph::before{content:'';position:absolute;left:-6%;right:-6%;bottom:0;height:88%;z-index:0;pointer-events:none;background:radial-gradient(50% 44% at 50% 50%,rgba(201,168,116,.24) 0%,rgba(201,168,116,.09) 48%,rgba(201,168,116,0) 74%)}
.bob-ph img{position:relative;z-index:1;width:100%;max-width:470px;height:auto;display:block;margin:0 auto}
.bob-call{margin:30px 0 0}
.rsp2 .bob-call a{display:inline-flex;flex-direction:column;font-family:var(--rd);font-weight:900;font-size:clamp(2rem,3.6vw,3rem);color:var(--ink);text-decoration:none;line-height:1;border-bottom:6px solid var(--lume);padding-bottom:8px;transition:color .3s}
.bob-call a:hover{color:var(--accent)}
.rsp2 .bob-call a span{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
@media(max-width:800px){.bob-in{grid-template-columns:1fr}.bob-tx{padding-bottom:0}.bob-ph img{max-width:340px}}

/* ── the close ── */
.start{padding:clamp(90px,10vw,140px) 0}
.start-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:center}
.picks{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pick{display:flex;flex-direction:column;justify-content:flex-end;min-height:140px;padding:22px;background:#fff;border:2px solid var(--ink);border-radius:3px;text-decoration:none;color:var(--ink);transition:background .3s,color .3s,transform .3s}
.pick b{font-family:var(--rd);font-weight:900;font-size:1.45rem;text-transform:uppercase;line-height:1.05}
.pick span{font-size:16px;color:var(--muted);margin-top:6px;transition:color .3s}
.pick:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
.pick:hover span{color:rgba(255,255,255,.85)}
@media(max-width:900px){.start-in{grid-template-columns:1fr}}
@media(max-width:480px){.picks{grid-template-columns:1fr}.pick{min-height:96px}}

/* ── interior opening: two photographs, the headline over the seam ── */
.phead{position:relative;min-height:clamp(520px,72svh,760px);display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;color:#fff;padding:0 0 clamp(56px,8vh,90px)}
.phead-ph{position:absolute;inset:0 0 8px;z-index:-2;display:grid;grid-template-columns:1.35fr 1fr;gap:6px;background:var(--paper)}
.phead-ph>div{overflow:hidden}
.phead-ph img{width:100%;height:100%;object-fit:cover;display:block}
.phead::before{content:'';position:absolute;inset:0 0 8px;z-index:-1;background:linear-gradient(0deg,rgba(16,17,19,.84) 0%,rgba(16,17,19,.42) 45%,rgba(16,17,19,.06) 75%)}
.phead>.cl{position:absolute;left:0;right:0;bottom:0}
.phead h1.rd{font-size:clamp(3rem,6.4vw,6.4rem);color:#fff;text-transform:uppercase;line-height:.94;max-width:15ch}
.phead h1.rd em{color:var(--lume);text-transform:none;font-size:.86em}
.phead .sub{font-size:19px;line-height:1.6;color:rgba(255,255,255,.93);max-width:52ch;margin:20px 0 0}
.rsp2 .phead .crumbs,.rsp2 .phead .crumbs a{color:rgba(255,255,255,.88)}
@media(max-width:760px){.phead-ph{grid-template-columns:1fr}.phead-ph .pb{display:none}.phead{min-height:560px}}

/* ── interior pieces ── */
.piece{padding:clamp(80px,9vw,130px) 0;border-bottom:1px solid var(--line)}
.piece:nth-of-type(even){background:var(--paper-2)}
.piece-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:center}
.piece.flip .piece-ph{order:2}
.piece-ph{display:grid;gap:16px}.piece-ph.two{grid-template-columns:1.2fr .8fr;align-items:start}
.piece-ph figure{margin:0}
.piece-ph img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.piece-ph.two figure:nth-child(2){margin-top:70px}.piece-ph.two figure:nth-child(2) img{aspect-ratio:2/3}
.piece-ph figcaption{font-size:15px;color:var(--muted);margin-top:10px}
.piece .num{font-family:var(--rd);font-weight:900;font-style:italic;font-size:3rem;line-height:1;color:var(--accent);margin:0 0 12px}
@media(max-width:900px){.piece-in{grid-template-columns:1fr}.piece.flip .piece-ph{order:0}}
.snow{padding:clamp(70px,8vw,110px) 0;background:var(--stone)}
.snow-in{max-width:880px}
.qa{padding:clamp(80px,9vw,120px) 0}
.qa-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,80px);align-items:start}
.rfaq details{border-top:3px solid var(--ink);padding:4px 0}
.rfaq details:last-child{border-bottom:3px solid var(--ink)}
.rfaq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:64px;font-family:var(--rd);font-weight:800;font-size:1.3rem;color:var(--ink)}
.rfaq summary::-webkit-details-marker{display:none}
.rfaq summary::after{content:'+';font-size:2rem;font-weight:900;color:var(--accent);transition:transform .3s}
.rfaq details[open] summary::after{transform:rotate(45deg)}
.rfaq p{font-size:17.5px;line-height:1.7;color:var(--body);margin:0 0 22px;max-width:60ch}
@media(max-width:900px){.qa-in{grid-template-columns:1fr}}

/* ── estimate page ── */
.contact-sec{padding:clamp(80px,9vw,120px) 0}
.cgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(30px,5vw,80px);align-items:start}
.cgrid form{margin-top:26px}
.cside{background:#fff;border:2px solid var(--ink);border-radius:3px;padding:28px}
.ci{margin:0 0 22px;display:flex;flex-direction:column}
.ci span{font-family:var(--rd);font-weight:800;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.ci a{font-size:18px;color:var(--ink);font-weight:600;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;word-break:break-word}
.chh{font-family:var(--rd);font-weight:900;text-transform:uppercase;font-size:1.2rem;margin:10px 0 8px}
@media(max-width:900px){.cgrid{grid-template-columns:1fr}}

/* ── footer ── */
.rfoot{background:var(--stone);border-top:1px solid var(--line);padding-bottom:40px}
.rfoot>.cl{margin-bottom:clamp(50px,6vw,80px)}
.rf-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
.rfoot .rf-name{font-family:var(--rd);font-weight:900;font-size:1.8rem;text-transform:uppercase;color:var(--ink);margin:0 0 12px}
.rf-name i{color:var(--accent)}
.rfoot p{font-size:16px;line-height:1.65;color:var(--body)}
.rfoot a{color:var(--ink)}
.rf-lic{font-family:var(--rd);font-weight:800;font-size:13px!important;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important}
.rfoot h4{font-family:var(--rd);font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.16em;color:var(--accent);margin:0 0 14px}
.rf-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:50px;padding-top:22px;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
@media(max-width:900px){.rf-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.rf-grid{grid-template-columns:1fr}}

/* ── the quote chat ── */
body.rsp2 .chatfab{position:fixed;right:22px;bottom:22px;z-index:80;display:inline-flex;width:auto;height:auto;place-items:initial;align-items:center;gap:10px;min-height:56px;padding:0 24px;border:0;border-radius:3px;background:var(--ink);color:#fff;font-family:var(--rd);font-weight:900;font-size:16px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:inset 0 -4px 0 var(--lume),0 16px 36px -14px rgba(28,30,33,.55);transition:transform .3s,background .3s}
body.rsp2 .chatfab:hover{transform:translateY(-2px);background:var(--accent)}
.cf-dot{width:10px;height:10px;border-radius:50%;background:var(--lume);box-shadow:0 0 0 4px rgba(227,179,35,.3)}
body.rsp2 .chatpanel{opacity:1;transform:none;pointer-events:auto;position:fixed;right:22px;bottom:92px;z-index:95;width:min(390px,calc(100vw - 32px));max-height:min(620px,calc(100svh - 130px));display:flex;flex-direction:column;background:var(--paper-2);border:2px solid var(--ink);border-radius:6px;box-shadow:0 30px 70px -20px rgba(28,30,33,.5)}
.chatpanel[hidden],body.rsp2 .chatpanel[hidden]{display:none}
.cp-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:6px solid transparent;border-image:var(--dash) 0 0 6 0 / 0 0 6px 0 stretch;background:var(--ink);color:#fff;border-radius:4px 4px 0 0}
.cp-head p{margin:0;display:flex;flex-direction:column}
.cp-head b{font-family:var(--rd);font-weight:900;text-transform:uppercase;font-size:16px}
.cp-head span{font-size:14px;color:rgba(255,255,255,.85)}
.cp-x{min-width:44px;min-height:44px;background:transparent;border:0;color:#fff;font-size:28px;cursor:pointer}
.cp-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.cp-m{max-width:86%;padding:11px 14px;font-size:16px;line-height:1.5;border-radius:4px;background:#fff;border:1px solid var(--line);color:var(--body)}
.cp-m.me{align-self:flex-end;background:var(--ink);color:#fff;border-color:var(--ink)}
.cp-m a{color:inherit;font-weight:700}
.cp-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px}
.cp-chips button{min-height:44px;padding:0 14px;border:2px solid var(--ink);border-radius:3px;background:#fff;font:600 15px var(--sans);color:var(--ink);cursor:pointer;transition:background .3s,color .3s}
.cp-chips button:hover{background:var(--ink);color:#fff}
.cp-in{display:flex;gap:8px;padding:12px 16px 16px;border-top:1px solid var(--line)}
.cp-in input{flex:1;min-height:48px;padding:0 12px;border:2px solid var(--line);border-radius:3px;font:16px var(--sans);background:#fff}
.cp-in button{min-height:48px;padding:0 16px;border:0;border-radius:3px;background:var(--ink);color:#fff;font:800 14px var(--rd);text-transform:uppercase;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:760px){.chatfab{bottom:84px;right:14px;min-height:52px;padding:0 18px}.chatpanel,body.rsp2 .chatpanel{right:12px;bottom:calc(150px + env(safe-area-inset-bottom,0px));max-height:calc(100svh - 250px)}}
body.rsp2 .bookbar .b1{background:var(--ink)}

.err404{padding:160px 0 120px;text-align:center}
.err404 .code{font-family:var(--rd);font-weight:900;font-size:9rem;line-height:1;color:var(--lume);margin:0}

/* gate fixes (2026-09-29): tap targets, label floors, the italic's descender */
.rsp2 .rd{padding-bottom:.16em}
.rfoot .rf-grid a{display:inline-flex;align-items:center;min-height:44px}
.rf-bot a{display:inline-flex;align-items:center;min-height:44px}
.cp-x{min-width:46px!important;min-height:46px!important}
.fr-lic,.rfoot .rf-lic,.sf-tx .sf-gl{font-size:15px!important;letter-spacing:.1em}
.rf-links{display:flex;flex-direction:column}
.nav.rsp .w1,.nav.rsp .w2{white-space:nowrap}
@media(max-width:640px){.nav.rsp .w1{font-size:22px}.nav.rsp .w2{font-size:11px;letter-spacing:.06em}.nav.rsp .nav-in{gap:12px}}
@media(max-width:374px){.nav.rsp .w2{display:none}}

/* ── 2026-10-05 gate (checks newer than this 9/29 build) ──
   The gate reads a photo's scrim from the photo frame's ::after, not from the section's ::before. On phones (one photo,
   full width) the scrim moves onto that photo's frame and the section-level one is switched off, so nothing is doubled;
   desktop keeps the original two-layer scrim. The hero eyebrow is hidden on phones: it wrapped onto two lines over the
   brightest part of the photo, and the surface finder right below lists the same four surfaces. */
.gw-row h3{margin-bottom:12px}
@media(max-width:760px){
  .rhero::before,.phead::before{background:none}
  .rhero-ph .l2::after,.phead-ph .pa::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(16,17,19,.9) 0%,rgba(16,17,19,.84) 62%,rgba(16,17,19,.62) 100%)}
  .phead-ph .pa{position:relative}
  .rhero .eyebrow{display:none}
  /* the phone rule above (.chatfab bottom:84px) lost to body.rsp2 .chatfab bottom:22px, so the quote button sat on top of
     the bottom bar's Call Bob button on every phone; same specificity here, lifted clear of the bar */
  body.rsp2 .chatfab{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}

/* ── 2026-10-07 SEO pass: the keyword line inside each H1 (the search phrase, set small above the hook) ── */
h1.rd .kw{display:block;font-family:var(--sans);font-weight:700;font-size:14px;line-height:1.45;letter-spacing:.16em;text-transform:uppercase;color:var(--lume);margin:0 0 18px;text-shadow:0 1px 14px rgba(16,17,19,.7),0 0 2px rgba(16,17,19,.5)}
@media(max-width:760px){h1.rd .kw{color:#fff;font-size:13px;letter-spacing:.12em;margin-bottom:14px}}
.gw-more{margin:34px 0 0;font-size:17px;line-height:1.6;color:var(--muted)}
.snow+.snow{padding-top:0}
.snow .lede+.lede{margin-top:16px}
.piece-tx .more{margin:16px 0 0}
/* in-sentence links: a 44px tap target on phones without moving the line (padding out, the same margin back in) */
main p a:not(.tlink):not(.btn),main .rfaq p a{display:inline-block;padding:12px 0;margin:-12px 0;text-underline-offset:3px}

