@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/inter-400.ttf") format("truetype")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/inter-500.ttf") format("truetype")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/inter-600.ttf") format("truetype")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/inter-700.ttf") format("truetype")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/barlow-condensed-500.ttf") format("truetype")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/barlow-condensed-600.ttf") format("truetype")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/barlow-condensed-700.ttf") format("truetype")}

/* Direct approved renderer stylesheet, source CSS unchanged except header scope. */

/* ============================================================================
   TOKEN ALIASES — map the family's semantic dispatch names onto the emitter's slots.
   ============================================================================ */
:root{
  --amber:var(--pine); --amber-dk:var(--pine-dk); --amber-soft:var(--pine-lt);
  --amber-rgb:var(--pine-rgb,240,138,36);
  --amber-h:color-mix(in srgb,var(--amber) 86%,#000);   /* button hover — a touch darker amber */
  --char:var(--charcoal); --char2:var(--char2);
  --ink:var(--ink); --muted:var(--muted);
  --grey:color-mix(in srgb,var(--ink) 72%,#fff);         /* mid text on light */
  --grey2:var(--muted);
  --fog:var(--cream); --surface:#ffffff;
  --cool:var(--sand); --line:var(--sand-dk);
  --line-dk:rgba(255,255,255,.1);                        /* hairline on the dark charcoal grounds */
  --on-dark:#eef1f4; --on-dark-mut:#aab1b9;              /* off-white text on charcoal grounds */
  --disp:var(--font-display); --sans:var(--font-body);
  --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(--fog);line-height:1.6;-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(--disp);font-weight:600;line-height:1.05;letter-spacing:.004em;text-transform:uppercase;color:var(--ink)}
p{line-height:1.6}
.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}
.sr-anchor{position:absolute;left:0;top:-90px;width:1px;height:1px}
.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(--amber);color:var(--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 — Inter, amber, tracked (the mock's exact eyebrow); a short amber rule leads it */
.sr-eyebrow{font:700 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--amber-dk);display:inline-flex;align-items:center;gap:11px}
.sr-eyebrow::before{content:"";width:24px;height:3px;background:var(--amber)}
.sr-eyebrow.on-dark{color:var(--amber)}
.sr-eyebrow.on-dark::before{background:var(--amber)}
.sr-center{justify-content:center}

/* live "Line open" status marker (timeless — a line that gets answered, never a current storm) */
@keyframes sr-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}
.sr-live{display:inline-flex;align-items:center;gap:9px;font:700 12.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--amber-dk)}
.sr-live.on-dark{color:var(--amber)}
.sr-live .dot{width:11px;height:11px;border-radius:50%;background:var(--amber);animation:sr-pulse 1.6s ease-in-out infinite;flex:none}

/* CSS photo placeholders — charcoal base, dispatch mono-ish label */
.sr-ph{position:relative;background:linear-gradient(150deg,var(--char2),#16181c);overflow:hidden;min-height:100%}
.sr-ph::after{content:attr(data-l);position:absolute;left:14px;bottom:12px;font:700 9px/1.3 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.5);z-index:2}
.sr-ph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:40px 40px}
.sr-ph.deep{background:linear-gradient(150deg,var(--char2),#101215)}

/* real-image auto-tint layer — image never edited; SOFTENED tints (homes/crew read friendly) */
.sr-vimg{position:relative;background-size:cover;background-position:center;background-repeat:no-repeat;min-height:100%;overflow:hidden}
.sr-vimg::after{content:"";position:absolute;inset:0;pointer-events:none}
.sr-vimg.tint-dark::after{background:linear-gradient(180deg,rgba(20,23,26,.32),rgba(20,23,26,.7))}
.sr-vimg.tint-brand::after{background:linear-gradient(120deg,rgba(34,36,40,.78),rgba(var(--amber-rgb),.24))}
.sr-vimg.tint-side::after{background:linear-gradient(180deg,rgba(20,23,26,0) 55%,rgba(20,23,26,.42)),linear-gradient(95deg,rgba(20,23,26,.94),rgba(20,23,26,.78) 55%,rgba(20,23,26,.6))}
.sr-vimg.tint-warm::after{background:linear-gradient(180deg,rgba(255,255,255,0),rgba(34,36,40,.12))}
.sr-vimg[data-l]::before{content:attr(data-l);position:absolute;left:14px;bottom:12px;z-index:2;font:700 9px/1.3 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.5)}

/* buttons */
.btn,.sr-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 14px/1 var(--sans);letter-spacing:.02em;padding:15px 26px;cursor:pointer;transition:transform .14s ease,background .14s ease,color .14s ease,border-color .14s ease;border:2px solid transparent}
.sr-btn:hover{transform:translateY(-2px)}
.sr-btn-amber,.btn-primary{background:var(--amber);color:var(--ink)}
.sr-btn-amber:hover,.btn-primary:hover{background:var(--amber-h)}
.sr-btn-ghost{border-color:rgba(255,255,255,.34);color:#fff}
.sr-btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.sr-btn-out{border-color:var(--char);color:var(--ink)}
.sr-btn-out:hover{background:var(--char);color:#fff}
.sr-btn-lg{padding:17px 30px;font-size:15px}
.sr-btn svg{width:18px;height:18px}

/* big amber tap-to-call button (the family's loud CTA) */
.sr-tap{display:inline-flex;align-items:center;gap:14px;background:var(--amber);color:var(--ink);font-family:var(--disp);font-weight:700;font-size:29px;letter-spacing:.01em;padding:16px 30px 16px 24px;text-transform:uppercase;transition:transform .14s ease,background .14s ease;white-space:nowrap}
.sr-tap:hover{transform:translateY(-2px);background:var(--amber-h)}
.sr-tap .ic{width:46px;height:46px;background:var(--ink);display:grid;place-items:center;flex:none}
.sr-tap .ic svg{width:24px;height:24px;color:var(--amber)}
.sr-tap .t{display:flex;flex-direction:column;line-height:1;text-align:left}
.sr-tap .t small{font:700 11px/1 var(--sans);letter-spacing:.14em;color:rgba(20,16,0,.66);margin-bottom:6px;text-transform:uppercase}
.sr-tap.sr-tap-sm{font-size:23px;padding:13px 22px 13px 18px}
.sr-tap.sr-tap-sm .ic{width:40px;height:40px}

section{position:relative}
.sr-svc,.sr-tracker,.sr-board,.sr-sig3,.sr-proof,.sr-proof3,.sr-cov,.sr-specs,.sr-proc,.sr-scope,.sr-signs,.sr-context,.sr-costband,.sr-cmatrix,.sr-matsec,.sr-compare,.sr-calc,.sr-hoods,.sr-prof,.sr-overview,.sr-standards,.sr-contact,.sr-localmap,.sr-faq,.sr-stormnote{padding:84px 0}
/* Alex deep-read 2026-07-22: no one-word widows — headings split into even lines, leads avoid orphans. */
h1,h2,h3{text-wrap:balance}
.sr-head p,.sr-lead,.sr-final p,.sr-cta3 p{text-wrap:pretty}
.sr-head{max-width:680px}
.sr-head h2{font-size:42px;margin-top:14px;letter-spacing:.005em;color:var(--ink)}
.sr-head p{color:var(--grey2);font:400 17px/1.55 var(--sans);margin-top:14px;text-transform:none}
.sr-head-center{margin:0 auto;text-align:center}
.sr-head-center .sr-eyebrow{justify-content:center}
.sr-head-center p{margin-left:auto;margin-right:auto}
/* heads on charcoal bands */
.sr-storm .sr-head h2,.sr-citystorm .sr-head h2,.sr-ctrack .sr-head h2{color:#fff}
.sr-storm .sr-head p,.sr-citystorm .sr-head p,.sr-ctrack .sr-head p{color:var(--on-dark-mut)}

/* shared amber diamond marker (context/storm-note/landmark lists) */
.sr-stormnote .di,.sr-marklist .di{width:10px;height:10px;background:var(--amber);transform:rotate(45deg);flex:none}

/* ============================================================================
   HEADER / NAV — cool-white sticky bar (own taxonomy). The shared header.php emits
   <header><div class="nav"><a class="logo">… + rr_sr_render_nav().
   ============================================================================ */
.site-header{position:sticky;top:0;z-index:40;background:rgba(246,247,249,.96);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-bottom:1px solid var(--line)}
.site-header .nav{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:var(--wrap);margin:0 auto;padding:13px 30px}
.site-header .logo{display:inline-flex;align-items:center;flex:none}
/* brand lockup (parts/logo.php) — restyle the shared lockup to the dispatch idiom */
.brandlock{display:inline-flex;align-items:center;gap:12px}
.bl-foot{align-items:center} /* F16 armed light-variant lockup (fills carry the repaint; rule keeps css-coverage honest, SD pattern) */
.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(--disp);font-weight:700;font-size:23px;letter-spacing:.01em;text-transform:uppercase;color:var(--ink)}
.brandlock .bl-tag{font:700 9px/1 var(--sans);letter-spacing:.16em;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(--disp);font-weight:700;font-size:23px;letter-spacing:.01em;text-transform:uppercase;color:var(--ink)}
.brandlock.bl-mark-left{flex-direction:row}
.brandlock.bl-wm-caps .bl-name{text-transform:uppercase}
.brandlock.bl-wm-italic .bl-name{font-style:italic}

.sr-nav.nav-links{display:flex;gap:26px;font:600 15px/1 var(--sans);align-items:center}
.sr-nav.nav-links>a,.sr-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}
.sr-nav.nav-links>a:hover,.sr-nav .nav-top:hover{border-color:var(--amber);color:var(--amber-dk)}
.sr-nav .nav-item.has-drop{position:relative}
.sr-nav .nav-caret{transition:transform .15s}
.sr-nav .nav-drop{position:absolute;top:calc(100% + 6px);left:0;min-width:252px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--amber);box-shadow:0 18px 44px -20px rgba(34,36,40,.4);padding:8px 0;display:none;flex-direction:column;z-index:50} /* SR dossier-tab idiom (de-SD, Alex round-2) */
.sr-nav .nav-drop a{padding:9px 16px}
.sr-nav .nav-drop a:hover{background:var(--amber-soft);box-shadow:inset 3px 0 0 var(--amber)}
/* HOVER BRIDGE: an invisible strip across the trigger->menu gap so the dropdown never vanishes as the
   cursor travels down into the items (operator bug). 18px comfortably covers the header padding gap. */
.sr-nav .nav-drop::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:18px;background:transparent}
.sr-nav .nav-item.has-drop:hover .nav-drop,.sr-nav .nav-item.has-drop:focus-within .nav-drop,.sr-nav .nav-item.has-drop.open .nav-drop{display:flex}
.sr-nav .nav-drop a{font:600 13.5px/1.3 var(--sans);color:var(--ink);padding:10px 12px;border-bottom:0;text-transform:none}
.sr-nav .nav-drop a:hover{background:var(--amber-soft);color:var(--amber-dk)}

.sr-navcta{display:flex;align-items:center;gap:16px}
.sr-navnum{font:700 15px/1 var(--sans);color:var(--char);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.sr-navnum svg{width:15px;height:15px;color:var(--amber-dk)}
.sr-navnum:hover{color:var(--amber-dk)}
.nav-cta .num{white-space:nowrap}
.sr-navbtn{padding:12px 20px}
.nav-toggle{display:none;background:transparent;border:0;color:var(--char);cursor:pointer;padding:4px}

main{display:block}

/* ============================================================================
   HERO — v1 solid-charcoal billboard / v2 full-bleed photo + form / v4 billboard + ministrip + form.
   Every hero is a charcoal band; the next section is light (no-adjacent-dark). Form-bearing.
   ============================================================================ */
.sr-hero{position:relative;color:#fff;overflow:hidden;background:var(--char)}
.sr-hero .wrap{position:relative;z-index:2}
.sr-hero-bg{position:absolute;inset:0;z-index:0}
.sr-hero-bg .sr-vimg,.sr-hero-bg .sr-ph{position:absolute;inset:0;min-height:0}
.sr-alert{display:inline-flex;align-items:center;gap:11px;margin-bottom:22px;flex-wrap:wrap}
.sr-topline{display:block;text-align:center;font:700 12.5px/1.5 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--amber);margin:0 0 16px;text-wrap:balance}
.sr-topline-under{margin:20px 0 0;max-width:46ch;text-align:center;white-space:nowrap} /* ONE LINE always (Alex): never wraps */
.sr-prof-top{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.sr-ff-wide{margin-top:34px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--amber);padding:22px 24px}
.sr-ff-wide .sr-ff-grid{grid-template-columns:repeat(3,1fr)}
.sr-checklist .mk-sign svg{width:12px;height:12px;color:var(--amber-dk)}
.sr-alert .sr-live .dot{width:9px;height:9px}
.sr-alert .sub{font:500 12.5px/1.3 var(--sans);color:var(--on-dark-mut);text-transform:none}
.sr-alert .sub::before{content:"·";margin-right:9px;color:#6b7178}
.sr-hero h1{font-size:52px;max-width:24ch;letter-spacing:.004em;color:#fff;text-transform:uppercase;text-wrap:balance;font-family:var(--disp);font-weight:600;line-height:1.04}
.sr-hero h1 em{color:var(--amber);font-style:italic;letter-spacing:.01em} /* italic city accent (Alex 2026-07-24: "fancy italicized" pop) */
.sr-lead{font:500 18px/1.5 var(--sans);color:#cbd1d8;max-width:50ch;margin:22px 0 30px;text-transform:none}
.sr-hero .sr-lead b{color:#fff;font-weight:700}
.sr-cta-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.sr-hero-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
/* small SECONDARY call link on the dark hero (keeps the form/estimate as the primary action) */
.sr-callrow{display:inline-flex;align-items:center;gap:9px;margin-top:20px;font:600 15px/1.3 var(--sans);color:#cbd1d8;text-transform:none;flex-wrap:wrap}
.sr-cta-row .sr-callrow{margin-top:0}
.sr-callrow .lb{color:var(--on-dark-mut);font-weight:500}
.sr-callrow a{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:600;font-size:20px;letter-spacing:.01em;color:var(--amber);text-transform:uppercase}
.sr-callrow a svg{width:17px;height:17px;color:var(--amber)}
.sr-callrow a:hover{color:#fff}
.sr-answer{font:600 14px/1.4 var(--sans);color:#cbd1d8;display:flex;align-items:center;gap:9px;text-transform:none;margin-top:22px}
.sr-answer svg{width:18px;height:18px;color:var(--amber);flex:none}
.sr-baseline{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;background:var(--amber)}

/* v1 — solid-charcoal billboard alert */
.sr-heroV1{padding:54px 0 58px}
/* F110 (Alex 2026-07-22): accent slashes — diagonal palette-accent strokes lift the flat charcoal fields on
   the hero + CTA close (steel-blue on storm-steel, amber on storm-amber: the strokes ride --amber-rgb so
   every palette stays on-identity). Subtle by design; content sits above (z1). */
.sr-heroV4,.sr-final{position:relative;overflow:hidden}
/* F118: layer stack — house photo (z0, heavily washed) → charcoal scrim (::before z1) → slashes (::after z2) → content (z3) */
.sr-heroV4 .sr-hero-bg{position:absolute;inset:0;z-index:0}
.sr-heroV4 .sr-hero-bg .sr-vimg{position:absolute;inset:0;min-height:0}
.sr-heroV4::after,.sr-final::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 0 58%,rgba(var(--amber-rgb),.13) 58% 61.5%,transparent 61.5% 67%,rgba(var(--amber-rgb),.09) 67% 69.5%,transparent 69.5% 76%,rgba(var(--amber-rgb),.06) 76% 77.8%,transparent 77.8%)}
.sr-heroV4 .wrap,.sr-final .wrap{position:relative;z-index:3}
.sr-heroV1::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(120% 90% at 82% 0%,rgba(var(--amber-rgb),.12),transparent 55%),linear-gradient(180deg,#2a2d32,#1d2024)}

/* v2 — full-bleed photo, copy + tap left, full inline lead form right.
   2026-07-10 live-review rebalance: the H1 is the billboard (bigger + heavier, Barlow Condensed 700 is
   loaded), the copy column gets more width, and the vertical rhythm tightens so the band reads composed
   rather than a tall stack around the form. */
.sr-heroV2{padding:40px 0 46px}
.sr-heroV2 .sr-hero-bg .sr-vimg.tint-side::after,.sr-heroV2 .sr-hero-bg .sr-vimg::after{background:linear-gradient(180deg,rgba(20,23,26,0) 55%,rgba(20,23,26,.42)),linear-gradient(95deg,rgba(20,23,26,.94),rgba(20,23,26,.78) 55%,rgba(20,23,26,.6))}
.sr-heroV2 .sr-hero-grid{display:grid;grid-template-columns:1.16fr .84fr;gap:56px;align-items:center}
.sr-heroV2 h1{font-size:56px;font-weight:700;line-height:1.01}
.sr-heroV2 .sr-alert{margin-bottom:16px}
.sr-heroV2 .sr-lead{margin:18px 0 0;max-width:46ch}
.sr-heroV2 .sr-callrow{margin-top:22px}
.sr-heroV2 .sr-bigform{padding:26px 26px 24px}
.sr-bigform h3{margin:0 0 16px}
.sr-bigform form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sr-bigform form .row{display:contents}
.sr-bigform form label:not(.ef-check){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sr-bigform form > div:has(select),.sr-bigform form > div:has(textarea){grid-column:1/-1}
.sr-bigform form > div:has(input[name="name"]),.sr-bigform form > div:has(input[type="email"]){grid-column:1/-1} /* F115a (SR-ROUND-2 FORM item, audit-2 find UNCLOSED anywhere): the bare Name div sat in col 1 of the 2-col grid with DEAD SPACE beside it (email same); phone+zip keep the paired row */
.sr-bigform form .ef-check,.sr-bigform form .lf-turnstile,.sr-bigform form .cf-turnstile,.sr-bigform form button,.sr-bigform form .fineprint{grid-column:1/-1}
.sr-bigform form .fineprint{margin:2px 0 0;text-align:center;max-width:none}
.sr-heroV2 .sr-bigform h3{font-size:22px;margin:0 0 16px} /* air between title and first input (Alex round-2b) */

/* v4 — billboard + dispatch ministrip left, full inline lead form right */
.sr-heroV4{padding:0}
.sr-heroV4::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(110% 90% at 92% 8%,rgba(var(--amber-rgb),.12),transparent 55%),linear-gradient(180deg,rgba(42,45,50,.91),rgba(29,32,36,.96))} /* F118b: Alex final call — "a bit darker" (.86-.93 → .91-.96) */ /* F118 fix: the v4 base was OPAQUE charcoal at z0 — later in the sheet it overrode the scrim AND sat under the photo (Alex: "clearly just the picture"). ONE definition now: translucent scrim + the amber radial, z1 over the photo. */
.sr-heroV4 .sr-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.sr-heroV4 .sr-hero-copy{padding:70px 0}
.sr-btn-ghost{border-color:rgba(255,255,255,.55);color:#fff} /* dark-hero secondary (phone-active state) */
.sr-btn-ghost:hover{border-color:#fff}
.sr-btn-oamber{border-color:var(--amber-dk);color:var(--amber-dk)} /* amber-outline (active-state secondary CTA) */
.sr-btn-oamber:hover{background:var(--amber-dk);color:#fff}
.sr-hero-ask{font:500 16px/1.5 var(--sans);color:#e6e9ec;margin:16px 0 0;max-width:40ch;text-transform:none}
.sr-hero-brand{display:inline-flex;align-items:center;gap:10px;font:700 13px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:18px}
.sr-hero-brand::before{content:"";width:26px;height:2px;background:var(--amber)}
.sr-seccta{margin-top:26px}
.sr-seccta .sr-btn svg{margin-left:2px}
.sr-svc-all{margin-top:30px;text-align:center}
.sr-svc-all .sr-btn svg{margin-left:2px}
.sr-heroV4 h1{font-size:57px;max-width:16ch} /* left-column rebalance (Alex 2026-07-24): short lead needs a bigger headline to carry the column */
.sr-heroV4 .sr-lead{font-size:20px;max-width:38ch;margin:24px 0 0}
.sr-hero-cta{margin:30px 0 26px}
.sr-heroV4 .sr-topline-under{margin:26px 0 0;text-align:left;font-size:12px;color:#9aa1a9} /* breathing room under the CTA sentence (Alex 2026-07-24) */
.sr-heroV4 .sr-formcol{padding:46px 0}
.sr-ministrip{display:flex;gap:0;margin-top:30px;border:1px solid var(--line-dk)}
.sr-ministrip .c{flex:1;padding:16px 18px;border-right:1px solid var(--line-dk)}
.sr-ministrip .c:last-child{border-right:0}
.sr-ministrip .c b{display:block;font:700 13px/1.1 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--amber)}
.sr-ministrip .c span{font:500 12px/1.3 var(--sans);color:var(--on-dark-mut);margin-top:5px;display:block;text-transform:none}
.sr-heroV4 .sr-tap{margin-top:8px}

/* ============================================================================
   THE BIG INTAKE FORM (.sr-bigform wrapping rr_lead_form) — white card, amber top rule.
   ============================================================================ */
.sr-bigform{background:var(--surface);color:var(--ink);border-top:5px solid var(--amber);padding:30px 30px 28px}
.sr-bigform h3{font-size:24px;color:var(--ink);margin:0 0 16px}
.sr-bf-x{font:500 13.5px/1.4 var(--sans);color:var(--grey2);text-transform:none;margin:8px 0 20px}
.sr-form .est-form,.sr-form form{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.sr-form .row,.sr-form .f.row{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sr-form .f,.sr-form>form>div{min-width:0}
.sr-form label{display:block;font:700 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);margin-bottom:7px}
.sr-form label.ef-check{grid-column:1 / -1;display:flex;align-items:flex-start;gap:11px;font:500 13.5px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer;margin:0}
.sr-form input,.sr-form select,.sr-form textarea{width:100%;background:var(--fog);border:1px solid var(--line);color:var(--ink);font:500 14px/1.3 var(--sans);padding:12px 13px;font-family:var(--sans)}
.sr-form input::placeholder,.sr-form textarea::placeholder{color:#9aa1a9}
.sr-form input:focus,.sr-form select:focus,.sr-form textarea:focus{outline:2px solid var(--amber);outline-offset:1px;background:#fff;border-color:var(--amber)}
.sr-form select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--amber-dk) 50%),linear-gradient(135deg,var(--amber-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}
.sr-form textarea{resize:vertical;min-height:80px;line-height:1.5}
/* the notes field (the only textarea) spans the full form width, per operator */
.sr-form .est-form > div:has(textarea),.sr-form form > div:has(textarea){grid-column:1 / -1}
.sr-form .ef-check input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--amber-dk);padding:0}
.sr-form .lf-opt{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.sr-form button[type=submit],.sr-form .btn-primary{grid-column:1 / -1;width:100%;background:var(--amber);color:var(--ink);border:2px solid transparent;font:700 15px/1 var(--sans);letter-spacing:.01em;padding:16px 24px;cursor:pointer;transition:transform .14s ease,background .14s ease;margin-top:2px;text-transform:uppercase;font-family:var(--disp)}
.sr-form button[type=submit]:hover,.sr-form .btn-primary:hover{background:var(--amber-h);transform:translateY(-2px)}
.sr-form .fineprint,.sr-form .form-consent{grid-column:1 / -1;font:400 11.5px/1.5 var(--sans);color:var(--grey2);margin:0;text-transform:none;text-align:center;max-width:none}
.sr-form .lf-hp{display:none}

/* ============================================================================
   STATUS BAND (softened light reassurance strip)
   ============================================================================ */
.sr-status{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sr-status .wrap{display:flex;align-items:stretch;flex-wrap:wrap;gap:0;padding:0 30px}
.sr-status .cell{display:flex;align-items:center;gap:12px;padding:20px 28px;flex:1 1 auto;border-right:1px solid var(--line)}
.sr-status .cell:last-child{border-right:0}
.sr-status .cell .ix{width:36px;height:36px;background:var(--amber-soft);display:grid;place-items:center;flex:none}
.sr-status .cell .ix svg{width:18px;height:18px;color:var(--amber-dk)}
.sr-status .cell .tx{display:flex;flex-direction:column;line-height:1.2}
.sr-status .cell .tx b{font:700 13.5px/1.1 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.sr-status .cell .tx span{font:500 12px/1.2 var(--sans);color:var(--grey2);margin-top:4px}
.sr-status .cell.open .tx b{color:var(--amber-dk)}

/* ============================================================================
   SERVICES — v1 light action tiles / v2 photo-backed cards + hub.
   ============================================================================ */
.sr-svc{background:var(--surface)}
.sr-svc-tiles{background:var(--fog)}
.sr-act-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px}
.sr-act-grid.sr-act-hub{grid-template-columns:repeat(3,1fr)}
.sr-act{position:relative;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:26px 22px 22px;min-height:172px;display:flex;flex-direction:column;gap:14px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.sr-act:hover{transform:translateY(-4px);box-shadow:0 16px 30px -22px rgba(34,36,40,.5);border-color:var(--amber)}
.sr-act .ic{width:42px;height:42px;display:grid;place-items:center;color:var(--amber-dk);background:var(--amber-soft);flex:none}
.sr-act .ic svg{width:26px;height:26px}
.sr-act .lab{font-family:var(--disp);font-weight:600;font-size:19px;color:var(--ink);text-transform:uppercase;line-height:1.06;flex:1}
.sr-act .lab span{display:block;font:500 12.5px/1.4 var(--sans);color:var(--grey2);text-transform:none;margin-top:8px;font-weight:400}
.sr-act-link{font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-dk);display:inline-flex;align-items:center;gap:7px;margin-top:auto}
.sr-act-link svg{width:14px;height:14px;color:var(--amber-dk)}

/* v2 — photo-backed service cards */
.sr-svc-photo{background:var(--surface)}
.sr-svc-pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px}
.sr-actp{position:relative;color:#fff;min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;overflow:hidden;transition:transform .15s ease}
.sr-vimg-card{position:relative;overflow:hidden}
.sr-actp:hover{transform:translateY(-4px)}
.sr-actp-ph{position:absolute;inset:0;z-index:0}
.sr-actp-ph .sr-vimg,.sr-actp-ph .sr-ph{position:absolute;inset:0;min-height:0}
.sr-actp-ph .sr-vimg.tint-dark::after{background:linear-gradient(165deg,rgba(20,23,26,.42),rgba(var(--amber-rgb),.30) 60%,rgba(20,23,26,.58))} /* deep-review 2026-07-23: slight site-accent hue on service-tile photos for text readability (FM reads blue via its palette var) */
.sr-actp::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,23,26,.16) 0%,rgba(20,23,26,.36) 45%,rgba(20,23,26,.68) 100%)} /* F99 (Alex 2026-07-22): photo tiles carried NO scrim — white text washed out on light imagery; charcoal-ink gradient, firm behind the text block, slight up top */
.sr-actp .sr-badge{position:absolute;top:14px;right:14px;z-index:3;width:36px;height:36px;background:var(--amber);display:grid;place-items:center}
.sr-actp .sr-badge svg{width:18px;height:18px;color:var(--ink)}
.sr-actp-bd{position:relative;z-index:3;display:flex;flex-direction:column}
.sr-actp-bd .lab{font-family:var(--disp);font-weight:600;font-size:21px;color:#fff;text-transform:uppercase;line-height:1.05}
.sr-actp-bd .sub{font:600 12.5px/1.4 var(--sans);color:#cfd4da;text-transform:none;margin-top:8px}
.sr-actp-bd .go{margin-top:14px;font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber);display:inline-flex;align-items:center;gap:7px}
.sr-actp-bd .go::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber)}

.sr-svc-all{margin-top:34px}
.sr-svc-all a{display:inline-flex;align-items:center;gap:8px;font:700 13px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--amber-dk);padding-bottom:6px;border-bottom:2px solid var(--amber);transition:color .15s,border-color .15s}
.sr-svc-all a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.sr-svc-all a svg{width:15px;height:15px}

/* ============================================================================
   RESPONSE TRACKER (the signature) — v1 horizontal amber-noded / v3 numbered nodes over photo.
   ============================================================================ */
.sr-tracker{background:var(--fog)}
.sr-track{position:relative;margin-top:50px;display:grid;grid-template-columns:repeat(4,1fr)}
/* the connector spans evenly from the first node center to the last (nodes sit at 12.5/37.5/62.5/87.5%) */
.sr-track::before{content:"";position:absolute;left:12.5%;right:12.5%;top:21px;height:4px;background:var(--amber);z-index:0}
.sr-track .node{position:relative;z-index:2;text-align:center;padding:0 12px}
/* every node circle is identical (filled amber), including the final "secured" node (.done is a no-op now) */
.sr-track .node .dot,.sr-track .node .dot.done{width:46px;height:46px;border-radius:50%;background:var(--amber);border:4px solid var(--amber);display:grid;place-items:center;margin:0 auto 18px}
.sr-track .node .dot svg{width:21px;height:21px;color:var(--ink)}
.sr-track .node h3{font-size:21px;color:var(--ink)}
.sr-track .node .step{font:700 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--amber-dk);display:block;margin-bottom:7px}
.sr-track .node .time{font:600 14.5px/1.4 var(--sans);color:var(--grey);margin-top:8px;text-transform:none}
.sr-track .node .time b{color:var(--ink)}
.sr-track-note{text-align:center;margin-top:38px;font:500 14px/1.5 var(--sans);color:var(--grey2);text-transform:none}
.sr-track-note.on-dark{color:var(--on-dark-mut)}

/* tracker v3 — numbered nodes over a storm photo (charcoal band) */
.sr-ctrack{position:relative;padding:84px 0;background:var(--char);color:#fff}
.sr-ctrack-bg{position:absolute;inset:0;z-index:0}
.sr-ctrack-bg .sr-vimg,.sr-ctrack-bg .sr-ph{position:absolute;inset:0;min-height:0}
.sr-ctrack-bg .sr-vimg::after{background:linear-gradient(180deg,rgba(20,23,26,.82),rgba(20,23,26,.9))}
.sr-ctrack .wrap{position:relative;z-index:2}
.sr-cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:46px}
.sr-cnode{background:var(--char2);border:1px solid var(--line-dk);border-top:4px solid var(--amber);padding:26px 22px;position:relative}
.sr-cnode .n{font-family:var(--disp);font-weight:700;font-size:48px;color:var(--amber);line-height:.9;margin-bottom:10px}
.sr-cnode .step{font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-mut);display:block;margin:14px 0 6px}
.sr-cnode h3{font-size:22px;color:#fff}
.sr-cnode p{font:500 13.5px/1.45 var(--sans);color:var(--on-dark-mut);text-transform:none;margin-top:8px}
/* if the ctrack would stack a second dark band, render it light */
.sr-ctrack.sr-alt{background:var(--fog);color:var(--ink)}
.sr-ctrack.sr-alt .sr-head h2{color:var(--ink)}
.sr-ctrack.sr-alt .sr-head p,.sr-ctrack.sr-alt .sr-track-note{color:var(--grey2)}
.sr-ctrack.sr-alt .sr-cnode{background:var(--surface);border-color:var(--line);border-top-color:var(--amber)}
.sr-ctrack.sr-alt .sr-cnode .n{color:var(--amber-dk)}
.sr-ctrack.sr-alt .sr-cnode .step{color:var(--amber-dk)}
.sr-ctrack.sr-alt .sr-cnode h3{color:var(--ink)}
.sr-ctrack.sr-alt .sr-cnode p{color:var(--grey2)}

/* ============================================================================
   SIGNATURE — v1 dispatch status console + triage grid / v3 live ticker + triage cards.
   ============================================================================ */
.sr-board{background:var(--fog);color:var(--ink)}
.sr-board .wrap{max-width:calc(var(--wrap) + 160px)} /* deep-review 2026-07-23: widen the how-a-job-runs section — the console read as two thin strips */
.sr-console{margin-top:42px;border:1px solid var(--line);background:var(--surface)}
.sr-console .bar{display:flex;align-items:center;gap:14px;padding:15px 22px;border-bottom:1px solid var(--line);background:var(--char);color:#fff;flex-wrap:wrap}
.sr-console .bar .sr-live{color:var(--amber)}
.sr-console .bar .tk{margin-left:auto;font:600 12.5px/1.4 var(--sans);color:#cbd1d8;text-transform:none}
.sr-console .bar .tk b{color:#fff}
.sr-console .rows{display:grid;grid-template-columns:repeat(4,1fr)}
.sr-console .r{padding:32px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.sr-console .r:nth-child(4n){border-right:0}
.sr-console .r:nth-last-child(-n+4){border-bottom:0}
.sr-console .r .k{font:700 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--grey2)}
.sr-console .r .v{font-family:var(--disp);font-weight:600;font-size:28px;color:var(--amber-dk);margin-top:10px;line-height:1}
.sr-console .r .v.white{color:var(--ink)}
.sr-console .r .s{font:500 12.5px/1.45 var(--sans);color:var(--grey2);margin-top:6px;text-transform:none}
/* labelled divider so the "how a job runs" console + the "signs worth a look" grid read as two intentional parts */
.sr-board-split{display:flex;align-items:center;gap:16px;margin-top:44px}
.sr-board-split::before,.sr-board-split::after{content:"";height:1px;background:var(--line);flex:1}
.sr-split-lab{font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--grey2);flex:none}
.sr-triage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}
.sr-tile{display:flex;align-items:center;gap:16px;min-height:88px;background:var(--surface);border:1px solid var(--line);padding:22px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.sr-tile:hover{transform:translateY(-4px);border-color:var(--amber);box-shadow:0 16px 30px -22px rgba(34,36,40,.5)}
.sr-tile .ic{width:44px;height:44px;display:grid;place-items:center;background:var(--amber-soft);flex:none}
.sr-tile .ic svg{width:22px;height:22px;color:var(--amber-dk)}
.sr-tile .nm{font-family:var(--disp);font-weight:600;font-size:18px;line-height:1.08;text-transform:uppercase;color:var(--ink)}
.sr-tile .ds{display:block;font:400 13.5px/1.5 var(--sans);color:var(--grey2);text-transform:none;margin-top:6px}
.sr-tile .call{font:700 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--amber-dk);display:inline-flex;align-items:center;gap:7px;margin-top:8px}
.sr-tile .call::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber)}
.sr-board-foot{margin-top:30px;text-align:center;font:500 15px/1.55 var(--sans);color:var(--grey);text-transform:none}
.sr-board-foot b{color:var(--ink)}

/* signature v3 — live ticker + roomy triage cards */
.sr-sig3{background:var(--fog)}
.sr-ticker{margin-top:40px;background:var(--char);color:#fff;display:flex;align-items:center;gap:18px;padding:14px 22px;flex-wrap:wrap}
.sr-ticker .sr-live{color:var(--ink);background:var(--amber);padding:0 14px;height:34px;display:inline-flex;align-items:center;flex:none}
.sr-ticker .msg{flex:1;min-width:260px}
.sr-ticker .sr-live .dot{background:var(--ink)}
.sr-ticker .msg{font:600 14px/1.4 var(--sans);color:#cfd4da;text-transform:none}
.sr-ticker .msg b{color:#fff}
.sr-triage3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.sr-t3{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--amber);padding:24px 22px;display:flex;flex-direction:column;gap:14px;transition:transform .15s ease,box-shadow .15s ease}
.sr-t3:hover{transform:translateY(-4px);box-shadow:0 16px 30px -20px rgba(0,0,0,.4)}
.sr-t3 .ic{width:46px;height:46px;display:grid;place-items:center;background:var(--char);flex:none}
.sr-t3 .ic svg{width:24px;height:24px;color:var(--amber)}
.sr-t3 .nm{font-family:var(--disp);font-weight:600;font-size:21px;color:var(--ink);text-transform:uppercase;line-height:1.05}
.sr-t3 .ds{font:400 13.5px/1.5 var(--sans);color:var(--grey2);text-transform:none}
.sr-t3 .call{margin-top:auto;font:700 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--amber-dk);display:inline-flex;align-items:center;gap:8px}
.sr-t3 .call svg{width:15px;height:15px;color:var(--amber-dk)}

/* ============================================================================
   PROOF — v1 "what fast means" + fillable quote / v3 speed promises + photo proof tile.
   ============================================================================ */
.sr-proof{background:var(--cool)}
.sr-proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:stretch}
.sr-proof-copy h2{font-size:38px;margin-top:14px;color:var(--ink)}
.sr-points{display:grid;gap:16px;margin-top:32px}
.sr-points .pt{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);padding:18px 20px}
.sr-points .pt .ic{width:44px;height:44px;display:grid;place-items:center;background:var(--amber-soft);flex:none}
.sr-points .pt .ic svg{width:20px;height:20px;color:var(--amber-dk)}
.sr-points .pt b{font:700 15px/1.3 var(--sans);display:block;color:var(--ink)}
.sr-points .pt span{font:400 13.5px/1.5 var(--sans);color:var(--grey2);text-transform:none}
.sr-quote{background:var(--char);color:#fff;padding:38px 36px;position:relative;display:flex;flex-direction:column;justify-content:center}
.sr-quote .qm{font-family:var(--disp);font-size:60px;color:var(--amber);line-height:.5;display:block}
.sr-quote blockquote{font:500 21px/1.45 var(--sans);color:#eef1f4;margin-top:18px;text-transform:none}
.sr-quote cite{display:block;margin-top:22px;font:700 14px/1.5 var(--sans);font-style:normal;color:#fff;text-transform:none}
.sr-slot{font-style:normal;color:var(--amber)}
.sr-quote cite.sr-slot{color:var(--amber)}

/* proof v3 */
.sr-proof3{background:var(--cool)}
.sr-proof3-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:stretch;margin-top:30px}
.sr-promise{display:grid;gap:14px}
.sr-promise .pr{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:var(--surface);border:1px solid var(--line);padding:18px 20px;transition:transform .15s ease,box-shadow .15s ease}
.sr-promise .pr:hover{transform:translateY(-2px);box-shadow:0 14px 26px -18px rgba(0,0,0,.4)}
.sr-promise .pr .k{font-family:var(--disp);font-weight:700;font-size:19px;color:var(--ink);line-height:1;width:148px;min-width:148px;background:var(--amber);text-align:center;padding:0 8px;height:56px;display:inline-flex;align-items:center;justify-content:center;text-transform:uppercase} /* equal-size promise chips (Alex round-2) */
.sr-promise .pr b{font:700 15px/1.3 var(--sans);color:var(--ink);display:block}
.sr-promise .pr span{font:400 13.5px/1.5 var(--sans);color:var(--grey2);text-transform:none}
.sr-photoproof{position:relative;min-height:380px;display:flex;flex-direction:column;justify-content:flex-end;padding:30px;color:#fff;overflow:hidden}
.sr-photoproof-bg{position:absolute;inset:0;z-index:0}
.sr-photoproof-bg .sr-vimg,.sr-photoproof-bg .sr-ph{position:absolute;inset:0;min-height:0}
.sr-photoproof::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--amber);z-index:3}
.sr-photoproof .cap{position:relative;z-index:3}
.sr-photoproof .cap .sr-live{margin-bottom:12px}
.sr-photoproof .cap blockquote{font:500 18px/1.45 var(--sans);text-transform:none}
.sr-photoproof .cap cite{display:block;margin-top:14px;font:700 13px/1.4 var(--sans);font-style:normal;text-transform:none}

/* ============================================================================
   COMMERCIAL TEASER (home breadth callout toward the commercial lead priority).
   ============================================================================ */
.sr-cteaser{background:var(--cool);padding:84px 0}
.sr-cteaser-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.sr-cteaser-copy h2{font-size:36px;margin-top:14px;color:var(--ink)}
.sr-cteaser-copy p{color:var(--grey2);font:400 16.5px/1.6 var(--sans);margin-top:16px;max-width:52ch;text-transform:none}
.sr-cteaser-chips{list-style:none;display:grid;gap:10px;margin:24px 0 30px}
.sr-cteaser-chips li{display:flex;align-items:center;gap:12px;font:600 14.5px/1.35 var(--sans);color:var(--ink);text-transform:none}
.sr-cteaser-chips .mk{width:26px;height:26px;display:grid;place-items:center;background:var(--amber-soft);flex:none}
.sr-cteaser-chips .mk svg{width:15px;height:15px;color:var(--amber-dk)}
.sr-cteaser-copy .sr-btn-lg svg{width:18px;height:18px;margin-left:2px}
.sr-cteaser-art{position:relative;min-height:340px;overflow:hidden}
.sr-cteaser-art .sr-vimg,.sr-cteaser-art .sr-ph{position:absolute;inset:0;min-height:0}
.sr-cteaser-art::before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--amber);z-index:3}

/* ============================================================================
   COVERAGE MAP (fresh SR utility) + local landmarks map + neighborhoods map.
   ============================================================================ */
.sr-cov{background:var(--surface)}
.sr-cov-grid,.sr-localmap-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center}
.sr-cov-copy h2,.sr-localmap-copy h2{font-size:38px;margin-top:14px;color:var(--ink)}
.sr-cov-copy p,.sr-localmap-copy p{color:var(--grey2);font:400 16.5px/1.55 var(--sans);margin-top:14px;max-width:44ch;text-transform:none}
.sr-cov-legend{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:24px}
.sr-cov-legend .lg{display:inline-flex;align-items:center;gap:9px;font:600 12.5px/1 var(--sans);color:var(--grey);text-transform:none}
.sr-cov-legend .lg i{width:13px;height:13px;border-radius:50%;background:var(--amber);flex:none}
.sr-cov-legend .lg.b i{background:transparent;border:2px solid var(--amber)}
.sr-cov-towns{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.sr-cov-towns a,.sr-cov-towns span{font:600 12.5px/1 var(--sans);color:var(--ink);background:var(--fog);border:1px solid var(--line);padding:9px 13px;text-transform:none;transition:background .14s,color .14s,border-color .14s}
.sr-cov-towns a:hover{background:var(--amber-soft);color:var(--amber-dk);border-color:var(--amber)}
.sr-cov-map,.sr-localmap .sr-cov-map,.sr-hoods .sr-cov-map{position:relative;min-height:380px;border:1px solid var(--line);overflow:hidden;background:var(--char)}
.sr-cov-tag{position:absolute;top:14px;left:14px;z-index:4;display:inline-flex;align-items:center;gap:8px;background:var(--char);color:#fff;font:700 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:9px 13px}
.sr-cov-tag .sr-live{color:var(--amber)}
.sr-cov-frame{position:relative;height:100%;min-height:380px}
.sr-cov-frame iframe{width:100%;height:100%;min-height:380px;border:0;display:block;filter:grayscale(.25) contrast(1.05)}
/* the shared static-map component's "Open in Google Maps" link had NO rule in this family — it fell
   through to a{color:inherit} (near-black ink) on the dark map-frame bar: contrast 1.165, unreadable
   (invisible-text fleet sweep 2026-08-03; absence-of-rule, so no CSS diff ever showed it). Every
   sibling family styles this link as a button — same treatment in this family's accent: */
.rr-staticmap-link{position:absolute;left:14px;bottom:14px;z-index:5;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;font:600 13px/1 var(--font-body,var(--body,sans-serif));color:#13171c;background:var(--amber);border-radius:6px;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.22);transition:background .15s}
.rr-staticmap-link:hover{background:var(--amber-dk)}
.rr-staticmap-link:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.sr-cov-map .sr-vimg,.sr-cov-map .sr-ph{position:absolute;inset:0;min-height:380px}
.sr-cov-pin{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);z-index:4;font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--amber);padding:8px 14px}

/* local landmarks list (area page) */
.sr-localmap{background:var(--fog)}
.sr-marklist{list-style:none;margin-top:26px;display:grid;gap:0;border-top:1px solid var(--line)}
.sr-marklist li{display:flex;align-items:flex-start;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line)}
.sr-marklist li .di{margin-top:5px}
.sr-marklist li .tx{font:400 15.5px/1.55 var(--sans);color:var(--ink);text-transform:none}
.sr-marklist li .tx .mk{font:700 12px/1.55 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--amber-dk);margin-right:4px}

/* ============================================================================
   SPECS — local-data amber-numeral plates (fresh SR) + city-facts + rate table.
   ============================================================================ */
.sr-specs{background:var(--fog)}
.sr-cityfacts{background:var(--surface)}
.sr-plates{display:grid;grid-template-columns:repeat(var(--sr-cols,4),1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px}
.sr-plate{background:var(--surface);padding:24px 22px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.sr-plate .n{font-family:var(--disp);font-weight:700;font-size:38px;color:var(--amber-dk);line-height:1;word-break:break-word}
.sr-plate .lab{display:block;margin-top:11px;font:500 12.5px/1.4 var(--sans);color:var(--grey2);text-transform:none}
.sr-specs-src{margin-top:16px;font:400 11.5px/1.5 var(--sans);color:var(--grey2);text-transform:none}
.sr-specrates{margin-top:40px;max-width:760px}
.sr-specrates h3{font-size:26px;color:var(--ink)}
.sr-specrates p{font:400 15.5px/1.6 var(--sans);color:var(--grey2);margin:12px 0 18px;text-transform:none}
.sr-ratetable{width:100%;border-collapse:collapse}
.sr-ratetable tr{border-bottom:1px solid var(--line)}
.sr-ratetable tr:first-child{border-top:1px solid var(--line)}
.sr-ratetable td{padding:15px 0;vertical-align:baseline}
.sr-ratetable td b{display:block;font:700 16px/1.3 var(--sans);color:var(--ink)}
.sr-ratetable td span{display:block;font:400 13px/1.4 var(--sans);color:var(--grey2);margin-top:3px;text-transform:none}
.sr-ratetable td.v{text-align:right;font-family:var(--disp);font-weight:700;font-size:22px;color:var(--amber-dk);white-space:nowrap}
.sr-rate-disc{font:400 12.5px/1.5 var(--sans);color:var(--grey2);margin-top:14px;font-style:italic;text-transform:none}
.sr-writ-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;margin-top:4px}
.sr-writ-list li{display:flex;align-items:flex-start;gap:13px;font:500 15.5px/1.5 var(--sans);color:var(--ink);text-transform:none}
.sr-writ-list li .mk{flex:none;width:22px;height:22px;background:var(--amber-soft);color:var(--amber-dk);display:grid;place-items:center;margin-top:1px}
.sr-writ-list li .mk svg{width:13px;height:13px}

/* ============================================================================
   PROCESS — numbered step cards (ONE row on desktop).
   ============================================================================ */
.sr-proc{background:var(--surface)}
.sr-proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:46px}
.sr-proc-grid.n3{grid-template-columns:repeat(3,1fr)} /* FM sheet (deep-review 2026-07-23): 3 process boxes spread full-width, not left-packed in a 4-col grid */
.sr-pstep{background:var(--fog);border:1px solid var(--line);border-top:4px solid var(--amber);padding:26px 24px 24px}
.sr-pstep .n{font-family:var(--disp);font-weight:700;font-size:40px;color:var(--amber-dk);line-height:.9}
.sr-pstep h3{font-size:19px;color:var(--ink);margin-top:14px}
.sr-pstep p{font:400 14px/1.55 var(--sans);color:var(--grey2);margin-top:9px;text-transform:none}

/* ============================================================================
   SERVICE-DETAIL blocks (scope / signs / cost-band / context / permit) — ruled rows + checklists.
   ============================================================================ */
.sr-scope{background:var(--fog)}
.sr-signs{background:var(--surface)}
.sr-context{background:var(--fog)}
.sr-permit{background:var(--fog)}
.sr-filerows{display:grid;gap:0;margin-top:40px;border-top:1px solid var(--line)}
.sr-frow{display:grid;grid-template-columns:1fr 1.15fr;gap:24px;align-items:baseline;padding:18px 4px;border-bottom:1px solid var(--line)}
.sr-frow dt{font:700 15.5px/1.3 var(--sans);color:var(--ink);display:flex;align-items:baseline;gap:14px;text-transform:none}
.sr-frow dt .co{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.02em;color:var(--amber-dk);flex:none}
.sr-frow dd{font:400 14.5px/1.6 var(--sans);color:var(--grey2);text-transform:none}
.sr-frow dd a{color:var(--amber-dk);text-decoration:underline}
.sr-file-note{font:400 12.5px/1.6 var(--sans);color:var(--grey2);margin-top:16px;font-style:italic;text-transform:none}
.sr-file-note a{color:var(--amber-dk);text-decoration:underline}
.sr-checklist{list-style:none;margin-top:40px;display:grid;gap:0;border-top:1px solid var(--line)}
.sr-checklist li{display:flex;align-items:flex-start;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line)}
.sr-checklist li .mk{flex:none;width:22px;height:22px;display:grid;place-items:center;color:var(--amber-dk);margin-top:1px} /* chip bg removed (Alex round-2b: bare marker, no tan box) */
.sr-checklist li .mk svg{width:13px;height:13px}
.sr-checklist li .tx{font:400 16px/1.55 var(--sans);color:var(--ink);text-transform:none}

.sr-costband{background:var(--fog)}
.sr-costband-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.sr-costband-grid .copy h2{font-size:30px;color:var(--ink);margin-top:13px}
.sr-costband-grid .copy p{font:400 16px/1.65 var(--sans);color:var(--grey2);margin:13px 0 22px;max-width:48ch;text-transform:none}
.sr-costband-grid .sr-checklist{margin-top:0}

/* ============================================================================
   COMMERCIAL matrix (SR cards).
   ============================================================================ */
.sr-cmatrix{background:var(--surface)}
.sr-cmatrix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:46px}
.sr-csys{background:var(--fog);border:1px solid var(--line);border-top:4px solid var(--amber);padding:26px 24px}
.sr-csys-tag{font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-dk)}
.sr-csys h3{font-size:21px;color:var(--ink);margin-top:12px}
.sr-csys p{font:400 14.5px/1.6 var(--sans);color:var(--grey2);margin-top:9px;text-transform:none}
.sr-csys-more{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font:700 12px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--amber-dk)}
.sr-csys-more svg{width:14px;height:14px}
.sr-csys-more:hover{color:var(--ink)}

/* ============================================================================
   MATERIALS catalog (spec cards; manufacturer wall = TEXT names).
   ============================================================================ */
.sr-matsec{background:var(--fog)}
.sr-matgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:46px}
.sr-matcard{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--amber);padding:24px 22px}
.sr-matphoto{height:150px;position:relative;overflow:hidden;margin:-24px -22px 16px;border-bottom:1px solid var(--line)}
.sr-matphoto .sr-vimg{position:absolute;inset:0}
.sr-matcard-tag{font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-dk)}
.sr-matcard h3{font-size:19px;color:var(--ink);margin-top:12px}
.sr-matcard h3 a:hover{color:var(--amber-dk)}
.sr-matcard p{font:400 13.5px/1.55 var(--sans);color:var(--grey2);margin:8px 0 14px;text-transform:none}
.sr-matspecs{display:grid;gap:0;border-top:1px solid var(--line)}
.sr-matspecs .r{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.sr-matspecs .k{font:600 12px/1.3 var(--sans);letter-spacing:.02em;color:var(--grey2);text-transform:uppercase}
.sr-matspecs .v{font:600 13px/1.3 var(--sans);color:var(--ink);text-align:right}
.sr-makerwall{margin-top:36px;border-top:1px solid var(--line);padding-top:24px;display:flex;align-items:center;gap:16px 22px;flex-wrap:wrap}
.sr-makerwall-lab{font:700 12px/1.3 var(--sans);letter-spacing:.02em;text-transform:uppercase;color:var(--amber-dk)}
.sr-makers{display:flex;flex-wrap:wrap;gap:12px}
.sr-makers span{font-family:var(--disp);font-weight:600;font-size:16px;color:var(--ink);border:1px solid var(--line);padding:11px 16px;text-transform:uppercase}

/* ============================================================================
   COMPARISON table.
   ============================================================================ */
.sr-compare{background:var(--surface)}
.sr-ctable-wrap{margin-top:46px;overflow:hidden;border:1px solid var(--line)}
.sr-ctable{width:100%;border-collapse:collapse;font-size:15px}
.sr-ctable th,.sr-ctable td{padding:18px 22px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;text-transform:none}
.sr-ctable thead th{font:700 13px/1.3 var(--sans);background:var(--fog);color:var(--ink);text-transform:uppercase;letter-spacing:.03em}
.sr-ctable thead th.us{color:var(--amber-dk)}
.sr-ctable thead th.us::before{content:"";display:inline-block;width:9px;height:9px;background:var(--amber);margin-right:8px;vertical-align:middle}
.sr-ctable td:first-child{font-weight:600;color:var(--ink);width:34%}
.sr-ctable td.you{color:var(--grey2)}
.sr-ctable td.us{color:var(--ink);background:rgba(var(--amber-rgb),.06)}
.sr-ctable tr:last-child td{border-bottom:none}
.sr-ctable td .mk{display:inline-flex;width:18px;height:18px;background:var(--amber-soft);color:var(--amber-dk);align-items:center;justify-content:center;margin-right:8px;vertical-align:middle}
/* explicit rules for engine-emitted marker/utility classes (already base-styled; listed so css-coverage is clean; layout-safe) */
.sr-ctable th.spec{color:var(--ink)}
.sr-tile-bd,.sr-cbody,.srf-where,.on-light,.sr-overview.sr-has-photo,.sr-overview.sr-region{color:inherit}
.mobar .btn-ghost{color:inherit}
.sr-ctable td .mk svg{width:11px;height:11px}

/* ============================================================================
   STORM LEDGER + city-storm read-out (charcoal bands) + storm-note strip.
   ============================================================================ */
.sr-storm,.sr-citystorm{background:var(--char);color:var(--on-dark);padding:84px 0}
.sr-ledger{margin-top:42px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);overflow:hidden}
.sr-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:500 14px/1.4 var(--sans);align-items:center}
.sr-ledger .lrow.lh{background:rgba(0,0,0,.18);font:700 11.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.sr-ledger .lrow:last-child{border-bottom:none}
.sr-ledger .lrow .ev{color:#fff;font-weight:500}
.sr-ledger .lrow .hail{color:var(--amber);text-align:right;font-weight:700}
.sr-ledger .lrow .dt{color:rgba(238,241,244,.8)}
.sr-storm-src{margin-top:14px;font:500 12px/1.5 var(--sans);color:rgba(238,241,244,.6);text-transform:none}
.sr-storm-src a{color:var(--amber);text-decoration:underline}
.sr-readout{display:flex;flex-wrap:wrap;gap:0;border:1px solid rgba(255,255,255,.14);margin-top:30px;overflow:hidden}
.sr-readout .sl{flex:1;min-width:170px;padding:24px;border-right:1px solid rgba(255,255,255,.1)}
.sr-readout .sl:last-child{border-right:0}
.sr-readout .sl b{font-family:var(--disp);font-weight:700;font-size:40px;color:#fff;display:block;line-height:.9}
.sr-readout .sl b em{font-size:18px;font-style:normal;color:var(--amber)}
.sr-readout .sl span{font:500 12px/1.4 var(--sans);color:var(--on-dark-mut);display:block;margin-top:9px;text-transform:none}
/* the ledger / read-out flipped to a LIGHT band (no-adjacent-dark) */
.sr-storm.sr-alt,.sr-citystorm.sr-alt{background:var(--fog);color:var(--ink)}
.sr-storm.sr-alt .sr-head h2,.sr-citystorm.sr-alt .sr-head h2{color:var(--ink)}
.sr-storm.sr-alt .sr-head p,.sr-citystorm.sr-alt .sr-head p{color:var(--grey2)}
.sr-storm.sr-alt .sr-ledger{background:var(--surface);border-color:var(--line)}
.sr-storm.sr-alt .sr-ledger .lrow{border-bottom-color:var(--line)}
.sr-storm.sr-alt .sr-ledger .lrow.lh{background:var(--fog);color:var(--amber-dk)}
.sr-storm.sr-alt .sr-ledger .lrow .ev{color:var(--ink)}
.sr-storm.sr-alt .sr-ledger .lrow .dt{color:var(--grey2)}
.sr-storm.sr-alt .sr-ledger .lrow .hail{color:var(--amber-dk)}
.sr-storm.sr-alt .sr-storm-src{color:var(--grey2)}
.sr-storm.sr-alt .sr-storm-src a{color:var(--amber-dk)}
.sr-citystorm.sr-alt .sr-readout{border-color:var(--line)}
.sr-citystorm.sr-alt .sr-readout .sl{border-right-color:var(--line)}
.sr-citystorm.sr-alt .sr-readout .sl b{color:var(--ink)}
.sr-citystorm.sr-alt .sr-readout .sl b em{color:var(--amber-dk)}
.sr-citystorm.sr-alt .sr-readout .sl span{color:var(--grey2)}

.sr-stormnote{background:var(--cool);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}
.sr-stormnote .wrap{display:flex;align-items:center;gap:16px}
.sr-stormnote p{font:400 16px/1.55 var(--sans);color:var(--ink);text-transform:none}
.sr-stormnote p b{color:var(--amber-dk);font-weight:700}

/* ============================================================================
   COST CALCULATOR (SR read-out; light).
   ============================================================================ */
.sr-calc{background:var(--surface)}
.sr-calc-bd{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:46px;align-items:start}
.sr-calc-inputs{display:grid;gap:22px}
.sr-field label{display:block;font:700 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--grey2);margin-bottom:10px}
.sr-ctl{display:flex;align-items:stretch;border:1px solid var(--line);overflow:hidden;background:var(--surface)}
.sr-ctl input{flex:1;min-width:0;border:0;background:transparent;font-family:var(--disp);font-weight:700;font-size:24px;color:var(--ink);padding:14px 16px;outline:none}
.sr-ctl .unit{display:flex;align-items:center;padding:0 16px;background:var(--char);color:var(--amber);font:700 12px/1 var(--sans);letter-spacing:.14em}
.sr-seg{display:flex;border:1px solid var(--line);overflow:hidden}
.sr-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(--grey2);padding:14px 8px;cursor:pointer;transition:background .15s,color .15s}
.sr-seg button:last-child{border-right:0}
.sr-seg button.on{background:var(--char);color:var(--amber)}
.sr-readplate{background:var(--char);padding:30px 28px;position:relative;color:var(--on-dark)}
.sr-rp-lab{display:block;font:700 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--amber)}
.sr-rp-fig{margin:14px 0 22px}
.sr-rp-fig .big{font-family:var(--disp);font-weight:700;font-size:38px;color:#fff;line-height:.95}
.sr-rp-rows{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.14)}
.sr-rp-rows .r{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.sr-rp-rows .k{font:400 13px/1.4 var(--sans);color:var(--on-dark-mut);text-transform:none}
.sr-rp-rows .v{font-family:var(--disp);font-weight:600;font-size:14px;color:#fff}
.sr-rp-note{font:400 12px/1.5 var(--sans);color:var(--on-dark-mut);margin-top:16px;font-style:italic;text-transform:none}

/* ============================================================================
   NEIGHBORHOODS index + profile (fresh SR).
   ============================================================================ */
.sr-hoods{background:var(--surface)}
.sr-hood-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:start;margin-top:46px}
.sr-hood-index{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.sr-hood{display:flex;flex-direction:column;gap:5px;padding:18px 4px;border-bottom:1px solid var(--line)}
.sr-hood:nth-child(odd){border-right:1px solid var(--line);padding-right:22px}
.sr-hood:nth-child(even){padding-left:22px}
.sr-hood .name{font-family:var(--disp);font-weight:600;font-size:18px;color:var(--ink);text-transform:uppercase}
.sr-hood a.name:hover{color:var(--amber-dk)}
.sr-hood .hook{font:400 13px/1.5 var(--sans);color:var(--grey2);text-transform:none}
.sr-prof{background:var(--fog)}
.sr-prof-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start;margin-top:34px}
.sr-fastfacts{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--amber);padding:24px}
.sr-ff-tag{font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-dk)}
.sr-ff-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px} /* NO-GHOST rule (Alex, fleet law): per-cell borders, never a container-bg hairline grid — uneven counts must never render grey filler cells */
.sr-ffcell{background:var(--surface);border:1px solid var(--line);padding:16px 18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.sr-ffcell .k{font:700 11px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--amber-dk)}
.sr-ffcell .v{font:600 15.5px/1.4 var(--sans);color:var(--ink);word-break:break-word;text-transform:none}
.sr-prof-shot{min-height:340px;position:relative;overflow:hidden;border:1px solid var(--line)}
.sr-prof-shot .sr-vimg,.sr-prof-shot .sr-ph{position:absolute;inset:0;min-height:0}

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

/* ============================================================================
   STANDARDS (about) — honest first-party promises (checked rows).
   ============================================================================ */
.sr-standards{background:var(--surface)}
.sr-standards-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}
.sr-standards-copy h2{font-size:32px;color:var(--ink);margin-top:13px}
.sr-standards-copy p{font:400 16px/1.65 var(--sans);color:var(--grey2);margin-top:13px;max-width:40ch;text-transform:none}
.sr-sigrows{display:grid;gap:0;border-top:1px solid var(--line)}
.sr-sigrow{display:flex;align-items:flex-start;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.sr-sigrow:last-child{border-bottom:0}
.sr-sigrow .mk{flex:none;width:24px;height:24px;background:var(--amber-soft);color:var(--amber-dk);display:grid;place-items:center;margin-top:2px}
.sr-sigrow .mk svg{width:14px;height:14px}
.sr-sigrow b{font:700 16px/1.3 var(--sans);color:var(--ink);text-transform:none}
.sr-sigrow b span{display:block;font:400 13.5px/1.5 var(--sans);color:var(--grey2);margin-top:4px;font-weight:400}

/* ============================================================================
   CONTACT directory + form.
   ============================================================================ */
.sr-contact{background:var(--fog)}
.sr-contact-index{display:grid;gap:0;margin-top:46px;border-top:1px solid var(--line)}
.sr-crow{display:flex;gap:22px;align-items:flex-start;padding:22px 4px;border-bottom:1px solid var(--line)}
.sr-cref{font-family:var(--disp);font-weight:700;font-size:20px;color:var(--amber-dk);flex:none;padding-top:2px}
.sr-clab{display:block;font:700 11.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--grey2)}
.sr-cval{display:block;font-family:var(--disp);font-weight:600;font-size:23px;color:var(--ink);margin-top:7px;text-transform:uppercase}
a.sr-cval:hover{color:var(--amber-dk)}
.sr-csub{display:block;font:400 14px/1.55 var(--sans);color:var(--grey2);margin-top:7px;max-width:60ch;text-transform:none}
.sr-contact-form{margin-top:34px;max-width:640px}

/* ============================================================================
   FAQ (details/summary).
   ============================================================================ */
/* FAQ — RULED LEDGER, not boxed cards (Alex 2026-07-22: SR's ported FAQ was anatomy-identical to SD's
   boxed +/- rows — a cross-family fingerprint). SR motif: flat rules, display-font refs, diamond toggle
   that fills amber when open, 3px amber left-rule on the open item. Accordion mechanics unchanged. */

/* Alex 2026-07-22: service-page mid-bands ran airy — 84px stacks read as dead space between short sections. */
.sr-scope,.sr-signs,.sr-context,.sr-standards,.sr-specs{padding:60px 0}
.sr-faq{background:var(--surface)}
.sr-faq-list{margin-top:42px;max-width:840px;border-bottom:1px solid var(--line)}
.sr-qrow{border-top:1px solid var(--line)}
.sr-qrow[open]{border-left:3px solid var(--amber);background:rgba(var(--amber-rgb),.04)}
.sr-qrow summary{list-style:none;cursor:pointer;padding:21px 8px;display:flex;align-items:center;gap:16px}
.sr-qrow[open] summary{padding-left:19px}
.sr-qrow summary::-webkit-details-marker{display:none}
.sr-qrow .q-ref{flex:none;font-family:var(--disp);font-weight:700;font-size:15px;color:var(--amber-dk);width:30px}
.sr-qrow .q-t{font:600 17px/1.4 var(--sans);color:var(--ink)}
.sr-qrow .tog{margin-left:auto;flex:none;width:22px;height:22px;position:relative}
.sr-qrow .tog::before{content:"";position:absolute;inset:5px;transform:rotate(45deg);border:2px solid var(--amber-dk);transition:background .18s}
.sr-qrow[open] .tog::before{background:var(--amber-dk)}
.sr-qrow .q-a{padding:0 8px 24px 54px;font:400 16px/1.62 var(--sans);color:var(--grey2);text-transform:none}
.sr-qrow[open] .q-a{padding-left:65px}
.sr-qrow .q-a a{color:var(--amber-dk);text-decoration:underline}

/* ============================================================================
   CTA — v1 centered charcoal phone band + full form / v3 amber-washed photo band.
   ============================================================================ */
.sr-final{background:var(--char);color:#fff;text-align:center;position:relative;overflow:hidden;padding:86px 0}
.sr-final::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 120% at 50% 0%,rgba(var(--amber-rgb),.14),transparent 60%)}
.sr-final .wrap{position:relative;z-index:3} /* Alex live catch 2026-07-23: this later duplicate (z1) was WINNING the cascade over the F118b lift (z3), dropping the CTA form card UNDER the accent slashes (z2) — the stripes painted across the white form on every SR final band. One value, both rules, content above slashes. */
.sr-final .sr-eyebrow{margin-bottom:10px}
.sr-final h2{font-size:50px;color:#fff;letter-spacing:.006em}
.sr-final h2 em{color:var(--amber);font-style:normal}
.sr-final p{font:500 18px/1.5 var(--sans);color:#cbd1d8;margin:16px auto 32px;max-width:46ch;text-transform:none}
.sr-final .sr-tap{margin:0 auto}
.sr-after{margin-top:26px;display:inline-flex;align-items:center;gap:12px;font:600 14px/1.4 var(--sans);color:#cbd1d8;text-transform:none}
.sr-after .sr-live .dot{width:9px;height:9px}
.sr-after b{color:#fff}
.sr-cta-or{margin:30px auto 0;display:flex;align-items:center;gap:16px;max-width:560px;color:var(--on-dark-mut);font:700 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.sr-cta-or::before,.sr-cta-or::after{content:"";flex:1;height:1px;background:var(--line-dk)}
.sr-cta-form{max-width:560px;margin:26px auto 0;text-align:left}

/* cta v3 — amber-washed photo band */
.sr-cta3{position:relative;text-align:center;color:#fff;overflow:hidden;padding:86px 0;background:var(--char)}
.sr-cta3-bg{position:absolute;inset:0;z-index:0}
.sr-cta3-bg .sr-vimg,.sr-cta3-bg .sr-ph{position:absolute;inset:0;min-height:0}
.sr-cta3-bg .sr-vimg::after{background:linear-gradient(120deg,rgba(28,30,34,.86),rgba(var(--amber-rgb),.24))}
.sr-cta3 .wrap{position:relative;z-index:2}
.sr-cta3 .sr-live{justify-content:center;margin-bottom:18px;color:var(--amber)}
.sr-cta3 h2{font-size:48px;color:#fff}
.sr-cta3 p{font:500 17px/1.5 var(--sans);color:#eef1f4;margin:16px auto 28px;max-width:66ch;text-transform:none} /* deep-review 2026-07-23: wider CTA text box — the right-length materials CTA wrapped to 3 rows at 48ch */
.sr-cta3 .sr-tap{margin:0 auto}

/* ============================================================================
   FAMILY FOOTER — control-board masthead (parts/footer-storm-response.php, .srf-*).
   ============================================================================ */
footer.srf{background:var(--char);color:var(--on-dark-mut);border-top:4px solid var(--amber);font-family:var(--sans);padding:56px 0 30px}
footer.srf .wrap{max-width:var(--wrap);margin:0 auto;padding:0 30px}
.srf-mast{display:flex;justify-content:space-between;align-items:flex-start;gap:34px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid var(--line-dk)}
.srf-bn{max-width:44ch}
.srf-bn .logo{display:inline-flex;margin-bottom:14px}
/* footer sits on charcoal: force the shared brand lockup to its on-dark light color (the header uses --ink on white) */
.srf-bn .logo .brandlock .bl-name,.srf-bn .logo .brandlock.bl-wm-sans{color:#fff}
.srf-bn .logo .brandlock .bl-mk{color:var(--amber)}
.srf-bn .logo .brandlock .bl-tag{color:var(--on-dark-mut)}
.srf-blurb{font:400 14px/1.65 var(--sans);color:var(--on-dark-mut)}
.srf-say{max-width:34ch;text-align:right}
.srf-say .sr-live{color:var(--amber);margin-bottom:10px}
.srf-say p{font:600 15px/1.5 var(--sans);color:#fff;text-transform:none}
.srf-cols{display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;gap:34px;padding:30px 0;border-bottom:1px solid var(--line-dk)}
.srf-col h4{color:#fff;font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.srf-col ul{list-style:none;display:grid;gap:2px}
.srf-col a{display:block;font:400 14px/1.3 var(--sans);color:var(--on-dark-mut);padding:6px 0}
.srf-col a:hover{color:var(--amber)}
.srf-col li{font:400 14px/1.5 var(--sans);color:var(--on-dark-mut);padding:6px 0}
.srf-contact .srf-phone{font-family:var(--disp);font-weight:700;font-size:26px;color:#fff;display:block;margin-bottom:12px;letter-spacing:.01em}
.srf-contact .srf-phone:hover{color:var(--amber)}
.srf-copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:22px;font:500 12.5px/1.5 var(--sans);color:rgba(238,241,244,.5)}
.srf-copy a{color:rgba(238,241,244,.6)}
.srf-copy a:hover{color:var(--amber)}
.srf-legal{display:flex;gap:18px}

/* ============================================================================
   STICKY CALL BAR (family chrome; replaces the hidden shared .mobar).
   ============================================================================ */
.mobar{display:none}
/* MOBILE-ONLY chrome: a fixed bottom call-bar belongs on phones (where the header phone/CTA scroll away);
   on DESKTOP the persistent header already carries the phone + estimate CTA, so the floating bar is
   redundant and its fixed position visually collides with mid-page section headings — hide it there. */
.sr-callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--amber);color:var(--ink);box-shadow:0 -8px 24px -12px rgba(0,0,0,.5)}
.sr-callbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 30px;min-height:64px}
.sr-callbar .l{display:flex;align-items:center;gap:14px}
.sr-callbar .l .sr-live{color:var(--ink)}
.sr-callbar .l .sr-live .dot{background:var(--ink)}
.sr-callbar .l .tx{display:flex;flex-direction:column;line-height:1.15}
.sr-callbar .l .tx b{font-family:var(--disp);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.02em}
.sr-callbar .l .tx span{font:600 12px/1 var(--sans)}
.sr-cb-btn{display:inline-flex;align-items:center;gap:11px;background:var(--ink);color:var(--amber);font-family:var(--disp);font-weight:700;font-size:20px;letter-spacing:.02em;text-transform:uppercase;padding:12px 22px;transition:transform .14s ease;white-space:nowrap}
.sr-cb-btn:hover{transform:translateY(-2px)}
.sr-cb-btn svg{width:20px;height:20px;flex:none}
.sr-cb-btn .cb-t{display:flex;flex-direction:column;line-height:1;text-align:left}
.sr-cb-btn .cb-lab{font:700 9px/1 var(--sans);letter-spacing:.12em;color:rgba(240,138,36,.7);margin-bottom:4px}
.sr-cb-btn .cb-num{font-size:19px}

/* ============================================================================
   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 dispatch voice; neutralize FL-only motifs.
   ============================================================================ */
.svc-hero{background:var(--char);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(--disp);font-weight:600;font-size:clamp(30px,4vw,46px);line-height:1.06;letter-spacing:.004em;text-transform:uppercase}
.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);text-transform:none}
.svc-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.crumb,.svc-hero .crumb{font:600 12px/1.5 var(--sans);letter-spacing:.02em;color:var(--on-dark-mut);margin-bottom:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;text-transform:none}
.crumb a{color:var(--on-dark-mut)}.crumb a:hover{color:var(--amber)}
.crumb .sep,.crumb .cur,.svc-hero .crumb .cur{color:var(--amber)}
.svc-hand,.hand{font-family:var(--disp);font-style:normal;font-weight:600;color:inherit;text-transform:uppercase}
.underline-word{font-style:normal;color:var(--amber);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(--amber);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);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(--char2),#16181c);color:var(--on-dark-mut)}
.hero-photo .frame-ph-ic{color:var(--amber)}
.hero-photo .frame-ph-label{font:600 11px/1.4 var(--sans);letter-spacing:.1em}
.hero-photo .stamp{position:absolute;bottom:14px;left:14px;display:inline-flex;align-items:center;gap:9px;background:var(--amber);color:var(--ink);font:700 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:9px 13px}
.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(--disp);font-weight:600;font-size:26px;color:var(--ink);margin:30px 0 10px;letter-spacing:.004em;text-transform:uppercase}
.prose-sec h3{font-family:var(--disp);font-weight:600;font-size:19px;color:var(--ink);margin:22px 0 8px;text-transform:uppercase}
.prose-sec p,.prose-sec li{color:var(--grey2);font-size:15.5px;line-height:1.7;margin-top:10px}
.prose-sec a{color:var(--amber-dk);border-bottom:1px solid var(--amber)}
.prose-sec a:hover{border-bottom-color:var(--amber-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(--grey2);font-size:15.5px;line-height:1.7}
.legal-updated{color:var(--grey2);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(--disp);font-weight:600;font-size:32px;color:var(--ink);letter-spacing:.004em;text-transform:uppercase}
.sec-head p{color:var(--grey2);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}
  .sr-btn:hover,.sr-tap:hover,.sr-tile:hover,.sr-act:hover,.sr-actp:hover,.sr-cb-btn:hover,.sr-t3:hover,.sr-csys:hover{transform:none}
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media(max-width:980px){
  .sr-hero h1{font-size:46px}
  .sr-act-grid,.sr-svc-pgrid,.sr-cgrid,.sr-triage-grid,.sr-console .rows{grid-template-columns:repeat(2,1fr)}
  .sr-act-grid.sr-act-hub,.sr-cmatrix-grid,.sr-matgrid,.sr-proc-grid{grid-template-columns:repeat(2,1fr)}
  .sr-triage3{grid-template-columns:1fr 1fr}
  .sr-track{grid-template-columns:1fr 1fr;gap:34px 12px}
  .sr-track::before,.sr-track::after{display:none}
  .sr-plates{grid-template-columns:repeat(2,1fr)!important}
  .sr-console .r:nth-child(2n){border-right:0}
}
@media(max-width:920px){
  .head h2{font-size:32px}
  .sr-head h2{font-size:32px}
  .sr-status .wrap{flex-direction:column;align-items:stretch}
  .sr-status .cell{border-right:0;border-bottom:1px solid var(--line);padding:16px 0}
  .sr-status .cell:last-child{border-bottom:0}
  .sr-heroV2 .sr-hero-grid,.sr-heroV4 .sr-hero-grid,.sr-proof-grid,.sr-proof3-grid,.sr-cteaser-grid,.sr-cov-grid,.sr-localmap-grid,.sr-costband-grid,.sr-hood-grid,.sr-prof-grid,.sr-prof-top,.sr-overview-grid,.sr-story-grid,.sr-standards-grid,.sr-calc-bd{grid-template-columns:1fr;gap:34px}
  .sr-ff-wide .sr-ff-grid{grid-template-columns:1fr 1fr}
  .sr-topline,.sr-topline-under{font-size:10.5px;letter-spacing:.06em;white-space:nowrap}
  .sr-heroV4 h1{font-size:40px}
  .sr-heroV2 h1{font-size:46px}
  .sr-heroV2 .sr-hero-grid{gap:28px}
  .sr-heroV4 .sr-hero-copy{padding-bottom:0}
  .sr-heroV4 .sr-formcol{padding-top:6px;padding-bottom:60px}
  .sr-final h2,.sr-cta3 h2{font-size:36px}
}

/* 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}
  /* header stays ONE row on mobile: logo + Free-estimate + toggle (phone lives in the hero/footer/form) */
  .sr-navnum{display:none}
  header .nav{padding:12px 20px;flex-wrap:nowrap;position:relative}
  .sr-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(34,36,40,.4);padding:8px 0;display:none;max-height:calc(100dvh - 62px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  header .nav-toggle[aria-expanded="true"] ~ .sr-nav.nav-links,
  .sr-nav.nav-links.open{display:flex}
  .sr-nav.nav-links>a,.sr-nav .nav-top{padding:13px 20px;border-bottom:1px solid var(--line);width:100%}
  .sr-nav .nav-item.has-drop{position:static}
  .sr-nav .nav-drop{position:static;display:none;border:0;box-shadow:none;padding:0 0 8px;background:var(--fog);min-width:0;width:100%}
  .sr-nav .nav-drop::before{display:none}
  /* on mobile ONLY .open controls the submenu — kill the desktop hover/focus-within open (a tapped Services
     keeps :focus-within, which is why it "wouldn't close"). Belt to the shared-JS blur root-cause fix. */
  .sr-nav .nav-item.has-drop:hover .nav-drop,.sr-nav .nav-item.has-drop:focus-within .nav-drop{display:none}
  .sr-nav .nav-item.has-drop.open .nav-drop{display:flex}
  .sr-nav .nav-drop a{padding:11px 36px}
  .sr-navcta{order:3;margin-left:auto}
}
@media(max-width:480px){
  /* narrow phones: drop the redundant header "Free estimate" button (the hero form + sticky call-bar
     already carry the CTA) so the logo + hamburger never overflow the row (mobile-qa 14px fix) */
  .sr-navcta .sr-navbtn{display:none}
}
@media(max-width:760px){
  .wrap{padding:0 20px}
  /* tighten section vertical padding on phones (kills the 144-168px dead inter-section gaps flagged by mobile-qa) */
  .sr-svc,.sr-tracker,.sr-board,.sr-sig3,.sr-proof,.sr-proof3,.sr-cteaser,.sr-cov,.sr-specs,.sr-proc,.sr-scope,.sr-signs,.sr-context,.sr-costband,.sr-cmatrix,.sr-matsec,.sr-compare,.sr-calc,.sr-hoods,.sr-prof,.sr-overview,.sr-standards,.sr-contact,.sr-localmap,.sr-faq,.sr-ctrack,.sr-storm,.sr-citystorm,.sr-final,.sr-cta3{padding:52px 0}
  /* the specs→faq boundary alone reads 136px empty at 390px (52+52 padding + specs' trailing source-note
     margin) — mobile-qa SOFT on /services/. Trim ONLY that adjacency; .sr-specs elsewhere is untouched. */
  .sr-specs+.sr-faq{padding-top:20px}
  .sr-hero h1{font-size:36px}
  .sr-heroV2 h1{font-size:42px}
  .sr-heroV1{padding:54px 0 60px}
  .sr-heroV2{padding:46px 0 56px}
  .sr-lead{font-size:16px}
  .sr-tap{font-size:24px;padding:14px 22px 14px 18px}
  .sr-tap .ic{width:40px;height:40px}
  .sr-cta-row{gap:16px}
  .sr-act-grid,.sr-act-grid.sr-act-hub,.sr-svc-pgrid,.sr-cgrid,.sr-triage-grid,.sr-triage3,.sr-console .rows,.sr-cmatrix-grid,.sr-matgrid,.sr-proc-grid,.sr-form .est-form,.sr-form form,.sr-writ-list,.sr-hood-index,.sr-ff-grid{grid-template-columns:1fr}
  .sr-form .row,.sr-form .f.row{grid-template-columns:1fr}
  .sr-console .r{border-right:0}
  .sr-track{grid-template-columns:1fr}
  .sr-final h2,.sr-cta3 h2{font-size:30px}
  .sr-hood:nth-child(odd){border-right:0;padding-right:4px}
  .sr-hood:nth-child(even){padding-left:4px}
  .sr-ledger .lrow{grid-template-columns:1fr 110px;gap:6px 12px}
  .sr-ledger .lrow .ev{grid-column:1/-1;order:3}
  .sr-ledger .lrow.lh .ev{display:none}
  .sr-readout{flex-direction:column}
  .sr-readout .sl{border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}
  .sr-prof-shot,.sr-overview .art{order:-1;min-height:280px}
  .sr-head h2,.sr-cov-copy h2,.sr-localmap-copy h2,.sr-proof-copy h2{font-size:28px}
  .srf-mast{flex-direction:column}
  .srf-say{text-align:left}
  .srf-cols{grid-template-columns:1fr 1fr}
  .sr-callbar .wrap{padding:9px 16px}
  .sr-callbar .l .tx{display:none}
  .sr-cb-btn{font-size:18px;padding:11px 18px}
  .sr-cb-btn .cb-lab{display:none}
}
@media(max-width:430px){
  .sr-hero h1{font-size:32px}
  .sr-heroV2 h1{font-size:38px}
  .sr-plates{grid-template-columns:1fr!important}
  .srf-cols{grid-template-columns:1fr}
  .sr-head h2{font-size:25px}
  .sr-rp-fig .big{font-size:30px}
  .sr-ctl input{font-size:20px}
  .sr-seg button{padding:13px 4px;font-size:11px}
  .sr-tap{font-size:21px}
  .sr-tap .t small{font-size:10px}
}

/* ============================================================================
   BLOG — MAGAZINE STACK. A full-width editorial stack: each post is a wide
   zig-zag row (a large headline + a landscape image) that ALTERNATES image-left
   and image-right down the page. Charcoal dispatch mastheads, amber accents,
   square corners per family DNA, bigger type than a card grid. The single post
   carries its OWN self-contained sr-post-hero (never .svc-hero). FAQ = a JS-free
   details toggle with a plus and minus marker.
   ============================================================================ */

/* index masthead — a bold charcoal dispatch-board headline band */
.sr-blog-masthead{background:var(--char);color:var(--on-dark);padding:60px 0 52px;border-bottom:4px solid var(--amber)}
.sr-blog-kicker{font:700 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--amber);display:inline-flex;align-items:center;gap:11px}
.sr-blog-kicker::before{content:"";width:24px;height:3px;background:var(--amber)}
.sr-blog-masthead h1{color:#fff;font-family:var(--disp);font-weight:600;font-size:clamp(34px,5.2vw,58px);line-height:1.02;letter-spacing:.01em;text-transform:uppercase;margin:16px 0 12px}
.sr-blog-masthead .lead{color:var(--on-dark-mut);font:400 18px/1.6 var(--sans);max-width:640px;text-transform:none}

/* the editorial stack — full-width zig-zag rows (image alternates left/right) */
.sr-blog-stack{display:flex;flex-direction:column;gap:64px;margin-top:52px}
.sr-blog-row{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.sr-blog-fig{display:block;overflow:hidden;background:linear-gradient(150deg,var(--char2),#16181c);align-self:stretch;min-height:264px}
.sr-blog-fig img{width:100%;height:100%;min-height:264px;object-fit:cover;transition:transform .5s ease}
.sr-blog-fig:hover img{transform:scale(1.04)}
.sr-blog-row:nth-child(even) .sr-blog-fig{order:2}   /* zig-zag: figure swaps to the RIGHT on even rows */
.sr-blog-copy{min-width:0}
.sr-blog-meta{display:inline-block;font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--amber-dk);margin-bottom:14px;border-left:3px solid var(--amber);padding-left:11px}
.sr-blog-title{font-family:var(--disp);font-weight:600;font-size:clamp(26px,3.4vw,40px);line-height:1.04;letter-spacing:.004em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.sr-blog-title a{color:inherit;transition:color .15s ease}
.sr-blog-title a:hover{color:var(--amber-dk)}
.sr-blog-excerpt{color:var(--grey2);font:400 16.5px/1.7 var(--sans);margin-bottom:20px;max-width:52ch}
.sr-blog-link{font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-dk);display:inline-flex;align-items:center;gap:9px}
.sr-blog-link span{transition:transform .2s ease}
.sr-blog-row:hover .sr-blog-link span{transform:translateX(5px)}

/* single post — self-contained charcoal title band -> lead figure -> 760px reading column -> CTA -> FAQ */
.sr-post{display:block;padding-bottom:48px} /* blog whitespace before footer (Alex round-2) */
.sr-post-hero{background:var(--char);color:#fff;padding:58px 0 50px;position:relative;overflow:hidden;border-bottom:4px solid var(--amber)}
.sr-post-hero .wrap{position:relative;z-index:2}
.sr-post-meta{display:inline-block;font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(var(--amber-rgb),.5);padding:7px 12px;margin-bottom:16px}
.sr-post-hero h1{color:#fff;font-family:var(--disp);font-weight:600;font-size:clamp(30px,4.4vw,50px);line-height:1.04;letter-spacing:.006em;text-transform:uppercase}
.sr-post-fig{max-width:900px;margin:30px auto 0}
.sr-post-fig img{width:100%;max-height:460px;object-fit:cover;box-shadow:0 26px 50px -30px rgba(34,36,40,.6)}
.sr-post-body{max-width:760px;margin:0 auto;padding:52px 30px 8px}
.sr-post-lead{font:400 19px/1.66 var(--sans);color:var(--ink);margin-bottom:6px;text-transform:none}
.sr-post-body h2{font-family:var(--disp);font-weight:600;font-size:27px;color:var(--ink);margin:36px 0 10px;letter-spacing:.004em;text-transform:uppercase}
.sr-post-body p{color:var(--grey2);font:400 16px/1.75 var(--sans);margin-top:12px;text-transform:none}
.sr-post-body a:not(.btn){color:var(--amber-dk);border-bottom:1px solid var(--amber)}
.sr-post-body a:not(.btn):hover{border-bottom-color:var(--amber-dk)}
.sr-post-bullets{list-style:none;margin:16px 0 4px;display:grid;gap:11px}
.sr-post-steps{margin:18px 0 22px;padding-left:24px}.sr-post-steps li{margin:10px 0;line-height:1.6} /* F115c */
.sr-post-cta-lead{margin:26px 0 10px;font-weight:600} /* F115b brand+trust line above the CTA */
.sr-post-bullets li{color:var(--ink);font:400 16px/1.65 var(--sans);padding-left:26px;position:relative;text-transform:none}
.sr-post-bullets li::before{content:"";position:absolute;left:3px;top:10px;width:9px;height:9px;background:var(--amber);transform:rotate(45deg)}
.sr-post-cta{margin:30px 0 6px;text-align:center} /* C9 centered blog-CTA (SR gap, reviewer 2026-07-22 —
   producer flagged, correctly did not cross the seat boundary) */
.sr-post-faqs{padding:84px 0}
.sr-post-faqs .wrap{max-width:820px}
.sr-post-faqs h2{font-family:var(--disp);font-weight:600;font-size:30px;color:var(--ink);letter-spacing:.004em;text-transform:uppercase;text-align:center;margin-bottom:22px}
.sr-post-faqs>.wrap>p{text-align:center;color:var(--grey2);font:400 16px/1.6 var(--sans);margin:-10px auto 24px;max-width:60ch;text-transform:none}
/* post FAQ — same SR ruled-ledger anatomy as the page FAQ (diamond toggle, amber left-rule when open) */
.sr-post-faq{border-top:1px solid var(--line)}
.sr-post-faq:last-of-type{border-bottom:1px solid var(--line)}
.sr-post-faq summary{list-style:none;cursor:pointer;padding:19px 52px 19px 8px;font:600 17px/1.4 var(--sans);color:var(--ink);position:relative}
.sr-post-faq summary::-webkit-details-marker{display:none}
.sr-post-faq summary::after{content:"";position:absolute;right:22px;top:50%;width:10px;height:10px;margin-top:-5px;transform:rotate(45deg);border:2px solid var(--amber-dk);transition:background .18s}
.sr-post-faq[open] summary::after{background:var(--amber-dk)}
.sr-post-faq[open]{border-left:3px solid var(--amber);background:rgba(var(--amber-rgb),.04)}
.sr-post-faq[open] summary{padding-left:19px}
.sr-post-faq>div{padding:0 22px 20px 19px;color:var(--grey2);font:400 16px/1.62 var(--sans);text-transform:none}
.sr-post-faq>div a{color:var(--amber-dk);text-decoration:underline}

@media(max-width:860px){
  .sr-blog-stack{gap:48px}
  .sr-blog-row{gap:32px}
  .sr-post-body{padding:40px 22px 8px}
  .sr-post-faqs{padding:56px 0}
}
@media(max-width:560px){
  /* zig-zag rows collapse to ONE stacked column — image ABOVE text on every row */
  .sr-blog-stack{gap:40px}
  .sr-blog-row{grid-template-columns:1fr;gap:20px}
  .sr-blog-row:nth-child(even) .sr-blog-fig{order:0}
  .sr-blog-fig,.sr-blog-fig img{min-height:200px}
}

/* Current Studio controls inside the approved Storm Response HTML/CSS family.
   Source shapes: original PHP layouts + accepted Claremore full form/call bar.
   Authored section order, prose, imagery, maps and claims remain site-owned. */
[hidden]{display:none!important}
html{scroll-padding-top:110px}
body.sr-runtime{padding-bottom:78px}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #007c9d;outline-offset:4px}
button:disabled{opacity:.65;cursor:wait}
::selection{background:var(--amber);color:var(--ink)}
input,textarea{caret-color:var(--ink)}
.sr-vimg>img{width:100%;height:100%;object-fit:cover;display:block}
.sr-hero-bg .sr-vimg>img,.sr-actp-ph .sr-vimg>img,.sr-cta3-bg .sr-vimg>img,.sr-ctrack-bg .sr-vimg>img,.sr-photoproof-bg .sr-vimg>img{position:absolute;inset:0}
.sr-hero-grid>*,.sr-overview-grid>*,.sr-proof3-grid>*,.sr-directory-grid>*{min-width:0}
.sr-head h2{margin-top:0;line-height:1.12}
.sr-head p{line-height:1.75}
.sr-seccta{margin-top:27px}
main p a:not(.sr-btn),main li a:not(.sr-btn){text-decoration:underline;text-underline-offset:3px}
figure{margin:0}
figcaption{font:400 13px/1.6 var(--sans);color:var(--grey2);margin-top:12px}
.sr-runtime .sr-overview .art{border:0;overflow:visible;min-height:0}
.sr-runtime .sr-overview .art .sr-vimg{position:relative;aspect-ratio:4/3;min-height:0}
.sr-overview .art img{aspect-ratio:4/3;position:static}
.sr-story-shot{border:0}
.sr-story-shot .sr-vimg{position:relative;min-height:360px;height:100%}
.sr-story-shot .sr-vimg>img{position:absolute;inset:0}
.sr-overview h2{font-size:42px;line-height:1.12;margin-bottom:24px}
.sr-overview .copy p{font-size:17px;line-height:1.8}
p+p{margin-top:18px}
.brandlock .brand-mark-approved{width:44px;height:44px;flex:none}
.site-header .nav{gap:18px}
.sr-nav.nav-links{gap:16px;font-size:13px}
.sr-navcta{gap:13px}
.sr-navcta .sr-btn{padding:12px 16px;font-size:12px;white-space:nowrap}
.sr-navnum{border:1px solid var(--amber);padding:11px 12px;font:700 19px/1.2 var(--disp)}
.sr-nav .nav-group{position:relative}
.nav-parent{display:flex;align-items:center;gap:1px}
.nav-disclosure{display:grid;place-items:center;width:28px;height:34px;background:transparent;border:0;color:inherit}
.nav-disclosure span{display:block;font-size:0;width:7px;height:7px;border-right:1.5px solid;border-bottom:1.5px solid;transform:translateY(-2px) rotate(45deg)}
.nav-disclosure[aria-expanded=true] span{transform:translateY(2px) rotate(225deg)}
.nav-panel{position:absolute;top:calc(100% + 13px);left:0;width:285px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--amber);box-shadow:0 12px 30px #0003;padding:10px;z-index:80}
.nav-panel:before{content:'';position:absolute;left:0;right:0;bottom:100%;height:16px}
.nav-panel a{display:block;line-height:1.4;padding:10px 12px;font-size:14px}
.nav-panel a:hover{background:var(--cool)}
.menu-toggle{display:none;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);color:inherit;padding:10px 12px;font-size:14px}
.menu-toggle svg{width:17px;height:17px}
.sr-chrome-approved-dark .site-header{background:var(--char);color:#fff;border-color:#ffffff1a}
.sr-chrome-approved-dark .brandlock .bl-name{color:#fff}
.sr-chrome-approved-dark .brandlock .bl-tag,.sr-chrome-approved-dark .sr-navnum{color:var(--amber)}
.sr-chrome-approved-dark .sr-nav.nav-links>a,.sr-chrome-approved-dark .nav-parent>a{color:#e4e7eb}
.sr-chrome-approved-dark .nav-panel{background:var(--char);border-color:#4b5159}
.sr-chrome-approved-dark .nav-panel a:hover{background:#3a3f45}
/* Accepted Claremore dark chrome uses an in-flow menu on the header surface.
   Do not inherit the original light header's narrow-screen white overlay. */
@media(max-width:1200px){.sr-chrome-approved-dark .sr-nav.nav-links{position:static;background:transparent;border-bottom:0;box-shadow:none}}
.sr-heroV1 .sr-hero-bg{opacity:.12}
.sr-heroV1 .sr-hero-grid{display:grid;grid-template-columns:1.16fr .84fr;gap:56px;align-items:center}
.sr-heroV1 .sr-hero-copy,.sr-heroV1 .sr-formcol{position:relative;z-index:1}
.sr-heroV1 h1{font-size:56px;max-width:16ch}
.sr-hero .sr-hero-brand{display:block;font:700 12px/1.4 var(--sans);color:var(--amber);letter-spacing:.14em;text-transform:uppercase;margin-bottom:21px}
.sr-hero .sr-lead p{font:inherit;margin:0}
.sr-hero .sr-lead p+p{margin-top:14px}
.sr-hero .sr-hero-cta{margin-top:26px}
.sr-hero .sr-hero-call{font-size:18px;min-height:52px}
.sr-hero .sr-topline-under{white-space:normal;text-align:left;line-height:1.6;margin-top:23px;color:#d3d9df;max-width:46ch}
.sr-heroV2 .sr-formcol{padding:0}
.sr-heroV4 .sr-formcol{padding:40px 0}
.lead-form{padding:26px 26px 24px;background:#fff;border:0;border-top:5px solid var(--amber);color:var(--ink);box-shadow:0 22px 60px #0003;scroll-margin-top:125px}
.lead-form h2,.sr-final .lead-form h2,.sr-cta3 .lead-form h2{font:600 24px/1.2 var(--disp);margin:0 0 10px;color:var(--ink);text-align:left}
.lead-form .form-intro,.sr-final .lead-form .form-intro,.sr-cta3 .lead-form .form-intro{font:400 14px/1.6 var(--sans);color:var(--grey2);margin:0 0 18px;max-width:none;text-align:left}
.lead-form label{display:block;font-size:13px;font-weight:600;margin-bottom:12px}
.lead-form label span{font-weight:400}
.lead-form input:not([type=checkbox]),.lead-form select,.lead-form textarea{width:100%;display:block;padding:12px 13px;background:var(--fog);border:1px solid #a5adb5;color:var(--ink);font-size:15px;min-height:44px;margin-top:5px}
.lead-form textarea{resize:vertical}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.form-grid>*{min-width:0}
.button{display:inline-flex;align-items:center;justify-content:center;background:var(--amber);border:0;color:var(--ink);min-height:46px;padding:12px 20px;font-weight:700;line-height:1.3}
.lead-form .button{width:100%;font-size:14px}
.lead-form .button:hover{background:var(--amber-h)}
.lead-form .button span{margin-left:10px}
.lead-form .consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;margin:15px 0}
.lead-form .consent input{flex:none;width:17px;height:17px;margin-top:2px;accent-color:var(--amber)}
.consent a{text-decoration:underline;color:var(--ink)}
.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status,.sr-final .form-status,.sr-cta3 .form-status{font:400 13px/1.5 var(--sans);margin:12px 0 0;color:var(--ink);max-width:none}
.form-status:empty{display:none}
.turnstile-slot{display:none}
.turnstile-slot[data-turnstile-sitekey]{display:block;min-width:0;min-height:65px}
.lead-form [aria-invalid=true]{border-color:#b52222!important;outline-color:#b52222}
.field-error{font-size:13px;color:#a01c1c;margin-top:6px}
.sr-status{padding:0}
.sr-status .wrap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.sr-status .cell{padding:20px 22px}
.sr-status .cell .tx span{line-height:1.5}
.sr-act-grid,.sr-svc-pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.sr-act-copy{font-size:15px;line-height:1.65;margin-top:12px}
.sr-actp{min-height:374px;padding:26px}
.sr-actp:after{background:linear-gradient(180deg,rgba(22,24,27,0) 0%,rgba(22,24,27,.05) 28%,rgba(22,24,27,.88) 58%,#16181b 85%)}
.sr-actp-bd .lab{font-size:27px;line-height:1.16;color:#fff}
.sr-actp-bd .sub{font-size:15px;font-weight:400;line-height:1.6;color:#f3f5f7;margin-top:10px}
.sr-actp-bd .go{align-self:flex-start;margin-top:20px;background:var(--amber);color:var(--ink);border-color:var(--amber);padding:10px 12px}
.sr-actp-bd .go:before{display:none}
.sr-track,.sr-cgrid,.sr-proc-grid{list-style:none;padding-left:0}
.sr-track .time{font-size:16px;line-height:1.75;margin-top:17px}
.sr-proof-no-quote{grid-template-columns:1fr}
.sr-points h3,.sr-promise h3{font:700 17px/1.4 var(--sans);margin-bottom:9px}
.sr-points p,.sr-promise p{font-size:16px;line-height:1.75}
.sr-promise .ic{width:34px;flex:none;color:var(--amber-dk)}
.sr-photoproof{min-height:380px}
.sr-faq .sr-head{text-align:center;margin-inline:auto}
.sr-faq-list{margin-inline:auto}
.sr-qrow summary{display:flex;gap:20px;padding:23px 52px 23px 0}
.sr-qrow .q-t{font:600 25px/1.3 var(--disp)}
.sr-qrow .q-a{padding:0 38px 24px 0;font-size:17px;line-height:1.8}
.sr-qrow[open]{border-left:0}
.sr-reading,.sr-directory,.sr-resource-introduction,.sr-reading-opening,.sr-blog{padding:70px 0;background:#fff}
.sr-reading-copy,.sr-resource-introduction-copy{max-width:820px;margin:auto}
.sr-reading h2,.sr-resource-introduction h2{font-size:38px;line-height:1.15;margin-bottom:24px}
.sr-reading p,.sr-resource-introduction p{font-size:17px;line-height:1.8}
.sr-resource-summary{margin-top:28px;border-top:1px solid var(--line);padding-top:24px}
.sr-resource-summary h3{font-size:26px;margin-bottom:12px}
.sr-directory{background:var(--fog)}
.sr-directory-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:34px}
.sr-directory-grid .sr-vimg{aspect-ratio:1.8;min-height:0}
.sr-directory-grid h3{font-size:29px;margin:24px 0 16px}
.sr-directory-grid p{font-size:17px;line-height:1.7;margin-bottom:22px}
.sr-reading-opening{background:var(--fog)}
.sr-reading-opening .wrap{max-width:980px}
.sr-reading-opening h1{font-size:52px;line-height:1.1}
.sr-reading-opening p{font-size:20px;line-height:1.7;margin-top:24px}
.sr-reading-opening figure{margin-top:32px;aspect-ratio:2.2}
.sr-reading-opening img{width:100%;height:100%;object-fit:cover}
.sr-reading-opening .sr-article-meta{font-size:14px;color:var(--grey2)}
.sr-blog .sr-blog-stack{margin-top:35px}
.sr-blog-copy h3{font-size:31px;margin:13px 0 18px}
.sr-blog-copy p{font-size:17px;line-height:1.75;margin-bottom:22px}
.sr-blog-copy time{font-size:14px;color:var(--grey2)}
.sr-map-figure{max-width:1000px;margin:32px auto 0}
.sr-map-figure img{width:100%;height:auto}
.ks-calculator{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:35px;background:white;border-top:5px solid var(--amber);padding:30px}
.ks-calc-controls label{display:block;font-weight:700;font-size:14px;margin-top:20px}
.ks-calc-controls label:first-child{margin-top:0}
.ks-calc-controls input,.ks-calc-controls select{display:block;margin-top:7px;width:100%;padding:11px;border:1px solid #a5adb5;background:var(--fog);font-size:16px}
.ks-calc-help{font-size:13px;color:var(--grey2);line-height:1.6;margin-top:8px}
.ks-calc-result{align-self:center}
.ks-calc-result output{display:block;font:600 40px/1.1 var(--disp);color:var(--ink);margin:18px 0}
.ks-calc-result p{font-size:15px;line-height:1.7}
.ks-calc-result .eyebrow{color:var(--ink)}
.ks-calc-result .button{margin-top:24px}
.ks-source{font-size:13px;line-height:1.6;margin-top:20px;color:var(--grey2)}
.ks-model-method{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}
.ks-model-method summary{cursor:pointer;font-weight:700}
.ks-model-method p{font-size:14px;line-height:1.75;margin-top:16px}
.ks-model-method a{text-decoration:underline}
@media(max-width:700px){.ks-calculator{grid-template-columns:1fr;padding:22px;gap:25px}.ks-calc-result output{font-size:35px}}
.sr-close-call{margin-top:28px}
.sr-close-split{background:var(--cool);padding:70px 0}
.sr-close-split>.wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center}
.sr-close-split h2{font-size:44px;line-height:1.12}
.sr-close-split .lead-form h2{font-size:27px;line-height:1.2}
.sr-close-copy p{margin-top:22px;font-size:17px;line-height:1.75}
.sr-close-copy .sr-btn{margin-top:24px}
.srf .brandlock .bl-name{color:#fff;font-size:27px;line-height:1.15}
.srf .brandlock .bl-tag{color:var(--amber)}
.srf-col h2{font:700 12px/1.4 var(--sans);letter-spacing:.1em;color:#fff;text-transform:uppercase;margin-bottom:16px}
.srf-contact p{font-size:14px;color:#cbd1d8;margin:14px 0 20px}
.srf .sr-btn-amber{color:var(--ink)}
.srf-contact .sr-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;font:700 14px/1.3 var(--sans)}
.srf-bn>p{font-size:14px;color:#cbd1d8;margin-top:20px}
.sr-persistent-actions{position:fixed;inset:auto 0 0;z-index:60;background:var(--amber);color:var(--ink);box-shadow:0 -8px 24px -12px #0008;display:block}
.sr-persistent-actions>.wrap{display:flex;align-items:center;justify-content:space-between;padding-block:11px;gap:24px}
.sr-bar-text{display:flex;flex-direction:column}
.sr-bar-text b{font:700 18px/1.2 var(--disp);text-transform:uppercase}
.sr-bar-text span{font-size:12px}
.sr-bar-buttons{display:grid;grid-template-columns:repeat(2,240px);gap:16px;margin-left:auto}
.sr-bar-buttons a{height:48px;display:flex;align-items:center;justify-content:center;text-align:center;font:700 15px/1.2 var(--sans);padding:10px 16px;border:1px solid var(--ink)}
.sr-bar-call{background:var(--ink);color:var(--amber);white-space:nowrap}
@media(max-width:1200px){.site-header .nav{flex-wrap:wrap}.menu-toggle{display:flex;margin-left:auto}.sr-nav.nav-links{display:none;flex-basis:100%;order:3;flex-direction:column;align-items:stretch;gap:0;padding:10px 0}.sr-nav.nav-links.open{display:flex}.nav-panel{position:static;width:100%;margin:3px 0 9px;box-shadow:none}.nav-parent{justify-content:space-between}.nav-parent>a,.sr-nav.nav-links>a{padding:12px 0}.nav-disclosure{width:44px;height:44px}}
@media(max-width:920px){.sr-heroV1 .sr-hero-grid,.sr-heroV2 .sr-hero-grid,.sr-heroV4 .sr-hero-grid{grid-template-columns:1fr;gap:32px}.sr-heroV1,.sr-heroV2,.sr-heroV4{padding:40px 0 50px}.sr-heroV4 .sr-hero-copy,.sr-heroV4 .sr-formcol{padding:0}.sr-hero h1{font-size:46px}.sr-hero .sr-formcol{max-width:700px;width:100%;margin:auto}.sr-close-split>.wrap{grid-template-columns:1fr;gap:30px}.sr-act-grid,.sr-svc-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.sr-status .cell{padding:20px 12px}.sr-status .cell .tx b{font-size:12px}.sr-bar-text{display:none}.sr-bar-buttons{margin:auto}.sr-close-split .lead-form{max-width:740px;width:100%;margin:auto}}
@media(max-width:560px){body.sr-runtime{padding-bottom:72px}.wrap{padding-inline:22px}.site-header .nav{padding:12px 18px}.brandlock{gap:9px}.brandlock .brand-mark-approved{width:36px;height:36px}.brandlock .bl-name{font-size:22px}.brandlock .bl-tag{font-size:8px}.sr-navcta{display:none}.sr-heroV1,.sr-heroV2,.sr-heroV4{padding:32px 0 42px}.sr-hero h1{font-size:40px;line-height:1.06;text-wrap:initial}.sr-hero .sr-lead{font-size:17px;line-height:1.7}.sr-hero .sr-hero-call{font-size:17px}.sr-hero .sr-hero-brand{font-size:10px;margin-bottom:17px}.sr-hero .sr-topline-under{font-size:11px}.lead-form{padding:22px 19px}.lead-form input,.lead-form select,.lead-form textarea{font-size:16px!important}.form-grid{grid-template-columns:1fr;gap:0}.sr-status .wrap{display:block}.sr-status .cell{border-right:0;border-bottom:1px solid var(--line);padding:17px 0}.sr-status .cell:last-child{border-bottom:0}.sr-status .cell .tx b{font-size:13px}.sr-act-grid,.sr-svc-pgrid,.sr-directory-grid{grid-template-columns:1fr}.sr-actp{min-height:335px;padding:24px}.sr-overview h2,.sr-reading h2,.sr-resource-introduction h2{font-size:33px}.sr-overview .art{order:initial}.sr-faq .sr-qrow .q-t{font-size:24px}.sr-reading,.sr-directory,.sr-resource-introduction,.sr-reading-opening,.sr-blog,.sr-close-split{padding:52px 0}.sr-reading-opening h1{font-size:39px}.sr-reading-opening p{font-size:18px}.sr-reading-opening figure{aspect-ratio:1.5}.sr-close-split h2{font-size:36px}.sr-bar-buttons{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:12px}.sr-bar-buttons a{font-size:12px;padding:10px 8px;min-height:46px;height:46px}.sr-persistent-actions>.wrap{padding:8px 14px}.srf .brandlock .bl-name{font-size:24px}.srf-cols{grid-template-columns:1fr 1fr}.srf-contact{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Direct September 16 accepted full-form correction. Preserve these measured
   proportions over the older PHP grid and one-column mobile form. */
.sr-heroV2 .sr-hero-grid{grid-template-columns:minmax(0,1fr) minmax(460px,1fr);gap:56px;align-items:center}
.sr-heroV2 .sr-hero-copy{max-width:540px}
.lead-form.lead-form-full{border-radius:0}
.lead-form-full .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px}
.lead-form-full .form-grid.form-address-row{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}
.lead-form-full .form-grid label{min-width:0}
.lead-form-full input:not([type=checkbox]),.lead-form-full select,.lead-form-full textarea{font-size:16px;min-height:46px;border-radius:0}
.lead-form-full .button{min-height:48px;border-radius:0}
.srf .srf-phone{color:var(--amber)}
@media(max-width:920px){.sr-heroV2 .sr-hero-grid{grid-template-columns:minmax(0,1fr);gap:30px}.sr-heroV2 .lead-form-full{width:100%;max-width:640px;margin-inline:auto}.sr-heroV2 .sr-hero-copy{max-width:700px}}
@media(max-width:560px){.sr-heroV2{padding:30px 0 36px}.sr-heroV2 .sr-hero-grid{gap:26px}.lead-form.lead-form-full{padding:22px 19px}.lead-form-full .form-grid{gap:0 12px}.lead-form-full label{font-size:13px;margin-bottom:14px}.lead-form-full .consent{font-size:12px;line-height:1.65;margin:14px 0 18px}.lead-form-full input,.lead-form-full select,.lead-form-full textarea,.lead-form-full button{scroll-margin-top:120px;scroll-margin-bottom:88px}body:has(.lead-form:focus-within) .sr-persistent-actions{visibility:hidden;pointer-events:none}}
@media(max-width:359px){.lead-form-full .form-grid,.lead-form-full .form-grid.form-address-row{grid-template-columns:minmax(0,1fr)}}


/* ===== Rogers Roof Pros site-owned overrides (September 20 creative exception) ===== */
/* Rogers Roof Pros: September 20 Storm creative exception palette.
   Deep lake blue carries structure, restrained amber carries the action,
   and pale cool gray keeps sections spacious. Family CSS keeps dark ink
   text on the amber action color, so the accent stays readable. */
:root:root{
  --pine:#E9B44C;
  --pine-dk:#7A5A14;
  --pine-lt:#FBF0D6;
  --pine-rgb:233,180,76;
  --charcoal:#183C51;
  --char2:#22506B;
  --cream:#F7FAFB;
  --sand:#EDF2F4;
  --sand-dk:#D9E2E7;
  --ink:#1E2A31;
  --muted:#54666F;
  --amber-h:#F2C46A;
}
/* Sentence-case headings: the prepared direction rejects all-cap display
   labels for this site. Keep the condensed display face and firm weight. */
h1,h2,h3,.sr-form button[type=submit]{text-transform:none;letter-spacing:0}
/* Keep body measures comfortable per the prepared 60-72 character aim. */
.sr-section p{max-width:68ch}

/* Sentence case across display roles; the header wordmark keeps its lockup. */
main h1,main h2,main h3,main h4,.btn,.sr-btn,.sr-form button[type=submit],[data-hero-trust]{text-transform:none;letter-spacing:normal}

main h3.lab{text-transform:none;letter-spacing:normal}
/* Footer small print must clear WCAG AA on the deep blue ground (axe 3.83:1). */
.srf-copy,.srf-copy span{color:#B7C5CE}
/* The 3-step process variant kept three columns at phone width and overflowed. */
@media(max-width:920px){.sr-proc-grid.n3{grid-template-columns:1fr}}

/* Labels name the decision; the explanation gets the wider reading measure. */
.sr-frow{grid-template-columns:minmax(160px,.6fr) minmax(0,1.4fr)}
.sr-frow dd{font-size:16px;line-height:1.75;margin:0}
.sr-story-shot{display:flex;flex-direction:column;overflow:visible;min-height:0}
.sr-story-shot .sr-vimg{flex:1;min-height:390px;height:auto}
.sr-story-shot figcaption{padding-top:12px;font-size:13px;line-height:1.6;color:var(--muted)}
.turnstile-slot[data-turnstile-sitekey]{display:block;box-sizing:content-box;min-width:300px;min-height:65px;padding:0;border:0}
.rg-area-map{margin-top:28px}
.rg-area-map iframe{display:block;width:100%;height:380px;border:0}
.rg-area-map figcaption{font-size:13px;line-height:1.6;color:var(--muted);margin-top:10px}
@media(max-width:600px){.sr-frow{grid-template-columns:minmax(0,1fr);gap:10px;padding:22px 0}.sr-frow dt{font-size:18px}.sr-story-shot .sr-vimg{min-height:380px}.rg-area-map iframe{height:330px}}

/* The footer retains the shield mark with the light/dark brand colors reversed. */
.srf .brand-mark-approved path:first-child{fill:var(--amber)}
.srf .brand-mark-approved path+path{stroke:var(--charcoal)}

/* ===== September 22 quality revision: site-owned reading compositions =====
   Replaces the narrow single-column .sr-reading bands on service, commercial,
   area and resource bodies. Headings sit in a left column beside developed copy;
   ledgers and work sequences read beside a photograph that stays in view;
   source and limit notes get a compact subordinate treatment. Hero, closing
   CTA, forms and chrome are untouched. */
.rg-explain,.rg-beside,.rg-contrasts,.rg-sheet{padding:84px 0}
.rg-explain{background:#fff}
.rg-beside{background:var(--fog)}
.rg-contrasts{background:#fff}
.rg-explain h2,.rg-beside h2,.rg-contrasts h2,.rg-sheet h2{font-size:40px;line-height:1.12;margin:0;color:var(--ink)}
.rg-lead{max-width:720px}
.rg-lead>p{color:var(--grey2);font:400 17px/1.7 var(--sans);margin-top:16px;max-width:62ch}
.rg-lead>p+p{margin-top:12px}
.rg-lede{color:var(--grey2);font:400 17px/1.7 var(--sans);margin-top:16px;max-width:40ch}
.rg-copy p{font-size:17px;line-height:1.8;max-width:66ch}
.rg-copy p+p{margin-top:18px}
.rg-copy h2{margin-bottom:22px}
.rg-cols-grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:48px 72px;align-items:start}
.rg-cols .rg-lead h2{max-width:none}
.rg-photo-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center}
.rg-photo-grid>*{min-width:0}
.rg-photo-left .rg-photo-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.rg-photo-left .rg-fig{order:-1}
.rg-fig .sr-vimg{position:relative;aspect-ratio:4/3;min-height:0;border:0;overflow:hidden}
.rg-fig .sr-vimg>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rg-fig figcaption{font:400 13px/1.6 var(--sans);color:var(--muted);margin-top:12px}
.rg-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.rg-chip{display:inline-flex;align-items:center;min-height:42px;padding:9px 16px;border:1px solid var(--charcoal);color:var(--charcoal);font:700 14px/1.2 var(--sans);text-decoration:none}
.rg-chip:hover,.rg-chip:focus-visible{background:var(--charcoal);color:#fff}
.rg-note{margin-top:24px;padding:16px 18px;border-left:3px solid var(--amber);background:var(--cream);max-width:56ch}
.rg-note p{font:400 14px/1.65 var(--sans);color:var(--grey2);margin:0;max-width:none}
.rg-note p+p{margin-top:8px}
.rg-note a{color:var(--amber-dk);text-decoration:underline}
/* Grouped explanations: each group is a labelled row, links inside the explanation. */
.rg-grouplist{margin-top:44px;border-top:1px solid var(--line)}
.rg-group{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:20px 72px;padding:38px 0;border-bottom:1px solid var(--line)}
.rg-group h3{font-size:28px;line-height:1.15;color:var(--ink);max-width:16ch;margin:0}
.rg-group-copy p{font-size:17px;line-height:1.8;max-width:66ch}
.rg-group-copy p+p{margin-top:16px}
/* Ledger or sequence beside a photograph that stays in view while the list runs. */
.rg-beside-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px 72px;align-items:start;margin-top:44px}
.rg-beside-grid.rg-nofig{grid-template-columns:minmax(0,1fr)}
.rg-nofig .rg-list{max-width:780px}
.rg-beside-grid>*{min-width:0}
.rg-sticky{position:sticky;top:110px}
.rg-rows{margin:0;border-top:1px solid var(--line)}
.rg-row{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1.45fr);gap:8px 28px;padding:22px 0;border-bottom:1px solid var(--line)}
.rg-row dt{font:700 17px/1.3 var(--sans);color:var(--ink)}
.rg-row dd{margin:0}
.rg-row dd p{font-size:16px;line-height:1.75;color:var(--grey2);max-width:none}
.rg-row dd p+p{margin-top:12px}
.rg-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.rg-steps li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 20px;padding:24px 0;border-bottom:1px solid var(--line)}
.rg-n{font:700 30px/1 var(--disp);color:var(--amber-dk);padding-top:2px}
.rg-steps h3{font-size:22px;line-height:1.2;color:var(--ink);margin:0 0 8px}
.rg-steps p{font-size:16px;line-height:1.75;color:var(--grey2);max-width:none}
.rg-steps p+p{margin-top:10px}
.rg-list .rg-note{margin-top:26px}
/* Cost contrasts: what keeps a job small against what makes it grow. */
.rg-ctable{margin-top:40px;border-top:2px solid var(--charcoal)}
.rg-crow{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:0 36px;padding:22px 0;border-bottom:1px solid var(--line)}
.rg-chead{padding:14px 0;font:700 13px/1.3 var(--sans);color:var(--charcoal)}
.rg-cf{font:700 17px/1.35 var(--sans);color:var(--ink)}
.rg-crow p{font-size:15.5px;line-height:1.7;color:var(--grey2);max-width:none}
.rg-cl{display:none}
/* Scope sheet: the hub's one expressive moment, a written-scope specimen on deep blue. */
.rg-sheet{background:var(--charcoal);color:#eef1f4}
.rg-sheet h2{color:#fff}
.rg-sheet .rg-copy p{color:#d3dbe1}
.rg-sheet .rg-chip{border-color:var(--amber);color:var(--amber)}
.rg-sheet .rg-chip:hover,.rg-sheet .rg-chip:focus-visible{background:var(--amber);color:var(--ink)}
.rg-sheet-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:56px 80px;align-items:center}
.rg-sheet-grid>*{min-width:0}
.rg-sheet-card{background:#fff;color:var(--ink);border-top:6px solid var(--amber);padding:28px 30px 24px;box-shadow:0 24px 60px #0004}
.rg-sheet-head{display:flex;flex-direction:column;gap:4px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.rg-sheet-head span{font:400 13px/1.4 var(--sans);color:var(--muted)}
.rg-sheet-head strong{font:600 24px/1.2 var(--disp)}
.rg-sheet-card dl{margin:0}
.rg-sheet-card dl>div{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:16px;padding:13px 0;border-bottom:1px dashed var(--line)}
.rg-sheet-card dt{font:700 14px/1.4 var(--sans);color:var(--charcoal)}
.rg-sheet-card dd{margin:0;font:400 14.5px/1.55 var(--sans);color:var(--grey2)}
.rg-sheet-note{font:400 12.5px/1.6 var(--sans);color:var(--muted);margin-top:14px}
/* Orientation map under the two-column area explanation. */
.rg-orient .rg-area-map{margin-top:44px}
@media(max-width:960px){
  .rg-explain,.rg-beside,.rg-contrasts,.rg-sheet{padding:60px 0}
  .rg-explain h2,.rg-beside h2,.rg-contrasts h2,.rg-sheet h2{font-size:32px}
  .rg-cols-grid,.rg-photo-grid,.rg-photo-left .rg-photo-grid,.rg-group,.rg-beside-grid,.rg-sheet-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .rg-cols .rg-lead h2,.rg-group h3{max-width:none}
  .rg-photo-left .rg-fig{order:0}
  .rg-sticky{position:static}
  .rg-beside-grid .rg-fig{max-width:620px}
  .rg-group{padding:30px 0}
  .rg-group h3{font-size:24px}
}
@media(max-width:600px){
  .rg-explain,.rg-beside,.rg-contrasts,.rg-sheet{padding:48px 0}
  .rg-explain h2,.rg-beside h2,.rg-contrasts h2,.rg-sheet h2{font-size:27px}
  .rg-copy p,.rg-group-copy p{font-size:16px;line-height:1.7}
  .rg-row{grid-template-columns:minmax(0,1fr);gap:8px;padding:20px 0}
  .rg-row dt{font-size:18px}
  .rg-steps li{grid-template-columns:34px minmax(0,1fr);gap:0 14px;padding:20px 0}
  .rg-n{font-size:26px}
  .rg-steps h3{font-size:20px}
  .rg-chead{display:none}
  .rg-crow{grid-template-columns:minmax(0,1fr);gap:12px;padding:20px 0}
  .rg-cl{display:block;font:700 12px/1.3 var(--sans);color:var(--charcoal);margin-bottom:4px}
  .rg-sheet-card{padding:22px 20px 18px}
  .rg-sheet-card dl>div{grid-template-columns:minmax(0,1fr);gap:4px}
  .rg-chip{min-height:40px;padding:8px 13px;font-size:13px}
  .rg-beside-grid{margin-top:32px}
  .rg-ctable{margin-top:28px}
  .rg-grouplist{margin-top:32px}
}
