@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/libre-franklin.ttf") format("truetype")}
@font-face{font-family:"Spline Sans Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/spline-sans-mono.ttf") format("truetype")}


/* ============================================================================
   TOKEN ALIASES — map the family's semantic dossier names onto the emitter's
   palette/font slots. Derived tones (manila edge, surface, cool2) get their own names.
   ============================================================================ */
:root{
  --gold:var(--pine); --gold-dk:var(--pine-dk); --gold-lt:var(--pine-lt);
  --gold-rgb:var(--pine-rgb,200,146,42);
  --gold-wash:rgba(var(--gold-rgb),.12);            /* soft gold tint for the check chips / disclosure */
  --teal:var(--charcoal); --teal2:var(--char2);
  --teal-soft:color-mix(in srgb,var(--charcoal) 78%,#ffffff);  /* lifted ink-teal for "not covered" marks */
  --paper:var(--cream); --surface:#ffffff;
  --cool:var(--sand); --cool2:color-mix(in srgb,var(--sand) 86%,#000);
  --ink:var(--ink); --muted:var(--muted); --line:var(--sand-dk);
  --line2:color-mix(in srgb,var(--sand-dk) 55%,#ffffff);       /* faint inner hairline */
  /* the dossier manila card edge — warm, derived (the mock's #f0e6cf / #e3d4ac) */
  --manila:#f0e6cf; --manila-edge:#e3d4ac;
  --on-dark:#e6efee; --on-dark-mut:rgba(230,239,238,.74);      /* off-white text on ink-teal grounds */
  --gold-ink:#241a05;                                          /* deep ink for DARK text on gold buttons/tabs */
  --sans:var(--font-display); --body:var(--font-body);
  --mono:'Spline Sans Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;  /* the family signature, pinned */
  --wrap:1180px;
}

/* ============================================================================
   BASE — reset, type, links, the page ground, eyebrows, buttons, photo slots.
   ============================================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 30px}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,h4{font-family:var(--sans);font-weight:700;line-height:1.1;letter-spacing:-.006em;color:var(--ink)}
p{line-height:1.62}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;background:var(--gold);color:var(--gold-ink);font-weight:700}
.skip-link:focus{width:auto;height:auto;clip:auto;clip-path:none;left:0;top:0;z-index:9999;padding:12px 20px}

/* section eyebrow — humanist SANS (mono is reserved for the dossier device: tabs/refs/ledger). A small,
   gold, lightly-tracked label with a short gold rule; the mono "case file" signature stays on .sd-tab only. */
.sd-eyebrow{font:700 12.5px/1 var(--sans);letter-spacing:.03em;text-transform:uppercase;color:var(--gold-dk);display:inline-flex;align-items:center;gap:10px}
.sd-eyebrow::before{content:"";width:22px;height:2px;background:var(--gold)}
.sd-eyebrow.on-dark{color:var(--gold-lt)}
.sd-eyebrow.on-dark::before{background:var(--gold-lt)}
/* the gold underline accent (the city in the H1) */
.sd-gu{box-shadow:inset 0 -.14em 0 rgba(var(--gold-rgb),.34)}

/* CSS photo placeholders — ink-teal base, file-style mono label */
.sd-ph{position:relative;background:linear-gradient(150deg,var(--teal2),color-mix(in srgb,var(--teal) 84%,#000));overflow:hidden;min-height:100%}
.sd-ph::after{content:attr(data-l);position:absolute;left:14px;bottom:12px;font:600 10px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);z-index:2}
.sd-ph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:24px 24px}
.sd-ph.deep{background:linear-gradient(150deg,var(--teal2),#16292d)}
.sd-ph.doc{background:linear-gradient(160deg,#fbfcfc,#e9efef)}
.sd-ph.doc::after{color:rgba(42,39,36,.5)}
.sd-ph.doc::before{background-image:repeating-linear-gradient(0deg,rgba(27,58,63,.08) 0 1px,transparent 1px 13px);background-size:auto}

/* real-image auto-tint layer — image never edited; tint via overlay */
.sd-vimg{position:relative;background-size:cover;background-position:center;background-repeat:no-repeat;min-height:100%;overflow:hidden}
.sd-vimg::after{content:"";position:absolute;inset:0;pointer-events:none}
.sd-vimg.tint-dark::after{background:linear-gradient(180deg,rgba(20,30,32,.4),rgba(20,30,32,.74))}
.sd-vimg.tint-brand::after{background:linear-gradient(120deg,rgba(27,58,63,.8),rgba(var(--gold-rgb),.28))}
.sd-vimg.tint-read::after{background:linear-gradient(100deg,rgba(20,38,41,.9) 0%,rgba(20,38,41,.78) 42%,rgba(20,38,41,.42) 70%,rgba(20,38,41,.28) 100%)}
.sd-vimg[data-l]::before{content:attr(data-l);position:absolute;left:12px;bottom:10px;z-index:2;font:600 10px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.74)}

.btn,.sd-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font:700 14px/1 var(--sans);letter-spacing:.01em;padding:15px 26px;cursor:pointer;transition:background .16s,color .16s,border-color .16s;border:2px solid transparent;border-radius:3px}
.sd-btn-gold,.btn-primary{background:var(--gold);color:var(--gold-ink)}
.sd-btn-gold:hover,.btn-primary:hover{background:var(--gold-dk);color:#fff}
.sd-btn-teal{background:var(--teal);color:#fff}
.sd-btn-teal:hover{background:var(--teal2)}
.sd-btn-out{border-color:var(--teal);color:var(--teal)}
.sd-btn-out:hover{background:var(--teal);color:#fff}
.sd-btn-lg{padding:16px 30px;font-size:15px}

section{position:relative}
.sd-head{max-width:680px}
.sd-head h2{font-size:38px;margin-top:13px;color:var(--ink);letter-spacing:-.006em}
.sd-head p{color:var(--muted);font-size:17px;margin-top:13px}
.sd-head-center{margin:0 auto;text-align:center}
.sd-head-center .sd-eyebrow{justify-content:center}
.sd-head-center p{margin-left:auto;margin-right:auto}
/* head on a dark ink-teal band */
.sd-walk .sd-head h2,.sd-storm .sd-head h2,.sd-citystorm .sd-head h2,.sd-ctaband .sd-head h2{color:#fff}
.sd-walk .sd-head p,.sd-storm .sd-head p,.sd-citystorm .sd-head p,.sd-ctaband .sd-head p{color:var(--on-dark-mut)}

/* shared diamond marker (intro/standards/storm-note lists) */
.dia{width:10px;height:10px;background:var(--gold);transform:rotate(45deg);flex:none}

/* ============================================================================
   THE DOSSIER MOTIF — the recurring file card with a manila top-edge + a gold index-tab.
   ============================================================================ */
.sd-file{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 1px 0 var(--manila-edge),0 2px 0 #ece2c8}
.sd-file::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--manila-edge),var(--manila));border-radius:4px 4px 0 0;z-index:1}
.sd-tab{position:absolute;top:-16px;left:22px;display:inline-flex;align-items:center;gap:8px;background:var(--gold);color:var(--gold-ink);font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;border-radius:4px 4px 0 0;z-index:2}
.sd-tab .ix{font-weight:700;opacity:.65}
.sd-tab.teal{background:var(--teal);color:var(--gold-lt)}

/* ============================================================================
   TOPBAR — own ink-teal dossier strip (header.php renders it after the suppressed shared strip)
   ============================================================================ */
.sd-topbar{background:var(--teal);color:var(--on-dark-mut);font:500 12.5px/1 var(--mono);letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.07)}
.sd-topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 30px}
.sd-topbar .l{display:flex;gap:24px;flex-wrap:wrap}
.sd-topbar .l span{display:inline-flex;align-items:center;gap:8px}
.sd-topbar .l span::before{content:"";width:6px;height:6px;border:1.5px solid var(--gold-lt);transform:rotate(45deg);flex:none}
.sd-topbar .r b,.sd-topbar b{color:#fff}

/* ============================================================================
   HEADER / NAV — cool-white sticky bar, file-tab brand mark (own taxonomy).
   The shared header.php emits <header><div class="nav"><a class="logo">… + rr_sd_render_nav().
   ============================================================================ */
header{position:sticky;top:0;z-index:40;background:rgba(247,248,248,.95);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-bottom:1px solid var(--line)}
header .nav{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:var(--wrap);margin:0 auto;padding:13px 30px}
header .logo{display:inline-flex;align-items:center;flex:none}
/* brand lockup (parts/logo.php) — restyle the shared lockup to the dossier idiom */
.brandlock{display:inline-flex;align-items:center;gap:12px}
.brandlock .bl-mk{width:44px;height:40px;flex:none}
.brandlock .bl-stack{display:flex;flex-direction:column;line-height:1}
.brandlock .bl-name{font-family:var(--sans);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink)}
.brandlock .bl-tag{font:600 9px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.brandlock.bl-wordmark .bl-tagrow{display:flex;align-items:center;gap:8px;margin-top:4px}
.brandlock.bl-wm-sans{font-family:var(--sans);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink)}

.sd-nav.nav-links{display:flex;gap:26px;font:600 15px/1 var(--sans);align-items:center}
.sd-nav.nav-links>a,.sd-nav .nav-top{padding:6px 0;border-bottom:2px solid transparent;color:var(--ink);transition:color .15s,border-color .15s;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.sd-nav.nav-links>a:hover,.sd-nav .nav-top:hover{border-color:var(--gold);color:var(--gold-dk)}
.sd-nav .nav-item.has-drop{position:relative}
.sd-nav .nav-caret{transition:transform .15s}
.sd-nav .nav-drop{position:absolute;top:100%;left:0;min-width:230px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 44px -20px rgba(27,58,63,.4);padding:8px;display:none;flex-direction:column;z-index:50;border-radius:0 0 5px 5px}
/* HOVER BRIDGE: an invisible strip that fills the gap between the trigger and the menu so the
   dropdown never vanishes as the cursor travels from "Services" down into the items (operator bug).
   It extends UP from the menu across the header's vertical padding; 18px comfortably covers the gap. */
.sd-nav .nav-drop::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:18px;background:transparent}
.sd-nav .nav-item.has-drop:hover .nav-drop,.sd-nav .nav-item.has-drop:focus-within .nav-drop,.sd-nav .nav-item.has-drop.open .nav-drop{display:flex}
.sd-nav .nav-drop a{font:600 13.5px/1.3 var(--sans);color:var(--ink);padding:10px 12px;border-bottom:0;border-radius:3px}
.sd-nav .nav-drop a:hover{background:var(--gold-wash);color:var(--gold-dk)}
.sd-nav .nav-drop-all{color:var(--gold-dk);border-top:1px solid var(--line);margin-top:4px;font:700 12px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase}
/* Two-column Resources dropdown (Guides & Tools + Roofing Materials) — the family's dossier idiom. */
.sd-nav .nav-drop-2col{flex-direction:row;gap:6px;min-width:470px}
.sd-nav .nav-drop-group{display:flex;flex-direction:column;flex:1;min-width:210px}
.sd-nav .nav-drop-label{font:700 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:9px 12px 5px}
/* wordmark-bar logo accent (the small rule under the tagline) */
.brandlock .bl-bar{height:11px;width:auto;display:block}

.sd-navcta{display:flex;align-items:center;gap:16px}
.sd-navnum{font:600 15px/1 var(--mono);color:var(--teal);white-space:nowrap}
.sd-navnum:hover{color:var(--gold-dk)}
.sd-navbtn{padding:13px 20px}
.nav-toggle{display:none;background:transparent;border:0;color:var(--teal);cursor:pointer;padding:4px}

main{display:block}

/* ============================================================================
   HERO — a REAL roof photo warms the band; a light paper scrim keeps the copy readable (v2),
   or a full-bleed dark billboard (v4). Copy + gold-tick trust markers LEFT, the intake slip RIGHT.
   Form-bearing, no stats rail, balanced grid (no dead white space).
   ============================================================================ */
.sd-hero{position:relative;overflow:hidden}
.sd-hero-bg{position:absolute;inset:0;z-index:0}
.sd-hero-bg .sd-vimg,.sd-hero-bg .sd-ph{position:absolute;inset:0;min-height:0}
.sd-hero .wrap{position:relative;z-index:2}
.sd-hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center}
.sd-hero-copy{min-width:0}
.sd-hero .sd-eyebrow{margin-bottom:0}
.sd-hero h1{font-size:52px;font-weight:700;color:var(--ink);margin:16px 0 0;line-height:1.08;letter-spacing:-.006em}
.sd-hero .sd-lead{font:400 18.5px/1.55 var(--sans);color:var(--muted);max-width:48ch;margin:20px 0 0}
.sd-hero .sd-slip{max-width:460px;margin-left:auto;width:100%}

/* v2 — light paper scrim over the real photo (border + generous padding = a balanced, filled band) */
.sd-heroV2{border-bottom:1px solid var(--line);background:var(--cool)}
.sd-heroV2 .wrap{padding-top:56px;padding-bottom:64px}

/* the paper-scrim tint (v2): light on the LEFT for AA-readable copy, clearing toward the RIGHT so the
   photo warms the band behind the form. */
.sd-vimg.tint-paper::after{background:linear-gradient(100deg,var(--paper) 0%,var(--paper) 34%,rgba(247,248,248,.9) 52%,rgba(247,248,248,.62) 74%,rgba(247,248,248,.5) 100%)}

/* honest trust markers — ruled gold-tick rows (NOT pill/bubble badges) */
.sd-hero-trust{list-style:none;display:grid;gap:0;margin:26px 0 0;border-top:1px solid var(--line);max-width:44ch}
.sd-hero-trust li{display:flex;align-items:flex-start;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
.sd-hero-trust li .tk{flex:none;width:22px;height:22px;border-radius:3px;display:grid;place-items:center;background:var(--gold-wash);color:var(--gold-dk);margin-top:1px}
.sd-hero-trust li .tk svg{width:13px;height:13px}
.sd-hero-trust li .tx{font:600 15px/1.4 var(--sans);color:var(--ink)}
.sd-hero-call{margin-top:18px;font:500 14px/1.5 var(--sans);color:var(--muted)}
.sd-hero-call a{font:700 15px/1 var(--mono);color:var(--teal);letter-spacing:.01em}
.sd-hero-call a:hover{color:var(--gold-dk)}
.sd-hero-trust.on-dark{border-top-color:rgba(255,255,255,.24)}
.sd-hero-trust.on-dark li{border-bottom-color:rgba(255,255,255,.18)}
.sd-hero-trust.on-dark li .tk{background:rgba(var(--gold-rgb),.24);color:var(--gold-lt)}
.sd-hero-trust.on-dark li .tx{color:#fff}
.sd-hero-call.on-dark{color:var(--on-dark-mut)}
.sd-hero-call.on-dark a{color:var(--gold-lt)}

/* first-screen emergency affordance (config-opt-in via the hero's emergency_line) — the family's own
   "urgent slip": a compact white file card with the dossier manila edge + a gold mono URGENT stamp
   (NOT a banner, NOT a pill — squared stamp chrome like .sd-tab). Opaque surface, so it reads the
   same over the v2 paper scrim and the v4 dark billboard. Phone link = the loudest tap target. */
.sd-hero-urgent{display:flex;align-items:flex-start;gap:13px;margin:20px 0 0;max-width:52ch;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:13px 16px 12px;box-shadow:0 1px 0 var(--manila-edge),0 2px 0 #ece2c8}
.sd-hero-urgent .ur-stamp{flex:none;font:700 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--gold);color:var(--gold-ink);padding:6px 9px;border-radius:3px;margin-top:2px}
.sd-hero-urgent .ur-x{font:500 14.5px/1.55 var(--sans);color:var(--ink);margin:0}
.sd-hero-urgent .ur-call{display:inline-block;font:700 15.5px/1.3 var(--mono);color:var(--teal);white-space:nowrap;padding:3px 0}
.sd-hero-urgent .ur-call:hover{color:var(--gold-dk)}
.sd-hero-urgent .ur-more{display:inline-block;font:700 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk);border-bottom:1px solid var(--gold);margin-left:10px;white-space:nowrap}
.sd-hero-urgent .ur-more:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* v4 — full-bleed DARK billboard band over a real roof photo + intake slip (visibly distinct from v2) */
.sd-heroV4{min-height:520px;display:flex;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sd-heroV4 .wrap{width:100%;padding-top:60px;padding-bottom:64px}
.sd-heroV4 .sd-hero-grid{grid-template-columns:1.1fr .9fr;align-items:center}
.sd-hero-copy.on-photo,.sd-hero-copy.on-photo h1{color:#fff}
.sd-hero-copy.on-photo .sd-lead{color:rgba(255,255,255,.92)}
/* F2 (Alex 2026-07-15, live on the-colony): white-on-photo hero needs a GUARANTEED scrim — a light
   hero photo (white house) left the white copy unreadable. Base hue-darkening under the whole v4 image
   (a light teal-ink wash the photo shows through), on TOP of tint-read's left-side gradient, so white text
   is legible over ANY photo, desktop + 390px. Never a raw photo behind white text. Scoped to v4 → plano
   (v2, live) untouched. Standard: DESIGN-PRINCIPLES "hero text on a scrim, never raw photo". */
.sd-heroV4 .sd-hero-bg{background:#0f1c1d}
.sd-heroV4 .sd-hero-bg .sd-vimg{opacity:.84}

/* ============================================================================
   THE INTAKE SLIP (.sd-slip wrapping rr_lead_form) — the claims-intake-styled lead panel.
   ============================================================================ */
.sd-slip{background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 18px 40px -30px rgba(27,58,63,.5);overflow:hidden}
.sd-slip-bar{background:var(--teal);color:#fff;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.sd-slip-bar b{font:700 14px/1 var(--sans);letter-spacing:.01em}
.sd-slip-bar .ref{font:500 11px/1 var(--mono);letter-spacing:.06em;color:var(--gold-lt)}
.sd-slip-body{padding:18px 20px 20px}
.sd-slip-micro{font:400 11.5px/1.5 var(--sans);color:var(--muted);margin-top:11px}

/* the lead form (rr_lead_form output inside .sd-form) — dossier labels, gold focus */
.sd-form .est-form,.sd-form form{display:grid;gap:13px}
.sd-form .row,.sd-form .f.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sd-form .f,.sd-form>form>div{min-width:0}
.sd-form label{display:block;font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.sd-form label.ef-check{display:flex;align-items:flex-start;gap:10px;font:500 13px/1.45 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer;margin:0}
.sd-form input,.sd-form select,.sd-form textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:3px;background:var(--paper);font:500 14.5px var(--sans);color:var(--ink)}
.sd-form input::placeholder,.sd-form textarea::placeholder{color:#9aa3a2}
.sd-form input:focus,.sd-form select:focus,.sd-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;background:#fff;border-color:var(--gold)}
.sd-form select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--gold-dk) 50%),linear-gradient(135deg,var(--gold-dk) 50%,transparent 50%);background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
.sd-form textarea{resize:vertical;min-height:64px;line-height:1.5}
.sd-form .ef-check input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--gold-dk);padding:0}
.sd-form .lf-opt{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.sd-form button[type=submit],.sd-form .btn-primary{width:100%;background:var(--gold);color:var(--gold-ink);border:2px solid transparent;font:700 14.5px/1 var(--sans);letter-spacing:.01em;padding:15px 24px;cursor:pointer;transition:background .16s,color .16s;margin-top:2px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;gap:9px}
.sd-form button[type=submit]:hover,.sd-form .btn-primary:hover{background:var(--gold-dk);color:#fff}
.sd-form .fineprint,.sd-form .form-consent{font:400 11px/1.5 var(--sans);color:var(--muted);margin:0}
.sd-form .lf-hp{display:none}

/* ============================================================================
   INTRO BAND (broad full-service orientation, light)
   ============================================================================ */
.sd-intro{background:var(--paper);padding:64px 0}
.sd-intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.sd-intro-copy h2{font-size:32px;color:var(--ink);margin-top:13px}
.sd-intro-copy p{color:var(--muted);font:400 16.5px/1.7 var(--sans);margin-top:14px;max-width:54ch}
.sd-intro-list{list-style:none;display:grid;gap:13px;border-left:1px solid var(--line);padding-left:28px}
.sd-intro-list li{display:flex;align-items:flex-start;gap:14px;font:500 15.5px/1.5 var(--sans);color:var(--ink)}
.sd-intro-list li .dia{margin-top:5px}

/* ============================================================================
   SERVICES — file-card photo tiles (v1) / ruled file-index list (v3) + the hub index.
   ============================================================================ */
.sd-svc{background:var(--surface);padding:80px 0}
.sd-svc-tiles{background:var(--paper)}
.sd-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px;margin-top:52px}
.sd-svccard{display:flex;flex-direction:column}/* F68 (2026-07-17, Alex-spotted): overflow:hidden here clipped the .sd-tab folder-tab (top:-16px, rides above the card edge by design) to a half-cut illegible bar. The image keeps its OWN clip (.sd-svccard-ph overflow:hidden below), so the card-level clip was redundant for the image and fatal for the tab. */
.sd-svccard .sd-tab{top:-16px}
.sd-svccard-ph{height:170px;border-radius:4px 4px 0 0;overflow:hidden;position:relative;margin:-1px -1px 0}
.sd-svccard-ph .sd-vimg,.sd-svccard-ph .sd-ph{position:absolute;inset:0;min-height:0}
.sd-svccard-bd{padding:26px 24px 24px}
.sd-svccard-bd h3{font-size:20px;color:var(--ink)}
.sd-svccard-bd p{font:400 14.5px/1.55 var(--sans);color:var(--muted);margin-top:9px}
.sd-svccard-bd .more{display:inline-block;margin-top:14px;font:700 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk)}
.sd-svccard:hover .more{color:var(--gold)}

/* services v3 + hub index — the ruled "file index" list (mono index + gold tick, no photos) */
.sd-svcfile,.sd-catfile{margin-top:48px;padding:30px 30px 26px}
.sd-svc-index2 .sd-svcfile{margin-top:48px}
.sd-svcrows,.sd-catrows{display:grid;gap:0;margin-top:8px}
.sd-svcrow,.sd-catrow{display:grid;grid-template-columns:54px 1fr auto;gap:22px;align-items:center;padding:18px 4px;border-bottom:1px solid var(--line2);transition:background .15s}
.sd-svcrow:last-child,.sd-catrow:last-child{border-bottom:0}
.sd-svcrow:hover,.sd-catrow:hover{background:var(--paper)}
.sd-svcrow .ix,.sd-catrow .ix{font:700 22px/1 var(--mono);color:var(--gold);flex:none}
.sd-svcrow .t b,.sd-catrow .t b{display:block;font:700 17px/1.3 var(--sans);color:var(--ink)}
.sd-svcrow .t span,.sd-catrow .t span{display:block;font:400 14px/1.5 var(--sans);color:var(--muted);margin-top:3px}
.sd-svcrow .go,.sd-catrow .go{font:700 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--teal);white-space:nowrap}
.sd-svcrow:hover .go,.sd-catrow:hover .go{color:var(--gold-dk)}

/* services hub — categorized file-folder index */
.sd-svcindex{background:var(--paper);padding:80px 0}
.sd-svcindex-cats{display:grid;gap:42px;margin-top:50px}
.sd-catfile{margin-top:0;padding:30px 30px 18px}

.sd-svc-all{margin-top:34px}
.sd-svc-all a{display:inline-block;font:700 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk);padding-bottom:6px;border-bottom:2px solid var(--gold);transition:color .15s,border-color .15s}
.sd-svc-all a:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ============================================================================
   SIGNATURE WALKTHROUGH — dossier of numbered file-cards (dark ink-teal). No JS.
   ============================================================================ */
.sd-walk{background:var(--teal);color:var(--on-dark);padding:86px 0}
/* a slim documentation photo clipped into the case file (warms the dark signature band) */
.sd-walk-shot{position:relative;height:210px;margin-top:38px;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.14)}
.sd-walk-shot .sd-vimg,.sd-walk-shot .sd-ph{position:absolute;inset:0;min-height:0}
.sd-walk-files{display:grid;gap:20px;margin-top:24px}
/* FIXED tab column (not auto): each card is its own grid, so an auto column sized every card to its
   own tab ("02 Document" vs "04 Adjuster meeting") and the step texts started at a different x per
   card. A shared fixed column hangs every stage's body at the same indent, a clean aligned sequence. */
.sd-walkfile{padding:26px 30px 24px;display:grid;grid-template-columns:212px 1fr;gap:0 28px;align-items:start}
.sd-walkfile .sd-tab{position:static;align-self:start;justify-self:start;max-width:100%;margin-bottom:4px}
.sd-walkfile-bd{grid-column:2}
.sd-walkfile h3{font-size:22px;color:var(--ink);margin-top:2px}
.sd-walkfile p{font:400 15.5px/1.62 var(--sans);color:var(--muted);margin-top:11px;max-width:62ch}
.sd-term{display:inline-block;margin-top:16px;font:500 12px/1 var(--mono);letter-spacing:.05em;color:var(--teal);background:var(--cool);padding:7px 12px;border-radius:4px;border:1px solid var(--line)}

/* ============================================================================
   COVERS — two stacked file-cards (covered / not covered).
   ============================================================================ */
.sd-covers{background:var(--paper);padding:80px 0}
.sd-covers-stack{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:52px}
.sd-coverfile{padding:30px 28px 28px}
.sd-coverfile-bd h3{font-size:22px;margin-top:4px;color:var(--ink)}
.sd-coverfile-bd p.note{font:400 14px/1.5 var(--sans);color:var(--muted);margin-top:6px}
.sd-coverfile ul{list-style:none;margin-top:18px;display:grid;gap:11px}
.sd-coverfile li{display:flex;gap:12px;font-size:15px;align-items:flex-start;line-height:1.5}
.sd-coverfile li .mk{flex:none;width:20px;height:20px;border-radius:3px;display:grid;place-items:center;margin-top:1px}
.sd-coverfile li .mk svg{width:13px;height:13px}
.sd-coverfile.yes li .mk{background:var(--gold-wash);color:var(--gold-dk)}
.sd-coverfile.no li .mk{background:var(--cool2);color:var(--teal-soft)}
.sd-coverfile li b{font-weight:600;color:var(--ink)}
.sd-coverfile li span{color:var(--muted)}

/* ============================================================================
   ACV vs RCV — two file-cards + money-flow + deductible disclosure.
   ============================================================================ */
.sd-acv{background:var(--surface);padding:80px 0}
.sd-acv-panels{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:50px}
.sd-acvfile{padding:34px 30px 30px}
.sd-acvfile-bd .ab{font:700 13px/1 var(--mono);letter-spacing:.06em;color:var(--gold-dk);text-transform:uppercase}
.sd-acvfile-bd h3{font-size:23px;margin-top:6px;color:var(--ink)}
.sd-acvfile-bd p{font:400 15px/1.6 var(--sans);color:var(--muted);margin-top:11px}
.sd-flow{margin-top:22px;background:var(--cool);border:1px solid var(--line);border-radius:4px;padding:18px}
.sd-flow .cols{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;text-align:center}
.sd-flow .col .bar{height:10px;border-radius:3px;margin-bottom:8px}
.sd-flow .col .bar.full{background:var(--teal)}
.sd-flow .col .bar.dep{background:repeating-linear-gradient(90deg,var(--gold) 0 6px,var(--gold-wash) 6px 12px)}
.sd-flow .col .bar.net{background:var(--gold)}
.sd-flow .col .lab{font:600 11px/1.3 var(--mono);letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.sd-flow .arrow{font-size:22px;color:var(--gold-dk);font-weight:700}
.sd-disclose{margin-top:30px;background:var(--gold-wash);border:1px solid var(--gold-lt);border-radius:4px;padding:18px 22px;display:flex;gap:14px;align-items:flex-start}
.sd-disclose svg{width:24px;height:24px;color:var(--gold-dk);flex:none;margin-top:1px}
.sd-disclose b{font-weight:700}
.sd-disclose p{font:400 14.5px/1.55 var(--sans);color:var(--ink)}

/* ============================================================================
   DOCS PROOF — clipped-paper thumbnails.
   ============================================================================ */
.sd-docs{background:var(--cool);padding:80px 0}
.sd-docs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:48px}
.sd-clip{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:12px;position:relative;transition:transform .16s,box-shadow .16s}
.sd-clip::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:34px;height:14px;border:3px solid var(--gold);border-bottom:none;border-radius:9px 9px 0 0;background:transparent}
.sd-clip:hover{transform:translateY(-4px);box-shadow:0 22px 40px -28px rgba(27,58,63,.55)}
.sd-clip-ph{aspect-ratio:3/4;border-radius:2px;overflow:hidden;position:relative}
.sd-clip-ph .sd-vimg,.sd-clip-ph .sd-ph{position:absolute;inset:0;min-height:0}
.sd-clip-cap{padding:13px 6px 5px}
.sd-clip-cap b{display:block;font:600 14px/1.3 var(--sans);color:var(--ink)}
.sd-clip-cap span{font:500 11.5px/1.4 var(--mono);letter-spacing:.02em;color:var(--muted)}
.sd-docs-note{margin-top:24px;font:500 13.5px/1.5 var(--mono);color:var(--muted);letter-spacing:.01em}

/* ============================================================================
   COMPARISON — the comparison table as a file-card.
   ============================================================================ */
.sd-compare{background:var(--paper);padding:80px 0}
.sd-ctable-wrap{margin-top:48px;padding:0;overflow:hidden}
.sd-ctable{width:100%;border-collapse:collapse;font-size:15px}
.sd-ctable th,.sd-ctable td{padding:18px 22px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.sd-ctable thead th{font:700 13px/1.3 var(--sans);background:var(--paper);color:var(--ink)}
.sd-ctable thead th.spec{color:var(--ink)}
.sd-ctable thead th.you{color:var(--muted)}
.sd-ctable thead th.us{color:var(--gold-dk)}
.sd-ctable thead th.us::before{content:"";display:inline-block;width:9px;height:9px;background:var(--gold);border-radius:2px;margin-right:8px;vertical-align:middle}
.sd-ctable td:first-child{font-weight:600;color:var(--ink);width:34%}
.sd-ctable td.you{color:var(--muted)}
.sd-ctable td.us{color:var(--ink);background:rgba(var(--gold-rgb),.05)}
.sd-ctable tr:last-child td{border-bottom:none}
.sd-ctable td .mk{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--gold-wash);color:var(--gold-dk);align-items:center;justify-content:center;margin-right:8px;vertical-align:middle}
.sd-ctable td .mk svg{width:11px;height:11px}

/* ============================================================================
   STORM LEDGER — the NOAA record as a mono ledger (dark ink-teal).
   ============================================================================ */
.sd-storm{background:var(--teal);color:var(--on-dark);padding:86px 0}
.sd-ledger{margin-top:42px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:4px;overflow:hidden;font-family:var(--mono)}
.sd-ledger .lrow{display:grid;grid-template-columns:140px 1fr 150px;gap:16px;padding:15px 24px;border-bottom:1px solid rgba(255,255,255,.09);font-size:14px;align-items:center}
.sd-ledger .lrow.lh{background:rgba(0,0,0,.18);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:11.5px;color:var(--gold-lt)}
.sd-ledger .lrow:last-child{border-bottom:none}
.sd-ledger .lrow .ev{font-family:var(--sans);color:#fff;font-weight:500}
.sd-ledger .lrow .hail{color:var(--gold-lt);text-align:right;font-weight:600}
.sd-ledger .lrow .dt{color:rgba(230,239,238,.8)}
.sd-storm-src{margin-top:14px;font:500 12px/1.5 var(--mono);color:rgba(230,239,238,.6);letter-spacing:.02em}
.sd-storm-src a{color:var(--gold-lt);text-decoration:underline}

/* city-storm compact summary (read-out strip, MAP-FREE, dark ink-teal) */
.sd-citystorm{background:var(--teal);color:var(--on-dark);padding:84px 0}
.sd-readout{display:flex;flex-wrap:wrap;gap:0;border:1px solid rgba(255,255,255,.14);border-radius:4px;margin-top:30px;overflow:hidden}
.sd-readout .sl{flex:1;min-width:170px;padding:24px 24px;border-right:1px solid rgba(255,255,255,.1)}
.sd-readout .sl:last-child{border-right:0}
.sd-readout .sl b{font:700 40px/.9 var(--mono);color:#fff;display:block}
.sd-readout .sl b em{font-size:18px;font-style:normal;color:var(--gold-lt)}
.sd-readout .sl span{font:500 12px/1.4 var(--sans);color:var(--on-dark-mut);display:block;margin-top:9px}

/* storm-note compact one-liner band (light) */
.sd-stormnote{background:var(--cool);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}
.sd-stormnote .wrap{display:flex;align-items:center;gap:16px}
.sd-stormnote p{font:400 16px/1.55 var(--sans);color:var(--ink)}
.sd-stormnote p b{color:var(--gold-dk);font-weight:700}

/* ============================================================================
   SPECS — honest local-data plates as a dossier file-card (HOME suppresses prices).
   ============================================================================ */
.sd-specs{background:var(--paper);padding:80px 0}
.sd-specfile{margin-top:40px;padding:30px 30px 26px}
.sd-specfile-bd{margin-top:6px}
.sd-plates{display:grid;grid-template-columns:repeat(var(--sd-cols,4),1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.sd-plate{background:var(--surface);padding:22px 20px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.sd-plate .n{font:700 30px/.96 var(--mono);color:var(--gold-dk);display:inline-block;padding-bottom:8px;position:relative;word-break:break-word}
.sd-plate .n::after{content:"";position:absolute;left:0;bottom:0;width:40px;height:3px;background:var(--gold)}
.sd-plate .lab{display:block;margin-top:11px;font:500 12px/1.4 var(--sans);color:var(--muted)}
.sd-specfile-src{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);font:400 11.5px/1.5 var(--mono);color:var(--muted);letter-spacing:.01em}
.sd-specrates{margin-top:34px;max-width:760px}
.sd-specrates h3{font-size:24px;color:var(--ink)}
.sd-specrates p{font:400 15.5px/1.6 var(--sans);color:var(--muted);margin:12px 0 18px}
.sd-ratetable{width:100%;border-collapse:collapse}
.sd-ratetable tr{border-bottom:1px solid var(--line)}
.sd-ratetable tr:first-child{border-top:1px solid var(--line)}
.sd-ratetable td{padding:15px 0;vertical-align:baseline}
.sd-ratetable td b{display:block;font:700 16px/1.3 var(--sans);color:var(--ink)}
.sd-ratetable td span{display:block;font:400 13px/1.4 var(--sans);color:var(--muted);margin-top:3px}
.sd-ratetable td.v{text-align:right;font:700 20px/1 var(--mono);color:var(--gold-dk);white-space:nowrap}
.sd-rate-disc{font:400 12.5px/1.5 var(--sans);color:var(--muted);margin-top:14px;font-style:italic}
.sd-writ-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;margin-top:4px}
.sd-writ-list li{display:flex;align-items:flex-start;gap:13px;font:500 15.5px/1.5 var(--sans);color:var(--ink)}
.sd-writ-list li .dia{margin-top:5px}

/* ============================================================================
   PROCESS — numbered file-cards (light).
   ============================================================================ */
.sd-proc{background:var(--surface);padding:80px 0}
.sd-proc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
.sd-pstep{padding:24px 24px 22px}
.sd-pstep .sd-tab{top:-16px}
.sd-pstep-bd{margin-top:6px}
.sd-pstep-bd h3{font-size:19px;color:var(--ink);margin-top:2px}
.sd-pstep-bd p{font:400 14.5px/1.55 var(--sans);color:var(--muted);margin-top:9px}

/* ============================================================================
   SERVICE-DETAIL blocks (scope / signs / cost-band / context) + commercial.
   ============================================================================ */
.sd-scope,.sd-context{background:var(--paper);padding:80px 0}
.sd-signs{background:var(--surface);padding:80px 0}
.sd-scopefile,.sd-contextfile,.sd-permitfile{margin-top:40px;padding:30px 30px 26px}
.sd-filerows{display:grid;gap:0;margin-top:8px}
.sd-frow{display:grid;grid-template-columns:1fr 1.15fr;gap:24px;align-items:baseline;padding:16px 4px;border-bottom:1px solid var(--line2)}
.sd-frow:last-child{border-bottom:0}
.sd-frow dt{font:700 15.5px/1.3 var(--sans);color:var(--ink);display:flex;align-items:baseline;gap:14px}
.sd-frow dt .co{font:700 12px/1 var(--mono);letter-spacing:.06em;color:var(--gold-dk);flex:none}
.sd-frow dd{font:400 14.5px/1.6 var(--sans);color:var(--muted)}
.sd-frow dd a{color:var(--gold-dk);text-decoration:underline}
.sd-file-note{font:400 12.5px/1.6 var(--sans);color:var(--muted);margin-top:16px;font-style:italic}
.sd-file-note a{color:var(--gold-dk);text-decoration:underline}

.sd-checklist{list-style:none;margin-top:40px;display:grid;gap:0;border-top:1px solid var(--line)}
.sd-checklist li{display:flex;align-items:flex-start;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line)}
.sd-checklist li .mk{flex:none;width:22px;height:22px;border-radius:3px;display:grid;place-items:center;background:var(--gold-wash);color:var(--gold-dk);margin-top:1px}
.sd-checklist li .mk svg{width:13px;height:13px}
.sd-checklist li .tx{font:400 16px/1.55 var(--sans);color:var(--ink)}

.sd-costband{background:var(--paper);padding:80px 0}
.sd-costband-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.sd-costband-grid .copy h2{font-size:30px;color:var(--ink);margin-top:13px}
.sd-costband-grid .copy p{font:400 16px/1.65 var(--sans);color:var(--muted);margin:13px 0 22px;max-width:48ch}

/* commercial systems matrix */
.sd-cmatrix{background:var(--surface);padding:80px 0}
.sd-cmatrix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.sd-csys{padding:24px 22px 22px}
.sd-csys .sd-tab{top:-16px}
.sd-csys-bd{margin-top:4px}
.sd-csys-bd h3{font-size:21px;color:var(--ink)}
.sd-csys-bd p{font:400 14.5px/1.6 var(--sans);color:var(--muted);margin-top:9px}
.sd-csys-more{display:inline-flex;align-items:center;margin-top:13px;font:700 12px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk);border-bottom:1px solid transparent}
.sd-csys-more:hover{border-color:var(--gold)}

/* local landmarks + coverage (ONE map) */
.sd-localmap{background:var(--paper);padding:80px 0}
.sd-localmap-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center}
.sd-localmap-copy h2{font-size:30px;color:var(--ink);margin-top:13px}
.sd-localmap-copy p{font:400 16px/1.65 var(--sans);color:var(--muted);margin-top:13px;max-width:46ch}
.sd-localmap-copy p a{color:var(--gold-dk);text-decoration:underline}
.sd-marklist{list-style:none;margin-top:26px;display:grid;gap:0;border-top:1px solid var(--line)}
.sd-marklist li{display:flex;align-items:flex-start;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line)}
.sd-marklist li .dia{margin-top:5px}
.sd-marklist li .tx{font:400 15.5px/1.55 var(--sans);color:var(--ink)}
.sd-marklist li .tx .mk{font:700 12px/1.55 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--gold-dk);margin-right:4px}
.sd-localmap-map,.sd-hood-map{position:relative;min-height:360px;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.sd-localmap-map .sd-vimg,.sd-localmap-map .sd-ph{position:absolute;inset:0;min-height:0}
.sd-map-frame{position:relative;height:100%;min-height:360px}
.sd-map-frame iframe,.sd-hood-map iframe{width:100%;height:100%;min-height:360px;border:0;display:block;filter:grayscale(.2) contrast(1.03)}
/* F15/F20 static map (rr_static_map): a local OSM image (or a clean placeholder) + a keyless Google Maps
   deep link — replaces the deprecated keyless map iframe (that rendered the world map / a blank hub panel). */
.rr-staticmap{position:relative;height:100%;min-height:360px}
.rr-staticmap-img{width:100%;height:100%;min-height:360px;object-fit:cover;display:block;filter:grayscale(.15) contrast(1.03)}
.rr-staticmap-ph{position:absolute;inset:0;background:repeating-linear-gradient(135deg,#e7ece9,#e7ece9 14px,#dde5e1 14px,#dde5e1 28px)}
.rr-staticmap-link{position:absolute;left:10px;bottom:10px;z-index:5;font:600 11px/1 var(--mono);letter-spacing:.03em;color:var(--gold-ink);background:var(--gold);padding:7px 11px;border-radius:3px;text-decoration:none;box-shadow:0 1px 6px rgba(0,0,0,.28)}
.rr-staticmap-link:hover{background:var(--gold-lt)}
.sd-pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font:700 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);background:var(--gold);padding:8px 13px;border-radius:3px;z-index:4}

/* ============================================================================
   OVERVIEW / STORY / REGION (inner-page light).
   ============================================================================ */
.sd-overview{background:var(--surface);padding:74px 0}
.sd-overview.sd-overview-statement{padding:54px 0 50px}
.sd-overview.sd-overview-statement .sd-head{max-width:760px;margin:0 auto;text-align:center}
.sd-overview.sd-overview-statement .sd-head .sd-eyebrow{justify-content:center}
.sd-overview.sd-overview-statement .sd-head p{margin-left:auto;margin-right:auto}
.sd-overview h2{font-size:32px;color:var(--ink);margin-top:13px}
.sd-overview p{color:var(--muted);font:400 16.5px/1.7 var(--sans);margin-top:14px;max-width:62ch}
.sd-overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.sd-overview .art{min-height:340px;position:relative;border-radius:4px;overflow:hidden}
.sd-overview .art .sd-vimg,.sd-overview .art .sd-ph{position:absolute;inset:0;min-height:0}
.sd-story{background:var(--paper)}
.sd-story-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start;margin-top:24px}
.sd-story .sd-story-body{max-width:640px}
.sd-story .sd-story-body p{color:var(--ink);font:400 16.5px/1.75 var(--sans);margin-top:16px}
.sd-story .sd-story-body p:first-child{margin-top:0}
.sd-story-shot{position:relative;min-height:360px;border-radius:4px;overflow:hidden;align-self:stretch;box-shadow:0 1px 0 var(--manila-edge),0 2px 0 #ece2c8}
.sd-story-shot .sd-vimg,.sd-story-shot .sd-ph{position:absolute;inset:0;min-height:0}
.sd-pledge{color:var(--gold-dk)!important;font:600 19px/1.5 var(--sans)!important;margin-top:26px!important;border-left:4px solid var(--gold);padding-left:20px}

/* ============================================================================
   MATERIALS catalog (file-card spec cards; manufacturer wall = TEXT names).
   ============================================================================ */
.sd-matsec{background:var(--paper);padding:80px 0}
.sd-matgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 22px;margin-top:48px}
.sd-matcard{padding:24px 22px 22px}
.sd-matcard .sd-tab{top:-16px}
.sd-matcard-bd{margin-top:6px}
.sd-matcard-bd h3{font-size:19px;color:var(--ink)}
.sd-matcard-bd h3 a:hover{color:var(--gold-dk)}
.sd-matcard-bd p{font:400 13.5px/1.55 var(--sans);color:var(--muted);margin:8px 0 14px}
.sd-matspecs{display:grid;gap:0;border-top:1px solid var(--line)}
.sd-matspecs .r{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line2)}
.sd-matspecs .k{font:600 12px/1.3 var(--mono);letter-spacing:.02em;color:var(--muted)}
.sd-matspecs .v{font:600 13px/1.3 var(--sans);color:var(--ink);text-align:right}
.sd-makerwall{margin-top:36px;border-top:1px solid var(--line);padding-top:24px;display:flex;align-items:center;gap:16px 22px;flex-wrap:wrap}
.sd-makerwall-lab{font:700 12px/1.3 var(--mono);letter-spacing:.02em;text-transform:uppercase;color:var(--gold-dk)}
.sd-makers{display:flex;flex-wrap:wrap;gap:12px}
.sd-makers span{font:700 15px/1 var(--sans);color:var(--ink);border:1px solid var(--line);padding:11px 16px;border-radius:3px}

/* ============================================================================
   COST CALCULATOR (dossier read-out file-card; light).
   ============================================================================ */
.sd-calc{background:var(--surface);padding:80px 0}
.sd-calc-panel{margin-top:48px;padding:30px 30px 28px}
.sd-calc-bd{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:6px;align-items:start}
.sd-calc-inputs{display:grid;gap:22px}
.sd-field label{display:block;font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.sd-ctl{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--surface)}
.sd-ctl input{flex:1;min-width:0;border:0;background:transparent;font:700 22px/1 var(--mono);color:var(--ink);padding:14px 16px;outline:none}
.sd-ctl .unit{display:flex;align-items:center;padding:0 16px;background:var(--teal);color:var(--gold-lt);font:700 12px/1 var(--mono);letter-spacing:.14em}
.sd-seg{display:flex;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.sd-seg button{flex:1;background:var(--surface);border:0;border-right:1px solid var(--line);font:600 12px/1 var(--sans);letter-spacing:.02em;color:var(--muted);padding:14px 8px;cursor:pointer;transition:background .15s,color .15s}
.sd-seg button:last-child{border-right:0}
.sd-seg button.on{background:var(--teal);color:var(--gold-lt)}
.sd-readplate{background:var(--teal);border-radius:4px;padding:30px 28px;position:relative;color:var(--on-dark)}
.sd-rp-lab{display:block;font:700 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-lt)}
.sd-rp-fig{margin:14px 0 22px}
.sd-rp-fig .big{font:700 38px/.95 var(--mono);color:#fff}
.sd-rp-rows{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.14)}
.sd-rp-rows .r{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.sd-rp-rows .k{font:400 13px/1.4 var(--sans);color:var(--on-dark-mut)}
.sd-rp-rows .v{font:600 14px/1.3 var(--mono);color:#fff}
.sd-rp-note{font:400 12px/1.5 var(--sans);color:var(--on-dark-mut);margin-top:16px;font-style:italic}

/* ============================================================================
   COVERAGE INDEX (file-tab town directory; MAP-FREE).
   ============================================================================ */
.sd-areas{background:var(--paper);padding:80px 0}
.sd-areas .lead2{font:400 16px/1.6 var(--sans);color:var(--muted);max-width:60ch}
.sd-areafile{margin-top:46px;padding:34px 34px 30px}
.sd-areas-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 30px;margin-top:6px}
.sd-areas-cols a,.sd-areas-cols .areacell{display:flex;align-items:baseline;gap:10px;font:500 15px/1.9 var(--sans);color:var(--ink);border-bottom:1px solid var(--line2);padding:3px 0}
.sd-areas-cols .dot{font:600 11px/1 var(--mono);color:var(--gold-dk);flex:none}
.sd-areas-cols a:hover{color:var(--gold-dk)}

/* neighborhoods index (directory + ONE map) */
.sd-hoods{background:var(--surface);padding:80px 0}
.sd-hood-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:start;margin-top:46px}
.sd-hoodfile{padding:30px 30px 18px}
.sd-hood-index{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:8px}
.sd-hood{display:flex;flex-direction:column;gap:5px;padding:18px 4px;border-bottom:1px solid var(--line2)}
.sd-hood:nth-child(odd){border-right:1px solid var(--line2);padding-right:22px}
.sd-hood:nth-child(even){padding-left:22px}
.sd-hood .name{font:700 16px/1.2 var(--sans);color:var(--ink)}
.sd-hood a.name:hover{color:var(--gold-dk)}
.sd-hood .hook{font:400 13px/1.5 var(--sans);color:var(--muted)}

/* neighborhood profile (tight intro + stamped fast-facts + photo) */
.sd-prof{background:var(--paper);padding:80px 0}
.sd-prof-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start;margin-top:34px}
.sd-fastfacts{padding:26px 26px 22px}
.sd-fastfacts .sd-tab{top:-16px}
.sd-ff-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:8px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.sd-ffcell{background:var(--surface);padding:18px 18px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.sd-ffcell .k{font:700 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk)}
.sd-ffcell .v{font:600 15.5px/1.4 var(--sans);color:var(--ink);word-break:break-word}
.sd-prof-shot{min-height:340px;position:relative;border-radius:4px;overflow:hidden}
.sd-prof-shot .sd-vimg,.sd-prof-shot .sd-ph{position:absolute;inset:0;min-height:0}

/* city-facts plate (dossier file-card; real NOAA + Census + cited code) */
.sd-cityfacts{background:var(--surface);padding:80px 0}
.sd-cffile{margin-top:40px;padding:30px 30px 26px}
.sd-cffile-bd{margin-top:6px}

/* permit platesheet (P-n file rows) */
.sd-permit{background:var(--paper);padding:80px 0}

/* standards filelist (about) */
.sd-standards{background:var(--surface);padding:80px 0}
.sd-standards-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}
.sd-standards-copy h2{font-size:32px;color:var(--ink);margin-top:13px}
.sd-standards-copy p{font:400 16px/1.65 var(--sans);color:var(--muted);margin-top:13px;max-width:40ch}
.sd-sigfile{padding:26px 28px 22px}
.sd-sigfile .sd-tab{top:-16px}
.sd-sigrows{display:grid;gap:0;margin-top:6px}
.sd-sigrow{display:flex;align-items:flex-start;gap:16px;padding:18px 0;border-bottom:1px solid var(--line2)}
.sd-sigrow:last-child{border-bottom:0}
.sd-sigrow .dia{margin-top:4px}
.sd-sigrow b{font:700 16px/1.3 var(--sans);color:var(--ink)}
.sd-sigrow b span{display:block;font:400 13.5px/1.5 var(--sans);color:var(--muted);margin-top:4px}

/* contact directory */
.sd-contact{background:var(--paper);padding:80px 0}
.sd-contactfile{margin-top:40px;padding:30px 30px 22px}
.sd-contact-index{display:grid;gap:0;margin-top:6px}
.sd-crow{display:flex;gap:22px;align-items:flex-start;padding:20px 4px;border-bottom:1px solid var(--line2)}
.sd-crow:last-child{border-bottom:0}
.sd-cref{font:700 18px/1 var(--mono);color:var(--gold-dk);flex:none;padding-top:2px}
.sd-clab{display:block;font:600 11.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sd-cval{display:block;font:700 22px/1.1 var(--sans);color:var(--ink);margin-top:7px}
a.sd-cval:hover{color:var(--gold-dk)}
.sd-csub{display:block;font:400 14px/1.55 var(--sans);color:var(--muted);margin-top:7px;max-width:60ch}

/* faq (details/summary dossier) */
.sd-faq{background:var(--surface);padding:80px 0}
.sd-faq-list{margin-top:42px;max-width:840px}
.sd-qrow{background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:13px;overflow:hidden}
.sd-qrow[open]{border-color:var(--gold-lt)}
.sd-qrow summary{list-style:none;cursor:pointer;padding:20px 24px;display:flex;align-items:center;gap:16px;font:600 17px/1.4 var(--sans);color:var(--ink)}
.sd-qrow summary::-webkit-details-marker{display:none}
.sd-qrow .q-ref{flex:none;font:700 12px/1 var(--mono);color:var(--gold-dk);letter-spacing:.06em;width:26px}
.sd-qrow .q-t{font:600 17px/1.4 var(--sans);color:var(--ink)}
.sd-qrow .tog{margin-left:auto;flex:none;width:22px;height:22px;position:relative}
.sd-qrow .tog::before,.sd-qrow .tog::after{content:"";position:absolute;background:var(--gold-dk);border-radius:2px;transition:transform .18s}
.sd-qrow .tog::before{left:3px;right:3px;top:10px;height:2px}
.sd-qrow .tog::after{top:3px;bottom:3px;left:10px;width:2px}
.sd-qrow[open] .tog::after{transform:scaleY(0)}
.sd-qrow .q-a{padding:0 24px 22px 66px;font:400 16px/1.62 var(--sans);color:var(--muted)}
.sd-qrow .q-a a{color:var(--gold-dk);text-decoration:underline}

/* ============================================================================
   CTA — closing intake slip (left-center copy + the form) + mid-page band.
   ============================================================================ */
.sd-close{background:linear-gradient(180deg,var(--paper),var(--cool));border-top:1px solid var(--line);padding:86px 0}
.sd-close-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.sd-close-copy{display:flex;flex-direction:column;justify-content:center}
.sd-close-copy h2{font-size:38px;color:var(--ink);margin-top:13px}
.sd-close-copy p{font:400 17px/1.6 var(--sans);color:var(--muted);margin-top:14px;max-width:42ch}
.sd-close-phone{margin-top:26px;display:flex;align-items:center;gap:14px}
.sd-close-phone .ic{width:46px;height:46px;border-radius:50%;background:var(--teal);display:grid;place-items:center;flex:none}
.sd-close-phone .ic svg{color:var(--gold-lt)}
.sd-close-phone .t b{display:block;font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.sd-close-phone .t a{font:800 24px/1 var(--sans);color:var(--teal);letter-spacing:-.01em}
.sd-close .sd-slip{max-width:none}

.sd-ctaband{background:var(--teal);color:var(--on-dark);border-top:4px solid var(--gold);padding:44px 0}
.sd-ctaband-grid{display:grid;grid-template-columns:1fr auto;gap:30px 44px;align-items:center}
.sd-ctaband-copy h2{font-size:30px;color:#fff;margin-top:11px;max-width:24ch}
.sd-ctaband-copy p{font:400 15.5px/1.55 var(--sans);color:var(--on-dark-mut);margin-top:11px;max-width:54ch}
.sd-ctaband .sd-btn{flex:none;white-space:nowrap}

/* ============================================================================
   NO-ADJACENT-DARK BAND FLIP (.sd-alt) — when an alternating ink-teal section would
   stack a second dark band, the render fn adds `.sd-alt`, flipping it to a light file-band.
   ============================================================================ */
.sd-walk.sd-alt,.sd-storm.sd-alt,.sd-citystorm.sd-alt{background:var(--paper);color:var(--ink)}
.sd-walk.sd-alt .sd-walk-shot{border-color:var(--line)}
.sd-walk.sd-alt .sd-head h2,.sd-storm.sd-alt .sd-head h2,.sd-citystorm.sd-alt .sd-head h2{color:var(--ink)}
.sd-walk.sd-alt .sd-head p,.sd-storm.sd-alt .sd-head p,.sd-citystorm.sd-alt .sd-head p{color:var(--muted)}
.sd-walk.sd-alt .sd-eyebrow.on-dark,.sd-storm.sd-alt .sd-eyebrow.on-dark,.sd-citystorm.sd-alt .sd-eyebrow.on-dark{color:var(--gold-dk)}
.sd-walk.sd-alt .sd-eyebrow.on-dark::before,.sd-storm.sd-alt .sd-eyebrow.on-dark::before,.sd-citystorm.sd-alt .sd-eyebrow.on-dark::before{background:var(--gold)}
/* the storm ledger on a light band: invert to ink rows on white */
.sd-storm.sd-alt .sd-ledger{background:var(--surface);border-color:var(--line)}
.sd-storm.sd-alt .sd-ledger .lrow{border-bottom-color:var(--line2)}
.sd-storm.sd-alt .sd-ledger .lrow.lh{background:var(--cool);color:var(--gold-dk)}
.sd-storm.sd-alt .sd-ledger .lrow .ev{color:var(--ink)}
.sd-storm.sd-alt .sd-ledger .lrow .dt{color:var(--muted)}
.sd-storm.sd-alt .sd-ledger .lrow .hail{color:var(--gold-dk)}
.sd-storm.sd-alt .sd-storm-src{color:var(--muted)}
.sd-storm.sd-alt .sd-storm-src a{color:var(--gold-dk)}
/* the city-storm read-out on a light band */
.sd-citystorm.sd-alt .sd-readout{border-color:var(--line)}
.sd-citystorm.sd-alt .sd-readout .sl{border-right-color:var(--line2)}
.sd-citystorm.sd-alt .sd-readout .sl b{color:var(--ink)}
.sd-citystorm.sd-alt .sd-readout .sl b em{color:var(--gold-dk)}
.sd-citystorm.sd-alt .sd-readout .sl span{color:var(--muted)}

/* ============================================================================
   SHARED ESTIMATE BAND (footer.php #estimate, when not suppressed) — dossier idiom.
   rr_lead_form('closer') = .est-form. Restyle to match the intake slip.
   ============================================================================ */
.estimate{background:var(--cool);color:var(--ink);padding:80px 0;position:relative;border-top:1px solid var(--line)}
/* C25 (2026-07-21): sticky header clips the form label on #estimate anchor jumps */
#estimate{scroll-margin-top:80px}
.sd-calc-cta{margin-top:14px;display:inline-block}
.estimate .est-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;max-width:var(--wrap);margin:0 auto;padding:0 30px}
.estimate .est-copy h2{font-size:34px;color:var(--ink)}
.estimate .est-copy p{color:var(--muted);font:400 16px/1.6 var(--sans);margin-top:14px;max-width:42ch}
.est-points{list-style:none;margin-top:22px;display:grid;gap:11px}
.est-points li{display:flex;align-items:center;gap:11px;font:600 13.5px/1.4 var(--sans);color:var(--ink)}
.est-points li svg{color:var(--gold-dk);flex:none}
.est-card{background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 18px 40px -30px rgba(27,58,63,.5);padding:0;min-width:0;overflow:hidden}
.est-card h3{font:700 15px/1 var(--sans);letter-spacing:.01em;color:#fff;background:var(--teal);padding:15px 22px;margin:0}
.est-card .est-note{font:400 12px/1.4 var(--sans);color:var(--muted);margin:14px 22px 0}
.est-card .est-form{display:grid;gap:13px;padding:18px 22px 22px}
.est-card .est-form .row,.est-card .est-form .f.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.est-card .est-form .f,.est-card .est-form>div{min-width:0}
.est-card .est-form label{display:block;font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.est-card .est-form label.ef-check{display:flex;align-items:flex-start;gap:10px;font:500 13px/1.45 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer;margin:0}
.est-card .est-form input,.est-card .est-form select,.est-card .est-form textarea{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:3px;color:var(--ink);font:500 14.5px var(--sans);padding:12px 13px;outline:none}
.est-card .est-form input::placeholder,.est-card .est-form textarea::placeholder{color:#9aa3a2}
.est-card .est-form input:focus,.est-card .est-form select:focus,.est-card .est-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;background:#fff;border-color:var(--gold)}
.est-card .est-form select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--gold-dk) 50%),linear-gradient(135deg,var(--gold-dk) 50%,transparent 50%);background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
.est-card .est-form textarea{resize:vertical;min-height:64px;line-height:1.5}
.est-card .est-form .ef-check input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--gold-dk)}
.est-card .est-form .lf-opt{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.est-card .est-form button[type=submit]{width:100%;background:var(--gold);color:var(--gold-ink);border:2px solid transparent;font:700 14.5px/1 var(--sans);padding:15px;cursor:pointer;transition:background .16s,color .16s;border-radius:3px}
.est-card .est-form button[type=submit]:hover{background:var(--gold-dk);color:#fff}
.est-card .est-form .fineprint,.est-card .est-form .form-consent{font:400 11px/1.5 var(--sans);color:var(--muted);margin:0}
.est-card .est-form .lf-hp{display:none}

/* ============================================================================
   SHARED FOOTER (footer.php .foot-grid) — own dossier masthead (gold rule, file-index columns).
   ============================================================================ */
footer{background:color-mix(in srgb,var(--teal) 86%,#000);color:var(--on-dark-mut);border-top:4px solid var(--gold);font-family:var(--sans);padding:50px 0 70px}
footer .wrap{max-width:var(--wrap);margin:0 auto;padding:0 30px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:34px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand .logo{display:inline-flex;margin-bottom:16px}
/* on-dark brandlock: the logo system paints the wordmark in header colors (--ink name / --muted tag),
   which vanish on the dark ink-teal footer — restate both for legibility on this ground */
footer .brandlock .bl-name,footer .brandlock.bl-wm-sans{color:#fff}
footer .brandlock .bl-tag{color:var(--on-dark-mut)}
/* F16 marker: the footer lockup gets the light glyph variant (rr_logo_lockup('footer')); align the flex row. */
.bl-foot{align-items:center}
.foot-brand p{font:400 14px/1.65 var(--sans);color:var(--on-dark-mut);max-width:36ch}
.foot-col h5{color:#fff;font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.foot-col a{display:block;font:400 14px/1.3 var(--sans);color:var(--on-dark-mut);padding:6px 0}
.foot-col a:hover{color:var(--gold-lt)}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:20px;font:500 12.5px/1.5 var(--mono);color:rgba(230,239,238,.5)}
.foot-bottom a{color:rgba(230,239,238,.6)}
.foot-bottom a:hover{color:var(--gold-lt)}
.foot-legal{display:flex;gap:18px}

/* shared mobile sticky CTA bar (.mobar) — suppressed for Storm-ClaimDesk (the sticky header carries it).
   The .btn-ghost / .btn-primary children are declared so css-coverage accounts for them even while hidden. */
.mobar{display:none}
.mobar .btn-ghost{background:transparent;color:var(--gold-dk);border:2px solid var(--line)}
.mobar .btn-primary{background:var(--gold);color:var(--gold-ink);border:2px solid transparent}

/* ============================================================================
   STRUCTURAL / WRAPPER CLASSES the engine emits (declared so css-coverage accounts
   for every emitted class; visual rules live in the compound selectors above).
   ============================================================================ */
.sd-heroV2,.sd-heroV4,.sd-has-photo,.sd-region,.sd-close-form,.sd-cbody{min-width:0}
.brandlock.bl-mark-left{flex-direction:row}
.brandlock.bl-wm-caps .bl-name{text-transform:none}
.nav-cta .num{white-space:nowrap}

/* ============================================================================
   FL-FALLBACK MARKUP — legal pages (privacy-policy / disclaimer via legal.php) +
   any family-uncomposed page render the SHARED FL svc-hero / prose / crumb blocks. Style
   them into the dossier voice so they render acceptably; neutralize FL-only motifs.
   ============================================================================ */
.svc-hero{background:var(--teal);color:#fff;padding:54px 0 46px;position:relative;overflow:hidden}
.svc-hero .wrap{max-width:var(--wrap);margin:0 auto;padding:0 30px;position:relative;z-index:2}
.svc-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.svc-hero-copy{min-width:0}
.svc-hero h1,.svc-hero-copy h1{color:#fff;font-family:var(--sans);font-weight:800;font-size:clamp(30px,4vw,46px);line-height:1.06;letter-spacing:-.022em}
.svc-hero .lead,.svc-hero-copy .lead,.svc-hero-copy>p{color:var(--on-dark);margin-top:14px;max-width:52ch;font:400 16px/1.6 var(--sans)}
.svc-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.crumb,.svc-hero .crumb{font:600 12px/1.5 var(--mono);letter-spacing:.02em;color:var(--on-dark-mut);margin-bottom:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumb a{color:var(--on-dark-mut)}.crumb a:hover{color:var(--gold-lt)}
.crumb .sep{color:var(--gold-lt)}
.crumb .cur,.svc-hero .crumb .cur{color:var(--gold-lt)}
.svc-hand,.hand{font-family:var(--sans);font-style:normal;font-weight:700;color:inherit}
.underline-word{font-style:normal;color:var(--gold-lt);white-space:normal}
.underline-word svg{display:none}
.blob,.roofline{display:none}
.hero-trust{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:20px}
.hero-trust .ht-item{display:inline-flex;align-items:center;gap:8px;font:600 12px/1.3 var(--sans);color:var(--on-dark)}
.hero-trust .ht-item svg{color:var(--gold-lt);flex:none}
.hero-photo{position:relative;min-height:300px}
.hero-photo .frame,.hero-photo .frame-ph{position:relative;height:100%;min-height:300px;border:1px solid rgba(255,255,255,.12);border-radius:4px;overflow:hidden}
.hero-photo .frame img{width:100%;height:100%;object-fit:cover}
.hero-photo .frame-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(160deg,var(--teal2),#16292d);color:var(--on-dark-mut)}
.hero-photo .frame-ph-ic{color:var(--gold-lt)}
.hero-photo .frame-ph-label{font:600 11px/1.4 var(--mono);letter-spacing:.1em}
.hero-photo .stamp{position:absolute;bottom:14px;left:14px;display:inline-flex;align-items:center;gap:9px;background:var(--gold);color:var(--gold-ink);font:700 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:9px 13px;border-radius:3px}
.hero-photo .stamp .dot{display:inline-flex}
.prose-sec{padding:64px 0;background:var(--surface)}
.prose-sec .wrap{max-width:760px;margin:0 auto;padding:0 30px}
.prose-sec h2{font-family:var(--sans);font-weight:800;font-size:26px;color:var(--ink);margin:30px 0 10px;letter-spacing:-.018em}
.prose-sec h3{font-family:var(--sans);font-weight:700;font-size:19px;color:var(--ink);margin:22px 0 8px}
.prose-sec p,.prose-sec li{color:var(--muted);font-size:15.5px;line-height:1.7;margin-top:10px}
.prose-sec a{color:var(--gold-dk);border-bottom:1px solid var(--gold)}
.prose-sec a:hover{border-bottom-color:var(--gold-dk)}
.prose-sec .sec-head h2{margin-top:0}
.prose-body{max-width:760px;margin:0 auto}
.prose-body p,.prose-body li{color:var(--muted);font-size:15.5px;line-height:1.7}
.legal-updated{color:var(--muted);font:500 12px/1.5 var(--sans);letter-spacing:.02em;margin-top:8px}
.sec-head{max-width:680px;margin:0 auto 26px;text-align:center}
.sec-head h2{font-family:var(--sans);font-weight:800;font-size:32px;color:var(--ink);letter-spacing:-.018em}
.sec-head p{color:var(--muted);font-size:16px;margin-top:12px}
.alt{background:var(--cool)}

/* ============================================================================
   MOTION — transform/opacity only, reduced-motion safe.
   ============================================================================ */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media(max-width:980px){
  .sd-hero h1{font-size:44px}
  .sd-svc-grid,.sd-matgrid,.sd-cmatrix-grid{grid-template-columns:1fr 1fr}
  .sd-plates{grid-template-columns:1fr 1fr}
  .sd-areas-cols{grid-template-columns:1fr 1fr}
}

/* NAV LABELS NEVER WRAP (2026-07-25). Southlake shipped a ragged nav row: the flex row is nowrap but its
   ITEMS default to flex-shrink:1, so "Commercial Roofing" and "Service Areas" were squeezed onto two
   lines each and the six top-level items landed on three different baselines. A top-level nav label is a
   fixed-width element - it should overflow HONESTLY (where nav-fit-check can measure it) rather than
   silently re-wrap. Desktop row only; the mobile accordion below the breakpoint is full-width. */
@media(min-width:881px){.nav-links>a,.nav-links .nav-top{white-space:nowrap;flex-shrink:0}}
@media(max-width:880px){
  .nav-toggle{display:inline-flex}
  .sd-navnum{font-size:14px}
  /* MOBILE: ONE-ROW sticky bar (Alex mobile pass 2026-07-14 — the wrapped two-deck bar let the
     wordmark overshadow the Free-inspection CTA). Logo scales down; CTA + burger stay on the line. */
  header .nav{padding:10px 12px 10px 14px;flex-wrap:nowrap;gap:8px;position:relative}
  header .logo{flex:0 1 auto;min-width:0}
  .brandlock{gap:9px;min-width:0}
  .brandlock .bl-stack{min-width:0}
  .brandlock .bl-mk{width:26px;height:24px}
  .brandlock .bl-name{font-size:14px;white-space:nowrap}
  .brandlock .bl-tag{font-size:7.5px;letter-spacing:.13em;margin-top:3px}
  .sd-navbtn{padding:10px 12px;font-size:13px;white-space:nowrap}
  .sd-navcta{gap:8px;flex:none}
  /* mobile nav: the shared JS toggles .nav-links open via aria-expanded/.open */
  .sd-nav.nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 16px 30px -20px rgba(27,58,63,.4);padding:8px 0;display:none}
  header .nav-toggle[aria-expanded="true"] ~ .sd-nav.nav-links,
  .sd-nav.nav-links.open{display:flex}
  .sd-nav.nav-links>a,.sd-nav .nav-top{padding:13px 20px;border-bottom:1px solid var(--line2);width:100%}
  .sd-nav .nav-item.has-drop{position:static}
  .sd-nav .nav-drop{position:static;display:none;border:0;box-shadow:none;padding:0 0 8px;background:var(--paper);min-width:0;width:100%;border-radius:0}
  /* on mobile ONLY .open controls the submenu — neutralise the desktop hover/focus-within show, or a tapped
     nav-top keeps :hover/:focus-within and the dropdown won't collapse on the second tap */
  .sd-nav .nav-item.has-drop:hover .nav-drop,.sd-nav .nav-item.has-drop:focus-within .nav-drop{display:none}
  .sd-nav .nav-item.has-drop.open .nav-drop{display:flex}
  .sd-nav .nav-drop a{padding:11px 36px}
  .sd-navcta{order:3;margin-left:auto}
}
@media(max-width:640px){
  /* phone width: the nav number pushed the one-row bar 11px past 390 (mobile-qa HARD). The form CTA is
     the primary conversion (form-first model); the number stays on hero + contact. Mirrors Keystone. */
  .sd-navnum{display:none}
}
@media(max-width:820px){
  .sd-heroV2 .wrap{padding-top:44px;padding-bottom:52px}
  .sd-hero h1{font-size:38px}
  .sd-hero-grid,.sd-heroV4 .sd-hero-grid,.sd-intro-grid,.sd-overview-grid,.sd-story-grid,.sd-standards-grid,.sd-costband-grid,.sd-localmap-grid,.sd-hood-grid,.sd-prof-grid,.sd-close-grid,.sd-calc-bd,.estimate .est-grid{grid-template-columns:1fr;gap:30px}
  .sd-proc-grid{grid-template-columns:1fr;gap:20px}
  .sd-hero-grid{align-items:stretch}
  .sd-hero .sd-slip{max-width:none;margin-left:0}
  .sd-hero-trust{max-width:none}
  /* stacked: keep the copy AND the form legible over the photo — make the v2 scrim near-opaque paper */
  .sd-vimg.tint-paper::after{background:linear-gradient(180deg,var(--paper) 0%,var(--paper) 62%,rgba(247,248,248,.9) 100%)}
  .sd-intro-list{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:24px}
  .sd-covers-stack,.sd-acv-panels{grid-template-columns:1fr}
  .sd-docs-grid{grid-template-columns:1fr 1fr}
  .sd-svc-grid,.sd-matgrid,.sd-cmatrix-grid{grid-template-columns:1fr}
  .sd-walkfile{grid-template-columns:1fr;gap:0}
  .sd-walkfile-bd{grid-column:1}
  .sd-frow,.sd-svcrow,.sd-catrow{grid-template-columns:1fr}
  .sd-svcrow,.sd-catrow{gap:6px 14px;grid-template-columns:54px 1fr}
  .sd-svcrow .go,.sd-catrow .go{grid-column:1/-1}
  .sd-writ-list{grid-template-columns:1fr}
  .sd-ledger .lrow{grid-template-columns:1fr 110px;gap:6px 12px}
  .sd-ledger .lrow .ev{grid-column:1/-1;order:3}
  .sd-ledger .lrow.lh .ev{display:none}
  .sd-readout{flex-direction:column}
  .sd-readout .sl{border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}
  .sd-prof-shot,.sd-localmap-map{order:-1;min-height:280px}
  .sd-ctaband-grid{grid-template-columns:1fr;gap:22px}
  .sd-ctaband .sd-btn{width:100%}
  .sd-hood:nth-child(odd){border-right:0;padding-right:4px}
  .sd-hood:nth-child(even){padding-left:4px}
  .sd-head h2,.sd-close-copy h2{font-size:28px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .wrap{padding:0 20px}
  .sd-hero h1{font-size:33px}
  .sd-form .row,.sd-form .f.row,.est-card .est-form .row{grid-template-columns:1fr}
  .sd-docs-grid,.sd-areas-cols{grid-template-columns:1fr}
  .sd-plates{grid-template-columns:1fr}
  .sd-hood-index{grid-template-columns:1fr}
  .sd-ff-grid{grid-template-columns:1fr}
  .sd-ctable th,.sd-ctable td{padding:13px 14px;font-size:14px}
  .sd-ctable td:first-child{width:auto}
  .sd-close-phone .t a{font-size:21px}
  .foot-grid{grid-template-columns:1fr}
  .sd-head h2,.sd-close-copy h2{font-size:25px}
  /* cost calculator: keep the read-out figure + inputs inside 390 (no horizontal overflow) */
  .sd-rp-fig .big{font-size:30px}
  .sd-ctl input{font-size:19px;min-width:0;padding:13px 12px}
  .sd-seg button{padding:13px 4px;font-size:11px}
  .sd-readplate,.sd-calc-panel{min-width:0}
}

/* ============================================================================
   BLOG — "case file" 2-col dossier card index + a self-contained boxed post hero.
   Each index card is a claim file: a gold folder-tab (its meta_label), a mono
   LABELED meta strip (Filed / Read fields), a document photo, and a subject-line
   title. The post opens on a self-contained boxed .sd-post-hero case file (a
   manila-edged white document panel, NO .svc-hero), then a lead figure and a 760px
   reading column. FAQ = JS-free details rows with a plus and dash stamp.
   .sd-post-body and .sd-post-fig also carry .wrap; their narrower max-widths sit
   later in the cascade so they override .wrap.
   ============================================================================ */
/* index masthead — a light paper band; the shared crumb is recolored for light ground */
.sd-blog-hero{background:var(--paper);padding:46px 0 8px}
.sd-blog-hero .crumb{color:var(--muted)}
.sd-blog-hero .crumb a:hover{color:var(--gold-dk)}
.sd-blog-hero .crumb .sep{color:var(--line)}
.sd-blog-hero .crumb .cur{color:var(--ink)}
.sd-blog-hero .sd-eyebrow{margin-bottom:12px}
.sd-blog-hero h1{font:800 clamp(30px,4vw,44px)/1.06 var(--sans);letter-spacing:-.022em;color:var(--ink)}
.sd-blog-hero .lead{color:var(--muted);margin-top:14px;max-width:62ch;font:400 17px/1.6 var(--sans)}

/* the case-file card grid — 2 columns on desktop, 1 column at 560px */
.sd-blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 28px;margin-top:44px}
.sd-cf-card{position:relative;display:flex;flex-direction:column;margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 1px 0 var(--manila-edge),0 2px 0 #ece2c8;overflow:visible;transition:transform .16s,box-shadow .16s}
.sd-cf-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--manila-edge),var(--manila));border-radius:4px 4px 0 0;z-index:2}
.sd-cf-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -28px rgba(27,58,63,.55)}
/* the gold folder tab — the dossier index-tab idiom, carrying the post's meta_label */
.sd-cf-tab{position:absolute;top:-15px;left:20px;z-index:3;display:inline-flex;align-items:center;background:var(--gold);color:var(--gold-ink);font:700 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 13px;border-radius:4px 4px 0 0}
/* the labeled case-file meta strip (mono Filed / Read fields, a hairline rule under) */
.sd-cf-head{display:flex;flex-wrap:wrap;gap:6px 24px;padding:22px 24px 14px;border-bottom:1px solid var(--line2)}
.sd-cf-field{display:inline-flex;flex-direction:column;gap:2px}
.sd-cf-field .lb{font:700 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dk)}
.sd-cf-field .v{font:600 12.5px/1.2 var(--mono);letter-spacing:.02em;color:var(--ink)}
.sd-cf-ph{height:170px;overflow:hidden;background:var(--cool)}
.sd-cf-ph img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.sd-cf-card:hover .sd-cf-ph img{transform:scale(1.04)}
.sd-cf-body{display:flex;flex-direction:column;flex:1;padding:20px 24px 22px}
.sd-cf-card h3{font:700 19px/1.28 var(--sans);letter-spacing:-.006em;color:var(--ink);margin-bottom:8px}
.sd-cf-card p{color:var(--muted);font:400 14.5px/1.6 var(--sans);margin-bottom:16px}
.sd-cf-open{margin-top:auto;font:700 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk);display:inline-flex;align-items:center;gap:8px}
.sd-cf-open span{transition:transform .18s ease}
.sd-cf-card:hover .sd-cf-open span{transform:translateX(4px)}

/* single post — a self-contained boxed case-file hero (NO .svc-hero) on the light ground */
.sd-post{display:block}
.sd-post-hero{background:var(--paper);padding:48px 0 4px}
.sd-post-file{position:relative;max-width:820px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 1px 0 var(--manila-edge),0 2px 0 #ece2c8;padding:30px 34px 28px}
.sd-post-file::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--manila-edge),var(--manila));border-radius:4px 4px 0 0}
.sd-post-tab{position:absolute;top:-16px;left:24px;display:inline-flex;align-items:center;background:var(--gold);color:var(--gold-ink);font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;border-radius:4px 4px 0 0}
.sd-post-file .crumb{color:var(--muted);margin-top:6px}
.sd-post-file .crumb a:hover{color:var(--gold-dk)}
.sd-post-file .crumb .sep{color:var(--line)}
.sd-post-file .crumb .cur{color:var(--ink)}
.sd-post-file h1{font:800 clamp(27px,3.4vw,38px)/1.1 var(--sans);letter-spacing:-.018em;color:var(--ink);margin-top:4px}
.sd-post-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:16px;padding-top:15px;border-top:1px solid var(--line2)}
.sd-post-meta .lb{font:700 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dk)}
.sd-post-meta .v{font:600 13px/1.2 var(--mono);letter-spacing:.02em;color:var(--ink)}

.sd-post-fig{max-width:880px;margin:26px auto 0}
.sd-post-fig img{width:100%;max-height:440px;object-fit:cover;border-radius:4px;box-shadow:0 22px 44px -30px rgba(27,58,63,.5)}
.sd-post-body{max-width:760px;margin:0 auto;padding:46px 30px 8px}
.sd-post-body .sd-post-lead{font:400 18px/1.66 var(--sans);color:var(--ink);margin-bottom:6px}
.sd-post-body h2{font:700 25px/1.2 var(--sans);color:var(--ink);letter-spacing:-.006em;margin:34px 0 10px}
.sd-post-body p{color:var(--muted);font:400 16px/1.75 var(--sans);margin-top:12px}
.sd-post-body a:not(.btn){color:var(--gold-dk);text-decoration:underline;text-underline-offset:2px}
.sd-post-body a:not(.btn):hover{color:var(--ink)}
.sd-post-bullets{margin:14px 0 4px;padding-left:20px}
.sd-post-bullets li{color:var(--muted);font:400 16px/1.72 var(--sans);margin-top:8px}
.sd-post-cta{margin:30px 0 6px;text-align:center} /* C9 (Alex/olathe note, 2026-07-21): the closing inspection-CTA block centers */
/* the closing CTA is a full-sentence .btn; the generic .sd-post-body a rule would paint it
   gold-on-gold with an underline, so restate the gold plate at higher specificity and open the
   line-height so the long label stays a readable button when it wraps. */
.sd-post-body .sd-post-cta a.btn{background:var(--gold);color:var(--gold-ink);text-decoration:none;font:700 15.5px/1.5 var(--sans);text-align:left;padding:16px 24px;white-space:normal;border-radius:4px}
.sd-post-body .sd-post-cta a.btn:hover{background:var(--gold-dk);color:#fff}

/* single-post FAQ — reuses the .alt light band; JS-free details rows, plus and dash stamp */
.sd-post-faqs{padding:80px 0}
.sd-post-faqs .wrap{max-width:820px}
.sd-post-faqs h2{font:700 26px/1.15 var(--sans);color:var(--ink);letter-spacing:-.006em;margin-bottom:18px;text-align:center}
.sd-post-faq{background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:13px;overflow:hidden}
.sd-post-faq summary{list-style:none;cursor:pointer;position:relative;padding:19px 48px 19px 24px;font:600 16.5px/1.4 var(--sans);color:var(--ink)}
.sd-post-faq summary::-webkit-details-marker{display:none}
.sd-post-faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font:400 22px/1 var(--mono);color:var(--gold-dk)}
.sd-post-faq[open] summary::after{content:"\2013"}
.sd-post-faq[open] summary{border-bottom:1px solid var(--line)}
.sd-post-faq>div{padding:16px 24px 20px;color:var(--muted);font:400 16px/1.7 var(--sans)}
.sd-post-faq>div a{color:var(--gold-dk);text-decoration:underline}
@media(max-width:860px){
  .sd-post-body{padding:40px 24px 8px}
  .sd-post-file{padding:28px 26px 24px}
}
@media(max-width:560px){
  .sd-blog-grid{grid-template-columns:1fr}
  .sd-post-body{padding:36px 20px 8px}
  .sd-post-file{padding:26px 20px 22px}
  .sd-cf-head{gap:6px 18px}
}

@media(max-width:430px){
  .sd-topbar .r{display:none}
  .sd-topbar .wrap{justify-content:center;padding:8px 20px}
  .sd-topbar .l{gap:14px;flex-wrap:nowrap;font-size:10px;letter-spacing:.08em;justify-content:center;overflow:hidden}
}

:root{--pine:#c8922a;--pine-dk:#966b1e;--pine-lt:#e7c87f;--pine-rgb:200,146,42;--charcoal:#1b3a3f;--char2:#244c52;--cream:#f7f8f8;--sand:#eef2f2;--sand-dk:#ced8d6;--ink:#2a2724;--muted:#52615e;--font-display:'Libre Franklin',sans-serif;--font-body:'Libre Franklin',sans-serif;--sans:'Libre Franklin',sans-serif;--body:'Libre Franklin',sans-serif;--gold:#c8922a;--gold-dk:#966b1e;--gold-lt:#e7c87f;--teal:#1b3a3f;--teal2:#244c52;--paper:#f7f8f8;--cool:#eef2f2;--line:#ced8d6;--wrap:1240px}
[hidden]{display:none!important}.container{max-width:1240px;padding-inline:30px;margin:auto}.narrow{max-width:820px}body{font-size:17px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;background:var(--gold);color:#241a05;font:700 14px/1.25 var(--sans);padding:14px 24px;border:2px solid transparent;border-radius:3px;cursor:pointer}.button:hover{background:#966b1e;color:#fff}.button:disabled{opacity:.55;cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:4px}::selection{background:#e7c87f;color:#1b3a3f}input,textarea{caret-color:#966b1e}html{scroll-padding-top:110px}*{scrollbar-color:#8caaa4 #eef2f2}figcaption{font-size:13px;line-height:1.55;color:var(--muted);margin-top:12px}p a.contextual-link{color:#75531a;text-decoration:underline;text-underline-offset:3px}
.site-header{position:sticky;top:0;z-index:50;background:#f7f8f8;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;gap:22px;min-height:92px}.brand{display:inline-flex;gap:11px;align-items:center;flex:none}.brand .brand-mark{width:42px;height:42px}.brand>span{font-weight:800;font-size:21px;letter-spacing:-.02em;line-height:1.05}.brand small{display:block;font:600 10px/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;margin-top:5px;color:var(--muted)}#main-nav{display:flex;gap:19px;align-items:center;margin-left:auto;font-weight:600;font-size:13px}.nav-parent{display:flex;align-items:center}.nav-parent>a,#main-nav>a{padding-block:17px;white-space:nowrap}.nav-disclosure{display:grid;place-items:center;background:none;border:0;width:23px;min-height:42px;color:var(--ink);cursor:pointer;font-size:19px}.nav-group{position:relative}.nav-panel{position:absolute;top:100%;left:-12px;min-width:245px;max-height:min(70vh,650px);overflow-y:auto;background:#fff;border:1px solid var(--line);box-shadow:0 16px 28px -20px #1b3a3f66;padding:9px;z-index:51}.nav-panel a{display:block;font-size:13px;padding:12px 11px;line-height:1.4}.nav-panel a:hover{background:#f6ecd6;color:#75531a}.nav-parent:has(button[aria-expanded=true]){color:#75531a}.nav-disclosure[aria-expanded=true] span{transform:rotate(180deg)}.header-actions{display:flex;flex-direction:column;align-items:center;gap:7px;flex:none}.header-phone{font:700 13px/1.2 var(--mono);color:var(--teal)}.header-cta{font-size:12px;padding:10px 13px;min-height:38px}.menu-toggle{display:none;background:var(--teal);color:#fff;border:0;border-radius:3px;padding:11px;gap:8px;align-items:center;font:700 13px var(--sans)}.menu-toggle span{display:flex}
.sd-vimg>img{width:100%;height:100%;object-fit:cover}.sd-hero-bg .sd-vimg>img{position:absolute;inset:0}.sd-hero h1{margin:0;max-width:15ch}.sd-hero .sd-lead p{font-size:18.5px;line-height:1.6;margin:0}.sd-hero .sd-lead{max-width:43ch}.sd-hero .sd-hero-trust{max-width:43ch}.sd-form .lead-form{display:grid;gap:12px;background:none;padding:0;border:0;box-shadow:none}.lead-form>h2{font-size:19px;line-height:1.2;margin:0;color:var(--ink)}.lead-form>.form-intro{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sd-form .lead-form label{font:600 11px/1.4 var(--mono);letter-spacing:0;text-transform:none;margin:0}.sd-form .lead-form label>input,.sd-form .lead-form label>select,.sd-form .lead-form label>textarea{display:block;margin-top:5px;min-width:0;font:400 15px/1.3 var(--sans);padding:11px 12px}.sd-form .lead-form input::placeholder,.sd-form .lead-form textarea::placeholder{color:#687773}.sd-form .lead-form textarea{min-height:62px}.sd-form .lead-form label.consent{display:flex;align-items:flex-start;gap:9px;font:400 11px/1.55 var(--sans);color:#485752}.sd-form label.consent>input{width:17px;height:17px;flex:none;padding:0;margin:2px 0 0;accent-color:var(--teal)}.consent a{text-decoration:underline;text-underline-offset:2px}.honey{position:absolute;left:-10000px}.sd-form button[type=submit]{margin:0;line-height:1.3}.sd-form .form-status{font:500 13px/1.5 var(--sans);color:var(--teal)}.sd-form .form-status:empty{display:none}.field-error{color:#9b251d;font:500 12px/1.4 var(--sans);display:block;margin-top:6px}.sd-form input[aria-invalid=true],.sd-form select[aria-invalid=true]{border-color:#9b251d}
.sd-intro-grid{align-items:center}.sd-intro-copy h2{margin-top:0;line-height:1.17}.sd-intro-copy p{max-width:60ch;font-size:17px;line-height:1.75}.sd-body-photo{min-width:0}.sd-body-photo img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:4px}.sd-image-first .sd-body-photo{order:-1}.sd-intro-grid.sd-image-first{grid-template-columns:.9fr 1.1fr}.sd-intro.cool,.sd-decision.cool{background:var(--cool)}.sd-section-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:24px}.sd-section-actions:empty{display:none}.sd-svcfile{margin-top:34px}.sd-svcrow{grid-template-columns:minmax(0,1fr) auto;padding:22px 4px}.sd-svcrow h3{font-size:20px;line-height:1.3}.sd-svcrow p{font-size:15px;line-height:1.65;color:var(--muted);margin-top:8px;max-width:75ch}.sd-svc-go{font:600 12px/1.4 var(--mono);color:#75531a;text-decoration:underline;text-underline-offset:4px;max-width:140px}.sd-head h2{margin-top:0;line-height:1.16}.sd-head{max-width:790px}.sd-decision{padding:76px 0;background:#fff}.sd-decision h2,.sd-calculator-section h2{font-size:36px;max-width:28ch;margin:0 0 15px;line-height:1.17}.sd-decision .sd-head p{max-width:73ch;font-size:17px;line-height:1.75}.sd-decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:36px}.sd-decision-grid.sd-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px}.sd-decision-item{padding-top:22px;border-top:2px solid var(--gold)}.sd-decision-item h3{font-size:22px;line-height:1.25}.sd-decision-item p{margin-top:13px;font-size:16px;line-height:1.75;color:var(--muted)}.sd-decision-item .button{margin-top:20px}.sd-decision.dark{background:var(--teal);color:#fff}.sd-decision.dark h2,.sd-decision.dark h3{color:#fff}.sd-decision.dark p{color:#e4ecea}.sd-decision.dark .sd-decision-item{border-top-color:#e7c87f}.sd-wide-photo{margin-top:30px;max-width:100%}.sd-wide-photo img{width:100%;height:310px;object-fit:cover;border-radius:4px}.sd-table-scroll,.ks-table-scroll{overflow:auto;margin-top:30px;max-width:100%}table{border-collapse:collapse;width:100%;font-size:15px;background:#fff}th,td{padding:18px;text-align:left;border:1px solid var(--line);vertical-align:top;line-height:1.65}thead th{background:var(--teal);color:#fff;font-size:14px}tbody th{font-weight:700}.sd-source{font-size:13px;line-height:1.6;color:var(--muted);margin-top:15px}.sd-faq{padding:74px 0;background:var(--paper)}.sd-faq h2{font-size:34px;line-height:1.2;margin-bottom:25px}.sd-faq-items{display:grid;gap:12px}.sd-qrow summary{display:flex;gap:20px;align-items:center;list-style:none;cursor:pointer;padding:21px 24px}.sd-qrow summary::-webkit-details-marker{display:none}.sd-qrow .q-t{font-size:18px;line-height:1.4;font-weight:600}.sd-qrow .q-a{padding:0 24px 23px;font-size:16px}.sd-qrow .q-a p+p{margin-top:12px}.sd-close{background:linear-gradient(180deg,#f7f8f8,#eef2f2)}.sd-close-copy h2{margin-top:0;font-size:38px;line-height:1.18}.sd-close-copy p{max-width:47ch}.sd-close .sd-slip{max-width:490px;width:100%;margin-left:auto}.sd-close-phone a{display:inline-block;padding-top:8px}.sd-resource-intro{padding:60px 0;background:var(--paper);border-bottom:1px solid var(--line)}.sd-resource-facts{display:grid;gap:22px;padding-left:28px;border-left:1px solid var(--line)}.sd-resource-facts dt{font-weight:700;font-size:17px}.sd-resource-facts dd{font-size:15px;line-height:1.7;color:var(--muted);margin-top:7px}.sd-city-map iframe{border:0;width:100%;height:430px;background:var(--cool)}
.ks-calculator{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px;padding:28px;background:var(--cool);border:1px solid var(--line);border-radius:4px}.ks-calc-controls{display:grid;gap:15px}.ks-calc-controls label{font-weight:600;font-size:15px}.ks-calc-controls input,.ks-calc-controls select{display:block;width:100%;padding:12px;border:1px solid #9baea9;border-radius:3px;background:#fff;font:400 16px var(--sans);margin-top:7px}.ks-calc-help{font-size:13px;line-height:1.65;color:var(--muted)}.ks-calc-result{align-self:center}.ks-calc-result output{display:block;font-size:34px;font-weight:700;line-height:1.3;color:var(--teal);margin:18px 0}.ks-calc-result p{margin-block:15px;font-size:15px}.ks-calc-result .eyebrow{font:600 13px var(--mono)}.ks-calc-result [data-error]{color:#9b251d}.ks-source,.ks-cost-sources{font-size:13px;margin-top:19px;color:var(--muted)}.ks-model-method{margin-top:20px;border:1px solid var(--line);padding:17px 20px}.ks-model-method summary{font-size:15px;font-weight:600;cursor:pointer}.ks-model-method p{font-size:14px;margin-top:14px}.storm-year{border:1px solid var(--line);border-radius:4px;margin-top:20px;background:#fff}.storm-year summary{display:flex;align-items:center;gap:30px;padding:20px;cursor:pointer;list-style:none}.storm-year h3{font:700 27px var(--mono);color:var(--teal)}.storm-year summary>span{font-size:16px}.storm-year small,td small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.storm-year .storm-expand{margin-left:auto;color:#75531a;font-size:24px}.storm-year .ks-table-scroll{margin:0;padding:0 20px 20px}.table-cell-label{display:none}.storm-highlights h3{margin-top:28px}.storm-highlights p{margin-top:15px}
.sd-reading-opening{padding:70px 0 35px;background:var(--cool)}.sd-reading-opening h1{font-size:46px;line-height:1.15;margin-bottom:23px}.sd-reading-opening p{font-size:19px;line-height:1.75}.sd-reading-opening .sd-date{font:500 13px var(--mono);color:var(--muted);margin-bottom:20px}.sd-article-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-block:25px}.sd-text-call{font-weight:600;text-decoration:underline}.sd-article-photo{margin-top:30px}.sd-article-photo img{width:100%;aspect-ratio:1.7;object-fit:cover;border-radius:4px}.sd-reading-section{padding:34px 0;background:#fff}.sd-reading-section h2{font-size:29px;line-height:1.2;margin-bottom:20px}.sd-reading-section p{font-size:17px;line-height:1.85;margin-bottom:18px}.ks-blog-feed{padding:65px 0;background:#fff}.ks-blog-feed h2{font-size:34px;margin-bottom:18px}.ks-blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:35px}.ks-blog-grid article{border:1px solid var(--line);background:#fff}.ks-blog-grid article>img{width:100%;aspect-ratio:1.7;object-fit:cover}.ks-blog-grid article>div{padding:24px}.ks-blog-grid h3{font-size:24px;line-height:1.3;margin:14px 0}.ks-blog-grid p{font-size:15px;line-height:1.7;margin-bottom:20px}.ks-blog-grid .blog-date{font:500 12px var(--mono);color:var(--muted);margin-bottom:0}.collection-actions{margin-top:28px}.blog-pagination{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:28px}
.site-footer{background:var(--teal);color:#e7efed;padding:60px 0 25px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:65px}.site-footer h2{font-size:18px;color:#fff;margin-bottom:20px}.site-footer a:not(.brand){display:block;margin-bottom:12px;font-size:14px}.site-footer .phone-large{font:700 21px var(--mono);color:#e7c87f;margin-top:22px}.footer-logo{margin-bottom:22px}.footer-logo>span,.footer-logo small{color:#fff}.site-footer p{max-width:36ch;font-size:15px;line-height:1.7}.footer-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:45px;padding-top:24px;border-top:1px solid #52736e}.footer-bottom p{font-size:12px}.mobile-actions{display:none}
@media(max-width:1200px){.header-inner{gap:14px}.brand>span{font-size:19px}#main-nav{gap:11px;font-size:12px}.header-actions{gap:6px}.header-cta{font-size:11px;padding:9px}.header-phone{font-size:12px}.sd-hero h1{font-size:48px}}
@media(max-width:1100px){.header-inner{min-height:82px;flex-wrap:wrap;padding-block:13px;justify-content:space-between}.menu-toggle{display:flex;margin-left:auto}#main-nav{display:none;order:5;flex-basis:100%;margin:0;max-height:calc(100dvh - 100px);overflow:auto;padding:12px 0}#main-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.nav-parent{justify-content:space-between}.nav-parent>a,#main-nav>a{font-size:16px;padding:16px 0}.nav-disclosure{width:46px}.nav-panel{position:static;max-height:none;min-width:0;box-shadow:none;border:0;border-top:1px solid var(--line);background:#fff;padding:5px 0 10px 18px}.nav-panel a{font-size:15px;padding:13px 12px;line-height:1.45}.header-actions{flex-direction:row;margin-left:5px}.header-cta{font-size:12px}.header-phone{font-size:13px}.sd-hero-grid,.sd-heroV4 .sd-hero-grid{gap:35px}.sd-hero .sd-slip{max-width:460px}.sd-intro-grid{gap:35px}.sd-decision-grid{gap:23px}}
@media(max-width:800px){.wrap,.container{padding-inline:24px}.sd-hero-grid,.sd-heroV4 .sd-hero-grid,.sd-intro-grid,.sd-intro-grid.sd-image-first,.sd-close-grid{grid-template-columns:1fr;gap:34px}.sd-hero h1{font-size:43px;max-width:22ch}.sd-heroV4 .wrap{padding-top:42px;padding-bottom:44px}.sd-hero .sd-slip{max-width:none}.sd-hero .sd-lead{max-width:58ch}.sd-hero .sd-hero-trust{max-width:58ch}.sd-hero-call{font-size:15px}.sd-hero-call a{font-size:17px}.sd-intro,.sd-decision,.sd-faq,.sd-close,.sd-resource-intro{padding:56px 0}.sd-intro-copy h2,.sd-decision h2,.sd-head h2,.sd-close-copy h2{font-size:32px}.sd-body-photo img{aspect-ratio:1.4;max-height:430px}.sd-decision-grid{grid-template-columns:1fr;gap:26px}.sd-decision-grid.sd-two{grid-template-columns:1fr;gap:26px}.sd-decision-item{padding-top:19px}.sd-decision-item p{font-size:17px}.sd-close .sd-slip{max-width:none;margin:0}.sd-wide-photo img{height:250px}.sd-resource-facts{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:23px;grid-template-columns:1fr 1fr}.sd-image-first .sd-body-photo{order:initial}.sd-reading-opening{padding:45px 0 25px}.sd-reading-opening h1{font-size:38px}.sd-svcrow{grid-template-columns:1fr;gap:14px}.sd-svc-go{max-width:none}.sd-svcfile{padding:22px}.ks-calculator{grid-template-columns:1fr;gap:28px;padding:22px}.ks-blog-grid{grid-template-columns:1fr;max-width:680px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:12px}.sd-city-map iframe{height:370px}}
@media(max-width:560px){body{padding-bottom:69px}.wrap,.container{padding-inline:20px}.header-inner{gap:9px}.brand>span{font-size:19px}.brand .brand-mark{width:34px;height:34px}.brand small{font-size:8px}.header-actions{margin:0}.header-cta{display:none}.header-phone{font:700 12px var(--mono)}.menu-toggle{font-size:12px;padding:10px;gap:6px}.header-inner{min-height:77px}.sd-heroV4 .wrap{padding-top:35px;padding-bottom:38px}.sd-hero h1{font-size:38px;max-width:16ch;line-height:1.12}.sd-hero .sd-lead p{font-size:17px;line-height:1.65}.sd-hero-trust li .tx{font-size:14px}.sd-hero-trust li{padding:11px 0}.sd-hero-call{font-size:13px}.sd-hero-call a{display:inline-block;font-size:17px;padding-block:5px}.sd-slip-body{padding:19px 17px}.sd-slip-bar{padding:14px 17px;gap:8px}.sd-slip-bar b{font-size:12px;line-height:1.3}.sd-slip-bar .ref{font-size:9px;white-space:nowrap}.form-grid{grid-template-columns:1fr;gap:12px}.sd-form .lead-form label>input,.sd-form .lead-form label>select,.sd-form .lead-form label>textarea{font-size:16px}.sd-form .lead-form label.consent{font-size:11px}.sd-form .lead-form{gap:13px}.sd-form button[type=submit]{font-size:14px;padding:14px 12px}.sd-intro-copy p{font-size:17px;line-height:1.75}.sd-intro-copy h2,.sd-decision h2,.sd-head h2,.sd-faq h2,.sd-close-copy h2{font-size:30px}.sd-decision .sd-head p{font-size:17px}.sd-body-photo img{aspect-ratio:1.1}.sd-resource-facts{grid-template-columns:1fr}.sd-faq .sd-qrow summary{padding:19px 17px}.sd-qrow .q-t{font-size:17px}.sd-qrow .q-a{padding:0 17px 21px}.sd-close-copy p{font-size:17px}.sd-reading-opening h1{font-size:34px}.sd-reading-opening p{font-size:18px}.sd-reading-section h2{font-size:27px}.sd-reading-section p{font-size:17px}.sd-city-map iframe{height:350px}.ks-calc-result output{font-size:29px}.sd-table-scroll table{min-width:580px}.sd-table-scroll{margin-right:-2px}.ks-blog-grid h3{font-size:24px}.sd-svcfile{padding:17px}.sd-svcrow h3{font-size:20px}.sd-svcrow p{font-size:16px}.footer-grid{gap:35px 24px}.site-footer{padding-top:45px}.mobile-actions{position:fixed;display:grid;grid-template-columns:1fr 1fr;bottom:0;left:0;right:0;z-index:45;background:var(--teal);gap:1px;padding:8px 12px;border-top:1px solid #52736e}.mobile-actions a{display:flex;justify-content:center;align-items:center;background:var(--gold);color:#241a05;padding:12px 7px;font-size:12px;font-weight:700;min-height:45px}.mobile-actions a:first-child{background:var(--teal);color:#fff}.storm-year summary{gap:14px;padding:18px 15px}.storm-year h3{font-size:23px}.storm-year summary>span{font-size:14px}.storm-year .ks-table-scroll{padding:0 12px 16px}.storm-year table{min-width:600px}.sd-article-actions{gap:15px}.sd-article-photo img{aspect-ratio:1.3}}
.brand>.custom-brand{display:block;width:180px;height:auto}.footer-logo>.custom-brand{width:260px;max-width:100%;height:auto}.sd-body-photo img{height:auto}.sd-hero-call a{display:inline-flex;align-items:center;min-height:44px}.sd-hero h1{max-width:19ch}.sd-wide-photo img,.sd-article-photo img,.ks-blog-grid article>img{height:auto}.sd-wide-photo img{max-height:340px}.sd-body-photo{align-self:center}
.sd-svc-go{max-width:180px}
.sd-h1-city{white-space:nowrap}.header-actions{flex-direction:row;gap:16px}.header-phone{font-size:14px}.header-inner{min-height:84px}.sd-article-collection{display:flex;gap:24px;font:600 13px var(--mono);color:var(--teal);margin-bottom:25px}.sd-article-collection a{text-decoration:underline;text-underline-offset:4px}
.sd-decision.dark figcaption{color:#d5e2df}.sd-cell-label{display:none}.storm-year[open] .storm-expand{transform:rotate(45deg)}
@media(max-width:560px){.brand>.custom-brand{width:148px}.footer-logo>.custom-brand{width:240px}.header-inner{gap:8px}.header-phone{font-size:11px}.menu-toggle{padding:10px 8px}.sd-hero h1{max-width:17ch}}
@media(max-width:360px){.brand>.custom-brand{width:138px}.header-actions{flex-basis:100%;justify-content:center}.header-phone{font-size:14px;min-height:33px;display:flex;align-items:center}.header-inner{padding-block:10px;row-gap:5px}.menu-toggle{margin-left:auto}html{scroll-padding-top:135px}}
@media(max-width:560px){.header-actions{gap:0}.header-phone{font-size:11px}.storm-year table{min-width:0}.storm-year thead{display:none}.storm-year tbody,.storm-year tr,.storm-year th,.storm-year td{display:block;width:100%}.storm-year tbody tr{margin-top:15px;border:1px solid var(--line)}.storm-year tbody th{background:var(--cool);border:0;font-size:17px}.storm-year td{border:0;border-top:1px solid var(--line);padding:14px;font-size:14px;overflow-wrap:anywhere}.storm-year td::before{content:attr(data-label);display:block;font-weight:700;font-size:12px;color:var(--teal);margin-bottom:5px}.storm-year td a{text-decoration:underline;text-underline-offset:3px}}
@media(max-width:560px){.sd-table-scroll table{min-width:0}.sd-table-scroll thead{display:none}.sd-table-scroll tbody,.sd-table-scroll tr,.sd-table-scroll th,.sd-table-scroll td{display:block;width:100%}.sd-table-scroll tbody tr{border:1px solid var(--line);margin-bottom:15px}.sd-table-scroll tbody th{background:var(--cool);border:0;font-size:16px;padding:17px}.sd-table-scroll td{border:0;border-top:1px solid var(--line);padding:17px;font-size:16px;line-height:1.7}.sd-cell-label{display:block;font-size:12px;font-weight:700;color:var(--teal);margin-bottom:6px}.sd-table-scroll{overflow:visible}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Every family reserves the visible verification footprint, including previews. */
.lead-form .turnstile-slot {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 65px;
  margin: 4px 0;
  line-height: 1.35;
}
.lead-form .turnstile-slot[data-turnstile-size="compact"] { min-height: 140px; }
.lead-form .turnstile-slot:not([data-turnstile-sitekey]) {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
  border-radius: 4px;
}
.lead-form .turnstile-slot:not([data-turnstile-sitekey])::before {
  content: "Security verification";
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  opacity: .75;
}
