:root {
      --ink:#0f0f0f;
      --ink-light:#3a3a3a;
      --ink-muted:#6b6b6b;
      --paper:#fafaf7;
      --paper-warm:#f4f2ec;
      --paper-deep:#efede6;
      --border:#ddd9ce;
      --border-mid:#c8c3b5;
      --success:#22603f;
      --success-bg:#eff8f1;
      --warning:#7d5611;
      --warning-bg:#fbf3e4;
      --error:#8f1d1d;
      --error-bg:#fdf1f1;
      --font-display:"Playfair Display", Georgia, serif;
      --font-body:"DM Sans", system-ui, sans-serif;
      --font-mono:"DM Mono", "Courier New", monospace;
      --s3:.75rem;
      --s4:1rem;
      --s5:1.5rem;
      --s6:2rem;
      --s7:3rem;
      --s8:4rem;
      --wide:1060px;
    }

    * { box-sizing:border-box; margin:0; padding:0; }
    body {
      font-family:var(--font-body);
      background:var(--paper);
      color:var(--ink);
      line-height:1.72;
      -webkit-font-smoothing:antialiased;
    }
    a { color:var(--ink); }
    .wrap { max-width:var(--wide); margin:0 auto; padding:var(--s7) var(--s5) var(--s8); }
    .card {
      background:#fff;
      border:1px solid var(--border);
      border-radius:14px;
      box-shadow:0 12px 30px rgba(15,15,15,.04);
      padding:clamp(1.5rem, 4vw, 2.5rem);
    }
    .eyebrow {
      font-family:var(--font-mono);
      font-size:.6875rem;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:var(--ink-muted);
      display:flex;
      align-items:center;
      gap:var(--s3);
      margin-bottom:var(--s4);
    }
    .eyebrow::before { content:""; width:24px; height:1px; background:var(--ink-muted); }
    h1 {
      font-family:var(--font-display);
      font-size:clamp(2.35rem, 5vw, 4rem);
      line-height:1.03;
      letter-spacing:-.045em;
      margin-bottom:var(--s4);
      max-width:12ch;
    }
    h2 {
      font-family:var(--font-display);
      font-size:1.45rem;
      letter-spacing:-.03em;
      margin:var(--s6) 0 var(--s3);
    }
    h3 {
      font-family:var(--font-display);
      font-size:1.2rem;
      letter-spacing:-.02em;
      margin:0 0 var(--s3);
    }
    p { color:var(--ink-light); margin-bottom:var(--s4); }
    ul { margin:0 0 var(--s4) 1.15rem; color:var(--ink-light); }
    li { margin-bottom:.45rem; }
    .grid { display:grid; grid-template-columns: 1.1fr .9fr; gap:var(--s6); align-items:start; }
    .stack { display:grid; gap:var(--s4); }
    .panel {
      border:1px solid var(--border);
      background:var(--paper-warm);
      border-radius:14px;
      padding:var(--s5);
    }
    .panel.soft { background:#fff; }
    .panel-title {
      display:flex;
      justify-content:space-between;
      gap:var(--s4);
      align-items:baseline;
      margin-bottom:.35rem;
    }
    .panel-badge {
      font-family:var(--font-mono);
      font-size:.72rem;
      letter-spacing:.12em;
      text-transform:uppercase;
      color:var(--ink-muted);
    }
    .price-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:.65rem; margin:var(--s4) 0 var(--s5); }
    .btn {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:46px;
      padding:.85rem 1rem;
      border-radius:12px;
      border:1px solid var(--border-mid);
      background:#fff;
      color:var(--ink);
      font-weight:700;
      text-decoration:none;
      cursor:pointer;
      transition:transform .12s ease, border-color .12s ease, background .12s ease, color .12s ease;
    }
    .btn:hover { transform:translateY(-1px); }
    .btn-primary {
      background:var(--ink);
      color:var(--paper);
      border-color:var(--ink);
    }
    .btn-secondary { background:#fff; }
    .btn-ghost { background:transparent; }
    .btn.is-active {
      background:var(--paper-deep);
      border-color:var(--ink);
      color:var(--ink);
    }
    .btn-row { display:flex; flex-wrap:wrap; gap:var(--s3); margin-top:var(--s5); }
    .btn-row .btn { flex:1 1 220px; }
    .mini {
      font-size:.9rem;
      color:var(--ink-muted);
    }
    .status {
      border:1px solid var(--border);
      border-radius:12px;
      padding:.8rem 1rem;
      font-size:.95rem;
      color:var(--ink-light);
      background:#fff;
    }
    .status[data-tone="success"] { border-color:#c9e2d0; background:var(--success-bg); color:var(--success); }
    .status[data-tone="warning"] { border-color:#ead8b2; background:var(--warning-bg); color:var(--warning); }
    .status[data-tone="error"] { border-color:#f1c7c7; background:var(--error-bg); color:var(--error); }
    .two-col { display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); }
    .detail-list { list-style:none; margin:0; }
    .detail-list li {
      display:flex;
      justify-content:space-between;
      gap:var(--s4);
      padding:.55rem 0;
      border-top:1px solid var(--border);
      margin:0;
    }
    .detail-list li:first-child { border-top:0; padding-top:0; }
    .detail-label { color:var(--ink-muted); }
    .detail-value { text-align:right; font-weight:600; color:var(--ink); }
    .form-grid { display:grid; gap:var(--s4); }
    .field-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:var(--s4); }
    .field { display:grid; gap:.45rem; }
    label { font-size:.92rem; font-weight:600; color:var(--ink); }
    input, select, textarea {
      width:100%;
      border:1px solid var(--border-mid);
      border-radius:12px;
      background:#fff;
      color:var(--ink);
      padding:.85rem .9rem;
      font:inherit;
    }
    textarea { min-height:92px; resize:vertical; }
    input::placeholder, textarea::placeholder { color:#99948a; }
    .price-note {
      display:flex;
      justify-content:space-between;
      gap:var(--s4);
      align-items:center;
      font-size:.95rem;
      color:var(--ink-muted);
      margin-bottom:var(--s3);
    }
    .price-note strong { color:var(--ink); }
    .caption {
      font-size:.9rem;
      color:var(--ink-muted);
      margin-top:.25rem;
    }
    .confirmation-grid {
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:var(--s4);
      align-items:start;
    }
    .confirmation-banner {
      border:1px solid #c9e2d0;
      background:var(--success-bg);
      color:var(--success);
      border-radius:14px;
      padding:var(--s4);
      margin-bottom:var(--s4);
    }
    .confirmation-banner p { color:inherit; margin-bottom:0; }
    .inline-note {
      font-size:.92rem;
      color:var(--ink-muted);
      margin-top:.35rem;
    }
    .checklist {
      display:grid;
      gap:.6rem;
      list-style:none;
      margin:0;
    }
    .checklist li {
      padding:.7rem .85rem;
      border:1px solid var(--border);
      border-radius:12px;
      background:#fff;
      margin:0;
    }
    .checklist li strong { display:block; margin-bottom:.15rem; color:var(--ink); }
    .fine-print {
      font-size:.86rem;
      color:var(--ink-muted);
      margin-top:var(--s3);
    }
    .hidden { display:none !important; }
    @media (max-width: 900px) {
      .grid, .confirmation-grid, .two-col, .field-grid { grid-template-columns:1fr; }
      .price-grid { grid-template-columns:1fr; }
    }
