:root {
    --paper: #F5F1E7;
    --paper-raised: #FBF9F3;
    --ink: #1F2E33;
    --ink-soft: #4B5B5E;
    --teal: #2C6E76;
    --teal-deep: #1E4E54;
    --teal-soft: #DEEAE8;
    --brass: #A97E3E;
    --brass-soft: #EFE3CC;
    --line: #C9C1AE;
    --line-soft: #DFD9C9;
    --shadow: 0 1px 2px rgba(31,46,51,0.06), 0 8px 24px -12px rgba(31,46,51,0.18);
    --radius: 3px;
  }

  :root[data-theme="dark"] {
    --paper: #141C1E;
    --paper-raised: #1B2528;
    --ink: #EDEAE1;
    --ink-soft: #AEBBBB;
    --teal: #7BC7C9;
    --teal-deep: #9FDBDC;
    --teal-soft: #1E3235;
    --brass: #D3A863;
    --brass-soft: #2B2416;
    --line: #33403F;
    --line-soft: #26302F;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px -12px rgba(0,0,0,0.5);
  }

  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --paper: #141C1E;
      --paper-raised: #1B2528;
      --ink: #EDEAE1;
      --ink-soft: #AEBBBB;
      --teal: #7BC7C9;
      --teal-deep: #9FDBDC;
      --teal-soft: #1E3235;
      --brass: #D3A863;
      --brass-soft: #2B2416;
      --line: #33403F;
      --line-soft: #26302F;
      --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px -12px rgba(0,0,0,0.5);
    }
  }

  * { box-sizing: border-box; }

  body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
    line-height: 1.5;
  }

  .sans {
    font-family: -apple-system, 'Segoe UI', system-ui, Roboto, sans-serif;
  }

  .mono {
    font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
  }

  .preview-banner {
    background: var(--ink);
    color: var(--paper);
    text-align: center;
    padding: 0.6rem 1rem;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
  }

  a { color: inherit; }

  /* ---------- Header ---------- */
  header.site {
    position: sticky;
    top: 0;
    z-index: 20;
    background: var(--paper-raised);
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem clamp(1.25rem, 4vw, 3rem);
    gap: 1rem;
    flex-wrap: wrap;
  }

  .wordmark {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    color: var(--ink);
  }

  .wordmark .name {
    font-size: 1.28rem;
    font-weight: 700;
    letter-spacing: 0.01em;
  }

  .wordmark .tag {
    display: block;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--teal);
    margin-top: 0.15rem;
  }

  nav.primary {
    display: flex;
    gap: clamp(1rem, 2vw, 1.8rem);
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.88rem;
  }

  nav.primary a {
    text-decoration: none;
    color: var(--ink-soft);
    padding-bottom: 0.3rem;
    border-bottom: 2px solid transparent;
  }
  nav.primary a:hover, nav.primary a:focus-visible { color: var(--ink); border-color: var(--brass); outline: none; }
  nav.primary a.active { color: var(--ink); border-color: var(--teal); font-weight: 600; }

  .header-cta {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    background: var(--teal);
    color: var(--paper);
    padding: 0.55rem 1.1rem;
    border-radius: var(--radius);
    text-decoration: none;
    white-space: nowrap;
  }

  /* ---------- Hero ---------- */
  .hero {
    position: relative;
    padding: clamp(3.5rem, 8vw, 6rem) clamp(1.25rem, 4vw, 3rem) clamp(3rem, 6vw, 4.5rem);
    background-image:
      repeating-linear-gradient(0deg, var(--line-soft) 0 1px, transparent 1px 88px),
      repeating-linear-gradient(90deg, var(--line-soft) 0 1px, transparent 1px 88px);
    background-position: center;
    overflow: hidden;
  }
  .hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 50% at 50% 20%, var(--paper) 10%, transparent 75%), var(--paper);
    opacity: 0.94;
    z-index: 0;
  }
  .hero-inner { position: relative; z-index: 1; max-width: 46rem; margin: 0 auto; text-align: center; }

  .crest { width: 260px; max-width: 70%; height: auto; display: block; }
  .logo-stripe {
    background: #ffffff;
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.3rem 0;
    margin-bottom: 1.6rem;
    z-index: 1;
  }

  .hero h1 {
    font-size: clamp(1.9rem, 4vw, 2.7rem);
    line-height: 1.18;
    margin: 0 0 0.85rem;
    text-wrap: balance;
    color: var(--ink);
  }

  .hero .sub {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: clamp(0.98rem, 1.6vw, 1.1rem);
    color: var(--ink-soft);
    max-width: 34rem;
    margin: 0 auto 2rem;
  }

  .hero-actions {
    display: flex;
    gap: 0.85rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 2.4rem;
  }

  .btn {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    padding: 0.8rem 1.5rem;
    border-radius: var(--radius);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid transparent;
  }
  .btn-primary { background: var(--teal); color: var(--paper); box-shadow: var(--shadow); }
  .btn-ghost { background: transparent; color: var(--ink); border-color: var(--line); }
  .btn-ghost:hover { border-color: var(--teal); color: var(--teal-deep); }

  .credential-row {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--brass);
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0 0.6rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 0.6rem 0;
  }
  .credential-row .sep { color: var(--line); }

  /* ---------- Section shell ---------- */
  section { padding: clamp(3rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem); }
  .section-inner { max-width: 68rem; margin: 0 auto; }

  .eyebrow {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--teal);
    margin: 0 0 0.6rem;
  }

  h2.section-title {
    font-size: clamp(1.5rem, 2.8vw, 2rem);
    margin: 0 0 2.2rem;
    text-wrap: balance;
    max-width: 30rem;
  }

  /* ---------- Services ---------- */
  .services-band { background: var(--paper-raised); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
  }
  @media (max-width: 900px) { .service-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 600px) { .service-grid { grid-template-columns: 1fr; } }
  .service-card {
    background: var(--paper-raised);
    padding: 1.5rem 1.4rem;
  }
  .service-card h3 {
    font-family: Georgia, 'Iowan Old Style', serif;
    font-size: 1.15rem;
    margin: 0 0 0.7rem;
    color: var(--ink);
    text-decoration: underline;
    text-decoration-color: var(--line);
    text-underline-offset: 5px;
  }
  .service-card p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.88rem;
    color: var(--ink-soft);
    margin: 0 0 1rem;
  }
  .service-cta {
    display: inline-block;
    background: var(--ink);
    color: var(--paper);
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.6rem 1.15rem;
    border-radius: 999px;
    text-decoration: none;
  }
  .service-cta:hover { background: var(--teal-deep); }

  /* ---------- Areas ---------- */
  .areas-grid {
    display: grid;
    grid-template-columns: 1.1fr 1.1fr 0.9fr;
    gap: 2.5rem;
  }
  @media (max-width: 800px) { .areas-grid { grid-template-columns: 1fr; } }

  .county h3 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-soft);
    border-bottom: 1px solid var(--line);
    padding-bottom: 0.6rem;
    margin: 0 0 0.9rem;
  }
  .zip-list { display: flex; flex-wrap: wrap; gap: 0.5rem 0.7rem; }
  .zip-item {
    font-size: 0.85rem;
  }
  .zip-item .code { color: var(--teal-deep); font-weight: 600; }
  .zip-item .city { color: var(--ink-soft); font-family: -apple-system, 'Segoe UI', system-ui, sans-serif; font-size: 0.82rem; }

  .also-serving {
    background: var(--teal-soft);
    border: 1px dashed var(--teal);
    border-radius: var(--radius);
    padding: 1.3rem 1.4rem;
  }
  .also-serving h3 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--teal-deep);
    margin: 0 0 0.6rem;
  }
  .also-serving p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.87rem;
    color: var(--ink-soft);
    margin: 0;
  }

  /* ---------- About ---------- */
  .about-band { background: var(--paper-raised); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .about-head {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    margin-bottom: 1.5rem;
  }
  .avatar-circle {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--line);
    flex-shrink: 0;
  }

  .about-copy p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.95rem;
    color: var(--ink-soft);
    max-width: 42rem;
  }
  .about-copy h3 { margin: 0 0 0.3rem; font-size: 1.3rem; }
  .credential-line {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    color: var(--teal-deep);
    font-size: 0.85rem;
    margin: 0 0 1.1rem;
  }

  .credential-stamps {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brass);
    margin-top: 1.2rem;
  }
  .credential-stamps .sep { color: var(--line); margin: 0 0.5rem; }

  /* ---------- Pay strip ---------- */
  .pay-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
  }
  .pay-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.3rem 1.4rem;
    background: var(--paper-raised);
  }
  .pay-card h3 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.95rem;
    margin: 0 0 0.4rem;
  }
  .pay-card p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.85rem;
    color: var(--ink-soft);
    margin: 0;
  }

  /* ---------- Footer ---------- */
  footer.site {
    background: var(--ink);
    color: var(--paper);
  }
  :root[data-theme="dark"] footer.site, @media (prefers-color-scheme: dark) { }
  footer.site .section-inner {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 2rem;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.87rem;
    text-align: center;
    justify-items: center;
  }
  @media (max-width: 700px) { footer.site .section-inner { grid-template-columns: 1fr; } }
  footer.site h4 {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--brass);
    margin: 0 0 0.8rem;
  }
  footer.site a { text-decoration: none; opacity: 0.88; }
  footer.site a:hover { text-decoration: underline; }
  footer.site .foot-name { font-family: Georgia, serif; font-size: 1.1rem; margin-bottom: 0.5rem; }
  .footer-bottom {
    border-top: 1px solid rgba(245,241,231,0.15);
    padding: 1rem clamp(1.25rem, 4vw, 3rem);
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    opacity: 0.65;
    text-align: center;
  }

  @media (prefers-reduced-motion: no-preference) {
    .btn-primary:hover { transform: translateY(-1px); transition: transform 0.15s ease; }
  }

  .butterfly-field { position: fixed; inset: 0; pointer-events: none; z-index: 15; overflow: hidden; }
  .bfly {
    position: absolute;
    top: 100%;
    left: var(--x);
    width: var(--size);
    height: var(--size);
    opacity: 0.35;
    animation: bfly-rise var(--dur) linear var(--delay) infinite,
               bfly-sway calc(var(--dur) / 4) ease-in-out var(--delay) infinite alternate;
  }
  .bfly svg { width: 100%; height: 100%; display: block; filter: drop-shadow(0 1px 2px rgba(31,46,51,0.1)); }
  @keyframes bfly-rise {
    0%   { top: 105%; transform: rotate(-6deg); opacity: 0; }
    6%   { opacity: 0.35; }
    92%  { opacity: 0.35; }
    100% { top: -12%; transform: rotate(8deg); opacity: 0; }
  }
  @keyframes bfly-sway {
    from { margin-left: -22px; }
    to   { margin-left: 22px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .butterfly-field { display: none; }
  }

  /* ---------- What to Expect ---------- */
  .expect-band { background: var(--paper-raised); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .expect-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }
  @media (max-width: 800px) { .expect-grid { grid-template-columns: 1fr; } }
  .expect-col h3 {
    font-size: 1.2rem;
    margin: 0 0 0.9rem;
  }
  .expect-col > p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.92rem;
    color: var(--ink-soft);
    margin: 0 0 1rem;
  }
  .step-list {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
  }
  .step-list li {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.9rem;
    color: var(--ink-soft);
    padding-left: 1.1rem;
    border-left: 2px solid var(--teal);
  }
  .safety-note {
    background: var(--brass-soft);
    border: 1px solid var(--brass);
    border-radius: var(--radius);
    padding: 1.1rem 1.3rem;
    margin-top: 1.5rem;
  }
  .safety-note h4 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--brass);
    margin: 0 0 0.6rem;
  }
  .safety-note ul {
    margin: 0;
    padding-left: 1.1rem;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.88rem;
    color: var(--ink-soft);
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
  }
  .safety-note p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.88rem;
    color: var(--ink-soft);
    line-height: 1.55;
  }
  .type-list { display: flex; flex-direction: column; gap: 1.3rem; }
  .type-item h4 {
    font-size: 1.02rem;
    margin: 0 0 0.3rem;
  }
  .type-item p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.87rem;
    color: var(--ink-soft);
    margin: 0;
  }
  .type-item .fine {
    font-size: 0.78rem;
    font-style: italic;
    opacity: 0.8;
    margin-top: 0.3rem;
  }

  /* ---------- Request a Quote ---------- */
  .quote-band { background: var(--paper-raised); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .quote-layout {
    display: grid;
    grid-template-columns: 1.1fr 1.5fr;
    gap: 3.5rem;
    align-items: start;
  }
  @media (max-width: 900px) { .quote-layout { grid-template-columns: 1fr; } }

  .quote-intro p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.95rem;
    color: var(--ink-soft);
    max-width: 30rem;
  }
  .quote-context {
    display: inline-block;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--teal-deep);
    background: var(--teal-soft);
    border: 1px solid var(--teal);
    border-radius: var(--radius);
    padding: 0.4rem 0.8rem;
    margin-bottom: 1.4rem;
  }
  .next-steps { margin-top: 2.2rem; }
  .next-steps h4 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-soft);
    border-bottom: 1px solid var(--line);
    padding-bottom: 0.6rem;
    margin: 0 0 0.9rem;
  }

  .quote-form {
    background: var(--paper);
    border: 1px solid var(--line);
    padding: clamp(1.5rem, 3vw, 2.5rem);
  }
  .form-section + .form-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--line-soft);
  }
  .form-section-label {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brass);
    margin: 0 0 1.2rem;
  }
  .field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem;
  }
  @media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }
  .field { margin-bottom: 1.3rem; }
  .field label {
    display: block;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-soft);
    margin-bottom: 0.45rem;
  }
  .field .hint {
    display: block;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    font-style: italic;
    color: var(--ink-soft);
    opacity: 0.75;
    margin-top: 0.3rem;
  }
  .field input, .field textarea, .field select {
    width: 100%;
    border: none;
    border-bottom: 1px solid var(--line);
    background: transparent;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.98rem;
    color: var(--ink);
    padding: 0.5rem 0.1rem;
    outline: none;
    box-sizing: border-box;
  }
  .field input.mono, .field textarea.mono { font-family: 'SF Mono', 'Consolas', 'Courier New', monospace; font-size: 0.92rem; }
  .field input:focus, .field textarea:focus, .field select:focus { border-bottom-color: var(--teal); }
  .field textarea { resize: vertical; min-height: 4.2rem; }
  .field select { appearance: none; border-radius: 0; }

  .radio-row {
    display: flex;
    gap: 1.4rem;
    flex-wrap: wrap;
    margin-top: 0.3rem;
  }
  .radio-row label {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.92rem;
    color: var(--ink);
    cursor: pointer;
  }
  .radio-row input[type="radio"] { accent-color: var(--teal); }

  .checkbox-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.4rem;
  }
  .checkbox-item {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.92rem;
    color: var(--ink);
    cursor: pointer;
  }
  .checkbox-item input[type="checkbox"] {
    margin-top: 0.2rem;
    width: 16px; height: 16px;
    accent-color: var(--teal);
    flex-shrink: 0;
  }
  .checkbox-item.none-item {
    padding-top: 0.5rem;
    margin-top: 0.2rem;
    border-top: 1px dashed var(--line);
    color: var(--ink-soft);
  }
  .checkbox-pair {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
  }
  .checkbox-pair .checkbox-item { margin: 0; }
  .conditional-field {
    margin: 0.5rem 0 0 1.6rem;
    padding: 0.9rem 1rem;
    background: var(--paper-raised);
    border-left: 2px solid var(--teal);
  }
  .conditional-field textarea,
  .conditional-field input,
  .conditional-field select {
    width: 100%;
    border: none;
    border-bottom: 1px solid var(--line);
    background: transparent;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.9rem;
    color: var(--ink);
    padding: 0.4rem 0.1rem;
    outline: none;
    box-sizing: border-box;
  }
  .conditional-field textarea:focus,
  .conditional-field input:focus,
  .conditional-field select:focus { border-bottom-color: var(--teal); }
  .conditional-field textarea { resize: vertical; min-height: 5.5rem; }
  .conditional-field textarea.autogrow { overflow-y: hidden; resize: none; }
  .conditional-field .mini-field { margin-bottom: 0.7rem; }
  .conditional-field .mini-field label {
    display: block;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-soft);
    margin-bottom: 0.2rem;
  }
  .conditional-field .mini-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
  @media (max-width: 500px) { .conditional-field .mini-row { grid-template-columns: 1fr; } }

  .quote-submit {
    margin-top: 1.6rem;
    width: 100%;
  }
  .form-note {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.8rem;
    color: var(--ink-soft);
    margin-top: 1rem;
    text-align: center;
  }

  /* ---------- Payment ---------- */
  .payment-layout {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 3.5rem;
    align-items: start;
  }
  @media (max-width: 900px) { .payment-layout { grid-template-columns: 1fr; } }
  .payment-copy p {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.95rem;
    color: var(--ink-soft);
    max-width: 30rem;
  }
  .invoice-card {
    background: var(--paper-raised);
    border: 1px solid var(--line);
  }
  .invoice-head {
    padding: 1.3rem 1.5rem;
    border-bottom: 1px solid var(--line);
  }
  .invoice-head .label {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-soft);
    margin: 0 0 0.3rem;
  }
  .invoice-head .addr {
    font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
    font-size: 0.98rem;
  }
  .pay-toggle {
    display: flex;
    border-bottom: 1px solid var(--line);
  }
  .pay-toggle button {
    flex: 1;
    background: none;
    border: none;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.9rem;
    cursor: pointer;
    color: var(--ink-soft);
    border-bottom: 2px solid transparent;
  }
  .pay-toggle button.active { color: var(--ink); border-bottom-color: var(--teal); }
  .pay-body { padding: 1.5rem; }
  .line-item {
    display: flex;
    justify-content: space-between;
    font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
    font-size: 0.92rem;
    padding: 0.5rem 0;
    font-variant-numeric: tabular-nums;
  }
  .line-item.muted { color: var(--ink-soft); }
  .line-item.total {
    border-top: 1px solid var(--line);
    margin-top: 0.4rem;
    padding-top: 0.7rem;
    font-weight: 700;
    font-size: 1.05rem;
  }
  .surcharge-note {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    color: var(--ink-soft);
    margin: 0.8rem 0 1.2rem;
  }
  .accepted-methods {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.9rem 0 1.1rem;
  }
  .accepted-methods span {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-soft);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 0.25rem 0.6rem;
  }
  .zelle-panel {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.92rem;
    color: var(--ink-soft);
    line-height: 1.6;
  }
  .zelle-panel .zelle-target {
    font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
    color: var(--ink);
    font-size: 1.05rem;
    display: block;
    margin: 0.6rem 0;
  }
  .pay-cta {
    width: 100%;
    margin-top: 0.5rem;
  }
  .pay-preview-note {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    color: var(--brass);
    text-align: center;
    margin-top: 0.8rem;
    min-height: 1.2rem;
  }

  /* ---------- Accept & Sign ---------- */
  .sign-band { background: var(--paper-raised); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .private-flag {
    max-width: 42rem;
    margin: 0 auto 1.6rem;
    text-align: center;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--brass);
    border: 1px dashed var(--brass);
    border-radius: var(--radius);
    padding: 0.6rem 1rem;
  }
  .sign-doc {
    max-width: 42rem;
    margin: 0 auto;
    background: var(--paper);
    border: 1px solid var(--line);
    padding: clamp(1.6rem, 4vw, 3rem);
  }
  .sign-doc-head {
    text-align: center;
    border-bottom: 1px solid var(--line);
    padding-bottom: 1.4rem;
    margin-bottom: 1.6rem;
  }
  .sign-doc-head .eyebrow { justify-content: center; }
  .sign-doc-head h3 {
    font-size: 1.4rem;
    margin: 0.3rem 0 0.2rem;
  }
  .sign-doc-head .addr {
    font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
    font-size: 0.95rem;
    color: var(--ink-soft);
  }
  .sign-doc-head .prepared-for {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.85rem;
    color: var(--ink-soft);
    margin-top: 0.3rem;
  }
  .letter-facts {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.8rem;
  }
  .letter-facts tr { border-bottom: 1px solid var(--line-soft); }
  .letter-facts tr:first-child { border-top: 1px solid var(--line); }
  .letter-facts td {
    padding: 0.6rem 0.3rem;
    vertical-align: top;
  }
  .letter-facts td.k {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-soft);
    width: 40%;
    white-space: nowrap;
  }
  .letter-facts td.v {
    font-family: 'SF Mono', 'Consolas', 'Courier New', monospace;
    font-size: 0.95rem;
    text-align: right;
  }
  .letter-facts td.v.long-text {
    text-align: left;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.88rem;
  }
  @media (max-width: 480px) {
    .letter-facts td.k { width: auto; white-space: normal; }
    .letter-facts td.v { text-align: left; }
  }
  .sign-doc h4 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--brass);
    margin: 1.6rem 0 0.8rem;
  }
  .sign-doc p, .sign-doc li {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.92rem;
    color: var(--ink-soft);
    line-height: 1.6;
  }
  .sign-doc ul { margin: 0; padding-left: 1.2rem; }
  .sign-doc ul li + li { margin-top: 0.4rem; }

  .sign-block {
    margin-top: 2.2rem;
    padding-top: 1.8rem;
    border-top: 1px solid var(--line);
  }
  .agree-row {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 1.3rem;
  }
  .agree-row input[type="checkbox"] {
    margin-top: 0.25rem;
    width: 16px; height: 16px;
    accent-color: var(--teal);
  }
  .agree-row label {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.92rem;
    color: var(--ink);
  }
  .sign-name-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
    margin-bottom: 1.4rem;
  }
  @media (max-width: 500px) { .sign-name-row { grid-template-columns: 1fr; } }
  .sign-name-row .field input {
    font-family: 'Segoe Script', 'Brush Script MT', cursive;
    font-size: 1.3rem;
    border: none;
    border-bottom: 1px solid var(--line);
    background: transparent;
    width: 100%;
    padding: 0.4rem 0.1rem;
    outline: none;
    color: var(--ink);
  }
  .sign-name-row .field input:focus { border-bottom-color: var(--teal); }
  .sign-name-row .field label {
    display: block;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-soft);
    margin-bottom: 0.3rem;
  }

  .signed-block {
    margin-top: 1.4rem;
    padding: 1rem 1.2rem;
    background: var(--teal-soft);
    border: 1px solid var(--teal);
    border-radius: var(--radius);
  }
  @media print {
    @page { size: letter portrait; margin: 0.6in; }
    body { visibility: hidden; }
    #sign, #sign * { visibility: visible; }
    #sign { position: absolute; top: 0; left: 0; width: 100%; }
    .private-flag, .btn, #sign-submit, .pay-toggle { display: none !important; }
    .field-summary {
      page-break-after: always;
      break-after: page;
    }
    .letter-facts tr {
      page-break-inside: avoid;
      break-inside: avoid;
    }
    details.more-terms summary {
      cursor: default;
    }
    details.more-terms summary::before {
      display: none;
    }
  }
  .pay-reveal {
    margin-top: 1.8rem;
    padding-top: 1.8rem;
    border-top: 1px dashed var(--teal);
    display: none;
  }
  .pay-reveal.shown { display: block; }
  .pay-reveal .unlocked {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--teal-deep);
    margin: 0 0 0.9rem;
  }

  .sign-doc details.more-terms {
    margin-top: 1.6rem;
    padding-top: 1.6rem;
    border-top: 1px solid var(--line);
  }
  .sign-doc details.more-terms summary {
    cursor: pointer;
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--teal-deep);
    list-style: none;
  }
  .sign-doc details.more-terms summary::-webkit-details-marker { display: none; }
  .sign-doc details.more-terms summary::before {
    content: '+ ';
    font-weight: 700;
  }
  .sign-doc details.more-terms[open] summary::before {
    content: '\2212 ';
  }
  .sign-doc details.more-terms h5 {
    font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--brass);
    margin: 1.3rem 0 0.5rem;
  }
  .sign-doc details.more-terms h5:first-of-type { margin-top: 1rem; }
