/* PickARoofer design system v2 (01.10.2026). Scoped by .v2-* so legacy pages are untouched.
   Safari/iOS + Android Chrome rules: no :has(), no 100vh (dvh with fallback), 16px form text (no iOS zoom),
   safe-area insets, 44px tap targets, -webkit- prefixes where Safari <16 needs them, no horizontal overflow. */
.v2 { --v2-blue:#1565c0; --v2-blue-d:#0d47a1; --v2-ink:#1a202c; --v2-muted:#4a5568; --v2-line:#e2e8f0; --v2-bg:#f8fafc;
  --v2-tint:#eff6ff; --v2-cta:#c73a12; --v2-cta-d:#a8300e; --v2-good:#047857; --v2-warn:#b45309; --v2-bad:#b91c1c;
  --v2-r:14px; --v2-shadow:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.06);
  color:var(--v2-ink); font-size:17px; line-height:1.6; -webkit-text-size-adjust:100%; }
.v2 *, .v2 *::before, .v2 *::after { box-sizing:border-box; }
.v2 img, .v2 svg { max-width:100%; height:auto; }
.v2 h1, .v2 h2, .v2 h3 { line-height:1.2; letter-spacing:-.01em; margin:0; text-wrap:balance; }
.v2 p { margin:0 0 1em; }
.v2 a { color:var(--v2-blue); }
.v2 a:focus-visible, .v2 button:focus-visible, .v2 summary:focus-visible { outline:3px solid #f59e0b; outline-offset:2px; border-radius:6px; }
.v2-wrap { max-width:1160px; margin:0 auto; padding:0 16px; }
@media (min-width:768px){ .v2-wrap{ padding:0 24px; } .v2 { font-size:18px; } }

/* hero */
.v2-hero { background:linear-gradient(135deg,#0d47a1 0%,#1565c0 60%,#1e7bd6 100%); color:#fff; padding:28px 0 36px; }
.v2-hero a { color:#cfe4ff; }
.v2-hero__grid { display:grid; gap:24px; grid-template-columns:minmax(0,1fr); align-items:start; }
@media (min-width:960px){ .v2-hero__grid{ grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:40px; } .v2-hero{ padding:44px 0 56px; } }
.v2-eyebrow { display:inline-flex; gap:8px; align-items:center; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28);
  color:#fff; font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:5px 12px; border-radius:999px; margin-bottom:14px; }
.v2-hero h1 { font-size:clamp(28px,6.4vw,46px); font-weight:800; margin-bottom:12px; }
.v2-lede { font-size:clamp(16px,2.6vw,19px); color:#e6f0ff; max-width:60ch; margin-bottom:20px; }
.v2-hero__cta { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }

/* buttons */
.v2-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 22px; border-radius:12px;
  font:inherit; font-weight:700; text-decoration:none; border:2px solid transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.v2-btn--cta { background:var(--v2-cta); color:#fff !important; box-shadow:0 6px 16px rgba(199,58,18,.35); }
.v2-btn--cta:hover { background:var(--v2-cta-d); }
.v2-btn--ghost { background:transparent; color:#fff !important; border-color:rgba(255,255,255,.55); }
.v2-btn--line { background:#fff; color:var(--v2-blue) !important; border-color:var(--v2-line); }

/* key figures strip */
.v2-facts { display:grid; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; padding:0; list-style:none; }
@media (min-width:640px){ .v2-facts{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.v2-fact { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); border-radius:12px; padding:12px 14px; min-width:0; }
.v2-fact__v { display:block; font-size:clamp(22px,5.4vw,30px); font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; }
.v2-fact__l { display:block; font-size:13px; color:#d6e6ff; margin-top:4px; line-height:1.3; }
.v2-section .v2-fact, .v2-card .v2-fact { background:var(--v2-tint); border-color:#cfe0f7; }
.v2-section .v2-fact__l, .v2-card .v2-fact__l { color:var(--v2-muted); }
.v2-section .v2-fact__v, .v2-card .v2-fact__v { color:var(--v2-blue-d); }

/* cards and sections */
.v2-main { background:var(--v2-bg); padding:8px 0 56px; }
.v2-section { padding:28px 0 4px; }
.v2-section > .v2-wrap > h2, .v2-h2 { font-size:clamp(22px,4.6vw,30px); font-weight:800; margin-bottom:8px; }
.v2-sub { color:var(--v2-muted); max-width:70ch; margin-bottom:18px; }
.v2-card { background:#fff; border:1px solid var(--v2-line); border-radius:var(--v2-r); box-shadow:var(--v2-shadow); padding:18px; }
@media (min-width:768px){ .v2-card{ padding:24px; } }
.v2-grid2 { display:grid; gap:16px; grid-template-columns:minmax(0,1fr); }
.v2-grid3 { display:grid; gap:16px; grid-template-columns:minmax(0,1fr); }
@media (min-width:760px){ .v2-grid2{ grid-template-columns:repeat(2,minmax(0,1fr)); } .v2-grid3{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.v2-card h3 { font-size:19px; margin-bottom:8px; }
.v2-src { display:block; font-size:13px; color:#5a6678; margin-top:10px; }
.v2-src a { color:#3b556f; }

/* callouts */
.v2-callout { border-left:4px solid var(--v2-blue); background:var(--v2-tint); padding:14px 16px; border-radius:0 12px 12px 0; margin:0 0 16px; }
.v2-callout--warn { border-color:var(--v2-warn); background:#fff7ed; }
.v2-callout--bad { border-color:var(--v2-bad); background:#fef2f2; }
.v2-callout--good { border-color:var(--v2-good); background:#ecfdf5; }
.v2-callout strong:first-child { display:block; margin-bottom:2px; }

/* lists */
.v2-list { margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.v2-list li { position:relative; padding-left:28px; }
.v2-list li::before { content:""; position:absolute; left:0; top:.55em; width:16px; height:16px; border-radius:50%; background:var(--v2-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.4l2.2 2.2 4.8-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat; }
.v2-steps { counter-reset:s; margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.v2-steps li { counter-increment:s; position:relative; padding-left:44px; min-height:34px; }
.v2-steps li::before { content:counter(s); position:absolute; left:0; top:0; width:32px; height:32px; border-radius:50%; background:var(--v2-blue); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; }

/* tables: stack on phones (no horizontal scroll) */
.v2-table { width:100%; border-collapse:collapse; font-size:16px; }
.v2-table th, .v2-table td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--v2-line); vertical-align:top; }
.v2-table th { font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--v2-muted); background:var(--v2-bg); }
.v2-table td.num, .v2-table th.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (max-width:620px){
  .v2-table--stack thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .v2-table--stack tr { display:block; border:1px solid var(--v2-line); border-radius:12px; margin-bottom:10px; padding:6px 4px; background:#fff; }
  .v2-table--stack td { display:flex; justify-content:space-between; gap:12px; border:0; padding:6px 10px; text-align:right; }
  .v2-table--stack td::before { content:attr(data-label); color:var(--v2-muted); font-weight:600; text-align:left; }
}

/* charts */
.v2-chart { width:100%; }
.v2-chart text { font-family:inherit; }
.v2-chart .ax { fill:#5a6678; font-size:11px; }
.v2-chart .val { fill:#1a202c; font-size:11px; font-weight:700; }
.v2-bar { fill:var(--v2-blue); }
.v2-bar--hot { fill:var(--v2-cta); }
.v2-bar--cool { fill:#93b9e6; }
.v2-grid-line { stroke:var(--v2-line); stroke-width:1; }
.v2-sr { position:absolute; display:block; left:0; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.v2-range { position:relative; height:14px; border-radius:999px; background:linear-gradient(90deg,#bfdbfe,#60a5fa 50%,#1d4ed8); margin:34px 0 56px; }
.v2-range__mark { position:absolute; top:-6px; width:3px; height:26px; background:var(--v2-ink); border-radius:2px; }
.v2-range__lab { position:absolute; top:26px; transform:translateX(-50%); font-size:13px; white-space:nowrap; color:var(--v2-muted); font-variant-numeric:tabular-nums; }
.v2-range__lab--top { top:-30px; font-weight:700; color:var(--v2-ink); }

/* timeline */
.v2-tl { margin:0; padding:0 0 0 18px; list-style:none; border-left:3px solid #cfe0f7; display:grid; gap:14px; }
.v2-tl li { position:relative; padding-left:14px; }
.v2-tl li::before { content:""; position:absolute; left:-27px; top:.45em; width:12px; height:12px; border-radius:50%; background:var(--v2-blue); border:3px solid #fff; box-shadow:0 0 0 2px #cfe0f7; }
.v2-tl time { display:block; font-weight:700; font-size:15px; }

/* chips */
.v2-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.v2-chip { background:#fff; border:1px solid var(--v2-line); border-radius:999px; padding:6px 12px; font-size:14px; color:var(--v2-ink); }
.v2-chip--on { background:var(--v2-tint); border-color:#9ec5f4; color:var(--v2-blue-d); font-weight:600; }

/* accordion */
.v2-acc details { background:#fff; border:1px solid var(--v2-line); border-radius:12px; margin-bottom:10px; }
.v2-acc summary { cursor:pointer; list-style:none; min-height:48px; padding:12px 44px 12px 16px; font-weight:700; position:relative; }
.v2-acc summary::-webkit-details-marker { display:none; }
.v2-acc summary::after { content:"+"; position:absolute; right:16px; top:50%; margin-top:-14px; font-size:24px; line-height:28px; color:var(--v2-blue); }
.v2-acc details[open] summary::after { content:"\2212"; }
.v2-acc .v2-acc__a { padding:0 16px 14px; color:var(--v2-ink); }

/* contractor cards */
.v2-pro { display:grid; gap:10px; }
.v2-pro__row { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; }
.v2-pro__name { font-weight:700; font-size:18px; margin:0; }
.v2-badge { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; padding:3px 10px; border-radius:999px; background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; }
.v2-badge--no { background:#f1f5f9; color:#475569; border-color:#e2e8f0; }

/* mobile sticky CTA (v2): never covers content, respects iPhone safe area */
.v2-sticky { position:fixed; left:0; right:0; bottom:0; z-index:40; background:#fff; border-top:1px solid var(--v2-line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom)); display:flex; gap:12px; align-items:center; justify-content:space-between;
  box-shadow:0 -6px 20px rgba(16,24,40,.12); transform:translateY(110%); -webkit-transform:translateY(110%); transition:transform .2s; }
.v2-sticky.is-on { transform:none; -webkit-transform:none; }
.v2-sticky span { font-size:14px; line-height:1.3; color:var(--v2-muted); }
.v2-sticky strong { display:block; color:var(--v2-ink); font-size:15px; }
@media (min-width:900px){ .v2-sticky{ display:none; } }
@media (max-width:899px){ .v2 { padding-bottom:calc(76px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion:reduce){ .v2-sticky{ transition:none; } }

/* form field sizing: 16px stops iOS Safari zoom */
.v2 input, .v2 select, .v2 textarea { font-size:16px; }

/* print: keep the data, drop chrome */
@media print { .v2-sticky, .v2-hero__cta { display:none !important; } }

/* horizontal bars: HTML/CSS, readable on a 320px phone */
.v2-hbar { margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.v2-hbar li { display:grid; gap:4px; }
.v2-hbar__top { display:flex; justify-content:space-between; gap:12px; font-size:15px; }
.v2-hbar__top b { font-variant-numeric:tabular-nums; }
.v2-hbar__track { height:12px; background:#e8eef7; border-radius:999px; overflow:hidden; }
.v2-hbar__fill { display:block; height:100%; background:var(--v2-blue); border-radius:999px; }
.v2-hbar__fill--hot { background:var(--v2-cta); }
.v2-hbar__fill--cool { background:#93b9e6; }

/* lead form (16px text: iOS Safari does not zoom on focus) */
.v2-form { background:#fff; color:var(--v2-ink); border-radius:var(--v2-r); padding:18px; box-shadow:0 10px 30px rgba(0,0,0,.18); }
.v2-form h2, .v2-form h3 { font-size:20px; margin:0 0 4px; }
.v2-form p { font-size:15px; color:var(--v2-muted); margin:0 0 12px; }
.v2-form input[type=text], .v2-form input[type=tel], .v2-form input[type=email], .v2-form select, .v2-form textarea {
  display:block; width:100%; font:inherit; font-size:16px; min-height:48px; padding:10px 12px; margin:0 0 10px; color:var(--v2-ink);
  background:#fff; border:1.5px solid #cbd5e1; border-radius:10px; -webkit-appearance:none; appearance:none; }
.v2-form select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234a5568' stroke-width='2'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
.v2-form textarea { min-height:72px; resize:vertical; }
.v2-form input:focus, .v2-form select:focus, .v2-form textarea:focus { outline:3px solid #f59e0b; outline-offset:1px; border-color:#1565c0; }
.v2-form__row { display:grid; gap:0 10px; grid-template-columns:minmax(0,1fr); }
@media (min-width:480px){ .v2-form__row{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.v2-form__consent { display:flex; gap:10px; align-items:flex-start; background:#f8fafc; border-radius:10px; padding:12px; font-size:13px; color:#5a6678; line-height:1.4; margin:0 0 12px; }
.v2-form__consent input { flex:0 0 22px; width:22px; height:22px; margin:0; }
.v2-form__consent label { flex:1; min-width:0; overflow-wrap:anywhere; }
.v2-form .v2-btn { width:100%; font-size:17px; }
.v2-form__note { text-align:center; font-size:13px; margin:10px 0 0 !important; }
.v2-ok { display:none; text-align:center; padding:24px 8px; }

/* rank cards, story, pros, local links */
.v2-ranks { display:grid; gap:10px; grid-template-columns:minmax(0,1fr); margin:0; padding:0; list-style:none; }
@media (min-width:640px){ .v2-ranks{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.v2-rank { display:flex; gap:14px; align-items:center; background:#fff; border:1px solid var(--v2-line); border-radius:12px; padding:12px 14px; }
.v2-rank__n { flex:0 0 auto; min-width:64px; text-align:center; font-weight:800; font-size:22px; color:var(--v2-cta); line-height:1.1; font-variant-numeric:tabular-nums; }
.v2-rank__n small { display:block; font-size:11px; font-weight:600; color:var(--v2-muted); }
.v2-rank--low .v2-rank__n { color:var(--v2-good); }
.v2-pros { display:grid; gap:12px; grid-template-columns:minmax(0,1fr); }
@media (min-width:760px){ .v2-pros{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.v2-pro { background:#fff; border:1px solid var(--v2-line); border-radius:var(--v2-r); padding:16px; box-shadow:var(--v2-shadow); }
.v2-pro__meta { font-size:14px; color:var(--v2-muted); margin:0; }
.v2-badge { display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:700; color:var(--v2-good); background:#ecfdf5; border:1px solid #a7f3d0; border-radius:999px; padding:2px 10px; white-space:nowrap; }
.v2-pro__actions { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin-top:4px; }
.v2-pro__actions .v2-btn { min-height:44px; padding:8px 16px; }
.v2-links { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.v2-links a { display:inline-flex; align-items:center; min-height:44px; padding:8px 14px; border:1px solid var(--v2-line); border-radius:999px; background:#fff; text-decoration:none; font-size:15px; }
.v2-crumb { font-size:14px; color:var(--v2-muted); padding:12px 0; }
.v2-crumb a { color:var(--v2-muted); }
.v2-method { font-size:14px; color:var(--v2-muted); }
.v2-method li { margin-bottom:6px; }

/* cost page (city_cost_v2.html) — .v2-cost-* */
.v2-cost-mat h3 { margin-bottom:2px; }
.v2-cost-mat__meta { font-size:14px; color:var(--v2-muted); margin:0 0 4px; }
.v2-cost-range { padding:0 26px; }
.v2-cost-note { font-size:16px; margin:12px 0 0; }
.v2-cost-foot { font-size:14px; color:var(--v2-muted); margin:14px 0 0; }
.v2-cost-foot .v2-src { display:inline; margin:0; }
.v2-cost-updated { margin:0 0 10px; }
.v2-cost-meth ol { margin:0; padding-left:22px; }
.v2-cost-meth li { margin-bottom:6px; }
.v2-cost-ins .ins-disclaimer { font-size:15px; color:#4b5563; margin:0 0 16px; }
.v2-cost-ins .ins-slider-wrap { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.v2-cost-ins .ins-slider-wrap label { font-weight:600; }
.v2-cost-ins .ins-slider-wrap label strong { color:var(--v2-blue); }
.v2-cost-ins #deductibleSlider { -webkit-appearance:none; appearance:none; width:100%; height:8px; background:#e5e7eb; border-radius:4px; outline:none; cursor:pointer; margin:8px 0; }
.v2-cost-ins #deductibleSlider::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:28px; height:28px; background:var(--v2-blue); border-radius:50%; border:3px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.25); cursor:pointer; }
.v2-cost-ins #deductibleSlider::-moz-range-thumb { width:28px; height:28px; background:var(--v2-blue); border-radius:50%; border:3px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.25); cursor:pointer; }
.v2-cost-ins #deductibleSlider::-webkit-slider-runnable-track { height:8px; border-radius:4px; background:#e5e7eb; }
.v2-cost-ins #deductibleSlider::-moz-range-track { height:8px; border-radius:4px; background:#e5e7eb; }
.v2-cost-ins .ins-result { font-size:16px; background:#f1f5f9; border-radius:8px; padding:10px 14px; margin:0; min-height:1.4em; }
.v2-cost-ins .ins-caution { font-size:15px; color:#92400e; background:#fffbeb; border:1px solid #fcd34d; border-radius:8px; padding:10px 14px; margin:0; }
.v2-cost-ins .ins-caution:empty { display:none; }
.v2-cost-ins .ins-policy-note { font-size:14px; color:#5a6678; border-left:3px solid var(--v2-blue); padding-left:12px; margin:4px 0 0; }
.v2-cost-ins .ins-warn { color:#92400e; font-size:13px; }
.v2-cost-ins caption { text-align:left; font-size:14px; color:var(--v2-muted); padding:0 0 8px; }

/* best page (.v2-best-*) */
.v2-best-form { min-width:0; }
.v2-best-form .city-form-wrap { max-width:none; margin:0; padding:20px 18px; }
.v2-best-form .city-form select, .v2-best-form .city-form input { font-size:16px; }
.v2-best-proof { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px; }
.v2-best-proof li { font-size:14px; background:var(--v2-bg); border:1px solid var(--v2-line); border-radius:999px; padding:3px 10px; color:var(--v2-ink); }
.v2-best-h3 { font-size:19px; margin:22px 0 10px; }
.v2-best-tablecard { padding:6px; margin-bottom:16px; }
@media (min-width:768px){ .v2-best-tablecard{ padding:12px 16px; } }
.v2-best-tablecard > h3 { padding:12px 10px 0; }
.v2-best-note { font-size:14px; color:var(--v2-muted); margin:10px 10px 8px; }
.v2-best-qs li strong { display:block; }
.v2-best-good { display:block; color:var(--v2-muted); }
.v2-best-state { display:block; font-size:15px; margin-top:6px; padding:8px 12px; background:var(--v2-tint); border-left:3px solid var(--v2-blue); border-radius:0 8px 8px 0; }
.v2-best-state b { color:var(--v2-blue-d); }

/* ── storm page v2 (.v2-storm-*) — 01.10.2026 ── */
.v2-storm-fresh { font-size:14px; color:#dbe9ff; margin:0 0 16px; max-width:62ch; }
.v2-storm-fresh strong { color:#fff; }
.v2-storm-strip { margin:0 0 20px; }
.v2-storm-lede { font-size:1.02em; margin:0 0 16px; max-width:72ch; }
.v2-storm-h3 { font-size:clamp(19px,3.8vw,23px); font-weight:800; margin:26px 0 10px; }
.v2-storm-gap { margin-top:18px; }
.v2-storm-event { margin:0 0 12px; padding:14px 14px 6px; }
.v2-storm-event h4 { font-size:18px; margin:0 0 10px; display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; }
.v2-storm-evsub { font-size:14px; font-weight:500; color:var(--v2-muted); }
.v2-storm-badge { font-size:12px; }
.v2-storm-badge--bad { background:#fef2f2; color:var(--v2-bad); border-color:#fecaca; }
.v2-storm-event .v2-table { margin:0 0 8px; }
.v2-storm-older { margin:0 0 14px; }
.v2-storm-older > summary { cursor:pointer; font-weight:700; color:var(--v2-blue); padding:12px 14px; min-height:44px; background:#fff; border:1px solid var(--v2-line); border-radius:12px; margin-bottom:10px; list-style:none; }
.v2-storm-older > summary::-webkit-details-marker { display:none; }
.v2-storm-older[open] > summary { margin-bottom:12px; }
.v2-storm-yeartable .v2-table { background:#fff; }
.v2-storm-yeartable .num { text-align:right; font-variant-numeric:tabular-nums; }
.v2-storm-map { margin:16px 0 8px; border:1px solid var(--v2-line); border-radius:var(--v2-r); background:#fff; overflow:hidden; }
.v2-storm-map > summary { cursor:pointer; font-weight:700; color:var(--v2-blue); padding:14px 16px; min-height:44px; list-style:none; }
.v2-storm-map > summary::-webkit-details-marker { display:none; }
.v2-storm-map #storm-mini-map { height:340px; width:100%; }
.v2-storm-legend { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:14px; color:var(--v2-muted); margin:0 0 8px; }
.v2-storm-legend span { white-space:nowrap; }
.v2-storm-dot { display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:5px; vertical-align:-1px; border:1px solid rgba(0,0,0,.25); }
.v2-storm-cap { font-size:14px; color:var(--v2-muted); margin:10px 0 6px; }
.v2-storm-big { font-size:clamp(30px,6vw,40px); font-weight:800; line-height:1.1; color:var(--v2-blue-d); margin:6px 0 8px; font-variant-numeric:tabular-nums; }
.v2-storm-big small { display:block; font-size:14px; font-weight:600; color:var(--v2-muted); margin-top:4px; }
.v2-storm-big--date { font-size:clamp(22px,4.6vw,28px); }
.v2-storm-minifacts { grid-template-columns:minmax(0,1fr); }
.v2-storm-scales .v2-card h4 { font-size:17px; margin:0 0 10px; }
.v2-storm-fig { margin:0 0 18px; }
.v2-storm-fig img { display:block; width:100%; max-width:520px; height:auto; border-radius:var(--v2-r); }
.v2-storm-fig figcaption { font-size:14px; color:var(--v2-muted); margin-top:6px; }
.v2-storm-alert h3 { font-size:20px; margin:0 0 6px; }
.v2-storm-alert__row { display:grid; gap:10px; grid-template-columns:minmax(0,1fr); }
@media (min-width:560px){ .v2-storm-alert__row { grid-template-columns:minmax(0,1fr) auto; } }
.v2-storm-alert input[type=email] { width:100%; font-size:16px; padding:12px 14px; border:1.5px solid #cbd5e1; border-radius:10px; min-height:48px; }
.v2-storm-alert__ok { display:none; color:var(--v2-good); font-weight:700; margin-top:10px; }
.v2-storm-alert__err { display:none; color:var(--v2-bad); margin-top:10px; }
.v2-storm-alert .v2-btn { width:100%; }
@media (min-width:560px){ .v2-storm-alert .v2-btn { width:auto; } }
.v2 .leaflet-container { font-size:13px; line-height:1.4; }
.v2 h3.v2-best-h3 { margin:28px 0 12px; }
.v2-storm-yeartable { margin-top:16px; }

.v2-adminbar{background:#1b2a3a;color:#fff;font:600 13px/1.4 system-ui,sans-serif;padding:8px 16px;text-align:center}
.v2-adminbar a{color:#ffd166;text-decoration:underline}

/* breadcrumbs: one ordered list, wraps on phones, 44px tap targets */
.v2-crumb ol { display:flex; flex-wrap:wrap; align-items:center; gap:0 2px; margin:0; padding:0; list-style:none; }
.v2-crumb li { display:inline-flex; align-items:center; min-width:0; }
.v2-crumb li + li::before { content:"\203A"; margin:0 6px; opacity:.7; }
.v2-crumb a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:2px; }
.v2-crumb [aria-current] { font-weight:600; }
.v2-hero .v2-crumb, .v2-hero .v2-crumb a { color:#e6f0ff; }
.v2-hero .v2-crumb { padding:0 0 4px; }

/* v3: hero left column fills the height of the form column, tool card takes the leftover space */
@media (min-width:960px){ .v2-hero--v3 .v2-hero__grid{ align-items:stretch; } .v2-hero--v3 .v2-hero__grid > div:first-child{ display:flex; flex-direction:column; } }
.v3-tool { flex:1 1 auto; margin-top:20px; background:rgba(255,255,255,.96); color:#14233a; border-radius:14px; padding:16px 18px; display:flex; flex-direction:column; gap:10px; }
.v3-tool h2 { font-size:18px; margin:0; color:#0d47a1; }
.v3-grid { display:grid; gap:10px 16px; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); align-items:end; }
.v3-grid label { display:flex; flex-direction:column; gap:4px; font-size:14px; font-weight:600; }
.v3-grid input[type=range] { width:100%; min-height:32px; }
.v3-grid select { font-size:16px; min-height:44px; padding:6px 10px; border:1px solid #c5d3e6; border-radius:8px; background:#fff; color:#14233a; }
.v3-chk { flex-direction:row !important; align-items:center; gap:8px !important; min-height:44px; }
.v3-chk input { width:22px; height:22px; }
.v3-out { display:flex; flex-direction:column; gap:2px; font-size:15px; line-height:1.4; }
.v3-out--rows { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; }
.v3-verdict { font-size:20px; color:#0d47a1; }
.v3-note { font-size:12px; color:#556; margin:auto 0 0; }
.v3-bars { display:flex; align-items:flex-end; gap:4px; height:72px; }
.v3-bars i { flex:1 1 0; background:#9db8e0; border-radius:3px 3px 0 0; min-width:0; }
.v3-bars i.on { background:#c73a12; }
.v2-hero--v3 .v2-eyebrow { align-self:flex-start; }
.v3-grid .v3-age, .v3-grid .v3-sqft { font-weight:400; color:#556; }
.v3-tool a { color:#0d47a1; }
.v2-hero--v3 .v3-side { display:none; }
@media (min-width:960px){
  .v2-hero--v3 .v2-hero__grid > div:last-child{ display:flex; flex-direction:column; gap:16px; }
  .v2-hero--v3 .v3-side{ display:block; flex:1 1 auto; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.26); border-radius:14px; padding:16px 18px; color:#fff; }
}
.v3-side h2 { font-size:17px; margin:0 0 8px; color:#fff; }
.v3-side ol { margin:0 0 8px; padding-left:20px; font-size:15px; line-height:1.45; }
.v3-side .v3-note { color:#d6e6ff; }
.v3-tool { justify-content:space-between; }
.v3-tool [hidden] { display:none !important; }
.v3-tool { gap:8px; }
.v3-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:-2px 0 2px; }
.v3-tabs button { font:inherit; font-size:14px; font-weight:600; min-height:44px; padding:6px 12px; border:1px solid #c5d3e6; border-radius:999px; background:#fff; color:#0d47a1; cursor:pointer; }
.v3-tabs button[aria-selected=true] { background:#0d47a1; border-color:#0d47a1; color:#fff; }
.v3-tabs button:focus-visible { outline:3px solid #f4a62a; outline-offset:2px; }
.v3-panel { display:flex; flex-direction:column; gap:10px; }
.v3-grid input[type=number] { font-size:16px; min-height:44px; padding:6px 10px; border:1px solid #c5d3e6; border-radius:8px; background:#fff; color:#14233a; width:100%; box-sizing:border-box; }
.v3-meter { position:relative; height:10px; border-radius:6px; background:#e3eaf5; margin:6px 0 8px; }
.v3-meter b { position:absolute; top:0; bottom:0; background:#7fb08a; border-radius:6px; }
.v3-meter i { position:absolute; top:-4px; width:4px; height:18px; margin-left:-2px; background:#c73a12; border-radius:2px; }
