:root {
  --ink: #1a365d;
  --ink-strong: #112845;
  --ink-soft: #4d6482;
  --accent: #1f6fd2;
  --accent-strong: #1557a8;
  --accent-soft: #eef5ff;
  --surface: #ffffff;
  --surface-muted: #f5f7fb;
  --surface-alt: #edf3f9;
  --line: #d7e1ec;
  --line-strong: #c5d4e4;
  --shadow: 0 18px 42px rgba(15, 37, 69, 0.08);
  --radius-xl: 30px;
  --radius-lg: 24px;
  --radius-md: 20px;
  --radius-sm: 14px;
  --site-width: min(1200px, calc(100vw - 40px));
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scrollbar-color: var(--accent) #dce6f0;
}

body {
  margin: 0;
  font-family: "Manrope", Arial, sans-serif;
  color: var(--ink-strong);
  background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

body.menu-open {
  overflow: hidden;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

main {
  overflow: hidden;
}

::selection {
  background: rgba(31, 111, 210, 0.16);
}

::-webkit-scrollbar {
  width: 14px;
  height: 14px;
}

::-webkit-scrollbar-track {
  background: #e5edf5;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--accent), #4f93e3);
  border-radius: 999px;
  border: 3px solid #f5f9fd;
}

.notice-bar {
  background: #f0f5fa;
  color: var(--ink-soft);
  text-align: center;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(215, 225, 236, 0.8);
}

.header-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 18px;
  align-items: center;
  padding: 18px clamp(18px, 4vw, 42px);
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}

.brand-emblem {
  width: 76px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.brand-emblem-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.brand-copy strong,
.brand-copy span {
  display: block;
}

.brand-copy strong {
  color: var(--ink-strong);
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.brand-copy span {
  font-size: 0.82rem;
  color: var(--ink-soft);
}

.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-strong);
}

.nav-cluster {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}

.nav-item {
  position: relative;
}

.nav-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 14px;
  border-radius: 999px;
  color: var(--ink-strong);
  font-weight: 700;
  font-size: 0.94rem;
  border: 1px solid transparent;
  transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.nav-trigger::after {
  content: "+";
  font-size: 0.95rem;
  color: var(--ink-soft);
  transition: color 0.22s ease;
}

.nav-item:hover .nav-trigger,
.nav-item:focus-within .nav-trigger {
  background: #eef4fb;
  border-color: var(--line-strong);
  box-shadow: 0 6px 16px rgba(17, 40, 69, 0.07);
}

.nav-item:hover .nav-trigger::after,
.nav-item:focus-within .nav-trigger::after {
  color: var(--accent-strong);
}

.nav-trigger.is-active {
  background: var(--accent-soft);
  border-color: #b8cdeb;
  color: var(--accent-strong);
  box-shadow: inset 0 0 0 1px rgba(31, 111, 210, 0.06);
}

.nav-trigger.is-active::after {
  color: var(--accent-strong);
}

.nav-flyout {
  position: absolute;
  left: 0;
  top: calc(100% + 4px);
  width: 320px;
  padding: 20px;
  border-radius: 22px;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.nav-flyout::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 12px;
}

.nav-item:hover .nav-flyout,
.nav-item:focus-within .nav-flyout {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.nav-flyout p {
  margin: 0 0 14px;
  color: var(--ink-soft);
  font-size: 0.84rem;
  line-height: 1.7;
}

.nav-flyout a {
  display: block;
  padding: 11px 14px;
  margin: 0 -14px;
  border-radius: 16px;
  font-weight: 700;
  color: var(--ink-strong);
  border-bottom: 1px solid var(--line);
  transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}

.nav-flyout a:hover,
.nav-flyout a:focus-visible {
  background: #eef4fb;
  color: var(--accent-strong);
  border-bottom-color: transparent;
  transform: translateX(2px);
}

.nav-flyout a.is-current {
  background: var(--accent-soft);
  color: var(--accent-strong);
  border-bottom-color: transparent;
  box-shadow: inset 0 0 0 1px rgba(31, 111, 210, 0.08);
}

.nav-flyout a:last-child {
  border-bottom: 0;
}

.header-phone,
.header-cta,
.button-primary,
.button-secondary,
.button-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 22px;
  border-radius: 999px;
  font-weight: 800;
  transition: transform 0.22s ease, background 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

.header-phone,
.button-ghost,
.button-secondary {
  background: var(--surface);
  color: var(--ink-strong);
  border: 1px solid var(--line-strong);
}

.header-cta,
.button-primary {
  background: var(--accent);
  color: #ffffff;
  border: 1px solid var(--accent);
}

.header-phone:hover,
.header-cta:hover,
.button-primary:hover,
.button-secondary:hover,
.button-ghost:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(17, 40, 69, 0.12);
}

.header-cta:hover,
.button-primary:hover {
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.header-phone:hover,
.button-secondary:hover,
.button-ghost:hover {
  background: #f2f6fb;
  border-color: #b8cdeb;
}

.hero-constellation,
.page-hero {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 34px 0 0;
  background: var(--surface-muted);
}

.hero-inner,
.page-hero-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 44vw);
  gap: 56px;
  align-items: center;
  padding: 54px clamp(24px, 5vw, 72px);
  border-radius: 0;
  background: var(--surface);
  border: 0;
  box-shadow: none;
}

.hero-inner > div,
.page-hero-inner > div {
  min-width: 0;
}

.section-badge,
.floating-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-size: 0.85rem;
  font-weight: 800;
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--accent-strong);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.headline,
.page-title,
.section-heading h2,
.signature-note h3,
.hero-facts h3,
.collection-card h3,
.detail-card h3,
.mosaic-card h3,
.story-card h3,
.legal-card h3,
.highlight-panel h3,
.route-panel h3,
.cta-panel h3,
.legal-copy h2,
.legal-copy h3,
.quote-panel blockquote,
.faq-item h3 {
  margin: 0;
  font-family: "Manrope", Arial, sans-serif;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--ink-strong);
}

.headline,
.page-title {
  max-width: 12ch;
  font-size: clamp(2.8rem, 5vw, 3.5rem);
  line-height: 1.05;
}

.headline .accent,
.page-title .accent,
.section-heading h2 .accent {
  color: var(--accent);
}

.hero-copy,
.page-summary {
  max-width: 640px;
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.78;
}

.hero-actions,
.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 26px;
}

.hero-facts {
  margin-top: 28px;
  padding: 24px;
  border-radius: var(--radius-lg);
  background: var(--surface-alt);
  border: 1px solid var(--line);
}

.hero-facts p {
  margin: 12px 0 0;
  color: var(--ink-soft);
  line-height: 1.75;
}

.hero-list,
.fact-list,
.mini-list {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
}

.hero-list span,
.fact-list span,
.mini-list span {
  display: block;
  padding: 12px 14px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid var(--line);
  color: var(--ink-strong);
  font-size: 0.94rem;
  font-weight: 700;
}

.hero-media img,
.signature-art img,
.collection-media img,
.mosaic-media img,
.story-media img,
.detail-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 26px;
}

.hero-media {
  min-width: 0;
}

.hero-media img {
  min-height: 420px;
}

.finder-rail {
  width: var(--site-width);
  margin: 28px auto 0;
}

.finder-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  border-radius: var(--radius-xl);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.finder-item {
  padding: 24px 22px;
  border-right: 1px solid var(--line);
}

.finder-item:last-child {
  border-right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.finder-item small {
  display: block;
  margin-bottom: 8px;
  color: var(--ink-soft);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.finder-item strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1rem;
  line-height: 1.55;
}

.section-wrap {
  width: var(--site-width);
  margin: 0 auto;
  padding-top: 92px;
}

.section-heading {
  max-width: 700px;
}

.section-heading h2 {
  font-size: clamp(2.5rem, 4vw, 3.2rem);
  line-height: 1.08;
}

.section-heading p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.8;
}

.signature-stage,
.split-band,
.route-stage,
.cta-stage,
.contact-grid,
.faq-grid,
.legal-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 32px;
  margin-top: 34px;
}

.signature-stage {
  align-items: center;
}

.signature-art {
  min-height: 360px;
}

.signature-note,
.highlight-panel,
.route-panel,
.cta-panel,
.quote-panel,
.legal-card,
.legal-copy,
.faq-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  padding: 32px;
  box-shadow: var(--shadow);
}
.signature-note h3,
.highlight-panel h3,
.route-panel h3,
.cta-panel h3,
.legal-card h3,
.faq-item h3,
.legal-copy h2,
.legal-copy h3,
.quote-panel blockquote {
  font-size: clamp(1.8rem, 2.6vw, 2.5rem);
  line-height: 1.1;
}

.signature-note p,
.highlight-panel p,
.route-panel p,
.cta-panel p,
.legal-card p,
.faq-item p,
.legal-copy p,
.legal-copy li,
.quote-panel p,
.feature-strip span,
.stat-card span,
.collection-body p,
.detail-body p,
.mosaic-body p,
.story-body p,
.legal-body p {
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.8;
}

.collection-grid,
.detail-grid,
.story-grid,
.legal-grid,
.card-grid,
.three-up {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  margin-top: 34px;
}

.voyage-showcase-band {
  position: relative;
  width: 100vw;
  margin: 76px calc(50% - 50vw) 0;
  padding: 108px 0 112px;
  background: #ffffff;
  border-top: 1px solid rgba(197, 212, 228, 0.68);
  border-bottom: 1px solid rgba(197, 212, 228, 0.68);
  box-shadow: 0 32px 70px rgba(17, 40, 69, 0.06);
  overflow: hidden;
}

.voyage-showcase-band::before,
.voyage-showcase-band::after {
  content: "";
  position: absolute;
  left: -8%;
  width: 116%;
  height: 124px;
  pointer-events: none;
  opacity: 0.9;
  background:
    radial-gradient(circle at 18% 50%, rgba(31, 111, 210, 0.09), transparent 36%),
    radial-gradient(circle at 80% 42%, rgba(17, 40, 69, 0.06), transparent 34%),
    linear-gradient(180deg, rgba(237, 243, 249, 0.96), rgba(255, 255, 255, 0));
}

.voyage-showcase-band::before {
  top: 0;
  transform: translateY(-56%);
  animation: voyageSeparatorDriftTop 12s ease-in-out infinite alternate;
}

.voyage-showcase-band::after {
  bottom: 0;
  transform: translateY(56%) rotate(180deg);
  animation: voyageSeparatorDriftBottom 14s ease-in-out infinite alternate;
}

.voyage-showcase-inner {
  width: var(--site-width);
  margin: 0 auto;
}

.voyage-showcase-copy {
  max-width: 900px;
  margin-bottom: 42px;
}

.voyage-showcase-copy h2 {
  margin: 14px 0 0;
  font-size: clamp(2.8rem, 4.4vw, 3.85rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  color: var(--ink-strong);
}

.voyage-showcase-copy h2 .accent {
  color: var(--accent);
}

.voyage-showcase-copy p {
  margin: 18px 0 0;
  max-width: 840px;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.9;
}

.voyage-showcase-band .collection-grid {
  gap: 20px;
  margin-top: 40px;
}

.voyage-showcase-band .collection-card {
  border-radius: 30px;
  border-color: #d7e3ef;
  box-shadow: 0 16px 38px rgba(17, 40, 69, 0.07);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.voyage-showcase-band .collection-card:hover {
  transform: translateY(-4px);
  border-color: #bfd1e5;
  box-shadow: 0 26px 52px rgba(17, 40, 69, 0.12);
}

.voyage-story-band {
  position: relative;
  width: 100vw;
  margin: 88px calc(50% - 50vw) 0;
  padding: 112px 0 118px;
  background: #ffffff;
  border-top: 1px solid rgba(197, 212, 228, 0.72);
  border-bottom: 1px solid rgba(197, 212, 228, 0.72);
  box-shadow: 0 30px 66px rgba(17, 40, 69, 0.06);
  overflow: hidden;
}

.voyage-story-band::before,
.voyage-story-band::after {
  content: "";
  position: absolute;
  left: -6%;
  width: 112%;
  pointer-events: none;
}

.voyage-story-band::before {
  top: 0;
  height: 136px;
  transform: translateY(-58%);
  background:
    radial-gradient(circle at 22% 50%, rgba(31, 111, 210, 0.09), transparent 34%),
    linear-gradient(180deg, rgba(240, 245, 250, 0.98), rgba(255, 255, 255, 0));
  animation: voyageStoryWaveTop 13s ease-in-out infinite alternate;
}

.voyage-story-band::after {
  bottom: 0;
  height: 146px;
  transform: translateY(58%) rotate(180deg);
  background:
    radial-gradient(circle at 74% 44%, rgba(17, 40, 69, 0.07), transparent 33%),
    linear-gradient(180deg, rgba(240, 245, 250, 0.98), rgba(255, 255, 255, 0));
  animation: voyageStoryWaveBottom 15s ease-in-out infinite alternate;
}

.voyage-story-inner {
  width: min(1320px, calc(100vw - 52px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(420px, 0.92fr);
  gap: 28px;
  align-items: start;
}

.voyage-story-panel {
  padding: 42px 40px 44px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  border: 1px solid #d7e3ef;
  border-radius: 34px;
  box-shadow: 0 18px 42px rgba(17, 40, 69, 0.07);
}

.voyage-story-panel h3 {
  margin: 14px 0 0;
  max-width: 760px;
  font-size: clamp(3rem, 4vw, 4.15rem);
  line-height: 1.01;
  letter-spacing: -0.05em;
  color: var(--ink-strong);
}

.voyage-story-panel p {
  margin: 22px 0 0;
  max-width: 760px;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.9;
}

.voyage-story-aside {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "main main"
    "top bottom";
  gap: 22px;
  align-content: start;
}

.voyage-story-card {
  padding: 28px 26px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid #d7e3ef;
  border-radius: 28px;
  box-shadow: 0 14px 34px rgba(17, 40, 69, 0.06);
}

.voyage-story-card small {
  display: block;
  margin-bottom: 14px;
  color: var(--accent-strong);
  font-size: 0.77rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.voyage-story-card strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.38rem;
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.voyage-story-card p {
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.78;
}

.voyage-story-card-main {
  grid-area: main;
  min-height: 0;
}

.voyage-story-card-top {
  grid-area: top;
}

.voyage-story-card-bottom {
  grid-area: bottom;
}

.mosaic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 34px;
}

.collection-card,
.detail-card,
.mosaic-card,
.story-card,
.info-card,
.legal-card {
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.collection-media,
.mosaic-media,
.story-media,
.detail-media {
  height: 260px;
  padding: 0;
}

.collection-body,
.mosaic-body,
.story-body,
.detail-body,
.legal-body {
  padding: 24px 24px 28px;
}

.collection-body small,
.mosaic-body small,
.story-body small,
.detail-body small,
.legal-body small {
  display: block;
  margin-bottom: 10px;
  color: var(--accent-strong);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.collection-body h3,
.mosaic-body h3,
.story-body h3,
.detail-body h3,
.legal-body h3 {
  font-size: 1.6rem;
  line-height: 1.16;
}

.stats-ribbon {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin-top: 34px;
}

.stat-card {
  padding: 24px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.stat-card strong {
  display: block;
  margin-bottom: 10px;
  color: var(--accent-strong);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.feature-stack {
  display: grid;
  gap: 18px;
}

.feature-strip {
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.feature-strip strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.02rem;
  font-weight: 800;
}

@keyframes voyageSeparatorDriftTop {
  0% {
    transform: translateY(-56%) translateX(0);
  }

  100% {
    transform: translateY(-52%) translateX(24px);
  }
}

@keyframes voyageSeparatorDriftBottom {
  0% {
    transform: translateY(56%) rotate(180deg) translateX(0);
  }

  100% {
    transform: translateY(52%) rotate(180deg) translateX(24px);
  }
}

@keyframes voyageStoryWaveTop {
  0% {
    transform: translateY(-58%) translateX(0);
  }

  100% {
    transform: translateY(-54%) translateX(22px);
  }
}

@keyframes voyageStoryWaveBottom {
  0% {
    transform: translateY(58%) rotate(180deg) translateX(0);
  }

  100% {
    transform: translateY(54%) rotate(180deg) translateX(18px);
  }
}

.slider-shell {
  margin-top: 34px;
}

.slider-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.slider-controls {
  display: flex;
  gap: 10px;
}

.slider-button {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink-strong);
}

.slider-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 360px);
  gap: 22px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 10px;
}

.slider-track > * {
  scroll-snap-align: start;
}

.itinerary-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.chip {
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-size: 0.9rem;
  font-weight: 700;
}

.table-wrap {
  margin-top: 28px;
  overflow: auto;
  border-radius: var(--radius-xl);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  background: var(--surface);
}

th,
td {
  padding: 16px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  color: var(--ink-soft);
  line-height: 1.7;
}

th {
  color: var(--accent-strong);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: #f7fbff;
}

.site-footer {
  margin-top: 92px;
  background: #f2f6fb;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  padding: 68px 0 40px;
}

.footer-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.75fr) minmax(0, 0.8fr);
  gap: 30px;
  padding: 0 clamp(24px, 4vw, 56px);
}

.footer-brand p {
  max-width: 620px;
  line-height: 1.82;
}

.footer-contact {
  display: grid;
  gap: 14px;
}

.footer-contact-card {
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid var(--line);
  border-radius: 22px;
}

.footer-contact-card small {
  display: block;
  margin-bottom: 8px;
  color: var(--accent-strong);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-contact-card strong,
.footer-contact-card a,
.footer-contact-card span {
  display: block;
  color: var(--ink-strong);
  line-height: 1.7;
}

.footer-contact-card a {
  font-weight: 700;
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
}

.footer-links a {
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.footer-bottom {
  width: 100%;
  max-width: none;
  margin: 24px 0 0;
  padding: 24px clamp(24px, 4vw, 56px) 0;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 0.88rem;
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1120px) {
  .header-shell {
    grid-template-columns: auto auto 1fr auto;
  }

  .nav-cluster {
    justify-content: flex-start;
    overflow: auto;
    padding-bottom: 6px;
  }

  .hero-inner,
  .page-hero-inner,
  .signature-stage,
  .split-band,
  .route-stage,
  .cta-stage,
  .contact-grid,
  .faq-grid,
  .footer-shell {
    grid-template-columns: 1fr;
  }

  .mosaic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stats-ribbon {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .menu-toggle {
    display: inline-grid;
    place-items: center;
  }

  .header-shell {
    grid-template-columns: auto auto 1fr;
    grid-template-areas:
      "brand menu cta"
      "nav nav nav";
  }

  .brand-mark {
    grid-area: brand;
  }

  .menu-toggle {
    grid-area: menu;
    justify-self: start;
  }

  .header-cta {
    grid-area: cta;
    justify-self: end;
  }

  .header-phone {
    display: none;
  }

  .nav-cluster {
    grid-area: nav;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 18px 0 8px;
    max-height: calc(100vh - 160px);
    overflow: auto;
  }

  body.menu-open .nav-cluster {
    display: flex;
  }

  .nav-item {
    display: grid;
    gap: 8px;
  }

  .nav-trigger {
    width: 100%;
    justify-content: space-between;
    padding-inline: 18px;
  }

  .nav-item.is-open .nav-trigger {
    background: #eef4fb;
    border-color: var(--line-strong);
    color: var(--accent-strong);
  }

  .nav-item.is-open .nav-trigger::after {
    content: "-";
    color: var(--accent-strong);
  }

  .nav-flyout {
    display: none;
    position: static;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    width: 100%;
    margin-top: 0;
    box-shadow: none;
  }

  .nav-flyout::before {
    display: none;
  }

  .nav-item.is-open .nav-flyout {
    display: block;
  }

  .finder-grid,
  .collection-grid,
  .detail-grid,
  .story-grid,
  .card-grid,
  .legal-grid,
  .three-up,
  .mosaic-grid,
  .stats-ribbon {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .finder-rail,
  .section-wrap {
    width: min(100%, calc(100vw - 24px));
  }

  .header-shell {
    width: 100%;
    max-width: none;
    padding-left: 12px;
    padding-right: 12px;
  }

  .hero-constellation,
  .page-hero {
    width: 100%;
    padding-top: 20px;
  }

  .hero-inner,
  .page-hero-inner {
    width: 100%;
    max-width: none;
  }

  .header-shell {
    padding: 16px 0;
  }

  .hero-inner,
  .page-hero-inner {
    gap: 28px;
    padding: 28px;
  }

  .headline,
  .page-title {
    font-size: clamp(2.25rem, 7.2vw, 2.8rem);
  }

  .section-heading h2 {
    font-size: clamp(2rem, 6.5vw, 2.5rem);
  }

  .hero-copy,
  .page-summary,
  .section-heading p {
    font-size: 0.96rem;
  }

  .voyage-showcase-band {
    margin-top: 56px;
    padding: 84px 0 88px;
  }

  .voyage-showcase-copy h2 {
    font-size: clamp(2.1rem, 7vw, 2.7rem);
  }

  .voyage-showcase-copy p {
    font-size: 0.98rem;
    line-height: 1.8;
  }

  .voyage-story-band {
    margin-top: 58px;
    padding: 82px 0 88px;
  }

  .voyage-story-inner {
    width: min(100%, calc(100vw - 24px));
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .voyage-story-panel {
    padding: 30px 22px 32px;
  }

  .voyage-story-panel h3 {
    font-size: clamp(2.2rem, 8vw, 3rem);
  }

  .voyage-story-panel p {
    font-size: 0.98rem;
    line-height: 1.84;
  }

  .voyage-story-aside {
    grid-template-columns: 1fr;
    grid-template-areas:
      "main"
      "top"
      "bottom";
  }

  .hero-media img,
  .signature-art img,
  .collection-media img,
  .mosaic-media img,
  .story-media img,
  .detail-media img {
    min-height: 0;
    height: 260px;
  }

  .finder-item {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .finder-item:last-child {
    border-bottom: 0;
  }

  .footer-contact,
  .footer-links {
    grid-template-columns: 1fr;
  }
}

/* Corporate block override: turn card sections into left-text/right-image service blocks */
.collection-grid,
.detail-grid,
.mosaic-grid,
.story-grid,
.legal-grid,
.card-grid,
.three-up {
  grid-template-columns: 1fr;
}

.collection-card,
.detail-card,
.mosaic-card,
.story-card,
.legal-card {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  align-items: stretch;
}

.collection-media,
.detail-media,
.mosaic-media,
.story-media {
  height: 100%;
  min-height: 260px;
}

.collection-body,
.detail-body,
.mosaic-body,
.story-body,
.legal-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.collection-card .button-primary,
.detail-card .button-primary,
.mosaic-card .button-primary,
.story-card .button-primary,
.legal-card .button-primary {
  align-self: flex-start;
  margin-top: 18px;
}

@media (max-width: 1180px) {
  .voyage-story-inner {
    grid-template-columns: 1fr;
    width: min(100%, calc(100vw - 36px));
  }

  .voyage-story-aside {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "main main"
      "top bottom";
  }
}

@media (max-width: 820px) {
  .collection-card,
  .detail-card,
  .mosaic-card,
  .story-card,
  .legal-card {
    grid-template-columns: 1fr;
  }

  .voyage-showcase-band .collection-card {
    grid-template-columns: 1fr;
  }
}


.detail-grid-stack {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.detail-grid-stack .detail-card {
  display: flex;
  flex-direction: column;
}

.detail-grid-stack .detail-media {
  height: 260px;
  min-height: 260px;
}

.detail-grid-stack .detail-body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

@media (max-width: 1100px) {
  .detail-grid-stack {
    grid-template-columns: 1fr;
  }
}


.detail-grid-stack {
  width: 100vw;
  margin: 34px calc(50% - 50vw) 0;
  padding: 0 clamp(24px, 4vw, 56px);
}

@media (max-width: 1100px) {
  .detail-grid-stack {
    width: 100%;
    margin: 34px 0 0;
    padding: 0;
  }
}


.section-heading-wide {
  width: 100%;
  max-width: none;
}

.section-heading-wide p {
  max-width: none;
}


.mosaic-grid-stack {
  width: 100vw;
  margin: 34px calc(50% - 50vw) 0;
  padding: 0 clamp(24px, 4vw, 56px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mosaic-grid-stack .mosaic-card {
  display: flex;
  flex-direction: column;
}

.mosaic-grid-stack .mosaic-media {
  height: 260px;
  min-height: 260px;
}

.mosaic-grid-stack .mosaic-body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

@media (max-width: 1100px) {
  .mosaic-grid-stack {
    width: 100%;
    margin: 34px 0 0;
    padding: 0;
    grid-template-columns: 1fr;
  }
}


.reviews-band {
  padding: 38px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid #d7e3ef;
  border-radius: 34px;
  box-shadow: 0 18px 42px rgba(17, 40, 69, 0.07);
}

.reviews-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.reviews-copy {
  max-width: 780px;
}

.reviews-copy h2 {
  margin: 14px 0 0;
  font-size: clamp(2.5rem, 4vw, 3.4rem);
  line-height: 1.04;
  letter-spacing: -0.04em;
  color: var(--ink-strong);
}

.reviews-copy h2 .accent {
  color: var(--accent);
}

.reviews-copy p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.85;
}

.reviews-controls {
  display: flex;
  gap: 12px;
  flex: 0 0 auto;
}

.slider-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid #c7d7e8;
  background: #ffffff;
  color: var(--ink-strong);
  font-weight: 800;
  cursor: pointer;
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.slider-button:hover {
  transform: translateY(-1px);
  border-color: #b2c8df;
  background: #f3f8fd;
  box-shadow: 0 10px 24px rgba(17, 40, 69, 0.1);
}

.reviews-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(300px, 360px);
  gap: 20px;
  margin-top: 34px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
}

.reviews-track::-webkit-scrollbar {
  height: 10px;
}

.review-card {
  scroll-snap-align: start;
  min-height: 100%;
  padding: 26px 24px 28px;
  background: #ffffff;
  border: 1px solid #d7e3ef;
  border-radius: 28px;
  box-shadow: 0 14px 34px rgba(17, 40, 69, 0.06);
}

.review-topline {
  display: flex;
  align-items: center;
  gap: 14px;
}

.review-avatar {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  border: 2px solid #d7e3ef;
}

.review-topline strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.05rem;
}

.review-topline span {
  display: block;
  margin-top: 4px;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.review-rating {
  display: inline-flex;
  margin-top: 18px;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-weight: 800;
  font-size: 0.92rem;
}

.review-card p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.82;
}

@media (max-width: 900px) {
  .reviews-band {
    padding: 28px 20px 30px;
  }

  .reviews-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .reviews-copy h2 {
    font-size: clamp(2rem, 7vw, 2.6rem);
  }

  .reviews-track {
    grid-auto-columns: minmax(270px, 82vw);
  }
}


.reviews-track {
  cursor: grab;
  user-select: none;
}

.reviews-track.is-dragging {
  cursor: grabbing;
}


.voyage-atlas-page {
  background:
    radial-gradient(circle at top left, rgba(31, 111, 210, 0.08), transparent 24%),
    linear-gradient(180deg, #f7f9fc 0%, #ffffff 28%, #f9fbfe 100%);
}

.voyage-atlas-hero,
.voyage-atlas-marquee,
.voyage-grand-collection,
.voyage-editorial-ribbon,
.voyage-discovery-field,
.voyage-invitation-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.voyage-atlas-hero {
  padding: 42px 0 0;
}

.voyage-atlas-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
  gap: 34px;
  align-items: center;
}

.voyage-atlas-copy h1,
.voyage-atlas-marquee-card strong,
.voyage-grand-body h2,
.voyage-panorama-body h2,
.voyage-editorial-heading h2,
.voyage-tall-body h3,
.voyage-journal-copy h3,
.voyage-discovery-copy h3,
.voyage-mini-card h3,
.voyage-invitation-inner h2 {
  margin: 0;
  color: var(--ink-strong);
  letter-spacing: -0.04em;
}

.voyage-atlas-copy h1 {
  margin-top: 16px;
  max-width: 760px;
  font-size: clamp(3.3rem, 5vw, 5rem);
  line-height: 0.98;
}

.voyage-atlas-copy h1 .accent,
.voyage-invitation-inner h2 .accent {
  color: var(--accent);
}

.voyage-atlas-copy p {
  margin: 20px 0 0;
  max-width: 700px;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.92;
}

.voyage-atlas-figure {
  position: relative;
}

.voyage-atlas-figure img {
  width: 100%;
  height: 620px;
  object-fit: cover;
  border-radius: 38px;
  box-shadow: 0 24px 56px rgba(17, 40, 69, 0.14);
}

.voyage-atlas-floating-note {
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 28px;
  padding: 20px 22px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(199, 215, 232, 0.9);
  border-radius: 24px;
  box-shadow: 0 16px 40px rgba(17, 40, 69, 0.1);
}

.voyage-atlas-floating-note strong,
.voyage-atlas-floating-note span {
  display: block;
}

.voyage-atlas-floating-note strong {
  color: var(--ink-strong);
  font-size: 1.08rem;
}

.voyage-atlas-floating-note span {
  margin-top: 8px;
  color: var(--ink-soft);
  line-height: 1.72;
}

.voyage-atlas-marquee {
  margin-top: 34px;
}

.voyage-atlas-marquee-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.voyage-atlas-marquee-card {
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid #d7e3ef;
  border-radius: 26px;
  box-shadow: 0 14px 32px rgba(17, 40, 69, 0.06);
}

.voyage-atlas-marquee-card small,
.voyage-grand-body small,
.voyage-panorama-body small,
.voyage-tall-body small,
.voyage-journal-copy small,
.voyage-discovery-copy small,
.voyage-mini-card small {
  display: block;
  margin-bottom: 12px;
  color: var(--accent-strong);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.voyage-atlas-marquee-card strong {
  font-size: 1.18rem;
  line-height: 1.52;
}

.voyage-grand-collection {
  display: grid;
  gap: 26px;
  margin-top: 42px;
}

.voyage-grand-card {
  display: grid;
  grid-template-columns: minmax(380px, 0.92fr) minmax(0, 1.08fr);
  gap: 0;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #d7e3ef;
  border-radius: 34px;
  box-shadow: 0 18px 42px rgba(17, 40, 69, 0.08);
}

.voyage-grand-card-reverse {
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
}

.voyage-grand-card-reverse .voyage-grand-media {
  order: 2;
}

.voyage-grand-card-reverse .voyage-grand-body {
  order: 1;
}

.voyage-grand-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.voyage-grand-body,
.voyage-panorama-body,
.voyage-tall-body,
.voyage-journal-copy,
.voyage-discovery-copy,
.voyage-mini-card,
.voyage-invitation-inner {
  padding: 38px;
}

.voyage-grand-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.voyage-grand-body h2,
.voyage-panorama-body h2 {
  font-size: clamp(2.3rem, 3vw, 3.1rem);
  line-height: 1.02;
}

.voyage-grand-body p,
.voyage-panorama-body p,
.voyage-editorial-heading p,
.voyage-tall-body p,
.voyage-journal-copy p,
.voyage-discovery-copy p,
.voyage-mini-card p,
.voyage-invitation-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.84;
}

.voyage-panorama-card {
  overflow: hidden;
  background: linear-gradient(180deg, #fefefe 0%, #f8fbff 100%);
  border: 1px solid #d7e3ef;
  border-radius: 34px;
  box-shadow: 0 18px 42px rgba(17, 40, 69, 0.08);
}

.voyage-panorama-media img {
  width: 100%;
  height: 420px;
  object-fit: cover;
}

.voyage-panorama-body {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr) auto;
  gap: 24px;
  align-items: end;
}

.voyage-editorial-ribbon {
  margin-top: 44px;
}

.voyage-editorial-heading {
  max-width: 860px;
  margin-bottom: 30px;
}

.voyage-editorial-heading h2 {
  font-size: clamp(2.5rem, 3.8vw, 3.6rem);
  line-height: 1.02;
}

.voyage-editorial-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.88fr) minmax(0, 1.12fr);
  gap: 24px;
  align-items: start;
}

.voyage-tall-portrait,
.voyage-journal-card,
.voyage-discovery-feature,
.voyage-mini-card {
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #d7e3ef;
  border-radius: 30px;
  box-shadow: 0 16px 38px rgba(17, 40, 69, 0.07);
}

.voyage-tall-media img {
  width: 100%;
  height: 460px;
  object-fit: cover;
}

.voyage-tall-body h3,
.voyage-journal-copy h3,
.voyage-discovery-copy h3,
.voyage-mini-card h3 {
  font-size: clamp(1.8rem, 2.6vw, 2.5rem);
  line-height: 1.06;
}

.voyage-editorial-stack {
  display: grid;
  gap: 22px;
}

.voyage-journal-card {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
}

.voyage-journal-card-alt {
  grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.08fr);
}

.voyage-journal-media img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
}

.voyage-journal-card-alt .voyage-journal-media {
  order: 1;
}

.voyage-journal-card-alt .voyage-journal-copy {
  order: 2;
}

.voyage-discovery-field {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(360px, 0.72fr);
  gap: 24px;
  margin-top: 44px;
  align-items: start;
}

.voyage-discovery-feature {
  display: grid;
  grid-template-columns: minmax(340px, 1.08fr) minmax(300px, 0.92fr);
  align-items: stretch;
}

.voyage-discovery-copy {
  min-width: 0;
}

.voyage-discovery-media img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.voyage-minimal-pair {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-content: start;
}

.voyage-mini-card {
  min-height: 0;
}

.voyage-mini-card h3 {
  max-width: 10ch;
  font-size: clamp(1.55rem, 2vw, 2rem);
}

.voyage-mini-card-accent {
  background: linear-gradient(180deg, #f7fbff 0%, #eef5ff 100%);
}

.voyage-invitation-stage {
  margin-top: 48px;
  padding-bottom: 34px;
}

.voyage-invitation-inner {
  text-align: left;
  background: linear-gradient(135deg, #112845 0%, #1b3b64 60%, #245490 100%);
  border-radius: 38px;
  color: #ffffff;
  box-shadow: 0 24px 56px rgba(17, 40, 69, 0.16);
}

.voyage-invitation-inner h2 {
  margin-top: 14px;
  max-width: 760px;
  color: #ffffff;
  font-size: clamp(2.8rem, 4vw, 3.9rem);
  line-height: 1.02;
}

.voyage-invitation-inner p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.78);
}

.voyage-invitation-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.22);
}

.voyage-invitation-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.32);
}

.voyage-grand-card:hover,
.voyage-panorama-card:hover,
.voyage-tall-portrait:hover,
.voyage-journal-card:hover,
.voyage-discovery-feature:hover,
.voyage-mini-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 50px rgba(17, 40, 69, 0.1);
}

@media (max-width: 1180px) {
  .voyage-atlas-hero-inner,
  .voyage-editorial-layout,
  .voyage-discovery-field,
  .voyage-discovery-feature,
  .voyage-journal-card,
  .voyage-journal-card-alt,
  .voyage-panorama-body,
  .voyage-grand-card,
  .voyage-grand-card-reverse {
    grid-template-columns: 1fr;
  }

  .voyage-grand-card-reverse .voyage-grand-media,
  .voyage-grand-card-reverse .voyage-grand-body,
  .voyage-journal-card-alt .voyage-journal-media,
  .voyage-journal-card-alt .voyage-journal-copy {
    order: initial;
  }

  .voyage-atlas-marquee-inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px) {
  .voyage-atlas-hero,
  .voyage-atlas-marquee,
  .voyage-grand-collection,
  .voyage-editorial-ribbon,
  .voyage-discovery-field,
  .voyage-invitation-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .voyage-atlas-copy h1,
  .voyage-editorial-heading h2,
  .voyage-invitation-inner h2 {
    font-size: clamp(2.2rem, 8vw, 3rem);
  }

  .voyage-grand-body,
  .voyage-panorama-body,
  .voyage-tall-body,
  .voyage-journal-copy,
  .voyage-discovery-copy,
  .voyage-mini-card,
  .voyage-invitation-inner {
    padding: 28px 22px 30px;
  }

  .voyage-atlas-figure img {
    height: 420px;
  }

  .voyage-grand-media img,
  .voyage-panorama-media img,
  .voyage-tall-media img,
  .voyage-journal-media img,
  .voyage-discovery-media img {
    min-height: 260px;
    height: 260px;
  }
}

/* voyages-premium-refine */
.voyage-atlas-page {
  padding-bottom: 40px;
}

.voyage-atlas-hero::before,
.voyage-editorial-ribbon::before,
.voyage-discovery-field::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 28px;
  grid-column: 1 / -1;
  background: linear-gradient(90deg, rgba(36, 84, 144, 0), rgba(36, 84, 144, 0.18), rgba(36, 84, 144, 0));
}

.voyage-grand-card:first-child {
  background: linear-gradient(135deg, #fffdf9 0%, #f7fbff 100%);
}

.voyage-grand-card-reverse {
  background: linear-gradient(135deg, #f6faff 0%, #ffffff 58%, #f9fbfe 100%);
}

.voyage-panorama-card {
  background: linear-gradient(180deg, #fbfdff 0%, #f3f8ff 100%);
}

.voyage-panorama-body > div {
  align-self: start;
}

.voyage-tall-portrait {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.voyage-journal-card {
  background: linear-gradient(180deg, #ffffff 0%, #fcfdff 100%);
}

.voyage-journal-card-alt {
  background: linear-gradient(135deg, #f8fbff 0%, #ffffff 100%);
}

.voyage-discovery-feature {
  background: linear-gradient(135deg, #ffffff 0%, #f7fbff 100%);
  width: 100%;
  justify-self: stretch;
}

.voyage-mini-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.voyage-mini-card-accent {
  position: relative;
  isolation: isolate;
}

.voyage-mini-card-accent::after {
  content: "";
  position: absolute;
  inset: auto 22px 22px auto;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46, 111, 214, 0.14) 0%, rgba(46, 111, 214, 0) 72%);
  z-index: -1;
}

.voyage-invitation-inner {
  background: linear-gradient(135deg, #102844 0%, #1a3a63 52%, #2a68b7 100%);
}

@media (max-width: 1360px) {
  .voyage-discovery-field {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1181px) {
  .voyage-editorial-layout {
    grid-template-columns: minmax(360px, 0.82fr) minmax(0, 1.18fr);
  }

  .voyage-journal-card:first-child {
    grid-template-columns: minmax(0, 1.18fr) minmax(320px, 0.82fr);
  }

}

@media (max-width: 820px) {
  .voyage-atlas-hero::before,
  .voyage-editorial-ribbon::before,
  .voyage-discovery-field::before {
    margin-bottom: 20px;
  }
}

/* sunforge-route-page */
.sunforge-page {
  background:
    radial-gradient(circle at top left, rgba(255, 197, 92, 0.22), transparent 24%),
    radial-gradient(circle at top right, rgba(84, 169, 255, 0.16), transparent 26%),
    linear-gradient(180deg, #fffaf1 0%, #fffefe 18%, #f7fbff 56%, #fff9f0 100%);
  padding-bottom: 42px;
}

.sunforge-hero,
.sunforge-overture,
.sunforge-signature-band,
.sunforge-route-arc,
.sunforge-onboard-stage,
.sunforge-living-edit,
.sunforge-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.sunforge-hero {
  padding: 42px 0 0;
}

.sunforge-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(440px, 1.06fr);
  gap: 34px;
  align-items: center;
}

.sunforge-hero-copy h1,
.sunforge-overture-panel h2,
.sunforge-heading-row h2,
.sunforge-route-copy h2,
.sunforge-onboard-intro h2,
.sunforge-living-heading h2,
.sunforge-cta-inner h2,
.sunforge-signature-copy h3,
.sunforge-signature-tall h3,
.sunforge-signature-note h3,
.sunforge-point h3,
.sunforge-route-panorama-copy h3,
.sunforge-onboard-textblock h3,
.sunforge-living-wide-copy h3,
.sunforge-living-compact h3 {
  margin: 0;
  color: var(--ink-strong);
  letter-spacing: -0.045em;
}

.sunforge-hero-copy h1 {
  font-size: clamp(4rem, 6vw, 6.4rem);
  line-height: 0.92;
}

.sunforge-lead {
  margin-top: 18px;
  font-size: 1.28rem;
  line-height: 1.7;
  color: #23415d;
}

.sunforge-hero-copy p {
  max-width: 630px;
  color: var(--ink-soft);
  font-size: 1.06rem;
  line-height: 1.92;
}

.sunforge-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0 0;
}

.sunforge-hero-meta span {
  padding: 10px 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(214, 227, 241, 0.92);
  border-radius: 999px;
  color: #173252;
  font-size: 0.95rem;
  font-weight: 700;
}

.sunforge-hero-visual {
  position: relative;
  min-height: 700px;
}

.sunforge-hero-mainframe {
  margin: 0;
  margin-left: 88px;
  border-radius: 42px;
  overflow: hidden;
  box-shadow: 0 28px 70px rgba(20, 45, 76, 0.16);
}

.sunforge-hero-mainframe img {
  width: 100%;
  height: 700px;
  object-fit: cover;
}

.sunforge-hero-secondary {
  position: absolute;
  left: 0;
  bottom: 34px;
  width: min(330px, 40vw);
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 24px 56px rgba(20, 45, 76, 0.16);
}

.sunforge-hero-secondary img {
  width: 100%;
  height: 250px;
  object-fit: cover;
}

.sunforge-sunnote {
  position: absolute;
  right: 30px;
  bottom: 26px;
  max-width: 290px;
  padding: 22px 24px;
  background: rgba(255, 250, 242, 0.94);
  border: 1px solid rgba(225, 210, 182, 0.85);
  border-radius: 28px;
  box-shadow: 0 18px 40px rgba(20, 45, 76, 0.1);
}

.sunforge-sunnote strong,
.sunforge-sunnote span {
  display: block;
}

.sunforge-sunnote strong {
  color: #173252;
  font-size: 1.05rem;
}

.sunforge-sunnote span {
  margin-top: 8px;
  color: #45607d;
  line-height: 1.7;
}

.sunforge-overture,
.sunforge-signature-band,
.sunforge-route-arc,
.sunforge-onboard-stage,
.sunforge-living-edit,
.sunforge-cta-stage {
  margin-top: 42px;
}

.sunforge-overture-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(280px, 0.82fr);
  gap: 24px;
  align-items: stretch;
}

.sunforge-overture-panel,
.sunforge-aside-card,
.sunforge-signature-feature,
.sunforge-signature-tall,
.sunforge-signature-note,
.sunforge-route-mapcard,
.sunforge-route-panorama,
.sunforge-onboard-media-card,
.sunforge-onboard-textblock,
.sunforge-living-wide,
.sunforge-living-compact,
.sunforge-cta-inner {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid #d9e5f0;
  border-radius: 34px;
  box-shadow: 0 18px 46px rgba(20, 45, 76, 0.08);
}

.sunforge-overture-panel {
  padding: 40px 42px;
  background: linear-gradient(135deg, rgba(255, 252, 246, 0.94) 0%, rgba(255, 255, 255, 0.86) 100%);
}

.sunforge-overture-panel h2,
.sunforge-heading-row h2,
.sunforge-route-copy h2,
.sunforge-onboard-intro h2,
.sunforge-living-heading h2,
.sunforge-cta-inner h2 {
  font-size: clamp(2.5rem, 4vw, 4rem);
  line-height: 0.98;
}

.sunforge-overture-panel p,
.sunforge-heading-row p,
.sunforge-route-copy p,
.sunforge-signature-copy p,
.sunforge-signature-tall p,
.sunforge-signature-note p,
.sunforge-point p,
.sunforge-onboard-textblock p,
.sunforge-living-wide-copy p,
.sunforge-living-compact p,
.sunforge-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.sunforge-overture-aside {
  display: grid;
  gap: 20px;
}

.sunforge-aside-card {
  padding: 28px 30px;
}

.sunforge-aside-card-primary {
  background: linear-gradient(135deg, #143253 0%, #244d77 100%);
  border-color: rgba(20, 50, 83, 0.28);
}

.sunforge-aside-card-primary small,
.sunforge-aside-card-primary strong {
  color: #ffffff;
}

.sunforge-aside-card-soft {
  background: linear-gradient(180deg, #fff7ea 0%, #ffffff 100%);
}

.sunforge-aside-card small,
.sunforge-signature-copy small,
.sunforge-signature-tall small,
.sunforge-signature-note small,
.sunforge-route-maphead small,
.sunforge-route-panorama-copy small,
.sunforge-onboard-textblock small,
.sunforge-living-wide-copy small,
.sunforge-living-compact small {
  display: block;
  margin-bottom: 12px;
  color: #2f6fd6;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.sunforge-aside-card strong {
  display: block;
  font-size: 1.7rem;
  line-height: 1.15;
  letter-spacing: -0.04em;
}

.sunforge-heading-row {
  max-width: 840px;
}

.sunforge-signature-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.44fr);
  gap: 24px;
}

.sunforge-signature-feature {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  overflow: hidden;
}

.sunforge-signature-copy,
.sunforge-signature-tall,
.sunforge-signature-note,
.sunforge-route-mapcard,
.sunforge-onboard-textblock,
.sunforge-living-compact,
.sunforge-cta-inner {
  padding: 34px;
}

.sunforge-signature-copy h3,
.sunforge-signature-tall h3,
.sunforge-signature-note h3,
.sunforge-onboard-textblock h3,
.sunforge-living-wide-copy h3,
.sunforge-living-compact h3,
.sunforge-point h3,
.sunforge-route-panorama-copy h3 {
  font-size: clamp(1.9rem, 2.7vw, 2.7rem);
  line-height: 1.02;
}

.sunforge-signature-media img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.sunforge-signature-tall {
  grid-row: span 2;
  background: linear-gradient(180deg, #fff5e5 0%, #fffdf9 100%);
}

.sunforge-signature-note {
  background: linear-gradient(180deg, #f6fbff 0%, #ffffff 100%);
}

.sunforge-route-layout {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
  gap: 24px;
  align-items: start;
}

.sunforge-route-maphead strong {
  color: var(--ink-strong);
  font-size: 1.5rem;
  line-height: 1.2;
}

.sunforge-route-points {
  margin-top: 24px;
  display: grid;
  gap: 18px;
}

.sunforge-point {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.sunforge-point span {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #2b70d8 0%, #5a9cff 100%);
  color: #ffffff;
  font-weight: 800;
}

.sunforge-route-panorama {
  position: relative;
  overflow: hidden;
  min-height: 100%;
}

.sunforge-route-panorama img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.sunforge-route-panorama-copy {
  position: absolute;
  left: 26px;
  right: 26px;
  bottom: 26px;
  padding: 22px 24px;
  background: rgba(255, 250, 243, 0.92);
  border: 1px solid rgba(224, 212, 189, 0.82);
  border-radius: 24px;
}

.sunforge-onboard-intro {
  max-width: 860px;
}

.sunforge-onboard-layout {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(360px, 0.98fr) minmax(0, 1.02fr);
  gap: 24px;
  align-items: start;
}

.sunforge-onboard-media-card {
  overflow: hidden;
  position: relative;
}

.sunforge-onboard-media-card img {
  width: 100%;
  height: 620px;
  object-fit: cover;
}

.sunforge-onboard-caption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 24px;
  border: 1px solid rgba(214, 227, 241, 0.9);
}

.sunforge-onboard-caption strong {
  color: var(--ink-strong);
  font-size: 1.1rem;
  line-height: 1.55;
}

.sunforge-onboard-stack {
  display: grid;
  gap: 22px;
}

.sunforge-onboard-textblock-main {
  background: linear-gradient(135deg, #fff7ea 0%, #ffffff 100%);
}

.sunforge-living-heading {
  max-width: 860px;
}

.sunforge-living-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.46fr);
  gap: 24px;
}

.sunforge-living-wide {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
  overflow: hidden;
  background: linear-gradient(135deg, #fffdf8 0%, #ffffff 100%);
}

.sunforge-living-wide-copy {
  padding: 34px;
}

.sunforge-living-wide-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.sunforge-living-compact {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
}

.sunforge-living-compact-accent {
  background: linear-gradient(180deg, #fff4e1 0%, #fffdf8 100%);
}

.sunforge-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #173252 0%, #27527c 58%, #dca44b 140%);
  border-color: rgba(28, 55, 88, 0.24);
}

.sunforge-cta-inner h2,
.sunforge-cta-inner p,
.sunforge-cta-inner .eyebrow {
  color: #ffffff;
}

.sunforge-cta-inner p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.82);
}

.sunforge-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.2);
}

.sunforge-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.34);
}

@media (max-width: 1220px) {
  .sunforge-hero-inner,
  .sunforge-overture-inner,
  .sunforge-signature-grid,
  .sunforge-route-layout,
  .sunforge-onboard-layout,
  .sunforge-living-grid,
  .sunforge-signature-feature,
  .sunforge-living-wide {
    grid-template-columns: 1fr;
  }

  .sunforge-hero-visual {
    min-height: auto;
  }

  .sunforge-hero-mainframe {
    margin-left: 0;
  }

  .sunforge-hero-secondary {
    width: 260px;
  }

  .sunforge-signature-tall {
    grid-row: auto;
  }
}

@media (max-width: 860px) {
  .sunforge-hero,
  .sunforge-overture,
  .sunforge-signature-band,
  .sunforge-route-arc,
  .sunforge-onboard-stage,
  .sunforge-living-edit,
  .sunforge-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .sunforge-hero-copy h1,
  .sunforge-overture-panel h2,
  .sunforge-heading-row h2,
  .sunforge-route-copy h2,
  .sunforge-onboard-intro h2,
  .sunforge-living-heading h2,
  .sunforge-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .sunforge-overture-panel,
  .sunforge-aside-card,
  .sunforge-signature-copy,
  .sunforge-signature-tall,
  .sunforge-signature-note,
  .sunforge-route-mapcard,
  .sunforge-onboard-textblock,
  .sunforge-living-wide-copy,
  .sunforge-living-compact,
  .sunforge-cta-inner {
    padding: 28px 22px 30px;
  }

  .sunforge-hero-mainframe img,
  .sunforge-route-panorama img,
  .sunforge-onboard-media-card img,
  .sunforge-signature-media img,
  .sunforge-living-wide-media img {
    min-height: 280px;
    height: 280px;
  }

  .sunforge-hero-secondary {
    position: static;
    width: 100%;
    margin-top: 18px;
  }

  .sunforge-sunnote {
    position: static;
    max-width: none;
    margin-top: 18px;
  }

  .sunforge-point {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .sunforge-point span {
    width: 44px;
    height: 44px;
  }
}

/* dragonstar-route-page */
.dragonstar-page {
  background:
    radial-gradient(circle at top right, rgba(248, 193, 90, 0.14), transparent 20%),
    radial-gradient(circle at 18% 12%, rgba(66, 120, 212, 0.16), transparent 18%),
    linear-gradient(180deg, #08121f 0%, #0e1e32 18%, #122741 38%, #f5f8fc 38.2%, #eef4fb 62%, #f7f2e8 100%);
  padding-bottom: 46px;
}

.dragonstar-hero,
.dragonstar-intro-arc,
.dragonstar-signatures,
.dragonstar-route-ledger,
.dragonstar-onboard-atlas,
.dragonstar-nocturne-edit,
.dragonstar-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.dragonstar-hero {
  padding: 42px 0 0;
}

.dragonstar-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(460px, 1.12fr);
  gap: 32px;
  align-items: center;
}

.dragonstar-hero-panel {
  padding: 38px 0 28px;
}

.dragonstar-hero-panel h1,
.dragonstar-intro-copy h2,
.dragonstar-signatures-head h2,
.dragonstar-ledger-panel h2,
.dragonstar-onboard-intro h2,
.dragonstar-nocturne-left h2,
.dragonstar-cta-inner h2,
.dragonstar-feature-copy h3,
.dragonstar-feature-tall h3,
.dragonstar-feature-note h3,
.dragonstar-ledger-stop h3,
.dragonstar-onboard-card h3,
.dragonstar-nocturne-panel h3 {
  margin: 0;
  letter-spacing: -0.045em;
}

.dragonstar-hero-panel h1 {
  color: #ffffff;
  font-size: clamp(4rem, 6vw, 6.6rem);
  line-height: 0.9;
}

.dragonstar-lead {
  margin-top: 18px;
  color: #d6e3f6;
  font-size: 1.24rem;
  line-height: 1.72;
}

.dragonstar-hero-panel p {
  max-width: 620px;
  color: rgba(231, 239, 250, 0.82);
  font-size: 1.05rem;
  line-height: 1.92;
}

.dragonstar-hero-stage {
  position: relative;
  min-height: 720px;
}

.dragonstar-hero-frame {
  margin: 0;
  overflow: hidden;
  border-radius: 34px;
  border: 1px solid rgba(151, 180, 214, 0.18);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.34);
}

.dragonstar-hero-frame img {
  width: 100%;
  object-fit: cover;
}

.dragonstar-hero-frame-main {
  margin-right: 124px;
}

.dragonstar-hero-frame-main img {
  height: 720px;
}

.dragonstar-hero-frame-side {
  position: absolute;
  top: 76px;
  right: 0;
  width: 300px;
}

.dragonstar-hero-frame-side img {
  height: 360px;
}

.dragonstar-hero-seal {
  position: absolute;
  left: 34px;
  bottom: 34px;
  max-width: 320px;
  padding: 22px 24px;
  background: rgba(10, 24, 41, 0.82);
  border: 1px solid rgba(184, 150, 83, 0.32);
  border-radius: 24px;
}

.dragonstar-hero-seal strong,
.dragonstar-hero-seal span {
  display: block;
}

.dragonstar-hero-seal strong {
  color: #ffffff;
  font-size: 1.05rem;
}

.dragonstar-hero-seal span {
  margin-top: 8px;
  color: rgba(223, 230, 242, 0.8);
  line-height: 1.72;
}

.dragonstar-intro-arc,
.dragonstar-signatures,
.dragonstar-route-ledger,
.dragonstar-onboard-atlas,
.dragonstar-nocturne-edit,
.dragonstar-cta-stage {
  margin-top: 44px;
}

.dragonstar-intro-arc {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.88fr);
  gap: 24px;
  align-items: start;
}

.dragonstar-intro-copy,
.dragonstar-intro-card,
.dragonstar-feature-banner,
.dragonstar-feature-tall,
.dragonstar-feature-note,
.dragonstar-route-visual,
.dragonstar-ledger-panel,
.dragonstar-onboard-card,
.dragonstar-nocturne-left,
.dragonstar-nocturne-panel,
.dragonstar-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(197, 214, 231, 0.86);
  box-shadow: 0 18px 48px rgba(17, 40, 69, 0.1);
}

.dragonstar-intro-copy,
.dragonstar-ledger-panel,
.dragonstar-onboard-card,
.dragonstar-nocturne-left,
.dragonstar-nocturne-panel,
.dragonstar-cta-inner {
  padding: 36px;
}

.dragonstar-intro-copy {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(245, 249, 255, 0.92) 100%);
}

.dragonstar-intro-copy h2,
.dragonstar-signatures-head h2,
.dragonstar-ledger-panel h2,
.dragonstar-onboard-intro h2,
.dragonstar-nocturne-left h2,
.dragonstar-cta-inner h2 {
  color: var(--ink-strong);
  font-size: clamp(2.6rem, 4vw, 4.2rem);
  line-height: 0.98;
}

.dragonstar-intro-copy p,
.dragonstar-signatures-head p,
.dragonstar-feature-copy p,
.dragonstar-feature-tall p,
.dragonstar-feature-note p,
.dragonstar-ledger-stop p,
.dragonstar-onboard-card p,
.dragonstar-nocturne-left p,
.dragonstar-nocturne-panel p,
.dragonstar-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.dragonstar-intro-aside {
  display: grid;
  gap: 20px;
}

.dragonstar-intro-card {
  padding: 28px 30px;
  background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
}

.dragonstar-intro-card-primary {
  background: linear-gradient(135deg, #0d2038 0%, #173354 100%);
  border-color: rgba(18, 39, 65, 0.34);
}

.dragonstar-intro-card small,
.dragonstar-feature-copy small,
.dragonstar-feature-tall small,
.dragonstar-feature-note small,
.dragonstar-route-visual-note small,
.dragonstar-onboard-card small,
.dragonstar-nocturne-panel small,
.dragonstar-intro-card-primary small {
  display: block;
  margin-bottom: 12px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #d29b45;
}

.dragonstar-intro-card strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.7rem;
  line-height: 1.12;
  letter-spacing: -0.04em;
}

.dragonstar-intro-card-primary strong {
  color: #ffffff;
}

.dragonstar-signatures-head {
  max-width: 860px;
}

.dragonstar-signatures-layout {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1.14fr) minmax(280px, 0.5fr);
  gap: 24px;
  align-items: start;
}

.dragonstar-feature-banner {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(320px, 1.06fr) minmax(0, 0.94fr);
  background: linear-gradient(135deg, #0d1f35 0%, #173151 56%, #102742 100%);
  border-color: rgba(33, 62, 97, 0.52);
}

.dragonstar-feature-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.dragonstar-feature-copy {
  padding: 34px;
}

.dragonstar-feature-copy h3,
.dragonstar-feature-copy p,
.dragonstar-feature-copy small {
  color: #ffffff;
}

.dragonstar-feature-columns {
  display: grid;
  gap: 22px;
}

.dragonstar-feature-tall,
.dragonstar-feature-note {
  background: linear-gradient(180deg, #ffffff 0%, #f4f9ff 100%);
}

.dragonstar-feature-tall {
  min-height: 320px;
  background: linear-gradient(180deg, #fff8ee 0%, #ffffff 100%);
}

.dragonstar-feature-tall,
.dragonstar-feature-note {
  padding: 32px;
}

.dragonstar-feature-tall h3,
.dragonstar-feature-note h3,
.dragonstar-ledger-stop h3,
.dragonstar-onboard-card h3,
.dragonstar-nocturne-panel h3 {
  color: var(--ink-strong);
  font-size: clamp(1.85rem, 2.5vw, 2.6rem);
  line-height: 1.04;
}

.dragonstar-route-ledger-inner {
  display: grid;
  grid-template-columns: minmax(360px, 1.02fr) minmax(0, 0.98fr);
  gap: 24px;
  align-items: start;
}

.dragonstar-route-visual {
  overflow: hidden;
  position: relative;
  background: #0d2038;
  border-color: rgba(28, 54, 86, 0.46);
}

.dragonstar-route-visual img {
  width: 100%;
  height: 720px;
  object-fit: cover;
}

.dragonstar-route-visual-note {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(7, 20, 35, 0.82);
  border: 1px solid rgba(210, 155, 69, 0.28);
  border-radius: 22px;
}

.dragonstar-route-visual-note strong {
  display: block;
  color: #ffffff;
  font-size: 1.28rem;
  line-height: 1.35;
}

.dragonstar-ledger-panel {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(243, 248, 255, 0.96) 100%);
}

.dragonstar-ledger-list {
  margin-top: 26px;
  display: grid;
  gap: 18px;
}

.dragonstar-ledger-stop {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.dragonstar-ledger-stop span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: linear-gradient(135deg, #143254 0%, #2d5a8e 100%);
  color: #ffffff;
  font-weight: 800;
}

.dragonstar-onboard-intro {
  max-width: 860px;
}

.dragonstar-onboard-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.52fr);
  gap: 24px;
  align-items: start;
}

.dragonstar-onboard-card {
  background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
}

.dragonstar-onboard-card-wide {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(340px, 1.08fr);
  overflow: hidden;
  padding: 0;
}

.dragonstar-onboard-card-copy {
  padding: 34px;
}

.dragonstar-onboard-card-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.dragonstar-onboard-card-compact {
  background: linear-gradient(180deg, #fff6e8 0%, #ffffff 100%);
}

.dragonstar-nocturne-edit {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(360px, 1.14fr);
  gap: 24px;
  align-items: start;
}

.dragonstar-nocturne-left {
  background: linear-gradient(180deg, #0d2138 0%, #173253 100%);
  border-color: rgba(33, 61, 95, 0.52);
}

.dragonstar-nocturne-left h2,
.dragonstar-nocturne-left p,
.dragonstar-nocturne-left .eyebrow {
  color: #ffffff;
}

.dragonstar-nocturne-left p {
  color: rgba(229, 236, 247, 0.82);
}

.dragonstar-nocturne-left .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.dragonstar-nocturne-left .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

.dragonstar-nocturne-right {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 22px;
}

.dragonstar-nocturne-panel {
  background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
}

.dragonstar-nocturne-panel-image {
  padding: 0;
  overflow: hidden;
  grid-row: span 2;
}

.dragonstar-nocturne-panel-image img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}

.dragonstar-nocturne-panel-accent {
  background: linear-gradient(180deg, #fff7eb 0%, #ffffff 100%);
}

.dragonstar-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #0a182b 0%, #173254 56%, #b9883f 140%);
  border-color: rgba(31, 57, 90, 0.46);
}

.dragonstar-cta-inner h2,
.dragonstar-cta-inner .eyebrow {
  color: #ffffff;
}

.dragonstar-cta-inner p {
  max-width: 760px;
  color: rgba(229, 236, 247, 0.82);
}

.dragonstar-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.dragonstar-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .dragonstar-hero-inner,
  .dragonstar-intro-arc,
  .dragonstar-signatures-layout,
  .dragonstar-route-ledger-inner,
  .dragonstar-onboard-grid,
  .dragonstar-nocturne-edit,
  .dragonstar-feature-banner,
  .dragonstar-onboard-card-wide,
  .dragonstar-nocturne-right {
    grid-template-columns: 1fr;
  }

  .dragonstar-hero-stage {
    min-height: auto;
  }

  .dragonstar-hero-frame-main {
    margin-right: 0;
  }

  .dragonstar-hero-frame-side {
    position: static;
    width: 100%;
    margin-top: 18px;
  }

  .dragonstar-hero-seal {
    position: static;
    max-width: none;
    margin-top: 18px;
  }

  .dragonstar-nocturne-panel-image {
    grid-row: auto;
  }
}

@media (max-width: 860px) {
  .dragonstar-hero,
  .dragonstar-intro-arc,
  .dragonstar-signatures,
  .dragonstar-route-ledger,
  .dragonstar-onboard-atlas,
  .dragonstar-nocturne-edit,
  .dragonstar-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .dragonstar-hero-panel h1,
  .dragonstar-intro-copy h2,
  .dragonstar-signatures-head h2,
  .dragonstar-ledger-panel h2,
  .dragonstar-onboard-intro h2,
  .dragonstar-nocturne-left h2,
  .dragonstar-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4.2rem);
  }

  .dragonstar-intro-copy,
  .dragonstar-intro-card,
  .dragonstar-feature-copy,
  .dragonstar-feature-tall,
  .dragonstar-feature-note,
  .dragonstar-ledger-panel,
  .dragonstar-onboard-card,
  .dragonstar-nocturne-left,
  .dragonstar-nocturne-panel,
  .dragonstar-cta-inner,
  .dragonstar-onboard-card-copy {
    padding: 28px 22px 30px;
  }

  .dragonstar-hero-frame-main img,
  .dragonstar-hero-frame-side img,
  .dragonstar-feature-media img,
  .dragonstar-route-visual img,
  .dragonstar-onboard-card-media img,
  .dragonstar-nocturne-panel-image img {
    height: 280px;
    min-height: 280px;
  }

  .dragonstar-ledger-stop {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .dragonstar-ledger-stop span {
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }
}

/* moonlit-route-page */
.moonlit-page {
  background:
    radial-gradient(circle at 78% 10%, rgba(227, 235, 255, 0.34), transparent 16%),
    radial-gradient(circle at 18% 12%, rgba(142, 163, 205, 0.18), transparent 20%),
    linear-gradient(180deg, #0c1524 0%, #15243b 20%, #203455 34%, #f7f9fd 34.2%, #f3f6fb 64%, #eef3f8 100%);
  padding-bottom: 46px;
}

.moonlit-hero,
.moonlit-overture,
.moonlit-signature-stage,
.moonlit-route-flow,
.moonlit-evening-atlas,
.moonlit-private-edit,
.moonlit-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.moonlit-hero {
  padding: 42px 0 0;
}

.moonlit-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(460px, 1.1fr);
  gap: 34px;
  align-items: center;
}

.moonlit-hero-copy {
  padding: 28px 0 18px;
}

.moonlit-hero-copy h1,
.moonlit-overture-panel h2,
.moonlit-signature-head h2,
.moonlit-route-flow-top h2,
.moonlit-evening-left h2,
.moonlit-private-head h2,
.moonlit-cta-inner h2,
.moonlit-signature-copy h3,
.moonlit-signature-panel h3,
.moonlit-route-stop h3,
.moonlit-evening-card h3,
.moonlit-private-feature-copy h3,
.moonlit-private-card h3 {
  margin: 0;
  letter-spacing: -0.045em;
}

.moonlit-hero-copy h1 {
  color: #ffffff;
  font-size: clamp(4rem, 6vw, 6.2rem);
  line-height: 0.92;
}

.moonlit-lead {
  margin-top: 18px;
  color: #dce6f7;
  font-size: 1.25rem;
  line-height: 1.72;
}

.moonlit-hero-copy p {
  max-width: 620px;
  color: rgba(229, 236, 248, 0.82);
  font-size: 1.05rem;
  line-height: 1.92;
}

.moonlit-hero-visuals {
  position: relative;
  min-height: 720px;
}

.moonlit-hero-frame {
  margin: 0;
  overflow: hidden;
  border-radius: 36px;
  box-shadow: 0 28px 80px rgba(4, 10, 22, 0.3);
  border: 1px solid rgba(179, 194, 221, 0.18);
}

.moonlit-hero-frame img {
  width: 100%;
  object-fit: cover;
}

.moonlit-hero-frame-main {
  margin-right: 94px;
}

.moonlit-hero-frame-main img {
  height: 720px;
}

.moonlit-hero-frame-top {
  position: absolute;
  top: 34px;
  right: 0;
  width: 290px;
}

.moonlit-hero-frame-top img {
  height: 250px;
}

.moonlit-orbit-card {
  position: absolute;
  left: 28px;
  bottom: 30px;
  max-width: 320px;
  padding: 22px 24px;
  background: rgba(240, 244, 252, 0.9);
  border: 1px solid rgba(199, 211, 232, 0.86);
  border-radius: 24px;
  box-shadow: 0 16px 44px rgba(9, 18, 33, 0.16);
}

.moonlit-orbit-card small,
.moonlit-aside-card small,
.moonlit-signature-copy small,
.moonlit-signature-panel small,
.moonlit-route-overlay small,
.moonlit-evening-card small,
.moonlit-private-feature-copy small,
.moonlit-private-card small {
  display: block;
  margin-bottom: 12px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #7187af;
}

.moonlit-orbit-card strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.36rem;
  line-height: 1.28;
}

.moonlit-overture,
.moonlit-signature-stage,
.moonlit-route-flow,
.moonlit-evening-atlas,
.moonlit-private-edit,
.moonlit-cta-stage {
  margin-top: 44px;
}

.moonlit-overture-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(300px, 0.84fr);
  gap: 24px;
  align-items: start;
}

.moonlit-overture-panel,
.moonlit-aside-card,
.moonlit-signature-ribbon,
.moonlit-signature-panel,
.moonlit-route-timeline,
.moonlit-route-imagecard,
.moonlit-evening-left,
.moonlit-evening-card,
.moonlit-private-feature,
.moonlit-private-card,
.moonlit-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(205, 217, 234, 0.9);
  box-shadow: 0 18px 48px rgba(18, 34, 59, 0.08);
}

.moonlit-overture-panel,
.moonlit-route-timeline,
.moonlit-evening-left,
.moonlit-evening-card,
.moonlit-private-card,
.moonlit-cta-inner {
  padding: 36px;
}

.moonlit-overture-panel {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, rgba(244, 247, 252, 0.96) 100%);
}

.moonlit-overture-panel h2,
.moonlit-signature-head h2,
.moonlit-route-flow-top h2,
.moonlit-evening-left h2,
.moonlit-private-head h2,
.moonlit-cta-inner h2 {
  color: var(--ink-strong);
  font-size: clamp(2.6rem, 4vw, 4rem);
  line-height: 0.98;
}

.moonlit-overture-panel p,
.moonlit-signature-head p,
.moonlit-signature-copy p,
.moonlit-signature-panel p,
.moonlit-route-stop p,
.moonlit-evening-left p,
.moonlit-evening-card p,
.moonlit-private-feature-copy p,
.moonlit-private-card p,
.moonlit-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.moonlit-overture-aside {
  display: grid;
  gap: 20px;
}

.moonlit-aside-card {
  padding: 28px 30px;
}

.moonlit-aside-card strong {
  display: block;
  font-size: 1.68rem;
  line-height: 1.14;
  letter-spacing: -0.04em;
}

.moonlit-aside-card-silver {
  background: linear-gradient(180deg, #f7f9fe 0%, #ffffff 100%);
}

.moonlit-aside-card-deep {
  background: linear-gradient(180deg, #203454 0%, #2d4467 100%);
  border-color: rgba(42, 61, 95, 0.4);
}

.moonlit-aside-card-deep small,
.moonlit-aside-card-deep strong {
  color: #ffffff;
}

.moonlit-signature-head,
.moonlit-route-flow-top,
.moonlit-private-head {
  max-width: 860px;
}

.moonlit-signature-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.42fr);
  gap: 24px;
  align-items: start;
}

.moonlit-signature-ribbon {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(320px, 1.02fr) minmax(0, 0.98fr);
  background: linear-gradient(135deg, #ffffff 0%, #f4f7fc 100%);
}

.moonlit-signature-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.moonlit-signature-copy {
  padding: 34px;
}

.moonlit-signature-copy h3,
.moonlit-signature-panel h3,
.moonlit-route-stop h3,
.moonlit-evening-card h3,
.moonlit-private-feature-copy h3,
.moonlit-private-card h3 {
  color: var(--ink-strong);
  font-size: clamp(1.9rem, 2.6vw, 2.7rem);
  line-height: 1.04;
}

.moonlit-signature-panel {
  padding: 32px;
}

.moonlit-signature-panel-tall {
  min-height: 320px;
  background: linear-gradient(180deg, #eef3fc 0%, #ffffff 100%);
}

.moonlit-signature-panel-soft {
  background: linear-gradient(180deg, #fbfcff 0%, #ffffff 100%);
}

.moonlit-route-flow-layout {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(380px, 1.04fr);
  gap: 24px;
  align-items: start;
}

.moonlit-route-timeline {
  background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
}

.moonlit-route-stop {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.moonlit-route-stop + .moonlit-route-stop {
  margin-top: 18px;
}

.moonlit-route-stop span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: linear-gradient(135deg, #8ea2c9 0%, #61779f 100%);
  color: #ffffff;
  font-weight: 800;
}

.moonlit-route-imagecard {
  position: relative;
  overflow: hidden;
  background: #1a2a44;
}

.moonlit-route-imagecard img {
  width: 100%;
  height: 100%;
  min-height: 700px;
  object-fit: cover;
}

.moonlit-route-overlay {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(242, 246, 252, 0.9);
  border: 1px solid rgba(201, 212, 231, 0.88);
  border-radius: 22px;
}

.moonlit-route-overlay strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.26rem;
  line-height: 1.34;
}

.moonlit-evening-atlas {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(360px, 1.16fr);
  gap: 24px;
  align-items: start;
}

.moonlit-evening-left {
  background: linear-gradient(180deg, #202f4b 0%, #2d4164 100%);
}

.moonlit-evening-left h2,
.moonlit-evening-left p,
.moonlit-evening-left .eyebrow {
  color: #ffffff;
}

.moonlit-evening-left p {
  color: rgba(230, 236, 247, 0.82);
}

.moonlit-evening-right {
  display: grid;
  grid-template-columns: minmax(0, 0.98fr) minmax(280px, 0.62fr);
  gap: 22px;
  align-items: start;
}

.moonlit-evening-card {
  background: linear-gradient(180deg, #ffffff 0%, #f3f7fd 100%);
}

.moonlit-evening-card-image {
  padding: 0;
  overflow: hidden;
}

.moonlit-evening-card-image img {
  width: 100%;
  height: 100%;
  min-height: 440px;
  object-fit: cover;
}

.moonlit-evening-card-copy {
  min-height: 100%;
}

.moonlit-private-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.46fr);
  gap: 24px;
}

.moonlit-private-feature {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  background: linear-gradient(135deg, #ffffff 0%, #f3f6fb 100%);
}

.moonlit-private-feature-copy {
  padding: 34px;
}

.moonlit-private-feature-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.moonlit-private-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 34px;
}

.moonlit-private-card-silver {
  background: linear-gradient(180deg, #f7f9fd 0%, #ffffff 100%);
}

.moonlit-private-card-deep {
  background: linear-gradient(180deg, #ecf2fb 0%, #ffffff 100%);
}

.moonlit-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #1b2b46 0%, #31486d 58%, #d6dde9 150%);
  border-color: rgba(64, 83, 115, 0.34);
}

.moonlit-cta-inner h2,
.moonlit-cta-inner .eyebrow {
  color: #ffffff;
}

.moonlit-cta-inner p {
  max-width: 760px;
  color: rgba(230, 236, 247, 0.82);
}

.moonlit-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.moonlit-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .moonlit-hero-inner,
  .moonlit-overture-layout,
  .moonlit-signature-grid,
  .moonlit-route-flow-layout,
  .moonlit-evening-atlas,
  .moonlit-private-grid,
  .moonlit-signature-ribbon,
  .moonlit-private-feature,
  .moonlit-evening-right {
    grid-template-columns: 1fr;
  }

  .moonlit-hero-visuals {
    min-height: auto;
  }

  .moonlit-hero-frame-main {
    margin-right: 0;
  }

  .moonlit-hero-frame-top {
    position: static;
    width: 100%;
    margin-top: 18px;
  }

  .moonlit-orbit-card {
    position: static;
    max-width: none;
    margin-top: 18px;
  }
}

@media (max-width: 860px) {
  .moonlit-hero,
  .moonlit-overture,
  .moonlit-signature-stage,
  .moonlit-route-flow,
  .moonlit-evening-atlas,
  .moonlit-private-edit,
  .moonlit-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .moonlit-hero-copy h1,
  .moonlit-overture-panel h2,
  .moonlit-signature-head h2,
  .moonlit-route-flow-top h2,
  .moonlit-evening-left h2,
  .moonlit-private-head h2,
  .moonlit-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .moonlit-overture-panel,
  .moonlit-route-timeline,
  .moonlit-evening-left,
  .moonlit-evening-card,
  .moonlit-private-card,
  .moonlit-cta-inner,
  .moonlit-aside-card,
  .moonlit-signature-copy,
  .moonlit-signature-panel,
  .moonlit-private-feature-copy {
    padding: 28px 22px 30px;
  }

  .moonlit-hero-frame-main img,
  .moonlit-hero-frame-top img,
  .moonlit-signature-media img,
  .moonlit-route-imagecard img,
  .moonlit-evening-card-image img,
  .moonlit-private-feature-media img {
    height: 280px;
    min-height: 280px;
  }

  .moonlit-route-stop {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .moonlit-route-stop span {
    width: 44px;
    height: 44px;
  }
}

/* emerald-route-page */
.emerald-page {
  background:
    radial-gradient(circle at 82% 10%, rgba(72, 211, 192, 0.18), transparent 18%),
    radial-gradient(circle at 16% 12%, rgba(61, 156, 224, 0.16), transparent 18%),
    linear-gradient(180deg, #f3fffe 0%, #effbff 24%, #ffffff 42%, #f5fbfd 72%, #eef7f5 100%);
  padding-bottom: 46px;
}

.emerald-hero,
.emerald-intro-sweep,
.emerald-signature-garden,
.emerald-route-arc,
.emerald-onboard-breeze,
.emerald-private-harbor,
.emerald-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.emerald-hero {
  padding: 42px 0 0;
}

.emerald-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(480px, 1.12fr);
  gap: 34px;
  align-items: center;
}

.emerald-hero-copy {
  padding: 18px 0;
}

.emerald-hero-copy h1,
.emerald-intro-panel h2,
.emerald-signature-head h2,
.emerald-route-intro h2,
.emerald-onboard-copy h2,
.emerald-private-head h2,
.emerald-cta-inner h2,
.emerald-feature-tall-copy h3,
.emerald-feature-panel h3,
.emerald-route-stop h3,
.emerald-onboard-card h3,
.emerald-private-main-copy h3,
.emerald-private-mini h3 {
  margin: 0;
  letter-spacing: -0.045em;
  color: var(--ink-strong);
}

.emerald-hero-copy h1 {
  font-size: clamp(4rem, 6vw, 6.2rem);
  line-height: 0.9;
}

.emerald-lead {
  margin-top: 18px;
  color: #1f5160;
  font-size: 1.24rem;
  line-height: 1.72;
}

.emerald-hero-copy p {
  max-width: 630px;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.92;
}

.emerald-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(260px, 0.56fr);
  gap: 20px;
  align-items: stretch;
}

.emerald-hero-main,
.emerald-hero-small,
.emerald-hero-note,
.emerald-intro-panel,
.emerald-aside-card,
.emerald-feature-tall,
.emerald-feature-panel,
.emerald-route-visual-wide,
.emerald-route-ledger,
.emerald-onboard-copy,
.emerald-onboard-card,
.emerald-private-main,
.emerald-private-mini,
.emerald-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(198, 223, 226, 0.9);
  box-shadow: 0 18px 48px rgba(19, 58, 68, 0.08);
}

.emerald-hero-main,
.emerald-hero-small {
  overflow: hidden;
  margin: 0;
}

.emerald-hero-main img,
.emerald-hero-small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.emerald-hero-main img {
  min-height: 720px;
}

.emerald-hero-stack {
  display: grid;
  gap: 20px;
}

.emerald-hero-small img {
  min-height: 300px;
}

.emerald-hero-note {
  padding: 28px 30px;
  background: linear-gradient(180deg, #ebfbf8 0%, #ffffff 100%);
}

.emerald-hero-note small,
.emerald-aside-card small,
.emerald-feature-tall-copy small,
.emerald-feature-panel small,
.emerald-route-visual-copy small,
.emerald-onboard-card small,
.emerald-private-main-copy small,
.emerald-private-mini small {
  display: block;
  margin-bottom: 12px;
  color: #2f9a8e;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.emerald-hero-note strong,
.emerald-aside-card strong,
.emerald-route-visual-copy strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1.42rem;
  line-height: 1.28;
}

.emerald-intro-sweep,
.emerald-signature-garden,
.emerald-route-arc,
.emerald-onboard-breeze,
.emerald-private-harbor,
.emerald-cta-stage {
  margin-top: 44px;
}

.emerald-intro-sweep {
  display: grid;
  grid-template-columns: minmax(0, 1.14fr) minmax(300px, 0.86fr);
  gap: 24px;
  align-items: start;
}

.emerald-intro-panel,
.emerald-route-ledger,
.emerald-onboard-copy,
.emerald-onboard-card,
.emerald-private-mini,
.emerald-cta-inner {
  padding: 36px;
}

.emerald-intro-panel {
  background: linear-gradient(135deg, #ffffff 0%, #f3fdfa 100%);
}

.emerald-intro-panel h2,
.emerald-signature-head h2,
.emerald-route-intro h2,
.emerald-onboard-copy h2,
.emerald-private-head h2,
.emerald-cta-inner h2 {
  font-size: clamp(2.6rem, 4vw, 4rem);
  line-height: 0.98;
}

.emerald-intro-panel p,
.emerald-signature-head p,
.emerald-feature-tall-copy p,
.emerald-feature-panel p,
.emerald-route-stop p,
.emerald-onboard-copy p,
.emerald-onboard-card p,
.emerald-private-main-copy p,
.emerald-private-mini p,
.emerald-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.emerald-intro-aside {
  display: grid;
  gap: 20px;
}

.emerald-aside-card {
  padding: 28px 30px;
}

.emerald-aside-card-water {
  background: linear-gradient(180deg, #f2fcfb 0%, #ffffff 100%);
}

.emerald-aside-card-grove {
  background: linear-gradient(180deg, #1f7b72 0%, #2f988d 100%);
  border-color: rgba(34, 126, 116, 0.36);
}

.emerald-aside-card-grove small,
.emerald-aside-card-grove strong {
  color: #ffffff;
}

.emerald-signature-head,
.emerald-route-intro,
.emerald-private-head {
  max-width: 860px;
}

.emerald-signature-layout {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(360px, 1.02fr) minmax(300px, 0.62fr);
  gap: 24px;
  align-items: start;
}

.emerald-feature-tall {
  overflow: hidden;
  background: linear-gradient(135deg, #ffffff 0%, #f1fbfa 100%);
}

.emerald-feature-tall-media img {
  width: 100%;
  height: 360px;
  object-fit: cover;
}

.emerald-feature-tall-copy {
  padding: 32px;
}

.emerald-feature-tall-copy h3,
.emerald-feature-panel h3,
.emerald-route-stop h3,
.emerald-onboard-card h3,
.emerald-private-main-copy h3,
.emerald-private-mini h3 {
  font-size: clamp(1.9rem, 2.6vw, 2.7rem);
  line-height: 1.04;
}

.emerald-feature-column {
  display: grid;
  gap: 22px;
}

.emerald-feature-panel {
  padding: 32px;
}

.emerald-feature-panel-bright {
  background: linear-gradient(180deg, #edfcff 0%, #ffffff 100%);
}

.emerald-feature-panel-air {
  background: linear-gradient(180deg, #f7fcf8 0%, #ffffff 100%);
}

.emerald-route-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
  gap: 24px;
  align-items: start;
}

.emerald-route-visual-wide {
  position: relative;
  overflow: hidden;
  background: #d9f6f0;
}

.emerald-route-visual-wide img {
  width: 100%;
  height: 100%;
  min-height: 720px;
  object-fit: cover;
}

.emerald-route-visual-copy {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(245, 253, 252, 0.92);
  border: 1px solid rgba(199, 224, 223, 0.9);
  border-radius: 22px;
}

.emerald-route-ledger {
  background: linear-gradient(180deg, #ffffff 0%, #f4fbfa 100%);
}

.emerald-route-stop {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.emerald-route-stop + .emerald-route-stop {
  margin-top: 18px;
}

.emerald-route-stop span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: linear-gradient(135deg, #1f9487 0%, #54c7b8 100%);
  color: #ffffff;
  font-weight: 800;
}

.emerald-onboard-breeze {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1.18fr);
  gap: 24px;
  align-items: start;
}

.emerald-onboard-copy {
  background: linear-gradient(180deg, #effcfa 0%, #ffffff 100%);
}

.emerald-onboard-cards {
  display: grid;
  grid-template-columns: minmax(320px, 1.02fr) minmax(0, 0.98fr);
  gap: 22px;
}

.emerald-onboard-card {
  background: linear-gradient(180deg, #ffffff 0%, #f2fafa 100%);
}

.emerald-onboard-card-photo {
  padding: 0;
  overflow: hidden;
}

.emerald-onboard-card-photo img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.emerald-onboard-card-text {
  padding: 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.emerald-private-layout {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(300px, 0.48fr);
  gap: 24px;
}

.emerald-private-main {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  background: linear-gradient(135deg, #ffffff 0%, #f2fbf8 100%);
}

.emerald-private-main-copy {
  padding: 34px;
}

.emerald-private-main-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.emerald-private-mini {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.emerald-private-mini-food {
  background: linear-gradient(180deg, #eefcf7 0%, #ffffff 100%);
}

.emerald-private-mini-rest {
  background: linear-gradient(180deg, #edf7fb 0%, #ffffff 100%);
}

.emerald-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #1d6c67 0%, #2e8d88 58%, #9ce2d8 150%);
  border-color: rgba(35, 121, 114, 0.32);
}

.emerald-cta-inner h2,
.emerald-cta-inner .eyebrow {
  color: #ffffff;
}

.emerald-cta-inner p {
  max-width: 760px;
  color: rgba(236, 248, 247, 0.86);
}

.emerald-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.emerald-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .emerald-hero-inner,
  .emerald-intro-sweep,
  .emerald-signature-layout,
  .emerald-route-grid,
  .emerald-onboard-breeze,
  .emerald-private-layout,
  .emerald-hero-stage,
  .emerald-onboard-cards,
  .emerald-private-main {
    grid-template-columns: 1fr;
  }

  .emerald-hero-main img,
  .emerald-route-visual-wide img {
    min-height: 420px;
  }
}

@media (max-width: 860px) {
  .emerald-hero,
  .emerald-intro-sweep,
  .emerald-signature-garden,
  .emerald-route-arc,
  .emerald-onboard-breeze,
  .emerald-private-harbor,
  .emerald-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .emerald-hero-copy h1,
  .emerald-intro-panel h2,
  .emerald-signature-head h2,
  .emerald-route-intro h2,
  .emerald-onboard-copy h2,
  .emerald-private-head h2,
  .emerald-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .emerald-hero-note,
  .emerald-intro-panel,
  .emerald-aside-card,
  .emerald-route-ledger,
  .emerald-onboard-copy,
  .emerald-onboard-card-text,
  .emerald-private-main-copy,
  .emerald-private-mini,
  .emerald-cta-inner,
  .emerald-feature-tall-copy,
  .emerald-feature-panel {
    padding: 28px 22px 30px;
  }

  .emerald-hero-main img,
  .emerald-hero-small img,
  .emerald-feature-tall-media img,
  .emerald-route-visual-wide img,
  .emerald-onboard-card-photo img,
  .emerald-private-main-media img {
    height: 280px;
    min-height: 280px;
  }

  .emerald-route-stop {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .emerald-route-stop span {
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }
}

/* route-color-fixes */
.dragonstar-signatures-head .eyebrow,
.dragonstar-signatures-head h2,
.dragonstar-signatures-head p,
.dragonstar-onboard-intro .eyebrow,
.dragonstar-onboard-intro h2 {
  color: #eef4ff;
}

.dragonstar-signatures-head p,
.dragonstar-onboard-intro p {
  color: rgba(227, 236, 248, 0.82);
}

.dragonstar-signatures-head .eyebrow,
.dragonstar-onboard-intro .eyebrow {
  color: #d6a85c;
}

.moonlit-signature-head .eyebrow,
.moonlit-signature-head h2,
.moonlit-signature-head p,
.moonlit-route-flow-top .eyebrow,
.moonlit-route-flow-top h2,
.moonlit-private-head .eyebrow,
.moonlit-private-head h2 {
  color: #f1f5fd;
}

.moonlit-signature-head p,
.moonlit-route-flow-top p,
.moonlit-private-head p {
  color: rgba(230, 236, 247, 0.82);
}

.moonlit-signature-head .eyebrow,
.moonlit-route-flow-top .eyebrow,
.moonlit-private-head .eyebrow {
  color: #c7d3ea;
}

/* nocturne-onboard-page */
.nocturne-page {
  background:
    radial-gradient(circle at 82% 12%, rgba(210, 151, 62, 0.14), transparent 18%),
    radial-gradient(circle at 18% 14%, rgba(63, 93, 142, 0.16), transparent 18%),
    linear-gradient(180deg, #09111c 0%, #0f1b2b 20%, #152437 34%, #f6f8fb 34.2%, #f1f5fa 68%, #f7f5f1 100%);
  padding-bottom: 46px;
}

.nocturne-hero,
.nocturne-overture,
.nocturne-signature-stage,
.nocturne-private-stage,
.nocturne-interior-essay,
.nocturne-companion-edit,
.nocturne-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.nocturne-hero {
  padding: 42px 0 0;
}

.nocturne-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(480px, 1.14fr);
  gap: 34px;
  align-items: center;
}

.nocturne-hero-copy {
  padding: 24px 0 18px;
}

.nocturne-hero-copy h1,
.nocturne-overture-panel h2,
.nocturne-signature-head h2,
.nocturne-private-copy h2,
.nocturne-interior-copy h2,
.nocturne-companion-head h2,
.nocturne-cta-inner h2,
.nocturne-feature-ribbon-copy h3,
.nocturne-feature-panel h3,
.nocturne-private-card h3,
.nocturne-companion-card h3 {
  margin: 0;
  letter-spacing: -0.045em;
}

.nocturne-hero-copy h1 {
  color: #ffffff;
  font-size: clamp(4rem, 6vw, 6.1rem);
  line-height: 0.92;
}

.nocturne-lead {
  margin-top: 18px;
  color: #e4d1b1;
  font-size: 1.24rem;
  line-height: 1.72;
}

.nocturne-hero-copy p {
  max-width: 620px;
  color: rgba(232, 236, 244, 0.82);
  font-size: 1.05rem;
  line-height: 1.92;
}

.nocturne-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(280px, 0.56fr);
  gap: 20px;
  align-items: stretch;
}

.nocturne-hero-main,
.nocturne-hero-side,
.nocturne-hero-note,
.nocturne-overture-panel,
.nocturne-aside-card,
.nocturne-feature-ribbon,
.nocturne-feature-panel,
.nocturne-private-copy,
.nocturne-private-card,
.nocturne-interior-visual,
.nocturne-interior-copy,
.nocturne-companion-card,
.nocturne-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(193, 203, 217, 0.2);
  box-shadow: 0 18px 52px rgba(6, 12, 21, 0.12);
}

.nocturne-hero-main,
.nocturne-hero-side {
  overflow: hidden;
  margin: 0;
}

.nocturne-hero-main img,
.nocturne-hero-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nocturne-hero-main img {
  min-height: 720px;
}

.nocturne-hero-column {
  display: grid;
  gap: 20px;
}

.nocturne-hero-side img {
  min-height: 320px;
}

.nocturne-hero-note {
  padding: 28px 30px;
  background: linear-gradient(180deg, #182635 0%, #223246 100%);
  border-color: rgba(216, 167, 87, 0.24);
}

.nocturne-hero-note small,
.nocturne-aside-card small,
.nocturne-feature-ribbon-copy small,
.nocturne-feature-panel small,
.nocturne-private-card small,
.nocturne-interior-overlay small,
.nocturne-companion-card small {
  display: block;
  margin-bottom: 12px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #d7a75a;
}

.nocturne-hero-note strong,
.nocturne-aside-card strong,
.nocturne-interior-overlay strong {
  display: block;
  color: #ffffff;
  font-size: 1.42rem;
  line-height: 1.28;
}

.nocturne-overture,
.nocturne-signature-stage,
.nocturne-private-stage,
.nocturne-interior-essay,
.nocturne-companion-edit,
.nocturne-cta-stage {
  margin-top: 44px;
}

.nocturne-overture-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
  gap: 24px;
  align-items: start;
}

.nocturne-overture-panel,
.nocturne-private-copy,
.nocturne-interior-copy,
.nocturne-companion-card,
.nocturne-cta-inner {
  padding: 36px;
}

.nocturne-overture-panel {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(245, 248, 252, 0.96) 100%);
}

.nocturne-overture-panel h2,
.nocturne-signature-head h2,
.nocturne-private-copy h2,
.nocturne-interior-copy h2,
.nocturne-companion-head h2,
.nocturne-cta-inner h2 {
  color: var(--ink-strong);
  font-size: clamp(2.6rem, 4vw, 4.1rem);
  line-height: 0.98;
}

.nocturne-overture-panel p,
.nocturne-signature-head p,
.nocturne-feature-ribbon-copy p,
.nocturne-feature-panel p,
.nocturne-private-copy p,
.nocturne-companion-card p,
.nocturne-interior-copy p,
.nocturne-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.nocturne-overture-aside {
  display: grid;
  gap: 20px;
}

.nocturne-aside-card {
  padding: 28px 30px;
}

.nocturne-aside-card-gold {
  background: linear-gradient(180deg, #fff7ec 0%, #ffffff 100%);
}

.nocturne-aside-card-deep {
  background: linear-gradient(180deg, #162434 0%, #243446 100%);
  border-color: rgba(218, 170, 90, 0.22);
}

.nocturne-aside-card-gold strong {
  color: var(--ink-strong);
}

.nocturne-aside-card-deep small,
.nocturne-aside-card-deep strong {
  color: #ffffff;
}

.nocturne-signature-head,
.nocturne-companion-head {
  max-width: 860px;
}

.nocturne-signature-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.44fr);
  gap: 24px;
  align-items: start;
}

.nocturne-feature-ribbon {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(340px, 1.04fr);
  background: linear-gradient(135deg, #0f1d2c 0%, #1c2d40 58%, #182634 100%);
  border-color: rgba(218, 171, 95, 0.2);
}

.nocturne-feature-ribbon-copy {
  padding: 34px;
}

.nocturne-feature-ribbon-copy h3,
.nocturne-feature-ribbon-copy p,
.nocturne-feature-ribbon-copy small {
  color: #ffffff;
}

.nocturne-feature-ribbon-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.nocturne-feature-panel {
  padding: 32px;
}

.nocturne-feature-panel h3,
.nocturne-private-card h3,
.nocturne-companion-card h3 {
  color: var(--ink-strong);
  font-size: clamp(1.9rem, 2.55vw, 2.7rem);
  line-height: 1.04;
}

.nocturne-feature-panel-amber {
  background: linear-gradient(180deg, #fff7ea 0%, #ffffff 100%);
}

.nocturne-feature-panel-slate {
  background: linear-gradient(180deg, #f4f7fb 0%, #ffffff 100%);
}

.nocturne-private-stage {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(360px, 1.16fr);
  gap: 24px;
  align-items: start;
}

.nocturne-private-copy {
  background: linear-gradient(180deg, #132233 0%, #213043 100%);
  border-color: rgba(216, 168, 88, 0.18);
}

.nocturne-private-copy h2,
.nocturne-private-copy p,
.nocturne-private-copy .eyebrow {
  color: #ffffff;
}

.nocturne-private-copy p {
  color: rgba(230, 236, 244, 0.82);
}

.nocturne-private-stack {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: 22px;
}

.nocturne-private-card {
  padding: 32px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
}

.nocturne-private-card-image {
  padding: 0;
  overflow: hidden;
  grid-row: span 2;
}

.nocturne-private-card-image img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}

.nocturne-private-card-soft {
  background: linear-gradient(180deg, #fff7eb 0%, #ffffff 100%);
}

.nocturne-interior-essay {
  display: grid;
  grid-template-columns: minmax(360px, 1.04fr) minmax(0, 0.96fr);
  gap: 24px;
  align-items: stretch;
}

.nocturne-interior-visual {
  position: relative;
  overflow: hidden;
  background: #111d2c;
}

.nocturne-interior-visual img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.nocturne-interior-overlay {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(14, 24, 37, 0.82);
  border: 1px solid rgba(216, 168, 88, 0.24);
  border-radius: 22px;
}

.nocturne-interior-copy {
  background: linear-gradient(135deg, #ffffff 0%, #f4f6fa 100%);
}

.nocturne-companion-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.1fr) minmax(260px, 0.8fr);
  gap: 22px;
}

.nocturne-companion-card {
  background: linear-gradient(180deg, #ffffff 0%, #f3f7fb 100%);
}

.nocturne-companion-card-main {
  background: linear-gradient(180deg, #fff8ee 0%, #ffffff 100%);
}

.nocturne-companion-card-soft {
  background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

.nocturne-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #101d2d 0%, #203246 58%, #b88740 150%);
  border-color: rgba(216, 168, 88, 0.18);
}

.nocturne-cta-inner h2,
.nocturne-cta-inner .eyebrow {
  color: #ffffff;
}

.nocturne-cta-inner p {
  max-width: 760px;
  color: rgba(231, 236, 244, 0.84);
}

.nocturne-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.nocturne-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .nocturne-hero-inner,
  .nocturne-overture-layout,
  .nocturne-signature-grid,
  .nocturne-private-stage,
  .nocturne-interior-essay,
  .nocturne-feature-ribbon,
  .nocturne-private-stack,
  .nocturne-companion-grid,
  .nocturne-hero-stage {
    grid-template-columns: 1fr;
  }

  .nocturne-private-card-image {
    grid-row: auto;
  }

  .nocturne-hero-main img,
  .nocturne-interior-visual img {
    min-height: 420px;
  }
}

@media (max-width: 860px) {
  .nocturne-hero,
  .nocturne-overture,
  .nocturne-signature-stage,
  .nocturne-private-stage,
  .nocturne-interior-essay,
  .nocturne-companion-edit,
  .nocturne-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .nocturne-hero-copy h1,
  .nocturne-overture-panel h2,
  .nocturne-signature-head h2,
  .nocturne-private-copy h2,
  .nocturne-interior-copy h2,
  .nocturne-companion-head h2,
  .nocturne-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .nocturne-hero-note,
  .nocturne-overture-panel,
  .nocturne-aside-card,
  .nocturne-private-copy,
  .nocturne-private-card,
  .nocturne-interior-copy,
  .nocturne-companion-card,
  .nocturne-cta-inner,
  .nocturne-feature-ribbon-copy,
  .nocturne-feature-panel {
    padding: 28px 22px 30px;
  }

  .nocturne-hero-main img,
  .nocturne-hero-side img,
  .nocturne-feature-ribbon-media img,
  .nocturne-private-card-image img,
  .nocturne-interior-visual img {
    height: 280px;
    min-height: 280px;
  }
}

/* nocturne-layout-fixes */
.nocturne-signature-head .eyebrow,
.nocturne-signature-head h2,
.nocturne-signature-head p {
  color: #eef4fb;
}

.nocturne-signature-head .eyebrow {
  color: #d5a65c;
}

.nocturne-signature-head p {
  color: rgba(229, 236, 244, 0.8);
}

.nocturne-private-stage {
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
}

.nocturne-private-stack {
  grid-template-columns: 1fr;
  align-content: start;
}

.nocturne-private-card {
  min-height: 0;
}

.nocturne-private-card h3 {
  max-width: 16ch;
  font-size: clamp(1.7rem, 2.2vw, 2.35rem);
}

.nocturne-private-card-image {
  grid-row: auto;
  order: 1;
}

.nocturne-private-card:not(.nocturne-private-card-image) {
  order: 2;
}

/* sanctum-suites-page */
.sanctum-page {
  background:
    radial-gradient(circle at 82% 12%, rgba(223, 198, 154, 0.18), transparent 18%),
    radial-gradient(circle at 18% 10%, rgba(212, 223, 235, 0.2), transparent 18%),
    linear-gradient(180deg, #f8f4ec 0%, #faf7f1 18%, #ffffff 42%, #f7f5ef 70%, #f2eee6 100%);
  padding-bottom: 46px;
}

.sanctum-hero,
.sanctum-intro-essay,
.sanctum-suite-stage,
.sanctum-wellness-stage,
.sanctum-materials-essay,
.sanctum-salon-edit,
.sanctum-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.sanctum-hero {
  padding: 42px 0 0;
}

.sanctum-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(480px, 1.14fr);
  gap: 34px;
  align-items: center;
}

.sanctum-hero-copy {
  padding: 24px 0 18px;
}

.sanctum-hero-copy h1,
.sanctum-intro-panel h2,
.sanctum-section-head h2,
.sanctum-wellness-copy h2,
.sanctum-materials-copy h2,
.sanctum-salon-head h2,
.sanctum-cta-inner h2,
.sanctum-suite-banner-copy h3,
.sanctum-suite-panel h3,
.sanctum-wellness-card h3,
.sanctum-private-main-copy h3,
.sanctum-private-mini h3,
.sanctum-salon-card h3 {
  margin: 0;
  letter-spacing: -0.045em;
  color: var(--ink-strong);
}

.sanctum-hero-copy h1 {
  font-size: clamp(4rem, 6vw, 6.1rem);
  line-height: 0.92;
}

.sanctum-lead {
  margin-top: 18px;
  color: #7a6444;
  font-size: 1.24rem;
  line-height: 1.72;
}

.sanctum-hero-copy p {
  max-width: 620px;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.92;
}

.sanctum-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(280px, 0.56fr);
  gap: 20px;
  align-items: stretch;
}

.sanctum-hero-main,
.sanctum-hero-side,
.sanctum-hero-note,
.sanctum-intro-panel,
.sanctum-aside-card,
.sanctum-suite-banner,
.sanctum-suite-panel,
.sanctum-wellness-copy,
.sanctum-wellness-card,
.sanctum-materials-visual,
.sanctum-materials-copy,
.sanctum-salon-card,
.sanctum-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(221, 212, 198, 0.92);
  box-shadow: 0 18px 48px rgba(70, 56, 37, 0.08);
}

.sanctum-hero-main,
.sanctum-hero-side {
  margin: 0;
  overflow: hidden;
}

.sanctum-hero-main img,
.sanctum-hero-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sanctum-hero-main img {
  min-height: 720px;
}

.sanctum-hero-sidecluster {
  display: grid;
  gap: 20px;
}

.sanctum-hero-side img {
  min-height: 320px;
}

.sanctum-hero-note {
  padding: 28px 30px;
  background: linear-gradient(180deg, #fffaf3 0%, #f6efe2 100%);
}

.sanctum-hero-note small,
.sanctum-aside-card small,
.sanctum-suite-banner-copy small,
.sanctum-suite-panel small,
.sanctum-wellness-card small,
.sanctum-materials-overlay small,
.sanctum-salon-card small {
  display: block;
  margin-bottom: 12px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #b78b4f;
}

.sanctum-hero-note strong,
.sanctum-aside-card strong,
.sanctum-materials-overlay strong {
  display: block;
  font-size: 1.42rem;
  line-height: 1.28;
  color: var(--ink-strong);
}

.sanctum-intro-essay,
.sanctum-suite-stage,
.sanctum-wellness-stage,
.sanctum-materials-essay,
.sanctum-salon-edit,
.sanctum-cta-stage {
  margin-top: 44px;
}

.sanctum-intro-essay {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
  gap: 24px;
  align-items: start;
}

.sanctum-intro-panel,
.sanctum-wellness-copy,
.sanctum-materials-copy,
.sanctum-salon-card,
.sanctum-cta-inner {
  padding: 36px;
}

.sanctum-intro-panel {
  background: linear-gradient(135deg, #ffffff 0%, #fbf8f2 100%);
}

.sanctum-intro-panel h2,
.sanctum-section-head h2,
.sanctum-wellness-copy h2,
.sanctum-materials-copy h2,
.sanctum-salon-head h2,
.sanctum-cta-inner h2 {
  font-size: clamp(2.6rem, 4vw, 4rem);
  line-height: 0.98;
}

.sanctum-intro-panel p,
.sanctum-section-head p,
.sanctum-suite-banner-copy p,
.sanctum-suite-panel p,
.sanctum-wellness-copy p,
.sanctum-wellness-card p,
.sanctum-materials-copy p,
.sanctum-salon-card p,
.sanctum-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.sanctum-intro-aside {
  display: grid;
  gap: 20px;
}

.sanctum-aside-card {
  padding: 28px 30px;
}

.sanctum-aside-card-pearl {
  background: linear-gradient(180deg, #faf8f4 0%, #ffffff 100%);
}

.sanctum-aside-card-sand {
  background: linear-gradient(180deg, #f6efe4 0%, #fffaf3 100%);
}

.sanctum-section-head,
.sanctum-private-head,
.sanctum-salon-head {
  max-width: 860px;
}

.sanctum-suite-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.44fr);
  gap: 24px;
  align-items: start;
}

.sanctum-suite-banner {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(340px, 1.06fr);
  background: linear-gradient(135deg, #ffffff 0%, #faf5ec 100%);
}

.sanctum-suite-banner-copy {
  padding: 34px;
}

.sanctum-suite-banner-copy h3,
.sanctum-suite-panel h3,
.sanctum-wellness-card h3,
.sanctum-salon-card h3 {
  font-size: clamp(1.9rem, 2.55vw, 2.7rem);
  line-height: 1.04;
}

.sanctum-suite-banner-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.sanctum-suite-column {
  display: grid;
  gap: 22px;
}

.sanctum-suite-panel {
  padding: 32px;
}

.sanctum-suite-panel-light {
  background: linear-gradient(180deg, #ffffff 0%, #f7f3ec 100%);
}

.sanctum-suite-panel-warm {
  background: linear-gradient(180deg, #fbf7ef 0%, #ffffff 100%);
}

.sanctum-wellness-stage {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(360px, 1.14fr);
  gap: 24px;
  align-items: start;
}

.sanctum-wellness-copy {
  background: linear-gradient(180deg, #f7f2ea 0%, #ffffff 100%);
}

.sanctum-wellness-visuals {
  display: grid;
  grid-template-columns: minmax(320px, 1.04fr) minmax(0, 0.96fr);
  gap: 22px;
}

.sanctum-wellness-card {
  background: linear-gradient(180deg, #ffffff 0%, #f5f0e8 100%);
}

.sanctum-wellness-card-photo {
  padding: 0;
  overflow: hidden;
}

.sanctum-wellness-card-photo img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.sanctum-wellness-card-text {
  padding: 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.sanctum-materials-essay {
  display: grid;
  grid-template-columns: minmax(360px, 1.04fr) minmax(0, 0.96fr);
  gap: 24px;
  align-items: stretch;
}

.sanctum-materials-visual {
  position: relative;
  overflow: hidden;
  background: #eee7dc;
}

.sanctum-materials-visual img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.sanctum-materials-overlay {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(249, 244, 237, 0.92);
  border: 1px solid rgba(226, 214, 199, 0.94);
  border-radius: 22px;
}

.sanctum-materials-copy {
  background: linear-gradient(135deg, #ffffff 0%, #faf6ef 100%);
}

.sanctum-salon-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(260px, 0.88fr) minmax(0, 1.08fr) minmax(260px, 0.84fr);
  gap: 22px;
}

.sanctum-salon-card {
  background: linear-gradient(180deg, #ffffff 0%, #f7f4ee 100%);
}

.sanctum-salon-card-main {
  background: linear-gradient(180deg, #fbf6ee 0%, #ffffff 100%);
}

.sanctum-salon-card-soft {
  background: linear-gradient(180deg, #f5f1ea 0%, #ffffff 100%);
}

.sanctum-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #7f6648 0%, #9b7d59 58%, #e7dcc9 150%);
  border-color: rgba(172, 141, 102, 0.32);
}

.sanctum-cta-inner h2,
.sanctum-cta-inner .eyebrow {
  color: #ffffff;
}

.sanctum-cta-inner p {
  max-width: 760px;
  color: rgba(248, 244, 237, 0.88);
}

.sanctum-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.sanctum-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .sanctum-hero-inner,
  .sanctum-intro-essay,
  .sanctum-suite-grid,
  .sanctum-wellness-stage,
  .sanctum-materials-essay,
  .sanctum-salon-grid,
  .sanctum-hero-stage,
  .sanctum-suite-banner,
  .sanctum-wellness-visuals {
    grid-template-columns: 1fr;
  }

  .sanctum-hero-main img,
  .sanctum-materials-visual img {
    min-height: 420px;
  }
}

@media (max-width: 860px) {
  .sanctum-hero,
  .sanctum-intro-essay,
  .sanctum-suite-stage,
  .sanctum-wellness-stage,
  .sanctum-materials-essay,
  .sanctum-salon-edit,
  .sanctum-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .sanctum-hero-copy h1,
  .sanctum-intro-panel h2,
  .sanctum-section-head h2,
  .sanctum-wellness-copy h2,
  .sanctum-materials-copy h2,
  .sanctum-salon-head h2,
  .sanctum-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .sanctum-hero-note,
  .sanctum-intro-panel,
  .sanctum-aside-card,
  .sanctum-wellness-copy,
  .sanctum-wellness-card-text,
  .sanctum-materials-copy,
  .sanctum-salon-card,
  .sanctum-cta-inner,
  .sanctum-suite-banner-copy,
  .sanctum-suite-panel {
    padding: 28px 22px 30px;
  }

  .sanctum-hero-main img,
  .sanctum-hero-side img,
  .sanctum-suite-banner-media img,
  .sanctum-wellness-card-photo img,
  .sanctum-materials-visual img {
    height: 280px;
    min-height: 280px;
  }
}

/* culina-dining-page */
.culina-page {
  background:
    radial-gradient(circle at 82% 10%, rgba(194, 104, 67, 0.16), transparent 18%),
    radial-gradient(circle at 18% 12%, rgba(158, 86, 61, 0.12), transparent 18%),
    linear-gradient(180deg, #161618 0%, #241f22 18%, #36282d 32%, #f6f0eb 32.2%, #f9f5f0 70%, #f2ece6 100%);
  padding-bottom: 46px;
}

.culina-hero,
.culina-intro-essay,
.culina-concept-stage,
.culina-signature-plates,
.culina-interior-stage,
.culina-private-stage,
.culina-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.culina-hero {
  padding: 42px 0 0;
}

.culina-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(500px, 1.16fr);
  gap: 34px;
  align-items: center;
}

.culina-hero-copy {
  padding: 24px 0 18px;
}

.culina-hero-copy h1,
.culina-intro-panel h2,
.culina-section-head h2,
.culina-signature-copy h2,
.culina-interior-copy h2,
.culina-private-head h2,
.culina-cta-inner h2,
.culina-concept-ribbon-copy h3,
.culina-concept-panel h3,
.culina-plate-card h3,
.culina-private-card h3 {
  margin: 0;
  letter-spacing: -0.045em;
}

.culina-hero-copy h1 {
  color: #ffffff;
  font-size: clamp(4rem, 6vw, 6rem);
  line-height: 0.92;
}

.culina-lead {
  margin-top: 18px;
  color: #e1b889;
  font-size: 1.24rem;
  line-height: 1.72;
}

.culina-hero-copy p {
  max-width: 620px;
  color: rgba(239, 235, 231, 0.82);
  font-size: 1.05rem;
  line-height: 1.92;
}

.culina-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(280px, 0.58fr);
  gap: 20px;
  align-items: stretch;
}

.culina-hero-main,
.culina-hero-side,
.culina-hero-note,
.culina-intro-panel,
.culina-aside-card,
.culina-concept-ribbon,
.culina-concept-panel,
.culina-plate-card,
.culina-interior-visual,
.culina-interior-copy,
.culina-private-card,
.culina-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(209, 193, 184, 0.2);
  box-shadow: 0 18px 52px rgba(26, 17, 16, 0.12);
}

.culina-hero-main,
.culina-hero-side {
  margin: 0;
  overflow: hidden;
}

.culina-hero-main img,
.culina-hero-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.culina-hero-main img {
  min-height: 720px;
}

.culina-hero-column {
  display: grid;
  gap: 20px;
}

.culina-hero-side img {
  min-height: 320px;
}

.culina-hero-note {
  padding: 28px 30px;
  background: linear-gradient(180deg, #3a2b2b 0%, #4a3534 100%);
  border-color: rgba(214, 164, 101, 0.22);
}

.culina-hero-note small,
.culina-aside-card small,
.culina-concept-ribbon-copy small,
.culina-concept-panel small,
.culina-plate-card small,
.culina-interior-overlay small,
.culina-private-card small {
  display: block;
  margin-bottom: 12px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #d7a05f;
}

.culina-hero-note strong,
.culina-aside-card strong,
.culina-interior-overlay strong {
  display: block;
  color: #ffffff;
  font-size: 1.42rem;
  line-height: 1.28;
}

.culina-intro-essay,
.culina-concept-stage,
.culina-signature-plates,
.culina-interior-stage,
.culina-private-stage,
.culina-cta-stage {
  margin-top: 44px;
}

.culina-intro-essay {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
  gap: 24px;
  align-items: start;
}

.culina-intro-panel,
.culina-signature-copy,
.culina-interior-copy,
.culina-private-card,
.culina-cta-inner {
  padding: 36px;
}

.culina-intro-panel {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(249, 243, 236, 0.96) 100%);
}

.culina-intro-panel h2,
.culina-section-head h2,
.culina-signature-copy h2,
.culina-interior-copy h2,
.culina-private-head h2,
.culina-cta-inner h2 {
  color: var(--ink-strong);
  font-size: clamp(2.6rem, 4vw, 4rem);
  line-height: 0.98;
}

.culina-intro-panel p,
.culina-section-head p,
.culina-concept-ribbon-copy p,
.culina-concept-panel p,
.culina-signature-copy p,
.culina-plate-card p,
.culina-interior-copy p,
.culina-private-card p,
.culina-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.culina-intro-aside {
  display: grid;
  gap: 20px;
}

.culina-aside-card {
  padding: 28px 30px;
}

.culina-aside-card-wine {
  background: linear-gradient(180deg, #442b2f 0%, #5a393d 100%);
  border-color: rgba(212, 156, 92, 0.24);
}

.culina-aside-card-wine small,
.culina-aside-card-wine strong {
  color: #ffffff;
}

.culina-aside-card-cream {
  background: linear-gradient(180deg, #fff8ef 0%, #ffffff 100%);
}

.culina-aside-card-cream strong {
  color: var(--ink-strong);
}

.culina-section-head,
.culina-private-head {
  max-width: 860px;
}

.culina-concept-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.44fr);
  gap: 24px;
  align-items: start;
}

.culina-concept-ribbon {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(340px, 1.06fr);
  background: linear-gradient(135deg, #2b2024 0%, #442d31 56%, #362529 100%);
  border-color: rgba(214, 161, 96, 0.22);
}

.culina-concept-ribbon-copy {
  padding: 34px;
}

.culina-concept-ribbon-copy h3,
.culina-concept-ribbon-copy p,
.culina-concept-ribbon-copy small {
  color: #ffffff;
}

.culina-concept-ribbon-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.culina-concept-panel {
  padding: 32px;
}

.culina-concept-panel h3,
.culina-plate-card h3,
.culina-private-card h3 {
  color: var(--ink-strong);
  font-size: clamp(1.9rem, 2.55vw, 2.7rem);
  line-height: 1.04;
}

.culina-concept-panel-amber {
  background: linear-gradient(180deg, #fff3e6 0%, #ffffff 100%);
}

.culina-concept-panel-burgundy {
  background: linear-gradient(180deg, #f8f2f2 0%, #ffffff 100%);
}

.culina-signature-plates {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(360px, 1.16fr);
  gap: 24px;
  align-items: start;
}

.culina-signature-copy {
  background: linear-gradient(180deg, #fbf4ec 0%, #ffffff 100%);
}

.culina-signature-visuals {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, 0.84fr);
  gap: 22px;
  align-items: start;
}

.culina-plate-card {
  background: linear-gradient(180deg, #ffffff 0%, #f7f2ec 100%);
}

.culina-plate-card-photo,
.culina-plate-card-photo-small {
  padding: 0;
  overflow: hidden;
}

.culina-plate-card-photo {
  grid-row: span 2;
}

.culina-plate-card-photo img,
.culina-plate-card-photo-small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.culina-plate-card-photo img {
  min-height: 520px;
}

.culina-plate-card-photo-small img {
  min-height: 220px;
}

.culina-plate-card-text {
  padding: 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.culina-interior-stage {
  display: grid;
  grid-template-columns: minmax(360px, 1.04fr) minmax(0, 0.96fr);
  gap: 24px;
  align-items: stretch;
}

.culina-interior-visual {
  position: relative;
  overflow: hidden;
  background: #2d2224;
}

.culina-interior-visual img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.culina-interior-overlay {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(41, 29, 30, 0.84);
  border: 1px solid rgba(214, 160, 95, 0.26);
  border-radius: 22px;
}

.culina-interior-copy {
  background: linear-gradient(135deg, #ffffff 0%, #f8f1ea 100%);
}

.culina-private-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.08fr) minmax(260px, 0.84fr);
  gap: 22px;
}

.culina-private-card {
  background: linear-gradient(180deg, #ffffff 0%, #f6f1ea 100%);
}

.culina-private-card-main {
  background: linear-gradient(180deg, #fbf1e7 0%, #ffffff 100%);
}

.culina-private-card-lounge {
  background: linear-gradient(180deg, #f8f0f0 0%, #ffffff 100%);
}

.culina-private-card-soft {
  background: linear-gradient(180deg, #f7f2ec 0%, #ffffff 100%);
}

.culina-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #382427 0%, #5a3a3d 58%, #c58b56 150%);
  border-color: rgba(214, 162, 95, 0.24);
}

.culina-cta-inner h2,
.culina-cta-inner .eyebrow {
  color: #ffffff;
}

.culina-cta-inner p {
  max-width: 760px;
  color: rgba(244, 238, 232, 0.86);
}

.culina-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.culina-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .culina-hero-inner,
  .culina-intro-essay,
  .culina-concept-grid,
  .culina-signature-plates,
  .culina-interior-stage,
  .culina-private-grid,
  .culina-hero-stage,
  .culina-concept-ribbon,
  .culina-signature-visuals {
    grid-template-columns: 1fr;
  }

  .culina-plate-card-photo {
    grid-row: auto;
  }

  .culina-hero-main img,
  .culina-interior-visual img {
    min-height: 420px;
  }
}

@media (max-width: 860px) {
  .culina-hero,
  .culina-intro-essay,
  .culina-concept-stage,
  .culina-signature-plates,
  .culina-interior-stage,
  .culina-private-stage,
  .culina-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .culina-hero-copy h1,
  .culina-intro-panel h2,
  .culina-section-head h2,
  .culina-signature-copy h2,
  .culina-interior-copy h2,
  .culina-private-head h2,
  .culina-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .culina-hero-note,
  .culina-intro-panel,
  .culina-aside-card,
  .culina-signature-copy,
  .culina-plate-card-text,
  .culina-interior-copy,
  .culina-private-card,
  .culina-cta-inner,
  .culina-concept-ribbon-copy,
  .culina-concept-panel {
    padding: 28px 22px 30px;
  }

  .culina-hero-main img,
  .culina-hero-side img,
  .culina-concept-ribbon-media img,
  .culina-plate-card-photo img,
  .culina-plate-card-photo-small img,
  .culina-interior-visual img {
    height: 280px;
    min-height: 280px;
  }
}

/* stagecraft-entertainment-page */
.stagecraft-page {
  background:
    radial-gradient(circle at 82% 12%, rgba(187, 132, 67, 0.18), transparent 18%),
    radial-gradient(circle at 18% 10%, rgba(64, 87, 163, 0.16), transparent 18%),
    linear-gradient(180deg, #0a0f19 0%, #141b2d 18%, #241f36 32%, #f6f2ef 32.2%, #f7f4f1 72%, #efe9e3 100%);
  padding-bottom: 46px;
}

.stagecraft-hero,
.stagecraft-intro-essay,
.stagecraft-show-stage,
.stagecraft-light-stage,
.stagecraft-interior-stage,
.stagecraft-private-stage,
.stagecraft-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.stagecraft-hero {
  padding: 42px 0 0;
}

.stagecraft-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(500px, 1.16fr);
  gap: 34px;
  align-items: center;
}

.stagecraft-hero-copy {
  padding: 24px 0 18px;
}

.stagecraft-hero-copy h1,
.stagecraft-intro-panel h2,
.stagecraft-section-head h2,
.stagecraft-light-copy h2,
.stagecraft-interior-copy h2,
.stagecraft-private-head h2,
.stagecraft-cta-inner h2,
.stagecraft-show-ribbon-copy h3,
.stagecraft-show-panel h3,
.stagecraft-light-card h3,
.stagecraft-private-card h3 {
  margin: 0;
  letter-spacing: -0.045em;
}

.stagecraft-hero-copy h1 {
  color: #ffffff;
  font-size: clamp(4rem, 6vw, 6rem);
  line-height: 0.92;
}

.stagecraft-lead {
  margin-top: 18px;
  color: #e0b680;
  font-size: 1.24rem;
  line-height: 1.72;
}

.stagecraft-hero-copy p {
  max-width: 620px;
  color: rgba(236, 239, 245, 0.82);
  font-size: 1.05rem;
  line-height: 1.92;
}

.stagecraft-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(280px, 0.58fr);
  gap: 20px;
  align-items: stretch;
}

.stagecraft-hero-main,
.stagecraft-hero-side,
.stagecraft-hero-note,
.stagecraft-intro-panel,
.stagecraft-aside-card,
.stagecraft-show-ribbon,
.stagecraft-show-panel,
.stagecraft-light-copy,
.stagecraft-light-card,
.stagecraft-interior-visual,
.stagecraft-interior-copy,
.stagecraft-private-card,
.stagecraft-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(198, 188, 194, 0.2);
  box-shadow: 0 18px 52px rgba(12, 11, 23, 0.12);
}

.stagecraft-hero-main,
.stagecraft-hero-side {
  margin: 0;
  overflow: hidden;
}

.stagecraft-hero-main img,
.stagecraft-hero-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stagecraft-hero-main img {
  min-height: 720px;
}

.stagecraft-hero-column {
  display: grid;
  gap: 20px;
}

.stagecraft-hero-side img {
  min-height: 320px;
}

.stagecraft-hero-note {
  padding: 28px 30px;
  background: linear-gradient(180deg, #211f31 0%, #2f2a40 100%);
  border-color: rgba(196, 144, 76, 0.24);
}

.stagecraft-hero-note small,
.stagecraft-aside-card small,
.stagecraft-show-ribbon-copy small,
.stagecraft-show-panel small,
.stagecraft-light-card small,
.stagecraft-interior-overlay small,
.stagecraft-private-card small {
  display: block;
  margin-bottom: 12px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #d3a160;
}

.stagecraft-hero-note strong,
.stagecraft-aside-card strong,
.stagecraft-interior-overlay strong {
  display: block;
  color: #ffffff;
  font-size: 1.42rem;
  line-height: 1.28;
}

.stagecraft-intro-essay,
.stagecraft-show-stage,
.stagecraft-light-stage,
.stagecraft-interior-stage,
.stagecraft-private-stage,
.stagecraft-cta-stage {
  margin-top: 44px;
}

.stagecraft-intro-essay {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
  gap: 24px;
  align-items: start;
}

.stagecraft-intro-panel,
.stagecraft-light-copy,
.stagecraft-interior-copy,
.stagecraft-private-card,
.stagecraft-cta-inner {
  padding: 36px;
}

.stagecraft-intro-panel {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(247, 243, 239, 0.96) 100%);
}

.stagecraft-intro-panel h2,
.stagecraft-section-head h2,
.stagecraft-light-copy h2,
.stagecraft-interior-copy h2,
.stagecraft-private-head h2,
.stagecraft-cta-inner h2 {
  color: var(--ink-strong);
  font-size: clamp(2.6rem, 4vw, 4rem);
  line-height: 0.98;
}

.stagecraft-intro-panel p,
.stagecraft-section-head p,
.stagecraft-show-ribbon-copy p,
.stagecraft-show-panel p,
.stagecraft-light-copy p,
.stagecraft-light-card p,
.stagecraft-interior-copy p,
.stagecraft-private-card p,
.stagecraft-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.stagecraft-intro-aside {
  display: grid;
  gap: 20px;
}

.stagecraft-aside-card {
  padding: 28px 30px;
}

.stagecraft-aside-card-sapphire {
  background: linear-gradient(180deg, #1d2944 0%, #2a3a62 100%);
  border-color: rgba(84, 107, 171, 0.26);
}

.stagecraft-aside-card-sapphire small,
.stagecraft-aside-card-sapphire strong {
  color: #ffffff;
}

.stagecraft-aside-card-bordeaux {
  background: linear-gradient(180deg, #fff5ef 0%, #ffffff 100%);
}

.stagecraft-aside-card-bordeaux strong {
  color: var(--ink-strong);
}

.stagecraft-section-head,
.stagecraft-private-head {
  max-width: 860px;
}

.stagecraft-show-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.44fr);
  gap: 24px;
  align-items: start;
}

.stagecraft-show-ribbon {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(340px, 1.06fr);
  background: linear-gradient(135deg, #1a2034 0%, #332943 56%, #2a2238 100%);
  border-color: rgba(199, 148, 80, 0.24);
}

.stagecraft-show-ribbon-copy {
  padding: 34px;
}

.stagecraft-show-ribbon-copy h3,
.stagecraft-show-ribbon-copy p,
.stagecraft-show-ribbon-copy small {
  color: #ffffff;
}

.stagecraft-show-ribbon-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.stagecraft-show-panel {
  padding: 32px;
}

.stagecraft-show-panel h3,
.stagecraft-light-card h3,
.stagecraft-private-card h3 {
  color: var(--ink-strong);
  font-size: clamp(1.9rem, 2.55vw, 2.7rem);
  line-height: 1.04;
}

.stagecraft-show-panel-gold {
  background: linear-gradient(180deg, #fff5e8 0%, #ffffff 100%);
}

.stagecraft-show-panel-plum {
  background: linear-gradient(180deg, #f8f3f9 0%, #ffffff 100%);
}

.stagecraft-light-stage {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(360px, 1.16fr);
  gap: 24px;
  align-items: start;
}

.stagecraft-light-copy {
  background: linear-gradient(180deg, #f6efe8 0%, #ffffff 100%);
}

.stagecraft-light-visuals {
  display: grid;
  grid-template-columns: minmax(320px, 1.02fr) minmax(0, 0.98fr);
  gap: 22px;
}

.stagecraft-light-card {
  background: linear-gradient(180deg, #ffffff 0%, #f5f1ef 100%);
}

.stagecraft-light-card-photo {
  padding: 0;
  overflow: hidden;
}

.stagecraft-light-card-photo img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}

.stagecraft-light-card-text {
  padding: 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.stagecraft-interior-stage {
  display: grid;
  grid-template-columns: minmax(360px, 1.04fr) minmax(0, 0.96fr);
  gap: 24px;
  align-items: stretch;
}

.stagecraft-interior-visual {
  position: relative;
  overflow: hidden;
  background: #201c2e;
}

.stagecraft-interior-visual img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.stagecraft-interior-overlay {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  padding: 20px 22px;
  background: rgba(24, 20, 34, 0.84);
  border: 1px solid rgba(203, 151, 82, 0.24);
  border-radius: 22px;
}

.stagecraft-interior-copy {
  background: linear-gradient(135deg, #ffffff 0%, #f5f1ec 100%);
}

.stagecraft-private-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.08fr) minmax(260px, 0.84fr);
  gap: 22px;
}

.stagecraft-private-card {
  background: linear-gradient(180deg, #ffffff 0%, #f5f1ec 100%);
}

.stagecraft-private-card-main {
  background: linear-gradient(180deg, #fdf3e7 0%, #ffffff 100%);
}

.stagecraft-private-card-soft {
  background: linear-gradient(180deg, #f5f3f9 0%, #ffffff 100%);
}

.stagecraft-private-card-deep {
  background: linear-gradient(180deg, #f7f1ec 0%, #ffffff 100%);
}

.stagecraft-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #211c2f 0%, #3a2c43 58%, #bd8652 150%);
  border-color: rgba(201, 147, 79, 0.24);
}

.stagecraft-cta-inner h2,
.stagecraft-cta-inner .eyebrow {
  color: #ffffff;
}

.stagecraft-cta-inner p {
  max-width: 760px;
  color: rgba(244, 238, 232, 0.86);
}

.stagecraft-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.stagecraft-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .stagecraft-hero-inner,
  .stagecraft-intro-essay,
  .stagecraft-show-grid,
  .stagecraft-light-stage,
  .stagecraft-interior-stage,
  .stagecraft-private-grid,
  .stagecraft-hero-stage,
  .stagecraft-show-ribbon,
  .stagecraft-light-visuals {
    grid-template-columns: 1fr;
  }

  .stagecraft-hero-main img,
  .stagecraft-interior-visual img {
    min-height: 420px;
  }
}

@media (max-width: 860px) {
  .stagecraft-hero,
  .stagecraft-intro-essay,
  .stagecraft-show-stage,
  .stagecraft-light-stage,
  .stagecraft-interior-stage,
  .stagecraft-private-stage,
  .stagecraft-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .stagecraft-hero-copy h1,
  .stagecraft-intro-panel h2,
  .stagecraft-section-head h2,
  .stagecraft-light-copy h2,
  .stagecraft-interior-copy h2,
  .stagecraft-private-head h2,
  .stagecraft-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .stagecraft-hero-note,
  .stagecraft-intro-panel,
  .stagecraft-aside-card,
  .stagecraft-light-copy,
  .stagecraft-light-card-text,
  .stagecraft-interior-copy,
  .stagecraft-private-card,
  .stagecraft-cta-inner,
  .stagecraft-show-ribbon-copy,
  .stagecraft-show-panel {
    padding: 28px 22px 30px;
  }

  .stagecraft-hero-main img,
  .stagecraft-hero-side img,
  .stagecraft-show-ribbon-media img,
  .stagecraft-light-card-photo img,
  .stagecraft-interior-visual img {
    height: 280px;
    min-height: 280px;
  }
}

/* gallerypage-destinations */
.gallerypage-page {
  background:
    radial-gradient(circle at 82% 10%, rgba(58, 139, 226, 0.14), transparent 18%),
    radial-gradient(circle at 18% 12%, rgba(232, 177, 109, 0.16), transparent 18%),
    linear-gradient(180deg, #eef4fb 0%, #f8fbff 24%, #ffffff 48%, #f8f4ee 74%, #f2eee9 100%);
  padding-bottom: 46px;
}

.gallerypage-hero,
.gallerypage-featured-route,
.gallerypage-dual-showcase,
.gallerypage-overview-stage,
.gallerypage-compare-band,
.gallerypage-cta-stage {
  width: min(1320px, calc(100vw - 48px));
  margin: 0 auto;
}

.gallerypage-hero {
  padding: 42px 0 0;
}

.gallerypage-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(500px, 1.16fr);
  gap: 34px;
  align-items: center;
}

.gallerypage-hero-copy {
  padding: 24px 0 18px;
}

.gallerypage-hero-copy h1,
.gallerypage-featured-copy h2,
.gallerypage-sunburst-copy h2,
.gallerypage-evening-card h3,
.gallerypage-overview-head h2,
.gallerypage-overview-card h3,
.gallerypage-compare-copy h2,
.gallerypage-cta-inner h2 {
  margin: 0;
  color: var(--ink-strong);
  letter-spacing: -0.045em;
}

.gallerypage-hero-copy h1 {
  font-size: clamp(4rem, 6vw, 6rem);
  line-height: 0.92;
}

.gallerypage-lead {
  margin-top: 18px;
  color: #36557a;
  font-size: 1.24rem;
  line-height: 1.72;
}

.gallerypage-hero-copy p {
  max-width: 620px;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.92;
}

.gallerypage-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(280px, 0.56fr);
  gap: 20px;
  align-items: stretch;
}

.gallerypage-hero-main,
.gallerypage-hero-small,
.gallerypage-hero-note,
.gallerypage-featured-card,
.gallerypage-sunburst-card,
.gallerypage-evening-card,
.gallerypage-overview-card,
.gallerypage-compare-copy,
.gallerypage-compare-card,
.gallerypage-cta-inner {
  border-radius: 34px;
  border: 1px solid rgba(205, 216, 228, 0.9);
  box-shadow: 0 18px 48px rgba(32, 56, 88, 0.08);
}

.gallerypage-hero-main,
.gallerypage-hero-small {
  overflow: hidden;
  margin: 0;
}

.gallerypage-hero-main img,
.gallerypage-hero-small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallerypage-hero-main img {
  min-height: 720px;
}

.gallerypage-hero-stack {
  display: grid;
  gap: 20px;
}

.gallerypage-hero-small img {
  min-height: 300px;
}

.gallerypage-hero-note {
  padding: 28px 30px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f8fe 100%);
}

.gallerypage-hero-note small,
.gallerypage-featured-copy .eyebrow,
.gallerypage-sunburst-copy .eyebrow,
.gallerypage-evening-card small,
.gallerypage-overview-card small,
.gallerypage-compare-card strong,
.gallerypage-caption-chip,
.gallerypage-media-tag,
.gallerypage-overlay-note strong,
.gallerypage-badges span {
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.gallerypage-hero-note small,
.gallerypage-featured-copy .eyebrow,
.gallerypage-sunburst-copy .eyebrow,
.gallerypage-evening-card small,
.gallerypage-overview-card small,
.gallerypage-caption-chip,
.gallerypage-media-tag,
.gallerypage-badges span {
  color: #2f6fd6;
}

.gallerypage-hero-note strong,
.gallerypage-overlay-note strong,
.gallerypage-compare-card span {
  display: block;
  color: var(--ink-strong);
  font-size: 1.3rem;
  line-height: 1.3;
}

.gallerypage-featured-route,
.gallerypage-dual-showcase,
.gallerypage-overview-stage,
.gallerypage-compare-band,
.gallerypage-cta-stage {
  margin-top: 44px;
}

.gallerypage-featured-card {
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(360px, 1.06fr);
  overflow: hidden;
  background: linear-gradient(135deg, #ffffff 0%, #f6f9fe 100%);
}

.gallerypage-featured-copy,
.gallerypage-sunburst-copy,
.gallerypage-evening-card,
.gallerypage-overview-card,
.gallerypage-compare-copy,
.gallerypage-compare-card,
.gallerypage-cta-inner {
  padding: 36px;
}

.gallerypage-featured-copy h2,
.gallerypage-sunburst-copy h2,
.gallerypage-overview-head h2,
.gallerypage-compare-copy h2,
.gallerypage-cta-inner h2 {
  font-size: clamp(2.6rem, 4vw, 4rem);
  line-height: 0.98;
}

.gallerypage-featured-copy p,
.gallerypage-sunburst-copy p,
.gallerypage-evening-card p,
.gallerypage-overview-head p,
.gallerypage-overview-card p,
.gallerypage-compare-copy p,
.gallerypage-cta-inner p {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.88;
}

.gallerypage-featured-media {
  position: relative;
}

.gallerypage-featured-media img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
}

.gallerypage-caption-chip,
.gallerypage-media-tag {
  display: inline-flex;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  position: absolute;
  left: 24px;
}

.gallerypage-caption-chip {
  bottom: 24px;
}

.gallerypage-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.gallerypage-badges span {
  display: inline-flex;
  padding: 10px 14px;
  border-radius: 999px;
  background: #eef4ff;
}

.gallerypage-factline {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 22px;
}

.gallerypage-factline strong {
  display: block;
  color: var(--ink-strong);
  font-size: 1rem;
}

.gallerypage-factline span {
  display: block;
  margin-top: 8px;
  color: var(--ink-soft);
  line-height: 1.68;
}

.gallerypage-feature-list,
.gallerypage-compact-list {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.gallerypage-feature-list li,
.gallerypage-compact-list li {
  color: var(--ink-soft);
  line-height: 1.7;
  padding-left: 22px;
  position: relative;
}

.gallerypage-feature-list li::before,
.gallerypage-compact-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d79b54;
}

.gallerypage-dual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 24px;
  align-items: start;
}

.gallerypage-sunburst-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(0, 1fr);
  background: linear-gradient(135deg, #fffaf1 0%, #ffffff 100%);
  border-radius: 34px;
  border: 1px solid rgba(221, 212, 194, 0.92);
  box-shadow: 0 18px 48px rgba(96, 77, 42, 0.08);
}

.gallerypage-sunburst-media {
  position: relative;
}

.gallerypage-sunburst-media img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}

.gallerypage-media-tag {
  top: 24px;
}

.gallerypage-evening-column {
  display: grid;
  gap: 22px;
}

.gallerypage-evening-card {
  background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
}

.gallerypage-evening-card-main {
  background: linear-gradient(180deg, #f8f1e8 0%, #ffffff 100%);
}

.gallerypage-evening-card-photo {
  padding: 0;
  overflow: hidden;
  position: relative;
}

.gallerypage-evening-card-photo img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.gallerypage-overlay-note {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(19, 35, 56, 0.84);
}

.gallerypage-overlay-note strong {
  color: #ffffff;
  font-size: 1.08rem;
  letter-spacing: 0;
  text-transform: none;
}

.gallerypage-mini-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 0;
}

.gallerypage-mini-facts span {
  display: inline-flex;
  padding: 10px 14px;
  border-radius: 999px;
  background: #eef3fb;
  color: #355985;
  font-size: 0.9rem;
  font-weight: 700;
}

.gallerypage-overview-head {
  max-width: 860px;
}

.gallerypage-overview-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.gallerypage-overview-card {
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
}

.gallerypage-overview-card-accent {
  background: linear-gradient(180deg, #f7fbf6 0%, #ffffff 100%);
}

.gallerypage-overview-card h3 {
  font-size: clamp(1.7rem, 2.1vw, 2.2rem);
  line-height: 1.08;
}

.gallerypage-overview-card span {
  display: block;
  margin-top: 20px;
  color: #496484;
  font-weight: 700;
}

.gallerypage-compare-band {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
  gap: 24px;
  align-items: start;
}

.gallerypage-compare-copy,
.gallerypage-compare-card {
  background: linear-gradient(180deg, #ffffff 0%, #f7f4ee 100%);
}

.gallerypage-compare-cards {
  display: grid;
  gap: 18px;
}

.gallerypage-compare-card strong {
  display: block;
  color: #355985;
  margin-bottom: 10px;
}

.gallerypage-cta-inner {
  text-align: left;
  background: linear-gradient(135deg, #28476b 0%, #456d99 58%, #d8ad6f 150%);
  border-color: rgba(73, 110, 154, 0.26);
}

.gallerypage-cta-inner h2,
.gallerypage-cta-inner .eyebrow {
  color: #ffffff;
}

.gallerypage-cta-inner p {
  max-width: 760px;
  color: rgba(242, 245, 250, 0.86);
}

.gallerypage-cta-inner .button-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.gallerypage-cta-inner .button-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

@media (max-width: 1220px) {
  .gallerypage-hero-inner,
  .gallerypage-featured-card,
  .gallerypage-dual-grid,
  .gallerypage-sunburst-card,
  .gallerypage-overview-grid,
  .gallerypage-compare-band {
    grid-template-columns: 1fr;
  }

  .gallerypage-hero-stage,
  .gallerypage-factline {
    grid-template-columns: 1fr;
  }

  .gallerypage-featured-media img,
  .gallerypage-sunburst-media img {
    min-height: 420px;
  }
}

@media (max-width: 860px) {
  .gallerypage-hero,
  .gallerypage-featured-route,
  .gallerypage-dual-showcase,
  .gallerypage-overview-stage,
  .gallerypage-compare-band,
  .gallerypage-cta-stage {
    width: min(100%, calc(100vw - 24px));
  }

  .gallerypage-hero-copy h1,
  .gallerypage-featured-copy h2,
  .gallerypage-sunburst-copy h2,
  .gallerypage-overview-head h2,
  .gallerypage-compare-copy h2,
  .gallerypage-cta-inner h2 {
    font-size: clamp(2.5rem, 9vw, 4rem);
  }

  .gallerypage-hero-note,
  .gallerypage-featured-copy,
  .gallerypage-sunburst-copy,
  .gallerypage-evening-card,
  .gallerypage-overview-card,
  .gallerypage-compare-copy,
  .gallerypage-compare-card,
  .gallerypage-cta-inner {
    padding: 28px 22px 30px;
  }

  .gallerypage-hero-main img,
  .gallerypage-hero-small img,
  .gallerypage-featured-media img,
  .gallerypage-sunburst-media img,
  .gallerypage-evening-card-photo img {
    height: 280px;
    min-height: 280px;
  }
}


/* runic-route-page */
.runic-page {
  background:
    radial-gradient(circle at top left, rgba(193, 216, 255, 0.24), transparent 28%),
    linear-gradient(180deg, #eef4fb 0%, #f8fbff 42%, #e9eff6 100%);
}

.runic-hero,
.runic-overview-band,
.runic-storyline,
.runic-atmosphere,
.runic-features,
.runic-living-edit,
.runic-cta-stage {
  padding: clamp(76px, 9vw, 110px) clamp(24px, 4vw, 48px);
}

.runic-hero {
  position: relative;
  overflow: hidden;
}

.runic-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.86), rgba(233,241,251,0.66));
  pointer-events: none;
}

.runic-hero-ribbon,
.runic-hero-grid,
.runic-overview-band,
.runic-storyline,
.runic-atmosphere,
.runic-features,
.runic-living-edit,
.runic-cta-inner {
  position: relative;
  z-index: 1;
}

.runic-hero-ribbon {
  max-width: 1320px;
  margin: 0 auto 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.runic-hero-ribbon span {
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(43, 80, 128, 0.16);
  color: #2b4d77;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.runic-hero-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
  gap: clamp(28px, 4vw, 48px);
  align-items: center;
}

.runic-hero-copy h1 {
  margin: 0;
  max-width: 11ch;
  font-size: clamp(3.2rem, 6vw, 5.8rem);
  line-height: 0.92;
  letter-spacing: -0.05em;
  color: #122949;
}

.runic-lead {
  max-width: 58ch;
  font-size: 1.2rem;
  color: #314e73;
}

.runic-hero-copy p:not(.eyebrow):not(.runic-lead) {
  max-width: 60ch;
  color: #466483;
}

.runic-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  gap: 18px;
  align-items: end;
}

.runic-hero-mainframe,
.runic-hero-sideframe,
.runic-storyline figure,
.runic-atmosphere-visual,
.runic-living-card-image {
  margin: 0;
  overflow: hidden;
  border-radius: 30px;
  box-shadow: 0 28px 60px rgba(36, 59, 94, 0.16);
}

.runic-hero-mainframe img,
.runic-hero-sideframe img,
.runic-storyline figure img,
.runic-atmosphere-visual img,
.runic-living-card-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.runic-hero-mainframe {
  min-height: 560px;
}

.runic-hero-sideframe {
  min-height: 250px;
}

.runic-hero-note {
  padding: 22px;
  border-radius: 28px;
  background: linear-gradient(180deg, #173862, #254f80);
  color: #f3f8ff;
  box-shadow: 0 24px 48px rgba(26, 50, 82, 0.22);
}

.runic-hero-note strong,
.runic-hero-note span {
  display: block;
}

.runic-hero-note span {
  margin-top: 10px;
  color: rgba(243, 248, 255, 0.82);
}

.runic-overview-band {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: 24px;
}

.runic-overview-panel,
.runic-overview-strips article,
.runic-stop-card,
.runic-feature-panel,
.runic-living-card,
.runic-cta-inner {
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(70, 110, 156, 0.16);
  box-shadow: 0 24px 46px rgba(40, 68, 110, 0.08);
}

.runic-overview-panel {
  padding: clamp(30px, 4vw, 42px);
}

.runic-overview-panel h2,
.runic-storyline-head h2,
.runic-atmosphere-copy h2,
.runic-features-head h2,
.runic-living-card h3,
.runic-cta-inner h2 {
  color: #143052;
}

.runic-overview-strips {
  display: grid;
  gap: 16px;
}

.runic-overview-strips article {
  padding: 22px;
}

.runic-overview-strips small,
.runic-feature-panel small,
.runic-living-card small {
  display: block;
  margin-bottom: 10px;
  color: #53739b;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.76rem;
}

.runic-storyline {
  max-width: 1320px;
  margin: 0 auto;
}

.runic-storyline-head {
  max-width: 760px;
  margin-bottom: 28px;
}

.runic-storyline-flow {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 22px;
}

.runic-stop-card {
  padding: 18px;
  display: grid;
  gap: 18px;
}

.runic-stop-card-wide {
  grid-column: span 2;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
}

.runic-stop-card-reverse {
  grid-template-columns: 1.15fr 0.85fr;
}

.runic-stop-card-reverse figure {
  order: 1;
}

.runic-stop-card-tall figure {
  min-height: 420px;
}

.runic-stop-card-accent {
  align-content: center;
  min-height: 250px;
  background: linear-gradient(145deg, #183659, #264d79);
}

.runic-stop-card-accent .runic-stop-copy,
.runic-stop-card-accent h3,
.runic-stop-card-accent p {
  color: #f5f8fc;
}

.runic-stop-card-accent .runic-stop-index {
  background: rgba(210, 226, 248, 0.22);
  color: #f5f8fc;
}

.runic-stop-copy h3 {
  margin: 0 0 14px;
  color: #143052;
  font-size: clamp(1.6rem, 2.2vw, 2.3rem);
}

.runic-stop-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  margin-bottom: 16px;
  background: rgba(183, 209, 243, 0.34);
  color: #274b79;
  font-weight: 800;
}

.runic-atmosphere {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(320px, 0.94fr) minmax(0, 1.06fr);
  gap: 26px;
  align-items: center;
}

.runic-atmosphere-visual {
  min-height: 540px;
}

.runic-atmosphere-copy {
  padding: clamp(24px, 3vw, 36px);
}

.runic-point-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: grid;
  gap: 12px;
}

.runic-point-list li {
  padding: 15px 18px;
  border-radius: 18px;
  background: rgba(211, 225, 241, 0.4);
  color: #24405f;
}

.runic-features {
  max-width: 1320px;
  margin: 0 auto;
}

.runic-features-head {
  max-width: 820px;
  margin-bottom: 28px;
}

.runic-features-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.runic-feature-panel {
  padding: 28px;
}

.runic-feature-panel-deep {
  background: linear-gradient(160deg, #1b3557, #244a75);
}

.runic-feature-panel-deep h3,
.runic-feature-panel-deep p,
.runic-feature-panel-deep small {
  color: #f5f9ff;
}

.runic-feature-panel-line {
  border-top: 6px solid #87a8cf;
}

.runic-living-edit {
  max-width: 1320px;
  margin: 0 auto;
}

.runic-living-stack {
  display: grid;
  grid-template-columns: 1.12fr 0.88fr;
  gap: 22px;
}

.runic-living-card {
  padding: 30px;
}

.runic-living-card-image {
  padding: 0;
  min-height: 430px;
}

.runic-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.runic-cta-stage {
  position: relative;
}

.runic-cta-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(34px, 4vw, 54px);
  text-align: left;
  background: linear-gradient(160deg, rgba(255,255,255,0.94), rgba(233,240,248,0.92));
}

@media (max-width: 1100px) {
  .runic-hero-grid,
  .runic-overview-band,
  .runic-atmosphere,
  .runic-living-stack {
    grid-template-columns: 1fr;
  }

  .runic-storyline-flow,
  .runic-features-grid {
    grid-template-columns: 1fr;
  }

  .runic-stop-card-wide,
  .runic-stop-card-reverse {
    grid-column: auto;
    grid-template-columns: 1fr;
  }

  .runic-hero-stage {
    grid-template-columns: 1fr;
  }

  .runic-hero-mainframe,
  .runic-atmosphere-visual,
  .runic-living-card-image {
    min-height: 360px;
  }
}

@media (max-width: 720px) {
  .runic-hero,
  .runic-overview-band,
  .runic-storyline,
  .runic-atmosphere,
  .runic-features,
  .runic-living-edit,
  .runic-cta-stage {
    padding-left: 18px;
    padding-right: 18px;
  }

  .runic-hero-copy h1 {
    max-width: 100%;
  }
}


/* reeflight-route-page */
.reeflight-page {
  background:
    radial-gradient(circle at top right, rgba(143, 225, 224, 0.34), transparent 26%),
    linear-gradient(180deg, #f9fefe 0%, #effbfb 36%, #f7fbff 100%);
}

.reeflight-hero,
.reeflight-visual-band,
.reeflight-wave-route,
.reeflight-aesthetic,
.reeflight-onboard,
.reeflight-advantages,
.reeflight-cta-stage {
  padding: clamp(76px, 9vw, 110px) clamp(24px, 4vw, 48px);
}

.reeflight-hero {
  max-width: 1340px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: clamp(28px, 5vw, 56px);
  align-items: center;
}

.reeflight-hero-copy h1 {
  margin: 0;
  max-width: 10ch;
  font-size: clamp(3.1rem, 5.4vw, 5.6rem);
  line-height: 0.94;
  color: #123556;
  letter-spacing: -0.05em;
}

.reeflight-lead {
  max-width: 58ch;
  font-size: 1.18rem;
  color: #286579;
}

.reeflight-hero-copy p:not(.eyebrow):not(.reeflight-lead) {
  max-width: 62ch;
  color: #4b6f7f;
}

.reeflight-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 18px;
  align-items: center;
}

.reeflight-hero-main,
.reeflight-hero-floats figure,
.reeflight-visual-frame,
.reeflight-wave-card figure,
.reeflight-wave-card-image,
.reeflight-onboard-card-image {
  margin: 0;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 24px 52px rgba(40, 126, 140, 0.12);
}

.reeflight-hero-main {
  min-height: 560px;
}

.reeflight-hero-main img,
.reeflight-hero-floats img,
.reeflight-visual-frame img,
.reeflight-wave-card img,
.reeflight-wave-card-image img,
.reeflight-onboard-card-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.reeflight-hero-floats {
  display: grid;
  gap: 16px;
}

.reeflight-hero-floats figure {
  min-height: 240px;
}

.reeflight-hero-chip {
  padding: 22px;
  border-radius: 28px;
  background: linear-gradient(150deg, #0f6c84, #39b6ba);
  color: #f7ffff;
}

.reeflight-hero-chip strong,
.reeflight-hero-chip span {
  display: block;
}

.reeflight-hero-chip span {
  margin-top: 10px;
  color: rgba(247, 255, 255, 0.86);
}

.reeflight-visual-band {
  max-width: 1340px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr minmax(320px, 0.8fr);
  gap: 24px;
  align-items: center;
}

.reeflight-visual-copy,
.reeflight-wave-card,
.reeflight-aesthetic-cards article,
.reeflight-onboard-card,
.reeflight-advantages-copy,
.reeflight-advantages-panels article,
.reeflight-cta-inner {
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(63, 159, 170, 0.16);
  box-shadow: 0 24px 46px rgba(56, 130, 137, 0.08);
}

.reeflight-visual-copy,
.reeflight-onboard-card,
.reeflight-advantages-copy,
.reeflight-cta-inner {
  padding: clamp(28px, 4vw, 42px);
}

.reeflight-visual-frame {
  min-height: 420px;
}

.reeflight-wave-route,
.reeflight-aesthetic,
.reeflight-onboard,
.reeflight-advantages {
  max-width: 1340px;
  margin: 0 auto;
}

.reeflight-wave-head,
.reeflight-aesthetic-head,
.reeflight-advantages-copy {
  max-width: 820px;
}

.reeflight-wave-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 20px;
}

.reeflight-wave-card {
  padding: 22px;
}

.reeflight-wave-card-large {
  grid-row: span 2;
}

.reeflight-wave-card-large figure {
  min-height: 320px;
  margin-bottom: 18px;
}

.reeflight-wave-card-image {
  padding: 0;
  min-height: 250px;
  display: flex;
}

.reeflight-wave-card-image img {
  flex: 1 1 auto;
  min-height: 100%;
}

.reeflight-wave-card-accent {
  background: linear-gradient(155deg, #107088, #67d3cb);
}

.reeflight-wave-card-accent h3,
.reeflight-wave-card-accent p,
.reeflight-wave-card-accent small {
  color: #f7ffff;
}

.reeflight-wave-card small,
.reeflight-aesthetic-cards article small,
.reeflight-onboard-card small,
.reeflight-advantages-panels article strong {
  display: block;
  margin-bottom: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.76rem;
}

.reeflight-wave-card h3,
.reeflight-aesthetic-cards article h3,
.reeflight-onboard-card h3,
.reeflight-visual-copy h2,
.reeflight-onboard-card-primary h2,
.reeflight-advantages-copy h2,
.reeflight-cta-inner h2 {
  color: #133553;
}

.reeflight-wave-card p,
.reeflight-aesthetic-cards article p,
.reeflight-onboard-card p,
.reeflight-visual-copy p,
.reeflight-advantages-copy p,
.reeflight-advantages-panels article span,
.reeflight-aesthetic-cards article small,
.reeflight-wave-card small,
.reeflight-onboard-card small {
  color: #4b6f7f;
}

.reeflight-wave-card-accent .eyebrow,
.reeflight-wave-card-accent p,
.reeflight-wave-card-accent h3,
.reeflight-wave-card-accent small {
  color: #f7ffff;
}

.reeflight-aesthetic-cards {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.reeflight-aesthetic-cards article,
.reeflight-advantages-panels article {
  padding: 26px;
}

.reeflight-onboard-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 20px;
}

.reeflight-onboard-card-image {
  padding: 0;
  min-height: 420px;
  display: flex;
}

.reeflight-onboard-card-image img {
  flex: 1 1 auto;
  min-height: 100%;
}

.reeflight-onboard-card-primary {
  background: linear-gradient(160deg, rgba(255,255,255,0.97), rgba(224,247,246,0.82));
}

.reeflight-advantages {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 22px;
  align-items: start;
}

.reeflight-advantages-panels {
  display: grid;
  gap: 16px;
}

.reeflight-advantages-panels article strong {
  color: #0f677c;
}

.reeflight-cta-inner {
  max-width: 1200px;
  margin: 0 auto;
  background: linear-gradient(160deg, rgba(255,255,255,0.96), rgba(227,250,248,0.88));
}

@media (max-width: 1100px) {
  .reeflight-hero,
  .reeflight-visual-band,
  .reeflight-onboard,
  .reeflight-advantages {
    grid-template-columns: 1fr;
  }

  .reeflight-hero-stage,
  .reeflight-wave-grid,
  .reeflight-onboard-grid,
  .reeflight-aesthetic-cards {
    grid-template-columns: 1fr;
  }

  .reeflight-wave-card-large {
    grid-row: auto;
  }

  .reeflight-hero-main,
  .reeflight-visual-frame,
  .reeflight-onboard-card-image {
    min-height: 360px;
  }
}

@media (max-width: 720px) {
  .reeflight-hero,
  .reeflight-visual-band,
  .reeflight-wave-route,
  .reeflight-aesthetic,
  .reeflight-onboard,
  .reeflight-advantages,
  .reeflight-cta-stage {
    padding-left: 18px;
    padding-right: 18px;
  }
}


/* lanternroyal-route-page */
.lanternroyal-page {
  background:
    radial-gradient(circle at top left, rgba(232, 187, 112, 0.18), transparent 20%),
    linear-gradient(180deg, #111a2b 0%, #19243b 23%, #f6efe8 23%, #faf5ee 100%);
}

.lanternroyal-hero,
.lanternroyal-atmosphere,
.lanternroyal-route,
.lanternroyal-evening-life,
.lanternroyal-onboard,
.lanternroyal-advantages,
.lanternroyal-cta-stage {
  padding: clamp(76px, 9vw, 110px) clamp(24px, 4vw, 48px);
}

.lanternroyal-hero {
  max-width: 1360px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(380px, 1.08fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: center;
}

.lanternroyal-hero-copy .eyebrow,
.lanternroyal-hero-copy h1,
.lanternroyal-hero-copy p,
.lanternroyal-atmosphere-panel h2,
.lanternroyal-atmosphere-panel p,
.lanternroyal-atmosphere-strip article,
.lanternroyal-route-head h2,
.lanternroyal-route-head p {
  color: #f6efe4;
}

.lanternroyal-hero-copy h1 {
  margin: 0;
  max-width: 10.5ch;
  font-size: clamp(3.15rem, 5.7vw, 5.9rem);
  line-height: 0.93;
  letter-spacing: -0.05em;
}

.lanternroyal-lead {
  max-width: 56ch;
  font-size: 1.18rem;
  color: rgba(246, 239, 228, 0.86) !important;
}

.lanternroyal-hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 18px;
}

.lanternroyal-hero-main,
.lanternroyal-hero-column figure,
.lanternroyal-spotlight figure,
.lanternroyal-evening-media,
.lanternroyal-onboard-card-image {
  margin: 0;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 28px 52px rgba(10, 12, 22, 0.34);
}

.lanternroyal-hero-main {
  min-height: 560px;
}

.lanternroyal-hero-main img,
.lanternroyal-hero-column img,
.lanternroyal-spotlight img,
.lanternroyal-evening-media img,
.lanternroyal-onboard-card-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.lanternroyal-hero-column {
  display: grid;
  gap: 16px;
}

.lanternroyal-hero-column figure {
  min-height: 240px;
}

.lanternroyal-hero-note {
  padding: 22px;
  border-radius: 28px;
  background: linear-gradient(155deg, #7c5120, #dba257);
  color: #fff9f1;
}

.lanternroyal-hero-note strong,
.lanternroyal-hero-note span {
  display: block;
}

.lanternroyal-hero-note span {
  margin-top: 10px;
  color: rgba(255, 249, 241, 0.86);
}

.lanternroyal-atmosphere,
.lanternroyal-route {
  max-width: 1360px;
  margin: 0 auto;
}

.lanternroyal-atmosphere {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 22px;
}

.lanternroyal-atmosphere-panel,
.lanternroyal-atmosphere-strip article,
.lanternroyal-spotlight,
.lanternroyal-onboard-card,
.lanternroyal-advantages-grid article,
.lanternroyal-cta-inner {
  border-radius: 30px;
  border: 1px solid rgba(184, 134, 83, 0.18);
  box-shadow: 0 24px 46px rgba(23, 22, 34, 0.1);
}

.lanternroyal-atmosphere-panel {
  padding: clamp(30px, 4vw, 42px);
  background: rgba(20, 28, 46, 0.78);
}

.lanternroyal-atmosphere-strip {
  display: grid;
  gap: 16px;
}

.lanternroyal-atmosphere-strip article {
  padding: 22px;
  background: rgba(22, 31, 49, 0.72);
  color: #f6efe4;
}

.lanternroyal-atmosphere-strip small,
.lanternroyal-spotlight-copy span,
.lanternroyal-onboard-card small {
  display: block;
  margin-bottom: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.76rem;
  color: #d0a15d;
}

.lanternroyal-route-head {
  max-width: 760px;
  margin-bottom: 28px;
}

.lanternroyal-route-flow {
  display: grid;
  gap: 20px;
}

.lanternroyal-spotlight {
  padding: 18px;
  display: grid;
  align-items: center;
  gap: 18px;
  background: rgba(255, 251, 246, 0.92);
}

.lanternroyal-spotlight-left,
.lanternroyal-spotlight-right {
  grid-template-columns: 0.96fr 1.04fr;
}

.lanternroyal-spotlight-right {
  grid-template-columns: 1.04fr 0.96fr;
}

.lanternroyal-spotlight-center {
  padding: 32px;
  background: linear-gradient(145deg, #f4e6d7, #fff9f3);
}

.lanternroyal-spotlight figure {
  min-height: 320px;
}

.lanternroyal-spotlight-copy h3,
.lanternroyal-evening-copy h2,
.lanternroyal-onboard-card h2,
.lanternroyal-onboard-card h3,
.lanternroyal-advantages-head h2,
.lanternroyal-cta-inner h2 {
  color: #17253f;
}

.lanternroyal-evening-life,
.lanternroyal-onboard,
.lanternroyal-advantages {
  max-width: 1360px;
  margin: 0 auto;
}

.lanternroyal-evening-life {
  display: grid;
  grid-template-columns: minmax(340px, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}

.lanternroyal-evening-media {
  min-height: 520px;
}

.lanternroyal-evening-copy {
  padding: clamp(28px, 4vw, 40px);
  border-radius: 32px;
  background: linear-gradient(160deg, rgba(255,251,245,0.95), rgba(248,233,214,0.94));
  border: 1px solid rgba(203, 152, 94, 0.18);
}

.lanternroyal-evening-points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

.lanternroyal-evening-points span {
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255, 238, 214, 0.86);
  color: #724818;
  font-size: 0.92rem;
}

.lanternroyal-onboard-grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 20px;
}

.lanternroyal-onboard-card {
  padding: 28px;
  background: rgba(255, 251, 246, 0.96);
}

.lanternroyal-onboard-card-accent {
  background: linear-gradient(155deg, #fff5ea, #f3e0c4);
}

.lanternroyal-onboard-card-image {
  padding: 0;
  min-height: 420px;
}

.lanternroyal-advantages-head {
  max-width: 780px;
  margin-bottom: 28px;
}

.lanternroyal-advantages-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.lanternroyal-advantages-grid article {
  padding: 26px;
  background: linear-gradient(160deg, rgba(255,251,246,0.98), rgba(248,236,219,0.92));
}

.lanternroyal-advantages-grid strong {
  display: block;
  margin-bottom: 12px;
  color: #8a5720;
}

.lanternroyal-cta-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(34px, 4vw, 54px);
  background: linear-gradient(160deg, rgba(255,251,246,0.98), rgba(244,227,205,0.95));
}

@media (max-width: 1100px) {
  .lanternroyal-hero,
  .lanternroyal-atmosphere,
  .lanternroyal-evening-life,
  .lanternroyal-onboard-grid,
  .lanternroyal-advantages-grid {
    grid-template-columns: 1fr;
  }

  .lanternroyal-hero-stage,
  .lanternroyal-spotlight-left,
  .lanternroyal-spotlight-right {
    grid-template-columns: 1fr;
  }

  .lanternroyal-hero-main,
  .lanternroyal-evening-media,
  .lanternroyal-onboard-card-image {
    min-height: 360px;
  }
}

@media (max-width: 720px) {
  .lanternroyal-hero,
  .lanternroyal-atmosphere,
  .lanternroyal-route,
  .lanternroyal-evening-life,
  .lanternroyal-onboard,
  .lanternroyal-advantages,
  .lanternroyal-cta-stage {
    padding-left: 18px;
    padding-right: 18px;
  }
}


.lanternroyal-route-head .eyebrow {
  color: #a66a2d;
}

.lanternroyal-route-head h2,
.lanternroyal-route-head p {
  color: #17253f;
}


/* concierge-form-stage */
.concierge-form-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(280px, 0.82fr);
  gap: 32px;
  margin-top: 34px;
}

.concierge-form-shell,
.concierge-side-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.concierge-form-shell {
  padding: 34px;
}

.concierge-form-heading h3 {
  margin: 0;
  font-size: clamp(1.9rem, 2.8vw, 2.7rem);
  line-height: 1.08;
  color: var(--ink-strong);
}

.concierge-form-heading p:last-child {
  margin: 16px 0 0;
  color: var(--ink-soft);
  line-height: 1.78;
}

.concierge-form-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.concierge-form-grid label {
  display: grid;
  gap: 10px;
}

.concierge-form-grid label > span {
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.concierge-form-grid input,
.concierge-form-grid select,
.concierge-form-grid textarea {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f9fd 100%);
  color: var(--ink-strong);
  font: inherit;
  padding: 15px 16px;
  outline: none;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.concierge-form-grid input:focus,
.concierge-form-grid select:focus,
.concierge-form-grid textarea:focus {
  border-color: rgba(31, 111, 210, 0.52);
  box-shadow: 0 0 0 4px rgba(31, 111, 210, 0.1);
  background: #ffffff;
}

.concierge-form-grid textarea {
  min-height: 160px;
  resize: vertical;
}

.concierge-form-full {
  grid-column: 1 / -1;
}

.concierge-check {
  display: flex !important;
  align-items: flex-start;
  gap: 12px;
  padding: 2px 2px 0;
}

.concierge-check input {
  width: 18px;
  height: 18px;
  margin-top: 4px;
  flex: 0 0 auto;
}

.concierge-check span {
  font-size: 0.95rem !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: var(--ink-soft) !important;
  line-height: 1.65;
}

.concierge-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.concierge-form-actions p {
  margin: 0;
  max-width: 420px;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.7;
}

.concierge-form-feedback {
  margin: 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: linear-gradient(180deg, #eef7ff 0%, #f7fbff 100%);
  border: 1px solid rgba(31, 111, 210, 0.18);
  color: var(--accent-strong);
  font-weight: 600;
}

.concierge-side-panel {
  display: grid;
  gap: 18px;
}

.concierge-side-card {
  padding: 26px;
}

.concierge-side-card small {
  display: block;
  margin-bottom: 12px;
  color: var(--ink-soft);
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.concierge-side-card strong,
.concierge-side-card span,
.concierge-side-card li {
  color: var(--ink-strong);
}

.concierge-side-card-primary {
  background: linear-gradient(160deg, rgba(238,245,255,0.96), rgba(255,255,255,0.98));
}

.concierge-side-card ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
}

.concierge-side-card-compact {
  background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

.concierge-side-card-compact span {
  display: block;
  margin-top: 10px;
  line-height: 1.7;
  color: var(--ink-soft);
}

@media (max-width: 1120px) {
  .concierge-form-stage {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .concierge-form-shell {
    padding: 24px;
  }

  .concierge-form-grid {
    grid-template-columns: 1fr;
  }

  .concierge-form-actions {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* policy-manuscript-pages */
.policy-manuscript-page {
  background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

.policy-manuscript-wrap {
  width: min(980px, calc(100vw - 40px));
  margin: 0 auto;
  padding: 72px 0 96px;
}

.policy-manuscript {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 32px;
  box-shadow: var(--shadow);
  padding: clamp(28px, 4vw, 52px);
}

.policy-manuscript .eyebrow {
  margin-bottom: 18px;
}

.policy-manuscript h1 {
  margin: 0;
  font-size: clamp(2.7rem, 5vw, 4.5rem);
  line-height: 0.96;
  letter-spacing: -0.04em;
  color: var(--ink-strong);
}

.policy-manuscript .policy-updated {
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 0.96rem;
}

.policy-manuscript .policy-intro {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.policy-manuscript h2 {
  margin: 34px 0 0;
  font-size: clamp(1.55rem, 2.4vw, 2rem);
  line-height: 1.12;
  color: var(--ink-strong);
}

.policy-manuscript p,
.policy-manuscript li {
  margin: 16px 0 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.86;
}

.policy-manuscript ul {
  margin: 16px 0 0;
  padding-left: 22px;
}

.policy-manuscript a {
  color: var(--accent-strong);
}

@media (max-width: 760px) {
  .policy-manuscript-wrap {
    width: min(980px, calc(100vw - 24px));
    padding: 42px 0 72px;
  }

  .policy-manuscript {
    border-radius: 24px;
    padding: 22px 18px 28px;
  }
}


/* cookie-banner */
.cookie-banner-shell {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 120;
  width: min(520px, calc(100vw - 24px));
}

.cookie-banner-shell[hidden] {
  display: none !important;
}

.cookie-banner-card {
  display: grid;
  gap: 22px;
  padding: 24px 24px 22px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(205, 216, 228, 0.95);
  border-radius: 28px;
  box-shadow: 0 22px 55px rgba(18, 40, 69, 0.16);
}

.cookie-banner-copy h2 {
  margin: 0;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  line-height: 1.08;
  color: var(--ink-strong);
}

.cookie-banner-copy p:last-child {
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.75;
}

.cookie-banner-copy a {
  color: var(--accent-strong);
  font-weight: 700;
}

.cookie-banner-actions {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}

.cookie-banner-actions .button-primary,
.cookie-banner-actions .button-ghost {
  min-width: 152px;
  justify-content: center;
}

@media (max-width: 760px) {
  .cookie-banner-shell {
    right: 12px;
    left: 12px;
    bottom: 12px;
    width: auto;
  }

  .cookie-banner-card {
    padding: 18px 18px 16px;
    border-radius: 22px;
  }

  .cookie-banner-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .cookie-banner-actions .button-primary,
  .cookie-banner-actions .button-ghost {
    width: 100%;
  }
}
