.cabins-page {
  overflow: hidden;
}

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

.cabins-hero {
  background: var(--color-midnight);
  color: var(--color-porcelain);
  padding-block: var(--space-6);
}

.cabins-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: stretch;
  gap: var(--space-5);
}

.cabins-hero__content,
.cabins-hero__media,
.cabins-layout__media,
.cabins-layout__reading,
.cabins-layout__rail,
.cabins-outlook__comparison,
.cabins-outlook__media,
.cabins-casino__content,
.cabins-casino__caveat {
  min-width: 0;
}

.cabins-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: var(--space-7);
  border-left: 1px solid rgb(185 203 209 / 45%);
  position: relative;
}

.cabins-hero__content::after {
  position: absolute;
  top: 2rem;
  right: -2.5rem;
  width: 2.5rem;
  height: 1px;
  background: var(--color-marine-teal);
  content: "";
  z-index: 2;
}

.cabins-hero__content > * { margin: 0; }
.cabins-hero .eyebrow { color: var(--color-pale-steel); }
.cabins-hero .display-title { color: var(--color-porcelain); font-size: clamp(3.25rem, 6vw, 4rem); }
.cabins-hero__standfirst { max-width: 58ch; color: var(--color-pale-steel); font-size: var(--text-standfirst); line-height: 1.45; }

.cabins-hero__media { min-height: 29rem; border-radius: var(--radius-sm); position: relative; }
.cabins-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.cabins-hero__media figcaption { position: absolute; right: 0; bottom: 0; max-width: 27rem; padding: var(--space-3); background: rgb(16 45 59 / 84%); color: var(--color-porcelain); font-size: var(--text-caption); line-height: var(--line-caption); }

.cabins-hero__decisions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgb(185 203 209 / 50%); }
.cabins-hero__decisions > div { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--space-2); row-gap: var(--space-1); min-width: 0; padding: var(--space-3) var(--space-3) 0 0; }
.cabins-hero__decisions > div + div { border-left: 1px solid rgb(185 203 209 / 50%); padding-left: var(--space-3); }
.cabins-hero__decisions span { grid-row: span 2; color: var(--color-marine-teal); font-family: var(--font-heading); font-size: 1.75rem; font-weight: 700; line-height: 1; }
.cabins-hero__decisions strong { font-size: 0.875rem; }
.cabins-hero__decisions small { color: var(--color-pale-steel); }

.cabins-types__intro { max-width: 62ch; margin-bottom: var(--space-6); }
.cabins-types__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); align-items: stretch; }
.cabins-type { display: grid; grid-template-columns: 3.75rem minmax(0, 1fr); min-width: 0; border: var(--border-subtle); background: var(--color-paper); }
.cabins-type__marker { display: flex; align-items: flex-start; justify-content: center; min-width: 3.75rem; padding-top: var(--space-4); background: var(--color-midnight); color: var(--color-porcelain); font-family: var(--font-heading); font-size: 2rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.cabins-type__copy { min-width: 0; padding: var(--space-5); }
.cabins-type__copy > :last-child { margin-bottom: 0; }
.cabins-type h3 { margin-bottom: var(--space-3); font-family: var(--font-heading); font-size: var(--text-card-title); line-height: 1.05; }
.cabins-type h3 a { color: var(--color-ink); }
.cabins-type p { max-width: 62ch; }
.cabins-type ul { margin-bottom: 0; font-size: var(--text-caption); }
.cabins-type--interior { grid-column: span 3; }
.cabins-type--view { grid-column: span 3; background: var(--color-pale-steel); }
.cabins-type--balcony { grid-column: span 6; background: var(--color-pale-steel); border-top: 3px solid var(--color-marine-teal); }
.cabins-type--family, .cabins-type--mini, .cabins-type--premium { grid-column: span 4; }
.cabins-type--premium { background: var(--color-midnight); border-color: var(--color-midnight); color: var(--color-porcelain); }
.cabins-type--premium h3 a, .cabins-type--premium .technical-label { color: var(--color-porcelain); }
.cabins-type--premium .cabins-type__marker { background: var(--color-deep-teal); }
.cabins-type__window { width: 4rem; height: 4rem; margin-top: var(--space-4); border: 4px solid var(--color-marine-teal); border-radius: 50%; position: relative; }
.cabins-type__window::before, .cabins-type__window::after { position: absolute; background: var(--color-marine-teal); content: ""; }
.cabins-type__window::before { top: 50%; left: 0; width: 100%; height: 1px; }
.cabins-type__window::after { left: 50%; top: 0; width: 1px; height: 100%; }
.cabins-type__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); margin-top: var(--space-4); border-top: 1px solid var(--color-line-steel); padding-top: var(--space-3); font-size: var(--text-caption); font-weight: 700; }
.cabins-type__schematic, .cabins-type__plan { display: grid; gap: var(--space-1); margin-top: var(--space-4); }
.cabins-type__schematic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cabins-type__schematic span { padding: var(--space-2); border: 1px solid var(--color-marine-teal); color: var(--color-deep-teal); font-size: var(--text-label); font-weight: 700; text-align: center; text-transform: uppercase; }
.cabins-type__plan { grid-template-columns: 2fr 1fr; height: 2.75rem; }
.cabins-type__plan span { border: 1px solid var(--color-marine-teal); }
.cabins-type__verify { border-left: 3px solid var(--color-coral); padding-left: var(--space-3); color: var(--color-pale-steel); font-size: var(--text-caption); font-weight: 700; }

.cabins-layout__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 5fr) minmax(10rem, 2fr); gap: var(--space-5); align-items: start; }
.cabins-layout__media { aspect-ratio: 3 / 2; }
.cabins-layout__media img { width: 100%; height: 100%; object-fit: cover; }
.cabins-layout__media figcaption, .cabins-outlook__media figcaption { padding-top: var(--space-2); color: var(--color-slate); font-size: var(--text-caption); line-height: var(--line-caption); }
.cabins-layout__reading { max-width: 72ch; }
.cabins-layout__route { display: grid; gap: var(--space-3); padding-left: 2rem; }
.cabins-layout__route li { padding-left: var(--space-2); }
.cabins-layout__rail { display: flex; flex-direction: column; gap: var(--space-4); border-left: 1px solid var(--color-marine-teal); padding-left: var(--space-4); }
.cabins-layout__rail > div { min-width: 0; border-bottom: 1px solid var(--color-line-steel); padding-bottom: var(--space-3); }
.cabins-layout__rail p { margin: 0; font-size: var(--text-caption); }
.cabins-layout__rail .technical-label { margin-bottom: var(--space-2); }

.cabins-outlook__top { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.cabins-outlook__comparison { max-width: 65ch; }
.cabins-outlook__steps { display: grid; gap: var(--space-3); }
.cabins-outlook__steps > div { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); column-gap: var(--space-3); border-left: 1px solid var(--color-line-steel); padding-left: var(--space-3); }
.cabins-outlook__steps b { grid-row: span 2; color: var(--color-marine-teal); font-family: var(--font-heading); font-size: 1.75rem; line-height: 1; }
.cabins-outlook__steps strong { font-size: 0.875rem; }
.cabins-outlook__steps p { grid-column: 2; margin: 0; }
.cabins-outlook__media { aspect-ratio: 3 / 2; }
.cabins-outlook__media img { width: 100%; height: 100%; object-fit: cover; }
.cabins-outlook__panels { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-5); margin-top: var(--space-6); }
.cabins-outlook__panels > article { min-width: 0; padding: var(--space-5); border-top: 3px solid var(--color-marine-teal); background: var(--color-paper); }
.cabins-outlook__panels > article > :last-child { margin-bottom: 0; }

.cabins-location__intro { max-width: 65ch; margin-bottom: var(--space-6); }
.cabins-location__route-map { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); padding: var(--space-5); border: var(--border-subtle); background: var(--color-paper); position: relative; }
.cabins-location__route-map::before { position: absolute; top: 3.4rem; left: 12%; right: 12%; height: 1px; background: var(--color-marine-teal); content: ""; }
.cabins-location__route-map > div { position: relative; z-index: 1; min-width: 0; }
.cabins-location__route-map span { display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; margin-bottom: var(--space-3); border: 1px solid var(--color-marine-teal); background: var(--color-paper); color: var(--color-deep-teal); font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; }
.cabins-location__route-map strong { display: block; margin-bottom: var(--space-2); }
.cabins-location__route-map p { margin: 0; font-size: var(--text-caption); }
.cabins-location__lower { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-5); margin-top: var(--space-5); }
.cabins-location__scenarios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.cabins-location__scenarios > article, .cabins-location__tradeoff { min-width: 0; padding: var(--space-4); border: var(--border-subtle); background: var(--color-paper); }
.cabins-location__scenarios > article > :last-child, .cabins-location__tradeoff > :last-child { margin-bottom: 0; }
.cabins-location__tradeoff { display: flex; flex-direction: column; gap: var(--space-3); border-top: 3px solid var(--color-coral); }
.cabins-location__tradeoff > * { margin: 0; }
.cabins-location__tradeoff div { border-top: 1px solid var(--color-line-steel); padding-top: var(--space-3); }
.cabins-location__tradeoff p { margin: var(--space-1) 0 0; font-size: var(--text-caption); }

.cabins-comparison__intro { max-width: 65ch; }
.cabins-comparison__summary { display: none; }
.cabins-comparison__table { position: relative; margin-top: var(--space-5); background: var(--color-pale-steel); }
.cabins-comparison__table table { min-width: 70rem; }
.cabins-comparison__table th, .cabins-comparison__table td { min-width: 9.5rem; }
.cabins-comparison__table th:first-child { min-width: 11rem; }
.cabins-comparison__table.is-scrollable::after { position: sticky; right: 0; display: block; width: 2.5rem; height: 100%; margin-top: -100%; background: linear-gradient(90deg, transparent, rgb(220 232 236 / 96%)); content: ""; pointer-events: none; }
.cabins-comparison__table.is-at-end::after { display: none; }
.cabins-comparison__checklist { max-width: 60rem; margin-top: var(--space-5); }
.cabins-comparison__checklist ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-3); padding-left: 1.5rem; }
.cabins-comparison__checklist li { min-width: 0; padding-right: var(--space-2); font-size: var(--text-caption); }

.cabins-casino { border-top: 1px solid var(--color-marine-teal); }
.cabins-casino__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: start; }
.cabins-casino__content { max-width: 68ch; }
.cabins-casino__games { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.cabins-casino__games article { min-width: 0; padding: var(--space-4); border-top: 2px solid var(--color-marine-teal); background: var(--color-pale-steel); }
.cabins-casino__games article > :last-child { margin-bottom: 0; }
.cabins-casino__games p { font-size: var(--text-caption); }
.cabins-casino__caveat { padding: var(--space-5); background: var(--color-midnight); color: var(--color-porcelain); border-left: 3px solid var(--color-coral); }
.cabins-casino__caveat .technical-label { color: var(--color-pale-steel); }
.cabins-casino__caveat > :last-child { margin-bottom: 0; }
.cabins-casino__disclaimer { max-width: 66ch; margin-top: var(--space-5); padding: var(--space-4); border-left: 3px solid var(--color-coral); background: var(--color-pale-steel); }
.cabins-casino__disclaimer > * { margin: 0; }
.cabins-casino__disclaimer p { margin-top: var(--space-2); font-size: var(--text-caption); }

.cabins-patterns__intro { max-width: 65ch; }
.cabins-patterns__scenarios, .cabins-patterns__rules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.cabins-patterns__scenarios { margin-top: var(--space-6); }
.cabins-patterns__scenarios article { min-width: 0; padding: var(--space-5); border-top: 2px solid var(--color-marine-teal); background: var(--color-paper); }
.cabins-patterns__scenarios article > :last-child { margin-bottom: 0; }
.cabins-patterns__scenarios span { color: var(--color-marine-teal); font-family: var(--font-heading); font-size: 1.75rem; font-weight: 700; }
.cabins-patterns__timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); padding: var(--space-5); border-top: 1px solid var(--color-marine-teal); border-bottom: 1px solid var(--color-line-steel); }
.cabins-patterns__timeline > div { min-width: 0; }
.cabins-patterns__timeline p { margin: var(--space-2) 0 0; font-size: var(--text-caption); }
.cabins-patterns__rules { margin-top: var(--space-5); }
.cabins-patterns__rules > div { min-width: 0; padding: var(--space-4); border-left: 3px solid var(--color-marine-teal); }
.cabins-patterns__rules strong { display: block; font-family: var(--font-heading); font-size: 1.5rem; }
.cabins-patterns__rules p { margin: var(--space-2) 0 0; }

.cabins-final__panel { display: flex; max-width: 68rem; margin-inline: auto; flex-direction: column; gap: var(--space-4); padding: var(--space-6); background: var(--color-midnight); color: var(--color-porcelain); }
.cabins-final__panel > * { margin: 0; }
.cabins-final__panel .eyebrow { color: var(--color-pale-steel); }
.cabins-final__panel .section-title { color: var(--color-porcelain); }
.cabins-final__panel ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-6); padding-left: 1.5rem; }
.cabins-final__panel li { min-width: 0; padding-bottom: var(--space-2); border-bottom: 1px solid rgb(185 203 209 / 42%); }
.cabins-final__note { max-width: 55ch; margin: var(--space-5) auto 0; border-top: 2px solid var(--color-coral); padding-top: var(--space-4); }
.cabins-final__note p { margin-bottom: 0; }

@media (max-width: 63.9375rem) {
  .cabins-hero__grid { grid-template-columns: 1fr; }
  .cabins-hero__media { order: -1; min-height: 22rem; }
  .cabins-hero__content { padding: var(--space-6); }
  .cabins-hero__content::after { display: none; }
  .cabins-types__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .cabins-type--balcony { grid-column: span 8; }
  .cabins-type--interior, .cabins-type--view, .cabins-type--family, .cabins-type--mini, .cabins-type--premium { grid-column: span 4; }
  .cabins-layout__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .cabins-layout__media, .cabins-layout__reading { grid-column: span 4; }
  .cabins-layout__rail { grid-column: 5 / span 4; }
  .cabins-outlook__top, .cabins-casino__grid { grid-template-columns: 1fr; }
  .cabins-outlook__media { order: 2; }
  .cabins-location__lower { grid-template-columns: 1fr; }
  .cabins-location__scenarios { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cabins-casino__caveat { order: 2; }
  .cabins-casino__content { max-width: none; }
  .cabins-casino__games { max-width: none; }
  .cabins-patterns__scenarios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cabins-patterns__scenarios article:nth-child(3) { grid-column: 1 / -1; }
  .cabins-comparison__checklist ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 47.9375rem) {
  .cabins-hero { padding-block: var(--space-4); }
  .cabins-hero__grid { gap: var(--space-4); }
  .cabins-hero__media { min-height: 0; aspect-ratio: 16 / 9; }
  .cabins-hero__content { padding: var(--space-5); }
  .cabins-hero__decisions { grid-template-columns: 1fr; gap: 0; }
  .cabins-hero__decisions > div, .cabins-hero__decisions > div + div { border-left: 0; border-bottom: 1px solid rgb(185 203 209 / 45%); padding: var(--space-3) 0; }
  .cabins-hero__decisions > div:last-child { border-bottom: 0; }
  .cabins-hero__media figcaption { max-width: 100%; font-size: 0.75rem; }
  .cabins-types__grid { grid-template-columns: 1fr; gap: var(--space-4); }
  .cabins-type, .cabins-type--interior, .cabins-type--view, .cabins-type--balcony, .cabins-type--family, .cabins-type--mini, .cabins-type--premium { grid-column: 1; grid-template-columns: 3rem minmax(0, 1fr); }
  .cabins-type__marker { min-width: 3rem; font-size: 1.5rem; }
  .cabins-type__copy { padding: var(--space-4); }
  .cabins-type__facts { grid-template-columns: 1fr; }
  .cabins-layout__grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .cabins-layout__media, .cabins-layout__reading, .cabins-layout__rail { grid-column: 1; }
  .cabins-layout__rail { border-left: 0; border-top: 1px solid var(--color-marine-teal); padding-left: 0; padding-top: var(--space-4); }
  .cabins-outlook__top, .cabins-outlook__panels { grid-template-columns: 1fr; gap: var(--space-5); }
  .cabins-location__route-map { grid-template-columns: 1fr; gap: var(--space-3); }
  .cabins-location__route-map::before { top: 3rem; bottom: 3rem; left: 2.75rem; right: auto; width: 1px; height: auto; }
  .cabins-location__route-map > div { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); column-gap: var(--space-3); }
  .cabins-location__route-map span { grid-row: span 2; margin-bottom: 0; }
  .cabins-location__route-map strong { margin-bottom: var(--space-1); }
  .cabins-location__route-map p { grid-column: 2; }
  .cabins-location__scenarios { grid-template-columns: 1fr; }
  .cabins-comparison__summary { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); font-size: var(--text-caption); }
  .cabins-comparison__summary span { border-left: 2px solid var(--color-marine-teal); padding-left: var(--space-2); }
  .cabins-comparison__checklist ol { grid-template-columns: 1fr; }
  .cabins-casino__games { grid-template-columns: 1fr; }
  .cabins-patterns__scenarios, .cabins-patterns__timeline, .cabins-patterns__rules { grid-template-columns: 1fr; }
  .cabins-patterns__scenarios article:nth-child(3) { grid-column: 1; }
  .cabins-patterns__timeline { gap: var(--space-3); }
  .cabins-final__panel { padding: var(--space-5); }
  .cabins-final__panel ol { grid-template-columns: 1fr; gap: var(--space-3); }
}

@media (max-width: 30rem) {
  .cabins-hero__media { aspect-ratio: 4 / 3; }
  .cabins-hero__content { padding: var(--space-4); }
  .cabins-hero .display-title { font-size: 2.25rem; }
}
