

:root {
  --color-ocean-600: #087e9b;
  --color-ocean-700: #056277;
  --color-navy-950: #102b3f;
  --color-navy-800: #294b5c;
  --color-white: #ffffff;
  --color-sea-mist: #e8f6f5;
  --color-sky-wash: #d9eef4;
  --color-champagne-500: #c9a96a;
  --color-coral-500: #e87962;
  --color-line: #c8dce0;
  --color-overlay: rgba(16, 43, 63, 0.72);
  --color-focus: #f0b84b;

  --color-page: var(--color-white);
  --color-ink: var(--color-navy-950);
  --color-ink-muted: var(--color-navy-800);
  --color-link: var(--color-ocean-700);
  --color-link-hover: var(--color-ocean-600);
  --color-border: var(--color-line);
  --color-surface-soft: var(--color-sea-mist);
  --color-surface-cool: var(--color-sky-wash);
  --color-surface-dark: var(--color-navy-950);

  --font-body: "Source Sans 3", Arial, sans-serif;
  --font-heading: "DM Serif Display", Georgia, serif;

  --font-size-12: 0.75rem;
  --font-size-14: 0.875rem;
  --font-size-16: 1rem;
  --font-size-18: 1.125rem;
  --font-size-24: 1.5rem;
  --font-size-32: 2rem;
  --font-size-48: 3rem;
  --font-size-64: 4rem;

  --line-height-tight: 1.08;
  --line-height-heading: 1.16;
  --line-height-body: 1.625;
  --line-height-compact: 1.43;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --space-32: 8rem;

  --container-wide: 77.5rem;
  --container-content: 64rem;
  --container-article: 43.75rem;
  --page-padding: 2rem;

  --radius-none: 0;
  --radius-sm: 0.375rem;
  --radius-md: 0.625rem;
  --radius-pill: 999px;

  --shadow-floating: 0 10px 28px rgba(16, 43, 63, 0.12);
  --transition-fast: 180ms ease-out;
  --transition-base: 220ms ease-out;
  --focus-ring: 0 0 0 3px var(--color-focus);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background: var(--color-page);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--font-size-16);
  font-weight: 400;
  line-height: var(--line-height-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

main,
header,
footer,
section,
article,
aside,
nav,
figure,
blockquote,
dl,
dd,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}

main,
header,
footer,
section,
article,
aside,
nav {
  min-width: 0;
}

img,
picture,
svg,
video,
canvas,
iframe,
embed,
object {
  display: block;
  max-width: 100%;
}

img,
video {
  height: auto;
}

img {
  font-style: italic;
}

svg {
  fill: currentColor;
}

iframe {
  border: 0;
}

button,
input,
select,
textarea {
  margin: 0;
  color: inherit;
  font: inherit;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

textarea {
  min-height: 8rem;
  resize: vertical;
}

fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  padding: 0;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

th,
td {
  text-align: left;
  vertical-align: top;
}

ul,
ol {
  margin-block: 0 1.5rem;
  padding-inline-start: 1.5rem;
}

li::marker {
  color: var(--color-ocean-600);
}

a {
  color: var(--color-link);
  text-decoration: underline;
  text-decoration-color: var(--color-champagne-500);
  text-decoration-thickness: 0.125em;
  text-underline-offset: 0.18em;
  transition:
    color var(--transition-fast),
    text-decoration-color var(--transition-fast);
}

a:hover {
  color: var(--color-link-hover);
  text-decoration-color: var(--color-coral-500);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

a:not([class]) {
  overflow-wrap: anywhere;
}

strong,
b {
  font-weight: 700;
}

small {
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

hr {
  height: 1px;
  margin-block: var(--space-8);
  border: 0;
  background: var(--color-border);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: var(--line-height-heading);
  overflow-wrap: break-word;
}

h1 {
  margin-block-end: var(--space-6);
  font-size: clamp(2.625rem, 5vw, var(--font-size-64));
  line-height: var(--line-height-tight);
}

h2 {
  margin-block-end: var(--space-4);
  font-size: clamp(2.25rem, 4vw, var(--font-size-48));
  line-height: 1.1;
}

h3 {
  margin-block-end: var(--space-3);
  font-size: clamp(1.75rem, 2.7vw, var(--font-size-32));
}

h4 {
  margin-block-end: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

h5,
h6 {
  margin-block-end: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--font-size-18);
  line-height: 1.35;
}

p {
  margin-block: 0 var(--space-6);
  color: var(--color-ink);
}

blockquote {
  margin-block: var(--space-8);
  padding-inline-start: var(--space-6);
  border-inline-start: 3px solid var(--color-champagne-500);
  color: var(--color-navy-800);
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.35;
}

blockquote > p {
  margin-block-end: var(--space-3);
}

cite {
  color: var(--color-navy-800);
  font-family: var(--font-body);
  font-size: var(--font-size-14);
  font-style: normal;
  font-weight: 600;
}

figure {
  margin-block: var(--space-8);
}

figcaption {
  margin-block-start: var(--space-2);
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

dl {
  margin-block: 0 var(--space-6);
}

dt {
  color: var(--color-ink);
  font-size: var(--font-size-14);
  font-weight: 700;
}

dd {
  margin-block: 0 var(--space-4);
  color: var(--color-navy-800);
}

label {
  display: inline-block;
  margin-block-end: var(--space-2);
  color: var(--color-ink);
  font-size: var(--font-size-14);
  font-weight: 700;
  line-height: var(--line-height-compact);
}

input,
select,
textarea {
  width: 100%;
  min-height: 2.75rem;
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
  line-height: 1.4;
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    background-color var(--transition-fast);
}

select {
  padding-inline-end: 2rem;
}

textarea {
  padding-block: 0.75rem;
}

input::placeholder,
textarea::placeholder {
  color: var(--color-navy-800);
  opacity: 0.75;
}

input:hover,
select:hover,
textarea:hover {
  border-color: var(--color-ocean-600);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--color-ocean-600);
  outline: none;
  box-shadow: var(--focus-ring);
}

input[type="checkbox"],
input[type="radio"] {
  width: 1rem;
  min-width: 1rem;
  min-height: 1rem;
  padding: 0;
  accent-color: var(--color-ocean-600);
}

button,
.button {
  display: inline-flex;
  min-width: 2.75rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 0.625rem 1rem;
  border: 1px solid var(--color-ocean-600);
  border-radius: var(--radius-md);
  background: var(--color-ocean-600);
  color: var(--color-white);
  font-size: var(--font-size-14);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition:
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    transform var(--transition-fast);
}

button:hover,
.button:hover {
  border-color: var(--color-ocean-700);
  background: var(--color-ocean-700);
  color: var(--color-white);
  text-decoration: none;
}

button:active,
.button:active {
  transform: translateY(1px);
}

button:focus-visible,
.button:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

.button--outline {
  border-color: var(--color-ocean-600);
  background: transparent;
  color: var(--color-ocean-700);
}

.button--outline:hover {
  background: var(--color-sea-mist);
  color: var(--color-navy-950);
}

.button--text {
  min-height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-link);
  text-align: left;
  text-decoration: underline;
  text-decoration-color: var(--color-champagne-500);
  text-decoration-thickness: 0.125em;
  text-underline-offset: 0.18em;
}

.button--text:hover {
  background: transparent;
  color: var(--color-link-hover);
  text-decoration-color: var(--color-coral-500);
}

.container,
.container-wide {
  width: min(100% - (var(--page-padding) * 2), var(--container-wide));
  margin-inline: auto;
}

.container-content {
  width: min(100% - (var(--page-padding) * 2), var(--container-content));
  margin-inline: auto;
}

.container-article {
  width: min(100% - (var(--page-padding) * 2), var(--container-article));
  margin-inline: auto;
}

.section {
  padding-block: var(--space-16);
}

.section--large {
  padding-block: var(--space-24);
}

.section--soft {
  background: var(--color-surface-soft);
}

.section--cool {
  background: var(--color-surface-cool);
}

.section--dark {
  background: var(--color-surface-dark);
  color: var(--color-white);
}

.section--dark :is(h1, h2, h3, h4, h5, h6, p, dt, dd, figcaption) {
  color: inherit;
}

.surface {
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.surface--soft {
  background: var(--color-surface-soft);
}

.surface--cool {
  background: var(--color-surface-cool);
}

.surface--dark {
  border-color: var(--color-navy-950);
  background: var(--color-surface-dark);
  color: var(--color-white);
}

.surface--dark :is(h1, h2, h3, h4, h5, h6, p, dt, dd, figcaption) {
  color: inherit;
}

.stack {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.stack--compact {
  gap: var(--space-2);
}

.stack--loose {
  gap: var(--space-6);
}

.cluster {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.cluster--compact {
  gap: var(--space-2);
}

.cluster--loose {
  gap: var(--space-4);
}

.cluster > * {
  min-width: 0;
}

.card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.card__content {
  min-width: 0;
  padding: var(--space-6);
}

.card__content > :last-child,
.surface > :last-child,
.stack > :last-child {
  margin-block-end: 0;
}

.card--interactive {
  transition:
    border-color var(--transition-fast),
    transform var(--transition-fast);
}

.card--interactive:hover {
  border-color: var(--color-ocean-600);
  transform: translateY(-2px);
}

.card--interactive:focus-within {
  border-color: var(--color-ocean-600);
}

.card--floating {
  box-shadow: var(--shadow-floating);
}

.eyebrow {
  margin: 0 0 var(--space-2);
  color: var(--color-ocean-700);
  font-size: var(--font-size-12);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.eyebrow--coral {
  color: var(--color-coral-500);
}

.eyebrow--champagne {
  color: var(--color-champagne-500);
}

.meta {
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  font-weight: 600;
  line-height: var(--line-height-compact);
}

.caption {
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.content-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-block: 0 var(--space-6);
  padding-inline-start: 1.5rem;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: var(--space-3);
  left: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-sm);
  background: var(--color-navy-950);
  color: var(--color-white);
  transform: translateY(-200%);
}

.skip-link:focus {
  transform: translateY(0);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.tabular-nums {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1199px) {
  :root {
    --page-padding: 2rem;
  }

  .section {
    padding-block: var(--space-12);
  }

  .section--large {
    padding-block: var(--space-16);
  }
}

@media (max-width: 767px) {
  :root {
    --page-padding: 1rem;
  }

  body {
    font-size: var(--font-size-16);
  }

  h1 {
    font-size: clamp(2.25rem, 11vw, 2.625rem);
  }

  h2 {
    font-size: clamp(2rem, 9vw, 2.25rem);
  }

  h3 {
    font-size: 1.75rem;
  }

  h4 {
    font-size: 1.375rem;
  }

  .section {
    padding-block: var(--space-12);
  }

  .section--large {
    padding-block: var(--space-16);
  }

  .surface,
  .card__content {
    padding: var(--space-4);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .card--interactive:hover,
  button:active,
  .button:active {
    transform: none;
  }
}


.site-header {
  position: relative;
  z-index: 900;
  border-bottom: 1px solid var(--color-line);
  background: var(--color-white);
}

.site-header__masthead {
  width: min(100% - (var(--page-padding) * 2), var(--container-wide));
  min-height: 5.5rem;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: var(--space-3);
}

.site-header__brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-navy-950);
  text-decoration: none;
}

.site-header__brand:hover {
  color: var(--color-ocean-700);
  text-decoration: none;
}

.site-header__logo {
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 2.75rem;
  object-fit: contain;
}

.site-header__brand-text {
  display: block;
  color: currentColor;
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  font-weight: 600;
  letter-spacing: 0.015em;
  line-height: 1;
  white-space: nowrap;
}

.site-header__toggle {
  display: none;
}

.site-header__navigation {
  border-top: 1px solid var(--color-line);
}

.site-header__nav-inner {
  width: min(100% - (var(--page-padding) * 2), var(--container-wide));
  margin-inline: auto;
}

.site-header__nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  margin: 0;
  padding: var(--space-3) 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: thin;
}

.site-header__nav-list li,
.site-header__nav-list li + li {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.site-header__nav-link {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.8rem;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-pill);
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.site-header__nav-link:hover,
.site-header__nav-link:focus-visible {
  border-color: var(--color-ocean-600);
  background: var(--color-sea-mist);
  color: var(--color-navy-950);
  text-decoration: none;
}

.site-header__nav-link[aria-current="page"] {
  border-color: var(--color-ocean-600);
  background: var(--color-ocean-600);
  color: var(--color-white);
}

.site-header__drawer-heading,
.site-header__drawer-close {
  display: none;
}

.site-header__overlay {
  display: none;
}

@media (max-width: 899px) {
  .site-header__masthead {
    min-height: 4.5rem;
    justify-content: space-between;
  }

  .site-header__logo {
    width: 2.25rem;
    height: 2.25rem;
    flex-basis: 2.25rem;
  }

  .site-header__brand-text {
    font-size: clamp(1.05rem, 3.4vw, 1.35rem);
  }

  .site-header__toggle {
    display: inline-flex;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    flex-direction: column;
    gap: 0.28rem;
    padding: 0;
    border-color: var(--color-navy-950);
    background: var(--color-navy-950);
  }

  .site-header__toggle-line {
    display: block;
    width: 1.1rem;
    height: 1px;
    background: var(--color-white);
    transition: transform var(--transition-fast), opacity var(--transition-fast);
  }

  .site-header__toggle[aria-expanded="true"] .site-header__toggle-line:first-child {
    transform: translateY(0.31rem) rotate(45deg);
  }

  .site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(2) {
    opacity: 0;
  }

  .site-header__toggle[aria-expanded="true"] .site-header__toggle-line:last-child {
    transform: translateY(-0.31rem) rotate(-45deg);
  }

  .site-header__navigation {
    position: fixed;
    z-index: 902;
    inset: 0 0 0 auto;
    width: min(86vw, 25rem);
    height: 100dvh;
    border: 0;
    background: var(--color-white);
    box-shadow: var(--shadow-floating);
    transform: translateX(102%);
    transition: transform var(--transition-base);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .site-header__navigation--open {
    transform: translateX(0);
  }

  .site-header__nav-inner {
    width: 100%;
    min-height: 100%;
    padding: var(--space-6);
  }

  .site-header__drawer-heading {
    display: block;
    margin: 0;
    padding-right: 3rem;
    color: var(--color-navy-950);
    font-family: var(--font-heading);
    font-size: var(--font-size-32);
    line-height: 1.1;
  }

  .site-header__drawer-close {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    display: inline-flex;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    padding: 0;
    border-color: var(--color-navy-950);
    background: var(--color-navy-950);
    font-size: 1.55rem;
    line-height: 1;
  }

  .site-header__nav-list {
    display: grid;
    justify-content: stretch;
    gap: var(--space-2);
    margin-top: var(--space-6);
    padding: 0;
    overflow: visible;
  }

  .site-header__nav-list li,
  .site-header__nav-list li + li {
    width: 100%;
  }

  .site-header__nav-link {
    width: 100%;
    min-height: 2.75rem;
    justify-content: flex-start;
    padding-inline: var(--space-4);
    border-radius: var(--radius-md);
  }

  .site-header__overlay {
    position: fixed;
    z-index: 901;
    inset: 0;
    display: block;
    background: rgba(16, 43, 63, 0.48);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-base);
  }

  .site-header__overlay--open {
    opacity: 1;
    pointer-events: auto;
  }

  html.site-menu-open,
  body.site-menu-open {
    overflow: hidden;
  }
}

@media (max-width: 420px) {
  .site-header__masthead {
    gap: var(--space-2);
  }

  .site-header__brand {
    gap: var(--space-2);
  }

  .site-header__brand-text {
    max-width: calc(100vw - 8rem);
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header__navigation,
  .site-header__overlay,
  .site-header__toggle-line {
    transition: none;
  }
}


.site-footer {
  border-top: 1px solid var(--color-line);
  background: var(--color-white);
  color: var(--color-navy-950);
}

.site-footer__inner {
  width: min(100% - (var(--page-padding) * 2), var(--container-wide));
  margin-inline: auto;
  padding-block: var(--space-12) var(--space-6);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, 1fr));
  gap: var(--space-8);
  padding-bottom: var(--space-8);
  border-bottom: 1px solid var(--color-line);
}

.site-footer__brand,
.site-footer__column {
  min-width: 0;
}

.site-footer__column {
  padding-inline-start: var(--space-6);
  border-inline-start: 1px solid var(--color-line);
}

.site-footer__title,
.site-footer__brand-name {
  margin: 0;
  color: var(--color-navy-950);
}

.site-footer__brand-name {
  font-family: var(--font-heading);
  font-size: var(--font-size-24);
  line-height: 1.15;
}

.site-footer__title {
  font-family: var(--font-body);
  font-size: var(--font-size-12);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.site-footer__copy,
.site-footer__address,
.site-footer__contact {
  margin: var(--space-3) 0 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.site-footer__list {
  display: grid;
  gap: var(--space-2);
  margin: var(--space-3) 0 0;
  padding: 0;
  list-style: none;
}

.site-footer__list li,
.site-footer__list li + li {
  margin: 0;
  padding: 0;
}

.site-footer__list a,
.site-footer__contact a {
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 600;
}

.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-6);
}

.site-footer__bottom p {
  margin: 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
}

.site-consent {
  position: fixed;
  z-index: 950;
  right: max(var(--space-4), env(safe-area-inset-right));
  bottom: max(var(--space-4), env(safe-area-inset-bottom));
  width: min(calc(100% - (var(--space-4) * 2)), 30rem);
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-floating);
  transition: opacity var(--transition-fast), transform var(--transition-fast);
}

.site-consent[hidden] {
  display: none;
}

.site-consent--hiding {
  opacity: 0;
  transform: translateY(var(--space-2));
}

.site-consent__title {
  margin: 0;
  color: var(--color-navy-950);
  font-family: var(--font-heading);
  font-size: var(--font-size-24);
  line-height: 1.15;
}

.site-consent__copy {
  margin: var(--space-2) 0 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.site-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.site-consent__actions .button {
  min-height: 2.75rem;
}

@media (max-width: 899px) {
  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer__brand {
    grid-column: 1 / -1;
  }

  .site-footer__column:first-of-type {
    padding-inline-start: 0;
    border-inline-start: 0;
  }
}

@media (max-width: 599px) {
  .site-footer__inner {
    padding-block: var(--space-8) var(--space-6);
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .site-footer__brand,
  .site-footer__column {
    grid-column: auto;
    padding-inline-start: 0;
    border-inline-start: 0;
  }

  .site-footer__column {
    padding-top: var(--space-6);
    border-top: 1px solid var(--color-line);
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .site-consent {
    padding: var(--space-4);
  }
}


.contact-page {
  overflow: hidden;
}

.contact-page__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-6);
}

.contact-page__intro {
  padding-block: var(--space-16);
  background: var(--color-sky-wash);
}

.contact-intro-copy {
  grid-column: 3 / span 8;
  min-width: 0;
  max-width: 38.75rem;
  margin-inline: auto;
  text-align: center;
}

.contact-intro-copy .eyebrow {
  position: relative;
  margin-block-end: var(--space-4);
  padding-block-end: var(--space-3);
}

.contact-intro-copy .eyebrow::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 2.5rem;
  height: 1px;
  background: var(--color-champagne-500);
  content: "";
  transform: translateX(-50%);
}

.contact-intro-copy h1 {
  margin-block-end: var(--space-4);
}

.contact-intro-copy p:last-child {
  margin-block-end: 0;
  font-size: var(--font-size-18);
  line-height: 1.56;
}

.contact-page__orientation {
  background: var(--color-white);
}

.contact-orientation-layout > * {
  min-width: 0;
}

.contact-orientation-copy {
  grid-column: 2 / span 6;
  width: 100%;
  max-width: 35rem;
}

.contact-orientation-copy h2 {
  font-size: var(--font-size-32);
}

.contact-text-link,
.contact-email-link,
.contact-closing-email,
.contact-context-links a {
  color: var(--color-ocean-700);
  font-weight: 700;
}

.contact-text-link span,
.contact-context-links a span,
.contact-closing-email span {
  display: inline-block;
  margin-inline-start: var(--space-1);
  transition: transform var(--transition-fast);
}

.contact-text-link:hover span,
.contact-context-links a:hover span,
.contact-closing-email:hover span {
  transform: translateX(0.2rem);
}

.contact-publisher-panel {
  grid-column: 9 / span 3;
  min-width: 18.75rem;
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.contact-publisher-panel h3 {
  margin-block-end: var(--space-3);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.contact-publisher-panel p:last-child {
  margin-block-end: 0;
}

.contact-page__directory {
  padding-block: var(--space-16);
  background: var(--color-sea-mist);
  scroll-margin-top: var(--space-16);
}

.contact-directory-frame {
  grid-column: 3 / span 8;
  min-width: 0;
}

.contact-directory-heading {
  width: 100%;
  max-width: 35rem;
}

.contact-directory-heading h2 {
  margin-block-end: var(--space-4);
  font-size: var(--font-size-32);
}

.contact-directory-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0;
  margin: var(--space-8) 0 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
  overflow: hidden;
}

.contact-directory-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
  column-gap: var(--space-6);
  padding: var(--space-6);
  border-bottom: 1px solid var(--color-border);
}

.contact-directory-row:last-child {
  border-bottom: 0;
}

.contact-directory-row dt {
  min-width: 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-12);
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.contact-directory-row dd {
  min-width: 0;
  margin: 0;
  color: var(--color-navy-950);
  font-size: var(--font-size-16);
  line-height: var(--line-height-body);
  overflow-wrap: anywhere;
}

.contact-email-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
}

.contact-page__context {
  background: var(--color-white);
}

.contact-context-layout > * {
  min-width: 0;
}

.contact-context-copy {
  grid-column: 2 / span 6;
  width: 100%;
  max-width: 35rem;
}

.contact-context-copy h2 {
  font-size: var(--font-size-24);
}

.contact-context-links {
  grid-column: 9 / span 3;
  min-width: 17.5rem;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-champagne-500);
}

.contact-context-links ul {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-context-links li {
  min-width: 0;
}

.contact-context-links li::marker {
  content: "";
}

.contact-context-links a {
  display: flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.contact-context-note {
  margin: var(--space-6) 0 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.contact-page__closing {
  padding-block: var(--space-16);
  background: var(--color-sky-wash);
}

.contact-closing-copy {
  grid-column: 4 / span 6;
  min-width: 0;
  width: 100%;
  max-width: 35rem;
  margin-inline: auto;
  text-align: center;
}

.contact-closing-copy h2 {
  margin-block-end: var(--space-4);
  font-size: var(--font-size-32);
}

.contact-closing-copy > p {
  max-width: 31.25rem;
  margin-inline: auto;
}

.contact-closing-email {
  display: inline-flex;
  min-height: 2.75rem;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  font-size: var(--font-size-18);
  overflow-wrap: anywhere;
}

.contact-scope-note {
  margin-block: var(--space-6) 0 !important;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-champagne-500);
  color: var(--color-navy-800) !important;
  font-size: var(--font-size-12);
  line-height: var(--line-height-compact);
}

@media (max-width: 1199px) {
  .contact-page__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    column-gap: 1.25rem;
  }

  .contact-intro-copy {
    grid-column: 2 / span 6;
  }

  .contact-orientation-copy,
  .contact-context-copy {
    grid-column: 2 / span 5;
  }

  .contact-publisher-panel,
  .contact-context-links {
    grid-column: 6 / span 3;
  }

  .contact-directory-frame {
    grid-column: 1 / span 8;
  }

  .contact-closing-copy {
    grid-column: 2 / span 6;
  }
}

@media (max-width: 900px) {
  .contact-orientation-layout,
  .contact-context-layout {
    row-gap: var(--space-8);
  }

  .contact-orientation-copy,
  .contact-context-copy,
  .contact-publisher-panel,
  .contact-context-links {
    grid-column: 2 / span 6;
    min-width: 0;
    width: 100%;
  }

  .contact-publisher-panel {
    max-width: 35rem;
  }

  .contact-context-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-6);
    row-gap: var(--space-4);
  }

  .contact-context-links > .eyebrow,
  .contact-context-links > .contact-context-note {
    grid-column: 1 / -1;
  }

  .contact-context-links ul {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-6);
    row-gap: var(--space-2);
  }
}

@media (max-width: 767px) {
  .contact-page__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: var(--space-4);
  }

  .contact-page__intro,
  .contact-page__directory,
  .contact-page__closing {
    padding-block: var(--space-12);
  }

  .contact-intro-copy,
  .contact-orientation-copy,
  .contact-context-copy,
  .contact-publisher-panel,
  .contact-context-links,
  .contact-directory-frame,
  .contact-closing-copy {
    grid-column: 1 / span 4;
    min-width: 0;
    width: 100%;
  }

  .contact-intro-copy h1 {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .contact-intro-copy p:last-child {
    font-size: var(--font-size-16);
    line-height: var(--line-height-body);
  }

  .contact-orientation-layout,
  .contact-context-layout {
    row-gap: var(--space-6);
  }

  .contact-orientation-copy,
  .contact-context-copy {
    max-width: none;
  }

  .contact-publisher-panel {
    padding: var(--space-6);
  }

  .contact-directory-heading {
    max-width: none;
  }

  .contact-directory-list {
    margin-top: var(--space-6);
  }

  .contact-directory-row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-2);
    padding: var(--space-4);
  }

  .contact-context-links {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
  }

  .contact-context-links ul {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
  }

  .contact-context-links a {
    min-height: 2.75rem;
  }

  .contact-closing-copy h2 {
    font-size: 1.75rem;
    line-height: 2.125rem;
  }

  .contact-closing-email {
    font-size: var(--font-size-14);
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-text-link span,
  .contact-context-links a span,
  .contact-closing-email span {
    transition: none;
  }
}


.cookie-policy-page {
  background: var(--color-white);
}

.cookie-policy-page__intro {
  padding-block: var(--space-16);
  background: var(--color-sky-wash);
}

.cookie-policy-page__intro-grid,
.cookie-policy-page__legal-grid,
.cookie-policy-page__categories-grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-6);
}

.cookie-policy-page__intro-copy {
  grid-column: 1 / span 7;
  min-width: 0;
  max-width: 42.5rem;
}

.cookie-policy-page__intro-space {
  grid-column: 8 / span 5;
  min-width: 0;
}

.cookie-policy-page__eyebrow {
  position: relative;
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
}

.cookie-policy-page__eyebrow::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 3.5rem;
  height: 1px;
  background: var(--color-champagne-500);
  content: "";
}

.cookie-policy-page__intro-copy h1 {
  margin-bottom: var(--space-6);
}

.cookie-policy-page__intro-copy p:last-child,
.cookie-policy-page__reading-block p:last-child,
.cookie-policy-page__categories-intro p:last-child {
  margin-bottom: 0;
}

.cookie-policy-page__section {
  padding-block: var(--space-12);
}

.cookie-policy-page__legal-grid > .cookie-policy-page__reading-block {
  grid-column: 1 / span 7;
  min-width: 0;
  max-width: 42.5rem;
}

.cookie-policy-page__reading-block h2 {
  margin-bottom: var(--space-4);
}

.cookie-policy-page__reading-block h3 {
  margin-top: var(--space-8);
  margin-bottom: var(--space-3);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.cookie-policy-page__section--categories {
  background: var(--color-sea-mist);
}

.cookie-policy-page__categories-grid {
  row-gap: var(--space-8);
}

.cookie-policy-page__categories-intro {
  grid-column: 1 / span 7;
  min-width: 0;
  max-width: 42.5rem;
}

.cookie-policy-page__categories-intro h2 {
  margin-bottom: var(--space-4);
}

.cookie-policy-page__table-wrap {
  grid-column: 1 / span 10;
  min-width: 0;
}

.cookie-policy-page__category-table {
  table-layout: fixed;
  border: 1px solid var(--color-line);
  background: var(--color-white);
}

.cookie-policy-page__category-table th,
.cookie-policy-page__category-table td {
  min-width: 0;
  padding: var(--space-4);
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  overflow-wrap: anywhere;
}

.cookie-policy-page__category-table th:last-child,
.cookie-policy-page__category-table td:last-child {
  border-right: 0;
}

.cookie-policy-page__category-table tbody tr:last-child th,
.cookie-policy-page__category-table tbody tr:last-child td {
  border-bottom: 0;
}

.cookie-policy-page__category-table thead th {
  background: var(--color-navy-950);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: var(--font-size-14);
  font-weight: 700;
  line-height: var(--line-height-compact);
}

.cookie-policy-page__category-table thead th:nth-child(1) {
  width: 22%;
}

.cookie-policy-page__category-table thead th:nth-child(2) {
  width: 53%;
}

.cookie-policy-page__category-table thead th:nth-child(3) {
  width: 25%;
}

.cookie-policy-page__category-table tbody th {
  background: var(--color-white);
  color: var(--color-navy-950);
  font-weight: 700;
}

.cookie-policy-page__category-table tbody td {
  color: var(--color-navy-800);
  font-size: 0.9375rem;
  line-height: 1.53;
}

.cookie-policy-page__category-table tbody tr:nth-child(even) th,
.cookie-policy-page__category-table tbody tr:nth-child(even) td {
  background: rgba(232, 246, 245, 0.62);
}

.cookie-policy-page__category-label {
  display: block;
  min-width: 0;
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.cookie-policy-page__category-label--coral {
  color: var(--color-coral-500);
}

.cookie-policy-page__third-party-note {
  margin-top: var(--space-4);
  margin-bottom: 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.cookie-policy-page__control-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: 0;
  margin-bottom: var(--space-8);
  padding-left: 1.5rem;
}

.cookie-policy-page__control-list li {
  min-width: 0;
  padding-left: var(--space-1);
}

.cookie-policy-page__impact-note {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-sky-wash);
}

.cookie-policy-page__impact-note h3,
.cookie-policy-page__impact-note p {
  margin: 0;
}

.cookie-policy-page__impact-note h3 {
  font-family: var(--font-body);
  font-size: var(--font-size-18);
  font-weight: 700;
  line-height: 1.35;
}

.cookie-policy-page__section--third-party {
  border-top: 1px solid var(--color-line);
}

.cookie-policy-page__section--contact {
  background: var(--color-sea-mist);
}

.cookie-policy-page__contact-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0;
  margin: var(--space-8) 0 0;
  padding: 0;
  border-top: 1px solid var(--color-line);
}

.cookie-policy-page__contact-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(8rem, 0.32fr) minmax(0, 1fr);
  gap: var(--space-4);
  padding-block: var(--space-4);
  border-bottom: 1px solid var(--color-line);
}

.cookie-policy-page__contact-row dt,
.cookie-policy-page__contact-row dd {
  min-width: 0;
  margin: 0;
}

.cookie-policy-page__contact-row dd {
  color: var(--color-navy-800);
  overflow-wrap: anywhere;
}

.cookie-policy-page__section--updates {
  padding-top: var(--space-12);
  padding-bottom: var(--space-16);
}

.cookie-policy-page__closing-rule {
  margin-top: var(--space-8);
  margin-bottom: 0;
}

.cookie-policy-page a[data-cookie-settings] {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
}

@media (max-width: 1199px) {
  .cookie-policy-page__intro-grid,
  .cookie-policy-page__legal-grid,
  .cookie-policy-page__categories-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    column-gap: 1.25rem;
  }

  .cookie-policy-page__intro-copy,
  .cookie-policy-page__legal-grid > .cookie-policy-page__reading-block,
  .cookie-policy-page__categories-intro {
    grid-column: 1 / span 6;
  }

  .cookie-policy-page__intro-space {
    grid-column: 7 / span 2;
  }

  .cookie-policy-page__table-wrap {
    grid-column: 1 / span 8;
  }
}

@media (max-width: 959px) {
  .cookie-policy-page__category-table,
  .cookie-policy-page__category-table thead,
  .cookie-policy-page__category-table tbody,
  .cookie-policy-page__category-table tr,
  .cookie-policy-page__category-table th,
  .cookie-policy-page__category-table td {
    display: block;
    width: 100%;
  }

  .cookie-policy-page__category-table {
    border-bottom: 0;
  }

  .cookie-policy-page__category-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .cookie-policy-page__category-table tbody tr {
    border-bottom: 1px solid var(--color-line);
  }

  .cookie-policy-page__category-table tbody th,
  .cookie-policy-page__category-table tbody td {
    border-right: 0;
    border-bottom: 0;
  }

  .cookie-policy-page__category-table tbody th {
    padding-bottom: var(--space-2);
  }

  .cookie-policy-page__category-table tbody td {
    padding-top: var(--space-2);
  }

  .cookie-policy-page__category-table tbody td::before {
    display: block;
    margin-bottom: var(--space-1);
    color: var(--color-navy-950);
    font-size: var(--font-size-12);
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  .cookie-policy-page__category-table tbody td:nth-child(2)::before {
    content: "Potential purpose";
  }

  .cookie-policy-page__category-table tbody td:nth-child(3)::before {
    content: "Examples and considerations";
  }
}

@media (max-width: 767px) {
  .cookie-policy-page__intro {
    padding-block: 2.5rem;
  }

  .cookie-policy-page__intro-grid,
  .cookie-policy-page__legal-grid,
  .cookie-policy-page__categories-grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
  }

  .cookie-policy-page__intro-copy,
  .cookie-policy-page__legal-grid > .cookie-policy-page__reading-block,
  .cookie-policy-page__categories-intro,
  .cookie-policy-page__table-wrap,
  .cookie-policy-page__intro-space {
    grid-column: 1;
    width: 100%;
    max-width: none;
  }

  .cookie-policy-page__intro-space {
    display: none;
  }

  .cookie-policy-page__intro-copy h1 {
    font-size: clamp(2.25rem, 10vw, 3rem);
    line-height: 1.08;
  }

  .cookie-policy-page__section {
    padding-block: 2.25rem;
  }

  .cookie-policy-page__section--updates {
    padding-bottom: 2.25rem;
  }

  .cookie-policy-page__reading-block h2,
  .cookie-policy-page__categories-intro h2 {
    font-size: clamp(1.75rem, 8vw, 2rem);
    line-height: 1.12;
  }

  .cookie-policy-page__reading-block h3 {
    margin-top: var(--space-6);
  }

  .cookie-policy-page__categories-grid {
    row-gap: var(--space-6);
  }

  .cookie-policy-page__category-table th,
  .cookie-policy-page__category-table td {
    padding: var(--space-4);
  }

  .cookie-policy-page__impact-note {
    padding: var(--space-4);
  }

  .cookie-policy-page__contact-row {
    gap: var(--space-2);
  }
}

@media (max-width: 619px) {
  .cookie-policy-page__contact-row {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
  }

  .cookie-policy-page__contact-row dt,
  .cookie-policy-page__contact-row dd {
    width: 100%;
  }

  .cookie-policy-page__contact-row dd a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-policy-page * {
    scroll-behavior: auto;
  }
}


[data-terms-page] {
  background: var(--color-white);
}

[data-terms-page] .terms-title-band {
  padding: var(--space-24) 0 var(--space-16);
  background: var(--color-sky-wash);
}

[data-terms-page] .terms-title-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-6);
}

[data-terms-page] .terms-title-grid > .terms-title-block {
  grid-column: 3 / span 8;
  min-width: 0;
  max-width: 47.5rem;
  margin-inline: auto;
}

[data-terms-page] .terms-title-block .eyebrow {
  margin-block-end: var(--space-4);
}

[data-terms-page] .terms-title-block h1 {
  margin-block-end: var(--space-4);
}

[data-terms-page] .terms-title-introduction {
  max-width: 46rem;
  margin-block-end: 0;
  font-size: var(--font-size-18);
  line-height: 1.56;
}

[data-terms-page] .terms-title-rule {
  width: 5rem;
  height: 1px;
  margin-top: var(--space-6);
  background: var(--color-champagne-500);
}

[data-terms-page] .terms-document-section {
  padding-block: var(--space-16) var(--space-24);
}

[data-terms-page] .terms-document-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-6);
  align-items: start;
}

[data-terms-page] .terms-document-grid > .terms-contents {
  grid-column: 1 / span 3;
  min-width: 0;
  width: 100%;
  max-width: 17.5rem;
}

[data-terms-page] .terms-document-grid > .terms-article {
  grid-column: 5 / span 7;
  min-width: 0;
  width: 100%;
  max-width: 43.75rem;
}

[data-terms-page] .terms-contents {
  position: sticky;
  top: var(--space-8);
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

[data-terms-page] .terms-contents__label {
  margin: 0;
  color: var(--color-ocean-700);
  font-size: var(--font-size-12);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

[data-terms-page] .terms-contents__list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  margin: var(--space-4) 0;
  padding: 0;
  list-style: none;
}

[data-terms-page] .terms-contents__list > li {
  min-width: 0;
}

[data-terms-page] .terms-contents__list a {
  display: flex;
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  padding-block: var(--space-2);
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 600;
  line-height: 1.35;
}

[data-terms-page] .terms-contents__note {
  max-width: 17.5rem;
  margin: 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

[data-terms-page] .terms-article {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-12);
}

[data-terms-page] .terms-clause {
  min-width: 0;
  scroll-margin-top: var(--space-8);
}

[data-terms-page] .terms-clause + .terms-clause {
  padding-top: var(--space-12);
  border-top: 1px solid var(--color-border);
}

[data-terms-page] .terms-clause h2 {
  margin-block-end: var(--space-4);
  font-size: var(--font-size-32);
  line-height: 1.18;
}

[data-terms-page] .terms-clause h3 {
  margin-top: var(--space-6);
  margin-block-end: var(--space-3);
  font-family: var(--font-body);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

[data-terms-page] .terms-clause p {
  max-width: 43.75rem;
}

[data-terms-page] .terms-clause > :last-child {
  margin-block-end: 0;
}

[data-terms-page] .terms-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin: 0 0 var(--space-6);
  padding-inline-start: 1.5rem;
}

[data-terms-page] .terms-list > li {
  min-width: 0;
  padding-inline-start: var(--space-1);
}

[data-terms-page] .terms-list strong {
  color: var(--color-navy-950);
}

[data-terms-page] .terms-advisory {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-6);
  padding: var(--space-6);
  border-radius: var(--radius-sm);
  background: var(--color-sea-mist);
}

[data-terms-page] .terms-advisory > * {
  min-width: 0;
}

[data-terms-page] .terms-advisory h3,
[data-terms-page] .terms-advisory p {
  margin: 0;
}

[data-terms-page] .terms-contact-panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-8);
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

[data-terms-page] .terms-contact-panel > * {
  min-width: 0;
}

[data-terms-page] .terms-contact-panel h2,
[data-terms-page] .terms-contact-panel p {
  margin: 0;
}

[data-terms-page] .terms-contact-email {
  display: inline-flex;
  width: fit-content;
  min-width: 2.75rem;
  min-height: 2.75rem;
  align-items: center;
  color: var(--color-ocean-700);
  font-weight: 700;
  overflow-wrap: anywhere;
}

[data-terms-page] .terms-contact-details {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
}

[data-terms-page] .terms-contact-details p {
  color: var(--color-navy-800);
}

[data-terms-page] .terms-contact-details strong {
  color: var(--color-navy-950);
}

@media (max-width: 1099px) {
  [data-terms-page] .terms-title-grid,
  [data-terms-page] .terms-document-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    column-gap: var(--space-6);
  }

  [data-terms-page] .terms-title-grid > .terms-title-block {
    grid-column: 2 / span 6;
  }

  [data-terms-page] .terms-document-grid > .terms-contents,
  [data-terms-page] .terms-document-grid > .terms-article {
    grid-column: 1 / -1;
    max-width: 43.75rem;
  }

  [data-terms-page] .terms-document-grid > .terms-contents {
    position: static;
    margin-block-end: var(--space-8);
  }

  [data-terms-page] .terms-contents__note {
    max-width: 100%;
  }
}

@media (max-width: 767px) {
  [data-terms-page] .terms-title-band {
    padding: var(--space-12) 0;
  }

  [data-terms-page] .terms-title-grid,
  [data-terms-page] .terms-document-grid {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 0;
  }

  [data-terms-page] .terms-title-grid > .terms-title-block,
  [data-terms-page] .terms-document-grid > .terms-contents,
  [data-terms-page] .terms-document-grid > .terms-article {
    grid-column: 1;
    max-width: none;
  }

  [data-terms-page] .terms-title-block h1 {
    font-size: clamp(2.25rem, 10vw, 2.625rem);
    line-height: 1.1;
  }

  [data-terms-page] .terms-title-introduction {
    max-width: none;
    font-size: var(--font-size-18);
    line-height: 1.56;
  }

  [data-terms-page] .terms-document-section {
    padding-block: var(--space-12) var(--space-16);
  }

  [data-terms-page] .terms-document-grid > .terms-contents {
    margin-block-end: var(--space-8);
    padding: var(--space-4);
  }

  [data-terms-page] .terms-article {
    gap: var(--space-8);
  }

  [data-terms-page] .terms-clause + .terms-clause {
    padding-top: var(--space-8);
  }

  [data-terms-page] .terms-clause h2 {
    font-size: 1.75rem;
    line-height: 1.22;
  }

  [data-terms-page] .terms-clause h3 {
    font-size: 1.375rem;
    line-height: 1.3;
  }

  [data-terms-page] .terms-list {
    gap: var(--space-3);
    padding-inline-start: 1.25rem;
  }

  [data-terms-page] .terms-advisory,
  [data-terms-page] .terms-contact-panel {
    padding: var(--space-4);
  }

  [data-terms-page] .terms-contact-panel {
    margin-top: var(--space-6);
  }
}


.privacy-policy-page {
  background: var(--color-white);
}

.privacy-policy-page__title-band {
  padding-block: var(--space-16);
  background: var(--color-sky-wash);
}

.privacy-policy-page__title-copy {
  width: min(100% - (var(--page-padding) * 2), 47.5rem);
  margin-inline: auto;
}

.privacy-policy-page__title-copy .eyebrow {
  position: relative;
  padding-block-end: var(--space-3);
}

.privacy-policy-page__title-copy .eyebrow::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 3rem;
  height: 1px;
  background: var(--color-champagne-500);
  content: "";
}

.privacy-policy-page__title-copy h1 {
  margin-block-start: var(--space-4);
}

.privacy-policy-page__intro {
  max-width: 44rem;
  margin-block-end: var(--space-4);
  font-size: var(--font-size-18);
  line-height: 1.56;
}

.privacy-policy-page__document-label {
  margin-block-end: var(--space-4);
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  font-weight: 600;
}

.privacy-policy-page__enquiry {
  display: block;
  min-height: 2.75rem;
  margin-block-end: 0;
  padding-block: var(--space-2);
  color: var(--color-navy-800);
}

.privacy-policy-page__map {
  padding-block: var(--space-12);
}

.privacy-policy-page__map-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax(0, 8fr);
  gap: var(--space-6);
  align-items: start;
}

.privacy-policy-page__map-grid > * {
  min-width: 0;
}

.privacy-policy-page__contents {
  grid-column: 1;
  padding-block: var(--space-4);
  border-block: 1px solid var(--color-line);
}

.privacy-policy-page__contents h2 {
  margin-block-end: var(--space-4);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.privacy-policy-page__contents ol {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0;
  padding-inline-start: 1.5rem;
}

.privacy-policy-page__contents li {
  min-width: 0;
  padding-inline-start: var(--space-1);
  font-weight: 600;
}

.privacy-policy-page__contents a {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  text-decoration-thickness: 0.1em;
}

.privacy-policy-page__reading-note {
  grid-column: 3;
  width: min(100%, 26.25rem);
  padding-block-start: var(--space-8);
  border-block-start: 1px solid var(--color-line);
}

.privacy-policy-page__reading-note .meta {
  margin: 0;
}

.privacy-policy-page__article {
  padding-block-end: var(--space-24);
}

.privacy-policy-page__chapter {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  padding-block: var(--space-12);
  border-block-start: 1px solid var(--color-line);
}

.privacy-policy-page__chapter > * {
  grid-column: 2;
  min-width: 0;
}

.privacy-policy-page__reading-column {
  width: min(100%, 42.5rem);
}

.privacy-policy-page__reading-column > :last-child {
  margin-block-end: 0;
}

.privacy-policy-page__reading-column h2 {
  font-size: var(--font-size-32);
  line-height: 1.19;
}

.privacy-policy-page__reading-column h3 {
  margin-block-start: var(--space-8);
  font-family: var(--font-body);
  font-size: var(--font-size-24);
  font-weight: 600;
  line-height: 1.25;
}

.privacy-policy-page__reading-column ul {
  margin-block-end: var(--space-6);
}

.privacy-policy-page__context-note,
.privacy-policy-page__request-callout {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin-block: var(--space-8) 0;
  padding: var(--space-6);
  background: var(--color-sea-mist);
}

.privacy-policy-page__context-note p,
.privacy-policy-page__request-callout p,
.privacy-policy-page__request-callout h3 {
  margin: 0;
}

.privacy-policy-page__purpose-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  margin-block: var(--space-6);
  padding: 0;
  list-style: none;
  counter-reset: privacy-purpose;
}

.privacy-policy-page__purpose-list li {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  counter-increment: privacy-purpose;
}

.privacy-policy-page__purpose-list li::before {
  color: var(--color-ocean-700);
  content: counter(privacy-purpose, decimal-leading-zero);
  font-size: var(--font-size-14);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.privacy-policy-page__purpose-list li::marker {
  content: "";
}

.privacy-policy-page__purpose-close {
  padding-block-start: var(--space-6);
  border-block-start: 1px solid var(--color-champagne-500);
}

.privacy-policy-page__purpose-close p {
  margin: 0;
}

.privacy-policy-page__security-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(18.75rem, 1fr));
  gap: var(--space-6);
  margin-block-start: var(--space-8);
}

.privacy-policy-page__security-item {
  min-width: 0;
  padding-block-start: var(--space-6);
  border-block-start: 1px solid var(--color-line);
}

.privacy-policy-page__security-item h3 {
  margin-block-start: 0;
}

.privacy-policy-page__security-item p {
  margin: 0;
}

.privacy-policy-page__request-callout {
  margin-block-start: var(--space-8);
}

.privacy-policy-page__request-callout h3 {
  font-family: var(--font-heading);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.privacy-policy-page__request-callout a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
}

.privacy-policy-page__contact-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-block: var(--space-8);
  border: 1px solid var(--color-line);
}

.privacy-policy-page__contact-list > div {
  display: grid;
  grid-template-columns: 9.375rem minmax(0, 1fr);
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-4) var(--space-6);
  border-block-end: 1px solid var(--color-line);
}

.privacy-policy-page__contact-list > div:last-child {
  border-block-end: 0;
}

.privacy-policy-page__contact-list dt,
.privacy-policy-page__contact-list dd {
  min-width: 0;
  margin: 0;
}

.privacy-policy-page__contact-list address {
  font-style: normal;
}

.privacy-policy-page__contact-list a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  overflow-wrap: anywhere;
}

.privacy-policy-page__update-note {
  padding-block-start: var(--space-6);
  border-block-start: 1px solid var(--color-champagne-500);
}

.privacy-policy-page__update-note p {
  margin: 0;
  color: var(--color-navy-800);
}

.privacy-policy-page__chapter--final {
  padding-block-end: 0;
}

@media (max-width: 1199px) {
  .privacy-policy-page__title-band {
    padding-block: var(--space-12);
  }

  .privacy-policy-page__map-grid {
    grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);
  }

  .privacy-policy-page__contents {
    grid-column: 1;
  }

  .privacy-policy-page__reading-note {
    grid-column: 2;
  }

  .privacy-policy-page__chapter {
    grid-template-columns: minmax(0, 1fr);
  }

  .privacy-policy-page__chapter > * {
    grid-column: 1;
    margin-inline: auto;
  }
}

@media (max-width: 1023px) {
  .privacy-policy-page__map {
    padding-block: var(--space-8);
  }

  .privacy-policy-page__map-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .privacy-policy-page__contents,
  .privacy-policy-page__reading-note {
    grid-column: 1;
    width: 100%;
  }

  .privacy-policy-page__reading-note {
    padding-block-start: var(--space-4);
  }

  .privacy-policy-page__security-strip {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }
}

@media (max-width: 767px) {
  .privacy-policy-page__title-band {
    padding-block: var(--space-8);
  }

  .privacy-policy-page__title-copy {
    width: min(100% - (var(--page-padding) * 2), 47.5rem);
  }

  .privacy-policy-page__title-copy h1 {
    font-size: 2.625rem;
    line-height: 1.1;
  }

  .privacy-policy-page__intro {
    font-size: var(--font-size-16);
    line-height: var(--line-height-body);
  }

  .privacy-policy-page__enquiry a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
  }

  .privacy-policy-page__contents ol {
    gap: var(--space-1);
  }

  .privacy-policy-page__contents a {
    width: 100%;
    min-height: 2.75rem;
  }

  .privacy-policy-page__article {
    padding-block-end: var(--space-16);
  }

  .privacy-policy-page__chapter {
    padding-block: var(--space-8);
  }

  .privacy-policy-page__reading-column h2 {
    font-size: 1.75rem;
    line-height: 1.21;
  }

  .privacy-policy-page__reading-column h3 {
    font-size: 1.375rem;
  }

  .privacy-policy-page__context-note,
  .privacy-policy-page__request-callout {
    padding: var(--space-4);
  }

  .privacy-policy-page__purpose-list li {
    grid-template-columns: 1.75rem minmax(0, 1fr);
  }

  .privacy-policy-page__contact-list > div {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
    padding: var(--space-4);
  }

  .privacy-policy-page__contact-list dd {
    margin-block-end: 0;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .privacy-policy-page__contents a {
    transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
  }
}


[data-wfn-page] {
  --wfn-grid-gap: var(--space-6);
  overflow: hidden;
}

[data-wfn-page] .wfn-frame {
  width: min(100% - (var(--page-padding) * 2), var(--container-wide));
  margin-inline: auto;
}

[data-wfn-page] .wfn-hero {
  position: relative;
  min-height: 38.75rem;
  background: var(--color-navy-950);
}

[data-wfn-page] .wfn-hero__media,
[data-wfn-page] .wfn-hero__media img {
  width: 100%;
  height: 100%;
}

[data-wfn-page] .wfn-hero__media {
  position: absolute;
  inset: 0;
}

[data-wfn-page] .wfn-hero__media img {
  object-fit: cover;
  object-position: center 42%;
}

[data-wfn-page] .wfn-hero::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(16, 43, 63, 0.84) 0%, rgba(16, 43, 63, 0.62) 41%, rgba(16, 43, 63, 0.08) 72%);
  content: "";
}

[data-wfn-page] .wfn-hero__frame {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 38.75rem;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
  align-items: end;
  padding-block: var(--space-16) var(--space-12);
}

[data-wfn-page] .wfn-hero__copy {
  grid-column: 1 / span 6;
  min-width: 0;
  max-width: 36.875rem;
  color: var(--color-white);
}

[data-wfn-page] .wfn-hero__copy > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-hero__copy h1,
[data-wfn-page] .wfn-hero__copy p { color: var(--color-white); }
[data-wfn-page] .wfn-hero__copy h1 { font-size: clamp(3rem, 5.25vw, 4rem); }
[data-wfn-page] .wfn-hero__deck { max-width: 34rem; font-size: var(--font-size-18); line-height: 1.55; }
[data-wfn-page] .wfn-hero__eyebrow { color: var(--color-coral-500); }

[data-wfn-page] .wfn-route-links {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-6);
  margin-top: var(--space-6);
}

[data-wfn-page] .wfn-route-links a,
[data-wfn-page] .wfn-inline-link,
[data-wfn-page] .wfn-strip__link {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: var(--space-2);
  color: inherit;
  font-weight: 700;
}

[data-wfn-page] .wfn-route-links a { min-height: 2.75rem; color: var(--color-white); }
[data-wfn-page] .wfn-route-links a::after,
[data-wfn-page] .wfn-inline-link::after,
[data-wfn-page] .wfn-strip__link::after { color: var(--color-champagne-500); content: "→"; }

[data-wfn-page] .wfn-wellness { background: var(--color-sea-mist); }
[data-wfn-page] .wfn-wellness__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
}

[data-wfn-page] .wfn-wellness__intro {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 26.25rem;
}

[data-wfn-page] .wfn-wellness__intro > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-wave { display: block; width: 3rem; height: 0.375rem; margin-bottom: var(--space-4); border-top: 2px solid var(--color-ocean-600); border-bottom: 2px solid var(--color-champagne-500); }

[data-wfn-page] .wfn-wellness__items {
  grid-column: 6 / span 7;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
}

[data-wfn-page] .wfn-wellness__item {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-champagne-500);
}

[data-wfn-page] .wfn-wellness__item > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-number { display: block; margin-bottom: var(--space-2); color: var(--color-ocean-700); font-size: var(--font-size-12); font-weight: 700; letter-spacing: .08em; }

[data-wfn-page] .wfn-feature__top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
  align-items: center;
}

[data-wfn-page] .wfn-feature__copy {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 29.375rem;
}

[data-wfn-page] .wfn-feature__copy > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-feature__lead { font-size: var(--font-size-18); line-height: 1.56; }
[data-wfn-page] .wfn-feature__figure {
  grid-column: 7 / span 6;
  min-width: 0;
  margin: 0;
}

[data-wfn-page] .wfn-feature__figure img { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--radius-md); object-fit: cover; object-position: center right; }
[data-wfn-page] .wfn-feature__notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
  margin-top: var(--space-12);
}

[data-wfn-page] .wfn-note { min-width: 0; padding-top: var(--space-4); border-top: 1px solid var(--color-line); }
[data-wfn-page] .wfn-note > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-note__label { margin-bottom: var(--space-2); color: var(--color-ocean-700); font-size: var(--font-size-12); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
[data-wfn-page] .wfn-note__label--coral { color: var(--color-coral-500); }

[data-wfn-page] .wfn-night { background: var(--color-navy-950); color: var(--color-white); }
[data-wfn-page] .wfn-night :is(h2, h3, h4, p, figcaption) { color: inherit; }
[data-wfn-page] .wfn-night__figure img { object-position: center center; }
[data-wfn-page] .wfn-night__copy { color: var(--color-white); }
[data-wfn-page] .wfn-night__lead { color: var(--color-sky-wash) !important; }
[data-wfn-page] .wfn-night .eyebrow { color: var(--color-ocean-600); }
[data-wfn-page] .wfn-night__descriptors {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
  margin-top: var(--space-12);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-champagne-500);
}

[data-wfn-page] .wfn-night__descriptor { min-width: 0; }
[data-wfn-page] .wfn-night__descriptor > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-night__descriptor h3 { font-family: var(--font-body); font-size: var(--font-size-24); }
[data-wfn-page] .wfn-night .wfn-inline-link { color: var(--color-white); }

[data-wfn-page] .wfn-rhythm__intro,
[data-wfn-page] .wfn-checklist__intro,
[data-wfn-page] .wfn-closing__inner {
  width: min(100%, 38.75rem);
  margin-inline: auto;
  text-align: center;
}

[data-wfn-page] .wfn-rhythm__intro > :last-child,
[data-wfn-page] .wfn-checklist__intro > :last-child,
[data-wfn-page] .wfn-closing__inner > :last-child { margin-block-end: 0; }

[data-wfn-page] .wfn-rhythm__lead,
[data-wfn-page] .wfn-checklist__lead { font-size: var(--font-size-18); line-height: 1.56; }

[data-wfn-page] .wfn-rhythm__controls {
  display: grid;
  width: min(100%, 63.5rem);
  margin: var(--space-8) auto 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

[data-wfn-page] .wfn-rhythm__controls button {
  width: 100%;
  min-width: 0;
  min-height: 2.75rem;
  border-color: var(--color-ocean-600);
  background: var(--color-white);
  color: var(--color-ocean-700);
}

[data-wfn-page] .wfn-rhythm__controls button:hover,
[data-wfn-page] .wfn-rhythm__controls button[aria-pressed="true"] { border-color: var(--color-ocean-700); background: var(--color-ocean-700); color: var(--color-white); }

[data-wfn-page] .wfn-rhythm__panels { width: min(100%, 63.5rem); margin: var(--space-6) auto 0; }
[data-wfn-page] .wfn-rhythm__panel {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
  gap: var(--space-8);
  padding: var(--space-8);
  background: var(--color-sky-wash);
}

[data-wfn-page] .wfn-rhythm__panel[hidden] { display: none; }
[data-wfn-page] .wfn-rhythm__rail,
[data-wfn-page] .wfn-rhythm__content { min-width: 0; }
[data-wfn-page] .wfn-rhythm__content > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-rhythm__rail p { margin-block-end: 0; }

[data-wfn-page] .wfn-related { background: var(--color-sea-mist); }
[data-wfn-page] .wfn-related__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
  align-items: start;
}

[data-wfn-page] .wfn-related__intro { grid-column: 1 / span 4; min-width: 0; max-width: 21.25rem; }
[data-wfn-page] .wfn-related__intro > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-strip {
  grid-column: 5 / span 8;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-left: 1px solid var(--color-line);
}

[data-wfn-page] .wfn-strip__item { min-width: 0; padding: 0 var(--space-4); border-right: 1px solid var(--color-line); }
[data-wfn-page] .wfn-strip__item > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-strip__item h3 { font-family: var(--font-body); font-size: var(--font-size-18); }
[data-wfn-page] .wfn-strip__link { min-height: 2.75rem; }

[data-wfn-page] .wfn-checklist__intro { width: min(100%, 42.5rem); }
[data-wfn-page] .wfn-checklist__intro::after { display: block; width: 4rem; height: 1px; margin: var(--space-6) auto 0; background: var(--color-champagne-500); content: ""; }
[data-wfn-page] .wfn-checklist__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wfn-grid-gap);
  margin-top: var(--space-12);
}

[data-wfn-page] .wfn-checklist__group { min-width: 0; padding-top: var(--space-4); border-top: 1px solid var(--color-champagne-500); }
[data-wfn-page] .wfn-checklist__group > :last-child { margin-block-end: 0; }
[data-wfn-page] .wfn-checklist__group h3 { font-family: var(--font-body); font-size: var(--font-size-24); }
[data-wfn-page] .wfn-checklist__group ol { display: flex; flex-direction: column; gap: var(--space-4); margin-block: 0 var(--space-6); padding-inline-start: 1.5rem; }
[data-wfn-page] .wfn-checklist__group li { padding-inline-start: var(--space-1); }

[data-wfn-page] .wfn-closing { background: var(--color-sky-wash); }
[data-wfn-page] .wfn-closing__inner { width: min(100%, 38.75rem); }
[data-wfn-page] .wfn-closing__links { display: flex; min-width: 0; flex-wrap: wrap; justify-content: center; gap: var(--space-3); margin-top: var(--space-6); }
[data-wfn-page] .wfn-closing__links .button { min-height: 2.75rem; }

@media (max-width: 1199px) {
  [data-wfn-page] .wfn-hero__frame,
  [data-wfn-page] .wfn-wellness__grid,
  [data-wfn-page] .wfn-feature__top,
  [data-wfn-page] .wfn-related__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--space-5, 1.5rem); }
  [data-wfn-page] .wfn-hero__copy { grid-column: 1 / span 5; }
  [data-wfn-page] .wfn-wellness__intro { grid-column: 1 / span 3; }
  [data-wfn-page] .wfn-wellness__items { grid-column: 4 / span 5; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-wfn-page] .wfn-wellness__item:last-child { grid-column: 1 / span 2; }
  [data-wfn-page] .wfn-feature__copy { grid-column: 1 / span 3; }
  [data-wfn-page] .wfn-feature__figure { grid-column: 4 / span 5; }
  [data-wfn-page] .wfn-related__intro { grid-column: 1 / span 8; max-width: 34rem; }
  [data-wfn-page] .wfn-strip { grid-column: 1 / span 8; }
}

@media (max-width: 1050px) {
  [data-wfn-page] .wfn-rhythm__controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-wfn-page] .wfn-rhythm__controls button:last-child { grid-column: 1 / span 2; }
  [data-wfn-page] .wfn-rhythm__panel { grid-template-columns: 1fr; gap: var(--space-4); }
}

@media (max-width: 980px) {
  [data-wfn-page] .wfn-feature__top { grid-template-columns: 1fr; gap: var(--space-8); }
  [data-wfn-page] .wfn-feature__copy,
  [data-wfn-page] .wfn-feature__figure { grid-column: 1; max-width: none; }
  [data-wfn-page] .wfn-feature__copy { max-width: 38rem; }
  [data-wfn-page] .wfn-night__descriptors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-wfn-page] .wfn-night__descriptor:last-child { grid-column: 1 / span 2; }
  [data-wfn-page] .wfn-checklist__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-wfn-page] .wfn-checklist__group:last-child { grid-column: 1 / span 2; }
}

@media (max-width: 767px) {
  [data-wfn-page] .wfn-hero { display: flex; min-height: 0; flex-direction: column; background: var(--color-white); }
  [data-wfn-page] .wfn-hero::after { display: none; }
  [data-wfn-page] .wfn-hero__media { position: static; aspect-ratio: 16 / 9; }
  [data-wfn-page] .wfn-hero__frame { display: block; min-height: 0; padding-block: var(--space-8) var(--space-12); }
  [data-wfn-page] .wfn-hero__copy { max-width: none; color: var(--color-navy-950); }
  [data-wfn-page] .wfn-hero__copy h1,
  [data-wfn-page] .wfn-hero__copy p { color: var(--color-navy-950); }
  [data-wfn-page] .wfn-hero__copy h1 { font-size: clamp(2.625rem, 11vw, 2.625rem); line-height: 1.08; }
  [data-wfn-page] .wfn-route-links { flex-direction: column; align-items: flex-start; gap: var(--space-1); }
  [data-wfn-page] .wfn-route-links a { width: 100%; color: var(--color-ocean-700); }
  [data-wfn-page] .wfn-wellness__grid,
  [data-wfn-page] .wfn-related__grid { display: block; }
  [data-wfn-page] .wfn-wellness__intro { max-width: none; }
  [data-wfn-page] .wfn-wellness__items { display: grid; grid-template-columns: 1fr; gap: var(--space-6); margin-top: var(--space-8); }
  [data-wfn-page] .wfn-wellness__item:last-child { grid-column: auto; }
  [data-wfn-page] .wfn-feature__notes,
  [data-wfn-page] .wfn-night__descriptors,
  [data-wfn-page] .wfn-checklist__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  [data-wfn-page] .wfn-night__descriptor:last-child,
  [data-wfn-page] .wfn-checklist__group:last-child { grid-column: auto; }
  [data-wfn-page] .wfn-feature__notes { margin-top: var(--space-8); }
  [data-wfn-page] .wfn-night__descriptors { margin-top: var(--space-8); }
  [data-wfn-page] .wfn-rhythm__intro,
  [data-wfn-page] .wfn-checklist__intro,
  [data-wfn-page] .wfn-closing__inner { width: 100%; }
  [data-wfn-page] .wfn-rhythm__intro h2,
  [data-wfn-page] .wfn-checklist__intro h2,
  [data-wfn-page] .wfn-closing__inner h2 { font-size: var(--font-size-32); }
  [data-wfn-page] .wfn-rhythm__lead,
  [data-wfn-page] .wfn-checklist__lead { text-align: left; font-size: var(--font-size-16); }
  [data-wfn-page] .wfn-rhythm__controls { grid-template-columns: 1fr; }
  [data-wfn-page] .wfn-rhythm__controls button:last-child { grid-column: auto; }
  [data-wfn-page] .wfn-rhythm__panel { padding: var(--space-5, 1.25rem); }
  [data-wfn-page] .wfn-related__intro { max-width: none; }
  [data-wfn-page] .wfn-strip { display: flex; width: calc(100% + var(--page-padding)); margin-top: var(--space-6); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; border-left: 1px solid var(--color-line); }
  [data-wfn-page] .wfn-strip__item { flex: 0 0 15.625rem; padding: 0 var(--space-4); scroll-snap-align: start; }
  [data-wfn-page] .wfn-checklist__grid { margin-top: var(--space-8); }
  [data-wfn-page] .wfn-closing__links { flex-direction: column; }
  [data-wfn-page] .wfn-closing__links .button { width: 100%; }
}

@media (prefers-reduced-motion: no-preference) {
  [data-wfn-page] a { text-decoration-color: transparent; }
  [data-wfn-page] a:hover,
  [data-wfn-page] a:focus-visible { text-decoration-color: var(--color-champagne-500); }
}


.oe-page {
  overflow: hidden;
}

.oe-page .oe-link {
  display: inline-block;
  color: var(--color-ocean-700);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--color-champagne-500);
  text-decoration-thickness: 0.125em;
  text-underline-offset: 0.18em;
}

.oe-page .oe-link:hover {
  text-decoration-color: var(--color-coral-500);
}

.oe-hero__image-wrap {
  position: relative;
  min-width: 0;
  min-height: 660px;
  background: var(--color-navy-950);
}

.oe-hero__image-wrap::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(16, 43, 63, 0.78) 0%, rgba(16, 43, 63, 0.46) 38%, rgba(16, 43, 63, 0.05) 72%);
  content: "";
  pointer-events: none;
}

.oe-hero__image {
  width: 100%;
  height: 660px;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}

.oe-hero__frame {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: 1fr auto;
  column-gap: 24px;
  row-gap: 24px;
  padding-block: 96px 48px;
}

.oe-hero__copy {
  grid-column: 1 / span 5;
  grid-row: 1;
  align-self: end;
  min-width: 0;
  max-width: 520px;
}

.oe-hero__copy .eyebrow,
.oe-hero__copy h1,
.oe-hero__copy p {
  color: var(--color-white);
}

.oe-hero__copy h1 {
  margin-block-end: var(--space-4);
  font-size: clamp(3rem, 5.2vw, 4rem);
}

.oe-hero__copy p:last-child {
  max-width: 31rem;
  margin-block-end: 0;
  font-size: var(--font-size-18);
  line-height: 1.56;
}

.oe-hero__routes {
  grid-column: 6 / span 7;
  grid-row: 2;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 16px;
}

.oe-hero-route {
  display: flex;
  min-width: 0;
  min-height: 116px;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  padding: 20px;
  color: var(--color-ink);
  text-decoration: none;
}

.oe-hero-route .eyebrow {
  margin: 0;
}

.oe-hero-route__text {
  color: var(--color-navy-950);
  font-size: var(--font-size-14);
  font-weight: 700;
  line-height: 1.4;
}

.oe-rhythm {
  padding-block: 96px;
}

.oe-rhythm__copy {
  width: min(100% - (var(--page-padding) * 2), 680px);
  margin-inline: auto;
}

.oe-rhythm__copy > :last-child {
  margin-block-end: 0;
}

.oe-venues__intro {
  width: min(100%, 570px);
  min-width: 0;
  margin-block-end: 40px;
}

.oe-venues__intro > :last-child {
  margin-block-end: 0;
}

.oe-venue-scroll {
  position: relative;
  min-width: 0;
}

.oe-venue-strip {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-block: 1px solid var(--color-line);
}

.oe-venue {
  display: flex;
  min-width: 0;
  min-height: 238px;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-inline-end: 1px solid var(--color-line);
  color: var(--color-ink);
  text-decoration: none;
}

.oe-venue:first-child {
  border-inline-start: 1px solid var(--color-line);
}

.oe-venue h3,
.oe-venue p {
  margin: 0;
}

.oe-venue h3 {
  font-size: var(--font-size-24);
}

.oe-venue p {
  flex: 1 1 auto;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: 1.5;
}

.oe-venue > span:last-child {
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 700;
}

.oe-venue__marker {
  color: var(--color-ocean-700);
  font-size: var(--font-size-12);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.oe-venue__marker--coral {
  color: var(--color-coral-500);
}

.oe-venue:hover {
  background: rgba(255, 255, 255, 0.55);
}

.oe-stories > .container-wide > h2 {
  margin-block-end: 40px;
}

.oe-stories__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}

.oe-feature {
  grid-column: 1 / span 7;
  display: flex;
  min-width: 0;
  flex-direction: column;
  color: var(--color-ink);
  text-decoration: none;
}

.oe-feature img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

.oe-feature__content {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
}

.oe-feature__content .eyebrow {
  margin: 0;
}

.oe-feature__title {
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: var(--font-size-32);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.16;
}

.oe-feature__body {
  max-width: 590px;
  color: var(--color-ink);
}

.oe-feature .oe-link {
  margin-top: auto;
}

.oe-story-rail {
  grid-column: 8 / span 5;
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.oe-story-card {
  display: flex;
  min-width: 0;
  flex: 1 1 0;
  flex-direction: column;
  gap: 12px;
  padding: 24px 0;
  border-block-start: 1px solid var(--color-line);
}

.oe-story-card:last-child {
  border-block-end: 1px solid var(--color-line);
}

.oe-story-card .eyebrow,
.oe-story-card h3,
.oe-story-card p,
.oe-story-card ul {
  margin: 0;
}

.oe-story-card h3 {
  font-size: var(--font-size-24);
}

.oe-story-card ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding-inline-start: 18px;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
}

.oe-daytime__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: 24px;
}

.oe-daytime__copy {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 520px;
  padding: 32px;
  background: var(--color-sky-wash);
}

.oe-daytime__copy > :last-child {
  margin-block-end: 0;
}

.oe-daytime__media {
  grid-column: 6 / span 7;
  min-width: 0;
  margin: 0;
}

.oe-daytime__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center top;
}

.oe-party {
  padding-block: 96px;
}

.oe-party__intro {
  width: min(100% - (var(--page-padding) * 2), 680px);
  min-width: 0;
  margin: 0 auto 48px;
  text-align: center;
}

.oe-party__intro > :last-child {
  margin-block-end: 0;
}

.oe-party__cards {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.oe-party-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
}

.oe-party-card .eyebrow,
.oe-party-card h3,
.oe-party-card p {
  margin: 0;
}

.oe-party-card h3 {
  font-size: var(--font-size-24);
}

.oe-party-card__label--navy {
  color: var(--color-navy-950) !important;
}

.oe-casino__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: 24px;
}

.oe-casino__copy {
  grid-column: 1 / span 7;
  min-width: 0;
  max-width: 650px;
}

.oe-casino__copy > :last-child {
  margin-block-end: 0;
}

.oe-casino__related {
  grid-column: 8 / span 5;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 16px;
  padding: 32px;
}

.oe-casino__related .eyebrow,
.oe-casino__related h3,
.oe-casino__related p {
  margin: 0;
}

.oe-casino__related h3 {
  font-size: var(--font-size-24);
}

.oe-casino__related:hover {
  border-color: var(--color-ocean-600);
}

.oe-index__intro {
  width: min(100%, 560px);
  min-width: 0;
  margin-block-end: 40px;
}

.oe-index__intro > :last-child {
  margin-block-end: 0;
}

.oe-index__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}

.oe-index-card {
  display: flex;
  min-width: 0;
  min-height: 230px;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  color: var(--color-ink);
  text-decoration: none;
}

.oe-index-card > .eyebrow {
  margin: 0;
}

.oe-index-card__title {
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: var(--font-size-24);
  font-weight: 600;
  line-height: 1.2;
}

.oe-index-card .oe-link {
  margin-top: auto;
}

.oe-index-card--performance { grid-column: 1 / span 5; }
.oe-index-card--dining { grid-column: 6 / span 4; }
.oe-index-card--spaces { grid-column: 10 / span 3; }
.oe-index-card--wellness { grid-column: 5 / span 4; }

.oe-checklist__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}

.oe-checklist__intro {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 500px;
}

.oe-checklist__intro > :last-child {
  margin-block-end: 0;
}

.oe-checklist__list {
  grid-column: 6 / span 7;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: checklist;
}

.oe-checklist__list > li {
  position: relative;
  min-width: 0;
  padding: 24px 0 0 44px;
  border-block-start: 1px solid var(--color-line);
  counter-increment: checklist;
}

.oe-checklist__list > li::before {
  position: absolute;
  top: 20px;
  left: 0;
  color: var(--color-ocean-700);
  content: counter(checklist, decimal-leading-zero);
  font-size: var(--font-size-14);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.oe-checklist__list h3 {
  margin-block-end: 8px;
  font-family: var(--font-body);
  font-size: var(--font-size-18);
  line-height: 1.35;
}

.oe-checklist__list p {
  margin: 0;
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: 1.55;
}

.oe-closing {
  padding-block: 96px;
}

.oe-closing__copy {
  width: min(100% - (var(--page-padding) * 2), 620px);
  min-width: 0;
  margin-inline: auto;
  text-align: center;
}

.oe-closing__copy > :last-child {
  margin-block-end: 0;
  font-size: var(--font-size-18);
  line-height: 1.56;
}

.oe-closing__links {
  display: flex;
  min-width: 0;
  justify-content: center;
  gap: 24px;
  margin: 32px auto 0;
}

.oe-closing__links > a {
  min-width: 0;
  min-height: 44px;
  padding: 10px 0;
}

@media (max-width: 1079px) {
  .oe-hero__image-wrap {
    min-height: 0;
    background: transparent;
  }

  .oe-hero__image-wrap::after {
    display: none;
  }

  .oe-hero__image {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .oe-hero__frame {
    position: static;
    display: grid;
    width: min(100% - (var(--page-padding) * 2), var(--container-wide));
    margin-inline: auto;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    grid-template-rows: auto auto;
    gap: 24px 20px;
    padding-block: 0 48px;
  }

  .oe-hero__copy {
    grid-column: 1 / span 8;
    grid-row: 1;
    max-width: none;
    padding: 32px;
    background: var(--color-sky-wash);
  }

  .oe-hero__copy .eyebrow,
  .oe-hero__copy h1,
  .oe-hero__copy p {
    color: var(--color-ink);
  }

  .oe-hero__copy p:last-child {
    max-width: 680px;
  }

  .oe-hero__routes {
    grid-column: 1 / span 8;
    grid-row: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 979px) {
  .oe-venue-scroll {
    overflow-x: auto;
    padding-block-end: 8px;
    scrollbar-color: var(--color-ocean-600) var(--color-sea-mist);
    scrollbar-width: thin;
  }

  .oe-venue-scroll::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 48px;
    height: calc(100% - 8px);
    background: linear-gradient(90deg, transparent, var(--color-sea-mist));
    content: "";
    pointer-events: none;
  }

  .oe-venue-strip {
    width: max-content;
    grid-template-columns: repeat(5, minmax(210px, 240px));
  }

  .oe-stories__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 20px;
  }

  .oe-feature {
    grid-column: 1 / span 8;
  }

  .oe-story-rail {
    grid-column: 1 / span 8;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .oe-story-card {
    min-height: 100%;
    padding: 24px;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
  }

  .oe-daytime__grid,
  .oe-casino__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 20px;
  }

  .oe-daytime__copy {
    grid-column: 1 / span 8;
    grid-row: 2;
    max-width: none;
  }

  .oe-daytime__media {
    grid-column: 1 / span 8;
    grid-row: 1;
  }

  .oe-casino__copy {
    grid-column: 1 / span 8;
    max-width: 650px;
  }

  .oe-casino__related {
    grid-column: 1 / span 8;
  }
}

@media (max-width: 959px) {
  .oe-index__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 20px;
  }

  .oe-index-card--performance,
  .oe-index-card--dining,
  .oe-index-card--spaces,
  .oe-index-card--wellness {
    grid-column: span 4;
  }
}

@media (max-width: 839px) {
  .oe-party__cards {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 20px;
  }

  .oe-party-card:nth-child(1),
  .oe-party-card:nth-child(2) {
    grid-column: span 4;
  }

  .oe-party-card:nth-child(3) {
    grid-column: span 8;
  }
}

@media (max-width: 759px) {
  .oe-hero__frame {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding-block-end: 32px;
  }

  .oe-hero__copy,
  .oe-hero__routes {
    grid-column: 1 / span 4;
  }

  .oe-hero__copy {
    padding: 24px;
  }

  .oe-hero__copy h1 {
    font-size: clamp(2.625rem, 11vw, 3rem);
  }

  .oe-hero__routes {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .oe-hero-route {
    min-height: 96px;
  }

  .oe-rhythm,
  .oe-party,
  .oe-closing {
    padding-block: 64px;
  }

  .oe-rhythm__copy,
  .oe-party__intro,
  .oe-closing__copy {
    width: min(100% - (var(--page-padding) * 2), 100%);
  }

  .oe-venue-strip {
    grid-template-columns: repeat(5, minmax(240px, 78vw));
  }

  .oe-story-rail {
    grid-template-columns: 1fr;
  }

  .oe-daytime__grid,
  .oe-casino__grid,
  .oe-checklist__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .oe-daytime__copy,
  .oe-daytime__media,
  .oe-casino__copy,
  .oe-casino__related,
  .oe-checklist__intro,
  .oe-checklist__list {
    grid-column: 1 / span 4;
  }

  .oe-daytime__copy,
  .oe-casino__related {
    padding: 24px;
  }

  .oe-party__intro {
    margin-block-end: 32px;
    text-align: left;
  }

  .oe-party__cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .oe-party-card:nth-child(1),
  .oe-party-card:nth-child(2),
  .oe-party-card:nth-child(3) {
    grid-column: 1;
  }

  .oe-index__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .oe-index-card--performance,
  .oe-index-card--dining,
  .oe-index-card--spaces,
  .oe-index-card--wellness {
    grid-column: 1;
    min-height: 0;
  }

  .oe-checklist__list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .oe-checklist__list > li {
    padding-block-start: 20px;
  }

  .oe-closing__copy {
    text-align: center;
  }

  .oe-closing__links {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    width: min(100% - (var(--page-padding) * 2), 100%);
  }

  .oe-closing__links > a {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .oe-page .card--interactive:hover {
    transform: none;
  }
}


.dining-page {
  overflow: hidden;
}

.dining-page__arrow-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 700;
  text-decoration-thickness: 0.125em;
}

.dining-page__marker,
.dining-map__label,
.meal-rhythm__meta {
  margin: 0;
  color: var(--color-ocean-700);
  font-size: var(--font-size-12);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.dining-page__marker--coral,
.dining-map__label--coral {
  color: var(--color-coral-500);
}

.dining-hero {
  position: relative;
  min-width: 0;
  min-height: 43.5rem;
  padding-bottom: var(--space-24);
}

.dining-hero__image-wrap {
  position: absolute;
  inset: 0 0 auto;
  width: 100%;
  height: 41rem;
  background: var(--color-navy-950);
}

.dining-hero__image-wrap::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(16, 43, 63, 0.78) 0%, rgba(16, 43, 63, 0.48) 36%, rgba(16, 43, 63, 0.05) 68%);
  content: "";
}

.dining-hero__image {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 42%;
}

.dining-hero__frame {
  position: relative;
  display: grid;
  width: min(100% - (var(--page-padding) * 2), var(--container-wide));
  min-width: 0;
  margin-inline: auto;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  padding-top: 20rem;
}

.dining-hero__copy {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 35rem;
  color: var(--color-white);
}

.dining-hero__copy .eyebrow,
.dining-hero__copy h1,
.dining-hero__copy p {
  color: var(--color-white);
}

.dining-hero__copy .eyebrow {
  color: var(--color-sky-wash);
}

.dining-hero__copy h1 {
  font-size: clamp(3rem, 5.2vw, 4rem);
}

.dining-hero__copy > p:not(.eyebrow) {
  max-width: 54ch;
  font-size: var(--font-size-18);
  line-height: 1.55;
}

.dining-hero__copy .dining-page__arrow-link {
  color: var(--color-white);
}

.dining-hero__paths {
  display: grid;
  grid-column: 1 / -1;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
}

.dining-hero__path {
  min-width: 0;
}

.dining-hero__path .card__content,
.dining-map__card .card__content,
.casual-dining__support .card__content,
.travel-style__cards .card__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.dining-hero__path h2,
.dining-map__card h3,
.casual-dining__support h3,
.travel-style__cards h3 {
  margin: 0;
}

.dining-hero__path p:not(.dining-page__marker),
.dining-map__card p:not(.dining-map__label),
.casual-dining__support p:not(.eyebrow),
.travel-style__cards p:not(.eyebrow) {
  margin: 0;
}

.dining-map__intro {
  width: min(100%, 34rem);
  min-width: 0;
}

.dining-map__intro p {
  max-width: 58ch;
}

.dining-map__cards {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.dining-map__card {
  min-width: 0;
}

.dining-map__card::before {
  display: block;
  height: 3px;
  background: var(--color-champagne-500);
  content: "";
}

.dining-room__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
}

.dining-room__figure {
  grid-column: 1 / span 7;
  min-width: 0;
  margin: 0;
}

.dining-room__figure img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.dining-room__copy {
  display: flex;
  grid-column: 8 / span 5;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.dining-room__copy h2,
.dining-room__copy p {
  margin: 0;
}

.dining-room__copy > p:not(.eyebrow) {
  max-width: 42ch;
}

.dining-room__points {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.dining-room__point {
  display: grid;
  min-width: 0;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  border-top: 1px solid var(--color-line);
  padding-top: var(--space-3);
}

.dining-room__point span {
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 700;
}

.dining-room__point p {
  min-width: 0;
}

.meal-rhythm__intro {
  width: min(100%, 34rem);
  min-width: 0;
}

.meal-rhythm__intro p {
  max-width: 52ch;
}

.meal-rhythm__scroll {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: var(--space-12);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.meal-rhythm__card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-6);
  border-right: 1px solid var(--color-line);
}

.meal-rhythm__card:last-child {
  border-right: 0;
}

.meal-rhythm__card h3,
.meal-rhythm__card p {
  margin: 0;
}

.casual-dining__intro {
  width: min(100%, 34rem);
  min-width: 0;
}

.casual-dining__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.casual-dining__feature {
  grid-column: 1 / span 7;
  min-width: 0;
}

.casual-dining__feature figure {
  margin: 0;
}

.casual-dining__feature img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.casual-dining__feature-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding-top: var(--space-6);
}

.casual-dining__feature-copy h3,
.casual-dining__feature-copy p {
  margin: 0;
}

.casual-dining__feature-copy p {
  max-width: 48ch;
}

.casual-dining__support {
  display: flex;
  grid-column: 8 / span 5;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-6);
}

.casual-dining__support > article {
  width: 100%;
  min-width: 0;
}

.specialty-dining__opening {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
}

.specialty-dining__copy {
  display: flex;
  grid-column: 1 / span 6;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.specialty-dining__copy h2,
.specialty-dining__copy p {
  margin: 0;
}

.specialty-dining__copy > p:not(.eyebrow) {
  max-width: 42ch;
}

.specialty-dining__figure {
  grid-column: 8 / span 5;
  min-width: 0;
  margin: 0;
}

.specialty-dining__figure img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.specialty-dining__checklist {
  width: min(100%, 52rem);
  min-width: 0;
  margin-top: var(--space-12);
  margin-left: calc((100% / 12) + var(--space-6));
}

.specialty-dining__checks {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.specialty-dining__checks > div {
  min-width: 0;
  border-top: 1px solid var(--color-line);
  padding-top: var(--space-3);
}

.specialty-dining__checks p {
  margin: var(--space-2) 0 0;
}

.specialty-dining__note {
  display: flex;
  width: min(100%, 39rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  margin-top: var(--space-8);
  margin-left: calc((100% / 12) + var(--space-6));
  padding: var(--space-6);
  background: var(--color-sky-wash);
}

.specialty-dining__note p {
  margin: 0;
}

.travel-style__intro {
  width: min(100%, 34rem);
  min-width: 0;
}

.travel-style__intro p {
  max-width: 52ch;
}

.travel-style__cards {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.travel-style__cards > article {
  min-width: 0;
}

.travel-style__media-card figure {
  margin: 0;
}

.travel-style__media-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

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

.dining-compare__intro p {
  max-width: 54ch;
  margin-inline: auto;
}

.dining-compare__table {
  width: 100%;
  min-width: 0;
  margin-top: var(--space-12);
  border: 1px solid var(--color-line);
  background: var(--color-white);
}

.dining-compare__head,
.dining-compare__row {
  display: grid;
  min-width: 0;
  grid-template-columns: 2fr repeat(4, minmax(0, 1.25fr));
}

.dining-compare__head {
  background: var(--color-navy-950);
  color: var(--color-white);
  font-size: var(--font-size-14);
  font-weight: 700;
}

.dining-compare__head span,
.dining-compare__row > * {
  min-width: 0;
  padding: var(--space-4);
  border-right: 1px solid var(--color-line);
}

.dining-compare__head span:last-child,
.dining-compare__row > *:last-child {
  border-right: 0;
}

.dining-compare__row {
  border-top: 1px solid var(--color-line);
}

.dining-compare__row h3,
.dining-compare__row p {
  margin: 0;
}

.dining-compare__row h3 {
  font-size: var(--font-size-18);
}

.dining-compare__row p {
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.dining-compare__row strong {
  color: var(--color-navy-950);
}

.continue-guide {
  padding-block: 5rem 6rem;
}

.continue-guide__intro {
  width: min(100%, 34rem);
  min-width: 0;
}

.continue-guide__intro p {
  max-width: 44ch;
}

.continue-guide__cards {
  display: grid;
  min-width: 0;
  grid-template-columns: 5fr 4fr 3fr;
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.continue-guide__card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  border-left: 1px solid var(--color-line);
  padding-left: var(--space-6);
}

.continue-guide__card > * {
  margin: 0;
}

.continue-guide__card h3 {
  font-size: var(--font-size-24);
}

.continue-guide__card h3 a {
  color: var(--color-navy-950);
}

@media (max-width: 1199px) {
  .dining-hero {
    min-height: 46rem;
  }

  .dining-hero__frame {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .dining-hero__copy {
    grid-column: 1 / span 5;
  }

  .dining-hero__paths {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .dining-map__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dining-room__grid,
  .casual-dining__grid,
  .specialty-dining__opening {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .dining-room__figure {
    grid-column: 1 / span 5;
  }

  .dining-room__copy {
    grid-column: 6 / span 3;
  }

  .casual-dining__feature {
    grid-column: 1 / span 5;
  }

  .casual-dining__support {
    grid-column: 6 / span 3;
  }

  .specialty-dining__copy {
    grid-column: 1 / span 4;
  }

  .specialty-dining__figure {
    grid-column: 5 / span 4;
  }

  .specialty-dining__checklist,
  .specialty-dining__note {
    margin-left: 0;
  }

  .travel-style__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-style__media-card {
    grid-column: 1 / -1;
  }

  .continue-guide__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .continue-guide__card:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  .meal-rhythm__scroll {
    position: relative;
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-color: var(--color-ocean-600) var(--color-sky-wash);
  }

  .meal-rhythm__card {
    width: 17.5rem;
    min-width: 17.5rem;
    scroll-snap-align: start;
  }

  .casual-dining__grid,
  .dining-room__grid {
    grid-template-columns: 1fr;
  }

  .casual-dining__feature,
  .dining-room__figure,
  .dining-room__copy,
  .casual-dining__support {
    grid-column: 1;
    width: 100%;
  }

  .casual-dining__support {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dining-room__copy > p:not(.eyebrow) {
    max-width: 38ch;
  }

  .dining-compare__head {
    display: none;
  }

  .dining-compare__table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    border: 0;
    background: transparent;
  }

  .dining-compare__row {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--space-2);
    border: 1px solid var(--color-line);
    background: var(--color-white);
  }

  .dining-compare__row > * {
    padding: 0;
    border: 0;
  }

  .dining-compare__row h3 {
    padding: var(--space-4) var(--space-4) 0;
  }

  .dining-compare__row p {
    padding-inline: var(--space-4);
  }

  .dining-compare__row p:last-child {
    padding-bottom: var(--space-4);
  }
}

@media (max-width: 920px) {
  .specialty-dining__opening {
    grid-template-columns: 1fr;
  }

  .specialty-dining__copy,
  .specialty-dining__figure {
    grid-column: 1;
    width: 100%;
  }

  .specialty-dining__copy {
    order: 1;
  }

  .specialty-dining__figure {
    order: 2;
    width: min(100%, 28rem);
  }
}

@media (max-width: 767px) {
  .dining-hero {
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding-bottom: var(--space-12);
  }

  .dining-hero__image-wrap {
    position: relative;
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .dining-hero__image-wrap::after {
    display: none;
  }

  .dining-hero__frame {
    display: flex;
    width: min(100% - (var(--page-padding) * 2), var(--container-wide));
    flex-direction: column;
    gap: var(--space-8);
    padding-top: var(--space-8);
  }

  .dining-hero__copy {
    width: 100%;
    max-width: none;
    color: var(--color-ink);
  }

  .dining-hero__copy .eyebrow,
  .dining-hero__copy h1,
  .dining-hero__copy p {
    color: var(--color-ink);
  }

  .dining-hero__copy .eyebrow {
    color: var(--color-ocean-700);
  }

  .dining-hero__copy h1 {
    font-size: clamp(2.625rem, 11vw, 3rem);
    line-height: 1.08;
  }

  .dining-hero__copy > p:not(.eyebrow) {
    max-width: 34ch;
  }

  .dining-hero__copy .dining-page__arrow-link {
    color: var(--color-ocean-700);
  }

  .dining-hero__paths,
  .dining-map__cards,
  .travel-style__cards,
  .continue-guide__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .dining-map__intro,
  .meal-rhythm__intro,
  .casual-dining__intro,
  .travel-style__intro,
  .continue-guide__intro {
    width: 100%;
  }

  .dining-map__intro p,
  .meal-rhythm__intro p,
  .travel-style__intro p,
  .continue-guide__intro p {
    max-width: 38ch;
  }

  .dining-map__cards,
  .casual-dining__grid,
  .travel-style__cards,
  .continue-guide__cards {
    margin-top: var(--space-8);
  }

  .dining-room__grid,
  .casual-dining__grid {
    gap: var(--space-6);
  }

  .dining-room__copy h2,
  .casual-dining__intro h2,
  .specialty-dining__copy h2,
  .travel-style__intro h2,
  .dining-compare__intro h2,
  .continue-guide__intro h2 {
    font-size: 1.875rem;
  }

  .specialty-dining__checklist {
    width: 100%;
    margin-top: var(--space-8);
  }

  .specialty-dining__checks {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .specialty-dining__note {
    width: 100%;
  }

  .dining-compare__intro {
    width: 100%;
  }

  .dining-compare__intro p {
    max-width: 36ch;
  }

  .continue-guide {
    padding-block: var(--space-16);
  }
}

@media (max-width: 560px) {
  .dining-hero__paths,
  .dining-map__cards,
  .travel-style__cards,
  .continue-guide__cards,
  .casual-dining__support,
  .dining-compare__table {
    grid-template-columns: 1fr;
  }

  .dining-hero__path .card__content,
  .dining-map__card .card__content,
  .casual-dining__support .card__content,
  .travel-style__cards .card__content {
    padding: var(--space-4);
  }

  .meal-rhythm__card {
    width: 78vw;
    min-width: 16.25rem;
    padding: var(--space-4);
  }

  .casual-dining__support {
    display: flex;
    flex-direction: column;
  }

  .specialty-dining__figure {
    width: 100%;
  }

  .continue-guide__card,
  .continue-guide__card:last-child {
    grid-column: auto;
    padding: var(--space-5) 0 0;
    border-left: 0;
    border-top: 1px solid var(--color-line);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .dining-page__arrow-link {
    transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
  }
}


.home-page {
  overflow: hidden;
}

.home-page figure { margin: 0; }
.home-page img { width: 100%; max-width: 100%; object-fit: cover; }
.home-page h2, .home-page h3, .home-page h4 { margin-block-end: 0; }
.home-page p { margin-block-end: 0; }
.home-page a:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }

.home-arrow-link {
  display: inline-flex;
  width: fit-content;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 700;
}
.home-arrow-link--light { color: var(--color-white); text-decoration-color: var(--color-champagne-500); }
.home-arrow-link span { font-size: 1.1em; transition: transform var(--transition-fast); }
.home-arrow-link:hover span { transform: translateX(3px); }

.home-hero { position: relative; min-height: 41rem; background: var(--color-navy-950); color: var(--color-white); }
.home-hero__image, .home-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-hero__image { object-position: 58% center; }
.home-hero__shade { background: linear-gradient(90deg, rgba(16,43,63,.82) 0%, rgba(16,43,63,.62) 42%, rgba(16,43,63,.1) 76%); }
.home-hero__frame { position: relative; z-index: 1; min-height: 41rem; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); align-items: end; padding-block: var(--space-16); }
.home-hero__copy { grid-column: 1 / span 5; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding-bottom: var(--space-8); }
.home-hero__copy .eyebrow { margin: 0; }
.home-hero__copy h1 { margin: 0; color: var(--color-white); max-width: 10.5ch; font-size: clamp(3rem, 5.2vw, 4rem); }
.home-hero__copy p { max-width: 34rem; color: var(--color-white); font-size: var(--font-size-18); line-height: 1.56; }
.home-hero__discover { grid-column: 6 / span 7; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.home-hero__discover a { min-width: 0; min-height: 7.25rem; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--space-1); padding: var(--space-4); border: 1px solid rgba(255,255,255,.64); border-radius: var(--radius-md); background: rgba(255,255,255,.95); color: var(--color-navy-950); text-decoration: none; box-shadow: var(--shadow-floating); transition: transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast); }
.home-hero__discover a:hover { transform: translateY(-2px); background: var(--color-sea-mist); border-color: var(--color-ocean-600); }
.home-hero__discover span { color: var(--color-ocean-700); font-size: var(--font-size-12); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.home-hero__discover strong { font-size: var(--font-size-16); line-height: 1.25; }

.home-ship-rhythm__grid, .home-cabins__grid, .home-dining__grid, .home-entertainment__grid, .home-planning__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.home-ship-rhythm__intro { grid-column: 1 / span 5; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.home-ship-rhythm__intro h2 { font-size: var(--font-size-32); }
.home-ship-rhythm__list { grid-column: 6 / span 7; min-width: 0; display: flex; flex-direction: column; gap: var(--space-6); }
.home-numbered-item { display: grid; grid-template-columns: 3.5rem minmax(0,1fr); gap: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-line); }
.home-numbered-item > span { color: var(--color-champagne-500); font-size: var(--font-size-14); font-weight: 700; letter-spacing: .08em; }
.home-numbered-item > div { min-width: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.home-numbered-item h3 { font-family: var(--font-body); font-size: var(--font-size-24); }

.home-cabins__copy { grid-column: 1 / span 5; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.home-cabins__copy h2 { font-size: var(--font-size-32); }
.home-cabins__media { grid-column: 6 / span 7; min-width: 0; }
.home-cabins__media img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); object-position: center; }
.home-cabins__media figcaption { margin-top: var(--space-2); }
.home-icon-point { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-line); }
.home-icon-point > span { color: var(--color-ocean-700); font-size: 1.5rem; line-height: 1; }
.home-icon-point > div { min-width: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.home-icon-point h3 { font-family: var(--font-body); font-size: var(--font-size-18); }

.home-dining__feature { grid-column: 1 / span 7; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-dining__feature .eyebrow { margin: 0; }
.home-dining__feature figure { width: 100%; }
.home-dining__feature img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.home-dining__feature figcaption { margin-top: var(--space-2); }
.home-dining__feature h2 { font-size: var(--font-size-32); max-width: 17ch; }
.home-dining__rail { grid-column: 8 / span 5; min-width: 0; align-self: center; display: flex; flex-direction: column; gap: var(--space-6); }
.home-rail-item { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-4); border-top: 2px solid var(--color-champagne-500); }
.home-rail-item > span { color: var(--color-ocean-700); font-size: 1.5rem; }
.home-rail-item h3 { font-family: var(--font-body); font-size: var(--font-size-18); }

.home-public__intro { width: min(100%, 45rem); margin-inline: auto; display: flex; flex-direction: column; gap: var(--space-4); text-align: left; }
.home-public__intro h2 { text-align: center; font-size: var(--font-size-32); }
.home-public__units { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-12); }
.home-public__units > article { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding-inline: var(--space-6); border-left: 1px solid var(--color-line); }
.home-public__units > article:first-child { padding-left: 0; border-left: 0; }
.home-public__units > article:last-child { padding-right: 0; }
.home-public__units > article > span { color: var(--color-ocean-700); font-size: 1.75rem; line-height: 1; }
.home-public__units h3 { font-family: var(--font-body); font-size: var(--font-size-24); }

.home-entertainment__media { grid-column: 1 / span 8; min-width: 0; }
.home-entertainment__media img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.home-entertainment__media figcaption { margin-top: var(--space-2); }
.home-entertainment__copy { grid-column: 9 / span 4; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-entertainment__copy h2 { font-size: var(--font-size-32); }
.home-family-note { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-4); border-top: 2px solid var(--color-champagne-500); }
.home-family-note .eyebrow { margin: 0; }
.home-family-note h3 { font-family: var(--font-body); font-size: var(--font-size-18); }

.home-wellness__intro { width: calc((100% - (var(--space-6) * 11)) / 12 * 6 + (var(--space-6) * 5)); display: flex; flex-direction: column; gap: var(--space-4); }
.home-wellness__intro h2 { font-size: var(--font-size-32); }
.home-wellness__stories { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--space-6); margin-top: var(--space-12); }
.home-wellness__pool { grid-column: 1 / span 7; }
.home-wellness__lounge { grid-column: 8 / span 5; }
.home-wellness__stories article { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-wellness__stories figure { width: 100%; }
.home-wellness__stories img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.home-wellness__stories figcaption { margin-top: var(--space-2); }
.home-wellness__stories h3 { font-family: var(--font-body); font-size: var(--font-size-24); }

.home-casino__lead { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--space-6); padding-bottom: var(--space-8); border-bottom: 1px solid var(--color-line); }
.home-casino__lead > div { grid-column: 1 / span 6; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.home-casino__lead h2 { font-size: var(--font-size-32); }
.home-casino__lead figure { grid-column: 7 / span 6; min-width: 0; }
.home-casino__lead img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.home-casino__lead figcaption { margin-top: var(--space-2); }
.home-casino__stories { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.home-casino__stories > article { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-casino__stories > article > img { aspect-ratio: 3 / 4; border-radius: var(--radius-md); }
.home-casino__stories .eyebrow { margin: 0; }
.home-casino__stories h3 { font-family: var(--font-body); font-size: var(--font-size-24); }
.home-casino__notes { padding-left: var(--space-6); border-left: 1px solid var(--color-line); }
.home-casino__notes > span { color: var(--color-ocean-700); font-size: 1.75rem; }
.home-casino__notes > div { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-4); border-top: 2px solid var(--color-champagne-500); }
.home-casino__notes h4 { font-size: var(--font-size-16); }

.home-planning__intro { grid-column: 1 / span 5; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.home-planning__intro h2 { font-size: var(--font-size-32); }
.home-planning__list { grid-column: 6 / span 7; min-width: 0; display: flex; flex-direction: column; gap: var(--space-6); }
.home-planning__list article { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding-top: var(--space-4); border-top: 1px solid var(--color-line); }
.home-planning__list h3 { font-family: var(--font-body); font-size: var(--font-size-24); }

.home-reading__frame { width: min(100% - (var(--page-padding) * 2), 64rem); margin-inline: auto; }
.home-reading__intro { width: min(100%, 43.75rem); margin-inline: auto; display: flex; flex-direction: column; gap: var(--space-4); text-align: center; }
.home-reading__intro p:last-child { text-align: left; }
.home-reading__intro h2 { font-size: var(--font-size-32); }
.home-reading__links { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 var(--space-8); margin-top: var(--space-8); }
.home-reading__links a { min-width: 0; min-height: 5.5rem; display: flex; flex-direction: column; justify-content: center; gap: var(--space-1); padding: var(--space-3) 0; border-top: 1px solid var(--color-line); color: var(--color-ocean-700); }
.home-reading__links a:nth-child(4) { grid-column: 2; grid-row: 1; }
.home-reading__links a:nth-child(5) { grid-column: 2; grid-row: 2; align-self: center; }
.home-reading__links strong { color: var(--color-navy-950); font-size: var(--font-size-18); }
.home-reading__links span { color: var(--color-navy-800); line-height: var(--line-height-compact); }

.home-map__copy { width: calc((100% - (var(--space-6) * 11)) / 12 * 5 + (var(--space-6) * 4)); display: flex; flex-direction: column; gap: var(--space-3); }
.home-map__copy h2 { font-family: var(--font-body); font-size: var(--font-size-24); }
.home-topic-strip { display: flex; min-width: 0; gap: var(--space-3); margin-top: var(--space-8); overflow-x: auto; padding-bottom: var(--space-2); scrollbar-color: var(--color-ocean-600) var(--color-sea-mist); }
.home-topic-strip a { flex: 0 0 10.5rem; min-width: 10.5rem; min-height: 3.25rem; display: inline-flex; align-items: center; justify-content: center; padding: var(--space-3); border: 1px solid var(--color-ocean-600); border-radius: var(--radius-md); color: var(--color-ocean-700); font-size: var(--font-size-14); font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none; }
.home-topic-strip a:hover { background: var(--color-sea-mist); color: var(--color-navy-950); }

@media (max-width: 1199px) {
  .home-hero__frame, .home-ship-rhythm__grid, .home-cabins__grid, .home-dining__grid, .home-entertainment__grid, .home-planning__grid, .home-casino__lead, .home-wellness__stories { grid-template-columns: repeat(8, minmax(0,1fr)); gap: var(--space-5, 1.25rem); }
  .home-hero__copy { grid-column: 1 / span 4; }
  .home-hero__discover { grid-column: 5 / span 4; }
  .home-ship-rhythm__intro, .home-cabins__copy, .home-planning__intro { grid-column: 1 / span 4; }
  .home-ship-rhythm__list, .home-cabins__media, .home-planning__list { grid-column: 5 / span 4; }
  .home-dining__feature { grid-column: 1 / span 5; }
  .home-dining__rail { grid-column: 6 / span 3; }
  .home-entertainment__media { grid-column: 1 / span 5; }
  .home-entertainment__copy { grid-column: 6 / span 3; }
  .home-wellness__intro { width: 75%; }
  .home-wellness__pool { grid-column: 1 / span 4; }
  .home-wellness__lounge { grid-column: 5 / span 4; }
  .home-casino__lead > div { grid-column: 1 / span 4; }
  .home-casino__lead figure { grid-column: 5 / span 4; }
  .home-casino__stories { grid-template-columns: repeat(8, minmax(0,1fr)); }
  .home-casino__stories > article:nth-child(1) { grid-column: 1 / span 4; }
  .home-casino__stories > article:nth-child(2) { grid-column: 5 / span 4; }
  .home-casino__notes { grid-column: 1 / span 8; padding-left: 0; border-left: 0; border-top: 1px solid var(--color-line); padding-top: var(--space-6); }
  .home-map__copy { width: 62%; }
}

@media (max-width: 1039px) and (min-width: 768px) {
  .home-hero { min-height: 45rem; }
  .home-hero__frame { min-height: 45rem; align-items: end; }
  .home-hero__discover { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 959px) and (min-width: 768px) {
  .home-cabins__grid, .home-dining__grid { grid-template-columns: repeat(8,minmax(0,1fr)); }
  .home-cabins__media, .home-dining__feature { grid-column: 1 / span 8; grid-row: 1; }
  .home-cabins__copy { grid-column: 1 / span 8; grid-row: 2; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-cabins__copy > :is(.eyebrow,h2,p) { grid-column: 1 / span 2; }
  .home-dining__rail { grid-column: 6 / span 3; grid-row: 2; align-self: start; }
  .home-dining__feature { padding-right: 0; }
  .home-dining__feature h2, .home-dining__feature > p, .home-dining__feature > a { width: 62%; }
}

@media (max-width: 899px) and (min-width: 768px) {
  .home-ship-rhythm__grid, .home-planning__grid { display: flex; flex-direction: column; gap: var(--space-8); }
  .home-ship-rhythm__intro, .home-planning__intro { width: 100%; }
  .home-ship-rhythm__list, .home-planning__list { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-ship-rhythm__list > article:nth-child(3), .home-planning__list > article:nth-child(3) { grid-column: 1 / span 2; }
  .home-public__units { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-6) 0; }
  .home-public__units > article:nth-child(3) { grid-column: 1 / span 2; padding-left: 0; border-left: 0; }
}

@media (max-width: 767px) {
  .home-hero { min-height: 0; display: flex; flex-direction: column; background: var(--color-white); }
  .home-hero__image { position: relative; height: auto; aspect-ratio: 16 / 9; object-position: 60% center; }
  .home-hero__shade { display: none; }
  .home-hero__frame { width: 100%; min-height: 0; display: flex; flex-direction: column; gap: var(--space-6); padding: var(--space-6) var(--page-padding) var(--space-8); }
  .home-hero__copy { width: 100%; padding: 0; gap: var(--space-4); }
  .home-hero__copy h1, .home-hero__copy p { color: var(--color-navy-950); max-width: none; }
  .home-hero__copy h1 { font-size: clamp(2.625rem, 11vw, 3rem); }
  .home-hero__copy p { font-size: var(--font-size-18); }
  .home-arrow-link--light { color: var(--color-ocean-700); }
  .home-hero__discover { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-3); }
  .home-hero__discover a { min-height: 5.5rem; box-shadow: none; }
  .home-ship-rhythm__grid, .home-cabins__grid, .home-dining__grid, .home-entertainment__grid, .home-planning__grid, .home-casino__lead, .home-wellness__stories { display: flex; flex-direction: column; gap: var(--space-6); }
  .home-ship-rhythm__intro, .home-ship-rhythm__list, .home-cabins__copy, .home-cabins__media, .home-dining__feature, .home-dining__rail, .home-entertainment__media, .home-entertainment__copy, .home-planning__intro, .home-planning__list, .home-casino__lead > div, .home-casino__lead figure, .home-wellness__pool, .home-wellness__lounge { width: 100%; }
  .home-ship-rhythm__intro h2, .home-cabins__copy h2, .home-dining__feature h2, .home-public__intro h2, .home-entertainment__copy h2, .home-wellness__intro h2, .home-casino__lead h2, .home-planning__intro h2, .home-reading__intro h2 { font-size: var(--font-size-32); }
  .home-numbered-item { grid-template-columns: 2.75rem minmax(0,1fr); }
  .home-cabins__media { order: -1; }
  .home-cabins__copy { gap: var(--space-4); }
  .home-dining__feature h2, .home-dining__feature > p, .home-dining__feature > a { width: 100%; }
  .home-dining__rail { gap: var(--space-6); }
  .home-public__intro { width: 100%; margin: 0; }
  .home-public__intro h2 { text-align: left; }
  .home-public__units { grid-template-columns: 1fr; gap: var(--space-6); margin-top: var(--space-8); }
  .home-public__units > article, .home-public__units > article:nth-child(3) { width: 100%; padding: var(--space-4) 0 0; border-left: 0; border-top: 1px solid var(--color-line); }
  .home-entertainment__copy { gap: var(--space-4); }
  .home-wellness__intro { width: 100%; }
  .home-wellness__stories { margin-top: var(--space-8); gap: var(--space-12); }
  .home-casino__lead { padding-bottom: var(--space-6); }
  .home-casino__lead figure { order: 2; }
  .home-casino__stories { grid-template-columns: 1fr; gap: var(--space-8); margin-top: var(--space-6); }
  .home-casino__stories > article:nth-child(1), .home-casino__stories > article:nth-child(2), .home-casino__notes { grid-column: auto; width: 100%; }
  .home-casino__notes { padding: var(--space-6) 0 0; border-left: 0; border-top: 1px solid var(--color-line); }
  .home-planning__list { gap: var(--space-6); }
  .home-reading__frame { width: 100%; }
  .home-reading__intro { width: 100%; }
  .home-reading__links { grid-template-columns: 1fr; gap: 0; margin-top: var(--space-6); }
  .home-reading__links a:nth-child(4), .home-reading__links a:nth-child(5) { grid-column: auto; grid-row: auto; }
  .home-map__copy { width: 100%; }
  .home-topic-strip { margin-right: calc(var(--page-padding) * -1); padding-right: var(--page-padding); }
}

@media (max-width: 479px) {
  .home-hero__discover { grid-template-columns: 1fr; }
  .home-hero__discover a { min-height: 4.5rem; }
  .home-icon-point { grid-template-columns: 1fr; gap: var(--space-2); }
}

@media (prefers-reduced-motion: reduce) {
  .home-arrow-link span, .home-hero__discover a { transition: none; }
  .home-arrow-link:hover span, .home-hero__discover a:hover { transform: none; }
}


.csc-page { overflow: hidden; }
.csc-page section[id] { scroll-margin-top: 6rem; }
.csc-arrow-link { display: inline-flex; align-items: center; gap: var(--space-2); width: fit-content; color: var(--color-ocean-700); font-weight: 700; text-decoration: underline; text-decoration-color: var(--color-champagne-500); text-decoration-thickness: .125em; text-underline-offset: .18em; }
.csc-arrow-link:hover { color: var(--color-ocean-600); text-decoration-color: var(--color-coral-500); }
.csc-hero { position: relative; min-width: 0; min-height: min(54.7vw, 42.5rem); display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; background: var(--color-sky-wash); }
.csc-hero__media { grid-column: 1; grid-row: 1; width: 100%; min-width: 0; height: 100%; }
.csc-hero__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, var(--color-overlay) 0%, rgba(16,43,63,.5) 35%, transparent 61%); pointer-events: none; }
.csc-hero__media img { width: 100%; max-height: 800px; min-width: 0; object-fit: cover; }
.csc-hero__copy { z-index: 1; grid-column: 1; grid-row: 1; width: min(100% - 4rem, 77.5rem); min-width: 0; margin-inline: auto; padding-block: clamp(3rem, 7vw, 7rem); color: var(--color-white); }
.csc-hero__copy > * { width: min(41%, 32rem); }
.csc-hero__copy :is(h1,p) { color: var(--color-white); }
.csc-hero__copy h1 { font-size: clamp(2.7rem, 5vw, 4rem); line-height: 1.04; }
.csc-hero__copy p { margin-block-end: var(--space-4); font-size: var(--font-size-18); line-height: 1.55; }
.csc-hero__copy .eyebrow { color: var(--color-white); }
.csc-hero__link { color: var(--color-white); text-decoration-color: var(--color-champagne-500); }
.csc-hero__link:hover { color: var(--color-white); text-decoration-color: var(--color-coral-500); }
.csc-map__layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.csc-map__intro { grid-column: 1 / span 7; min-width: 0; max-width: 44rem; }
.csc-map__note { grid-column: 9 / span 4; min-width: 0; align-self: end; margin-block-end: var(--space-6); color: var(--color-navy-800); }
.csc-topic-filter { grid-column: 1 / -1; display: flex; align-items: end; gap: var(--space-3); min-width: 0; }
.csc-topic-filter label { margin: 0; }
.csc-topic-filter select { width: min(100%, 18rem); }
.csc-map__cards { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); min-width: 0; }
.csc-map-card { display: block; min-width: 0; color: inherit; text-decoration: none; }
.csc-map-card .card__content { display: flex; min-width: 0; height: 100%; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.csc-map-card :is(h3,p) { margin: 0; }
.csc-map-card .csc-arrow-link { margin-top: auto; }
.csc-map-card--highlighted { border-color: var(--color-ocean-600); box-shadow: var(--focus-ring); }
.csc-connected__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.csc-connected__essay { grid-column: 2 / span 6; min-width: 0; max-width: 43.75rem; }
.csc-routes { grid-column: 9 / span 3; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.csc-routes > :is(h3,.csc-route) { margin: 0; }
.csc-route { min-width: 0; padding-inline-start: var(--space-4); border-inline-start: 1px solid var(--color-ocean-600); }
.csc-route h4 { margin-block-end: var(--space-1); font-size: var(--font-size-18); }
.csc-route p { margin: 0; }
.csc-route__label { color: var(--color-ocean-700); font-size: var(--font-size-12); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.csc-casino-callout { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); margin-top: var(--space-8); padding: var(--space-4); border-inline-start: 3px solid var(--color-coral-500); background: var(--color-white); }
.csc-casino-callout p { margin: 0; }
.csc-spaces__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.csc-spaces__intro { grid-column: 1 / span 6; min-width: 0; max-width: 43rem; }
.csc-spaces__figure { grid-column: 1 / span 7; min-width: 0; margin: 0; }
.csc-spaces__figure img, .csc-dining__figure img { width: 100%; min-width: 0; aspect-ratio: 4 / 3; border-radius: var(--radius-md); object-fit: cover; }
.csc-spaces__figure img { object-position: center; }
.csc-spaces__notes { grid-column: 9 / span 4; min-width: 0; display: flex; flex-direction: column; gap: var(--space-6); }
.csc-spaces__notes > div, .csc-spaces__notes h3, .csc-spaces__notes p { margin: 0; }
.csc-spaces__notes > div { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.csc-spaces__notes h3 { font-size: var(--font-size-24); }
.csc-lookfor { min-width: 0; padding: var(--space-4); border: 1px solid var(--color-line); border-radius: var(--radius-md); }
.csc-lookfor h3 { font-size: var(--font-size-18); }
.csc-lookfor ul { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; }
.csc-day__heading { width: 41.666%; min-width: 0; max-width: 40rem; }
.csc-day__scroller { width: 100%; min-width: 0; margin-top: var(--space-8); overflow-x: auto; scrollbar-color: var(--color-ocean-600) transparent; }
.csc-day__strip { display: grid; grid-template-columns: repeat(5, minmax(11.5625rem, 1fr)); min-width: 0; }
.csc-day-card { min-width: 0; padding: 0 var(--space-4); border-inline-start: 1px solid var(--color-line); }
.csc-day-card:first-child { padding-inline-start: 0; border-inline-start: 0; }
.csc-day-card :is(h3,p) { margin: 0; }
.csc-day-card h3 { margin-bottom: var(--space-2); font-family: var(--font-body); font-size: var(--font-size-18); }
.csc-dining__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.csc-dining__intro { grid-column: 1 / span 6; min-width: 0; max-width: 43rem; }
.csc-dining__figure { grid-column: 1 / span 7; min-width: 0; margin: 0; }
.csc-dining__figure img { object-position: center; }
.csc-dining__prompts { grid-column: 9 / span 4; min-width: 0; }
.csc-dining__prompts ol { display: flex; flex-direction: column; gap: var(--space-4); margin: 0; }
.csc-dining__prompts li { padding-inline-start: var(--space-1); }
.csc-dining__closing { grid-column: 1 / span 6; min-width: 0; max-width: 43rem; margin: 0; }
.csc-entertainment__intro { width: 58.333%; min-width: 0; max-width: 45rem; }
.csc-entertainment__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); width: 83.333%; min-width: 0; margin: var(--space-8) auto 0; }
.csc-entertainment-card { min-width: 0; }
.csc-entertainment-card .card__content { display: flex; min-width: 0; height: 100%; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.csc-entertainment-card :is(h3,p) { margin: 0; }
.csc-entertainment-card .csc-arrow-link { margin-top: auto; }
.csc-pace__heading { width: 66.666%; min-width: 0; max-width: 47rem; margin-inline: auto; text-align: center; }
.csc-pace__columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.csc-pace__columns article { min-width: 0; padding-inline: var(--space-4); border-inline-start: 1px solid var(--color-line); }
.csc-pace__columns article:first-child { padding-inline-start: 0; border-inline-start: 0; }
.csc-pace__columns :is(h3,p) { margin: 0; }
.csc-pace__columns h3 { margin-bottom: var(--space-3); }
.csc-pace__columns .csc-arrow-link { margin-top: var(--space-4); }
.csc-pace__note { width: 66.666%; min-width: 0; margin: var(--space-8) auto 0; padding: var(--space-4); background: var(--color-sky-wash); }
.csc-pace__note :is(h3,p) { margin: 0; }
.csc-pace__note h3 { margin-bottom: var(--space-2); }
.csc-plan__intro { width: 58.333%; min-width: 0; max-width: 45rem; }
.csc-plan__panels { display: grid; grid-template-columns: 5fr 4fr 3fr; gap: var(--space-6); margin-top: var(--space-8); }
.csc-plan__panels article { min-width: 0; padding-inline-start: var(--space-4); border-inline-start: 1px solid var(--color-line); }
.csc-plan__panels article:first-child { padding-inline-start: 0; border-inline-start: 0; }
.csc-plan__panels :is(h3,p) { margin: 0; }
.csc-plan__panels h3 { margin-bottom: var(--space-3); }
.csc-plan__next { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--color-line); }
.csc-plan__next p { width: min(100%, 43rem); margin: 0; }
.csc-plan__next > div { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-6); }
.csc-closing__copy { width: 58.333%; min-width: 0; max-width: 43rem; margin-inline: auto; text-align: center; }
.csc-closing__links { display: flex; min-width: 0; justify-content: center; gap: var(--space-4); margin-top: var(--space-8); }
.csc-closing__links a { display: inline-flex; min-width: 0; min-height: 2.75rem; align-items: center; gap: var(--space-2); padding: .625rem 1rem; border: 1px solid var(--color-ocean-600); border-radius: var(--radius-md); color: var(--color-ocean-700); font-size: var(--font-size-14); font-weight: 700; line-height: 1.2; text-decoration: none; }
.csc-closing__links a:hover { border-color: var(--color-ocean-700); background: var(--color-sea-mist); color: var(--color-navy-950); }
@media (max-width: 1199px) { .csc-map__layout, .csc-connected__grid, .csc-spaces__grid, .csc-dining__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 1.25rem; } .csc-hero { min-height: auto; } .csc-hero__copy { position: relative; width: 100%; padding: var(--space-8) var(--page-padding); background: var(--color-sky-wash); } .csc-hero__copy > * { width: min(100%, 34rem); } .csc-hero__copy :is(h1,p) { color: var(--color-navy-950); } .csc-hero__copy .eyebrow, .csc-hero__link { color: var(--color-ocean-700); } .csc-hero__media { height: auto; } .csc-hero__media img { aspect-ratio: 16 / 9; height: auto; } .csc-hero__media::after { display: none; } .csc-map__intro { grid-column: 1 / span 5; } .csc-map__note { grid-column: 6 / span 3; } .csc-map__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .csc-connected__essay { grid-column: 1 / span 5; } .csc-routes { grid-column: 6 / span 3; } .csc-spaces__intro { grid-column: 1 / span 6; } .csc-spaces__figure { grid-column: 1 / -1; } .csc-spaces__notes { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .csc-lookfor { grid-column: 1 / -1; } .csc-day__heading { width: 62.5%; } .csc-day__strip { display: flex; width: max-content; gap: 0; } .csc-day-card { flex: 0 0 14.375rem; width: 14.375rem; } .csc-dining__intro { grid-column: 1 / span 6; } .csc-dining__figure { grid-column: 1 / -1; } .csc-dining__prompts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); } .csc-dining__prompts h3 { grid-column: 1 / -1; } .csc-dining__prompts ol { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .csc-dining__closing { grid-column: 1 / span 6; } .csc-entertainment__intro { width: 75%; } .csc-entertainment__cards { width: 100%; } .csc-pace__heading, .csc-pace__note { width: 75%; } .csc-plan__intro { width: 75%; } .csc-plan__panels { grid-template-columns: repeat(2, minmax(0, 1fr)); } .csc-plan__panels article:nth-child(3) { grid-column: 1 / -1; } .csc-closing__copy { width: 75%; } }
@media (max-width: 899px) { .csc-connected__grid { grid-template-columns: 1fr; } .csc-connected__essay, .csc-routes { grid-column: 1; width: 100%; max-width: none; } .csc-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); } .csc-routes > h3 { grid-column: 1 / -1; } .csc-pace__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } .csc-pace__columns article:first-child { grid-column: 1 / -1; padding-inline-start: 0; border-inline-start: 0; } }
@media (max-width: 767px) { .csc-page section[id] { scroll-margin-top: 5rem; } .csc-hero__copy { padding-block: var(--space-6); } .csc-hero__copy h1 { font-size: clamp(2.25rem, 10vw, 2.625rem); } .csc-map__layout, .csc-spaces__grid, .csc-dining__grid { grid-template-columns: 1fr; gap: var(--space-6); } .csc-map__intro, .csc-map__note, .csc-topic-filter, .csc-map__cards, .csc-spaces__intro, .csc-spaces__figure, .csc-spaces__notes, .csc-dining__intro, .csc-dining__figure, .csc-dining__prompts, .csc-dining__closing { grid-column: 1; } .csc-map__note { margin: 0; } .csc-topic-filter { align-items: stretch; flex-direction: column; } .csc-topic-filter select { width: 100%; } .csc-map__cards { grid-template-columns: 1fr; gap: var(--space-4); } .csc-connected__essay h2, .csc-spaces__intro h2, .csc-day__heading h2, .csc-dining__intro h2, .csc-entertainment__intro h2, .csc-pace__heading h2, .csc-plan__intro h2, .csc-closing__copy h2 { font-size: var(--font-size-32); line-height: 1.18; } .csc-routes { grid-template-columns: 1fr; } .csc-spaces__notes { grid-template-columns: 1fr; } .csc-day__heading, .csc-entertainment__intro, .csc-pace__heading, .csc-pace__note, .csc-plan__intro, .csc-closing__copy { width: 100%; max-width: none; } .csc-day__scroller { width: calc(100% + var(--page-padding)); padding-inline-end: var(--page-padding); } .csc-day-card { flex-basis: min(78vw, 20rem); width: min(78vw, 20rem); padding: var(--space-4); border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-white); } .csc-day-card:first-child { padding: var(--space-4); border: 1px solid var(--color-line); } .csc-day__strip { gap: var(--space-3); } .csc-dining__prompts { display: block; } .csc-dining__prompts ol { display: flex; grid-column: auto; grid-template-columns: none; margin-top: var(--space-4); } .csc-entertainment__cards { grid-template-columns: 1fr; gap: var(--space-4); margin-top: var(--space-6); } .csc-pace__heading { text-align: center; } .csc-pace__columns { grid-template-columns: 1fr; gap: var(--space-6); } .csc-pace__columns article, .csc-pace__columns article:first-child { grid-column: 1; padding-inline-start: 0; border-inline-start: 0; border-top: 1px solid var(--color-line); padding-top: var(--space-4); } .csc-plan__panels { grid-template-columns: 1fr; gap: var(--space-6); } .csc-plan__panels article, .csc-plan__panels article:first-child, .csc-plan__panels article:nth-child(3) { grid-column: 1; padding-inline-start: 0; border-inline-start: 0; border-top: 1px solid var(--color-line); padding-top: var(--space-4); } .csc-plan__next > div { flex-direction: column; gap: var(--space-3); } .csc-closing__links { flex-direction: column; align-items: stretch; margin-top: var(--space-6); } .csc-closing__links a { width: 100%; justify-content: flex-start; text-align: left; } }
@media (prefers-reduced-motion: reduce) { .csc-map-card--highlighted { scroll-behavior: auto; } }


.cabins-page {
  overflow: clip;
}

.cabins-page a:focus-visible,
.cabins-page button:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

.cabins-hero {
  position: relative;
  min-height: 41rem;
  color: var(--color-white);
}

.cabins-hero__image {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, var(--color-overlay) 0%, rgba(16, 43, 63, 0.48) 44%, rgba(16, 43, 63, 0.08) 75%), url('/src/media/sunlit-balcony-stateroom.webp');
  background-position: center;
  background-size: cover;
}

.cabins-hero__frame {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 41rem;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-6);
  align-items: end;
  padding-block: var(--space-16);
}

.cabins-hero__copy {
  grid-column: 1 / span 6;
  min-width: 0;
  max-width: 36.875rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.cabins-hero__copy .eyebrow,
.cabins-hero__copy h1,
.cabins-hero__copy p {
  margin: 0;
  color: var(--color-white);
}

.cabins-hero__copy h1 {
  font-size: clamp(3rem, 5vw, 4rem);
  line-height: 1.03;
}

.cabins-hero__copy p {
  max-width: 36ch;
  font-size: var(--font-size-18);
  line-height: 1.55;
}

.cabins-hero__discovery {
  grid-column: 9 / span 4;
  min-width: 0;
  width: 100%;
  max-width: 26.25rem;
  justify-self: end;
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-floating);
  color: var(--color-ink);
}

.cabins-hero__discovery .eyebrow,
.cabins-hero__discovery-intro {
  margin: 0;
}

.cabins-hero__discovery-intro {
  margin-top: var(--space-3);
  color: var(--color-navy-800);
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.cabins-hero__discovery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.cabins-hero__discovery-grid > a {
  display: flex;
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  color: var(--color-ocean-700);
  font-size: var(--font-size-14);
  font-weight: 700;
}

.cabins-spectrum {
  padding-block: var(--space-16);
  background: var(--color-sea-mist);
}

.cabins-spectrum__intro {
  width: 58.333%;
  max-width: 38.75rem;
}

.cabins-spectrum__intro p:last-child {
  max-width: 39ch;
  font-size: var(--font-size-18);
}

.cabins-scroll-shell {
  position: relative;
  margin-top: var(--space-8);
}

.cabins-type-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
  min-width: 0;
}

.cabins-type-card {
  min-width: 0;
}

.cabins-type-card .card__content {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.cabins-type-card .card__content > * {
  margin: 0;
}

.cabins-type-card h3 {
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.cabins-type-card p {
  max-width: 34ch;
}

.cabins-type-card__marker,
.cabins-comfort__number {
  display: inline-flex;
  min-width: 2.25rem;
  min-height: 1.5rem;
  align-items: center;
  border-bottom: 2px solid var(--color-coral-500);
  color: var(--color-navy-800);
  font-size: var(--font-size-12);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.cabins-type-card__marker--blue {
  border-color: var(--color-ocean-600);
}

.cabins-type-card__marker--gold {
  border-color: var(--color-champagne-500);
}

.cabins-fit {
  margin-top: auto !important;
  color: var(--color-navy-800) !important;
  font-size: var(--font-size-14);
  line-height: var(--line-height-compact);
}

.cabins-scroll-controls {
  display: none;
}

.cabins-spectrum__image-wrap {
  display: none;
}

.cabins-location {
  padding-block: var(--space-24);
}

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

.cabins-location__content {
  grid-column: 1 / span 8;
  min-width: 0;
}

.cabins-location__content > h2,
.cabins-location__content > .eyebrow,
.cabins-location__lead {
  max-width: 42.5rem;
}

.cabins-location__lead {
  font-size: var(--font-size-18);
}

.cabins-location__media {
  grid-column: 9 / span 4;
  grid-row: 1;
  min-width: 0;
  margin: 0;
}

.cabins-location__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
}

.cabins-location__notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-8);
}

.cabins-location__notes > article {
  min-width: 0;
}

.cabins-location__notes p:last-child {
  max-width: 32ch;
  margin-bottom: 0;
}

.cabins-location__notes h3 {
  font-family: var(--font-body);
  font-size: var(--font-size-18);
}

.cabins-suite-feature {
  padding-block: 5rem;
  background: var(--color-sky-wash);
}

.cabins-suite-feature__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.cabins-suite-feature__media {
  grid-column: 1 / span 5;
  min-width: 0;
  margin: 0;
}

.cabins-suite-feature__media img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--radius-md);
}

.cabins-suite-feature__content {
  grid-column: 7 / span 6;
  min-width: 0;
  max-width: 38.75rem;
}

.cabins-suite-feature__lead {
  max-width: 38ch;
  font-size: var(--font-size-18);
}

.cabins-suite-feature__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.cabins-suite-feature__body > div {
  min-width: 0;
}

.cabins-suite-feature__body p:last-child {
  max-width: 39ch;
}

.cabins-suite-feature__callout {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-6);
  padding: var(--space-4);
  border-top: 2px solid var(--color-champagne-500);
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  border-left: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.56);
}

.cabins-suite-feature__callout > * {
  margin: 0;
}

.cabins-suite-feature__callout h3 {
  font-family: var(--font-body);
  font-size: var(--font-size-18);
}

.cabins-shared__intro {
  width: 66.666%;
  max-width: 47.5rem;
  margin-inline: auto;
  text-align: center;
}

.cabins-shared__intro p:last-child {
  max-width: 42ch;
  margin-inline: auto;
  font-size: var(--font-size-18);
}

.cabins-shared__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-8);
}

.cabins-audience-card {
  min-width: 0;
}

.cabins-audience-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.cabins-audience-card .card__content {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.cabins-audience-card .card__content > * {
  margin: 0;
}

.cabins-audience-card h3 {
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.cabins-audience-card p:last-child {
  max-width: 35ch;
}

.cabins-comfort {
  padding-block: var(--space-16);
  background: var(--color-sea-mist);
}

.cabins-comfort__lead {
  position: relative;
  width: 58.333%;
  max-width: 42.5rem;
}

.cabins-comfort__lead::after {
  position: absolute;
  top: 1.15rem;
  left: calc(100% + var(--space-6));
  width: min(26rem, 62%);
  height: 1px;
  background: var(--color-champagne-500);
  content: '';
}

.cabins-comfort__lead p:last-child {
  max-width: 40ch;
  font-size: var(--font-size-18);
}

.cabins-comfort__tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-8);
}

.cabins-comfort__tiles > article {
  min-width: 0;
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.cabins-comfort__tiles h3 {
  margin-top: var(--space-4);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.cabins-comfort__tiles p:last-child {
  max-width: 34ch;
  margin-bottom: 0;
}

.cabins-comfort__number--coral {
  border-color: var(--color-coral-500);
}

.cabins-priorities {
  padding-block: var(--space-24);
}

.cabins-priorities__lead {
  width: 50%;
  max-width: 38.75rem;
}

.cabins-priorities__lead p:last-child {
  max-width: 36ch;
  font-size: var(--font-size-18);
}

.cabins-priorities__media {
  margin: var(--space-8) 0 0;
}

.cabins-priorities__media img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.cabins-priority-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-8);
}

.cabins-priority-strip > article {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-line);
}

.cabins-priority-strip h3 {
  font-family: var(--font-body);
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.cabins-priority-strip p:last-child {
  max-width: 29ch;
  margin-bottom: 0;
}

.cabins-faq {
  padding-block: 5rem;
  background: var(--color-sky-wash);
}

.cabins-faq__intro {
  width: 66.666%;
  max-width: 45rem;
  margin-inline: auto;
  text-align: center;
}

.cabins-faq__intro p:last-child {
  max-width: 38ch;
  margin-inline: auto;
  font-size: var(--font-size-18);
}

.cabins-faq__rail {
  width: 75%;
  min-width: 0;
  margin: var(--space-8) auto 0;
  border-top: 1px solid var(--color-line);
}

.cabins-faq__item {
  min-width: 0;
  border-bottom: 1px solid var(--color-line);
}

.cabins-faq__item h3 {
  margin: 0;
}

.cabins-faq__item button {
  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) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: var(--font-size-24);
  line-height: 1.25;
  text-align: left;
}

.cabins-faq__item button:hover {
  background: transparent;
  color: var(--color-ocean-700);
}

.cabins-faq__item button span {
  flex: 0 0 auto;
  color: var(--color-ocean-700);
  font-family: var(--font-body);
  font-size: 1.75rem;
  font-weight: 400;
}

.cabins-faq__item button[aria-expanded='true'] span {
  transform: rotate(45deg);
}

.cabins-faq__answer {
  max-width: 38.75rem;
  padding-bottom: var(--space-6);
}

.cabins-faq__answer p {
  margin: 0;
}

.cabins-next {
  padding-top: var(--space-24);
  padding-bottom: var(--space-16);
}

.cabins-next__intro {
  width: 58.333%;
  max-width: 43.75rem;
}

.cabins-next__intro p:last-child {
  max-width: 40ch;
  font-size: var(--font-size-18);
}

.cabins-next__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-8);
}

.cabins-next__card {
  grid-column: span 3;
  min-width: 0;
}

.cabins-next__card--primary {
  grid-column: span 6;
}

.cabins-next__card .card__content {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.cabins-next__card .card__content > * {
  margin: 0;
}

.cabins-next__card h3 {
  font-size: var(--font-size-24);
  line-height: 1.25;
}

.cabins-next__card--primary h3 {
  font-size: var(--font-size-32);
}

.cabins-next__card p:not(.eyebrow) {
  max-width: 34ch;
}

.cabins-next__card a,
.cabins-close a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  font-weight: 700;
}

.cabins-close {
  padding-block: 5rem;
  background: var(--color-sea-mist);
}

.cabins-close__content {
  width: min(100% - (var(--page-padding) * 2), 40rem);
  min-width: 0;
  margin-inline: auto;
  text-align: center;
}

.cabins-close__content p:not(.eyebrow) {
  max-width: 35ch;
  margin-inline: auto;
  font-size: var(--font-size-18);
}

.cabins-close__content a {
  justify-content: center;
}

@media (max-width: 1199px) {
  .cabins-hero__frame,
  .cabins-location__grid,
  .cabins-suite-feature__grid,
  .cabins-next__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    column-gap: 1.25rem;
  }

  .cabins-hero {
    min-height: 38rem;
  }

  .cabins-hero__frame {
    min-height: 38rem;
  }

  .cabins-hero__copy {
    grid-column: 1 / span 5;
  }

  .cabins-hero__discovery {
    grid-column: 6 / span 3;
  }

  .cabins-hero__discovery-grid {
    grid-template-columns: 1fr;
  }

  .cabins-spectrum__intro,
  .cabins-shared__intro,
  .cabins-faq__intro {
    width: 75%;
  }

  .cabins-type-strip {
    display: flex;
    gap: var(--space-6);
    overflow-x: auto;
    padding-bottom: var(--space-3);
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--color-ocean-600) transparent;
    scrollbar-width: thin;
  }

  .cabins-type-strip::after {
    flex: 0 0 1px;
    content: '';
  }

  .cabins-type-card {
    flex: 0 0 clamp(17.5rem, 38vw, 19.375rem);
    scroll-snap-align: start;
  }

  .cabins-scroll-shell::after,
  .cabins-priority-strip::after {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    width: 3.5rem;
    height: calc(100% - var(--space-3));
    background: linear-gradient(90deg, rgba(232, 246, 245, 0), var(--color-sea-mist));
    pointer-events: none;
    content: '';
  }

  .cabins-scroll-controls {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
  }

  .cabins-scroll-button {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0;
  }

  .cabins-scroll-button:disabled {
    border-color: var(--color-line);
    background: var(--color-white);
    color: var(--color-navy-800);
  }

  .cabins-spectrum__image-wrap {
    display: block;
    width: 100%;
    max-width: 30rem;
    margin-top: var(--space-6);
  }

  .cabins-spectrum__image-wrap figure {
    margin: 0;
  }

  .cabins-spectrum__image-wrap img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-md);
  }

  .cabins-location__media {
    grid-column: 1 / span 8;
    grid-row: auto;
    order: -1;
  }

  .cabins-location__content {
    grid-column: 1 / span 8;
  }

  .cabins-location__notes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabins-suite-feature__media {
    grid-column: 1 / span 8;
  }

  .cabins-suite-feature__media img {
    aspect-ratio: 16 / 9;
  }

  .cabins-suite-feature__content {
    grid-column: 2 / span 6;
    margin-top: var(--space-6);
  }

  .cabins-shared__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabins-shared__cards > article:nth-child(3) {
    grid-column: 1 / span 1;
  }

  .cabins-comfort__lead {
    width: 75%;
  }

  .cabins-comfort__lead::after {
    display: none;
  }

  .cabins-comfort__tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabins-priorities__lead {
    width: 75%;
  }

  .cabins-priority-strip {
    position: relative;
    display: flex;
    overflow-x: auto;
    gap: var(--space-4);
    padding-bottom: var(--space-3);
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--color-ocean-600) transparent;
    scrollbar-width: thin;
  }

  .cabins-priority-strip > article {
    flex: 0 0 18.125rem;
    scroll-snap-align: start;
  }

  .cabins-faq__rail {
    width: 100%;
  }

  .cabins-next__intro {
    width: 75%;
  }

  .cabins-next__card--primary {
    grid-column: 1 / span 8;
  }

  .cabins-next__card:not(.cabins-next__card--primary) {
    grid-column: span 4;
  }
}

@media (max-width: 1019px) {
  .cabins-hero {
    min-height: auto;
    padding-top: 56.25%;
    background: var(--color-white);
  }

  .cabins-hero__image {
    bottom: auto;
    height: auto;
    aspect-ratio: 16 / 9;
    background-image: url('/src/media/sunlit-balcony-stateroom.webp');
  }

  .cabins-hero__frame {
    display: flex;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-6);
    padding-block: var(--space-6);
  }

  .cabins-hero__copy {
    width: 100%;
    max-width: 36.875rem;
    color: var(--color-ink);
  }

  .cabins-hero__copy .eyebrow,
  .cabins-hero__copy h1,
  .cabins-hero__copy p {
    color: var(--color-ink);
  }

  .cabins-hero__copy .eyebrow {
    color: var(--color-coral-500);
  }

  .cabins-hero__copy p {
    max-width: 34ch;
  }

  .cabins-hero__discovery {
    max-width: none;
    justify-self: auto;
    box-shadow: none;
  }

  .cabins-hero__discovery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .cabins-hero {
    padding-top: 59%;
  }

  .cabins-hero__frame {
    gap: var(--space-4);
    padding-block: var(--space-4) var(--space-8);
  }

  .cabins-hero__copy {
    gap: var(--space-3);
  }

  .cabins-hero__copy h1 {
    font-size: clamp(2.625rem, 11vw, 3rem);
    line-height: 1.08;
  }

  .cabins-hero__discovery {
    padding: var(--space-4);
  }

  .cabins-hero__discovery-grid {
    grid-template-columns: 1fr;
  }

  .cabins-spectrum {
    padding-block: var(--space-12);
  }

  .cabins-spectrum__intro,
  .cabins-location__content,
  .cabins-suite-feature__content,
  .cabins-shared__intro,
  .cabins-comfort__lead,
  .cabins-priorities__lead,
  .cabins-faq__intro,
  .cabins-next__intro {
    width: 100%;
    max-width: none;
  }

  .cabins-spectrum__intro p:last-child,
  .cabins-location__lead,
  .cabins-suite-feature__lead,
  .cabins-shared__intro p:last-child,
  .cabins-comfort__lead p:last-child,
  .cabins-priorities__lead p:last-child,
  .cabins-faq__intro p:last-child,
  .cabins-next__intro p:last-child {
    max-width: 40ch;
  }

  .cabins-scroll-controls {
    display: none;
  }

  .cabins-type-strip {
    gap: var(--space-4);
  }

  .cabins-type-card {
    flex-basis: 84vw;
  }

  .cabins-scroll-shell::after {
    width: 2.25rem;
  }

  .cabins-location {
    padding-block: var(--space-12);
  }

  .cabins-location__grid,
  .cabins-suite-feature__grid,
  .cabins-next__grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-6);
  }

  .cabins-location__media,
  .cabins-location__content,
  .cabins-suite-feature__media,
  .cabins-suite-feature__content,
  .cabins-next__card,
  .cabins-next__card--primary {
    width: 100%;
    min-width: 0;
  }

  .cabins-location__notes {
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin-top: var(--space-6);
  }

  .cabins-location__notes > article {
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-line);
  }

  .cabins-location__notes > article:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .cabins-suite-feature {
    padding-block: var(--space-12);
  }

  .cabins-suite-feature__media img {
    aspect-ratio: 3 / 4;
  }

  .cabins-suite-feature__content {
    margin-top: 0;
  }

  .cabins-shared__intro,
  .cabins-faq__intro {
    margin-inline: 0;
    text-align: left;
  }

  .cabins-shared__intro p:last-child,
  .cabins-faq__intro p:last-child {
    margin-inline: 0;
  }

  .cabins-shared__cards,
  .cabins-comfort__tiles {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .cabins-shared__cards > article:nth-child(3) {
    grid-column: auto;
  }

  .cabins-comfort {
    padding-block: var(--space-12);
  }

  .cabins-comfort__tiles > article {
    padding: var(--space-5, 1.25rem);
  }

  .cabins-priorities {
    padding-block: var(--space-12);
  }

  .cabins-priority-strip {
    gap: var(--space-4);
  }

  .cabins-priority-strip > article {
    flex-basis: 82vw;
  }

  .cabins-priority-strip::after {
    width: 2.25rem;
  }

  .cabins-faq {
    padding-block: var(--space-12);
  }

  .cabins-faq__rail {
    margin-top: var(--space-6);
  }

  .cabins-faq__item button {
    min-height: 2.75rem;
    padding: var(--space-4);
    font-size: 1.25rem;
  }

  .cabins-faq__answer {
    max-width: none;
    padding: 0 var(--space-4) var(--space-4);
  }

  .cabins-next {
    padding-block: var(--space-12);
  }

  .cabins-next__grid {
    gap: var(--space-4);
    margin-top: var(--space-6);
  }

  .cabins-next__card--primary h3 {
    font-size: var(--font-size-32);
  }

  .cabins-close {
    padding-block: var(--space-12);
  }

  .cabins-close__content {
    width: min(100% - (var(--page-padding) * 2), 40rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabins-faq__item button[aria-expanded='true'] span {
    transform: none;
  }
}


.thank-you-page {
  display: grid;
  min-height: clamp(30rem, 62vh, 42rem);
  place-items: center;
  padding-block: var(--space-16);
  background: linear-gradient(180deg, var(--color-white) 0%, var(--color-sky-wash) 100%);
}

.thank-you-page__panel {
  width: min(100%, 46rem);
  padding: clamp(var(--space-8), 5vw, var(--space-12));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-floating);
  text-align: center;
}

.thank-you-page__mark {
  display: grid;
  width: 3.25rem;
  height: 3.25rem;
  margin-inline: auto;
  margin-block-end: var(--space-6);
  place-items: center;
  border: 1px solid var(--color-champagne-500);
  border-radius: 50%;
  color: var(--color-ocean-700);
}

.thank-you-page__mark svg {
  width: 1.7rem;
  height: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.thank-you-page__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.thank-you-page__content > * {
  margin-block: 0;
}

.thank-you-page__title {
  margin-inline: auto;
}

.thank-you-page__copy {
  max-width: 38rem;
  margin-inline: auto;
  color: var(--color-navy-800);
  font-size: var(--font-size-18);
  line-height: 1.55;
  text-align: center;
}

.thank-you-page__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
  margin-block-start: var(--space-4);
}

.thank-you-page__actions .button {
  min-width: 11.5rem;
}

@media (max-width: 767px) {
  .thank-you-page {
    min-height: calc(100vh - 8rem);
    padding-block: var(--space-12);
  }

  .thank-you-page__panel {
    padding: var(--space-8) var(--space-6);
  }

  .thank-you-page__copy {
    font-size: var(--font-size-16);
  }

  .thank-you-page__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .thank-you-page__actions .button {
    width: 100%;
  }
}