.reservation-main { max-width: 1100px; margin: 0 auto; padding: 140px var(--page-pad) 90px; }
.reservation-intro { max-width: 760px; margin-bottom: 50px; }
.reservation-intro h1 { font: 400 clamp(3.5rem, 6vw, 6rem)/.95 var(--serif); letter-spacing: -.035em; margin: 24px 0; }
.reservation-intro h1 i { color: var(--gold2); }
.reservation-intro > p:not(.eyebrow):not(.reservation-price) { font-size: 13px; line-height: 1.9; }
.reservation-intro .reservation-place { color: var(--gold2); }
.reservation-price { font: 400 48px/1.2 var(--serif); margin: 24px 0; }
.reservation-price span { font: 500 10px var(--sans); letter-spacing: .18em; }
.reservation-test-note { color: var(--muted); border-left: 1px solid var(--gold); padding-left: 18px; }
#reservation-form fieldset, .reservation-waiver { margin: 0 0 36px; padding: 32px; border: 1px solid var(--line); background: linear-gradient(135deg, var(--ink2), var(--ink)); min-width: 0; }
#reservation-form legend, .reservation-waiver h2 { color: var(--gold2); font: 600 11px/1.8 var(--sans); letter-spacing: .18em; }
#reservation-form legend { padding: 0 12px; max-width: 100%; }
.reservation-waiver h2 { margin: 0 0 18px; }
#reservation-form fieldset > p, .reservation-waiver p { font-size: 12px; color: var(--muted); margin: 0 0 24px; }
.reservation-waiver p { margin-bottom: 0; }
.reservation-waiver .waiver-logo { width: 156px; height: auto; margin: 0 0 24px; }
.reservation-waiver .waiver-event { margin-bottom: 24px; color: var(--gold2); }
.reservation-waiver .waiver-panel { border: 1px solid var(--line); background: var(--ink); }
.reservation-waiver .waiver-panel summary { padding: 18px; color: var(--gold2); font: 600 10px/1.8 var(--sans); letter-spacing: .14em; cursor: pointer; }
.reservation-waiver .waiver-document { max-height: 65vh; overflow-y: auto; padding: 24px; border-top: 1px solid var(--line); white-space: pre-wrap; overflow-wrap: anywhere; font: 400 13px/1.9 var(--sans); color: var(--cream); scrollbar-color: var(--gold) var(--ink); }
.reservation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.reservation-field { min-width: 0; margin-bottom: 24px; }
.reservation-grid > .reservation-field { margin-bottom: 0; }
.reservation-birthday { grid-column: 1 / -1; }
.reservation-field label, .reservation-field-title { display: block; font-size: 10px; font-weight: 600; letter-spacing: .1em; margin: 0 0 10px; }
.reservation-field label > span, .reservation-field-title > span { color: var(--muted); font-weight: 400; letter-spacing: 0; }
.reservation-field input, .reservation-field select, .reservation-field textarea { display: block; width: 100%; min-height: 48px; border: 1px solid var(--line); border-radius: 0; padding: 12px; background: var(--ink); color: var(--cream); font: 400 16px/1.5 var(--sans); color-scheme: dark; }
.reservation-field textarea { resize: vertical; }
.reservation-help { font-size: 11px; color: var(--muted); margin: 10px 0 0; line-height: 1.7; }
.reservation-check { display: flex; align-items: flex-start; gap: 14px; margin-top: 24px; font-size: 12px; cursor: pointer; }
.reservation-check input { width: 18px; height: 18px; flex-shrink: 0; margin: 3px 0 0; accent-color: var(--gold); }
#reservation-status { color: var(--gold2); font-size: 13px; }
#reservation-form [type=submit]:disabled { cursor: wait; opacity: .7; transform: none; }
.reservation-confirmation { border: 1px solid var(--line); background: var(--ink2); padding: clamp(24px, 5vw, 60px); }
.reservation-confirmation h2 { font: 400 clamp(2.8rem, 5vw, 5rem)/1 var(--serif); margin: 28px 0; }
.reservation-confirmation p { max-width: 660px; font-size: 13px; }
.reservation-page [hidden] { display: none !important; }
@media (max-width: 640px) {
  .reservation-main { padding-top: 110px; padding-bottom: 60px; }
  .reservation-grid { grid-template-columns: 1fr; gap: 22px; }
  #reservation-form fieldset, .reservation-waiver { padding: 22px 18px; }
}
