@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/inter-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/inter-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/inter-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/manrope-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/manrope-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 800; font-display: swap; src: url("fonts/manrope-latin-800-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* Light only. Layout: 1120px frame, left aligned and asymmetric. Landing: text column + one line process.
   Wizard and results: single columns on the same left axis as the hero,
   contractor next step directly under the estimate. */
:root {
  --bg: #F7F5F1;
  --panel: #FFFFFF;
  --ink: #202521;
  --ink-2: #3D443F;
  --muted: #626A64;
  --control: #8A8F8A;
  --line: #E3DED6;
  --line-strong: #CFC8BD;
  --soft: #EEF2EC;
  --sand: #EFEBE4;
  --accent: #285A48;
  --accent-dark: #1E4637;
  --on-accent: #FFFFFF;
  --bar: #285A48;
  --bar-2: #A7B5AC;
  --bar-track: #ECE7DF;
  --warn: #8A4B14;
  --font-display: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 8px;
  --radius-sm: 8px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  background: var(--bg); color: var(--ink);
  font-family: var(--font-body); font-size: 17px; line-height: 1.6;
  padding-inline: 24px;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: var(--font-display); color: var(--ink); text-wrap: balance; margin: 0; letter-spacing: -0.012em; font-weight: 700; }
p { margin: 0; }
a { color: var(--accent); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--accent-dark); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
.wrap { max-width: 1120px; margin-inline: auto; }
.num { font-variant-numeric: tabular-nums; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.label-sm { font-size: 14px; font-weight: 600; color: var(--muted); }

/* Header */
.site-header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-block: 26px 22px; border-bottom: 1px solid var(--line); }
.wordmark { font-family: var(--font-display); font-weight: 800; font-size: 20px; color: var(--ink); letter-spacing: -0.02em; background: none; border: 0; padding: 0; cursor: pointer; }
.site-nav { display: flex; gap: 28px; }
.brand { display: flex; align-items: baseline; gap: 14px; min-width: 0; }
.tagline { font-size: 14.5px; color: var(--muted); padding-left: 14px; border-left: 1px solid var(--line-strong); }
@media (max-width: 860px) { .tagline { display: none; } }
.site-nav a { color: var(--ink-2); text-decoration: none; font-size: 15px; font-weight: 500; }
.site-nav a:hover { color: var(--accent); }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 600 16px/1.2 var(--font-body); padding: 14px 24px; border-radius: 6px; border: 1px solid transparent; cursor: pointer; text-decoration: none; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.btn-primary { background: var(--accent); color: var(--on-accent); }
.btn-primary:hover { background: var(--accent-dark); color: var(--on-accent); }
.btn-quiet { background: transparent; color: var(--ink-2); border-color: transparent; padding-inline: 4px; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line-strong); }
.btn-quiet:hover { color: var(--ink); text-decoration-color: var(--ink); }
.btn-link { background: none; border: 0; padding: 0; font: 500 15px/1.4 var(--font-body); color: var(--accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; cursor: pointer; }
.btn-link:hover { color: var(--accent-dark); }
.btn[disabled] { background: var(--sand); color: var(--muted); border-color: var(--line-strong); border-style: dashed; cursor: not-allowed; }

/* Landing */
.hero { padding-block: 96px 0; }
.hero-main { max-width: 760px; }
.eyebrow { font-size: 14px; font-weight: 600; color: var(--accent); margin-bottom: 20px; }
.hero h1 { font-size: clamp(32px, 4.4vw, 48px); line-height: 1.06; letter-spacing: -0.022em; margin-bottom: 24px; max-width: 12em; }
.hero .lede { font-size: 20px; line-height: 1.6; color: var(--ink-2); max-width: 32em; margin-bottom: 36px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.trust { font-size: 15px; color: var(--muted); }
.process { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 28px; margin-top: 88px; padding-block: 22px 40px; border-top: 1px solid var(--line); }
.process .label-sm { margin: 0; }
.process ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 0; font-size: 15px; color: var(--ink-2); }
.process li { display: inline-flex; align-items: baseline; }
.process li:not(:last-child)::after { content: "\2192"; color: var(--line-strong); padding-inline: 12px; }
.process li.end { color: var(--accent); font-weight: 600; }

/* Wizard: one focused 680px column on the same left axis as the header and hero */
.wizard { max-width: 680px; padding-block: 48px 96px; }
.progress-meta { display: flex; align-items: baseline; gap: 8px; font-size: 14.5px; color: var(--muted); margin-bottom: 12px; }
.progress-meta strong { color: var(--ink); font-weight: 600; }
.progress-meta .sep { color: var(--line-strong); }
.progress { height: 3px; background: var(--bar-track); border-radius: 2px; overflow: hidden; margin-bottom: 44px; }
.progress > div { height: 100%; background: var(--accent); transition: width .2s ease; }
.step-title { font-size: clamp(26px, 3.2vw, 32px); line-height: 1.2; margin-bottom: 12px; }
.step-title:focus { outline: none; }
.step-intro { color: var(--ink-2); font-size: 17px; margin-bottom: 44px; max-width: 34em; }
.field { border: 0; padding: 0; margin: 0 0 48px; min-width: 0; }
.field legend, .field-label { font-weight: 600; font-size: 18px; line-height: 1.4; padding: 0; margin-bottom: 4px; display: block; color: var(--ink); }
.field-help { color: var(--muted); font-size: 15px; margin-bottom: 16px; }
.field legend + .options, .field-label + .options { margin-top: 14px; }
.field-error { color: var(--warn); font-size: 15px; font-weight: 500; margin-top: 12px; }

.options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.options.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.options.cols-1 { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.options.cols-1 .box { padding-block: 14px; }
.opt { position: relative; display: block; min-width: 0; }
.opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.opt .box { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 14px; height: 100%; min-height: 52px; padding: 16px 18px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; transition: border-color .12s ease, background-color .12s ease; }
.opt .txt { display: grid; gap: 3px; min-width: 0; }
.opt .t { font-weight: 600; font-size: 16px; line-height: 1.35; color: var(--ink); }
.opt .d { color: var(--muted); font-size: 14.5px; line-height: 1.45; }
.opt .m { white-space: nowrap; font-size: 14px; color: var(--ink-2); margin-top: 6px; padding-top: 8px; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.opt .tag { font-size: 13.5px; font-weight: 600; color: var(--accent); margin-top: 4px; }
.opt .dot { width: 20px; height: 20px; margin-top: 1px; border: 1.5px solid var(--control); border-radius: 50%; display: grid; place-items: center; background: var(--panel); transition: background-color .12s ease, border-color .12s ease; }
.opt:hover .box { border-color: #BDB5A8; }
.opt:hover .dot { border-color: var(--muted); }
.opt input:checked + .box { background: var(--soft); border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.opt input:checked + .box .t { color: var(--accent-dark); }
.opt input:checked + .box .m { border-top-color: #CBD8CF; }
.opt input:checked + .box .dot { border-color: var(--accent); background: var(--accent); }
.opt input:checked + .box .dot::after { content: ""; width: 5px; height: 9px; border: solid var(--on-accent); border-width: 0 2px 2px 0; transform: translate(0, -1px) rotate(45deg); }
.opt input:focus-visible + .box { outline: 2px solid var(--accent); outline-offset: 2px; }
.options.compact { gap: 6px; }
.options.compact .box { min-height: 48px; padding-block: 12px; align-items: center; }
.options.compact .dot { margin-top: 0; }
.options.compact .t { font-weight: 500; }
.options.compact input:checked + .box .t { font-weight: 600; }
.options.yesno { grid-template-columns: repeat(2, minmax(0, 160px)); }


.select { width: 100%; max-width: 440px; min-height: 54px; font: 500 17px/1.4 var(--font-body); color: var(--ink); background-color: var(--panel); border: 1px solid var(--control); border-radius: var(--radius-sm); padding: 14px 44px 14px 16px; appearance: none; cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%); background-position: calc(100% - 22px) 52%, calc(100% - 16px) 52%; background-size: 6px 6px; background-repeat: no-repeat; }
.select:hover { border-color: var(--muted); }
.select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.size-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.size-input { display: flex; align-items: stretch; border: 1px solid var(--control); border-radius: var(--radius-sm); background: var(--panel); overflow: hidden; transition: border-color .12s ease; }
.size-input:hover { border-color: var(--muted); }
.size-input input { width: 150px; border: 0; background: transparent; color: var(--ink); font: 600 24px/1.2 var(--font-display); padding: 14px 16px; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.size-input input::placeholder { color: var(--muted); font-weight: 500; }
.size-input input:focus { outline: none; }
.size-input:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; border-color: var(--accent); }
.size-input .unit { display: grid; place-items: center; padding-inline: 16px; color: var(--ink-2); font-size: 15.5px; font-weight: 500; border-left: 1px solid var(--line); background: var(--bg); }
.size-input.is-off { background: var(--bg); }
.size-input.is-off input { color: var(--muted); }
.check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 16px; cursor: pointer; color: var(--ink-2); }
.check input { width: 20px; height: 20px; accent-color: var(--accent); margin: 0; cursor: pointer; }
.size-note { margin-top: 14px; padding: 12px 16px; background: var(--soft); border-radius: var(--radius-sm); color: var(--ink-2); font-size: 15px; max-width: 34em; }
.size-note strong { color: var(--ink); font-weight: 600; }

.wizard-nav { display: flex; flex-direction: row; justify-content: space-between; align-items: center; gap: 16px; margin-top: 8px; padding-top: 28px; border-top: 1px solid var(--line); }
.wizard-nav .btn-primary { min-width: 168px; min-height: 50px; }
.wizard-nav .btn-quiet { min-height: 44px; }
.wizard-nav .btn-primary:disabled { background: #E6E1D9; color: #9A9890; border: 1px solid #E6E1D9; cursor: not-allowed; }
.footer-compact { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px 12px; padding-block: 22px 32px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14.5px; }
.footer-compact[hidden] { display: none; }
.footer-compact a { color: var(--ink-2); text-decoration: none; }
.footer-compact a:hover { color: var(--accent); text-decoration: underline; }
.footer-compact span[aria-hidden] { color: var(--line-strong); }
.footer-compact .fc-links { display: inline-flex; align-items: center; gap: 12px; }

/* Results: one 760px reading column on the left axis. Estimate first, contractor step directly under it,
   then the breakdown with its top cost drivers, savings and a quiet note on how to use the figures. */
.results { max-width: 760px; padding-block: 56px 72px; }
.estimate { padding-bottom: 8px; }
.estimate .label-sm { font-size: 16px; color: var(--ink-2); margin-bottom: 14px; }
.estimate .label-sm:focus { outline: none; }
.range { font-family: var(--font-display); font-weight: 700; font-size: clamp(30px, 8.4vw, 68px); line-height: 1.04; letter-spacing: -0.03em; color: var(--ink); }
.range .dash { color: var(--muted); font-weight: 500; padding-inline: 0.12em; }
.range .nw { white-space: nowrap; }
.likely { font-size: 19px; margin-top: 18px; color: var(--ink-2); }
.likely strong { font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.summary { color: var(--muted); font-size: 15.5px; margin-top: 6px; }
.result-actions { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 18px; }
.result-actions .btn-link { font-size: 14.5px; color: var(--ink-2); text-decoration-color: var(--line-strong); }
.result-actions .btn-link:hover { color: var(--accent); text-decoration-color: currentColor; }

.next-step { margin-top: 32px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 28px 22px; }
.next-step h2 { font-size: 20px; margin-bottom: 6px; }
.next-step p { color: var(--ink-2); font-size: 16px; max-width: 36em; }
.next-step .act { display: grid; justify-items: start; gap: 10px; margin-top: 18px; }
.next-step .btn { min-height: 50px; padding-inline: 24px; }
.next-step .btn[disabled] { background: #E6E1D9; color: #8E8C84; border: 1px solid #E6E1D9; cursor: not-allowed; }
.next-step .disclosure { font-size: 13.5px; line-height: 1.5; color: var(--muted); max-width: none; }

.rsec { margin-top: 60px; }
.rsec > h2 { font-size: 22px; padding-bottom: 14px; border-bottom: 1px solid var(--ink); }
.rsec .lead { color: var(--muted); font-size: 15px; margin-top: 10px; }

.bars { list-style: none; margin: 0; padding: 0; }
.bars li { display: grid; grid-template-columns: minmax(0, 16em) minmax(0, 1fr) 5.5em; align-items: center; gap: 4px 20px; padding-block: 14px; border-bottom: 1px solid var(--line); }
.bars .lbl { font-size: 15.5px; color: var(--ink); }
.bars .lbl small { display: block; color: var(--muted); font-size: 13.5px; line-height: 1.4; margin-top: 2px; }
.bars .track { height: 6px; background: var(--bar-track); border-radius: 1px; overflow: hidden; }
.bars .fill { display: block; height: 100%; background: var(--bar); border-radius: 1px; }
.bars .fill.overhead { background: var(--bar-2); }
.bars .val { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; font-size: 15.5px; }
.bars li.zero .lbl, .bars li.zero .val { color: var(--muted); }
.bars li.zero .val { font-weight: 500; font-size: 14px; }
.bars-total { display: flex; justify-content: space-between; gap: 16px; padding-top: 16px; font-weight: 600; }
.note { color: var(--muted); font-size: 14px; margin-top: 8px; }

.whatifs { list-style: none; margin: 0; padding: 0; }
.whatif { border-bottom: 1px solid var(--line); }
.whatif-btn { width: 100%; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 18px 0; background: none; border: 0; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.whatif-btn .wt { display: grid; gap: 3px; min-width: 0; }
.whatif-btn .wh { font-size: 16.5px; font-weight: 600; color: var(--ink); }
.whatif-btn .wd { color: var(--muted); font-size: 15px; }
.whatif-btn .red { font-size: 15px; color: var(--ink-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.whatif-btn .red strong { color: var(--accent); font-weight: 600; }
.whatif-btn input:focus-visible ~ .dot { outline: 2px solid var(--accent); outline-offset: 3px; }
.whatifs { border: 0; padding: 0; min-width: 0; }
.whatifs legend.lead { padding: 0; margin-bottom: 6px; }
.compare { margin: 0 0 20px 36px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.compare > div { padding: 16px 18px; }
.compare .orig { background: var(--panel); }
.compare .alt { background: var(--soft); border-left: 1px solid #CBD8CF; }
.compare .k { font-size: 14px; font-weight: 600; color: var(--muted); }
.compare .alt .k { color: var(--accent); }
.compare .f { font-family: var(--font-display); font-size: 26px; font-weight: 700; letter-spacing: -0.015em; margin-top: 4px; font-variant-numeric: tabular-nums; }
.compare .orig .f { color: var(--ink-2); }
.compare .alt .f { color: var(--accent-dark); }
.compare .r { font-size: 14px; color: var(--muted); margin-top: 2px; font-variant-numeric: tabular-nums; }
.whatif-foot { color: var(--muted); font-size: 14px; margin-top: 12px; }

.howto { margin-top: 60px; padding-top: 22px; border-top: 1px solid var(--line); }
.howto h2 { font-family: var(--font-body); font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.howto p { color: var(--muted); font-size: 15px; max-width: 42em; }
.howto a { display: inline-block; margin-top: 10px; font-weight: 500; font-size: 15px; }

@media (max-width: 720px) {
  .next-step { padding: 22px 20px 20px; }
  .next-step .act { justify-items: stretch; }
  .next-step .btn { width: 100%; }
}
@media (max-width: 600px) {
  .results { padding-block: 32px 64px; }
  .estimate .label-sm { margin-bottom: 12px; }
  .likely { font-size: 17px; margin-top: 14px; }
  .next-step { margin-top: 28px; }
  .rsec, .howto { margin-top: 48px; }
  .rsec > h2 { font-size: 20px; }
  .bars li { grid-template-columns: minmax(0, 1fr) auto; }
  .bars .track { grid-column: 1 / -1; grid-row: 2; margin-top: 6px; }
  .whatif-btn { grid-template-columns: 22px minmax(0, 1fr); }
  .whatif-btn .red { grid-column: 2; white-space: normal; }
  .compare { margin-left: 0; }
  .compare > div { padding: 14px 14px; }
  .compare .f { font-size: 22px; }
}

/* Planning range line under the estimate */
.rl { max-width: 560px; margin-top: 26px; }
.rl-top { position: relative; height: 22px; }
.rl-likely { position: absolute; bottom: 4px; transform: translateX(-50%); white-space: nowrap; font-size: 14.5px; font-weight: 600; color: var(--accent-dark); font-variant-numeric: tabular-nums; }
.rl-track { position: relative; height: 12px; }
.rl-track::before { content: ""; position: absolute; left: 0; right: 0; top: 5px; height: 2px; background: var(--line-strong); }
.rl-track::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 12px; border-left: 2px solid var(--line-strong); border-right: 2px solid var(--line-strong); }
.rl-dot { position: absolute; top: 0; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--bg); z-index: 1; }
.rl-ends { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; font-size: 14.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.rl-why { margin-top: 14px; font-size: 15.5px; color: var(--ink-2); max-width: 36em; }
.estimate .summary { margin-top: 10px; }

/* Contractor placeholder */
.next-step .soon { display: inline-block; padding: 11px 16px; border: 1px dashed var(--line-strong); border-radius: 6px; background: var(--bg); color: var(--ink-2); font-size: 15px; font-weight: 500; }

/* Top cost drivers inside the breakdown */
.bars .drv { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 600; color: var(--accent); }
.bars .why { grid-column: 1 / -1; font-size: 15px; color: var(--ink-2); max-width: 40em; margin-top: 2px; }
.bars li.driver .lbl { font-weight: 600; }

/* Savings: one-at-a-time radio rows */
.whatifs { margin-top: 6px; }
.whatif-btn .dot { width: 20px; height: 20px; margin-top: 2px; border: 1.5px solid var(--control); border-radius: 50%; display: grid; place-items: center; background: var(--panel); transition: background-color .12s ease, border-color .12s ease; }
.whatif-btn:hover .dot { border-color: var(--muted); }
.whatif-btn input:checked ~ .dot { border-color: var(--accent); background: var(--accent); }
.whatif-btn input:checked ~ .dot::after { content: ""; width: 5px; height: 9px; border: solid var(--on-accent); border-width: 0 2px 2px 0; transform: translate(0, -1px) rotate(45deg); }
.whatif-btn input:checked ~ .wt .wh { color: var(--accent-dark); }

/* Wizard: hint next to a disabled Continue */
.nav-hint { margin-left: auto; font-size: 14.5px; color: var(--muted); text-align: right; }
.wizard-nav .btn-primary { flex-shrink: 0; }
.nav-hint:empty { display: none; }
.reset-note { margin: -16px 0 28px; padding: 12px 16px; background: var(--sand); border-radius: var(--radius-sm); color: var(--ink-2); font-size: 15px; }

/* Landing: worked example and short methodology */
.example { margin: 44px 0 0; padding-top: 18px; border-top: 1px solid var(--line); max-width: 420px; }
.example figcaption { display: grid; gap: 2px; }
.example .ex-label { font-size: 14px; font-weight: 600; color: var(--ink-2); }
.example .ex-scn { font-size: 14.5px; color: var(--muted); }
.example .ex-range { margin-top: 10px; font-family: var(--font-display); font-weight: 700; font-size: 26px; letter-spacing: -0.015em; color: var(--ink); }
.example .ex-likely { font-size: 15px; color: var(--ink-2); margin-top: 2px; font-variant-numeric: tabular-nums; }
.how { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 32px 72px; padding-block: 56px 72px; border-top: 1px solid var(--line); }
.how h2 { font-size: 22px; margin-bottom: 12px; }
.how-intro p { color: var(--ink-2); font-size: 16px; max-width: 32em; }
.how-intro a { display: inline-block; margin-top: 16px; font-weight: 500; font-size: 15.5px; }
.how-points { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.how-points dt { font-weight: 600; font-size: 16px; margin-bottom: 4px; }
.how-points dd { margin: 0; color: var(--muted); font-size: 15.5px; }
.how-points > div { padding-top: 14px; border-top: 1px solid var(--line); }
@media (max-width: 860px) {
  .how { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 44px 56px; }
}
@media (max-width: 600px) {
  .example { margin-top: 32px; }
  .example .ex-range { font-size: 23px; }
  .how-points { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .how-intro a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; }
  .rl-likely, .rl-ends { font-size: 14px; }
  .rl-why { font-size: 15px; }
  .bars .drv { font-size: 14px; }
  .bars .why { margin-top: 6px; }
  .wizard-nav { flex-wrap: wrap; row-gap: 6px; }
  .nav-hint { order: -1; flex-basis: 100%; margin: 0; text-align: left; font-size: 14px; }
  .wizard-nav .btn-primary { flex-shrink: 1; }
  .whatif-btn .dot { margin-top: 1px; }
}

/* Methodology & about */
.method { border-top: 1px solid var(--line); padding-block: 72px 48px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 56px 88px; }
.method h2 { font-size: 22px; margin-bottom: 12px; }
.method p { color: var(--ink-2); font-size: 16px; max-width: 36em; }
.method ol { margin: 18px 0 0; padding-left: 22px; display: grid; gap: 8px; font-size: 15.5px; color: var(--ink-2); max-width: 38em; }
.method ol li::marker { color: var(--accent); font-variant-numeric: tabular-nums; font-weight: 600; }
.method h3 { font-family: var(--font-body); font-size: 15px; font-weight: 600; margin: 32px 0 10px; }
.sources { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; font-size: 14.5px; }
.about-block + .about-block { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
.about-block h2.small { font-size: 18px; }
.site-footer { border-top: 1px solid var(--line); padding-block: 24px 40px; color: var(--muted); font-size: 14px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }

@media (max-width: 860px) {
  .hero { padding-block: 56px 0; }
  .process { margin-top: 56px; padding-bottom: 32px; }
    .method { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 600px) {
  body { padding-inline: 16px; font-size: 16px; }
  .site-nav { gap: 18px; }
  .hero { padding-block: 32px 0; }
  .eyebrow { margin-bottom: 12px; }
  .hero h1 { margin-bottom: 16px; }
  .hero .lede { font-size: 17px; margin-bottom: 26px; }
  .process { margin-top: 44px; padding-bottom: 28px; flex-direction: column; gap: 10px; }
  .hero .btn-primary { width: 100%; }
  .options, .options.cols-3 { grid-template-columns: minmax(0, 1fr); }
  .options.yesno { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .options.compact .box { min-height: 50px; }
  .wizard { padding-block: 24px 40px; }
  .progress { margin-bottom: 28px; }
  .step-title { font-size: 25px; }
  .step-intro { font-size: 16px; margin-bottom: 32px; }
  .field { margin-bottom: 36px; }
  .field legend, .field-label { font-size: 17px; }
  .opt .box { padding: 14px 16px; gap: 12px; }
  .options.cols-3 .opt .m { margin-top: 4px; padding-top: 0; border-top: 0; }
  .select { max-width: none; }
  .size-row { gap: 6px 18px; }
  .size-input { flex: 1 1 100%; }
  .size-input input { flex: 1; width: auto; min-width: 0; }
  .sources { grid-template-columns: minmax(0, 1fr); }
}
/* Mobile pass (375px target): 44px tap areas, thumb-reach action bar, no text under 14px */
@media (max-width: 600px) {
  .site-header { padding-block: 14px 12px; align-items: center; }
  .wordmark { padding-block: 10px; }
  .site-nav { gap: 4px; margin-right: -10px; }
  .site-nav a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 10px; }

  .progress-meta { font-size: 15px; color: var(--ink-2); margin-bottom: 10px; }
  .progress { height: 4px; margin-bottom: 26px; }
  .step-title { font-size: 24px; margin-bottom: 8px; }
  .step-intro { font-size: 16px; line-height: 1.55; margin-bottom: 28px; }
  .field { margin-bottom: 32px; }
  .field legend + .options, .field-label + .options { margin-top: 12px; }
  .options.cols-1 { gap: 8px; }
  .opt .box { min-height: 56px; padding: 14px 14px 14px 14px; gap: 12px; }
  .opt .t { font-size: 16px; overflow-wrap: anywhere; }
  .opt .d { font-size: 14.5px; }
  .check { min-height: 48px; }

  /* Continue stays within thumb reach while scrolling a step */
  .wizard-nav { position: sticky; bottom: 0; z-index: 5; flex-direction: row-reverse; align-items: center; gap: 12px; margin-inline: -16px; margin-top: 8px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--bg); border-top: 1px solid var(--line); flex-direction: row; }
  .wizard-nav .btn-primary { flex: 1; width: auto; min-height: 52px; font-size: 16.5px; }
  .wizard-nav .btn-quiet { width: auto; min-height: 52px; padding-inline: 12px; }
  .wizard { padding-bottom: 0; }
  html { scroll-padding-bottom: 96px; }

  .footer-compact { flex-direction: column; align-items: flex-start; gap: 2px; padding-block: 16px 28px; }
  .footer-compact .fc-sep { display: none; }
  .footer-compact .fc-links { gap: 14px; }
  .footer-compact .fc-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-compact .fc-note { font-size: 14px; }

  .results { padding-top: 24px; }
  .result-actions { gap: 0 20px; margin-top: 6px; }
  .result-actions .btn-link { min-height: 44px; font-size: 15px; }
  .next-step .btn { padding-inline: 14px; font-size: 15px; }
  .next-step .disclosure { font-size: 14px; }
  .bars .lbl small, .note, .whatif-foot, .compare .r { font-size: 14px; }
  .whatif-btn { padding-block: 16px; min-height: 56px; }
  .howto a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 2px; }
  .sources { gap: 0; }
  .sources a { display: inline-block; padding-block: 11px 10px; }
  .label-sm, .opt .tag { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

/* Scope consistency notice: no changes to calculation or user selections. */
.scope-warning {
  margin: 0.5rem 0 1.6rem;
  padding: 1rem 1.15rem;
  border: 1px solid #c9b99b;
  border-left: 3px solid #886b39;
  border-radius: 6px;
  background: #faf6ee;
  color: #272d2a;
  line-height: 1.55;
}
.scope-warning[hidden] { display: none; }
.scope-warning strong { display: block; margin-bottom: 0.3rem; }
.scope-warning p { margin: 0; max-width: 70ch; }
.scope-warning .btn-link { margin-top: 0.65rem; color: #315c4a; }
.results-warning { margin-top: 1rem; max-width: 54rem; }

/* ---------- Multi-page additions ---------- */
.wordmark { text-decoration: none; display: inline-block; }
.wordmark:hover { color: var(--ink); }
.site-footer { flex-direction: column; align-items: stretch; gap: 14px; }
.footer-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.footer-links a { color: var(--ink-2); text-decoration: none; font-size: 14.5px; }
.footer-links a:hover { color: var(--accent); text-decoration: underline; }
.footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.h1-long { max-width: 16em; }
.tool { padding-block: 64px 72px; }
.tool .label-sm { margin-bottom: 14px; }
.tool-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px 72px; padding-top: 22px; border-top: 1px solid var(--line); align-items: start; }
.tool h2 { font-size: 24px; margin-bottom: 10px; }
.tool h2 a { color: var(--ink); text-decoration: none; }
.tool h2 a:hover { color: var(--accent); }
.tool-text p { color: var(--ink-2); max-width: 34em; margin-bottom: 22px; }
.tool .example { margin-top: 0; padding-top: 0; border-top: 0; }

.guide { max-width: 760px; padding-block: 8px 72px; border-top: 1px solid var(--line); }
.gsec { margin-top: 48px; }
.gsec h2 { font-size: 22px; margin-bottom: 12px; }
.gsec p { color: var(--ink-2); max-width: 40em; }
.gsec p + p { margin-top: 12px; }
.table-wrap { overflow-x: auto; margin-top: 8px; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; font-size: 15px; }
caption { caption-side: bottom; text-align: left; color: var(--muted); font-size: 14px; padding-top: 10px; }
th, td { text-align: left; padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
thead th { font-size: 14px; font-weight: 600; color: var(--muted); border-bottom: 1px solid var(--ink); white-space: nowrap; }
tbody th { font-weight: 600; }
td.num, th.num { font-variant-numeric: tabular-nums; white-space: nowrap; }
td.strong { font-weight: 600; }
.ex-table { min-width: 720px; }
.ex-table .t-name { display: block; }
.ex-table .t-detail { display: block; font-weight: 400; color: var(--muted); font-size: 14px; margin-top: 4px; }
.ex-table tbody th { width: 36%; }
.drivers-list { margin: 18px 0 0; display: grid; gap: 0; }
.drivers-list > div { padding-block: 14px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 13em) minmax(0, 1fr); gap: 4px 24px; }
.drivers-list dt { font-weight: 600; }
.drivers-list dd { margin: 0; color: var(--ink-2); }
.faq { margin-top: 8px; }
.faq-item { padding-block: 18px; border-top: 1px solid var(--line); }
.faq-item h3 { font-family: var(--font-body); font-size: 17px; font-weight: 600; margin-bottom: 6px; }
.faq-item p { color: var(--ink-2); }

.doc { max-width: 760px; padding-block: 56px 80px; }
.doc h1 { font-size: clamp(30px, 4vw, 40px); line-height: 1.12; margin-bottom: 10px; }
.doc-meta { color: var(--muted); font-size: 15px; margin-bottom: 18px; }
.doc-lead { font-size: 18px; color: var(--ink-2); max-width: 38em; }
.doc h2 { font-size: 21px; margin: 44px 0 10px; }
.doc p { color: var(--ink-2); max-width: 40em; }
.doc p + p { margin-top: 12px; }
.doc .table-wrap { margin-top: 14px; }
.doc .steps { margin: 12px 0 0; padding-left: 22px; display: grid; gap: 8px; color: var(--ink-2); max-width: 40em; }
.doc .steps li::marker { color: var(--accent); font-weight: 600; }
.plain { margin: 12px 0 0; padding-left: 20px; display: grid; gap: 8px; color: var(--ink-2); max-width: 40em; }
.formula { margin-top: 14px; padding: 12px 16px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-sm); font-variant-numeric: tabular-nums; }
.src { margin-top: 8px; }
.src-list li span { color: var(--muted); }
.findings { margin: 12px 0 0; padding-left: 20px; display: grid; gap: 8px; color: var(--ink-2); max-width: 42em; }
.findings strong { color: var(--ink); font-weight: 600; }
.data-note { margin-top: 36px; padding: 22px 24px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.data-note p { color: var(--ink-2); }
.data-note .btn { margin-top: 16px; }
.state-table { min-width: 0; }
.state-table th, .state-table td { padding: 10px 14px 10px 0; }
.state-table td.rank { color: var(--muted); width: 3.5em; }
.state-table .likely { font-weight: 600; color: var(--accent-dark); background: var(--soft); padding-left: 12px; }
.state-table thead .likely { color: var(--accent-dark); }
.state-table tbody th { font-weight: 500; }
.rank-inline { display: none; }
.download { margin-top: 14px; }
.attribution { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 15px; color: var(--muted); }
@media (max-width: 860px) {
  .tool-row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Landing pages: shared editorial system (homepage and calculator start) ----------
   Display face: Georgia, a system serif (no download), used only for the two landing H1s and
   the example estimate figures. Manrope and Inter remain everywhere else, including the wizard. */
:root { --font-editorial: Georgia, "Times New Roman", Times, serif; }
.wordmark { letter-spacing: -0.03em; font-size: 21px; }
.site-nav a[aria-current="page"] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.display { font-family: var(--font-editorial); font-weight: 400; letter-spacing: -0.032em; line-height: 1.04; color: var(--ink); }
.lp { padding-block: 56px 64px; }
.lp-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.7fr); gap: 48px 88px; align-items: start; }
.lp-copy { max-width: 700px; }
.lp h1.display { font-size: clamp(40px, 4.6vw, 58px); margin-bottom: 22px; max-width: 11em; }
.home-hero h1.display { font-size: clamp(38px, 4.2vw, 54px); max-width: 13em; }
.lp .lede { font-size: 19px; line-height: 1.6; max-width: 31em; margin-bottom: 28px; }
.lp .hero-actions { gap: 12px 22px; }
.lp .btn-primary { padding-inline: 26px; min-height: 50px; }
.answers { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--line); max-width: 38em; color: var(--ink-2); font-size: 15.5px; line-height: 1.6; }
.answers-title { font-weight: 600; color: var(--ink); }
.model-note { margin-top: 12px; max-width: 38em; color: var(--muted); font-size: 15px; line-height: 1.55; }

.estimate-preview { padding-left: 32px; border-left: 1px solid var(--line-strong); margin-top: 6px; }
.preview-meta { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 12px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 14px; font-weight: 600; }
.estimate-preview h2 { font-family: var(--font-body); font-size: 18px; line-height: 1.35; font-weight: 600; letter-spacing: 0; margin: 16px 0 2px; }
.preview-detail { color: var(--muted); font-size: 14.5px; }
.preview-range { margin: 18px 0 0; }
.preview-range > div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 20px; padding: 10px 0; border-top: 1px solid var(--line); }
.preview-range dt { color: var(--muted); font-size: 14.5px; }
.preview-range dd { margin: 0; font-family: var(--font-editorial); font-size: 22px; line-height: 1.1; letter-spacing: -0.015em; color: var(--ink); }
.preview-range .likely dt { color: var(--accent-dark); font-weight: 600; }
.preview-range .likely dd { color: var(--accent-dark); font-size: 30px; }
.preview-note { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; }
.preview-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; font-weight: 600; font-size: 15px; }

.how-ed { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 32px 88px; padding-block: 48px 72px; border-top: 1px solid var(--line); }
.how-ed h2 { font-size: 22px; margin-bottom: 12px; }
.how-ed-intro p { color: var(--ink-2); max-width: 30em; }
.how-links { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-top: 14px; }
.how-links a { font-weight: 500; font-size: 15.5px; }
.how-steps { list-style: none; margin: 0; padding: 0; counter-reset: how; }
.how-steps li { counter-increment: how; display: grid; grid-template-columns: 2.2em minmax(0, 9em) minmax(0, 1fr); gap: 4px 16px; padding-block: 14px; border-top: 1px solid var(--line); }
.how-steps li:last-child { border-bottom: 1px solid var(--line); }
.how-steps li::before { content: counter(how); font-family: var(--font-editorial); font-size: 20px; line-height: 1.2; color: var(--accent); }
.how-term { font-weight: 600; }
.how-def { color: var(--ink-2); }
.calc-landing { border-bottom: 1px solid var(--line); }
#app + .guide { border-top: 0; }

@media (max-width: 1100px) {
  .lp-grid { gap: 40px 56px; }
  .how-ed { gap: 28px 56px; }
}
@media (max-width: 960px) {
  .site-nav { gap: 20px; }
}
@media (max-width: 860px) {
  .lp { padding-block: 40px 48px; }
  .lp-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .estimate-preview { max-width: 480px; padding-left: 24px; margin-top: 0; }
  .how-ed { grid-template-columns: minmax(0, 1fr); padding-block: 40px 56px; }
}
@media (max-width: 600px) {
  .site-header { flex-wrap: wrap; row-gap: 0; padding-bottom: 6px; }
  .site-nav { width: 100%; gap: 0 18px; margin-right: 0; }
  .site-nav a { padding-inline: 0; }
  .lp { padding-block: 28px 40px; }
  .lp h1.display, .home-hero h1.display { font-size: clamp(34px, 10vw, 42px); margin-bottom: 16px; }
  .lp .lede { font-size: 17px; margin-bottom: 22px; }
  .lp .hero-actions { align-items: stretch; }
  .lp .hero-actions .btn-primary { width: 100%; }
  .answers { margin-top: 24px; font-size: 15px; }
  .estimate-preview { padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--line-strong); }
  .preview-range .likely dd { font-size: 27px; }
  .how-steps li { grid-template-columns: 2em minmax(0, 1fr); }
  .how-def { grid-column: 2; }
  .how-links a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 600px) {
  .footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-links ul { gap: 0 18px; }
  .tool .btn { width: 100%; }
  .tool { padding-top: 44px; }
  .ex-table tbody th { width: 100%; }
  .guide { padding-bottom: 56px; }
  .gsec { margin-top: 40px; }
  .gsec h2, .doc h2 { font-size: 20px; }
  .drivers-list > div { grid-template-columns: minmax(0, 1fr); }
  /* Example table stacks into one block per project on phones */
  .ex-table { min-width: 0; }
  .ex-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ex-table, .ex-table tbody, .ex-table tr, .ex-table th, .ex-table td { display: block; width: 100%; }
  .ex-table caption { display: block; padding-top: 12px; }
  .ex-table tr { padding-block: 14px; border-top: 1px solid var(--line); }
  .ex-table th, .ex-table td { border: 0; padding: 2px 0; }
  .ex-table tbody th { padding-bottom: 8px; }
  .ex-table .t-detail { max-width: none; }
  .ex-table td { display: flex; justify-content: space-between; gap: 16px; }
  .ex-table td::before { content: attr(data-label); color: var(--muted); font-weight: 400; }
  .doc table { min-width: 520px; }
  .doc .state-table { min-width: 0; font-size: 14px; }
  .state-table th, .state-table td { padding: 10px 6px 10px 0; }
  /* On phones the rank moves into the state cell so all four figures fit without scrolling */
  .state-table td.rank, .state-table thead th:first-child { display: none; }
  .rank-inline { display: inline; color: var(--muted); font-variant-numeric: tabular-nums; }
  .state-table .likely { padding-left: 6px; }
  .data-note { padding: 20px; }
  .data-note .btn { width: 100%; }
  .download a { display: inline-flex; align-items: center; min-height: 44px; }
  .doc { padding-block: 32px 56px; }
  .doc-lead { font-size: 17px; }
  .src-list a, .doc p a, .gsec p a, .faq-item a, .how-intro a { display: inline-block; padding-block: 10px; margin-block: -10px; }
}

/* EstimateAhead research report, 2026. No gradients, generated imagery, or icon decorations.
   Clear editorial grid + real first-party model data; reuses existing design tokens. */
.research-page { max-width: none; padding-block: 32px 88px; }
.research-page h1, .research-page h2, .research-page h3 { text-wrap: pretty; }
.research-topline { display: flex; justify-content: space-between; gap: 12px 24px; align-items: center; border-top: 1px solid var(--ink); padding-top: 10px; margin-bottom: 38px; font-size: 11px; font-weight: 700; letter-spacing: .095em; color: var(--ink-2); }
.research-header { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .7fr); column-gap: clamp(42px, 7vw, 115px); align-items: start; }
.research-kicker { font-size: 13px; font-weight: 600; color: var(--accent-dark) !important; letter-spacing: .035em; text-transform: uppercase; margin-bottom: 20px; }
.research-page .research-heading h1 { font-family: var(--font-editorial); font-size: clamp(40px, 4.3vw, 66px); font-weight: 400; letter-spacing: -.043em; line-height: 1.065; max-width: 11.7em; margin: 0 0 28px; }
.research-page .research-heading h1 em { display: block; font-weight: 400; font-style: italic; color: var(--accent-dark); }
.research-page .research-intro { font-size: clamp(19px, 1.65vw, 23px); line-height: 1.52; color: var(--ink); max-width: 31em; font-weight: 500; }
.research-page .research-deck { font-size: 16px; line-height: 1.75; max-width: 38em; color: var(--ink-2); margin-top: 18px; }
.research-actions { display: flex; gap: 14px 30px; flex-wrap: wrap; margin-top: 24px; }
.research-actions a, .research-textlink { font-size: 15px; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.research-hero-figure { align-self: end; padding: 24px 0 2px 26px; border-left: 1px solid var(--line-strong); }
.research-figure-label { color: var(--accent-dark) !important; text-transform: uppercase; font-size: 11px; font-weight: 700; letter-spacing: .11em; }
.research-big-number { display: block; font-family: var(--font-editorial); font-size: clamp(53px, 5.6vw, 78px); font-weight: 400; line-height: 1.2; letter-spacing: -.04em; padding-block: 10px 14px; white-space: nowrap; color: var(--ink); }
.research-hero-figure > p:not(.research-figure-label) { font-size: 15px; line-height: 1.55; color: var(--ink-2); max-width: 28em; }
.research-hero-figure em { font-style: normal; font-weight: 600; }
.research-endpoint { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding-block: 10px; border-top: 1px solid var(--line); font-size: 15px; }
.research-endpoint:first-of-type { margin-top: 23px; }
.research-endpoint b { font-weight: 600; }
.research-page .research-endpoint-note { margin-top: 9px; font-size: 13px !important; color: var(--muted) !important; }
.research-facts { margin-top: 54px; padding-block: 19px 15px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(185px, 1.05fr); gap: 12px 26px; align-items: center; }
.research-facts > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 12px; padding-right: 14px; border-right: 1px solid var(--line); }
.research-facts strong { font-family: var(--font-editorial); font-weight: 400; letter-spacing: -.03em; font-size: 32px; line-height: 1.15; }
.research-facts strong small { font-size: 16px; }
.research-facts span { font-size: 13px; line-height: 1.5; color: var(--muted); }
.research-facts > p { font-size: 12px; color: var(--muted); text-align: right; line-height: 1.6; }
.research-section { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 7vw, 112px); padding-top: 55px; padding-bottom: 58px; border-bottom: 1px solid var(--line); }
.research-section-label { font-size: 11px !important; font-weight: 700; letter-spacing: .10em; color: var(--accent-dark) !important; line-height: 1.6; }
.research-page .research-section h2, .research-table-heading h2, .research-bottom-cta h2 { font-family: var(--font-editorial); font-size: clamp(29px, 3.2vw, 40px); font-weight: 400; line-height: 1.16; letter-spacing: -.027em; margin: 14px 0 16px; }
.research-page .research-section-intro > p:not(.research-section-label) { max-width: 32em; font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.research-page .research-section-intro > p + p { margin-top: 12px; }
.research-plot { margin: 0; }
.plot-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 11px; border-bottom: 1px solid var(--ink); }
.research-page .plot-heading h3 { font: 600 16px/1.4 var(--font-body); margin: 0; }
.plot-heading span { font-size: 12px; color: var(--muted); }
.research-page .plot-subhead { font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: .06em; text-transform: uppercase; margin: 17px 0 6px; }
.research-page .plot-subhead-high { margin-top: 22px; }
.plot-list { margin: 0; padding: 0; list-style: none; }
.plot-row { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(80px, 1.35fr) minmax(73px, .65fr); gap: 10px 14px; align-items: center; min-height: 32px; }
.plot-state { font-size: 13.5px; font-weight: 500; color: var(--ink-2); }
.plot-track { height: 9px; position: relative; background: var(--bar-track); }
.plot-fill { position: absolute; inset: 0 auto 0 0; background: #A2B4A8; }
.plot-high .plot-fill { background: var(--accent); }
.plot-value { justify-self: end; font-size: 13.5px; font-weight: 600; }
.research-plot figcaption { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.6; color: var(--muted); }
.research-spec-list { margin: 0; border-top: 1px solid var(--ink); }
.research-spec-list > div { display: grid; grid-template-columns: minmax(110px, .65fr) minmax(0, 1.4fr); gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.research-spec-list dt { font-weight: 600; font-size: 14px; line-height: 1.55; }
.research-spec-list dd { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
.research-page .research-spec-detail-note { margin-top: 16px; font-size: 13px; line-height: 1.65; color: var(--muted); }
.research-textlink { display: inline-block; margin-top: 18px; }
.research-table-section { padding: 58px 0 65px; border-bottom: 1px solid var(--line); }
.research-table-heading { display: flex; justify-content: space-between; align-items: end; gap: 26px; margin-bottom: 23px; }
.research-table-heading h2 { margin-top: 14px; margin-bottom: 9px; }
.research-page .research-table-heading p:not(.research-section-label) { color: var(--muted); font-size: 15px; max-width: 38em; }
.research-csv-link { white-space: nowrap; display: inline-flex; align-items: baseline; gap: 10px; font-size: 14px; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 5px; padding-bottom: 6px; }
.research-csv-link span { font-size: 19px; }
.research-page .table-wrap { margin-top: 0; }
.research-page .state-table { width: 100%; font-size: 15px; table-layout: fixed; }
.research-page .state-table thead th { font-size: 12px; font-weight: 700; color: var(--ink-2); padding: 14px 16px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.research-page .state-table tbody td, .research-page .state-table tbody th { padding: 11px 16px; }
.research-page .state-table tbody tr:nth-child(5n) { border-bottom: 1px solid var(--line-strong); }
.research-page .state-table thead th:first-child, .research-page .state-table tbody td:first-child { width: 9%; padding-left: 0; }
.research-page .state-table thead th:nth-child(2) { width: 34%; }
.research-page .state-table thead th:nth-child(3), .research-page .state-table thead th:nth-child(4), .research-page .state-table thead th:nth-child(5) { width: 19%; }
.research-page .state-table tbody th { font-weight: 600; }
.research-page .state-table .likely { padding-left: 16px; background-color: #EAF0E9; font-size: 16px; }
.research-page .state-table caption { font-size: 13px; line-height: 1.6; padding-top: 14px; }
.research-page .download { color: var(--muted); font-size: 13.5px; margin-top: 26px; }
.research-explain-body { border-top: 1px solid var(--ink); }
.research-page .research-explain-body h3 { font: 600 17px/1.4 var(--font-body); margin: 24px 0 9px; letter-spacing: -.01em; }
.research-page .research-explain-body p { font-size: 15px; line-height: 1.75; color: var(--ink-2); max-width: 54em; }
.research-page .research-attribution { font-size: 13px !important; color: var(--muted) !important; padding-top: 20px; margin-top: 26px; border-top: 1px solid var(--line); }
.research-bottom-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 62px; padding: 30px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.research-bottom-cta h2 { margin: 10px 0; }
.research-page .research-bottom-cta p:not(.research-section-label) { color: var(--muted); font-size: 15px; max-width: 33em; }
.research-bottom-cta .btn { flex: 0 0 auto; }
/* Home: a single original-research feature, not a row of generic marketing cards. */
.home-research { border-top: 1px solid var(--ink); padding: 28px 0 60px; margin-top: 4px; }
.home-research-index { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 10px; color: var(--muted); font-weight: 700; letter-spacing: .08em; font-size: 11px; }
.home-research-content { padding-top: 28px; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .6fr); align-items: end; gap: 45px 80px; }
.home-research h2 { font: 400 clamp(29px, 3vw, 38px)/1.16 var(--font-editorial); letter-spacing: -.025em; margin-bottom: 12px; }
.home-research-content > div p { max-width: 41em; color: var(--ink-2); font-size: 16px; }
.home-research-content > div a { display: inline-block; font-size: 15px; font-weight: 600; margin-top: 15px; }
.home-research-spread { border-left: 1px solid var(--line-strong); padding-left: 24px; display: grid; gap: 0; }
.home-research-spread strong { font: 400 48px/1.2 var(--font-editorial); letter-spacing: -.04em; }
.home-research-spread span { font-size: 13px; color: var(--muted); line-height: 1.6; }
/* Results: guidance only until a real, active and approved partner exists. */
.result-guidance { border-left: 2px solid var(--accent); border-radius: 0 6px 6px 0; }
.result-guidance p { max-width: 42em; }
@media (max-width: 900px) {
  .research-header { grid-template-columns: minmax(0, 1fr) minmax(245px, .55fr); gap: 34px; }
  .research-facts { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .research-facts > p { grid-column: 1 / -1; text-align: left; }
  .research-section { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 34px; }
}
@media (max-width: 720px) {
  .research-page { padding-block: 25px 58px; }
  .research-topline { margin-bottom: 25px; font-size: 10px; }
  .research-header { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .research-page .research-heading h1 { font-size: clamp(39px, 8.3vw, 53px); }
  .research-page .research-intro { font-size: 19px; }
  .research-hero-figure { border-left: none; border-top: 1px solid var(--line-strong); padding: 18px 0 0; max-width: none; }
  .research-big-number { padding: 2px 0 12px; }
  .research-facts { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 35px; }
  .research-facts > div { display: block; padding-right: 6px; }
  .research-facts strong { font-size: 27px; display: block; }
  .research-facts span { display: block; font-size: 12px; }
  .research-section { grid-template-columns: minmax(0,1fr); padding: 39px 0 42px; gap: 25px; }
  .research-page .research-section h2, .research-table-heading h2, .research-bottom-cta h2 { font-size: 33px; }
  .research-table-section { padding: 45px 0 48px; }
  .research-table-heading { align-items: start; }
  .research-bottom-cta { display: block; }
  .research-bottom-cta .btn { margin-top: 20px; width: 100%; }
  .home-research-content { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .home-research-spread { border-left: none; padding: 0; border-top: 1px solid var(--line); padding-top: 15px; }
}
@media (max-width: 600px) {
  .research-page .state-table { min-width: 0; table-layout: fixed; font-size: 13px; }
  .research-page .state-table thead th { font-size: 12px; padding: 9px 5px; }
  .research-page .state-table tbody td, .research-page .state-table tbody th { padding: 10px 5px; }
  .research-page .state-table thead th:first-child, .research-page .state-table tbody td:first-child { display: none; }
  .research-page .state-table thead th:nth-child(2) { width: 37%; }
  .research-page .state-table thead th:nth-child(3), .research-page .state-table thead th:nth-child(5) { width: 20%; }
  .research-page .state-table thead th:nth-child(4) { width: 23%; }
  .research-page .state-table .likely { font-size: 13.5px; padding-left: 6px !important; }
  .research-page .state-table thead th.likely { padding-left: 6px; }
  .research-table-heading { flex-wrap: wrap; gap: 12px; }
  .plot-row { grid-template-columns: minmax(65px,1fr) minmax(85px,1.3fr) 70px; gap: 7px; }
  .plot-state, .plot-value { font-size: 12.5px; }
  .research-spec-list > div { grid-template-columns: minmax(0,1fr); gap: 3px; }
}
@media (max-width: 350px) {
  .research-topline { display: block; }
  .research-topline span + span { display: block; margin-top: 4px; }
  .research-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .research-facts > div:nth-child(2) { border-right: none; }
  .plot-row { grid-template-columns: 74px minmax(54px,1fr) 64px; gap: 4px; }
  .plot-state, .plot-value { font-size: 11.5px; }
  .research-page .state-table { font-size: 12px; }
}

/* Subtle tonal rhythm: distinguish the research evidence and final action
   without introducing rounded cards, saturated panels or new accent colours.
   Adjustments are purely presentational and persist through build.py. */
:root {
  --editorial-sage-wash: #EEF2EC;
  --editorial-warm-wash: #F1EEE8;
}
.research-visual {
  background: var(--editorial-sage-wash);
  margin-inline: -24px;
  padding-inline: 24px;
}
.research-bottom-cta {
  background: var(--editorial-warm-wash);
  margin-inline: -24px;
  padding-inline: 24px;
}
.home-research {
  background: var(--editorial-warm-wash);
  margin-inline: -24px;
  padding-inline: 24px;
}
@media (max-width: 720px) {
  .research-visual, .research-bottom-cta, .home-research {
    margin-inline: -12px;
    padding-inline: 12px;
  }
}

/* Research provenance belongs on the report itself, with readable source links.
   Treat these as editorial citations, not promotional cards. */
.research-source-strip { margin: 16px 0 3px; font-size: 12.5px; line-height: 1.65; color: var(--muted); }
.research-source-strip a { text-underline-offset: 3px; }
.research-sources { padding: 55px 0 58px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: clamp(36px, 7vw, 112px); }
.research-page .research-sources-heading h2 { font: 400 clamp(29px, 3.2vw, 40px)/1.16 var(--font-editorial); letter-spacing: -.027em; margin: 14px 0 16px; }
.research-sources-heading > p:not(.research-section-label) { font-size: 16px; color: var(--ink-2); line-height: 1.7; max-width: 33em; }
.research-source-entries { border-top: 1px solid var(--ink); }
.research-source-entry { display: grid; grid-template-columns: minmax(110px, .32fr) minmax(0, 1fr); gap: 14px 23px; padding: 18px 0 20px; border-bottom: 1px solid var(--line); }
.research-source-type { color: var(--accent-dark); font-size: 10px; font-weight: 700; letter-spacing: .07em; line-height: 1.6; }
.research-page .research-source-entry h3 { font: 600 16px/1.4 var(--font-body); letter-spacing: -.01em; margin: 0 0 7px; }
.research-page .research-source-entry p { font-size: 14px; line-height: 1.65; color: var(--ink-2); margin: 0; }
.research-source-entry a { text-underline-offset: 3px; }
.research-page .research-source-caveat { grid-column: 1 / -1; margin-top: 23px; padding: 17px 0 0; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); line-height: 1.7; }
@media (max-width: 900px) { .research-sources { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 28px; } .research-source-entry { grid-template-columns: minmax(0,1fr); gap: 4px; } }
@media (max-width: 720px) { .research-sources { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 43px 0 48px; } }

/* Small, plain-language reuse notice attached to the downloadable 50-state data. */
.research-data-license { border-top: 1px solid var(--line); margin-top: 22px; padding: 18px 0 0; max-width: 850px; }
.research-page .research-data-license-label { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: var(--accent-dark); margin: 0 0 9px; }
.research-page .research-data-license p:not(.research-data-license-label) { font-size: 13px; line-height: 1.7; color: var(--ink-2); margin: 0 0 9px; }
.research-page .research-data-license .research-license-scope { font-size: 12px; color: var(--muted); }
.research-data-license a { overflow-wrap: anywhere; text-underline-offset: 3px; }

/* ---------- Cost per square foot: controlled model comparison ---------- */
.sqft-page { color: var(--ink); }
.sqft-page .sqft-hero { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(285px,.7fr); gap:clamp(32px,7vw,110px); align-items:end; padding-bottom:57px; border-bottom:1px solid var(--ink); }
.sqft-page .sqft-hero h1 { font:400 clamp(44px,4.4vw,68px)/1.075 var(--font-editorial); letter-spacing:-.042em; margin:0 0 26px; max-width:11em; }
.sqft-page .sqft-hero h1 em { font-weight:400; display:block; color:var(--accent-dark); }
.sqft-page .sqft-lead { font-size:clamp(19px,1.7vw,24px); line-height:1.48; font-weight:500; color:var(--ink); max-width:31em; margin:0 0 21px; }
.sqft-page .sqft-intro { font-size:16px; line-height:1.75; color:var(--ink-2); max-width:38em; }
.sqft-page .sqft-key-finding { padding:22px 0 0 26px; border-left:1px solid var(--line-strong); align-self:end; }
.sqft-page .sqft-key-rate { font:400 clamp(49px,5vw,72px)/1.18 var(--font-editorial); letter-spacing:-.05em; display:block; color:var(--ink); white-space:nowrap; margin:5px 0 15px; }
.sqft-page .sqft-key-rate small { font:500 15px/1.2 var(--font-body); letter-spacing:0; color:var(--muted); }
.sqft-page .sqft-key-finding > p:not(.research-figure-label) { font-size:14.5px; line-height:1.6; color:var(--ink-2); }
.sqft-page .sqft-key-finding > p strong { color:var(--ink); }
.sqft-page .sqft-key-finding dl { margin:22px 0 0; }
.sqft-page .sqft-key-finding dl > div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; border-top:1px solid var(--line); padding:11px 0; font-size:14px; }
.sqft-page .sqft-key-finding dt { color:var(--muted); }
.sqft-page .sqft-key-finding dd { margin:0; color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.sqft-page .sqft-key-finding .sqft-key-footnote { padding-top:8px; border-top:1px solid var(--line); font-size:12.5px; color:var(--muted); }
.sqft-page .sqft-section { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(35px,6vw,90px); padding:64px 0; border-bottom:1px solid var(--line); }
.sqft-page .sqft-section h2, .sqft-page .sqft-table-section h2, .sqft-page .sqft-published h2, .sqft-page .sqft-bottom h2 { font:400 clamp(31px,3.15vw,42px)/1.17 var(--font-editorial); letter-spacing:-.027em; margin:13px 0 19px; }
.sqft-page .sqft-section p:not(.research-section-label), .sqft-page .sqft-published > div > p:not(.research-section-label) { font-size:15.5px; line-height:1.75; max-width:36em; color:var(--ink-2); }
.sqft-page .sqft-visual { border-top:1px solid var(--ink); padding-top:15px; }
.sqft-page .sqft-plot-title { display:flex; justify-content:space-between; gap:15px; align-items:baseline; }
.sqft-page .sqft-plot-title h3 { font:600 16px/1.3 var(--font-body); margin:0; }
.sqft-page .sqft-plot-title span { font-size:12px; color:var(--muted); }
.sqft-page .sqft-plot { list-style:none; padding:0; margin:24px 0; }
.sqft-page .sqft-plot-row { display:grid; grid-template-columns:minmax(65px,.7fr) minmax(90px,1.75fr) minmax(61px,.65fr); gap:12px; align-items:center; padding:11px 0; border-top:1px solid var(--line); }
.sqft-page .sqft-plot-row:last-child { border-bottom:1px solid var(--line); }
.sqft-page .sqft-plot-label { font-size:14px; font-weight:600; }
.sqft-page .sqft-plot-track { display:block; height:14px; background:var(--bar-track); }
.sqft-page .sqft-plot-fill { display:block; height:100%; background:var(--accent); }
.sqft-page .sqft-plot-value { font-size:15px; text-align:right; font-weight:600; color:var(--accent-dark); }
.sqft-page .sqft-visual .sqft-chart-note { border-top:1px solid var(--line); padding-top:14px; color:var(--muted); font-size:13px; line-height:1.65; }
.sqft-page .sqft-table-section { padding:55px 0 63px; border-bottom:1px solid var(--line); }
.sqft-page .sqft-table-section > p:not(.research-section-label) { font-size:15px; line-height:1.7; color:var(--ink-2); max-width:61em; }
.sqft-page .sqft-table-section .table-wrap { margin-top:30px; }
.sqft-page .sqft-table { min-width:640px; font-size:15px; }
.sqft-page .sqft-table thead th { border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:14px; }
.sqft-page .sqft-table th:first-child, .sqft-page .sqft-table td:first-child { padding-left:0; }
.sqft-page .sqft-table tbody th, .sqft-page .sqft-table tbody td { padding:18px 14px; }
.sqft-page .sqft-table .per-sf { font-weight:700; color:var(--accent-dark); background:#EAF0E9; }
.sqft-page .sqft-table thead .per-sf { color:var(--accent-dark); }
.sqft-page .sqft-table-section .sqft-table-caveat { margin-top:22px; font-size:13.5px; max-width:61em; }
.sqft-page .sqft-line-items { border-top:1px solid var(--ink); }
.sqft-page .sqft-line-items > div { padding:18px 0; border-bottom:1px solid var(--line); }
.sqft-page .sqft-line-items h3 { font:600 16px/1.45 var(--font-body); margin:0 0 6px; }
.sqft-page .sqft-line-items p { font-size:14.5px!important; line-height:1.75; }
.sqft-page .sqft-published { padding:58px 0 66px; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(35px,6vw,90px); border-bottom:1px solid var(--line); }
.sqft-page .sqft-source-list { border-top:1px solid var(--ink); }
.sqft-page .sqft-source-list article { border-bottom:1px solid var(--line); padding:22px 0; }
.sqft-page .sqft-source-id { font-size:10px!important; font-weight:700; color:var(--accent-dark)!important; letter-spacing:.09em; }
.sqft-page .sqft-source-list h3 { font:600 16px/1.45 var(--font-body); margin:5px 0 7px; }
.sqft-page .sqft-source-list p:not(.sqft-source-id) { font-size:14.5px; line-height:1.75; color:var(--ink-2); }
.sqft-page .sqft-bottom { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:44px 0; border-bottom:1px solid var(--line); }
.sqft-page .sqft-bottom > div { max-width:700px; }
.sqft-page .sqft-bottom p:not(.research-section-label) { font-size:15px; line-height:1.75; color:var(--ink-2); }
.sqft-page .sqft-bottom .btn { flex:0 0 auto; }
.sqft-page .sqft-additional { margin-top:15px; }
.research-page .research-related-link { font-size:13px!important; color:var(--muted)!important; margin-top:18px; }
@media(max-width:900px) {
  .sqft-page .sqft-hero { grid-template-columns:minmax(0,1fr) minmax(245px,.6fr); gap:35px; }
  .sqft-page .sqft-section, .sqft-page .sqft-published { gap:30px; }
}
@media(max-width:720px) {
  .sqft-page .sqft-hero { grid-template-columns:minmax(0,1fr); padding-bottom:37px; gap:30px; }
  .sqft-page .sqft-hero h1 { font-size:clamp(40px,9vw,56px); }
  .sqft-page .sqft-key-finding { border-left:0; border-top:1px solid var(--line-strong); padding:18px 0 0; }
  .sqft-page .sqft-key-rate { font-size:58px; }
  .sqft-page .sqft-section, .sqft-page .sqft-published { grid-template-columns:minmax(0,1fr); gap:26px; padding:42px 0; }
  .sqft-page .sqft-table-section { padding:40px 0 46px; }
  .sqft-page .sqft-bottom { display:block; }
  .sqft-page .sqft-bottom .btn { margin-top:22px; width:100%; }
}
@media(max-width:400px) {
  .sqft-page .sqft-key-rate { font-size:50px; }
  .sqft-page .sqft-plot-row { grid-template-columns:minmax(60px,.75fr) minmax(80px,1.7fr) minmax(50px,.65fr); gap:8px; }
  .sqft-page .sqft-plot-value { font-size:14px; }
}

/* 2026 SEO / editorial pass: a browsable guides section, not a card grid. */
.home-guides { padding:58px 0 76px; border-bottom:1px solid var(--line); }
.home-guides-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr); gap:28px 70px; align-items:end; padding-bottom:25px; }
.home-guides-heading h2 { margin:9px 0 0; font:400 clamp(35px,3.5vw,50px)/1.14 var(--font-editorial); letter-spacing:-.035em; }
.home-guides-heading h2 em { color:var(--accent-dark); font-weight:400; }
.home-guides-heading > p { max-width:36em; font-size:15px; line-height:1.7; color:var(--muted); }
.home-guides-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); border-top:1px solid var(--ink); }
.home-guide-entry { padding:25px 35px 12px 0; display:flex; flex-direction:column; min-height:345px; }
.home-guide-secondary { padding-left:35px; padding-right:0; border-left:1px solid var(--line); }
.home-guide-meta { display:flex; gap:15px; justify-content:space-between; color:var(--accent-dark); font-size:10px; font-weight:700; letter-spacing:.07em; }
.home-guide-entry h3 { font:400 clamp(25px,2.6vw,37px)/1.19 var(--font-editorial); letter-spacing:-.027em; margin:22px 0 15px; max-width:18em; }
.home-guide-entry > p { color:var(--ink-2); line-height:1.72; font-size:15px; max-width:36em; }
.home-guide-stat { display:flex; align-items:baseline; gap:17px; margin:20px 0; }
.home-guide-stat strong { font:400 clamp(37px,4vw,55px)/1.1 var(--font-editorial); white-space:nowrap; letter-spacing:-.045em; }
.home-guide-stat strong small { font:500 13px/1.3 var(--font-body); letter-spacing:0; }
.home-guide-stat span { font-size:12.5px; line-height:1.5; color:var(--muted); max-width:19em; }
.home-guide-entry > a { font-size:15px; font-weight:600; margin-top:auto; padding-top:11px; }
.sqft-page .sqft-byline { margin:10px 0 16px; font-size:12.5px; line-height:1.65; color:var(--muted); }
.sqft-page .sqft-cost-scopes { border-bottom:1px solid var(--line); padding:54px 0 58px; }
.sqft-page .sqft-cost-scopes-head { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:10px 45px; align-items:end; }
.sqft-page .sqft-cost-scopes-head .research-section-label { grid-column:1/-1; }
.sqft-page .sqft-cost-scopes-head h2, .sqft-page .sqft-questions h2 { font:400 clamp(31px,3.1vw,42px)/1.18 var(--font-editorial); letter-spacing:-.028em; margin:4px 0 0; }
.sqft-page .sqft-cost-scopes-head > p:not(.research-section-label) { font-size:15px; line-height:1.7; color:var(--ink-2); }
.sqft-page .sqft-scope-comparison { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:29px; background:#EEF2EC; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sqft-page .sqft-scope-comparison > div { padding:22px 20px; }
.sqft-page .sqft-scope-comparison > div+div { border-left:1px solid var(--line-strong); }
.sqft-page .sqft-scope-comparison span { color:var(--accent-dark); font-size:13px; font-weight:700; }
.sqft-page .sqft-scope-comparison strong { font:400 clamp(23px,2.7vw,34px)/1.25 var(--font-editorial); display:block; margin:10px 0; white-space:nowrap; }
.sqft-page .sqft-scope-comparison strong small { font:500 11px/1.2 var(--font-body); color:var(--muted); }
.sqft-page .sqft-scope-comparison p { font-size:13.5px; color:var(--ink-2); line-height:1.65; }
.sqft-page .sqft-scope-source { color:var(--muted); font-size:12.5px; line-height:1.7; margin-top:15px; }
.sqft-page .sqft-questions { border-bottom:1px solid var(--line); display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:40px 70px; padding:58px 0; }
.sqft-page .sqft-question-list { border-top:1px solid var(--ink); }
.sqft-page .sqft-question-list > div { padding:18px 0 20px; border-bottom:1px solid var(--line); }
.sqft-page .sqft-question-list h3 { margin:0 0 7px; font:600 16px/1.45 var(--font-body); }
.sqft-page .sqft-question-list p { margin:0; font-size:14.5px; line-height:1.75; color:var(--ink-2); }
@media(max-width:900px) {
 .home-guide-meta { display:block; }
 .home-guide-meta span+span { display:block; margin-top:4px; }
 .home-guide-stat { flex-wrap:wrap; gap:6px; }
 .sqft-page .sqft-scope-comparison strong { font-size:24px; }
 .sqft-page .sqft-scope-comparison > div { padding:18px 12px; }
}
@media(max-width:720px) {
 .home-guides-heading,.home-guides-grid { grid-template-columns:minmax(0,1fr); }
 .home-guides { padding:44px 0 54px; }
 .home-guides-heading { gap:14px; }
 .home-guide-entry,.home-guide-secondary { padding:20px 0 30px; min-height:0; border-left:0; }
 .home-guide-entry+.home-guide-entry { border-top:1px solid var(--line); }
 .home-guide-entry h3 { font-size:29px; }
 .home-guide-stat { gap:14px; }
 .sqft-page .sqft-cost-scopes-head, .sqft-page .sqft-questions { grid-template-columns:minmax(0,1fr); gap:18px; }
 .sqft-page .sqft-scope-comparison { grid-template-columns:minmax(0,1fr); }
 .sqft-page .sqft-scope-comparison > div+div { border-left:none; border-top:1px solid var(--line-strong); }
 .sqft-page .sqft-scope-comparison strong { font-size:31px; }
}

/* EstimateAhead visual direction 03: Figma-approved simplified editorial design.
   One warm hero, two research cards, and a restrained pale-sage methods band.
   No design-system dependency, external CSS or third-party tracking. */
:root {
  --bg: #F9F7F2;
  --panel: #FFFFFF;
  --ink: #25332A;
  --ink-2: #46554B;
  --muted: #657168;
  --line: #E1E3DC;
  --line-strong: #C8D0C7;
  --soft: #EAF0EB;
  --accent: #285743;
  --accent-dark: #204A38;
  --bar: #285743;
  --bar-track: #E9EDE7;
  --font-editorial: Georgia, "Times New Roman", Times, serif;
}
body { font-size:16px; line-height:1.58; }
.site-header { align-items:center; padding-block:21px 18px; }
.brand { align-items:center; }
.wordmark { font-size:21px; }
.site-nav { gap:clamp(11px,1.7vw,27px); }
.site-nav a { font-size:14px; white-space:nowrap; }
.site-nav a[aria-current="page"] { text-decoration-color:var(--accent); }
.site-footer { padding-top:30px; padding-bottom:40px; }
.footer-meta { font-size:13px; }
.btn-primary { background:var(--accent); }
.btn-primary:hover { background:var(--accent-dark); }

/* Homepage: deliberate section-level light/dark rhythm */
.ea-home .ea-kicker { color:var(--accent-dark); font-size:12px; font-weight:700; letter-spacing:.085em; text-transform:uppercase; }
.ea-home-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr); align-items:center; gap:20px; min-height:554px; padding:48px 0 60px; isolation:isolate; }
.ea-home-hero::before { content:"";position:absolute;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);background:#F9F7F2;z-index:-1; }
.ea-hero-copy { z-index:2; padding-right:8px; }
.ea-hero-copy h1 { font:400 clamp(45px,5.3vw,70px)/1.08 var(--font-editorial);letter-spacing:-.048em;margin:27px 0 28px;max-width:13em; }
.ea-hero-copy h1 em { font-weight:400;color:var(--accent); }
.ea-hero-lede { max-width:36em;font-size:18px;line-height:1.72;color:var(--ink-2); }
.ea-hero-actions { display:flex;align-items:center;gap:16px 22px;flex-wrap:wrap;margin-top:32px; }
.ea-hero-actions .btn { min-height:52px; padding:14px 19px; }
.ea-hero-actions .btn span { padding-left:13px; }
.ea-hero-actions > span { color:var(--muted);font-size:13px; }
.ea-hero-art { position:relative;height:438px;margin-right:-2px; }
.ea-art-room { position:absolute;right:0;top:0;width:93%;height:100%;background:#E4DACC;overflow:hidden;border-radius:3px; border:1px solid #DDD3C5;
  background-image:linear-gradient(90deg,transparent 98%,#D6CABA 99%),linear-gradient(0deg,transparent 98%,#D6CABA 99%);background-size:68px 68px; }
.ea-art-mirror { position:absolute;width:43%;height:53%;right:9%;top:8%;border:8px solid #A38B6B;border-radius:48% 48% 45% 45% / 25% 25% 20% 20%;background:linear-gradient(100deg,#CFD8D2 0%,#E3E3DB 72%); }
.ea-art-light { position:absolute;right:58%;top:10%;height:16%;width:2px;background:#B59466; }
.ea-art-light:after { content:"";position:absolute;left:-17px;top:37px;width:35px;height:35px;border-radius:50%;background:#FFF4DD;border:2px solid #BFA076; }
.ea-art-counter { position:absolute;bottom:17%;left:4%;width:96%;height:21px;background:#F6F3EA;border-top:3px solid #DDD9CB; }
.ea-art-vanity { position:absolute;bottom:-1%;left:8%;width:91%;height:17%;background:linear-gradient(90deg,#BAA085 0 46%,#A98B6F 46.4% 47%,#BAA085 47.4%); }
.ea-art-sink { position:absolute;bottom:20%;right:15%;width:40%;height:32px;border-radius:50%;background:#FCFAF5;box-shadow:inset 0 -4px #E6E1D8; }
.ea-art-tap { position:absolute;bottom:27%;right:32%;width:38px;height:40px;border-left:5px solid #967A50;border-top:5px solid #967A50;border-radius:5px 0 0 0; }
.ea-art-plant {position:absolute;bottom:20%;right:5%;width:34px;height:45px;background:#E8E0CE;border-radius:7px 7px 13px 13px; }
.ea-art-plant:before { content:"";position:absolute;width:3px;height:93px;bottom:35px;left:17px;background:#567861;transform:rotate(-5deg); }
.ea-art-plant:after { content:"";position:absolute;width:41px;height:19px;bottom:109px;left:-7px;border-radius:70% 0 70% 0;background:#708A68;box-shadow:30px 24px 0 -3px #6E8A6C;transform:rotate(-25deg); }
.ea-hero-art .estimate-preview { position:absolute;top:137px;right:85px;left:-56px;width:365px;max-width:calc(100% + 58px);padding:22px 23px 19px;background:#FFFFFF;border:1px solid #D9DED6;border-radius:9px;box-shadow:0 10px 28px rgba(30,45,33,.055);margin:0;z-index:1; }
.ea-hero-art .estimate-preview .preview-meta { font-size:11px;letter-spacing:.04em;color:var(--accent);font-weight:700; padding-bottom:9px; }
.ea-hero-art .estimate-preview h2 { font:400 22px/1.2 var(--font-editorial);margin:12px 0 3px; }
.ea-hero-art .preview-detail { font-size:12px; }
.ea-hero-art .preview-range { margin:11px 0 0; }
.ea-hero-art .preview-range > div { padding:6px 7px; }
.ea-hero-art .preview-range dd { font:600 16px/1.4 var(--font-body); }
.ea-hero-art .preview-range .likely { background:var(--soft);border-radius:5px; }
.ea-hero-art .preview-range .likely dd { font:400 23px/1.3 var(--font-editorial); }
.ea-hero-art .preview-note { font-size:11px;padding:7px 0 0;margin-top:5px; }
.ea-home-guides { position:relative;isolation:isolate;padding:66px 0 76px; }
.ea-home-guides::before { content:"";position:absolute;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);z-index:-1;background:#FFFFFF; }
.ea-home-guides h2, .ea-home-trust h2 { font:400 clamp(35px,4vw,49px)/1.16 var(--font-editorial);letter-spacing:-.034em;margin:14px 0; }
.ea-guides-lede { color:var(--muted);font-size:16px;margin:0 0 29px; }
.ea-guide-cards { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.ea-guide-card { display:flex;flex-direction:column;min-height:247px; padding:24px 28px 27px;border:1px solid #E5E6E0;border-radius:9px;background:#F8F6F0; }
.ea-guide-card-green { background:#EDF2ED;border-color:#DEE8DF; }
.ea-card-kicker { color:var(--accent);font-size:11px;letter-spacing:.08em;font-weight:700; }
.ea-guide-card h3 { font:400 clamp(25px,2.8vw,32px)/1.18 var(--font-editorial);letter-spacing:-.02em;max-width:17em;margin:14px 0; }
.ea-guide-card h3 a { text-decoration:none;color:var(--ink); }
.ea-guide-card h3 a:hover { text-decoration:underline; text-decoration-color:var(--accent); }
.ea-guide-card > p:not(.ea-card-kicker) { max-width:36em;color:var(--ink-2);font-size:14.5px;line-height:1.6; }
.ea-card-link {display:inline-block;margin-top:auto;padding-top:22px;font-size:14px;font-weight:700;}
.ea-home-trust {display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:start;position:relative;isolation:isolate;padding:72px 0 85px;}
.ea-home-trust::before { content:"";position:absolute;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);z-index:-1;background:var(--soft); }
.ea-home-trust h2 {max-width:14em;margin:18px 0 0;}
.ea-trust-copy {border-left:1px solid #CBD9CE;padding-left:45px;min-height:174px;}
.ea-trust-copy h3 {font-size:19px;margin:0 0 18px;}
.ea-trust-copy p {font-size:15.5px;line-height:1.7;color:var(--ink-2);max-width:36em;}
.ea-trust-copy a {font-size:14px;font-weight:700;display:inline-block;margin:19px 22px 0 0;}
/* Refinements shared by research report, cost guide and calculator */
.calc-landing .lp h1, .calc-landing .display {color:var(--ink);}
.calc-landing {background:var(--bg);}
.wizard { padding:50px 0 80px; }
.wizard .step-title {font-family:var(--font-editorial);font-weight:400;font-size:clamp(32px,4.5vw,44px);letter-spacing:-.028em;}
.wizard .step-intro {font-size:16px;line-height:1.7;}
.progress {height:4px;border-radius:4px;background:#E3E8E1;}
.opt .box {background:#FFFFFF;}
.opt:hover .box {border-color:#9AB6A3;}
.opt input:checked + .box {background:var(--soft);}
.wizard-nav {border-top:1px solid var(--line);}
/* Guides: clear section separation and scannable financial data */
.research-page {background:transparent;}
.research-page .research-heading h1,.sqft-page .sqft-hero h1 { color:var(--ink); }
.research-hero-figure,.sqft-page .sqft-key-finding {background:var(--soft);border:1px solid #DAE4DC;border-radius:9px;padding:26px;}
.research-page .research-hero-figure {border-left:1px solid #DAE4DC;}
.sqft-page .sqft-key-finding {border-left:1px solid #DAE4DC;}
.research-geography-note {font-size:13.5px;line-height:1.67;color:var(--muted);max-width:48em;margin-top:13px;}
.sqft-page .sqft-section {padding:45px 28px;gap:40px;background:#FFFFFF;border:1px solid var(--line);border-radius:8px;margin-top:30px;}
.sqft-page .sqft-visual {background:#F5F7F3;border-radius:8px;padding:20px;border-top:none;}
.sqft-page .sqft-table-section {padding:54px 24px;background:#FFFFFF;border:1px solid var(--line);border-radius:8px;margin-top:28px;}
.sqft-page .sqft-cost-scopes,.sqft-page .sqft-published,.sqft-page .sqft-questions {padding:42px 28px;background:#F0F3EE;border-radius:8px;margin-top:28px;border:1px solid #E1E7DE;}
.sqft-page .sqft-cost-scopes,.sqft-page .sqft-questions {background:#FFFFFF;}
.sqft-page .sqft-source-list,.sqft-page .sqft-question-list {border-top:none;}
.sqft-page .sqft-bottom {padding:32px;background:var(--soft);border:1px solid #D8E3D9;border-radius:8px;margin-top:29px;}
.research-table-section {background:#FFFFFF;border:1px solid var(--line);border-radius:8px;padding:44px 30px;}
.research-sources {background:#F0F3EE;border-radius:8px;padding:35px 28px;}
.research-spec {background:#FFFFFF;border:1px solid var(--line);padding:38px 28px;border-radius:8px;}
.research-interpretation {background:#FFFFFF;border:1px solid var(--line);border-radius:8px;padding:38px 28px;margin-top:24px;}
.research-plot {background:#F6F8F5;border-radius:8px;padding:20px!important;border-top:0!important;}
.ea-press-note {margin-top:26px;padding:21px 24px;border:1px solid #DDE5DB;background:var(--soft);border-radius:6px;}
.ea-press-note h3 {font-size:17px;margin:0 0 10px;}
.ea-press-note p {font-size:14px;line-height:1.67;color:var(--ink-2);max-width:75em;}
.ea-press-note p+p {margin-top:9px;}
.doc:not(.research-page) {padding-top:57px;}
.doc:not(.research-page) h1 {font:400 clamp(38px,4vw,49px)/1.18 var(--font-editorial);}
.doc:not(.research-page) h2 {font:400 27px/1.25 var(--font-editorial);}
/* Reduce excess whitespace and keep long content legible on all devices */
@media(max-width:1000px){
  .ea-home-hero {grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);}
  .ea-hero-copy h1 {font-size:clamp(44px,5.5vw,58px);}
  .ea-hero-art .estimate-preview {left:-22px;right:20px;}
  .tagline {display:none;}
}
@media(max-width:760px){
  .ea-home-hero {display:block;padding:42px 0 44px;min-height:0;}
  .ea-hero-copy h1 {font-size:clamp(41px,9vw,57px);}
  .ea-hero-lede {font-size:17px;}
  .ea-hero-art {margin:35px 0 0;height:390px;}
  .ea-art-room {width:100%;}
  .ea-hero-art .estimate-preview {left:12px;right:12px;top:121px;width:min(365px,calc(100% - 24px));max-width:none;}
  .ea-guide-cards,.ea-home-trust {grid-template-columns:1fr;}
  .ea-home-trust {gap:20px; padding:49px 0 55px;}
  .ea-trust-copy {border-left:none;border-top:1px solid #CBD9CE;padding:22px 0 0;}
  .ea-home-guides {padding:50px 0;}
  .research-sources,.research-table-section,.research-spec,.research-interpretation {padding:24px 14px;}
  .sqft-page .sqft-section,.sqft-page .sqft-table-section,.sqft-page .sqft-cost-scopes,.sqft-page .sqft-published,.sqft-page .sqft-questions,.sqft-page .sqft-bottom {padding:26px 16px;}
  .site-header {flex-wrap:wrap;gap:13px;}
  .site-nav {width:100%;justify-content:space-between;gap:9px;}
  .site-nav a {font-size:13px;}
  .research-page .research-hero-figure,.sqft-page .sqft-key-finding {padding:21px;}
}
@media(max-width:400px){
  .ea-hero-actions .btn {width:100%;}
  .ea-hero-art {height:380px;}
  .ea-hero-art .estimate-preview {top:124px;}
  .ea-guide-card {padding:23px;min-height:230px;}
  .ea-home-guides h2,.ea-home-trust h2 {font-size:36px;}
  .site-nav a {font-size:12.4px;}
}
@media(max-width:360px){
 .site-nav {gap:4px;justify-content:space-between;}
 .site-nav a {font-size:11.2px;letter-spacing:-.012em;}
}
@media(min-width:761px){
 .ea-hero-lede {max-width:25em;}
}
