    /* (fonts loaded via link tags in head for faster first paint) */

    :root {
      color-scheme: light dark;
      --bg: #faf7f0;
      --surface: #ffffff;
      --surface-2: #f4efe4;
      --ink: #1c1610;
      --muted: #6f6455;
      --line: #e5dcc9;
      --gold: #9a7a2e;
      --gold-strong: #7d611f;
      --gold-soft: rgba(154, 122, 46, .10);
      --night: #0b0906;
      --night-2: #131009;
      --night-ink: #f6f1e3;
      --night-muted: rgba(246, 241, 227, .68);
      --night-line: rgba(246, 241, 227, .14);
      --radius: 10px;
      --shadow: 0 24px 60px rgba(28, 22, 16, .10);
      --shadow-tight: 0 10px 28px rgba(28, 22, 16, .12);
      --font-display: "Libre Caslon Display", Georgia, "Times New Roman", serif;
      --font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
      --nav-h: 68px;
      --wine: #7c1f2d;
      --wine-deep: #5c1420;
      --wine-ink: #fff6f4;
      --silver: #c8c2b4;
      --silver-soft: rgba(200, 194, 180, .14);
    }

    @media (prefers-color-scheme: dark) {
      :root:not([data-theme]) {
        --bg: #0b0906;
        --surface: #15110a;
        --surface-2: #1c1610;
        --ink: #f6f1e3;
        --muted: #b3a78d;
        --line: #2c2314;
        --gold: #d4af5f;
        --gold-strong: #e8c87e;
        --gold-soft: rgba(212, 175, 95, .13);
        --shadow: 0 24px 60px rgba(0, 0, 0, .5);
        --shadow-tight: 0 10px 28px rgba(0, 0, 0, .45);
      }
    }
    html[data-theme="dark"] {
      color-scheme: dark;
      --bg: #0b0906;
      --surface: #15110a;
      --surface-2: #1c1610;
      --ink: #f6f1e3;
      --muted: #b3a78d;
      --line: #2c2314;
      --gold: #d4af5f;
      --gold-strong: #e8c87e;
      --gold-soft: rgba(212, 175, 95, .13);
      --shadow: 0 24px 60px rgba(0, 0, 0, .5);
      --shadow-tight: 0 10px 28px rgba(0, 0, 0, .45);
    }
    html[data-theme="light"] { color-scheme: light; }

    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--bg);
      color: var(--ink);
      font-family: var(--font-body);
      font-size: 1.02rem;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }
    ::selection { background: var(--gold); color: #fff; }
    img { max-width: 100%; }
    h1, h2, h3, .display {
      font-family: var(--font-display);
      font-weight: 400;
      letter-spacing: -.02em;
      line-height: 1.02;
      margin: 0;
      text-wrap: balance;
    }
    p { margin: 0; }
    a { color: inherit; }
    section { scroll-margin-top: calc(var(--nav-h) + 12px); }
    .wrap { width: min(1200px, 100% - 40px); margin-inline: auto; }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      margin: 0 0 20px;
      color: var(--gold);
      font-size: .76rem;
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
    }
    .eyebrow::before { content: ""; width: 40px; height: 1px; background: currentColor; }

    .button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 54px;
      padding: 0 26px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--surface);
      color: var(--ink);
      text-decoration: none;
      font-weight: 700;
      font-size: .98rem;
      cursor: pointer;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
    }
    .button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: var(--shadow-tight); }
    .button.primary {
      background: linear-gradient(135deg, var(--wine-deep), var(--wine));
      border-color: transparent;
      color: var(--wine-ink);
    }
    .button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
    .chat-launch svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .button:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: 3px;
    }

    /* ---------- Sticky nav ---------- */
    .sitenav {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 50;
      height: var(--nav-h);
      display: flex;
      align-items: center;
      color: var(--night-ink);
      transition: background .25s ease, box-shadow .25s ease, color .25s ease;
    }
    .sitenav.scrolled {
      background: color-mix(in srgb, var(--bg) 94%, transparent);
      -webkit-backdrop-filter: blur(14px);
      backdrop-filter: blur(14px);
      box-shadow: 0 1px 0 var(--line);
      color: var(--ink);
    }
    .sitenav .wrap { display: flex; align-items: center; gap: 28px; }
    .brand { display: flex; flex-direction: column; line-height: 1.15; text-decoration: none; margin-right: auto; color: inherit; }
    .brand strong { font-family: var(--font-display); font-weight: 400; font-size: 1.32rem; letter-spacing: .01em; }
    .brand span { font-size: .68rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
    .navlinks { display: flex; gap: 26px; }
    .navlinks a {
      text-decoration: none;
      font-size: .92rem;
      font-weight: 600;
      color: var(--night-muted);
      transition: color .15s ease;
    }
    .sitenav.scrolled .navlinks a { color: var(--muted); }
    .navlinks a:hover { color: var(--gold); }
    .nav-cta { display: flex; gap: 10px; align-items: center; }
    .theme-toggle {
      display: inline-flex; align-items: center; justify-content: center;
      width: 44px; height: 44px; border-radius: 999px; cursor: pointer;
      border: 1px solid var(--night-line); background: transparent; color: var(--night-ink);
      transition: border-color .15s ease, color .15s ease, background .15s ease;
    }
    .theme-toggle:hover { border-color: var(--gold); color: var(--gold); }
    .sitenav.scrolled .theme-toggle { border-color: var(--line); color: var(--ink); background: var(--surface); }
    .theme-toggle .icon-moon { display: none; }
    .theme-toggle .icon-sun { display: block; }
    html[data-theme="dark"] .theme-toggle .icon-sun { display: none; }
    html[data-theme="dark"] .theme-toggle .icon-moon { display: block; }
    @media (prefers-color-scheme: dark) {
      html:not([data-theme]) .theme-toggle .icon-sun { display: none; }
      html:not([data-theme]) .theme-toggle .icon-moon { display: block; }
    }
    .nav-cta .button {
      min-height: 44px;
      padding: 0 18px;
      font-size: .86rem;
      border-color: var(--night-line);
      background: transparent;
      color: var(--night-ink);
    }
    .nav-cta .button.primary {
      border-color: transparent;
      background: linear-gradient(135deg, var(--wine-deep), var(--wine));
      color: var(--wine-ink);
    }
    .sitenav.scrolled .nav-cta .button {
      border-color: var(--line);
      background: var(--surface);
      color: var(--ink);
    }
    .sitenav.scrolled .nav-cta .button.primary {
      border-color: transparent;
      background: linear-gradient(135deg, var(--wine-deep), var(--wine));
      color: var(--wine-ink);
    }

    /* ---------- Hero ---------- */
    .hero {
      position: relative;
      overflow: hidden;
      background: var(--night);
      color: var(--night-ink);
      min-height: max(640px, 100svh);
      display: flex;
      align-items: stretch;
    }
    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 60% 45% at 72% 58%, rgba(185, 28, 40, .28), rgba(185, 28, 40, 0) 70%),
        radial-gradient(ellipse 45% 35% at 20% 12%, rgba(212, 175, 95, .10), rgba(212, 175, 95, 0) 70%);
      pointer-events: none;
    }
    .hero::after {
      content: "";
      position: absolute;
      inset: auto 0 0 0;
      height: 180px;
      background: linear-gradient(to bottom, transparent, var(--night));
      pointer-events: none;
    }
    .hero-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
      gap: 24px;
      align-items: center;
      width: min(1280px, 100% - 40px);
      margin-inline: auto;
      padding: calc(var(--nav-h) + 48px) 0 90px;
    }
    .hero h1 {
      font-size: clamp(2.9rem, 6.4vw, 5.6rem);
      max-width: 12ch;
    }
    .hero h1 em { font-style: normal; color: var(--gold); }
    .hero-copy {
      margin-top: 24px;
      max-width: 46ch;
      color: var(--night-muted);
      font-size: clamp(1.02rem, 1.5vw, 1.2rem);
    }
    .hero .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
    .hero .button { border-color: var(--night-line); background: transparent; color: var(--night-ink); }
    .hero .button.primary { border-color: transparent; color: #fff8ea; }
    .hero .button:hover, .hero .button:focus-visible { border-color: var(--gold); }
    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 26px;
      margin-top: 40px;
      padding-top: 26px;
      border-top: 1px solid var(--night-line);
      color: var(--night-muted);
      font-size: .88rem;
    }
    .hero-meta strong { display: block; color: var(--night-ink); font-size: .98rem; }
    .hero-visual { position: relative; min-height: 480px; }
    .vehicle-stage { position: relative; margin: 0; height: 100%; min-height: 480px; }
    .vehicle-stage .glow {
      position: absolute;
      inset: 8% -4% 0 -4%;
      background: radial-gradient(ellipse 70% 55% at 50% 55%, rgba(200, 40, 52, .35), rgba(200, 40, 52, 0) 72%);
      filter: blur(10px);
      animation: glow-pulse 7s ease-in-out infinite;
      pointer-events: none;
    }
    @keyframes glow-pulse {
      0%, 100% { opacity: .75; transform: scale(1); }
      50% { opacity: 1; transform: scale(1.05); }
    }
    .vehicle-stage img {
      position: absolute;
      left: 50%;
      top: 50%;
      width: min(112%, 720px);
      max-width: none;
      transform: translate(-50%, -52%);
      filter: drop-shadow(0 34px 44px rgba(0, 0, 0, .55));
      animation: car-float 9s ease-in-out infinite;
    }
    @keyframes car-float {
      0%, 100% { translate: 0 0; }
      50% { translate: 0 -12px; }
    }
    .vehicle-stage .floor {
      position: absolute;
      left: 12%;
      right: 12%;
      bottom: 9%;
      height: 46px;
      border-radius: 50%;
      background: rgba(0, 0, 0, .55);
      filter: blur(22px);
    }
    .photo-credit {
      position: absolute;
      right: 6px;
      bottom: 2px;
      z-index: 2;
      color: rgba(246, 241, 227, .45);
      font-size: .68rem;
      letter-spacing: .04em;
    }
    .scroll-cue {
      position: absolute;
      z-index: 2;
      left: 50%;
      bottom: 22px;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      color: var(--night-muted);
      font-size: .68rem;
      letter-spacing: .28em;
      text-transform: uppercase;
      text-decoration: none;
    }
    .scroll-cue::after {
      content: "";
      width: 1px;
      height: 44px;
      background: linear-gradient(var(--gold), transparent);
      animation: cue-drop 2.2s ease-in-out infinite;
    }
    @keyframes cue-drop {
      0% { transform: scaleY(0); transform-origin: top; }
      45% { transform: scaleY(1); transform-origin: top; }
      55% { transform: scaleY(1); transform-origin: bottom; }
      100% { transform: scaleY(0); transform-origin: bottom; }
    }

    /* ---------- Contact card ---------- */
    .contact-strip { position: relative; z-index: 3; margin-top: -58px; }
    /* ---------- Visit / map ---------- */
    .visit {
      display: grid; grid-template-columns: 1fr 1.1fr; gap: 44px; align-items: stretch;
      margin-top: 28px; padding: clamp(28px, 4vw, 48px);
      background: var(--surface); border: 1px solid var(--line); border-radius: calc(var(--radius) + 8px);
      box-shadow: var(--shadow-tight);
    }
    .visit-info h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); margin: 10px 0 14px; }
    .visit-info p { color: var(--muted); line-height: 1.65; margin: 0 0 12px; }
    .visit-hours { font-weight: 700; color: var(--ink); }
    .visit-info .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
    .visit-map { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); min-height: 320px; }
    .visit-map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; display: block; }
    .to-top {
      position: fixed; right: 22px; bottom: 22px; z-index: 60;
      width: 48px; height: 48px; border-radius: 999px; cursor: pointer;
      border: 1px solid var(--line); background: var(--surface); color: var(--ink);
      font-size: 1.3rem; line-height: 1; box-shadow: var(--shadow-tight);
      opacity: 0; translate: 0 12px; pointer-events: none;
      transition: opacity .2s ease, translate .2s ease;
    }
    .to-top.show { opacity: 1; translate: 0 0; pointer-events: auto; }
    .to-top:hover { border-color: var(--gold); color: var(--gold); }
    @media (max-width: 640px) { .to-top { bottom: 86px; right: 16px; } }
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      gap: 36px;
      align-items: center;
      padding: 30px 36px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }
    .identity { display: flex; align-items: center; gap: 22px; }
    .profile-chip {
      position: relative;
      flex: 0 0 84px;
      width: 84px;
      height: 84px;
      margin: 0;
      overflow: hidden;
      border-radius: 50%;
      background: var(--surface-2) url("images/inline-chip.jpg") center 30% / cover no-repeat;
      border: 3px solid var(--surface);
      box-shadow: 0 0 0 1px var(--gold), var(--shadow-tight);
    }
    .profile-chip img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 30%; }
    .identity h2 { font-size: 1.9rem; margin-bottom: 4px; }
    .identity p { color: var(--muted); font-size: .95rem; }
    .identity .role { color: var(--gold); font-weight: 700; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }
    .direct { display: grid; gap: 9px; }
    .direct-row { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
    .direct-label { min-width: 76px; color: var(--muted); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
    .direct a { width: fit-content; text-decoration: none; font-weight: 700; font-size: 1.02rem; }
    .direct a:hover { color: var(--gold); }
    .direct small { color: var(--muted); }
    .copy-contact {
      padding: 4px 10px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: transparent;
      color: var(--muted);
      font: inherit;
      font-size: .72rem;
      font-weight: 700;
      cursor: pointer;
      transition: border-color .15s ease, color .15s ease;
    }
    .copy-contact:hover, .copy-contact:focus-visible { border-color: var(--gold); color: var(--gold); }
    .contact-status {
      position: fixed;
      z-index: 90;
      left: 50%;
      bottom: 96px;
      translate: -50% 0;
      width: max-content;
      max-width: calc(100vw - 32px);
      padding: 12px 18px;
      border-radius: 999px;
      background: var(--ink);
      color: var(--bg);
      box-shadow: var(--shadow);
      font-size: .86rem;
      font-weight: 700;
      text-align: center;
    }
    .contact-status[hidden] { display: none; }

    /* ---------- Intro + services ---------- */
    .content { padding: 110px 0 30px; }
    .intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; align-items: start; }
    .intro h2 { font-size: clamp(2.4rem, 4.2vw, 4rem); }
    .intro-copy { font-size: 1.1rem; color: var(--muted); display: grid; gap: 16px; align-content: start; padding-top: 8px; }
    .intro-copy p:first-child { color: var(--ink); font-size: 1.3rem; font-weight: 600; }
    .services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 64px; }
    .service {
      position: relative;
      overflow: hidden;
      padding: 34px 30px 36px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }
    .service:hover { transform: translateY(-5px); box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--gold) 45%, var(--line)); }
    .service::before {
      content: "";
      position: absolute;
      inset: 0 0 auto 0;
      height: 3px;
      background: linear-gradient(90deg, var(--gold), transparent);
      opacity: 0;
      transition: opacity .2s ease;
    }
    .service:hover::before { opacity: 1; }
    .number { color: var(--gold); font-weight: 700; font-size: .78rem; letter-spacing: .2em; }
    .service h3 { margin: 16px 0 10px; font-size: 1.5rem; }
    .service p { margin: 0; color: var(--muted); font-size: .98rem; }

    /* ---------- Lineup ---------- */
    .lineup { margin-top: 110px; }
    .lineup-head { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: end; margin-bottom: 40px; }
    .lineup h2 { font-size: clamp(2.4rem, 4.4vw, 4.4rem); }
    .lineup-head p { margin: 0; color: var(--muted); font-size: 1.06rem; max-width: 56ch; }
    .model-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
    .model-card {
      position: relative;
      overflow: hidden;
      min-height: 300px;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 24px;
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: var(--night);
      color: var(--night-ink);
      cursor: pointer;
      transition: transform .22s ease, box-shadow .22s ease;
    }
    .model-card:hover, .model-card:focus-visible { transform: translateY(-6px); box-shadow: var(--shadow); }
    .model-card .card-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .5s ease;
    }
    .model-card:hover .card-img { transform: scale(1.05); }
    .model-card::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(5, 4, 2, .92) 0%, rgba(5, 4, 2, .45) 45%, rgba(5, 4, 2, .05) 75%);
      pointer-events: none;
    }
    .model-card .card-body { position: relative; z-index: 1; }
    .model-name {
      display: block;
      font-family: var(--font-display);
      font-size: 2.1rem;
      line-height: 1;
      letter-spacing: .02em;
    }
    .model-tag { display: block; margin-top: 6px; color: var(--night-muted); font-size: .9rem; }
    .model-specs { display: block; margin-top: 8px; font-size: .82rem; font-weight: 600; color: var(--night-ink); letter-spacing: .02em; }
    .model-lease { display: block; margin-top: 3px; font-size: .8rem; color: var(--gold); font-weight: 700; }
    .model-lease a { text-decoration: none; }
    .model-lease a:hover { text-decoration: underline; }
    .lineup-fine { margin-top: 22px; font-size: .88rem; color: var(--muted); max-width: 78ch; line-height: 1.65; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; }
    .model-card .card-links { display: flex; align-items: center; gap: 18px; margin-top: 14px; }
    .model-card .explore {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-weight: 700;
      font-size: .88rem;
      color: var(--gold);
    }
    .model-card .explore::after { content: "→"; transition: translate .18s ease; }
    .model-card:hover .explore::after { translate: 4px 0; }
    .model-card a.card-text {
      font-size: .84rem;
      font-weight: 600;
      color: var(--night-muted);
      text-decoration: underline;
      text-underline-offset: 4px;
    }
    .model-card a.card-text:hover { color: var(--night-ink); }
    .model-card a.card-details {
      font-size: .84rem;
      font-weight: 600;
      color: var(--night-muted);
      text-decoration: underline;
      text-underline-offset: 4px;
      white-space: nowrap;
    }
    .model-card a.card-details:hover { color: var(--night-ink); }
    .model-badge {
      position: absolute;
      z-index: 1;
      top: 16px;
      left: 16px;
      padding: 7px 14px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--gold) 88%, transparent);
      color: #fff8ea;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
    }

    /* ---------- Estimator ---------- */
    .estimator {
      margin-top: 110px;
      border-radius: calc(var(--radius) + 8px);
      background:
        radial-gradient(ellipse 55% 60% at 85% 15%, rgba(212, 175, 95, .12), transparent 70%),
        var(--night);
      color: var(--night-ink);
      padding: clamp(40px, 6vw, 84px);
      position: relative;
      overflow: hidden;
    }
    .estimator h2 { font-size: clamp(2.3rem, 4vw, 3.8rem); max-width: 16ch; }
    .estimator .sub { margin-top: 16px; color: var(--night-muted); max-width: 62ch; }
    .est-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; margin-top: 44px; align-items: start; }
    .est-tabs { display: inline-flex; gap: 6px; margin-top: 28px; padding: 5px; border: 1px solid var(--night-line); border-radius: 999px; background: rgba(255,255,255,.04); }
    .est-tab {
      border: 0; background: transparent; color: var(--night-muted); cursor: pointer;
      font: 700 .88rem var(--font-body); letter-spacing: .04em; padding: 10px 26px; border-radius: 999px;
      transition: background .18s ease, color .18s ease;
    }
    .est-tab.active { background: linear-gradient(135deg, var(--gold-strong), var(--gold)); color: #fff8ea; }
    .est-tab:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
    .field-hint { display: block; font-weight: 400; letter-spacing: .02em; text-transform: none; font-size: .78rem; opacity: .75; }
    .est-fields { display: grid; gap: 20px; }
    .est-field label { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--night-muted); margin-bottom: 8px; }
    .est-field .input-wrap { position: relative; }
    .est-field .input-wrap::before {
      content: attr(data-prefix);
      position: absolute;
      left: 18px;
      top: 50%;
      translate: 0 -50%;
      color: var(--night-muted);
      font-weight: 600;
    }
    .est-field .input-wrap.suffix::before { content: none; }
    .est-field .input-wrap.suffix::after {
      content: attr(data-suffix);
      position: absolute;
      right: 18px;
      top: 50%;
      translate: 0 -50%;
      color: var(--night-muted);
      font-weight: 600;
    }
    .estimator .eyebrow, .close .eyebrow { color: #d4af5f; }
    .est-field input, .est-field select {
      width: 100%;
      min-height: 58px;
      padding: 0 18px;
      border-radius: 12px;
      border: 1px solid var(--night-line);
      background: rgba(246, 241, 227, .05);
      color: var(--night-ink);
      font: inherit;
      font-size: 1.1rem;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      transition: border-color .15s ease, background .15s ease;
    }
    .est-field .input-wrap input { padding-left: 40px; }
    .est-field select {
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23d4af5f' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 18px center;
    }
    .est-field select option { color: #1c1610; }
    .est-field input:focus, .est-field select:focus { border-color: var(--gold); background: rgba(246, 241, 227, .09); outline: none; }
    .est-result {
      position: sticky;
      top: calc(var(--nav-h) + 20px);
      border: 1px solid var(--night-line);
      border-radius: var(--radius);
      padding: 36px 34px;
      background: rgba(246, 241, 227, .04);
    }
    .est-result .label { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--night-muted); }
    .est-monthly {
      font-family: var(--font-display);
      font-size: clamp(3rem, 5vw, 4.4rem);
      color: var(--gold);
      margin: 8px 0 4px;
      font-variant-numeric: tabular-nums;
      line-height: 1;
    }
    .est-per { color: var(--night-muted); font-size: .92rem; margin-bottom: 24px; }
    .est-rows { display: grid; gap: 12px; border-top: 1px solid var(--night-line); padding-top: 22px; }
    .est-row { display: flex; justify-content: space-between; gap: 16px; font-size: .96rem; }
    .est-row span:first-child { color: var(--night-muted); }
    .est-row span:last-child { font-weight: 700; font-variant-numeric: tabular-nums; }
    .est-result .button { width: 100%; margin-top: 26px; }
    .est-fine { margin-top: 18px; font-size: .8rem; color: var(--night-muted); line-height: 1.55; }

    /* ---------- Trade appraisal ---------- */
    .trade { margin-top: 110px; }
    .trade-inner {
      border-radius: calc(var(--radius) + 8px);
      background: var(--surface);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-tight);
      padding: clamp(32px, 5vw, 64px);
      position: relative; overflow: hidden;
    }
    .trade-inner::before {
      content: ""; position: absolute; inset: 0 0 auto 0; height: 5px;
      background: linear-gradient(90deg, var(--gold-strong), var(--gold), var(--gold-strong));
    }
    .trade h2 { font-size: clamp(2.3rem, 4vw, 3.8rem); }
    .trade .sub { margin-top: 14px; color: var(--muted); max-width: 60ch; }
    .trade-form { margin-top: 34px; }
    .trade-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
    .trade-grid label { display: grid; gap: 7px; font-size: .84rem; font-weight: 700; }
    .trade-grid input, .trade-grid select {
      font: inherit; font-weight: 400; padding: 14px 14px; border-radius: 12px;
      border: 1px solid var(--line); background: var(--bg); color: var(--ink); width: 100%;
    }
    .trade-grid input:focus, .trade-grid select:focus { outline: 2px solid var(--gold); outline-offset: 1px; border-color: var(--gold); }
    .trade-form .button { min-height: 56px; padding: 0 40px; font-size: 1rem; }
    .trade-status { margin-top: 16px; font-weight: 700; color: var(--gold-strong); }
    html[data-theme="dark"] .trade-status { color: var(--gold); }
    .trade-fine { margin-top: 14px; font-size: .84rem; color: var(--muted); }
    .trade-fine a { color: var(--gold-strong); font-weight: 700; }
    .trade-est { margin: 2px 0 26px; display: grid; gap: 14px; }
    .trade-est-btns { display: flex; flex-wrap: wrap; gap: 12px; }
    .trade-result { border: 1px solid var(--line); border-radius: 14px; padding: clamp(20px, 3vw, 30px); background: var(--bg); }
    .trade-range-label { font-size: .8rem; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
    .trade-range { font-size: clamp(1.9rem, 3.4vw, 2.7rem); font-weight: 800; margin: 8px 0 10px; letter-spacing: -0.01em; }
    .trade-basis { color: var(--muted); font-size: .92rem; max-width: 62ch; }
    .trade-disclaimer { font-size: .84rem; color: var(--muted); margin: 12px 0 18px; max-width: 68ch; }
    @media (max-width: 1020px) { .trade-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 640px) { .trade-grid { grid-template-columns: 1fr; } .trade-form .button { width: 100%; } }

    /* ---------- Compare ---------- */
    .compare { margin-top: 110px; }
    .compare-head { max-width: 720px; margin-bottom: 36px; }
    .compare h2 { font-size: clamp(2.3rem, 4vw, 3.8rem); }
    .compare-head p { margin-top: 14px; color: var(--muted); }
    .cmp-selects { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 22px; }
    .cmp-selects label { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .cmp-selects select {
      width: 100%;
      min-height: 58px;
      padding: 0 18px;
      border-radius: 12px;
      border: 1px solid var(--line);
      background: var(--surface);
      color: var(--ink);
      font: inherit;
      font-size: 1.05rem;
      font-weight: 600;
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%239a7a2e' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 18px center;
    }
    .cmp-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
    .cmp-card {
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--surface);
    }
    .cmp-card .cmp-img { position: relative; aspect-ratio: 16 / 8; overflow: hidden; background: var(--night); }
    .cmp-card .cmp-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .cmp-card .cmp-img::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(5,4,2,.55), transparent 55%);
    }
    .cmp-card .cmp-name {
      position: absolute;
      z-index: 1;
      left: 22px;
      bottom: 14px;
      font-family: var(--font-display);
      font-size: 1.9rem;
      color: #fff;
    }
    .cmp-card dl { margin: 0; padding: 24px 24px 8px; display: grid; gap: 14px; }
    .cmp-card .cmp-row { display: grid; grid-template-columns: 118px 1fr; gap: 12px; font-size: .95rem; }
    .cmp-card dt { color: var(--muted); font-weight: 600; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; padding-top: 2px; }
    .cmp-card dd { margin: 0; }
    .cmp-card .cmp-cta { padding: 20px 24px 26px; }
    .cmp-card .cmp-cta .button { width: 100%; min-height: 50px; font-size: .92rem; }

    /* ---------- Local ---------- */
    .local {
      margin-top: 110px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      overflow: hidden;
      border-radius: calc(var(--radius) + 8px);
      background: var(--surface-2);
      border: 1px solid var(--line);
    }
    .local-copy { padding: clamp(36px, 6vw, 72px); }
    .local-copy h2 { margin-bottom: 20px; font-size: clamp(2.2rem, 3.6vw, 3.4rem); }
    .local-copy p { color: var(--muted); max-width: 46ch; }
    .local-copy .button { margin-top: 28px; }
    .areas { display: flex; flex-wrap: wrap; align-content: center; gap: 10px; padding: clamp(28px, 4vw, 52px); }
    .area {
      padding: 11px 16px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 999px;
      font-size: .9rem;
      font-weight: 600;
      transition: border-color .15s ease, color .15s ease;
    }
    .area:hover { border-color: var(--gold); color: var(--gold); }

    /* ---------- Reviews prompt ---------- */
    .reviews { margin-top: 110px; text-align: center; }
    .reviews .card {
      max-width: 860px;
      margin-inline: auto;
      padding: clamp(40px, 6vw, 72px) clamp(28px, 5vw, 64px);
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: calc(var(--radius) + 8px);
      box-shadow: var(--shadow);
      position: relative;
      overflow: hidden;
    }
    .reviews .card::before {
      content: "";
      position: absolute;
      inset: 0 0 auto 0;
      height: 4px;
      background: linear-gradient(90deg, transparent, var(--gold), transparent);
    }
    .stars { color: var(--gold); font-size: 1.6rem; letter-spacing: .3em; margin-bottom: 18px; }
    .reviews h2 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); margin-bottom: 16px; }
    .reviews .card > p { color: var(--muted); max-width: 56ch; margin: 0 auto; }
    .review-hints { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 26px 0 30px; }
    .review-hints span {
      padding: 9px 15px;
      border-radius: 999px;
      background: var(--gold-soft);
      color: var(--gold-strong);
      font-size: .84rem;
      font-weight: 700;
    }
    @media (prefers-color-scheme: dark) { .review-hints span { color: var(--gold); } }
    html[data-theme="dark"] .review-hints span { color: var(--gold); }

    /* ---------- Client testimonials ---------- */
    .reviews-intro { color: var(--muted); max-width: 62ch; margin: 0 auto 8px; }
    .testimonials { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 16px; margin: 30px auto 46px; max-width: 1080px; text-align: left; }
    .testimonial { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 22px 18px; box-shadow: var(--shadow); margin: 0; }
    .testimonial blockquote { margin: 0 0 12px; font-size: .95rem; line-height: 1.65; }
    .testimonial .who { display: block; font-weight: 700; font-size: .88rem; }
    .testimonial .src { display: block; color: var(--muted); font-size: .78rem; margin-top: 2px; }
    .all-reviews { text-align: center; margin: -20px 0 40px; }
    .all-reviews a { color: var(--gold-strong); font-weight: 700; font-size: .95rem; }

    /* ---------- Why Ash ---------- */
    .why-ash { margin-top: 110px; }
    .why-ash h2 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); margin-bottom: 14px; }
    .why-ash .sub { color: var(--muted); font-size: 1.06rem; max-width: 58ch; }
    .why-list { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .why-list li {
      padding: 22px 24px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      font-size: .98rem;
      color: var(--muted);
    }
    .why-list li strong { display: block; color: var(--ink); font-size: 1.04rem; margin-bottom: 5px; }
    .why-ash .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
    .situations { margin-top: 110px; }
    .situations h2 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); margin-bottom: 14px; }
    .situations .sub { color: var(--muted); font-size: 1.06rem; max-width: 58ch; }
    .situations .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
    .faq-subhead { margin: 30px 0 6px; font-weight: 700; font-size: 1.02rem; }

    /* ---------- Ownership paths ---------- */
    .ownership-paths { margin-top: 110px; }
    .ownership-paths h2 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); margin-bottom: 14px; }
    .ownership-paths .sub { color: var(--muted); font-size: 1.06rem; max-width: 58ch; }
    .paths-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 34px; }
    .paths-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    a.path-card { display: block; color: inherit; text-decoration: none; }
    .lead-paths { padding: 84px 0 8px; }
    .lead-paths h2 { font-size: clamp(1.9rem, 3.4vw, 2.9rem); margin: 0; }
    .path-card {
      padding: 30px 28px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }
    .path-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--gold) 45%, var(--line)); }
    .path-card h3 { margin: 0 0 10px; font-size: 1.4rem; }
    .path-card p { margin: 0; color: var(--muted); font-size: .98rem; }
    .ownership-paths .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

    /* ---------- Model matchups ---------- */
    .model-matchups { margin-top: 110px; }
    .model-matchups h2 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); margin-bottom: 14px; }
    .model-matchups .sub { color: var(--muted); font-size: 1.06rem; max-width: 58ch; }
    .matchups-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 34px; }
    .matchup-card {
      padding: 28px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
    }
    .matchup-card h3 { margin: 0 0 10px; font-size: 1.25rem; }
    .matchup-card p { margin: 0; color: var(--muted); font-size: .98rem; }
    .model-matchups .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

    /* ---------- About Ash ---------- */
    .about-ash { margin-top: 110px; }
    .about-ash-inner {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: clamp(26px, 4vw, 56px);
      align-items: center;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: calc(var(--radius) + 8px);
      padding: clamp(32px, 5vw, 60px);
    }
    .profile-chip.lg { flex: 0 0 148px; width: 148px; height: 148px; }
    .about-ash h2 { font-size: clamp(2rem, 3.4vw, 3rem); margin-bottom: 16px; }
    .about-ash p { color: var(--muted); font-size: 1.02rem; max-width: 62ch; margin: 0 0 14px; }
    .about-ash .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

    /* ---------- Intent chips ---------- */
    .intent-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 30px 0 6px; }
    .intent-chips a {
      padding: 12px 18px;
      border-radius: 999px;
      background: var(--surface);
      border: 1px solid var(--line);
      color: var(--ink);
      font-size: .92rem;
      font-weight: 600;
      text-decoration: none;
      transition: border-color .15s ease, color .15s ease, transform .15s ease;
    }
    .intent-chips a:hover { border-color: var(--gold); color: var(--gold); transform: translateY(-2px); }

    /* ---------- FAQ ---------- */
    .faq { margin-top: 110px; }
    .faq-inner {
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: calc(var(--radius) + 8px);
      padding: clamp(36px, 6vw, 72px);
    }
    .faq h2 { margin-bottom: 12px; font-size: clamp(2.2rem, 3.8vw, 3.6rem); }
    .faq > .faq-inner > p, .faq-inner > p { color: var(--muted); margin-bottom: 30px; }
    .faq details { border-top: 1px solid var(--line); padding: 22px 0; }
    .faq details:last-of-type { border-bottom: 1px solid var(--line); }
    .faq summary {
      cursor: pointer;
      font-weight: 600;
      font-size: 1.08rem;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
    }
    .faq summary::-webkit-details-marker { display: none; }
    .faq summary::after {
      content: "+";
      flex: none;
      width: 36px;
      height: 36px;
      display: grid;
      place-items: center;
      border: 1px solid var(--line);
      border-radius: 50%;
      color: var(--gold);
      font-size: 1.3rem;
      font-weight: 400;
      transition: transform .2s ease, background .2s ease;
    }
    .faq details[open] summary::after { content: "×"; background: var(--gold-soft); }
    .faq details p { margin: 14px 0 4px; color: var(--muted); line-height: 1.7; max-width: 64ch; }

    /* ---------- Close CTA ---------- */
    .close {
      margin-top: 110px;
      border-radius: calc(var(--radius) + 8px);
      background:
        radial-gradient(ellipse 50% 60% at 50% 110%, rgba(212, 175, 95, .16), transparent 70%),
        var(--night);
      color: var(--night-ink);
      padding: clamp(64px, 9vw, 120px) clamp(28px, 6vw, 72px);
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .quote { max-width: 16ch; margin: 0 auto; font-size: clamp(2.6rem, 5.4vw, 5rem); }
    .quote em { font-style: normal; color: var(--gold); }
    .close > p { max-width: 560px; margin: 22px auto 0; color: var(--night-muted); }
    .close .actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 36px; }
    .close .button { border-color: var(--night-line); background: transparent; color: var(--night-ink); }
    .close .button.primary { border-color: transparent; color: #fff8ea; }
    .close .button:hover, .close .button:focus-visible { border-color: var(--gold); }

    footer { padding: 44px 0 120px; color: var(--muted); font-size: .86rem; }
    footer .copyright { text-align: center; margin-top: 26px; font-size: .78rem; opacity: .75; }
    footer .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 28px; }
    footer .hours { text-align: right; }
    .footer-topics { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
    .footer-topics a { color: var(--muted); font-size: .84rem; text-decoration: underline; text-underline-offset: 4px; }
    .footer-topics a:hover { color: var(--ink); }
    .social { display: flex; justify-content: center; gap: 22px; margin-top: 26px; }
    .social a { color: var(--muted); display: inline-block; }
    .social a:hover { color: var(--ink); }
    .social svg { width: 22px; height: 22px; display: block; fill: currentColor; }

    /* ---------- Chat ---------- */
    .chat-launch {
      position: fixed;
      z-index: 70;
      right: 22px;
      bottom: 22px;
      display: none;
      align-items: center;
      gap: 10px;
      min-height: 56px;
      padding: 0 22px;
      border: none;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--gold-strong), var(--gold));
      color: #fff8ea;
      font: inherit;
      font-weight: 700;
      font-size: .95rem;
      cursor: pointer;
      box-shadow: 0 14px 34px rgba(0, 0, 0, .28);
      transition: transform .18s ease, box-shadow .18s ease;
    }
    .chat-launch:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(0, 0, 0, .32); }
    .chat-launch svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
    .chat-panel {
      position: fixed;
      z-index: 80;
      right: 22px;
      bottom: 92px;
      width: min(400px, calc(100vw - 32px));
      max-height: min(620px, calc(100svh - 130px));
      display: flex;
      flex-direction: column;
      overflow: hidden;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 20px;
      box-shadow: var(--shadow);
    }
    .chat-panel[hidden] { display: none; }
    .chat-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 18px 18px 16px;
      background: var(--night);
      color: var(--night-ink);
    }
    .chat-head strong { display: block; font-size: 1.02rem; }
    .chat-head span { display: block; font-size: .8rem; color: var(--night-muted); margin-top: 2px; }
    .chat-close {
      flex: none;
      width: 36px;
      height: 36px;
      border-radius: 50%;
      border: 1px solid var(--night-line);
      background: transparent;
      color: var(--night-ink);
      font-size: 1.3rem;
      cursor: pointer;
    }
    .chat-close:hover { border-color: var(--gold); color: var(--gold); }
    .chat-scroll { padding: 18px 16px 10px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
    .chat-message {
      max-width: 88%;
      padding: 12px 15px;
      border-radius: 16px 16px 16px 4px;
      background: var(--surface-2);
      font-size: .93rem;
      line-height: 1.55;
    }
    .chat-message.visitor { align-self: flex-end; border-radius: 16px 16px 4px 16px; background: var(--gold-soft); }
    .chat-faqs { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 6px; }
    .chat-faqs button {
      padding: 8px 13px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: transparent;
      color: var(--ink);
      font: inherit;
      font-size: .8rem;
      font-weight: 600;
      cursor: pointer;
    }
    .chat-faqs button:hover { border-color: var(--gold); color: var(--gold); }
    .chat-composer { display: flex; gap: 8px; padding: 12px 16px 8px; }
    .chat-composer input {
      flex: 1;
      min-width: 0;
      min-height: 48px;
      padding: 0 16px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: var(--bg);
      color: var(--ink);
      font: inherit;
      font-size: 16px;
    }
    .chat-composer button {
      min-height: 48px;
      padding: 0 20px;
      border: none;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--gold-strong), var(--gold));
      color: #fff8ea;
      font: inherit;
      font-weight: 700;
      cursor: pointer;
    }
    .lead-open {
      margin: 4px 16px 16px;
      min-height: 48px;
      border-radius: 999px;
      border: 1px solid var(--gold);
      background: transparent;
      color: var(--gold-strong);
      font: inherit;
      font-weight: 700;
      cursor: pointer;
    }
    html[data-theme="dark"] .lead-open { color: var(--gold); }
    .lead-open:hover { background: var(--gold-soft); }
    .chat-handoff { display: flex; gap: 8px; flex-wrap: wrap; }
    .chat-handoff a {
      padding: 10px 16px;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--gold-strong), var(--gold));
      color: #fff8ea;
      font-size: .85rem;
      font-weight: 700;
      text-decoration: none;
    }
    .chat-handoff a.secondary { background: var(--surface-2); color: var(--ink); border: 1px solid var(--line); }

    /* ---------- Mobile dock ---------- */
    .mobile-dock {
      position: fixed;
      z-index: 60;
      left: 12px;
      right: 12px;
      bottom: calc(12px + env(safe-area-inset-bottom));
      display: none;
      border-radius: 999px;
      background: color-mix(in srgb, var(--night) 92%, transparent);
      -webkit-backdrop-filter: blur(12px);
      backdrop-filter: blur(12px);
      border: 1px solid var(--night-line);
      box-shadow: 0 14px 34px rgba(0, 0, 0, .35);
    }
    .mobile-dock a {
      flex: 1;
      padding: 15px 0;
      text-align: center;
      color: var(--night-ink);
      text-decoration: none;
      font-weight: 700;
      font-size: .95rem;
    }
    .mobile-dock a + a { border-left: 1px solid var(--night-line); }
    .mobile-dock a:first-child { color: var(--gold); }

    /* ---------- Model modal ---------- */
    .model-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 18px; }
    .model-modal[hidden] { display: none; }
    .model-modal-backdrop { position: absolute; inset: 0; background: rgba(5, 4, 2, .66); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
    .model-modal-panel {
      position: relative;
      width: min(880px, 100%);
      max-height: calc(100svh - 36px);
      overflow-y: auto;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 22px;
      box-shadow: var(--shadow);
    }
    .model-modal-close {
      position: sticky;
      top: 14px;
      margin-left: calc(100% - 58px);
      z-index: 3;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 1px solid var(--line);
      background: var(--surface);
      color: var(--ink);
      font-size: 1.5rem;
      cursor: pointer;
      box-shadow: var(--shadow-tight);
    }
    .model-modal-close:hover { border-color: var(--gold); color: var(--gold); }
    .model-modal-photo { width: 100%; aspect-ratio: 16 / 8.2; object-fit: cover; display: block; background: var(--night); margin-top: -58px; }
    .model-modal-photo[hidden] { display: none; }
    .model-modal-photo-caption {
      margin: 0;
      padding: 10px 30px 0;
      font-size: .82rem;
      font-weight: 600;
      letter-spacing: .04em;
      color: var(--gold-strong);
    }
    html[data-theme="dark"] .model-modal-photo-caption { color: var(--gold); }
    .model-modal-body { padding: 22px 30px 32px; }
    .model-modal-body h3 { font-size: 2.2rem; margin-bottom: 6px; }
    .model-modal-note { color: var(--muted); font-size: .95rem; margin-bottom: 6px; }
    .model-modal-specs { font-size: .88rem; font-weight: 700; color: var(--gold-strong); margin: 8px 0 4px; letter-spacing: .02em; }
    html[data-theme="dark"] .model-modal-specs { color: var(--gold); }
    @media (prefers-color-scheme: dark) { html:not([data-theme]) .model-modal-specs { color: var(--gold); } }
    .model-modal-section { margin-top: 24px; }
    .model-modal-section h4 { margin: 0 0 12px; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-strong); }
    html[data-theme="dark"] .model-modal-section h4 { color: var(--gold); }
    .model-modal-years, .model-modal-trims, .model-modal-colors { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; }
    .model-modal-years li, .model-modal-trims li, .model-modal-colors li {
      padding: 10px 16px;
      border: 1px solid var(--line);
      border-radius: 999px;
      font-size: .9rem;
      font-weight: 600;
      cursor: pointer;
      transition: border-color .15s ease, background .15s ease, color .15s ease;
      display: inline-flex;
      align-items: center;
      gap: 9px;
    }
    .model-modal-years li:hover, .model-modal-trims li:hover, .model-modal-colors li:hover { border-color: var(--gold); }
    .model-modal-years li[aria-pressed="true"], .model-modal-trims li[aria-pressed="true"], .model-modal-colors li[aria-pressed="true"] {
      background: var(--ink);
      border-color: var(--ink);
      color: var(--bg);
    }
    .swatch { width: 20px; height: 20px; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); flex: none; }
    .model-modal-fine { margin-top: 12px; font-size: .82rem; color: var(--muted); }
    .model-modal-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line); }
    .model-modal-cta .button { flex: 1 1 220px; }
    .waitlist-form { display: grid; gap: 15px; }
    .waitlist-form label { display: grid; gap: 7px; font-size: .84rem; font-weight: 700; }
    .waitlist-form input, .waitlist-form select, .waitlist-form textarea {
      min-height: 52px;
      padding: 10px 15px;
      border-radius: 12px;
      border: 1px solid var(--line);
      background: var(--bg);
      color: var(--ink);
      font: inherit;
      font-weight: 400;
    }
    .waitlist-form textarea { min-height: 84px; resize: vertical; }
    .waitlist-form button[type="submit"] {
      min-height: 56px;
      border: none;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--gold-strong), var(--gold));
      color: #fff8ea;
      font: inherit;
      font-weight: 700;
      font-size: 1.02rem;
      cursor: pointer;
      transition: transform .18s ease, box-shadow .18s ease;
    }
    .waitlist-form button[type="submit"]:hover { transform: translateY(-2px); box-shadow: var(--shadow-tight); }


    /* ---------- Motion upgrades ---------- */
    .scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 90; background: linear-gradient(90deg, var(--gold-strong), var(--gold)); transform: scaleX(0); transform-origin: 0 50%; pointer-events: none; }
    @keyframes hero-rise { from { opacity: 0; translate: 0 30px; } to { opacity: 1; translate: 0 0; } }
    .hero .eyebrow { animation: hero-rise .8s cubic-bezier(.22,.8,.24,1) both; }
    .hero h1 { animation: hero-rise .8s .1s cubic-bezier(.22,.8,.24,1) both; }
    .hero .hero-copy { animation: hero-rise .8s .2s cubic-bezier(.22,.8,.24,1) both; }
    .hero .actions { animation: hero-rise .8s .3s cubic-bezier(.22,.8,.24,1) both; }
    .hero .hero-meta { animation: hero-rise .8s .4s cubic-bezier(.22,.8,.24,1) both; }
    .hero .hero-visual { animation: hero-rise 1s .35s cubic-bezier(.22,.8,.24,1) both; }
    @keyframes cue-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 8px; } }
    .scroll-cue { animation: cue-bob 2.4s ease-in-out 1.2s infinite; }
    .button:active { transform: translateY(1px) scale(.99); }
    @keyframes num-tick { from { opacity: .35; translate: 0 6px; } to { opacity: 1; translate: 0 0; } }
    .est-monthly.tick { animation: num-tick .3s ease; }
    /* model card entrance cascade */
    .model-card { transition: transform .22s ease, box-shadow .22s ease, opacity .6s ease, translate .6s ease; opacity: 0; translate: 0 26px; }
    .lineup.in .model-card { opacity: 1; translate: 0 0; }
    .lineup.in .model-card:nth-child(1) { transition-delay: 0s, 0s, 0.00s, 0.00s; }
    .lineup.in .model-card:nth-child(2) { transition-delay: 0s, 0s, 0.07s, 0.07s; }
    .lineup.in .model-card:nth-child(3) { transition-delay: 0s, 0s, 0.14s, 0.14s; }
    .lineup.in .model-card:nth-child(4) { transition-delay: 0s, 0s, 0.21s, 0.21s; }
    .lineup.in .model-card:nth-child(5) { transition-delay: 0s, 0s, 0.28s, 0.28s; }
    .lineup.in .model-card:nth-child(6) { transition-delay: 0s, 0s, 0.35s, 0.35s; }
    .lineup.in .model-card:nth-child(7) { transition-delay: 0s, 0s, 0.42s, 0.42s; }
    .lineup.in .model-card:nth-child(8) { transition-delay: 0s, 0s, 0.49s, 0.49s; }
    .lineup.in .model-card:nth-child(9) { transition-delay: 0s, 0s, 0.56s, 0.56s; }
    .lineup.in .model-card:nth-child(10) { transition-delay: 0s, 0s, 0.63s, 0.63s; }
    .lineup.in .model-card:nth-child(11) { transition-delay: 0s, 0s, 0.70s, 0.70s; }
    /* faq smooth open */
    .faq details { display: grid; grid-template-rows: auto 0fr; transition: grid-template-rows .4s cubic-bezier(.22,.8,.24,1); }
    .faq details[open] { grid-template-rows: auto 1fr; }
    .faq details > p { overflow: hidden; min-height: 0; margin: 0; padding: 0; color: var(--muted); line-height: 1.7; max-width: 64ch; }
    .faq details[open] > p { padding: 14px 0 4px; }
    .faq details[open] summary::after { transform: rotate(90deg); }

    /* ---------- Reveal on scroll ---------- */
    .reveal { opacity: 0; translate: 0 26px; transition: opacity .7s ease, translate .7s ease; }
    .reveal.in { opacity: 1; translate: 0 0; }
    .nowrap { white-space: nowrap; }

    /* ---------- Responsive ---------- */
    @media (max-width: 1020px) {
      .navlinks { display: none; }
      .hero-grid { grid-template-columns: 1fr; padding-top: calc(var(--nav-h) + 30px); }
      .hero-visual, .vehicle-stage { min-height: 380px; }
      .intro { grid-template-columns: 1fr; gap: 26px; }
      .services { grid-template-columns: 1fr; margin-top: 48px; }
      .lineup-head { grid-template-columns: 1fr; gap: 18px; }
      .model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .est-grid { grid-template-columns: 1fr; gap: 36px; }
      .est-result { position: static; }
      .local { grid-template-columns: 1fr; }
      .contact-card { grid-template-columns: 1fr; gap: 26px; }
      .visit { grid-template-columns: 1fr; gap: 26px; }
      .why-list { grid-template-columns: 1fr; }
      .paths-grid { grid-template-columns: 1fr; }
      .paths-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .matchups-grid { grid-template-columns: 1fr; }
      .about-ash-inner { grid-template-columns: 1fr; justify-items: start; }
    }
    @media (max-width: 640px) {
      .paths-grid.four { grid-template-columns: 1fr; }
      .wrap { width: calc(100% - 32px); }
      .sitenav .wrap { gap: 12px; }
      .brand { flex-shrink: 0; }
      .brand strong { font-size: 1.08rem; white-space: nowrap; }
      .brand span { font-size: .6rem; white-space: nowrap; }
      .nav-cta .button { display: none; }
      .hero { min-height: auto; }
      .hero-grid { padding-bottom: 70px; }
      .hero .actions .button { flex: 1 1 140px; padding: 0 14px; }
      .hero-visual, .vehicle-stage { min-height: 300px; }
      .model-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
      .model-card { min-height: 210px; padding: 16px; }
      .model-name { font-size: 1.6rem; }
      .model-tag { font-size: .78rem; }
      .model-card .card-links { gap: 10px; margin-top: 10px; flex-wrap: wrap; row-gap: 4px; }
      .model-card a.card-text { display: none; }
      .cmp-selects, .cmp-cards { grid-template-columns: 1fr; }
      .chat-launch { bottom: calc(84px + env(safe-area-inset-bottom)); right: 14px; }
      .chat-panel { right: 14px; bottom: calc(152px + env(safe-area-inset-bottom)); }
      .mobile-dock { display: flex; }
      footer { padding-bottom: 110px; }
      .model-modal { padding: 10px; }
      .model-modal-body { padding: 18px 20px 26px; }
      .model-modal-photo-caption { padding: 10px 20px 0; }
      .scroll-cue { display: none; }
      .why-ash, .ownership-paths, .model-matchups, .about-ash, .situations { margin-top: 72px; }
      .why-list li { padding: 18px 20px; }
      .profile-chip.lg { flex: 0 0 112px; width: 112px; height: 112px; }
      .intent-chips a { padding: 13px 16px; font-size: .88rem; }
    }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { transition: none !important; animation: none !important; }
      .reveal { opacity: 1; translate: none; }
      .model-card { opacity: 1; translate: none; }
    }
    /* ============================================================
       REDESIGN SYSTEM — editorial luxury, conversion-first
       Shared by homepage, model pages, guide pages, utility pages
       ============================================================ */

    /* ---------- Section rhythm ---------- */
    .section { padding: clamp(56px, 8vw, 110px) 0; }
    .section-head { max-width: 720px; margin: 0 0 40px; }
    .section-head h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); margin: 0 0 14px; }
    .section-head p { color: var(--muted); font-size: 1.06rem; max-width: 58ch; }
    .section.tint { background: var(--surface-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .section.dark { background: var(--night); color: var(--night-ink); }
    .section.dark .section-head p { color: var(--night-muted); }
    .section.dark .eyebrow { color: var(--silver); }

    /* ---------- High-intent paths: editorial, not cards ---------- */
    .path-list { border-top: 1px solid var(--line); margin-top: 8px; }
    .path-item {
      display: grid;
      grid-template-columns: 64px 1fr auto;
      gap: 24px;
      align-items: center;
      padding: 28px 8px;
      border-bottom: 1px solid var(--line);
      text-decoration: none;
      color: inherit;
      transition: background .18s ease, padding-left .18s ease;
    }
    .path-item:hover, .path-item:focus-visible { background: var(--surface); padding-left: 18px; }
    .path-num {
      font-family: var(--font-display);
      font-size: 1.6rem;
      color: var(--muted);
    }
    .path-item h3 { font-size: clamp(1.35rem, 2.4vw, 1.9rem); margin: 0 0 6px; }
    .path-item p { color: var(--muted); margin: 0; max-width: 52ch; }
    .path-arrow {
      width: 52px; height: 52px;
      border: 1px solid var(--line);
      border-radius: 50%;
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 1.3rem; color: var(--ink);
      transition: background .18s ease, color .18s ease, border-color .18s ease;
      flex: none;
    }
    .path-item:hover .path-arrow { background: var(--wine); border-color: var(--wine); color: var(--wine-ink); }
    @media (max-width: 640px) {
      .path-item { grid-template-columns: 1fr auto; gap: 12px; }
      .path-num { display: none; }
    }

    /* ---------- Help Me Choose quiz ---------- */
    .hmc { background: var(--night); color: var(--night-ink); border-radius: 14px; padding: clamp(28px, 5vw, 64px); position: relative; overflow: hidden; }
    .hmc::before {
      content: ""; position: absolute; inset: 0; pointer-events: none;
      background: radial-gradient(ellipse 55% 60% at 85% 15%, rgba(124, 31, 45, .22), rgba(124, 31, 45, 0) 70%);
    }
    .hmc-inner { position: relative; z-index: 1; max-width: 760px; margin-inline: auto; }
    .hmc .eyebrow { color: var(--silver); }
    .hmc h2 { font-size: clamp(1.9rem, 4vw, 2.9rem); margin: 0 0 10px; }
    .hmc-sub { color: var(--night-muted); margin: 0 0 30px; }
    .hmc-progress { display: flex; gap: 8px; margin-bottom: 26px; }
    .hmc-progress i { height: 3px; flex: 1; background: var(--night-line); border-radius: 2px; }
    .hmc-progress i.on { background: var(--silver); }
    .hmc-q { font-family: var(--font-display); font-size: clamp(1.4rem, 3vw, 2rem); margin: 0 0 20px; }
    .hmc-opts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .hmc-opt {
      text-align: left;
      padding: 18px 20px;
      min-height: 64px;
      border: 1px solid var(--night-line);
      border-radius: 8px;
      background: transparent;
      color: var(--night-ink);
      font: inherit;
      font-weight: 600;
      font-size: 1rem;
      cursor: pointer;
      transition: border-color .15s ease, background .15s ease, transform .15s ease;
    }
    .hmc-opt:hover, .hmc-opt:focus-visible { border-color: var(--silver); background: rgba(246, 241, 227, .06); transform: translateY(-2px); }
    .hmc-back { background: none; border: none; color: var(--night-muted); font: inherit; font-size: .9rem; cursor: pointer; margin-top: 22px; text-decoration: underline; text-underline-offset: 4px; }
    .hmc-back:hover { color: var(--night-ink); }
    .hmc-result-model {
      border: 1px solid var(--night-line);
      border-radius: 8px;
      padding: 22px;
      margin-bottom: 14px;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 8px 20px;
      align-items: center;
      background: rgba(246, 241, 227, .03);
    }
    .hmc-result-model h3 { font-size: 1.5rem; margin: 0; }
    .hmc-result-model .why { color: var(--night-muted); margin: 6px 0 0; grid-column: 1 / -1; }
    .hmc-result-model .msrp { font-weight: 700; color: var(--silver); white-space: nowrap; }
    .hmc-note { color: var(--night-muted); font-size: .88rem; margin: 18px 0 24px; }
    .hmc .actions { display: flex; flex-wrap: wrap; gap: 12px; }
    .hmc .button { border-color: var(--night-line); background: transparent; color: var(--night-ink); }
    .hmc .button.primary { border-color: transparent; }
    @media (max-width: 640px) { .hmc-opts { grid-template-columns: 1fr; } }

    /* ---------- Model discovery ---------- */
    .discover-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .discover-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      overflow: hidden;
      background: var(--surface);
      display: flex;
      flex-direction: column;
      transition: transform .18s ease, box-shadow .18s ease;
    }
    .discover-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
    .discover-card img { width: 100%; height: 190px; object-fit: cover; display: block; background: var(--surface-2); }
    .discover-body { padding: 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
    .discover-body .model-type { font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
    .discover-body h3 { font-size: 1.7rem; margin: 0; }
    .discover-body .desc { color: var(--muted); margin: 0; flex: 1; }
    .discover-body .msrp { font-weight: 700; }
    .discover-links { display: flex; gap: 16px; margin-top: 10px; }
    .discover-links a { font-weight: 700; font-size: .94rem; text-decoration: none; border-bottom: 2px solid var(--gold); padding-bottom: 2px; }
    .discover-links a:hover { color: var(--wine); border-color: var(--wine); }
    .discover-more { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 22px; }
    .discover-more a {
      border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px;
      text-decoration: none; display: flex; justify-content: space-between; align-items: center; gap: 10px;
      font-weight: 600; background: var(--surface);
    }
    .discover-more a:hover { border-color: var(--gold); }
    .discover-more a span:last-child { color: var(--muted); font-weight: 400; font-size: .88rem; }
    @media (max-width: 1020px) { .discover-grid { grid-template-columns: repeat(2, 1fr); } .discover-more { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 640px) { .discover-grid { grid-template-columns: 1fr; } .discover-more { grid-template-columns: 1fr; } }

    /* ---------- Buyer guide features ---------- */
    .guide-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .guide-feature {
      display: flex; flex-direction: column; text-decoration: none; color: inherit;
      border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface);
      transition: transform .18s ease, box-shadow .18s ease;
    }
    .guide-feature:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
    .guide-feature img { width: 100%; height: 200px; object-fit: cover; display: block; }
    .guide-feature .g-body { padding: 24px; }
    .guide-feature .eyebrow { margin-bottom: 12px; }
    .guide-feature h3 { font-size: 1.55rem; margin: 0 0 10px; }
    .guide-feature p { color: var(--muted); margin: 0 0 16px; }
    .guide-feature .g-link { font-weight: 700; color: var(--wine); }
    @media (max-width: 1020px) { .guide-grid { grid-template-columns: 1fr; max-width: 640px; } }

    /* ---------- Trust section ---------- */
    .trust-grid { display: grid; grid-template-columns: 300px 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
    .trust-photo { margin: 0; }
    .trust-photo img {
      width: 100%; max-width: 300px; aspect-ratio: 1 / 1; object-fit: cover;
      border-radius: 12px; display: block; box-shadow: var(--shadow);
    }
    .trust-photo figcaption { color: var(--muted); font-size: .82rem; margin-top: 12px; }
    .trust h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); margin: 0 0 16px; }
    .trust-list { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
    .trust-list li { padding: 16px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start; }
    .trust-list li::before { content: "✓"; color: var(--wine); font-weight: 700; }
    .trust-title { font-size: .76rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin: 0 0 6px; }
    @media (max-width: 760px) { .trust-grid { grid-template-columns: 1fr; } .trust-photo img { max-width: 220px; } }

    /* ---------- Contextual CTA band ---------- */
    .ctx-cta {
      border: 1px solid var(--line);
      border-left: 4px solid var(--wine);
      border-radius: var(--radius);
      background: var(--surface);
      padding: clamp(26px, 4vw, 44px);
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 20px;
      align-items: center;
      margin: clamp(36px, 6vw, 72px) 0;
    }
    .ctx-cta h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); margin: 0 0 8px; }
    .ctx-cta p { color: var(--muted); margin: 0; max-width: 56ch; }
    @media (max-width: 760px) { .ctx-cta { grid-template-columns: 1fr; } }

    /* ---------- 2027 NX announcement note ---------- */
    .model-note {
      border: 1px dashed var(--line);
      border-radius: var(--radius);
      padding: 22px 24px;
      background: var(--surface-2);
      margin: 28px 0;
    }
    .model-note strong { display: block; margin-bottom: 6px; }
    .model-note p { color: var(--muted); margin: 0 0 12px; }

    /* ---------- Ask Ash modal ---------- */
    .ask-modal { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 20px; }
    .ask-modal[hidden] { display: none; }
    .ask-modal-backdrop { position: absolute; inset: 0; background: rgba(10, 8, 5, .62); }
    .ask-modal-card {
      position: relative; z-index: 1;
      width: min(560px, 100%);
      max-height: calc(100vh - 40px);
      overflow-y: auto;
      background: var(--surface);
      color: var(--ink);
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: clamp(26px, 4vw, 40px);
      box-shadow: var(--shadow);
    }
    .ask-modal-card h3 { font-size: 1.7rem; margin: 0 0 8px; }
    .ask-modal-card .ask-sub { color: var(--muted); margin: 0 0 22px; }
    .ask-close {
      position: absolute; top: 14px; right: 14px;
      width: 44px; height: 44px; border-radius: 50%;
      border: 1px solid var(--line); background: var(--surface); color: var(--ink);
      font-size: 1.4rem; line-height: 1; cursor: pointer;
    }
    .ask-close:hover { border-color: var(--wine); color: var(--wine); }
    .field { margin-bottom: 16px; }
    .field label { display: block; font-weight: 700; font-size: .9rem; margin-bottom: 8px; }
    .field label small { font-weight: 400; color: var(--muted); }
    .field input, .field select, .field textarea {
      width: 100%;
      min-height: 52px;
      padding: 12px 16px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--bg);
      color: var(--ink);
      font: inherit;
      font-size: 1rem;
    }
    .field textarea { min-height: 110px; resize: vertical; }
    .field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold); outline: none; }
    .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .field-extra[hidden] { display: none; }
    .form-status { margin-top: 16px; font-weight: 600; }
    .form-status.ok { color: #2e7d32; }
    .form-status.err { color: var(--wine); }
    html[data-theme="dark"] .form-status.ok { color: #8fce96; }
    @media (max-width: 640px) { .field-row { grid-template-columns: 1fr; } }

    /* ---------- Sticky contact bar (mobile) + desktop Ask Ash ---------- */
    .stickybar {
      position: fixed;
      left: 0; right: 0; bottom: 0;
      z-index: 70;
      display: none;
      background: color-mix(in srgb, var(--surface) 96%, transparent);
      -webkit-backdrop-filter: blur(12px);
      backdrop-filter: blur(12px);
      border-top: 1px solid var(--line);
      padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    }
    .stickybar-inner { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; max-width: 560px; margin-inline: auto; }
    .stickybar a, .stickybar button {
      display: inline-flex; align-items: center; justify-content: center; gap: 8px;
      min-height: 52px;
      border-radius: 8px;
      font-weight: 700; font-size: .98rem; text-decoration: none; cursor: pointer;
      border: 1px solid var(--line); background: var(--surface); color: var(--ink);
      font-family: inherit;
    }
    .stickybar .sticky-ask { background: linear-gradient(135deg, var(--wine-deep), var(--wine)); border-color: transparent; color: var(--wine-ink); }
    .ask-fab {
      position: fixed; right: 24px; bottom: 24px; z-index: 70;
      display: none;
      align-items: center; gap: 10px;
      min-height: 56px; padding: 0 24px;
      border-radius: 999px;
      border: 1px solid transparent;
      background: linear-gradient(135deg, var(--wine-deep), var(--wine));
      color: var(--wine-ink);
      font: inherit; font-weight: 700; font-size: 1rem; cursor: pointer;
      box-shadow: var(--shadow-tight);
      transition: transform .18s ease, box-shadow .18s ease;
    }
    .ask-fab:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
    .ask-fab svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    @media (max-width: 900px) {
      .stickybar { display: block; }
      body { padding-bottom: 84px; }
      .mobile-dock { display: none !important; }
      .chat-launch { display: none; }
      .to-top { bottom: 160px; }
    }
    @media (min-width: 901px) {
      .ask-fab { display: inline-flex; }
    }
    @media (prefers-reduced-motion: reduce) {
      .ask-fab { transition: none; }
    }

    /* ---------- Footer ---------- */
    .site-footer { border-top: 1px solid var(--line); background: var(--surface-2); padding: clamp(44px, 6vw, 72px) 0 120px; }
    .footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; margin-bottom: 36px; }
    .footer-grid h3 { font-family: var(--font-body); font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin: 0 0 16px; }
    .footer-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
    .footer-grid a { text-decoration: none; color: var(--ink); font-size: .95rem; }
    .footer-grid a:hover { color: var(--wine); }
    .footer-brand strong { font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; display: block; margin-bottom: 8px; }
    .footer-brand p { color: var(--muted); font-size: .92rem; margin: 0 0 6px; }
    .disclosure {
      border-top: 1px solid var(--line);
      padding-top: 24px;
      color: var(--muted);
      font-size: .85rem;
      max-width: 78ch;
    }
    @media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
    @media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } .site-footer { padding-bottom: 150px; } }

    /* ---------- Trade / lease-finance premium sections ---------- */
    .trade-premium {
      background: var(--night); color: var(--night-ink);
      border-radius: 14px; padding: clamp(30px, 5vw, 60px);
      display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center;
      position: relative; overflow: hidden;
    }
    .trade-premium::before {
      content: ""; position: absolute; inset: 0; pointer-events: none;
      background: radial-gradient(ellipse 50% 60% at 12% 90%, rgba(200, 194, 180, .10), rgba(200, 194, 180, 0) 70%);
    }
    .trade-premium h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); margin: 0 0 14px; }
    .trade-premium p { color: var(--night-muted); margin: 0 0 24px; max-width: 46ch; }
    .trade-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: step; }
    .trade-steps li { counter-increment: step; padding: 16px 0; border-top: 1px solid var(--night-line); display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: start; }
    .trade-steps li::before {
      content: counter(step, decimal-leading-zero);
      font-family: var(--font-display); font-size: 1.3rem; color: var(--silver);
    }
    .trade-steps li strong { display: block; margin-bottom: 4px; }
    .trade-steps li span { color: var(--night-muted); font-size: .94rem; }
    @media (max-width: 860px) { .trade-premium { grid-template-columns: 1fr; } }
    .lf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .lf-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 30px; }
    .lf-card h3 { font-size: 1.5rem; margin: 0 0 12px; }
    .lf-card p { color: var(--muted); margin: 0 0 10px; }
    .lf-card ul { margin: 14px 0 0; padding-left: 20px; color: var(--muted); display: grid; gap: 8px; }
    @media (max-width: 860px) { .lf-grid { grid-template-columns: 1fr; } }

    /* ---------- Hero v2: Ash-forward editorial ---------- */
    .hero-v2 .hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
    .hero-person { display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: center; margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--night-line); }
    .hero-person img { width: 200px; height: 200px; object-fit: cover; border-radius: 12px; display: block; }
    .hero-person .who strong { display: block; font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; color: var(--night-ink); }
    .hero-person .who span { color: var(--silver); font-size: .85rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
    .hero-person .who p { color: var(--night-muted); font-size: .94rem; margin: 10px 0 0; max-width: 44ch; }
    .hero-visual-card { position: relative; border: 1px solid var(--night-line); border-radius: 14px; overflow: hidden; }
    .hero-visual-card img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; display: block; }
    .hero-visual-card figcaption {
      position: absolute; left: 0; right: 0; bottom: 0;
      padding: 18px 22px;
      background: linear-gradient(to top, rgba(10, 8, 5, .82), transparent);
      color: var(--night-ink); font-size: .92rem;
    }
    .hero-visual-card figcaption strong { display: block; font-family: var(--font-display); font-weight: 400; font-size: 1.25rem; }
    @media (max-width: 900px) {
      .hero-v2 .hero-grid { grid-template-columns: 1fr; }
      .hero-person { grid-template-columns: 120px 1fr; gap: 18px; }
      .hero-person img { width: 120px; height: 120px; }
      .hero-visual-card img { min-height: 260px; }
    }

    /* ---------- Reduced motion: new components ---------- */
    @media (prefers-reduced-motion: reduce) {
      .path-item, .path-item:hover, .path-item:focus-visible,
      .discover-card, .guide-feature, .hmc-opt { transition: none; transform: none; }
      .path-item:hover, .path-item:focus-visible { padding-left: 8px; }
    }

    /* ---------- Hero v3: editorial split ---------- */
    .hero-v3::before { display: none; }
    .hero-v3::after { display: none; }
    .hero-v3 .hero-grid {
      grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
      gap: clamp(48px, 6vw, 104px);
      align-items: stretch;
      width: min(1400px, 100% - 48px);
      padding-top: calc(var(--nav-h) + clamp(36px, 6vh, 80px));
      padding-bottom: 0;
    }
    .hero-v3 .hero-copy-col {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding-bottom: clamp(64px, 9vh, 120px);
    }
    .hero-v3 .eyebrow { color: var(--silver); }
    .hero-v3 h1 {
      font-size: clamp(3.4rem, 7vw, 6.3rem);
      line-height: 1.0;
      letter-spacing: -0.015em;
      max-width: 10ch;
      margin: 0;
    }
    .hero-v3 .hero-copy {
      margin-top: 26px;
      max-width: 44ch;
      color: var(--night-muted);
      font-size: clamp(1rem, 1.35vw, 1.12rem);
      line-height: 1.65;
    }
    .hero-v3 .actions {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 14px 28px;
      margin-top: 40px;
    }
    .hero-v3 .actions .button.primary {
      min-height: 58px;
      padding: 0 42px;
      font-size: 1.05rem;
      background: linear-gradient(135deg, var(--wine-deep), var(--wine));
      border-color: transparent;
      color: var(--wine-ink);
    }
    .hero-v3 .hero-alt { margin: 0; color: var(--night-muted); font-size: .98rem; }
    .hero-v3 .hero-alt a {
      color: var(--night-ink);
      text-decoration: underline;
      text-underline-offset: 4px;
      text-decoration-color: rgba(246, 241, 227, .35);
    }
    .hero-v3 .hero-alt a:hover { text-decoration-color: var(--gold); }
    .hero-v3 .hero-alt-sep { opacity: .45; }
    .hero-v3 .hero-cred {
      margin-top: 54px;
      padding-top: 28px;
      border-top: 1px solid var(--night-line);
      animation: hero-rise .8s .45s cubic-bezier(.22,.8,.24,1) both;
    }
    .hero-v3 .hero-cred strong {
      display: block;
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(1.5rem, 2.2vw, 1.9rem);
      letter-spacing: .002em;
      color: var(--night-ink);
    }
    .hero-v3 .hero-cred-title {
      display: block;
      margin-top: 10px;
      color: var(--silver);
      font-size: .78rem;
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
    }
    .hero-v3 .hero-fine {
      margin: 14px 0 0;
      color: var(--night-muted);
      font-size: .84rem;
      line-height: 1.6;
      max-width: 48ch;
    }
    .hero-v3 .hero-portrait {
      position: relative;
      min-height: 600px;
      animation: hero-rise 1.1s .3s cubic-bezier(.22,.8,.24,1) both;
    }
    .hero-v3 .hero-portrait::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 1px;
      background: var(--night-line);
      z-index: 1;
    }
    .hero-v3 .hero-portrait img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 22%;
      display: block;
    }
    @media (max-width: 1020px) {
      .hero-v3 { min-height: auto; }
      .hero-v3 .hero-grid {
        grid-template-columns: 1fr;
        gap: 0;
        padding-top: calc(var(--nav-h) + 30px);
      }
      .hero-v3 .hero-copy-col { display: contents; }
      .hero-v3 .eyebrow { order: 1; margin-bottom: 16px; }
      .hero-v3 .hero-portrait {
        order: 2;
        min-height: 0;
        height: clamp(220px, 58vw, 340px);
        margin: 26px calc(50% - 50vw) 0;
      }
      .hero-v3 .hero-portrait::before { display: none; }
      .hero-v3 .hero-portrait img { object-position: center 20%; }
      .hero-v3 h1 { order: 3; margin-top: 30px; font-size: clamp(2.7rem, 12vw, 4rem); max-width: 12ch; }
      .hero-v3 .hero-copy { order: 4; }
      .hero-v3 .actions { order: 5; margin-top: 32px; }
      .hero-v3 .actions .button.primary { flex: 1 1 100%; justify-content: center; }
      .hero-v3 .hero-alt { display: none; }
      .hero-v3 .scroll-cue { display: none; }
    }
