/* Hallmark · genre: editorial · macrostructure: Split Studio · theme: custom (tuned) · v2 "premium"
 * vibe: "night slate, brokerage red, cream paper, desert ridge"
 * paper oklch(98.2% 0.006 80) · night oklch(24% 0.03 213) TRA slate · accent oklch(52% 0.193 23) TRA red
 * display: DM Serif Display · body: Outfit (Julio's proven pair from the listing sites)
 * axes: dark-hero on light page / high-contrast-serif / warm · nav: N9 edge-aligned · footer: Ft1 mast-headed
 * enrichment: real photo cut-out + hand-built SVG ridge line (Tier B)
 */
:root {
  /* colour */
  --color-paper: oklch(98.2% 0.006 80);
  --color-paper-2: oklch(95.6% 0.012 76);
  --color-paper-3: oklch(91.5% 0.018 74);
  --color-raised: oklch(99.6% 0.003 80);
  --color-ink: oklch(26% 0.031 213);
  --color-ink-2: oklch(40% 0.026 215);
  --color-ink-3: oklch(52% 0.02 215);
  --color-line: oklch(87% 0.014 76);
  --color-line-strong: oklch(76% 0.018 76);
  --color-night: oklch(23.5% 0.03 213);
  --color-night-2: oklch(34% 0.04 215);
  --color-night-line: oklch(97% 0.006 80 / 0.14);
  --color-accent: oklch(52% 0.193 23);
  --color-accent-deep: oklch(45% 0.17 23);
  --color-accent-wash: oklch(95.5% 0.025 23);
  --color-accent-on-dark: oklch(72% 0.145 22);
  --color-slate: oklch(29% 0.036 218);
  --color-slate-2: oklch(35% 0.04 218);
  --color-on-dark: oklch(97.5% 0.006 80);
  --color-on-dark-2: oklch(84% 0.018 215);
  --color-on-dark-3: oklch(74% 0.02 215);
  --color-focus: oklch(55% 0.16 255);
  --color-focus-on-dark: oklch(80% 0.12 230);
  --color-ok: oklch(48% 0.12 155);
  --color-ok-wash: oklch(95.5% 0.03 155);
  --color-error: oklch(50% 0.19 28);

  /* type */
  --font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
  --font-body: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
  --text-xs: 0.8125rem;
  --text-sm: 0.9375rem;
  --text-base: 1.0625rem;
  --text-lg: 1.1875rem;
  --text-xl: 1.375rem;
  --text-2xl: clamp(1.5rem, 1.25rem + 0.9vw, 1.875rem);
  --text-3xl: clamp(2rem, 1.45rem + 2.2vw, 3.25rem);
  --text-display: clamp(2.5rem, 1.65rem + 3.5vw, 4.5rem);

  /* space (4 pt) */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4.5rem;
  --space-3xl: clamp(4.5rem, 3rem + 5vw, 8rem);

  /* shape */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --rule-hair: 1px;
  --shadow-card: 0 1px 2px oklch(23.5% 0.03 213 / 0.08), 0 18px 48px -18px oklch(23.5% 0.03 213 / 0.28);
  --shadow-float: 0 2px 4px oklch(10% 0.02 213 / 0.2), 0 30px 70px -20px oklch(10% 0.02 213 / 0.55);

  /* motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in: cubic-bezier(0.55, 0, 1, 0.45);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
  --dur-reveal: 640ms;

  --measure: 62ch;
  --page-max: 1200px;
  --gutter: clamp(1rem, 0.6rem + 2vw, 2rem);
}

/* Hallmark · genre: editorial · macrostructure: Split Studio · theme: custom (tuned) v2 · enrichment: photo cut-out + SVG ridge · nav: N9 · footer: Ft1 */

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: clip;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.6;
  font-feature-settings: "kern", "liga";
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
[hidden] { display: none !important; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 var(--space-sm); }
h1, h2, h3 {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.01em;
  margin: 0;
  overflow-wrap: anywhere;
  min-width: 0;
  text-wrap: balance;
}
h1 { font-size: var(--text-display); }
h2 { font-size: var(--text-3xl); }
h3 { font-family: var(--font-body); font-size: var(--text-xl); line-height: 1.25; font-weight: 600; letter-spacing: 0; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: var(--space-sm); top: -100px; z-index: 50; background: var(--color-ink); color: var(--color-on-dark); padding: var(--space-2xs) var(--space-sm); border-radius: var(--radius-sm); }
.skip:focus { top: var(--space-sm); }
.wrap { width: 100%; max-width: var(--page-max); margin: 0 auto; padding: 0 var(--gutter); }
.preview-banner { margin: 0; padding: var(--space-2xs) var(--gutter); background: var(--color-paper-2); color: var(--color-ink); font-size: var(--text-xs); font-weight: 600; text-align: center; line-height: 1.4; }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2xs);
  min-height: 52px; padding: 0 var(--space-md);
  border-radius: var(--radius-sm); border: 2px solid transparent;
  font: 600 var(--text-base)/1 var(--font-body);
  letter-spacing: 0.01em;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.btn:active { transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; transform: none; }
.btn--primary { background: var(--color-accent); color: var(--color-on-dark); box-shadow: 0 8px 22px -10px oklch(52% 0.193 23 / 0.7); }
.btn--primary:hover { background: var(--color-accent-deep); }
.btn--ghost { background: transparent; color: var(--color-ink); border-color: var(--color-ink); }
.btn--ghost:hover { background: var(--color-ink); color: var(--color-on-dark); }
.btn--light { background: transparent; color: var(--color-on-dark); border-color: var(--color-night-line); }
.btn--light:hover { background: var(--color-on-dark); color: var(--color-ink); border-color: var(--color-on-dark); }
.btn--quiet { background: transparent; color: var(--color-ink-2); border-color: transparent; padding: 0 var(--space-xs); min-height: 44px; box-shadow: none; }
.btn--quiet:hover { color: var(--color-ink); text-decoration: underline; text-underline-offset: 3px; }
.btn svg { width: 1.1em; height: 1.1em; flex: none; }
.btn.is-loading { pointer-events: none; }
.btn .spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: spin 700ms linear infinite; display: none; }
.btn.is-loading .spinner { display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- masthead (N9 edge-aligned) ---------- */
.masthead { border-bottom: var(--rule-hair) solid var(--color-line); background: var(--color-paper); }
.masthead__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); min-height: 76px; }
.masthead__logo { flex: none; }
.masthead__logo img { width: auto; height: 40px; }
.masthead__actions { display: flex; align-items: center; gap: var(--space-2xs); }
.masthead__lang { font-weight: 500; font-size: var(--text-sm); color: var(--color-ink-2); padding: var(--space-2xs); white-space: nowrap; text-underline-offset: 3px; }
.masthead__lang:hover { color: var(--color-ink); }
.masthead__call { min-height: 44px; padding: 0 var(--space-sm); font-size: var(--text-sm); }
.masthead__call .num { display: none; }
.masthead--dark { background: var(--color-night); border-bottom-color: var(--color-night-line); }
.masthead--dark .masthead__lang { color: var(--color-on-dark-2); }
.masthead--dark .masthead__lang:hover { color: var(--color-on-dark); }
.masthead--dark :focus-visible { outline-color: var(--color-focus-on-dark); }
@media (min-width: 640px) {
  .masthead__logo img { height: 46px; }
  .masthead__call .num { display: inline; }
  .masthead__call .word { display: none; }
}

/* ---------- hero (dark, Val is the star) ---------- */
.hero {
  position: relative; isolation: isolate;
  background:
    radial-gradient(60% 55% at 82% 18%, var(--color-night-2), transparent 70%),
    radial-gradient(40% 40% at 10% 0%, oklch(30% 0.035 215 / 0.6), transparent 70%),
    var(--color-night);
  color: var(--color-on-dark);
  padding: var(--space-md) 0 calc(var(--space-2xl) + 40px);
}
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero :focus-visible { outline-color: var(--color-focus-on-dark); }
.hero .lead :focus-visible { outline-color: var(--color-focus); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); align-items: start; }
.hero__intro { max-width: 41rem; }
.hero h1 { margin-bottom: var(--space-md); }
.hero h1 .mark { color: var(--color-accent-on-dark); }
.hero__lede { font-size: var(--text-lg); color: var(--color-on-dark-2); max-width: 36rem; margin-bottom: var(--space-lg); font-weight: 300; line-height: 1.65; }
.hero__place { display: none; }

/* phones: Val's portrait strip above the headline */
.hero__me { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--space-sm); margin: 0 0 var(--space-md); border-bottom: var(--rule-hair) solid var(--color-night-line); }
.hero__me-text { padding-bottom: var(--space-md); }
.hero__name { font-family: var(--font-display); font-size: 2rem; line-height: 1; margin: 0 0 var(--space-2xs); }
.hero__role { font-size: 0.875rem; color: var(--color-on-dark-3); line-height: 1.45; margin: 0; }
.hero__role::before { content: ""; display: block; width: 28px; height: 2px; background: var(--color-accent); margin-bottom: var(--space-2xs); }
.hero__me-img { height: 196px; width: auto; }

.hero__aside { display: none; }
.portrait { margin: 0; position: relative; }
.portrait::before { content: ""; position: absolute; left: 6%; right: 6%; top: 8%; bottom: 14%; border-radius: 50%; background: radial-gradient(closest-side, oklch(42% 0.045 215 / 0.9), transparent); z-index: -1; }
.portrait img { width: 100%; max-width: 470px; margin: 0 auto; -webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent 100%); mask-image: linear-gradient(to bottom, #000 80%, transparent 100%); }
.portrait__plate { position: relative; margin-top: calc(var(--space-xl) * -1); padding: 0 var(--space-md); }
.portrait__name { display: block; font-family: var(--font-display); font-size: 2.5rem; line-height: 1; }
.portrait__role { display: block; margin-top: var(--space-2xs); color: var(--color-on-dark-2); font-size: var(--text-sm); }
.portrait__role::before { content: ""; display: inline-block; vertical-align: middle; width: 28px; height: 2px; background: var(--color-accent); margin-right: var(--space-xs); }

@media (min-width: 960px) {
  .hero { padding: var(--space-2xl) 0 calc(var(--space-3xl) + 40px); }
  .hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); }
  .hero__me { display: none; }
  .hero__place { display: flex; align-items: center; gap: var(--space-xs); margin: 0 0 var(--space-md); font-size: var(--text-sm); color: var(--color-on-dark-3); letter-spacing: 0.02em; }
  .hero__place::before { content: ""; width: 28px; height: 2px; background: var(--color-accent); }
  .hero__aside { display: block; position: sticky; top: var(--space-lg); }
}
@media (prefers-reduced-motion: no-preference) {
  .portrait img, .hero__me-img { animation: settle 1100ms var(--ease-out) both; }
  @keyframes settle { from { opacity: 0; transform: translateY(14px) scale(1.02); } to { opacity: 1; transform: none; } }
}

/* ---------- facts band with the desert ridge ---------- */
.facts { position: relative; background: var(--color-accent); color: var(--color-on-dark); padding: var(--space-lg) 0 var(--space-xl); }
.facts__ridge { position: absolute; left: 0; right: 0; bottom: 100%; width: 100%; height: 64px; display: block; color: var(--color-accent); }
.facts__ridge path { fill: currentColor; }
.facts__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg) var(--space-md); }
.facts__list li { border-top: var(--rule-hair) solid oklch(97% 0.006 80 / 0.35); padding-top: var(--space-sm); }
.facts__big { display: block; font-family: var(--font-display); font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem); line-height: 1; margin-bottom: var(--space-2xs); }
.facts__small { display: block; font-size: var(--text-sm); line-height: 1.4; color: oklch(97% 0.006 80 / 0.88); }
@media (min-width: 900px) { .facts__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- lead form ---------- */
.lead { position: relative; background: var(--color-raised); color: var(--color-ink); border-radius: var(--radius-lg); box-shadow: var(--shadow-float); padding: var(--space-md); scroll-margin-top: var(--space-md); }
.lead::before { content: ""; position: absolute; left: var(--space-md); right: var(--space-md); top: 0; height: 3px; border-radius: 0 0 3px 3px; background: var(--color-accent); }
@media (min-width: 640px) { .lead { padding: var(--space-lg); } .lead::before { left: var(--space-lg); right: var(--space-lg); } }
.lead__progress { display: none; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-bottom: var(--space-md); font-size: var(--text-sm); color: var(--color-ink-2); font-weight: 500; }
.lead__bar { display: flex; gap: 6px; flex: 1; max-width: 160px; }
.lead__bar span { flex: 1; height: 5px; border-radius: 3px; background: var(--color-paper-3); }
.lead__bar span.is-on { background: var(--color-accent); }
.js .lead__progress { display: flex; }
.step { border: 0; margin: 0 0 var(--space-lg); padding: 0; min-width: 0; }
.js .step { display: none; margin-bottom: 0; }
.js .step.is-active { display: block; animation: stepIn var(--dur-base) var(--ease-out); }
@keyframes stepIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.step__title { font-family: var(--font-display); font-weight: 400; font-size: var(--text-2xl); line-height: 1.12; margin: 0 0 var(--space-md); padding: 0; }
.step__hint { color: var(--color-ink-2); font-size: var(--text-sm); margin: calc(var(--space-sm) * -1) 0 var(--space-md); }

.tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
@media (min-width: 420px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tile { position: relative; }
.tile input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.tile label { display: block; height: 100%; padding: var(--space-sm) var(--space-sm) var(--space-sm) 3rem; border: 1.5px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-raised); cursor: pointer; transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.tile label::before { content: ""; position: absolute; left: var(--space-sm); top: calc(var(--space-sm) + 2px); width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--color-line-strong); background: var(--color-raised); transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.tile__name { display: block; font-weight: 600; line-height: 1.3; }
.tile__note { display: block; font-size: var(--text-sm); color: var(--color-ink-2); line-height: 1.35; margin-top: 2px; }
.tile:hover label { border-color: var(--color-line-strong); box-shadow: 0 6px 18px -12px oklch(23.5% 0.03 213 / 0.4); }
.tile input:checked + label { border-color: var(--color-accent); background: var(--color-accent-wash); }
.tile input:checked + label::before { border-color: var(--color-accent); box-shadow: inset 0 0 0 4px var(--color-raised), inset 0 0 0 10px var(--color-accent); }
.tile input:focus-visible + label { outline: 3px solid var(--color-focus); outline-offset: 2px; }

.field { margin-bottom: var(--space-md); }
.field label, .field .label { display: block; font-weight: 600; margin-bottom: var(--space-2xs); line-height: 1.3; }
.field .opt { font-weight: 400; color: var(--color-ink-3); }
.field input[type="text"], .field input[type="tel"], .field input[type="email"], .field select, .field textarea {
  width: 100%; min-height: 52px; padding: var(--space-xs) var(--space-sm);
  border: 1.5px solid var(--color-line-strong); border-radius: var(--radius-sm);
  background: var(--color-raised); color: var(--color-ink);
  font: 400 var(--text-base)/1.4 var(--font-body);
  transition: border-color var(--dur-fast) var(--ease-out);
}
.field textarea { min-height: 96px; resize: vertical; }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--color-ink-2) 50%), linear-gradient(135deg, var(--color-ink-2) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 2.75rem; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--color-ink-3); }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 1px; border-color: var(--color-focus); }
.field input[disabled], .field select[disabled] { background: var(--color-paper-2); cursor: not-allowed; }
.field.has-error input, .field.has-error select { border-color: var(--color-error); }
.field__error { display: none; color: var(--color-error); font-size: var(--text-sm); font-weight: 600; margin: var(--space-2xs) 0 0; }
.field.has-error .field__error { display: block; }
.row2 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--space-sm); }
@media (min-width: 520px) { .row2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

.chips { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; width: 100%; height: 100%; cursor: pointer; }
.chip label { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-sm); border: 1.5px solid var(--color-line); border-radius: 999px; font-weight: 500; font-size: var(--text-sm); cursor: pointer; white-space: nowrap; transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }
.chip:hover label { border-color: var(--color-line-strong); }
.chip input:checked + label { border-color: var(--color-ink); background: var(--color-ink); color: var(--color-on-dark); }
.chip input:focus-visible + label { outline: 3px solid var(--color-focus); outline-offset: 2px; }

.consent { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-xs); align-items: start; padding: var(--space-sm); border-radius: var(--radius-md); background: var(--color-paper-2); margin-bottom: var(--space-md); }
.consent input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--color-accent); cursor: pointer; }
.consent label { font-size: var(--text-xs); line-height: 1.5; color: var(--color-ink-2); cursor: pointer; }
.consent a { color: var(--color-ink); font-weight: 600; }

.lead__nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-top: var(--space-md); }
.lead__nav .btn--primary { flex: 1; }
.lead__nav .btn--quiet { flex: none; }
html:not(.js) [data-next], html:not(.js) [data-back] { display: none; }
.lead__fine { font-size: var(--text-xs); color: var(--color-ink-3); margin: var(--space-sm) 0 0; }
.lead__alert { display: none; margin: var(--space-sm) 0 0; padding: var(--space-sm); border-radius: var(--radius-sm); background: var(--color-accent-wash); color: var(--color-ink); font-size: var(--text-sm); font-weight: 600; }
.lead__alert.is-on { display: block; }
.lead__alert a { color: var(--color-accent-deep); white-space: nowrap; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.done { display: none; text-align: left; }
.lead.is-done form { display: none; }
.lead.is-done .done { display: block; animation: stepIn var(--dur-slow) var(--ease-out); }
.done__mark { width: 52px; height: 52px; border-radius: 50%; background: var(--color-ok-wash); color: var(--color-ok); display: grid; place-items: center; margin-bottom: var(--space-sm); }
.done__mark svg { width: 26px; height: 26px; }
.done h2 { font-size: var(--text-2xl); margin-bottom: var(--space-xs); }
.done p { color: var(--color-ink-2); }

/* ---------- sections (Split Studio rows) ---------- */
.band { padding: var(--space-3xl) 0; }
.band--tint { background: var(--color-paper-2); }
.split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); align-items: center; }
@media (min-width: 900px) {
  .split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2xl); }
  .split--flip > :first-child { order: 2; }
}
.split__text h2 { margin-bottom: var(--space-md); }
.split__text h2::after { content: ""; display: block; width: 48px; height: 3px; background: var(--color-accent); margin-top: var(--space-md); }
.split__text p { color: var(--color-ink-2); max-width: var(--measure); font-size: var(--text-lg); font-weight: 300; line-height: 1.7; }
.split__text .btn { margin-top: var(--space-sm); }
.note { font-size: var(--text-sm); color: var(--color-ink-3); border-left: 2px solid var(--color-line-strong); padding-left: var(--space-sm); margin-top: var(--space-md); max-width: var(--measure); }
.split__text p.note { font-size: var(--text-sm); font-weight: 400; line-height: 1.55; color: var(--color-ink-3); }

.points { list-style: none; margin: var(--space-md) 0 0; padding: 0; }
.points li { position: relative; padding: var(--space-sm) 0 var(--space-sm) 2.25rem; border-top: var(--rule-hair) solid var(--color-line); color: var(--color-ink-2); }
.points li:last-child { border-bottom: var(--rule-hair) solid var(--color-line); }
.points li strong { color: var(--color-ink); display: block; font-size: var(--text-lg); font-weight: 600; line-height: 1.3; margin-bottom: 2px; }
.points li::before { content: ""; position: absolute; left: 0; top: calc(var(--space-sm) + 4px); width: 20px; height: 20px; border-radius: 50%; background: var(--color-accent-wash); }
.points li::after { content: ""; position: absolute; left: 6px; top: calc(var(--space-sm) + 9px); width: 8px; height: 5px; border-left: 2px solid var(--color-accent); border-bottom: 2px solid var(--color-accent); transform: rotate(-45deg); }

/* report sheet (seller proof) */
.sheet { position: relative; background: var(--color-raised); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: var(--space-lg); }
.sheet::before { content: ""; position: absolute; inset: 10px; border: var(--rule-hair) solid var(--color-line); border-radius: calc(var(--radius-lg) - 6px); pointer-events: none; }
.sheet__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); padding-bottom: var(--space-sm); border-bottom: 2px solid var(--color-ink); }
.sheet__title { font-family: var(--font-display); font-size: var(--text-2xl); line-height: 1.1; }
.sheet__head img { height: 30px; width: auto; flex: none; }
.sheet__rows { list-style: none; margin: 0; padding: 0; counter-reset: sheet; }
.sheet__rows li { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: var(--space-xs); padding: var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--color-line); counter-increment: sheet; }
.sheet__rows li::before { content: counter(sheet, decimal-leading-zero); font-family: var(--font-display); color: var(--color-accent); font-size: var(--text-xl); line-height: 1.2; }
.sheet__rows strong { display: block; line-height: 1.3; font-weight: 600; }
.sheet__rows span { display: block; color: var(--color-ink-2); font-size: var(--text-sm); }
.sheet__foot { margin: var(--space-sm) 0 0; font-size: var(--text-xs); color: var(--color-ink-3); letter-spacing: 0.02em; }

/* towns (buyer proof) */
.towns { list-style: none; margin: 0; padding: 0; }
.towns li { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-sm); padding: var(--space-xs) 0; border-bottom: var(--rule-hair) solid var(--color-line-strong); }
.towns li:first-child { border-top: 2px solid var(--color-ink); }
.towns__name { font-family: var(--font-display); font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.25rem); line-height: 1.12; letter-spacing: -0.01em; }
.towns__tag { font-size: var(--text-sm); color: var(--color-ink-3); text-align: right; }
.towns__lead { font-weight: 600; color: var(--color-ink-2); margin: 0 0 var(--space-sm); letter-spacing: 0.02em; }

/* steps */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.steps li { display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); gap: var(--space-sm); padding: var(--space-md) 0; border-top: var(--rule-hair) solid var(--color-line-strong); counter-increment: step; }
.steps li:last-child { border-bottom: var(--rule-hair) solid var(--color-line-strong); }
.steps li::before { content: counter(step); font-family: var(--font-display); font-size: 3.5rem; line-height: 0.9; color: var(--color-accent); }
.steps h3 { margin-bottom: var(--space-3xs); }
.steps p { margin: 0; color: var(--color-ink-2); }

/* office card */
.office { position: relative; overflow: hidden; background: var(--color-night); color: var(--color-on-dark); border-radius: var(--radius-lg); padding: var(--space-lg); box-shadow: var(--shadow-card); }
.office::after { content: ""; position: absolute; right: -20%; top: -30%; width: 70%; height: 90%; background: radial-gradient(closest-side, var(--color-night-2), transparent); pointer-events: none; }
.office > * { position: relative; z-index: 1; }
.office img { height: 44px; width: auto; margin-bottom: var(--space-md); }
.office dl { margin: 0; display: grid; gap: var(--space-sm); }
.office dt { font-size: var(--text-xs); color: var(--color-on-dark-3); font-weight: 500; letter-spacing: 0.04em; }
.office dd { margin: 0; font-size: var(--text-lg); font-weight: 500; line-height: 1.35; }
.office a { color: var(--color-on-dark); text-underline-offset: 3px; }
.office a:hover { text-decoration-thickness: 2px; }
.office :focus-visible { outline-color: var(--color-focus-on-dark); }

/* faq */
.faq { max-width: 52rem; }
.faq h2 { margin-bottom: var(--space-lg); }
.faq details { border-top: var(--rule-hair) solid var(--color-line-strong); }
.faq details:last-of-type { border-bottom: var(--rule-hair) solid var(--color-line-strong); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); padding: var(--space-md) 0; font-weight: 600; font-size: var(--text-lg); line-height: 1.35; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 12px; height: 12px; border-right: 2.5px solid var(--color-accent); border-bottom: 2.5px solid var(--color-accent); transform: rotate(45deg) translate(-3px, -3px); transition: transform var(--dur-base) var(--ease-out); }
.faq details[open] summary::after { transform: rotate(-135deg) translate(-3px, -3px); }
.faq summary:hover { color: var(--color-accent-deep); }
.faq details p { color: var(--color-ink-2); max-width: var(--measure); padding-bottom: var(--space-sm); font-weight: 300; font-size: var(--text-lg); line-height: 1.65; }

/* closing band */
.closing { position: relative; overflow: hidden; background: radial-gradient(50% 80% at 85% 30%, var(--color-night-2), transparent 70%), var(--color-night); color: var(--color-on-dark); padding: var(--space-3xl) 0 0; }
.closing__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); align-items: end; }
.closing__text { padding-bottom: var(--space-3xl); }
.closing h2 { max-width: 16ch; }
.closing p { color: var(--color-on-dark-2); max-width: 44ch; margin: var(--space-sm) 0 var(--space-lg); font-size: var(--text-lg); font-weight: 300; }
.closing__acts { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.closing__img { display: none; }
.closing :focus-visible { outline-color: var(--color-focus-on-dark); }
@media (min-width: 900px) {
  .closing__row { grid-template-columns: minmax(0, 1fr) 360px; }
  .closing__img { display: block; width: 360px; height: auto; align-self: end; filter: drop-shadow(0 20px 40px oklch(8% 0.02 213 / 0.5)); }
}

/* footer (Ft1 mast-headed) */
.foot { background: var(--color-ink); color: var(--color-on-dark-2); padding: var(--space-xl) 0 calc(var(--space-xl) + 72px); font-size: var(--text-sm); border-top: var(--rule-hair) solid var(--color-night-line); }
@media (min-width: 900px) { .foot { padding-bottom: var(--space-xl); } }
.foot__mast { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-md); padding-bottom: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-night-line); }
.foot__mast img { height: 44px; width: auto; }
.foot__contact { color: var(--color-on-dark); font-weight: 500; line-height: 1.5; }
.foot__contact a { color: var(--color-on-dark); text-underline-offset: 3px; }
.foot__legal { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); padding-top: var(--space-md); }
@media (min-width: 900px) { .foot__legal { grid-template-columns: minmax(0, 1fr) auto; align-items: start; } }
.foot__legal p { margin: 0 0 var(--space-2xs); max-width: 70ch; }
.foot__links { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-md); margin-top: var(--space-sm); }
.foot__links a { color: var(--color-on-dark); white-space: nowrap; text-underline-offset: 3px; }
.foot :focus-visible { outline-color: var(--color-focus-on-dark); }
.eho { display: flex; align-items: center; gap: var(--space-xs); color: var(--color-on-dark); font-weight: 500; white-space: nowrap; }
.eho svg { width: 40px; height: 40px; flex: none; }

/* mobile action bar */
.callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--space-2xs); padding: var(--space-2xs) var(--gutter) calc(var(--space-2xs) + env(safe-area-inset-bottom)); background: oklch(98.2% 0.006 80 / 0.94); backdrop-filter: blur(10px); border-top: var(--rule-hair) solid var(--color-line-strong); transform: translateY(110%); transition: transform var(--dur-slow) var(--ease-out); }
.callbar .btn { min-height: 48px; padding: 0 var(--space-sm); }
.callbar.is-on { transform: none; }
@media (min-width: 900px) { .callbar { display: none; } }

/* sections rise in as they arrive (only once the script has set this up) */
.reveal-ready .reveal { opacity: 0; transform: translateY(18px); transition: opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out); }
.reveal-ready .reveal.is-in { opacity: 1; transform: none; }

/* simple pages (privacy, thanks, 404) */
.doc { padding: var(--space-2xl) 0 var(--space-3xl); }
.doc__body { max-width: 46rem; }
.doc h1 { font-size: var(--text-3xl); margin-bottom: var(--space-md); }
.doc h2 { font-size: var(--text-2xl); margin: var(--space-xl) 0 var(--space-sm); }
.doc p, .doc li { color: var(--color-ink-2); }
.doc ul { padding-left: 1.25rem; }
.doc .updated { font-size: var(--text-sm); color: var(--color-ink-3); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
  .reveal-ready .reveal { transform: none; }
  .btn .spinner { animation: none; border-right-color: currentColor; opacity: 0.6; }
}
