/* ============================================================================
   Clear Coast — chrome (folio, bar, nav), hero, and page components.
   ============================================================================ */

/* ---------------------------------------------------------------- folio --- */
.folio{
  height:34px;background:var(--deep);color:rgba(244,242,237,.72);
  display:flex;align-items:center;position:relative;z-index:60;
}
.folio .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px}
.folio .mono{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
.folio b{color:var(--paper);font-weight:500}
.folio-r{display:flex;align-items:center;gap:20px}
.folio a{text-decoration:none;color:rgba(244,242,237,.72);transition:color .2s var(--ease)}
.folio a b{color:var(--sky)}
@media(hover:hover){.folio a:hover{color:var(--paper)}}

/* ------------------------------------------------------------------ bar --- */
.bar{
  position:sticky;top:0;z-index:70;height:var(--bar);
  background:rgba(244,242,237,.93);backdrop-filter:saturate(1.4) blur(9px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s var(--ease);
}
.bar.stuck{box-shadow:0 1px 18px rgba(18,23,28,.07)}
.bar .wrap{display:flex;align-items:center;gap:22px;height:100%}

.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:50px;width:auto}

.nav{display:flex;align-items:center;gap:5px;margin-left:auto;align-self:stretch}
.nav>a,.drop-t{
  font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);
  text-decoration:none;padding:9px 11px;border:0;background:none;cursor:pointer;
  position:relative;transition:color .2s var(--ease);
}
.nav>a::after,.drop-t::after{
  content:"";position:absolute;left:11px;right:11px;bottom:4px;height:1px;
  background:var(--amber);transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
.nav>a.on::after,.drop-t.on::after{transform:scaleX(1)}
@media(hover:hover){
  .nav>a:hover,.drop-t:hover{color:var(--ink)}
  .nav>a:hover::after,.drop-t:hover::after{transform:scaleX(1)}
}
.nav>a:focus-visible,.drop-t:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

.drop{position:relative;align-self:stretch;display:flex;align-items:center}  /* full bar height, so 100% = the bar's bottom edge */
.drop-t{display:inline-flex;align-items:center;gap:6px}
.drop-t .car{width:8px;height:8px;flex:0 0 auto;transition:transform .35s var(--ease)}
.drop.open .drop-t .car{transform:rotate(180deg)}
/* invisible bridge over the 9px gap, so moving the pointer into the menu never closes it */
.dropm::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
@media(hover:hover) and (pointer:fine){
  .drop:hover .dropm{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  .drop:hover .drop-t{color:var(--ink)}
  .drop:hover .drop-t .car{transform:rotate(180deg)}
}
.dropm{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(-7px);
  min-width:258px;background:var(--paper);border:1px solid var(--line-hard);
  max-height:calc(100vh - var(--bar) - 16px);overflow-y:auto;overscroll-behavior:contain;  /* short screens: scroll inside, never cut off */
  padding:7px;opacity:0;visibility:hidden;pointer-events:none;
  box-shadow:0 16px 44px rgba(18,23,28,.13);
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
}
.dropm-2{min-width:430px;column-count:2;column-gap:4px}
.drop.open .dropm{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.drop:focus-within .dropm{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
/* a menu that would cross the viewport edge is pinned to its trigger's edge instead (set by JS) */
.dropm.edge-r{left:auto;right:0;transform:translateY(-7px)}
.drop.open .dropm.edge-r,.drop:focus-within .dropm.edge-r{transform:translateY(0)}
@media(hover:hover) and (pointer:fine){.drop:hover .dropm.edge-r{transform:translateY(0)}}
.dropm a[aria-current="page"]{color:var(--ink);background:var(--paper-2);box-shadow:inset 2px 0 0 var(--amber)}
.dropm a{
  display:block;padding:8px 12px;font-size:13px;color:var(--ink-soft);
  text-decoration:none;break-inside:avoid;
  transition:background .2s var(--ease),color .2s var(--ease),padding-left .3s var(--ease);
}
@media(hover:hover){.dropm a:hover{background:var(--paper-2);color:var(--ink);padding-left:17px}}
.dropm a:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}

.bar-cta{
  display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;
  padding:10px 17px;background:var(--azure-dp);color:#fff;text-decoration:none;
  font-family:'Spline Sans Mono',monospace;font-size:12.5px;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;border-radius:2px;
  transition:background .25s var(--ease),transform .35s var(--ease);
}
@media(hover:hover){.bar-cta:hover{background:var(--ink);transform:translateY(-1px)}}
.bar-cta:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

.burger{display:none;width:40px;height:40px;border:1px solid var(--line-hard);background:none;cursor:pointer;padding:0;border-radius:2px}
.burger i{display:block;width:17px;height:1.5px;background:var(--ink);margin:3.5px auto;transition:transform .4s var(--ease),opacity .25s var(--ease)}
.burger.x i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger.x i:nth-child(2){opacity:0}
.burger.x i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

.mnav{display:none;position:fixed;left:0;right:0;bottom:0;top:var(--mnav-top,calc(var(--bar) + 34px));z-index:85;
  background:var(--paper);overflow-y:auto;overscroll-behavior:contain;padding:10px 24px 96px;border-top:1px solid var(--line)}
.mnav.open{display:block}
body.nav-open{overflow:hidden}
body.nav-open .callfab{display:none}
/* accordion group: Services / Areas Served collapse like the desktop dropdowns */
.macc{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:13px 0;
  border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;text-align:left;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;color:var(--ink)}
.macc .car{width:10px;height:10px;transition:transform .35s var(--ease);color:var(--amber)}
.macc[aria-expanded="true"] .car{transform:rotate(180deg)}
.macc:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.mnav .sub{padding:4px 0 10px 14px;border-left:1px solid var(--line)}
.mnav .sub[hidden]{display:none}
.mnav a[aria-current="page"]{color:var(--azure-dp)}
.mnav>a{display:block;padding:13px 0;border-bottom:1px solid var(--line);font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;text-decoration:none;color:var(--ink)}
.mnav .sub a{display:block;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:14px;text-decoration:none;color:var(--ink-soft)}

/* call FAB — mobile only */
.callfab{
  display:none;position:fixed;right:16px;bottom:16px;z-index:80;
  align-items:center;gap:8px;padding:13px 19px;border-radius:40px;
  background:var(--azure-dp);color:#fff;text-decoration:none;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;letter-spacing:.04em;
  box-shadow:0 8px 26px rgba(13,27,42,.3);
}

/* ======================================================= HERO: SIGHTLINE ===
   One full-bleed frame. The headline sits IN the glass, the image is the
   ground rather than a sidecar. No rail, no spec plate, no split columns. */
.vh{position:relative;background:var(--deep);color:var(--paper);isolation:isolate;overflow:hidden}
.vh-img{position:absolute;inset:0;z-index:0}
.vh-img img{width:100%;height:100%;object-fit:cover;object-position:58% 42%}
/* the scrim: dark and readable at the left where the type lives, clearing to
   the photograph on the right so the work stays visible */
.vh-img::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(96deg,rgba(9,17,26,.95) 0%,rgba(9,17,26,.88) 34%,rgba(9,17,26,.55) 62%,rgba(9,17,26,.32) 100%),
    linear-gradient(to top,rgba(9,17,26,.85),transparent 42%);
}
.vh-body{position:relative;z-index:1;padding:clamp(52px,11vh,124px) 0 clamp(30px,5vh,56px)}

.vh-eyeb{
  margin:0 0 clamp(18px,3vh,30px);
  font-family:'Spline Sans Mono',monospace;font-size:10.5px;letter-spacing:.28em;
  text-transform:uppercase;color:rgba(244,242,237,.72);
}
.vh-eyeb s{text-decoration:none;color:var(--sky);margin:0 4px}

/* the headline: three weights stepping down, the place-line set in light serif
   and underscored by a rule that runs off the left edge */
.vh-h1{
  margin:0 0 clamp(22px,3.4vh,34px);
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(30px,5.6vw,68px);line-height:.98;letter-spacing:-.035em;
  max-width:17ch;
}
.vh-h1 span{display:block}
.vh-h1 .vh-amp{
  font-family:'Newsreader',Georgia,serif;font-weight:300;font-style:italic;
  text-transform:none;letter-spacing:-.02em;color:var(--sky);
  font-size:.92em;line-height:1.04;
}
/* the place-line carries a short accent rule to its left — sized so it always
   ends inside the gutter rather than clipping at the viewport edge */
.vh-h1 .vh-place{
  position:relative;display:inline-flex;align-items:center;gap:16px;
  font-size:.52em;letter-spacing:.01em;margin-top:.34em;
  color:rgba(244,242,237,.92);
}
.vh-h1 .vh-place::before{
  content:"";flex:0 0 auto;width:clamp(26px,4vw,54px);height:2px;background:var(--azure);
}

/* Keep the copy inside the dark half of the scrim — a second column would run
   onto the bright van and lose contrast. */
.vh-cols{max-width:60ch}
.vh-lede{margin:0;font-size:clamp(15px,1.4vw,17px);line-height:1.66;color:rgba(244,242,237,.9);text-wrap:pretty}
.vh-note{
  margin:14px 0 0;padding-left:16px;border-left:2px solid var(--azure);
  font-size:14.2px;line-height:1.62;color:rgba(244,242,237,.78);text-wrap:pretty;
}

/* the call is the object, not a button: a big tabular number with a label */
.vh-act{display:flex;flex-wrap:wrap;align-items:stretch;gap:14px;margin-top:clamp(26px,4vh,40px)}
.vh-call{
  display:flex;flex-direction:column;gap:3px;text-decoration:none;
  padding:14px 26px 15px;background:var(--azure-dp);color:#fff;border-radius:2px;
  transition:background .28s var(--ease),transform .4s var(--ease);
}
.vh-call-k{font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.vh-call-n{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(19px,2.1vw,25px);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.vh-ghost{
  display:inline-flex;align-items:center;gap:9px;padding:0 22px;
  border:1px solid rgba(244,242,237,.42);border-radius:2px;color:var(--paper);
  text-decoration:none;font-family:'Archivo',sans-serif;font-weight:700;
  font-size:12px;text-transform:uppercase;letter-spacing:.11em;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}
.vh-ghost span{transition:transform .42s var(--ease)}
@media(hover:hover){
  .vh-call:hover{background:#0a63a1;transform:translateY(-2px)}
  .vh-ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
  .vh-ghost:hover span{transform:translateX(5px)}
}
.vh-call:focus-visible,.vh-ghost:focus-visible{outline:2px solid var(--sky);outline-offset:3px}

.vh-line{margin:18px 0 0;font-size:14.2px;color:rgba(244,242,237,.76)}
.vh-line a{color:var(--sky);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(127,196,239,.4);white-space:nowrap}
@media(hover:hover){.vh-line a:hover{border-bottom-color:var(--sky)}}

/* credentials as one hairline rule across the base of the frame */
.vh-facts{position:relative;z-index:1;border-top:1px solid rgba(244,242,237,.2)}
.vh-facts .wrap{display:flex;flex-wrap:wrap}
.vh-facts span{
  position:relative;padding:15px 30px 15px 0;margin-right:30px;
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.17em;
  text-transform:uppercase;color:rgba(244,242,237,.8);white-space:nowrap;
}
.vh-facts span+span::before{
  content:"";position:absolute;left:-30px;top:50%;transform:translateY(-50%);
  width:3px;height:3px;background:var(--sky);
}

@media(max-width:980px){
  .vh-img img{object-position:62% 40%}
  .vh-img::after{background:linear-gradient(to top,rgba(9,17,26,.96) 34%,rgba(9,17,26,.74) 68%,rgba(9,17,26,.6) 100%)}
  .vh-cols{grid-template-columns:1fr;gap:14px;max-width:none}
  .vh-h1{max-width:none}
  .vh-h1 .vh-place::before{display:none}
  .vh-body{padding-top:clamp(150px,34vh,300px)}
}
@media(max-width:560px){
  .vh-act{flex-direction:column;align-items:stretch}
  .vh-ghost{justify-content:center;padding:13px 20px}
  .vh-facts span{padding:11px 20px 11px 0;margin-right:20px;font-size:9.4px}
  .vh-facts span+span::before{left:-20px}
}

/* ============================================ SERVICES: GLASS ZONES ========
   Organised by the part of the vehicle that is damaged, not as a numbered
   list — a customer knows where the break is, not the service name. */
.zones{padding:clamp(66px,9vh,112px) 0;background:var(--paper-2);border-top:1px solid var(--line)}
.zn-head{max-width:64ch;margin-bottom:clamp(34px,5.2vh,62px)}
.zn-eyeb{
  margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line);
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--amber);
}
.zn-h2{
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(27px,4vw,46px);line-height:1.02;letter-spacing:-.035em;margin:0 0 14px;
  max-width:15ch;
}
.zn-h2 em{display:block}
.zn-h2 em{
  font-family:'Newsreader',Georgia,serif;font-weight:300;font-style:italic;
  text-transform:none;letter-spacing:-.02em;color:var(--azure-dp);
}
.zn-intro{margin:0;font-size:clamp(15px,1.4vw,17px);line-height:1.66;color:var(--ink-soft);max-width:60ch}

.zn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,26px)}
.zn{
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;
}
.zn-top{display:flex;gap:18px;align-items:flex-start;padding-bottom:17px;border-bottom:2px solid var(--ink)}
.zn-fig{flex:0 0 auto;width:50px;color:var(--azure-dp);display:block}
.zn-fig svg{width:50px;height:75px;display:block}
.zn-name{
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(15px,1.5vw,18px);letter-spacing:-.01em;line-height:1.14;margin:2px 0 7px;
}
.zn-note{margin:0;font-size:13.4px;line-height:1.56;color:var(--ink-soft)}

.zn-list{list-style:none;margin:0;padding:0;flex:1 1 auto}
.zn-list li+li{border-top:1px solid var(--line-soft)}
.zn-list a{
  position:relative;display:block;padding:16px 34px 16px 0;text-decoration:none;color:inherit;
  transition:padding-left .42s var(--ease);
}
.zn-list a::after{
  content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;
  border-right:1.5px solid var(--ink-soft);border-top:1.5px solid var(--ink-soft);
  transform:translateY(-50%) rotate(45deg);
  transition:transform .42s var(--ease),border-color .3s var(--ease);
}
.zn-t{display:block;font-family:'Archivo',sans-serif;font-weight:700;font-size:15.6px;letter-spacing:-.012em;line-height:1.24;margin-bottom:5px}
.zn-b{display:block;font-size:13.6px;line-height:1.58;color:var(--ink-soft)}
.zn-c{
  display:block;margin-top:8px;
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--azure-dp);
}
.zn-c i{font-style:normal;margin-left:5px;display:inline-block;transition:transform .42s var(--ease)}
@media(hover:hover){
  .zn-list a:hover{padding-left:13px}
  .zn-list a:hover::after{transform:translateY(-50%) rotate(45deg) translate(2px,-2px);border-color:var(--azure-dp)}
  .zn-list a:hover .zn-c i{transform:translateX(4px)}
}
.zn-list a:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}

@media(max-width:860px){
  .zn-grid{grid-template-columns:1fr}
}
@media(hover:none){
  .zn-list a:hover{padding-left:0}
}

/* ================================================== WHY / PROOF LEDGER ====
   Each claim is a full-width record: kind + argument + its OWN evidence.
   Deliberately not a three-column feature grid. */
.proof{padding:clamp(66px,9vh,112px) 0;border-top:1px solid var(--line)}
.pf-head{max-width:66ch;margin-bottom:clamp(26px,4vh,44px)}
.pf-head .zn-intro{margin-top:14px}
/* this heading is longer than the zones one — let it run wider so it holds two
   lines instead of four */
.pf-head .zn-h2{max-width:26ch}
.pf-head .zn-h2 em{display:inline}

.pf{
  display:grid;grid-template-columns:168px minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(20px,3vw,44px);align-items:start;
  padding:clamp(26px,3.4vh,38px) 0;border-top:1px solid var(--line);
}
.pf:first-of-type{border-top:2px solid var(--ink)}
.pf:last-of-type{border-bottom:1px solid var(--line)}

/* the kind column: a big ghosted numeral over a mono label */
.pf-k{display:flex;flex-direction:column;gap:4px}
.pf-n{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(38px,4.6vw,58px);
  line-height:.86;letter-spacing:-.05em;color:#8e887c;   /* AA-large on paper (3.10) */
  font-variant-numeric:tabular-nums;
}
.pf-kind{
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--amber);
}
.pf-t{
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(16px,1.75vw,21px);line-height:1.14;letter-spacing:-.022em;margin:0 0 11px;
}
.pf-p{margin:0;font-size:14.6px;line-height:1.66;color:var(--ink-soft);text-wrap:pretty}

/* the evidence column */
.pf-e{padding-left:clamp(0px,1.6vw,22px);border-left:1px solid var(--line)}
.pf-el{
  display:block;margin-bottom:13px;
  font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ink-soft);
}
.pf-badges{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,2.2vw,30px)}
.pf-badges img{height:52px;width:auto;object-fit:contain;filter:grayscale(1) opacity(.66);transition:filter .4s var(--ease)}
/* six marks: an even 3x2 grid reads as a set — a flex wrap orphans the last one */
.pf-brands{display:grid;grid-template-columns:repeat(3,1fr);gap:18px clamp(14px,1.8vw,24px);align-items:center}
.pf-brands img{height:30px;justify-self:center}
@media(hover:hover){.pf-badges img:hover{filter:grayscale(0) opacity(1)}}

/* warranty ledger: what is covered, and what plainly is not */
.pf-cov{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,26px)}
.pf-col ul{list-style:none;margin:0;padding:0}
.pf-col li{
  position:relative;padding:7px 0 7px 23px;font-size:14px;line-height:1.5;
  border-top:1px solid var(--line-soft);
}
.pf-col li:first-child{border-top:0}
.pf-in li::before{
  content:"";position:absolute;left:1px;top:1.06em;width:10px;height:5px;
  border-left:1.6px solid var(--azure-dp);border-bottom:1.6px solid var(--azure-dp);
  transform:rotate(-45deg);
}
.pf-out li{color:var(--ink-soft)}
.pf-out li::before,.pf-out li::after{
  content:"";position:absolute;left:2px;top:1.22em;width:11px;height:1.6px;
  background:var(--ink-soft);opacity:.7;
}
.pf-out li::before{transform:rotate(45deg)}
.pf-out li::after{transform:rotate(-45deg)}
.pf-out .pf-el{color:var(--ink-soft)}

@media(max-width:980px){
  .pf{grid-template-columns:1fr;gap:18px;padding:26px 0}
  .pf-k{flex-direction:row;align-items:baseline;gap:12px}
  .pf-n{font-size:30px}
  .pf-e{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:18px}
}
@media(max-width:520px){
  .pf-cov{grid-template-columns:1fr;gap:16px}
  .pf-badges img{height:42px}
  .pf-brands img{height:27px}
}
@media(hover:none){
  .pf-badges img:hover{filter:grayscale(1) opacity(.66)}
}

/* ----------------------------------------------------------------- hero --- */
.hero{position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.hero-in{
  display:grid;grid-template-columns:var(--rail) 1.24fr .88fr;gap:0 30px;
  padding:clamp(40px,6vh,72px) 0 clamp(44px,6.5vh,76px);
}
/* the gauge rail — rotated brand + measure ticks, the page's instrument edge */
.hrail{position:relative;border-right:1px solid var(--line)}
.hrail::after{
  content:"";position:absolute;right:-1px;top:78px;bottom:0;width:9px;
  background-image:repeating-linear-gradient(to bottom,var(--line-hard) 0 1px,transparent 1px 13px);
}
.hrail .rot{
  position:absolute;top:8px;left:0;width:var(--rail);
  display:flex;align-items:center;justify-content:flex-start;
  height:var(--rail);
  writing-mode:vertical-rl;white-space:nowrap;
  font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--ink-soft);
}
.hero-lead{min-width:0;padding-top:6px}
.hero-eyeb{display:flex;align-items:center;gap:11px;margin-bottom:20px}
.hero-eyeb .dot{width:6px;height:6px;border-radius:50%;background:var(--amber);flex:0 0 auto}

h1.h1{
  font-family:'Newsreader',Georgia,serif;font-weight:300;
  font-size:clamp(33px,5.1vw,62px);line-height:1.015;letter-spacing:-.025em;
  margin:0 0 22px;
}
h1.h1 .ln{display:block;overflow:hidden;padding:.05em 0}
h1.h1 .ln>span{display:block}
h1.h1 b{
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  letter-spacing:-.035em;font-size:.885em;
}
h1.h1 em{font-style:italic;color:var(--azure-dp)}
h1.h1 .out{
  -webkit-text-stroke:1.4px var(--ink);-webkit-text-fill-color:transparent;
  color:transparent;
}

.hero-lede{font-size:clamp(15.5px,1.45vw,17.5px);line-height:1.66;color:var(--ink-soft);max-width:62ch;margin-bottom:18px;text-wrap:pretty}
.hero-note{font-size:14.6px;line-height:1.62;color:var(--ink-soft);max-width:62ch;margin-bottom:24px;text-wrap:pretty}

.hero-marks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.mark{
  display:inline-flex;align-items:center;gap:8px;padding:7px 13px;
  border:1px solid var(--line-hard);border-radius:2px;background:var(--paper);
  font-family:'Spline Sans Mono',monospace;font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink);
}
.mark::before{content:"";width:5px;height:5px;background:var(--amber);flex:0 0 auto}

.hero-acts{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:18px}
.hero-call{font-size:14.6px;color:var(--ink-soft)}
.hero-call a{color:var(--azure-dp);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(8,80,127,.34);white-space:nowrap}
@media(hover:hover){.hero-call a:hover{border-bottom-color:var(--azure-dp)}}

/* the hero plate: photo + the inspection-card spec sheet beneath it */
.hero-plate{min-width:0;display:flex;flex-direction:column;gap:14px}
.hero-shot{aspect-ratio:1/1;position:relative}
.hero-shot .stamp{
  position:absolute;right:-13px;bottom:-13px;z-index:2;
  width:108px;height:108px;border-radius:50%;
  background:var(--deep);color:var(--paper);
  display:grid;place-items:center;text-align:center;
  font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;line-height:1.5;
  border:1px solid var(--line-inv);transform:rotate(-7deg);
}
.hero-shot .stamp b{display:block;font-family:'Archivo',sans-serif;font-weight:800;font-size:15px;letter-spacing:.01em;color:var(--sky)}

/* ------------------------------------------------------------- ticker ----- */
.ticker{
  background:var(--deep);color:var(--paper);
  border-top:2px solid var(--azure-dp);border-bottom:2px solid var(--azure-dp);
  overflow:hidden;padding:13px 0;
}
.tick-tr{display:flex;width:max-content;animation:marq 34s linear infinite}
.ticker:hover .tick-tr{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
.tick-tr span{
  display:inline-flex;align-items:center;gap:26px;padding-right:26px;white-space:nowrap;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:12.5px;
  text-transform:uppercase;letter-spacing:.13em;
}
.tick-tr i{font-family:'Newsreader',serif;font-style:italic;font-weight:300;font-size:16px;text-transform:none;letter-spacing:0;color:var(--sky)}
.tick-tr u{text-decoration:none;color:var(--sky)}

/* ------------------------------------------------------------- sections --- */
.duo{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(28px,4vw,56px);align-items:start}
.duo-r{display:grid;grid-template-columns:.94fr 1.06fr;gap:clamp(28px,4vw,56px);align-items:start}

/* pricing — tabular spec rows, the card's cost table */
.price{border-top:2px solid var(--ink)}
.price-row{
  display:grid;grid-template-columns:1fr auto;gap:18px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid var(--line);
}
.price-row .k{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px}
.price-row .v{
  font-family:'Spline Sans Mono',monospace;font-size:14px;font-variant-numeric:tabular-nums;
  color:var(--azure-dp);white-space:nowrap;letter-spacing:-.01em;
}
.price-note{margin-top:14px;font-size:13.6px;color:var(--ink-soft)}
.price-aside{display:flex;flex-direction:column;gap:16px}
.price-shot{aspect-ratio:4/3;flex:1 1 auto;min-height:0}
/* pricing row: let the photo column stretch to the text column's height so
   neither side leaves a floating void beneath it */
.duo.duo-stretch{align-items:stretch}

/* steps — numbered with a drawn hairline behind them */
.steps{
  position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);margin:8px 0 0;padding:0;list-style:none;
}
.steps>li{background:var(--paper);padding:26px 24px;list-style:none;position:relative}
.steps>li::marker{content:""}
.step-n{
  display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--amber);color:var(--amber);margin-bottom:14px;
  font-family:'Spline Sans Mono',monospace;font-size:12px;font-variant-numeric:tabular-nums;
  transition:background .4s var(--spring),color .4s var(--spring);
}
@media(hover:hover){.steps>li:hover .step-n{background:var(--amber);color:var(--paper)}}

/* why-cards */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.why>div{background:var(--paper);padding:28px 26px}
.why h3{margin-bottom:11px}
.why p{font-size:14.6px;color:var(--ink-soft)}

/* reviews */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-inv)}
.rev{background:var(--deep);padding:30px 26px;position:relative}
.rev .stars{color:var(--sky);font-size:13px;letter-spacing:.22em;margin-bottom:14px}
.rev p{font-family:'Newsreader',Georgia,serif;font-weight:300;font-size:16.5px;line-height:1.62;color:rgba(244,242,237,.9);margin-bottom:16px}
.rev .who{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.rev .who a{color:var(--sky);text-decoration:none;border-bottom:1px solid rgba(127,196,239,.34)}
@media(hover:hover){.rev .who a:hover{border-bottom-color:var(--sky)}}

/* coverage link grid */
.locs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line)}
.locs a{
  background:var(--paper);padding:15px 18px;text-decoration:none;color:var(--ink);
  font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  transition:background .3s var(--ease),padding-left .4s var(--ease),color .3s var(--ease);
}
.locs a span{color:var(--amber);opacity:0;transform:translateX(-5px);transition:opacity .3s var(--ease),transform .4s var(--ease)}
@media(hover:hover){
  .locs a:hover{background:var(--deep);color:var(--paper);padding-left:24px}
  .locs a:hover span{opacity:1;transform:none}
}
.locs a:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
/* last-cell span, per column count — kills the dead trailing cell at each width */
.locs a.s4-2{grid-column:span 2}
.locs a.s4-3{grid-column:span 3}
.locs a.s4-4{grid-column:span 4}

/* neighborhood chips */
.hoods{display:flex;flex-wrap:wrap;gap:7px}
.hood{
  padding:6px 12px;border:1px solid var(--line-hard);border-radius:2px;
  font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--ink-soft);
}

/* brand/credential strips */
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(22px,3.4vw,46px)}
.logos img{height:34px;width:auto;object-fit:contain;filter:grayscale(1) opacity(.62);transition:filter .4s var(--ease)}
@media(hover:hover){.logos img:hover{filter:grayscale(0) opacity(1)}}
.logos.badges img{height:52px}

/* FAQ */
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  display:grid;grid-template-columns:1fr 38px;gap:18px;align-items:center;
  padding:19px 0;cursor:pointer;list-style:none;
  font-family:'Archivo',sans-serif;font-weight:600;font-size:clamp(15px,1.6vw,17.5px);
  line-height:1.35;letter-spacing:-.012em;
  transition:color .25s var(--ease);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q-chip{
  justify-self:end;width:32px;height:32px;border-radius:50%;
  border:1px solid var(--line-hard);display:grid;place-items:center;
  font-size:17px;line-height:1;color:var(--ink-soft);
  transition:transform .45s var(--ease),background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease);
}
.faq details[open] summary .q-chip{transform:rotate(45deg);background:var(--amber);border-color:var(--amber);color:var(--paper)}
@media(hover:hover){.faq summary:hover{color:var(--azure-dp)}}
.faq summary:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
.faq .ans{
  display:grid;grid-template-columns:1fr 38px;gap:18px;
  padding:0 0 21px;animation:ansIn .5s var(--ease) both;
}
.faq .ans p{font-size:14.8px;color:var(--ink-soft);max-width:70ch}
@keyframes ansIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}

/* map */
.mapwrap{position:relative;border:1px solid var(--line-hard);aspect-ratio:16/9;overflow:hidden}
/* map row: the map is the anchor, so give it the wider track */
.duo-map{display:grid;grid-template-columns:1.5fr .95fr;gap:clamp(24px,3vw,40px);align-items:stretch}
.duo-map .mapwrap{aspect-ratio:auto;min-height:340px}
.mapwrap iframe{width:100%;height:100%;border:0;filter:grayscale(1) sepia(.12) contrast(1.04);transition:filter .6s var(--ease)}
@media(hover:hover){.mapwrap:hover iframe{filter:none}}

/* CTA band */
.cta-band{background:var(--deep);color:var(--paper);position:relative;overflow:hidden}
.cta-band::after{
  content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(11,111,180,.30),transparent 68%);
}
.cta-in{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(26px,4vw,58px);align-items:center;position:relative;z-index:1}
.cta-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}

/* --------------------------------------------------------------- footer --- */
.colophon{background:var(--deep);color:var(--paper);border-top:2px solid var(--azure-dp);padding:clamp(48px,6.5vh,74px) 0 26px;position:relative}
.colophon::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(-45deg,rgba(244,242,237,.028) 0 1px,transparent 1px 11px);
}
.colophon .wrap{position:relative}
.col-top{display:grid;grid-template-columns:1.35fr .85fr 1.2fr 1fr;gap:clamp(24px,3vw,46px)}
.col-brand img{height:56px;width:auto;margin-bottom:18px}
.col-blurb{font-size:14.2px;line-height:1.66;color:rgba(244,242,237,.78);max-width:40ch;margin-bottom:20px}
.col-list{list-style:none;margin:12px 0 0;padding:0}
.col-list li{margin-bottom:9px;font-size:13.6px;line-height:1.5;color:rgba(244,242,237,.78)}
.col-list a{color:rgba(244,242,237,.78);text-decoration:none;transition:color .25s var(--ease),padding-left .35s var(--ease);display:inline-block}
@media(hover:hover){.col-list a:hover{color:var(--sky);padding-left:5px}}
.col-list a:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.col-2{column-count:2;column-gap:18px}
.col-2 li{break-inside:avoid}
.col-bot{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:clamp(30px,4vh,46px);padding-top:20px;border-top:1px solid var(--line-inv);
}
.col-bot .mono{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(244,242,237,.56)}

/* ==================================================== SERVICE PAGES =======
   A long technical document given RHYTHM: every section is a two-column
   record (kind + heading on the left, content on the right), and the grounds
   alternate so the page is not one uniform grey column. */

/* ---- hero: full-bleed, matching the homepage's Sightline treatment ---- */
.svh{position:relative;background:var(--deep);color:var(--paper);isolation:isolate;overflow:hidden}
.svh-img{position:absolute;inset:0;z-index:0}
.svh-img img{width:100%;height:100%;object-fit:cover;object-position:62% 42%}
.svh-img::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(96deg,rgba(9,17,26,.95) 0%,rgba(9,17,26,.9) 40%,rgba(9,17,26,.6) 66%,rgba(9,17,26,.34) 100%),
    linear-gradient(to top,rgba(9,17,26,.8),transparent 44%);
}
.svh-body{position:relative;z-index:1;padding:clamp(26px,4vh,44px) 0 clamp(38px,6vh,66px)}
.crumbs-inv{color:rgba(244,242,237,.68)}
.crumbs-inv a{color:rgba(244,242,237,.68)}
.crumbs-inv i{color:var(--sky)}
@media(hover:hover){.crumbs-inv a:hover{color:var(--paper);border-bottom-color:var(--sky)}}
.svh-h1{
  margin:0 0 20px;font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(28px,4.8vw,58px);line-height:1.0;letter-spacing:-.035em;max-width:17ch;
}
.svh-lede{margin:0 0 14px;font-size:clamp(15px,1.42vw,17.5px);line-height:1.66;color:rgba(244,242,237,.9);max-width:58ch;text-wrap:pretty}
.svh-p{margin:0 0 14px;font-size:14.4px;line-height:1.64;color:rgba(244,242,237,.76);max-width:58ch;text-wrap:pretty}
.svh-marks{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.svh-marks li{
  padding:7px 13px;border:1px solid rgba(244,242,237,.34);border-radius:2px;
  font-family:'Spline Sans Mono',monospace;font-size:10.2px;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(244,242,237,.92);
}
/* the closing ask line of the intro run needs air after the chip row */
.svh-marks + .svh-p{margin-top:18px}
.svh-act{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px}

/* ---- the section record: kind + heading left, content right ---- */
.sv-band{padding:var(--sec-pad) 0;border-top:1px solid var(--line)}
.sv-band-alt{background:var(--paper-2)}
.sv-band-place{background:var(--paper-2)}
.sv-band-faq{background:var(--paper-2)}
.sv-band-ask{background:var(--deep);color:var(--paper);border-top:0}
.sv-band-ask::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(-45deg,rgba(244,242,237,.03) 0 1px,transparent 1px 11px);
}
.sv-band-ask{position:relative}
.sv-band-ask .wrap{position:relative}

.sv-duo{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(24px,4vw,62px);align-items:start}
.sv-duo-l{position:sticky;top:calc(var(--bar) + 22px)}
.sv-kind{
  display:block;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line);
  font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--amber);
}
.sv-kind-i{border-bottom-color:var(--line-inv);color:var(--sky)}
.sv-h2{
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(24px,3.4vw,40px);line-height:1.04;letter-spacing:-.035em;
  margin:0;max-width:20ch;text-wrap:balance;
}
.sv-h2-i{color:var(--paper)}

/* the pulled figure — the client's own number, set as the object it is */
.sv-fig{
  margin:20px 0 4px;font-family:'Archivo',sans-serif;font-weight:800;
  font-size:clamp(24px,2.9vw,36px);line-height:1;letter-spacing:-.038em;
  color:var(--azure-dp);font-variant-numeric:tabular-nums;
}
.sv-fig-n{
  margin:0;font-family:'Spline Sans Mono',monospace;font-size:9.5px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
}

.sv-duo-r{min-width:0;max-width:74ch}
.sv-duo-r p{font-size:15.2px;line-height:1.74;color:var(--ink-soft);margin:0 0 1.05em;text-wrap:pretty}
.sv-duo-r p:last-child{margin-bottom:0}
.sv-inv-body p{color:rgba(244,242,237,.82)}
.sv-h3{
  font-family:'Archivo',sans-serif;font-weight:700;
  font-size:clamp(15.5px,1.6vw,18px);line-height:1.24;letter-spacing:-.015em;
  margin:26px 0 9px;
}
.sv-lead{font-size:15.2px;line-height:1.7;color:var(--ink);font-weight:500;margin:4px 0 10px!important}
.sv-inv-body .sv-lead{color:var(--paper)}

/* lists: ruled columns, not bullets */
.sv-list{list-style:none;margin:0 0 1.15em;padding:0;columns:2;column-gap:34px}
.sv-list li{
  position:relative;padding:8px 0 8px 22px;font-size:14.6px;line-height:1.56;
  color:var(--ink);border-top:1px solid var(--line-soft);break-inside:avoid;
}
.sv-list li::before{content:"";position:absolute;left:0;top:1.02em;width:11px;height:1px;background:var(--amber)}
.sv-inv-body .sv-list li{color:var(--paper);border-top-color:var(--line-inv-soft)}
.sv-inv-body .sv-list li::before{background:var(--sky)}

/* definition runs -> a ruled record table */
.sv-defs{margin:0 0 1.15em;padding:0;border-top:2px solid var(--ink)}
.sv-defs>div{
  display:grid;grid-template-columns:minmax(120px,.3fr) 1fr;gap:6px 22px;
  padding:13px 0;border-bottom:1px solid var(--line);
}
.sv-defs dt{font-family:'Archivo',sans-serif;font-weight:700;font-size:14.4px;line-height:1.34;letter-spacing:-.01em;color:var(--ink)}
.sv-defs dd{margin:0;font-size:14.6px;line-height:1.62;color:var(--ink-soft)}
.sv-inv-body .sv-defs{border-top-color:var(--paper)}
.sv-inv-body .sv-defs>div{border-bottom-color:var(--line-inv)}
.sv-inv-body .sv-defs dt{color:var(--paper)}
.sv-inv-body .sv-defs dd{color:rgba(244,242,237,.8)}

/* titled procedure: "Title⏎Sentence." runs from the source, numbered in order */
.sv-seq{list-style:none;margin:0 0 1.15em;padding:0;border-top:2px solid var(--ink);counter-reset:seq}
.sv-seq>li{
  counter-increment:seq;display:grid;grid-template-columns:44px minmax(150px,.34fr) 1fr;
  gap:6px 22px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line);
}
.sv-seq>li::before{
  content:counter(seq,decimal-leading-zero);font-family:'Spline Sans Mono',monospace;
  font-size:11px;letter-spacing:.14em;color:var(--amber);font-variant-numeric:tabular-nums;
}
.sv-seq-t{font-family:'Archivo',sans-serif;font-weight:700;font-size:15.2px;line-height:1.34;letter-spacing:-.01em;color:var(--ink)}
.sv-seq-b{font-size:14.6px;line-height:1.62;color:var(--ink-soft)}
.sv-band-dark .sv-seq{border-top-color:var(--paper)}
.sv-band-dark .sv-seq>li{border-bottom-color:var(--line-inv)}
.sv-band-dark .sv-seq>li::before{color:var(--sky)}
.sv-band-dark .sv-seq-t{color:var(--paper)}
.sv-band-dark .sv-seq-b{color:rgba(244,242,237,.8)}
@media(max-width:680px){
  .sv-seq>li{grid-template-columns:36px 1fr;gap:4px 14px}
  .sv-seq-b{grid-column:2}
}
.sv-faq{margin-top:0}
.sv-faq details:first-child{border-top:2px solid var(--ink)}

/* ---- service sections reusing homepage components ---- */
.sv-s{scroll-margin-top:calc(var(--bar) + 18px)}
.zones-light{background:var(--paper)}
.zn-grid-2{grid-template-columns:repeat(2,1fr)}
.zn-grid-3{grid-template-columns:repeat(3,1fr)}
.zn-card-b{padding-top:15px}
.zn-card-b p{font-size:14px;line-height:1.62;color:var(--ink-soft);margin:0 0 .9em}
.zn-card-b p:last-child{margin-bottom:0}
.zn-card-b .specs li{font-size:14px}
.hoods-inv .hood{border-color:var(--line-inv);color:rgba(244,242,237,.86)}

/* figure band: the client's number set as the object, spec rows beside it */
.sv-figband{padding:var(--sec-pad) 0;background:var(--deep);color:var(--paper);position:relative;overflow:hidden}
.sv-figband::after{
  content:"";position:absolute;left:-140px;bottom:-160px;width:460px;height:460px;border-radius:50%;
  pointer-events:none;background:radial-gradient(circle,rgba(11,111,180,.28),transparent 68%);
}
.sv-figband .wrap{position:relative;z-index:1}
.fb-in{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(30px,5vw,80px);align-items:end}
.sv-figband .zn-eyeb{color:var(--sky);border-bottom-color:var(--line-inv)}
.sv-figband .sv-h2{color:var(--paper);max-width:18ch}
.fb-fig{
  margin:22px 0 6px;font-family:'Archivo',sans-serif;font-weight:800;
  font-size:clamp(40px,4.7vw,60px);line-height:.96;letter-spacing:-.042em;
  color:var(--sky);font-variant-numeric:tabular-nums;
}
.fb-n{margin:0;font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(244,242,237,.66)}
.fb-lede{margin:0 0 18px;font-size:clamp(15px,1.4vw,17px);line-height:1.66;color:rgba(244,242,237,.88)}
.fb-r p{color:rgba(244,242,237,.8);font-size:15.2px;line-height:1.72}
.fb-r .price{border-top-color:var(--paper)}
.fb-r .price-row{border-bottom-color:var(--line-inv)}
.fb-r .price-row .k{color:var(--paper)}
.fb-r .sv-list li{color:var(--paper);border-top-color:var(--line-inv-soft)}
.fb-r .sv-list li::before{background:var(--sky)}
.fb-r .sv-lead{color:var(--paper)}
/* a two-part spec row where the value is a sentence, not a figure */
.price-row-2{grid-template-columns:minmax(120px,.34fr) 1fr;align-items:baseline;gap:8px 22px}
.price-row-2 .vtxt{font-size:14.4px;line-height:1.6;color:rgba(244,242,237,.8)}

/* ledger record: heading left, boxed evidence right */
.led-in{display:grid;grid-template-columns:64px minmax(0,1fr);gap:clamp(20px,3vw,42px);align-items:start}
.led-l{grid-column:1/-1;display:grid;grid-template-columns:64px minmax(0,1fr);gap:clamp(20px,3vw,42px);align-items:end;margin-bottom:clamp(26px,4vh,46px)}
.led-l .zn-eyeb{grid-column:1;writing-mode:vertical-rl;transform:rotate(180deg);justify-self:start;margin:0;border:0;padding:0;white-space:nowrap}
.led-l .zn-h2{grid-column:2;max-width:26ch}
.led-l .zn-intro{grid-column:2;margin-top:16px;max-width:70ch}
.led-r{grid-column:2}
.led-r{min-width:0;max-width:none}
.led-r>p{font-size:15.2px;line-height:1.74;color:var(--ink-soft);margin:0 0 1.05em;text-wrap:pretty}
.led-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:clamp(16px,2vw,26px);align-items:start}
/* a single box of many short items reads as a stretched table -> columnise it */
.led-box-wide ul{columns:2;column-gap:clamp(20px,3vw,40px)}
.led-box-wide li{break-inside:avoid}
.led-box{
  border:1px solid var(--line-hard);border-radius:3px;padding:20px 22px;background:var(--paper);
}
.led-r>p{max-width:68ch}
/* prose that FOLLOWS a ledger box: give it the box's width, split in two */
.led-tail{columns:2;column-gap:clamp(30px,4.4vw,72px);margin-top:clamp(18px,2.6vh,30px)}
.led-tail>p{max-width:none;break-inside:avoid;margin:0 0 1.05em}
.led-tail>p:last-child{margin-bottom:0}
/* prose-only record: two editorial columns instead of one ribbon + a void */
.led-r-prose{columns:2;column-gap:clamp(30px,4.4vw,72px)}
.led-r-prose>p{max-width:none;break-inside:avoid;margin:0 0 1.05em}
.led-r-prose>p:last-child{margin-bottom:0}
.led-box .pf-el{margin-bottom:11px}
.sv-band-alt .led-box{background:var(--paper)}

.steps-2{grid-template-columns:repeat(2,1fr)}
.steps-3{grid-template-columns:repeat(3,1fr)}
.sv-plain p{font-size:15.2px;line-height:1.74;color:var(--ink-soft);margin:0 0 1.05em;max-width:72ch}

@media(max-width:980px){
  .fb-in{grid-template-columns:1fr;gap:24px;align-items:start}
  .led-r-prose,.led-tail{columns:1}
  .led-in{grid-template-columns:1fr;gap:18px}
  .led-l{grid-template-columns:1fr;gap:10px;margin-bottom:22px}
  .led-l .zn-eyeb{writing-mode:horizontal-tb;transform:none}
  .led-l .zn-h2,.led-l .zn-intro,.led-r{grid-column:1}
  .led-r{max-width:none}
  .zn-grid-3{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .zn-grid-2,.zn-grid-3{grid-template-columns:1fr}
  .steps-2,.steps-3{grid-template-columns:1fr}
  .price-row-2{grid-template-columns:1fr;gap:3px}
}

/* ---- other services ---- */
.sv-more{padding:var(--sec-pad) 0;border-top:1px solid var(--line)}
.sv-more .zn-h2{margin-bottom:22px}
.sv-more-g{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line)}
.sv-more-g a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--paper);padding:15px 18px;text-decoration:none;color:var(--ink);
  font-size:14px;transition:background .3s var(--ease),color .3s var(--ease),padding-left .4s var(--ease);
}
.sv-more-a{color:var(--amber);opacity:0;transform:translateX(-5px);transition:opacity .3s var(--ease),transform .4s var(--ease)}
@media(hover:hover){
  .sv-more-g a:hover{background:var(--deep);color:var(--paper);padding-left:24px}
  .sv-more-g a:hover .sv-more-a{opacity:1;transform:none}
}
.sv-more-g a:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}

@media(max-width:980px){
  .svh-img img{object-position:64% 40%}
  .svh-img::after{background:linear-gradient(to top,rgba(9,17,26,.96) 42%,rgba(9,17,26,.86) 66%,rgba(9,17,26,.72) 100%)}
  .svh-body{padding-top:clamp(130px,28vh,240px)}
  .svh-h1{max-width:none}
  .sv-duo{grid-template-columns:1fr;gap:18px}
  .sv-duo-l{position:static}
  .sv-duo-r{max-width:none}
  .sv-more-g{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .sv-list{columns:1}
  .sv-defs>div{grid-template-columns:1fr;gap:3px}
  .sv-more-g{grid-template-columns:1fr}
}
@media(hover:none){
  .sv-more-g a:hover{background:var(--paper);color:var(--ink);padding-left:18px}
}

/* ---------------------------------------------------------- breadcrumbs --- */
.crumbs{font-family:'Spline Sans Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:18px}
.crumbs a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s var(--ease),color .25s var(--ease)}
@media(hover:hover){.crumbs a:hover{color:var(--ink);border-bottom-color:var(--amber)}}
.crumbs i{font-style:normal;color:var(--amber);margin:0 7px}

/* ============================== RESPONSIVE ================================= */
@media(max-width:1080px){
  .hero-in{grid-template-columns:var(--rail) 1.1fr .95fr;gap:0 24px}
  .col-top{grid-template-columns:1fr 1fr;gap:34px}
}
@media(max-width:980px){
  .nav{display:none}
  .burger{display:block;margin-left:auto}
  .bar-cta{margin-left:0}
  .bar .wrap{gap:14px}
  .hero-in{grid-template-columns:1fr;gap:30px}
  .hrail{display:none}
  .sec-head{grid-template-columns:1fr;gap:16px}
  .sec-head .gauge{min-height:0;border-top:0;padding-top:0}
  .sec-head .gauge::after{display:none}
  .sec-head .num{background:none;padding:0}
  .duo,.duo-r,.duo-map{grid-template-columns:1fr;gap:30px}
  .duo-map .mapwrap{min-height:0;aspect-ratio:4/3}
  .cta-in{grid-template-columns:1fr;gap:26px}
  .row>a{grid-template-columns:52px 1fr 40px}
  .row .dsc{grid-column:2 / -1;grid-row:2;margin-top:6px}
  .row>a{padding:17px 0;align-items:start}
  .row .chip{grid-row:1}
  .locs{grid-template-columns:repeat(3,1fr)}
  .locs a.s4-2,.locs a.s4-3,.locs a.s4-4{grid-column:auto}
  .locs a.s3-2{grid-column:span 2}
  .locs a.s3-3{grid-column:span 3}
}
@media(max-width:860px){
  .steps,.why,.revs{grid-template-columns:1fr}
  .grid.c3,.grid.c4{grid-template-columns:repeat(2,1fr)}
  .callfab{display:inline-flex}
  body{padding-bottom:0}
  .folio .f-l{display:none}
  .folio .wrap{justify-content:center}
  .mapwrap{aspect-ratio:4/3}
}
@media(max-width:680px){
  .wrap{width:calc(100% - 34px)}
  .locs{grid-template-columns:repeat(2,1fr)}
  .locs a.s4-2,.locs a.s4-3,.locs a.s4-4,.locs a.s3-2,.locs a.s3-3{grid-column:auto}
  .locs a.s2-2{grid-column:span 2}
  .col-top{grid-template-columns:1fr;gap:30px}
  .col-2{column-count:2}
  .grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}
  .grid.last-wide>*:last-child{grid-column:span 1}
  /* the call FAB owns the bottom-right corner on mobile — move the stamp to
     the opposite corner so the two never overlap */
  .hero-shot .stamp{width:88px;height:88px;right:auto;left:-6px;bottom:-6px}
  .price-row{grid-template-columns:1fr;gap:3px}
  .col-bot{flex-direction:column;align-items:flex-start}
}
@media(max-width:520px){
  .folio .f-h{display:none}
  h1.h1{font-size:clamp(28px,8.4vw,38px)}
  .locs{grid-template-columns:1fr}
  .locs a[class*="s4-"],.locs a[class*="s3-"],.locs a[class*="s2-"]{grid-column:auto}
  .mark{font-size:9.8px;padding:6px 10px}
}

/* touch: reset every hover gesture so a tap never freezes a row mid-move */
@media(hover:none){
  .row>a:hover{padding-left:0}
  .row>a:hover::before{transform:translateX(-101%)}
  .row>a:hover .chip{background:none;color:inherit;transform:none;border-color:var(--line-hard)}
  .locs a:hover{background:var(--paper);color:var(--ink);padding-left:18px}
  .btn:hover::before{transform:translateX(-101%)}
  .btn:hover{color:inherit}
  .logos img:hover{filter:grayscale(1) opacity(.62)}
  .mapwrap:hover iframe{filter:grayscale(1) sepia(.12) contrast(1.04)}
}

/* ============ v5 section-audit fixes ============================ */

/* 1. CTA band is dark but lacks .inv, so checkmarks stayed amber and the
      trailing line collided with the list above it. */
.cta-band .specs li{border-top-color:var(--line-inv-soft);color:var(--paper)}
.cta-band .specs li::before{border-left-color:var(--sky);border-bottom-color:var(--sky)}
.cta-band .sv-inv-body>p:last-child{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-inv-soft)}

/* 2. The vertical rail label was a 10px orphan floating in a tall column.
      Anchor it with a hairline that runs the height of the heading block. */
.led-l .zn-eyeb{
  align-self:stretch;display:flex;align-items:flex-start;
  font-size:9.5px;letter-spacing:.28em;padding-top:2px;
}
.led-l{position:relative}
.led-l::before{
  content:"";position:absolute;left:31px;top:4px;bottom:6px;width:1px;background:var(--line);
}

/* 3. Definition tables read as four identical rows. Give the term column real
      weight and let the rule under each row carry the eye. */
.sv-defs>div{grid-template-columns:minmax(170px,.34fr) 1fr;padding:15px 0}
.sv-defs dt{font-size:15.2px}
.sv-defs dd{max-width:74ch}

/* 4. Inverted duo bands left a large empty lower-left quadrant: the lede
      stopped short while the right column ran on. Let it use the full column. */
.band.inv .duo>div:first-child .lede{max-width:46ch}

/* 5. Thin-content bands got the same padding as dense ones, so they read as
      half-empty. Tighten the figure band when its body is short. */
.sv-figband.fb-short{padding:var(--sec-pad-tight) 0}

/* 6. Sparse prose sections (big headline, short lede, then two thin columns
      floating low) read as ~40% void. Pull the body up under the heading and
      let the lede set the measure instead of being stranded above a gap. */
.led-l.led-l-sparse{margin-bottom:clamp(16px,2.2vh,26px)}
.sv-band-sparse{padding:var(--sec-pad-tight) 0}
.sv-band-sparse .led-tail{margin-top:clamp(10px,1.6vh,18px)}
.led-l .zn-intro{color:var(--ink-soft)}

/* 7. FAQ: the head stack sat in the left third leaving the upper-right empty,
      and full-width rows stranded the +/- chip ~700px from its question.
      Put the intro beside the heading, and cap the row measure. */
.zones .sv-faq{max-width:1040px}
.sv-faq summary{grid-template-columns:minmax(0,1fr) 38px;gap:24px}
.sv-faq summary span:first-child{max-width:74ch}
.sv-faq .ans{grid-template-columns:minmax(0,1fr) 38px;gap:24px}
.sv-faq .ans p{max-width:78ch}
.zn-head.zn-head-split{
  max-width:none;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(26px,4vw,64px);align-items:end;
}
.zn-head-split .zn-eyeb{grid-column:1;margin-bottom:10px}
.zn-head-split .zn-h2{grid-column:1;max-width:14ch;margin-bottom:0}
.zn-head-split .zn-intro{grid-column:2;max-width:62ch;padding-bottom:4px}
@media(max-width:980px){
  .zn-head.zn-head-split{grid-template-columns:1fr;gap:14px;align-items:start}
  .zn-head-split .zn-eyeb,.zn-head-split .zn-h2,.zn-head-split .zn-intro{grid-column:1}
  .zn-head-split .zn-h2{max-width:none}
}

/* ============ v6 ground sequencing ============================== */
/* Grounds are planned across the page (never two darks adjacent, never three
   plain in a row, always close dark). These variants let a component render on
   the OTHER ground when the sequence demands it — shape and copy unchanged. */

/* a place/area band demoted to light: chips on tint, not on marine */
.place-light .lab-i{color:var(--amber);border-bottom-color:var(--line)}
.place-light .h-sec{color:var(--ink)}
.place-light .lede{color:var(--ink-soft)}
.place-light .hoods-inv .hood{border-color:var(--line-hard);color:var(--ink)}
.place-light .specs li{color:var(--ink);border-top-color:var(--line-soft)}
.place-light .specs li::before{border-left-color:var(--amber);border-bottom-color:var(--amber)}
.place-light .sv-defs{border-top-color:var(--ink)}
.place-light .sv-defs>div{border-bottom-color:var(--line)}
.place-light .sv-defs dt{color:var(--ink)}
.place-light .sv-defs dd{color:var(--ink-soft)}
.place-light p{color:var(--ink-soft)}

/* a figure band demoted to light keeps the numeral scale on paper-2 */
.sv-figband.fb-light{background:var(--paper-2);color:var(--ink)}
.sv-figband.fb-light::after{display:none}
.fb-light .zn-eyeb{color:var(--amber);border-bottom-color:var(--line)}
.fb-light .sv-h2{color:var(--ink)}
.fb-light .fb-fig{color:var(--azure-dp)}
.fb-light .fb-n{color:var(--ink-soft)}
.fb-light .fb-lede{color:var(--ink-soft)}
.fb-light .fb-r p{color:var(--ink-soft)}
.fb-light .fb-r .price{border-top-color:var(--ink)}
.fb-light .fb-r .price-row{border-bottom-color:var(--line)}
.fb-light .fb-r .price-row .k{color:var(--ink)}
.fb-light .fb-r .price-row .vtxt{color:var(--ink-soft)}
.fb-light .fb-r .sv-list li{color:var(--ink);border-top-color:var(--line-soft)}
.fb-light .fb-r .sv-list li::before{background:var(--amber)}
.fb-light .fb-r .sv-lead{color:var(--ink)}

/* light components promoted to dark (a page whose first half had no anchor) */
.sv-band-dark,.zones.zones-dark{
  background:var(--deep);color:var(--paper);border-top-color:var(--line-inv);position:relative;
}
.sv-band-dark::before,.zones.zones-dark::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(-45deg,rgba(244,242,237,.03) 0 1px,transparent 1px 11px);
}
.sv-band-dark>.wrap,.zones.zones-dark>.wrap{position:relative;z-index:1}
.sv-band-dark .zn-eyeb,.zones-dark .zn-eyeb{color:var(--sky);border-bottom-color:var(--line-inv)}
.sv-band-dark .zn-h2,.zones-dark .zn-h2,.sv-band-dark .sv-h2{color:var(--paper)}
.sv-band-dark .zn-intro,.zones-dark .zn-intro{color:rgba(244,242,237,.84)}
.sv-band-dark p,.zones-dark .zn-card-b p{color:rgba(244,242,237,.82)}
.sv-band-dark .led-l::before{background:var(--line-inv)}
.sv-band-dark .sv-defs{border-top-color:var(--paper)}
.sv-band-dark .sv-defs>div{border-bottom-color:var(--line-inv)}
.sv-band-dark .sv-defs dt{color:var(--paper)}
.sv-band-dark .sv-defs dd{color:rgba(244,242,237,.8)}
.sv-band-dark .sv-list li{color:var(--paper);border-top-color:var(--line-inv-soft)}
.sv-band-dark .sv-list li::before{background:var(--sky)}
.sv-band-dark .led-box{background:rgba(244,242,237,.05);border-color:var(--line-inv)}
.sv-band-dark .led-box .pf-el{color:rgba(244,242,237,.72)}
.sv-band-dark .led-box li{color:var(--paper);border-top-color:var(--line-inv-soft)}
.sv-band-dark .pf-in li::before{border-left-color:var(--sky);border-bottom-color:var(--sky)}
.sv-band-dark .steps li{background:rgba(244,242,237,.04);border-color:var(--line-inv)}
.sv-band-dark .step-n{color:var(--sky);border-color:var(--line-inv)}
.sv-band-dark .h-sub{color:var(--paper)}
.zones-dark .zn{background:rgba(244,242,237,.04);border-color:var(--line-inv)}
.zones-dark .zn-top{border-bottom-color:var(--paper)}
.zones-dark .zn-name{color:var(--paper)}
.zones-dark .zn-note,.zones-dark .zn-b{color:rgba(244,242,237,.78)}
.zones-dark .specs li{color:var(--paper);border-top-color:var(--line-inv-soft)}
.zones-dark .specs li::before{border-left-color:var(--sky);border-bottom-color:var(--sky)}

/* ============ LOCATION PAGES ==================================== */
/* Reuses the approved homepage components; these rules only cover what a
   location page adds (the locator, breadcrumb, headings on dark, plain cells). */

/* client H2s are longer than the homepage's display headings — widen the measure
   so they set in 2-3 lines instead of a 6-line tower */
.lc .zn-h2{max-width:24ch}
.lc .zn-head-split .zn-h2{max-width:20ch}
.lc .pf-head .zn-h2{max-width:24ch}

/* hero */
.lc-hero .vh-img img{object-position:62% 38%}
.lc-crumbs{
  margin:0 0 16px;font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(244,242,237,.72);
}
.lc-crumbs a{color:rgba(244,242,237,.9);text-decoration:none;border-bottom:1px solid rgba(244,242,237,.3)}
@media(hover:hover){.lc-crumbs a:hover{border-bottom-color:var(--sky)}}
.lc-crumbs s{text-decoration:none;margin:0 6px;color:rgba(244,242,237,.4)}
.lc-coord{font-variant-numeric:tabular-nums;letter-spacing:.08em}
.lc-h1 span{max-width:none}

/* headings on the marine bands */
.zn-head-inv .zn-eyeb{color:var(--sky);border-bottom-color:var(--line-inv)}
.zn-head-inv .zn-h2{color:var(--paper)}
.zn-head-inv .zn-h2 em{color:var(--sky)}

.band-tint{background:var(--paper-2)}

/* same-day band: heading, lede and body share the left column; the plate beside */
.lc-mob{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:clamp(28px,4.4vw,72px);align-items:center}
.lc-mob-l .zn-head{max-width:none;margin-bottom:clamp(20px,3vh,30px)}
.lc-mob-l .zn-eyeb{margin-bottom:14px}
.lc-mob-l .zn-h2{max-width:18ch;margin-bottom:0}
.lc-mob-l .lede{max-width:54ch;margin:0 0 14px}
.lc-mob-l>p:not(.lede){max-width:54ch;margin:0;color:rgba(244,242,237,.8)}
@media(max-width:980px){
  .lc-mob{grid-template-columns:1fr;gap:28px;align-items:start}
}

/* THE LOCATOR — the map framed as a plotted position */
.lc-grid{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,.92fr);gap:clamp(26px,4vw,60px);align-items:start}
.lc-map{margin:0}
.lc-map-frame{position:relative;border:1px solid var(--line-hard);aspect-ratio:4/3;background:var(--paper-2)}
.lc-map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:grayscale(1) sepia(.12) contrast(1.04);transition:filter .6s var(--ease)}
@media(hover:hover){.lc-map-frame:hover iframe{filter:none}}
/* corner registration ticks: the frame reads as a plotted sheet, not an embed */
.lc-tick{position:absolute;width:18px;height:18px;pointer-events:none;z-index:1}
.lc-tick-tl{top:-7px;left:-7px;border-top:2px solid var(--amber);border-left:2px solid var(--amber)}
.lc-tick-br{bottom:-7px;right:-7px;border-bottom:2px solid var(--amber);border-right:2px solid var(--amber)}
.lc-cap{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:10px;
  border-top:1px solid var(--line);font-family:'Spline Sans Mono',monospace;font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-variant-numeric:tabular-nums;
}
.lc-side>p{margin:0 0 1.05em;font-size:15.2px;line-height:1.74;color:var(--ink-soft);text-wrap:pretty}
.lc-side a{color:var(--azure-dp);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}
.lc-wx{margin-top:26px;padding-top:18px;border-top:2px solid var(--ink)}
.lc-wx .lab{display:block;margin-bottom:12px}
.lc-wx .weatherwidget-io{display:block;min-height:90px}
.lc-shop{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.lc-shop .lab{display:block;margin-bottom:8px}
.lc-shop p{margin:0;font-size:14.6px;line-height:1.6;color:var(--ink)}

/* a nearby community with no page of its own: same cell, no link, no arrow */
.locs .locs-plain{
  background:var(--paper);padding:15px 18px;color:var(--ink-soft);font-size:14px;
  display:flex;align-items:center;
}
.locs .locs-plain.s4-2{grid-column:span 2}
.locs .locs-plain.s4-3{grid-column:span 3}
.locs .locs-plain.s4-4{grid-column:span 4}
/* pricing: table + factors left, the photo stretches to the same height right */
.lc-factors{margin-top:22px}
.lc-factors .specs{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.lc-factors .specs li:nth-child(2){border-top:0}
.lc-price-shot{display:flex}
.lc-price-shot .shot{flex:1 1 auto;min-height:320px;position:relative;overflow:hidden}
.lc-price-shot .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.lc-close{margin:26px 0 0;max-width:70ch;font-size:15.2px;line-height:1.7;color:var(--ink-soft)}
.lc-close a{color:var(--azure-dp);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}

@media(max-width:980px){
  .lc-grid{grid-template-columns:1fr;gap:28px}
  .locs .locs-plain.s4-2,.locs .locs-plain.s4-3,.locs .locs-plain.s4-4{grid-column:auto}
  .locs .locs-plain.s3-2{grid-column:span 2}
  .locs .locs-plain.s3-3{grid-column:span 3}
  .lc .zn-head-split .zn-h2{max-width:none}
}
@media(max-width:680px){
  .locs .locs-plain.s3-2,.locs .locs-plain.s3-3{grid-column:auto}
  .locs .locs-plain.s2-2{grid-column:span 2}
}
@media(max-width:520px){
  .lc-factors .specs{grid-template-columns:1fr}
  .lc-factors .specs li:nth-child(2){border-top:1px solid var(--line-soft)}
  .locs .locs-plain.s2-2{grid-column:auto}
  .lc-map-frame{aspect-ratio:1/1}
}


/* ============ UTILITY PAGES (About, Contact, Privacy, Terms, Sitemap) === */

/* contact record: values may be long (hours, a URL), so let them wrap */
.info-record{margin:16px 0 0}
.info-record li{flex-wrap:wrap}
.info-record .v{white-space:normal;overflow-wrap:anywhere;text-align:right}
.info-record .v a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.cta-band .leads li+li{border-top-color:var(--line-inv-soft)}
.cta-band .leads .k{color:rgba(244,242,237,.68)}
.cta-band .leads .dots{border-bottom-color:var(--line-inv)}
.cta-band .leads .v{color:var(--paper)}

/* document header: Privacy, Terms, Sitemap, 404 */
.ih{background:var(--deep);color:var(--paper);position:relative;overflow:hidden;
  padding:clamp(44px,7vh,86px) 0 clamp(40px,6vh,70px)}
.ih::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(-45deg,rgba(244,242,237,.03) 0 1px,transparent 1px 11px)}
.ih .wrap{position:relative}
.ih-eyeb{margin:0 0 12px;font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--sky)}
.ih-h1{margin:0;font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(28px,4.4vw,52px);line-height:1.02;letter-spacing:-.035em;max-width:22ch;text-wrap:balance}
.ih-meta{display:inline-block;margin:20px 0 0;padding:6px 11px;border:1px solid var(--line-inv);
  font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.1em;color:rgba(244,242,237,.86)}
.ih-lede{margin:18px 0 0;max-width:68ch;font-size:clamp(15px,1.4vw,17px);line-height:1.66;color:rgba(244,242,237,.84)}

/* legal document: sticky contents beside one readable column */
.doc-grid{display:grid;grid-template-columns:minmax(210px,.3fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:start}
.doc-toc{position:sticky;top:calc(var(--bar) + 24px);border-top:2px solid var(--ink);padding-top:14px}
.doc-toc-l{margin:0 0 10px;font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--amber)}
.doc-toc ol{list-style:none;margin:0;padding:0}
.doc-toc li+li{border-top:1px solid var(--line-soft)}
.doc-toc a{display:grid;grid-template-columns:28px 1fr;gap:6px;padding:8px 0;font-size:13.4px;line-height:1.4;color:var(--ink-soft);text-decoration:none;transition:color .25s var(--ease)}
.doc-toc a span{font-family:'Spline Sans Mono',monospace;font-size:10.5px;color:var(--amber);padding-top:2px}
@media(hover:hover){.doc-toc a:hover{color:var(--ink)}}
.doc-toc a:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.doc-body{min-width:0;max-width:96ch}
.doc-sec{padding:0 0 clamp(30px,4.4vh,46px);scroll-margin-top:calc(var(--bar) + 24px)}
.doc-sec+.doc-sec{padding-top:clamp(28px,4vh,42px);border-top:1px solid var(--line)}
.doc-h2{display:flex;gap:14px;align-items:baseline;margin:0 0 16px;font-family:'Archivo',sans-serif;font-weight:800;
  text-transform:uppercase;font-size:clamp(19px,2.2vw,26px);line-height:1.1;letter-spacing:-.025em}
.doc-n{flex:0 0 auto;font-family:'Spline Sans Mono',monospace;font-weight:400;font-size:11px;letter-spacing:.14em;color:var(--amber)}
.doc-body p{margin:0 0 1em;max-width:74ch;font-size:15.2px;line-height:1.76;color:var(--ink-soft);text-wrap:pretty}
.doc-body p a{color:var(--azure-dp);text-decoration:none;border-bottom:1px solid currentColor}
.doc-body .sv-list{margin-top:4px}
.doc-body .info-record{max-width:520px}
.doc-body .info-record .v{color:var(--ink)}

/* About */
.ab-cols{columns:2;column-gap:clamp(30px,4.4vw,72px)}
.ab-cols p{margin:0 0 1em;break-inside:avoid;font-size:15.2px;line-height:1.74;color:var(--ink-soft)}
.ab-note{margin:18px 0 0;max-width:70ch;font-size:15.2px;line-height:1.7;color:var(--ink-soft)}
.ab-svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-top:2px solid var(--ink)}
.ab-svc li{background:var(--paper-2)}
.ab-svc li>span,.ab-svc a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;font-size:15px;line-height:1.45;color:var(--ink)}
.ab-svc a{text-decoration:none;transition:padding-left .45s var(--ease),color .25s var(--ease)}
.ab-svc a i{font-style:normal;color:var(--amber);transition:transform .45s var(--ease)}
@media(hover:hover){.ab-svc a:hover{padding-left:30px;color:var(--azure-dp)}.ab-svc a:hover i{transform:translateX(4px)}}
.ab-svc a:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
.ab-svc li:last-child:nth-child(odd){grid-column:span 2}
.inv .steps{background:var(--line-inv)}
.inv .steps>li{background:var(--deep)}
.inv .steps .h-sub{color:var(--paper)}
.inv .steps .step-n{color:var(--sky);border-color:var(--line-inv)}
.ab-steps>li p{margin:10px 0 0;font-size:14.6px;line-height:1.64;color:rgba(244,242,237,.8)}
.ab-why{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-top:2px solid var(--ink)}
.ab-why li{background:var(--paper-2);padding:22px 20px 26px;display:flex;flex-direction:column;gap:10px}
.ab-why-n{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--amber)}
.ab-why-t{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;line-height:1.28;letter-spacing:-.012em;color:var(--ink)}
.ab-why-p{margin-top:auto}
.ab-why-p img{height:34px;width:auto;filter:grayscale(1) opacity(.7)}

/* Contact */
.ct-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);align-items:start}
.ct-block+.ct-block{margin-top:clamp(30px,4.6vh,48px);padding-top:clamp(26px,4vh,40px);border-top:1px solid var(--line)}
.ct-h2{margin:0 0 14px;font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:clamp(22px,2.6vw,32px);line-height:1.06;letter-spacing:-.03em;max-width:20ch}
.ct-reach p:not(.zn-eyeb),.ct-quote p:not(.zn-eyeb){margin:0 0 12px;font-size:15.2px;line-height:1.7;color:var(--ink-soft);max-width:56ch}
.ct-reach .info-record{max-width:440px}
.ct-reach .info-record .v{font-size:15px;color:var(--ink)}
.ct-reach p.ct-hours{margin:6px 0 14px;font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(22px,2.6vw,30px);
  line-height:1.1;letter-spacing:-.03em;color:var(--azure-dp)}
.ct-quote{border:1px solid var(--line-hard);background:var(--paper);padding:clamp(24px,3vw,38px)}
.ct-ready .specs{display:grid;grid-template-columns:repeat(2,1fr);column-gap:28px}
.ct-ready .specs li:nth-child(2){border-top:0}
.ct-map .lc-map-frame{aspect-ratio:4/3;border-color:var(--line-inv)}
.inv .ct-map .lc-cap{color:rgba(244,242,237,.72);border-top-color:var(--line-inv)}
.ct-next{list-style:none;margin:0;padding:0;counter-reset:nx;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border-top:2px solid var(--ink)}
.ct-next li{counter-increment:nx;background:var(--paper);padding:20px 18px 24px;font-size:15px;line-height:1.5;color:var(--ink)}
.ct-next li::before{content:counter(nx,decimal-leading-zero);display:block;margin-bottom:12px;font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--amber)}

/* Sitemap and 404 */
.sm-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:clamp(26px,4vw,60px);align-items:start}
.sm-h{display:flex;align-items:baseline;gap:12px;margin:0 0 12px;padding-bottom:10px;border-bottom:2px solid var(--ink);
  font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;font-size:18px;letter-spacing:-.015em}
.sm-h span{font-family:'Spline Sans Mono',monospace;font-weight:400;font-size:11px;color:var(--amber);letter-spacing:.1em}
.sm-list{list-style:none;margin:0;padding:0}
.sm-list-2{columns:2;column-gap:28px}
.sm-list li{break-inside:avoid;border-bottom:1px solid var(--line-soft)}
.sm-list a{display:block;padding:9px 0;font-size:14.6px;color:var(--ink);text-decoration:none;transition:color .25s var(--ease),padding-left .4s var(--ease)}
@media(hover:hover){.sm-list a:hover{color:var(--azure-dp);padding-left:8px}}
.sm-list a:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

@media(max-width:980px){
  .doc-grid{grid-template-columns:1fr}
  .doc-toc{position:static}
  .ct-grid{grid-template-columns:1fr}
  .ab-why{grid-template-columns:repeat(2,1fr)}
  .ct-next{grid-template-columns:repeat(2,1fr)}
  .ct-next li:last-child:nth-child(odd){grid-column:span 2}
  .sm-grid{grid-template-columns:1fr 1fr}
  .sm-col-wide{grid-column:span 2}
  .ab-steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .ab-cols{columns:1}
  .ab-svc{grid-template-columns:1fr}
  .ab-svc li:last-child:nth-child(odd){grid-column:auto}
  .ct-ready .specs{grid-template-columns:1fr}
  .ct-ready .specs li:nth-child(2){border-top:1px solid var(--line-soft)}
  .ab-steps{grid-template-columns:1fr}
}
@media(max-width:520px){
  .ab-why{grid-template-columns:1fr}
  .ct-next{grid-template-columns:1fr}
  .ct-next li:last-child:nth-child(odd){grid-column:auto}
  .sm-grid{grid-template-columns:1fr}
  .sm-col-wide{grid-column:auto}
  .sm-list-2{columns:1}
  .info-record .v{text-align:left}
}


/* ============ QUOTE FORM ============================================ */
/* A designed object in the site's system: corner-ticked plate, underline
   fields, mono labels — never default-styled boxes. */
.qf{position:relative;background:var(--paper);border:1px solid var(--line-hard);padding:clamp(22px,2.6vw,34px)}
.qf-tick{position:absolute;width:18px;height:18px;pointer-events:none}
.qf-tick-tl{top:-7px;left:-7px;border-top:2px solid var(--amber);border-left:2px solid var(--amber)}
.qf-tick-br{bottom:-7px;right:-7px;border-bottom:2px solid var(--amber);border-right:2px solid var(--amber)}
.qf-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.qf-f{display:flex;flex-direction:column;gap:6px;min-width:0}
.qf-wide{grid-column:1/-1}
.qf-l{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.qf-l b{color:var(--amber);font-weight:500}
.qf-l i{font-style:normal;text-transform:none;letter-spacing:.02em;color:var(--ink-soft)}
.qf input,.qf select,.qf textarea{
  width:100%;box-sizing:border-box;margin:0;padding:9px 0 8px;border:0;
  border-bottom:1px solid rgba(18,23,28,.52);   /* a control's only visible edge: 3.55:1 (WCAG 1.4.11), not the 2.1:1 hairline */
  border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:15.5px;line-height:1.4;
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.qf textarea{resize:vertical;min-height:74px}
.qf input::placeholder,.qf textarea::placeholder{color:#646b72;opacity:1}   /* 4.83:1 */
.qf input:focus,.qf select:focus,.qf textarea:focus{outline:0;border-bottom-color:var(--azure-dp);box-shadow:0 1px 0 0 var(--azure-dp)}
.qf input:focus-visible,.qf select:focus-visible,.qf textarea:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.qf-sel{position:relative;display:block}
.qf-sel select{appearance:none;-webkit-appearance:none;padding-right:26px;cursor:pointer}
.qf-sel::after{content:"";position:absolute;right:4px;top:50%;width:7px;height:7px;margin-top:-6px;
  border-right:1.5px solid var(--amber);border-bottom:1.5px solid var(--amber);transform:rotate(45deg);pointer-events:none}
.qf-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 24px;flex-wrap:wrap;
  margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.qf-cap{display:flex;flex-direction:column;gap:6px}
.qf-cap input{width:92px;font-family:'Spline Sans Mono',monospace;font-size:16px;text-align:center}
.qf-q{font-weight:500;color:var(--ink);letter-spacing:.06em}
.qf-btn{display:inline-flex;align-items:center;gap:12px;padding:14px 22px;border:0;border-radius:2px;cursor:pointer;
  background:var(--azure-dp);color:#fff;font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;transition:background .25s var(--ease),transform .35s var(--ease)}
@media(hover:hover){.qf-btn:not(:disabled):hover{background:var(--ink);transform:translateY(-1px)}}
.qf-btn:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.qf-btn:disabled{background:#5d6b77;cursor:progress}
.qf-msg{margin:14px 0 0;font-size:14.4px;line-height:1.55;min-height:0}
.qf-msg:empty{display:none}
.qf-msg.is-err{color:#8f1d12}
/* honeypots: removed from layout AND from assistive tech, but still submitted */
.qf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.qf-done{text-align:left;padding:10px 0}
.qf-stamp{display:inline-block;margin-bottom:14px;padding:6px 12px;border:2px solid var(--azure-dp);color:var(--azure-dp);
  font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;transform:rotate(-2deg)}
.qf-done p{margin:0;font-size:16px;line-height:1.6;color:var(--ink)}

/* the band under service/location heroes */
.qband-in{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(30px,5vw,80px);align-items:center}
.qband-l .zn-h2{max-width:14ch}
.qband-l .zn-intro{max-width:44ch}
.qband-rec{margin-top:22px;max-width:380px}
.qband-rec .v{font-size:13.5px;color:var(--ink)}
.qband .qf{background:var(--paper)}
/* Contact: the quote card already frames the form — never a plate inside a plate */
.ct-quote .qf{margin-top:20px;padding:0;border:0;background:transparent}
.ct-quote .qf-tick{display:none}
.ct-quote{position:relative}
.ct-quote::before,.ct-quote::after{content:"";position:absolute;width:18px;height:18px;pointer-events:none}
.ct-quote::before{top:-7px;left:-7px;border-top:2px solid var(--amber);border-left:2px solid var(--amber)}
.ct-quote::after{bottom:-7px;right:-7px;border-bottom:2px solid var(--amber);border-right:2px solid var(--amber)}

@media(max-width:980px){
  .qband-in{grid-template-columns:1fr;gap:26px;align-items:start}
  .qband-l .zn-h2{max-width:none}
}
@media(max-width:560px){
  .qf-grid{grid-template-columns:1fr}
  .qf-foot{flex-direction:column;align-items:stretch}
  .qf-btn{justify-content:center}
  .qf-cap input{width:100%}
}
