:root {
    --cream:      #F5F1EB;
    --warm-white: #FAF8F5;
    --stone:      #C8BFB0;
    --sage:       #7A8C7E;
    --sage-deep:  #4E6352;
    --charcoal:   #2A2A28;
    --ink:        #1A1A18;
    --gold:       #A8915A;
    --gold-light: #C8A96A;
    --mist:       #E8E2D9;
  }
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; font-size: 17px; /* base up from browser default 16px */ }
  body { font-family: 'DM Sans', sans-serif; background: var(--warm-white); color: var(--charcoal); min-height: 100vh; line-height: 1.6; }

  /* ── NAV ── */
  nav {
    position: sticky; top: 0; z-index: 100;
    background: rgba(245,241,235,0.97);
    border-bottom: 1px solid var(--mist);
    backdrop-filter: blur(8px);
    padding: 0 3rem; height: 62px;
    display: flex; align-items: center; justify-content: space-between;
  }
  .nav-logo { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; }
  .nav-logo-mark { width: 26px; height: 26px; border: 1px solid rgba(168,145,90,0.4); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .nav-logo-mark svg { width: 13px; height: 13px; stroke: var(--gold); fill: none; }
  .nav-logo-text { display: flex; flex-direction: column; gap: 0.12rem; min-width: 0; }
  .nav-brand { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 500; color: var(--ink); letter-spacing: 0.02em; line-height: 1.2; }
  .nav-sub { font-size: 0.66rem; color: var(--sage); font-weight: 400; line-height: 1.35; max-width: 18rem; }
  .nav-links { display: flex; align-items: center; gap: 2rem; list-style: none; }
  .nav-links a { font-size: 0.8rem; font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; color: var(--charcoal); text-decoration: none; transition: color 0.2s; }
  .nav-links a:hover { color: var(--sage-deep); }

  /* ── PAGE ── */
  .page { max-width: 960px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }

  /* ── PAGE TITLE ── */
  .page-title-block { margin-bottom: 1.4rem; }
  .eyebrow { font-size: 0.68rem; font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase; color: var(--sage); margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
  .eyebrow::before { content: ''; display: block; width: 20px; height: 1px; background: var(--sage); }
  .step-title { font-family: 'Cormorant Garamond', serif; font-size: 2.4rem; font-weight: 300; color: var(--ink); line-height: 1.1; margin-bottom: 0.4rem; }
  .step-subtitle { font-size: 0.95rem; font-weight: 400; line-height: 1.7; color: #5a5a56; }

  /* ── HORIZONTAL PROCESS STRIP ── */
  .process-strip {
    display: flex; align-items: stretch;
    border: 1px solid var(--mist);
    margin-bottom: 0;
  }
  .ps-step {
    flex: 1; display: flex; align-items: center; gap: 0.9rem;
    padding: 0.9rem 1.2rem; background: var(--cream);
    position: relative;
  }
  .ps-step:not(:last-child) { border-right: 1px solid var(--mist); }
  /* Chevron connector */
  .ps-step:not(:last-child)::after {
    content: '';
    position: absolute; right: -10px; top: 50%; transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 10px solid var(--mist);
    z-index: 2;
  }
  .ps-step:not(:last-child)::before {
    content: '';
    position: absolute; right: -8px; top: 50%; transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-left: 9px solid var(--cream);
    z-index: 3;
  }
  .ps-step.active { background: white; }
  .ps-step.active::before { border-left-color: white; }
  .ps-step.done { background: var(--cream); }
  .ps-dot {
    width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 600; transition: all 0.3s;
  }
  .ps-text { min-width: 0; }
  .ps-num { font-size: 0.62rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; display: block; margin-bottom: 2px; }
  .ps-desc { font-size: 0.85rem; font-weight: 400; color: var(--charcoal); line-height: 1.3; }
  .ps-step:not(.active):not(.done) .ps-desc { color: #8a8a86; font-weight: 300; }
  .ps-step:not(.active):not(.done) .ps-num { color: var(--stone); }
  /* Contextual note beneath the strip */
  .ps-note {
    font-size: 0.82rem; font-weight: 300; color: var(--sage-deep);
    padding: 0.55rem 1.2rem;
    border: 1px solid var(--mist); border-top: none;
    background: rgba(78,99,82,0.03);
    margin-bottom: 1.5rem;
  }

  /* ── CARD ── */
  .card { background: white; border: 1px solid var(--mist); border-radius: 10px; padding: 2.2rem 2.6rem; }

  /* ── FIELDS ── */
  .field { margin-bottom: 1.3rem; }
  /* Field labels up from 0.7rem → 0.8rem, color charcoal kept, weight 500 kept */
  .field-label { display: block; font-size: 0.8rem; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 7px; }
  .field-label .req { color: var(--gold); margin-left: 2px; }
  /* Hints up from 0.72rem → 0.82rem, color #aaa → #7a7a76 */
  .field-hint { font-size: 0.82rem; font-weight: 300; color: #7a7a76; margin: 0 0 7px; line-height: 1.55; }
  /* Inputs up from 0.82rem → 0.95rem, padding up, border stronger */
  input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea {
    width: 100%; padding: 11px 14px; font-size: 0.95rem; font-weight: 400;
    border: 1.5px solid var(--stone); background: white; color: var(--charcoal);
    font-family: 'DM Sans', sans-serif; outline: none; appearance: none;
    border-radius: 2px; transition: border-color 0.2s;
  }
  input:focus, select:focus, textarea:focus { border-color: var(--sage-deep); box-shadow: 0 0 0 3px rgba(78,99,82,0.1); }
  textarea { resize: vertical; height: 86px; }
  select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237A8C7E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 34px; }
  .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  /* Row 1: Cemetery (wider) + Property Type | Row 2: Property Name + Property Code (shorter) */
  /* 4 top fields in a true 50/50 grid — 2 rows of 2 */
  .grid-4top { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
  .grid3 { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 14px; }

  .divider { border: none; border-top: 1px solid var(--mist); margin: 1.75rem 0; }
  /* Section labels up from 0.58 → 0.68rem */
  .section-label { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--sage); margin-bottom: 1rem; display: flex; align-items: center; gap: 0.6rem; }
  .section-label::before { content: ''; display: block; width: 16px; height: 1px; background: var(--sage); }

  /* ── SPACE TABLE ── */
  .space-table { width: 100%; border-collapse: collapse; margin-bottom: 0; }
  .space-table th {
    font-size: 0.68rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--charcoal); padding: 8px 10px; background: var(--cream);
    border: 1px solid var(--mist); text-align: left;
  }
  .space-table td { padding: 6px 6px; border: 1px solid var(--mist); vertical-align: middle; background: white; }
  .space-table td input {
    width: 100%; padding: 8px 10px; font-size: 0.9rem; font-weight: 300;
    border: none; outline: none; background: transparent;
    color: var(--charcoal); font-family: 'DM Sans', sans-serif;
  }
  .space-table td input:focus { background: rgba(78,99,82,0.04); }
  .space-table td.price-cell { position: relative; }
  .space-table td.price-cell input { padding-left: 18px; }
  .space-table td.price-cell::before { content: '$'; position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 0.9rem; color: #aaa; pointer-events: none; }
  .space-table tr.remove-row td { border-top: none; padding: 4px 6px; background: var(--cream); }
  .remove-btn { background: none; border: none; cursor: pointer; font-size: 0.75rem; font-weight: 400; color: #bbb; padding: 3px 8px; font-family: 'DM Sans', sans-serif; transition: color 0.2s; }
  .remove-btn:hover { color: #A32D2D; }

  /* ── PROCEEDS FORMULA — single line below space table, red like reference ── */
  .proceeds-line {
    font-size: 0.82rem; font-weight: 400; color: #c0392b;
    padding: 8px 0 0 0; display: flex; align-items: center; gap: 5px; flex-wrap: wrap;
  }
  .proceeds-line a { color: #c0392b; font-weight: 600; text-decoration: underline; }
  .proceeds-line .result { font-weight: 500; }

  /* ── NET BAR (live calc when price entered) ── */
  .net-bar {
    margin-top: 8px; padding: 9px 12px;
    background: rgba(78,99,82,0.06); border-left: 2px solid var(--sage-deep);
    font-size: 0.82rem; font-weight: 400; color: var(--charcoal);
    display: flex; gap: 14px; flex-wrap: wrap; align-items: center;
  }
  .net-bar strong { font-weight: 600; color: var(--sage-deep); }

  /* ── ADD SPACE — button + "Optional" on same line ── */
  .add-space-wrap { margin-bottom: 1.4rem; }
  .add-space-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 8px; }
  .add-btn {
    background: white; border: 1.5px solid var(--stone); padding: 9px 20px;
    font-size: 0.85rem; cursor: pointer; color: var(--charcoal);
    font-family: 'DM Sans', sans-serif; font-weight: 500; border-radius: 4px;
    transition: border-color 0.2s, background 0.2s; white-space: nowrap;
  }
  .add-btn:hover { border-color: var(--sage-deep); background: rgba(78,99,82,0.03); }
  .add-optional { font-size: 0.85rem; font-weight: 300; color: var(--stone); }
  .add-note { font-size: 0.84rem; font-weight: 300; color: #8a8a86; line-height: 1.5; }

  /* ── INFO BARS ── */
  .info-bar { padding: 12px 16px; font-size: 0.9rem; font-weight: 400; line-height: 1.65; margin-bottom: 1.6rem; }
  .info-sage { background: rgba(78,99,82,0.06); border-left: 3px solid var(--sage-deep); color: var(--sage-deep); }
  .info-gold { background: rgba(168,145,90,0.07); border-left: 3px solid var(--gold); color: #6b5930; }

  /* ── OWNER SECTION ── */
  .owner-block { margin-bottom: 1.5rem; }
  .owner-header { margin-bottom: 0.35rem; }
  .owner-label { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--charcoal); }
  .owner-sublabel { font-size: 0.88rem; font-weight: 300; color: #6e6e6a; margin-bottom: 1.1rem; }
  .owner-divider { border: none; border-top: 1px solid var(--mist); margin: 1.5rem 0 1.25rem; }
  /* Add owner row */
  .add-owner-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border: 1px solid var(--mist); margin-bottom: 1rem; }
  .add-owner-text p { font-size: 0.88rem; font-weight: 300; color: var(--charcoal); margin: 0; line-height: 1.5; }
  .add-owner-text p strong { font-weight: 500; }
  .add-owner-btn { display: inline-flex; align-items: center; gap: 0.4rem; white-space: nowrap; padding: 0.65rem 1.2rem; background: white; border: 1.5px solid var(--stone); border-radius: 4px; font-size: 0.82rem; font-weight: 500; color: var(--charcoal); cursor: pointer; font-family: 'DM Sans', sans-serif; transition: border-color 0.2s; }
  .add-owner-btn:hover { border-color: var(--sage-deep); }
  .add-owner-btn .plus { font-size: 1rem; color: var(--sage-deep); line-height: 1; }
  /* Important note */
  .important-note { padding: 0.9rem 1.1rem; border: 1px solid var(--mist); font-size: 0.88rem; font-weight: 300; color: var(--charcoal); line-height: 1.6; margin-bottom: 1.5rem; }
  .important-note strong { font-weight: 600; }

  /* ── REVIEW ── */
  .review-row { display: flex; justify-content: space-between; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--mist); }
  .review-row:last-child { border-bottom: none; }
  /* Review labels up from 0.72 → 0.85rem, color #aaa → #7a7a76 */
  .rv-lbl { font-size: 0.85rem; font-weight: 400; color: #7a7a76; min-width: 150px; letter-spacing: 0.02em; }
  /* Review values up from 0.78 → 0.9rem */
  .rv-val { font-size: 0.9rem; font-weight: 400; color: var(--charcoal); text-align: right; max-width: 280px; }
  .review-space { border: 1px solid var(--mist); padding: 12px 14px; margin-bottom: 8px; background: var(--cream); }
  .rs-top { display: flex; justify-content: space-between; margin-bottom: 5px; }
  .rs-top span:first-child { font-size: 0.8rem; font-weight: 500; color: var(--ink); letter-spacing: 0.05em; text-transform: uppercase; }
  .rs-top span:last-child { font-size: 0.9rem; font-weight: 400; color: var(--sage-deep); }
  /* Meta up from 0.7 → 0.82rem, color #aaa → #7a7a76 */
  .rs-meta { font-size: 0.82rem; font-weight: 300; color: #7a7a76; display: flex; gap: 14px; flex-wrap: wrap; }
  .total-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-left: 2px solid var(--gold); background: rgba(168,145,90,0.05); margin-bottom: 1rem; }
  /* Total label up from 0.75 → 0.88rem */
  .total-left { font-size: 0.88rem; font-weight: 400; color: var(--charcoal); line-height: 1.55; }
  .total-right { text-align: right; }
  .total-num { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 300; color: var(--sage-deep); line-height: 1; }
  /* Total sub up from 0.62 → 0.74rem, color #bbb → #8a8a86 */
  .total-sub { font-size: 0.74rem; font-weight: 300; color: #8a8a86; letter-spacing: 0.04em; margin-top: 3px; }

  /* ── AGREE ── */
  /* Bigger checkbox, more padding, larger text */
  .agree-box { display: flex; gap: 14px; align-items: flex-start; padding: 1.1rem 1.3rem; border: 1.5px solid var(--mist); cursor: pointer; margin-bottom: 1.5rem; transition: border-color 0.2s, background 0.2s; background: white; }
  .agree-box input[type=checkbox] { width: 20px; height: 20px; margin-top: 2px; flex-shrink: 0; accent-color: var(--sage-deep); cursor: pointer; }
  /* Agree text up from 0.78 → 0.9rem, color charcoal, weight 400 */
  .agree-box span { font-size: 0.9rem; font-weight: 400; color: var(--charcoal); line-height: 1.75; }
  .agree-box a { color: var(--sage-deep); text-decoration: underline; }
  .agree-box a:hover { color: var(--sage); }

  /* ── BUTTONS ── */
  .btn-row { display: flex; justify-content: space-between; align-items: center; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid var(--mist); }
  /* Buttons larger: padding up, font up from 0.72 → 0.82rem, min-height 48px for tap target */
  .btn-next { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.9rem 2rem; background: var(--sage-deep); color: var(--cream); border: none; font-size: 0.82rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; font-family: 'DM Sans', sans-serif; border-radius: 2px; transition: background 0.2s; min-height: 48px; }
  .btn-next:hover { background: var(--sage); }
  .btn-back { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.9rem 1.6rem; background: none; border: 1.5px solid var(--stone); color: var(--sage-deep); font-size: 0.82rem; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; font-family: 'DM Sans', sans-serif; border-radius: 2px; transition: border-color 0.2s, color 0.2s; min-height: 48px; }
  .btn-back:hover { border-color: var(--sage-deep); color: var(--charcoal); }
  .btn-disabled { opacity: 0.38 !important; cursor: not-allowed !important; }
  .btn-disabled:hover { background: var(--sage-deep) !important; }

  /* ── SUCCESS ── */
  .success-wrap { text-align: center; padding: 3rem 1rem 2rem; }
  .success-mark { width: 56px; height: 56px; border: 1px solid rgba(168,145,90,0.4); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.4rem; }
  .success-mark svg { width: 22px; height: 22px; stroke: var(--gold); fill: none; }
  .success-title { font-family: 'Cormorant Garamond', serif; font-size: 2.2rem; font-weight: 300; color: var(--ink); margin-bottom: 0.6rem; }
  /* Success sub up from 0.82 → 0.95rem */
  .success-sub { font-size: 0.95rem; font-weight: 400; color: #5a5a56; line-height: 1.75; max-width: 420px; margin: 0 auto 2rem; }
  .ref-card { border: 1px solid var(--mist); padding: 1.1rem 1.5rem; max-width: 280px; margin: 0 auto; background: var(--cream); }
  /* Ref label up from 0.58 → 0.68rem */
  .ref-label { font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sage); margin-bottom: 6px; }
  .ref-num { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 400; color: var(--sage-deep); letter-spacing: 0.06em; }

  /* ── FOOTER ── */
  /* Footer up from 0.7 → 0.8rem */
  footer { background: var(--ink); color: var(--stone); padding: 1.5rem 3rem; display: flex; justify-content: space-between; align-items: center; font-size: 0.8rem; font-weight: 300; letter-spacing: 0.05em; }
  footer a { color: var(--stone); text-decoration: none; }
  footer a:hover { color: var(--cream); }

  .hidden { display: none !important; }