

@charset "UTF-8";

:root {
  --color-ocean-navy: #0A1628;
  --color-midnight-black: #050A12;
  --color-dark-slate: #1A2638;
  --color-slate-line: #2C3A4F;
  --color-rich-gold: #C9A227;
  --color-champagne-brass: #E3C77B;
  --color-seafoam-cyan: #6FD6C3;
  --color-warm-amber: #F0A85C;
  --color-ivory: #F4F1EA;
  --color-mist: #A8B4C4;
  --color-deep-teal: #0E3B3A;
  --color-success-green: #4CAF7D;
  --color-warning-amber: #D98E3B;

  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;

  --text-display-size: clamp(2.75rem, 6vw, 5.25rem);
  --text-display-line-height: 1.02;
  --text-display-weight: 600;
  --text-display-letter-spacing: -0.02em;

  --text-h1-size: clamp(2.25rem, 4.5vw, 3.75rem);
  --text-h1-line-height: 1.08;
  --text-h1-weight: 600;
  --text-h1-letter-spacing: -0.015em;

  --text-h2-size: clamp(1.75rem, 3vw, 2.5rem);
  --text-h2-line-height: 1.15;
  --text-h2-weight: 600;
  --text-h2-letter-spacing: -0.01em;

  --text-h3-size: clamp(1.25rem, 2vw, 1.625rem);
  --text-h3-line-height: 1.25;
  --text-h3-weight: 600;
  --text-h3-letter-spacing: -0.005em;

  --text-h4-size: 1.125rem;
  --text-h4-line-height: 1.3;
  --text-h4-weight: 600;
  --text-h4-letter-spacing: 0;

  --text-body-lg-size: 1.125rem;
  --text-body-lg-line-height: 1.65;
  --text-body-lg-weight: 400;

  --text-body-size: 1rem;
  --text-body-line-height: 1.65;
  --text-body-weight: 400;

  --text-body-sm-size: 0.875rem;
  --text-body-sm-line-height: 1.55;
  --text-body-sm-weight: 400;

  --text-caption-size: 0.8125rem;
  --text-caption-line-height: 1.45;
  --text-caption-weight: 500;
  --text-caption-letter-spacing: 0.01em;

  --text-label-size: 0.75rem;
  --text-label-line-height: 1.2;
  --text-label-weight: 600;
  --text-label-letter-spacing: 0.12em;

  --text-cta-size: 1rem;
  --text-cta-line-height: 1.2;
  --text-cta-weight: 600;
  --text-cta-letter-spacing: 0.01em;

  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
  --space-3xl: 8rem;

  --container-max: 1200px;
  --container-padding-mobile: 24px;
  --container-padding-desktop: 40px;

  --surface-base: var(--color-ocean-navy);
  --surface-elevated: var(--color-dark-slate);
  --surface-deep: var(--color-midnight-black);
  --surface-line: var(--color-slate-line);

  --shadow-card: 0 8px 24px rgba(5, 10, 18, 0.45);

  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  --focus-ring-width: 2px;
  --focus-ring-offset: 2px;
  --focus-ring-color: var(--color-seafoam-cyan);

  --header-height-mobile: 64px;
  --header-height-desktop: 80px;

  --transition-fast: 160ms ease-out;
  --transition-medium: 200ms ease-out;
  --transition-slow: 240ms ease-out;
  --transition-image-fade: 300ms ease-out;
}

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

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height-mobile);
}

@media (min-width: 768px) {
  html {
    scroll-padding-top: var(--header-height-desktop);
  }
}

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

body {
  font-family: var(--font-body);
  font-size: var(--text-body-size);
  font-weight: var(--text-body-weight);
  line-height: var(--text-body-line-height);
  color: var(--color-ivory);
  background-color: var(--surface-base);
  min-height: 100vh;
  min-width: 320px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

img {
  border: 0;
}

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

button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  text-align: inherit;
  font: inherit;
  color: inherit;
  -webkit-appearance: none;
  appearance: none;
}

button:disabled {
  cursor: not-allowed;
}

a {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-champagne-brass);
}

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

ul,
ol {
  list-style-position: inside;
}

ul {
  list-style-type: disc;
}

ol {
  list-style-type: decimal;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  color: var(--color-ivory);
  font-weight: var(--text-h1-weight);
  margin-block-end: var(--space-sm);
}

h1 {
  font-size: var(--text-h1-size);
  line-height: var(--text-h1-line-height);
  letter-spacing: var(--text-h1-letter-spacing);
}

h2 {
  font-size: var(--text-h2-size);
  line-height: var(--text-h2-line-height);
  letter-spacing: var(--text-h2-letter-spacing);
}

h3 {
  font-family: var(--font-body);
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-letter-spacing);
}

h4 {
  font-family: var(--font-body);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-letter-spacing);
}

h5,
h6 {
  font-family: var(--font-body);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  font-weight: 600;
}

p {
  margin-block-end: var(--space-md);
}

p:last-child {
  margin-block-end: 0;
}

ul,
ol {
  margin-block-end: var(--space-md);
  padding-inline-start: var(--space-md);
}

ul:last-child,
ol:last-child {
  margin-block-end: 0;
}

blockquote {
  margin-block-end: var(--space-md);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-rich-gold);
  color: var(--color-mist);
  font-style: italic;
}

blockquote:last-child {
  margin-block-end: 0;
}

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

figure:last-child {
  margin-block-end: 0;
}

figcaption {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: var(--text-caption-weight);
  letter-spacing: var(--text-caption-letter-spacing);
  color: var(--color-mist);
  margin-block-start: var(--space-2xs);
}

hr {
  border: none;
  border-block-start: 1px solid var(--color-slate-line);
  opacity: 0.6;
  margin-block: var(--space-lg);
}

table {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: var(--space-md);
}

table:last-child {
  margin-block-end: 0;
}

th,
td {
  padding: var(--space-xs) var(--space-sm);
  text-align: start;
  border-block-end: 1px solid var(--color-slate-line);
  vertical-align: top;
}

th {
  font-weight: 600;
  color: var(--color-ivory);
}

td {
  color: var(--color-mist);
}

label {
  display: block;
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-champagne-brass);
  margin-block-end: var(--space-2xs);
}

input,
select,
textarea {
  width: 100%;
  background-color: var(--color-midnight-black);
  color: var(--color-ivory);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-sm);
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  transition: border-color var(--transition-fast);
}

input::placeholder,
textarea::placeholder {
  color: var(--color-mist);
  opacity: 0.7;
}

input:hover,
select:hover,
textarea:hover {
  border-color: var(--color-champagne-brass);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--color-seafoam-cyan);
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}

textarea {
  min-height: 120px;
  resize: vertical;
}

select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23A8B4C4' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-sm) center;
  padding-inline-end: var(--space-lg);
}

fieldset {
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-block-end: var(--space-md);
}

fieldset:last-child {
  margin-block-end: 0;
}

legend {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-champagne-brass);
  padding-inline: var(--space-2xs);
}

.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
}

@media (min-width: 768px) {
  .container {
    padding-inline: var(--container-padding-desktop);
  }
}

.container-full {
  width: 100%;
}

.surface-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
}

.surface-card > :last-child {
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .surface-card {
    padding: var(--space-lg);
  }
}

.surface-panel {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
}

.surface-panel > :last-child {
  margin-block-end: 0;
}

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

.surface-deep > :last-child {
  margin-block-end: 0;
}

.label-uppercase {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-rich-gold);
}

.text-caption {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: var(--text-caption-weight);
  letter-spacing: var(--text-caption-letter-spacing);
  color: var(--color-mist);
}

.text-body-lg {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  font-weight: var(--text-body-lg-weight);
}

.text-body-sm {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  font-weight: var(--text-body-sm-weight);
}

.text-ivory {
  color: var(--color-ivory);
}

.text-mist {
  color: var(--color-mist);
}

.text-gold {
  color: var(--color-rich-gold);
}

.text-champagne {
  color: var(--color-champagne-brass);
}

.text-seafoam {
  color: var(--color-seafoam-cyan);
}

.text-amber {
  color: var(--color-warm-amber);
}

.text-success {
  color: var(--color-success-green);
}

.text-warning {
  color: var(--color-warning-amber);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  font-size: var(--text-cta-size);
  line-height: var(--text-cta-line-height);
  font-weight: var(--text-cta-weight);
  letter-spacing: var(--text-cta-letter-spacing);
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  padding: var(--space-sm) 1.75rem;
  text-decoration: none;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
  min-height: 44px;
  cursor: pointer;
  border: 1px solid transparent;
}

.btn-primary {
  background-color: var(--color-rich-gold);
  color: var(--color-midnight-black);
  border-color: var(--color-rich-gold);
}

.btn-primary:hover {
  background-color: var(--color-champagne-brass);
  border-color: var(--color-champagne-brass);
  color: var(--color-midnight-black);
}

.btn-secondary {
  background-color: transparent;
  color: var(--color-ivory);
  border-color: var(--color-champagne-brass);
}

.btn-secondary:hover {
  background-color: rgba(227, 199, 123, 0.1);
  border-color: var(--color-champagne-brass);
  color: var(--color-champagne-brass);
}

.btn-external-icon {
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.divider {
  border: none;
  border-block-start: 1px solid var(--color-slate-line);
  opacity: 0.6;
  margin-block: var(--space-lg);
}

.divider-gold {
  border: none;
  border-block-start: 1px solid var(--color-rich-gold);
  opacity: 0.5;
  margin-block: var(--space-lg);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-rich-gold);
  margin-block-end: var(--space-sm);
}

.eyebrow::before {
  content: "";
  display: inline-block;
  width: 2rem;
  height: 1px;
  background-color: var(--color-champagne-brass);
  opacity: 0.6;
}

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

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-sm);
  z-index: 10000;
  background-color: var(--color-rich-gold);
  color: var(--color-midnight-black);
  padding: var(--space-xs) var(--space-md);
  border-radius: var(--radius-sm);
  font-weight: 600;
  text-decoration: none;
  transition: top var(--transition-fast);
}

.skip-link:focus {
  top: var(--space-sm);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* Header component styles */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--surface-base);
  border-bottom: 1px solid transparent;
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.site-header.is-scrolled {
  background-color: var(--surface-deep);
  border-bottom-color: var(--color-slate-line);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-height-mobile);
  padding-block: var(--space-2xs);
}

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

.site-header__logo {
  width: 30px;
  height: 30px;
  object-fit: contain;
  flex-shrink: 0;
}

.site-header__brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.site-header__brand-name {
  font-family: var(--font-heading);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-ivory);
  white-space: nowrap;
}

.site-header__brand-region {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-champagne-brass);
  white-space: nowrap;
}

.site-header__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-sm);
  color: var(--color-ivory);
  transition: background-color var(--transition-fast), color var(--transition-fast);
  flex-shrink: 0;
}

.site-header__toggle:hover {
  background-color: rgba(227, 199, 123, 0.1);
  color: var(--color-champagne-brass);
}

.site-header__toggle-icon,
.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
  display: block;
  width: 20px;
  height: 2px;
  background-color: currentColor;
  border-radius: 1px;
  transition: transform var(--transition-medium), opacity var(--transition-medium);
}

.site-header__toggle-icon {
  position: relative;
}

.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
  content: "";
  position: absolute;
  left: 0;
}

.site-header__toggle-icon::before {
  top: -6px;
}

.site-header__toggle-icon::after {
  top: 6px;
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon {
  background-color: transparent;
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon::before {
  transform: translateY(6px) rotate(45deg);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon::after {
  transform: translateY(-6px) rotate(-45deg);
}

.site-header__nav {
  display: none;
  position: fixed;
  top: var(--header-height-mobile);
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--surface-deep);
  overflow-y: auto;
  padding: var(--space-md) var(--container-padding-mobile) var(--space-lg);
  z-index: 999;
  flex-direction: column;
  gap: var(--space-md);
}

.site-header__nav.is-open {
  display: flex;
}

.site-header__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.site-header__nav-item {
  margin: 0;
}

.site-header__nav-link {
  display: block;
  padding: var(--space-xs) var(--space-sm);
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--color-ivory);
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.site-header__nav-link:hover {
  background-color: rgba(227, 199, 123, 0.1);
  color: var(--color-champagne-brass);
}

.site-header__cta {
  margin-top: auto;
  width: 100%;
}

.site-header__cta--desktop {
  display: none;
}

@media (min-width: 768px) {
  .site-header__inner {
    display: grid;
    max-width: 1440px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand cta"
      "nav nav";
    row-gap: var(--space-2xs);
    min-height: var(--header-height-desktop);
    padding-block: var(--space-xs);
  }

  .site-header__brand {
    grid-area: brand;
  }

  .site-header__logo {
    width: 36px;
    height: 36px;
  }

  .site-header__brand-name {
    font-size: 1rem;
  }

  .site-header__brand-region {
    font-size: 0.6875rem;
  }

  .site-header__toggle {
    display: none;
  }

  .site-header__nav {
    grid-area: nav;
    display: flex;
    position: static;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0;
    background-color: transparent;
    overflow: visible;
    padding: 0;
    z-index: auto;
  }

  .site-header__nav-list {
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
    gap: var(--space-xs);
  }

  .site-header__nav-link {
    padding: var(--space-2xs) var(--space-xs);
    font-size: 0.9375rem;
    font-weight: 500;
    white-space: nowrap;
  }

  .site-header__cta--mobile {
    display: none;
  }

  .site-header__cta--desktop {
    grid-area: cta;
    display: inline-flex;
    align-items: center;
    margin-top: 0;
    width: auto;
    white-space: nowrap;
  }
}

@media (min-width: 1280px) {
  .site-header__inner {
    grid-template-columns: max-content minmax(max-content, 1fr) max-content;
    grid-template-areas: "brand nav cta";
    column-gap: clamp(var(--space-sm), 1.5vw, var(--space-md));
    row-gap: 0;
    padding-block: var(--space-2xs);
  }

  .site-header__nav {
    justify-content: flex-end;
  }

  .site-header__nav-list {
    width: auto;
    justify-content: flex-end;
    gap: clamp(var(--space-3xs), 0.75vw, var(--space-xs));
  }

  .site-header__logo {
    width: 40px;
    height: 40px;
  }

  .site-header__brand-name {
    font-size: 1.0625rem;
  }

  .site-header__nav-link {
    padding-inline: var(--space-2xs);
    font-size: 0.9375rem;
  }

  .site-header__cta--desktop {
    padding-inline: 1.25rem;
    font-size: 0.9375rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .site-header__toggle-icon,
  .site-header__toggle-icon::before,
  .site-header__toggle-icon::after,
  .site-header__nav-link {
    transition: none;
  }
}


/* Footer and consent banner styles */
.site-footer {
  background-color: var(--surface-base);
  border-top: 1px solid var(--color-slate-line);
  padding-block: var(--space-xl) var(--space-lg);
  margin-top: var(--space-2xl);
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.site-footer__brand-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  text-decoration: none;
  color: var(--color-ivory);
}

.site-footer__logo {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.site-footer__brand-name {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.site-footer__brand-tagline {
  margin-top: var(--space-xs);
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  max-width: 40ch;
}

.site-footer__nav {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.site-footer__nav-heading {
  font-family: var(--font-body);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-rich-gold);
  margin-bottom: var(--space-sm);
}

.site-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.site-footer__nav-list a {
  color: var(--color-mist);
  text-decoration: none;
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  transition: color var(--transition-fast);
}

.site-footer__nav-list a:hover {
  color: var(--color-champagne-brass);
}

.site-footer__responsible-text {
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  margin-bottom: var(--space-xs);
}

.site-footer__responsible-link {
  color: var(--color-seafoam-cyan);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

.site-footer__responsible-link:hover {
  color: var(--color-champagne-brass);
}

.site-footer__disclaimer {
  border-top: 1px solid var(--color-slate-line);
  padding-top: var(--space-md);
}

.site-footer__disclaimer p {
  color: var(--color-mist);
  font-size: 0.8125rem;
  line-height: 1.5;
  }

.site-footer__bottom {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  border-top: 1px solid var(--color-slate-line);
  padding-top: var(--space-md);
}

.site-footer__copyright {
  color: var(--color-mist);
  font-size: 0.8125rem;
  line-height: 1.5;
}

.site-footer__contact {
  color: var(--color-mist);
  font-size: 0.8125rem;
  line-height: 1.5;
}

.site-footer__contact a {
  color: var(--color-seafoam-cyan);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.site-footer__contact a:hover {
  color: var(--color-champagne-brass);
}

@media (min-width: 768px) {
  .site-footer__inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--space-xl);
  }

  .site-footer__nav {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
  }

  .site-footer__disclaimer,
  .site-footer__bottom {
    grid-column: 1 / -1;
  }

  .site-footer__bottom {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

/* Consent banner */
.consent-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10000;
  background-color: var(--surface-deep);
  border-top: 1px solid var(--color-slate-line);
  box-shadow: 0 -4px 12px rgba(5, 10, 18, 0.3);
  padding-block: var(--space-md);
  transform: translateY(100%);
  transition: transform var(--transition-medium);
}

.consent-banner.is-visible {
  transform: translateY(0);
}

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

.consent-banner__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.consent-banner__text {
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  margin: 0;
}

.consent-banner__text a {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.consent-banner__text a:hover {
  color: var(--color-champagne-brass);
}

.consent-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

.consent-banner__accept,
.consent-banner__reject {
  flex: 1 1 auto;
  min-width: 120px;
}

@media (min-width: 768px) {
  .consent-banner__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .consent-banner__text {
    max-width: 60%;
  }

  .consent-banner__actions {
    flex-shrink: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .consent-banner {
    transition: none;
  }
}


/* Page-owned styles for Terms and Conditions */

.terms-page {
  padding-block: var(--space-xl) var(--space-2xl);
}

.terms-container {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
}

@media (min-width: 768px) {
  .terms-container {
    padding-inline: var(--container-padding-desktop);
  }
}

.terms-hero {
  margin-block-end: var(--space-lg);
}

.terms-hero h1 {
  color: var(--color-rich-gold);
  margin-block-end: var(--space-sm);
}

.terms-hero-deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-ivory);
  max-width: 68ch;
  margin-block-end: var(--space-sm);
}

.terms-effective-date {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-champagne-brass);
  margin-block-end: 0;
}

.terms-toc {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-block-end: var(--space-xl);
  padding: var(--space-md);
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
}

.terms-toc-heading {
  font-family: var(--font-body);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-champagne-brass);
  margin-block-end: 0;
}

.terms-toc-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.terms-toc-list li {
  margin: 0;
  padding: 0;
}

.terms-toc-list a {
  display: inline-block;
  min-height: 44px;
  padding-block: var(--space-2xs);
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.terms-toc-list a:hover {
  color: var(--color-champagne-brass);
}

.terms-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-block-end: var(--space-xl);
  padding-block-end: var(--space-lg);
  border-block-end: 1px solid var(--color-slate-line);
}

.terms-section:last-child {
  border-block-end: none;
  padding-block-end: 0;
  margin-block-end: 0;
}

.terms-section h2 {
  color: var(--color-rich-gold);
  margin-block-end: 0;
}

.terms-section-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.terms-section-body h3 {
  color: var(--color-ivory);
  margin-block-end: var(--space-sm);
}

.terms-section-body p {
  color: var(--color-ivory);
}

.terms-section-body ul {
  max-width: 68ch;
  color: var(--color-mist);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  margin-block-end: var(--space-sm);
  padding-inline-start: var(--space-md);
}

.terms-section-body ul:last-child {
  margin-block-end: 0;
}

.terms-definition-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin: 0;
  padding: 0;
  list-style: none;
}

.terms-definition-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  padding-block-end: var(--space-sm);
  border-block-end: 1px solid var(--color-slate-line);
}

.terms-definition-item:last-child {
  border-block-end: none;
  padding-block-end: 0;
}

.terms-definition-item dt {
  font-weight: 600;
  color: var(--color-rich-gold);
}

.terms-definition-item dd {
  margin: 0;
  color: var(--color-ivory);
  max-width: 68ch;
}

.terms-age-notice {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-md);
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  margin-block-start: var(--space-sm);
}

.terms-age-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 48px;
  min-height: 32px;
  padding-inline: var(--space-xs);
  background-color: var(--color-warning-amber);
  color: var(--color-midnight-black);
  font-weight: 600;
  font-size: var(--text-body-sm-size);
  line-height: 1;
  border-radius: var(--radius-pill);
}

.terms-age-copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.terms-age-copy h3 {
  margin-block-end: 0;
}

.terms-age-copy p {
  }

.terms-age-copy ul {
  max-width: 68ch;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  margin-block-end: 0;
}

.terms-address {
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
}

.terms-contact-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.terms-contact-list li {
  color: var(--color-ivory);
}

.terms-contact-list a {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.terms-contact-list a:hover {
  color: var(--color-champagne-brass);
}

.terms-date-highlight {
  color: var(--color-champagne-brass);
  font-weight: 600;
}

@media (min-width: 768px) {
  .terms-hero {
    margin-block-end: var(--space-xl);
  }

  .terms-toc {
    margin-block-end: var(--space-2xl);
  }

  .terms-section {
    margin-block-end: var(--space-2xl);
    padding-block-end: var(--space-xl);
  }

  .terms-age-notice {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-md);
  }

  .terms-age-badge {
    flex-shrink: 0;
  }
}

@media (max-width: 767px) {
  .terms-page {
    padding-block-start: var(--space-lg);
    padding-block-end: var(--space-xl);
  }

  .terms-hero h1 {
    font-size: var(--text-h2-size);
    line-height: var(--text-h2-line-height);
  }

  .terms-section {
    margin-block-end: var(--space-xl);
    padding-block-end: var(--space-lg);
  }
}


/* Cookie Policy Page Styles */

.cookie-policy-page {
  padding-block: var(--space-xl) var(--space-2xl);
}

.cookie-policy-layout {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
}

@media (min-width: 768px) {
  .cookie-policy-layout {
    padding-inline: var(--container-padding-desktop);
  }
}

@media (min-width: 1024px) {
  .cookie-policy-layout {
    grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--space-xl);
  }
}

/* Table of Contents */
.cookie-policy-toc {
  display: none;
}

@media (min-width: 1024px) {
  .cookie-policy-toc {
    display: block;
    position: sticky;
    top: calc(var(--header-height-desktop) + var(--space-md));
    max-height: calc(100vh - var(--header-height-desktop) - var(--space-md) * 2);
    overflow-y: auto;
    padding-inline-end: var(--space-sm);
  }
}

.cookie-policy-toc__label {
  display: block;
  margin-block-end: var(--space-sm);
  color: var(--color-rich-gold);
}

.cookie-policy-toc__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.cookie-policy-toc__link {
  display: block;
  padding: var(--space-2xs) var(--space-xs);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  text-decoration: none;
  border-inline-start: 2px solid transparent;
  transition: color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.cookie-policy-toc__link:hover {
  color: var(--color-champagne-brass);
  background-color: rgba(227, 199, 123, 0.05);
}

.cookie-policy-toc__link.is-active {
  color: var(--color-ivory);
  border-inline-start-color: var(--color-rich-gold);
  background-color: rgba(201, 162, 39, 0.08);
}

.cookie-policy-toc__link:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}

/* Main Content */
.cookie-policy-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

@media (min-width: 768px) {
  .cookie-policy-content {
    gap: var(--space-2xl);
  }
}

.cookie-policy-hero {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding-block-end: var(--space-md);
  border-block-end: 1px solid var(--color-slate-line);
}

.cookie-policy-title {
  margin-block-end: 0;
}

.cookie-policy-lead {
  max-width: 68ch;
  margin-block-end: 0;
  color: var(--color-mist);
}

/* Sections */
.cookie-policy-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  scroll-margin-top: calc(var(--header-height-mobile) + var(--space-md));
}

@media (min-width: 768px) {
  .cookie-policy-section {
    scroll-margin-top: calc(var(--header-height-desktop) + var(--space-md));
  }
}

.cookie-policy-section__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding-block-end: var(--space-sm);
  border-block-end: 1px solid var(--color-champagne-brass);
  opacity: 0.6;
}

.cookie-policy-section__header h2 {
  margin-block-end: 0;
}

.cookie-policy-section__body {
  min-width: 0;
}

.cookie-policy-copy {
  max-width: 68ch;
}

.cookie-policy-copy p,
.cookie-policy-copy ul,
.cookie-policy-copy ol {
  max-width: 68ch;
}

.cookie-policy-copy li {
  max-width: 60ch;
}

.cookie-policy-date-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2xs) var(--space-sm);
  background-color: var(--color-warning-amber);
  color: var(--color-midnight-black);
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}

/* Definition Section */
.cookie-policy-section--definition {
  background-color: rgba(14, 59, 58, 0.25);
  padding: var(--space-md);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-slate-line);
}

@media (min-width: 768px) {
  .cookie-policy-section--definition {
    padding: var(--space-lg);
  }
}

.cookie-policy-section--definition .cookie-policy-section__header {
  border-block-end-color: var(--color-slate-line);
}

/* Types of Cookies Cards */
.cookie-policy-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

@media (min-width: 768px) {
  .cookie-policy-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.cookie-policy-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.cookie-policy-card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  box-shadow: var(--shadow-card);
}

.cookie-policy-card__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cookie-policy-card__label {
  align-self: flex-start;
}

.cookie-policy-card h3 {
  margin-block-end: 0;
}

.cookie-policy-card p {
  margin-block-end: 0;
  color: var(--color-mist);
}

/* Managing Cookies */
.cookie-policy-managing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 768px) {
  .cookie-policy-managing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.cookie-policy-managing-block {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.cookie-policy-managing-block h3 {
  margin-block-end: 0;
}

.cookie-policy-managing-block p,
.cookie-policy-managing-block ul,
.cookie-policy-managing-block ol {
  margin-block-end: 0;
}

.cookie-policy-list {
  padding-inline-start: var(--space-md);
  margin-block-end: 0;
}

.cookie-policy-list--ordered {
  list-style-type: decimal;
}

.cookie-policy-list li {
  margin-block-end: var(--space-2xs);
}

.cookie-policy-list li:last-child {
  margin-block-end: 0;
}

/* Legal Section */
.cookie-policy-section--legal {
  background-color: rgba(14, 59, 58, 0.25);
  padding: var(--space-md);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-slate-line);
}

@media (min-width: 768px) {
  .cookie-policy-section--legal {
    padding: var(--space-lg);
  }
}

.cookie-policy-section--legal .cookie-policy-section__header {
  border-block-end-color: var(--color-slate-line);
}

/* Contact Card */
.cookie-policy-contact-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  max-width: 600px;
  margin-block-start: var(--space-md);
}

.cookie-policy-contact-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cookie-policy-contact-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xs);
}

.cookie-policy-contact-item dt {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-rich-gold);
}

.cookie-policy-contact-item dd {
  margin: 0;
  color: var(--color-ivory);
  max-width: 40ch;
}

.cookie-policy-contact-item a {
  color: var(--color-seafoam-cyan);
}

.cookie-policy-contact-item a:hover {
  color: var(--color-champagne-brass);
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .cookie-policy-page {
    padding-block: var(--space-lg) var(--space-xl);
  }

  .cookie-policy-layout {
    gap: var(--space-lg);
  }

  .cookie-policy-content {
    gap: var(--space-xl);
  }

  .cookie-policy-section__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .cookie-policy-date-badge {
    align-self: flex-start;
  }

  .cookie-policy-section--definition,
  .cookie-policy-section--legal {
    padding: var(--space-md);
  }

  .cookie-policy-contact-card {
    max-width: 100%;
  }
}


#contact-main {
  display: block;
}

.contact-hero {
  background: linear-gradient(180deg, #0A1628 0%, #050A12 100%);
  padding: var(--space-2xl) var(--container-padding-mobile) var(--space-xl);
  text-align: center;
}

.contact-hero__inner {
  max-width: 720px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.contact-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.contact-hero__intro {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  font-weight: var(--text-body-lg-weight);
  color: var(--color-mist);
  max-width: 48ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.contact-methods {
  padding-block: var(--space-2xl);
}

.contact-methods__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.contact-methods__heading {
  margin-block-end: 0;
}

.contact-methods__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.contact-method-card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.contact-method-card__icon {
  color: var(--color-rich-gold);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.contact-method-card__title {
  font-family: var(--font-body);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.contact-method-card__value {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  font-weight: 600;
  color: var(--color-champagne-brass);
  text-decoration: none;
  max-width: 30ch;
  overflow-wrap: anywhere;
}

.contact-method-card__value:hover {
  color: var(--color-seafoam-cyan);
}

.contact-method-card__address {
  font-style: normal;
  color: var(--color-ivory);
  text-decoration: none;
}

.contact-method-card__description {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  color: var(--color-mist);
  max-width: 30ch;
  margin-block-end: 0;
}

.contact-form-section {
  padding-block: var(--space-2xl);
}

.contact-form-section__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.contact-form-section__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.contact-form-section__heading {
  margin-block-end: 0;
}

.contact-form-section__text {
  color: var(--color-mist);
  margin-block-end: 0;
}

.contact-form {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  min-width: 0;
}

.contact-form__error {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  color: var(--color-warning-amber);
  margin-block-end: 0;
}

.contact-form__submit {
  align-self: flex-start;
}

.response-expectations {
  padding-block: var(--space-2xl);
}

.response-expectations__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.response-expectations__heading {
  margin-block-end: 0;
}

.response-expectations__content {
  border-inline-start: 2px solid var(--color-rich-gold);
  padding-inline-start: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.response-expectations__text {
  color: var(--color-ivory);
  max-width: 68ch;
  margin-block-end: 0;
}

.response-expectations__highlight {
  color: var(--color-rich-gold);
}

.contact-faq {
  padding-block: var(--space-2xl);
}

.contact-faq__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.contact-faq__heading {
  margin-block-end: 0;
}

.contact-faq__accordion {
  border-block-start: 1px solid var(--color-slate-line);
  display: flex;
  flex-direction: column;
}

.contact-faq__item {
  border-block-end: 1px solid var(--color-slate-line);
}

.contact-faq__question {
  margin-block-end: 0;
}

.contact-faq__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: var(--space-sm) 0;
  color: var(--color-ivory);
  font-family: var(--font-body);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  text-align: start;
  min-height: 44px;
}

.contact-faq__trigger:hover {
  color: var(--color-champagne-brass);
}

.contact-faq__question-text {
  flex: 1;
  min-width: 0;
}

.contact-faq__icon {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.contact-faq__icon::before,
.contact-faq__icon::after {
  content: "";
  position: absolute;
  background-color: var(--color-rich-gold);
  transition: transform var(--transition-medium);
}

.contact-faq__icon::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(-50%);
}

.contact-faq__icon::after {
  top: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
}

.contact-faq__trigger[aria-expanded="true"] .contact-faq__icon::after {
  transform: translateX(-50%) scaleY(0);
}

.contact-faq__panel {
  padding-block-end: var(--space-md);
}

.contact-faq__panel p {
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  margin-block-end: 0;
}

.contact-faq__panel a {
  color: var(--color-seafoam-cyan);
}

.contact-faq__panel a:hover {
  color: var(--color-champagne-brass);
}

.additional-resources {
  padding-block: var(--space-2xl);
  border-block-start: 1px solid var(--color-slate-line);
  opacity: 0.6;
}

.additional-resources__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.additional-resources__heading {
  margin-block-end: 0;
}

.additional-resources__text {
  color: var(--color-mist);
  margin-block-end: 0;
}

.additional-resources__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.additional-resources__list a {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
}

.additional-resources__list a::before {
  content: "\2192";
  color: var(--color-rich-gold);
  font-size: var(--text-body-sm-size);
}

.additional-resources__list a:hover {
  color: var(--color-champagne-brass);
}

.booking-cta {
  padding-block: var(--space-2xl);
  background: radial-gradient(circle at center, rgba(201, 162, 39, 0.08) 0%, transparent 70%);
}

.booking-cta__container {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.booking-cta__heading {
  margin-block-end: 0;
}

.booking-cta__button {
  width: 100%;
  max-width: 360px;
}

@media (min-width: 768px) {
  .contact-hero {
    padding: var(--space-3xl) var(--container-padding-desktop) var(--space-2xl);
  }

  .contact-methods__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-md);
  }

  .contact-method-card {
    padding: var(--space-lg);
  }

  .contact-form-section__container {
    grid-template-columns: 40% 60%;
    gap: var(--space-lg);
    align-items: start;
  }

  .contact-form {
    padding: var(--space-lg);
  }

  .booking-cta__button {
    width: auto;
  }
}

@media (max-width: 767px) {
  .contact-hero__title {
    font-size: clamp(2.25rem, 10vw, 3.5rem);
  }

  .contact-form__submit {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-faq__icon::before,
  .contact-faq__icon::after {
    transition: none;
  }
}


.privacy-policy-page {
  background-color: var(--color-ocean-navy);
  color: var(--color-ivory);
  padding-block-end: var(--space-2xl);
}

.privacy-hero {
  background: linear-gradient(180deg, var(--color-ocean-navy) 0%, var(--color-midnight-black) 100%);
  border-block-end: 1px solid var(--color-slate-line);
  padding-block: var(--space-xl) var(--space-lg);
}

.privacy-hero__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.privacy-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2xs);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-mist);
}

.privacy-breadcrumb a {
  color: var(--color-seafoam-cyan);
  text-decoration: none;
}

.privacy-breadcrumb a:hover {
  color: var(--color-champagne-brass);
  text-decoration: underline;
}

.privacy-breadcrumb span[aria-hidden="true"] {
  color: var(--color-seafoam-cyan);
  opacity: 0.7;
}

.privacy-hero h1 {
  font-family: var(--font-heading);
  font-size: var(--text-h1-size);
  line-height: var(--text-h1-line-height);
  letter-spacing: var(--text-h1-letter-spacing);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.privacy-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-ivory);
  max-width: 48ch;
  margin-block-end: 0;
}

.privacy-hero__date {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: var(--text-caption-weight);
  letter-spacing: var(--text-caption-letter-spacing);
  color: var(--color-champagne-brass);
  margin-block-end: 0;
}

.privacy-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  padding-block-start: var(--space-xl);
}

.privacy-toc {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  align-self: start;
}

.privacy-toc__title {
  font-family: var(--font-heading);
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-letter-spacing);
  color: var(--color-rich-gold);
  margin-block-end: var(--space-sm);
}

.privacy-toc__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.privacy-toc__list a {
  color: var(--color-seafoam-cyan);
  text-decoration: none;
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  display: block;
  padding-block: var(--space-2xs);
  border-inline-start: 2px solid transparent;
  padding-inline-start: var(--space-sm);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.privacy-toc__list a:hover {
  color: var(--color-champagne-brass);
  border-inline-start-color: var(--color-champagne-brass);
}

.privacy-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
  min-width: 0;
}

.privacy-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.privacy-section h2 {
  font-family: var(--font-heading);
  font-size: var(--text-h2-size);
  line-height: var(--text-h2-line-height);
  letter-spacing: var(--text-h2-letter-spacing);
  color: var(--color-rich-gold);
  border-block-end: 1px solid var(--color-rich-gold);
  padding-block-end: var(--space-sm);
  margin-block-end: 0;
}

.privacy-section h3 {
  font-family: var(--font-body);
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-letter-spacing);
  color: var(--color-champagne-brass);
  margin-block-end: var(--space-sm);
}

.privacy-section__body--measure {
  max-width: 68ch;
}

.privacy-section__body p,
.privacy-section__body ul {
  margin-block-end: var(--space-md);
}

.privacy-section__body p:last-child,
.privacy-section__body ul:last-child {
  margin-block-end: 0;
}

.privacy-effective-date {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-sm);
  padding: var(--space-sm) var(--space-md);
  margin-block-end: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.privacy-effective-date__label {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-champagne-brass);
  margin-block-end: 0;
}

.privacy-effective-date__value {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.privacy-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.privacy-card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.privacy-card h3 {
  color: var(--color-rich-gold);
  margin-block-end: 0;
}

.privacy-card p,
.privacy-card ul {
  margin-block-end: 0;
}

.privacy-card ul {
  padding-inline-start: var(--space-md);
}

.privacy-use-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.privacy-use-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.privacy-use-column--legal {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-inline-start: 3px solid var(--color-rich-gold);
  border-radius: var(--radius-sm);
  padding: var(--space-md);
}

.privacy-use-column p,
.privacy-use-column ul {
  margin-block-end: 0;
}

.privacy-use-column ul {
  padding-inline-start: var(--space-md);
}

.privacy-section--disclosure {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
}

.privacy-section--disclosure h2 {
  border-block-end-color: var(--color-rich-gold);
}

.privacy-divider {
  border: none;
  border-block-start: 1px solid var(--color-slate-line);
  opacity: 0.6;
  margin-block: var(--space-md);
}

.privacy-gold-list {
  list-style: none;
  padding-inline-start: 0;
}

.privacy-gold-list li {
  position: relative;
  padding-inline-start: var(--space-md);
  margin-block-end: var(--space-2xs);
}

.privacy-gold-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-rich-gold);
}

.privacy-retention-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.privacy-retention-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.privacy-retention-column--security {
  background-color: var(--color-deep-teal);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
}

.privacy-retention-column p,
.privacy-retention-column ul {
  margin-block-end: 0;
}

.privacy-retention-column ul {
  padding-inline-start: var(--space-md);
}

.privacy-accordion {
  display: flex;
  flex-direction: column;
  border-block-start: 1px solid var(--color-slate-line);
}

.privacy-accordion__item {
  border-block-end: 1px solid var(--color-slate-line);
}

.privacy-accordion__item h3 {
  margin-block-end: 0;
}

.privacy-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  width: 100%;
  padding: var(--space-sm) 0;
  color: var(--color-ivory);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-letter-spacing);
  text-align: start;
  min-height: 44px;
  transition: color var(--transition-fast);
}

.privacy-accordion__trigger:hover {
  color: var(--color-champagne-brass);
}

.privacy-accordion__icon {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.privacy-accordion__icon::before,
.privacy-accordion__icon::after {
  content: "";
  position: absolute;
  background-color: var(--color-rich-gold);
  transition: transform var(--transition-medium), background-color var(--transition-fast);
}

.privacy-accordion__icon::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(-50%);
}

.privacy-accordion__icon::after {
  top: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
}

.privacy-accordion__trigger[aria-expanded="true"] .privacy-accordion__icon::after {
  transform: translateX(-50%) scaleY(0);
}

.privacy-accordion__trigger[aria-expanded="true"] .privacy-accordion__icon::before {
  background-color: var(--color-champagne-brass);
}

.privacy-accordion__panel {
  overflow: hidden;
}

.privacy-accordion__panel[hidden] {
  display: none;
}

.privacy-accordion__content {
  padding-block-end: var(--space-md);
  color: var(--color-mist);
}

.privacy-accordion__content p {
  margin-block-end: 0;
}

.privacy-age-notice {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-warning-amber);
  border-radius: var(--radius-md);
  padding: var(--space-md);
}

.privacy-age-notice__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-warning-amber);
  color: var(--color-midnight-black);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  border-radius: var(--radius-pill);
  padding: var(--space-2xs) var(--space-sm);
  flex-shrink: 0;
}

.privacy-age-notice p {
  margin-block-end: 0;
  color: var(--color-ivory);
}

.privacy-contact-card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-inline-start: 3px solid var(--color-rich-gold);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.privacy-contact-card h3 {
  color: var(--color-rich-gold);
  margin-block-end: 0;
}

.privacy-contact-card p {
  margin-block-end: 0;
}

.privacy-contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.privacy-contact-list li {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2xs);
}

.privacy-contact-list__label {
  font-weight: 600;
  color: var(--color-champagne-brass);
  min-width: 5rem;
}

.privacy-contact-list a {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.privacy-contact-list a:hover {
  color: var(--color-champagne-brass);
}

@media (min-width: 768px) {
  .privacy-layout {
    grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--space-2xl);
    align-items: start;
  }

  .privacy-toc {
    position: sticky;
    top: calc(var(--header-height-desktop) + var(--space-md));
  }

  .privacy-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .privacy-use-grid {
    grid-template-columns: 3fr 2fr;
  }

  .privacy-retention-grid {
    grid-template-columns: 1fr 1fr;
  }

  .privacy-section--disclosure {
    padding: var(--space-lg);
  }
}

@media (min-width: 1024px) {
  .privacy-layout {
    grid-template-columns: 280px minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  .privacy-hero {
    padding-block: var(--space-lg) var(--space-md);
  }

  .privacy-layout {
    gap: var(--space-lg);
    padding-block-start: var(--space-lg);
  }

  .privacy-content {
    gap: var(--space-xl);
  }

  .privacy-card-grid,
  .privacy-use-grid,
  .privacy-retention-grid {
    grid-template-columns: 1fr;
  }

  .privacy-age-notice {
    flex-direction: column;
  }

  .privacy-contact-list li {
    flex-direction: column;
    gap: 0;
  }

  .privacy-contact-list__label {
    min-width: 0;
  }
}


/* Onboard Entertainment & Nightlife page styles */

.ent-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-ocean-navy);
}

.ent-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ent-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.ent-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(5, 10, 18, 0.4) 0%,
    rgba(5, 10, 18, 0.7) 60%,
    rgba(5, 10, 18, 0.85) 100%
  );
  pointer-events: none;
}

.ent-hero__content {
  position: relative;
  z-index: 1;
  padding-block: var(--space-xl) var(--space-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  width: 100%;
}

.ent-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  margin: 0;
  max-width: 12ch;
}

.ent-hero__deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-ivory);
  max-width: 48ch;
  margin: 0;
}

.ent-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  width: 100%;
}

.ent-hero__actions .btn {
  width: 100%;
}

.ent-hero__text-link {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}

.ent-hero__text-link:hover {
  color: var(--color-champagne-brass);
}

@media (min-width: 768px) {
  .ent-hero {
    min-height: 70vh;
  }

  .ent-hero__content {
    align-items: flex-start;
    text-align: left;
    max-width: 50%;
    margin-inline: 0;
  }

  .ent-hero__actions {
    flex-direction: row;
    align-items: center;
    gap: var(--space-md);
  }

  .ent-hero__actions .btn {
    width: auto;
  }
}

@media (max-width: 767px) {
  .ent-hero {
    min-height: 60vh;
  }

  .ent-hero__media img {
    object-position: center 70%;
  }
}

/* Evening Spectrum */
.ent-spectrum {
  padding-block: var(--space-2xl) var(--space-xl);
}

.ent-spectrum__heading {
  margin-block-end: var(--space-lg);
}

.ent-spectrum__heading h2 {
  margin-block-end: 0;
}

.ent-spectrum__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.ent-spectrum__card {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
  position: relative;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.ent-spectrum__card:hover {
  transform: translateY(-2px);
  border-color: rgba(227, 199, 123, 0.4);
}

.ent-spectrum__icon {
  font-size: 2rem;
  line-height: 1;
  color: var(--color-champagne-brass);
}

.ent-spectrum__card h3 {
  margin: 0;
}

.ent-spectrum__card p {
  margin: 0;
  }

.ent-age-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-warning-amber);
  color: var(--color-midnight-black);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  border-radius: var(--radius-pill);
  padding: var(--space-2xs) var(--space-sm);
  align-self: flex-start;
}

@media (min-width: 768px) {
  .ent-spectrum__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .ent-spectrum__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Signature Productions */
.ent-productions {
  padding-block: var(--space-xl);
}

.ent-productions__heading {
  margin-block-end: var(--space-lg);
}

.ent-productions__heading h2 {
  margin-block-end: 0;
}

.ent-productions__split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.ent-productions__editorial h3,
.ent-productions__facts h3 {
  margin-block-end: var(--space-sm);
}

.ent-productions__editorial p {
  margin-block-end: 0;
}

.ent-productions__facts ul {
  margin: 0;
  padding-inline-start: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.ent-productions__facts li {
  max-width: 40ch;
}

@media (min-width: 768px) {
  .ent-productions__split {
    grid-template-columns: 7fr 5fr;
    align-items: start;
  }
}

/* Lounges, Bars & Live Music */
.ent-lounges {
  padding-block: var(--space-xl);
}

.ent-lounges__heading {
  margin-block-end: var(--space-lg);
}

.ent-lounges__heading h2 {
  margin-block-end: 0;
}

.ent-lounges__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

.ent-lounge-block {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  align-items: center;
}

.ent-lounge-block__media {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-slate-line);
}

.ent-lounge-block__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.ent-lounge-block__content h3 {
  margin-block-end: var(--space-sm);
}

.ent-lounge-block__content p {
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .ent-lounge-block {
    grid-template-columns: 2fr 3fr;
  }

  .ent-lounge-block--image-left {
    grid-template-columns: 2fr 3fr;
  }

  .ent-lounge-block--image-left .ent-lounge-block__media {
    order: 1;
  }

  .ent-lounge-block--image-left .ent-lounge-block__content {
    order: 2;
  }

  .ent-lounge-block--text-only {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .ent-lounge-block {
    grid-template-columns: 1fr;
  }

  .ent-lounge-block__media {
    order: -1;
  }
}

/* Casino Nights & Responsible Gaming */
.ent-casino {
  background-color: var(--color-midnight-black);
  background-image: radial-gradient(
    circle at 50% 0%,
    rgba(240, 168, 92, 0.08) 0%,
    transparent 70%
  );
  padding-block: var(--space-2xl);
}

.ent-casino__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.ent-casino__heading h2 {
  margin-block-end: 0;
}

.ent-casino__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.ent-casino__column {
  min-width: 0;
}

.ent-casino__column h3 {
  margin-block-end: var(--space-sm);
}

.ent-casino__column p {
  margin-block-end: 0;
}

.ent-casino__column--age {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.ent-casino__column--age .ent-age-pill {
  order: -1;
}

@media (min-width: 768px) {
  .ent-casino__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .ent-casino__grid {
    display: flex;
    flex-direction: column;
  }

  .ent-casino__column--age {
    order: -1;
  }
}

/* Entertainment Comparison */
.ent-comparison {
  padding-block: var(--space-2xl);
}

.ent-comparison__heading {
  margin-block-end: var(--space-lg);
}

.ent-comparison__heading h2 {
  margin-block-end: 0;
}

.ent-comparison__table-wrap {
  width: 100%;
  overflow-x: auto;
}

.ent-comparison__table {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: 0;
  min-width: 600px;
}

.ent-comparison__table th,
.ent-comparison__table td {
  padding: var(--space-md);
  text-align: left;
  border-block-end: 1px solid var(--color-slate-line);
  vertical-align: top;
}

.ent-comparison__table thead th {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-champagne-brass);
  background-color: var(--color-dark-slate);
}

.ent-comparison__table tbody tr {
  transition: background-color var(--transition-fast);
}

.ent-comparison__table tbody tr:hover {
  background-color: rgba(227, 199, 123, 0.06);
}

.ent-comparison__table tbody th {
  color: var(--color-ivory);
  font-weight: 600;
}

.ent-comparison__table td {
  max-width: 40ch;
}

.ent-stars {
  color: var(--color-champagne-brass);
  letter-spacing: 0.1em;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .ent-comparison__table-wrap {
    overflow-x: visible;
  }

  .ent-comparison__table {
    display: block;
    min-width: 0;
  }

  .ent-comparison__table thead {
    display: none;
  }

  .ent-comparison__table tbody {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
  }

  .ent-comparison__table tr {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    background-color: var(--color-dark-slate);
    border: 1px solid var(--color-slate-line);
    border-radius: var(--radius-md);
    padding: var(--space-md);
  }

  .ent-comparison__table th,
  .ent-comparison__table td {
    display: block;
    padding: 0;
    border: none;
    text-align: left;
  }

  .ent-comparison__table tbody th {
    font-size: var(--text-h3-size);
    line-height: var(--text-h3-line-height);
    font-weight: var(--text-h3-weight);
  }

  .ent-comparison__table td {
    max-width: none;
  }
}

/* Planning Your Evenings */
.ent-planning {
  padding-block: var(--space-2xl);
}

.ent-planning__heading {
  margin-block-end: var(--space-lg);
}

.ent-planning__heading h2 {
  margin-block-end: 0;
}

.ent-planning__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.ent-planning__item {
  display: flex;
  gap: var(--space-md);
  align-items: flex-start;
  min-width: 0;
}

.ent-planning__number {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 600;
  color: var(--color-rich-gold);
  flex-shrink: 0;
  width: 2.5rem;
  text-align: center;
}

.ent-planning__item h3 {
  margin-block-end: var(--space-xs);
}

.ent-planning__item p {
  margin-block-end: 0;
}

/* Late-Night Bites & After-Hours */
.ent-late-night {
  padding-block: var(--space-2xl);
  background: linear-gradient(
    to bottom,
    var(--color-deep-teal) 0%,
    var(--color-ocean-navy) 100%
  );
  border-radius: var(--radius-lg);
  margin-block-end: var(--space-2xl);
}

.ent-late-night__heading {
  margin-block-end: var(--space-lg);
}

.ent-late-night__heading h2 {
  margin-block-end: 0;
}

.ent-late-night__split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.ent-late-night__column h3 {
  margin-block-end: var(--space-sm);
}

.ent-late-night__column p {
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .ent-late-night__split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Final Call to Action */
.ent-final-cta {
  background-color: var(--color-midnight-black);
  background-image: radial-gradient(
    circle at 50% 50%,
    rgba(201, 162, 39, 0.12) 0%,
    transparent 70%
  );
  padding-block: var(--space-2xl);
}

.ent-final-cta__inner {
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
}

.ent-final-cta__inner h2 {
  margin: 0;
}

.ent-final-cta__inner p {
  margin: 0;
}

.ent-final-cta__inner .btn {
  width: 100%;
}

@media (min-width: 768px) {
  .ent-final-cta__inner {
    padding-inline: var(--container-padding-desktop);
  }

  .ent-final-cta__inner .btn {
    width: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ent-spectrum__card,
  .ent-comparison__table tbody tr {
    transition: none;
  }

  .ent-spectrum__card:hover {
    transform: none;
  }
}


/* Page-owned styles for cruise-itineraries */

.ci-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-ocean-navy);
}

.ci-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ci-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.ci-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(5, 10, 18, 0.25) 0%, rgba(5, 10, 18, 0.65) 60%, rgba(5, 10, 18, 0.85) 100%);
}

.ci-hero__container {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-block: var(--space-2xl) var(--space-xl);
}

.ci-hero__content {
  max-width: 720px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
}

.ci-hero__eyebrow {
  margin-block-end: 0;
}

.ci-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  margin-block-end: 0;
  max-width: 12ch;
}

.ci-hero__deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-mist);
  max-width: 48ch;
  margin-block-end: 0;
}

.ci-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md);
  margin-block-start: var(--space-xs);
}

.ci-hero__primary {
  min-width: 0;
}

.ci-hero__secondary {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  font-weight: 600;
  transition: color var(--transition-fast);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.ci-hero__secondary:hover {
  color: var(--color-champagne-brass);
}

@media (min-width: 768px) {
  .ci-hero {
    min-height: 80vh;
  }

  .ci-hero__content {
    max-width: 58.333%;
  }
}

@media (max-width: 767px) {
  .ci-hero {
    min-height: 70vh;
  }

  .ci-hero__container {
    padding-block: var(--space-xl) var(--space-lg);
  }

  .ci-hero__content {
    align-items: center;
    text-align: center;
    margin-inline: auto;
  }

  .ci-hero__title {
    max-width: 100%;
  }

  .ci-hero__deck {
    max-width: 48ch;
    margin-inline: auto;
  }

  .ci-hero__actions {
    flex-direction: column;
    width: 100%;
    align-items: stretch;
  }

  .ci-hero__primary,
  .ci-hero__secondary {
    width: 100%;
    justify-content: center;
  }
}

/* Featured Itineraries */
.ci-featured {
  padding-block: var(--space-2xl);
}

.ci-featured__eyebrow {
  margin-block-end: var(--space-sm);
}

.ci-featured__title {
  margin-block-end: var(--space-lg);
}

.ci-featured__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.ci-itinerary-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.ci-itinerary-card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  transform: translateY(-2px);
}

.ci-itinerary-card__route {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  height: 48px;
  flex-shrink: 0;
}

.ci-route-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--color-seafoam-cyan);
  flex-shrink: 0;
}

.ci-route-dot--start,
.ci-route-dot--end {
  background-color: var(--color-rich-gold);
}

.ci-route-line {
  flex: 1;
  height: 1px;
  background-color: var(--color-seafoam-cyan);
  opacity: 0.5;
  min-width: 12px;
}

.ci-itinerary-card__title {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-letter-spacing);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.ci-itinerary-card__text {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  max-width: 60ch;
  margin-block-end: 0;
}

.ci-itinerary-card__facts {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xs);
  margin-block-start: auto;
  padding-block-start: var(--space-sm);
  border-block-start: 1px solid var(--color-slate-line);
}

.ci-itinerary-card__facts div {
  display: flex;
  justify-content: space-between;
  gap: var(--space-sm);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
}

.ci-itinerary-card__facts dt {
  color: var(--color-champagne-brass);
  font-weight: 600;
  flex-shrink: 0;
}

.ci-itinerary-card__facts dd {
  color: var(--color-mist);
  margin-inline-start: 0;
  text-align: end;
  min-width: 0;
}

@media (max-width: 1023px) {
  .ci-featured__grid {
    grid-template-columns: 1fr;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    display: flex;
    gap: var(--space-md);
    padding-block-end: var(--space-sm);
    scrollbar-width: thin;
    scrollbar-color: var(--color-slate-line) transparent;
  }

  .ci-itinerary-card {
    flex: 0 0 85vw;
    scroll-snap-align: start;
    max-width: 85vw;
  }
}

@media (min-width: 1024px) {
  .ci-featured__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
    scroll-snap-type: none;
  }

  .ci-itinerary-card {
    flex: initial;
    max-width: none;
  }
}

/* Interactive Route Map */
.ci-map {
  padding-block: var(--space-2xl);
  background-color: var(--surface-deep);
}

.ci-map__eyebrow {
  margin-block-end: var(--space-sm);
}

.ci-map__title {
  margin-block-end: var(--space-lg);
}

.ci-map__frame {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-slate-line);
  aspect-ratio: 16 / 9;
  background-color: var(--color-dark-slate);
}

.ci-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.ci-map__caption {
  max-width: 60ch;
  margin-inline: auto;
  margin-block-start: var(--space-md);
  text-align: center;
  color: var(--color-mist);
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: var(--text-caption-weight);
  letter-spacing: var(--text-caption-letter-spacing);
}

@media (max-width: 767px) {
  .ci-map__frame {
    aspect-ratio: 16 / 10;
  }
}

/* Seasonal Guide */
.ci-seasonal {
  padding-block: var(--space-2xl);
}

.ci-seasonal__eyebrow {
  margin-block-end: var(--space-sm);
}

.ci-seasonal__title {
  margin-block-end: var(--space-lg);
}

.ci-seasonal__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.ci-season-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.ci-season-card--summer {
  border-block-start: 3px solid var(--color-warm-amber);
}

.ci-season-card--shoulder {
  border-block-start: 3px solid var(--color-seafoam-cyan);
}

.ci-season-card--winter {
  border-block-start: 3px solid var(--color-deep-teal);
}

.ci-season-card__icon {
  font-size: 2rem;
  line-height: 1;
  color: var(--color-champagne-brass);
}

.ci-season-card__title {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-letter-spacing);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.ci-season-card__text {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  max-width: 60ch;
  margin-block-end: 0;
}

@media (max-width: 1023px) {
  .ci-seasonal__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
}

/* Regional Highlights */
.ci-regional {
  padding-block: var(--space-2xl);
  background-color: var(--surface-deep);
}

.ci-regional__container {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-xl);
  align-items: start;
}

.ci-regional__content {
  min-width: 0;
}

.ci-regional__eyebrow {
  margin-block-end: var(--space-sm);
}

.ci-regional__title {
  margin-block-end: var(--space-lg);
}

.ci-regional__blocks {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.ci-regional-block__title {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-letter-spacing);
  color: var(--color-ivory);
  margin-block-end: var(--space-xs);
}

.ci-regional-block__text {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  color: var(--color-mist);
  max-width: 68ch;
  margin-block-end: 0;
}

.ci-regional__media {
  position: sticky;
  top: calc(var(--header-height-desktop) + var(--space-md));
  min-width: 0;
}

.ci-regional__media img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-slate-line);
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

@media (max-width: 1023px) {
  .ci-regional__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .ci-regional__media {
    position: static;
    order: -1;
  }

  .ci-regional__media img {
    aspect-ratio: 4 / 3;
  }
}

/* Planning Tips */
.ci-tips {
  padding-block: var(--space-2xl);
}

.ci-tips__eyebrow {
  margin-block-end: var(--space-sm);
}

.ci-tips__title {
  margin-block-end: var(--space-lg);
}

.ci-tips__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.ci-tip-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.ci-tip-card__icon {
  font-size: 1.75rem;
  line-height: 1;
  color: var(--color-champagne-brass);
}

.ci-tip-card__title {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-ivory);
  margin-block-end: 0;
}

.ci-tip-card__text {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  max-width: 60ch;
  margin-block-end: 0;
}

@media (max-width: 767px) {
  .ci-tips__grid {
    grid-template-columns: 1fr;
  }
}

/* Primary CTA Break */
.ci-cta-break {
  padding-block: var(--space-2xl);
  background-color: var(--color-midnight-black);
  position: relative;
  overflow: hidden;
}

.ci-cta-break::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(240, 168, 92, 0.12) 0%, transparent 70%);
  pointer-events: none;
}

.ci-cta-break__container {
  position: relative;
  z-index: 1;
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ci-cta-break__title {
  max-width: 48ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.ci-cta-break__button {
  min-width: 0;
}

@media (max-width: 767px) {
  .ci-cta-break__button {
    width: 100%;
  }
}

/* FAQ */
.ci-faq {
  padding-block: var(--space-2xl);
}

.ci-faq__container {
  max-width: 800px;
}

.ci-faq__eyebrow {
  margin-block-end: var(--space-sm);
}

.ci-faq__title {
  margin-block-end: var(--space-lg);
}

.ci-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ci-faq-item {
  border-block-end: 1px solid var(--color-slate-line);
}

.ci-faq-item:first-child {
  border-block-start: 1px solid var(--color-slate-line);
}

.ci-faq-item__question {
  margin-block-end: 0;
}

.ci-faq-item__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md) 0;
  color: var(--color-ivory);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  text-align: start;
  min-height: 44px;
}

.ci-faq-item__icon {
  position: relative;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.ci-faq-item__icon::before,
.ci-faq-item__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  background-color: var(--color-rich-gold);
  transform: translate(-50%, -50%);
  transition: transform var(--transition-medium);
}

.ci-faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.ci-faq-item[data-open="true"] .ci-faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.ci-faq-item__answer {
  padding-block-end: var(--space-md);
}

.ci-faq-item__answer p {
  color: var(--color-mist);
  margin-block-end: 0;
}

.ci-faq-item__answer[hidden] {
  display: none;
}

/* Final CTA */
.ci-final-cta {
  padding-block: var(--space-2xl);
  background: linear-gradient(135deg, var(--color-deep-teal) 0%, var(--color-ocean-navy) 100%);
}

.ci-final-cta__container {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ci-final-cta__title {
  max-width: 48ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.ci-final-cta__button {
  min-width: 0;
}

@media (max-width: 767px) {
  .ci-final-cta__button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ci-itinerary-card,
  .ci-hero__secondary,
  .ci-faq-item__icon::before,
  .ci-faq-item__icon::after {
    transition: none;
  }

  .ci-itinerary-card:hover {
    transform: none;
  }
}


@charset "UTF-8";

/* Staterooms & Suites page styles */

/* Hero */
.ss-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-ocean-navy);
}

.ss-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ss-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.ss-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(5, 10, 18, 0.4) 0%, rgba(5, 10, 18, 0.6) 40%, rgba(5, 10, 18, 0.9) 100%);
}

.ss-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding: var(--space-xl) var(--space-md) var(--space-lg);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ss-hero__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
}

.ss-hero__text h1 {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  margin: 0;
  max-width: 14ch;
}

.ss-hero__deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  font-weight: var(--text-body-lg-weight);
  color: var(--color-mist);
  max-width: 48ch;
  margin: 0;
}

.ss-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  width: 100%;
}

.ss-hero__secondary {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  transition: color var(--transition-fast);
}

.ss-hero__secondary:hover {
  color: var(--color-champagne-brass);
}

/* Introduction and category cards */
.ss-intro {
  padding-block: var(--space-2xl) var(--space-xl);
}

.ss-intro__header {
  max-width: 68ch;
  margin-block-end: var(--space-lg);
}

.ss-intro__header .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-intro__header h2 {
  margin-block-end: var(--space-sm);
}

.ss-intro__lead {
  color: var(--color-mist);
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  max-width: 68ch;
  margin: 0;
}

.ss-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
}

.ss-category-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.ss-category-card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  transform: translateY(-2px);
}

.ss-category-card--premium {
  border-color: rgba(227, 199, 123, 0.4);
}

.ss-category-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-block-end: var(--space-2xs);
}

.ss-category-card h3 {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-ivory);
  margin: 0;
}

.ss-category-card p:not(.label-uppercase) {
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  max-width: 40ch;
  margin: 0;
}

/* Quiz */
.ss-quiz {
  padding-block: var(--space-xl);
  background: linear-gradient(180deg, var(--color-ocean-navy) 0%, var(--color-deep-teal) 100%);
}

.ss-quiz__panel {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-lg);
  max-width: 1000px;
  margin-inline: auto;
}

.ss-quiz__header {
  margin-block-end: var(--space-md);
}

.ss-quiz__header .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-quiz__header h2 {
  margin: 0;
}

.ss-quiz__layout {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-lg);
  align-items: start;
}

.ss-quiz__question {
  min-width: 0;
}

.ss-quiz__prompt {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-ivory);
  max-width: 60ch;
  margin-block-end: var(--space-sm);
}

.ss-quiz__options {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  max-width: 60ch;
}

.ss-quiz__option {
  background-color: var(--color-midnight-black);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-sm);
  padding: var(--space-sm) var(--space-md);
  color: var(--color-ivory);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  text-align: left;
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
  min-height: 44px;
  cursor: pointer;
}

.ss-quiz__option:hover {
  border-color: var(--color-champagne-brass);
}

.ss-quiz__option[aria-checked="true"] {
  border-color: var(--color-seafoam-cyan);
  background-color: rgba(111, 214, 195, 0.1);
}

.ss-quiz__result {
  min-width: 0;
}

.ss-quiz__result-card {
  border-left: 3px solid var(--color-seafoam-cyan);
  background-color: var(--color-midnight-black);
  border-radius: var(--radius-sm);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  transition: opacity var(--transition-medium), transform var(--transition-medium);
}

.ss-quiz__result-title {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-seafoam-cyan);
  margin: 0;
}

.ss-quiz__result-text {
  color: var(--color-ivory);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  max-width: 50ch;
  margin: 0;
}

/* Suite perks */
.ss-suite {
  padding-block: var(--space-2xl);
}

.ss-suite__layout {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-lg);
  align-items: start;
}

.ss-suite__text {
  min-width: 0;
}

.ss-suite__text .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-suite__text h2 {
  margin-block-end: var(--space-sm);
}

.ss-suite__intro {
  color: var(--color-mist);
  max-width: 60ch;
  margin-block-end: var(--space-md);
}

.ss-suite__list-label {
  color: var(--color-ivory);
  font-weight: 600;
  margin-block-end: var(--space-xs);
}

.ss-suite__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  max-width: 50ch;
}

.ss-suite__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  color: var(--color-ivory);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
}

.ss-suite__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 10px;
  height: 10px;
  background-color: var(--color-rich-gold);
  border-radius: 50%;
}

.ss-suite__media {
  min-width: 0;
}

.ss-suite__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-slate-line);
  display: block;
}

.ss-suite__caption {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: var(--text-caption-weight);
  letter-spacing: var(--text-caption-letter-spacing);
  color: var(--color-mist);
  margin-block-start: var(--space-2xs);
}

/* Location */
.ss-location {
  padding-block: var(--space-xl);
}

.ss-location__content {
  max-width: 800px;
  margin-inline: auto;
}

.ss-location__content .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-location__content h2 {
  margin-block-end: var(--space-md);
}

.ss-location__block {
  margin-block-end: var(--space-md);
}

.ss-location__block h3 {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-ivory);
  margin-block-end: var(--space-2xs);
}

.ss-location__block p {
  color: var(--color-mist);
  margin: 0;
}

.ss-location__tips {
  border-top: 1px solid var(--color-slate-line);
  padding-block-start: var(--space-md);
  margin-block-start: var(--space-md);
}

.ss-location__tips-label {
  color: var(--color-ivory);
  font-weight: 600;
  margin-block-end: var(--space-xs);
}

.ss-location__tips ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  max-width: 68ch;
}

.ss-location__tips li {
  position: relative;
  padding-inline-start: var(--space-md);
  color: var(--color-mist);
}

.ss-location__tips li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background-color: var(--color-seafoam-cyan);
  border-radius: 50%;
}

/* Comparison table */
.ss-comparison {
  padding-block: var(--space-xl);
}

.ss-comparison__header {
  max-width: 1000px;
  margin-inline: auto;
  margin-block-end: var(--space-md);
}

.ss-comparison__header .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-comparison__header h2 {
  margin: 0;
}

.ss-comparison__table-wrap {
  margin-inline: auto;
  overflow-x: auto;
}

.ss-comparison__table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  min-width: 600px;
}

.ss-comparison__table th,
.ss-comparison__table td {
  padding: var(--space-sm) var(--space-md);
  text-align: left;
  border-bottom: 1px solid var(--color-slate-line);
  vertical-align: top;
  max-width: 40ch;
}

.ss-comparison__table thead th {
  background-color: var(--color-dark-slate);
  color: var(--color-champagne-brass);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
}

.ss-comparison__table tbody tr:nth-child(odd) {
  background-color: var(--color-ocean-navy);
}

.ss-comparison__table tbody tr:nth-child(even) {
  background-color: var(--color-dark-slate);
}

.ss-comparison__table tbody th {
  color: var(--color-ivory);
  font-weight: 600;
}

.ss-comparison__table tbody td {
  color: var(--color-mist);
}

/* Accessibility and family */
.ss-accessibility {
  padding-block: var(--space-xl);
}

.ss-accessibility .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-accessibility h2 {
  margin-block-end: var(--space-md);
}

.ss-accessibility__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.ss-accessibility__column {
  min-width: 0;
}

.ss-accessibility__column h3 {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-ivory);
  margin-block-end: var(--space-2xs);
}

.ss-accessibility__column p {
  color: var(--color-mist);
  margin: 0;
}

/* Upgrade */
.ss-upgrade {
  padding-block: var(--space-xl);
  background: radial-gradient(circle at 20% 20%, rgba(240, 168, 92, 0.08) 0%, transparent 60%);
}

.ss-upgrade__content {
  max-width: 800px;
  margin-inline: auto;
}

.ss-upgrade__content .eyebrow {
  margin-block-end: var(--space-sm);
}

.ss-upgrade__content h2 {
  margin-block-end: var(--space-sm);
}

.ss-upgrade__intro {
  color: var(--color-ivory);
  font-weight: 600;
  margin-block-end: var(--space-xs);
}

.ss-upgrade__list {
  list-style: none;
  counter-reset: upgrade-counter;
  padding: 0;
  margin: 0 0 var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  max-width: 60ch;
}

.ss-upgrade__list li {
  counter-increment: upgrade-counter;
  position: relative;
  padding-inline-start: var(--space-lg);
  color: var(--color-ivory);
}

.ss-upgrade__list li::before {
  content: counter(upgrade-counter);
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 600;
  color: var(--color-rich-gold);
}

.ss-upgrade__note {
  border-left: 3px solid var(--color-warning-amber);
  background-color: var(--color-dark-slate);
  border-radius: var(--radius-sm);
  padding: var(--space-md);
  max-width: 50ch;
}

.ss-upgrade__note p {
  color: var(--color-mist);
  margin: 0;
}

/* Final CTA */
.ss-final-cta {
  padding-block: var(--space-2xl);
  background: linear-gradient(180deg, var(--color-ocean-navy) 0%, var(--color-midnight-black) 100%);
}

.ss-final-cta__content {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ss-final-cta__content h2 {
  margin: 0;
}

.ss-final-cta__content p {
  color: var(--color-mist);
  margin: 0;
}

.ss-final-cta__content .ss-cta {
  margin-block-start: var(--space-sm);
}

/* Responsive */
@media (max-width: 1023px) {
  .ss-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ss-suite__layout {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .ss-suite__media {
    order: -1;
  }

  .ss-quiz__layout {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
}

@media (max-width: 767px) {
  .ss-hero {
    min-height: 80vh;
  }

  .ss-hero__media img {
    aspect-ratio: 4 / 5;
  }

  .ss-hero__content {
    padding: var(--space-lg) var(--space-sm) var(--space-md);
  }

  .ss-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .ss-hero__actions .ss-cta {
    width: 100%;
  }

  .ss-hero__secondary {
    text-align: center;
  }

  .ss-category-grid {
    grid-template-columns: 1fr;
  }

  .ss-accessibility__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .ss-comparison__table-wrap {
    overflow-x: auto;
  }

  .ss-comparison__table {
    min-width: 600px;
  }

  .ss-quiz__panel {
    padding: var(--space-md);
  }

  .ss-quiz__options {
    max-width: 100%;
  }

  .ss-quiz__prompt {
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ss-category-card,
  .ss-quiz__result-card {
    transition: none;
  }

  .ss-category-card:hover {
    transform: none;
  }
}


/* Cruise Ship Casinos page styles */

.casino-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70vh;
  background-color: var(--color-midnight-black);
  overflow: hidden;
}

.casino-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.casino-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.casino-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(5, 10, 18, 0.85) 0%, rgba(5, 10, 18, 0.45) 45%, rgba(5, 10, 18, 0.15) 100%);
}

.casino-hero__content {
  position: relative;
  z-index: 1;
  max-width: 720px;
  width: calc(100% - 48px);
  margin-inline: auto;
  text-align: center;
  padding-block: var(--space-2xl) var(--space-xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.casino-hero__eyebrow {
  margin-block-end: 0;
  justify-content: center;
}

.casino-hero__title {
  color: var(--color-ivory);
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  letter-spacing: var(--text-display-letter-spacing);
  font-weight: var(--text-display-weight);
  max-width: 18ch;
  margin-block-end: 0;
}

.casino-hero__deck {
  color: var(--color-mist);
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  max-width: 48ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.casino-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-sm);
  width: 100%;
  max-width: 600px;
}

.casino-hero__actions .btn {
  flex: 1 1 auto;
  min-width: 220px;
}

.casino-hero__text-link {
  color: var(--color-seafoam-cyan);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}

.casino-hero__text-link:hover {
  color: var(--color-champagne-brass);
}

.casino-hero__age-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  color: var(--color-mist);
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  margin-block-end: 0;
}

.casino-age-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding-inline: var(--space-xs);
  background-color: var(--color-warning-amber);
  color: var(--color-midnight-black);
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1;
  border-radius: var(--radius-pill);
  letter-spacing: 0.02em;
}

.casino-age-badge--large {
  min-width: 3rem;
  height: 3rem;
  font-size: 1.125rem;
}

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

@media (min-width: 768px) {
  .section {
    padding-block: var(--space-3xl);
  }
}

/* What to Expect */
.casino-expect {
  background-color: var(--surface-base);
}

.casino-expect__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
}

.casino-expect__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.casino-expect__content .eyebrow {
  margin-block-end: 0;
}

.casino-expect__content h2 {
  margin-block-end: 0;
}

.casino-expect__block {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-expect__block h3 {
  margin-block-end: 0;
}

.casino-expect__block p {
  margin-block-end: 0;
  }

.casino-expect__age-line {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
}

.casino-callout {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  max-width: 48ch;
}

.casino-callout__label {
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
  color: var(--color-rich-gold);
  margin-block-end: 0;
}

.casino-callout p:last-child {
  margin-block-end: 0;
}

.casino-expect__media {
  margin-block-end: 0;
  min-width: 0;
}

.casino-expect__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-slate-line);
  box-shadow: var(--shadow-card);
}

.casino-expect__media figcaption {
  margin-block-start: var(--space-2xs);
}

@media (min-width: 768px) {
  .casino-expect__grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: var(--space-xl);
  }

  .casino-expect__media {
    position: sticky;
    top: calc(var(--header-height-desktop) + var(--space-md));
  }
}

@media (min-width: 1024px) {
  .casino-expect__grid {
    gap: var(--space-2xl);
  }
}

/* Popular Games */
.casino-games {
  background-color: var(--color-midnight-black);
  border-block: 1px solid var(--color-slate-line);
}

.casino-games .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.casino-games .eyebrow {
  margin-block-end: 0;
}

.casino-games h2 {
  margin-block-end: 0;
}

.casino-games__intro {
  color: var(--color-mist);
  max-width: 68ch;
  margin-block-end: 0;
}

.casino-games__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  padding-block-end: var(--space-sm);
  scrollbar-width: thin;
  scrollbar-color: var(--color-slate-line) transparent;
}

.casino-game-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  min-width: 0;
  scroll-snap-align: start;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.casino-game-card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  transform: translateY(-2px);
}

.casino-game-card h3 {
  margin-block-end: 0;
}

.casino-game-card p {
  margin-block-end: 0;
  }

@media (max-width: 767px) {
  .casino-games__grid {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-sm);
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    margin-inline: calc(-1 * var(--container-padding-mobile));
    padding-inline: var(--container-padding-mobile);
  }

  .casino-game-card {
    flex: 0 0 80%;
    min-width: 260px;
  }
}

@media (min-width: 768px) {
  .casino-games__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
    scroll-snap-type: none;
    padding-block-end: 0;
  }
}

@media (min-width: 1024px) {
  .casino-games__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* Etiquette */
.casino-etiquette {
  background-color: var(--surface-base);
}

.casino-etiquette__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
}

.casino-etiquette__tips {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.casino-etiquette__tips .eyebrow {
  margin-block-end: 0;
}

.casino-etiquette__tips h2 {
  margin-block-end: 0;
}

.casino-etiquette__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  counter-reset: etiquette-counter;
}

.casino-etiquette__list li {
  counter-increment: etiquette-counter;
  position: relative;
  padding-inline-start: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-etiquette__list li::before {
  content: counter(etiquette-counter, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0.1rem;
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--color-rich-gold);
  line-height: 1;
}

.casino-etiquette__list h3 {
  margin-block-end: 0;
}

.casino-etiquette__list p {
  margin-block-end: 0;
  }

.casino-etiquette__quote {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  min-width: 0;
}

.casino-etiquette__quote blockquote {
  margin-block-end: 0;
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-champagne-brass);
  color: var(--color-ivory);
  font-style: italic;
  font-family: var(--font-heading);
  font-size: var(--text-h3-size);
  line-height: 1.3;
}

.casino-etiquette__quote blockquote p {
  margin-block-end: var(--space-2xs);
  }

.casino-etiquette__quote cite {
  display: block;
  font-family: var(--font-body);
  font-style: normal;
  font-size: var(--text-caption-size);
  color: var(--color-mist);
  letter-spacing: 0.01em;
}

@media (min-width: 768px) {
  .casino-etiquette__grid {
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: var(--space-xl);
  }

  .casino-etiquette__quote {
    position: sticky;
    top: calc(var(--header-height-desktop) + var(--space-md));
  }
}

/* Casino Quality */
.casino-quality {
  background-color: var(--color-midnight-black);
  border-block: 1px solid var(--color-slate-line);
}

.casino-quality .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.casino-quality .eyebrow {
  margin-block-end: 0;
}

.casino-quality h2 {
  margin-block-end: 0;
}

.casino-quality__intro {
  color: var(--color-mist);
  max-width: 68ch;
  margin-block-end: 0;
}

.casino-quality__table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  background-color: var(--surface-elevated);
}

.casino-quality__table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  margin-block-end: 0;
}

.casino-quality__table th,
.casino-quality__table td {
  padding: var(--space-sm) var(--space-md);
  text-align: left;
  border-block-end: 1px solid var(--color-slate-line);
  vertical-align: top;
  max-width: 30ch;
}

.casino-quality__table thead th {
  background-color: var(--color-dark-slate);
  color: var(--color-champagne-brass);
  font-size: var(--text-label-size);
  line-height: var(--text-label-line-height);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-letter-spacing);
  text-transform: uppercase;
}

.casino-quality__table tbody tr:last-child th,
.casino-quality__table tbody tr:last-child td {
  border-block-end: none;
}

.casino-quality__table tbody tr:hover {
  background-color: rgba(227, 199, 123, 0.05);
}

.casino-quality__table tbody th {
  color: var(--color-ivory);
  font-weight: 600;
}

.casino-quality__table tbody td {
  color: var(--color-mist);
}

.casino-quality__cards {
  display: none;
}

@media (max-width: 767px) {
  .casino-quality__table-wrap {
    display: none;
  }

  .casino-quality__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .casino-quality-card {
    background-color: var(--surface-elevated);
    border: 1px solid var(--color-slate-line);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
  }

  .casino-quality-card h3 {
    margin-block-end: var(--space-2xs);
    color: var(--color-champagne-brass);
  }

  .casino-quality-card p {
    margin-block-end: 0;
    color: var(--color-mist);
  }

  .casino-quality-card strong {
    color: var(--color-ivory);
    font-weight: 600;
  }
}

/* Itineraries */
.casino-itineraries {
  background-color: var(--surface-base);
}

.casino-itineraries .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.casino-itineraries .eyebrow {
  margin-block-end: 0;
}

.casino-itineraries h2 {
  margin-block-end: 0;
}

.casino-itineraries__intro {
  color: var(--color-mist);
  max-width: 68ch;
  margin-block-end: 0;
}

.casino-itineraries__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.casino-itinerary-row {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "dot name"
    "dot desc";
  gap: var(--space-2xs) var(--space-sm);
  padding-block: var(--space-md);
  border-block-end: 1px solid rgba(44, 58, 79, 0.6);
  align-items: start;
}

.casino-itinerary-row:last-child {
  border-block-end: none;
}

.casino-itinerary-row__dot {
  grid-area: dot;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--color-seafoam-cyan);
  margin-block-start: 0.35rem;
}

.casino-itinerary-row__name {
  grid-area: name;
  color: var(--color-ivory);
  font-weight: 600;
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
}

.casino-itinerary-row__desc {
  grid-area: desc;
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  max-width: 60ch;
}

@media (min-width: 768px) {
  .casino-itinerary-row {
    grid-template-columns: auto minmax(200px, 0.6fr) minmax(0, 1.4fr);
    grid-template-areas: "dot name desc";
    gap: var(--space-sm) var(--space-md);
  }

  .casino-itinerary-row__dot {
    margin-block-start: 0.5rem;
  }
}

/* Responsible Gaming */
.casino-responsible {
  background-color: var(--color-deep-teal);
  border-block: 1px solid var(--color-slate-line);
}

.casino-responsible__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
}

.casino-responsible__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.casino-responsible__content .eyebrow {
  margin-block-end: 0;
}

.casino-responsible__content h2 {
  margin-block-end: 0;
}

.casino-responsible__block {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-responsible__block h3 {
  margin-block-end: 0;
}

.casino-responsible__block p {
  margin-block-end: 0;
  }

.casino-responsible__notice {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-warning-amber);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-sm);
  min-width: 0;
}

.casino-responsible__notice h3 {
  margin-block-end: 0;
  color: var(--color-ivory);
}

.casino-responsible__notice p {
  margin-block-end: 0;
  color: var(--color-mist);
}

@media (min-width: 768px) {
  .casino-responsible__grid {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: var(--space-xl);
  }

  .casino-responsible__notice {
    position: sticky;
    top: calc(var(--header-height-desktop) + var(--space-md));
  }
}

/* First-Timer Tips */
.casino-first-timers {
  background-color: var(--surface-base);
}

.casino-first-timers .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.casino-first-timers .eyebrow {
  margin-block-end: 0;
}

.casino-first-timers h2 {
  margin-block-end: 0;
}

.casino-first-timers__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.casino-tip-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  min-width: 0;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.casino-tip-card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  transform: translateY(-2px);
}

.casino-tip-card h3 {
  margin-block-end: 0;
  color: var(--color-champagne-brass);
}

.casino-tip-card p {
  margin-block-end: 0;
  }

@media (min-width: 768px) {
  .casino-first-timers__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
  }
}

/* Final CTA */
.casino-final-cta {
  background: linear-gradient(135deg, var(--color-midnight-black) 0%, var(--color-ocean-navy) 100%);
  border-block-start: 1px solid var(--color-slate-line);
}

.casino-final-cta__inner {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.casino-final-cta__inner .eyebrow {
  margin-block-end: 0;
  justify-content: center;
}

.casino-final-cta__inner h2 {
  margin-block-end: 0;
}

.casino-final-cta__text {
  color: var(--color-mist);
  max-width: 48ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.casino-final-cta__inner .btn {
  min-width: 260px;
}

@media (max-width: 767px) {
  .casino-final-cta__inner .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .casino-game-card,
  .casino-tip-card {
    transition: none;
  }

  .casino-game-card:hover,
  .casino-tip-card:hover {
    transform: none;
  }
}


/* First-Time Cruisers page styles */

.ftc-page {
  display: block;
}

/* Hero */
.ftc-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 560px;
  background-color: var(--color-midnight-black);
  overflow: hidden;
}

.ftc-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ftc-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
  display: block;
}

.ftc-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 10, 18, 0.2) 0%, rgba(5, 10, 18, 0.55) 55%, rgba(5, 10, 18, 0.85) 100%);
}

.ftc-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding: var(--space-xl) var(--container-padding-mobile) var(--space-2xl);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ftc-hero__eyebrow {
  margin-block-end: 0;
}

.ftc-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  max-width: 48ch;
  margin-block-end: 0;
}

.ftc-hero__deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-mist);
  max-width: 48ch;
  margin-block-end: 0;
}

.ftc-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  width: 100%;
  margin-block-start: var(--space-sm);
}

.ftc-hero__cta {
  width: 100%;
  max-width: 360px;
}

.ftc-hero__secondary {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ftc-hero__secondary:hover {
  color: var(--color-champagne-brass);
}

@media (min-width: 768px) {
  .ftc-hero {
    min-height: 680px;
  }

  .ftc-hero__content {
    padding: var(--space-2xl) var(--container-padding-desktop) var(--space-3xl);
  }

  .ftc-hero__actions {
    flex-direction: row;
    justify-content: center;
    gap: var(--space-lg);
  }

  .ftc-hero__cta {
    width: auto;
    max-width: none;
  }
}

/* Planning */
.ftc-planning {
  padding-block: var(--space-2xl);
}

.ftc-planning__container {
  max-width: 800px;
}

.ftc-planning__lead {
  max-width: 68ch;
  color: var(--color-mist);
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
}

.ftc-planning__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  margin-block-start: var(--space-lg);
}

.ftc-planning__step {
  display: flex;
  gap: var(--space-md);
  padding-block-end: var(--space-lg);
  border-block-end: 1px solid var(--color-slate-line);
  opacity: 0.6;
}

.ftc-planning__step:last-child {
  border-block-end: none;
  padding-block-end: 0;
}

.ftc-planning__step-number {
  flex-shrink: 0;
  font-family: var(--font-heading);
  font-size: var(--text-h2-size);
  line-height: 1;
  color: var(--color-seafoam-cyan);
  font-weight: 600;
  min-width: 3rem;
}

.ftc-planning__step-body {
  min-width: 0;
}

.ftc-planning__step-body h3 {
  margin-block-end: var(--space-xs);
}

.ftc-planning__step-body p {
  color: var(--color-mist);
}

/* Embarkation */
.ftc-embarkation {
  padding-block: var(--space-2xl);
  background-color: var(--color-midnight-black);
}

.ftc-embarkation__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

.ftc-embarkation__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-embarkation__content h2 {
  margin-block-end: var(--space-sm);
}

.ftc-embarkation__block {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.ftc-embarkation__block h3 {
  margin-block-end: 0;
}

.ftc-embarkation__block p {
  color: var(--color-mist);
}

.ftc-embarkation__media {
  margin: 0;
  min-width: 0;
}

.ftc-embarkation__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-slate-line);
  display: block;
}

.ftc-embarkation__media figcaption {
  margin-block-start: var(--space-2xs);
}

@media (min-width: 768px) {
  .ftc-embarkation__container {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
  }
}

/* Onboard Life */
.ftc-onboard {
  padding-block: var(--space-2xl);
}

.ftc-onboard__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-onboard__lead {
  max-width: 68ch;
  color: var(--color-mist);
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
}

.ftc-onboard__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-block-start: var(--space-sm);
}

.ftc-onboard__card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.ftc-onboard__card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  transform: translateY(-2px);
}

.ftc-onboard__card h3 {
  margin-block-end: 0;
}

.ftc-onboard__card p {
  color: var(--color-mist);
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .ftc-onboard__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .ftc-onboard__grid {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    gap: var(--space-md);
    margin-inline: calc(-1 * var(--container-padding-mobile));
    padding-inline: var(--container-padding-mobile);
    scrollbar-width: thin;
  }

  .ftc-onboard__card {
    flex: 0 0 80%;
    scroll-snap-align: start;
  }
}

/* Budget */
.ftc-budget {
  padding-block: var(--space-2xl);
  background-color: var(--color-deep-teal);
}

.ftc-budget__container {
  max-width: 800px;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-budget__lead {
  max-width: 68ch;
  color: var(--color-mist);
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
}

.ftc-budget__blocks {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  margin-block-start: var(--space-sm);
}

.ftc-budget__block {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.ftc-budget__block h3 {
  margin-block-end: 0;
}

.ftc-budget__block p {
  color: var(--color-mist);
}

/* Packing */
.ftc-packing {
  padding-block: var(--space-2xl);
}

.ftc-packing__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-packing__card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-block-start: var(--space-sm);
}

.ftc-packing__column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.ftc-packing__column h3 {
  margin-block-end: 0;
}

.ftc-packing__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.ftc-packing__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  color: var(--color-mist);
  max-width: 30ch;
}

.ftc-packing__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 10px;
  height: 10px;
  border: 2px solid var(--color-rich-gold);
  border-radius: 2px;
}

@media (min-width: 768px) {
  .ftc-packing__card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Connectivity */
.ftc-connectivity {
  padding-block: var(--space-2xl);
  background-color: var(--color-midnight-black);
}

.ftc-connectivity__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-connectivity__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-block-start: var(--space-sm);
}

.ftc-connectivity__block {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  border-inline-start: 2px solid var(--color-seafoam-cyan);
  padding-inline-start: var(--space-md);
}

.ftc-connectivity__block h3 {
  margin-block-end: 0;
}

.ftc-connectivity__block p {
  color: var(--color-mist);
}

@media (min-width: 768px) {
  .ftc-connectivity__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Concerns */
.ftc-concerns {
  padding-block: var(--space-2xl);
}

.ftc-concerns__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-concerns__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-block-start: var(--space-sm);
}

.ftc-concerns__card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.ftc-concerns__card:hover {
  border-color: rgba(240, 168, 92, 0.4);
  transform: translateY(-2px);
}

.ftc-concerns__card h3 {
  margin-block-end: 0;
}

.ftc-concerns__card p {
  color: var(--color-mist);
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .ftc-concerns__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Debarkation */
.ftc-debarkation {
  padding-block: var(--space-2xl);
  background-color: var(--color-midnight-black);
}

.ftc-debarkation__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-debarkation__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-block-start: var(--space-sm);
}

.ftc-debarkation__block {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  border-block-start: 1px solid var(--color-champagne-brass);
  padding-block-start: var(--space-md);
}

.ftc-debarkation__block h3 {
  margin-block-end: 0;
}

.ftc-debarkation__block p {
  color: var(--color-mist);
}

@media (min-width: 768px) {
  .ftc-debarkation__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* FAQ */
.ftc-faq {
  padding-block: var(--space-2xl);
}

.ftc-faq__container {
  max-width: 800px;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ftc-faq__list {
  display: flex;
  flex-direction: column;
  margin-block-start: var(--space-sm);
}

.ftc-faq__item {
  border-block-end: 1px solid var(--color-slate-line);
}

.ftc-faq__item:first-child {
  border-block-start: 1px solid var(--color-slate-line);
}

.ftc-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: 100%;
  min-height: 44px;
  padding: var(--space-md) 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: start;
  color: var(--color-ivory);
  font-weight: 600;
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
}

.ftc-faq__question:hover {
  color: var(--color-champagne-brass);
}

.ftc-faq__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  position: relative;
  display: inline-block;
}

.ftc-faq__icon::before,
.ftc-faq__icon::after {
  content: "";
  position: absolute;
  background-color: var(--color-rich-gold);
  transition: transform var(--transition-medium);
}

.ftc-faq__icon::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(-50%);
}

.ftc-faq__icon::after {
  left: 50%;
  top: 0;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
}

.ftc-faq__item.is-open .ftc-faq__icon::after {
  transform: translateX(-50%) scaleY(0);
}

.ftc-faq__answer {
  padding-block-end: var(--space-md);
  color: var(--color-mist);
  max-width: 68ch;
}

.ftc-faq__answer p {
  margin-block-end: 0;
}

/* Final CTA */
.ftc-final {
  padding-block: var(--space-3xl);
  background-color: var(--color-midnight-black);
  background-image: radial-gradient(circle at 50% 0%, rgba(201, 162, 39, 0.12), transparent 55%);
  display: flex;
  justify-content: center;
}

.ftc-final__content {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ftc-final__eyebrow {
  margin-block-end: 0;
}

.ftc-final__text {
  max-width: 48ch;
  color: var(--color-mist);
  margin-block-end: 0;
}

.ftc-final__cta {
  width: 100%;
  max-width: 360px;
}

@media (min-width: 768px) {
  .ftc-final__content {
    padding-inline: var(--container-padding-desktop);
  }

  .ftc-final__cta {
    width: auto;
    max-width: none;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ftc-hero__image,
  .ftc-embarkation__image {
    transition: none;
  }

  .ftc-faq__icon::before,
  .ftc-faq__icon::after {
    transition: none;
  }

  .ftc-onboard__card,
  .ftc-concerns__card {
    transition: none;
  }
}


/* Page-owned styles for dining-restaurants */

.dining-page {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
  padding-block-start: 0;
}

@media (min-width: 768px) {
  .dining-page {
    gap: var(--space-3xl);
  }
}

/* Hero */
.dining-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-midnight-black);
}

@media (min-width: 768px) {
  .dining-hero {
    min-height: 70vh;
    align-items: center;
  }
}

.dining-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dining-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.dining-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 10, 18, 0.4) 0%, rgba(5, 10, 18, 0.6) 100%);
}

.dining-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding: var(--space-xl) var(--container-padding-mobile);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  text-align: left;
}

@media (min-width: 768px) {
  .dining-hero__content {
    padding: var(--space-2xl) var(--container-padding-desktop);
    align-items: center;
    text-align: center;
    gap: var(--space-lg);
  }
}

.dining-hero__eyebrow {
  margin-block-end: 0;
}

.dining-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  max-width: 12ch;
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .dining-hero__title {
    max-width: 100%;
  }
}

.dining-hero__deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-mist);
  max-width: 36ch;
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .dining-hero__deck {
    max-width: 48ch;
  }
}

.dining-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-sm);
  width: 100%;
  margin-block-start: var(--space-sm);
}

@media (min-width: 768px) {
  .dining-hero__actions {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--space-md);
    width: auto;
  }
}

.dining-hero__cta {
  width: 100%;
  justify-content: center;
}

@media (min-width: 768px) {
  .dining-hero__cta {
    width: auto;
  }
}

.dining-hero__secondary {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
  transition: color var(--transition-fast);
  padding: var(--space-xs) 0;
}

.dining-hero__secondary:hover {
  color: var(--color-champagne-brass);
}

/* Introduction */
.dining-intro {
  padding-block: var(--space-xl);
}

.dining-intro__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.dining-intro__heading {
  margin-block-end: 0;
}

.dining-intro__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 68ch;
}

.dining-intro__copy p {
  margin-block-end: 0;
}

/* Dining Categories */
.dining-categories {
  padding-block: var(--space-xl);
}

.dining-categories__heading {
  margin-block-end: var(--space-lg);
}

.dining-categories__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

@media (min-width: 768px) {
  .dining-categories__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-lg);
  }
}

@media (min-width: 1024px) {
  .dining-categories__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.dining-category-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-height: 200px;
  min-width: 0;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.dining-category-card:hover {
  transform: translateY(-2px);
  border-color: rgba(227, 199, 123, 0.4);
}

.dining-category-card h3 {
  margin-block-end: 0;
  color: var(--color-ivory);
}

.dining-category-card p {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  margin-block-end: 0;
}

/* Main Dining Room Deep Dive */
.dining-main-deep {
  padding-block: var(--space-xl);
}

.dining-main-deep__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
}

@media (min-width: 768px) {
  .dining-main-deep__container {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }
}

.dining-main-deep__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 60ch;
  min-width: 0;
}

.dining-main-deep__text h2,
.dining-main-deep__text h3,
.dining-main-deep__text h4 {
  margin-block-end: 0;
}

.dining-main-deep__text p {
  margin-block-end: 0;
}

.dining-main-deep__text .dining-list {
  margin-block-start: var(--space-xs);
}

.dining-main-deep__media {
  margin-block-end: 0;
  min-width: 0;
}

.dining-main-deep__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.dining-main-deep__media figcaption {
  margin-block-start: var(--space-xs);
}

/* Specialty Restaurants */
.dining-specialty {
  padding-block: var(--space-xl);
}

.dining-specialty__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
}

@media (min-width: 768px) {
  .dining-specialty__container {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-xl);
  }
}

.dining-specialty__media {
  margin-block-end: 0;
  min-width: 0;
}

.dining-specialty__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.dining-specialty__media figcaption {
  margin-block-start: var(--space-xs);
}

.dining-specialty__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 60ch;
  min-width: 0;
}

.dining-specialty__text h2,
.dining-specialty__text h3 {
  margin-block-end: 0;
}

.dining-specialty__text p {
  margin-block-end: 0;
}

/* Casual Dining & Buffets */
.dining-casual {
  padding-block: var(--space-xl);
  background: linear-gradient(180deg, var(--color-ocean-navy) 0%, var(--color-deep-teal) 100%);
}

.dining-casual__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.dining-casual__heading {
  margin-block-end: 0;
}

.dining-casual__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 68ch;
}

.dining-casual__copy p,
.dining-casual__copy h4 {
  margin-block-end: 0;
}

/* Room Service */
.dining-room-service {
  padding-block: var(--space-xl);
}

.dining-room-service__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  border-inline-start: 2px solid var(--color-champagne-brass);
  padding-inline-start: var(--space-md);
}

.dining-room-service__heading {
  margin-block-end: 0;
}

.dining-room-service__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 68ch;
}

.dining-room-service__copy p {
  margin-block-end: 0;
}

/* Dietary Accommodations */
.dining-dietary {
  padding-block: var(--space-xl);
}

.dining-dietary__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  border-inline-start: 2px solid var(--color-seafoam-cyan);
  padding-inline-start: var(--space-md);
}

.dining-dietary__heading {
  margin-block-end: 0;
}

.dining-dietary__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 68ch;
}

.dining-dietary__copy p,
.dining-dietary__copy h4 {
  margin-block-end: 0;
}

/* Sample Menus */
.dining-menus {
  padding-block: var(--space-xl);
}

.dining-menus__heading {
  margin-block-end: var(--space-lg);
}

.dining-menus__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

@media (min-width: 768px) {
  .dining-menus__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
  }
}

.dining-menu-card {
  background-color: var(--surface-elevated);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-height: 250px;
  min-width: 0;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.dining-menu-card:hover {
  transform: translateY(-2px);
  border-color: rgba(227, 199, 123, 0.4);
}

.dining-menu-card h3 {
  margin-block-end: 0;
  color: var(--color-ivory);
}

.dining-menu-card p {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  margin-block-end: 0;
}

.dining-menu-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.dining-menu-list li {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  padding-inline-start: var(--space-md);
  position: relative;
}

.dining-menu-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  background-color: var(--color-rich-gold);
  border-radius: 1px;
}

/* Dining Packages */
.dining-packages {
  padding-block: var(--space-xl);
  background-color: var(--color-deep-teal);
}

.dining-packages__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.dining-packages__heading {
  margin-block-end: 0;
}

.dining-packages__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 68ch;
}

.dining-packages__copy p,
.dining-packages__copy h4 {
  margin-block-end: 0;
}

/* Final CTA */
.dining-final-cta {
  padding-block: var(--space-2xl);
  background-color: var(--color-midnight-black);
  position: relative;
  overflow: hidden;
}

.dining-final-cta::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 600px;
  height: 600px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(240, 168, 92, 0.15) 0%, transparent 70%);
  pointer-events: none;
}

.dining-final-cta__container {
  position: relative;
  z-index: 1;
  max-width: 600px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  text-align: center;
}

.dining-final-cta__heading {
  margin-block-end: 0;
}

.dining-final-cta__deck {
  color: var(--color-mist);
  max-width: 48ch;
  margin-block-end: 0;
}

.dining-final-cta__button {
  width: 100%;
  justify-content: center;
}

@media (min-width: 768px) {
  .dining-final-cta__button {
    width: auto;
  }
}

/* Shared list style */
.dining-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.dining-list li {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
  color: var(--color-mist);
  padding-inline-start: var(--space-md);
  position: relative;
}

.dining-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  background-color: var(--color-rich-gold);
  border-radius: 1px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .dining-category-card,
  .dining-menu-card {
    transition: none;
  }

  .dining-category-card:hover,
  .dining-menu-card:hover {
    transform: none;
  }
}


/* Page-owned styles for Liner Journal home page */

.home-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-midnight-black);
}

.home-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(5, 10, 18, 0.4) 0%, rgba(5, 10, 18, 0.6) 100%);
}

.home-hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  padding-block: var(--space-xl);
}

.home-hero__heading {
  max-width: 48ch;
  color: var(--color-ivory);
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  margin-block-end: 0;
}

.home-hero__text {
  max-width: 48ch;
  color: var(--color-ivory);
  margin-block-end: 0;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-block-start: var(--space-sm);
}

.home-hero__cta {
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .home-hero {
    min-height: 80vh;
  }

  .home-hero__content {
    padding-block: var(--space-2xl);
  }
}

@media (max-width: 480px) {
  .home-hero__actions {
    flex-direction: column;
    width: 100%;
  }

  .home-hero__cta {
    width: 100%;
  }
}

/* About section */
.home-about__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.home-about__main {
  min-width: 0;
}

.home-about__main p:not(.eyebrow) {
  max-width: 68ch;
}

.home-about__coverage {
  min-width: 0;
  border-inline-start: 1px solid var(--color-slate-line);
  padding-inline-start: var(--space-md);
}

.home-about__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-about__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  color: var(--color-mist);
}

.home-about__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-rich-gold);
}

@media (min-width: 768px) {
  .home-about__grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }
}

/* Onboard Life cards */
.home-onboard__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-block-start: var(--space-lg);
}

.home-onboard__card {
  min-width: 0;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.home-onboard__card:hover {
  transform: translateY(-2px);
  border-color: rgba(227, 199, 123, 0.4);
}

.home-onboard__icon {
  font-size: 2rem;
  line-height: 1;
  color: var(--color-rich-gold);
}

.home-onboard__card h3 {
  margin-block-end: 0;
}

.home-onboard__card p {
  margin-block-end: 0;
  }

@media (min-width: 768px) {
  .home-onboard__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .home-onboard__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Key Features */
.home-features__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-block-start: var(--space-lg);
}

.home-features__column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.home-features__item {
  min-width: 0;
  padding-block-end: var(--space-sm);
  border-block-end: 1px solid var(--color-slate-line);
}

.home-features__item:last-child {
  border-block-end: none;
  padding-block-end: 0;
}

.home-features__item h3 {
  margin-block-end: var(--space-2xs);
}

.home-features__item p {
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .home-features__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-xl);
  }
}

/* Casino section */
.home-casino {
  background-color: var(--color-midnight-black);
  background-image: radial-gradient(circle at 80% 20%, rgba(240, 168, 92, 0.08), transparent 45%);
}

.home-casino__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.home-casino__main {
  min-width: 0;
}

.home-casino__main p,
.home-casino__main h3 {
  max-width: 68ch;
}

.home-casino__lead {
  margin-block-end: var(--space-md);
}

.home-casino__main h3 {
  margin-block-start: var(--space-md);
  margin-block-end: var(--space-2xs);
}

.home-casino__sidebar {
  min-width: 0;
}

.home-casino__facts {
  position: sticky;
  top: calc(var(--header-height-desktop) + var(--space-md));
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.home-casino__facts-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-casino__facts-list li {
  color: var(--color-mist);
}

.home-casino__facts-list span {
  color: var(--color-ivory);
  font-weight: 600;
}

.home-casino__age-badge {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  align-items: flex-start;
}

.home-casino__age-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-warning-amber);
  color: var(--color-midnight-black);
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1;
  padding: var(--space-2xs) var(--space-sm);
  border-radius: var(--radius-pill);
}

@media (min-width: 768px) {
  .home-casino__grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }
}

/* Stateroom section */
.home-stateroom__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.home-stateroom__content {
  min-width: 0;
}

.home-stateroom__content p {
  }

.home-stateroom__media {
  min-width: 0;
  margin-block-end: 0;
}

.home-stateroom__media img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-slate-line);
}

@media (min-width: 768px) {
  .home-stateroom__grid {
    grid-template-columns: 8fr 4fr;
    gap: var(--space-xl);
  }
}

/* Gallery */
.home-gallery__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-block-start: var(--space-lg);
}

.home-gallery__item {
  min-width: 0;
  margin-block-end: 0;
}

.home-gallery__item img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-slate-line);
  background-color: var(--color-dark-slate);
}

.home-gallery__item figcaption {
  margin-block-start: var(--space-2xs);
}

@media (min-width: 768px) {
  .home-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-sm);
  }

  .home-gallery__item--wide {
    grid-column: span 2;
  }

  .home-gallery__item figcaption {
    display: none;
  }
}

/* Audience */
.home-audience__container {
  max-width: 800px;
  margin-inline: auto;
}

.home-audience__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-audience__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  color: var(--color-mist);
  max-width: 50ch;
}

.home-audience__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-rich-gold);
}

/* FAQ */
.home-faq__container {
  max-width: 800px;
  margin-inline: auto;
}

.home-faq__accordion {
  display: flex;
  flex-direction: column;
  border-block-start: 1px solid var(--color-slate-line);
}

.home-faq__item {
  border-block-end: 1px solid var(--color-slate-line);
}

.home-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  width: 100%;
  padding: var(--space-md) 0;
  color: var(--color-ivory);
  font-family: var(--font-body);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  text-align: start;
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--transition-fast);
}

.home-faq__question:hover {
  color: var(--color-champagne-brass);
}

.home-faq__icon {
  flex-shrink: 0;
  color: var(--color-rich-gold);
  font-size: 1.5rem;
  line-height: 1;
  transition: transform var(--transition-medium);
}

.home-faq__item.is-open .home-faq__icon {
  transform: rotate(45deg);
}

.home-faq__answer {
  padding-block-end: var(--space-md);
  color: var(--color-mist);
}

.home-faq__answer p {
  margin-block-end: 0;
}

.home-faq__answer[hidden] {
  display: none;
}

/* Final CTA */
.home-final-cta {
  background: linear-gradient(to bottom, var(--color-ocean-navy), var(--color-midnight-black));
  border-block-start: 1px solid var(--color-rich-gold);
}

.home-final-cta__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  padding-block: var(--space-xl);
}

.home-final-cta__container h2 {
  max-width: 600px;
  margin-block-end: 0;
}

.home-final-cta__container p {
  margin-block-end: 0;
}

.home-final-cta__button {
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .home-final-cta__button {
    width: 100%;
  }
}

/* Shared section padding */
.section-pad {
  padding-block: var(--space-xl);
}

@media (min-width: 768px) {
  .section-pad {
    padding-block: var(--space-2xl);
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .home-onboard__card,
  .home-faq__icon {
    transition: none;
  }

  .home-onboard__card:hover {
    transform: none;
  }
}


/* Spa & Wellness page styles */

.spa-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-ocean-navy);
}

.spa-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.spa-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.spa-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(5, 10, 18, 0.85) 0%, rgba(5, 10, 18, 0.45) 60%, rgba(5, 10, 18, 0.2) 100%);
}

.spa-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 720px;
  margin-inline: 0;
  padding-block: var(--space-xl) var(--space-2xl);
  text-align: left;
}

.spa-hero__eyebrow {
  margin-block-end: var(--space-sm);
}

.spa-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-line-height);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-letter-spacing);
  color: var(--color-ivory);
  max-width: 20ch;
  margin-block-end: var(--space-md);
}

.spa-hero__deck {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-mist);
  max-width: 48ch;
  margin-block-end: var(--space-lg);
}

.spa-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md);
}

.spa-hero__cta {
  flex-shrink: 0;
}

.spa-hero__secondary {
  color: var(--color-seafoam-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

.spa-hero__secondary:hover {
  color: var(--color-champagne-brass);
}

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

.spa-evolution {
  background: linear-gradient(135deg, var(--color-deep-teal) 0%, var(--color-ocean-navy) 100%);
}

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

.spa-evolution__content {
  grid-column: span 7;
  min-width: 0;
}

.spa-evolution__content h2 {
  margin-block-end: var(--space-md);
}

.spa-evolution__content h3 {
  margin-block-start: var(--space-lg);
  margin-block-end: var(--space-sm);
}

.spa-evolution__content p {
  }

.spa-evolution__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line-height);
  color: var(--color-ivory);
}

.spa-evolution__quote {
  max-width: 48ch;
  margin-block: var(--space-lg);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-rich-gold);
  color: var(--color-champagne-brass);
  font-style: italic;
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
}

.spa-evolution__media {
  grid-column: span 5;
  min-width: 0;
}

.spa-evolution__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-fast);
}

.spa-evolution__media img:hover {
  transform: translateY(-2px);
}

.spa-facilities__intro {
  max-width: 68ch;
  margin-block-end: var(--space-lg);
}

.spa-facilities__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
}

.spa-facility-card {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-md);
  min-width: 0;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.spa-facility-card:hover {
  border-color: rgba(227, 199, 123, 0.4);
  transform: translateY(-2px);
}

.spa-facility-card__icon {
  font-size: 1.5rem;
  color: var(--color-rich-gold);
  margin-block-end: var(--space-sm);
}

.spa-facility-card h3 {
  font-family: var(--font-body);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: var(--text-h4-weight);
  color: var(--color-ivory);
  margin-block-end: var(--space-sm);
}

.spa-facility-card p {
  color: var(--color-mist);
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line-height);
}

.spa-treatments__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

.spa-treatment-row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: center;
}

.spa-treatment-row--reverse .spa-treatment-row__media {
  order: 2;
}

.spa-treatment-row--reverse .spa-treatment-row__content {
  order: 1;
}

.spa-treatment-row__media {
  grid-column: span 5;
  min-width: 0;
}

.spa-treatment-row__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-fast);
}

.spa-treatment-row__media img:hover {
  transform: scale(1.02);
}

.spa-treatment-row__content {
  grid-column: span 7;
  min-width: 0;
}

.spa-treatment-row__content h3 {
  margin-block-end: var(--space-sm);
}

.spa-treatment-row__content p {
  }

.spa-choosing {
  background: linear-gradient(135deg, var(--color-deep-teal) 0%, var(--color-ocean-navy) 100%);
}

.spa-choosing__container {
  max-width: 800px;
  margin-inline: auto;
}

.spa-choosing__steps {
  list-style: none;
  padding-inline-start: 0;
  margin-block-start: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.spa-choosing__step {
  display: flex;
  gap: var(--space-md);
  align-items: flex-start;
  min-width: 0;
}

.spa-choosing__step-number {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-rich-gold);
  color: var(--color-midnight-black);
  font-weight: 600;
  font-size: var(--text-h4-size);
  border-radius: var(--radius-sm);
}

.spa-choosing__step-content {
  min-width: 0;
}

.spa-choosing__step-content h3 {
  margin-block-end: var(--space-xs);
}

.spa-choosing__step-content p {
  }

.spa-beyond {
  background: linear-gradient(135deg, var(--color-deep-teal) 0%, var(--color-ocean-navy) 100%);
}

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

.spa-beyond__media {
  grid-column: span 5;
  min-width: 0;
}

.spa-beyond__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-fast);
}

.spa-beyond__media img:hover {
  transform: scale(1.02);
}

.spa-beyond__content {
  grid-column: span 7;
  min-width: 0;
}

.spa-beyond__content h2 {
  margin-block-end: var(--space-md);
}

.spa-beyond__content h3 {
  margin-block-start: var(--space-lg);
  margin-block-end: var(--space-sm);
}

.spa-beyond__content p {
  }

.spa-etiquette__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.spa-etiquette__column {
  background-color: var(--color-dark-slate);
  border: 1px solid var(--color-slate-line);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  min-width: 0;
}

.spa-etiquette__column h3 {
  margin-block-end: var(--space-sm);
}

.spa-etiquette__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.spa-etiquette__list li {
  color: var(--color-mist);
  max-width: 60ch;
}

.spa-etiquette__list li strong {
  color: var(--color-champagne-brass);
  font-weight: 600;
}

.spa-itinerary__container {
  max-width: 800px;
  margin-inline: auto;
}

.spa-itinerary__container h2 {
  margin-block-end: var(--space-md);
}

.spa-itinerary__container h3 {
  margin-block-start: var(--space-lg);
  margin-block-end: var(--space-sm);
}

.spa-itinerary__container p {
  }

.spa-faq__container {
  max-width: 800px;
  margin-inline: auto;
}

.spa-faq__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-block-start: var(--space-lg);
}

.spa-faq__item {
  border-block-end: 1px solid var(--color-slate-line);
}

.spa-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: 100%;
  padding-block: var(--space-sm);
  color: var(--color-ivory);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-line-height);
  font-weight: 600;
  text-align: left;
  min-height: 44px;
}

.spa-faq__question span:first-child {
  max-width: 60ch;
}

.spa-faq__icon {
  flex-shrink: 0;
  color: var(--color-rich-gold);
  font-size: 1.5rem;
  line-height: 1;
  transition: transform var(--transition-medium);
}

.spa-faq__question[aria-expanded="true"] .spa-faq__icon {
  transform: rotate(45deg);
}

.spa-faq__answer {
  padding-block-end: var(--space-md);
}

.spa-faq__answer p {
  color: var(--color-mist);
}

.spa-final-cta {
  background: linear-gradient(135deg, var(--color-deep-teal) 0%, var(--color-ocean-navy) 100%);
  padding-block: var(--space-2xl);
}

.spa-final-cta__container {
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.spa-final-cta__container .eyebrow {
  justify-content: center;
}

.spa-final-cta__container h2 {
  max-width: 48ch;
  margin-block-end: 0;
}

.spa-final-cta__text {
  max-width: 60ch;
  margin-block-end: 0;
}

.spa-final-cta__button {
  margin-block-start: var(--space-sm);
}

@media (min-width: 768px) {
  .spa-hero {
    min-height: 80vh;
  }

  .spa-hero__content {
    padding-block: var(--space-2xl) var(--space-3xl);
  }
}

@media (max-width: 1023px) {
  .spa-facilities__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .spa-evolution__grid,
  .spa-treatment-row,
  .spa-beyond__grid {
    grid-template-columns: 1fr;
  }

  .spa-evolution__content,
  .spa-evolution__media,
  .spa-treatment-row__media,
  .spa-treatment-row__content,
  .spa-beyond__media,
  .spa-beyond__content {
    grid-column: auto;
    order: initial;
  }

  .spa-evolution__media,
  .spa-treatment-row__media,
  .spa-beyond__media {
    max-width: 100%;
  }

  .spa-treatment-row--reverse .spa-treatment-row__media {
    order: initial;
  }

  .spa-treatment-row--reverse .spa-treatment-row__content {
    order: initial;
  }
}

@media (max-width: 767px) {
  .spa-hero {
    min-height: 70vh;
  }

  .spa-hero__content {
    max-width: 100%;
    margin-inline: auto;
    text-align: center;
    padding-block: var(--space-lg) var(--space-xl);
  }

  .spa-hero__title {
    max-width: 100%;
    margin-inline: auto;
  }

  .spa-hero__deck {
    max-width: 100%;
    margin-inline: auto;
  }

  .spa-hero__actions {
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
  }

  .spa-hero__cta {
    width: 100%;
  }

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

  .spa-facilities__grid {
    grid-template-columns: 1fr;
  }

  .spa-etiquette__grid {
    grid-template-columns: 1fr;
  }

  .spa-final-cta__button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .spa-evolution__media img,
  .spa-treatment-row__media img,
  .spa-beyond__media img {
    transition: none;
  }

  .spa-evolution__media img:hover,
  .spa-treatment-row__media img:hover,
  .spa-beyond__media img:hover {
    transform: none;
  }
}


/* Thank-you page scoped styles */
.thank-you-main {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--header-height-mobile));
    padding-block: var(--space-xl);
}

@media (min-width: 768px) {
    .thank-you-main {
        min-height: calc(100vh - var(--header-height-desktop));
        padding-block: var(--space-2xl);
    }
}

.thank-you-container {
    width: 100%;
}

.thank-you-content {
    max-width: 560px;
    margin-inline: auto;
    text-align: center;
}

.thank-you-content .eyebrow {
    margin-block-end: var(--space-sm);
}

.thank-you-content h1 {
    margin-block-end: var(--space-md);
}

.thank-you-message {
    font-size: var(--text-body-lg-size);
    line-height: var(--text-body-lg-line-height);
    color: var(--color-ivory);
    margin-block-end: var(--space-md);
}

.thank-you-next {
    color: var(--color-mist);
    margin-block-end: var(--space-lg);
}

.thank-you-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    justify-content: center;
    margin-block-start: var(--space-md);
}

.thank-you-actions .btn {
    min-width: 160px;
}

@media (max-width: 480px) {
    .thank-you-actions .btn {
        width: 100%;
    }
}
