/* ==========================================================================
   rsvp.css — RSVP sheet
   ========================================================================== */
dialog.sheet--narrow { width: min(100% - 2rem, 520px); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.rsvp { display: grid; gap: var(--s-4); }
.rsvp__field { display: grid; gap: var(--s-2); }
.rsvp__field > span { font-size: var(--text-xs); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-soft); }
.rsvp__field em { font-style: normal; color: var(--ink-mute); text-transform: none; letter-spacing: 0.04em; }
.rsvp__field input, .rsvp__field select {
  width: 100%; min-height: 48px; padding: 0 var(--s-4);
  font: inherit; font-size: 16px; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius-sm);
}
.rsvp__field input:focus, .rsvp__field select:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
.rsvp__field input[readonly] { color: var(--ink-soft); background: var(--bg-raised); }
.rsvp__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.rsvp__choice { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); border: 0; padding: 0; }
.rsvp__choice label { cursor: pointer; }
.rsvp__choice input { position: absolute; opacity: 0; }
.rsvp__choice span {
  display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--s-3); text-align: center;
  border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--ink-soft); font-size: var(--text-sm);
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.rsvp__choice input:checked + span { background: var(--gold); color: #1a140c; border-color: var(--gold); }
.rsvp__choice input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.rsvp__error { color: #e9a58f; font-size: var(--text-sm); }
.rsvp__submit { width: 100%; margin-top: var(--s-2); }
.rsvp__submit:disabled { opacity: 0.6; cursor: wait; }

.rsvp__done { text-align: center; display: grid; gap: var(--s-4); justify-items: center; padding: var(--s-4) 0; }
.rsvp__done-title { font-family: var(--font-display); font-weight: 500; font-size: var(--text-xl); }
.rsvp__done-text { color: var(--ink-soft); max-width: 36ch; }
.rsvp__done-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: center; margin-top: var(--s-3); }
.rsvp__done[hidden], .rsvp[hidden] { display: none; }
