#food-menu-page {
  position: relative;
  overflow: hidden;
  background: var(--color-coal-950);
}

#food-menu-page::before {
  position: fixed;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  content: "";
  opacity: 0.035;
  background-image: radial-gradient(var(--color-ash-50) 0.65px, transparent 0.8px);
  background-size: 7px 7px;
}

#food-menu-page > * { position: relative; z-index: 1; }
#food-menu-page .section { overflow: clip; }
#food-menu-page .section-marker { display: inline-block; }
#food-menu-page .fm-image-button { display: block; width: 100%; padding: 0; color: inherit; cursor: zoom-in; }
#food-menu-page .fm-image-button:focus-visible { box-shadow: var(--focus-ring); }
#food-menu-page .fm-image-button img { width: 100%; height: 100%; }

.fm-hero { padding-top: clamp(3rem, 8vw, 6rem); }
.fm-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr); align-items: center; gap: var(--space-5); }
.fm-hero__copy { grid-column: 1 / span 1; min-width: 0; max-width: 42ch; }
.fm-hero__visual { grid-column: 3 / span 1; min-width: 0; margin: 0; }
.fm-hero__lead { max-width: 42ch; padding: var(--space-4); background: var(--color-asphalt-900); border-left: 2px solid var(--color-oxide-orange); }
.fm-hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); min-width: 0; }
.fm-hero__booking { box-shadow: var(--shadow-hard); }
.fm-hero__location { max-width: 38ch; margin: 0; color: var(--color-ash-50); font-size: var(--text-small); }
.fm-hero__caption { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-4); color: var(--color-ash-300); font-size: var(--text-small); }

.fm-focus__layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 5fr); gap: var(--space-5); }
.fm-focus__intro { grid-column: 1 / span 1; min-width: 0; padding: var(--panel-padding); background: var(--color-ash-50); color: var(--color-coal-950); border: 1px solid var(--color-ash-50); }
.fm-focus__intro h2, .fm-focus__intro p { color: var(--color-coal-950); }
.fm-focus__intro p { max-width: 60ch; margin-bottom: 0; }
.fm-focus__annotation { grid-column: 2 / span 1; align-self: end; min-width: 0; color: var(--color-ash-300); font-family: var(--font-heading); font-size: clamp(2rem, 5vw, 4rem); font-weight: 900; line-height: .78; text-align: right; opacity: .45; }
.fm-montage { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); align-items: end; gap: var(--space-5); min-width: 0; margin-top: var(--space-4); }
.fm-montage__item { min-width: 0; margin: 0; }
.fm-montage__item--detail { transform: translateY(calc(var(--space-5) * -1)); }
.fm-montage figcaption { max-width: 34ch; margin-top: var(--space-4); color: var(--color-ash-300); font-size: var(--text-small); }
.fm-montage figcaption strong { color: var(--color-ash-50); font-size: var(--text-body); }
.fm-registration { display: block; width: 3rem; height: 3px; margin-bottom: var(--space-2); background: var(--color-oxide-orange); }
.fm-flash-label { display: block; margin-bottom: var(--space-2); color: var(--color-signal-yellow); font-family: var(--font-heading); font-size: var(--text-small); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.fm-menu-reading__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-6); }
.fm-menu-reading__rail { grid-column: 1; min-width: 0; max-width: 760px; }
.fm-menu-reading__lead { max-width: 58ch; font-size: var(--text-lead); }
.fm-menu-reading__stencil { grid-column: 2; min-width: 0; align-self: center; color: transparent; font-family: var(--font-heading); font-size: clamp(4rem, 10vw, 8rem); font-weight: 900; line-height: .72; -webkit-text-stroke: 1px var(--color-ink-line); text-align: right; user-select: none; }
.fm-menu-reading__stencil span { color: var(--color-oxide-orange); -webkit-text-stroke: 0; }
.fm-menu-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); min-width: 0; }
.fm-menu-note { min-width: 0; padding: var(--panel-padding); border: var(--border-default); background: var(--color-asphalt-900); }
.fm-menu-note--table { border-left: 3px solid var(--color-oxide-orange); }
.fm-menu-note--dietary { background: var(--color-asphalt-800); }
.fm-menu-note--current { grid-column: 1 / -1; max-width: 52ch; background: var(--color-ash-50); color: var(--color-coal-950); }
.fm-menu-note--current h3, .fm-menu-note--current p { color: var(--color-coal-950); }
.fm-menu-note p { max-width: 52ch; margin-bottom: 0; }
.fm-menu-note__yellow { display: block; margin: calc(var(--panel-padding) * -1) calc(var(--panel-padding) * -1) var(--space-4); padding: var(--space-2) var(--space-3); background: var(--color-signal-yellow); color: var(--color-coal-950); font-family: var(--font-heading); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }

.fm-middle__heading { max-width: 18ch; }
.fm-middle__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); min-width: 0; }
.fm-occasion { position: relative; min-width: 0; padding: var(--panel-padding); border: var(--border-default); background: var(--color-asphalt-900); }
.fm-occasion h3 { max-width: 20ch; }
.fm-occasion p { max-width: 42ch; margin-bottom: 0; }
.fm-occasion--catchup { border-top: 3px solid var(--color-oxide-orange); }
.fm-occasion--group { background: var(--color-ash-50); color: var(--color-coal-950); }
.fm-occasion--group h3, .fm-occasion--group p { color: var(--color-coal-950); }
.fm-corner-stamp { display: inline-block; margin-bottom: var(--space-3); color: var(--color-oxide-orange); font-family: var(--font-heading); font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.fm-night-label { display: inline-block; margin: calc(var(--panel-padding) * -1) calc(var(--panel-padding) * -1) var(--space-4); padding: var(--space-2) var(--space-3); background: var(--color-signal-yellow); color: var(--color-coal-950); font-family: var(--font-heading); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.fm-tableside__wrap { position: relative; min-width: 0; }
.fm-tableside__image { margin: 0; min-width: 0; }
.fm-tableside__panel { position: absolute; left: var(--space-6); bottom: var(--space-6); display: flex; width: min(42%, 31rem); min-width: 330px; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--panel-padding); border: var(--border-default); background: var(--color-asphalt-900); }
.fm-tableside__panel > * { min-width: 0; margin: 0; }
.fm-tableside__panel p { max-width: 50ch; }
.fm-tableside__action { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); width: 100%; min-width: 0; padding-top: var(--space-4); border-top: var(--border-default); }
.fm-tableside__action p { max-width: 26ch; color: var(--color-ash-300); font-size: var(--text-small); }

.fm-room__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: var(--space-6); }
.fm-room__image, .fm-room__rail { min-width: 0; margin: 0; }
.fm-room__description { max-width: 54ch; }
.fm-room__support { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); margin-top: var(--space-6); padding: var(--panel-padding); border: var(--border-default); background: var(--color-asphalt-800); transform: translateY(var(--space-5)); }
.fm-room__support > * { min-width: 0; margin: 0; }
.fm-room__support p { max-width: 46ch; }
.fm-room__inperson { padding: var(--space-1) var(--space-2); background: var(--color-signal-yellow); color: var(--color-coal-950); font-family: var(--font-heading); font-size: var(--text-small); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.fm-address-strip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-top: var(--space-7); padding: var(--space-3); border: 1px solid var(--color-ash-50); background: var(--color-ash-50); color: var(--color-coal-950); font-size: var(--text-small); }
.fm-address-strip a { color: var(--color-oxide-orange); font-weight: 600; }

.fm-faq__inner { width: min(760px, var(--container-inline)); margin-inline: auto; }
.fm-faq__lead { max-width: 62ch; }
.fm-accordion { border-top: var(--border-default); }
.fm-accordion__item { border-bottom: var(--border-default); background: var(--color-asphalt-900); }
.fm-accordion__item h3 { margin: 0; }
.fm-accordion__trigger { display: flex; width: 100%; min-width: 0; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); background: transparent; color: var(--color-ash-50); font-family: var(--font-heading); font-size: var(--text-lead); font-weight: 800; letter-spacing: -.01em; line-height: 1; text-align: left; text-transform: uppercase; }
.fm-accordion__trigger > span:first-child { min-width: 0; }
.fm-accordion__trigger:hover { color: var(--color-signal-yellow); }
.fm-accordion__symbol { flex: 0 0 auto; color: var(--color-signal-yellow); font-family: var(--font-body); font-size: 1.5rem; }
.fm-accordion__panel { max-width: 64ch; padding: 0 var(--space-4) var(--space-5); color: var(--color-ash-300); }
.fm-accordion__panel p:last-child { margin-bottom: 0; }
.fm-faq__boundary { padding: var(--space-3); background: var(--color-signal-yellow); color: var(--color-coal-950); font-weight: 600; }

.fm-last-look__safe { overflow: clip; }
.fm-last-look__grid { display: grid; grid-template-columns: minmax(0, 9fr) minmax(0, 3fr); align-items: end; gap: var(--space-5); min-width: 0; }
.fm-last-look__image { min-width: 0; margin: 0; }
.fm-last-look__caption { min-width: 0; padding: var(--panel-padding); border: 1px solid var(--color-ash-50); background: var(--color-ash-50); color: var(--color-coal-950); }
.fm-last-look__caption h2, .fm-last-look__caption p { color: var(--color-coal-950); }
.fm-last-look__caption p { max-width: 44ch; margin-bottom: 0; }

.fm-booking__panel { display: flex; width: min(58.333%, 760px); min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-inline: auto; padding: var(--panel-padding); border: var(--border-default); background: var(--color-asphalt-900); box-shadow: var(--shadow-hard); }
.fm-booking__panel > * { min-width: 0; margin: 0; }
.fm-booking__panel p { max-width: 56ch; }
.fm-booking__button { box-shadow: 4px 4px 0 var(--color-rust-deep); }
.fm-booking__channels { display: flex; width: 100%; min-width: 0; flex-direction: column; border-top: var(--border-default); }
.fm-booking__channels a { display: flex; min-width: 0; min-height: 2.75rem; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: var(--border-default); color: var(--color-ash-50); font-size: var(--text-small); text-decoration: none; }
.fm-booking__channels a:hover { color: var(--color-signal-yellow); transform: translateX(2px); }
.fm-booking__channels span { flex: 0 0 auto; color: var(--color-ash-300); }

.fm-boundary { padding-top: 0; }
.fm-boundary__notice { width: min(66.666%, 60rem); margin-inline: auto; padding: var(--panel-padding); border: 1px solid var(--color-coal-950); background: var(--color-signal-yellow); color: var(--color-coal-950); }
.fm-boundary__notice h2, .fm-boundary__notice p { color: var(--color-coal-950); }
.fm-boundary__notice p { max-width: 62ch; margin-bottom: 0; }
.fm-boundary__notice a { color: var(--color-rust-deep); font-weight: 600; }

.fm-lightbox[hidden] { display: none; }
.fm-lightbox { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: var(--gutter); }
.fm-lightbox__backdrop { position: absolute; inset: 0; background: rgba(16, 16, 15, .92); }
.fm-lightbox__dialog { position: relative; display: grid; width: min(100%, 70rem); max-height: calc(100vh - (var(--gutter) * 2)); grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; overflow: auto; border: var(--border-strong); background: var(--color-asphalt-900); outline: none; }
.fm-lightbox__controls { display: flex; justify-content: flex-end; padding: var(--space-3); }
.fm-lightbox__close, .fm-lightbox__nav button { min-height: 2.75rem; border: 1px solid var(--color-ash-50); background: transparent; color: var(--color-ash-50); padding: var(--space-2) var(--space-3); font-family: var(--font-heading); font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.fm-lightbox__close:hover, .fm-lightbox__nav button:hover { border-color: var(--color-signal-yellow); color: var(--color-signal-yellow); }
.fm-lightbox__image { width: 100%; max-height: min(65vh, 44rem); object-fit: contain; }
.fm-lightbox__footer { display: flex; min-width: 0; align-items: end; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); }
.fm-lightbox__footer h2 { margin-bottom: var(--space-2); font-size: var(--text-card-title); }
.fm-lightbox__footer p { max-width: 60ch; margin: 0; color: var(--color-ash-300); font-size: var(--text-small); }
.fm-lightbox__nav { display: flex; flex: 0 0 auto; gap: var(--space-2); }

@media (max-width: 56.25rem) {
  .fm-hero__grid { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: var(--space-5); }
  .fm-hero__copy { grid-column: 1; }
  .fm-hero__visual { grid-column: 2; }
  .fm-focus__layout { grid-template-columns: minmax(0, 60fr) minmax(0, 40fr); }
  .fm-focus__annotation { display: none; }
  .fm-montage { grid-template-columns: minmax(0, 60fr) minmax(0, 40fr); }
  .fm-montage__item--hands { grid-column: 1 / -1; }
  .fm-menu-reading__grid { grid-template-columns: 1fr; }
  .fm-menu-reading__rail { max-width: none; }
  .fm-menu-reading__stencil { display: none; }
  .fm-menu-notes { grid-template-columns: 1fr; }
  .fm-menu-note--current { grid-column: auto; max-width: none; }
  .fm-middle__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-occasion--night { grid-column: 1 / -1; }
  .fm-room__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
  .fm-last-look__grid { grid-template-columns: 1fr; }
  .fm-last-look__caption { width: 100%; }
  .fm-booking__panel, .fm-boundary__notice { width: 100%; }
}

@media (max-width: 51.25rem) {
  .fm-tableside__panel { position: static; display: flex; width: 100%; min-width: 0; margin-top: var(--space-5); }
}

@media (max-width: 47.5rem) {
  .fm-hero__grid, .fm-focus__layout, .fm-montage, .fm-room__grid { grid-template-columns: 1fr; }
  .fm-hero__visual { grid-column: 1; grid-row: 1; }
  .fm-hero__copy { grid-column: 1; grid-row: 2; max-width: none; }
  .fm-hero__lead { max-width: 34ch; }
  .fm-hero__booking { width: 100%; }
  .fm-focus__intro { grid-column: 1; }
  .fm-montage { grid-column: 1; gap: var(--space-6); }
  .fm-montage__item, .fm-montage__item--hands { grid-column: 1; }
  .fm-montage__item--detail { transform: none; }
  .fm-montage figcaption { max-width: none; }
  .fm-middle__cards { grid-template-columns: 1fr; }
  .fm-occasion--night { grid-column: auto; }
  .fm-tableside__panel { padding: var(--space-4); }
  .fm-room__image { grid-column: 1; grid-row: 1; }
  .fm-room__rail { grid-column: 1; grid-row: 2; }
  .fm-room__support { transform: none; }
  .fm-address-strip { align-items: flex-start; flex-direction: column; }
  .fm-accordion__trigger { min-height: 3.5rem; padding: var(--space-4); }
  .fm-last-look__caption { padding: var(--space-4); }
  .fm-booking__panel { padding: var(--space-5); }
  .fm-booking__button { width: 100%; min-height: 3rem; }
  .fm-booking__channels a { min-height: 3rem; align-items: flex-start; flex-direction: column; justify-content: center; gap: var(--space-1); }
  .fm-boundary__notice { padding: var(--space-4); }
  .fm-lightbox { padding: var(--space-3); }
  .fm-lightbox__footer { align-items: stretch; flex-direction: column; }
  .fm-lightbox__nav { width: 100%; }
  .fm-lightbox__nav button { flex: 1 1 0; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .fm-montage__item--detail, .fm-room__support { transform: none; }
}
