.dining-page {
  overflow: clip;
}

.dining-page section[id] {
  scroll-margin-top: 7rem;
}

.dining-hero {
  padding-block: var(--space-5) var(--space-10);
}

.dining-hero__frame {
  position: relative;
  min-width: 0;
}

.dining-hero__media,
.dining-dish__media,
.dining-linger__media,
.dining-rooms__media,
.dining-lounge__media {
  overflow: hidden;
  margin: 0;
}

.dining-hero__media {
  height: min(46vw, 43rem);
  min-height: 38rem;
}

.dining-hero__media img,
.dining-dish__media img,
.dining-linger__media img,
.dining-rooms__media img,
.dining-lounge__media img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transition: transform var(--transition-surface);
}

.dining-hero__media img { object-position: 62% center; }
.dining-dish__media img { object-position: center; }
.dining-linger__media img { object-position: 36% center; }
.dining-rooms__media img { object-position: 64% center; }
.dining-lounge__media img { object-position: center; }

.dining-hero__frame:hover .dining-hero__media img,
.dining-dish__layout:hover .dining-dish__media img {
  transform: scale(1.02);
}

.dining-hero__panel {
  position: absolute;
  z-index: 1;
  bottom: -1.5rem;
  left: 0;
  display: flex;
  width: min(46%, 38.75rem);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-7);
  border: 1px solid var(--color-border-dark);
  background: var(--color-smoked-glass);
  box-shadow: var(--shadow-floating);
}

.dining-hero__panel .eyebrow,
.dining-hero__panel h1,
.dining-hero__panel p,
.dining-hero__panel .dining-hero__actions {
  margin: 0;
}

.dining-hero__lead { max-width: 38rem; font-size: var(--text-lead); line-height: var(--line-lead); }
.dining-hero__actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.dining-hero__actions > * { min-width: 0; }
.dining-hero__bridge { max-width: 28.75rem; padding-top: var(--space-4); border-top: 1px solid var(--color-muted-brass); color: var(--color-warm-linen); font-size: var(--text-meta); }

.dining-proposition__heading { width: min(58%, 38.75rem); min-width: 0; }
.dining-proposition__heading .eyebrow { margin-bottom: var(--space-4); }
.dining-proposition__columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); min-width: 0; margin-top: var(--space-7); }
.dining-proposition__column { min-width: 0; max-width: 20.625rem; }
.dining-proposition__column--offset { margin-top: var(--space-6); }
.dining-proposition__column .text-link { margin-top: var(--space-2); }

.dining-dish__layout { display: grid; grid-template-columns: minmax(0, 62fr) minmax(21rem, 38fr); align-items: end; min-width: 0; }
.dining-dish__media { grid-column: 1; grid-row: 1; height: 35rem; }
.dining-dish__panel { z-index: 1; display: flex; grid-column: 2; grid-row: 1; min-width: 0; flex-direction: column; gap: var(--space-5); margin-bottom: -2rem; margin-left: -2rem; padding: var(--space-7); border: 1px solid var(--color-border-light); }
.dining-dish__panel > * { min-width: 0; margin: 0; }
.dining-dish__copy { max-width: 25rem; }
.dining-dish__action-copy { display: flex; max-width: 18.75rem; min-width: 0; flex-direction: column; gap: var(--space-4); padding-top: var(--space-5); border-top: 1px solid rgba(36, 21, 34, 0.22); }
.dining-dish__action-copy > * { margin: 0; }

.dining-linger__layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto auto; gap: var(--space-6); min-width: 0; }
.dining-linger__media { grid-column: 1; grid-row: 1; height: 32rem; }
.dining-linger__content { display: flex; grid-column: 2; grid-row: 1; min-width: 0; flex-direction: column; gap: var(--space-5); }
.dining-linger__content > * { min-width: 0; margin: 0; }
.dining-linger__primary { align-self: flex-end; width: min(100%, 26.25rem); }
.dining-linger__secondary { align-self: flex-start; width: min(82%, 21.25rem); padding-top: var(--space-5); border-top-color: var(--color-muted-brass); }
.dining-linger__quote { grid-column: 1; grid-row: 2; max-width: 26.25rem; margin: 0; }

.dining-rooms__layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: start; min-width: 0; }
.dining-rooms__notes { min-width: 0; }
.dining-rooms__media { height: 39rem; margin-top: var(--space-8); }
.dining-rooms__note { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--space-4); min-width: 0; padding-top: var(--space-5); border-top: 1px solid var(--color-border-dark); }
.dining-rooms__note + .dining-rooms__note { margin-top: var(--space-5); }
.dining-rooms__number { color: var(--color-muted-brass); font-size: var(--text-utility); font-weight: 700; letter-spacing: var(--tracking-utility); }
.dining-rooms__note > div { min-width: 0; max-width: 21.875rem; }
.dining-rooms__note--teal .dining-rooms__number { color: var(--color-ocean-teal); }
.dining-rooms__note:hover .dining-rooms__number { color: var(--color-ember-red); }

.dining-terms { overflow: hidden; border-block: 1px solid var(--color-border-dark); background: var(--color-deep-teal); }
.dining-terms__track { display: flex; width: max-content; min-width: 100%; align-items: center; gap: var(--space-4); padding: var(--space-3) var(--gutter); color: var(--color-oat-cream); font-size: var(--text-utility); font-weight: 700; letter-spacing: var(--tracking-utility); line-height: 1.5; white-space: nowrap; }
.dining-terms__track span { color: var(--color-muted-brass); }
.dining-offline__heading { width: min(66.66%, 53.75rem); min-width: 0; }
.dining-offline__heading .lead { max-width: 53.75rem; }
.dining-offline__panels { display: grid; grid-template-columns: minmax(0, 58fr) minmax(21.25rem, 42fr); gap: var(--space-6); align-items: start; min-width: 0; margin-top: var(--space-7); }
.dining-offline__definition { min-width: 0; padding: var(--space-7); border: 1px solid rgba(239, 229, 210, 0.28); background: var(--color-deep-teal); }
.dining-offline__definition h3 { max-width: 26.25rem; font-size: clamp(2.3rem, 4vw, 4.25rem); }
.dining-offline__definition p { max-width: 26.25rem; margin-bottom: 0; }
.dining-offline__invitation { min-width: 0; margin-top: var(--space-6); }
.dining-offline__invitation p { max-width: 25rem; }
.dining-offline__invitation .button--teal { background: var(--color-ocean-teal); }

.dining-lounge__heading { width: min(60%, 38.75rem); min-width: 0; }
.dining-lounge__image-stage { position: relative; min-width: 0; margin-top: var(--space-7); }
.dining-lounge__media { height: 43rem; }
.dining-lounge__primary,
.dining-lounge__caption { position: absolute; bottom: -1.5rem; min-width: 0; }
.dining-lounge__primary { left: var(--space-6); width: min(42%, 31.25rem); padding: var(--space-6); border: 1px solid var(--color-border-light); }
.dining-lounge__primary p { max-width: 31.25rem; margin-bottom: 0; }
.dining-lounge__caption { right: var(--space-6); width: min(28%, 20rem); padding: var(--space-5); border: 1px solid var(--color-border-dark); background: var(--color-smoked-glass); }
.dining-lounge__caption h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
.dining-lounge__caption p { max-width: 20rem; margin-bottom: 0; }
.dining-lounge__continuation { display: flex; width: min(41.66%, 37.5rem); min-width: 0; flex-direction: column; gap: var(--space-4); margin-top: var(--space-8); margin-left: auto; }
.dining-lounge__continuation > * { margin: 0; }
.dining-reveal { opacity: 0; transform: translateY(1rem); transition: opacity var(--transition-surface), transform var(--transition-surface); }
.dining-reveal.is-revealed { opacity: 1; transform: none; }

.dining-holdem__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); min-width: 0; }
.dining-holdem__primary { min-width: 0; }
.dining-holdem__primary .lead { max-width: 33.75rem; }
.dining-holdem__side { display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); }
.dining-holdem__sessions { min-width: 0; }
.dining-holdem__sessions p { max-width: 24.375rem; }
.dining-holdem__cta { display: flex; width: min(100%, 24.375rem); min-width: 0; align-self: flex-end; flex-direction: column; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--color-border-dark); background: rgba(36, 21, 34, 0.45); transform: translateX(var(--space-5)); }
.dining-holdem__cta > * { margin: 0; }

.dining-paths__heading { width: min(60%, 38.75rem); min-width: 0; }
.dining-paths__grid { display: grid; grid-template-columns: minmax(0, 31fr) minmax(0, 31fr) minmax(0, 38fr); gap: var(--space-5); align-items: start; min-width: 0; margin-top: var(--space-7); }
.dining-paths__path { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-border-light); transition: border-color var(--transition-control), filter var(--transition-control); }
.dining-paths__path > * { margin: 0; }
.dining-paths__path p { max-width: 18.75rem; }
.dining-paths__path--menu { margin-top: var(--space-4); }
.dining-paths__path--lounge { margin-top: calc(var(--space-4) * -1); border-color: var(--color-border-dark); }
.dining-paths__path:hover { border-color: var(--color-muted-brass); filter: brightness(1.04); }
.dining-paths__path--lounge .button { align-self: flex-start; }

.dining-contact { padding-block: var(--space-9); }
.dining-contact > .container > .eyebrow { margin-bottom: var(--space-4); }
.dining-contact__panel { display: grid; grid-template-columns: minmax(0, 60fr) minmax(18.75rem, 40fr); min-width: 0; margin-top: var(--space-7); border: 1px solid var(--color-border-light); }
.dining-contact__invitation,
.dining-contact__reference { min-width: 0; padding: var(--space-7); }
.dining-contact__invitation p { max-width: 31.25rem; }
.dining-contact__reference { border-left: 1px solid var(--color-muted-brass); background: var(--color-warm-linen); }
.dining-contact__reference p { max-width: 22.5rem; }
.dining-contact__reference address { max-width: 22.5rem; font-weight: 700; }
.dining-contact__links { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); margin-top: var(--space-5); }
.dining-contact__links a { width: fit-content; max-width: 100%; color: var(--color-deep-teal); font-size: clamp(1rem, 2vw, 1.35rem); font-weight: 700; overflow-wrap: anywhere; }

@media (max-width: 980px) {
  .dining-hero__media { height: 38rem; }
  .dining-hero__panel { position: relative; bottom: auto; width: min(92%, 38.75rem); margin-top: -2rem; }
  .dining-lounge__primary { width: min(48%, 31.25rem); }
  .dining-lounge__caption { width: min(32%, 20rem); }
}

@media (max-width: 950px) {
  .dining-linger__layout { grid-template-columns: 1fr; grid-template-rows: auto; }
  .dining-linger__media,
  .dining-linger__content,
  .dining-linger__quote { grid-column: 1; grid-row: auto; }
  .dining-linger__media { height: 30rem; width: min(100%, 38rem); }
  .dining-linger__content { width: min(100%, 42rem); margin-left: auto; }
  .dining-linger__quote { margin-top: var(--space-2); }
}

@media (max-width: 920px) {
  .dining-rooms__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .dining-rooms__media { height: 32rem; margin-top: 0; }
  .dining-rooms__notes { display: contents; }
  .dining-rooms__notes > .eyebrow,
  .dining-rooms__notes > h2 { grid-column: 1; }
}

@media (max-width: 900px) {
  .dining-dish__layout { grid-template-columns: 1fr; }
  .dining-dish__media { grid-column: 1; grid-row: 1; height: 32rem; }
  .dining-dish__panel { grid-column: 1; grid-row: 2; width: min(92%, 40rem); margin: -1px 0 0 auto; }
}

@media (max-width: 880px) {
  .dining-proposition__heading,
  .dining-offline__heading { width: 100%; }
  .dining-proposition__columns { grid-template-columns: 1fr; gap: var(--space-5); }
  .dining-proposition__column { max-width: 32rem; padding-top: var(--space-5); border-top: 1px solid var(--color-border-light); }
  .dining-proposition__column--offset { margin-top: 0; transform: translateX(var(--space-3)); }
  .dining-offline__panels { grid-template-columns: 1fr; }
  .dining-offline__invitation { width: min(100%, 32rem); margin-top: 0; margin-left: auto; }
}

@media (max-width: 850px) {
  .dining-holdem__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .dining-holdem__side { width: min(100%, 34rem); }
  .dining-holdem__cta { align-self: flex-start; transform: translateX(var(--space-4)); }
}

@media (max-width: 780px) {
  .dining-contact__panel { grid-template-columns: 1fr; }
  .dining-contact__reference { border-top: 1px solid var(--color-muted-brass); border-left: 0; }
}

@media (max-width: 700px) {
  .dining-hero { padding-block: var(--space-4) var(--space-8); }
  .dining-hero__media { height: auto; aspect-ratio: 4 / 5; min-height: 0; }
  .dining-hero__media img { object-position: 56% center; }
  .dining-hero__panel { width: 100%; margin-top: -1px; padding: var(--space-5); }
  .dining-hero__panel h1 { font-size: clamp(2.75rem, 13vw, 3.875rem); }
  .dining-hero__actions { flex-direction: column; align-items: stretch; gap: var(--space-4); }
  .dining-hero__actions .button,
  .dining-hero__actions .text-link { width: 100%; min-height: 2.75rem; }

  .dining-proposition__heading,
  .dining-lounge__heading,
  .dining-paths__heading { width: 100%; }
  .dining-dish__media { height: auto; aspect-ratio: 4 / 5; }
  .dining-dish__panel { width: 100%; margin: -1px 0 0; padding: var(--space-5); }
  .dining-dish__copy,
  .dining-dish__action-copy { max-width: none; }

  .dining-linger__media { width: 100%; height: auto; aspect-ratio: 3 / 4; }
  .dining-linger__media img { object-position: 30% center; }
  .dining-linger__content { width: 100%; }
  .dining-linger__primary,
  .dining-linger__secondary { width: 100%; }
  .dining-linger__secondary { transform: translateX(var(--space-3)); }
  .dining-linger__quote { max-width: none; font-size: clamp(1.9rem, 9vw, 2.25rem); }

  .dining-rooms__media { height: auto; aspect-ratio: 4 / 5; order: -1; }
  .dining-rooms__media img { object-position: 62% center; }
  .dining-rooms__layout { display: flex; flex-direction: column; }
  .dining-rooms__notes { display: block; }
  .dining-rooms__note > div { max-width: none; }

  .dining-terms { overflow-x: auto; }
  .dining-terms__track { white-space: normal; flex-wrap: wrap; }
  .dining-offline__definition,
  .dining-offline__invitation { padding: var(--space-5); }
  .dining-offline__definition h3 { font-size: clamp(1.9rem, 9vw, 2.25rem); }
  .dining-offline__invitation { width: 100%; margin-left: var(--space-3); }

  .dining-lounge__image-stage { display: flex; flex-direction: column; gap: 0; }
  .dining-lounge__media { height: auto; aspect-ratio: 4 / 5; }
  .dining-lounge__media img { object-position: 55% center; }
  .dining-lounge__primary,
  .dining-lounge__caption { position: static; width: 100%; }
  .dining-lounge__primary { padding: var(--space-5); }
  .dining-lounge__caption { padding: var(--space-5); background: var(--color-aubergine-velvet); transform: translateX(var(--space-3)); }
  .dining-lounge__continuation { width: 100%; margin-top: var(--space-6); margin-left: 0; }

  .dining-holdem__side { width: 100%; }
  .dining-holdem__cta { width: 100%; transform: translateX(var(--space-3)); }
  .dining-holdem__cta .button { width: 100%; min-height: 3rem; }

  .dining-paths__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .dining-paths__path--menu,
  .dining-paths__path--lounge { margin-top: 0; }
  .dining-paths__path--menu { transform: translateX(var(--space-3)); }
  .dining-paths__path--lounge { transform: translateX(calc(var(--space-3) * -1)); }
  .dining-paths__path--lounge .button { width: 100%; min-height: 3rem; }

  .dining-contact { padding-block: var(--space-8); }
  .dining-contact__panel { margin-top: var(--space-6); }
  .dining-contact__invitation,
  .dining-contact__reference { padding: var(--space-5); }
}

@media (prefers-reduced-motion: reduce) {
  .dining-reveal { opacity: 1; transform: none; }
  .dining-hero__frame:hover .dining-hero__media img,
  .dining-dish__layout:hover .dining-dish__media img { transform: none; }
}
