.reserve-page { overflow: clip; }
.reserve-hero { padding-block: var(--space-7) var(--space-9); background: var(--color-cream); }
.reserve-hero__container { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; position: relative; }
.reserve-hero__image-wrap { grid-column: 1 / -1; grid-row: 1; min-width: 0; aspect-ratio: 16 / 7; overflow: hidden; background: var(--color-black); }
.reserve-hero__image-wrap::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,19,17,.62) 0%, rgba(18,19,17,.37) 38%, rgba(18,19,17,0) 66%); content: ""; pointer-events: none; }
.reserve-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.reserve-hero__copy { z-index: 1; grid-column: 1 / span 5; grid-row: 1; align-self: center; min-width: 0; padding: var(--space-7); color: var(--color-cream); }
.reserve-hero__copy > :last-child, .reserve-hero__intent-panel > :last-child { margin-block-end: 0; }
.reserve-hero__copy .lead { max-width: 31rem; }
.reserve-hero__intent-panel { z-index: 2; grid-column: 7 / span 5; grid-row: 1; align-self: end; min-width: 0; margin-bottom: calc(var(--space-8) * -1); border: var(--border); background: var(--color-paper); padding: var(--space-6); }
.reserve-hero__intent-panel h2 { font-size: clamp(2rem, 3vw, 2.7rem); }
.reserve-hero__intent-panel p { max-width: 31rem; }
.reserve-hero__intent-labels { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); margin-top: var(--space-5); color: var(--color-tobacco); font-size: var(--text-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.reserve-hero__intent-labels span { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.reserve-hero__intent-labels span:not(:last-child)::after { width: 1px; height: 1rem; background: var(--color-brass); content: ""; }
.reserve-routes__container, .reserve-checklist__container, .reserve-explained__container { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-7) 24px; }
.reserve-routes__intro { grid-column: 1 / span 5; min-width: 0; }
.reserve-routes__intro .lead { max-width: 34rem; }
.reserve-routes__grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.reserve-route { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; width: 100%; min-width: 0; min-height: 18rem; gap: var(--space-4); border: 1px solid var(--color-line); border-radius: 0; padding: var(--space-6); text-align: left; text-transform: none; letter-spacing: normal; }
.reserve-route__content { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); }
.reserve-route__content strong { font-family: var(--font-heading); font-size: clamp(1.9rem, 3vw, 2.5rem); font-weight: 600; letter-spacing: var(--tracking-tight); line-height: 1; }
.reserve-route__content > span { max-width: 31rem; font-size: 1rem; font-weight: 400; line-height: var(--leading-body); }
.reserve-route__content small { margin-top: auto; font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.reserve-route--felt { border-color: rgba(242,232,213,.28); background: var(--color-felt); color: var(--color-cream); }
.reserve-route--tobacco { border-color: var(--color-deep-tobacco); background: var(--color-deep-tobacco); color: var(--color-cream); }
.reserve-route--paper { border-top: 3px solid var(--color-tobacco); background: var(--color-paper); color: var(--color-black); }
.reserve-route__marker, .reserve-route__card-back { display: grid; width: 2rem; aspect-ratio: 1; place-items: center; border: 1px solid var(--color-brass); color: var(--color-brass); font-size: 1.25rem; }
.reserve-route__swatch { width: 2rem; height: 2rem; background: var(--color-tobacco); }
.reserve-route.is-selected { box-shadow: inset 0 -3px 0 var(--color-brass); }
.reserve-form-section { background: var(--color-cream); }
.reserve-form-section__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; }
.reserve-form-section__form-area { grid-column: 1 / span 7; min-width: 0; }
.reserve-form-panel { max-width: 45rem; }
.reserve-form-panel__intro { display: flex; flex-direction: column; min-width: 0; gap: var(--space-4); }
.reserve-form-panel__intro > * { margin: 0; }
.reserve-form-panel__intro p { max-width: 36rem; }
.reserve-form-panel form { display: flex; flex-direction: column; min-width: 0; gap: var(--space-5); margin-top: var(--space-6); }
.reserve-form__status:empty, .reserve-form__error:empty { display: none; }
.reserve-form__status { border-left: 3px solid var(--color-tobacco); color: var(--color-deep-tobacco); padding-left: var(--space-3); }
.reserve-form__fieldset { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); }
.reserve-form__intent-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.reserve-form__intent-options label, .reserve-form__consent { display: flex; align-items: flex-start; min-width: 0; gap: var(--space-2); margin: 0; color: var(--color-black); font-size: var(--text-body); font-weight: 400; letter-spacing: 0; line-height: 1.45; text-transform: none; }
.reserve-form__intent-options label { border: var(--border); padding: var(--space-3); }
.reserve-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.reserve-form__field { min-width: 0; }
.reserve-form__field--message { width: 100%; }
.reserve-form__fields .reserve-form__field:nth-child(1), .reserve-form__fields .reserve-form__field:nth-child(2), .reserve-form__fields .reserve-form__field:nth-child(3) { grid-column: 1 / -1; }
.reserve-form__conditional { border-left: 2px solid var(--color-brass); padding-left: var(--space-4); }
.reserve-form__conditional p { margin-top: var(--space-3); margin-bottom: 0; color: var(--color-muted-ink); font-size: var(--text-utility); }
.reserve-form__error { margin: var(--space-2) 0 0; color: var(--color-deep-tobacco); font-size: var(--text-utility); font-weight: 700; line-height: 1.4; }
.reserve-form__optional { color: var(--color-muted-ink); font-weight: 400; letter-spacing: .02em; text-transform: none; }
.reserve-guidance { grid-column: 9 / span 4; display: flex; flex-direction: column; min-width: 0; gap: var(--space-4); }
.reserve-guidance > * { margin: 0; }
.reserve-guidance p { max-width: 23rem; }
.reserve-guidance__list { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; padding-left: 1.2rem; }
.reserve-explained__heading { grid-column: 1 / span 6; min-width: 0; }
.reserve-explained__heading h2 { max-width: 38rem; }
.reserve-explained__grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.reserve-explained__grid article { display: flex; flex-direction: column; min-width: 0; gap: var(--space-4); padding: 0 var(--space-6); }
.reserve-explained__grid article:first-child { padding-left: 0; }
.reserve-explained__grid article + article { border-left: 1px solid rgba(242,232,213,.35); }
.reserve-explained__grid article > * { margin: 0; }
.reserve-explained__grid h3 { font-size: clamp(1.8rem, 2.6vw, 2.25rem); }
.reserve-suit { color: var(--color-brass); font-size: 1.5rem; }
.reserve-dining { background: var(--color-paper); }
.reserve-dining__grid, .reserve-events__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: center; }
.reserve-dining__media { grid-column: 7 / -1; grid-row: 1; min-width: 0; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.reserve-dining__media img, .reserve-events__media img { width: 100%; height: 100%; object-fit: cover; }
.reserve-dining__media img { object-position: center; }
.reserve-dining__copy { grid-column: 1 / span 5; grid-row: 1; display: flex; flex-direction: column; min-width: 0; gap: var(--space-4); }
.reserve-dining__copy > * { margin: 0; }
.reserve-dining__copy .lead { max-width: 35rem; }
.reserve-dining__support { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); border-top: 1px solid var(--color-brass); padding-top: var(--space-4); }
.reserve-dining__support > * { margin: 0; }
.reserve-dining__support p { max-width: 30rem; }
.reserve-text-action { justify-content: flex-start; min-height: auto; padding: 0; color: var(--color-eucalyptus); text-align: left; text-transform: none; letter-spacing: normal; }
.reserve-text-action:hover { background: transparent; color: var(--color-tobacco); }
.reserve-events__copy { grid-column: 1 / span 6; display: flex; flex-direction: column; min-width: 0; gap: var(--space-5); }
.reserve-events__copy > * { margin: 0; }
.reserve-events__copy .lead { max-width: 29rem; }
.reserve-events__media { grid-column: 8 / span 5; min-width: 0; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.reserve-events__media img { object-position: center; }
.reserve-events__prompts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.reserve-events__prompts > div { display: flex; flex-direction: column; min-width: 0; gap: var(--space-2); border-top: 1px solid var(--color-brass); padding-top: var(--space-3); }
.reserve-events__prompts span { color: var(--color-brass); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.reserve-events__prompts p, .reserve-events__action > * { margin: 0; }
.reserve-events__action { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--space-3); }
.reserve-events__action p { max-width: 29rem; }
.reserve-checklist__heading { grid-column: 1 / span 5; min-width: 0; }
.reserve-checklist__heading .lead { max-width: 34rem; }
.reserve-checklist__grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.reserve-checklist__grid article { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); border-top: var(--border); padding-top: var(--space-5); }
.reserve-checklist__grid article > * { margin: 0; }
.reserve-checklist__grid article > span { color: var(--color-brass); font-family: var(--font-heading); font-size: 3rem; font-weight: 600; line-height: 1; }
.reserve-checklist__grid h3 { font-size: clamp(1.8rem, 2.5vw, 2.25rem); }
.reserve-closing__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: center; }
.reserve-closing__copy { grid-column: 1 / span 5; min-width: 0; }
.reserve-closing__copy p { max-width: 31rem; }
.reserve-closing__actions { grid-column: 7 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; min-width: 0; gap: var(--space-3); }
.reserve-closing__actions p { width: 100%; margin: 0; color: rgba(242,232,213,.76); font-size: var(--text-utility); text-align: right; }
.reserve-confirmation { display: flex; flex-direction: column; min-width: 0; gap: var(--space-5); }
.reserve-confirmation > * { margin: 0; }
.reserve-confirmation__band { margin-inline: calc(var(--space-6) * -1); margin-top: calc(var(--space-6) * -1); background: var(--color-felt); color: var(--color-cream); padding: var(--space-5) var(--space-6); }
.reserve-confirmation__band h2 { margin: 0; }
.reserve-confirmation dl { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-3) var(--space-4); margin: 0; }
.reserve-confirmation dt { font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.reserve-confirmation dd { margin: 0; }
@media (max-width: 61.24rem) { .reserve-hero__container { display: flex; flex-direction: column; gap: 0; } .reserve-hero__image-wrap { aspect-ratio: 16 / 8; } .reserve-hero__image-wrap::after { display: none; } .reserve-hero__copy { width: 100%; padding: var(--space-6); background: var(--color-felt); } .reserve-hero__intent-panel { width: min(100%, 45rem); margin: 0; align-self: flex-start; } }
@media (max-width: 58.74rem) { .reserve-routes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .reserve-dining__grid { grid-template-columns: 1fr; } .reserve-dining__media { grid-column: 1; grid-row: 1; aspect-ratio: 16 / 9; } .reserve-dining__copy { grid-column: 1; grid-row: 2; max-width: 38rem; } .reserve-events__grid { grid-template-columns: 1fr; } .reserve-events__media { grid-column: 1; grid-row: 1; aspect-ratio: 16 / 9; } .reserve-events__copy { grid-column: 1; grid-row: 2; } }
@media (max-width: 53.74rem) { .reserve-form-section__grid { grid-template-columns: 1fr; } .reserve-form-section__form-area, .reserve-guidance { grid-column: 1; } .reserve-guidance { max-width: 45rem; } .reserve-checklist__grid { grid-template-columns: 1fr; gap: 0; } .reserve-checklist__grid article + article { margin-top: var(--space-5); } }
@media (max-width: 54.99rem) { .reserve-explained__grid { grid-template-columns: 1fr; } .reserve-explained__grid article { padding: var(--space-5) 0; } .reserve-explained__grid article + article { border-top: 1px solid rgba(242,232,213,.35); border-left: 0; } }
@media (max-width: 47.99rem) { .reserve-hero { padding-block: var(--space-5) var(--space-7); } .reserve-hero__image-wrap { aspect-ratio: 4 / 3; } .reserve-hero__copy { padding: var(--space-5); } .reserve-hero__copy .display-title { font-size: clamp(2.75rem, 12vw, 3.875rem); } .reserve-hero__intent-panel { padding: var(--space-5); } .reserve-routes__container, .reserve-checklist__container, .reserve-explained__container { grid-template-columns: 1fr; gap: var(--space-6); } .reserve-routes__intro, .reserve-explained__heading, .reserve-checklist__heading, .reserve-routes__grid, .reserve-checklist__grid, .reserve-explained__grid { grid-column: 1; } .reserve-routes__grid { grid-template-columns: 1fr; } .reserve-route { min-height: auto; } .reserve-form__intent-options, .reserve-form__fields, .reserve-events__prompts { grid-template-columns: 1fr; } .reserve-form__fields .reserve-form__field { grid-column: 1; } .reserve-closing__grid { grid-template-columns: 1fr; } .reserve-closing__copy, .reserve-closing__actions { grid-column: 1; } .reserve-closing__actions { justify-content: stretch; flex-direction: column; } .reserve-closing__actions .button { width: 100%; } .reserve-closing__actions p { text-align: left; } .reserve-confirmation dl { grid-template-columns: 1fr; gap: var(--space-1); } .reserve-confirmation dd { margin-bottom: var(--space-3); } }
