.dining-page {
  overflow: clip;
}

.dining-page .section-title {
  margin-bottom: var(--space-4);
}

.dining-hero {
  position: relative;
  min-height: 35rem;
  isolation: isolate;
  background: var(--color-midnight);
  color: var(--color-porcelain);
}

.dining-hero__image,
.dining-hero__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dining-hero__image {
  object-fit: cover;
  object-position: center;
}

.dining-hero__shade {
  z-index: 1;
  background: rgb(16 45 59 / 68%);
}

.dining-hero__container {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 35rem;
  align-items: end;
  padding-block: var(--space-8);
}

.dining-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 1fr) minmax(17rem, 3fr) minmax(0, 1fr);
  align-items: end;
}

.dining-hero__copy {
  grid-column: 1 / span 1;
  min-width: 0;
}

.dining-hero__copy .eyebrow,
.dining-room-service .eyebrow {
  color: var(--color-pale-steel);
}

.dining-hero__copy .display-title {
  max-width: 11ch;
  color: var(--color-paper);
  font-size: clamp(3rem, 6.5vw, 4rem);
}

.dining-hero__standfirst {
  max-width: 58ch;
  margin-bottom: var(--space-5);
  color: var(--color-porcelain);
  font-size: var(--text-standfirst);
  line-height: 1.45;
}

.dining-route-link,
.dining-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-paper);
  font-size: var(--text-nav);
  font-weight: 700;
  letter-spacing: .03em;
}

.dining-route-link:hover,
.dining-text-link:hover {
  text-decoration-thickness: 2px;
}

.dining-hero__rail {
  grid-column: 3 / span 1;
  display: grid;
  min-width: 0;
  border-top: 1px solid rgb(220 232 236 / 60%);
  border-bottom: 1px solid rgb(220 232 236 / 60%);
  background: rgb(16 45 59 / 88%);
}

.dining-hero__fact {
  display: grid;
  min-width: 0;
  gap: var(--space-2);
  padding: var(--space-4);
  border-bottom: 1px solid rgb(220 232 236 / 25%);
}

.dining-hero__fact:last-child {
  border-bottom: 0;
}

.dining-hero__fact span,
.dining-fact-list span,
.dining-room-service__checks span {
  color: var(--color-pale-steel);
  font-size: var(--text-label);
  font-weight: 700;
  letter-spacing: .08em;
  line-height: var(--line-label);
  text-transform: uppercase;
}

.dining-hero__fact strong {
  color: var(--color-paper);
  font-size: .9375rem;
  line-height: 1.4;
}

.dining-rhythm__intro {
  width: min(100%, 68ch);
  min-width: 0;
}

.dining-rhythm__cards {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-6);
}

.dining-rhythm__cards::before {
  position: absolute;
  top: 1.25rem;
  right: 8%;
  left: 8%;
  height: 1px;
  background: var(--color-marine-teal);
  content: "";
}

.dining-rhythm__card {
  z-index: 1;
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-3);
  padding: var(--space-5);
  border-top: 3px solid var(--color-marine-teal);
  background: var(--color-paper);
}

.dining-rhythm__card--seated { grid-column: 1 / span 5; }
.dining-rhythm__card--flexible { grid-column: 6 / span 4; }
.dining-rhythm__card--spaces { grid-column: 10 / span 3; }

.dining-rhythm__card--spaces::after {
  width: .5rem;
  height: .5rem;
  align-self: start;
  border-radius: 50%;
  background: var(--color-coral);
  content: "";
}

.dining-number,
.dining-plan__steps span {
  display: inline-flex;
  width: 2.5rem;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  background: var(--color-midnight);
  color: var(--color-porcelain);
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.dining-rhythm__card h3,
.dining-casual-card h3,
.dining-social__module h3,
.dining-plan__steps h3 {
  margin-bottom: var(--space-3);
}

.dining-rhythm__card p,
.dining-main-room__prose p,
.dining-planning-note,
.dining-specialty__lead p,
.dining-observation p,
.dining-buffet__lead p,
.dining-casual-card p,
.dining-social__module p,
.dining-room-service__copy p,
.dining-comparison__lead p,
.dining-plan__lead p,
.dining-plan__steps p,
.dining-close__content p {
  margin-bottom: 0;
}

.dining-main-room__layout {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
}

.dining-main-room__media {
  grid-column: 1 / span 7;
  min-width: 0;
  aspect-ratio: 4 / 3;
}

.dining-main-room__media img,
.dining-specialty__media img,
.dining-buffet__media img {
  height: 100%;
}

.dining-main-room__media figcaption,
.dining-specialty__media figcaption,
.dining-buffet__media figcaption,
.dining-social__module--lounge figcaption {
  padding-top: var(--space-2);
}

.dining-main-room__content {
  grid-column: 8 / span 5;
  display: grid;
  min-width: 0;
  align-content: start;
  gap: var(--space-5);
}

.dining-main-room__prose {
  max-width: 50ch;
}

.dining-fact-list {
  display: grid;
  min-width: 0;
  border-top: var(--border-subtle);
}

.dining-fact-list > div {
  display: grid;
  min-width: 0;
  gap: var(--space-1);
  padding-block: var(--space-3);
  border-bottom: var(--border-subtle);
}

.dining-fact-list span { color: var(--color-slate); }
.dining-fact-list p { margin-bottom: 0; font-size: .9375rem; line-height: 1.45; }

.dining-planning-note {
  padding-left: var(--space-4);
  border-left: 3px solid var(--color-marine-teal);
  color: var(--color-midnight);
  font-size: 1rem;
  line-height: 1.55;
}

.dining-text-link { color: var(--color-deep-teal); }

.dining-specialty__lead {
  width: min(100%, 72ch);
  min-width: 0;
  margin-bottom: var(--space-6);
}

.dining-specialty__layout {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
}

.dining-specialty__media { grid-column: 1 / span 7; min-width: 0; aspect-ratio: 4 / 3; }
.dining-specialty__side { grid-column: 9 / span 4; display: grid; min-width: 0; align-content: start; gap: var(--space-4); }
.dining-observation,
.dining-checklist { display: grid; min-width: 0; gap: var(--space-3); }
.dining-checklist ul { margin: 0; }
.dining-checklist li + li { margin-top: var(--space-2); }

.dining-buffet__layout {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: start;
}

.dining-buffet__lead { grid-column: 1 / span 5; min-width: 0; max-width: 52ch; }
.dining-buffet__media { grid-column: 7 / span 6; min-width: 0; aspect-ratio: 4 / 3; }
.dining-buffet__annotations { grid-column: 7 / span 6; display: grid; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: var(--border-subtle); }
.dining-buffet__annotations > div { display: grid; min-width: 0; gap: var(--space-2); padding: var(--space-3); border-right: var(--border-subtle); }
.dining-buffet__annotations > div:last-child { border-right: 0; }
.dining-buffet__annotations span { color: var(--color-marine-teal); font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; line-height: 1; }
.dining-buffet__annotations p { margin-bottom: 0; font-size: .875rem; line-height: 1.45; }
.dining-casual-card { grid-column: 1 / span 5; display: grid; min-width: 0; gap: var(--space-3); }

.dining-social__intro {
  width: min(100%, 47.5rem);
  min-width: 0;
  margin-inline: auto;
  text-align: center;
}

.dining-social__intro .eyebrow { justify-content: center; }
.dining-social__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-6); }
.dining-social__module { display: grid; min-width: 0; align-content: start; gap: var(--space-3); }
.dining-social__module--cafe { grid-column: 1 / span 3; }
.dining-social__module--bar { grid-column: 4 / span 3; padding: var(--space-5); border-top: 3px solid var(--color-marine-teal); background: var(--color-paper); }
.dining-social__module--lounge { grid-column: 8 / span 5; grid-template-columns: minmax(0, 1fr); }
.dining-social__module--lounge figure { min-width: 0; margin: 0; }
.dining-social__module--lounge figure img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.dining-social__module--lounge > div { display: grid; min-width: 0; gap: var(--space-3); }
.dining-icon { display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border: 1px solid var(--color-marine-teal); color: var(--color-deep-teal); font-size: 1.25rem; }
.dining-consider { padding-top: var(--space-3); border-top: var(--border-subtle); color: var(--color-slate); font-size: .875rem; line-height: 1.45; }

.dining-room-service__layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); }
.dining-room-service__copy { grid-column: 1 / span 6; display: grid; min-width: 0; gap: var(--space-4); max-width: 58ch; }
.dining-room-service__copy .section-title { color: var(--color-paper); }
.dining-room-service__copy p { color: var(--color-porcelain); }
.dining-room-service__note { padding-left: var(--space-4); border-left: 3px solid var(--color-coral); font-size: 1rem; line-height: 1.55; }
.dining-room-service__checks { grid-column: 9 / span 4; display: grid; min-width: 0; border-top: 1px solid rgb(220 232 236 / 55%); }
.dining-room-service__checks > div { display: grid; min-width: 0; gap: var(--space-1); padding: var(--space-3) 0; border-bottom: 1px solid rgb(220 232 236 / 30%); }
.dining-room-service__checks p { margin: 0; color: var(--color-paper); font-size: .9375rem; line-height: 1.45; }
.dining-room-service__marker { grid-column: 12 / span 1; min-width: 0; border-left: 1px solid var(--color-marine-teal); }

.dining-comparison__lead { width: min(100%, 68ch); min-width: 0; }
.dining-scroll-hint { display: none; }
.dining-table-wrap { position: relative; margin-top: var(--space-5); }
.dining-table-wrap > table { min-width: 52.5rem; }
.dining-table-wrap th:first-child { width: 17%; }
.dining-table-wrap th:nth-child(2) { width: 24%; }
.dining-table-wrap th:nth-child(3) { width: 13%; }
.dining-table-wrap th:nth-child(4) { width: 24%; }
.dining-table-wrap th:nth-child(5) { width: 22%; }
.dining-table-wrap tbody th { color: var(--color-ink); font-size: .875rem; letter-spacing: 0; line-height: 1.35; text-transform: none; }
.dining-comparison__note { width: min(100%, 42.5rem); min-width: 0; margin-bottom: 0; padding-left: var(--space-4); border-left: 3px solid var(--color-marine-teal); color: var(--color-slate); font-size: var(--text-caption); line-height: var(--line-caption); }

.dining-plan__lead { width: min(100%, 65ch); min-width: 0; }
.dining-plan__steps { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-6); }
.dining-plan__steps::before { position: absolute; top: 1.25rem; right: 12%; left: 12%; height: 1px; background: var(--color-marine-teal); content: ""; }
.dining-plan__steps article { z-index: 1; display: grid; min-width: 0; align-content: start; gap: var(--space-3); padding: var(--space-4); background: var(--color-porcelain); }
.dining-plan__steps article:first-child span::before { position: absolute; width: .5rem; height: .5rem; margin-left: -2rem; border-radius: 50%; background: var(--color-coral); content: ""; }

.dining-close { border-top: var(--border-subtle); }
.dining-close__content { width: min(100%, 42.5rem); min-width: 0; margin-inline: auto; text-align: center; }
.dining-close__content .eyebrow { justify-content: center; }
.dining-close__links { display: flex; min-width: 0; justify-content: center; gap: var(--space-5); margin-top: var(--space-5); }
.dining-close__links a { display: inline-flex; min-height: 2.75rem; align-items: center; gap: var(--space-2); font-size: var(--text-nav); font-weight: 700; }

@media (max-width: 63.9375rem) {
  .dining-hero__layout { grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); gap: var(--space-5); }
  .dining-hero__copy { grid-column: 1 / span 1; }
  .dining-hero__rail { grid-column: 2 / span 1; }
  .dining-rhythm__cards { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .dining-rhythm__card--seated { grid-column: 1 / span 4; }
  .dining-rhythm__card--flexible { grid-column: 5 / span 4; }
  .dining-rhythm__card--spaces { grid-column: 1 / span 8; }
  .dining-main-room__layout,
  .dining-specialty__layout,
  .dining-buffet__layout,
  .dining-social__grid,
  .dining-room-service__layout { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .dining-main-room__media { grid-column: 1 / span 8; }
  .dining-main-room__content { grid-column: 1 / span 8; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); }
  .dining-main-room__prose,
  .dining-main-room__content > .dining-planning-note,
  .dining-main-room__content > .dining-text-link { grid-column: 1 / span 1; }
  .dining-fact-list { grid-column: 2 / span 1; }
  .dining-specialty__media { grid-column: 1 / span 8; }
  .dining-specialty__side { grid-column: 1 / span 8; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dining-buffet__lead { grid-column: 1 / span 4; }
  .dining-buffet__media { grid-column: 5 / span 4; }
  .dining-buffet__annotations { grid-column: 5 / span 4; }
  .dining-casual-card { grid-column: 1 / span 4; }
  .dining-social__module--cafe { grid-column: 1 / span 4; }
  .dining-social__module--bar { grid-column: 5 / span 4; }
  .dining-social__module--lounge { grid-column: 1 / span 8; grid-template-columns: minmax(0, 3fr) minmax(0, 5fr); align-items: start; }
  .dining-social__module--lounge > div { padding-top: 0; }
  .dining-room-service__copy { grid-column: 1 / span 8; }
  .dining-room-service__checks { grid-column: 1 / span 8; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-5); }
  .dining-room-service__marker { display: none; }
}

@media (max-width: 56.25rem) {
  .dining-hero { min-height: auto; padding-top: 56.25%; }
  .dining-hero__container { min-height: auto; padding-block: var(--space-6); }
  .dining-hero__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .dining-hero__copy,
  .dining-hero__rail { grid-column: 1 / span 1; }
  .dining-hero__rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dining-hero__fact { border-right: 1px solid rgb(220 232 236 / 25%); border-bottom: 0; }
  .dining-hero__fact:last-child { border-right: 0; }
  .dining-main-room__content { grid-template-columns: minmax(0, 1fr); }
  .dining-main-room__prose,
  .dining-main-room__content > .dining-planning-note,
  .dining-main-room__content > .dining-text-link,
  .dining-fact-list { grid-column: 1 / span 1; }
  .dining-buffet__layout { grid-template-columns: minmax(0, 1fr); }
  .dining-buffet__lead,
  .dining-buffet__media,
  .dining-buffet__annotations,
  .dining-casual-card { grid-column: 1 / span 1; }
  .dining-buffet__lead { max-width: 65ch; }
  .dining-plan__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dining-plan__steps article:last-child { grid-column: 1 / span 2; }
}

@media (max-width: 47.4375rem) {
  .dining-hero { padding-top: 75%; }
  .dining-hero__image { object-position: center; }
  .dining-hero__shade { background: linear-gradient(to bottom, rgb(16 45 59 / 18%) 0%, rgb(16 45 59 / 88%) 45%, rgb(16 45 59 / 96%) 100%); }
  .dining-hero__container { padding-block: var(--space-5); }
  .dining-hero__copy .display-title { max-width: 10ch; font-size: 2.25rem; }
  .dining-hero__standfirst { max-width: none; font-size: 1.125rem; }
  .dining-hero__rail { grid-template-columns: minmax(0, 1fr); }
  .dining-hero__fact { border-right: 0; border-bottom: 1px solid rgb(220 232 236 / 25%); }
  .dining-rhythm__cards,
  .dining-main-room__layout,
  .dining-specialty__layout,
  .dining-buffet__layout,
  .dining-social__grid,
  .dining-room-service__layout { grid-template-columns: minmax(0, 1fr); }
  .dining-rhythm__cards { gap: var(--space-4); }
  .dining-rhythm__cards::before { top: 2rem; right: auto; bottom: 2rem; left: 1.25rem; width: 1px; height: auto; }
  .dining-rhythm__card--seated,
  .dining-rhythm__card--flexible,
  .dining-rhythm__card--spaces,
  .dining-main-room__media,
  .dining-main-room__content,
  .dining-specialty__media,
  .dining-specialty__side,
  .dining-buffet__lead,
  .dining-buffet__media,
  .dining-buffet__annotations,
  .dining-casual-card,
  .dining-social__module--cafe,
  .dining-social__module--bar,
  .dining-social__module--lounge,
  .dining-room-service__copy,
  .dining-room-service__checks { grid-column: 1 / span 1; }
  .dining-rhythm__card { padding: var(--space-4); }
  .dining-main-room__content { gap: var(--space-4); }
  .dining-main-room__media,
  .dining-specialty__media,
  .dining-buffet__media { aspect-ratio: 4 / 3; }
  .dining-specialty__side { grid-template-columns: minmax(0, 1fr); }
  .dining-buffet__annotations { grid-template-columns: minmax(0, 1fr); }
  .dining-buffet__annotations > div { grid-template-columns: 2rem minmax(0, 1fr); border-right: 0; border-bottom: var(--border-subtle); }
  .dining-buffet__annotations > div:last-child { border-bottom: 0; }
  .dining-social__intro { width: 100%; margin-inline: 0; text-align: left; }
  .dining-social__intro .eyebrow { justify-content: flex-start; }
  .dining-social__module--lounge { grid-template-columns: minmax(0, 1fr); }
  .dining-room-service__checks { grid-template-columns: minmax(0, 1fr); }
  .dining-scroll-hint { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-4) 0 var(--space-2); color: var(--color-slate); font-size: var(--text-caption); }
  .dining-table-wrap::after { position: sticky; top: 0; right: 0; float: right; width: 2.5rem; height: 100%; margin-top: -20rem; background: linear-gradient(to right, transparent, rgb(245 247 246 / 90%)); content: ""; pointer-events: none; }
  .dining-table-wrap.is-at-end::after { display: none; }
  .dining-plan__steps { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .dining-plan__steps::before { top: 2rem; right: auto; bottom: 2rem; left: 2rem; width: 1px; height: auto; }
  .dining-plan__steps article,
  .dining-plan__steps article:last-child { grid-column: 1 / span 1; }
  .dining-close__content { width: 100%; margin-inline: 0; text-align: left; }
  .dining-close__content .eyebrow { justify-content: flex-start; }
  .dining-close__links { flex-direction: column; align-items: stretch; gap: 0; }
  .dining-close__links a { justify-content: space-between; border-bottom: var(--border-subtle); }
}

@media (max-width: 23.75rem) {
  .dining-rhythm__card { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .dining-page * { transition: none !important; }
}
