.menu-page {
  overflow: clip;
}

.menu-cover {
  min-height: 78vh;
  padding-block: clamp(7rem, 12vw, 11rem) var(--space-9);
}

.menu-cover__layout {
  display: grid;
  grid-template-columns: minmax(0, 66fr) minmax(15.625rem, 34fr);
  align-items: end;
  gap: clamp(2rem, 5vw, 5rem);
  min-height: min(78vh, 58rem);
}

.menu-cover__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  min-width: 0;
  padding-bottom: var(--space-4);
}

.menu-cover__copy > * { min-width: 0; margin: 0; }
.menu-cover__copy h1 { max-width: 10ch; }
.menu-cover__eyebrow { display: flex; align-items: center; gap: var(--space-3); }
.menu-cover__eyebrow span { display: block; width: clamp(4rem, 12vw, 10rem); height: 1px; background: var(--color-snow-white); }
.menu-cover__lead { max-width: 38rem; }
.menu-cover__actions { width: 100%; }
.menu-cover__actions > .button { min-width: 10rem; }
.menu-cover__image { width: 100%; max-width: 100%; min-width: 0; align-self: stretch; margin: 0; }

.menu-kitchen__inner { display: flex; flex-direction: column; gap: var(--space-7); }
.menu-kitchen__rule { width: 100%; height: 1px; background: var(--color-snow-white); }
.menu-kitchen__grid { display: grid; grid-template-columns: minmax(0, 22fr) minmax(0, 78fr); gap: var(--space-6); }
.menu-kitchen__rail, .menu-kitchen__notes, .menu-note { min-width: 0; }
.menu-kitchen__rail h2 { max-width: 14rem; }
.menu-kitchen__notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.menu-note { border-top: var(--border-subtle); padding-top: var(--space-4); }
.menu-note h3 { font-family: var(--font-body); font-size: var(--text-meta); font-weight: 600; letter-spacing: var(--tracking-meta); text-transform: uppercase; }
.menu-note p { max-width: 25rem; }

.menu-course__grid { display: grid; grid-template-columns: minmax(0, 28fr) minmax(0, 72fr); gap: clamp(2rem, 5vw, 5rem); }
.menu-course__rail, .menu-course__content, .menu-list, .menu-list__row { min-width: 0; }
.menu-course__rail h2 { max-width: 19rem; }
.menu-course__intro { max-width: 25rem; }
.menu-list { border-bottom: var(--border-subtle); }
.menu-list__row { display: grid; grid-template-columns: 2rem minmax(0, 42fr) minmax(0, 58fr); align-items: center; column-gap: var(--space-4); border-top: var(--border-subtle); padding-block: var(--space-5); }
.menu-list__row > * { min-width: 0; margin: 0; }
.menu-list__index { color: var(--color-muted-graphite); font-size: var(--text-meta); letter-spacing: var(--tracking-meta); line-height: var(--leading-meta); }
.menu-list__row h3 { font-size: clamp(1.8rem, 3.1vw, 2.8rem); }
.menu-list__row p { max-width: 32rem; color: var(--color-soft-white); }

.menu-pass__inner { display: grid; grid-template-columns: minmax(0, 76fr) minmax(0, 24fr); align-items: start; gap: clamp(2rem, 5vw, 5rem); }
.menu-pass__figure { grid-column: 1; width: 100%; margin: 0; }
.menu-pass__image { width: 100%; margin: 0; }
.menu-pass__figure figcaption { max-width: 20rem; }
.menu-pass__note { grid-column: 2; min-width: 0; margin-top: clamp(2rem, 12vw, 10rem); }
.menu-pass__note h2 { font-size: var(--text-section); line-height: var(--leading-section); }
.menu-pass__note p:not(.eyebrow) { max-width: 31rem; }

.menu-course--hearth { padding-block: var(--section-space); }
.menu-course__grid--hearth { grid-template-columns: minmax(0, 14fr) minmax(0, 86fr); gap: var(--space-6); }
.menu-course__rail--blank { width: 100%; }
.menu-course__intro--hearth { max-width: 30rem; }
.menu-list--hearth .menu-list__row { grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); }
.menu-list--hearth .menu-list__row p { justify-self: end; max-width: 34rem; }

.menu-larger__grid { display: grid; grid-template-columns: minmax(0, 28fr) minmax(2rem, 8fr) minmax(0, 64fr); align-items: start; }
.menu-larger__image { grid-column: 1; width: 100%; margin: 0; }
.menu-larger__content { grid-column: 3; min-width: 0; }
.menu-larger__intro { max-width: 34rem; }
.menu-list--larger .menu-list__row { grid-template-columns: minmax(0, 44fr) minmax(0, 56fr); }
.menu-list--larger .menu-list__row p { max-width: 34rem; }

.menu-course--dessert .menu-course__grid { grid-template-columns: minmax(0, 25fr) minmax(0, 75fr); }
.menu-course__intro--dessert { max-width: 28rem; }
.menu-list--dessert .menu-list__row { grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); }
.menu-list--dessert .menu-list__row p { max-width: 28rem; }
.menu-dessert__closing { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); min-width: 0; margin-left: 0; padding-top: var(--space-6); }
.menu-dessert__closing > * { min-width: 0; margin: 0; }
.menu-dessert__closing .rule { width: 100%; }
.menu-dessert__closing p { max-width: 38rem; }

.menu-lounge { padding-block: var(--section-space); }
.menu-lounge__grid { display: grid; grid-template-columns: minmax(0, 56fr) minmax(2rem, 8fr) minmax(0, 36fr); align-items: start; }
.menu-lounge__content { grid-column: 1; min-width: 0; }
.menu-lounge__image { grid-column: 3; width: 100%; margin: 0; }
.menu-lounge__lead { max-width: 35rem; font-size: var(--text-lead); line-height: var(--leading-lead); }
.menu-lounge__notes { display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; margin-top: var(--space-6); }
.menu-lounge__note { min-width: 0; border-top: var(--border-subtle); padding-top: var(--space-4); }
.menu-lounge__note h3 { font-family: var(--font-body); font-size: var(--text-meta); font-weight: 600; letter-spacing: var(--tracking-meta); text-transform: uppercase; }
.menu-lounge__note p { max-width: 34rem; }

.menu-dietary { padding-block: var(--section-space); }
.menu-dietary__grid { display: grid; grid-template-columns: minmax(0, 50fr) minmax(2rem, 8fr) minmax(0, 42fr); align-items: start; }
.menu-dietary__primary { grid-column: 1; min-width: 0; }
.menu-dietary__support { grid-column: 3; display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }
.menu-dietary__lead { max-width: 36rem; }
.menu-dietary__actions { margin-bottom: var(--space-4); }
.menu-dietary__email { max-width: 36rem; }
.menu-dietary__note { min-width: 0; border-top: var(--border-subtle); padding-top: var(--space-4); }
.menu-dietary__note h3 { font-size: var(--text-section); }
.menu-dietary__note p, .menu-dietary__note ul { max-width: 30rem; }

.menu-closing__layout { display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); }
.menu-closing__content { grid-column: 1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); min-width: 0; }
.menu-closing__content > * { min-width: 0; margin: 0; }
.menu-closing__content h2 { max-width: 56rem; }
.menu-closing__lead { max-width: 36rem; }
.menu-closing__rule { margin-top: var(--space-3); }

@media (max-width: 900px) {
  .menu-kitchen__grid, .menu-course__grid, .menu-course__grid--hearth { grid-template-columns: minmax(0, 1fr); }
  .menu-kitchen__rail h2, .menu-course__rail h2 { max-width: 32rem; }
  .menu-kitchen__notes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-course__rail--blank { display: none; }
  .menu-pass__inner { grid-template-columns: minmax(0, 1fr); }
  .menu-pass__figure, .menu-pass__note { grid-column: 1; }
  .menu-pass__note { margin-top: 0; max-width: 31rem; }
  .menu-larger__grid, .menu-lounge__grid, .menu-dietary__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .menu-larger__image, .menu-larger__content, .menu-lounge__content, .menu-lounge__image, .menu-dietary__primary, .menu-dietary__support { grid-column: 1; }
  .menu-larger__content { grid-row: 1; }
  .menu-larger__image { grid-row: 2; max-width: 28rem; }
  .menu-lounge__image { max-width: 28rem; }
  .menu-dietary__support { max-width: 42rem; }
}

@media (max-width: 780px) {
  .menu-list__row, .menu-list--hearth .menu-list__row, .menu-list--larger .menu-list__row, .menu-list--dessert .menu-list__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); align-items: start; }
  .menu-list__index { display: none; }
  .menu-list--hearth .menu-list__row p { justify-self: start; }
}

@media (max-width: 760px) {
  .menu-cover { min-height: 0; padding-block: var(--space-10) var(--section-space); }
  .menu-cover__layout { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: var(--space-7); }
  .menu-cover__copy { padding-bottom: 0; }
  .menu-cover__copy h1 { font-size: clamp(3.375rem, 16vw, 4.875rem); }
  .menu-cover__lead { max-width: none; }
  .menu-cover__actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .menu-cover__actions > .button { width: 100%; min-height: 3rem; }
  .menu-cover__image { aspect-ratio: 4 / 5; }
}

@media (max-width: 700px) {
  .menu-kitchen__inner { gap: var(--space-6); }
  .menu-kitchen__notes { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .menu-note p, .menu-course__intro, .menu-larger__intro, .menu-lounge__lead, .menu-dietary__lead { max-width: 40rem; }
  .menu-course__grid, .menu-course__grid--hearth { gap: var(--space-5); }
  .menu-list__row { padding-block: var(--space-5); }
  .menu-list__row h3 { font-size: clamp(1.8rem, 8vw, 2.15rem); }
  .menu-pass__image { aspect-ratio: 3 / 2; }
  .menu-pass__note { max-width: 40rem; }
  .menu-larger__image, .menu-lounge__image { width: 100%; max-width: none; aspect-ratio: 4 / 5; }
  .menu-larger__content { grid-row: 1; }
  .menu-larger__image { grid-row: 2; }
  .menu-lounge__content { grid-row: 1; }
  .menu-lounge__image { grid-row: 2; }
  .menu-lounge__lead { font-size: var(--text-body); line-height: var(--leading-body); }
  .menu-dessert__closing { padding-top: var(--space-5); }
  .menu-dietary__actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .menu-dietary__actions > .button { width: 100%; min-height: 3rem; }
  .menu-closing__layout { grid-template-columns: minmax(0, 1fr); }
  .menu-closing__content { grid-column: 1; }
  .menu-closing__content h2 { font-size: clamp(2.75rem, 13vw, 4rem); }
  .menu-closing__actions { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; gap: var(--space-3); }
  .menu-closing__actions > .button { width: 100%; min-height: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-page .image-frame > img { transform: none !important; }
}
