
  .contact-top { padding-top: clamp(48px, 7vw, 80px); }
  .contact-top .eyebrow { margin-bottom: 18px; }
  .contact-top h1 { font-size: clamp(38px, 6vw, 68px); margin-bottom: 20px; max-width: 16ch; }
  .contact-top .lede { max-width: 50ch; }

  .contact-grid {
    display: grid; grid-template-columns: 1.35fr 0.65fr;
    gap: clamp(28px, 4vw, 56px); align-items: start;
    padding-bottom: clamp(64px, 9vw, 120px);
  }
  @media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } }

  /* form */
  .form-card { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: clamp(24px, 4vw, 44px); }
  .form-errors {
    margin-bottom: 22px; padding: 14px 16px; border-radius: 12px;
    background: #f8e8e4; color: #7b2f26; border: 1px solid #e4b8af;
  }
  .form-errors p { margin: 0; }
  .field { margin-bottom: 22px; }
  .field-group { margin: 0; }
  .field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  @media (max-width: 520px) { .field--row { grid-template-columns: 1fr; } }
  label { display: block; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--ink); margin-bottom: 8px; }
  label .opt { color: var(--ink-faint); font-weight: 400; letter-spacing: 0; }
  .input, .select, .textarea {
    width: 100%; font-family: var(--sans); font-size: 16px; color: var(--ink);
    background: var(--ivory); border: 1.5px solid var(--line); border-radius: 11px;
    padding: 13px 15px; transition: border-color .15s, box-shadow .15s, background .15s;
  }
  .input::placeholder, .textarea::placeholder { color: var(--ink-faint); }
  .input:focus, .select:focus, .textarea:focus {
    outline: none; border-color: var(--sand); background: #fff;
    box-shadow: 0 0 0 4px var(--sand-wash);
  }
  .textarea { resize: vertical; min-height: 120px; line-height: 1.5; }
  .select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238C8475' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; padding-right: 40px; }

  /* segmented choice */
  .segmented { display: flex; flex-wrap: wrap; gap: 10px; }
  .seg {
    flex: 1; min-width: 110px; position: relative; cursor: pointer;
  }
  .seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
  .seg span {
    display: block; text-align: center; font-size: 14.5px; font-weight: 500;
    padding: 12px 10px; border: 1.5px solid var(--line); border-radius: 11px;
    background: var(--ivory); transition: all .15s; color: var(--ink-soft);
  }
  .seg input:checked + span { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
  .seg input:focus-visible + span { box-shadow: 0 0 0 4px var(--sand-wash); }

  .check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 14.5px; color: var(--ink-soft); }
  .check input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--sand-deep); flex: none; }

  .form-error { display: none; color: #9a3b2f; font-size: 13px; margin-top: 6px; }
  .field.invalid .input, .field.invalid .textarea, .field.invalid .select,
  .field-group.invalid .input, .field-group.invalid .textarea, .field-group.invalid .select { border-color: #c66; }
  .field.invalid .form-error, .field-group.invalid .form-error { display: block; }

  .submit-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
  .submit-note { font-size: 13px; color: var(--ink-faint); }

  /* success */
  .form-success { display: none; text-align: center; padding: 30px 10px; }
  .form-success.show { display: block; }
  .form-success .tick { width: 58px; height: 58px; border-radius: 999px; background: var(--sand-wash); display: grid; place-items: center; margin: 0 auto 22px; }
  .form-success .tick svg { width: 28px; height: 28px; stroke: var(--sand-deep); }
  .form-success h2 { font-size: 32px; margin-bottom: 12px; }
  .form-success p { color: var(--ink-soft); max-width: 40ch; margin: 0 auto; }

  /* aside */
  .aside-card { background: var(--ink); color: var(--ivory); border-radius: 20px; padding: clamp(26px, 3vw, 38px); }
  .aside-card h3 { font-family: var(--display); font-size: 27px; margin-bottom: 22px; }
  .aside-item { padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.13); }
  .aside-item:last-of-type { border-bottom: none; }
  .aside-item .lbl { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--sand); margin-bottom: 5px; }
  .aside-item a, .aside-item span { font-size: 16px; color: var(--ivory); }
  .aside-item a:hover { color: var(--sand); }
  .aside-socials { display: flex; gap: 10px; margin-top: 24px; }
  .aside-socials a { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; transition: all .15s; }
  .aside-socials a:hover { background: var(--sand); border-color: var(--sand); color: #1d1810; }
  .aside-socials svg { width: 18px; height: 18px; }
  .response-pill { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-size: 13px; color: rgba(244,239,230,.75); }
  .response-pill .dot { width: 8px; height: 8px; border-radius: 999px; background: #8fb98f; box-shadow: 0 0 0 4px rgba(143,185,143,.18); }
