.booking-page { overflow: clip; }
.booking-page .section { position: relative; }
.booking-intro__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--space-8); }
.booking-intro__layout > * { min-width: 0; }
.booking-intro__copy { width: 100%; max-width: 38.75rem; }
.booking-intro__actions, .booking-form__controls, .lounge-guide__cta > div, .booking-closing__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.booking-intro__actions > *, .booking-form__controls > *, .lounge-guide__cta > div > *, .booking-closing__actions > * { min-width: 0; }
.booking-intro__hint { max-width: 31rem; margin-block-end: 0; color: var(--color-ink-muted); font-size: var(--text-small); }
.booking-intro__accent { display: grid; grid-template-columns: 1fr; gap: var(--space-4); min-width: 0; min-height: 21rem; padding: var(--space-7); border-inline-start: 1px solid var(--color-copper); align-content: center; background: linear-gradient(90deg, transparent 0 18%, rgba(216,196,168,.35) 18% 19%, transparent 19% 57%, rgba(183,131,75,.4) 57% 58%, transparent 58%); }
.booking-intro__accent span { width: fit-content; max-width: 100%; padding-block-end: var(--space-2); border-bottom: 1px solid var(--color-border-strong); color: var(--color-garden); font-size: var(--text-meta); font-weight: 700; letter-spacing: .08em; line-height: var(--leading-meta); text-transform: uppercase; }
.booking-options__heading { width: 100%; max-width: 37.5rem; }
.booking-options__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.booking-options__grid > * { min-width: 0; width: 100%; }
.booking-option { border-color: var(--color-border); }
.booking-option--poker { border-bottom: 3px solid var(--color-burgundy); }
.booking-option__content { display: flex; min-width: 0; height: 100%; flex-direction: column; align-items: stretch; gap: var(--space-4); }
.booking-option__content > * { min-width: 0; margin: 0; }
.booking-option__content p { font-size: var(--text-small); line-height: var(--leading-small); }
.booking-option__action { width: 100%; margin-top: auto; }
.booking-steps__heading { width: 100%; max-width: 38.75rem; }
.booking-steps__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); }
.booking-step { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); gap: var(--space-3); min-width: 0; padding: var(--space-5); }
.booking-step:not(:last-child) { border-inline-end: 1px solid var(--color-border); }
.booking-step > * { min-width: 0; }
.booking-step__number { color: var(--color-copper); font-family: var(--font-heading); font-size: 2rem; font-weight: 600; line-height: 1; }
.booking-step h3 { margin-block-end: var(--space-3); font-size: 1.75rem; }
.booking-step p { max-width: 15rem; margin-block-end: 0; font-size: var(--text-small); line-height: var(--leading-small); }
.booking-steps__link { display: inline-block; margin-top: var(--space-5); color: var(--color-garden); font-size: var(--text-small); font-weight: 700; }
.booking-form-section__layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(40rem, 8fr); gap: var(--space-7); align-items: start; }
.booking-form-section__layout > * { min-width: 0; }
.booking-form-section__intro { width: 100%; max-width: 22.5rem; color: var(--color-on-dark); }
.booking-form-section__intro .eyebrow { color: var(--color-plaster); }
.booking-form-section__intro h2 { color: var(--color-on-dark); }
.booking-form-panel { width: 100%; border: 0; box-shadow: var(--shadow-floating); }
.booking-form__progress { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); margin-block-end: var(--space-6); }
.booking-form__progress span { min-width: 0; padding-block-end: var(--space-2); border-bottom: 1px solid var(--color-border); color: var(--color-ink-muted); font-size: var(--text-meta); font-weight: 700; line-height: var(--leading-meta); text-align: center; }
.booking-form__progress .is-active { border-color: var(--color-garden); color: var(--color-garden); }
.booking-form__step { min-width: 0; }
.booking-form__step-copy { margin-block-end: var(--space-5); color: var(--color-ink-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.booking-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.booking-type-grid > * { min-width: 0; width: 100%; }
.booking-type-card { display: flex; min-width: 0; gap: var(--space-3); margin: 0; border: 1px solid var(--color-border-strong); border-radius: var(--radius-control); padding: var(--space-4); background: var(--color-porcelain); cursor: pointer; }
.booking-type-card:has(input:checked) { border-color: var(--color-garden); box-shadow: inset 0 -3px 0 var(--color-garden); }
.booking-type-card--poker:has(input:checked) { border-color: var(--color-burgundy); box-shadow: inset 0 -3px 0 var(--color-burgundy); }
.booking-type-card span { display: flex; min-width: 0; flex-direction: column; gap: var(--space-1); }
.booking-type-card strong { color: var(--color-garden); font-size: var(--text-small); line-height: var(--leading-small); }
.booking-type-card--poker strong { color: var(--color-burgundy); }
.booking-type-card small { color: var(--color-ink-muted); font-size: var(--text-meta); font-weight: 400; line-height: var(--leading-meta); }
.booking-form__controls { justify-content: flex-end; margin-top: var(--space-6); }
.booking-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.booking-fields-grid > * { min-width: 0; width: 100%; }
.booking-fields-grid__full { grid-column: 1 / -1; }
.booking-form__optional { color: var(--color-ink-muted); font-weight: 400; }
.booking-summary { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-card); background: rgba(216,196,168,.22); }
.booking-summary > * { min-width: 0; margin: 0; }
.booking-summary__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.booking-summary__edit { padding: .25rem .5rem; background: transparent; color: var(--color-garden); font-size: var(--text-meta); }
.booking-summary__edit:hover { background: rgba(24,59,53,.08); color: var(--color-garden); }
.booking-summary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-5); }
.booking-summary dl > div { min-width: 0; }
.booking-summary dd { overflow-wrap: anywhere; }
.booking-form__submission-note { margin-block: var(--space-4) 0; color: var(--color-ink-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.booking-success { margin: 0; }
.restaurant-guide__heading { width: 100%; max-width: 37.5rem; }
.restaurant-guide__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: var(--space-7); border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.restaurant-guide__item { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-5); }
.restaurant-guide__item:not(:last-child) { border-inline-end: 1px solid var(--color-border); }
.restaurant-guide__item > * { min-width: 0; margin: 0; }
.restaurant-guide__item h3 { font-size: 1.9rem; }
.restaurant-guide__item p { max-width: 20.5rem; font-size: var(--text-small); line-height: var(--leading-small); }
.restaurant-guide__item .button { width: fit-content; margin-top: auto; }
.poker-guide__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); align-items: start; }
.poker-guide__layout > * { min-width: 0; }
.poker-guide__copy { width: 100%; max-width: 33.75rem; }
.poker-guide__copy > .label { margin-block-end: var(--space-4); }
.poker-guide__copy > h3 { margin-block-start: var(--space-5); }
.poker-guide__dark-panel { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); max-width: 26.25rem; margin-block: var(--space-6); padding: var(--space-5); border-inline-start: 3px solid var(--color-burgundy); background: var(--color-garden); color: var(--color-on-dark); }
.poker-guide__dark-panel > * { min-width: 0; margin: 0; }
.poker-guide__dark-panel h3 { color: var(--color-on-dark); font-size: 1.9rem; }
.poker-guide__dark-panel p { font-size: var(--text-small); line-height: var(--leading-small); }
.poker-guide__action { margin-top: var(--space-2); }
.poker-guide__media { width: 100%; min-width: 0; margin: 0; border-radius: var(--radius-card); overflow: hidden; }
.poker-guide__media img { width: 100%; height: 100%; min-height: 35rem; max-width: none; object-fit: cover; object-position: center; }
.lounge-guide__heading { width: 100%; max-width: 37.5rem; }
.lounge-guide__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.lounge-guide__grid > * { min-width: 0; width: 100%; }
.lounge-guide__panel { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); }
.lounge-guide__panel > * { min-width: 0; margin: 0; }
.lounge-guide__panel p:not(.meta) { max-width: 26.875rem; }
.lounge-guide__panel--room { border-bottom: 3px solid var(--color-burgundy); }
.lounge-guide__cta { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); max-width: 37.5rem; margin-top: var(--space-6); }
.lounge-guide__cta > * { min-width: 0; margin: 0; }
.lounge-guide__cta h3 { font-size: 2rem; }
.private-guide__heading { width: 100%; max-width: 38.75rem; }
.private-guide__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.private-guide__grid > * { min-width: 0; width: 100%; }
.private-guide__card { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-porcelain); }
.private-guide__card > * { min-width: 0; margin: 0; }
.private-guide__card h3 { font-size: 1.9rem; }
.private-guide__card p { max-width: 21.25rem; font-size: var(--text-small); line-height: var(--leading-small); }
.private-guide__card--poker { border-bottom: 3px solid var(--color-burgundy); }
.private-guide__cta { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); width: 100%; max-width: 35rem; margin-top: var(--space-6); }
.private-guide__cta > * { min-width: 0; margin: 0; }
.private-guide__cta h3 { font-size: 2rem; }
.private-guide__cta .button { width: fit-content; }
.booking-closing { text-align: center; }
.booking-closing__content { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: var(--space-4); width: 100%; max-width: 37.5rem; margin-inline: auto; }
.booking-closing__content > * { min-width: 0; margin: 0; }
.booking-closing__content .eyebrow { color: var(--color-plaster); }
.booking-closing__content h2 { color: var(--color-on-dark); }
.booking-closing__actions { justify-content: center; margin-top: var(--space-2); }
.booking-closing__primary { background: var(--color-porcelain); color: var(--color-garden); }
.booking-closing__primary:hover { background: #fffaf2; color: var(--color-garden); }
.booking-closing__secondary { border-color: rgba(255,248,236,.78); background: transparent; color: var(--color-on-dark); }
.booking-closing__secondary:hover { background: rgba(255,248,236,.12); color: var(--color-on-dark); }
@media (max-width: 70rem) { .booking-options__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .booking-intro__layout { gap: var(--space-6); } }
@media (max-width: 63.75rem) { .booking-form-section__layout { grid-template-columns: minmax(0, 1fr); } .booking-form-section__intro { max-width: 40rem; } .poker-guide__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } .poker-guide__copy { max-width: 33.75rem; } .poker-guide__media img { min-height: 0; aspect-ratio: 3 / 2; } .private-guide__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .private-guide__card:last-child { grid-column: 1 / -1; } }
@media (max-width: 61.25rem) { .booking-steps__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .booking-step:nth-child(2) { border-inline-end: 0; } .booking-step:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); } .restaurant-guide__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .restaurant-guide__item:first-child { grid-column: 1 / -1; border-inline-end: 0; border-bottom: 1px solid var(--color-border); } }
@media (max-width: 56.25rem) { .booking-intro__layout { grid-template-columns: minmax(0, 1fr); } .booking-intro__accent { display: none; } .booking-intro__copy { max-width: 38.75rem; } }
@media (max-width: 57.5rem) { .lounge-guide__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 42.5rem) { .booking-options__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 40rem) { .booking-steps__grid { grid-template-columns: minmax(0, 1fr); } .booking-step { padding-inline: 0; border-inline-end: 0 !important; } .booking-step:not(:last-child) { border-bottom: 1px solid var(--color-border); } .booking-type-grid, .booking-fields-grid, .booking-summary dl { grid-template-columns: minmax(0, 1fr); } .booking-fields-grid__full { grid-column: auto; } .booking-form__progress { grid-template-columns: repeat(2, minmax(0, 1fr)); } .restaurant-guide__grid, .private-guide__grid { grid-template-columns: minmax(0, 1fr); } .restaurant-guide__item { padding-inline: 0; border-inline-end: 0 !important; } .restaurant-guide__item:not(:last-child) { border-bottom: 1px solid var(--color-border); } .private-guide__card:last-child { grid-column: auto; } .booking-intro__actions, .booking-form__controls, .lounge-guide__cta > div, .booking-closing__actions { flex-direction: column; align-items: stretch; } .booking-intro__actions > *, .booking-form__controls > *, .lounge-guide__cta > div > *, .booking-closing__actions > * { width: 100%; } .private-guide__cta .button { width: 100%; } .poker-guide__media img { aspect-ratio: 4 / 5; } }
@media (max-width: 25rem) { .booking-intro h1 { font-size: 2.5rem; line-height: 1.08; } .booking-form-panel { padding: var(--space-5); } }
