.menu-page {
  overflow: clip;
}

.menu-page .section {
  position: relative;
}

.menu-hero {
  padding-top: clamp(3rem, 7vw, 6rem);
}

.menu-hero__grid,
.menu-course__intro,
.menu-specialties__grid,
.menu-choice__grid,
.menu-soft__grid,
.menu-bar__grid,
.menu-information__grid {
  display: grid;
  min-width: 0;
}

.menu-hero__grid {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}

.menu-hero__copy,
.menu-hero__media,
.menu-course__intro-copy,
.menu-course__media,
.menu-specialties__copy,
.menu-choice__vegetarian,
.menu-choice__desserts,
.menu-soft__copy,
.menu-bar__group,
.menu-information__card {
  min-width: 0;
  width: 100%;
}

.menu-hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.menu-hero__copy > * {
  min-width: 0;
  margin: 0;
}

.menu-hero h1 {
  max-width: 15ch;
  font-size: clamp(2.5rem, 9vw, 4.5rem);
}

.menu-hero__copy > .lead {
  max-width: 42.5rem;
}

.menu-hero__actions,
.menu-poker__actions,
.menu-closing__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  width: 100%;
}

.menu-hero__actions > *,
.menu-poker__actions > *,
.menu-closing__actions > * {
  flex: 0 1 auto;
  min-width: 0;
}

.menu-hero__notice {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  width: min(100%, 38.75rem);
  padding: var(--space-4);
  border: 1px solid rgb(216 180 119 / 18%);
  border-radius: var(--radius-md);
  background: rgb(32 39 36 / 72%);
}

.menu-hero__notice > * { margin: 0; min-width: 0; }
.menu-hero__notice p { color: var(--color-muted-ivory); font-size: var(--text-helper); line-height: var(--leading-helper); }
.menu-hero__notice-icon { display: grid; place-items: center; flex: 0 0 1.5rem; width: 1.5rem; height: 1.5rem; border: 1px solid var(--color-copper); border-radius: 50%; color: var(--color-champagne); font-family: var(--font-heading); font-weight: var(--weight-semibold); }

.menu-hero__media,
.menu-course__media,
.menu-choice__media,
.menu-bar__media {
  overflow: hidden;
  width: 100%;
  margin: 0;
  border: 1px solid rgb(216 180 119 / 22%);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-cinematic);
}

.menu-hero__media { min-height: 16.25rem; aspect-ratio: 4 / 3; }
.menu-hero__media img,
.menu-course__media img,
.menu-choice__media img,
.menu-bar__media img { width: 100%; height: 100%; object-fit: cover; }

.menu-anchor-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  min-width: 0;
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}

.menu-anchor-panel__heading,
.menu-anchor-panel__links { min-width: 0; width: 100%; }
.menu-anchor-panel__heading > :last-child { margin-bottom: 0; }
.menu-anchor-panel__heading p:not(.eyebrow) { max-width: 38rem; color: var(--color-muted-ivory); }
.menu-anchor-panel__links { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
.menu-anchor-panel__links a { display: flex; align-items: center; min-width: 0; min-height: 2.75rem; padding: var(--space-2) 0; border-bottom: 1px solid rgb(184 115 79 / 24%); color: var(--color-ivory); font-size: var(--text-helper); font-weight: var(--weight-semibold); text-decoration: none; }
.menu-anchor-panel__links a:hover,
.menu-anchor-panel__links a.is-active { border-color: var(--color-champagne); color: var(--color-champagne); }

.menu-course__intro { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); margin-bottom: var(--space-8); }
.menu-course__intro-copy { align-self: center; }
.menu-course__intro-copy p:not(.eyebrow) { max-width: 38.75rem; }
.menu-course__media { min-height: 13.75rem; aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.menu-category + .menu-category { margin-top: var(--space-8); }
.menu-category__heading { width: 100%; margin-bottom: var(--space-5); }
.menu-category__heading > :last-child { margin-bottom: 0; }
.menu-category__heading p:not(.eyebrow) { max-width: 38.75rem; color: var(--color-muted-ivory); }

.menu-card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); min-width: 0; width: 100%; }
.menu-card-grid > * { min-width: 0; width: 100%; }
.menu-item-card { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; width: 100%; padding: var(--space-5); border: 1px solid rgb(216 180 119 / 18%); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-subtle); transition: transform var(--transition-base), border-color var(--transition-base), background-color var(--transition-base); }
.menu-item-card:hover { border-color: rgb(216 180 119 / 45%); background: var(--color-surface-raised); transform: translateY(-2px); }
.menu-item-card > * { min-width: 0; margin: 0; }
.menu-item-card__top { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-3); min-width: 0; width: 100%; }
.menu-item-card__top h3,
.menu-item-card__top h4 { flex: 1 1 10rem; min-width: 0; margin: 0; font-size: clamp(1.25rem, 2.4vw, 1.55rem); }
.menu-item-card__top strong { flex: 0 0 auto; min-width: 0; color: var(--color-champagne); font-family: var(--font-body); font-size: var(--text-helper); line-height: var(--leading-helper); }
.menu-item-card p:not(.menu-item-card__allergens) { color: var(--color-muted-ivory); font-size: var(--text-helper); line-height: var(--leading-helper); }
.menu-item-card__allergens { padding-top: var(--space-3); border-top: 1px solid rgb(216 180 119 / 14%); color: var(--color-muted-ivory); font-size: var(--text-meta); line-height: var(--leading-helper); }

.menu-specialties { background: linear-gradient(120deg, rgb(74 31 42 / 86%), rgb(11 13 12 / 96%)); }
.menu-specialties__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.menu-specialties__copy { align-self: start; }
.menu-specialties__copy p:not(.eyebrow) { max-width: 36.25rem; }
.menu-card-grid--specialties { counter-reset: specialty; }
.menu-item-card--numbered { position: relative; overflow: hidden; }
.menu-item-card--numbered > span { color: rgb(216 180 119 / 38%); font-family: var(--font-heading); font-size: 2.5rem; font-weight: var(--weight-semibold); line-height: 1; }

.menu-choice { background: linear-gradient(160deg, rgb(18 59 50 / 68%), var(--color-obsidian) 66%); }
.menu-choice > .container > h2 { max-width: 16ch; }
.menu-choice__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
.menu-item-card--emerald { border-top: 3px solid rgb(121 184 155 / 58%); }
.menu-choice__desserts { display: flex; flex-direction: column; gap: var(--space-5); }
.menu-choice__desserts > * { min-width: 0; margin: 0; }
.menu-choice__media { min-height: 13.75rem; aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.menu-choice__note { width: 100%; margin-top: var(--space-7); padding-top: var(--space-4); border-top: 1px solid rgb(184 115 79 / 34%); }
.menu-choice__note p { max-width: 45rem; margin: 0; color: var(--color-muted-ivory); font-size: var(--text-helper); line-height: var(--leading-helper); }

.menu-soft__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.menu-soft__copy p:not(.eyebrow) { max-width: 35rem; }
.menu-item-card--compact { padding: var(--space-4) var(--space-5); }

.menu-bar { background: linear-gradient(130deg, rgb(18 59 50 / 92%), rgb(74 31 42 / 54%), var(--color-obsidian)); }
.menu-bar__heading { width: 100%; margin-bottom: var(--space-7); }
.menu-bar__heading p:not(.eyebrow) { max-width: 37.5rem; }
.menu-bar__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
.menu-bar__group { display: flex; flex-direction: column; gap: var(--space-4); }
.menu-bar__group > * { min-width: 0; margin: 0; }
.menu-bar__group > p { max-width: 30rem; color: var(--color-muted-ivory); font-size: var(--text-helper); line-height: var(--leading-helper); }
.menu-bar__cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); min-width: 0; width: 100%; }
.menu-bar__cards > * { min-width: 0; width: 100%; }
.menu-item-card--burgundy { border-top: 3px solid rgb(184 115 79 / 70%); }
.menu-bar__media { min-height: 13.75rem; aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.menu-bar__responsible { width: 100%; margin-top: var(--space-7); padding: var(--space-4); border: 1px solid rgb(216 180 119 / 22%); border-radius: var(--radius-md); background: rgb(11 13 12 / 42%); }
.menu-bar__responsible p { max-width: 42.5rem; margin: 0; color: var(--color-muted-ivory); font-size: var(--text-helper); line-height: var(--leading-helper); }

.menu-information > .container > h2 { max-width: 18ch; }
.menu-information__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.menu-information__card { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); }
.menu-information__card > * { min-width: 0; margin: 0; }
.menu-information__card--raised { background: var(--color-surface-raised); }
.menu-information__card > span { color: var(--color-copper); font-size: var(--text-meta); font-weight: var(--weight-semibold); letter-spacing: .12em; }
.menu-information__card h3 { font-size: clamp(1.6rem, 3vw, 2rem); }
.menu-information__card p { max-width: 32.5rem; color: var(--color-muted-ivory); }

.menu-poker__panel { position: relative; width: 100%; padding: var(--space-6); border: 1px solid rgb(216 180 119 / 28%); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgb(74 31 42 / 92%), rgb(21 26 24 / 94%)); box-shadow: var(--shadow-cinematic); }
.menu-poker__panel::before,
.menu-poker__panel::after { position: absolute; width: 2.5rem; height: 2.5rem; content: ""; border-color: var(--color-copper); opacity: .75; pointer-events: none; }
.menu-poker__panel::before { top: var(--space-4); left: var(--space-4); border-top: 1px solid; border-left: 1px solid; }
.menu-poker__panel::after { right: var(--space-4); bottom: var(--space-4); border-right: 1px solid; border-bottom: 1px solid; }
.menu-poker__panel > * { position: relative; z-index: 1; min-width: 0; }
.menu-poker__panel h2 { max-width: 16ch; }
.menu-poker__panel > p:not(.eyebrow):not(.menu-poker__status):not(.menu-poker__helper) { max-width: 42.5rem; }
.menu-poker__status { display: inline-flex; gap: var(--space-2); margin-bottom: var(--space-5); color: var(--color-champagne); font-size: var(--text-helper); font-weight: var(--weight-semibold); letter-spacing: .08em; text-transform: uppercase; }
.menu-poker__helper { max-width: 38.75rem; margin: var(--space-5) 0 0; color: var(--color-muted-ivory); font-size: var(--text-helper); line-height: var(--leading-helper); }

.menu-closing { padding-bottom: clamp(5rem, 10vw, 8rem); }
.menu-closing__content { display: flex; flex-direction: column; align-items: center; gap: var(--space-5); width: min(100%, 37.5rem); margin-inline: auto; padding-top: var(--space-7); border-top: 1px solid rgb(184 115 79 / 48%); text-align: center; }
.menu-closing__content > * { min-width: 0; margin: 0; }
.menu-closing__content p:not(.eyebrow) { max-width: 37.5rem; }
.menu-closing__actions { justify-content: center; }

.menu-reveal { opacity: 1; }
.menu-reveal.is-revealed { opacity: 1; }

@media (min-width: 43.75rem) {
  .menu-hero__media { aspect-ratio: 16 / 9; }
  .menu-anchor-panel__links { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-5); }
  .menu-card-grid--two,
  .menu-card-grid--soft,
  .menu-card-grid--desserts,
  .menu-information__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-bar__cards--wine { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 56.25rem) {
  .menu-hero__grid { grid-template-columns: minmax(0, .96fr) minmax(0, .92fr); align-items: center; }
  .menu-hero__media { min-height: 28rem; aspect-ratio: auto; }
  .menu-course__intro { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
  .menu-specialties__grid { grid-template-columns: minmax(0, .48fr) minmax(0, 1fr); align-items: start; }
  .menu-card-grid--specialties { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-soft__grid { grid-template-columns: minmax(0, .48fr) minmax(0, 1fr); align-items: start; }
  .menu-bar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-bar__group:last-child { grid-column: 1 / -1; }
  .menu-information__card:last-child { grid-column: 1 / -1; }
}

@media (min-width: 61.25rem) {
  .menu-card-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .menu-choice__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; }
}

@media (min-width: 68.75rem) {
  .menu-hero__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); min-height: 35rem; }
  .menu-hero__copy { grid-column: 1 / span 5; }
  .menu-hero__media { grid-column: 7 / span 6; }
  .menu-anchor-panel { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
  .menu-anchor-panel__heading { grid-column: 1 / span 3; }
  .menu-anchor-panel__links { grid-column: 4 / span 9; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .menu-course__intro { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .menu-course__intro-copy { grid-column: 1 / span 5; }
  .menu-course__media { grid-column: 7 / span 5; }
  .menu-specialties__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .menu-specialties__copy { grid-column: 1 / span 4; }
  .menu-card-grid--specialties { grid-column: 5 / span 8; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .menu-bar__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .menu-bar__group:last-child { grid-column: auto; }
  .menu-information__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .menu-information__card:last-child { grid-column: auto; }
  .menu-poker__panel { width: calc(100% * 10 / 12); margin-inline: calc(100% / 12); }
}

@media (max-width: 26.1875rem) {
  .menu-hero__actions,
  .menu-poker__actions,
  .menu-closing__actions { flex-direction: column; }
  .menu-hero__actions > *,
  .menu-poker__actions > *,
  .menu-closing__actions > * { width: 100%; }
}

@media (max-width: 24.375rem) {
  .menu-item-card__top { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: no-preference) {
  .menu-reveal { opacity: .72; transition: opacity 200ms ease-out; }
  .menu-reveal.is-revealed { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-item-card:hover { transform: none; }
}
