/* ============================================================================
   Homepage — "engineered cold" (content/design-notes/visual-direction-v2.md, GPT v2, 2026-09-05).
   The v2 layer: loads after site.css on the hub and the v2 inner pages (about, contact, installation-service, calculators index). Night header + hero with a native
   working-load diagram, dark→light proof transition, Paper system map with a Night inset, Ice planning path,
   Night proof chapter, Paper calculator chapter with the estimator featured, red contact close, Deep-night footer.
   Barlow Condensed for H1 / statements / figures, Hanken Grotesk for everything else.
   ============================================================================ */
body.v2 {
  --night: #0B202A; --deep: #07161D; --cold: #9EDDEA; --ice: #EAF4F5; --paper: #F7F5F0; --white: #FFFFFF;
  --ink: #162126; --muted: #5A666B; --red: #B7352D; --red-ink: #93281F;
  --cold-line: rgba(158,221,234,.55); --hv-disp: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
  --hv-body: "Hanken Grotesk", Inter, Arial, sans-serif; --pad: 32px; --max: 1240px;
  background: var(--paper); color: var(--ink); font-family: var(--hv-body); font-size: 18px; line-height: 1.55;
}
@media (max-width: 767px) { body.v2 { --pad: 20px; font-size: 17px; } }
.v2 h1, .v2 h2, .v2 .hv-fig, .v2 .hv-stmt, .v2 .hv-no, .v2 .hv-rec .n { font-family: var(--hv-disp); font-weight: 700; letter-spacing: -0.01em; text-wrap: balance; }
.v2 h3 { font-family: var(--hv-body); font-weight: 600; font-size: 20px; line-height: 1.3; letter-spacing: 0; }
.v2 h2 { font-size: 52px; line-height: 1.02; }
.v2 a { color: inherit; text-decoration-color: currentColor; }
.v2 .btn { border-radius: 4px; font-family: var(--hv-body); }
.v2 .btn-primary { background: var(--red); border-color: var(--red); }
.v2 .btn-primary:hover { background: var(--red-ink); border-color: var(--red-ink); }
.v2 .btn-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.45); }
.v2 .btn-ghost:hover { border-color: #fff; }
.hv-wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); }
.hv-eyebrow { font: 500 13px/1.3 var(--hv-body); color: var(--cold); letter-spacing: .02em; }
.hv-label { font: 600 13px/1.3 var(--hv-body); color: var(--muted); }
.hv-arrow::after { content: " →"; }
@media (max-width: 767px) { .v2 h2 { font-size: 36px; } }

/* ---------- Header on Night, joined to the hero (nav structure + behaviour come from site.css) ---------- */
.hv-dark { background: var(--night); color: #fff; }
.hv-hdr { position: sticky; top: 0; z-index: 40; background: var(--night); }
.hv-hdr .hv-wrap { display: flex; align-items: center; gap: 28px; padding-top: 14px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
.hv-hdr .logo img { height: 58px; width: auto; }
.hv-hdr .nav-btn, .hv-hdr .nav-link { color: rgba(255,255,255,.82); font-size: 15px; }
.hv-hdr .nav-btn:hover, .hv-hdr .nav-item.open > .nav-btn, .hv-hdr .nav-link:hover { color: #fff; }
.hv-hdr .menu { background: var(--night); border-color: rgba(255,255,255,.22); }
.hv-hdr .menu a { color: #fff; }
.hv-hdr .menu a:hover { background: rgba(255,255,255,.06); }
.hv-hdr .menu-label { color: var(--cold); }
.hv-hdr .menu-group + .menu-group { border-top-color: rgba(255,255,255,.14); }
.hv-hdr .right { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.hv-hdr .btn { min-height: 40px; padding: 0 16px; font-size: 15px; }
.hv-menu { display: none; background: none; border: 0; color: #fff; font: 600 15px/1 var(--hv-body); padding: 10px 0; cursor: pointer; }
@media (max-width: 900px) {
  .hv-hdr .hv-wrap { flex-wrap: wrap; gap: 14px; }
  .hv-hdr .logo img { height: 42px; }
  .hv-menu { display: inline-block; margin-left: auto; }
  .hv-hdr .right { margin-left: 0; }
  .hv-hdr .nav.open { border-top-color: rgba(255,255,255,.12); }
  .hv-hdr .nav.open .nav-item, .hv-hdr .nav.open .nav-link { border-bottom-color: rgba(255,255,255,.12); }
  .hv-hdr .nav.open .nav-link, .hv-hdr .nav.open .menu a { color: #fff; }
  .hv-hdr .nav.open .nav-btn { color: var(--cold); }
}
@media (max-width: 480px) { .hv-hdr .btn { display: inline-flex; } }

/* ---------- Hero: 7/5 split, copy left, working-load diagram right ---------- */
.hv-hero .hv-wrap { display: grid; grid-template-columns: 6fr 6fr; gap: 40px; padding-top: 64px; padding-bottom: 56px; align-items: center; }
.hv-hero h1 { font-size: 80px; line-height: .98; color: #fff; margin-top: 18px; max-width: 12ch; }
.hv-hero .lead { margin-top: 24px; max-width: 58ch; color: rgba(255,255,255,.78); font-size: 18px; }
.hv-hero .acts { display: flex; flex-wrap: wrap; gap: 14px 16px; margin-top: 32px; }
.hv-hero .alt { margin-top: 18px; font-size: 15px; color: rgba(255,255,255,.7); }
.hv-hero .alt a { color: var(--cold); }
.hv-diagram { width: 100%; height: auto; display: block; }
.hv-diagram text { font-family: var(--hv-body); }
.hv-diagram .t { fill: #fff; font-size: 13.5px; font-weight: 600; }
.hv-diagram .m { fill: var(--cold); font-family: var(--hv-disp); font-weight: 700; font-size: 15px; letter-spacing: .02em; }
.hv-diagram .s { fill: rgba(255,255,255,.62); font-size: 12px; }
.hv-diagram .ln { stroke: var(--cold); stroke-width: 1.5; fill: none; }
.hv-diagram .room { stroke: #fff; stroke-width: 1.5; fill: rgba(158,221,234,.06); }
.hv-diagram .grid { stroke: rgba(158,221,234,.18); stroke-width: .6; }
.hv-diagram .hot { stroke: var(--red); }
.hv-diagram .flow { stroke-dasharray: 320; stroke-dashoffset: 320; animation: hv-draw 1.4s ease-out .3s forwards; }
.hv-diagram .flow.out { animation-delay: 1.2s; }
@keyframes hv-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .hv-diagram .flow { animation: none; stroke-dashoffset: 0; } }
.hv-loadstrip { display: none; }
@media (max-width: 1023px) {
  .hv-hero .hv-wrap { grid-template-columns: 1fr; gap: 36px; padding-top: 44px; }
  .hv-hero h1 { font-size: 60px; }
  .hv-diagram { max-width: 560px; }
}
@media (max-width: 767px) {
  .hv-hero h1 { font-size: 46px; line-height: 1.02; }
  .hv-hero .lead { font-size: 17px; }
  .hv-hero .acts .btn { width: 100%; }
  .hv-diagram { display: none; }
  /* Phone: the diagram becomes a horizontal load strip */
  .hv-loadstrip { display: grid; grid-template-columns: 1fr; gap: 12px; border-top: 1px solid rgba(255,255,255,.15); padding-top: 18px; font-size: 14px; }
  .hv-loadstrip ul { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; color: rgba(255,255,255,.85); }
  .hv-loadstrip ul li::before { content: "→ "; color: var(--red); }
  .hv-loadstrip .room { border: 1.5px solid #fff; padding: 10px 12px; text-align: center; font-family: var(--hv-disp); font-weight: 700; font-size: 16px; line-height: 1.1; color: #fff; }
  .hv-loadstrip .room small { display: block; font: 600 11px/1.3 var(--hv-body); color: var(--cold); margin-top: 4px; }
  .hv-loadstrip .out { color: var(--cold); font-weight: 600; }
  .hv-loadstrip .out::before { content: "→ "; }
}

/* Proof figures: dark-to-light transition below the hero */
.hv-figs { background: linear-gradient(180deg, var(--night) 0 52%, var(--paper) 52% 100%); }
.hv-figs .hv-wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; background: var(--white); border: 1px solid rgba(22,33,38,.12); }
.hv-figs .hv-wrap > div { padding: 26px 24px; border-left: 1px solid rgba(22,33,38,.12); }
.hv-figs .hv-wrap > div:first-child { border-left: 0; }
.hv-fig { font-size: 52px; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.hv-figs .k { margin-top: 8px; font-size: 14px; color: var(--muted); }
@media (max-width: 767px) {
  .hv-figs .hv-wrap { grid-template-columns: 1fr 1fr; }
  .hv-figs .hv-wrap > div:nth-child(3) { border-left: 0; }
  .hv-figs .hv-wrap > div:nth-child(n+3) { border-top: 1px solid rgba(22,33,38,.12); }
  .hv-fig { font-size: 40px; }
}

/* ---------- Generic chapter header: two columns ---------- */
.hv-sec { padding: 96px 0; }
.hv-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px 64px; align-items: end; margin-bottom: 56px; }
.hv-head .intro { color: var(--muted); max-width: 58ch; }
@media (max-width: 900px) { .hv-sec { padding: 64px 0; } .hv-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 36px; } }

/* ---------- 2. System map on Paper ---------- */
.hv-system { background: var(--paper); }
.hv-map { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr); gap: 0 48px; position: relative; }
.hv-col { position: relative; }
.hv-col > .hv-label { padding-bottom: 12px; border-bottom: 2px solid var(--cold); margin-bottom: 8px; color: var(--ink); }
.hv-node { padding: 22px 0; border-bottom: 1px solid rgba(22,33,38,.14); }
.hv-node h3 a { text-decoration: none; }
.hv-node h3 a:hover { text-decoration: underline; text-decoration-color: var(--cold); text-decoration-thickness: 2px; }
.hv-node p { color: var(--muted); font-size: 16px; margin-top: 8px; max-width: 46ch; }
.hv-node .go { display: inline-block; margin-top: 10px; font-size: 15px; font-weight: 600; }
.hv-col.center .hv-node { padding: 26px 0; }
.hv-col.center .hv-node h3 { font-size: 24px; }
/* cold-blue connectors: envelope and refrigeration feed the rooms */
.hv-col.left::after, .hv-col.right::after { content: ""; position: absolute; top: 44px; width: 48px; height: 0; border-top: 1.5px solid var(--cold); }
.hv-col.left::after { right: -48px; }
.hv-col.right::after { left: -48px; }
.hv-col.left::before, .hv-col.right::before { content: ""; position: absolute; top: 40px; width: 8px; height: 8px; border-radius: 50%; background: var(--cold); }
.hv-col.left::before { right: -52px; }
.hv-col.right::before { left: -52px; }
.hv-life { grid-column: 1 / -1; margin-top: 36px; padding-top: 18px; border-top: 1.5px solid var(--cold); display: grid; grid-template-columns: 200px minmax(0,1fr) auto; gap: 8px 32px; align-items: baseline; }
.hv-life p { color: var(--muted); font-size: 16px; max-width: 70ch; }
@media (max-width: 900px) {
  .hv-map { grid-template-columns: 1fr; gap: 28px; }
  .hv-col::before, .hv-col::after { display: none; }
  .hv-life { grid-template-columns: 1fr; margin-top: 8px; }
}
/* Night inset: what the drawing does not show */
.hv-inset { background: var(--night); color: #fff; margin-top: 72px; padding: 44px var(--pad); display: grid; grid-template-columns: 240px repeat(3, minmax(0,1fr)); gap: 24px 40px; }
.hv-inset h3 { font-family: var(--hv-disp); font-size: 30px; line-height: 1.05; font-weight: 700; color: #fff; }
.hv-inset h4 { font: 600 16px/1.3 var(--hv-body); color: var(--cold); margin-bottom: 8px; }
.hv-inset p { color: rgba(255,255,255,.78); font-size: 15px; }
@media (max-width: 900px) { .hv-inset { grid-template-columns: 1fr; padding: 32px var(--pad); margin-top: 48px; } }

/* ---------- 3. Planning path on Ice ---------- */
.hv-plan { background: var(--ice); }
.hv-path { position: relative; display: grid; gap: 0; }
.hv-path::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; border-left: 2px solid var(--ink); opacity: .25; }
.hv-step { display: grid; grid-template-columns: 1fr 1fr; gap: 0 72px; padding: 28px 0; position: relative; }
.hv-step .hv-no { font-size: 96px; line-height: .9; color: var(--ink); opacity: .18; }
.hv-step h3 { font-size: 26px; font-family: var(--hv-disp); font-weight: 700; margin-top: 6px; }
.hv-step p { color: var(--muted); font-size: 16px; margin-top: 10px; max-width: 46ch; }
.hv-step .dot { position: absolute; left: 50%; top: 40px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--red); }
.hv-step:nth-child(odd) .body { grid-column: 1; text-align: right; padding-right: 8px; }
.hv-step:nth-child(odd) .body p { margin-left: auto; }
.hv-step:nth-child(even) .body { grid-column: 2; padding-left: 8px; }
.hv-step:nth-child(2) { margin-top: -40px; }
.hv-step:nth-child(3) { margin-top: -20px; }
.hv-step:nth-child(4) { margin-top: -40px; }
@media (max-width: 900px) {
  .hv-path::before { left: 20px; }
  .hv-step { grid-template-columns: 1fr; padding: 20px 0 20px 56px; margin-top: 0 !important; }
  .hv-step .dot { left: 20px; top: 30px; }
  .hv-step:nth-child(odd) .body, .hv-step:nth-child(even) .body { grid-column: 1; text-align: left; padding: 0; }
  .hv-step:nth-child(odd) .body p { margin-left: 0; }
  .hv-step .hv-no { font-size: 56px; }
}

/* ---------- 4. Proof on Night ---------- */
.hv-proof { background: var(--night); color: #fff; }
.hv-proof .hv-head .intro { color: rgba(255,255,255,.7); }
.hv-recs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; border-top: 1px solid rgba(255,255,255,.18); }
.hv-rec { padding: 36px 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.hv-rec .n { font-size: 112px; line-height: .9; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.hv-rec .n small { font: 600 14px/1 var(--hv-body); color: var(--cold); margin-left: 10px; letter-spacing: .02em; }
.hv-rec dl { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 6px 16px; margin-top: 22px; font-size: 15px; }
.hv-rec dt { color: rgba(255,255,255,.55); }
.hv-rec dd { margin: 0; color: #fff; }
.hv-story { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 32px 64px; margin-top: 64px; align-items: start; }
.hv-stmt { font-size: 40px; line-height: 1.05; color: #fff; }
.hv-story .std { color: var(--cold); font-weight: 600; margin-top: 16px; font-size: 16px; }
.hv-story .who p { color: rgba(255,255,255,.78); font-size: 16px; }
.hv-story .who p + p { margin-top: 14px; }
.hv-story .who a { color: var(--cold); }
@media (max-width: 900px) {
  .hv-recs { grid-template-columns: 1fr; }
  .hv-rec .n { font-size: 72px; }
  .hv-story { grid-template-columns: 1fr; margin-top: 40px; }
  .hv-stmt { font-size: 30px; }
}

/* ---------- 5. Calculators on Paper: the estimator featured ---------- */
.hv-calc { background: var(--paper); }
.hv-calcgrid { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 32px; align-items: start; }
.hv-feature { background: var(--white); border: 1px solid rgba(22,33,38,.14); display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); }
.hv-feature .copy { padding: 36px; }
.hv-feature .copy h3 { font-family: var(--hv-disp); font-size: 34px; line-height: 1; font-weight: 700; }
.hv-feature .copy p { color: var(--muted); font-size: 16px; margin-top: 14px; }
.hv-feature .copy .btn { margin-top: 24px; }
.hv-feature .copy .free { margin-top: 12px; font-size: 13px; color: var(--muted); }
.hv-preview { background: var(--ice); padding: 24px; border-left: 1px solid rgba(22,33,38,.14); display: grid; gap: 14px; align-content: start; }
.hv-preview .pl { font: 600 12px/1.3 var(--hv-body); color: var(--muted); }
.hv-preview .pq { font: 600 14px/1.3 var(--hv-body); }
.hv-preview .opt { display: grid; grid-template-columns: minmax(0,1fr) 18px; gap: 2px 12px; background: #fff; border: 1px solid rgba(22,33,38,.35); padding: 10px 12px; font-size: 14px; }
.hv-preview .opt.on { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
.hv-preview .opt small { grid-column: 1; color: var(--muted); font-size: 12.5px; }
.hv-preview .opt::after { content: ""; grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid rgba(22,33,38,.45); background: #fff; }
.hv-preview .opt.on::after { border-color: var(--red); background: var(--red); box-shadow: inset 0 0 0 3px #fff; }
.hv-preview .sheet { background: #fff; border: 1px solid rgba(22,33,38,.45); padding: 12px 14px; font-size: 13px; }
.hv-preview .sheet .t { font: 600 11px/1.3 var(--hv-body); text-transform: uppercase; letter-spacing: .08em; }
.hv-preview .sheet .r { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-top: 1px solid rgba(22,33,38,.14); }
.hv-preview .sheet .r:first-of-type { margin-top: 8px; }
.hv-preview .sheet .r b { color: var(--muted); font-weight: 500; font-variant-numeric: tabular-nums; }
.hv-routes { display: grid; gap: 0; border-top: 2px solid var(--ink); }
.hv-route { padding: 22px 0; border-bottom: 1px solid rgba(22,33,38,.14); }
.hv-route h3 { font-size: 18px; }
.hv-route p { color: var(--muted); font-size: 15px; margin-top: 6px; }
.hv-route a.go { display: inline-block; margin-top: 8px; font-size: 15px; font-weight: 600; }
.hv-faq { margin-top: 56px; display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 16px 64px; }
.hv-faq details.faq summary { font-size: 16px; padding: 14px 0; }
.hv-faq details.faq p { font-size: 15px; }
@media (max-width: 900px) {
  .hv-calcgrid { grid-template-columns: 1fr; }
  .hv-feature { grid-template-columns: 1fr; }
  .hv-preview { border-left: 0; border-top: 1px solid rgba(22,33,38,.14); }
  .hv-faq { grid-template-columns: 1fr; margin-top: 40px; }
  .hv-feature .copy { padding: 24px; }
}

/* ---------- 6. Contact close on red ---------- */
.hv-contact { background: var(--red); color: #fff; }
.hv-contact .hv-wrap { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px 64px; padding-top: 88px; padding-bottom: 88px; align-items: start; }
.hv-contact h2 { color: #fff; }
.hv-contact .lead { color: rgba(255,255,255,.85); margin-top: 16px; max-width: 52ch; }
.hv-contact .ledger { border-top: 1px solid rgba(255,255,255,.5); margin-top: 32px; max-width: 460px; }
.hv-contact .ledger div { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 0 16px; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.3); font-size: 16px; }
.hv-contact .ledger .k { color: rgba(255,255,255,.7); font-size: 14px; padding-top: 2px; }
.hv-contact .ledger a { text-decoration: none; font-weight: 600; }
.hv-contact .ledger a:hover { text-decoration: underline; }
.hv-contact form, .hv-contact #contact-success { background: var(--white); color: var(--ink); padding: 32px; }
.hv-contact .frow label { color: var(--ink); }
.hv-contact .field { border-color: rgba(22,33,38,.45); border-radius: 4px; }
.hv-contact .field:focus { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
@media (max-width: 900px) { .hv-contact .hv-wrap { grid-template-columns: 1fr; padding-top: 56px; padding-bottom: 56px; } .hv-contact form { padding: 22px; } }

/* ---------- Footer on Deep night ---------- */
.hv-foot { background: var(--deep); color: rgba(255,255,255,.75); font-size: 15px; }
.hv-foot .hv-wrap { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 28px 32px; padding-top: 48px; padding-bottom: 40px; }
.hv-foot h4 { font: 600 13px/1.3 var(--hv-body); color: var(--cold); margin-bottom: 12px; }
.hv-foot a { color: rgba(255,255,255,.85); text-decoration: none; display: block; padding: 5px 0; }
.hv-foot a:hover { text-decoration: underline; }
.hv-foot .about img { height: 30px; margin-bottom: 14px; }
.hv-foot .about p { max-width: 32ch; }
.hv-foot address { font-style: normal; margin-top: 12px; }
.hv-foot .lines div { padding: 4px 0; }
.hv-foot .lines a { display: inline; padding: 0; }
.hv-foot .bottom { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; font-size: 14px; color: rgba(255,255,255,.55); }
@media (max-width: 767px) { .hv-foot .hv-wrap { grid-template-columns: 1fr; } }

/* ============================================================================
   v2 inner pages (About, Contact, Installation & service, Calculators index) — visual-direction-v2.md § Spoke pages:
   dark hero, chapters, one high-contrast statement, restrained FAQ, one red close.
   ============================================================================ */
.hv-hero.simple .hv-wrap { grid-template-columns: minmax(0, 820px); padding-bottom: 64px; }
.hv-hero.simple h1 { font-size: 72px; max-width: 14ch; }
.hv-hero .crumb { color: rgba(255,255,255,.6); border-bottom-color: rgba(255,255,255,.15); margin-bottom: 8px; }
.hv-hero .crumb a { color: rgba(255,255,255,.6); }
.hv-hero .crumb span:last-child { color: #fff; }
@media (max-width: 767px) { .hv-hero.simple h1 { font-size: 44px; } }
.hv-ice { background: var(--ice); }
.hv-paper { background: var(--paper); }
/* Chapter rows: title · line */
.hv-rows { border-top: 2px solid var(--ink); }
.hv-rows > div { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 4px 32px; padding: 16px 0; border-bottom: 1px solid rgba(22,33,38,.14); }
.hv-rows .t { font-weight: 600; }
.hv-rows .d { color: var(--muted); font-size: 16px; }
@media (max-width: 767px) { .hv-rows > div { grid-template-columns: 1fr; } }
/* Chapter: heading + paragraph left, rows right */
.hv-chapter { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 24px 64px; padding: 48px 0; border-top: 1px solid rgba(22,33,38,.14); }
.hv-chapter:first-of-type { border-top: 0; padding-top: 0; }
.hv-chapter h2 { font-size: 40px; }
.hv-chapter .p { color: var(--muted); margin-top: 14px; max-width: 52ch; }
@media (max-width: 900px) { .hv-chapter { grid-template-columns: 1fr; padding: 32px 0; } .hv-chapter h2 { font-size: 32px; } }
/* One-line high-contrast statement */
.hv-stmt-band { background: var(--night); color: #fff; padding: 56px 0; }
.hv-stmt-band p { font-family: var(--hv-disp); font-weight: 700; font-size: 44px; line-height: 1.05; max-width: 24ch; text-wrap: balance; }
@media (max-width: 767px) { .hv-stmt-band { padding: 40px 0; } .hv-stmt-band p { font-size: 30px; } }
/* Team ledger + service area */
.hv-team { border-top: 2px solid var(--ink); }
.hv-team > div { display: grid; grid-template-columns: 200px 200px minmax(0,1fr); gap: 4px 24px; padding: 16px 0; border-bottom: 1px solid rgba(22,33,38,.14); align-items: baseline; }
.hv-team .n { font-weight: 600; }
.hv-team .r { color: var(--muted); font-size: 15px; }
.hv-team .d { color: var(--muted); font-size: 16px; }
@media (max-width: 767px) { .hv-team > div { grid-template-columns: 1fr; gap: 2px; } }
/* Red close: headline + line left, actions right */
.hv-close { background: var(--red); color: #fff; }
.hv-close .hv-wrap { display: grid; grid-template-columns: minmax(0,1fr) max-content; gap: 24px 48px; align-items: center; padding-top: 64px; padding-bottom: 64px; }
.hv-close h2 { color: #fff; font-size: 44px; }
.hv-close p { color: rgba(255,255,255,.85); margin-top: 10px; max-width: 52ch; }
.hv-close .acts { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; }
.hv-close .btn-primary { background: #fff; color: var(--red); border-color: #fff; }
.hv-close .btn-primary:hover { background: #F4F3EF; }
.hv-close a.text { color: #fff; }
@media (max-width: 900px) { .hv-close .hv-wrap { grid-template-columns: 1fr; padding-top: 48px; padding-bottom: 48px; } .hv-close h2 { font-size: 34px; } .hv-close .acts .btn { width: 100%; } }
/* Contact page: hero line + two columns, form on white */
.hv-contact.page { background: var(--paper); color: var(--ink); }
.hv-contact.page h2 { color: var(--ink); }
.hv-contact.page .lead { color: var(--muted); }
.hv-contact.page .ledger { border-top-color: var(--ink); }
.hv-contact.page .ledger div { border-bottom-color: rgba(22,33,38,.14); }
.hv-contact.page .ledger .k { color: var(--muted); }
.hv-contact.page form, .hv-contact.page #contact-success { border: 1px solid rgba(22,33,38,.14); }
.hv-contact.page .field { border-color: rgba(22,33,38,.45); }
.hv-contact.page .after { margin-top: 20px; color: var(--muted); max-width: 48ch; }

/* ---------- The one calculator on v2 (calculators/index.html): questions on the working ground, strip in the hero ---------- */
.calcpage #calc { margin: 0; padding: 8px 0 56px; background: #F4F3EF; border-top: 0; }
.calcpage #calc .calc-wrap { max-width: 1000px; }
.calcpage .hv-hero .funnel { border-top-color: rgba(255,255,255,.35); border-bottom-color: rgba(255,255,255,.15); margin-top: 28px; }
.calcpage .hv-hero .funnel li { color: rgba(255,255,255,.5); }
.calcpage .hv-hero .funnel li.is-done, .calcpage .hv-hero .funnel li.is-current { color: #fff; }
.calcpage .hv-hero .funnel li.is-current .fs-label { box-shadow: inset 0 -2px 0 var(--cold); }
.calcpage .hv-hero .lead { max-width: 60ch; }
.calcpage #view-sent h3, .calcpage #report-form h3 { font-family: var(--hv-disp); }
.calcpage .q .q-label { font-family: var(--hv-body); font-weight: 600; font-size: 19px; }
.calcpage .q .no { font-family: var(--hv-disp); color: var(--red); }
.calcpage .path.hidden { display: none; }
