main.menu-page {
  --menu-rule: 1px solid var(--color-mist);
  overflow: clip;
}

.menu-page .menu-hero {
  min-height: 42.5rem;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: stretch;
  background: var(--color-ocean);
}

.menu-page .menu-hero__copy {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-5);
  min-width: 0;
  padding: var(--space-10) max(var(--gutter), calc((100vw - var(--container-max)) / 2));
  padding-inline-end: var(--space-7);
  color: var(--color-pearl);
}

.menu-page .menu-hero__copy > * { margin: 0; }
.menu-page .menu-hero__copy h1 { color: var(--color-pearl); max-inline-size: 10ch; }
.menu-page .menu-hero__copy .eyebrow { color: var(--color-sandstone); }
.menu-page .menu-hero__breadcrumb { color: var(--color-pearl); font-size: var(--text-small); }
.menu-page .menu-hero__breadcrumb a { color: var(--color-pearl); }
.menu-page .menu-hero__lead { max-inline-size: 54ch; font-size: var(--text-lead); line-height: 1.45; }
.menu-page .menu-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); min-width: 0; }
.menu-page .menu-hero__actions > * { min-width: 0; }
.menu-page .menu-hero__actions .button--secondary { border-color: var(--color-pearl); color: var(--color-pearl); }
.menu-page .menu-hero__actions .button--secondary:hover { background: var(--color-pearl); color: var(--color-eucalyptus); }
.menu-page .menu-hero__media { grid-column: 2; min-width: 0; overflow: hidden; border-radius: 0 0 0 var(--radius-architectural); }
.menu-page .menu-hero__media img { inline-size: 100%; block-size: 100%; min-height: 42.5rem; object-fit: cover; object-position: 64% center; }

.menu-page .menu-directory { border-block: var(--menu-rule); background: var(--color-pearl); }
.menu-page .menu-directory__inner { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 5fr) minmax(0, 4fr); gap: var(--space-6); padding-block: var(--space-6); }
.menu-page .menu-directory__intro, .menu-page .menu-directory__group { min-width: 0; }
.menu-page .menu-directory__intro p { max-inline-size: 58ch; margin-block-end: 0; }
.menu-page .menu-directory__group { display: flex; flex-direction: column; gap: var(--space-2); }
.menu-page .menu-directory__links { display: flex; flex-wrap: wrap; gap: var(--space-2); min-width: 0; }
.menu-page .menu-directory__links a { display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: .55rem .75rem; border: var(--border-active); border-radius: var(--radius-control); color: var(--color-eucalyptus); font-size: var(--text-small); font-weight: var(--weight-semibold); text-decoration: none; white-space: nowrap; }
.menu-page .menu-directory__links a:hover, .menu-page .menu-directory__links a[aria-current="true"] { background: var(--color-eucalyptus); color: var(--color-pearl); }

.menu-page .menu-chapter { scroll-margin-top: 7rem; }
.menu-page .menu-opening__layout, .menu-page .menu-kitchen__layout, .menu-page .menu-lounge__layout, .menu-page .menu-pour__layout, .menu-page .menu-beyond__layout { display: grid; min-width: 0; }
.menu-page .menu-opening__layout { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-8); }
.menu-page .menu-chapter__intro { min-width: 0; }
.menu-page .menu-chapter__intro p { max-inline-size: 50ch; }
.menu-page .menu-listing { min-width: 0; }
.menu-page .menu-row { min-width: 0; padding: var(--space-5) 0; border-block-start: var(--menu-rule); }
.menu-page .menu-row:last-child { border-block-end: var(--menu-rule); }
.menu-page .menu-row:hover { box-shadow: inset 2px 0 var(--color-eucalyptus); }
.menu-page .menu-row > *:last-child { margin-block-end: 0; }
.menu-page .menu-row h3 { margin-block-end: var(--space-3); }
.menu-page .menu-row p { max-inline-size: 56ch; }
.menu-page .menu-row__cue { color: var(--color-eucalyptus); font-size: var(--text-small); font-weight: var(--weight-semibold); }
.menu-page .menu-row--warm { margin-inline: calc(var(--space-4) * -1); padding-inline: var(--space-4); border-radius: var(--radius-surface); background: rgb(216 196 168 / 45%); }

.menu-page .menu-kitchen { background: var(--color-sandstone); }
.menu-page .menu-kitchen__layout { grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr); align-items: start; }
.menu-page .menu-kitchen__copy { grid-column: 1; min-width: 0; }
.menu-page .menu-kitchen__copy > p { max-inline-size: 54ch; }
.menu-page .menu-kitchen__copy .menu-row p { max-inline-size: 54ch; }
.menu-page .menu-kitchen__media { grid-column: 3; min-width: 0; margin-block-start: var(--space-7); }
.menu-page .menu-kitchen__media img { inline-size: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.menu-page .menu-kitchen__link { display: inline-flex; margin-block-start: var(--space-5); font-weight: var(--weight-semibold); }

.menu-page .menu-dessert { text-align: center; }
.menu-page .menu-dessert__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); max-inline-size: 38.75rem; margin-inline: auto; }
.menu-page .menu-dessert__inner > * { margin: 0; }
.menu-page .menu-dessert__inner p { max-inline-size: 54ch; }
.menu-page .menu-dessert__link { font-weight: var(--weight-semibold); }

.menu-page .menu-lounge { background: var(--color-ocean); color: var(--color-pearl); }
.menu-page .menu-lounge__layout { grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr); align-items: center; }
.menu-page .menu-lounge__copy { grid-column: 1; display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.menu-page .menu-lounge__copy > * { margin: 0; }
.menu-page .menu-lounge__copy .eyebrow, .menu-page .menu-lounge__status { color: var(--color-sandstone); }
.menu-page .menu-lounge__copy h2 { color: var(--color-pearl); }
.menu-page .menu-lounge__lead { max-inline-size: 53ch; font-size: var(--text-lead); line-height: 1.45; }
.menu-page .menu-lounge__status { font-size: var(--text-micro); font-weight: var(--weight-label); letter-spacing: var(--tracking-label); }
.menu-page .menu-lounge__cards { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.menu-page .menu-lounge__card { min-width: 0; padding: var(--space-5); border: 1px solid rgb(247 245 239 / 55%); border-radius: var(--radius-surface); background: rgb(247 245 239 / 9%); }
.menu-page .menu-lounge__card--light { background: var(--color-pearl); color: var(--color-ink); }
.menu-page .menu-lounge__card > *:last-child { margin-block-end: 0; }
.menu-page .menu-lounge__card h3 { color: inherit; }
.menu-page .menu-lounge__card p { max-inline-size: 49ch; }
.menu-page .menu-lounge__card a { color: inherit; font-weight: var(--weight-semibold); }
.menu-page .menu-lounge__cue { color: var(--color-sandstone); font-size: var(--text-small); font-weight: var(--weight-semibold); }
.menu-page .menu-lounge__media { grid-column: 3; min-width: 0; }
.menu-page .menu-lounge__media img { inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; }
.menu-page .menu-lounge__button { align-self: flex-start; }

.menu-page .menu-drinks { background: var(--color-sandstone); }
.menu-page .menu-drinks__layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 3fr) minmax(0, 4fr); gap: var(--space-5); align-items: start; }
.menu-page .menu-drinks__intro { grid-column: 1; min-width: 0; }
.menu-page .menu-drinks__intro p { max-inline-size: 46ch; }
.menu-page .menu-drink-panel { min-width: 0; padding: var(--space-5); border-radius: var(--radius-surface); background: var(--color-pearl); }
.menu-page .menu-drink-panel > *:last-child { margin-block-end: 0; }
.menu-page .menu-drink-panel p { max-inline-size: 49ch; }
.menu-page .menu-drink-panel--cocktails { grid-column: 3; }
.menu-page .menu-drink-panel--zero { grid-column: 4; margin-block-start: var(--space-7); }

.menu-page .menu-pour__layout { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-8); }
.menu-page .menu-pour__intro { min-width: 0; }
.menu-page .menu-pour__intro p { max-inline-size: 48ch; }
.menu-page .menu-pour__content { min-width: 0; }
.menu-page .menu-pour__routes { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--space-3); margin-block-start: var(--space-6); }

.menu-page .menu-beyond__layout { grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr); align-items: start; }
.menu-page .menu-beyond__intro { grid-column: 1; min-width: 0; color: var(--color-pearl); }
.menu-page .menu-beyond__intro .eyebrow { color: var(--color-sandstone); }
.menu-page .menu-beyond__intro h2 { color: var(--color-pearl); }
.menu-page .menu-beyond__intro p { max-inline-size: 54ch; }
.menu-page .menu-route-rail { grid-column: 3; display: flex; flex-direction: column; min-width: 0; }
.menu-page .menu-route-rail a { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) auto; gap: var(--space-3); align-items: start; min-width: 0; min-height: 4.5rem; padding: var(--space-4) 0; border-block-start: 1px solid rgb(247 245 239 / 45%); color: var(--color-pearl); text-decoration: none; }
.menu-page .menu-route-rail a:last-child { border-block-end: 1px solid rgb(247 245 239 / 45%); }
.menu-page .menu-route-rail a:hover .menu-route-rail__number { color: var(--color-burnt-orange); }
.menu-page .menu-route-rail__number { color: var(--color-sandstone); font-family: var(--font-heading); font-size: 1.5rem; font-variant-numeric: tabular-nums; font-weight: var(--weight-heading); }
.menu-page .menu-route-rail__content { min-width: 0; }
.menu-page .menu-route-rail__content strong { display: block; font-family: var(--font-heading); font-size: 1.25rem; }
.menu-page .menu-route-rail__content span { display: block; margin-block-start: var(--space-1); max-inline-size: 40ch; font-size: var(--text-small); }
.menu-page .menu-route-rail__arrow { font-size: 1.25rem; }

.menu-page .menu-group { text-align: center; }
.menu-page .menu-group__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-5); max-inline-size: 38.75rem; margin-inline: auto; }
.menu-page .menu-group__inner > * { margin: 0; }
.menu-page .menu-group__inner p { max-inline-size: 54ch; }

.menu-page .menu-reveal { opacity: 0; transform: translateY(12px); transition: opacity 400ms ease-out, transform 400ms ease-out; }
.menu-page .menu-reveal.is-revealed { opacity: 1; transform: none; }

@media (max-width: 68.75rem) {
  .menu-page .menu-directory__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-page .menu-directory__intro { grid-column: 1 / -1; }
  .menu-page .menu-opening__layout, .menu-page .menu-pour__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .menu-page .menu-chapter__intro, .menu-page .menu-pour__intro { max-inline-size: 35rem; }
  .menu-page .menu-lounge__layout { grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); gap: var(--space-5); }
  .menu-page .menu-lounge__media { grid-column: 2; }
  .menu-page .menu-beyond__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .menu-page .menu-beyond__intro, .menu-page .menu-route-rail { grid-column: 1; }
}

@media (max-width: 65.625rem) {
  .menu-page .menu-drinks__layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-page .menu-drinks__intro { grid-column: 1 / -1; }
  .menu-page .menu-drink-panel--cocktails, .menu-page .menu-drink-panel--zero { grid-column: auto; margin-block-start: 0; }
}

@media (max-width: 63.75rem) {
  .menu-page .menu-hero { min-height: auto; grid-template-columns: 1fr; }
  .menu-page .menu-hero__media { grid-column: 1; grid-row: 1; margin-inline: var(--gutter); border-radius: 0 0 var(--radius-architectural) var(--radius-architectural); }
  .menu-page .menu-hero__media img { min-height: 22rem; aspect-ratio: 16 / 10; }
  .menu-page .menu-hero__copy { grid-column: 1; grid-row: 2; padding: var(--space-7) var(--gutter) var(--space-9); }
  .menu-page .menu-kitchen__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .menu-page .menu-kitchen__media { grid-column: 1; grid-row: 1; margin-block-start: 0; }
  .menu-page .menu-kitchen__copy { grid-column: 1; grid-row: 2; }
}

@media (max-width: 61.25rem) {
  .menu-page .menu-pour__routes { justify-content: flex-start; }
}

@media (max-width: 56.25rem) {
  .menu-page .menu-lounge__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .menu-page .menu-lounge__media { grid-column: 1; grid-row: 1; }
  .menu-page .menu-lounge__copy { grid-column: 1; grid-row: 2; }
}

@media (max-width: 47.5rem) {
  .menu-page .menu-hero__media { margin-inline: var(--gutter); }
  .menu-page .menu-hero__media img { min-height: 0; }
  .menu-page .menu-hero__copy { gap: var(--space-4); padding-block: var(--space-6) var(--space-8); }
  .menu-page .menu-hero__copy h1 { max-inline-size: 12ch; }
  .menu-page .menu-hero__lead { max-inline-size: none; font-size: 1rem; }
  .menu-page .menu-hero__actions { display: grid; grid-template-columns: 1fr; }
  .menu-page .menu-hero__actions > * { inline-size: 100%; }
  .menu-page .menu-directory__inner { display: flex; flex-direction: column; gap: var(--space-4); }
  .menu-page .menu-directory__links { flex-wrap: nowrap; overflow-x: auto; padding-block-end: var(--space-2); scrollbar-color: var(--color-eucalyptus) transparent; }
  .menu-page .menu-directory__links a { flex: 0 0 auto; }
  .menu-page .menu-opening__layout, .menu-page .menu-pour__layout { gap: var(--space-5); }
  .menu-page .menu-row { padding-block: var(--space-4); }
  .menu-page .menu-row--warm { margin-inline: 0; padding-inline: var(--space-4); }
  .menu-page .menu-kitchen__copy, .menu-page .menu-kitchen__media { min-width: 0; }
  .menu-page .menu-kitchen__copy { padding-inline: 0; }
  .menu-page .menu-lounge { padding-block: var(--space-8); }
  .menu-page .menu-lounge__copy { gap: var(--space-4); }
  .menu-page .menu-lounge__card { padding: var(--space-4); }
  .menu-page .menu-lounge__button { inline-size: 100%; }
  .menu-page .menu-drinks__layout { grid-template-columns: 1fr; gap: var(--space-4); }
  .menu-page .menu-drinks__intro, .menu-page .menu-drink-panel--cocktails, .menu-page .menu-drink-panel--zero { grid-column: 1; }
  .menu-page .menu-drink-panel { padding: var(--space-4); }
  .menu-page .menu-pour__routes { display: grid; grid-template-columns: 1fr; }
  .menu-page .menu-pour__routes a { inline-size: 100%; }
  .menu-page .menu-route-rail { gap: var(--space-4); }
  .menu-page .menu-route-rail a { grid-template-columns: 3rem minmax(0, 1fr) auto; border: 1px solid rgb(247 245 239 / 45%); padding: var(--space-4); }
  .menu-page .menu-route-rail a:last-child { border-block-end: 1px solid rgb(247 245 239 / 45%); }
  .menu-page .menu-group__inner { max-inline-size: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-page .menu-reveal { opacity: 1; transform: none; }
}
