.dining-page {
  min-width: 0;
  padding-bottom: var(--space-16);
}

.dining-page :is(.dining-orientation__grid, .dining-guide-layout, .dining-room, .dining-location, .dining-casual__lower, .dining-continue, .dining-category-grid, .dining-zone-grid, .dining-checklist, .dining-method, .dining-location__legend) > * {
  min-width: 0;
}

.dining-orientation {
  border-block: var(--border-structural);
  background: var(--color-marine-900);
  padding-block: var(--space-8);
}

.dining-orientation__grid {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: var(--space-8);
  align-items: start;
}

.dining-orientation__meta {
  width: 100%;
  border-inline-start: 4px solid var(--color-amber-500);
  padding-inline-start: var(--space-4);
}

.dining-orientation__route {
  margin-bottom: var(--space-5);
  color: var(--color-silver-200);
  font-size: var(--text-small);
}

.dining-lenses {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: var(--border-structural);
}

.dining-lenses__item {
  width: 100%;
  border-bottom: var(--border-structural);
  padding-block: var(--space-3);
}

.dining-lenses__item span,
.dining-mini-facts span,
.dining-location__legend span {
  display: block;
  color: var(--color-white-100);
  font-family: var(--font-heading);
  font-size: var(--text-control);
  font-weight: var(--weight-semibold);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dining-lenses__item small { color: var(--color-silver-200); }

.dining-orientation__content {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.dining-orientation__content :is(h1, p) { margin: 0; }
.dining-orientation__content .lead { max-width: 70ch; }
.dining-orientation__action { margin-top: var(--space-2); }

.dining-guide-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: var(--space-8);
  align-items: start;
  padding-top: var(--space-12);
}

.dining-index {
  width: 100%;
  border: var(--border-structural);
  border-radius: var(--radius-standard);
  background: var(--color-marine-800);
}

.dining-index__toggle { display: none; width: 100%; justify-content: space-between; }
.dining-index__content { padding: var(--space-5); }
.dining-index__intro { color: var(--color-silver-200); font-size: var(--text-small); }
.dining-index__links { margin: 0; padding: 0; list-style: none; border-top: var(--border-structural); }
.dining-index__links li { border-bottom: var(--border-structural); }
.dining-index__links a { display: block; border-left: 3px solid transparent; padding: var(--space-3) var(--space-2); color: var(--color-silver-200); font-size: var(--text-small); text-decoration: none; }
.dining-index__links a:hover, .dining-index__links a.is-active { border-left-color: var(--color-amber-500); color: var(--color-white-100); }

.dining-guide-content { display: flex; min-width: 0; flex-direction: column; gap: var(--space-16); }
.dining-section { width: 100%; scroll-margin-top: var(--space-8); }
.dining-section > :last-child { margin-bottom: 0; }
.dining-section__intro { max-width: 68ch; }

.dining-method { display: grid; grid-template-columns: 4px minmax(0, 1fr); gap: var(--space-5); }
.dining-method__axis { width: 4px; background: var(--color-amber-500); }
.dining-method__copy { width: 100%; max-width: 68ch; }
.dining-method__copy :is(h2, p) { margin: 0; }
.dining-method__copy { display: flex; flex-direction: column; gap: var(--space-3); }

.dining-category-grid { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: var(--space-4); width: 100%; }
.dining-category-card { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: var(--space-3); border: var(--border-structural); border-radius: var(--radius-standard); background: var(--color-marine-800); padding: var(--space-5); }
.dining-category-card > * { margin: 0; }
.dining-category-card:hover { border-color: var(--color-steel-500); }
.dining-category-card h3 a { text-decoration: none; }
.dining-category-card h3 a:hover { text-decoration: underline; }
.dining-queue-line { display: flex; width: 100%; align-items: center; gap: var(--space-1); margin-top: auto; color: var(--color-silver-200); font-size: var(--text-meta); text-transform: uppercase; }
.dining-queue-line i { display: block; min-width: 12px; height: 1px; flex: 1 1 auto; background: var(--color-steel-500); }
.dining-mini-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin-top: auto; border-top: var(--border-structural); padding-top: var(--space-3); }
.dining-mini-facts small { color: var(--color-silver-200); font-size: var(--text-meta); line-height: var(--leading-small); }

.dining-room { display: grid; grid-template-columns: minmax(0, 55fr) minmax(340px, 45fr); gap: var(--space-8); align-items: start; }
.dining-room__copy { width: 100%; max-width: 70ch; }
.dining-room__figure { width: 100%; margin: 0; }
.dining-room__figure img, .dining-casual__figure img, .dining-lounges__figure img { width: 100%; border: var(--border-structural); border-radius: var(--radius-standard); object-fit: cover; }
.dining-room__figure img, .dining-lounges__figure img { aspect-ratio: 16 / 9; }
.dining-casual__figure img { aspect-ratio: 3 / 2; }
.dining-verify-list { display: flex; flex-direction: column; gap: 0; margin-top: var(--space-6); border-top: var(--border-structural); }
.dining-verify-list h3 { margin: var(--space-4) 0 0; }
.dining-verify-list > div { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: var(--space-3); border-bottom: var(--border-structural); padding-block: var(--space-3); }
.dining-verify-list span { color: var(--color-amber-500); font-size: var(--text-meta); font-weight: var(--weight-semibold); letter-spacing: .1em; text-transform: uppercase; }
.dining-verify-list p { margin: 0; }

.dining-comparison { padding: var(--space-6); }
.dining-comparison .eyebrow { color: var(--color-marine-900); }
.dining-comparison__intro { max-width: 72ch; }
.dining-comparison__scroll { position: relative; width: 100%; }
.dining-comparison__scroll table { min-width: 760px; color: var(--color-marine-950); }
.dining-comparison__scroll th { color: var(--color-marine-900); }
.dining-scroll-cue { display: none; margin-top: calc(var(--space-3) * -1); color: var(--color-marine-900); font-size: var(--text-small); }
.dining-comparison blockquote { margin-top: var(--space-5); margin-bottom: 0; color: var(--color-marine-900); }

.dining-location { display: grid; grid-template-columns: minmax(0, 42fr) minmax(520px, 58fr); gap: var(--space-8); align-items: start; }
.dining-location__copy { width: 100%; max-width: 62ch; }
.dining-cabin-note { margin-top: var(--space-6); border: var(--border-structural); border-radius: var(--radius-standard); background: var(--color-graphite-700); padding: var(--space-4); }
.dining-cabin-note :is(p) { margin: 0; }
.dining-cabin-note { display: flex; flex-direction: column; gap: var(--space-2); }
.dining-schematic-wrap { width: 100%; overflow-x: auto; border: var(--border-structural); border-radius: var(--radius-standard); background: var(--color-graphite-700); -webkit-overflow-scrolling: touch; }
.dining-schematic { position: relative; width: 100%; min-width: 520px; height: 330px; }
.dining-schematic__caption { position: absolute; top: var(--space-3); left: var(--space-3); margin: 0; color: var(--color-silver-200); font-size: var(--text-meta); letter-spacing: .08em; text-transform: uppercase; }
.dining-schematic__axis { position: absolute; top: 50%; right: 8%; left: 8%; height: 1px; background: var(--color-steel-500); }
.dining-schematic__node { position: absolute; z-index: 1; min-width: 116px; border: 1px solid var(--color-steel-500); border-radius: var(--radius-compact); background: var(--color-marine-800); padding: var(--space-2); color: var(--color-white-100); font-family: var(--font-heading); font-size: var(--text-control); font-weight: var(--weight-semibold); line-height: 1.2; text-align: center; }
.dining-schematic__node small { color: var(--color-silver-200); font-family: var(--font-body); font-size: 11px; font-weight: var(--weight-regular); }
.dining-schematic__node--core { top: 40%; left: 39%; border-color: var(--color-amber-500); }
.dining-schematic__node--dining { top: 18%; left: 10%; }
.dining-schematic__node--theatre { top: 68%; left: 17%; }
.dining-schematic__node--promenade { top: 17%; right: 8%; }
.dining-schematic__node--open { right: 16%; bottom: 12%; }
.dining-schematic__route { position: absolute; z-index: 0; height: 1px; transform-origin: left center; background: var(--color-steel-500); }
.dining-schematic__route--one { top: 42%; left: 24%; width: 17%; transform: rotate(24deg); }
.dining-schematic__route--two { top: 48%; left: 48%; width: 28%; transform: rotate(-21deg); }
.dining-schematic__route--three { top: 55%; left: 49%; width: 26%; transform: rotate(29deg); }
.dining-location__legend { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); width: 100%; border-top: var(--border-structural); padding-top: var(--space-4); }
.dining-location__legend p { margin: var(--space-1) 0 0; color: var(--color-silver-200); font-size: var(--text-small); }

.dining-casual__copy { max-width: 70ch; }
.dining-flow-steps { display: flex; flex-direction: column; gap: var(--space-2); }
.dining-flow-steps li { padding-left: var(--space-1); }
.dining-casual__lower { display: grid; grid-template-columns: minmax(380px, 60fr) minmax(260px, 40fr); gap: var(--space-6); align-items: start; }
.dining-casual__figure { grid-column: 1; width: 100%; margin: 0; }
.dining-weather-card { grid-column: 2; width: 100%; border: var(--border-structural); border-radius: var(--radius-standard); background: var(--color-marine-800); padding: var(--space-5); }
.dining-weather-card :is(h3, p) { margin: 0; }
.dining-weather-card { display: flex; flex-direction: column; gap: var(--space-3); }

.dining-lounges__intro { max-width: 68ch; }
.dining-zone-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); width: 100%; }
.dining-zone-grid article { width: 100%; border: var(--border-structural); border-radius: var(--radius-standard); background: var(--color-marine-800); padding: var(--space-5); }
.dining-zone-grid article > :last-child { margin-bottom: 0; }
.dining-comfort-card { width: 100%; max-width: 68ch; margin-top: var(--space-5); border-left: 4px solid var(--color-amber-500); background: var(--color-graphite-700); padding: var(--space-4) var(--space-5); }
.dining-comfort-card :is(p) { margin: 0; }
.dining-comfort-card { display: flex; flex-direction: column; gap: var(--space-2); }
.dining-lounges__figure { width: 100%; margin: var(--space-6) 0 0; }

.dining-planning { padding: var(--space-6); }
.dining-planning .eyebrow { color: var(--color-marine-900); }
.dining-planning__intro { max-width: 70ch; }
.dining-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-6); width: 100%; border-top: var(--border-light); }
.dining-checklist > div { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: var(--space-3); width: 100%; border-bottom: var(--border-light); padding-block: var(--space-4); }
.dining-checklist span { color: var(--color-marine-900); font-family: var(--font-heading); font-size: var(--text-module-title); font-weight: var(--weight-bold); }
.dining-checklist p { margin: 0; }
.dining-planning blockquote { margin-top: var(--space-6); margin-bottom: var(--space-4); color: var(--color-marine-900); }
.dining-return { color: var(--color-marine-900); font-size: var(--text-small); font-weight: var(--weight-semibold); }

.dining-faq-list { display: flex; flex-direction: column; gap: var(--space-3); width: 100%; }
.dining-faq-list article { width: 100%; border: var(--border-structural); border-radius: var(--radius-standard); background: var(--color-marine-900); }
.dining-faq-list h3 { margin: 0; }
.dining-faq-list button { display: flex; width: 100%; min-height: 0; justify-content: space-between; gap: var(--space-4); border: 0; border-radius: var(--radius-standard); background: transparent; color: var(--color-white-100); padding: var(--space-4) var(--space-5); text-align: left; }
.dining-faq-list button:hover { background: var(--color-marine-800); color: var(--color-white-100); }
.dining-faq-list button span { flex: 0 0 auto; color: var(--color-amber-500); font-size: 1.4rem; line-height: .8; }
.dining-faq-list button[aria-expanded="true"] span { transform: rotate(45deg); }
.dining-faq__answer { border-top: var(--border-structural); padding: var(--space-4) var(--space-5); }
.dining-faq__answer p { max-width: 68ch; margin: 0; }

.dining-continue { display: grid; grid-template-columns: minmax(0, 65fr) minmax(0, 35fr); gap: var(--space-6); border-top: 4px solid var(--color-amber-500); }
.dining-continue__copy { width: 100%; max-width: 62ch; }
.dining-continue__copy :is(h2, p) { margin: 0; }
.dining-continue__copy { display: flex; flex-direction: column; gap: var(--space-3); }
.dining-continue__links { display: flex; width: 100%; flex-direction: column; gap: 0; }
.dining-continue__links a { display: flex; width: 100%; flex-direction: column; gap: var(--space-1); border-bottom: var(--border-structural); padding-block: var(--space-3); font-weight: var(--weight-semibold); }
.dining-continue__links small { color: var(--color-silver-200); font-weight: var(--weight-regular); }

@media (max-width: 1100px) {
  .dining-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dining-location { grid-template-columns: minmax(0, 1fr); }
  .dining-location__copy { max-width: 68ch; }
}

@media (max-width: 960px) {
  .dining-orientation__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .dining-orientation__meta { display: grid; grid-template-columns: 1fr; }
  .dining-lenses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dining-lenses__item { border-right: var(--border-structural); padding: var(--space-3); }
  .dining-lenses__item:last-child { border-right: 0; }
  .dining-guide-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); padding-top: var(--space-8); }
  .dining-index__content { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--space-5); }
  .dining-index__content > .meta, .dining-index__content > .dining-index__intro { grid-column: 1; }
  .dining-index__links { grid-column: 2; grid-row: 1 / span 2; }
}

@media (max-width: 880px) {
  .dining-room { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .dining-room__copy { max-width: 70ch; }
}

@media (max-width: 820px) {
  .dining-casual__lower { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .dining-weather-card, .dining-casual__figure { grid-column: 1; }
  .dining-weather-card { grid-row: 1; }
  .dining-casual__figure { grid-row: 2; }
}

@media (max-width: 760px) {
  .dining-index__toggle { display: flex; }
  .dining-index__content { display: none; grid-template-columns: minmax(0, 1fr); padding: var(--space-4); }
  .dining-index.is-open .dining-index__content { display: grid; }
  .dining-index__content > .meta, .dining-index__content > .dining-index__intro, .dining-index__links { grid-column: 1; grid-row: auto; }
  .dining-index__links { width: 100%; }
  .dining-comparison, .dining-planning { padding: var(--space-5); }
  .dining-comparison__scroll.has-overflow::after, .dining-schematic-wrap.has-overflow::after { content: ""; position: sticky; right: 0; display: block; width: 48px; height: 100%; margin-left: auto; background: linear-gradient(90deg, transparent, rgba(7,19,31,.45)); pointer-events: none; }
  .dining-scroll-cue { display: block; }
  .dining-checklist { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
  .dining-continue { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 620px) {
  .dining-orientation { padding-block: var(--space-6); }
  .dining-lenses { grid-template-columns: minmax(0, 1fr); }
  .dining-lenses__item { border-right: 0; padding-inline: 0; }
  .dining-orientation__content h1 { font-size: 2rem; }
  .dining-category-grid, .dining-zone-grid, .dining-location__legend { grid-template-columns: minmax(0, 1fr); }
  .dining-category-card, .dining-zone-grid article { padding: var(--space-5); }
  .dining-mini-facts { grid-template-columns: minmax(0, 1fr); }
  .dining-verify-list > div { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
  .dining-location__legend { gap: var(--space-3); }
  .dining-faq-list button, .dining-faq__answer { padding-inline: var(--space-4); }
}

@media (max-width: 420px) {
  .dining-comparison, .dining-planning { padding: var(--space-4); }
  .dining-checklist > div { grid-template-columns: 34px minmax(0, 1fr); }
}
