/* ---- base.css ---- */
/* ==========================================================================
   Base: tokens, reset, fluid scale, grid, typography, buttons
   Measurements follow the reference site (em-based system on a viewport-
   scaled body font-size). Written from measured values, not copied source.
   ========================================================================== */

:root {
  /* colour */
  --white: #fff; --black: #000; --black-faded: rgba(0,0,0,.5);
  --dark-bg: #090b10;
  --c-dark-blue: #1f2a44; --c-deep-blue: #0e1118; --c-grey: #323640;
  --c-dark-blue-faded: rgba(31,42,68,.2); --c-blue-faded: rgba(31,42,68,.5);
  --c-ash-blue: #2c374b; --c-orange: #ff7e15; --c-red: #ff1515;
  --c-light-charcoal: #535353; --c-light-charcoal-faded: #a4a29c;
  --c-mushroom: #e9e7e1; --c-light-grey: #f3f1ec; --c-beige: #dcd8cc; --c-turquoise: #6af0ff;
  --bg: #fff; --text: var(--c-dark-blue);

  /* spacing (em) */
  --space-1: .35em; --space-2: .75em; --space-3: 1.1em; --space-4: 1.5em; --space-5: 2em;
  --space-6: 2.75em; --space-8: 4em; --space-10: 5.5em; --space-12: 7em;

  /* size scale (em on desktop, rem on mobile — see bottom) */
  --s-03125: .3125em; --s-0375: .375em; --s-05: .5em; --s-0625: .625em; --s-075: .75em;
  --s-0875: .875em; --s-1: 1em; --s-1125: 1.125em; --s-125: 1.25em; --s-1375: 1.375em;
  --s-15: 1.5em; --s-1625: 1.625em; --s-175: 1.75em; --s-1875: 1.875em; --s-2: 2em;
  --s-225: 2.25em; --s-25: 2.5em; --s-2625: 2.625em; --s-3: 3em; --s-3125: 3.125em;
  --s-325: 3.25em; --s-375: 3.75em; --s-425: 4.25em; --s-475: 4.75em; --s-5: 5em;
  --s-5625: 5.625em; --s-6: 6em; --s-625: 6.25em; --s-6875: 6.875em; --s-7375: 7.375em;
  --s-75: 7.5em; --s-78125: 7.8125em; --s-875: 8.75em; --s-10: 10em; --s-125x: 12.5em;
  --s-155: 15.5em; --s-16: 16em; --s-20: 20em; --s-24: 24em;

  --container-pad: var(--s-125);
  --grid-columns: 12; --gutter-x: var(--space-2); --gutter-y: var(--space-4);

  --r-0125: .125em; --r-sm: .25em; --r-hover: .275em; --r-0375: .375em; --r-0625: .625em;
  --r-md: .5em; --r-lg: 2.5em;

  /* type */
  --font-sans: "Inter Tight", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Display Serif", ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  --font-condensed: "Oswald", "Arial Narrow", Arial, sans-serif;
  /* stand-in calibration (see fonts.css) */
  --display-w: 500;        /* reference roman 400 */
  --display-w-med: 600;    /* reference roman 500 */
  --display-it: 500;       /* reference italic 400/500 */
  --display-track: .045em; /* uppercase roman width match */

  --lh-90: .9; --lh-100: 1; --lh-110: 1.1; --lh-120: 1.2; --lh-130: 1.3; --lh-140: 1.4; --lh-150: 1.5;

  /* motion */
  --ease-out: cubic-bezier(.5,1,.89,1);
  --ease-wd: cubic-bezier(.76,0,.24,1);
  --tr-out: all .3s var(--ease-out);
  --tr-in-out: all .3s ease-in-out;
  --tr-wd: all .45s var(--ease-wd);

  --dash-blue: repeating-linear-gradient(90deg, rgba(44,55,75,.4) 0, rgba(44,55,75,.4) 2px, transparent 2px, transparent 4px);
  --dash-white: repeating-linear-gradient(90deg, rgba(255,255,255,.4) 0, rgba(255,255,255,.4) 2px, transparent 2px, transparent 4px);
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; scrollbar-width: none; }
::-webkit-scrollbar { display: none; }
html, body { max-width: 100vw; overflow: clip; }
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
body {
  font-size: 1.11111vw;
  background: var(--bg); color: var(--text); font-family: var(--font-sans);
  font-variant-numeric: lining-nums; /* the display stand-in defaults to old-style figures */
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
@media screen and (min-width: 1560px) { body { font-size: 17.3333px; } }
@media screen and (max-width: 768px) { body { font-size: 16px; } }
@media (hover: none) and (pointer: coarse) { html, body { touch-action: pan-x pan-y; } }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font: inherit; font-size: 1em; color: inherit; }
img, video, svg { display: block; }
::selection { color: var(--white); background: var(--c-orange); }
* { -webkit-tap-highlight-color: transparent; }
html.is-transitioning, html.is-transitioning body { touch-action: none !important; pointer-events: none !important; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- page transitions (cross-document View Transitions) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .8s cubic-bezier(.25,1,.5,1) forwards page-exit; }
::view-transition-new(root) { animation: .8s var(--ease-wd) forwards page-enter; }
@keyframes page-exit { from { filter: brightness(1); } to { filter: brightness(.25); } }
@keyframes page-enter {
  from { clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%); }
  to { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
}
[data-reveal] { animation: 1.4s both reveal-opacity, 1.4s cubic-bezier(.16,1,.3,1) both reveal-transform; }
[data-reveal="opacity"] { animation: 1.4s both reveal-opacity; }
@keyframes reveal-opacity { from { opacity: 0; } to { opacity: 1; } }
@keyframes reveal-transform { from { transform: translateY(20rem); } to { transform: translateY(0); } }
@keyframes fadeIn { to { opacity: 1; } }

/* ---------- layout primitives ---------- */
.container { width: 100%; padding-inline: var(--container-pad); margin-inline: auto; }
.container-small { width: 100%; max-width: calc(100% - var(--s-375) * 2); margin-inline: auto; }
.container-large { width: 100%; max-width: calc(100% - 1.5em); margin-inline: auto; }
.container-legal { min-height: 100svh; }
.u-grid {
  display: grid; width: 100%;
  grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr));
  column-gap: var(--gutter-x); row-gap: var(--gutter-y);
}
.u-grid.no-gap { column-gap: 0; }
.col-1 { grid-column-end: span 1; } .col-2 { grid-column-end: span 2; } .col-3 { grid-column-end: span 3; }
.col-4 { grid-column-end: span 4; } .col-5 { grid-column-end: span 5; } .col-6 { grid-column-end: span 6; }
.col-7 { grid-column-end: span 7; } .col-8 { grid-column-end: span 8; } .col-9 { grid-column-end: span 9; }
.col-10 { grid-column-end: span 10; } .col-11 { grid-column-end: span 11; } .col-12 { grid-column-end: span 12; }
.offset-1 { grid-column-start: 2; } .offset-2 { grid-column-start: 3; } .offset-3 { grid-column-start: 4; }
.offset-4 { grid-column-start: 5; } .offset-5 { grid-column-start: 6; } .offset-6 { grid-column-start: 7; }
.offset-7 { grid-column-start: 8; } .offset-8 { grid-column-start: 9; } .offset-9 { grid-column-start: 10; }
.offset-10 { grid-column-start: 11; } .offset-11 { grid-column-start: 12; }
.text-indent-4col { text-indent: calc(100% / var(--grid-columns) * 4); }
.text-indent-2col { text-indent: calc(100% / var(--grid-columns) * 2); }
.u-relative { position: relative; } .u-white { color: var(--white); }
.above-grid { position: relative; z-index: 3; }
.above-footer { position: relative; z-index: 1; }
.img-fill { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; }
.section-full { position: relative; display: flex; align-items: center; width: 100%; height: 100svh; overflow: hidden; }

.v-flex { display: flex; flex-flow: column; row-gap: var(--s-125); }
.v-flex_left-lg { display: flex; flex-flow: column; align-items: flex-start; row-gap: var(--s-3); }
.v-flex_left-med { display: flex; flex-flow: column; align-items: flex-start; row-gap: var(--space-5); }
.v-flex_left-small { position: relative; display: flex; flex-flow: column; align-items: flex-start; row-gap: var(--s-125); }
.v-flex_left-xs { display: flex; flex-flow: column; align-items: flex-start; row-gap: var(--space-2); }
.v-flex_center { display: flex; flex-flow: column; align-items: center; row-gap: var(--s-1875); }
.v-flex_center-xs { display: flex; flex-flow: column; align-items: center; row-gap: var(--space-2); }
.v-flex_center-med { display: flex; flex-flow: column; align-items: center; row-gap: var(--space-5); }
.inline-btns { display: flex; align-items: flex-start; justify-content: flex-start; gap: var(--s-1); }

section { position: relative; margin: 0 auto; }
section.padding-large { padding-block: var(--s-20); }
section.padding-large_med { padding-block: var(--s-155); }
section.padding-large_alt { padding-block: var(--s-125x); }
section.padding-medium { padding-block: var(--s-7375); }
section.padding-medium_bot-large { padding-top: var(--s-7375); padding-bottom: var(--s-20); }
section.padding-medium_bot-none { padding-top: var(--s-7375); padding-bottom: 0; }
section.padding-standard { padding-block: var(--s-10); }
section.padding-title { padding-top: var(--s-20); padding-bottom: var(--s-75); }
section.padding-top-large-bottom-medium { padding-top: var(--s-20); padding-bottom: var(--s-10); }
section.padding-top-large-bottom-none { padding-top: var(--s-20); padding-bottom: 0; }
section.padding-top-none-bottom-large { padding-top: 0; padding-bottom: var(--s-20); }
section.padding-top-none-bottom-large_alt { padding-top: 0; padding-bottom: var(--s-125x); }
section.padding-top-none-bottom-standard { padding-top: 0; padding-bottom: var(--s-10); }
section.padding-small { padding-block: var(--s-375); }
section.padding-none { padding-block: 0; }
section.bg-white { background-color: var(--white); }
section.bg-deep-blue { background-color: var(--c-deep-blue); color: #fff; }
section.bg-mushroom { background-color: var(--c-mushroom); }
section.bg-dark-blue { background-color: var(--c-dark-blue); color: #fff; }
section.bg-light-grey { background-color: var(--c-light-grey); }
section.bg-lighter-grey { background-color: #f2f2f2; }
section.bg-dark { background-color: var(--dark-bg); color: #fff; }
section.is-rel { z-index: 1; }
section.has-inset-effect { z-index: 2; }
@media (min-width: 769px) { section.has-inset-effect { clip-path: inset(0 1.25rem round .375rem); } }

.dashed-divider_blue { width: 100%; height: .5px; background-image: var(--dash-blue); }
.dashed-divider_white { width: 100%; height: .5px; background-image: var(--dash-white); }
.h-line_el { position: relative; width: 100%; height: .5px; margin-bottom: var(--s-0625); border-top: .5px dashed var(--c-dark-blue); opacity: .5; }
.h-line_el::before, .h-line_el::after { content: ""; position: absolute; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: var(--c-dark-blue); transform: translateY(-50%); }
.h-line_el::before { left: 0; } .h-line_el::after { right: 0; }

/* ---------- typography ---------- */
.t-detail-xs { font: 500 var(--s-0625)/var(--lh-120) var(--font-sans); }
.t-detail-sm { font: var(--display-w-med) var(--s-0875)/var(--lh-100) var(--font-display); }
.t-body { font: 500 var(--s-0875)/var(--lh-150) var(--font-sans); }
.t-body_sm { font: 500 var(--s-075)/var(--lh-120) var(--font-sans); }
.t-body-lg { font: 500 var(--s-1125)/var(--lh-140) var(--font-sans); }
.t-body-reg { font: 500 var(--s-1)/var(--lh-140) var(--font-sans); }
.quote-author { font: 600 var(--s-0875)/var(--lh-140) var(--font-sans); letter-spacing: .175em; text-transform: uppercase; }
.t-body_quote { font: italic var(--display-it) var(--s-1625)/var(--lh-120) var(--font-display); text-wrap: pretty; }
.t-body-md { font: italic var(--display-it) var(--s-15)/var(--lh-120) var(--font-display); }
.t-title-italic { font: italic var(--display-it) var(--s-1125)/var(--lh-120) var(--font-display); }
.t-body_italic { font: italic var(--display-it) var(--s-1375)/var(--lh-120) var(--font-display); }
.t-italic_large { font: italic var(--display-it) var(--s-2)/var(--lh-120) var(--font-display); }
.t-title-panel { font: var(--display-w) var(--s-175)/var(--lh-100) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); text-align: center; }
.h4 { font: 500 var(--s-15)/var(--lh-120) var(--font-sans); }
.t-modal-header { font: var(--display-w-med) var(--s-2)/var(--lh-120) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); }
.t-subtitle-page { font: italic var(--display-it) var(--s-225)/var(--lh-110) var(--font-display); text-align: center; text-wrap: balance; }
.t-quote-indicator { font: italic var(--display-it) var(--s-2625)/var(--lh-120) var(--font-display); color: var(--c-dark-blue); }
.h3 { font: var(--display-w) var(--s-2625)/var(--lh-100) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); }
.h2 { font: var(--display-w) var(--s-375)/var(--lh-100) var(--font-display); }
.h1-sm { font: italic var(--display-it) var(--s-425)/var(--lh-100) var(--font-display); }
.h1 { font: var(--display-w) var(--s-7375)/var(--lh-100) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); }
.section-title { font: var(--display-w) var(--s-375)/var(--lh-100) var(--font-display); text-align: center; text-transform: uppercase; letter-spacing: var(--display-track); }
.section-title-lg { font: var(--display-w) var(--s-875)/var(--lh-100) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); }
.section-title-xxl { font: 400 var(--s-20)/var(--lh-90) var(--font-condensed); text-transform: uppercase; }
.layout-title, h4, .accordion-title { font: 500 var(--s-1125)/var(--lh-120) var(--font-condensed); text-transform: uppercase; }
.layout-title_md { font-family: var(--font-condensed); font-size: var(--s-1); line-height: var(--lh-120); text-transform: uppercase; }
.layout-title_sm { font-family: var(--font-condensed); font-size: var(--s-0875); line-height: var(--lh-120); }
.quote-mark { font-family: var(--font-display); font-size: var(--s-225); line-height: 0; }
.quote-mark_xl { font-family: var(--font-display); font-size: var(--s-325); line-height: 0; margin-bottom: var(--s-125); }
.text-brand { color: var(--text); }
a.rich-btn { color: var(--c-orange); text-decoration: underline; }
/* utilities come after the type scale so they win (same order as the reference) */
.is-sans { font-family: var(--font-sans); letter-spacing: 0; } .lh-150 { line-height: var(--lh-150); }
.is-std_case { text-transform: none; } .is-italic { font-style: italic; }
.is-faded { opacity: .5; } .is-faded_2 { opacity: .2; }
.t-left { text-align: left; } .t-balance { text-wrap: balance; } .underlined { text-decoration: underline; }

/* ---------- icons ---------- */
.icon { display: inline-block; vertical-align: middle; }
.icon svg { width: 100%; height: 100%; }

/* ---------- liquid glass (nav + tab pills) ---------- */
.liquid-glass__svg { position: absolute; width: 0; height: 0; pointer-events: none; }
.liquid-glass__filter { position: absolute; inset: 0; z-index: 0; border-radius: inherit; pointer-events: none; isolation: isolate; backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.liquid-glass__overlay { position: absolute; inset: 0; z-index: 1; border-radius: inherit; pointer-events: none; }
.liquid-glass__specular {
  --glass-scale: .35; --glass-highlight: rgba(255,255,255,.2);
  position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none; overflow: hidden;
  box-shadow: inset calc(1px * var(--glass-scale)) calc(1px * var(--glass-scale)) 0 var(--glass-highlight), inset 0 0 calc(5px * var(--glass-scale)) var(--glass-highlight);
  transition: var(--tr-out);
}
.liquid-glass_wrap { position: relative; border-radius: .125rem; overflow: clip; transition: var(--tr-out); }
@media (hover: hover) and (pointer: fine) { .liquid-glass_wrap:hover { border-radius: var(--r-hover); } }

/* ---------- buttons ---------- */
.btn {
  --btn-border: .03125rem solid rgba(255,255,255,.2);
  display: flex; align-items: center; justify-content: center; gap: var(--space-3);
  cursor: pointer; transition: var(--tr-out); background: none; border: 0; color: inherit; text-align: center;
}
.btn-inner { position: relative; display: flex; align-items: center; }
.btn-text { font: 500 var(--s-0875)/var(--lh-150) var(--font-sans); white-space: nowrap; transition: var(--tr-out); }
.btn-icon { position: relative; width: var(--s-0875); }
.btn-icon svg { width: 100%; height: 100%; }
.btn-default, .btn-active, .btn-orange, .btn-tab, .btn-tab-active, .btn-cta, .btn-standard {
  width: var(--s-75); min-height: var(--s-25); padding-inline: var(--s-1); border: var(--btn-border);
}
.btn-default .btn-icon, .btn-cta .btn-icon, .btn-standard .btn-icon,
.btn-medium .btn-icon, .btn-large .btn-icon {
  position: absolute; left: 100%; display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: scale(0); transition: var(--tr-out);
}
.btn-default { position: relative; overflow: hidden; border-radius: var(--r-0125); color: var(--white); background: none; }
.btn-default .btn-text { position: relative; z-index: 1; }
.btn-inline { position: relative; overflow: hidden; min-height: var(--s-25); padding-inline: var(--s-1375); border-radius: var(--r-0125); color: var(--c-dark-blue); background: rgba(31,42,68,.05); }
.btn-inline .btn-text { position: relative; z-index: 1; }
.btn-active { border-radius: var(--r-hover); background: var(--white); border-color: var(--white); color: var(--c-orange); }
.btn-orange { border-radius: var(--r-hover); background: var(--c-orange); border-color: var(--c-orange); color: var(--white); }
.btn-tab { border-radius: .125rem; color: var(--white); background: none; }
.btn-tab-active { border-radius: .275rem; background: var(--c-orange); border-color: var(--c-orange); color: var(--white); }
.btn-cta { position: relative; z-index: 1; overflow: hidden; border-radius: var(--r-0125); color: var(--white); background: none; }
.btn-standard { position: relative; z-index: 1; overflow: hidden; width: var(--s-10); height: var(--s-3125); border-radius: var(--r-0125); color: currentColor; background: none; }
.btn-medium { position: relative; overflow: hidden; width: 100%; min-height: var(--s-325); border-radius: var(--r-0125); background: var(--c-light-grey); color: var(--c-dark-blue); border: var(--btn-border); }
.btn-medium.btn-orange { background: var(--c-orange); color: var(--white); }
.btn-large { position: relative; overflow: hidden; width: 100%; min-height: var(--s-6875); border-radius: var(--r-0125); background: var(--c-light-grey); color: var(--c-dark-blue); border: var(--btn-border); }
.btn-image-hover {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: calc(100% - var(--s-375) + 12px); min-height: var(--space-6); padding: var(--space-1) var(--space-5);
  color: var(--white); background: none; border: var(--btn-border); border-inline: 0; border-radius: 0;
  cursor: pointer; transition: var(--tr-out);
}
.btn-image-hover .btn-preview-image {
  position: absolute; top: 50%; left: 0; width: 100%; aspect-ratio: 11.625 / 13.125; overflow: clip;
  border-radius: var(--r-hover); opacity: 0; clip-path: inset(50% 0%); transform: translateY(-50%);
  pointer-events: none; transition: var(--tr-out);
}
.btn-image-hover .btn-preview-image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.05); }
.btn-image-hover .btn-preview-image img, .btn-image-hover .btn-preview-image video { width: 100%; height: 100%; object-fit: cover; }
.btn-image-hover .btn-content-wrapper { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; width: 100%; transition: var(--tr-out); }
.btn-image-hover .btn-icon, .btn-image .btn-icon { display: flex; align-items: center; justify-content: center; }
.btn-image-hover .btn-icon svg, .btn-image .btn-icon svg { width: .5625em; height: .6875em; }
.btn-image {
  position: relative; overflow: clip; display: flex; align-items: center; justify-content: center;
  width: 100%; height: var(--s-6875); padding: var(--space-1) var(--space-5);
  color: var(--white); border: 0; border-radius: var(--r-0125); transition: var(--tr-out); background: none; cursor: pointer;
}
.btn-image .image-with-overlay { position: absolute; inset: 0; }
.btn-image .btn-content-wrapper { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; width: 30%; transition: var(--tr-out); }
.btn-mobile { display: none; padding: 0; color: currentColor; background: none; border: 0; }
.btn-mobile .btn-inner { display: flex; align-items: center; gap: var(--s-0625); }
.btn-mobile .btn-icon { position: relative; left: auto; opacity: 1; transform: scale(1); }
@media (hover: none) and (pointer: coarse) { .btn-mobile { display: flex; } }

@media (hover: hover) and (pointer: fine) {
  .btn-default:hover .btn-text, .btn-cta:hover .btn-text, .btn-standard:hover .btn-text,
  .btn-medium:hover .btn-text, .btn-large:hover .btn-text { transform: translate(-.5rem); }
  .btn-default:hover .btn-icon, .btn-cta:hover .btn-icon, .btn-standard:hover .btn-icon,
  .btn-medium:hover .btn-icon, .btn-large:hover .btn-icon { opacity: 1; transform: scale(1); }
  .btn-default:hover { background: var(--c-orange); border-color: var(--c-orange); border-radius: .125rem; color: var(--white); }
  .btn-inline:hover { color: var(--white); border-radius: var(--r-hover); background: var(--c-dark-blue); }
  .btn-tab:hover { background: var(--c-orange); border-color: var(--c-orange); border-radius: .275rem; }
  .btn-cta:hover { border-radius: var(--r-hover); background: var(--c-orange); border-color: var(--c-orange); }
  .btn-standard:hover { border-radius: var(--r-hover); background: var(--white); border-color: var(--white); color: var(--c-orange); }
  .btn-image-hover:hover { border-top-color: rgba(255,255,255,0); border-bottom-color: rgba(255,255,255,0); }
  .btn-image-hover:hover .btn-content-wrapper { width: 90%; }
  .btn-image-hover:hover .btn-preview-image { opacity: 1; clip-path: inset(0%); }
  .btn-image:hover { border-radius: var(--r-0625); }
  .btn-image:hover .btn-content-wrapper { width: 27.5%; }
  .btn-medium:hover { border-radius: var(--r-0625); background: var(--white); color: var(--c-orange); }
  .btn-medium.hover-orange:hover { background: var(--c-orange); color: var(--white); }
  .btn-medium.hover-blue:hover { background: var(--c-dark-blue); color: var(--white); }
  .btn-large:hover { border-radius: var(--r-0625); background: var(--white); color: var(--c-orange); }
  .btn-large.hover-orange:hover { background: var(--c-orange); color: var(--white); }
  .btn-large.hover-blue:hover { background: var(--white); color: var(--c-dark-blue); }
}

/* image + overlay helper used by every media slot */
.image-with-overlay { position: relative; }
.image-with-overlay--fill { position: absolute; inset: 0; width: 100%; height: 100%; }
.image-with-overlay_img { width: 100%; height: 100%; object-fit: cover; }
.image-overlay { position: absolute; inset: 0; pointer-events: none; background: rgba(0,0,0,var(--overlay-opacity, 0)); }

/* placeholder media: slot labels are hidden unless ?slots=1 is in the URL */
.slot-label { display: none; }
html.show-slots .slot-label {
  display: block; position: absolute; left: .5rem; top: .5rem; z-index: 50; pointer-events: none;
  padding: .2rem .45rem; border-radius: .2rem; background: rgba(0,0,0,.55); color: #fff;
  font: 500 11px/1.3 ui-monospace, Menlo, monospace; white-space: nowrap;
}

/* ---------- mobile token switch (<=767) ---------- */
@media (max-width: 767px) {
  :root {
    --s-03125: .3125rem; --s-0375: .375rem; --s-05: .5rem; --s-0625: .625rem; --s-075: .75rem;
    --s-0875: .875rem; --s-1: 1rem; --s-1125: 1.125rem; --s-125: 1.25rem; --s-1375: 1.375rem;
    --s-15: 1.5rem; --s-1625: 1.625rem; --s-175: 1.75rem; --s-1875: 1.875rem; --s-2: 2rem;
    --s-225: 2.25rem; --s-25: 2.5rem; --s-2625: 2.625rem; --s-3: 3rem; --s-3125: 3.125rem;
    --s-325: 3.25rem; --s-375: 3.75rem; --s-425: 4.25rem; --s-475: 4.75rem; --s-5: 5rem;
    --s-5625: 5.625rem; --s-6: 6rem; --s-625: 6.25rem; --s-6875: 6.875rem; --s-7375: 7.375rem;
    --s-75: 7.5rem; --s-78125: 7.8125rem; --s-875: 8.75rem; --s-125x: 12.5rem; --s-10: 10rem;
    --s-155: 15.5rem; --s-16: 16rem; --s-20: 20rem; --s-24: 24rem;
    --grid-columns: 8;
    --r-0125: .125rem; --r-sm: .25rem; --r-0375: .375rem; --r-0625: .625rem; --r-md: .5rem; --r-lg: 2.5rem;
  }
  section.padding-large { padding-block: var(--s-10); }
  section.padding-top-large-bottom-medium { padding-top: var(--s-125x); padding-bottom: var(--s-3); }
  section.padding-top-none-bottom-large, section.padding-top-none-bottom-standard { padding-top: 0; padding-bottom: var(--s-10); }
  section.padding-top-large-bottom-none { padding-top: var(--s-5); padding-bottom: 0; }
  section.padding-title { padding-top: var(--s-10); padding-bottom: var(--s-375); }
  section.m-pb-0, .m-pb-0 { padding-bottom: 0; } section.m-pt-0, .m-pt-0 { padding-top: 0; }
  section.m-pt-10 { padding-top: var(--s-10); } section.m-pb-10 { padding-bottom: var(--s-10); }
  section.m-pb-625 { padding-bottom: var(--s-625); }
  .h3 { font-size: var(--s-1625); }
  .section-title { font: var(--display-w) var(--s-2)/var(--lh-100) var(--font-display); }
  .offset-1, .offset-2 { grid-column-start: 2; } .offset-3 { grid-column-start: 4; }
  .offset-4 { grid-column-start: 2; } .offset-5 { grid-column-start: 6; } .offset-6 { grid-column-start: 2; }
  .offset-7 { grid-column-start: 8; } .offset-8 { grid-column-start: 2; }
  .col-2 { grid-column-end: span 6; }
  .text-indent-4col { text-indent: calc(100% / var(--grid-columns) * 2); }
  .u-grid.no-gap { column-gap: var(--gutter-x); row-gap: var(--gutter-y); }
  .u-grid.m-flex { display: flex; }
  .u-grid.m-flex_v { display: flex; flex-direction: column; }
  .u-grid.no-gap.m-flex_v { row-gap: 0; }
  .u-grid.m-flex_center { display: flex; justify-content: center; }
  .m-flex .layout-col { width: 100%; }
  .m-flex .v-flex_left-xs { align-items: center; }
  .m-container_small { max-width: calc(100% - var(--s-375) * 2); }
  .m-container_large { width: 100%; max-width: calc(100% - 1.5em); margin-inline: auto; padding: 0; }
  .container-small.m-container { width: 100%; max-width: none; padding-inline: var(--container-pad); margin-inline: auto; }
  .v-flex_left-med { row-gap: var(--s-225); }
  .v-flex_center-med { row-gap: var(--s-125); }
  .t-body_quote { font-size: var(--s-15); }
  .btn-image, .btn-large { height: var(--s-625); min-height: var(--s-625); }
  .btn.btn-large.hover-orange { background: var(--c-orange); color: var(--white); }
  .btn-image .btn-content-wrapper { width: auto; column-gap: var(--s-125); }
  .btn { transition: none; }
  .btn-image-hover { width: 100%; }
  .is-desktop { display: none !important; }
}

/* ---- chrome.css ---- */
/* ==========================================================================
   Site chrome: grid overlay, nav, menu, flyout, footer, cursor, video popup,
   cookie banner. Shared by every page.
   ========================================================================== */

/* ---------- grid overlay ---------- */
.grid-overlay {
  position: fixed; inset: 0; z-index: 2; width: 100%; height: 100svh;
  pointer-events: none; mix-blend-mode: difference; opacity: .1;
}
body.hide-grid .grid-overlay { visibility: hidden; }
.grid-line, .grid-line_inner { position: absolute; top: 0; width: .5px; height: 100%; background: var(--white); }
.grid-line-1 { left: var(--space-2); } .grid-line-5 { left: 50%; } .grid-line-9 { right: var(--space-2); left: auto; }
.grid-line-2, .grid-line-4, .grid-line-7 { left: 0; } .grid-line-3, .grid-line-6, .grid-line-8 { right: 0; }
.grid-overlay_container, .grid-overlay_small-wrap, .grid-overlay_grid { position: absolute; inset: 0; height: 100%; }
.grid-overlay_container.container-small { left: 0; right: 0; margin-inline: auto; }
.grid-overlay_container.container-large { left: 0; right: 0; margin-inline: auto; }
.grid-overlay_small-wrap { position: relative; }
.grid-overlay_grid.u-grid { column-gap: 0; }
.grid-line_col { position: relative; }
@media (max-width: 767px) { .grid-line_col { display: none; } }

/* ---------- nav ---------- */
nav.site-nav {
  position: fixed; top: 0; left: 0; z-index: 9999; display: flex; align-items: center;
  width: 100%; height: 5em; color: var(--white); pointer-events: none; transition: color .3s;
}
body[data-nav-theme="dark"] nav.site-nav { color: var(--c-dark-blue); }
.nav-contain.container { width: 100%; padding-inline: var(--container-pad); }
.nav-layout.u-grid { align-items: center; }
.nav-col { position: relative; z-index: 1; font-size: 1em; text-align: center; pointer-events: none; }
body[data-menu-open="true"] .nav-col:first-child { z-index: 9999; }
body[data-menu-open="true"] .nav-col:not(:first-child) { z-index: 9997; }
.nav-ul { display: flex; justify-content: flex-start; column-gap: var(--space-1); }
.nav-ul.nav-right { justify-content: flex-end; }
nav.site-nav li { position: relative; border-radius: .125rem; overflow: clip; }
nav.site-nav .btn, nav.site-nav a { position: relative; font-size: 1em; pointer-events: auto; }
.nav-layout .btn { border: none; transition: var(--tr-out); }
nav.site-nav .btn-tab { background-color: rgba(31,42,68,.2); }
.nav-right .btn-cta { background: rgba(31,42,68,.15); }
nav li:hover .liquid-glass__specular { display: none; }
body[data-menu-open="true"] .btn-tab { color: var(--white); background-color: rgba(31,42,68,.2); }
body[data-menu-open="true"] .btn-tab.is-current { background: var(--c-orange); border-radius: .275rem; }
@media (hover: hover) and (pointer: fine) {
  nav.site-nav .btn-tab:hover { background: var(--c-orange); color: var(--white); border-radius: .275rem; }
  body[data-menu-open="true"] .btn-tab:hover { background: var(--c-orange); color: var(--white); opacity: 1; }
  .nav-right .btn-cta:hover { background: var(--c-orange); border-radius: .275rem; }
  .nav-right li:hover .liquid-glass__specular { border-radius: var(--r-hover); }
}
body[data-nav-theme="dark"] nav .btn-cta, body[data-nav-theme="dark"] nav .btn-default { border-color: var(--c-dark-blue-faded); }
.nav-logo-link { display: inline-block; pointer-events: auto; }
.brand-mark { display: block; color: currentColor; }
.nav-layout_mobile { display: none; }

/* placeholder wordmark (logo slot) */
.wordmark { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: .18em; color: currentColor; }
.wordmark svg { width: 100%; height: 100%; }

@media (max-width: 767px) {
  .nav-layout { display: none; }
  .nav-col { position: relative; }
  .nav-layout_mobile {
    position: relative; display: flex; align-items: stretch; justify-content: space-between;
    width: 100%; height: var(--s-3125); padding: var(--s-03125); border-radius: var(--r-0125); overflow: clip;
  }
  body[data-nav-theme="dark"] .nav-layout_mobile { background: rgba(31,42,68,.05); }
  nav.site-nav .nav-layout_mobile .btn, nav.site-nav .nav-layout_mobile .nav-logo a {
    display: flex; align-items: center; justify-content: center; width: var(--s-5); height: 100%;
    color: #fff; background: none; border: 0; appearance: none; pointer-events: auto;
  }
  body[data-nav-theme="dark"] nav .nav-layout_mobile .menu-toggle,
  body[data-nav-theme="dark"] nav .nav-layout_mobile .nav-logo a { color: var(--c-deep-blue); }
  nav.site-nav .nav-layout_mobile a.menu-enquire { background: var(--c-orange); border-radius: var(--r-0125); }
  .nav-layout_mobile .nav-logo { height: 100%; }
}

/* ---------- menu ---------- */
.menu-component {
  position: fixed; inset: 0; z-index: 9998; width: 100%; height: 100dvh;
  pointer-events: none; visibility: hidden; transition: visibility 0s .6s;
}
.menu-component.open { pointer-events: auto; visibility: visible; transition: visibility 0s; }
.menu-bg {
  position: absolute; inset: 0; z-index: 1; opacity: 0; pointer-events: none; will-change: opacity;
  background: linear-gradient(rgba(31,42,68,.3), rgba(31,42,68,.3)), rgba(255,255,255,.01);
  backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); transition: opacity .4s;
}
.menu-component.open .menu-bg { opacity: 1; pointer-events: auto; }
.menu-wrap, .menu-contain, .menu-layout, .menu-el { height: 100%; }
.menu-wrap { position: relative; z-index: 2; padding-block: var(--space-2); pointer-events: none; }
.menu-contain.container { width: 100%; padding-inline: var(--space-2); margin-inline: auto; }
.menu-col { border-radius: var(--r-sm); }
.menu-el {
  position: relative; display: flex; flex-flow: column; align-items: flex-start; justify-content: center; row-gap: var(--s-1);
  padding: var(--s-5) var(--s-0625) var(--space-2); background: var(--white); color: var(--black-faded);
  clip-path: inset(0% 100% 0% 0% round .25em); pointer-events: auto;
}
.menu-inner { display: flex; flex-flow: column; align-items: flex-start; row-gap: var(--s-125); width: 100%; padding-inline: var(--s-125); }
.menu-inner.is-desktop { opacity: 0; }
.menu-inner[data-panel]:not(.is-current) { display: none; }
.menu-group { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--s-125); width: 100%; }
.menu-group_links { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
.menu-dropdown_wrap { display: flex; flex-flow: column; width: auto; }
.menu-dropdown_title { padding-bottom: var(--s-05); font: italic var(--display-it) var(--s-1125)/1.2 var(--font-display); cursor: pointer; transition: var(--tr-out); }
.menu-line { width: 100%; height: .5px; background-image: var(--dash-blue); transition: var(--tr-out); }
.nav-link {
  display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--s-0625);
  padding-block: var(--s-03125); font-size: var(--s-1); color: var(--c-dark-blue); transition: var(--tr-out);
}
@media (hover: hover) and (pointer: fine) {
  .menu-inner:has(.nav-link:hover) .nav-link:not(:hover) { opacity: .5; }
}
.menu-footer { width: 100%; margin-top: auto; }
.menu-footer_layout { display: flex; flex-flow: column; align-items: center; row-gap: var(--space-2); text-align: center; }
.menu-footer .btn-large { height: var(--s-5); min-height: var(--s-5); }
.menu-img_wrap { position: relative; width: 100%; height: 100%; overflow: clip; border-radius: var(--r-sm); }
.menu-img_item { position: absolute; inset: 0; width: 100%; height: 100%; }
.mobile-menu, .mobile-menu_top, .mobile-menu_footer-layout { display: none; }

@media (max-width: 768px) {
  .menu-layout.u-grid { display: flex; gap: 0; width: 100%; }
  .menu-wrap { padding: 0; }
  .menu-component.open .menu-el { display: flex; justify-content: flex-start; align-items: flex-start; padding: 0; clip-path: none; }
  .menu-col.col-4 { width: 100%; }
  .menu-contain.container { width: 100%; padding: 0; }
  .menu-component .is-desktop { display: none !important; }
  .mobile-menu { display: flex; flex-direction: column; width: 100%; height: 100%; overflow: hidden; }
  .mobile-menu_top { display: flex; flex-shrink: 0; width: 10rem; height: var(--s-5); padding: var(--s-0625) var(--s-125); }
  button.btn.btn-large.menu-close { height: 100%; min-height: 0; }
  .mobile-menu_title-bar {
    position: sticky; top: 0; z-index: 2; flex-shrink: 0; padding-inline: var(--s-125); background-color: var(--white);
    background-image: var(--dash-blue); background-position: bottom; background-repeat: no-repeat; background-size: 100% .5px; cursor: pointer;
  }
  .mobile-menu_home-link { display: block; padding-block: var(--s-1875); font: 400 var(--s-15) var(--font-sans); color: var(--c-dark-blue); }
  .mobile-menu_nav { display: flex; flex-direction: column; flex: 1; row-gap: var(--s-03125); padding: var(--s-125) var(--s-125) 0; }
  .mobile-menu_accordion-trigger {
    display: flex; align-items: center; justify-content: space-between; width: 100%; padding-block: var(--s-0625);
    font: 500 var(--s-15) var(--font-sans); color: var(--c-dark-blue); text-align: left; background: none; border: 0; cursor: pointer;
  }
  .mobile-menu_accordion-icon { flex-shrink: 0; width: 20px; height: 20px; transition: var(--tr-out); }
  .mobile-menu_panel { display: none; flex-direction: column; flex: 1; min-height: 0; }
  .mobile-menu.is-sub .mobile-menu_nav { display: none; }
  .mobile-menu.is-sub .mobile-menu_panel.is-current { display: flex; }
  .mobile-menu_header { display: flex; align-items: center; justify-content: space-between; padding-block: var(--s-1875); }
  .mobile-menu_header-title { font: 400 var(--s-15) var(--font-sans); color: var(--c-dark-blue); }
  .mobile-menu_header-close { display: flex; align-items: center; justify-content: center; padding: var(--s-03125); color: var(--c-dark-blue); background: none; border: 0; cursor: pointer; }
  .mobile-menu_header-close svg { transform: rotate(45deg); }
  .mobile-menu_content {
    flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: var(--s-1875) var(--s-125) var(--s-6);
    mask-image: linear-gradient(to bottom, transparent, #000 var(--s-5), #000 calc(100% - var(--s-5)), transparent);
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 var(--s-5), #000 calc(100% - var(--s-5)), transparent);
  }
  .mobile-menu_content .menu-group { row-gap: var(--s-1875); }
  .mobile-menu_content .nav-link { font-size: var(--s-1125); }
  .menu-dropdown_title { padding-bottom: var(--s-125); }
  .mobile-menu_footer { display: flex; flex-direction: column; flex-shrink: 0; row-gap: var(--s-0625); margin-top: auto; padding: 0 var(--s-125) var(--s-125); }
  .mobile-menu_footer .btn-large { height: var(--s-5); min-height: var(--s-5); }
  .nav-link { display: block; font-size: var(--s-125); }
}

/* ---------- flyout ("How it works") ---------- */
.flyout_container { position: fixed; inset: 0; z-index: 10000; width: 100vw; height: 100svh; pointer-events: none; visibility: hidden; }
.flyout_container.is-ready { visibility: visible; }
.flyout_container.is-active { pointer-events: auto; }
.flyout-overlay {
  position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer;
  background: var(--c-blue-faded); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px);
}
.flyout_container:not(.is-active) .flyout-overlay { pointer-events: none; }
.flyout_component { position: absolute; top: 0; right: 0; width: 50%; height: 100%; pointer-events: none; will-change: transform; transform: translate(100%); }
.flyout_container.is-active .flyout_component { pointer-events: auto; }
.flyout-button-wrap { position: absolute; z-index: 1; pointer-events: auto; }
.flyout-visible-wrap { transform: translateY(100%); transition: var(--tr-wd); }
.flyout-visible-wrap.is-visible { transform: translateY(0); }
.flyout_popup { position: relative; z-index: 2; width: 100%; height: 100%; background: var(--white); color: var(--c-dark-blue); }
.flyout_layout {
  display: flex; flex-direction: column; gap: 0; width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto;
  padding: var(--s-625) var(--s-78125); border-radius: var(--r-sm);
}
.flyout_header { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-03125); max-width: 80%; margin-bottom: var(--s-5); }
.btn-popup-close, .btn-popup-open {
  display: flex; align-items: center; justify-content: center; gap: var(--s-05); height: var(--s-375); width: auto;
  background: var(--c-orange); color: var(--white); border: 0; outline: 0; border-radius: var(--r-sm) var(--r-sm) 0 0;
  cursor: pointer; transition: var(--tr-wd);
}
.btn-popup-close .btn-inner, .btn-popup-open .btn-inner { display: flex; align-items: center; justify-content: center; gap: var(--s-0875); }
.switch-labels { display: grid; }
.icon-span { display: flex; align-items: center; justify-content: center; gap: var(--s-0625); grid-area: 1 / 1; opacity: 0; transition: var(--tr-wd); }
.icon-span.active { opacity: 1; }
.icon-span .icon { width: 1em; height: 1em; }
.close-label .icon { transform: rotate(45deg); }
.btn-popup-close { padding: 0 36svh; }
.btn-popup-open { padding: 0 var(--s-3); }
@media (hover: hover) and (pointer: fine) { .btn-popup-open:hover { padding: 0 36svh; } }
@media (min-width: 768px) {
  .flyout-button-wrap { top: 50%; right: 100%; transform-origin: 100%; transform: rotate(-90deg) translate(calc(50% + 1.75em)) translateY(-50%); }
}
.global-flyout_flex { display: flex; flex-direction: column; row-gap: 5px; height: 100%; }
.global-flyout_content-item { padding: var(--s-1875); border-radius: var(--s-03125); background: #f5f5f5; }
.global-richtext { position: relative; display: flex; flex-flow: column; align-items: flex-start; row-gap: var(--s-125); }
.global-richtext h2 { font: var(--display-w-med) var(--s-2)/var(--lh-120) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); }
.global-richtext h3 { font: italic var(--display-it) var(--s-1125)/var(--lh-120) var(--font-display); }
.global-richtext h4 { font: 500 var(--s-1125)/var(--lh-120) var(--font-condensed); text-transform: uppercase; }
.global-richtext p { font-size: var(--s-0875); font-weight: 500; line-height: var(--lh-150); }
.global-richtext a { color: var(--c-orange); text-decoration: underline; }
.global-richtext ul { width: 100%; padding-left: 0; }
.global-richtext ul li { display: flex; align-items: center; gap: var(--s-0625); padding-block: var(--s-075); font: 500 var(--s-0875)/var(--lh-150) var(--font-sans); border-bottom: .5px solid rgba(31,42,68,.1); }
.global-richtext ul li::before { content: ""; display: inline-block; width: .25rem; min-width: .25rem; height: .25rem; background: currentColor; transform: rotate(45deg); }
.global-richtext ol { width: 100%; list-style: inside decimal; }
.global-richtext ol li { padding-block: var(--s-075); font: 500 var(--s-0875)/var(--lh-150) var(--font-sans); border-bottom: .5px solid rgba(31,42,68,.1); }
@media (max-width: 1279px) { .flyout_layout { padding: var(--s-5); } }
@media (max-width: 1023px) { .flyout_layout { padding: var(--s-25); } }
@media (max-width: 767px) {
  .flyout_container.is-sticky { display: none; }
  .flyout_component { width: 100%; transform: translateY(90%); }
  .flyout_header { margin-bottom: var(--s-5); padding-top: var(--s-5); }
  .flyout-button-wrap { top: 0; left: 0; right: 0; z-index: 3; display: flex; justify-content: center; width: 100%; }
  .btn-popup-close { padding: 0 var(--s-3); border-radius: 0 0 var(--r-sm) var(--r-sm); }
}

/* ---------- footer ---------- */
.footer-component { position: relative; background-color: var(--c-mushroom); }
.footer {
  position: relative; z-index: 3; display: flex; flex-flow: column; justify-content: space-between; row-gap: var(--s-125x);
  min-height: 100svh; padding-block: 10px;
}
.footer-col { padding-block: var(--s-0625); }
.footer-col_inner_col { padding-inline: var(--s-0625); }
.footer-menu_layout { display: flex; flex-flow: column; row-gap: var(--s-1); }
.footer-menu_item { display: flex; flex-flow: column; row-gap: var(--s-05); }
.footer-menu_item ul { display: flex; flex-flow: column; row-gap: .125em; color: var(--c-light-charcoal); }
.footer-brand-mark { display: flex; align-items: center; justify-content: center; width: auto; margin-left: var(--s-375); margin-top: var(--s-125); }
.footer-link { transition: var(--tr-out); }
@media (hover: hover) and (pointer: fine) { .footer-link:hover { color: var(--c-dark-blue); opacity: 1; } }
.footer-cta_layout { position: relative; display: flex; flex-flow: column; row-gap: var(--s-0625); width: calc(100% - var(--s-0625)); }
.footer-cta_grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-0625); }
.footer-bottom_layout { display: flex; flex-direction: column; row-gap: var(--s-125); }
.footer-logo_contain.container { padding-inline: var(--container-pad); }
.footer-bottom_logo { width: 100%; text-align: center; color: var(--c-dark-blue); }
.footer-bottom_logo svg { display: block; width: 100%; height: auto; overflow: visible; }
.footer-info_layout {
  position: relative; display: block; align-items: center; width: 100%; max-width: calc(100% - var(--space-2) * 2); margin: auto;
  padding: var(--s-125) var(--s-0625); color: var(--c-light-charcoal); background: var(--c-mushroom);
}
.footer-info_layout::before, .footer-info_layout::after { content: ""; position: absolute; left: 0; width: 100%; height: .5px; background: #fff; opacity: .1; mix-blend-mode: difference; }
.footer-info_layout::before { top: 0; } .footer-info_layout::after { bottom: 0; }
.footer-bot_border { position: absolute; top: 0; width: .5px; height: 100%; background: #fff; opacity: .1; mix-blend-mode: difference; }
.footer-bot_border.is-left { left: 0; } .footer-bot_border.is-right { right: 0; }
.footer-info_contain.container.u-grid { padding-inline: var(--container-pad); align-items: center; }
.footer-info_left, .footer-badges { display: flex; align-items: center; column-gap: var(--s-125); text-align: left; }
.footer-info_left .icon, .footer-info_right > .icon { width: 17px; height: 17px; flex: none; }
.footer-badge_link { display: block; width: var(--s-2625); padding-bottom: .242em; } /* the reference's inline logo images leave a descender gap */
.footer-badge { display: grid; place-items: center; width: 100%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(83,83,83,.35); font: 600 .5em/1 var(--font-sans); letter-spacing: .05em; color: rgba(83,83,83,.7); }
.footer-info_middle-desktop { display: flex; flex-direction: column; align-items: center; justify-content: center; row-gap: var(--s-03125); text-align: center; color: var(--c-dark-blue); }
.footer-quote { font: italic var(--display-it) var(--s-125)/var(--lh-120) var(--font-display); }
.footer-author { font: 600 var(--s-0625)/var(--lh-120) var(--font-sans); text-transform: uppercase; letter-spacing: .1em; opacity: .5; }
.footer-info_right { display: flex; align-items: center; justify-content: flex-end; column-gap: var(--s-125); text-align: right; }
.footer-right_wrap { display: flex; flex-direction: column; align-items: flex-end; gap: var(--s-03125); }
.footer-info_right-top, .footer-info_right-bottom { display: flex; column-gap: var(--s-0625); }
.footer-info_middle { display: none; }
.footer-icon { display: none; }
@media (max-width: 767px) {
  .footer { row-gap: .25rem; }
  .footer-layout.u-grid { display: flex; flex-direction: column; }
  .footer-menu_layout { row-gap: var(--s-1875); }
  .footer-col_inner_col { padding-inline: 0; }
  .footer-brand-mark { margin-left: 0; margin-top: var(--s-125); justify-content: flex-start; }
  .footer-col_inner.u-grid { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--s-1875); padding-left: var(--s-3); }
  .footer-cta_layout { width: 100%; }
  .footer-col { padding-top: var(--s-25); padding-bottom: var(--s-1); }
  .footer-bottom { padding-top: var(--s-1); }
  .footer-bottom_layout { row-gap: var(--s-2); }
  .footer-bottom .icon { display: none; }
  .footer-info_contain.container.u-grid { display: flex; flex-direction: column; justify-content: flex-start; align-items: center; row-gap: 3rem; }
  .footer-badges_wrap { margin: auto; }
  .footer-right_wrap { align-items: center; text-align: center; row-gap: 1rem; }
  .footer-info_right-top { flex-flow: wrap; justify-content: center; align-items: center; row-gap: .25rem; max-width: 80%; }
  .footer-info_right-bottom { flex-direction: column; row-gap: .25rem; }
  .footer-info_right { justify-content: center; }
  a.t-body_sm.footer-bottom_link { white-space: nowrap; }
}

/* newsletter overlay inside footer CTA column */
.newsletter-popup {
  position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; row-gap: var(--s-375);
  width: 100%; height: 100%; text-align: center; border-radius: var(--r-0125); background: var(--white);
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
}
.newsletter-popup.is-open { opacity: 1; visibility: visible; }
.newsletter-top { display: flex; flex-direction: column; align-items: center; justify-content: center; row-gap: var(--s-1); margin-bottom: auto; padding: var(--s-125) var(--s-375) 0; }
.newsletter-title_wrap { display: flex; align-items: center; justify-content: center; column-gap: var(--s-0625); }
.newsletter-body { color: var(--c-light-charcoal); }
.newsletter-close { position: absolute; top: var(--s-0625); right: var(--s-0625); display: flex; padding: .35rem; color: var(--c-dark-blue); background: none; border: 0; cursor: pointer; opacity: .7; }
.newsletter-close:hover { opacity: 1; }
.newsletter-input_wrap { position: relative; padding: var(--s-1); }
.newsletter-input_wrap::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: .5px; background-image: var(--dash-blue); }
.newsletter-popup input { width: 100%; font: 500 var(--s-0875)/1.4 var(--font-sans); color: var(--black); text-align: center; background: none; border: 0; outline: 0; }
.newsletter-popup input::placeholder { color: var(--black); opacity: .3; }
.submit-button { height: var(--s-425); font: 500 var(--s-0875) var(--font-sans); color: var(--black); background: none; border: 0; border-radius: .25rem; outline: 0; cursor: pointer; }
.submit-button:disabled { color: silver; cursor: not-allowed; }
.newsletter-note { font: 500 .75em/1.3 var(--font-sans); color: var(--c-light-charcoal); padding: 0 var(--s-1) var(--s-1); }
@media (max-width: 767px) { .newsletter-popup { top: auto; height: auto; } }

/* ---------- custom cursor ---------- */
.custom-cursor { position: fixed; top: 0; left: 0; z-index: 10001; display: flex; align-items: center; justify-content: center; pointer-events: none; will-change: transform; }
.custom-cursor_line-vertical { position: absolute; left: 50%; width: .03125rem; height: 0; background: var(--c-orange); opacity: 0; transform: translate(-50%); }
.custom-cursor_line-horizontal { position: absolute; top: 50%; width: 0; height: .03125rem; background: var(--c-orange); opacity: 0; transform: translateY(-50%); }
.custom-cursor_dot { width: .25rem; height: .25rem; background: var(--c-orange); transition: opacity .3s, transform .3s; }
.custom-cursor_label {
  position: absolute; top: -1.25rem; right: .5rem; overflow: hidden; border-radius: var(--r-0125);
  font: 500 .875rem/1.2 var(--font-sans); color: var(--white); text-align: right; white-space: nowrap; opacity: 0; pointer-events: none;
}
.custom-cursor_label.is-glass { right: 1rem; padding: .3125rem var(--s-1); }
.custom-cursor_label-text { position: relative; z-index: 3; }
@media (hover: hover) and (pointer: fine) {
  body:has(.btn:hover) .custom-cursor, body:has(.video-popup_close:hover) .custom-cursor { opacity: 0; transform: scale(0); }
  body:has([data-cursor-color="dark"]:hover) .custom-cursor_label { color: var(--c-dark-blue); }
}
@media (pointer: coarse) and (any-pointer: coarse) { .custom-cursor { display: none; } }

/* ---------- video popup ---------- */
.video-popup { position: fixed; inset: 0; z-index: 10000; pointer-events: none; }
.video-popup[hidden] { display: none; }
.video-popup_overlay { position: absolute; inset: 0; width: 100%; height: 100%; background: rgba(0,0,0,.3); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); pointer-events: auto; cursor: pointer; }
.video-popup_container {
  position: fixed; inset: var(--space-4); z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  max-height: calc(100svh - var(--space-4) * 2); pointer-events: none;
}
.video-popup_close-wrap { position: absolute; top: 0; right: 0; }
.video-popup_close {
  position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: var(--space-6); height: var(--space-6); border: .03125rem solid rgba(255,255,255,.2); border-radius: var(--r-sm);
  background: none; cursor: pointer; pointer-events: auto; transition: var(--tr-in-out); color: #fff;
}
.video-popup_close svg { width: 1.5rem; height: 1.5rem; }
@media (hover: hover) and (pointer: fine) {
  .video-popup_close:hover { background: var(--c-orange); border-color: var(--c-orange); }
  .video-popup_fullscreen:hover { border-radius: var(--r-lg); background: var(--c-orange); border-color: var(--c-orange); }
  .video-popup_fullscreen:hover .btn-text { color: var(--white); }
}
.video-popup_content { display: flex; flex-direction: column; align-items: center; width: 100vw; max-width: 100%; max-height: 100%; }
.video-popup_video-wrap {
  --max-h: calc(100svh - var(--space-4) * 2 - var(--space-4) - 2.5rem);
  position: relative; overflow: clip; width: 100%; aspect-ratio: 16 / 9; max-height: var(--max-h); max-width: min(100%, calc(var(--max-h) * 16 / 9));
  background: #000; border-radius: 8px; pointer-events: auto;
}
.video-popup_video { display: block; width: 100%; height: 100%; object-fit: cover; cursor: pointer; }
.video-popup_video-overlay { position: absolute; inset: 0; opacity: 0; pointer-events: none; background: rgba(0,0,0,.2); transition: opacity .3s ease-out; }
.video-popup_video-overlay.is-paused { opacity: 1; }
.video-popup_controls { display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0; width: 100%; margin-top: var(--space-4); pointer-events: auto; color: #fff; }
.video-popup_controls > .icon { width: 11px; height: 11px; flex: none; }
.video-popup_progress { position: relative; flex: 1; height: .25rem; overflow: hidden; border-radius: .125rem; background: rgba(255,255,255,.2); cursor: pointer; }
.video-popup_progress-bar { width: 0; height: 100%; border-radius: .125rem; background: var(--white); transition: width .1s linear; }
.video-popup_fullscreen { width: auto; min-width: var(--s-6875); padding-inline: var(--s-1); min-height: var(--s-25); border: var(--btn-border); border-radius: var(--r-0125); color: var(--white); }

/* ---------- cookie banner ---------- */
.cookie-banner {
  position: fixed; right: 0; bottom: 0; z-index: 999999999; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  max-width: 580px; margin: 1rem; padding: 1.5rem; overflow: clip; opacity: 1; border-radius: var(--r-sm);
  background: rgba(255,255,255,.8); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  transform: translateY(calc(100% + 2rem)); transition: transform 1s cubic-bezier(.16,1,.3,1);
}
.cookie-banner.visible { transform: translateY(0); }
.cookie-banner p { position: relative; z-index: 3; font: 500 14px/1.4 var(--font-sans); color: var(--c-dark-blue); }
.cookie-banner a { text-decoration: underline; }
.cookie-banner .actions { position: relative; z-index: 3; display: flex; flex-wrap: wrap; flex-shrink: 0; gap: 18px; }
.cookie-banner .consent-btn {
  position: relative; display: flex; align-items: center; justify-content: center; flex: none; overflow: hidden;
  height: 2.5rem; padding: 10px 1rem 10px 10px; font: 500 14px var(--font-sans); color: var(--c-dark-blue);
  background: none; border: 0; outline: 0; appearance: none; cursor: pointer; transition: var(--tr-out);
}
.cookie-banner .consent-btn span { transition: var(--tr-out); }
.cookie-banner .consent-btn .btn-icon { position: absolute; right: .25rem; display: flex; align-items: center; justify-content: center; width: var(--s-0875); height: var(--s-0875); opacity: 0; transform: scale(0); transition: var(--tr-out); }
@media (hover: hover) and (pointer: fine) {
  .cookie-banner .consent-btn:hover span { transform: translate(-.5rem); }
  .cookie-banner .consent-btn:hover .btn-icon { opacity: 1; transform: scale(1); }
}
@media (max-width: 768px) {
  .cookie-banner { flex-direction: column; gap: 8px; width: calc(100% - 30px); max-width: unset; }
  .cookie-banner p { text-align: center; }
}
@media (max-width: 540px) { .cookie-banner { margin: 1rem; padding: 1rem; } }

/* bottom sticky pill navs (itinerary sections / about pages / regions) */
.cta-nav_wrap, .about-nav_wrap {
  position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 5; display: flex; align-items: flex-end; justify-content: center;
  width: 100%; height: var(--s-5); padding-bottom: var(--s-1875); pointer-events: none;
  transition: opacity .4s var(--ease-out), transform .4s var(--ease-out);
}
.cta-nav_wrap.is-hidden, .about-nav_wrap.is-hidden { opacity: 0; transform: translateY(1rem); }
.cta-nav {
  position: relative; display: flex; align-items: center; justify-content: center; width: auto; height: var(--s-3125);
  padding-inline: var(--s-1875); overflow: clip; border-radius: var(--r-sm); color: #fff; background: rgba(31,42,68,.15); pointer-events: auto;
}
.cta-nav_list { position: relative; display: flex; align-items: center; justify-content: center; gap: var(--s-125); }
.cta-nav_item { flex: none; }
.cta-nav_btn { padding: 0; color: currentColor; background: none; border: 0; cursor: pointer; transition: var(--tr-out); }
.cta-nav_text { font: 500 var(--s-0875)/var(--lh-150) var(--font-sans); opacity: 1; transition: var(--tr-out); }
.cta-nav_list:has(.active) .cta-nav_btn:not(.active) .cta-nav_text { opacity: .75; }
@media (hover: hover) and (pointer: fine) {
  .cta-nav_list:hover .cta-nav_btn .cta-nav_text { opacity: .75; }
  .cta-nav_list:hover .cta-nav_btn:hover .cta-nav_text { opacity: 1; }
}
body[data-alt-nav="dark"] .cta-nav { color: var(--c-dark-blue); background: rgba(31,42,68,.08); }
.about-nav { position: relative; display: flex; align-items: center; justify-content: center; width: auto; pointer-events: auto; }
.about-nav_list { position: relative; display: flex; align-items: center; justify-content: center; gap: 5px; }
.about-nav_item { position: relative; flex: none; border-radius: .125rem; overflow: clip; }
.about-nav_item.is-current .liquid-glass__filter, .about-nav_item.is-current .liquid-glass__specular { display: none; }
.btn-tab.about-nav_btn { position: relative; width: auto; padding-inline: var(--s-25); background: rgba(31,42,68,.15); border: none; }
.btn-tab.about-nav_btn.is-current { background: var(--c-dark-blue); color: var(--white); border-radius: .275rem; pointer-events: none; }
@media (hover: hover) and (pointer: fine) { .btn-tab.about-nav_btn:hover { background: var(--c-dark-blue); border-color: var(--c-dark-blue); } }
@media (max-width: 767px) {
  .cta-nav_wrap, .about-nav_wrap { width: calc(100% - var(--s-2)); margin: auto; padding-bottom: var(--s-125); overflow: clip; }
  .about-nav_wrap { width: 100%; }
  .cta-nav { max-width: 100%; padding-inline: 0; }
  .cta-nav_list { justify-content: flex-start; width: 100vw; height: 100%; padding-inline: var(--s-125); overflow: scroll; pointer-events: auto; }
  .about-nav { max-width: 100%; padding-inline: 0; }
  .about-nav_list { justify-content: flex-start; width: 100vw; padding-inline: var(--s-125); overflow: scroll; }
}

/* ---- components.css ---- */
/* ==========================================================================
   Page components (home first; other templates appended below)
   ========================================================================== */

.page-main, .page-content { position: relative; }
.scribble-el { position: absolute; pointer-events: none; color: var(--c-dark-blue); }
.scribble-el svg { display: inline-block; vertical-align: baseline; width: 100%; height: auto; overflow: visible; }
.u-white .scribble-el, .is-dark .scribble-el { color: #fff; }

/* text fade mask (headline darkens as it scrolls through) */
.text-scroll-fade {
  --mask-position: -40;
  -webkit-mask-image: linear-gradient(#000 calc(var(--mask-position) * 1%), rgba(0,0,0,.9) calc((var(--mask-position) + 5) * 1%), rgba(0,0,0,.8) calc((var(--mask-position) + 10) * 1%), rgba(0,0,0,.6) calc((var(--mask-position) + 20) * 1%), rgba(0,0,0,.4) calc((var(--mask-position) + 30) * 1%), rgba(0,0,0,.2) calc((var(--mask-position) + 35) * 1%), rgba(0,0,0,.1) calc((var(--mask-position) + 40) * 1%), rgba(0,0,0,.1) 100%);
  mask-image: linear-gradient(#000 calc(var(--mask-position) * 1%), rgba(0,0,0,.9) calc((var(--mask-position) + 5) * 1%), rgba(0,0,0,.8) calc((var(--mask-position) + 10) * 1%), rgba(0,0,0,.6) calc((var(--mask-position) + 20) * 1%), rgba(0,0,0,.4) calc((var(--mask-position) + 30) * 1%), rgba(0,0,0,.2) calc((var(--mask-position) + 35) * 1%), rgba(0,0,0,.1) calc((var(--mask-position) + 40) * 1%), rgba(0,0,0,.1) 100%);
}

/* neutral text slot where a publication logo sits in the reference */
.press-logo { display: inline-block; font: 600 1.35em/1 var(--font-display); letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; opacity: .9; }
.quote-logo_wrap { display: flex; justify-content: center; width: var(--s-7375); margin-bottom: var(--s-175); }

/* ---------- hero (home + inner "hero-banner") ---------- */
.hero-banner { position: relative; width: 100%; height: 200svh; color: var(--white); }
.hero-banner--no-clouds { height: 100svh; }
.hero-banner_wrapper { position: relative; z-index: 0; width: 100%; height: 100svh; will-change: transform; transform: translateZ(0); }
.hero-banner_bg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; background: #cfd3d8; }
.hero-banner_bg img, .hero-banner_video { width: 100%; height: 100%; object-fit: cover; }
.hero-banner_overlay { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; background: rgba(0,0,0,.2); transition: var(--tr-out); }
@media (hover: hover) and (pointer: fine) { body:has(.btn-play:hover) .hero-banner_overlay { background: rgba(0,0,0,.4); } }
.hero-banner_content { position: absolute; inset: 0; z-index: 2; display: grid; grid-template-rows: 1fr 1fr 1fr; width: 100%; height: 100%; }
.hero-banner_contain { grid-row: 2; display: flex; align-items: center; }
.hero-banner_contain.mid { grid-row: 2; justify-content: center; text-align: center; }
.hero-banner_contain.mid .hero-banner_subtitle { max-width: 50%; text-wrap: balance; }
.hero-banner_contain.bot { grid-row: 3; justify-content: center; align-items: flex-end; padding-bottom: var(--s-125); text-align: center; }
.hero-banner_layout { align-items: center; }
.hero-banner_col.col-3.left-col { padding-left: calc(var(--s-375) - 12px); }
.hero-banner_title-contain { grid-row: 3; display: flex; align-items: flex-end; padding-bottom: var(--space-4); }
.hero-banner_title-wrapper, .hero-banner_title-inner { width: 100%; }
.hero-banner_title { font: 400 var(--s-16)/1 var(--font-condensed); text-transform: uppercase; text-align: center; white-space: nowrap; will-change: filter; }
.hero-banner_title-basic { font: var(--display-w-med) var(--s-7375)/1 var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); text-align: center; }
.hero-banner_subtitle { font: 500 var(--s-1125)/var(--lh-140) var(--font-condensed); text-transform: uppercase; letter-spacing: .5em; text-align: center; }
.clouds-overlay_wrap { position: absolute; top: 0; z-index: 2; width: 100%; height: 100svh; pointer-events: none; transform: translateY(100%); }
.clouds-overlay_wrap img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; will-change: transform; }

/* rising mist (sticky layer that tilts up from the bottom edge) */
.mist-transition { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
.mist-transition_image-container {
  position: sticky; top: 0; z-index: 1; width: 100%; height: 100svh; opacity: 0; transform-origin: bottom;
  will-change: transform, opacity; transition: opacity .3s; transform: translateZ(0) rotateX(90deg);
}
.mist-transition_image-container.visible { opacity: 1; }
.mist-transition_image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; background: linear-gradient(360deg, #fff, transparent 15%); }
.mist-divider_wrap { position: relative; z-index: 3; width: 100%; height: 100svh; }
.hero-banner > .mist-transition { z-index: 3; }

/* ---------- home intro ---------- */
.home-intro_quote { position: relative; }
.home-intro_svg { width: 180%; min-width: 12em; bottom: -75%; right: -10%; }
.home-quote_svg { position: relative; width: 80%; left: -5%; }
.home-quote_svg svg { stroke: var(--c-dark-blue); }
.scribble_wrap.is-narrow { max-width: 45%; }
.scribble-el.title-section_svg { width: 160%; max-width: 40em; top: 80%; left: 50%; transform: translate(-50%); }

/* ---------- tall parallax banner ---------- */
.tall-parallax-banner { position: relative; width: 100%; background: var(--bg); }
.tall-parallax-banner_inner { position: relative; width: 100%; height: 150svh; overflow: hidden; }
.tall-parallax-banner .container-large, .tall-parallax-banner .container-small { position: relative; z-index: 1; }
.above-grid .tall-parallax-banner_inner { overflow: visible; }

/* ---------- card flick (trips) ---------- */
.card-flick { position: relative; z-index: 2; width: 100%; overflow: hidden; border-radius: var(--r-sm); }
.card-flick_grid { display: flex; width: 100%; }
.card-flick_item { position: relative; display: block; flex-shrink: 0; width: 16.6667%; height: 85svh; overflow: hidden; text-decoration: none; cursor: pointer; }
.card-flick_item-inner { position: relative; width: 100%; height: 100%; overflow: hidden; }
.card-flick_image { position: absolute; inset: 0; overflow: hidden; }
.card-flick_image::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.1); transition: opacity .4s; }
.card-flick_image img { width: 100%; min-width: 50vw; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.4,0,.2,1); }
@media (hover: hover) and (pointer: fine) { .card-flick_item:hover .card-flick_image img { transform: scale(1.05); } }
.card-flick_overlay { position: absolute; inset: 0; z-index: 1; opacity: 1; pointer-events: none; background: rgba(0,0,0,.01); backdrop-filter: blur(7.5px); -webkit-backdrop-filter: blur(7.5px); }
.card-flick_content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; width: 30vw; padding: var(--space-6); color: var(--white); opacity: 0; pointer-events: none; }
.card-flick_item.is-active .card-flick_content { pointer-events: auto; }
.card-flick_content-inner { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; height: 100%; }
.card-flick_header { display: flex; flex-direction: column; gap: var(--space-2); max-width: 30ch; }
.card-flick_title { margin: 0; font-size: var(--s-2625); line-height: var(--lh-100); text-wrap: balance; }
.card-flick_footer { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.card-flick_meta, .itinerary-item_meta { display: flex; align-items: center; column-gap: var(--space-3); row-gap: var(--space-3); font-size: var(--s-1); color: var(--white); }
.card-flick_meta-item, .itinerary-item_meta-item { position: relative; display: inline-block; font-weight: 600; line-height: 1; white-space: nowrap; }
.card-flick_meta-divider, .itinerary-item_meta-divider { display: inline-block; width: 1px; height: 1em; vertical-align: -.1em; background: var(--white); }
.card-flick_excerpt { margin: 0; font-size: var(--s-1); line-height: var(--lh-140); }
.card-flick_item.is-simple { cursor: default; }
.is-simple.card-flick_item .card-flick_image::after { opacity: 0; }
.card-flick .btn-mobile, .horizontal-scroll_camp-content .btn-mobile { color: #fff; }

/* ---------- horizontal scroll (camps) ---------- */
.horizontal-scroll_outer { position: relative; }
.horizontal-scroll_outer-final-image { position: absolute; top: 0; left: 0; z-index: 0; width: 100vw; height: 100svh; }
.horizontal-scroll_outer-image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.horizontal-scroll { position: relative; z-index: 3; width: 100%; overflow: visible; }
.horizontal-scroll_wrapper { position: relative; top: 0; width: 100%; height: 100svh; overflow: visible; color: var(--white); }
.horizontal-scroll_container { display: flex; width: fit-content; height: 100svh; overflow: hidden; will-change: transform; transform: translateZ(0); }
.horizontal-scroll_panel { position: relative; display: flex; flex-shrink: 0; align-items: center; justify-content: center; height: 100svh; }
.horizontal-scroll_panel:first-child { width: 100vw; padding: 0; }
.horizontal-scroll_panel:not(:first-child) { position: relative; z-index: 1; width: calc(50vw + var(--s-125x)); padding-right: var(--s-125x); }
.horizontal-scroll_panel:nth-child(2) { padding-left: 0; }
.horizontal-scroll_panel.horizontal-scroll_panel--full { width: 100vw; padding-right: 0; }
.horizontal-scroll_image-wrap { position: absolute; inset: 0; z-index: 1; will-change: transform; transform: translateZ(0); }
.horizontal-scroll_image-wrap .image-with-overlay { width: 100%; height: 100%; }
.horizontal-scroll_image { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: translateZ(0); }
.horizontal-scroll_clip-wrap { position: absolute; inset: 0; z-index: 2; will-change: transform, clip-path; transform: translateZ(0); }
.horizontal-scroll_clip-wrap .horizontal-scroll_image-wrap { z-index: auto; }
.horizontal-scroll_overlay { position: absolute; inset: 0; background: var(--black); opacity: 0; pointer-events: none; }
.horizontal-scroll_content { position: relative; width: 100%; height: 100%; }
.horizontal-scroll_content .container-large { height: 100%; }
.horizontal-scroll_title-wrap { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.horizontal-scroll_title { font: var(--display-w-med) var(--s-875)/normal var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); white-space: nowrap; }
.panel-1_text-wrap { position: relative; top: 100%; }
.horizontal-scroll_camp-card {
  position: relative; display: grid; aspect-ratio: 4 / 3; width: 50vw; padding: var(--s-125); overflow: hidden; color: inherit;
  border-radius: var(--r-0375); background: rgba(31,42,68,.05); text-decoration: none; cursor: pointer;
}
.horizontal-scroll_camp-card_inner { position: relative; display: flex; flex-direction: column; justify-content: space-between; width: 100%; height: 100%; padding: var(--s-25); overflow: hidden; border-radius: var(--r-0125); }
.horizontal-scroll_camp-image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; }
.horizontal-scroll_camp-card .image-with-overlay_img, .horizontal-scroll_camp-card .image-overlay { transition: var(--tr-out); }
@media (hover: hover) and (pointer: fine) { .horizontal-scroll_camp-card:hover .image-overlay { background-color: rgba(0,0,0,.176) !important; } }
.horizontal-scroll_camp-content { position: relative; z-index: 2; display: flex; flex-direction: column; row-gap: var(--s-2); height: 100%; color: var(--white); text-align: center; }
.horizontal-scroll_camp-excerpt { max-width: 80%; margin-inline: auto; font-size: var(--s-0875); font-weight: 500; line-height: var(--lh-140); }
.horizontal-scroll_camp-coordinates { margin-top: auto; font: 500 var(--s-0875)/var(--lh-140) var(--font-condensed); text-transform: uppercase; }
.horizontal-scroll_panel .t-body_quote { font-size: var(--s-2); }
.ct-antartica_section { position: relative; z-index: 3; display: flex; align-items: center; justify-content: center; width: 100%; height: auto; padding-top: var(--s-875); color: var(--white); mix-blend-mode: soft-light; }
.title-fade { font: 400 var(--s-20)/.9 var(--font-condensed); text-transform: uppercase; text-align: center; white-space: nowrap; }
.title-fade_wrap--mobile { display: none; }

/* ---------- travel globe ---------- */
.travel-globe { position: relative; z-index: 3; width: 100%; background: var(--white); }
.travel-globe_head { position: relative; z-index: 1; padding-bottom: var(--s-425); overflow: clip; color: var(--c-dark-blue); background: #fff; }
.travel-globe_head-col_center { display: flex; flex-flow: column; align-items: center; row-gap: var(--s-125); text-align: center; }
.travel-globe_head-col_right { text-align: right; }
.travel-globe_component { position: relative; color: var(--white); background: var(--dark-bg); }
.travel-globe_inner { position: relative; }
.travel-globe_component-img { display: block; width: 100%; height: auto; aspect-ratio: 1440 / 1721; }
.globe-sticky_outer { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.globe-sticky_col { pointer-events: auto; }
.globe-sticky_wrap { display: flex; align-items: end; width: 100%; height: 100svh; padding: var(--s-25); }
.globe-sticky_card { position: relative; overflow: clip; border-radius: var(--r-0375); }
.globe-sticky_content-wrap { position: relative; display: flex; flex-direction: column; row-gap: var(--s-15); padding: var(--s-2) var(--s-125); background: var(--c-dark-blue-faded); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.globe-sticky_content-wrap.is-compact { row-gap: var(--s-0875); padding: var(--s-125); }
.globe-sticky_info-item { display: flex; flex-direction: column; row-gap: var(--s-03125); }
.globe-video_wrap { position: relative; display: flex; flex-direction: column; row-gap: var(--s-15); padding: var(--s-0625); background: var(--c-dark-blue-faded); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.globe-video_wrap .btn-image { height: auto; aspect-ratio: 16 / 9; }
.globe-video_wrap .btn-image .btn-content-wrapper { width: 50%; transition: width .3s ease-in-out; }
@media (hover: hover) and (pointer: fine) {
  .globe-video_wrap .btn-image:hover { border-radius: var(--r-0125); }
  .globe-video_wrap .btn-image:hover .btn-content-wrapper { width: 46.5%; }
}
.flight-path_wrap { position: absolute; top: 16%; left: 42.25%; width: 8.1%; height: auto; }
.flight-path_svg svg, .flight-path_svg-flown svg { display: block; width: 100%; height: auto; overflow: visible; }
.flight-path_svg-flown { position: absolute; inset: 0; }
.flight-svg_point { position: absolute; width: var(--s-03125); height: var(--s-03125); border-radius: 100%; background: var(--white); }
.flight-svg_point.is-start { z-index: 1; left: 57%; background: var(--c-turquoise); }
.flight-svg_point.is-end { z-index: 1; bottom: 0; left: 100%; transform: translate(-50%, -50%); }
.flight-indicator { --pulse-duration: 2s; --pulse-stagger: .2s; position: absolute; top: 0; left: 60%; z-index: 2; width: var(--s-0875); height: var(--s-0875); border-radius: 100%; background: var(--c-turquoise); transform: translate(-50%, -50%); }
.flight-indicator_pulse { position: absolute; inset: 0; }
.flight-indicator_pulse i {
  position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; border: 1px solid var(--c-turquoise); border-radius: 50%; opacity: 0;
  transform: translate(-50%, -50%) translateZ(0); animation: pulsed var(--pulse-duration) ease-out infinite; animation-delay: calc(var(--index) * var(--pulse-stagger));
}
@keyframes pulsed { 0% { opacity: 1; width: 100%; height: 100%; } 59.9% { opacity: 0; width: 500%; height: 500%; } 60%, to { opacity: 0; width: 100%; height: 100%; } }
.map-location_item { position: absolute; display: flex; flex-direction: column; align-items: center; row-gap: var(--s-0625); text-align: center; }
.map-location_item.is-ct { top: 18%; left: 47%; }
.map-location_item.is-sao { top: 35%; left: 25%; }
.map-location_item.is-ind { top: 36.5%; left: 70%; }
.map-location_item.is-ant { top: 52%; left: 48%; }
.is-white { color: #fff; }

/* ---------- basic banner (CTA) ---------- */
.basic-banner { position: relative; z-index: 4; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 100svh; overflow: hidden; }
.basic-banner_bg { position: absolute; inset: 0; z-index: 0; }
.basic-banner_overlay { position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.2); }
.basic-banner_content { position: relative; z-index: 2; width: 100%; color: var(--white); text-align: center; }
.basic-banner_layout { width: 100%; }
.basic-banner_inner { display: flex; flex-direction: column; align-items: center; }
.large-btn_hover .btn-standard { color: #fff; }

/* small "Watch Film" pill on banners */
.banner-vid_wrap, .fixed-banner_button-wrap, .about-banner_button-wrap {
  position: absolute; right: var(--s-125); bottom: var(--s-125); z-index: 3; width: auto; height: var(--s-375);
  padding: var(--s-03125); padding-right: var(--s-125); overflow: clip; border-radius: var(--r-sm); background: rgba(31,42,68,.15);
}
.banner-vid_wrap { background: var(--c-dark-blue-faded); }
.btn-video-popup { position: relative; width: 100%; height: 100%; color: #fff; background: none; border: 0; cursor: pointer; }
.btn-video-popup-content { display: flex; align-items: center; gap: var(--s-125); height: 100%; }
.btn-video_popup-vid { position: relative; display: flex; align-items: center; justify-content: center; width: 5em; height: 3em; aspect-ratio: 16 / 9; overflow: clip; border-radius: var(--r-0125); }
.btn-video_popup-vid .img-fill { position: absolute; inset: 0; }
.btn-video_popup-play { position: relative; z-index: 1; display: flex; color: #fff; }

/* ---------- mobile ---------- */
@media (max-width: 767px) {
  .hero-banner_title { font-size: var(--s-5); }
  .hero-banner_title-inner { grid-column-start: 1; display: flex; align-items: center; justify-content: center; }
  .hero-banner_layout { display: flex; flex-direction: column; justify-content: flex-end; gap: 20svh; height: 100%; margin-bottom: 1.5rem; }
  .hero-banner_col.col-3.left-col { padding-inline: calc(var(--s-375) - 10px); text-align: center; }
  .hero-banner_col .t-title-italic { font-size: var(--s-125); }
  .hero-banner_col.col-3.offset-10 { width: 100%; padding-inline: calc(var(--s-375) - 10px); }
  .hero-banner_contain { height: 100%; }
  .is-home .hero-banner_content { grid-template-rows: 1fr 1fr; }
  .hero-banner_title-basic { font-size: var(--s-325); }
  .hero-banner_subtitle { font-size: var(--s-1); letter-spacing: .3rem; }
  .home-intro_col { grid-column: 2 / span 6; }
  .home-section .home-intro_col { grid-column: 2 / span 7; }
  .home-quote_svg { position: relative; }
  .wd-mnt .img-fill { object-position: 77% 50%; top: 10% !important; }
  .tall-parallax-banner_inner .container-large { position: relative; padding-top: var(--s-10); }
  .scribble-el.title-section_svg { position: relative; width: 100%; max-width: 40em; top: 80%; left: 50%; transform: translate(-50%) translateY(-30%); }
  .card-flick_grid { flex-direction: column; gap: var(--s-0625); }
  .card-flick_item { width: 100% !important; border-radius: var(--r-sm); }
  .card-flick_content { width: 100%; padding: 1.25rem 1.25rem var(--s-1875); opacity: 1 !important; }
  .card-flick_overlay { display: none; }
  .card-flick_meta { flex-wrap: wrap; row-gap: var(--space-2); }
  .is-simple.card-flick_item { height: 65svh; }
  .has-card-simple .card-flick_title { font-size: var(--s-225); line-height: var(--lh-110); }
  .cardflick-wrap .padding-medium { padding-top: var(--s-125); }
  .title-fade_wrap--desktop { display: none; }
  .title-fade_wrap--mobile { display: block; }
  .horizontal-scroll_title { font-size: var(--s-375); }
  .horizontal-scroll_content .layout-col.col-2 { grid-column: 2 / span 6; }
  .horizontal-scroll_panel:not(:first-child) { width: 100vw; padding-right: 0; padding-inline: var(--s-125); }
  .horizontal-scroll_camp-card { width: 100%; aspect-ratio: 4 / 5; }
  .horizontal-scroll_panel .layout-col.col-4.offset-4 { grid-column: 1 / 10; }
  .horizontal-scroll_panel .t-body_quote { font-size: var(--s-15); }
  .title-fade { font-size: var(--s-125x); text-align: center; }
  .ct-antartica_content .u-grid { display: flex; justify-content: center; }
  .horizontal-scroll_camp-content { row-gap: var(--s-125); }
  .horizontal-scroll_camp-excerpt { max-width: 100%; }
  .horizontal-scroll_camp-card_inner { padding: var(--s-25) var(--s-125); }
  .travel-globe_head-layout { position: relative; row-gap: var(--s-5); }
  .travel-globe_head-col_left { grid-area: 1 / 1 / auto / 5; text-align: left; }
  .travel-globe_head-col_right { grid-area: 1 / 6 / auto / 10; text-align: right; }
  .travel-globe_head-col_center { grid-area: 2 / 2 / auto / 8; }
  .travel-globe_head { padding-bottom: var(--s-5); }
  .globe-sticky_outer { position: relative; top: 0; height: auto; pointer-events: none; }
  .globe-sticky_wrap { position: sticky; top: 0; height: auto; padding: var(--s-0625); }
  .globe-sticky_layout.u-grid { display: flex; flex-direction: column-reverse; gap: var(--s-0625); }
  .globe-sticky_info-item .h3 { font-size: var(--s-2); }
  .globe-video_wrap .btn-image .btn-content-wrapper { width: auto; column-gap: var(--s-125); }
  .map-location_item .layout-title_md, .map-location_item .t-title-italic { font-size: var(--s-0625); }
  .map-location_item.is-sao { left: 10%; }
  .map-location_item.is-ind { top: 37.5%; left: 75%; }
  .map-location_item { row-gap: var(--s-03125); }
  .flight-svg_point.is-start { left: 53%; }
  .basic-banner_layout { display: flex; width: 100%; padding-inline: var(--s-3); }
  .banner-vid_wrap, .fixed-banner_button-wrap { right: auto; bottom: var(--s-5); height: var(--s-3125); }
  .btn-video_popup-vid { width: auto; height: 100%; }
}

/* ==========================================================================
   Trips index: itinerary list with pinned season labels
   ========================================================================== */
.itineraries-section { position: relative; background: var(--white); }
.itinerary-item { position: relative; z-index: 2; align-items: flex-start; width: 100%; }
.itinerary-item_link { display: block; height: 75svh; }
.itineraries-left { padding-right: var(--s-125); padding-bottom: var(--s-125); }
.itinerary-item:first-child .itineraries-left { padding-top: var(--s-5625); }
.itineraries-left p.t-title-italic { text-wrap: balance; }
.itinerary-item_inner { position: relative; width: 100%; height: 100%; overflow: hidden; }
.itinerary-item_image { position: absolute; inset: 0; overflow: hidden; }
.itinerary-item_image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 0%, rgba(0,0,0,.1) 50%, rgba(0,0,0,.1) 100%); transition: opacity .4s; }
.itinerary-item_image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.4,0,.2,1); }
.itinerary-item_content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; width: 30vw; padding: var(--space-6); color: var(--white); pointer-events: none; }
.itinerary-item_content-inner { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; height: 100%; }
.itinerary-item_header { display: flex; flex-direction: column; gap: var(--space-2); max-width: 30ch; }
.itinerary-item_title { margin: 0; font-size: var(--s-2625); line-height: var(--lh-100); text-wrap: balance; }
.itinerary-item_footer { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.itinerary-item_excerpt { margin: 0; font-size: var(--s-1); line-height: var(--lh-140); }
.itinerary-item .btn-mobile { color: #fff; }
.itinerary-item_line { width: .5px; height: 100%; background: linear-gradient(#fff 50%, transparent 50%) 0 0 / 1px 3px repeat-y; }

/* ==========================================================================
   Camp card stack
   ========================================================================== */
.large-card_section { padding-bottom: var(--s-155); }
.our-camps .large-card_section { padding-bottom: 0; }
.large-card_stack-item { position: relative; z-index: 2; }
.camp-card { display: block; width: 100%; height: 100%; overflow: hidden; }
.camp-card_inner { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100svh; color: #fff; text-align: center; }
.camp-card_image { position: absolute; inset: 0; }
.camp-card_content { position: relative; }
.card-title { font: var(--display-w) var(--s-375)/var(--lh-100) var(--font-display); text-transform: uppercase; letter-spacing: var(--display-track); text-align: center; }
.camp-coordinates { font: 500 var(--s-0875)/var(--lh-120) var(--font-condensed); }
.card-excerpt_wrap { max-width: 25em; margin: 0 auto; }

@media (max-width: 767px) {
  .itineraries-left { display: none; }
  .itineraries-wrap { display: flex; flex-direction: column; row-gap: var(--s-1875); }
  .itinerary-item_content { width: 100%; padding: var(--s-125) var(--s-125) var(--s-1875); }
  .itinerary-item_meta { flex-wrap: wrap; row-gap: var(--space-2); }
  .itinerary-item.u-grid.no-gap { overflow: clip; border-radius: var(--r-sm); }
  .itineraries-section { padding-bottom: var(--s-10); }
  .card-title { font-size: var(--s-2); }
  .camp-card_content { padding-inline: var(--s-375); }
  .large-card_stack-item .camp-card_content { height: 100%; padding: var(--s-375); }
  .large-card_stack-item .camp-coordinates { order: 3; margin-top: auto; }
  .card-excerpt_wrap { display: flex; flex-direction: column; row-gap: var(--s-125); }
  .camp-card_content .v-flex_center { height: 100%; }
}

/* ---- detail.css ---- */
/* ==========================================================================
   Detail templates: fixed hero, chapter banners, split sliders, quote,
   gallery, day-by-day scrub, image intro + mist, simple cards.
   Values follow the measured reference layout; the stylesheet is original.
   ========================================================================== */

/* ---------- fixed hero banner ---------- */
.fixed-banner-loader { position: relative; z-index: 0; }
.fixed-banner { position: relative; z-index: 1; width: 100%; }
.fixed-banner_fade { position: absolute; top: 0; left: 0; z-index: 2; width: 100vw; height: 100svh; background: #000; opacity: 0; pointer-events: none; }
.fixed-banner_bg { position: absolute; top: 0; left: 0; z-index: 0; width: 100vw; height: 100svh; }
.fixed-banner_bg.is-true-fixed { position: fixed; }
.fixed-banner_bg img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fixed-banner_bg .dim { position: absolute; top: 0; left: 0; z-index: 1; width: 100%; height: 100%; background: rgba(0,0,0,var(--dim-opacity,.3)); }
.fixed-banner_content { position: relative; z-index: 0; width: 100%; height: var(--banner-height, 100svh); opacity: 0; }
.fixed-banner_inner {
  position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s-2);
  width: 100%; height: 100%; padding: calc(8em + 90px) var(--s-2) var(--s-875);
}
.fixed-banner_inner--small h1, .fixed-banner_inner--large h1 { color: #fff; text-align: center; font: var(--display-w) var(--s-375)/1 var(--font-display); transition: opacity 1s ease-in-out; }
.fixed-banner_inner--large h1 { text-transform: uppercase; letter-spacing: var(--display-track); }
.fixed-banner_inner h1.is-italic { font-style: italic; font-weight: var(--display-it); letter-spacing: 0; }
.fixed-banner_inner h1.is-capital { text-transform: uppercase; }
.fixed-banner_inner--small p, .fixed-banner_inner--large p { width: 100%; max-width: 31.375em; color: #fff; text-align: center; font: 500 var(--s-1)/1.4 var(--font-sans); transition: opacity 1s ease-in-out; }
.fixed-banner_inner--large p { max-width: 40em; text-wrap: balance; }
.fixed-banner_inner p.fixed-banner_coordinates { position: absolute; bottom: var(--s-125); left: 50%; width: auto; font: 500 var(--s-0875)/var(--lh-120) var(--font-condensed); transform: translate(-50%, -100%); }
.itinerary-meta_wrap { display: flex; flex-direction: column; align-items: center; row-gap: var(--s-0625); }

/* ---------- pill nav: active chapter label ---------- */
.cta-nav_list { transition: pointer-events 0s linear .3s; }
.cta-nav.is-active .cta-nav_list { pointer-events: none; }
.cta-nav_active-label {
  position: absolute; top: 50%; left: 50%; z-index: 3; font: 500 var(--s-0875)/var(--lh-150) var(--font-sans);
  white-space: nowrap; opacity: 0; pointer-events: none; transform: translate(-50%, -50%);
}
.cta-nav_list, .cta-nav_item { z-index: 3; }

/* ---------- chapter banner ---------- */
.editorial-banner { position: relative; z-index: 3; width: 100%; height: 100svh; overflow: hidden; color: var(--white); text-align: center; }
.editorial-banner--extended { height: auto; min-height: 100svh; padding-bottom: var(--s-10); overflow: visible; }
.editorial-banner_bg { position: absolute; inset: 0; z-index: 0; }
.editorial-banner_bg img, .editorial-banner_video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.editorial-banner_overlay { position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.2); }
.editorial-banner_content { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.editorial-banner--extended .editorial-banner_content { height: 100svh; }
.editorial-banner_eyebrow { margin-bottom: var(--s-475); font: 500 var(--s-1125)/var(--lh-140) var(--font-condensed); letter-spacing: .5em; text-transform: uppercase; text-align: center; }
.editorial-banner_layout { width: 100%; }
.editorial-banner_extended-content { position: relative; z-index: 2; width: 100%; }

/* ---------- trip sections: slider + drifting text ---------- */
.trip-sections_wrap { display: flex; flex-direction: column; row-gap: var(--s-20); padding-block: var(--s-20); }
.trip-sections_wrap.no-padding-bottom { padding-bottom: 0; }
.sticky-split_slider { position: relative; z-index: 2; }
.sticky-split_grid { align-items: center; }
.sticky-split_grid.is-reversed > .sticky-col, .sticky-split_grid.is-reversed > .sticky-col_scrub { grid-row: 1; }
.sticky-col_scrub h4 { font: 500 var(--s-1125)/var(--lh-120) var(--font-condensed); text-transform: uppercase; }
.editorial-wrap .sticky-col_scrub { padding-top: var(--s-10); }
.trips-centered_flex { display: flex; flex-direction: column; row-gap: var(--s-5); }
.trips-centered_layout-media .split-slider_wrap { aspect-ratio: 16 / 9; border-radius: 0; }

.split-slider { position: relative; }
.split-slider_wrap { position: relative; width: 100%; aspect-ratio: 1 / 1.01; overflow: hidden; border-radius: var(--r-sm); }
.split-slider_item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; }
.split-slider_image { position: absolute; inset: 0; }
.split-slider_image, .split-slider_video { width: 100%; height: 100%; object-fit: cover; }
.split-slider_nav { position: absolute; bottom: var(--s-125); left: 50%; z-index: 3; display: flex; align-items: center; gap: var(--s-0625); transform: translate(-50%); }
.split-slider_nav-btn, .gallery-slider_nav-btn {
  position: relative; display: flex; align-items: center; justify-content: center; width: var(--s-375); height: var(--s-175);
  padding: var(--s-05); overflow: hidden; color: #fff; cursor: pointer; background: var(--c-dark-blue-faded); border: none; border-radius: var(--r-sm);
  transition: var(--tr-in-out);
}
.split-slider_nav-btn .icon { position: relative; z-index: 3; }
@media (hover: hover) and (pointer: fine) { .split-slider_nav-btn:hover { color: var(--c-orange); background-color: var(--white); } }

/* ---------- quote over a sinking image ---------- */
.quote-section { height: 150svh; }
.quote-sticky { position: absolute; inset: 0; width: 100%; height: 100%; }
.quote-section .t-body_italic { font-size: var(--s-2); }
.above-overlay { z-index: 1; }

/* ---------- full-screen gallery ---------- */
.gallery-slider { position: relative; z-index: 2; }
.gallery-slider_wrap { position: relative; width: 100%; height: 100svh; overflow: hidden; border-radius: var(--r-sm); cursor: pointer; }
.is-single .gallery-slider_wrap { cursor: default; }
.gallery-slider_zone { position: absolute; top: 0; z-index: 1; width: 50%; height: 100%; padding: 0; cursor: pointer; background: none; border: none; }
.gallery-slider_zone:disabled { opacity: .5; }
.gallery-slider_zone--left { left: 0; }
.gallery-slider_zone--right { right: 0; }
.gallery-slider_item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; }
.gallery-slider_image { position: absolute; inset: 0; }
.gallery-slider_image, .gallery-slider_video { width: 100%; height: 100%; object-fit: cover; }
.gallery-title_wrap { padding-bottom: var(--s-2); }
.gallery-slider_title { font: italic var(--display-it) var(--s-2)/var(--lh-120) var(--font-display); }
.gallery-slider_ui { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; color: var(--white); pointer-events: none; }
.gallery-slider_ui-layout { position: relative; display: flex; align-items: flex-end; justify-content: space-between; width: 100%; height: 100svh; padding-bottom: var(--s-125); }
.gallery-slider_ui-left { position: relative; width: var(--s-20); padding: var(--s-125); overflow: clip; border-radius: var(--r-sm); background: rgba(31,42,68,.2); pointer-events: auto; }
.gallery-slider_ui-left.is-hidden { visibility: hidden; }
.gallery-slider_info { position: relative; z-index: 3; width: 100%; height: 100%; }
.gallery-slider_info-title { display: flex; align-items: center; justify-content: space-between; }
.gallery-slider_info-dropdown { display: grid; grid-template-rows: 0fr; overflow: hidden; transition: var(--tr-in-out); }
.gallery-slider_info.info-open .gallery-slider_info-dropdown { grid-template-rows: 1fr; }
.gallery-slider_info-dropdown-inner { overflow: hidden; }
.gallery-slider_info-dropdown-content { padding-top: var(--s-25); padding-bottom: var(--s-375); }
.gallery-slider_info-dropdown-content .t-body { opacity: 0; transition: opacity 1s; }
.gallery-slider_info.info-open .gallery-slider_info-dropdown-content .t-body { opacity: 1; }
.gallery-slider_thumbs-wrap { display: flex; gap: var(--s-03125); pointer-events: auto; }
.gallery-slider_thumb {
  position: relative; display: flex; flex-shrink: 0; align-items: center; justify-content: center;
  width: var(--s-25); height: var(--s-375); overflow: hidden; border-radius: var(--r-sm); cursor: pointer; pointer-events: all;
}
.gallery-slider_thumb-image, .gallery-slider_thumb-video { position: absolute; height: 100%; width: var(--s-5) !important; object-fit: cover; }

/* ---------- day-by-day itinerary scrub ---------- */
.itinerary-sticky { padding-left: calc(var(--s-375) - var(--s-075)); padding-bottom: var(--s-375); }
.itinerary-sticky.col-4 {
  position: sticky; top: 0; display: flex; flex-direction: column; justify-content: space-between;
  height: 100svh; padding-top: var(--s-5); padding-right: var(--s-3125);
}
.itinerary-sticky.standalone-center { align-items: flex-start; justify-content: center; padding-inline: 0; text-align: center; }
.itinerary-sticky.standalone-center .itinerary-sticky_bottom { max-width: 26rem; padding: var(--s-3); text-align: left; }
.itinerary-sticky.standalone-center .itinerary-sticky_bottom p.t-title-italic { font: 500 var(--s-1125)/var(--lh-120) var(--font-condensed); text-transform: uppercase; }
.itinerary-sticky.standalone-center .itinerary-sticky_bottom p.t-body { opacity: 1; }
.itinerary-scrub_layout { height: calc(75svh * var(--item-count, 8)); }
.itinerary-scrub_col { width: 50%; height: 100%; }
.itinerary-scrub_wrap { position: sticky; top: 0; z-index: 2; height: 100svh; padding-block: var(--s-3125); }
.itinerary-scrub_inner { display: flex; width: 100%; height: 100%; overflow: clip; border-radius: var(--r-sm); background-color: var(--c-grey); }
.itinerary-scrub_col.itinerary-scrub_left { position: relative; overflow: hidden; }
.itinerary-scrub_item { position: relative; width: 100%; padding: 0 var(--s-25); overflow: hidden; border-bottom: 1px solid var(--dark-bg); background-color: var(--c-grey); }
.itinerary-scrub_item:last-child { border-bottom: none; }
.itinerary-scrub_item-inner { display: flex; flex-direction: column; width: 100%; transition: var(--tr-in-out); }
.itinerary-scrub_item-num { overflow: hidden; }
.itinerary-scrub_item-num-inner { padding-top: var(--s-2); padding-bottom: var(--s-10); overflow: hidden; }
.itinerary-scrub_item-title { display: flex; align-items: center; height: var(--s-375); }
.itinerary-scrub_item-content { overflow: hidden; }
.itinerary-scrub_item-content-inner { padding-bottom: var(--s-2625); overflow: hidden; }
.itinerary-scrub_col.itinerary-scrub_right { position: relative; }
.itinerary-scrub_media-wrap { position: absolute; top: 0; left: 0; width: 100%; height: 100%; clip-path: inset(0); }
.itinerary-scrub_media-wrap[data-media-index="0"] { z-index: 1; } .itinerary-scrub_media-wrap[data-media-index="1"] { z-index: 2; }
.itinerary-scrub_media-wrap[data-media-index="2"] { z-index: 3; } .itinerary-scrub_media-wrap[data-media-index="3"] { z-index: 4; }
.itinerary-scrub_media-wrap[data-media-index="4"] { z-index: 5; } .itinerary-scrub_media-wrap[data-media-index="5"] { z-index: 6; }
.itinerary-scrub_media-wrap[data-media-index="6"] { z-index: 7; } .itinerary-scrub_media-wrap[data-media-index="7"] { z-index: 8; }
.itinerary-scrub_media { width: 100%; height: 100%; object-fit: cover; }
.itinerary-scrub_media-video-wrap { position: relative; width: 100%; height: 100%; }
.itinerary-scrub_media-overlay { position: absolute; inset: 0; background-color: var(--dark-bg); opacity: 0; pointer-events: none; }
@media (max-width: 991px) { .itinerary-scrub_item { cursor: pointer; } }

/* ---------- three-image intro opening into a mist ---------- */
.entertainment-intro { position: relative; z-index: 1; }
.entertainment-imgs_outer { height: 200svh; }
.entertainment-imgs_inner { display: flex; justify-content: center; height: 100svh; padding-inline: var(--s-075); }
.entertainment-img { position: relative; width: 33.3333%; overflow: clip; }
.entertainment-img.entertain-sticky { flex: none; }
.entertainment-img_wrap { position: relative; width: 100%; height: 100%; overflow: clip; }
.entertainment-img.is-left .entertainment-img_wrap { max-width: calc(100% - var(--s-075)); }
.entertainment-img.is-right .entertainment-img_wrap { max-width: calc(100% - var(--s-075)); margin-left: auto; }
.entertainment-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.clouds-divider { position: absolute; inset: 0; overflow: clip; }
.clouds-divider img { max-width: none; }

/* ---------- simple cards ---------- */
.card-simple { position: relative; z-index: 2; height: 75svh; overflow: clip; text-align: center; }
.card-simple_media { position: absolute; inset: 0; width: 100%; height: 100%; }
/* stand-in display face runs ~2-4% narrower than the reference face; narrowing the measure
   reproduces the reference line breaks of these fixed-width card titles at 1440 and 390 */
.card-simple .t-modal-header { max-width: 96%; }
.card-simple_media img, .card-simple_media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.card-simple_content {
  position: absolute; inset: 0; z-index: 1; display: flex; align-items: flex-end; justify-content: center; width: 100%; height: 100%;
  padding: var(--s-25); opacity: 0;
  background: linear-gradient(transparent 46.71%, rgba(0,0,0,.2) 100%), linear-gradient(rgba(0,0,0,.2) 0%, rgba(0,0,0,.2) 100%);
}
.card-simple_overlay {
  position: absolute; inset: 0; z-index: 1; opacity: 0; pointer-events: none; transition: var(--tr-out);
  background: linear-gradient(transparent 46.71%, rgba(0,0,0,.5) 100%), linear-gradient(rgba(0,0,0,.2) 0%, rgba(0,0,0,.2) 100%);
}
@media (hover: hover) and (pointer: fine) {
  .card-simple:hover .card-simple_content, .card-simple.is-active .card-simple_content,
  .card-simple:hover .card-simple_overlay, .card-simple.is-active .card-simple_overlay { opacity: 1; }
}

/* ---------- mobile ---------- */
@media (max-width: 768px) {
  .entertainment-imgs_inner { position: relative; height: 100svh; padding-inline: 0; }
  .entertainment-img { position: absolute; top: 0; left: 0; width: 100% !important; height: 100svh; }
  .entertainment-img.is-left .entertainment-img_wrap, .entertainment-img.is-right .entertainment-img_wrap { max-width: 100%; height: 100%; margin: 0; }
  .entertainment-img.entertain-sticky { width: 100% !important; }
  .entertainment-imgs_outer { height: 100svh; }
}
@media (max-width: 767px) {
  .fixed-banner_inner--small h1, .fixed-banner_inner--large h1 { font-size: var(--s-2); }
  .fixed-banner_content { height: var(--banner-mobile-height, 100svh); }

  .editorial-banner .section-title { font-size: var(--s-2); }
  .editorial-banner_layout { display: flex; flex-direction: column; width: 100%; padding-inline: var(--s-125); }
  .editorial-banner_eyebrow { font-size: var(--s-1); letter-spacing: .3rem; }

  .trip-sections_wrap { padding-block: var(--s-10); row-gap: var(--s-5); }
  .sticky-col, .sticky-col_scrub { width: 100%; grid-column: 1 / -1 !important; }
  .sticky-split_slider .sticky-split_grid.u-grid.no-gap { display: flex; flex-direction: column-reverse; row-gap: var(--s-5); }
  .editorial-wrap .sticky-col_scrub { padding-top: var(--s-5); }

  .quote-section { display: flex; align-items: center; height: 100svh; }
  .quote-section .t-body_italic { font-size: var(--s-15); }
  .quote-section .m-flex .v-flex_left-xs { align-items: flex-start; }

  .gallery-slider_ui-layout { flex-direction: column; align-items: center; justify-content: space-between; height: 90svh; padding-block: var(--s-125); }
  .gallery-slider_wrap { height: 90svh; }
  .gallery-slider_ui-left { width: 100%; }
  .gallery-slider .gallery-title_wrap.container-small { max-width: calc(100% - 1.5em); }
  .gallery-title_wrap { padding-bottom: var(--s-3); }

  .itinerary-sticky.col-4 { position: relative; order: 2; width: 100%; height: auto; padding: 0; padding-inline: calc(var(--s-375) - var(--s-075)); }
  .itinerary-sticky_head { display: none; }
  .itinerary-scrub_wrap { position: relative; height: auto; }
  .itinerary-scrub_col.itinerary-scrub_right { display: none; }
  .itinerary-scrub_col { width: 100%; height: auto; }
  .itinerary-scrub_item { padding: 0 var(--s-125); border-radius: var(--r-sm); }
  .itinerary-scrub_item-num-inner .h3 { font-size: var(--s-2625); }
  .itinerary-scrub_item.item-expanded .itinerary-scrub_item-inner { display: flex; flex-direction: column; row-gap: var(--s-125); }
  .itinerary-scrub_item-title { height: auto; }
  .itinerary-scrub_items-wrapper { display: flex; flex-direction: column; row-gap: var(--s-0625); }
  .itinerary-scrub_inner { background-color: transparent; }
  .itinerary-scrub_item-num-inner { padding-bottom: var(--s-425); }
  .itinerary-scrub_layout { height: auto; }
  .itinerary-scrub_layout.u-grid.no-gap { display: flex; flex-direction: column; }

  .cards-simple-section .container-small { width: 100%; max-width: calc(100% - 1.5em); margin-inline: auto; }
  .cards-simple-section .u-grid { display: flex; column-gap: 0; }
  .card-simple { flex: none; grid-column-end: 12; width: 100%; height: auto; aspect-ratio: 5 / 8; }
  .card-simple_content { opacity: 1; }
  .cards-simple_overflow { width: auto; }
  .u-grid.no-gap.overflow-wrap { width: 100%; padding-inline: var(--s-075); overflow: auto; }
}

.export-missing{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:#0e1118;color:#fff;font:500 15px/1.5 "Inter Tight",system-ui,sans-serif}
.export-missing div{max-width:34rem}.export-missing h1{font:500 2rem/1.1 "Display Serif",Georgia,serif;text-transform:uppercase;margin:.5rem 0 1rem}
.export-missing_eyebrow{font:500 .8rem/1 Oswald,sans-serif;letter-spacing:.3em;text-transform:uppercase;opacity:.6}.export-missing_path{opacity:.6;margin-bottom:1.25rem}
.export-missing ul{margin:.5rem 0 0;padding:0;list-style:none}.export-missing li{padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.12)}.export-missing a{color:#ff7e15}
