/* RSVP and guestbook forms: large targets, clear focus, no tiny text. */
.field { display: grid; gap: 0.35rem; border: 0; padding: 0; margin: 0; position: relative; }
.field > span, .field legend { font-weight: 600; }
.field input:not([type='radio']):not([type='checkbox']), .field select, .field textarea {
  width: 100%; min-height: var(--tap); padding: 0.55rem 0.8rem; border-radius: var(--radius-small);
  border: 1.5px solid rgba(var(--rule-rgb), 0.55); background: var(--paper); font-size: 17px;
}
.field textarea { resize: vertical; }
.choice { display: flex; align-items: center; gap: 0.6rem; min-height: var(--tap); padding: 0 0.6rem; border-radius: var(--radius-small); cursor: pointer; }
.choice input { width: 22px; height: 22px; accent-color: var(--brand-soft); }
.choice:has(input:checked) { background: rgba(var(--brand-soft-rgb), 0.08); }
.counter { position: absolute; right: 0.6rem; bottom: 0.4rem; font-size: 0.8rem; color: var(--ink-soft); }
.form-status { min-height: 1.4em; margin: 0; color: var(--brand); font-weight: 600; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
