/* ============================================================
   LEDGER.CSS — Macomb Roofing Pros "Open Ledger" design system.
   SINGLE SOURCE for all silo/interior page types. Generated from
   v2 flagship (v2/_parts/02-css.html) + interior components.
   Templates: _build/templates-v2/. Do not hand-edit downstream
   copies; edit here and re-sync.
   ============================================================ */
/* ============ OPEN LEDGER TOKENS ============ */
:root{
  --paper:#f7f4ee; --paper-2:#efeade; --card:#ffffff;
  --line:#e3ddcf; --rule:#c9c0ac; --input-border:#cfc6b2;
  --ink:#132A47; --body:#3E4B5E; --muted:#5E6875; --link:#175CB5;
  --navy:#0c2440; --navy-deep:#071A30; --navy-soft:#173A63;
  --on-dark:#E2EAF4; --on-dark-muted:#A9BACD; --on-dark-faint:#7E93A8;
  --white-alpha-border:rgba(255,255,255,.12);
  --accent:#E7A23A; --accent-dark:#B27714; --accent-deep:#8F5E0D;
  --accent-soft:#F6D79A; --accent-tint:#FBF3E2; --on-accent:#231405;
  --accent-glow:rgba(178,119,20,.28);
  --stamp:#B3401F; --stamp-tint:#F9EAE3;
  --success:#15794F; --success-tint:#E4F3EB; --warn:#B3401F; --focus:#175CB5;
  --scrim-navy:linear-gradient(160deg,rgba(7,26,48,.88),rgba(12,36,64,.62));
  --scrim-modal:rgba(7,26,48,.55);
  --shadow-sm:0 1px 2px rgba(19,42,71,.08);
  --shadow:0 10px 30px rgba(19,42,71,.10);
  --shadow-lg:0 24px 60px rgba(19,42,71,.16);
  --font-display:'Bricolage Grotesque',sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'Spline Sans Mono',monospace;
  --fs-display-xl:clamp(2.7rem,6.2vw,4.8rem);
  --fs-display-lg:clamp(2rem,4.2vw,3.1rem);
  --fs-display-md:clamp(1.55rem,3vw,2.2rem);
  --fs-display-sm:1.3rem;
  --fs-price-xl:clamp(2.3rem,5vw,3.3rem);
  --fs-price-md:1.5rem;
  --fs-lead:1.15rem; --fs-text:1rem; --fs-sm:.9rem; --fs-micro:.78rem; --fs-eyebrow:.75rem;
  --reading-size:1.125rem; --reading-lh:1.75; --measure-reading:70ch; --measure-lede:56ch;
  --r-xs:6px; --r-sm:10px; --r:14px; --r-lg:22px; --r-pill:999px;
  --sp-section:clamp(72px,9vw,120px); --sp-section-sm:56px; --sp-head:48px;
  --gap-1:10px; --gap-2:12px; --gap-3:16px; --gap-4:24px;
  --maxw:1240px;
  --z-callbar:80; --z-header:90; --z-drawer:120; --z-modal:200;
  --dur-1:.18s; --dur-2:.35s; --dur-3:.6s;
  --ease:cubic-bezier(.2,.7,.2,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --lx-accent:#B27714; --lx-map-bg:#f4f0e6; --lx-map-border:var(--line); --lx-map-ink:#132A47;
  --fp-accent:#B27714; --fp-accent-lt:#E7A23A;
  --fp-veil-bg:#f7f4ee; --fp-veil-fg:#132A47; --fp-veil-sub:#B3401F;
  --fp-aura-1:rgba(23,58,99,.35); --fp-aura-2:rgba(178,119,20,.22);
}

/* ============ BASE ============ */
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:var(--font-body);font-size:var(--fs-text);color:var(--body);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);line-height:1.08;font-weight:800;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
.storm :focus-visible,.final :focus-visible,.ana-band :focus-visible,footer :focus-visible,.fin-dark :focus-visible{outline-color:var(--accent-soft)}
::selection{background:var(--accent-soft);color:var(--ink)}
.mono{font-family:var(--font-mono)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--ink);color:#fff;padding:10px 18px;font-family:var(--font-mono);font-size:var(--fs-sm)}
.skip:focus{left:12px;top:12px}
.fp-grain{opacity:.26}

/* ============ LEDGER PRIMITIVES ============ */
.lg-head{margin-bottom:var(--sp-head);border-top:1px solid var(--rule);position:relative;padding-top:34px}
.lg-tab{position:absolute;top:0;left:0;transform:translateY(-52%);background:var(--paper);padding-right:14px;font-family:var(--font-mono);font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);display:inline-flex;align-items:center;gap:10px}
.lg-tab .idx{color:var(--muted)}
.dark .lg-tab,.band-dark .lg-tab{background:transparent;color:var(--accent)}
.lg-head h2{font-size:var(--fs-display-lg);max-width:24ch;margin-bottom:14px}
.lg-head .deck{font-size:var(--fs-lead);color:var(--muted);max-width:var(--measure-lede);text-wrap:balance}
.band-dark .lg-head{border-top-color:var(--navy-soft)}
.band-dark .lg-head h2{color:var(--on-dark)}
.band-dark .lg-head .deck{color:var(--on-dark-muted)}

/* framed figure */
.fig{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xs);padding:10px;box-shadow:var(--shadow-sm)}
.fig img{border-radius:3px;width:100%;object-fit:cover}
.fig-cap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:3px 16px;padding:9px 2px 0;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.05em;color:var(--muted)}
.fig-cap span:first-child{flex:1 1 auto;min-width:60%}
.fig-cap .credit{color:var(--muted);white-space:nowrap;letter-spacing:.08em;margin-left:auto}
.band-dark .fig{background:var(--navy);border-color:var(--navy-soft);box-shadow:none}
.band-dark .fig-cap{color:var(--on-dark-muted)}
.band-dark .fig-cap .credit{color:var(--on-dark-faint)}

/* rubber stamp */
.stampbox{display:inline-block;font-family:var(--font-mono);font-weight:700;font-size:.72rem;letter-spacing:.1em;color:var(--stamp);border:2.5px solid var(--stamp);border-radius:6px;padding:5px 10px;transform:rotate(-7deg);opacity:.92;text-shadow:0 0 1px rgba(179,64,31,.5);box-shadow:inset 0 0 6px rgba(179,64,31,.14);white-space:nowrap;pointer-events:none}
.stamp-anim{opacity:0}
.stamp-anim.stamped{animation:stampin .22s var(--ease-out) forwards}
@keyframes stampin{0%{opacity:0;transform:rotate(-7deg) scale(1.55)}70%{opacity:.95;transform:rotate(-8.5deg) scale(.97)}100%{opacity:.92;transform:rotate(-7deg) scale(1)}}

/* perforated sheet edge */
.sheet-perf{position:relative}
.sheet-perf::before{content:"";position:absolute;top:-6px;left:14px;right:14px;height:12px;background-image:radial-gradient(circle,var(--perf-bg,var(--paper)) 4px,transparent 4.6px);background-size:17px 12px;background-repeat:repeat-x;background-position:0 -3px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:1rem;padding:15px 26px;border-radius:var(--r-sm);cursor:pointer;border:1.5px solid transparent;transition:transform var(--dur-1) var(--ease),background var(--dur-1),color var(--dur-1),border-color var(--dur-1),box-shadow var(--dur-1);white-space:nowrap;line-height:1.2}
.btn svg{width:19px;height:19px;flex:none}
.btn-gold{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 24px -10px var(--accent-glow)}
.btn-gold:hover{background:var(--accent-deep);color:#fff;transform:translateY(-2px)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-ghost-dark{border-color:var(--on-dark);color:var(--on-dark);background:transparent}
.btn-ghost-dark:hover{background:var(--on-dark);color:var(--navy-deep)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-soft);transform:translateY(-2px)}
.btn-block{width:100%}
.btn-lg{padding:18px 30px;font-size:1.06rem}
.btn.tel{font-family:var(--font-mono);font-weight:700;letter-spacing:.01em}

/* ============ ANNOUNCE + HEADER ============ */
.announce{background:var(--navy);color:var(--on-dark);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;text-align:center;padding:9px 16px;display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}
.announce svg{width:13px;height:13px;color:var(--accent);flex:none}
.announce b{color:#fff;font-weight:700}
.announce a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;font-weight:700}
header{position:sticky;top:0;z-index:var(--z-header);background:var(--paper);border-bottom:1px solid var(--rule);transition:background var(--dur-2),box-shadow var(--dur-2)}
header.scrolled{background:#fbf9f4;box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;gap:28px;height:76px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{height:44px;width:auto}
.nav-links{display:flex;gap:26px;margin-left:auto}
.nav-links a{font-family:var(--font-mono);font-weight:500;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--body);padding:6px 0;border-bottom:2px solid transparent}
.nav-links a:hover{color:var(--ink)}
.nav-links a.fp-active{color:var(--accent-deep);border-bottom-color:var(--accent)}
.nav-cta{display:flex;align-items:center;gap:18px}
.nav-phone{text-align:right;line-height:1.25}
.nav-phone span{display:block;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav-phone a{font-family:var(--font-mono);font-weight:700;font-size:1.02rem;color:var(--ink)}
.nav-phone a:hover{color:var(--accent-dark)}
.nav .btn{padding:12px 20px;font-size:.94rem}
.burger{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger span{display:block;width:22px;height:2px;background:var(--ink);transition:transform var(--dur-2)}

/* nav drawer (mobile menu) */
.ndrawer{position:fixed;inset:0;z-index:var(--z-drawer);background:var(--scrim-modal);opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur-2),visibility var(--dur-2)}
.ndrawer.open{opacity:1;pointer-events:auto;visibility:visible}
.ndrawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(340px,88vw);background:var(--paper);border-left:1px solid var(--rule);padding:64px 28px 28px;display:flex;flex-direction:column;gap:4px;transform:translateX(100%);transition:transform var(--dur-2) var(--ease)}
.ndrawer.open .ndrawer-panel{transform:none}
.ndrawer .x{position:absolute;top:14px;right:14px;width:44px;height:44px;font-size:26px;color:var(--ink)}
.ndrawer .dlink{font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:var(--ink);padding:12px 0;border-bottom:1px solid var(--line)}
.ndrawer .dcta{margin-top:auto;display:grid;gap:10px}

/* ============ SPINE LAYOUT ============ */
.spine{display:grid;grid-template-columns:minmax(0,1fr) 424px;gap:48px;align-items:start}
.spine-rail{position:sticky;top:96px}
.spine-main>section{padding:var(--sp-section-sm) 0}
.spine-main>section:first-child{padding-top:44px}

/* ============ HERO ============ */
.hero-eyebrow{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);border-top:1px solid var(--rule);padding-top:12px;display:block;margin-bottom:22px}
.hero-sub{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;color:var(--muted);margin:-16px 0 28px}
.nw{white-space:nowrap}
.storm-sms{text-align:center;margin-top:12px}
.price-note{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.06em;color:var(--muted);margin-top:4px}
.hero-sub::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--stamp);margin-right:9px;vertical-align:1px}
.hero h1{font-size:var(--fs-display-xl);line-height:1.0;letter-spacing:-.025em;margin-bottom:22px}
.hero .lead{font-size:var(--fs-lead);color:var(--body);max-width:var(--measure-lede);margin-bottom:28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px}
.hero-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 26px;max-width:560px}
.hero-checks div{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-weight:500;font-size:.8rem;letter-spacing:.05em;color:var(--ink)}
.hero-checks svg{width:17px;height:17px;color:var(--accent-deep);flex:none}
.hero-fig{margin-top:34px}
.hero-fig img{aspect-ratio:16/7;object-fit:cover}
.tick-band{position:relative;z-index:3;margin:-34px 8px 0;background:var(--navy);border:1px solid var(--navy-soft);border-radius:var(--r-xs);color:var(--on-dark);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;padding:11px 0}
.tick-band .x{color:var(--accent);margin:0 18px}
.tick-band span{margin-right:0}

/* ============ QUOTE SHEET ============ */
.qsheet{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xs);box-shadow:var(--shadow);padding:22px 22px 24px;position:relative}
.qsheet.sheet-perf::before{--perf-bg:var(--paper)}
.qs-top{display:block;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:6px;position:relative}
.qs-title{display:block;font-family:var(--font-mono);font-weight:700;font-size:.85rem;letter-spacing:.14em;color:var(--ink)}
.qs-date{display:block;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--muted);letter-spacing:.06em;margin-top:3px}
.qs-stamp{position:absolute;top:-14px;right:-8px;z-index:2}
.qs-lines{display:flex;flex-direction:column}
.qs-line{display:flex;align-items:baseline;gap:9px;width:100%;padding:8px 2px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;text-align:left;cursor:pointer;border-radius:2px}
.qs-line:hover{background:var(--accent-tint)}
.qs-line .lbl{color:var(--muted);flex:none}
.qs-line .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-4px);min-width:18px}
.qs-line .val{font-weight:700;color:var(--ink);text-align:right}
.qs-line.flash{animation:qsflash .55s var(--ease)}
@keyframes qsflash{0%{background:var(--accent-tint)}100%{background:transparent}}
.qs-prog{display:block;width:132px;height:32px;margin:14px auto 4px;overflow:visible}
.qs-prog path{fill:none;stroke:var(--rule);stroke-width:5.5;stroke-linecap:round}
.qs-prog path.on{stroke:var(--accent-dark);stroke-dasharray:40;stroke-dashoffset:40;animation:segdraw .3s var(--ease) forwards}
@keyframes segdraw{to{stroke-dashoffset:0}}
.qs-step{display:none;padding-top:10px}
.qs-step.on{display:block;animation:stepin .3s var(--ease)}
@keyframes stepin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.qs-q{font-family:var(--font-display);font-weight:700;font-size:1.22rem;color:var(--ink);margin-bottom:4px}
.qs-sub{font-size:var(--fs-sm);color:var(--muted);margin-bottom:14px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt{display:flex;align-items:center;gap:10px;padding:13px 12px;border:1px solid var(--input-border);border-radius:var(--r-xs);background:var(--card);font-family:var(--font-mono);font-weight:500;font-size:.76rem;letter-spacing:.03em;color:var(--ink);text-align:left;transition:border-color var(--dur-1),background var(--dur-1),transform var(--dur-1)}
.opt svg{width:22px;height:22px;flex:none;color:var(--accent-dark)}
.opt:hover{border-color:var(--accent-dark);background:var(--accent-tint);transform:translateY(-1px)}
.opt.sel{border-color:var(--accent-deep);background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-deep)}
.qs-nav{margin-top:12px}
.opt-tel{grid-column:1/-1;background:var(--stamp);border-color:var(--stamp);color:#fff;font-weight:700}
.opt-tel svg{color:#fff}
.opt-tel:hover{background:#93341A;border-color:#93341A;color:#fff}
.qs-tel{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--muted);border-top:1px solid var(--line);margin-top:16px;padding-top:12px;text-align:center}
.qs-tel a{font-weight:700;color:var(--ink)}
.qs-tel a:hover{color:var(--accent-deep)}
.qs-back{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.qs-back:hover{color:var(--ink)}
.qs-result{margin-bottom:12px}
.qs-row{display:flex;align-items:baseline;gap:9px;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.03em;color:var(--muted);padding:6px 0}
.qs-row .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-4px)}
.qs-row .v{color:var(--ink);font-weight:700}
.qs-total-rule{border:0;border-top:2px solid var(--ink);margin:10px 0 8px}
.qs-total-label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;color:var(--muted)}
.qs-total{font-family:var(--font-mono);font-weight:700;font-size:clamp(1.7rem,2.1vw,2rem);color:var(--ink);letter-spacing:-.01em;line-height:1.15;margin:2px 0 6px;font-variant-numeric:tabular-nums}
.od-slot{display:inline-block;height:1.15em;overflow:hidden;vertical-align:bottom}
.od-col{display:flex;flex-direction:column;transition:transform .6s var(--ease-out)}
.od-col span{height:1.15em;line-height:1.15em}
.qs-note{font-size:.82rem;color:var(--body);line-height:1.5;margin-bottom:6px}
.qs-note strong{color:var(--ink)}
.qs-fin{font-family:var(--font-mono);font-size:.78rem;font-weight:700;color:var(--accent-deep);background:var(--accent-tint);border:1px solid var(--accent-soft);border-radius:var(--r-xs);padding:8px 10px;margin:8px 0 2px;transition:box-shadow var(--dur-2)}
.qs-fin.pulse{animation:finpulse 1.2s var(--ease) 2}
@keyframes finpulse{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 4px var(--accent-glow)}}
.qs-foot{font-size:.68rem;color:var(--muted);line-height:1.45;margin-bottom:8px}
.qs-result-stamp{margin:6px 0 2px}
.qs-cap-lead{font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);margin:10px 0 10px}
.qs-field{margin-bottom:12px}
.qs-field label{display:block;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.qs-field input{width:100%;border:0;border-bottom:1.5px solid var(--input-border);background:transparent;padding:7px 2px;font:500 .98rem var(--font-body);color:var(--ink);border-radius:0}
.qs-field input:focus{outline:none;border-bottom-color:var(--focus)}
.qs-field input::placeholder{color:#9a8f77}
.qs-disc{font-size:.68rem;color:var(--muted);line-height:1.45;margin-top:9px}
.qs-ok{text-align:center;padding:26px 6px}
.qs-ok .okstamp{display:inline-block;font-family:var(--font-mono);font-weight:700;letter-spacing:.1em;color:var(--success);border:2.5px solid var(--success);border-radius:6px;padding:7px 13px;transform:rotate(-6deg);margin-bottom:14px}
.qs-ok h3{font-size:1.25rem;margin-bottom:8px}
.qs-ok p{font-size:var(--fs-sm);color:var(--body);margin-bottom:14px}
.form-err{margin-top:14px;padding:16px;border-radius:var(--r-xs);background:var(--stamp-tint);border:1px solid #ecc4b2;display:none;text-align:left}
.form-err.show{display:block}
.form-err p{color:#7a3e12;font-size:.9rem;margin-bottom:12px;line-height:1.5}
.form-err .btn{margin-top:0}
.form-err .btn+.btn{margin-top:8px}

/* ============ SERVICES BENTO ============ */
.bento{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.svc{display:block;background:var(--card);border:1px solid var(--line);border-radius:3px;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-2),border-color var(--dur-2)}
.svc-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.svc-no{font-family:var(--font-mono);font-weight:700;font-size:.72rem;color:var(--muted);border-bottom:2px solid var(--accent);padding-bottom:2px}
.svc-price{display:flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--line);padding:8px 0 2px;margin-bottom:8px}
.svc-price .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-4px);min-width:14px}
.svc-price .v{font-weight:700;color:var(--ink)}
.svc:hover{box-shadow:var(--shadow);border-color:var(--rule)}
.svc-img{position:relative;overflow:hidden}
.svc-img img{width:100%;object-fit:cover;transition:transform .5s var(--ease)}
.svc:hover .svc-img img{transform:scale(1.04)}
.svc-lg .svc-img img{aspect-ratio:16/9}
.svc-sm .svc-img img{aspect-ratio:16/7}
.svc-tag{position:absolute;top:10px;left:10px;background:var(--paper);border:1px solid var(--line);border-radius:3px;font-family:var(--font-mono);font-weight:700;font-size:.6rem;letter-spacing:.12em;color:var(--accent-deep);padding:4px 8px;z-index:2}
.svc-tag.red{color:var(--stamp)}
.svc-body{padding:16px 18px 18px}
.svc-body h3{font-size:1.14rem;margin-bottom:0}
.svc-lg .svc-body h3{font-size:1.3rem}
.svc-body p{font-size:var(--fs-sm);color:var(--body);line-height:1.55;margin-bottom:10px}
.svc-more{font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.09em;color:var(--accent-deep);display:inline-block;padding:12px 0 4px}
.svc:hover .svc-more{text-decoration:underline;text-underline-offset:3px}

/* ============ PRICE TABLE ============ */
.price-sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xs);box-shadow:var(--shadow-sm);padding:8px 8px 20px}
.table-scroll{overflow-x:auto}
.price-table{width:100%;border-collapse:collapse;min-width:520px}
.price-table th{background:var(--navy);color:var(--on-dark);font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;text-align:left;padding:11px 16px}
.price-table th:last-child,.price-table td.num{text-align:right}
.price-table td{padding:15px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.price-table tr:nth-child(even) td{background:var(--paper-2)}
.price-table td.sys{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:1.02rem}
.price-table td.sys small{display:block;font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:.78rem;margin-top:2px}
.price-table td.num{font-family:var(--font-mono);font-weight:700;font-size:1.06rem;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.price-table td.num small{display:block;font-weight:500;font-size:.72rem;color:var(--muted);margin-top:2px}
.price-proof{display:grid;gap:9px;margin-top:18px;padding:0 12px}
.price-proof div{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--ink)}
.price-proof svg{width:16px;height:16px;color:var(--accent-deep);flex:none}
.price-ctas{display:flex;gap:14px 18px;align-items:center;flex-wrap:wrap;margin-top:22px;padding:0 12px}
.price-micro{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;color:var(--muted);flex-basis:100%}
.tlink{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--link);text-decoration:underline;text-underline-offset:3px}
.tlink:hover{color:var(--ink)}

/* ============ BEFORE / AFTER ============ */
.ba-fig{padding:10px}
.ba{position:relative;border-radius:3px;overflow:hidden;aspect-ratio:16/9;cursor:ew-resize;user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;user-select:none}
.ba .after{clip-path:inset(0 0 0 50%)}
.ba-lab{position:absolute;top:12px;font-family:var(--font-mono);font-weight:700;font-size:.62rem;letter-spacing:.14em;background:rgba(7,26,48,.78);color:var(--on-dark);padding:5px 10px;border-radius:3px;z-index:2}
.ba-lab.l{left:12px}.ba-lab.r{right:12px;background:var(--accent);color:var(--on-accent)}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--accent);z-index:3;transform:translateX(-50%)}
.ba-handle::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:6px;background:var(--accent);border:2px solid #fff;box-shadow:var(--shadow);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23231405' stroke-width='2.5'%3E%3Cpath d='M8 7l-5 5 5 5M16 7l5 5-5 5'/%3E%3C/svg%3E");background-size:22px;background-position:center;background-repeat:no-repeat}

/* ============ ANATOMY (dark panel) ============ */
.ana-band{background:var(--navy-deep);border-radius:var(--r-xs);padding:clamp(28px,4vw,48px);color:var(--on-dark)}
.ana-band h2{color:var(--on-dark);font-size:var(--fs-display-md);margin-bottom:10px}
.ana-band .deck{color:var(--on-dark-muted);font-size:var(--fs-sm);margin-bottom:22px}
.ana-kick{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:14px}
.ana-photo{position:relative;border:1px solid var(--navy-soft);border-radius:3px;overflow:hidden;margin-bottom:20px}
.ana-photo img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 55%}
.ana-hot::after{content:"";position:absolute;inset:-7px}
.ana-hot{position:absolute;width:34px;height:34px;border-radius:5px;border:1.5px solid var(--accent);background:rgba(7,26,48,.88);box-shadow:0 0 0 3px rgba(7,26,48,.45);color:var(--accent-soft);font-family:var(--font-mono);font-weight:700;font-size:.74rem;display:flex;align-items:center;justify-content:center;transition:background var(--dur-1),color var(--dur-1),transform var(--dur-1)}
.ana-hot:hover{transform:scale(1.12)}
.ana-hot.active{background:var(--accent);color:var(--on-accent)}
.ana-list{display:flex;flex-direction:column}
.ana-item{display:flex;gap:14px;padding:12px 12px;border-left:3px solid transparent;border-bottom:1px solid var(--navy-soft);cursor:pointer;text-align:left;transition:background var(--dur-1),border-color var(--dur-1)}
.ana-item:hover{background:var(--navy)}
.ana-item.active{border-left-color:var(--accent);background:var(--navy)}
.ana-item .n{font-family:var(--font-mono);font-weight:700;font-size:.78rem;color:var(--accent);flex:none;padding-top:2px}
.ana-item .ana-t{display:block;font-family:var(--font-display);color:var(--on-dark);font-size:.95rem;font-weight:700;margin-bottom:2px}
.ana-item .ana-d{display:block;color:var(--on-dark-muted);font-size:.8rem;line-height:1.5}
.ana-bridge{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--navy-soft);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--on-dark-muted)}
.ana-bridge .btn{padding:11px 18px;font-size:.9rem}

/* ============ WHY US (ledger rows) ============ */
.why-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:36px;align-items:start}
.why-rows{border-top:2px solid var(--ink)}
.wrow{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding:15px 2px}
.wrow .wn{font-family:var(--font-mono);font-weight:700;font-size:.7rem;color:var(--accent-deep);flex:none}
.wrow .wbody{flex:0 1 auto;min-width:0}
.wrow .wt{display:block;font-family:var(--font-display);font-weight:700;font-size:1.06rem;color:var(--ink);line-height:1.2}
.wrow .wd{display:block;font-size:.84rem;color:var(--body);line-height:1.5;margin-top:2px}
.wrow .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-4px);min-width:24px}
.wrow .wv{font-family:var(--font-mono);font-weight:700;font-size:.72rem;letter-spacing:.05em;color:var(--ink);white-space:nowrap}
.why-fig img{aspect-ratio:4/5;object-fit:cover}
.why-right{position:sticky;top:96px;display:grid;gap:14px}
.why-cta{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:16px;display:grid;gap:12px;box-shadow:var(--shadow-sm)}
.why-cta-line{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.13em;color:var(--accent-deep);text-align:center}

/* ============ STORM BAND ============ */
.storm{background:var(--navy-deep);color:var(--on-dark);padding:var(--sp-section) 0}
.dossier{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;color:var(--on-dark-muted);border:1px dashed var(--white-alpha-border);border-left:3px solid var(--stamp);padding:8px 14px;margin-bottom:22px}
.storm h2{color:var(--on-dark);font-size:var(--fs-display-lg);max-width:22ch;margin-bottom:14px}
.storm .deck{color:var(--on-dark-muted);font-size:var(--fs-lead);max-width:var(--measure-lede);margin-bottom:30px;text-wrap:balance}
.storm-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start}
.claim-steps{margin-bottom:30px}
.claim-step{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid var(--navy-soft)}
.claim-step .cn{font-family:var(--font-mono);font-weight:700;font-size:.8rem;color:var(--accent);flex:none;padding-top:2px}
.claim-step b{display:block;font-family:var(--font-display);font-weight:700;color:var(--on-dark);font-size:1rem}
.claim-step span{color:var(--on-dark-muted);font-size:.85rem;line-height:1.5}
.signs{display:grid;gap:0;margin-bottom:26px}
.sign{display:flex;gap:13px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--navy-soft)}
.sign .sq{width:17px;height:17px;border:2px solid var(--stamp);border-radius:3px;flex:none;margin-top:3px;position:relative}
.sign .sq::after{content:"";position:absolute;inset:2px;background:var(--stamp);border-radius:1px;opacity:.85}
.sign b{display:block;color:var(--on-dark);font-size:.94rem}
.sign span{color:var(--on-dark-muted);font-size:.8rem;line-height:1.5}
.storm-callout{font-family:var(--font-mono);font-size:.8rem;line-height:1.6;letter-spacing:.02em;color:var(--on-dark);background:var(--navy);border:1px solid var(--navy-soft);border-left:3px solid var(--stamp);border-radius:var(--r-xs);padding:18px 20px;display:flex;flex-direction:column;justify-content:center}
.storm-exit{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid var(--navy-soft)}
.signs-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--on-dark-faint);border-top:1px solid var(--navy-soft);padding-top:16px;margin-bottom:2px}
.storm-right{display:flex;flex-direction:column;gap:22px}
.storm-exhibit{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:stretch;margin-top:4px}
.storm-exhibit .fig img{aspect-ratio:1/1;object-fit:cover}
.storm-right .fig img{aspect-ratio:4/5;object-fit:cover}
.storm-card{background:var(--card);border-radius:var(--r-xs);padding:24px;position:relative;color:var(--body)}
.storm-card.sheet-perf::before{--perf-bg:var(--navy-deep)}
.storm-card h3{font-size:1.3rem;margin-bottom:8px;padding-right:96px}
.storm-card p{font-size:var(--fs-sm);line-height:1.55;margin-bottom:16px}
.storm-card .stampbox{position:absolute;top:14px;right:14px}
.storm-card .btn+.btn{margin-top:9px}

/* ============ PROCESS ============ */
.prow{display:grid;grid-template-columns:130px minmax(0,1fr);gap:26px;align-items:start;border-top:1px solid var(--rule);padding:30px 0}
.prow:last-of-type{border-bottom:1px solid var(--rule)}
.prow .pn{font-family:var(--font-mono);font-weight:700;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;color:rgba(19,42,71,.32);letter-spacing:-.02em}
.prow .pn i{font-style:normal;color:var(--accent)}
.prow h3{font-size:var(--fs-display-sm);margin-bottom:6px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
@media (min-width:1081px){.prow h3{flex-wrap:nowrap}.prow h3 .pt{white-space:nowrap}}
.prow h3 .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-6px);min-width:40px}
.prow h3 .pv{font-family:var(--font-mono);font-weight:700;font-size:.72rem;letter-spacing:.06em;color:var(--ink);white-space:nowrap}
.prow p{color:var(--body);max-width:60ch}
.ptag{font-family:var(--font-mono);font-weight:700;font-size:.6rem;letter-spacing:.12em;color:var(--accent-deep);background:var(--accent-tint);border:1px solid var(--accent-soft);border-radius:3px;padding:4px 8px;margin-bottom:8px;display:inline-block}

/* ============ OUR WORD (signed commitments) ============ */
#word{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
#word .lg-head{border-top-color:transparent}
#word .lg-tab{background:var(--paper-2)}
.word-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.wq{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:20px 22px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px}
.wq .wq-no{font-family:var(--font-mono);font-weight:700;font-size:.64rem;letter-spacing:.14em;color:var(--accent-deep);border-bottom:2px solid var(--ink);padding-bottom:8px}
.wq p{font-family:var(--font-display);font-weight:700;font-size:1.18rem;line-height:1.35;color:var(--ink);letter-spacing:-.01em;flex:1}
.wq .wq-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px dashed var(--line);padding-top:12px}
.wq .slug{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.13em;color:var(--muted)}
.lg-head .head-stamp{position:absolute;top:34px;right:0}

/* ============ SERVICE AREA / MAP ============ */
.area-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:start}
.lx-map{width:100%;height:480px;background:var(--lx-map-bg);border:1px solid var(--lx-map-border);border-radius:3px;z-index:1}
.lx-map .leaflet-container,.leaflet-container{background:var(--lx-map-bg);font-family:var(--font-body)}
.leaflet-bar a,.leaflet-control-zoom a{background:#fff !important;color:var(--accent-deep) !important;border-color:var(--line) !important;font-weight:400;width:40px !important;height:40px !important;line-height:40px !important}
.leaflet-bar a:hover{background:var(--accent-tint) !important}
.leaflet-control-attribution{background:rgba(247,244,238,.85) !important;color:var(--muted) !important;font-size:10px}
.leaflet-control-attribution a{color:var(--body) !important}
.leaflet-tooltip.lx-map-label{background:var(--card);border:1px solid var(--line);color:var(--lx-map-ink);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.03em;padding:3px 9px;border-radius:3px;box-shadow:var(--shadow-sm)}
.leaflet-tooltip.lx-map-label::before{display:none}
.chip-key{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;color:var(--muted);margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:20px}
.chip{font-family:var(--font-mono);font-weight:500;font-size:.76rem;letter-spacing:.04em;padding:8px 15px;border-radius:var(--r-pill);border:1px solid var(--input-border);color:var(--body);background:var(--card);cursor:pointer;transition:background var(--dur-1),border-color var(--dur-1),color var(--dur-1)}
.chip:hover,.chip.hi{background:var(--accent-tint);border-color:var(--accent-dark);color:var(--ink)}
.chip.linked{border-color:var(--accent-dark);color:var(--accent-deep);font-weight:700}
.dir-groups{display:flex;flex-direction:column;gap:26px}
.dir-group .dir-lbl{display:block;font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--muted);margin-bottom:12px}
.dir-group .chips{margin-bottom:0}
.area-note{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--body);border-top:1px solid var(--line);padding-top:16px}
.area-note a{color:var(--accent-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.area-more{margin-top:18px}

/* ============ FINANCING ============ */
.fin-card{border-radius:3px;padding:clamp(26px,4vw,44px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center}
.fin-card.fin-dark{background:var(--navy-deep);border:1px solid var(--navy-soft);background-image:repeating-linear-gradient(transparent 0 35px,rgba(231,162,58,.045) 35px 36px)}
.fin-card h3{font-size:var(--fs-display-md);margin-bottom:10px}
.fin-dark h3{color:var(--on-dark)}
.fin-card p{color:var(--body);max-width:52ch}
.fin-dark p{color:var(--on-dark-muted)}
.fin-ex{text-align:right}
.fin-ex .big{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-price-md);color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-dark .fin-ex .big{color:var(--accent)}
.fin-ex .foot{font-size:.68rem;color:var(--muted);max-width:30ch;margin:8px 0 14px auto;line-height:1.45}
.fin-dark .fin-ex .foot{color:var(--on-dark-muted)}
.fin-dark .fin-ex{background:var(--navy-deep);padding:16px 18px 18px;border-radius:6px}

/* ============ THE INDEX ============ */
.ix-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;align-items:start}
.ix-dept{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--muted);border-bottom:2px solid var(--ink);padding:18px 0 8px}
.ix-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;border-bottom:1px solid var(--line);padding:13px 0}
.ix-row .no{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);padding-top:4px}
.ix-row .t{font-family:var(--font-display);font-weight:700;font-size:1.04rem;color:var(--ink)}
.ix-row a.t:hover{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.ix-row .meta{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;color:var(--muted);margin-top:3px;line-height:1.7}
.ix-row .meta a{color:var(--accent-deep)}
.ix-row .meta a:hover{text-decoration:underline;text-underline-offset:2px}
.ix-more{margin-top:26px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.ix-tel{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.06em;color:var(--body)}
#index.sec{padding-bottom:var(--sp-section-sm)}
.ix-tel a{font-weight:700;color:var(--ink)}
.ix-tel .tlink{font-size:inherit;letter-spacing:inherit}

/* ============ FAQ ============ */
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}
.faq-aside{position:sticky;top:96px;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:20px;display:grid;gap:12px;box-shadow:var(--shadow-sm)}
.faq-aside .fa-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.14em;color:var(--accent-deep);border-bottom:2px solid var(--ink);padding-bottom:8px}
.faq-aside .fa-tel{font-family:var(--font-mono);font-weight:700;font-size:1.2rem;color:var(--ink)}
.faq-aside .fa-tel:hover{color:var(--accent-deep)}
.faq-aside .fa-hours{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--muted)}
.faq-wrap{max-width:var(--measure-reading);margin:0}
.faq{border-bottom:1px solid var(--rule)}
.faq:first-of-type{border-top:1px solid var(--rule)}
.faq-q{width:100%;display:flex;align-items:baseline;gap:16px;padding:19px 2px;text-align:left}
.faq-q .qn{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);flex:none}
.faq-q .qt{font-family:var(--font-display);font-weight:700;font-size:1.12rem;color:var(--ink);flex:0 1 auto}
.faq-q .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-5px);min-width:24px}
.faq.open .faq-q .dots{opacity:0}
.faq-q .qi{font-family:var(--font-mono);font-weight:700;font-size:1.1rem;color:var(--accent-deep);flex:none;transition:transform var(--dur-2)}

.faq-a{max-height:0;overflow:hidden;transition:max-height var(--dur-2) var(--ease)}
.faq-a p{padding:0 2px 20px 40px;color:var(--body);line-height:1.7}
.faq-a a{color:var(--link);text-decoration:underline;text-underline-offset:3px}

/* ============ FINAL CTA ============ */
.final{background:var(--navy-deep);color:var(--on-dark);padding:var(--sp-section) 0}
.final-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:start}
.final h2{color:var(--on-dark);font-size:var(--fs-display-lg);margin:24px 0 14px}
.final .deck{color:var(--on-dark-muted);font-size:var(--fs-lead);margin-bottom:24px;max-width:46ch}
.final-bullets{display:grid;gap:11px;margin-bottom:28px}
.final-bullets div{display:flex;gap:11px;align-items:center;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--on-dark)}
.final-bullets svg{width:17px;height:17px;color:var(--accent);flex:none}
.final .fig img{aspect-ratio:16/9;object-fit:cover}
.final-sms{margin-top:14px}
.tlink-dark{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--on-dark-muted);text-decoration:underline;text-underline-offset:3px}
.tlink-dark:hover{color:var(--on-dark)}
.lead-sheet{background:var(--card);border-radius:var(--r-xs);padding:28px;position:relative;color:var(--body)}
.lead-sheet.sheet-perf::before{--perf-bg:var(--navy-deep)}
.lead-sheet .stampbox{position:absolute;top:16px;right:16px}
.lead-sheet h3{font-size:1.4rem;margin-bottom:4px;padding-right:80px}
.lead-sheet .fsub{font-size:var(--fs-sm);color:var(--muted);margin-bottom:20px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:15px}
.field label{display:block;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1.5px solid var(--input-border);background:transparent;padding:8px 2px;font:500 .98rem var(--font-body);color:var(--ink);border-radius:0;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2375808F' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;background-size:15px;cursor:pointer}
.field textarea{min-height:74px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--focus)}
.field input::placeholder,.field textarea::placeholder{color:#9a8f77}
.hp{display:none}
.form-ok{display:none;text-align:center;padding:30px 10px}
.form-ok.show{display:block}
.form-ok .okstamp{display:inline-block;font-family:var(--font-mono);font-weight:700;letter-spacing:.1em;color:var(--success);border:2.5px solid var(--success);border-radius:6px;padding:7px 13px;transform:rotate(-6deg);margin-bottom:16px}
.form-ok h3{font-size:1.3rem;margin-bottom:8px}
.form-ok p{color:var(--body);font-size:var(--fs-sm);margin-bottom:16px}

/* ============ FOOTER ============ */
footer{background:var(--navy-deep);color:var(--on-dark-muted);padding:64px 0 44px;border-top:1px solid var(--navy-soft)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.6fr;gap:44px;margin-bottom:44px}
.foot-brand img{height:52px;margin-bottom:16px;background:#fff;border-radius:10px;padding:5px 9px;box-sizing:content-box}
.foot-brand p{font-size:.88rem;line-height:1.6;margin-bottom:16px;max-width:34ch}
.foot-phone{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-weight:700;font-size:1.12rem;color:#fff}
.foot-phone:hover{color:var(--accent)}
.foot-hours{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;color:var(--on-dark-faint);margin-top:8px}
footer h4{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:16px}
footer ul{list-style:none}
footer ul li{margin-bottom:9px;font-size:.9rem}
footer ul a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.foot-cities{columns:2;column-gap:24px}
.foot-cities a{color:var(--accent);font-weight:600}
.foot-bottom{border-top:1px solid var(--navy-soft);padding-top:22px;display:flex;justify-content:space-between;gap:24px;align-items:baseline;flex-wrap:wrap}
.foot-bottom .disc{font-size:.74rem;line-height:1.6;color:var(--on-dark-faint);max-width:72ch}
.foot-bottom>div:last-child a{font-family:var(--font-mono);font-weight:700;color:var(--on-dark);text-decoration:underline;text-underline-offset:3px}
.foot-bottom>div:last-child a:hover{color:var(--accent)}
.agency-credit{font-size:.78rem;line-height:1.5;opacity:.65;color:inherit;margin:.6rem 0 0}
.agency-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.agency-credit a:hover{opacity:1}

/* ============ CALLBAR (mobile) ============ */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-callbar);background:var(--navy-deep);border-top:1px solid var(--navy-soft);grid-template-columns:1fr 1fr 1.4fr;padding-bottom:env(safe-area-inset-bottom)}
.cb-seg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.1em;color:var(--on-dark);padding:8px 4px}
.cb-seg svg{width:17px;height:17px}
.cb-call{background:var(--accent);color:var(--on-accent)}
.cb-est{color:var(--accent)}
.cb-est .cb-val{font-size:.6rem;color:var(--on-dark-muted);letter-spacing:.04em;font-weight:500;white-space:nowrap}

/* ============ MODAL ============ */
.modal{position:fixed;inset:0;z-index:var(--z-modal);background:var(--scrim-modal);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur-2),visibility var(--dur-2)}
.modal.open{opacity:1;pointer-events:auto;visibility:visible}
.modal-card{background:var(--card);border-radius:var(--r-xs);max-width:540px;width:100%;max-height:88vh;overflow-y:auto;transform:translateY(14px);transition:transform var(--dur-2) var(--ease);box-shadow:var(--shadow-lg)}
.modal.open .modal-card{transform:none}
.modal-img{position:relative}
.modal-img img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:6px 6px 0 0}
.modal-img .x{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:var(--r-xs);background:rgba(7,26,48,.72);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center}
.modal-body{padding:24px 26px 26px}
.modal-body h3{font-size:1.4rem;margin-bottom:8px}
.modal-body>p{font-size:var(--fs-sm);color:var(--body);line-height:1.6;margin-bottom:14px}
.modal-body ul{list-style:none;margin-bottom:20px}
.modal-body ul li{position:relative;padding:5px 0 5px 26px;font-size:.9rem;color:var(--body)}
.modal-body ul li::before{content:"";position:absolute;left:2px;top:11px;width:13px;height:13px;border:2px solid var(--success);border-radius:3px;background:var(--success-tint)}
.modal-body .btn+.btn{margin-top:9px}
.m-guide{text-align:center;margin-top:14px}

/* ============ QUOTE DRAWER (mobile sheet re-entry) ============ */
.qdrawer{position:fixed;inset:0;z-index:var(--z-drawer);background:var(--scrim-modal);opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur-2),visibility var(--dur-2)}
.qdrawer.open{opacity:1;pointer-events:auto;visibility:visible}
.qd-panel{position:absolute;left:0;right:0;bottom:0;max-height:85vh;background:var(--paper);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));overflow-y:auto;transform:translateY(100%);transition:transform var(--dur-2) var(--ease)}
.qdrawer.open .qd-panel{transform:none}
.qd-handle{width:46px;height:5px;border-radius:3px;background:var(--rule);margin:6px auto 14px}

/* ============ VEIL (bespoke Open Ledger mark) ============ */
#fp-veil{gap:10px}
#fp-veil .fp-v-word{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,4vw,2.1rem);letter-spacing:-.01em;animation-delay:1.25s}
#fp-veil .fp-v-sub{font-family:var(--font-mono);animation-delay:1.4s;letter-spacing:.24em}
.mrp-v-type{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;color:var(--muted);white-space:nowrap;overflow:hidden;width:0;animation:vtype .35s steps(45) forwards .05s;margin-bottom:6px}
@keyframes vtype{to{width:45ch}}
.mrp-v-markwrap{position:relative;width:220px;height:120px}
.mrp-v-gable{width:220px;height:120px;overflow:visible}
.mrp-v-gable path{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-dasharray:120;stroke-dashoffset:120}
.mrp-v-gable .g1{animation:vdraw .34s var(--ease-out) forwards .25s}
.mrp-v-gable .g2{animation:vdraw .34s var(--ease-out) forwards .5s}
.mrp-v-gable .grule{stroke:var(--rule);stroke-width:2;stroke-dasharray:180;stroke-dashoffset:180;fill:none;animation:vdraw .3s var(--ease-out) forwards .72s}
.mrp-v-gable .gdot{fill:var(--accent);opacity:0;transform-box:fill-box;transform-origin:center;animation:vdot .28s var(--ease-out) forwards .82s}
@keyframes vdraw{to{stroke-dashoffset:0}}
@keyframes vdot{0%{opacity:0;transform:scale(0)}70%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
.mrp-v-stamp{position:absolute;right:-26px;bottom:-6px;font-family:var(--font-mono);font-weight:700;font-size:.78rem;letter-spacing:.1em;color:var(--stamp);border:3px solid var(--stamp);border-radius:6px;padding:6px 12px;transform:rotate(-8deg);opacity:0;text-shadow:0 0 1px rgba(179,64,31,.55);box-shadow:inset 0 0 8px rgba(179,64,31,.16);animation:vstamp .18s var(--ease-out) forwards .95s}
@keyframes vstamp{0%{opacity:0;transform:rotate(-8deg) scale(1.6)}70%{opacity:.94;transform:rotate(-9.5deg) scale(.96)}100%{opacity:.9;transform:rotate(-8deg) scale(1)}}

/* ============ CLICK BURSTS ============ */
.burst{position:fixed;z-index:9995;pointer-events:none;width:0;height:0}
.burst i{position:absolute;left:0;top:0;display:block;opacity:1;will-change:transform,opacity}
.burst i svg{display:block;width:13px;height:13px;overflow:visible}

/* ============ SECTIONS ============ */
.sec{padding:var(--sp-section) 0}
.sec-tight{padding:var(--sp-section-sm) 0}
.fp-clip.d1{transition-delay:.15s}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .spine{display:block}
  .spine-rail{display:none}
  .nav-links,.nav-phone{display:none}
  .burger{display:flex}
  .storm-grid,.area-grid,.final-grid,.faq-grid{grid-template-columns:1fr;gap:36px}
  .ix-grid{grid-template-columns:1fr}
  html{scroll-padding-top:86px}
}
@media (max-width:980px){
  .bento{grid-template-columns:1fr 1fr}
  .why-grid{grid-template-columns:1fr}
  .why-fig{max-width:420px}
  .word-grid{grid-template-columns:1fr}
  .fin-card{grid-template-columns:1fr;gap:22px}
  .fin-ex{text-align:left}
}
@media (max-width:680px){
  .bento,.hero-checks,.frow{grid-template-columns:1fr}
  .callbar{display:grid}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .hero h1{font-size:clamp(2.45rem,10vw,2.7rem)}
  .hero-cta .btn{width:100%}
  .prow{grid-template-columns:64px 1fr;gap:16px}
  .prow h3{flex-wrap:nowrap}
  .prow h3 .pt{flex:1;white-space:normal}
  .prow h3 .dots{display:none}
  .prow h3 .pv{margin-left:auto}
  .tick-band{margin:-24px 4px 0}
  .qs-stamp{right:-4px}
  .lx-map{height:380px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
  .storm-right .fig img{aspect-ratio:4/3}
  .lead-sheet{padding:22px 18px}
  .modal{padding:12px}
  .svc-sm:not(.svc-keep) .svc-img{display:none}
  .qs-total{font-size:clamp(1.3rem,6.2vw,1.7rem)}
  .fig-cap{flex-direction:column;align-items:flex-start;gap:2px}
  .fig-cap .credit{white-space:normal}
  .price-table{min-width:0}
  .price-table thead{display:none}
  .price-table tr{display:block;border-bottom:1px solid var(--line);padding:12px 4px}
  .price-table tr:nth-child(even){background:var(--paper-2)}
  .price-table td{display:block;border-bottom:0;padding:2px 8px;background:none !important}
  .price-table td.num{text-align:left;font-size:1.14rem;padding-top:6px}
  .wrow{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:baseline;gap:10px}
  .wrow .dots{display:none}
  .wrow .wv{justify-self:end}
  .storm-exhibit{grid-template-columns:1fr}
  .storm-exhibit .fig img{max-height:500px}
  .why-fig img{aspect-ratio:4/3;max-height:500px}
  .ix-grid--hub>div:first-child .ix-row .meta{display:none}
  .ix-grid--hub>div:first-child .ix-dept::after{content:" · CITY GUIDES BELOW";color:var(--muted);font-weight:500}
  .ix-row .meta .sep{display:none}
  .sec{padding:64px 0}
  .sec-tight{padding:44px 0}
  .spine-main>section{padding:44px 0}
  .faq-aside{position:static}
  .final .btn{width:100%}
  .why-right{position:static}
}
@media (max-width:420px){
  .wrap{padding:0 16px}
}
@media (prefers-reduced-motion:reduce){
  .od-col{transition:none !important}
  .qs-prog path.on{stroke-dashoffset:0 !important;animation:none !important}
  .stamp-anim{opacity:.92 !important;animation:none !important}
  .mrp-v-type,.mrp-v-stamp{animation:none !important}
  .tick-band{-webkit-mask:none;mask:none}
  .tick-band>div{flex-wrap:wrap;justify-content:center;white-space:normal;gap:4px 18px;width:100%}
  .tick-band>div:last-child{display:none}
  .tick-band .x{display:none}
  .tick-band .tk-fin{display:none}
  .tick-band{overflow:hidden;padding-left:8px;padding-right:8px}
}
/* ---- interior light reveal (ledger.js) ---- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1 !important;transform:none !important;transition:none !important}}

/* ============================================================
   LEDGER.CSS — PART 2: interior/silo components (guides, hubs,
   leaves, record, comparison). Appended to the flagship system.
   ============================================================ */

/* ---- interior page scaffolding ---- */
.pg-main{padding-top:34px}
.crumb{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px;padding:18px 0 0}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.crumb .sep{color:var(--rule)}
.crumb .here{color:var(--ink);font-weight:700}

/* article header */
.art-head{border-top:1px solid var(--rule);position:relative;padding-top:30px;margin:22px 0 34px}
.art-kick{position:absolute;top:0;left:0;transform:translateY(-52%);background:var(--paper);padding-right:14px;font-family:var(--font-mono);font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep)}
.art-head h1{font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.05;letter-spacing:-.02em;max-width:24ch;margin-bottom:14px}
.art-head .lede{font-size:var(--fs-lead);color:var(--body);max-width:var(--measure-lede);text-wrap:balance}
.meta-row{display:flex;flex-wrap:wrap;gap:6px 22px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 2px;margin-top:22px}
.meta-row b{color:var(--ink);font-weight:700}

/* two-column article layout: prose + sticky rail */
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start}
.art-rail{position:sticky;top:96px;display:grid;gap:16px}

/* table of contents */
.toc{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:18px;box-shadow:var(--shadow-sm)}
.toc-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--accent-deep);border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:10px;display:block}
.toc ol{list-style:none;margin:0;padding:0}
.toc li{border-bottom:1px solid var(--line)}
.toc li:last-child{border-bottom:0}
.toc a{display:flex;gap:10px;align-items:baseline;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.04em;color:var(--body);padding:8px 2px}
.toc a .n{color:var(--accent-deep);font-weight:700;flex:none}
.toc a:hover,.toc a.on{color:var(--ink);background:var(--accent-tint)}
.toc-jump{display:none}

/* rail CTA card (mirrors flagship why-cta / faq-aside) */
.rail-cta{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:18px;display:grid;gap:11px;box-shadow:var(--shadow-sm)}
.rail-cta .rc-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.14em;color:var(--accent-deep);border-bottom:2px solid var(--ink);padding-bottom:8px}
.rail-cta .rc-tel{font-family:var(--font-mono);font-weight:700;font-size:1.15rem;color:var(--ink)}
.rail-cta .rc-tel:hover{color:var(--accent-deep)}
.rail-cta .rc-hours{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.08em;color:var(--muted)}

/* ---- long-form prose (Source Serif 4 loads on guide templates only) ---- */
.prose{font-family:var(--font-reading, Georgia, serif);font-size:var(--reading-size);line-height:var(--reading-lh);color:var(--body);max-width:var(--measure-reading)}
.prose p{margin:0 0 var(--para-space)}
.prose-lead::first-letter{font-family:var(--font-reading, Georgia, serif);font-weight:600;font-size:3.4em;line-height:.82;float:left;padding:6px 10px 0 0;color:var(--ink)}
.prose h2{font-family:var(--font-display);font-size:var(--fs-display-md);color:var(--ink);letter-spacing:-.015em;margin:var(--h2-top) 0 .6em;padding-top:20px;border-top:3px solid var(--ink);max-width:26ch}
.prose h2 .hn{font-family:var(--font-mono);font-weight:700;font-size:.5em;color:var(--accent-deep);letter-spacing:.08em;display:block;margin-bottom:8px}
.prose h3{font-family:var(--font-display);font-size:var(--fs-display-sm);color:var(--ink);margin:var(--h3-top) 0 .5em}
.prose ul,.prose ol{padding-left:1.4em;margin:0 0 var(--para-space)}
.prose li{margin-bottom:.45em}
.prose li::marker{color:var(--accent-deep);font-weight:700}
.prose a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.prose a:hover{color:var(--ink)}
.prose strong{color:var(--ink)}
.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-tint);padding:16px 20px;margin:0 0 var(--para-space);font-style:italic;border-radius:0 var(--r-xs) var(--r-xs) 0}
.prose figure{margin:28px 0}
.prose .fig img{width:100%}
.prose table{width:100%;border-collapse:collapse;margin:0 0 var(--para-space);font-family:var(--font-body);font-size:.95rem}
.prose table th{background:var(--navy);color:var(--on-dark);font-family:var(--font-mono);font-weight:700;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;text-align:left;padding:10px 14px}
.prose table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.prose table tr:nth-child(even) td{background:var(--paper-2)}
.prose table td.num{font-family:var(--font-mono);font-weight:700;color:var(--ink);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}

/* callouts (worksheet snippet blocks) */
.callout{border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:var(--r-xs);background:var(--card);padding:16px 20px;margin:0 0 var(--para-space);font-family:var(--font-body);font-size:.98rem}
.callout .co-kick{display:block;font-family:var(--font-mono);font-weight:700;font-size:.64rem;letter-spacing:.14em;color:var(--muted);margin-bottom:6px}
.callout--warn{border-left-color:var(--stamp);background:var(--stamp-tint)}
.callout--warn .co-kick{color:var(--stamp)}
.callout--cost{border-left-color:var(--accent-dark);background:var(--accent-tint)}
.callout--cost .co-kick{color:var(--accent-deep)}
.callout .big{font-family:var(--font-mono);font-weight:700;font-size:1.3rem;color:var(--ink);font-variant-numeric:tabular-nums}

/* key takeaways */
.takeaways{background:var(--accent-tint);border:1px solid var(--accent-soft);border-radius:var(--r-xs);padding:20px 22px;margin:0 0 var(--para-space);position:relative}
.takeaways .tk-stamp{position:absolute;top:-12px;right:14px}
.takeaways .tk-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--accent-deep);border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:12px;display:block}
.takeaways ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.takeaways li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--ink);font-family:var(--font-body)}
.takeaways li svg{width:16px;height:16px;color:var(--accent-deep);flex:none;margin-top:3px}

/* dotted-leader fact rows (reusable inside prose) */
.ledger-rows{border-top:2px solid var(--ink);margin:0 0 var(--para-space)}
.lrow{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);padding:10px 2px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em}
.lrow .lbl{color:var(--muted)}
.lrow .dots{flex:1;border-bottom:2px dotted var(--rule);transform:translateY(-4px);min-width:18px}
.lrow .val{font-weight:700;color:var(--ink);text-align:right}

/* sources */
.sources{border-top:2px solid var(--ink);padding-top:14px;margin:44px 0 0}
.sources .src-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--muted);display:block;margin-bottom:10px}
.sources ol{list-style:none;padding:0;margin:0;counter-reset:src}
.sources li{counter-increment:src;display:flex;gap:12px;font-size:.85rem;color:var(--body);padding:7px 0;border-bottom:1px solid var(--line)}
.sources li::before{content:counter(src,decimal-leading-zero);font-family:var(--font-mono);font-weight:700;font-size:.72rem;color:var(--accent-deep);flex:none;padding-top:2px}
.sources a{color:var(--link);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}

/* mid-article CTA band */
.cta-band{background:var(--navy-deep);border-radius:var(--r-xs);color:var(--on-dark);padding:22px 24px;margin:34px 0;display:flex;align-items:center;gap:16px 26px;flex-wrap:wrap}
.cta-band .cb-pitch{font-family:var(--font-display);font-weight:700;font-size:1.15rem;flex:1 1 260px;letter-spacing:-.01em}
.cta-band .btn{flex:none}
.cta-band .cb-tel{font-family:var(--font-mono);font-weight:700;color:var(--on-dark);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.cta-band .cb-tel:hover{color:var(--accent)}

/* related cards */
.related{margin-top:52px;border-top:1px solid var(--rule);position:relative;padding-top:30px}
.related .rel-kick{position:absolute;top:0;left:0;transform:translateY(-52%);background:var(--paper);padding-right:14px;font-family:var(--font-mono);font-weight:700;font-size:var(--fs-eyebrow);letter-spacing:.14em;color:var(--accent-deep)}
.related-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rel-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:18px;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-2),border-color var(--dur-2)}
.rel-card:hover{box-shadow:var(--shadow);border-color:var(--rule)}
.rel-card .rc-tag{font-family:var(--font-mono);font-weight:700;font-size:.6rem;letter-spacing:.12em;color:var(--accent-deep);display:block;margin-bottom:8px}
.rel-card .rc-t{font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);line-height:1.3;display:block}
.rel-card .rc-m{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.08em;color:var(--muted);display:block;margin-top:10px}

/* hub page: service/city card grids reuse .svc; chip clouds reuse .chips */
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hub-grid .svc-body{padding:16px 18px 18px}

/* comparison page: two-column verdict ledger */
.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 var(--para-space)}
.vs-col{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:20px;box-shadow:var(--shadow-sm)}
.vs-col .vs-name{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--ink);border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:6px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.vs-col .vs-price{font-family:var(--font-mono);font-weight:700;font-size:.78rem;color:var(--accent-deep);white-space:nowrap}
.vs-verdict{background:var(--navy-deep);color:var(--on-dark);border-radius:var(--r-xs);padding:20px 22px;margin:0 0 var(--para-space);position:relative}
.vs-verdict .vv-kick{font-family:var(--font-mono);font-weight:700;font-size:.66rem;letter-spacing:.16em;color:var(--accent);display:block;margin-bottom:8px}
.vs-verdict p{font-family:var(--font-display);font-weight:700;font-size:1.15rem;line-height:1.4;margin:0;color:var(--on-dark)}

/* record (dated field-note) extras */
.dateline{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-weight:700;font-size:.72rem;letter-spacing:.1em;color:var(--stamp);border:2px solid var(--stamp);border-radius:6px;padding:5px 10px;transform:rotate(-2deg);margin-bottom:16px}

/* guides library filters */
.lib-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}
.lib-count{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;color:var(--muted);margin-bottom:16px}

/* ---- interior responsive ---- */
@media (max-width:1080px){
  .art-grid{display:block}
  .art-rail{position:static;margin-top:34px}
  .toc{display:none}
  .toc-jump{display:block;margin:0 0 22px}
  .toc-jump summary{font-family:var(--font-mono);font-weight:700;font-size:.72rem;letter-spacing:.12em;color:var(--accent-deep);cursor:pointer;border:1px solid var(--line);background:var(--card);border-radius:var(--r-xs);padding:12px 14px}
  .toc-jump ol{list-style:none;margin:0;padding:10px 14px;border:1px solid var(--line);border-top:0;background:var(--card)}
  .toc-jump a{display:block;font-family:var(--font-mono);font-size:.74rem;color:var(--body);padding:7px 0}
}
@media (max-width:980px){
  .related-cards,.hub-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .related-cards,.hub-grid,.vs-grid{grid-template-columns:1fr}
  .art-head h1{font-size:clamp(1.9rem,8vw,2.4rem)}
  .prose{font-size:1.05rem}
  .cta-band{padding:18px}
}
