#menu-page {
  background: var(--color-deep-navy);
}

#menu-page .menu-hero {
  position: relative;
  display: grid;
  min-height: 42.5rem;
  align-items: end;
  overflow: hidden;
  border-bottom: 1px solid var(--color-border);
  isolation: isolate;
}

#menu-page .menu-hero__media,
#menu-page .menu-hero__media::after {
  position: absolute;
  inset: 0;
}

#menu-page .menu-hero__media {
  z-index: -2;
}

#menu-page .menu-hero__media::after {
  z-index: 1;
  content: "";
  background: linear-gradient(90deg, rgb(11 13 16 / 86%) 0%, rgb(11 13 16 / 60%) 35%, rgb(11 13 16 / 18%) 70%, rgb(11 13 16 / 30%) 100%);
}

#menu-page .menu-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% center;
}

#menu-page .menu-hero__frame {
  position: absolute;
  z-index: -1;
  inset: 1.5rem;
  border: 1px solid rgb(184 120 82 / 58%);
  pointer-events: none;
}

#menu-page .menu-hero__inner {
  display: grid;
  width: min(100% - (2 * var(--gutter)), var(--container-max));
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  margin-inline: auto;
  padding-block: 7rem;
}

#menu-page .menu-hero__copy {
  display: flex;
  min-width: 0;
  grid-column: 1 / span 5;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  max-width: 38.75rem;
}

#menu-page .menu-hero__copy > * { margin: 0; }
#menu-page .menu-hero__copy .lead { max-width: 34rem; }
#menu-page .menu-hero__copy h1 { font-size: clamp(3.25rem, 5.5vw, 4.75rem); }

#menu-page .menu-index {
  position: relative;
  overflow: hidden;
  background: var(--color-graphite);
}

#menu-page .menu-index::after,
#menu-page .group-invitation::after,
#menu-page .menu-final::after {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.1;
  pointer-events: none;
  background-image: linear-gradient(45deg, transparent 46%, var(--color-copper) 47%, var(--color-copper) 53%, transparent 54%), linear-gradient(-45deg, transparent 46%, var(--color-copper) 47%, var(--color-copper) 53%, transparent 54%);
  background-size: 76px 76px;
}

#menu-page .menu-index__layout {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 3rem;
  align-items: start;
}

#menu-page .menu-index__intro {
  min-width: 0;
  max-width: 24.375rem;
}

#menu-page .menu-index__intro > :last-child { margin-block-end: 0; }

#menu-page .menu-index__links {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-border-subtle);
}

#menu-page .menu-index__links li { min-width: 0; }

#menu-page .menu-index__links a {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 4.5rem;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border-right: 1px solid var(--color-border-subtle);
  border-bottom: 1px solid var(--color-border-subtle);
  text-decoration: none;
}

#menu-page .menu-index__links a::after,
#menu-page .menu-text-link::after {
  position: absolute;
  right: var(--space-4);
  bottom: 0.65rem;
  left: var(--space-4);
  height: 2px;
  content: "";
  background: var(--color-copper);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-fast);
}

#menu-page .menu-index__links a:hover::after,
#menu-page .menu-index__links a:focus-visible::after,
#menu-page .menu-text-link:hover::after,
#menu-page .menu-text-link:focus-visible::after { transform: scaleX(1); }

#menu-page .menu-index__number {
  flex: 0 0 auto;
  color: var(--color-copper);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

#menu-page .menu-index__name { min-width: 0; font-weight: 700; }

#menu-page .menu-section { scroll-margin-top: 6rem; }

#menu-page .menu-core__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 3rem;
  align-items: start;
}

#menu-page .menu-core__intro { min-width: 0; max-width: 28.125rem; }
#menu-page .menu-core__intro > :last-child { margin-block-end: 0; }

#menu-page .menu-core__lists {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
}

#menu-page .menu-category { min-width: 0; }
#menu-page .menu-category > :last-child { margin-block-end: 0; }

#menu-page .menu-category__lead { max-width: 30rem; }

#menu-page .menu-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

#menu-page .menu-item {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) 4.5rem;
  gap: var(--space-2) var(--space-4);
  padding-block: 1.25rem;
  border-top: 1px solid var(--color-border-subtle);
}

#menu-page .menu-item:last-child { border-bottom: 1px solid var(--color-border-subtle); }
#menu-page .menu-item__copy { min-width: 0; }
#menu-page .menu-item__name { display: block; color: var(--color-warm-ivory); font-family: var(--font-display); font-size: 1.45rem; font-weight: 600; line-height: 1.12; }
#menu-page .menu-item__description { margin: var(--space-2) 0 0; color: var(--color-muted-ivory); font-size: 0.875rem; line-height: 1.5; }
#menu-page .menu-item__price { min-width: 0; color: var(--color-warm-ivory); font-size: 0.875rem; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }

#menu-page .menu-season-note {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: 3rem;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
  max-width: 53.75rem;
}

#menu-page .menu-season-note > * { margin: 0; }

#menu-page .sharing-feature__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
}

#menu-page .sharing-feature__copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  grid-column: 1;
  grid-row: 1;
  flex-direction: column;
  gap: var(--space-5);
  max-width: 31.25rem;
  margin-right: -2rem;
  padding: 3rem;
  border: 1px solid var(--color-border);
  background: var(--color-walnut);
}

#menu-page .sharing-feature__copy > * { margin: 0; }

#menu-page .sharing-feature__tips {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

#menu-page .sharing-feature__tips li {
  min-width: 0;
  padding-top: var(--space-3);
  border-top: 1px solid rgb(243 235 221 / 28%);
  color: var(--color-muted-ivory);
  font-size: 0.875rem;
}

#menu-page .sharing-feature__tips strong { display: block; margin-bottom: var(--space-2); color: var(--color-copper); font-size: 0.6875rem; letter-spacing: 0.12em; }

#menu-page .sharing-feature__media {
  min-width: 0;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
}

#menu-page .sharing-feature__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

#menu-page .signature-section { background: rgb(29 32 37 / 48%); }

#menu-page .signature-block {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 3rem;
  align-items: start;
}

#menu-page .signature-block + .signature-block { margin-top: 5rem; }
#menu-page .signature-block--reverse .signature-block__intro { grid-column: 2; grid-row: 1; }
#menu-page .signature-block--reverse .signature-block__list { grid-column: 1; grid-row: 1; }
#menu-page .signature-block__intro { min-width: 0; max-width: 30rem; }
#menu-page .signature-block__intro > :last-child { margin-block-end: 0; }
#menu-page .signature-block__list { min-width: 0; }

#menu-page .menu-current-note {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  max-width: 42.5rem;
  margin-top: 4rem;
  margin-left: auto;
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  background: rgb(11 13 16 / 48%);
}

#menu-page .menu-current-note > * { margin: 0; }

#menu-page .dessert-bar__heading { max-width: 32.5rem; }
#menu-page .dessert-bar__heading > :last-child { margin-block-end: 0; }

#menu-page .dessert-bar__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(15rem, 3fr);
  gap: 3rem;
  align-items: start;
  margin-top: 3rem;
}

#menu-page .dessert-bar__desserts,
#menu-page .dessert-bar__cocktails,
#menu-page .dessert-bar__image { min-width: 0; }

#menu-page .dessert-bar__image { margin: 0; }
#menu-page .dessert-bar__image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; border: 1px solid var(--color-border); }
#menu-page .menu-subgroup { margin: 1.5rem 0 var(--space-3); }

#menu-page .bar-note { max-width: 36rem; margin-top: 2rem; padding-top: var(--space-3); border-top: 1px solid var(--color-border); color: var(--color-muted-ivory); font-size: 0.875rem; }

#menu-page .poker-recommendations { background: linear-gradient(125deg, var(--color-walnut), var(--color-burgundy)); }

#menu-page .poker-recommendations__panel {
  position: relative;
  display: flex;
  min-width: 0;
  width: calc((100% / 12) * 10);
  flex-direction: column;
  gap: 3rem;
  margin-left: calc(100% / 12);
  padding: 3rem;
  border: 1px solid var(--color-border);
  overflow: hidden;
  background: rgb(11 13 16 / 24%);
}

#menu-page .poker-recommendations__panel::before {
  position: absolute;
  top: -5rem;
  right: -4rem;
  width: 15rem;
  height: 15rem;
  border: 1px solid rgb(184 120 82 / 26%);
  content: "";
  transform: rotate(45deg);
}

#menu-page .poker-recommendations__intro { position: relative; min-width: 0; max-width: 42.5rem; }
#menu-page .poker-recommendations__intro > :last-child { margin-block-end: 0; }

#menu-page .recommendation-grid {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

#menu-page .recommendation-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border-top: 1px solid rgb(243 235 221 / 30%);
  background: rgb(11 13 16 / 22%);
}

#menu-page .recommendation-card > * { margin: 0; }
#menu-page .recommendation-card__number { color: var(--color-copper); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; }
#menu-page .recommendation-card h3 { font-size: clamp(1.45rem, 1.3rem + 0.55vw, 1.85rem); }
#menu-page .recommendation-card__footer { display: flex; min-width: 0; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); margin-top: auto; padding-top: var(--space-2); }
#menu-page .recommendation-card__price { color: var(--color-warm-ivory); font-size: 0.875rem; font-weight: 700; font-variant-numeric: tabular-nums; }

#menu-page .menu-text-link {
  position: relative;
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--color-warm-ivory);
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
}

#menu-page .menu-text-link::after { right: 0; left: 0; bottom: 0.35rem; }

#menu-page .poker-recommendations__context {
  position: relative;
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid rgb(243 235 221 / 28%);
}

#menu-page .poker-recommendations__context a { min-height: 2.75rem; }

#menu-page .wine-layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 3rem;
  align-items: start;
}

#menu-page .wine-layout__intro { min-width: 0; max-width: 26.875rem; }
#menu-page .wine-layout__intro > :last-child { margin-block-end: 0; }

#menu-page .wine-list { min-width: 0; margin: 0; }
#menu-page .wine-row { display: grid; min-width: 0; grid-template-columns: minmax(9rem, 1.1fr) minmax(0, 2fr) minmax(8.75rem, auto); gap: var(--space-4); padding: 1.1rem 0; border-top: 1px solid var(--color-border-subtle); }
#menu-page .wine-row:last-child { border-bottom: 1px solid var(--color-border-subtle); }
#menu-page .wine-row dt { min-width: 0; color: var(--color-warm-ivory); font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; letter-spacing: 0; line-height: 1.15; text-transform: none; }
#menu-page .wine-row dd { min-width: 0; margin: 0; color: var(--color-muted-ivory); font-size: 0.875rem; }
#menu-page .wine-row__price { color: var(--color-warm-ivory) !important; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
#menu-page .wine-note { max-width: 42.5rem; margin: 2.5rem 0 0 auto; color: var(--color-muted-ivory); }

#menu-page .drinks-section { background: rgb(29 32 37 / 52%); }
#menu-page .drinks-heading { max-width: 31.25rem; }
#menu-page .drinks-heading > :last-child { margin-block-end: 0; }

#menu-page .drinks-layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr);
  gap: var(--space-5);
  align-items: stretch;
  margin-top: 3rem;
}

#menu-page .drinks-panel { min-width: 0; padding: var(--space-5); border: 1px solid var(--color-border-subtle); background: var(--color-graphite); }
#menu-page .drinks-panel > :last-child { margin-block-end: 0; }
#menu-page .drinks-panel__note { display: flex; min-width: 0; flex-direction: column; justify-content: center; border-top: 2px solid var(--color-copper); background: rgb(11 13 16 / 42%); }
#menu-page .drinks-panel__note > * { margin: 0; }

#menu-page .group-invitation { position: relative; overflow: hidden; background: var(--color-burgundy); }
#menu-page .group-invitation__layout { position: relative; z-index: 1; display: grid; min-width: 0; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 1fr; }
#menu-page .group-invitation__copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); max-width: 38.75rem; padding-left: calc(100% / 6); border-left: 1px solid var(--color-copper); }
#menu-page .group-invitation__copy > * { margin: 0; }
#menu-page .group-invitation__list { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
#menu-page .group-invitation__list li { min-width: 0; padding-top: var(--space-3); border-top: 1px solid rgb(243 235 221 / 28%); color: var(--color-muted-ivory); font-size: 0.875rem; }
#menu-page .group-invitation__list strong { display: block; margin-bottom: var(--space-2); color: var(--color-copper); font-size: 0.6875rem; letter-spacing: 0.12em; }

#menu-page .practical-panel { width: min(100%, 51.25rem); margin-inline: auto; padding: 3rem; border: 1px solid var(--color-border-subtle); background: rgb(29 32 37 / 80%); box-shadow: var(--shadow-card); }
#menu-page .practical-panel__copy { max-width: 42.5rem; }
#menu-page .practical-panel__copy > :last-child { margin-block-end: 0; }
#menu-page .practical-panel__links { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }

#menu-page .menu-final { position: relative; overflow: hidden; background: var(--color-black-marble); }
#menu-page .menu-final__content { position: relative; z-index: 1; display: flex; min-width: 0; width: min(100%, 47.5rem); flex-direction: column; align-items: center; gap: var(--space-5); margin-inline: auto; text-align: center; }
#menu-page .menu-final__content::before { width: 4rem; height: 1px; content: ""; background: var(--color-copper); }
#menu-page .menu-final__content > * { margin: 0; }
#menu-page .menu-final__content p { max-width: 38.75rem; color: var(--color-muted-ivory); }
#menu-page .menu-final__actions { display: flex; min-width: 0; flex-wrap: wrap; justify-content: center; gap: var(--space-4); }

@media (max-width: 74.9375rem) {
  #menu-page .menu-index__layout,
  #menu-page .menu-core__layout,
  #menu-page .wine-layout { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  #menu-page .menu-index__intro,
  #menu-page .menu-core__intro,
  #menu-page .wine-layout__intro { max-width: 30rem; }
  #menu-page .menu-core__lists { grid-template-columns: minmax(0, 1fr); }
  #menu-page .sharing-feature__layout { grid-template-columns: minmax(0, 1fr); }
  #menu-page .sharing-feature__copy { grid-column: 1; grid-row: 2; max-width: none; margin: 0; }
  #menu-page .sharing-feature__media { grid-column: 1; grid-row: 1; }
  #menu-page .signature-block,
  #menu-page .signature-block--reverse { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  #menu-page .signature-block--reverse .signature-block__intro,
  #menu-page .signature-block--reverse .signature-block__list { grid-column: 1; grid-row: auto; }
  #menu-page .signature-block__intro { max-width: 30rem; }
  #menu-page .dessert-bar__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  #menu-page .dessert-bar__image { grid-column: 1 / -1; grid-row: 1; width: min(100%, 30rem); }
  #menu-page .dessert-bar__desserts { grid-column: 1; grid-row: 2; }
  #menu-page .dessert-bar__cocktails { grid-column: 2; grid-row: 2; }
  #menu-page .drinks-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #menu-page .drinks-panel--soft { grid-column: 1 / -1; }
  #menu-page .drinks-panel--coffee { grid-column: 1; }
  #menu-page .drinks-panel__note { grid-column: 2; }
  #menu-page .group-invitation__layout { grid-template-columns: minmax(0, 1fr); }
  #menu-page .group-invitation__copy { padding-left: var(--space-5); }
}

@media (max-width: 61.1875rem) {
  #menu-page .menu-index__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #menu-page .dessert-bar__layout { grid-template-columns: minmax(0, 1fr); }
  #menu-page .dessert-bar__image,
  #menu-page .dessert-bar__desserts,
  #menu-page .dessert-bar__cocktails { grid-column: 1; grid-row: auto; width: 100%; }
  #menu-page .dessert-bar__image { width: min(100%, 26rem); }
}

@media (max-width: 53.75rem) {
  #menu-page .poker-recommendations__panel { width: 100%; margin-left: 0; }
  #menu-page .recommendation-grid { grid-template-columns: minmax(0, 1fr); }
  #menu-page .group-invitation__copy { max-width: 38.75rem; }
}

@media (max-width: 47.9375rem) {
  #menu-page .menu-hero { min-height: 31.875rem; }
  #menu-page .menu-hero__frame { inset: 1rem; }
  #menu-page .menu-hero__media::after { background: linear-gradient(0deg, rgb(11 13 16 / 93%) 0%, rgb(11 13 16 / 65%) 48%, rgb(11 13 16 / 12%) 100%); }
  #menu-page .menu-hero__media img { object-position: 72% 30%; }
  #menu-page .menu-hero__inner { display: block; padding-block: 5rem 2.5rem; }
  #menu-page .menu-hero__copy { max-width: 100%; }
  #menu-page .menu-hero__copy .lead { max-width: 29ch; }
  #menu-page .menu-index__links { grid-template-columns: minmax(0, 1fr); }
  #menu-page .menu-index__links a { min-height: 3.5rem; border-right: 0; }
  #menu-page .menu-item { grid-template-columns: minmax(0, 1fr) 4rem; gap: var(--space-2) var(--space-3); }
  #menu-page .menu-item__name { font-size: 1.4rem; }
  #menu-page .sharing-feature__copy,
  #menu-page .poker-recommendations__panel,
  #menu-page .practical-panel { padding: var(--space-5); }
  #menu-page .sharing-feature__tips,
  #menu-page .group-invitation__list { grid-template-columns: minmax(0, 1fr); }
  #menu-page .signature-block + .signature-block { margin-top: 4rem; }
  #menu-page .drinks-layout { grid-template-columns: minmax(0, 1fr); }
  #menu-page .drinks-panel--soft,
  #menu-page .drinks-panel--coffee,
  #menu-page .drinks-panel__note { grid-column: 1; }
  #menu-page .wine-row { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2) var(--space-3); }
  #menu-page .wine-row dt { grid-column: 1; grid-row: 1; }
  #menu-page .wine-row__price { grid-column: 2; grid-row: 1; }
  #menu-page .wine-row__description { grid-column: 1 / -1; grid-row: 2; }
  #menu-page .wine-note { margin-left: 0; }
  #menu-page .group-invitation__copy { padding-left: var(--space-4); }
  #menu-page .menu-final__actions { width: 100%; flex-direction: column; align-items: stretch; }
  #menu-page .menu-final__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  #menu-page .menu-index__links a::after,
  #menu-page .menu-text-link::after { transition: none; }
}
