.rsvp-card textarea {
  width: 100%;
  min-height: 88px;
  border: none;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  font: inherit;
  padding: 8px 0;
  resize: vertical;
}
.rsvp-card textarea:focus { outline: none; border-bottom-color: var(--accent); }

.rsvp-step-title {
  font-family: var(--font-serif);
  font-size: 26px;
  text-align: center;
  margin: 0 0 8px;
}
.rsvp-progress {
  text-align: center;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 22px;
}

.choice-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.choice-row button,
.meal-option {
  appearance: none;
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: 4px;
  font: inherit;
  cursor: pointer;
}
.choice-row button {
  padding: 8px 16px;
  font-family: var(--font-serif);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 13px;
}
.choice-row button.on,
.meal-option.on {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

.meal-list { display: grid; gap: 12px; }
.meal-option {
  text-align: left;
  padding: 16px 18px;
}
.meal-option strong { display: block; font-family: var(--font-serif); font-size: 18px; }
.meal-option span { color: var(--ink-soft); font-size: 15px; }

.rsvp-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.rsvp-parking {
  margin-top: 22px;
  padding: 16px 18px;
  border: 1px solid var(--rule);
  border-radius: var(--card-radius);
  font-size: 16px;
  color: var(--ink-soft);
  text-align: left;
}
.rsvp-parking strong { display: block; color: var(--ink); margin-bottom: 4px; }

.rsvp-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
}

.rsvp-error {
  color: #8a2a2a;
  text-align: center;
  margin-top: 12px;
  font-size: 15px;
}
