/* A private reply, tucked into the invitation like a cream-paper note. */
#rsvp.rsvp-section {
  max-width: none;
  padding: 54px 24px 58px;
  color: #31415a;
  background: radial-gradient(ellipse at 15% 12%, #f3e6ce75, transparent 65%), #fbf7ef;
}
#rsvp [hidden] { display: none !important; }
#rsvp .rsvp-inner { max-width: 510px; margin: 0 auto; }
#rsvp .rsvp-heading { text-align: center; margin-bottom: 30px; }
#rsvp .rsvp-heading > .eyebrow { color: #a48a5e; font-size: 8px; letter-spacing: 2px; margin-bottom: 18px; }
#rsvp h2 { font: 500 27px/1.7 var(--serif); letter-spacing: .5px; margin-bottom: 18px; }
#rsvp .rsvp-heading > p:last-child { color: #7d7d7b; font-size: 13.5px; line-height: 1.9; margin-bottom: 0; }
#rsvp .rsvp-link-note, #rsvp .rsvp-loading { padding: 23px 22px; border-block: 1px solid #c5b28b66; color: #86765b; font-size: 13px; line-height: 1.95; text-align: center; }
#rsvp .rsvp-guest { margin: 0 0 23px; text-align: center; color: #8d7958; font-size: 12px; line-height: 1.9; }
#rsvp .rsvp-guest strong { display: block; color: #35445e; font: 500 21px/1.8 var(--serif); letter-spacing: 1px; }
#rsvp fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
#rsvp .rsvp-field { margin: 0 0 25px; }
#rsvp .rsvp-label, #rsvp .rsvp-stay legend { display: block; padding: 0; margin-bottom: 10px; color: #3b4960; font-size: 14px; font-weight: 500; line-height: 1.8; }
#rsvp .rsvp-label span { margin-left: 7px; color: #a28e6e; font-size: 10px; font-weight: 400; }
#rsvp select, #rsvp input[type="tel"] { display: block; width: 100%; min-height: 49px; border: 1px solid #c9bfae; border-radius: 3px; padding: 12px 13px; color: #31415a; background: #fffcf6; font: 16px/1.5 var(--sans); box-shadow: none; }
#rsvp select:focus, #rsvp input:focus { outline: 2px solid #b99c665f; outline-offset: 2px; border-color: #ad915c; }
#rsvp .rsvp-hint { margin: 9px 0 0; color: #8a857c; font-size: 11.5px; line-height: 1.9; }
#rsvp .rsvp-choice-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#rsvp .rsvp-choice { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 11px 12px; border: 1px solid #d6cbba; border-radius: 3px; color: #6f6e68; background: #fffaf1; font-size: 13px; line-height: 1.7; cursor: pointer; }
#rsvp .rsvp-choice:has(input:checked) { border-color: #b59b6b; color: #6f5734; background: #ece1c842; }
#rsvp .rsvp-choice:has(input:disabled) { opacity: .5; cursor: default; }
#rsvp input[type="radio"] { width: 17px; height: 17px; margin: 0; accent-color: #9f8350; }
#rsvp .rsvp-submit { display: block; width: 100%; min-height: 51px; margin: 4px 0 0; padding: 13px 18px; border: 1px solid #c8ad74; border-radius: 3px; color: #263650; background: linear-gradient(115deg, #e7ce9b, #f1dfb9); font: 500 14px/1.6 var(--sans); letter-spacing: 1px; }
#rsvp .rsvp-submit:disabled { opacity: .55; cursor: default; }
#rsvp .rsvp-feedback { margin: 18px 0 0; padding: 14px 15px; border-left: 2px solid #9caa81; color: #5c6b4f; background: #e7ecd955; font-size: 13px; line-height: 1.9; }
#rsvp .rsvp-feedback.is-error { border-color: #bd8d78; color: #95634f; background: #f1e4da66; }
#rsvp .rsvp-privacy { margin: 22px 0 0; color: #938b7c; font-size: 11px; line-height: 1.95; text-align: center; }
#rsvp .rsvp-privacy strong { color: #827253; font-weight: 400; }
#rsvp .rsvp-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.event-card .rsvp-entry { display: flex; justify-content: center; min-height: 44px; margin: 10px auto 0; color: #e8ce98; font-size: 12px; }
.closing-copy .rsvp-closing-entry { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 11px 25px; margin: 22px 0 0; border: 1px solid #7d9bb2; color: #345b79; font-size: 13px; letter-spacing: 1px; }
@media (max-width: 360px) { #rsvp.rsvp-section { padding-inline: 21px; } #rsvp .rsvp-choice { padding-inline: 10px; font-size: 12px; } }
