/* Shared styling for the RSVP form (used on the main page and on /rsvp).
   Designed to sit on the site's olive panel: light text, soft outlines. */
.rsvpf { display: grid; grid-template-columns: 1fr; gap: 26px; }  /* single column even inside the page's 2-col form rule */
.rsvpf-q { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.rsvpf-q legend, .rsvpf-label {
  font: 400 clamp(19px, 2vw, 23px)/1.3 var(--serif, Georgia, serif);
  color: #f4ede2; padding: 0;
}
.rsvpf-q legend b, .rsvpf-label b { color: #e0b48f; font-weight: 400; }
.rsvpf-hint { font-size: 13px; color: #c5bba9; line-height: 1.5; }
.rsvpf input[type="text"], .rsvpf input:not([type]), .rsvpf input[type="date"], .rsvpf textarea {
  font: 300 16px/1.5 var(--sans, system-ui, sans-serif);
  color: #fff; background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 10px;
  padding: 13px 14px; width: 100%; box-sizing: border-box;
}
.rsvpf textarea { resize: vertical; min-height: 84px; }
.rsvpf input:focus, .rsvpf textarea:focus { outline: none; border-color: #e0b48f; background: rgba(255, 255, 255, .1); }
.rsvpf input[type="date"] { color-scheme: dark; }

.rsvpf-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rsvpf-choice--sm { max-width: 320px; }
.rsvpf-choice label { position: relative; cursor: pointer; }
.rsvpf-choice input { position: absolute; opacity: 0; pointer-events: none; }
.rsvpf-choice span {
  display: block; text-align: center; padding: 15px 12px;
  border: 1px solid rgba(255, 255, 255, .28); border-radius: 12px;
  font: 400 clamp(17px, 1.7vw, 20px) var(--serif, Georgia, serif); color: #fff; transition: .22s;
}
.rsvpf-choice span:hover { border-color: rgba(255, 255, 255, .6); }
.rsvpf-choice input:checked + span { background: #f4ede2; color: #3c4733; border-color: #f4ede2; }
.rsvpf-choice input:focus-visible + span { outline: 2px solid #e0b48f; outline-offset: 2px; }
@media (max-width: 460px) { .rsvpf-choice { grid-template-columns: 1fr; } }

.rsvpf-send {
  justify-self: start; cursor: pointer; border: 0; border-radius: 99px;
  background: #f4ede2; color: #3c4733; padding: 16px 32px;
  font: 500 13px var(--sans, system-ui, sans-serif); letter-spacing: .2em; text-transform: uppercase;
}
.rsvpf-send[disabled] { opacity: .6; cursor: wait; }
.rsvpf-status { min-height: 1.4em; margin: 0; font: italic 400 19px var(--serif, Georgia, serif); color: #f0e4d4; }
.rsvpf-status.is-error { color: #f0b9a4; font-style: normal; font-size: 15px; font-family: var(--sans, system-ui, sans-serif); }
.rsvpf-hp { position: absolute; left: -9999px; }

.rsvpf-done { display: grid; gap: 14px; justify-items: start; }
.rsvpf-thanks { margin: 0; font: 400 clamp(26px, 3.2vw, 38px)/1.2 var(--serif, Georgia, serif); color: #f4ede2; }
.rsvpf-again { margin: 0; font-size: 14px; color: #c5bba9; max-width: 44ch; }
.rsvpf-reset {
  background: transparent; color: #f4ede2; border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 99px; padding: 11px 22px; cursor: pointer;
  font: 400 12px var(--sans, system-ui, sans-serif); letter-spacing: .16em; text-transform: uppercase;
}
