.reservation-page { overflow: hidden; }
.reservation-page .reservation-hero__grid { display: grid; grid-template-columns: minmax(0, 7.2fr) minmax(340px, 4.8fr); gap: var(--space-7); align-items: center; }
.reservation-page .reservation-hero__content { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.reservation-page .reservation-hero__content > * { min-width: 0; margin: 0; }
.reservation-page .reservation-hero__content h1 { max-width: 11ch; }
.reservation-page .reservation-hero__lead { max-width: 58ch; font-size: var(--text-lead); }
.reservation-page .reservation-hero__markers { width: 100%; max-width: 58ch; display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--color-soft-border); }
.reservation-page .reservation-hero__marker { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); padding: var(--space-3) 0; border-bottom: 1px solid var(--color-soft-border); color: var(--color-muted-slate); font-size: var(--text-small); line-height: 1.55; }
.reservation-page .reservation-hero__marker strong { color: var(--color-charcoal-slate); }
.reservation-page .reservation-hero__actions { align-items: center; }
.reservation-page .reservation-hero__menu-link { min-height: 3rem; display: inline-flex; align-items: center; }
.reservation-page .reservation-hero__media { position: relative; width: 100%; min-width: 0; margin: 0; padding: var(--space-3); }
.reservation-page .reservation-hero__media img { width: 100%; max-width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.reservation-page .reservation-hero__media figcaption { margin: var(--space-2) 0 0; }
.reservation-page .reservation-hero__vip-badge { position: absolute; top: var(--space-5); left: calc(var(--space-3) * -1); }
.reservation-page .reservation-request__panel { width: min(100%, 65rem); margin-inline: auto; padding: var(--space-7); }
.reservation-page .reservation-request__intro { max-width: 68ch; margin-bottom: var(--space-6); }
.reservation-page .reservation-request__intro > :last-child { margin-bottom: 0; }
.reservation-page .reservation-request__required-note { color: var(--color-muted-slate); font-size: var(--text-small); }
.reservation-page .reservation-request__required-note span { color: var(--color-deep-burgundy); font-weight: 700; }
.reservation-page .reservation-form { display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); }
.reservation-page .reservation-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-5); }
.reservation-page .reservation-field { min-width: 0; }
.reservation-page .reservation-field--full { grid-column: 1 / -1; }
.reservation-page .reservation-error { display: block; min-height: 1.25rem; margin-top: var(--space-1); color: var(--color-deep-burgundy); font-size: var(--text-small); line-height: 1.45; }
.reservation-page .reservation-field [aria-invalid="true"], .reservation-page .reservation-form__consent input[aria-invalid="true"] { border-color: var(--color-deep-burgundy); }
.reservation-page .reservation-form__preferences { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); margin: 0; padding-top: var(--space-5); border-top: 1px solid var(--color-soft-border); }
.reservation-page .reservation-form__preferences legend { margin: 0; font-family: var(--font-heading); font-size: var(--text-card-title); font-weight: 600; }
.reservation-page .reservation-form__preferences > p { max-width: 68ch; margin: 0; color: var(--color-muted-slate); }
.reservation-page .reservation-form__salon-option, .reservation-page .reservation-form__consent { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: var(--space-3); }
.reservation-page .reservation-form__salon-option input, .reservation-page .reservation-form__consent input { width: 1.2rem; height: 1.2rem; min-height: 1.2rem; margin-top: 0.2rem; accent-color: var(--color-deep-burgundy); }
.reservation-page .reservation-form__salon-option label, .reservation-page .reservation-form__consent label { margin: 0; font-weight: 600; }
.reservation-page .reservation-form__salon-help { max-width: 70ch; margin: calc(var(--space-3) * -1) 0 0; padding-left: calc(1.2rem + var(--space-3)); color: var(--color-muted-slate); font-size: var(--text-small); }
.reservation-page .reservation-form__submit { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.reservation-page .reservation-form__submit > * { margin: 0; }
.reservation-page .reservation-form__submit p { max-width: 70ch; color: var(--color-muted-slate); font-size: var(--text-small); }
.reservation-page .reservation-form__success { margin: 0; }
.reservation-page .reservation-moments__header { max-width: 620px; margin-bottom: var(--space-6); }
.reservation-page .reservation-moments__header > :last-child { margin-bottom: 0; }
.reservation-page .reservation-moments__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.reservation-page .reservation-moment { min-width: 0; min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-5); }
.reservation-page .reservation-moment__body { min-width: 0; }
.reservation-page .reservation-moment__body > :last-child { margin-bottom: 0; }
.reservation-page .reservation-moment__eyebrow { color: var(--color-imperial-gold); }
.reservation-page .reservation-moment .badge { margin-bottom: var(--space-3); }
.reservation-page .reservation-card-link, .reservation-page .reservation-detail__link, .reservation-page .reservation-explore__link, .reservation-page .reservation-explore__return { display: inline-flex; min-height: 2.75rem; align-items: center; }
.reservation-page .reservation-details__header { max-width: 66ch; margin-bottom: var(--space-6); }
.reservation-page .reservation-details__header > :last-child { margin-bottom: 0; }
.reservation-page .reservation-details__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.reservation-page .reservation-detail { min-width: 0; padding-top: var(--space-5); border-top: 1px solid var(--color-soft-border); }
.reservation-page .reservation-detail + .reservation-detail { border-left: 2px solid var(--color-imperial-gold); padding-left: var(--space-5); }
.reservation-page .reservation-detail p { max-width: 46ch; }
.reservation-page .reservation-salon__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr); gap: var(--space-7); align-items: center; padding: var(--space-8); }
.reservation-page .reservation-salon__story { min-width: 0; }
.reservation-page .reservation-salon__story .badge { margin-bottom: var(--space-4); }
.reservation-page .reservation-salon__story h2 { max-width: 15ch; }
.reservation-page .reservation-salon__story p { max-width: 64ch; }
.reservation-page .reservation-salon__anchor { color: var(--color-alabaster); }
.reservation-page .reservation-salon__callout { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-6); }
.reservation-page .reservation-salon__callout > * { margin: 0; }
.reservation-page .reservation-salon__callout p { max-width: 52ch; color: var(--color-muted-slate); }
.reservation-page .reservation-process__header { max-width: 65ch; margin-bottom: var(--space-6); }
.reservation-page .reservation-process__header > :last-child { margin-bottom: 0; }
.reservation-page .reservation-process__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.reservation-page .reservation-step { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-4); padding: 0 var(--space-5); }
.reservation-page .reservation-step:first-child { padding-left: 0; }
.reservation-page .reservation-step + .reservation-step { border-left: 1px solid var(--color-soft-border); }
.reservation-page .reservation-step__number { color: var(--color-imperial-gold); font-family: var(--font-heading); font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 600; line-height: 0.85; }
.reservation-page .reservation-step h3 { font-size: var(--text-card-title); }
.reservation-page .reservation-step p { max-width: 42ch; }
.reservation-page .reservation-explore__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(300px, 4fr); gap: var(--space-7); align-items: start; }
.reservation-page .reservation-explore__cuisine, .reservation-page .reservation-explore__wine { min-width: 0; }
.reservation-page .reservation-explore__cuisine p { max-width: 66ch; }
.reservation-page .reservation-explore__wine { padding-left: var(--space-6); border-left: 1px solid var(--color-soft-border); }
.reservation-page .reservation-explore__wine p { max-width: 54ch; }
.reservation-page .reservation-explore__return { margin-left: var(--space-4); }
.reservation-page .reservation-events { padding-block: var(--space-7); }
.reservation-page .reservation-events__card { width: min(100%, 47.5rem); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-5); align-items: end; border-color: var(--color-deep-burgundy); padding: var(--space-6); }
.reservation-page .reservation-events__copy, .reservation-page .reservation-events__action { min-width: 0; }
.reservation-page .reservation-events__copy .badge { margin-bottom: var(--space-3); }
.reservation-page .reservation-events__copy p { max-width: 60ch; }
.reservation-page .reservation-events__action { display: flex; justify-content: flex-end; }
.reservation-page .reservation-final__content { width: min(100%, 42.5rem); margin-inline: auto; display: flex; flex-direction: column; align-items: center; gap: var(--space-4); text-align: center; }
.reservation-page .reservation-final__content > * { margin: 0; }
.reservation-page .reservation-final__content p { max-width: 56ch; }
.reservation-page .reservation-final__actions { justify-content: center; }
@media (max-width: 56.25rem) {
  .reservation-page .reservation-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .reservation-page .reservation-hero__content { max-width: 620px; }
  .reservation-page .reservation-hero__media { max-width: 620px; }
  .reservation-page .reservation-moments__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-page .reservation-moment:last-child { grid-column: 1 / -1; }
  .reservation-page .reservation-salon__grid { grid-template-columns: minmax(0, 1fr); padding: var(--space-7); }
  .reservation-page .reservation-process__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .reservation-page .reservation-step, .reservation-page .reservation-step:first-child { padding: 0 0 var(--space-5); border-left: 0; border-bottom: 1px solid var(--color-soft-border); }
  .reservation-page .reservation-step:last-child { border-bottom: 0; padding-bottom: 0; }
  .reservation-page .reservation-explore__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .reservation-page .reservation-explore__wine { padding: var(--space-6) 0 0; border-left: 0; border-top: 1px solid var(--color-soft-border); }
}
@media (max-width: 55rem) {
  .reservation-page .reservation-form__grid { grid-template-columns: minmax(0, 1fr); }
  .reservation-page .reservation-field--full { grid-column: auto; }
}
@media (max-width: 57.5rem) and (min-width: 47.5625rem) {
  .reservation-page .reservation-details__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-page .reservation-detail:nth-child(3) { grid-column: 1 / -1; }
  .reservation-page .reservation-detail:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 47.5rem) {
  .reservation-page .reservation-hero__content h1 { max-width: 12ch; }
  .reservation-page .reservation-hero__lead { max-width: none; }
  .reservation-page .reservation-hero__markers { max-width: none; }
  .reservation-page .reservation-hero__media { padding: var(--space-2); }
  .reservation-page .reservation-hero__vip-badge { position: static; margin-top: var(--space-3); }
  .reservation-page .reservation-request__panel { padding: var(--space-5); }
  .reservation-page .reservation-moments__grid, .reservation-page .reservation-details__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .reservation-page .reservation-moment:last-child { grid-column: auto; }
  .reservation-page .reservation-detail + .reservation-detail { border-left: 0; padding-left: 0; }
  .reservation-page .reservation-detail p { max-width: none; }
  .reservation-page .reservation-salon__grid { padding: var(--space-6) var(--space-5); gap: var(--space-6); }
  .reservation-page .reservation-salon__story h2, .reservation-page .reservation-salon__story p { max-width: none; }
  .reservation-page .reservation-salon__callout { padding: var(--space-5); }
  .reservation-page .reservation-explore__return { margin-left: 0; }
  .reservation-page .reservation-events__card { grid-template-columns: minmax(0, 1fr); padding: var(--space-5); }
  .reservation-page .reservation-events__action { justify-content: stretch; }
  .reservation-page .reservation-events__action .button { width: 100%; }
}
@media (max-width: 32.5rem) {
  .reservation-page .reservation-final__actions { width: 100%; flex-direction: column; align-items: stretch; }
  .reservation-page .reservation-final__actions .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .reservation-page .reservation-moment:hover { transform: none; } }
ul { list-style: none !important; }