main.page-booking { background: var(--color-ivory-50); }

.page-booking .booking-hero { position: relative; min-height: 76vh; display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; color: var(--color-ivory-900); background: var(--color-charcoal-950); overflow: hidden; }
.page-booking .booking-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.page-booking .booking-hero__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(17,21,20,.9) 0%, rgba(17,21,20,.74) 38%, rgba(17,21,20,.28) 72%, rgba(17,21,20,.18) 100%); }
.page-booking .booking-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.page-booking .booking-hero__inner { position: relative; z-index: 1; width: min(100% - 4rem, 75rem); min-width: 0; margin-inline: auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; padding-block: 6rem; }
.page-booking .booking-hero__content { grid-column: 1; min-width: 0; max-width: 35rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .booking-hero__content > * { min-width: 0; margin: 0; }
.page-booking .booking-hero h1 { font-size: clamp(3rem, 5.7vw, 5.5rem); }
.page-booking .booking-hero__lead { max-width: 35rem; font-size: var(--font-size-lead); line-height: 1.4; color: rgba(247,241,229,.88); }
.page-booking .booking-hero__actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.page-booking .booking-hero__actions > * { min-width: 0; }
.page-booking .booking-hero__menu-link { color: var(--color-ivory-900); font-size: var(--font-size-control); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.page-booking .booking-hero__microcopy { color: rgba(247,241,229,.7); font-size: .875rem; }

.page-booking .booking-intro { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); width: min(100%, 47.5rem); }
.page-booking .booking-intro > * { min-width: 0; margin: 0; }
.page-booking .booking-intro .rule { margin-top: var(--space-2); }
.page-booking .booking-intro__copy { display: flex; flex-direction: column; gap: var(--space-4); max-width: 42.5rem; }
.page-booking .booking-intro__copy p { margin: 0; }

.page-booking .experience-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); gap: var(--space-4); margin-top: var(--space-7); }
.page-booking .experience-grid > * { min-width: 0; }
.page-booking .experience-card { min-width: 0; display: flex; flex-direction: column; align-items: stretch; gap: var(--space-4); min-height: 100%; border: 1px solid var(--color-border); border-bottom: 2px solid transparent; padding: var(--space-5); background: var(--color-ivory-50); transition: background-color var(--transition-base), border-color var(--transition-base); }
.page-booking .experience-card > * { min-width: 0; margin: 0; }
.page-booking .experience-card:hover, .page-booking .experience-card:focus-within { border-bottom-color: var(--color-brass-500); background: rgba(18,60,53,.045); }
.page-booking .experience-card__number, .page-booking .experience-card__meta { color: var(--color-brass-500); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; }
.page-booking .experience-card__body { display: flex; flex-direction: column; gap: var(--space-4); }
.page-booking .experience-card__body > * { min-width: 0; margin: 0; }
.page-booking .experience-card__link { margin-top: auto; font-size: var(--font-size-control); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.page-booking .experience-card--late { border-color: rgba(244,239,228,.16); background: var(--color-emerald-800); color: var(--color-ivory-900); }
.page-booking .experience-card--late:hover, .page-booking .experience-card--late:focus-within { background: #0e302b; border-bottom-color: var(--color-brass-300); }
.page-booking .experience-card--late .experience-card__meta { color: var(--color-brass-300); }
.page-booking .experience-card--late .experience-card__tag { align-self: flex-start; padding: .25rem .45rem; background: var(--color-burgundy-700); color: var(--color-ivory-900); font-size: .6875rem; font-weight: 600; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }

.page-booking .kitchen-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); align-items: center; }
.page-booking .kitchen-layout > * { min-width: 0; }
.page-booking .kitchen-figure { width: 100%; margin: 0; border: 1px solid var(--color-border); overflow: hidden; }
.page-booking .kitchen-figure img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; }
.page-booking .kitchen-copy { max-width: 31.25rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .kitchen-copy > * { min-width: 0; margin: 0; }
.page-booking .kitchen-copy__body { display: flex; flex-direction: column; gap: var(--space-4); }
.page-booking .kitchen-copy__body p { margin: 0; }
.page-booking .kitchen-quote { max-width: 26.25rem; border-left: 3px solid var(--color-burgundy-700); padding-left: var(--space-4); color: var(--color-charcoal-900); font-family: var(--font-serif); font-size: var(--font-size-lead); line-height: 1.35; }
.page-booking .kitchen-quote span { display: block; margin-bottom: var(--space-2); color: var(--color-burgundy-700); font-family: var(--font-sans); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.page-booking .flavour-list { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--color-border); }
.page-booking .flavour-list > * { min-width: 0; }
.page-booking .flavour-item { display: grid; grid-template-columns: minmax(5rem, .35fr) minmax(0, 1fr); gap: var(--space-3); border-bottom: 1px solid var(--color-border); padding-block: var(--space-3); }
.page-booking .flavour-item > * { min-width: 0; margin: 0; }
.page-booking .flavour-item strong { font-family: var(--font-serif); font-size: 1.25rem; }

.page-booking .lounge-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); align-items: center; }
.page-booking .lounge-top > * { min-width: 0; }
.page-booking .lounge-copy { max-width: 37.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .lounge-copy > * { min-width: 0; margin: 0; }
.page-booking .lounge-copy__body { display: flex; flex-direction: column; gap: var(--space-4); color: rgba(247,241,229,.84); }
.page-booking .lounge-copy__body p { margin: 0; }
.page-booking .lounge-figure { width: 100%; margin: 0; border: 1px solid rgba(179,154,99,.42); overflow: hidden; }
.page-booking .lounge-figure img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: center; }
.page-booking .lounge-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-7); }
.page-booking .lounge-grid > * { min-width: 0; }
.page-booking .lounge-panel { min-height: 100%; border-top: 1px solid rgba(247,241,229,.18); border-bottom: 1px solid transparent; padding: var(--space-4) 0; transition: border-color var(--transition-fast), background-color var(--transition-fast); }
.page-booking .lounge-panel:hover, .page-booking .lounge-panel:focus-within { border-bottom-color: var(--color-brass-500); background: rgba(18,60,53,.32); }
.page-booking .lounge-panel__label { display: block; margin-bottom: var(--space-3); color: var(--color-brass-500); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.page-booking .lounge-panel h3 { margin-bottom: var(--space-3); }
.page-booking .lounge-panel p { margin: 0; color: rgba(247,241,229,.78); font-size: 1rem; }
.page-booking .lounge-panel--closing { border-top-color: var(--color-brass-500); }

.page-booking .process-heading { width: min(100%, 45rem); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .process-heading > * { min-width: 0; margin: 0; }
.page-booking .process-heading p { max-width: 45rem; }
.page-booking .process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-top: var(--space-7); border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.page-booking .process-grid > * { min-width: 0; }
.page-booking .process-step { min-height: 100%; padding: var(--space-5); border-left: 1px solid var(--color-border); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.page-booking .process-step:first-child { border-left: 0; }
.page-booking .process-step > * { min-width: 0; margin: 0; }
.page-booking .process-step__number { color: var(--color-brass-500); font-size: 1rem; font-weight: 600; letter-spacing: .1em; line-height: 1.2; }
.page-booking .process-step p { font-size: 1rem; }
.page-booking .process-step__link { margin-top: auto; font-size: var(--font-size-control); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

.page-booking .direction-heading { width: min(100%, 41.25rem); margin-inline: auto; display: flex; flex-direction: column; align-items: center; gap: var(--space-4); text-align: center; }
.page-booking .direction-heading > * { min-width: 0; margin: 0; }
.page-booking .direction-heading p { max-width: 41.25rem; color: rgba(247,241,229,.84); }
.page-booking .direction-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-7); }
.page-booking .direction-grid > * { min-width: 0; }
.page-booking .direction-card { min-height: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); border: 1px solid rgba(179,154,99,.42); border-top: 3px solid var(--color-brass-500); padding: var(--space-5); background: rgba(17,21,20,.36); transition: background-color var(--transition-fast), border-color var(--transition-fast); }
.page-booking .direction-card > * { min-width: 0; margin: 0; }
.page-booking .direction-card:hover, .page-booking .direction-card:focus-within { border-color: var(--color-brass-300); background: var(--color-charcoal-900); }
.page-booking .direction-card--kitchen { border-top-color: var(--color-burgundy-700); }
.page-booking .direction-card--late { border-top-color: var(--color-ivory-900); }
.page-booking .direction-card__label { color: var(--color-brass-500); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.page-booking .direction-card p { color: rgba(247,241,229,.82); }
.page-booking .direction-card__link { margin-top: auto; font-size: var(--font-size-control); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

.page-booking .reservation-shell { width: min(100%, 62.5rem); margin-inline: auto; border: 1px solid rgba(179,154,99,.62); background: var(--color-burgundy-700); box-shadow: var(--shadow-soft); padding: var(--space-7); }
.page-booking .reservation-layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: var(--space-7); align-items: start; }
.page-booking .reservation-layout > * { min-width: 0; }
.page-booking .reservation-intro { max-width: 23.75rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .reservation-intro > * { min-width: 0; margin: 0; }
.page-booking .reservation-intro p { color: rgba(247,241,229,.88); }
.page-booking .reservation-form { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-5); }
.page-booking .reservation-form > * { min-width: 0; margin: 0; }
.page-booking .reservation-form fieldset { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.page-booking .reservation-form legend { width: 100%; color: var(--color-brass-300); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.page-booking .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.page-booking .form-grid > * { min-width: 0; }
.page-booking .form-field { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-2); }
.page-booking .form-field > * { min-width: 0; }
.page-booking .form-field label, .page-booking .form-consent label { color: var(--color-ivory-900); font-size: .875rem; font-weight: 500; }
.page-booking .form-field input, .page-booking .form-field select, .page-booking .form-field textarea { min-height: 2.75rem; border-color: rgba(247,241,229,.28); border-radius: var(--radius-sm); background: rgba(17,21,20,.16); color: var(--color-ivory-900); }
.page-booking .form-field textarea { min-height: 8rem; }
.page-booking .form-field select option { color: var(--color-charcoal-950); background: var(--color-ivory-900); }
.page-booking .form-field input[aria-invalid="true"], .page-booking .form-field select[aria-invalid="true"] { border-color: var(--color-brass-300); }
.page-booking .field-error { min-height: 1.2em; color: var(--color-ivory-900); font-size: .8125rem; line-height: 1.35; }
.page-booking .form-consent { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.page-booking .form-consent > * { min-width: 0; }
.page-booking .form-consent input { width: 1.125rem; height: 1.125rem; min-height: 1.125rem; margin-top: .2rem; accent-color: var(--color-brass-500); }
.page-booking .form-status { min-height: 1.5em; color: var(--color-ivory-900); font-size: .875rem; }
.page-booking .reservation-form .button--brass { align-self: flex-start; }

.page-booking .prep-heading { width: min(100%, 40.625rem); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .prep-heading > * { min-width: 0; margin: 0; }
.page-booking .prep-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-7); }
.page-booking .prep-grid > * { min-width: 0; }
.page-booking .prep-card { min-height: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); border: 1px solid var(--color-border); padding: var(--space-5); background: var(--color-ivory-50); }
.page-booking .prep-card > * { min-width: 0; margin: 0; }
.page-booking .prep-card__label { color: var(--color-brass-500); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.page-booking .prep-card__links { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-3); margin-top: auto; }
.page-booking .prep-card__links > * { min-width: 0; min-height: 2.75rem; display: inline-flex; align-items: center; }

.page-booking .evening-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: start; }
.page-booking .evening-layout > * { min-width: 0; }
.page-booking .evening-intro { max-width: 31.25rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.page-booking .evening-intro > * { min-width: 0; margin: 0; }
.page-booking .evening-intro__copy { display: flex; flex-direction: column; gap: var(--space-4); color: rgba(247,241,229,.84); }
.page-booking .evening-intro__copy p { margin: 0; }
.page-booking .timeline { display: grid; grid-template-columns: minmax(1.5rem, 1fr) minmax(0, 20fr); gap: var(--space-4); }
.page-booking .timeline > * { min-width: 0; }
.page-booking .timeline-marker { position: relative; }
.page-booking .timeline-marker::before { position: absolute; top: .55rem; bottom: .55rem; left: 50%; width: 1px; background: var(--color-brass-500); content: ""; }
.page-booking .timeline-item { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); max-width: 35rem; padding-bottom: var(--space-6); }
.page-booking .timeline-item:last-child { padding-bottom: 0; }
.page-booking .timeline-item > * { min-width: 0; margin: 0; }
.page-booking .timeline-item__label { color: var(--color-brass-500); font-size: var(--font-size-label); font-weight: 600; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; }
.page-booking .timeline-item p { color: rgba(247,241,229,.8); }
.page-booking .timeline-item--dinner { padding-block: var(--space-2) var(--space-7); }

.page-booking .closing-cta { width: min(100%, 42.5rem); margin-inline: auto; display: flex; flex-direction: column; align-items: center; gap: var(--space-4); text-align: center; }
.page-booking .closing-cta > * { min-width: 0; margin: 0; }
.page-booking .closing-cta p { max-width: 42.5rem; }
.page-booking .closing-cta__actions { display: flex; min-width: 0; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-3); }
.page-booking .closing-cta__actions > * { min-width: 0; }
.page-booking .closing-cta__menu-link { min-height: 2.75rem; display: inline-flex; align-items: center; font-size: var(--font-size-control); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 63.99rem) {
  .page-booking .booking-hero { min-height: 44rem; }
  .page-booking .booking-hero__media::after { background: linear-gradient(0deg, rgba(17,21,20,.93) 0%, rgba(17,21,20,.75) 39%, rgba(17,21,20,.16) 76%); }
  .page-booking .booking-hero__inner { width: min(100% - 3rem, 75rem); grid-template-columns: minmax(0, 1fr); align-items: end; }
  .page-booking .booking-hero__content { grid-column: 1; max-width: 42rem; }
  .page-booking .experience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-booking .experience-card--late { grid-column: 1 / -1; }
  .page-booking .kitchen-layout, .page-booking .lounge-top, .page-booking .evening-layout { grid-template-columns: minmax(0, 1fr); }
  .page-booking .kitchen-figure img { aspect-ratio: 16 / 10; }
  .page-booking .kitchen-copy, .page-booking .evening-intro { max-width: 100%; }
  .page-booking .lounge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-booking .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-booking .process-step:nth-child(3) { border-left: 0; border-top: 1px solid var(--color-border); }
  .page-booking .process-step:nth-child(4) { border-top: 1px solid var(--color-border); }
  .page-booking .direction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-booking .direction-card--late { grid-column: 1 / -1; }
  .page-booking .reservation-layout { grid-template-columns: minmax(0, 1fr); }
  .page-booking .reservation-intro { max-width: 100%; }
  .page-booking .prep-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-booking .prep-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 47.99rem) {
  .page-booking .booking-hero { min-height: 0; display: flex; flex-direction: column; background: var(--color-ivory-50); color: var(--color-charcoal-950); }
  .page-booking .booking-hero__media { position: relative; inset: auto; height: clamp(22.5rem, 105vw, 26.25rem); }
  .page-booking .booking-hero__media::after { display: none; }
  .page-booking .booking-hero__media img { object-position: center; }
  .page-booking .booking-hero__inner { width: min(100% - 2.25rem, 75rem); display: block; padding-block: var(--space-6); }
  .page-booking .booking-hero__content { max-width: none; color: var(--color-charcoal-950); }
  .page-booking .booking-hero__lead { max-width: none; color: var(--color-ink-muted); font-size: 1.125rem; }
  .page-booking .booking-hero__menu-link { color: var(--color-emerald-800); }
  .page-booking .booking-hero__microcopy { color: var(--color-ink-muted); }
  .page-booking .booking-hero h1 { font-size: clamp(2.5rem, 11vw, 2.9rem); }
  .page-booking .experience-grid, .page-booking .lounge-grid, .page-booking .direction-grid, .page-booking .prep-grid { grid-template-columns: minmax(0, 1fr); }
  .page-booking .experience-card--late, .page-booking .direction-card--late, .page-booking .prep-card:last-child { grid-column: auto; }
  .page-booking .lounge-figure img { aspect-ratio: 16 / 10; }
  .page-booking .direction-heading { width: 100%; margin-inline: 0; align-items: flex-start; text-align: left; }
  .page-booking .reservation-shell { padding: var(--space-5); }
  .page-booking .form-grid { grid-template-columns: minmax(0, 1fr); }
  .page-booking .closing-cta { width: 100%; margin-inline: 0; align-items: flex-start; text-align: left; }
  .page-booking .closing-cta__actions { width: 100%; flex-direction: column; align-items: stretch; }
  .page-booking .closing-cta__actions .button { width: 100%; }
}

@media (max-width: 39.99rem) {
  .page-booking .booking-hero__actions { width: 100%; flex-direction: column; align-items: stretch; }
  .page-booking .booking-hero__actions .button { width: 100%; }
  .page-booking .booking-hero__menu-link { min-height: 2.75rem; display: inline-flex; align-items: center; }
  .page-booking .experience-card, .page-booking .direction-card, .page-booking .prep-card { padding: var(--space-5); }
  .page-booking .process-grid { grid-template-columns: minmax(0, 1fr); }
  .page-booking .process-step, .page-booking .process-step:nth-child(2), .page-booking .process-step:nth-child(4) { grid-template-columns: 2.75rem minmax(0, 1fr); display: grid; gap: var(--space-3); border-left: 0; border-top: 1px solid var(--color-border); padding: var(--space-4) 0; }
  .page-booking .process-step:first-child { border-top: 0; }
  .page-booking .process-step__number { grid-column: 1; grid-row: 1 / span 3; }
  .page-booking .process-step h3, .page-booking .process-step p, .page-booking .process-step__link { grid-column: 2; }
  .page-booking .flavour-item { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .page-booking .timeline { grid-template-columns: 1rem minmax(0, 1fr); gap: var(--space-3); }
  .page-booking .timeline-item { max-width: none; }
  .page-booking .reservation-form .button--brass { width: 100%; }
}
