.reservations-page { background: var(--color-cream); }
.reservations-hero { padding-block: var(--space-9); }
.reservations-hero__grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--space-5); align-items:center; }
.reservations-hero__copy { grid-column:1/span 5; }
.reservations-hero__copy .text-large { max-width:34rem; color:var(--color-paper); }
.reservations-hero__figure { grid-column:7/span 6; margin:0; aspect-ratio:3/2; overflow:hidden; }
.reservations-hero__figure img { width:100%; height:100%; object-fit:cover; }
.reservations-booking { padding-block:var(--space-9); scroll-margin-top:var(--space-7); }
.reservations-booking__grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--space-5); align-items:start; }
.reservations-booking__intro { grid-column:1/span 4; max-width:21.5rem; position:sticky; top:7rem; }
.reservations-booking__note { display:flex; gap:var(--space-3); margin-top:var(--space-6); padding-top:var(--space-5); border-top:var(--border-dark); }
.reservations-booking__note > span { color:var(--color-brass); }
.reservations-booking__note p { margin:0; font-size:var(--text-sm); }
.reservations-form-panel { grid-column:6/span 7; padding:2.5rem; }
.reservations-form-panel__heading { margin-bottom:var(--space-6); }
.reservations-form-panel__heading > * { margin-bottom:var(--space-1); }
.reservations-form { display:flex; flex-direction:column; gap:var(--space-5); }
.reservations-form__row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-4); }
.reservations-field { display:flex; flex-direction:column; gap:var(--space-2); }
.reservations-field label { font-size:var(--text-sm); font-weight:700; letter-spacing:.03em; }
.reservations-field textarea { min-height:8rem; }
.reservations-field__error { min-height:1.2em; margin:0; color:var(--color-leather); font-size:var(--text-sm); font-weight:700; }
.reservations-form__fieldset { display:flex; flex-direction:column; gap:var(--space-3); margin:0; padding:0; border:0; }
.reservations-form__fieldset legend { margin-bottom:var(--space-3); padding:0; font-family:var(--font-heading); font-size:var(--text-h3); }
.reservations-choice { display:flex; gap:var(--space-3); padding:var(--space-4); border:var(--border-dark); background:var(--color-paper); }
.reservations-choice:has(input:checked) { border-color:var(--color-green); box-shadow:inset 3px 0 var(--color-green); }
.reservations-choice input { flex:0 0 auto; margin-top:.25rem; }
.reservations-choice span { display:flex; flex-direction:column; gap:var(--space-1); }
.reservations-choice small { color:var(--color-charcoal-muted); line-height:1.5; }
.reservations-form__footer { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-3); }
.reservations-form__footer > * { margin:0; }
.reservations-form__status { min-height:1.5em; font-size:var(--text-sm); }
.reservations-form__summary { margin-bottom:var(--space-5); padding:var(--space-4); border:1px solid var(--color-leather); border-left:3px solid var(--color-brass); background:var(--color-cream); }
.reservations-form__summary h4 { margin-bottom:var(--space-2); }
.reservations-form__summary ul { margin:0; }
.reservations-confirmation { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-4); padding-block:var(--space-6); }
.reservations-confirmation > * { margin:0; }
.reservations-confirmation__actions { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-5); }
.reservations-details { padding-block:var(--space-9); }
.reservations-details__heading { max-width:36rem; margin-bottom:var(--space-7); }
.reservations-details__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:var(--border-dark); border-bottom:var(--border-dark); }
.reservations-details__grid article { padding:var(--space-6); border-right:var(--border-dark); }
.reservations-details__grid article:last-child { border-right:0; }
.reservations-details__grid span { color:var(--color-brass); font-size:var(--text-sm); font-weight:700; letter-spacing:.12em; }
.reservations-closing { padding-block:var(--space-8); }
.reservations-closing__content { display:flex; flex-direction:column; align-items:center; max-width:42rem; gap:var(--space-3); text-align:center; }
.reservations-closing__content > * { margin:0; }
@media (max-width:56.25rem) {
  .reservations-hero__copy { grid-column:1/span 6; }
  .reservations-booking__grid { grid-template-columns:1fr; }
  .reservations-booking__intro,.reservations-form-panel { grid-column:1; max-width:none; }
  .reservations-booking__intro { position:static; }
}
@media (max-width:44rem) {
  .reservations-hero { padding-block:var(--space-7); }
  .reservations-hero__grid { grid-template-columns:1fr; }
  .reservations-hero__copy,.reservations-hero__figure { grid-column:1; }
  .reservations-hero__figure { margin-top:var(--space-4); }
  .reservations-booking,.reservations-details { padding-block:var(--space-7); }
  .reservations-form-panel { padding:var(--space-5); }
  .reservations-form__row { grid-template-columns:1fr; }
  .reservations-details__grid { grid-template-columns:1fr; }
  .reservations-details__grid article { border-right:0; border-bottom:var(--border-dark); padding-inline:0; }
  .reservations-details__grid article:last-child { border-bottom:0; }
}
@media (max-width:29.99rem) {
  .reservations-form-panel { padding:var(--space-4); }
  .reservations-form__footer .button,.reservations-confirmation__actions .button { width:100%; }
}
