:root {
  --navy: #050b1a;
  --navy-2: #091124;
  --navy-3: #11192d;
  --slate: #313646;
  --orange: #e88028;
  --orange-soft: #f0a35e;
  --white: #fffdf9;
  --muted: #bfc3cc;
  --line: rgba(255, 255, 255, 0.14);
  --page-pad: clamp(1.25rem, 5vw, 5rem);
  --content: 1200px;
}

/* Membership — Figma frame */
body[data-page="membership"] .membership-hero {
  padding-top: 0;
  overflow: hidden;
  background: #050b1a;
}

body[data-page="membership"] .membership-collage {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  overflow: hidden;
  background: #050b1a;
}

body[data-page="membership"] .membership-collage::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2, 7, 18, 0.48) 0%, transparent 31%, rgba(2, 7, 18, 0.12) 78%, rgba(2, 7, 18, 0.28) 100%);
}

body[data-page="membership"] .membership-collage img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2202 / 1152;
  object-fit: cover;
  filter: brightness(0.92) saturate(0.96);
  animation: membershipCollageBreath 13s ease-in-out infinite alternate;
}

body[data-page="membership"] .membership-main {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  align-items: center;
  gap: clamp(3.5rem, 7vw, 7.2rem);
  padding: clamp(4.5rem, 7vw, 7.2rem) clamp(2rem, 5vw, 5.5rem) clamp(5.5rem, 8vw, 8.2rem);
  background: #050b1a;
}

body[data-page="membership"] .membership-main::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  left: 16%;
  bottom: -30%;
  border-radius: 50%;
  background: rgba(232, 128, 40, 0.05);
  filter: blur(80px);
  pointer-events: none;
}

body[data-page="membership"] .membership-main__copy {
  position: relative;
  z-index: 2;
  max-width: 710px;
}

body[data-page="membership"] .membership-title-lockup {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 1.7rem);
  margin-bottom: 1.7rem;
}

body[data-page="membership"] .membership-title-lockup img {
  width: clamp(82px, 8.4vw, 122px);
  aspect-ratio: 1;
  border-radius: 50%;
  clip-path: circle(48% at 50% 50%);
  object-fit: cover;
}

body[data-page="membership"] .membership-title-lockup span {
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 3.65vw, 4rem);
  line-height: 1;
  letter-spacing: -0.025em;
}

body[data-page="membership"] .membership-kicker {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1.15rem;
  color: var(--orange-soft);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(0.84rem, 1.25vw, 1.1rem);
  letter-spacing: 0.01em;
  text-transform: capitalize;
}

body[data-page="membership"] .membership-kicker::before,
body[data-page="membership"] .membership-kicker::after {
  content: "";
  width: clamp(38px, 6vw, 76px);
  height: 1px;
  flex: 0 0 auto;
  background: rgba(232, 128, 40, 0.72);
}

body[data-page="membership"] .membership-main h1 {
  margin: 0 0 1.45rem;
  color: #fff;
  font-size: clamp(2.8rem, 4.7vw, 4.85rem);
  line-height: 0.98;
  letter-spacing: -0.035em;
}

body[data-page="membership"] .membership-main h1 .motion-word {
  display: inline;
  margin: 0;
  color: inherit;
  font-size: inherit;
}

body[data-page="membership"] .membership-main__copy > p:not(.membership-kicker) {
  max-width: 690px;
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(0.9rem, 1.15vw, 1.05rem);
  line-height: 1.65;
}

body[data-page="membership"] .membership-join-button,
body[data-page="membership"] .membership-apply-button {
  gap: 0.55rem;
  min-width: 168px;
  min-height: 49px;
  margin-top: 1.75rem;
  padding-inline: 1.8rem;
  border-radius: 2px;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body[data-page="membership"] .membership-join-button > svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: #fff;
}

body[data-page="membership"] .membership-video {
  position: relative;
  justify-self: end;
  width: min(100%, 610px);
  padding: 0;
  border: 0;
  background: transparent;
}

body[data-page="membership"] .membership-video img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 296 / 384;
  object-fit: contain;
  filter: drop-shadow(0 28px 52px rgba(0, 0, 0, 0.24));
}

body[data-page="membership"] .membership-video span {
  position: absolute;
  top: 49%;
  left: 50%;
  width: clamp(58px, 5vw, 76px);
  height: clamp(58px, 5vw, 76px);
  display: grid;
  place-items: center;
  padding-left: 4px;
  border-radius: 50%;
  background: var(--orange);
  color: #fff;
  font-size: clamp(1rem, 1.5vw, 1.35rem);
  transform: translate(-50%, -50%);
}

body[data-page="membership"] .membership-video span svg {
  display: block;
  width: 32%;
  height: 32%;
  fill: #fff;
}

body[data-page="membership"] .membership-benefits-section {
  padding: clamp(5rem, 8vw, 8rem) clamp(1.5rem, 4vw, 4.5rem) clamp(3.8rem, 6vw, 6rem);
  background: #091327;
}

body[data-page="membership"] .membership-benefits-section .section-heading {
  max-width: 900px;
  margin: 0 auto clamp(2.5rem, 4vw, 4rem);
}

body[data-page="membership"] .membership-benefits-section h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.6rem, 4.3vw, 4.5rem);
  letter-spacing: -0.03em;
}

body[data-page="membership"] .membership-benefits-section .section-heading > p {
  margin: 0.9rem auto 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: clamp(0.85rem, 1.05vw, 1rem);
}

body[data-page="membership"] .membership-apply-button {
  margin: 1.55rem auto 0;
  min-width: 142px;
  min-height: 42px;
  padding: 0.65rem 1.45rem;
  font-size: 0.66rem;
}

body[data-page="membership"] .membership-benefits {
  width: min(100%, 1380px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

body[data-page="membership"] .membership-benefits article {
  min-height: 230px;
  padding: 1.65rem 1.4rem 1.8rem;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 8px 8px 0 0;
  background: rgba(9, 18, 37, 0.64);
  text-align: center;
  transition: transform 350ms cubic-bezier(0.16, 1, 0.3, 1), border-color 300ms ease, background 300ms ease;
}

body[data-page="membership"] .membership-benefits article:hover {
  transform: translateY(-7px);
  border-color: rgba(232, 128, 40, 0.55);
  background: rgba(14, 27, 51, 0.9);
}

body[data-page="membership"] .membership-benefits svg {
  width: 42px;
  height: 42px;
  margin-bottom: 0.9rem;
  fill: none;
  stroke: var(--orange);
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body[data-page="membership"] .membership-benefits h3 {
  margin: 0 0 0.75rem;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 1.6vw, 1.65rem);
  font-weight: 600;
}

body[data-page="membership"] .membership-benefits p {
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.66);
  font-size: clamp(0.75rem, 0.88vw, 0.86rem);
  line-height: 1.58;
}

body[data-page="membership"] .membership-next-section,
body[data-page="membership"] .membership-rewards-section,
body[data-page="membership"] .membership-how-section {
  background: #050b1a;
}

body[data-page="membership"] .membership-next-section {
  padding: clamp(5rem, 8vw, 8rem) clamp(1.5rem, 7vw, 7.8rem) clamp(2.1rem, 3vw, 3.2rem);
}

body[data-page="membership"] .membership-section-heading {
  max-width: 960px;
  margin: 0 auto clamp(2.4rem, 4.2vw, 4rem);
  text-align: center;
}

body[data-page="membership"] .membership-section-heading h2 {
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.65rem, 4.25vw, 4.35rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
}

body[data-page="membership"] .membership-section-heading > p {
  max-width: 780px;
  margin: 1rem auto 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(0.86rem, 1.05vw, 1rem);
  line-height: 1.7;
}

body[data-page="membership"] .membership-next-track {
  width: min(100%, 1320px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
}

body[data-page="membership"] .membership-next-card {
  min-width: 0;
}

body[data-page="membership"] .membership-next-image {
  display: block;
  height: clamp(280px, 31vw, 450px);
  overflow: hidden;
  background: #11192d;
}

body[data-page="membership"] .membership-next-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 800ms cubic-bezier(0.16, 1, 0.3, 1), filter 450ms ease;
}

body[data-page="membership"] .membership-next-card:first-child .membership-next-image img {
  object-position: center 55%;
}

body[data-page="membership"] .membership-next-image:hover img,
body[data-page="membership"] .membership-next-image:focus-visible img {
  transform: scale(1.055);
  filter: saturate(1.05);
}

body[data-page="membership"] .membership-next-card > div {
  padding: 1.2rem 0 0;
}

body[data-page="membership"] .membership-next-card h3 {
  margin: 0 0 0.25rem;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 2.15vw, 2.2rem);
  font-weight: 600;
}

body[data-page="membership"] .membership-next-card p {
  margin: 0 0 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: clamp(0.82rem, 1vw, 0.96rem);
}

body[data-page="membership"] .membership-next-card > div > a {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  color: var(--orange);
  font-size: 0.78rem;
  font-weight: 600;
}

body[data-page="membership"] .membership-next-card > div > a span {
  font-size: 1.25rem;
  transition: transform 240ms ease;
}

body[data-page="membership"] .membership-next-card > div > a:hover span {
  transform: translateX(5px);
}

body[data-page="membership"] .membership-featured-callout {
  width: min(100%, 850px);
  margin: clamp(2.5rem, 4vw, 3.8rem) auto 0;
  text-align: center;
}

body[data-page="membership"] .membership-featured-callout h3 {
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 2.35vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
}

body[data-page="membership"] .membership-featured-callout p {
  max-width: 790px;
  margin: 1rem auto 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(0.9rem, 1.05vw, 1rem);
  line-height: 1.7;
}

body[data-page="membership"] .membership-featured-callout a {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 1.15rem;
  color: var(--orange);
  font-size: 0.82rem;
  font-weight: 700;
}

body[data-page="membership"] .membership-featured-callout a span {
  font-size: 1.15rem;
  transition: transform 240ms ease;
}

body[data-page="membership"] .membership-featured-callout a:hover span,
body[data-page="membership"] .membership-featured-callout a:focus-visible span {
  transform: translateX(5px);
}

body[data-page="membership"] .membership-rewards-section {
  padding: clamp(2.3rem, 3.5vw, 3.8rem) clamp(1.5rem, 6vw, 6.5rem) clamp(6rem, 9vw, 9rem);
}

body[data-page="membership"] .membership-rewards-section .membership-section-heading {
  margin-bottom: clamp(3.5rem, 6vw, 6rem);
}

body[data-page="membership"] .membership-rewards-section .membership-section-heading h3 {
  margin: 1rem 0 0;
  color: #fff;
  font-family: inherit;
  font-size: clamp(1rem, 1.4vw, 1.3rem);
}

body[data-page="membership"] .membership-rewards-section .membership-apply-button {
  display: inline-flex;
  margin: 1.25rem auto 0;
}

body[data-page="membership"] .membership-rewards-layout {
  width: min(100%, 1260px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 8rem);
}

body[data-page="membership"] .membership-rewards-photo,
body[data-page="membership"] .membership-how-photo {
  position: relative;
  isolation: isolate;
}

body[data-page="membership"] .membership-rewards-photo::before,
body[data-page="membership"] .membership-how-photo::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -18px 18px 18px -18px;
  border: 2px solid var(--orange);
}

body[data-page="membership"] .membership-rewards-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 0.78;
  object-fit: cover;
  object-position: 53% center;
}

body[data-page="membership"] .membership-tier-list {
  display: grid;
  gap: clamp(1.8rem, 3vw, 3rem);
}

body[data-page="membership"] .membership-tier {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: start;
  gap: 1.2rem;
}

body[data-page="membership"] .membership-tier-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 3px;
  color: #fff;
  font-size: 1.75rem;
}

body[data-page="membership"] .membership-tier--bronze .membership-tier-icon {
  border-color: var(--orange);
  background: var(--orange);
}

body[data-page="membership"] .membership-tier h3 {
  margin: 0 0 0.3rem;
  color: var(--orange-soft);
  font-family: inherit;
  font-size: clamp(1.3rem, 1.8vw, 1.75rem);
  font-weight: 600;
}

body[data-page="membership"] .membership-tier p {
  margin: 0.18rem 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.82rem, 1vw, 0.95rem);
  line-height: 1.55;
}

body[data-page="membership"] .membership-tier strong {
  color: #fff;
}

body[data-page="membership"] .membership-how-section {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.8fr);
  align-items: center;
  gap: clamp(3.5rem, 8vw, 8rem);
  padding: clamp(4.5rem, 8vw, 8rem) clamp(1.5rem, 7vw, 7.5rem) clamp(6rem, 10vw, 10rem);
}

body[data-page="membership"] .membership-how-copy {
  max-width: 720px;
}

body[data-page="membership"] .membership-how-copy h2 {
  margin: 0 0 1.35rem;
  color: #fff;
  font-size: clamp(3rem, 5vw, 5rem);
  line-height: 0.98;
}

body[data-page="membership"] .membership-how-copy ol {
  margin: 0 0 1.5rem;
  padding-left: 1.25rem;
  color: rgba(255, 255, 255, 0.8);
}

body[data-page="membership"] .membership-how-copy li,
body[data-page="membership"] .membership-how-copy p {
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.84rem, 1vw, 0.96rem);
  line-height: 1.6;
}

body[data-page="membership"] .membership-how-copy h3 {
  margin: 1.35rem 0 0.45rem;
  color: var(--orange);
  font-family: inherit;
  font-size: clamp(1rem, 1.4vw, 1.25rem);
}

body[data-page="membership"] .membership-how-copy p {
  margin: 0;
}

body[data-page="membership"] .membership-how-button {
  margin-top: 1.4rem;
  color: #fff;
  font-size: 0.7rem;
  text-transform: uppercase;
}

body[data-page="membership"] .membership-how-photo {
  width: min(100%, 520px);
  justify-self: end;
}

body[data-page="membership"] .membership-how-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 0.8;
  object-fit: cover;
  object-position: center;
}

body[data-page="membership"] .membership-stories-section,
body[data-page="membership"] .membership-adventures-section,
body[data-page="membership"] .membership-passport-section,
body[data-page="membership"] .membership-faq-section {
  background: #050b1a;
}

body[data-page="membership"] .membership-stories-section {
  padding: clamp(5rem, 8vw, 8rem) clamp(1.5rem, 8vw, 8.5rem);
  background:
    linear-gradient(135deg, rgba(255,255,255,.025), rgba(255,255,255,.07)),
    #171d28;
}

body[data-page="membership"] .membership-stories-heading {
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
  text-align: center;
}

body[data-page="membership"] .membership-stories-heading > p {
  margin: 0 0 .7rem;
  color: var(--orange);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

body[data-page="membership"] .membership-stories-heading h2 {
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.6rem, 4.3vw, 4.45rem);
  line-height: 1.02;
}

body[data-page="membership"] .membership-story-layout {
  width: min(100%, 1140px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 8rem);
}

body[data-page="membership"] .membership-story-media {
  position: relative;
  width: min(100%, 520px);
  border-radius: 8px;
  overflow: hidden;
  background: #0a1120;
}

body[data-page="membership"] .membership-story-media video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

body[data-page="membership"] .membership-story-layout blockquote {
  position: relative;
  margin: 0;
  padding: 2.4rem 1.5rem 2rem 4rem;
}

body[data-page="membership"] .membership-story-layout blockquote > p {
  margin: 0;
  color: rgba(255,255,255,.84);
  font-size: clamp(.83rem, 1.15vw, 1rem);
  line-height: 1.7;
}

body[data-page="membership"] .membership-quote-mark {
  position: absolute;
  left: 0;
  top: 0;
  color: var(--orange);
  font-family: Georgia, serif;
  font-size: 6.5rem;
  font-weight: 900;
  line-height: 1;
}

body[data-page="membership"] .membership-quote-mark--end {
  inset: auto 0 -1.2rem auto;
}

body[data-page="membership"] .membership-story-layout blockquote footer {
  margin-top: 1.55rem;
  display: flex;
  align-items: center;
  gap: .75rem;
}

body[data-page="membership"] .membership-story-layout blockquote footer img {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 22%;
}

body[data-page="membership"] .membership-story-layout blockquote footer span {
  display: grid;
}

body[data-page="membership"] .membership-story-layout blockquote footer strong {
  color: #fff;
  font-size: .84rem;
}

body[data-page="membership"] .membership-story-layout blockquote footer small {
  color: rgba(255,255,255,.58);
  font-size: .66rem;
}

body[data-page="membership"] .membership-adventures-section {
  padding: clamp(5rem, 8vw, 8rem) clamp(1.5rem, 7vw, 7.8rem) clamp(4rem, 7vw, 6rem);
}

body[data-page="membership"] .membership-adventure-grid {
  width: min(100%, 1260px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
}

body[data-page="membership"] .membership-adventure-grid article > a:first-child {
  height: clamp(270px, 30vw, 440px);
  display: block;
  overflow: hidden;
}

body[data-page="membership"] .membership-adventure-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 750ms cubic-bezier(.16,1,.3,1);
}

body[data-page="membership"] .membership-adventure-grid article:hover img {
  transform: scale(1.045);
}

body[data-page="membership"] .membership-adventure-grid h3 {
  margin: 1rem 0 .2rem;
  color: #fff;
  font-family: Georgia, serif;
  font-size: clamp(1.55rem, 2.1vw, 2.1rem);
}

body[data-page="membership"] .membership-adventure-grid p {
  margin: 0 0 .8rem;
  color: rgba(255,255,255,.72);
  font-size: .79rem;
}

body[data-page="membership"] .membership-adventure-grid article > a:last-child {
  color: var(--orange);
  font-size: .75rem;
  font-weight: 700;
}

body[data-page="membership"] .membership-adventure-grid article > a:last-child span {
  margin-left: .65rem;
}

body[data-page="membership"] .membership-adventure-controls {
  display: flex;
  justify-content: center;
  gap: .9rem;
  margin-top: 2.6rem;
}

body[data-page="membership"] .membership-adventure-controls button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0 0 2px;
  border: 1px solid var(--orange);
  border-radius: 50%;
  background: transparent;
  color: var(--orange);
  cursor: pointer;
}

body[data-page="membership"] .membership-passport-section {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: clamp(4rem, 7vw, 7rem) clamp(1.5rem, 5vw, 4rem);
  display: grid;
  grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}

body[data-page="membership"] .membership-passport-photo {
  position: relative;
}

body[data-page="membership"] .membership-passport-photo::before {
  content: "";
  position: absolute;
  inset: -15px 15px 15px -15px;
  z-index: 0;
  border: 1px solid var(--orange);
}

body[data-page="membership"] .membership-passport-photo img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: .78;
  display: block;
  object-fit: cover;
}

body[data-page="membership"] .membership-passport-section h2 {
  margin: 0 0 1rem;
  color: #fff;
  font-size: clamp(2.7rem, 4.5vw, 4.75rem);
  line-height: 1.02;
}

body[data-page="membership"] .membership-passport-section p {
  max-width: 650px;
  color: rgba(255,255,255,.74);
  font-size: clamp(.82rem, 1vw, .96rem);
  line-height: 1.7;
}

body[data-page="membership"] .membership-passport-section .button {
  margin-top: .7rem;
  color: #fff;
}

body[data-page="membership"] .membership-faq-section {
  padding: clamp(4rem, 7vw, 7rem) clamp(1.5rem, 8vw, 8rem) clamp(6rem, 9vw, 9rem);
}

body[data-page="membership"] .membership-faq-section .membership-section-heading {
  margin-bottom: 2.2rem;
}

body[data-page="membership"] .membership-faq-list {
  width: min(100%, 1050px);
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

body[data-page="membership"] .membership-faq-list details {
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 12px;
  background: #0d1628;
}

body[data-page="membership"] .membership-faq-list summary {
  position: relative;
  padding: 1.3rem 3.5rem 1.3rem 1.5rem;
  color: #fff;
  font-size: .86rem;
  cursor: pointer;
  list-style: none;
}

body[data-page="membership"] .membership-faq-list summary::-webkit-details-marker { display: none; }

body[data-page="membership"] .membership-faq-list summary::after {
  content: "+";
  position: absolute;
  right: 1.4rem;
  top: 50%;
  color: #fff;
  transform: translateY(-50%);
}

body[data-page="membership"] .membership-faq-list details[open] summary::after { content: "−"; }

body[data-page="membership"] .membership-faq-list details p {
  margin: -.25rem 0 0;
  padding: 0 1.5rem 1.35rem;
  color: rgba(255,255,255,.69);
  font-size: .76rem;
  line-height: 1.6;
}

body[data-page="membership"] .membership-faq-answer {
  padding: 0 1.5rem 1.35rem;
  color: rgba(255,255,255,.69);
  font-size: .76rem;
  line-height: 1.65;
}

body[data-page="membership"] .membership-faq-answer p {
  margin: 0 0 .8rem;
  padding: 0;
}

body[data-page="membership"] .membership-faq-answer p:last-child {
  margin-bottom: 0;
}

body[data-page="membership"] .membership-faq-answer h3 {
  margin: 1rem 0 .35rem;
  color: var(--orange);
  font-family: inherit;
  font-size: .8rem;
  font-weight: 700;
}

body[data-page="membership"] .membership-faq-answer h3:first-child {
  margin-top: 0;
}

body[data-page="membership"] .membership-faq-answer ul {
  margin: 0 0 .8rem;
  padding-left: 1.25rem;
}

body[data-page="membership"] .membership-faq-answer li + li {
  margin-top: .25rem;
}

body[data-page="membership"].membership-story-open { overflow: hidden; }

body[data-page="membership"] .membership-story-dialog[hidden] { display: none; }

body[data-page="membership"] .membership-story-dialog {
  position: fixed;
  inset: 0;
  z-index: 1000;
  padding: 2rem;
  display: grid;
  place-items: center;
  background: rgba(1,6,16,.9);
}

body[data-page="membership"] .membership-story-dialog video {
  width: min(100%, 960px);
  max-height: 82vh;
  background: #000;
}

body[data-page="membership"] .membership-story-dialog button {
  position: absolute;
  right: 2rem;
  top: 1.5rem;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2.6rem;
  cursor: pointer;
}

@keyframes membershipCollageBreath {
  from { transform: scale(1.01); }
  to { transform: scale(1.045); }
}

@media (max-width: 1020px) {
  body[data-page="membership"] .membership-main {
    grid-template-columns: 1fr 0.82fr;
    gap: 2.5rem;
    padding-inline: 2.5rem;
  }

  body[data-page="membership"] .membership-main h1 {
    font-size: clamp(2.7rem, 5.6vw, 4.1rem);
  }

  body[data-page="membership"] .membership-main__copy > p:not(.membership-kicker) {
    font-size: 0.86rem;
  }

  body[data-page="membership"] .membership-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="membership"] .membership-rewards-layout,
  body[data-page="membership"] .membership-how-section,
  body[data-page="membership"] .membership-passport-section {
    gap: 3rem;
  }
}

@media (max-width: 720px) {
  body[data-page="membership"] .membership-collage {
    height: clamp(330px, 88vw, 480px);
  }

  body[data-page="membership"] .membership-collage img {
    height: 100%;
    aspect-ratio: auto;
    object-position: center;
  }

  body[data-page="membership"] .membership-main {
    grid-template-columns: 1fr;
    gap: 3.5rem;
    padding: 4.25rem 1.25rem 5rem;
  }

  body[data-page="membership"] .membership-title-lockup {
    margin-bottom: 1.35rem;
  }

  body[data-page="membership"] .membership-title-lockup span {
    font-size: clamp(2rem, 10vw, 3.2rem);
  }

  body[data-page="membership"] .membership-kicker {
    gap: 0.65rem;
    font-size: 0.78rem;
  }

  body[data-page="membership"] .membership-kicker::before,
  body[data-page="membership"] .membership-kicker::after {
    width: 24px;
  }

  body[data-page="membership"] .membership-main h1 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

  body[data-page="membership"] .membership-main__copy > p:not(.membership-kicker) {
    font-size: 0.91rem;
  }

  body[data-page="membership"] .membership-video {
    justify-self: center;
    width: min(100%, 480px);
  }

  body[data-page="membership"] .membership-benefits-section {
    padding: 4.75rem 1.25rem 4rem;
  }

  body[data-page="membership"] .membership-benefits-section h2 {
    font-size: clamp(2.45rem, 11vw, 3.6rem);
  }

  body[data-page="membership"] .membership-benefits {
    grid-template-columns: 1fr;
    gap: 0.9rem;
  }

  body[data-page="membership"] .membership-benefits article {
    min-height: 0;
    padding: 1.9rem 1.5rem 2rem;
  }

  body[data-page="membership"] .membership-next-section,
  body[data-page="membership"] .membership-rewards-section {
    padding-inline: 1.25rem;
  }

  body[data-page="membership"] .membership-next-track {
    grid-template-columns: 1fr;
  }

  body[data-page="membership"] .membership-next-image {
    height: clamp(265px, 76vw, 430px);
  }

  body[data-page="membership"] .membership-rewards-layout,
  body[data-page="membership"] .membership-how-section,
  body[data-page="membership"] .membership-story-layout,
  body[data-page="membership"] .membership-passport-section {
    grid-template-columns: 1fr;
  }

  body[data-page="membership"] .membership-rewards-photo {
    width: min(100%, 500px);
    margin: 0 auto;
  }

  body[data-page="membership"] .membership-tier-list {
    margin-top: 1.5rem;
  }

  body[data-page="membership"] .membership-how-section {
    padding: 5rem 1.25rem 6rem;
  }

  body[data-page="membership"] .membership-how-photo {
    width: min(92%, 480px);
    justify-self: center;
  }

  body[data-page="membership"] .membership-stories-section,
  body[data-page="membership"] .membership-adventures-section,
  body[data-page="membership"] .membership-faq-section {
    padding-inline: 1.25rem;
  }

  body[data-page="membership"] .membership-story-media {
    margin: 0 auto;
  }

  body[data-page="membership"] .membership-story-layout blockquote {
    padding: 2.2rem 1rem 2rem 3.2rem;
  }

  body[data-page="membership"] .membership-adventure-grid {
    grid-template-columns: 1fr;
  }

  body[data-page="membership"] .membership-passport-section {
    padding-inline: 1.25rem;
  }

  body[data-page="membership"] .membership-passport-photo {
    width: min(94%, 480px);
    margin: 0 auto;
  }

  body[data-page="membership"] .membership-rewards-photo::before,
  body[data-page="membership"] .membership-how-photo::before {
    inset: -11px 11px 11px -11px;
  }
}

@media (max-width: 480px) {
  body[data-page="membership"] .membership-section-heading h2,
  body[data-page="membership"] .membership-how-copy h2 {
    font-size: clamp(2.45rem, 11vw, 3.25rem);
  }

  body[data-page="membership"] .membership-tier {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 0.9rem;
  }

  body[data-page="membership"] .membership-tier-icon {
    width: 50px;
    height: 50px;
    font-size: 1.35rem;
  }
}

/* Event Travel */
.event-travel-hero {
  position: relative;
  min-height: min(900px, 100svh);
  display: flex;
  align-items: center;
  padding: 210px var(--page-pad) 120px;
  isolation: isolate;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(2, 8, 20, 0.94) 0%, rgba(2, 8, 20, 0.74) 42%, rgba(2, 8, 20, 0.2) 78%),
    linear-gradient(0deg, rgba(2, 8, 20, 0.78), transparent 48%),
    url("official/home-experiences/event-travel.webp") center 42% / cover no-repeat;
}

.event-travel-hero .hero-overlay { z-index: -1; }
.event-travel-hero__content { width: min(790px, 68vw); }

.event-travel-hero__content h1 {
  max-width: 780px;
  margin: 0.45rem 0 1.4rem;
  font-size: clamp(3.4rem, 6.6vw, 7.1rem);
  line-height: 0.91;
  letter-spacing: -0.045em;
}

.event-travel-hero__content h1 em,
.event-travel-cta h2 em { color: var(--orange-soft); font-weight: inherit; }

.event-travel-hero__content > p:not(.eyebrow) {
  max-width: 680px;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(1rem, 1.4vw, 1.28rem);
  line-height: 1.75;
}

.event-travel-actions { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 2rem; }
.event-travel-scroll {
  position: absolute; left: 50%; bottom: 2.5rem; width: 52px; height: 52px;
  display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%; color: white; animation: eventTravelBounce 2.3s ease-in-out infinite;
}

.event-travel-strip { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 var(--page-pad); background: #fff; color: var(--navy); }
.event-travel-strip > div {
  min-height: 158px; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto;
  align-content: center; column-gap: 1rem; padding: 1.8rem clamp(1.2rem, 3vw, 3rem); border-right: 1px solid #dedfe3;
}
.event-travel-strip > div:last-child { border-right: 0; }
.event-travel-strip span { grid-row: 1 / 3; align-self: center; color: var(--orange); font-family: Georgia, serif; font-size: 2rem; }
.event-travel-strip b { align-self: end; letter-spacing: 0.08em; }
.event-travel-strip small { color: #73757a; line-height: 1.45; }

.event-travel-intro { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.event-travel-intro__copy h2 { max-width: 700px; margin-bottom: 1.4rem; font-size: clamp(2.7rem, 5vw, 5.4rem); line-height: 1; }
.event-travel-intro__copy > p:not(.eyebrow) { color: #bbc2cf; line-height: 1.8; }
.event-travel-intro__copy .text-link { display: inline-block; margin-top: 1.25rem; }
.event-travel-intro__image { position: relative; min-height: 620px; margin: 0; overflow: hidden; border: 1px solid rgba(232, 128, 40, 0.52); border-radius: 2px 32px 2px 32px; }
.event-travel-intro__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1); }
.event-travel-intro__image:hover img { transform: scale(1.04); }
.event-travel-intro__image figcaption { position: absolute; right: 1.25rem; bottom: 1.25rem; padding: 0.7rem 1rem; background: rgba(2, 8, 20, 0.88); border: 1px solid rgba(255, 255, 255, 0.15); font-size: 0.72rem; }

.event-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.event-service-grid article { min-height: 390px; padding: clamp(1.8rem, 3vw, 3.2rem); border: 1px solid rgba(255, 255, 255, 0.14); background: linear-gradient(145deg, rgba(232, 128, 40, 0.1), transparent 44%), #0b1425; transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1), border-color 300ms ease; }
.event-service-grid article:hover { transform: translateY(-8px); border-color: rgba(232, 128, 40, 0.62); }
.event-service-grid article > span { width: 70px; height: 70px; display: grid; place-items: center; margin-bottom: 3.5rem; border: 1px solid rgba(232, 128, 40, 0.65); border-radius: 50%; color: var(--orange-soft); font-size: 1.7rem; }
.event-service-grid h3 { margin: 0.5rem 0 0.75rem; font-family: Georgia, serif; font-size: clamp(1.7rem, 2.4vw, 2.6rem); }
.event-service-grid article > p:last-child { color: #aeb6c3; line-height: 1.7; }

.event-ticket-section { display: grid; grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.event-ticket-heading h2 { margin: 0.5rem 0 1rem; font-size: clamp(2.8rem, 5vw, 5rem); line-height: 0.98; }
.event-ticket-heading > p:last-child { color: #aeb6c3; line-height: 1.8; }
.event-ticket-links { display: grid; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.event-ticket-links a { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: 1rem; min-height: 112px; border-bottom: 1px solid rgba(255, 255, 255, 0.18); color: white; transition: color 220ms ease, padding 320ms cubic-bezier(0.16, 1, 0.3, 1); }
.event-ticket-links a:hover { padding-left: 0.8rem; color: var(--orange-soft); }
.event-ticket-links span { color: var(--orange); font-size: 0.72rem; letter-spacing: 0.12em; }
.event-ticket-links b { font-family: Georgia, serif; font-size: clamp(1.4rem, 2vw, 2rem); }
.event-ticket-links i { font-size: 0.72rem; font-style: normal; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }

.event-travel-cta { position: relative; min-height: 650px; display: grid; place-items: center; padding: 7rem var(--page-pad); text-align: center; isolation: isolate; background: linear-gradient(rgba(2, 8, 20, 0.7), rgba(2, 8, 20, 0.94)), url("official/home-experiences/event-travel.webp") center 40% / cover no-repeat; }
.event-travel-cta > div { max-width: 920px; }
.event-travel-cta h2 { margin: 0.7rem 0 1rem; font-size: clamp(3rem, 6vw, 6.5rem); line-height: 0.96; }
.event-travel-cta > div > p:not(.eyebrow) { margin-bottom: 1.6rem; color: rgba(255, 255, 255, 0.82); font-size: clamp(1rem, 1.5vw, 1.25rem); }

@keyframes eventTravelBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(8px); } }

@media (max-width: 980px) {
  .event-travel-hero { min-height: 780px; background-position: 58% center; }
  .event-travel-hero__content { width: min(680px, 82vw); }
  .event-travel-intro, .event-ticket-section { grid-template-columns: 1fr; }
  .event-travel-intro__image { min-height: 560px; }
  .event-service-grid { grid-template-columns: 1fr 1fr; }
  .event-service-grid article:last-child { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .event-travel-hero { min-height: 760px; align-items: end; padding: 190px 1.25rem 105px; background-position: 64% center; }
  .event-travel-hero__content { width: 100%; }
  .event-travel-hero__content h1 { font-size: clamp(3rem, 16vw, 4.8rem); }
  .event-travel-actions, .event-travel-actions .button { width: 100%; }
  .event-travel-actions { padding-right: 3.6rem; }
  .event-travel-strip { grid-template-columns: 1fr; padding: 0 1.25rem; }
  .event-travel-strip > div { min-height: 112px; border-right: 0; border-bottom: 1px solid #dedfe3; }
  .event-travel-strip > div:last-child { border-bottom: 0; }
  .event-travel-intro { grid-template-columns: 1fr; }
  .event-travel-intro__image { min-height: 430px; }
  .event-service-grid { grid-template-columns: 1fr; }
  .event-service-grid article, .event-service-grid article:last-child { grid-column: auto; min-height: 340px; }
  .event-ticket-links a { grid-template-columns: 38px 1fr; }
  .event-ticket-links i { grid-column: 2; }
  .event-travel-cta { min-height: 580px; padding: 5rem 1.25rem; }
}

@media (prefers-reduced-motion: reduce) { .event-travel-scroll { animation: none; } }

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  background: var(--navy);
  color: var(--white);
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  line-height: 1.55;
  overflow-x: hidden;
  overflow-x: clip;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
.brand-script {
  font-family: Georgia, "Times New Roman", serif;
}

h1 {
  font-size: clamp(2.8rem, 6vw, 5.7rem);
  line-height: 0.98;
}

h2 {
  font-size: clamp(2rem, 3.7vw, 3.6rem);
  line-height: 1.05;
}

h3 {
  line-height: 1.2;
}

p {
  color: var(--muted);
}

main {
  min-height: 100vh;
}

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

.announcement {
  position: absolute;
  inset: 0 0 auto;
  z-index: 50;
  height: 36px;
  padding: 0 var(--page-pad);
  background: #1a2338;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  font-size: 0.78rem;
  letter-spacing: 0.01em;
}

.announcement > a:first-child {
  color: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-variant-emoji: text;
}

.announcement b {
  color: var(--orange-soft);
  font-weight: 600;
}

.socials {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0.72rem;
}

.socials a {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  color: white;
  font-size: 0;
}

.socials a::before {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}

.socials a:nth-child(1)::before {
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTE2IDguMDQ5YzAtNC40NDYtMy41ODItOC4wNS04LTguMDVDMy41OCAwLS4wMDIgMy42MDMtLjAwMiA4LjA1YzAgNC4wMTcgMi45MjYgNy4zNDcgNi43NSA3Ljk1MXYtNS42MjVoLTIuMDNWOC4wNUg2Ljc1VjYuMjc1YzAtMi4wMTcgMS4xOTUtMy4xMzEgMy4wMjItMy4xMzEuODc2IDAgMS43OTEuMTU3IDEuNzkxLjE1N3YxLjk4aC0xLjAwOWMtLjk5MyAwLTEuMzAzLjYyMS0xLjMwMyAxLjI1OHYxLjUxaDIuMjE4bC0uMzU0IDIuMzI2SDkuMjVWMTZjMy44MjQtLjYwNCA2Ljc1LTMuOTM0IDYuNzUtNy45NTEiLz48L3N2Zz4=");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTE2IDguMDQ5YzAtNC40NDYtMy41ODItOC4wNS04LTguMDVDMy41OCAwLS4wMDIgMy42MDMtLjAwMiA4LjA1YzAgNC4wMTcgMi45MjYgNy4zNDcgNi43NSA3Ljk1MXYtNS42MjVoLTIuMDNWOC4wNUg2Ljc1VjYuMjc1YzAtMi4wMTcgMS4xOTUtMy4xMzEgMy4wMjItMy4xMzEuODc2IDAgMS43OTEuMTU3IDEuNzkxLjE1N3YxLjk4aC0xLjAwOWMtLjk5MyAwLTEuMzAzLjYyMS0xLjMwMyAxLjI1OHYxLjUxaDIuMjE4bC0uMzU0IDIuMzI2SDkuMjVWMTZjMy44MjQtLjYwNCA2Ljc1LTMuOTM0IDYuNzUtNy45NTEiLz48L3N2Zz4=");
}

.socials a:nth-child(2)::before {
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTggMEM1LjgyOSAwIDUuNTU2LjAxIDQuNzAzLjA0OCAzLjg1LjA4OCAzLjI2OS4yMjIgMi43Ni40MmEzLjkgMy45IDAgMCAwLTEuNDE3LjkyM0EzLjkgMy45IDAgMCAwIC40MiAyLjc2Qy4yMjIgMy4yNjguMDg3IDMuODUuMDQ4IDQuNy4wMSA1LjU1NSAwIDUuODI3IDAgOC4wMDFjMCAyLjE3Mi4wMSAyLjQ0NC4wNDggMy4yOTcuMDQuODUyLjE3NCAxLjQzMy4zNzIgMS45NDIuMjA1LjUyNi40NzguOTcyLjkyMyAxLjQxNy40NDQuNDQ1Ljg5LjcxOSAxLjQxNi45MjMuNTEuMTk4IDEuMDkuMzMzIDEuOTQyLjM3MkM1LjU1NSAxNS45OSA1LjgyNyAxNiA4IDE2czIuNDQ0LS4wMSAzLjI5OC0uMDQ4Yy44NTEtLjA0IDEuNDM0LS4xNzQgMS45NDMtLjM3MmEzLjkgMy45IDAgMCAwIDEuNDE2LS45MjNjLjQ0NS0uNDQ1LjcxOC0uODkxLjkyMy0xLjQxNy4xOTctLjUwOS4zMzItMS4wOS4zNzItMS45NDJDMTUuOTkgMTAuNDQ1IDE2IDEwLjE3MyAxNiA4cy0uMDEtMi40NDUtLjA0OC0zLjI5OWMtLjA0LS44NTEtLjE3NS0xLjQzMy0uMzcyLTEuOTQxYTMuOSAzLjkgMCAwIDAtLjkyMy0xLjQxN0EzLjkgMy45IDAgMCAwIDEzLjI0LjQyYy0uNTEtLjE5OC0xLjA5Mi0uMzMzLTEuOTQzLS4zNzJDMTAuNDQzLjAxIDEwLjE3MiAwIDcuOTk4IDB6bS0uNzE3IDEuNDQyaC43MThjMi4xMzYgMCAyLjM4OS4wMDcgMy4yMzIuMDQ2Ljc4LjAzNSAxLjIwNC4xNjYgMS40ODYuMjc1LjM3My4xNDUuNjQuMzE5LjkyLjU5OXMuNDUzLjU0Ni41OTguOTJjLjExLjI4MS4yNC43MDUuMjc1IDEuNDg1LjAzOS44NDMuMDQ3IDEuMDk2LjA0NyAzLjIzMXMtLjAwOCAyLjM4OS0uMDQ3IDMuMjMyYy0uMDM1Ljc4LS4xNjYgMS4yMDMtLjI3NSAxLjQ4NWEyLjUgMi41IDAgMCAxLS41OTkuOTE5Yy0uMjguMjgtLjU0Ni40NTMtLjkyLjU5OC0uMjguMTEtLjcwNC4yNC0xLjQ4NS4yNzYtLjg0My4wMzgtMS4wOTYuMDQ3LTMuMjMyLjA0N3MtMi4zOS0uMDA5LTMuMjMzLS4wNDdjLS43OC0uMDM2LTEuMjAzLS4xNjYtMS40ODUtLjI3NmEyLjUgMi41IDAgMCAxLS45Mi0uNTk4IDIuNSAyLjUgMCAwIDEtLjYtLjkyYy0uMTA5LS4yODEtLjI0LS43MDUtLjI3NS0xLjQ4NS0uMDM4LS44NDMtLjA0Ni0xLjA5Ni0uMDQ2LTMuMjMzcy4wMDgtMi4zODguMDQ2LTMuMjMxYy4wMzYtLjc4LjE2Ni0xLjIwNC4yNzYtMS40ODYuMTQ1LS4zNzMuMzE5LS42NC41OTktLjkycy41NDYtLjQ1My45Mi0uNTk4Yy4yODItLjExLjcwNS0uMjQgMS40ODUtLjI3Ni43MzgtLjAzNCAxLjAyNC0uMDQ0IDIuNTE1LS4wNDV6bTQuOTg4IDEuMzI4YS45Ni45NiAwIDEgMCAwIDEuOTIuOTYuOTYgMCAwIDAgMC0xLjkybS00LjI3IDEuMTIyYTQuMTA5IDQuMTA5IDAgMSAwIDAgOC4yMTcgNC4xMDkgNC4xMDkgMCAwIDAgMC04LjIxN20wIDEuNDQxYTIuNjY3IDIuNjY3IDAgMSAxIDAgNS4zMzQgMi42NjcgMi42NjcgMCAwIDEgMC01LjMzNCIvPjwvc3ZnPg==");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTggMEM1LjgyOSAwIDUuNTU2LjAxIDQuNzAzLjA0OCAzLjg1LjA4OCAzLjI2OS4yMjIgMi43Ni40MmEzLjkgMy45IDAgMCAwLTEuNDE3LjkyM0EzLjkgMy45IDAgMCAwIC40MiAyLjc2Qy4yMjIgMy4yNjguMDg3IDMuODUuMDQ4IDQuNy4wMSA1LjU1NSAwIDUuODI3IDAgOC4wMDFjMCAyLjE3Mi4wMSAyLjQ0NC4wNDggMy4yOTcuMDQuODUyLjE3NCAxLjQzMy4zNzIgMS45NDIuMjA1LjUyNi40NzguOTcyLjkyMyAxLjQxNy40NDQuNDQ1Ljg5LjcxOSAxLjQxNi45MjMuNTEuMTk4IDEuMDkuMzMzIDEuOTQyLjM3MkM1LjU1NSAxNS45OSA1LjgyNyAxNiA4IDE2czIuNDQ0LS4wMSAzLjI5OC0uMDQ4Yy44NTEtLjA0IDEuNDM0LS4xNzQgMS45NDMtLjM3MmEzLjkgMy45IDAgMCAwIDEuNDE2LS45MjNjLjQ0NS0uNDQ1LjcxOC0uODkxLjkyMy0xLjQxNy4xOTctLjUwOS4zMzItMS4wOS4zNzItMS45NDJDMTUuOTkgMTAuNDQ1IDE2IDEwLjE3MyAxNiA4cy0uMDEtMi40NDUtLjA0OC0zLjI5OWMtLjA0LS44NTEtLjE3NS0xLjQzMy0uMzcyLTEuOTQxYTMuOSAzLjkgMCAwIDAtLjkyMy0xLjQxN0EzLjkgMy45IDAgMCAwIDEzLjI0LjQyYy0uNTEtLjE5OC0xLjA5Mi0uMzMzLTEuOTQzLS4zNzJDMTAuNDQzLjAxIDEwLjE3MiAwIDcuOTk4IDB6bS0uNzE3IDEuNDQyaC43MThjMi4xMzYgMCAyLjM4OS4wMDcgMy4yMzIuMDQ2Ljc4LjAzNSAxLjIwNC4xNjYgMS40ODYuMjc1LjM3My4xNDUuNjQuMzE5LjkyLjU5OXMuNDUzLjU0Ni41OTguOTJjLjExLjI4MS4yNC43MDUuMjc1IDEuNDg1LjAzOS44NDMuMDQ3IDEuMDk2LjA0NyAzLjIzMXMtLjAwOCAyLjM4OS0uMDQ3IDMuMjMyYy0uMDM1Ljc4LS4xNjYgMS4yMDMtLjI3NSAxLjQ4NWEyLjUgMi41IDAgMCAxLS41OTkuOTE5Yy0uMjguMjgtLjU0Ni40NTMtLjkyLjU5OC0uMjguMTEtLjcwNC4yNC0xLjQ4NS4yNzYtLjg0My4wMzgtMS4wOTYuMDQ3LTMuMjMyLjA0N3MtMi4zOS0uMDA5LTMuMjMzLS4wNDdjLS43OC0uMDM2LTEuMjAzLS4xNjYtMS40ODUtLjI3NmEyLjUgMi41IDAgMCAxLS45Mi0uNTk4IDIuNSAyLjUgMCAwIDEtLjYtLjkyYy0uMTA5LS4yODEtLjI0LS43MDUtLjI3NS0xLjQ4NS0uMDM4LS44NDMtLjA0Ni0xLjA5Ni0uMDQ2LTMuMjMzcy4wMDgtMi4zODguMDQ2LTMuMjMxYy4wMzYtLjc4LjE2Ni0xLjIwNC4yNzYtMS40ODYuMTQ1LS4zNzMuMzE5LS42NC41OTktLjkycy41NDYtLjQ1My45Mi0uNTk4Yy4yODItLjExLjcwNS0uMjQgMS40ODUtLjI3Ni43MzgtLjAzNCAxLjAyNC0uMDQ0IDIuNTE1LS4wNDV6bTQuOTg4IDEuMzI4YS45Ni45NiAwIDEgMCAwIDEuOTIuOTYuOTYgMCAwIDAgMC0xLjkybS00LjI3IDEuMTIyYTQuMTA5IDQuMTA5IDAgMSAwIDAgOC4yMTcgNC4xMDkgNC4xMDkgMCAwIDAgMC04LjIxN20wIDEuNDQxYTIuNjY3IDIuNjY3IDAgMSAxIDAgNS4zMzQgMi42NjcgMi42NjcgMCAwIDEgMC01LjMzNCIvPjwvc3ZnPg==");
}

.socials a:nth-child(3)::before {
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMDI2IDE1YzYuMDM4IDAgOS4zNDEtNS4wMDMgOS4zNDEtOS4zMzRxLjAwMi0uMjExLS4wMDYtLjQyMkE2LjcgNi43IDAgMCAwIDE2IDMuNTQyYTYuNyA2LjcgMCAwIDEtMS44ODkuNTE4IDMuMyAzLjMgMCAwIDAgMS40NDctMS44MTcgNi41IDYuNSAwIDAgMS0yLjA4Ny43OTNBMy4yODYgMy4yODYgMCAwIDAgNy44NzUgNi4wM2E5LjMyIDkuMzIgMCAwIDEtNi43NjctMy40MjkgMy4yOSAzLjI5IDAgMCAwIDEuMDE4IDQuMzgyQTMuMyAzLjMgMCAwIDEgLjY0IDYuNTc1di4wNDVhMy4yOSAzLjI5IDAgMCAwIDIuNjMyIDMuMjE4IDMuMiAzLjIgMCAwIDEtLjg2NS4xMTUgMyAzIDAgMCAxLS42MTQtLjA1NyAzLjI4IDMuMjggMCAwIDAgMy4wNjcgMi4yNzdBNi42IDYuNiAwIDAgMSAuNzggMTMuNThhNiA2IDAgMCAxLS43OC0uMDQ1QTkuMzQgOS4zNCAwIDAgMCA1LjAyNiAxNSIvPjwvc3ZnPg==");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMDI2IDE1YzYuMDM4IDAgOS4zNDEtNS4wMDMgOS4zNDEtOS4zMzRxLjAwMi0uMjExLS4wMDYtLjQyMkE2LjcgNi43IDAgMCAwIDE2IDMuNTQyYTYuNyA2LjcgMCAwIDEtMS44ODkuNTE4IDMuMyAzLjMgMCAwIDAgMS40NDctMS44MTcgNi41IDYuNSAwIDAgMS0yLjA4Ny43OTNBMy4yODYgMy4yODYgMCAwIDAgNy44NzUgNi4wM2E5LjMyIDkuMzIgMCAwIDEtNi43NjctMy40MjkgMy4yOSAzLjI5IDAgMCAwIDEuMDE4IDQuMzgyQTMuMyAzLjMgMCAwIDEgLjY0IDYuNTc1di4wNDVhMy4yOSAzLjI5IDAgMCAwIDIuNjMyIDMuMjE4IDMuMiAzLjIgMCAwIDEtLjg2NS4xMTUgMyAzIDAgMCAxLS42MTQtLjA1NyAzLjI4IDMuMjggMCAwIDAgMy4wNjcgMi4yNzdBNi42IDYuNiAwIDAgMSAuNzggMTMuNThhNiA2IDAgMCAxLS43OC0uMDQ1QTkuMzQgOS4zNCAwIDAgMCA1LjAyNiAxNSIvPjwvc3ZnPg==");
}

.socials a:nth-child(4)::before {
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTkgMGgxLjk4Yy4xNDQuNzE1LjU0IDEuNjE3IDEuMjM1IDIuNTEyQzEyLjg5NSAzLjM4OSAxMy43OTcgNCAxNSA0djJjLTEuNzUzIDAtMy4wNy0uODE0LTQtMS44MjlWMTFhNSA1IDAgMSAxLTUtNXYyYTMgMyAwIDEgMCAzIDN6Ii8+PC9zdmc+");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTkgMGgxLjk4Yy4xNDQuNzE1LjU0IDEuNjE3IDEuMjM1IDIuNTEyQzEyLjg5NSAzLjM4OSAxMy43OTcgNCAxNSA0djJjLTEuNzUzIDAtMy4wNy0uODE0LTQtMS44MjlWMTFhNSA1IDAgMSAxLTUtNXYyYTMgMyAwIDEgMCAzIDN6Ii8+PC9zdmc+");
}

.site-header {
  position: absolute;
  z-index: 40;
  top: 36px;
  left: 0;
  right: 0;
  height: 120px;
  padding: 0 var(--page-pad);
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) auto;
  align-items: center;
}

.site-header--solid {
  position: relative;
  top: 36px;
  background: var(--navy);
  border-bottom: 1px solid var(--line);
}

.brand {
  width: 142.4px;
  height: 94.4px;
  display: block;
  color: white;
}

.brand-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.main-nav {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: clamp(0.7rem, 1.45vw, 1.55rem);
}

.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.main-nav > a:not(.button),
.journey-menu-trigger {
  font-size: 0.84rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  transition: color 180ms ease;
}

.main-nav > a:hover,
.main-nav > a:focus-visible,
.journey-menu-trigger:hover,
.journey-menu-trigger:focus-visible {
  color: var(--orange-soft);
}

.journey-menu {
  position: relative;
  display: flex;
  align-items: center;
}

.journey-menu::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 190px;
  height: 28px;
  transform: translateX(-50%);
}

.journey-menu-trigger {
  position: relative;
  padding: 0.8rem 0;
  border: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.journey-menu-trigger i {
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-menu.is-open .journey-menu-trigger i {
  transform: translateY(2px) rotate(225deg);
}

.journey-dropdown {
  position: absolute;
  z-index: 60;
  top: calc(100% + 22px);
  left: 50%;
  width: min(900px, 90vw);
  min-height: 274px;
  border: 1px solid rgba(240, 163, 94, 0.34);
  border-top: 2px solid var(--orange);
  border-radius: 10px;
  display: grid;
  grid-template-columns: 220px minmax(460px, 1fr) 170px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(232, 128, 40, 0.13), transparent 35%),
    rgba(5, 11, 26, 0.97);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.52);
  backdrop-filter: blur(22px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -12px) scale(0.975);
  transform-origin: top center;
  transition:
    opacity 240ms ease,
    visibility 240ms ease,
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-menu.is-open .journey-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}

.journey-dropdown-heading {
  padding: 1.45rem;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.journey-dropdown-heading > span,
.journey-dropdown-cta small {
  color: var(--orange-soft);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.journey-dropdown-heading strong {
  margin-top: 0.55rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.4rem;
  line-height: 1.08;
}

.journey-dropdown-heading p {
  margin: 0.7rem 0 1rem;
  font-size: 0.73rem;
  line-height: 1.55;
}

.journey-dropdown-heading a {
  margin-top: auto;
  color: white;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.journey-dropdown-heading a b {
  display: inline-block;
  margin-left: 0.25rem;
  color: var(--orange-soft);
  transition: transform 220ms ease;
}

.journey-dropdown-heading a:hover b,
.journey-dropdown-heading a:focus-visible b {
  transform: translateX(5px);
}

.journey-dropdown-list {
  padding: 0.75rem;
  display: grid;
  align-content: center;
  gap: 0.3rem;
}

.journey-dropdown-years {
  min-width: 0;
  padding: 0.8rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
}

.journey-dropdown-years section {
  min-width: 0;
  padding: 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.025);
}

.journey-dropdown-years h3 {
  margin: 0 0 0.45rem;
  color: var(--orange-soft);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
}

.journey-dropdown-years h3 span {
  display: block;
  margin-bottom: 0.05rem;
  color: #aeb4c2;
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: 0.52rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.journey-dropdown-years section > a {
  min-width: 0;
  padding: 0.43rem 0.35rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  transition:
    color 180ms ease,
    padding 180ms ease;
}

.journey-dropdown-years section > a:last-child {
  border-bottom: 0;
}

.journey-dropdown-years section > a:hover,
.journey-dropdown-years section > a:focus-visible {
  padding-left: 0.65rem;
  color: var(--orange-soft);
}

.journey-dropdown-years b {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.78rem;
  line-height: 1.12;
  text-overflow: clip;
  white-space: normal;
}

.journey-dropdown-years small {
  color: #8f96a6;
  font-size: 0.52rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.journey-dropdown-item {
  min-width: 0;
  padding: 0.38rem;
  border: 1px solid transparent;
  border-radius: 7px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.7rem;
  transition:
    border-color 220ms ease,
    background 220ms ease,
    transform 220ms ease;
}

.journey-dropdown-item:hover,
.journey-dropdown-item:focus-visible {
  border-color: rgba(240, 163, 94, 0.32);
  background: rgba(255, 255, 255, 0.065);
  transform: translateX(4px);
}

.journey-dropdown-image {
  width: 58px;
  height: 46px;
  border-radius: 5px;
  overflow: hidden;
  background: var(--navy-3);
}

.journey-dropdown-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-dropdown-item:hover img,
.journey-dropdown-item:focus-visible img {
  transform: scale(1.1);
}

.journey-dropdown-item > span:nth-child(2) {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.journey-dropdown-item b {
  overflow: hidden;
  color: white;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.88rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.journey-dropdown-item small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.58rem;
  letter-spacing: 0.045em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.journey-dropdown-item em {
  padding: 0.2rem 0.42rem;
  border-radius: 99px;
  background: var(--orange);
  color: white;
  font-size: 0.52rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.journey-dropdown-cta {
  padding: 1.1rem;
  border-left: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  overflow: hidden;
  background:
    linear-gradient(rgba(5, 11, 26, 0.34), rgba(5, 11, 26, 0.88)),
    url("official/home-hero/sunset-group-travelers.webp") 61% center / cover;
  text-align: center;
}

.journey-dropdown-cta span {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.journey-dropdown-cta b {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  line-height: 1.05;
}

.journey-dropdown-cta i {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--orange);
  font-style: normal;
  transition: transform 350ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-dropdown-cta:hover i,
.journey-dropdown-cta:focus-visible i {
  transform: translate3d(5px, -5px, 0) rotate(-8deg);
}

.button {
  display: inline-flex;
  width: fit-content;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0.78rem 1.35rem;
  border: 1px solid var(--orange);
  border-radius: 3px;
  background: var(--orange);
  color: white;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.button:hover,
.button:focus-visible {
  transform: translateY(-2px);
  background: #ef8c35;
  box-shadow: 0 10px 30px rgba(232, 128, 40, 0.26);
}

.button--small {
  justify-self: end;
  min-height: 40px;
  padding: 0.65rem 1.1rem;
  gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.button--explore {
  gap: 0.65rem;
}

.button--explore .button-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.member-icon {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTggOGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZtMi0zYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMG00IDhjMCAxLTEgMS0xIDFIM3MtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDRtLTEtLjAwNGMtLjAwMS0uMjQ2LS4xNTQtLjk4Ni0uODMyLTEuNjY0QzExLjUxNiAxMC42OCAxMC4yODkgMTAgOCAxMHMtMy41MTYuNjgtNC4xNjggMS4zMzJjLS42NzguNjc4LS44MyAxLjQxOC0uODMyIDEuNjY0eiIvPjwvc3ZnPg==") center / contain no-repeat;
  mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTggOGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZtMi0zYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMG00IDhjMCAxLTEgMS0xIDFIM3MtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDRtLTEtLjAwNGMtLjAwMS0uMjQ2LS4xNTQtLjk4Ni0uODMyLTEuNjY0QzExLjUxNiAxMC42OCAxMC4yODkgMTAgOCAxMHMtMy41MTYuNjgtNC4xNjggMS4zMzJjLS42NzguNjc4LS44MyAxLjQxOC0uODMyIDEuNjY0eiIvPjwvc3ZnPg==") center / contain no-repeat;
}

.button--ghost {
  background: transparent;
  color: var(--orange-soft);
}

.button--outline {
  border: 1px solid rgba(240, 163, 94, 0.78);
  background: rgba(5, 11, 26, 0.45);
  color: white;
}

.button--outline:hover,
.button--outline:focus-visible {
  border-color: var(--orange);
  background: var(--orange);
}

.mobile-member,
.mobile-quote,
.menu-button {
  display: none;
}

.hero {
  position: relative;
  min-height: 680px;
  display: grid;
  place-items: center;
  text-align: center;
}

.home-hero {
  width: 100vw;
  min-height: max(680px, 100svh);
  max-width: none;
  margin-inline: calc(50% - 50vw);
  background: var(--navy);
}

.hero-slider {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.hero-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  clip-path: inset(0 7% 0 7%);
  transform: scale(1.035);
  transition:
    opacity 1.2s ease,
    clip-path 1.45s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.45s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

.hero-slide.is-active {
  z-index: 1;
  opacity: 1;
  clip-path: inset(0);
  transform: scale(1);
}

.hero-slide img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transform: translate3d(0, var(--hero-parallax-y, 0), 0) scale(1.13);
  will-change: transform;
}

.hero-slide.is-active img {
  animation: heroCinematicZoom 7.2s cubic-bezier(0.18, 0.7, 0.25, 1) both;
}

.hero-autoplay-toggle {
  position: absolute;
  z-index: 4;
  left: max(1rem, var(--page-pad));
  bottom: max(1rem, env(safe-area-inset-bottom));
  min-height: 42px;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.64);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: rgba(4, 12, 28, 0.62);
  color: white;
  font: 700 0.68rem/1 Montserrat, Arial, sans-serif;
  letter-spacing: 0.04em;
  backdrop-filter: blur(8px);
  cursor: pointer;
}

.hero-autoplay-toggle:hover,
.hero-autoplay-toggle:focus-visible {
  border-color: var(--orange-soft);
  background: rgba(239, 128, 34, 0.9);
}

.hero-autoplay-toggle__icon {
  width: 0.85rem;
  text-align: center;
  font-size: 0.72rem;
}

.hero-slide--cruise-travelers img {
  object-position: 52% 48%;
}

.hero-slide--jamaica-group img {
  object-position: center 48%;
}

.hero-slide--rafting-travelers img {
  object-position: center 55%;
}

.hero-slide--poolside-travelers img {
  object-position: center 50%;
}

.hero-slide--sunset-group img {
  object-position: center 44%;
  transform: translate3d(0, var(--hero-parallax-y, 0), 0) scale(1.01);
}

.hero-slide--sunset-group.is-active img {
  animation-name: heroSunsetGentleZoom;
}

.home-hero .hero-overlay {
  z-index: 2;
  background: linear-gradient(180deg, rgba(1, 5, 14, 0.48), rgba(1, 5, 14, 0.3) 55%, rgba(1, 5, 14, 0.72));
}

.home-hero .hero-content {
  z-index: 3;
}

.hero-overlay,
.trust-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(1, 5, 14, 0.62), rgba(1, 5, 14, 0.45) 55%, rgba(1, 5, 14, 0.83));
}

.hero-content,
.journey-hero-content,
.subhero > div:not(.hero-overlay),
.trust-content {
  position: relative;
  z-index: 1;
}

.hero-content {
  width: min(1920px, 96vw);
  padding-top: 112px;
}

.hero-content h1 {
  margin-bottom: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.22rem, 5.6vw, 7rem);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.025em;
  white-space: nowrap;
}

.hero-content h1 em {
  position: relative;
  display: inline-block;
  color: #f47b20;
  font-style: normal;
  white-space: nowrap;
}

.hero-content h1 em::after {
  content: "";
  position: absolute;
  left: -4%;
  bottom: -0.27em;
  width: 109%;
  height: clamp(10px, 0.16em, 15px);
  border-top: clamp(5px, 0.065em, 8px) solid #f47b20;
  border-radius: 50%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  opacity: 0;
  transform: rotate(-1.5deg) scaleX(0);
  transform-origin: left center;
  will-change: transform, opacity, filter;
}

.home-hero.is-underline-animating .hero-content h1 em::after {
  animation:
    belongUnderlineDraw 1.15s 0.15s cubic-bezier(0.16, 1, 0.3, 1) both,
    belongUnderlineInk 4.8s 1.35s ease-in-out infinite;
}

.hero-content p {
  max-width: 720px;
  margin: 2.1rem auto 1.7rem;
  color: white;
  font-size: clamp(1rem, 2vw, 1.16rem);
}

.section {
  padding: clamp(4.5rem, 8vw, 8rem) var(--page-pad);
}

.section > * {
  max-width: var(--content);
  margin-inline: auto;
}

.section--navy {
  background: var(--navy);
}

.section--dark {
  background: var(--navy-2);
}

.eyebrow {
  margin-bottom: 0.75rem;
  color: var(--orange-soft) !important;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.section-heading {
  margin-bottom: 2.5rem;
}

.section-heading h2 {
  margin-bottom: 0.8rem;
}

.section-heading p:last-child {
  max-width: 680px;
}

.section-heading--row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.section-heading--center {
  text-align: center;
}

.section-heading--center p:last-child {
  margin-inline: auto;
}

.text-link {
  color: var(--orange-soft);
  font-size: 0.82rem;
  font-weight: 700;
}

.journey-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.3rem;
}

.journey-card a {
  display: block;
}

.card-image {
  height: 250px;
  margin-bottom: 1rem;
  overflow: hidden;
  background: var(--slate);
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.card-image img.journey-card__image--ghana {
  object-position: 54% 50%;
}

.journey-card:hover .card-image img {
  transform: scale(1.055);
}

.card-kicker {
  display: block;
  margin-bottom: 0.3rem;
  color: #d4d4d6;
  font-size: 0.65rem;
}

.journey-card h3 {
  margin-bottom: 0.65rem;
  font-family: Georgia, serif;
  font-size: 1.3rem;
}

.journey-card p {
  min-height: 4.5em;
  margin-bottom: 0.6rem;
  font-size: 0.81rem;
}

.assurance-strip {
  padding: 2rem var(--page-pad);
  background: #fff;
  color: #1b1d24;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.assurance-strip > div {
  padding: 0.4rem 1.4rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  border-right: 1px solid #e5e5e5;
}

.assurance-strip > div:last-child {
  border-right: 0;
}

.assurance-strip i {
  color: var(--orange);
  font-size: 1.8rem;
  font-style: normal;
}

.assurance-strip b,
.assurance-strip small {
  display: block;
}

.assurance-strip b {
  font-size: 0.84rem;
}

.assurance-strip small {
  margin-top: 0.2rem;
  color: #73757a;
  font-size: 0.68rem;
}

.experience-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
}

.experience-grid--three {
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.experience-card {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  background: var(--navy-3);
}

.experience-card::after {
  content: "";
  position: absolute;
  inset: 30% 0 0;
  background: linear-gradient(transparent, rgba(1, 5, 14, 0.97));
}

.experience-card > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.experience-card:hover > img {
  transform: scale(1.05);
}

.experience-card > div {
  position: absolute;
  z-index: 1;
  inset: auto 0 0;
  padding: 1.2rem;
}

.experience-card h3 {
  margin-bottom: 0.5rem;
  font-family: Georgia, serif;
}

.experience-card p {
  min-height: 3em;
  margin-bottom: 0.6rem;
  color: white;
  font-size: 0.75rem;
}

.tag {
  position: absolute;
  right: 0;
  bottom: calc(100% + 11rem);
  padding: 0.3rem 0.6rem;
  border-radius: 999px;
  background: #f04d43;
  font-size: 0.58rem;
  font-weight: 700;
}

.tag--green {
  background: #56ba57;
}

.memories {
  padding-top: 6rem;
}

.memory-editorial {
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.12fr) minmax(0, 0.94fr);
  align-items: start;
  gap: clamp(18px, 2vw, 32px);
  max-width: 1340px;
  margin: clamp(2.5rem, 5vw, 4.75rem) auto 0;
}

.memory-editorial__column {
  display: grid;
  gap: clamp(18px, 2vw, 32px);
}

.memory-editorial__column--left {
  padding-top: clamp(2rem, 5vw, 5.25rem);
}

.memory-editorial__column--right {
  padding-top: clamp(1rem, 2.6vw, 2.75rem);
}

.memory-editorial__item {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  background: #111827;
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.22);
}

.memory-editorial__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 750ms cubic-bezier(0.16, 1, 0.3, 1), filter 500ms ease;
}

.memory-editorial__item:hover img,
.memory-editorial__item:focus-visible img {
  transform: scale(1.035);
  filter: saturate(1.08) contrast(1.02);
}

.memory-editorial__link::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 20px;
  background: rgba(239, 120, 0, 0.77);
  opacity: 0;
  pointer-events: none;
  transform: scale(1.08);
  transition: opacity 400ms ease, transform 400ms ease;
}

.memory-editorial__destination {
  position: absolute;
  z-index: 2;
  left: clamp(2.75rem, 12%, 4rem);
  right: clamp(2.75rem, 12%, 4rem);
  bottom: clamp(2.75rem, 8%, 4rem);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: #fff;
  font-family: "EB Garamond", Georgia, serif;
  font-size: clamp(2rem, 3.1vw, 2.5rem);
  font-weight: 600;
  letter-spacing: normal;
  line-height: 1.125;
  text-align: left;
  text-transform: none;
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 300ms ease 100ms, transform 300ms ease 100ms;
}

.memory-editorial__destination::before {
  content: attr(data-eyebrow);
  display: block;
  width: fit-content;
  margin-bottom: 10px;
  padding-bottom: 5px;
  border-bottom: 1px solid #fff;
  font-family: "Poppins", Arial, sans-serif;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 1.1px;
  line-height: 19.5px;
  text-transform: capitalize;
}

.memory-editorial__destination::after {
  content: "View Gallery";
  display: block;
  width: fit-content;
  margin-top: 25px;
  padding: 8px 30px;
  border: 1px solid #fff;
  border-radius: 5px;
  font-family: "Poppins", Arial, sans-serif;
  font-size: 12px;
  font-weight: 300;
  letter-spacing: normal;
  line-height: 27px;
  text-transform: none;
}

.memory-editorial__link:hover::after,
.memory-editorial__link:focus-visible::after {
  opacity: 0.93;
}

.memory-editorial__link:hover .memory-editorial__destination,
.memory-editorial__link:focus-visible .memory-editorial__destination {
  opacity: 1;
}

.memory-editorial__link:hover .memory-editorial__destination,
.memory-editorial__link:focus-visible .memory-editorial__destination {
  transform: translateY(0);
}

.memory-editorial__link:hover::after,
.memory-editorial__link:focus-visible::after {
  transform: scale(1);
}

.memory-editorial__link:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 4px;
}

.memory-editorial__dots {
  display: none;
}

.memory-editorial__item--horse {
  aspect-ratio: 4 / 5;
}

.memory-editorial__item--horse img {
  object-position: 50% 34%;
}

.memory-editorial__item--colombia {
  aspect-ratio: 3 / 4;
}

.memory-editorial__item--colombia img {
  object-position: center 38%;
}

.memory-editorial__item--buddha {
  aspect-ratio: 10 / 9;
}

.memory-editorial__item--buddha img {
  object-position: center 24%;
}

.memory-editorial__video {
  aspect-ratio: 16 / 10;
  cursor: pointer;
  font: inherit;
  color: white;
}

.memory-editorial__video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(3, 10, 24, 0.7));
  pointer-events: none;
}

.memory-editorial__video:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 4px;
}

.memory-editorial__play {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 58px;
  height: 58px;
  border: 2px solid white;
  border-radius: 50%;
  background: rgba(4, 13, 30, 0.52);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.32);
  transform: translate(-50%, -50%);
}

.memory-editorial__play::before {
  content: "";
  position: absolute;
  left: 52%;
  top: 50%;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 13px solid white;
  transform: translate(-38%, -50%);
}

.memory-editorial__video-label {
  position: absolute;
  z-index: 2;
  left: 1rem;
  bottom: 0.9rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.memory-editorial__item--drinks {
  aspect-ratio: 1 / 1;
}

.memory-editorial__item--barcelona {
  aspect-ratio: 4 / 5;
}

.memory-editorial__item--barcelona img {
  object-position: center 36%;
}

.memory-editorial__item--temple {
  aspect-ratio: 3 / 4;
}

.memory-editorial__item--temple img {
  object-position: center 38%;
}

.memory-video-modal[hidden] {
  display: none;
}

.memory-video-modal {
  position: fixed;
  z-index: 1500;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgba(2, 8, 19, 0.9);
  opacity: 0;
  transition: opacity 230ms ease;
}

.memory-video-modal.is-open {
  opacity: 1;
}

.memory-video-modal__dialog {
  position: relative;
  width: min(1040px, 100%);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 14px;
  background: #030b1a;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.62);
  transform: translateY(20px) scale(0.985);
  transition: transform 230ms ease;
}

.memory-video-modal.is-open .memory-video-modal__dialog {
  transform: translateY(0) scale(1);
}

.memory-video-modal__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 14px;
}

.memory-video-modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.memory-video-modal__close {
  position: absolute;
  z-index: 2;
  top: -18px;
  right: -18px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 2px solid white;
  border-radius: 50%;
  background: var(--orange);
  color: white;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

body.memory-video-open {
  overflow: hidden;
}

.memory-mosaic {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(2, 300px);
  gap: clamp(6px, 0.55vw, 10px);
  padding: 2px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
}

.memory-mosaic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;
  border-radius: 4px;
  transition: filter 500ms ease, transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.memory-mosaic > :nth-child(1) {
  grid-column: 1 / 7;
  grid-row: 1;
}

.memory-mosaic > :nth-child(2) {
  grid-column: 7 / 10;
  grid-row: 1 / 3;
}

.memory-mosaic > :nth-child(3) {
  grid-column: 10 / 13;
  grid-row: 1 / 3;
}

.memory-mosaic > :nth-child(4) {
  grid-column: 1 / 7;
  grid-row: 2;
  object-position: center 22%;
}

.memory-mosaic:hover img:not(:hover) {
  filter: brightness(0.72) saturate(0.78);
}

.memory-mosaic img:hover {
  transform: scale(1.015);
}

.testimonial-image span,
.membership-video span {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 54px;
  height: 54px;
  border: 2px solid white;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  background: rgba(4, 9, 20, 0.35);
}

.insiders {
  max-width: var(--content);
  margin: clamp(4rem, 8vw, 8rem) auto;
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  background: #1d2130;
}

.insiders-copy {
  padding: clamp(2rem, 5vw, 4rem);
}

.insiders-copy > p {
  max-width: 600px;
}

.insiders > img {
  width: 100%;
  height: 100%;
  min-height: 480px;
  object-fit: cover;
}

.check-grid {
  margin: 2rem 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.5rem;
  list-style: none;
}

.check-grid li {
  position: relative;
  padding-left: 1.8rem;
  color: #e2e3e7;
  font-size: 0.85rem;
}

.check-grid li::before {
  content: "✓";
  position: absolute;
  left: 0;
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid #9ba0ad;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 0.65rem;
}

.benefit-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}

.benefit-grid--four {
  grid-template-columns: repeat(4, 1fr);
}

.benefit-grid article {
  padding: 0 1.3rem;
  text-align: center;
  border-right: 1px solid var(--line);
}

.benefit-grid article:last-child {
  border-right: 0;
}

.benefit-grid i {
  width: 48px;
  height: 48px;
  margin: 0 auto 1.1rem;
  border: 1px solid var(--orange);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--orange);
  font-style: normal;
}

.benefit-grid h3 {
  font-size: 0.9rem;
}

.benefit-grid p {
  font-size: 0.72rem;
}

.testimonial {
  padding: clamp(5rem, 9vw, 8rem) var(--page-pad);
  background: #2c303b;
}

.testimonial--video {
  padding: clamp(2rem, 4vw, 4rem) var(--page-pad);
}

.testimonial--video .section-heading {
  margin-bottom: clamp(1.75rem, 3vw, 3rem);
}

.testimonial-video {
  display: block;
  width: min(80%, 960px);
  aspect-ratio: 16 / 9;
  margin-inline: auto;
  border-radius: 14px;
  background: #050914;
  object-fit: contain;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.24);
}

@media (max-width: 700px) {
  .testimonial-video {
    width: 90%;
  }
}

.testimonial-grid {
  max-width: 1050px;
  margin: 3rem auto 0;
  display: grid;
  grid-template-columns: 0.72fr 1.25fr;
  align-items: center;
  gap: 4rem;
}

.testimonial-image {
  position: relative;
  max-width: 350px;
  margin-left: auto;
}

.testimonial-image img {
  width: 100%;
  max-height: 460px;
  object-fit: cover;
}

blockquote {
  position: relative;
  margin: 0;
  padding: 2rem;
}

blockquote > b {
  display: block;
  height: 4rem;
  color: var(--orange);
  font-family: Georgia, serif;
  font-size: 6rem;
  line-height: 0.8;
}

blockquote p {
  max-width: 650px;
  color: white;
}

blockquote footer {
  display: flex;
  flex-direction: column;
}

blockquote footer span {
  color: var(--muted);
  font-size: 0.72rem;
}

.quote-end {
  text-align: right;
}

.plan-cta {
  max-width: var(--content);
  margin: clamp(4rem, 8vw, 7rem) auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: linear-gradient(120deg, #201d27, #111725);
}

.plan-cta > div {
  padding: clamp(2.5rem, 5vw, 5rem);
}

.plan-cta img {
  width: 100%;
  height: 100%;
  min-height: 390px;
  object-fit: cover;
}

.trust {
  position: relative;
  min-height: 470px;
  padding: 6rem var(--page-pad);
  display: grid;
  place-items: center;
  text-align: center;
  background: url("official/home-carousel/desert-group.webp") center 32% / cover;
}

.trust-content p {
  max-width: 720px;
  margin-inline: auto;
  color: white;
}

.trust-stats {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.trust-stats div {
  padding: 0 2rem;
  border-right: 1px solid rgba(255, 255, 255, 0.3);
}

.trust-stats div:last-child {
  border-right: 0;
}

.trust-stats b,
.trust-stats span {
  display: block;
}

.trust-stats b {
  color: var(--orange-soft);
  font-family: Georgia, serif;
  font-size: 2rem;
}

.trust-stats span {
  margin-top: 0.2rem;
  font-size: 0.76rem;
}

.newsletter {
  padding: clamp(1.5rem, 2.5vw, 2.2rem) var(--page-pad);
  background: #3b3d49;
  text-align: center;
}

.site-footer .newsletter h2 {
  margin-bottom: 0.75rem;
  font-size: clamp(2rem, 3vw, 2.7rem);
}

.newsletter p {
  margin-inline: auto;
}

.newsletter form {
  max-width: 560px;
  margin: 1rem auto 0;
  display: grid;
  grid-template-columns: 1fr auto;
}

.newsletter input {
  min-width: 0;
  border: 1px solid #7e8291;
  border-right: 0;
  padding: 0 1rem;
  background: rgba(255, 255, 255, 0.05);
  color: white;
}

.form-status {
  min-height: 0;
  margin-top: 0.55rem;
  color: #a7e0b3;
  font-size: 0.78rem;
}

.form-status:empty {
  display: none;
}

.site-footer {
  background: #20283a;
}

.footer-grid {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(1.65rem, 2.5vw, 2.25rem) var(--page-pad);
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: clamp(1.5rem, 3vw, 3rem);
  background: #3b3d49;
}

.footer-grid {
  min-height: clamp(260px, 21vw, 330px);
  align-items: start;
}

.footer-grid::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  pointer-events: none;
  opacity: 0.82;
  background:
    linear-gradient(180deg, rgba(59, 61, 73, 0) 0%, rgba(17, 27, 49, 0.18) 100%),
    url("official/footer-people-silhouettes.svg") center bottom / 100% auto no-repeat;
}

.footer-grid > * {
  position: relative;
  z-index: 1;
}

.footer-grid > div:first-child p {
  max-width: 270px;
  margin-top: 0.85rem;
  font-size: 0.82rem;
}

.footer-grid h3 {
  margin-bottom: 0.75rem;
  color: var(--orange-soft);
  font-family: Georgia, serif;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.footer-grid > div:not(:first-child) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-grid > div:not(:first-child) a {
  margin-bottom: 0.42rem;
  color: #d2d4da;
  font-size: 0.78rem;
}

.footer-socials {
  display: flex;
  gap: 0.55rem;
}

.footer-socials a {
  width: 29px;
  height: 29px;
  border: 1px solid #788095;
  border-radius: 3px;
  display: grid;
  place-items: center;
  font-size: 0.7rem;
}

.footer-bottom {
  padding: 0.75rem var(--page-pad);
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  color: #a5a9b3;
  font-size: 0.72rem;
}

.footer-bottom a {
  color: inherit;
  font-weight: 700;
  white-space: nowrap;
  transition: color 180ms ease;
}

.footer-bottom a:hover,
.footer-bottom a:focus-visible {
  color: var(--orange-soft);
}

.footer-bottom a strong {
  color: var(--orange);
  font-weight: 800;
  letter-spacing: 0.045em;
  transition: color 180ms ease;
}

.footer-bottom a:hover strong,
.footer-bottom a:focus-visible strong {
  color: var(--orange-soft);
}

.footer-support-heading {
  margin-top: 1.25rem;
}

.floating-actions {
  position: fixed;
  z-index: 60;
  right: 1.5rem;
  bottom: max(1.5rem, env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.floating-actions a {
  width: 64px;
  height: 64px;
  border: 4px solid white;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--orange);
  color: white;
  font-size: 0;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

.floating-actions a:last-child {
  background: #41b85a;
}

.floating-actions a::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 26px;
  height: 26px;
  background: white;
  transform: translate(-50%, -50%);
  -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuNSA3YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTF6TTUgOS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41bTAgMmEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNSIvPjxwYXRoIGQ9Ik05LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC41em0wIDF2MkExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXoiLz48L3N2Zz4=") center / contain no-repeat;
  mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuNSA3YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTF6TTUgOS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41bTAgMmEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNSIvPjxwYXRoIGQ9Ik05LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC41em0wIDF2MkExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXoiLz48L3N2Zz4=") center / contain no-repeat;
}

.floating-actions a:last-child::after {
  width: 32px;
  height: 32px;
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTEzLjYwMSAyLjMyNkE3Ljg1IDcuODUgMCAwIDAgNy45OTQgMEMzLjYyNyAwIC4wNjggMy41NTguMDY0IDcuOTI2YzAgMS4zOTkuMzY2IDIuNzYgMS4wNTcgMy45NjVMMCAxNmw0LjIwNC0xLjEwMmE3LjkgNy45IDAgMCAwIDMuNzkuOTY1aC4wMDRjNC4zNjggMCA3LjkyNi0zLjU1OCA3LjkzLTcuOTNBNy45IDcuOSAwIDAgMCAxMy42IDIuMzI2ek03Ljk5NCAxNC41MjFhNi42IDYuNiAwIDAgMS0zLjM1Ni0uOTJsLS4yNC0uMTQ0LTIuNDk0LjY1NC42NjYtMi40MzMtLjE1Ni0uMjUxYTYuNTYgNi41NiAwIDAgMS0xLjAwNy0zLjUwNWMwLTMuNjI2IDIuOTU3LTYuNTg0IDYuNTkxLTYuNTg0YTYuNTYgNi41NiAwIDAgMSA0LjY2IDEuOTMxIDYuNTYgNi41NiAwIDAgMSAxLjkyOCA0LjY2Yy0uMDA0IDMuNjM5LTIuOTYxIDYuNTkyLTYuNTkyIDYuNTkybTMuNjE1LTQuOTM0Yy0uMTk3LS4wOTktMS4xNy0uNTc4LTEuMzUzLS42NDYtLjE4Mi0uMDY1LS4zMTUtLjA5OS0uNDQ1LjA5OS0uMTMzLjE5Ny0uNTEzLjY0Ni0uNjI3Ljc3NS0uMTE0LjEzMy0uMjMyLjE0OC0uNDMuMDUtLjE5Ny0uMS0uODM2LS4zMDgtMS41OTItLjk4NS0uNTktLjUyNS0uOTg1LTEuMTc1LTEuMTAzLTEuMzcyLS4xMTQtLjE5OC0uMDExLS4zMDQuMDg4LS40MDMuMDg3LS4wODguMTk3LS4yMzIuMjk2LS4zNDYuMS0uMTE0LjEzMy0uMTk4LjE5OC0uMzMuMDY1LS4xMzQuMDM0LS4yNDgtLjAxNS0uMzQ3LS4wNS0uMDk5LS40NDUtMS4wNzYtLjYxMi0xLjQ3LS4xNi0uMzg5LS4zMjMtLjMzNS0uNDQ1LS4zNC0uMTE0LS4wMDctLjI0Ny0uMDA3LS4zOC0uMDA3YS43My43MyAwIDAgMC0uNTI5LjI0N2MtLjE4Mi4xOTgtLjY5MS42NzctLjY5MSAxLjY1NHMuNzEgMS45MTYuODEgMi4wNDljLjA5OC4xMzMgMS4zOTQgMi4xMzIgMy4zODMgMi45OTIuNDcuMjA1Ljg0LjMyNiAxLjEyOS40MTguNDc1LjE1Mi45MDQuMTI5IDEuMjQ2LjA4LjM4LS4wNTggMS4xNzEtLjQ4IDEuMzM4LS45NDMuMTY0LS40NjQuMTY0LS44Ni4xMTQtLjk0My0uMDQ5LS4wODQtLjE4Mi0uMTMzLS4zOC0uMjMyIi8+PC9zdmc+");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTEzLjYwMSAyLjMyNkE3Ljg1IDcuODUgMCAwIDAgNy45OTQgMEMzLjYyNyAwIC4wNjggMy41NTguMDY0IDcuOTI2YzAgMS4zOTkuMzY2IDIuNzYgMS4wNTcgMy45NjVMMCAxNmw0LjIwNC0xLjEwMmE3LjkgNy45IDAgMCAwIDMuNzkuOTY1aC4wMDRjNC4zNjggMCA3LjkyNi0zLjU1OCA3LjkzLTcuOTNBNy45IDcuOSAwIDAgMCAxMy42IDIuMzI2ek03Ljk5NCAxNC41MjFhNi42IDYuNiAwIDAgMS0zLjM1Ni0uOTJsLS4yNC0uMTQ0LTIuNDk0LjY1NC42NjYtMi40MzMtLjE1Ni0uMjUxYTYuNTYgNi41NiAwIDAgMS0xLjAwNy0zLjUwNWMwLTMuNjI2IDIuOTU3LTYuNTg0IDYuNTkxLTYuNTg0YTYuNTYgNi41NiAwIDAgMSA0LjY2IDEuOTMxIDYuNTYgNi41NiAwIDAgMSAxLjkyOCA0LjY2Yy0uMDA0IDMuNjM5LTIuOTYxIDYuNTkyLTYuNTkyIDYuNTkybTMuNjE1LTQuOTM0Yy0uMTk3LS4wOTktMS4xNy0uNTc4LTEuMzUzLS42NDYtLjE4Mi0uMDY1LS4zMTUtLjA5OS0uNDQ1LjA5OS0uMTMzLjE5Ny0uNTEzLjY0Ni0uNjI3Ljc3NS0uMTE0LjEzMy0uMjMyLjE0OC0uNDMuMDUtLjE5Ny0uMS0uODM2LS4zMDgtMS41OTItLjk4NS0uNTktLjUyNS0uOTg1LTEuMTc1LTEuMTAzLTEuMzcyLS4xMTQtLjE5OC0uMDExLS4zMDQuMDg4LS40MDMuMDg3LS4wODguMTk3LS4yMzIuMjk2LS4zNDYuMS0uMTE0LjEzMy0uMTk4LjE5OC0uMzMuMDY1LS4xMzQuMDM0LS4yNDgtLjAxNS0uMzQ3LS4wNS0uMDk5LS40NDUtMS4wNzYtLjYxMi0xLjQ3LS4xNi0uMzg5LS4zMjMtLjMzNS0uNDQ1LS4zNC0uMTE0LS4wMDctLjI0Ny0uMDA3LS4zOC0uMDA3YS43My43MyAwIDAgMC0uNTI5LjI0N2MtLjE4Mi4xOTgtLjY5MS42NzctLjY5MSAxLjY1NHMuNzEgMS45MTYuODEgMi4wNDljLjA5OC4xMzMgMS4zOTQgMi4xMzIgMy4zODMgMi45OTIuNDcuMjA1Ljg0LjMyNiAxLjEyOS40MTguNDc1LjE1Mi45MDQuMTI5IDEuMjQ2LjA4LjM4LS4wNTggMS4xNzEtLjQ4IDEuMzM4LS45NDMuMTY0LS40NjQuMTY0LS44Ni4xMTQtLjk0My0uMDQ5LS4wODQtLjE4Mi0uMTMzLS4zOC0uMjMyIi8+PC9zdmc+");
}

.travel-forms-modal[hidden] {
  display: none !important;
}

.travel-forms-modal {
  position: fixed;
  z-index: 120;
  inset: 0;
  padding-left: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  visibility: hidden;
  transition: opacity 220ms ease, visibility 220ms ease;
}

.travel-forms-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.travel-forms-panel {
  position: relative;
  width: min(390px, calc(100vw - 1.25rem));
  padding: 2rem 1.9rem 1.65rem;
  border-radius: 12px 0 0 12px;
  background: white;
  color: #222939;
  box-shadow: 2px 8px 32px rgba(0, 0, 0, 0.28);
  opacity: 0;
  transform: translateX(36px);
  transition: opacity 220ms ease, transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
}

.travel-forms-modal.is-open .travel-forms-panel {
  opacity: 1;
  transform: translateX(0);
}

.travel-forms-panel .eyebrow {
  margin-bottom: 0.35rem;
  color: #c2661a;
}

.travel-forms-panel h2 {
  max-width: 290px;
  margin-bottom: 1.2rem;
  color: #3c4350;
  font-size: clamp(1.55rem, 3vw, 1.9rem);
  line-height: 1.08;
}

.travel-forms-close {
  position: absolute;
  top: 0.85rem;
  right: 0.9rem;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #edf0f4;
  color: #293142;
  cursor: pointer;
  font-size: 1.45rem;
  line-height: 1;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.travel-forms-close:hover,
.travel-forms-close:focus-visible {
  background: var(--orange);
  color: white;
  transform: rotate(6deg);
}

.travel-forms-list {
  display: grid;
}

.travel-form-option {
  min-height: 56px;
  padding: 0.7rem 0;
  border-top: 1px solid #e3e6eb;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  color: #283246;
  transition: color 180ms ease, padding-left 180ms ease;
}

.travel-form-option:hover,
.travel-form-option:focus-visible {
  padding-left: 0.4rem;
  color: #c45f12;
}

.travel-form-option-icon {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(232, 128, 40, 0.5);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(232, 128, 40, 0.1);
  color: #c45f12;
  font-family: Arial, Helvetica, sans-serif;
  font-variant-emoji: text;
  font-size: 0.8rem;
  font-weight: 900;
}

.travel-form-option b,
.travel-form-option small {
  display: block;
}

.travel-form-option b {
  font-size: 0.84rem;
}

.travel-form-option small {
  margin-top: 0.12rem;
  color: #747b87;
  font-size: 0.65rem;
}

body.forms-modal-open {
  overflow: hidden;
}

.subhero {
  position: relative;
  min-height: 680px;
  padding: 165px var(--page-pad) 4rem;
  display: grid;
  place-items: center;
  text-align: center;
}

.subhero h1 {
  margin-bottom: 0.8rem;
  font-size: clamp(2.7rem, 4.2vw, 3.4rem);
  line-height: 1.05;
}

.subhero p {
  color: white;
  font-size: clamp(1rem, 1.8vw, 1.35rem);
}

.about-hero {
  background: linear-gradient(rgba(1, 5, 14, 0.28), rgba(1, 5, 14, 0.58)), url("official/about/team-2026-wide.webp") center 52% / cover;
}

.about-hero h1 {
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-weight: 700;
}

.about-hero > div:not(.hero-overlay) {
  transform: translateY(118px);
}

.gallery-hero {
  background: #08101f;
  animation: none !important;
  min-height: 680px;
}

.gallery-hero__memories {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.gallery-hero__memory {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 900ms ease-in-out;
  will-change: opacity;
  overflow: hidden;
}

.gallery-hero__memory::before {
  content: none;
}

.gallery-hero__memory::after {
  content: none;
}

.gallery-hero__memory img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
}

.gallery-hero__memory:nth-child(1) img { object-position: 52% 54%; }
.gallery-hero__memory:nth-child(2) img { object-position: 50% 46%; }
.gallery-hero__memory:nth-child(3) img { object-position: 48% 56%; }
.gallery-hero__memory:nth-child(4) img { object-position: 50% 48%; }
.gallery-hero__memory:nth-child(5) img { object-position: 34% 52%; }
.gallery-hero__memory:nth-child(6) img { object-position: 68% 62%; }

.gallery-hero__memory.is-active {
  opacity: 1;
}

.gallery-hero .hero-overlay {
  z-index: 1;
  background: linear-gradient(rgba(1, 5, 14, 0.28), rgba(1, 5, 14, 0.58));
}

.gallery-hero__content {
  z-index: 2 !important;
  transform: translateY(118px);
}

.gallery-hero__content h1 {
  margin-bottom: 0.8rem;
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: clamp(44px, 4.2vw, 60px) !important;
  font-weight: 700;
  line-height: 1.05 !important;
  letter-spacing: normal;
  white-space: normal;
}

.gallery-hero__content p {
  font-size: clamp(16px, 1.8vw, 22px) !important;
}

@media (max-width: 600px) {
  .gallery-hero__content {
    transform: translateY(70px);
  }

  .gallery-hero__content h1 {
    font-size: clamp(38px, 11vw, 48px) !important;
  }

  .gallery-hero__content p {
    max-width: 320px;
    margin-inline: auto;
    font-size: 17px !important;
  }

  .gallery-hero__memory:nth-child(1) img { object-position: 55% 50%; }
  .gallery-hero__memory:nth-child(2) img { object-position: 54% 50%; }
  .gallery-hero__memory:nth-child(3) img { object-position: 47% 50%; }
  .gallery-hero__memory:nth-child(4) img { object-position: 50% 50%; }
  .gallery-hero__memory:nth-child(5) img { object-position: 28% 50%; }
  .gallery-hero__memory:nth-child(6) img { object-position: 70% 54%; }
}

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

.blog-hero {
  min-height: 620px;
  background: url("official/blog/blog-header-travel-journal.webp") center / cover;
}

.about-figma {
  padding: clamp(4.75rem, 7vw, 7.5rem) clamp(1.25rem, 3vw, 3.5rem) clamp(6rem, 9vw, 9.5rem);
  overflow: hidden;
  background: #050b19;
  color: var(--white);
}

.about-figma__inner {
  width: min(100%, 1380px);
  margin-inline: auto;
}

.about-founder {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7.5rem);
}

.about-founder__copy {
  max-width: 690px;
}

.about-kicker {
  margin: 0 0 0.35rem;
  color: var(--orange);
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
}

.about-founder h2,
.about-team-intro h2,
.about-humans h2 {
  margin: 0;
  color: var(--white);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -0.025em;
}

.about-founder h2 {
  margin-bottom: 1.25rem;
  font-size: clamp(2.7rem, 4.25vw, 4.15rem);
  line-height: 0.98;
}

.about-founder__copy > p:not(.about-kicker) {
  margin: 0 0 1.05rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(0.86rem, 1.05vw, 0.98rem);
  line-height: 1.72;
}

.about-founder__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.2rem;
  margin-top: 1.6rem;
}

.about-button {
  min-height: 38px;
  padding: 0.72rem 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border: 1px solid var(--orange);
  border-radius: 2px;
  background: var(--orange);
  color: #fff;
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: 0.64rem;
  font-weight: 650;
  line-height: 1;
  letter-spacing: 0.035em;
  text-transform: uppercase;
  transition: transform 180ms ease, background-color 180ms ease;
}

.about-button__icon {
  width: 0.95rem;
  height: 0.95rem;
  display: block;
  flex: 0 0 auto;
  color: #fff;
  fill: currentColor;
}

.about-button:hover,
.about-button:focus-visible {
  background: var(--orange-soft);
  transform: translateY(-2px);
}

.about-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.78rem;
  font-weight: 600;
}

.about-text-link > span {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--navy);
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
  transition: transform 180ms ease;
}

.about-text-link:hover > span,
.about-text-link:focus-visible > span {
  transform: translateX(3px);
}

.about-founder__portrait {
  margin: 0;
}

.about-founder__portrait img {
  width: 100%;
  aspect-ratio: 0.93;
  display: block;
  border-radius: 1rem;
  object-fit: cover;
  object-position: center 28%;
}

.about-team-grid {
  margin-top: clamp(5.5rem, 8.5vw, 9rem);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: 2.2rem clamp(1rem, 2vw, 1.7rem);
}

.about-team-intro {
  grid-column: span 2;
  padding-right: clamp(2rem, 5vw, 5.2rem);
}

.about-kicker--rule {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.about-kicker--rule::before {
  content: "";
  width: 52px;
  height: 1px;
  display: inline-block;
  background: var(--orange);
}

.about-team-intro h2 {
  margin: 0.25rem 0 0.85rem;
  font-size: clamp(2rem, 3.15vw, 3rem);
  line-height: 1.04;
}

.about-team-intro > p:not(.about-kicker) {
  max-width: 475px;
  margin: 0 0 1.1rem;
  color: rgba(255, 255, 255, 0.77);
  font-size: 0.83rem;
  line-height: 1.68;
}

.about-team-intro > .about-button {
  min-height: 34px;
  padding: 0.62rem 1rem;
  font-size: 0.6rem;
}

.about-qr {
  width: max-content;
  margin-top: 1rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  color: rgba(255, 255, 255, 0.78);
}

.about-qr img {
  width: 76px;
  height: 76px;
  padding: 4px;
  display: block;
  background: #fff;
  opacity: 1 !important;
  visibility: visible !important;
  filter: none !important;
  transform: none !important;
}

.about-qr b,
.about-qr em {
  display: block;
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: 0.65rem;
  font-style: normal;
  line-height: 1.5;
}

.about-qr b {
  font-weight: 500;
}

.about-qr em {
  color: var(--orange);
}

.about-team-card__media {
  position: relative;
  overflow: hidden;
  border-radius: 0.4rem;
  background: #0c1424;
  outline: none;
  cursor: pointer;
}

.about-team-card__media:focus-visible {
  box-shadow: 0 0 0 3px var(--orange), 0 0 0 6px rgba(242, 127, 28, 0.24);
}

.about-team-card img {
  width: 100%;
  aspect-ratio: 0.79;
  display: block;
  object-fit: cover;
  object-position: center 24%;
  transition: transform 500ms cubic-bezier(0.2, 0.75, 0.25, 1), filter 350ms ease;
}

.about-team-card__bio {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(1rem, 1.5vw, 1.4rem);
  background: linear-gradient(180deg, rgba(3, 9, 21, 0.08) 4%, rgba(3, 9, 21, 0.94) 58%, #030915 100%);
  color: #fff;
  opacity: 0;
  transform: translateY(12%);
  transition: opacity 300ms ease, transform 420ms cubic-bezier(0.2, 0.75, 0.25, 1);
  pointer-events: none;
}

.about-team-card__bio::before {
  content: "";
  width: 42px;
  height: 2px;
  margin-bottom: 0.65rem;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 420ms 100ms ease;
}

.about-team-card__bio span {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--orange);
  font-size: clamp(0.68rem, 0.8vw, 0.78rem);
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.about-team-card__bio p {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(0.66rem, 0.78vw, 0.76rem);
  line-height: 1.55;
}

.about-team-card__media:hover img,
.about-team-card__media:focus img,
.about-team-card__media:focus-visible img {
  transform: scale(1.055);
  filter: brightness(0.72);
}

.about-team-card__media:hover .about-team-card__bio,
.about-team-card__media:focus .about-team-card__bio,
.about-team-card__media:focus-visible .about-team-card__bio {
  opacity: 1;
  transform: translateY(0);
}

.about-team-card__media:hover .about-team-card__bio::before,
.about-team-card__media:focus .about-team-card__bio::before,
.about-team-card__media:focus-visible .about-team-card__bio::before {
  transform: scaleX(1);
}

.about-team-card h3 {
  margin: 0.7rem 0 0.12rem;
  color: var(--white);
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: clamp(0.8rem, 1.05vw, 0.98rem);
  font-weight: 500;
  line-height: 1.2;
}

.about-team-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.46);
  font-size: 0.63rem;
  line-height: 1.35;
}

.about-team-card--tiara img {
  object-position: center 34%;
}

body.about-profile-ready .about-team-card__bio {
  display: none;
}

.about-profile-preview[hidden] {
  display: none;
}

.about-profile-preview {
  position: fixed;
  inset: 0;
  z-index: 5100;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: rgba(2, 5, 10, 0.79);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 230ms ease, visibility 230ms ease;
}

.about-profile-preview.is-open {
  opacity: 1;
  visibility: visible;
}

.about-profile-preview.is-pinned {
  pointer-events: auto;
}

.about-profile-preview__dialog {
  position: relative;
  width: min(716px, calc(100vw - 3rem));
  height: min(388px, calc(100svh - 3rem));
  max-height: calc(100svh - 3rem);
  overflow: auto;
  display: grid;
  grid-template-columns: minmax(132px, 157px) minmax(0, 1fr);
  align-items: center;
  gap: 1.8rem;
  padding: 2rem 1.8rem 2.3rem;
  border: 1px solid rgba(211, 219, 230, 0.56);
  border-radius: 0.75rem;
  background: #030b19;
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.56);
  transform: translateY(18px) scale(0.975);
  transition: transform 280ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.about-profile-preview.is-open .about-profile-preview__dialog {
  transform: translateY(-5px) scale(1);
}

.about-profile-preview__portrait {
  width: 100%;
  aspect-ratio: 0.805;
  align-self: start;
  margin-top: 0.1rem;
  display: block;
  border-radius: 0.55rem;
  object-fit: cover;
  object-position: center 24%;
}

.about-profile-preview__copy {
  min-width: 0;
  min-height: 255px;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  padding-top: 0.1rem;
}

.about-profile-preview__copy h3 {
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.3rem, 1.55vw, 1.45rem);
  font-weight: 700;
  line-height: 1.08;
}

.about-profile-preview__role {
  margin: 0.45rem 0 0.9rem;
  color: rgba(255, 255, 255, 0.47);
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: 0.8rem;
  line-height: 1.4;
}

.about-profile-preview__bio {
  max-width: 780px;
  margin: 0;
  color: rgba(255, 255, 255, 0.91);
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
  font-size: clamp(0.68rem, 0.76vw, 0.75rem);
  line-height: 1.62;
}

.about-profile-preview__contacts {
  margin-top: auto;
  padding-top: 1.1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem clamp(1.7rem, 3.8vw, 3.8rem);
}

.about-profile-preview__contact {
  min-width: 150px;
  display: grid;
  grid-template-columns: 34px auto;
  align-items: center;
  gap: 0.65rem;
  color: #fff;
  font-family: "Avenir Next", "Montserrat", "Segoe UI", sans-serif;
}

.about-profile-preview__contact:hover,
.about-profile-preview__contact:focus-visible {
  color: var(--orange);
}

.about-profile-preview__contact svg {
  width: 34px;
  height: 34px;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 50%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.about-profile-preview__contact b,
.about-profile-preview__contact span {
  display: block;
}

.about-profile-preview__contact b {
  margin-bottom: 0.1rem;
  font-size: 0.72rem;
  font-weight: 500;
}

.about-profile-preview__contact span {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.68rem;
}

.about-profile-preview__close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  background: rgba(2, 8, 18, 0.72);
  color: #fff;
  font: 300 1.2rem/1 Arial, sans-serif;
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  transition: opacity 180ms ease, border-color 180ms ease, color 180ms ease;
}

.about-profile-preview.is-pinned .about-profile-preview__close {
  opacity: 0.72;
  pointer-events: auto;
}

.about-profile-preview__close:hover,
.about-profile-preview__close:focus-visible {
  border-color: var(--orange);
  color: var(--orange);
  opacity: 1;
}

body.about-profile-pinned {
  overflow: hidden;
}

@media (max-width: 760px) {
  .about-profile-preview {
    place-items: end center;
    padding: 0;
  }

  .about-profile-preview__dialog {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 90svh;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 3.8rem 1.25rem 2rem;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 1.1rem 1.1rem 0 0;
  }

  .about-profile-preview.is-open .about-profile-preview__dialog {
    transform: translateY(0) scale(1);
  }

  .about-profile-preview__portrait {
    width: min(44vw, 170px);
    margin: 0 auto;
  }

  .about-profile-preview__copy {
    min-height: 0;
  }

  .about-profile-preview__copy h3,
  .about-profile-preview__role {
    text-align: center;
  }

  .about-profile-preview__copy h3 {
    font-size: 2rem;
  }

  .about-profile-preview__role {
    margin-bottom: 1rem;
    font-size: 1rem;
  }

  .about-profile-preview__bio {
    font-size: 0.92rem;
    line-height: 1.65;
  }

  .about-profile-preview__contacts {
    margin-top: 0;
    padding-top: 1.5rem;
    gap: 1rem;
  }

  .about-profile-preview__contact {
    min-width: min(100%, 250px);
  }

  .about-profile-preview__contact svg {
    width: 40px;
    height: 40px;
    padding: 8px;
  }

  .about-profile-preview__contact b {
    font-size: 0.86rem;
  }

  .about-profile-preview__contact span {
    font-size: 0.8rem;
  }

  .about-profile-preview.is-open .about-profile-preview__close {
    opacity: 0.78;
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-profile-preview,
  .about-profile-preview__dialog {
    transition: none;
  }
}

.about-humans {
  width: min(100%, 1380px);
  margin: clamp(6.2rem, 10vw, 10.5rem) auto 0;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr);
  align-items: center;
  gap: clamp(3.25rem, 6vw, 5.5rem);
}

.about-humans__copy {
  position: relative;
  padding-left: 0;
}

.about-humans__copy::before {
  display: none;
}

.about-humans .about-kicker {
  margin-bottom: 1.2rem;
  justify-content: flex-start;
  text-align: left;
}

.about-humans h2 {
  margin-bottom: 1.15rem;
  font-size: clamp(2.5rem, 3.5vw, 3.6rem);
  line-height: 0.97;
}

.about-humans h2 span {
  white-space: nowrap;
}

.about-humans__copy > p:last-child {
  max-width: 680px;
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.86rem, 1.08vw, 1rem);
  line-height: 1.7;
}

.about-humans__media {
  position: relative;
  width: 100%;
  display: block;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0.55rem;
  background: #020812;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

.about-humans__media > img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform 500ms ease, filter 300ms ease;
}

.about-humans__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(58px, 6vw, 82px);
  height: clamp(58px, 6vw, 82px);
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  transition: transform 220ms ease, background-color 220ms ease;
}

.about-humans__play svg {
  width: 100%;
  display: block;
  overflow: visible;
}

.about-humans__play circle {
  fill: rgba(2, 8, 18, 0.18);
  stroke: #fff;
  stroke-width: 1.5;
}

.about-humans__play path {
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linejoin: round;
}

.about-humans__media:hover > img,
.about-humans__media:focus-visible > img {
  filter: brightness(0.88);
  transform: scale(1.025);
}

.about-humans__media:hover .about-humans__play,
.about-humans__media:focus-visible .about-humans__play {
  transform: translate(-50%, -50%) scale(1.08);
}

.about-humans__media:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 5px;
}

.about-video-modal[hidden] {
  display: none;
}

.about-video-modal {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: rgba(0, 5, 14, 0.9);
  backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 220ms ease;
}

.about-video-modal.is-open {
  opacity: 1;
}

.about-video-modal__dialog {
  position: relative;
  width: min(92vw, 470px);
  max-height: 90svh;
  transform: translateY(18px) scale(0.97);
  transition: transform 260ms ease;
}

.about-video-modal.is-open .about-video-modal__dialog {
  transform: translateY(0) scale(1);
}

.about-video-modal video {
  width: 100%;
  max-height: 90svh;
  aspect-ratio: 9 / 16;
  display: block;
  border: 1px solid rgba(232, 128, 40, 0.45);
  border-radius: 0.8rem;
  background: #000;
  object-fit: contain;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.6);
}

.about-video-modal__close {
  position: absolute;
  z-index: 2;
  top: 0.7rem;
  right: 0.7rem;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(2, 8, 18, 0.78);
  color: #fff;
  font: 300 1.8rem/1 Arial, sans-serif;
  cursor: pointer;
}

body.about-team-video-open {
  overflow: hidden;
}

@media (max-width: 900px) {
  .about-founder {
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
    gap: 2.5rem;
  }

  .about-team-intro {
    padding-right: 1rem;
  }

  .about-humans {
    gap: 3rem;
  }
}

@media (max-width: 720px) {
  .about-figma {
    padding-top: 4rem;
    padding-bottom: 5.5rem;
  }

  .about-founder,
  .about-humans {
    grid-template-columns: 1fr;
  }

  .about-founder__portrait {
    width: min(100%, 480px);
    margin-inline: auto;
  }

  .about-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1rem;
  }

  .about-team-intro {
    grid-column: 1 / -1;
    padding-right: 0;
  }

  .about-humans {
    width: min(100%, 480px);
  }

  .about-humans h2 {
    font-size: clamp(1.9rem, 8.3vw, 2.5rem);
  }

  .about-humans__copy {
    padding-left: 0;
  }

  .about-humans__copy::before {
    display: none;
  }

  .about-humans .about-kicker {
    text-align: left;
  }

}

@media (max-width: 430px) {
  .about-founder__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .about-team-card h3 {
    font-size: 0.82rem;
  }

  .about-team-card p {
    font-size: 0.59rem;
  }
}

.gallery-feature {
  display: grid;
  grid-template-columns: 1fr 0.9fr;
  align-items: center;
  gap: clamp(3rem, 8vw, 8rem);
}

.gallery-feature h2 {
  max-width: 570px;
  font-size: clamp(3.5rem, 7vw, 7rem);
}

.gallery-feature img {
  width: 100%;
  max-height: 600px;
  border-radius: 1rem;
  object-fit: cover;
}

.video-card {
  position: relative;
  margin-bottom: 5rem;
  min-height: 550px;
  border-radius: 1rem;
  overflow: hidden;
}

.video-card > img {
  width: 100%;
  height: 100%;
  min-height: 550px;
  object-fit: cover;
}

.video-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(2, 8, 18, 0.28);
}

.video-card > div {
  position: absolute;
  z-index: 1;
  inset: 3rem 0 auto;
  text-align: center;
}

.video-card h3 {
  margin-bottom: 0.3rem;
  font-family: Georgia, serif;
  font-size: 2rem;
}

.video-card p {
  color: white;
}

.video-card button {
  width: 70px;
  height: 50px;
  margin-top: 9rem;
  border: 0;
  border-radius: 14px;
  background: #f32222;
  color: white;
  font-size: 1.5rem;
  cursor: pointer;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 210px;
  gap: 0.75rem;
}

.gallery-grid button {
  grid-column: span 4;
  border: 0;
  padding: 0;
  overflow: hidden;
  background: #111;
  cursor: zoom-in;
}

.gallery-grid button:nth-child(1),
.gallery-grid button:nth-child(6),
.gallery-grid button:nth-child(9) {
  grid-column: span 8;
}

.gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 400ms ease;
}

.gallery-grid button:hover img {
  transform: scale(1.04);
}

.lightbox {
  position: fixed;
  z-index: 100;
  inset: 0;
  padding: 3rem;
  display: grid;
  place-items: center;
  background: rgba(2, 5, 12, 0.94);
}

.lightbox img {
  max-width: min(1100px, 92vw);
  max-height: 84vh;
}

.lightbox button {
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  border: 0;
  background: transparent;
  color: white;
  font-size: 3rem;
  cursor: pointer;
}

.blog-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 370px;
  align-items: start;
  gap: 3rem;
}

.blog-posts {
  display: grid;
  gap: 5rem;
}

.blog-card img {
  width: 100%;
  max-height: 560px;
  margin-bottom: 1.4rem;
  object-fit: cover;
}

.blog-card h2 {
  font-size: clamp(1.8rem, 3vw, 3rem);
}

.popular-posts {
  position: sticky;
  top: 1.5rem;
  padding: 2rem;
  border-radius: 0.75rem;
  background: #34394a;
}

.popular-posts h2 {
  color: var(--orange-soft);
  font-size: 1.6rem;
}

.popular-posts > a:not(.button) {
  display: block;
  padding: 1.3rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  color: #f2f2f4;
}

.popular-posts .button {
  margin-top: 2rem;
}

/* Official LDTG blog catalogue */
body[data-page="blog"] .blog-layout {
  max-width: none;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(2rem, 4vw, 4rem);
}

body[data-page="blog"] .blog-posts--official {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 1.5rem;
}

body[data-page="blog"] .blog-results {
  min-width: 0;
}

body[data-page="blog"] .blog-card[hidden],
body[data-page="blog"] .blog-load-more[hidden],
body[data-page="blog"] .blog-no-results[hidden] {
  display: none !important;
}

body[data-page="blog"] .blog-load-more {
  display: flex;
  justify-content: center;
  padding-top: 2.25rem;
}

body[data-page="blog"] .blog-no-results {
  padding: 3rem 1.5rem;
  border: 1px solid rgba(240, 163, 94, 0.28);
  border-radius: 14px;
  color: #cdd2dd;
  text-align: center;
}

body[data-page="blog"] .blog-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  background: linear-gradient(150deg, #121b2e, #0b1324);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.2);
  transition: transform 300ms cubic-bezier(0.16, 1, 0.3, 1), border-color 300ms ease;
}

body[data-page="blog"] .blog-card:hover,
body[data-page="blog"] .blog-card:focus-within {
  border-color: rgba(240, 163, 94, 0.58);
  transform: translateY(-6px);
}

body[data-page="blog"] .blog-card-media {
  position: relative;
  min-height: 245px;
  overflow: hidden;
  display: block;
  background: #11192a;
}

body[data-page="blog"] .blog-card-media::after {
  content: "";
  position: absolute;
  inset: 55% 0 0;
  background: linear-gradient(transparent, rgba(5, 11, 26, 0.72));
}

body[data-page="blog"] .blog-card img {
  width: 100%;
  height: 260px;
  max-height: none;
  margin: 0;
  object-fit: cover;
  transition: transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
}

body[data-page="blog"] .blog-card:hover img {
  transform: scale(1.055);
}

body[data-page="blog"] .blog-card-copy {
  flex: 1;
  padding: 1.35rem;
  display: flex;
  flex-direction: column;
}

body[data-page="blog"] .blog-card .eyebrow {
  margin-bottom: 0.55rem;
}

body[data-page="blog"] .blog-card h2 {
  margin-bottom: 0.75rem;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.12;
}

body[data-page="blog"] .blog-card h2 a:focus-visible,
body[data-page="blog"] .blog-card-media:focus-visible {
  outline: 2px solid var(--orange-soft);
  outline-offset: 3px;
}

body[data-page="blog"] .blog-card-copy > p:not(.eyebrow) {
  margin-bottom: 1.15rem;
  font-size: 0.78rem;
}

body[data-page="blog"] .blog-card-copy .text-link {
  margin-top: auto;
}

body[data-page="blog"] .blog-card--featured {
  grid-column: 1 / -1;
  min-height: 430px;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr);
}

body[data-page="blog"] .blog-card--featured .blog-card-media {
  min-height: 430px;
}

body[data-page="blog"] .blog-card--featured img {
  height: 100%;
  min-height: 430px;
}

body[data-page="blog"] .blog-card--featured .blog-card-copy {
  align-self: center;
  padding: clamp(1.6rem, 3vw, 2.5rem);
}

body[data-page="blog"] .blog-card--featured h2 {
  font-size: clamp(1.9rem, 3vw, 3rem);
}

body[data-page="blog"] .popular-posts {
  border: 1px solid rgba(240, 163, 94, 0.3);
  background: linear-gradient(160deg, #32394c, #232b3e);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
}

body[data-page="blog"] .popular-posts > a:not(.button) {
  font-size: 0.8rem;
  line-height: 1.4;
  transition: color 180ms ease, padding-left 180ms ease;
}

body[data-page="blog"] .popular-posts > a:not(.button):hover,
body[data-page="blog"] .popular-posts > a:not(.button):focus-visible {
  padding-left: 0.35rem;
  color: var(--orange-soft);
}

body[data-page="blog"] .blog-discovery {
  margin-top: 2.2rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

body[data-page="blog"] .blog-discovery h3 {
  margin: 0 0 0.85rem;
  color: var(--orange-soft);
  font-family: inherit;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body[data-page="blog"] .blog-search-field {
  min-height: 50px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  padding: 0 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 7px;
  background: rgba(6, 14, 30, 0.35);
  color: var(--orange-soft);
}

body[data-page="blog"] .blog-search-field:focus-within {
  border-color: var(--orange-soft);
  box-shadow: 0 0 0 3px rgba(240, 163, 94, 0.13);
}

body[data-page="blog"] .blog-search-field input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: white;
  font: inherit;
  font-size: 0.78rem;
}

body[data-page="blog"] .blog-search-field input::placeholder {
  color: #adb3c0;
}

body[data-page="blog"] .blog-result-count {
  margin: 0.6rem 0 1.45rem;
  color: #aeb5c4;
  font-size: 0.67rem;
}

body[data-page="blog"] .blog-category-list {
  display: grid;
  gap: 0.45rem;
}

body[data-page="blog"] .blog-category-list button {
  width: 100%;
  padding: 0.7rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.035);
  color: #edf0f5;
  font: inherit;
  font-size: 0.74rem;
  text-align: left;
  cursor: pointer;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}

body[data-page="blog"] .blog-category-list button:hover,
body[data-page="blog"] .blog-category-list button:focus-visible,
body[data-page="blog"] .blog-category-list button.is-active {
  border-color: rgba(240, 163, 94, 0.55);
  background: rgba(232, 128, 40, 0.13);
  color: var(--orange-soft);
}

@media (max-width: 1050px) {
  body[data-page="blog"] .blog-layout {
    grid-template-columns: 1fr;
  }

  body[data-page="blog"] .popular-posts {
    position: relative;
    top: 0;
  }
}

@media (max-width: 700px) {
  body[data-page="blog"] .blog-posts--official {
    grid-template-columns: 1fr;
  }

  body[data-page="blog"] .blog-card--featured {
    grid-column: auto;
    min-height: 0;
    display: flex;
  }

  body[data-page="blog"] .blog-card--featured .blog-card-media {
    min-height: 280px;
  }

  body[data-page="blog"] .blog-card--featured img {
    height: 280px;
    min-height: 0;
  }
}

/* Single blog article */
.single-blog {
  background: #f7f5f0;
  color: #1d2230;
}

.article-hero {
  position: relative;
  min-height: 730px;
  padding: 36px var(--page-pad) 0;
  display: grid;
  align-items: end;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 32%, rgba(232, 128, 40, 0.22), transparent 27rem),
    linear-gradient(145deg, #050b1a 28%, #111a30 100%);
  color: white;
}

.article-hero::before {
  content: "";
  position: absolute;
  top: 22%;
  right: -8rem;
  width: 33rem;
  height: 33rem;
  border: 1px solid rgba(240, 163, 94, 0.14);
  border-radius: 50%;
}

.article-hero::after {
  content: "";
  position: absolute;
  right: 8%;
  bottom: 16%;
  width: 7rem;
  border-top: 3px solid var(--orange);
  transform: rotate(-38deg);
}

.article-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5, 11, 26, 0.16), transparent 62%);
}

.article-hero-inner {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: 160px 0 120px;
}

.article-breadcrumb {
  margin-bottom: 2.2rem;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: #c4c8d2;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.article-breadcrumb a {
  color: var(--orange-soft);
}

.article-hero .eyebrow {
  margin-bottom: 0.9rem;
}

.article-hero h1 {
  max-width: 1050px;
  margin-bottom: 1.4rem;
  font-size: clamp(3.3rem, 6.5vw, 6.4rem);
  line-height: 0.98;
}

.article-deck {
  max-width: 760px;
  margin-bottom: 1.8rem;
  color: #e0e2e7;
  font-size: clamp(1rem, 1.55vw, 1.25rem);
}

.article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.8rem;
  color: #aeb4c1;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.article-meta b {
  color: white;
}

.article-feature-image {
  position: relative;
  z-index: 2;
  width: min(1320px, calc(100% - 2 * var(--page-pad)));
  height: clamp(420px, 58vw, 720px);
  margin: -72px auto 0;
  overflow: hidden;
  background: #171c29;
  box-shadow: 0 28px 70px rgba(5, 11, 26, 0.26);
}

.article-feature-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.article-reading-section {
  max-width: 1260px;
  margin: auto;
  padding: 6rem var(--page-pad) 7rem;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 300px;
  align-items: start;
  gap: clamp(2rem, 4vw, 4.5rem);
}

.article-share {
  position: sticky;
  top: 7rem;
  display: grid;
  justify-items: center;
  gap: 0.7rem;
}

.article-share > span {
  margin-bottom: 0.35rem;
  color: #777d88;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.article-share a {
  width: 38px;
  height: 38px;
  border: 1px solid #ccd0d6;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #333a49;
  font-size: 0.72rem;
  font-weight: 800;
  transition:
    border-color 180ms ease,
    background 180ms ease,
    color 180ms ease;
}

.article-share a:hover,
.article-share a:focus-visible {
  border-color: var(--orange);
  background: var(--orange);
  color: white;
}

.article-content {
  width: 100%;
  min-width: 0;
  max-width: 760px;
  overflow-wrap: anywhere;
}

.article-content [data-blog-body],
.article-content .article-section {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

/* Imported WordPress stories can contain fixed media dimensions. Keep those
   intrinsic proportions without allowing them to define the mobile grid. */
.article-content img,
.article-content video,
.article-content canvas,
.article-content svg {
  max-width: 100% !important;
  height: auto !important;
}

.article-content iframe,
.article-content embed,
.article-content object {
  max-width: 100% !important;
}

.article-content iframe.ldtg-responsive-embed {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: var(--ldtg-embed-aspect);
}

.article-content figure,
.article-content .wp-block-image,
.article-content .wp-block-embed,
.article-content .wp-block-video,
.article-content .wp-block-gallery,
.article-content .wp-caption {
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin-inline: 0;
}

.article-content .instagram-media {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.article-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.article-lead {
  margin-bottom: 2.4rem;
  color: #292f3b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.55;
}

.article-section {
  scroll-margin-top: 6rem;
}

.article-section h2 {
  margin: 3.2rem 0 1rem;
  color: #141925;
  font-size: clamp(2rem, 3.2vw, 3rem);
}

.article-section p {
  margin-bottom: 1.4rem;
  color: #545b67;
  font-size: 1rem;
  line-height: 1.9;
}

.article-content blockquote {
  position: relative;
  margin: 3.5rem 0;
  padding: 2.3rem 2.5rem;
  border: 0;
  border-left: 5px solid var(--orange);
  background: #ece7dd;
  color: #252b38;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-style: italic;
  line-height: 1.55;
}

.article-signoff {
  margin-top: 3.5rem;
  padding-top: 1.4rem;
  border-top: 1px solid #d2d2d0;
}

.article-signoff span {
  color: var(--orange);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 700;
}

.article-signoff p {
  margin: 0.25rem 0 0;
  color: #777d88;
  font-size: 0.75rem;
}

/* WordPress-managed legal pages */
body[data-page="legal"] { background: #050d1c; }
.legal-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(390px, 49vw, 610px); padding: clamp(9.5rem, 16vw, 14rem) clamp(1.25rem, 7vw, 8rem) clamp(5.5rem, 9vw, 8rem); display: grid; align-items: end; background: radial-gradient(circle at 78% 32%, rgba(232, 128, 40, 0.21), transparent 27%), linear-gradient(135deg, #071226 0%, #050c19 62%, #101525 100%); border-bottom: 1px solid rgba(232, 128, 40, 0.36); }
.legal-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0.2; background-image: linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, transparent, #000 35%, transparent); }
.legal-hero__inner { width: min(100%, 1180px); margin: 0 auto; }
.legal-hero .eyebrow { color: var(--orange-soft); }
.legal-hero h1 { max-width: 980px; margin: 0.7rem 0 1rem; color: #fff; font-family: var(--serif); font-size: clamp(4rem, 9vw, 8.4rem); font-weight: 500; line-height: 0.94; letter-spacing: -0.045em; }
.legal-hero__inner > p:not(.eyebrow) { max-width: 710px; margin: 0 0 1.3rem; color: #c6ceda; font-size: clamp(1.08rem, 1.7vw, 1.35rem); line-height: 1.7; }
.legal-hero__inner > span { color: rgba(255, 255, 255, 0.54); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; }
.legal-layout { width: 100%; padding: clamp(4.5rem, 8vw, 8rem) clamp(1.25rem, 6vw, 7rem); display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 860px); justify-content: center; align-items: start; gap: clamp(3rem, 7vw, 7rem); }
.legal-toc { position: sticky; top: 135px; padding: 1.6rem; border: 1px solid rgba(232, 128, 40, 0.35); background: rgba(10, 20, 37, 0.84); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2); }
.legal-toc > p { margin: 0 0 1rem; color: var(--orange-soft); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.legal-toc nav { display: grid; max-height: min(54vh, 560px); overflow: auto; scrollbar-width: thin; }
.legal-toc nav a { padding: 0.72rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); color: #c8cfda; font-size: 0.92rem; line-height: 1.35; }
.legal-toc nav a:hover, .legal-toc nav a:focus-visible { color: var(--orange-soft); }
.legal-toc .button { width: 100%; margin-top: 1.5rem; justify-content: center; }
.legal-content { min-width: 0; color: #b8c1cf; font-size: clamp(1rem, 1.25vw, 1.1rem); line-height: 1.9; }
.legal-content > h2:first-child, .legal-content > h3:first-child, .legal-content > h4:first-child, .legal-content > h5:first-child { margin-top: 0; }
.legal-content h2, .legal-content h3, .legal-content h4, .legal-content h5 { scroll-margin-top: 150px; margin: clamp(3.1rem, 6vw, 5rem) 0 1rem; color: #fff; font-family: var(--serif); font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 500; line-height: 1.1; }
.legal-content h5 { padding-bottom: 0.8rem; border-bottom: 1px solid rgba(232, 128, 40, 0.28); }
.legal-content p, .legal-content ul, .legal-content ol { margin: 0 0 1.35rem; }
.legal-content ul, .legal-content ol { padding-left: 1.5rem; }
.legal-content a { color: var(--orange-soft); text-decoration: underline; text-decoration-color: rgba(232, 128, 40, 0.48); text-underline-offset: 0.22em; }
.legal-content strong { color: #fff; }

@media (max-width: 900px) {
  .legal-layout { grid-template-columns: 1fr; }
  .legal-toc { position: static; }
  .legal-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; max-height: none; }
}

@media (max-width: 580px) {
  .legal-hero { min-height: 440px; padding-top: 11rem; }
  .legal-hero h1 { font-size: clamp(3.4rem, 17vw, 5rem); }
  .legal-layout { padding-top: 3.5rem; }
  .legal-toc nav { grid-template-columns: 1fr; }
}

.article-sidebar {
  position: sticky;
  top: 6rem;
  display: grid;
  gap: 1.2rem;
}

.article-sidebar > div {
  padding: 1.5rem;
  border: 1px solid #d7d8da;
  background: white;
}

.article-sidebar nav {
  display: grid;
}

.article-sidebar nav a {
  padding: 0.8rem 0;
  border-bottom: 1px solid #e4e4e3;
  color: #474e5c;
  font-size: 0.75rem;
  line-height: 1.45;
}

.article-sidebar nav a:last-child {
  border-bottom: 0;
}

.article-sidebar nav a:hover,
.article-sidebar nav a:focus-visible {
  color: var(--orange);
}

.article-sidebar-cta {
  background: var(--navy) !important;
  color: white;
}

.article-sidebar-cta h2 {
  margin-bottom: 0.8rem;
  font-size: 1.65rem;
}

.article-sidebar-cta p:not(.eyebrow) {
  font-size: 0.78rem;
}

.article-sidebar-cta .button {
  width: 100%;
  margin-bottom: 1rem;
}

.article-sidebar-cta .text-link {
  display: block;
  text-align: center;
}

.related-story-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.related-story {
  min-width: 0;
}

.related-story img {
  width: 100%;
  height: 260px;
  margin-bottom: 1rem;
  object-fit: cover;
  transition: transform 500ms ease;
}

.related-story a:hover img {
  transform: scale(1.025);
}

.related-story .eyebrow {
  margin-bottom: 0.4rem;
}

.related-story h3 {
  min-height: 2.5em;
  margin-bottom: 0.8rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
}

.related-story.is-current {
  opacity: 0.45;
  pointer-events: none;
}

.contact-section {
  min-height: 700px;
  padding: 142px var(--page-pad) 6rem;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 8rem);
  background: var(--navy);
}

.contact-intro h1 {
  max-width: 540px;
  color: #e7e8ec;
  font-size: clamp(3rem, 4.2vw, 4.2rem);
  line-height: 1.03;
}

.contact-intro .eyebrow {
  margin-bottom: 0.8rem;
  color: var(--orange);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.4rem;
  letter-spacing: 0;
  text-transform: none;
}

.contact-intro > p:not(.eyebrow) {
  max-width: 600px;
}

.contact-details {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  color: #aeb3c0;
  font-size: 0.85rem;
}

.contact-details a {
  width: fit-content;
  color: inherit;
  transition: color 180ms ease;
}

.contact-details a:hover,
.contact-details a:focus-visible {
  color: var(--orange-soft);
}

.contact-connect {
  padding: clamp(2.5rem, 5vw, 4.5rem) var(--page-pad) clamp(2rem, 4vw, 3.25rem);
  background: var(--navy);
}

.contact-connect__methods {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 3rem);
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.contact-method {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 0.85rem;
  color: white;
  transition: color 180ms ease, transform 180ms ease;
}

.contact-method:hover,
.contact-method:focus-visible {
  color: var(--orange-soft);
  transform: translateY(-2px);
}

.contact-method__icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  color: #fff;
}

.contact-method__icon svg {
  width: 18px;
  height: 18px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contact-method strong,
.contact-method small {
  display: block;
}

.contact-method strong {
  margin-bottom: 0.24rem;
  font-size: 0.92rem;
}

.contact-method small {
  overflow-wrap: anywhere;
  color: #d1d4db;
  font-size: 0.72rem;
}

.contact-map {
  position: relative;
  min-height: clamp(280px, 29vw, 420px);
  display: block;
  overflow: hidden;
  border-radius: 24px;
  background:
    linear-gradient(rgba(7, 15, 31, 0.05), rgba(7, 15, 31, 0.05)),
    url("official/contact/seattle-map.webp") center / cover no-repeat,
    #bcd9ce;
}

.contact-map__label {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  padding: 0.72rem 1rem;
  border-radius: 999px;
  background: rgba(5, 12, 27, 0.82);
  color: white;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.contact-map:hover .contact-map__label,
.contact-map:focus-visible .contact-map__label {
  opacity: 1;
  transform: translateY(0);
}

.contact-connect__social {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding-top: clamp(2rem, 4vw, 3.25rem);
}

.contact-connect__social h2 {
  margin: 0;
  font-family: inherit;
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 400;
}

.contact-connect__social nav {
  display: flex;
  gap: 0.85rem;
}

.contact-connect__social nav a {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid white;
  border-radius: 50%;
  color: white;
  font-size: 1.2rem;
  transition: border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.contact-connect__social nav a:hover,
.contact-connect__social nav a:focus-visible {
  border-color: var(--orange);
  color: var(--orange-soft);
  transform: translateY(-2px);
}

.contact-form {
  display: grid;
  gap: 1.3rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.contact-form label,
.booking-form label {
  display: grid;
  gap: 0.5rem;
  color: #f0f0f2;
  font-size: 0.88rem;
}

.contact-form input,
.contact-form textarea,
.booking-form input,
.booking-form select,
.booking-form textarea {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-bottom: 1px solid #8a8e9a;
  border-radius: 0;
  padding: 0.65rem 0;
  outline: 0;
  background: transparent;
  color: white;
}

.contact-form textarea,
.booking-form textarea {
  resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus,
.booking-form input:focus,
.booking-form select:focus,
.booking-form textarea:focus {
  border-bottom-color: var(--orange);
}

.contact-form label > span {
  color: var(--orange-soft);
}

.membership-hero {
  padding-top: 36px;
  background: var(--navy);
}

.membership-collage {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(3, 1fr);
  grid-auto-flow: dense;
  height: 644px;
  overflow: hidden;
}

.membership-collage::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2, 7, 18, 0.54), transparent 34%, rgba(2, 7, 18, 0.18));
}

.membership-collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.84) saturate(0.92);
}

.membership-collage img:nth-child(1),
.membership-collage img:nth-child(8) {
  grid-column: span 2;
  grid-row: span 2;
}

.membership-main {
  padding: clamp(4rem, 7vw, 7rem) var(--page-pad);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 3rem;
}

.membership-main h1 {
  font-size: clamp(3rem, 5vw, 5.2rem);
}

.membership-main h1 span {
  display: block;
  margin-bottom: 1.5rem;
  color: var(--orange-soft);
  font-size: 0.6em;
}

.membership-video {
  position: relative;
  border: 3px solid var(--orange);
  padding: 1rem;
}

.membership-video img {
  width: 100%;
  min-height: 520px;
  object-fit: cover;
}

.membership-video span {
  background: var(--orange);
  border: 0;
}

.membership-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.membership-benefits article {
  padding: 2rem;
  border: 1px solid var(--line);
  background: var(--navy-2);
}

.membership-benefits span {
  color: var(--orange);
  font-family: Georgia, serif;
  font-size: 2.5rem;
}

.membership-benefits p {
  font-size: 0.85rem;
}

.membership-quote {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  background: #252936;
}

.membership-quote img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}

.membership-quote > div {
  padding: clamp(2.5rem, 7vw, 7rem);
}

.journey-hero {
  position: relative;
  min-height: 680px;
  padding: 165px var(--page-pad) 3.2rem;
  display: grid;
  grid-template-columns: minmax(420px, 0.9fr) minmax(500px, 1.1fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 6rem);
  background: var(--navy);
}

.journey-hero-content {
  max-width: 650px;
}

.journey-hero h1 {
  max-width: 650px;
  margin-bottom: 1.4rem;
  font-size: clamp(3.8rem, 5vw, 5rem);
  line-height: 0.94;
  perspective: 900px;
}

.journey-hero h1 em {
  position: relative;
  display: inline-block;
  color: var(--orange);
  font-style: normal;
}

.journey-hero h1 em::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.18em;
  border-top: 6px solid var(--orange);
  border-radius: 50%;
  transform: rotate(-2deg);
  transform-origin: left center;
}

.motion-enabled .journey-hero h1 em::after {
  transform: scaleX(0) rotate(-2deg);
}

.journey-dates {
  margin-bottom: 1.6rem;
  color: white;
  font-size: 0.94rem;
}

.hero-meta {
  margin: 1.4rem 0 2rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  color: #f3f3f5;
  font-size: 0.68rem;
}

.hero-meta span {
  min-height: 42px;
  padding: 0 0.7rem;
  border-left: 1px solid rgba(255, 255, 255, 0.26);
  display: flex;
  align-items: center;
}

.hero-meta span:first-child {
  padding-left: 0;
  border-left: 0;
}

.hero-meta b {
  font-weight: 500;
  line-height: 1.35;
}

.journey-actions {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}

.journey-details-link {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.82rem;
}

.journey-details-link span {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  display: grid;
  place-items: center;
}

.journey-hero-media {
  min-width: 0;
  height: 480px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1.55fr 0.9fr;
  gap: 0.75rem;
}

.journey-hero-media > img,
.journey-media-primary,
.journey-media-primary img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}

.journey-hero-media > img,
.journey-media-primary {
  border-radius: 0.8rem;
}

.journey-media-primary {
  position: relative;
  grid-column: 1 / -1;
  overflow: hidden;
}

.journey-media-primary span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 56px;
  height: 56px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(5, 11, 26, 0.42);
  transform: translate(-50%, -50%);
  font-size: 1rem;
}

.trip-stats {
  padding: 2.5rem var(--page-pad);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #1a2031;
  text-align: center;
}

.trip-stats b,
.trip-stats span {
  display: block;
}

.trip-stats b {
  color: var(--orange);
  font-family: Georgia, serif;
  font-size: 2.3rem;
}

.trip-stats span {
  color: #bec1c8;
  font-size: 0.75rem;
}

.journey-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}

.journey-intro > div:first-child p:not(.eyebrow) {
  max-width: 620px;
  font-size: 1.02rem;
  line-height: 1.8;
}

.journey-image-stack {
  position: relative;
  min-height: 570px;
}

.journey-image-stack img {
  position: absolute;
  width: 72%;
  height: 74%;
  object-fit: cover;
  border-radius: 0.75rem;
}

.journey-image-stack img:first-child {
  top: 0;
  right: 0;
}

.journey-image-stack img:last-child {
  left: 0;
  bottom: 0;
  border: 10px solid var(--navy);
}

.itinerary {
  display: grid;
  grid-template-columns: 1fr 360px;
  align-items: start;
  gap: 4rem;
}

.itinerary > div > article {
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 1rem;
}

.itinerary article > span {
  color: var(--orange-soft);
  font-size: 0.8rem;
  font-weight: 800;
}

.itinerary article h3 {
  margin-bottom: 0.4rem;
  font-family: Georgia, serif;
  font-size: 1.35rem;
}

.itinerary article p {
  margin-bottom: 0;
}

.price-card {
  position: sticky;
  top: 2rem;
  padding: 2rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: #182033;
}

.price-card > span {
  color: var(--orange-soft);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
}

.price-card > strong {
  display: block;
  margin: 0.7rem 0 1.5rem;
  font-family: Georgia, serif;
  font-size: 2.6rem;
}

.price-card strong small {
  color: var(--muted);
  font-family: inherit;
  font-size: 0.7rem;
}

.price-card ul {
  padding-left: 1.2rem;
  color: #d8d9dd;
  font-size: 0.8rem;
  line-height: 2;
}

.price-card .button {
  width: 100%;
}

.journey-intro h2 em,
.journey-fit h2 em,
.journey-reality-card h3 em,
.journey-signatures h2 em,
.journey-gallery-section h2 em,
.journey-inclusions h2 em,
.journey-investment h2 em,
.journey-day-by-day h2 em,
.journey-stays h2 em,
.journey-practical h2 em,
.journey-support h2 em {
  color: var(--orange);
  font-style: italic;
}

.journey-tags {
  margin: 1.5rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.journey-tags span {
  padding: 0.48rem 0.78rem;
  border: 1px solid rgba(240, 163, 94, 0.42);
  border-radius: 999px;
  color: #f5c498;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.journey-intro-highlights {
  margin: 1.8rem 0 2rem;
  padding: 1.25rem 1.4rem;
  border-left: 3px solid var(--orange);
  background: rgba(255, 255, 255, 0.035);
}

.journey-intro-highlights h3 {
  margin-bottom: 0.65rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
}

.journey-intro-highlights ul {
  margin: 0;
  padding-left: 1.1rem;
  color: #d8dbe2;
  font-size: 0.78rem;
  line-height: 1.85;
}

.journey-date-stamp {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 2.2rem;
  min-width: 140px;
  padding: 1rem 1.15rem;
  border-left: 4px solid var(--orange);
  background: white;
  color: #101522;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.journey-date-stamp b {
  display: block;
  color: var(--orange);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1;
}

.journey-fit-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--line);
}

.journey-fit-grid article {
  min-height: 300px;
  padding: 1.6rem 1.35rem;
  display: flex;
  flex-direction: column;
  background: #10182a;
}

.journey-fit-grid article > span {
  margin-bottom: 2rem;
  color: var(--orange-soft);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.7rem;
}

.journey-fit-grid h3 {
  margin-bottom: 0.8rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
}

.journey-fit-grid p {
  margin-bottom: 1.25rem;
  font-size: 0.76rem;
}

.journey-fit-grid small {
  margin-top: auto;
  color: #f5bd8b;
  font-size: 0.57rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.journey-reality-card {
  margin-top: 2rem !important;
  padding: clamp(1.5rem, 4vw, 3.2rem);
  border: 1px solid rgba(232, 128, 40, 0.45);
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  align-items: center;
  gap: clamp(1.5rem, 5vw, 5rem);
  background:
    radial-gradient(circle at 0 0, rgba(232, 128, 40, 0.18), transparent 42%),
    #151d30;
}

.journey-reality-card .eyebrow,
.journey-reality-card h3 {
  grid-column: 1;
}

.journey-reality-card h3 {
  margin-bottom: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3.2vw, 3.1rem);
}

.journey-reality-card ul,
.journey-reality-card .button {
  grid-column: 2;
}

.journey-reality-card ul {
  grid-row: 1 / span 2;
  margin: 0;
  padding-left: 1.2rem;
  color: #d7dae2;
  font-size: 0.82rem;
  line-height: 2;
}

.journey-reality-card .button {
  justify-self: start;
}

.journey-signature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}

.journey-signature-grid article {
  border: 1px solid rgba(10, 17, 35, 0.12);
  background: white;
  color: #161b28;
  box-shadow: 0 18px 55px rgba(5, 11, 26, 0.1);
  overflow: hidden;
}

.journey-signature-grid img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-signature-grid article:hover img {
  transform: scale(1.06);
}

.journey-signature-grid article > div {
  padding: 1.5rem;
}

.journey-signature-grid span,
.journey-stay-grid span {
  display: block;
  margin-bottom: 0.7rem;
  color: #bf651a;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.journey-signature-grid h3 {
  margin-bottom: 0.6rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
}

.journey-signature-grid p {
  margin-bottom: 0;
  color: #656b76;
  font-size: 0.8rem;
}

.journey-gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 190px;
  gap: 0.75rem;
}

.journey-gallery-grid figure {
  position: relative;
  grid-column: span 4;
  margin: 0;
  overflow: hidden;
}

.journey-gallery-grid figure:first-child,
.journey-gallery-grid figure:last-child {
  grid-column: span 6;
  grid-row: span 2;
}

.journey-gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-gallery-grid figure:hover img {
  transform: scale(1.07);
}

.journey-gallery-grid figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 2.5rem 1rem 0.8rem;
  background: linear-gradient(transparent, rgba(5, 11, 26, 0.88));
  color: white;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.journey-photo-credit {
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.7rem;
  line-height: 1.6;
}

.journey-photo-credit a {
  color: var(--orange);
}

.journey-inclusion-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
  gap: 1.5rem;
}

.journey-inclusion-grid > article {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid var(--line);
  background: #11192c;
}

.journey-inclusion-grid h3 {
  margin-bottom: 1.5rem;
  color: white;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.7rem;
}

.journey-inclusion-grid ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.journey-inclusion-grid li {
  position: relative;
  padding: 0.9rem 0 0.9rem 1.65rem;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 0.2rem;
  color: #e9eaf0;
  font-size: 0.82rem;
}

.journey-inclusion-grid li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.92rem;
  color: var(--orange);
  font-weight: 900;
}

.journey-inclusion-grid li span {
  color: #9ea4b0;
  font-size: 0.7rem;
}

.journey-not-included li::before {
  content: "—";
}

.journey-not-included dl,
.journey-practical dl {
  margin: 1.6rem 0 0;
}

.journey-not-included dl > div,
.journey-practical dl > div {
  padding: 0.72rem 0;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.journey-not-included dt,
.journey-practical dt {
  color: #8f96a5;
  font-size: 0.67rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.journey-not-included dd,
.journey-practical dd {
  margin: 0;
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  text-align: right;
}

.journey-pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.journey-pricing-grid .price-card {
  position: relative;
  top: auto;
  padding: clamp(1.7rem, 4vw, 3rem);
}

.journey-pricing-grid .price-card--featured {
  border-color: var(--orange);
  background:
    linear-gradient(135deg, rgba(232, 128, 40, 0.16), transparent 48%),
    #182033;
}

.journey-pricing-grid .price-card p {
  color: #cdd0d8;
  font-size: 0.8rem;
}

.journey-booking-steps {
  margin-top: 1.5rem !important;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
}

.journey-booking-steps article {
  padding: 1.4rem;
  border-right: 1px solid var(--line);
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.8rem;
}

.journey-booking-steps article:last-child {
  border-right: 0;
}

.journey-booking-steps article > span {
  width: 42px;
  height: 42px;
  border: 1px solid var(--orange);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--orange-soft);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
}

.journey-booking-steps b {
  font-size: 0.78rem;
}

.journey-booking-steps p {
  margin: 0.25rem 0 0;
  font-size: 0.68rem;
}

.journey-itinerary-list {
  border-top: 1px solid var(--line);
}

.journey-itinerary-list details {
  border-bottom: 1px solid var(--line);
}

.journey-itinerary-list summary {
  position: relative;
  min-height: 86px;
  padding: 1.3rem 3.2rem 1.3rem 0;
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr) 160px;
  align-items: center;
  gap: 1.2rem;
  cursor: pointer;
  list-style: none;
}

.journey-itinerary-list summary::-webkit-details-marker {
  display: none;
}

.journey-itinerary-list summary::after {
  content: "+";
  position: absolute;
  right: 0.5rem;
  top: 50%;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(232, 128, 40, 0.5);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--orange);
  transform: translateY(-50%);
}

.journey-itinerary-list details[open] summary::after {
  content: "−";
  background: var(--orange);
  color: white;
}

.journey-itinerary-list summary span {
  color: var(--orange);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.journey-itinerary-list summary b {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
}

.journey-itinerary-list summary small {
  color: #9299a7;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: right;
  text-transform: uppercase;
}

.journey-itinerary-list details > p {
  max-width: 820px;
  margin: -0.2rem 0 1.5rem 110px;
  padding-right: 3rem;
  color: #aeb3be;
  font-size: 0.82rem;
}

.journey-stay-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.journey-stay-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.journey-stay-grid article {
  overflow: hidden;
  background: white;
  color: #141927;
}

.journey-stay-grid img {
  width: 100%;
  height: 390px;
  object-fit: cover;
  transition: transform 750ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-stay-grid article:hover img {
  transform: scale(1.05);
}

.journey-stay-grid article > div {
  padding: 1.6rem;
}

.journey-stay-grid h3 {
  margin-bottom: 0.6rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.8rem;
}

.journey-stay-grid p {
  margin-bottom: 0;
  color: #616875;
  font-size: 0.82rem;
}

.journey-practical {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(2rem, 6vw, 6rem);
}

.journey-practical > div:first-child {
  position: sticky;
  top: 2rem;
}

.journey-practical-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.journey-practical-grid article {
  padding: 1.5rem;
  border: 1px solid var(--line);
  background: #10182a;
}

.journey-practical-grid h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
}

.journey-practical-grid ul {
  margin: 0;
  padding-left: 1.15rem;
  color: #cfd2da;
  font-size: 0.78rem;
  line-height: 1.9;
}

.journey-support {
  padding: clamp(3rem, 7vw, 6rem) var(--page-pad);
  display: grid;
  grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  background:
    linear-gradient(115deg, rgba(5, 11, 26, 0.08), rgba(5, 11, 26, 0.28)),
    var(--orange);
}

.journey-support > * {
  width: 100%;
  max-width: 700px;
}

.journey-support > div:first-child {
  justify-self: end;
}

.journey-support .eyebrow,
.journey-support h2,
.journey-support p {
  color: white !important;
}

.journey-support h2 {
  margin-bottom: 0.7rem;
}

.journey-support h2 em {
  color: var(--navy);
}

.journey-support p {
  margin-bottom: 0;
}

.journey-support-actions {
  border: 1px solid rgba(255, 255, 255, 0.45);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.journey-support-actions a {
  min-height: 110px;
  padding: 1.25rem;
  border-right: 1px solid rgba(255, 255, 255, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: background 220ms ease, color 220ms ease;
}

.journey-support-actions a:last-child {
  border-right: 0;
}

.journey-support-actions a:hover,
.journey-support-actions a:focus-visible {
  background: white;
  color: var(--navy);
}

.journey-support-actions small {
  margin-bottom: 0.35rem;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.journey-support-actions b {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
}

.booking-page {
  min-height: 760px;
  padding: 190px var(--page-pad) 7rem;
  background: var(--navy);
}

.booking-heading {
  max-width: 860px;
  margin: 0 auto 2.5rem;
  text-align: center;
}

.booking-heading h1 {
  font-size: clamp(3rem, 5vw, 4.8rem);
}

.booking-form,
.booking-success {
  max-width: 1100px;
  margin: auto;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: rgba(20, 27, 45, 0.95);
}

.booking-form {
  display: grid;
  gap: 2rem;
}

.booking-form select option {
  color: #111;
}

.booking-progress {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.booking-stage {
  position: relative;
  min-width: 0;
  padding-right: 1rem;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  color: #818a9d;
}

.booking-stage:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: calc(100% - 0.9rem);
  top: 50%;
  width: 1.8rem;
  border-top: 1px solid #667086;
}

.booking-stage > span {
  position: relative;
  z-index: 1;
  width: 40px;
  height: 40px;
  border: 1px solid #667086;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 800;
}

.booking-stage > div {
  min-width: 0;
  display: grid;
}

.booking-stage b {
  color: #b3bac8;
  font-size: 0.73rem;
  line-height: 1.25;
}

.booking-stage small {
  margin-top: 0.15rem;
  font-size: 0.58rem;
  line-height: 1.35;
}

.booking-stage.active > span,
.booking-stage.complete > span {
  border-color: var(--orange);
  background: var(--orange);
  color: white;
}

.booking-stage.active b,
.booking-stage.complete b {
  color: white;
}

.booking-step {
  display: grid;
  gap: 1.35rem;
}

.booking-step-heading {
  margin-bottom: 0.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--line);
}

.booking-step-heading .eyebrow {
  margin-bottom: 0.35rem;
}

.booking-step-heading h2 {
  margin-bottom: 0.5rem;
  font-size: clamp(1.9rem, 3.4vw, 3rem);
}

.booking-step-heading p:last-child {
  margin-bottom: 0;
}

.choice-field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  align-content: start;
  gap: 0.65rem;
}

.choice-field legend {
  margin-bottom: 0.55rem;
  padding: 0;
  color: #f0f0f2;
  font-size: 0.88rem;
}

.choice-row,
.choice-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.choice-row label,
.choice-chips label {
  position: relative;
  display: block;
  cursor: pointer;
}

.choice-row input,
.choice-chips input {
  position: absolute;
  width: 1px;
  min-height: 1px;
  opacity: 0;
  pointer-events: none;
}

.choice-row span,
.choice-chips span {
  min-height: 42px;
  padding: 0.62rem 0.95rem;
  border: 1px solid #596175;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  color: #d9dce3;
  font-size: 0.74rem;
  line-height: 1.2;
  transition:
    border-color 180ms ease,
    background 180ms ease,
    color 180ms ease;
}

.choice-row input:checked + span,
.choice-chips input:checked + span {
  border-color: var(--orange);
  background: var(--orange);
  color: white;
}

.choice-row input:focus-visible + span,
.choice-chips input:focus-visible + span {
  outline: 2px solid white;
  outline-offset: 2px;
}

.booking-consent {
  padding: 0.85rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.025);
  line-height: 1.5;
}

.legal-consent a {
  color: var(--orange);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.legal-consent a:hover,
.legal-consent a:focus-visible {
  color: #ffb468;
}

.checkbox-label {
  grid-template-columns: auto 1fr !important;
  align-items: center;
}

.checkbox-label input {
  width: 20px;
  min-height: 20px;
}

.booking-actions {
  margin-top: 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.booking-success {
  text-align: center;
}

.booking-success > span {
  width: 86px;
  height: 86px;
  margin: 0 auto 1.5rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--orange);
  font-size: 2.3rem;
}

.booking-success .button {
  margin: 1rem auto 0;
}

/* Figma group-journey catalogue */
.journeys-catalogue-hero {
  min-height: 610px;
  background:
    linear-gradient(rgba(2, 7, 18, 0.36), rgba(2, 7, 18, 0.78)),
    url("stock/curacao/hero.webp") center 58% / cover;
}

.journeys-catalogue-hero > div:not(.hero-overlay) {
  max-width: 840px;
}

.journeys-catalogue-hero h1 {
  font-size: clamp(3.4rem, 7vw, 6.6rem);
}

.journeys-catalogue {
  background: var(--navy);
}

.journey-year-section {
  padding: 6rem var(--page-pad);
}

.journey-year-section:nth-child(even) {
  background: var(--navy-2);
}

.journey-year-heading {
  max-width: var(--content);
  margin: 0 auto 2.4rem;
  padding-bottom: 1.3rem;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.journey-year-heading h2 {
  margin-bottom: 0;
}

.journey-year-heading h2 em {
  color: var(--orange);
  font-style: normal;
}

.journey-year-heading p {
  max-width: 470px;
  margin-bottom: 0;
  text-align: right;
}

.journey-year-grid {
  max-width: var(--content);
  margin: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
}

#journeys-2026 .journey-year-grid,
#journeys-2024 .journey-year-grid {
  grid-template-columns: repeat(4, 1fr);
}

.journey-year-section--past .catalogue-card {
  background: #0d1527;
}

.journey-year-section--past .catalogue-card-image span {
  background: rgba(5, 11, 26, 0.88);
  border: 1px solid rgba(240, 163, 94, 0.75);
  color: #ffd1aa;
}

.catalogue-card {
  position: relative;
  min-width: 0;
  border: 1px solid var(--line);
  overflow: hidden;
  background: #10182b;
  transition:
    transform 300ms ease,
    border-color 300ms ease;
}

.catalogue-card:hover,
.catalogue-card:focus-within {
  border-color: rgba(240, 163, 94, 0.65);
  transform: translateY(-6px);
}

.catalogue-card-image {
  position: relative;
  height: 320px;
  overflow: hidden;
}

.catalogue-card-image::after {
  content: "";
  position: absolute;
  inset: 40% 0 0;
  background: linear-gradient(transparent, rgba(5, 11, 26, 0.9));
}

.catalogue-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.catalogue-card:hover img {
  transform: scale(1.06);
}

.catalogue-card-image span {
  position: absolute;
  z-index: 1;
  top: 1rem;
  left: 1rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: var(--orange);
  color: white;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.catalogue-card-content {
  padding: 1.25rem;
}

.catalogue-card-content .eyebrow {
  margin-bottom: 0.45rem;
}

.catalogue-card-content h3 {
  margin-bottom: 0.55rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
}

.catalogue-card-content p {
  min-height: 3.2em;
  margin-bottom: 1rem;
  font-size: 0.78rem;
}

.catalogue-card-content a {
  color: var(--orange-soft);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Figma destination landing template */
.destination-page-hero {
  min-height: 760px;
}

.destination-page-hero .journey-hero-content {
  align-self: center;
}

.destination-page-hero .journey-hero-content > p:not(.eyebrow) {
  max-width: 570px;
}

.destination-page-hero .journey-media-primary {
  height: 100%;
}

.destination-page-hero .journey-hero-media {
  grid-template-rows: 1.55fr 0.9fr;
}

.destination-page-hero .journey-media-primary img {
  height: 100%;
}

.destination-page-hero .journey-media-primary span {
  display: none;
}

.destination-page-hero .journey-video-link span {
  display: grid;
}

.journey-video-link {
  cursor: pointer;
}

.journey-video-link img,
.journey-video-link span {
  transition: transform 320ms ease, background 320ms ease;
}

.journey-video-link:hover img,
.journey-video-link:focus-visible img {
  transform: scale(1.035);
}

.journey-video-link:hover span,
.journey-video-link:focus-visible span {
  background: var(--orange);
  transform: translate(-50%, -50%) scale(1.08);
}

.journey-payment-note {
  max-width: 760px;
  margin: 1.5rem auto 0;
  color: #d7dbe4;
  text-align: center;
}

.journey-payment-note strong {
  color: var(--orange-soft);
}

.destination-overview {
  max-width: var(--content);
  margin: auto;
}

.destination-featured {
  padding: 6rem var(--page-pad);
  background: white;
  color: #171b26;
}

.destination-featured p {
  color: #5c606a;
}

.destination-featured-inner {
  max-width: var(--content);
  margin: auto;
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
}

.destination-featured img {
  width: 100%;
  height: 470px;
  object-fit: cover;
}

/* Figma request-a-quote and $100 payment handoff */
.quote-page {
  min-height: 900px;
  padding: 190px var(--page-pad) 7rem;
  background:
    radial-gradient(circle at 90% 18%, rgba(232, 128, 40, 0.14), transparent 28%),
    var(--navy);
}

.quote-heading {
  max-width: 850px;
  margin: 0 auto 2.5rem;
  text-align: center;
}

.quote-heading h1 {
  margin-bottom: 0.8rem;
  font-size: clamp(3rem, 5.4vw, 5.2rem);
}

.quote-request-form {
  max-width: 1080px;
  margin: auto;
  padding: clamp(1.4rem, 4vw, 3rem);
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: rgba(20, 27, 45, 0.96);
}

.quote-progress {
  position: relative;
  margin-bottom: 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.quote-progress::before {
  content: "";
  position: absolute;
  top: 19px;
  left: 20px;
  right: 20px;
  border-top: 1px solid #657086;
}

.quote-progress div {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 40px 1fr;
  align-items: center;
  gap: 0.7rem;
}

.quote-progress span {
  width: 40px;
  height: 40px;
  border: 1px solid var(--orange);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--orange);
  font-weight: 800;
}

.quote-progress div:last-child span {
  border-color: #657086;
  background: var(--navy-3);
  color: #9299a7;
}

.quote-progress.is-payment div:last-child span {
  border-color: var(--orange);
  background: var(--orange);
  color: white;
}

.quote-progress b,
.quote-progress small {
  display: block;
}

.quote-progress b {
  font-size: 0.78rem;
}

.quote-progress small {
  color: #9ba2b1;
  font-size: 0.63rem;
}

.quote-panel {
  display: grid;
  gap: 1.35rem;
}

.quote-panel label {
  display: grid;
  gap: 0.5rem;
  color: #f0f0f2;
  font-size: 0.88rem;
}

.quote-panel input,
.quote-panel select,
.quote-panel textarea {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-bottom: 1px solid #8a8e9a;
  border-radius: 0;
  padding: 0.65rem 0;
  outline: 0;
  background: transparent;
  color: white;
}

.quote-panel select option {
  color: #111;
}

.quote-panel input:focus,
.quote-panel select:focus,
.quote-panel textarea:focus {
  border-bottom-color: var(--orange);
}

.quote-payment-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 1.5rem;
}

.quote-payment-card,
.quote-order-summary {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(5, 11, 26, 0.56);
}

.quote-payment-card h2,
.quote-order-summary h3 {
  margin-bottom: 0.7rem;
}

.secure-payment-note {
  margin: 1.5rem 0;
  padding: 1rem;
  border-left: 3px solid var(--orange);
  background: rgba(232, 128, 40, 0.08);
  color: #d6d9e0;
  font-size: 0.78rem;
}

.quote-order-row {
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.quote-order-row--total {
  border-bottom: 0;
  color: var(--orange-soft);
  font-size: 1.25rem;
}

.quote-payment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.quote-payment-status {
  display: none;
  margin: 1rem 0 0;
  padding: 0.8rem;
  border: 1px solid rgba(240, 163, 94, 0.4);
  border-radius: 6px;
  color: #f4cfad;
  font-size: 0.75rem;
}

.quote-payment-status.is-visible {
  display: block;
}

.quote-form-status {
  display: none;
  margin: 0;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(224, 90, 76, 0.45);
  border-radius: 6px;
  background: rgba(224, 90, 76, 0.08);
  color: #ffd4cf;
  font-size: 0.78rem;
}

.quote-form-status.is-visible {
  display: block;
}

.quote-form-status.is-success {
  border-color: rgba(58, 192, 134, 0.45);
  background: rgba(58, 192, 134, 0.08);
  color: #c9f4df;
}

.quote-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

.quote-return-notice {
  max-width: 1080px;
  margin: 0 auto 1.25rem;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(240, 163, 94, 0.5);
  border-radius: 8px;
  display: grid;
  gap: 0.35rem;
  background: rgba(240, 163, 94, 0.1);
}

.quote-return-notice strong {
  color: white;
}

.quote-return-notice span {
  color: #c8cdd7;
  font-size: 0.82rem;
}

.quote-return-notice--success {
  border-color: rgba(58, 192, 134, 0.55);
  background: rgba(58, 192, 134, 0.1);
}

.quote-return-notice--cancelled {
  border-color: rgba(255, 176, 72, 0.5);
}

.quote-success-card {
  max-width: 760px;
  margin: auto;
  padding: clamp(2rem, 6vw, 4rem);
  border: 1px solid rgba(58, 192, 134, 0.45);
  border-radius: 12px;
  text-align: center;
  background: rgba(20, 27, 45, 0.96);
}

.quote-success-card > span {
  width: 70px;
  height: 70px;
  margin: 0 auto 1.3rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #15996c;
  color: white;
  font-size: 2rem;
}

.quote-success-card h2 {
  margin-bottom: 0.75rem;
}

.quote-success-card .button {
  margin-top: 1.2rem;
}

.quote-request-form button:disabled {
  cursor: wait;
  opacity: 0.68;
}

/* Inline validation shared by quote and journey-deposit forms */
.field-error {
  display: block;
  color: #ffaaa0;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.4;
}

.checkbox-label .field-error {
  grid-column: 1 / -1;
}

.quote-panel input.is-invalid,
.quote-panel select.is-invalid,
.quote-panel textarea.is-invalid,
.journey-checkout-form input.is-invalid,
.journey-checkout-form select.is-invalid {
  border-color: #ff796b;
  box-shadow: 0 2px 0 rgba(255, 121, 107, 0.24);
}

/* Amount-aware Stripe deposit dialog for single journey/destination pages */
body.journey-checkout-open {
  overflow: hidden;
}

.journey-checkout-modal[hidden] {
  display: none;
}

.journey-checkout-modal {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 2.5rem);
}

.journey-checkout-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 7, 18, 0.82);
  -webkit-backdrop-filter: blur(13px);
  backdrop-filter: blur(13px);
  opacity: 0;
  transition: opacity 220ms ease;
}

.journey-checkout-dialog {
  position: relative;
  width: min(680px, 100%);
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  padding: clamp(1.5rem, 5vw, 3rem);
  border: 1px solid rgba(232, 128, 40, 0.5);
  border-radius: 14px;
  background:
    radial-gradient(circle at 100% 0, rgba(232, 128, 40, 0.14), transparent 34%),
    #0b1425;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.52);
  opacity: 0;
  transform: translateY(24px) scale(0.98);
  transition:
    opacity 240ms ease,
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-checkout-modal.is-open .journey-checkout-backdrop,
.journey-checkout-modal.is-open .journey-checkout-dialog {
  opacity: 1;
}

.journey-checkout-modal.is-open .journey-checkout-dialog {
  transform: translateY(0) scale(1);
}

.journey-checkout-close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.04);
  color: white;
  font: 300 1.7rem/1 Arial, sans-serif;
  cursor: pointer;
}

.journey-checkout-dialog h2 {
  max-width: 560px;
  margin: 0.45rem 0 0.7rem;
  padding-right: 2.5rem;
  font-size: clamp(2.1rem, 6vw, 3.7rem);
  line-height: 1;
}

.journey-checkout-intro {
  max-width: 570px;
  color: #b9c0cd;
}

.journey-deposit-summary {
  margin: 1.25rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(232, 128, 40, 0.34);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: rgba(232, 128, 40, 0.08);
}

.journey-deposit-summary span {
  color: #bec4cf;
  font-size: 0.78rem;
}

.journey-deposit-summary strong {
  color: var(--orange-soft);
  font-size: 1.2rem;
}

.journey-checkout-form {
  display: grid;
  gap: 1.1rem;
}

.journey-checkout-form label {
  display: grid;
  gap: 0.45rem;
  color: #f0f1f4;
  font-size: 0.82rem;
}

.journey-checkout-form input:not([type="checkbox"]),
.journey-checkout-form select {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-bottom: 1px solid #858c9b;
  border-radius: 0;
  padding: 0.6rem 0;
  outline: 0;
  background: transparent;
  color: white;
}

.journey-checkout-form select {
  appearance: none;
  padding-right: 2rem;
  background-image:
    linear-gradient(45deg, transparent 50%, #e88028 50%),
    linear-gradient(135deg, #e88028 50%, transparent 50%);
  background-position:
    calc(100% - 13px) 52%,
    calc(100% - 8px) 52%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.journey-checkout-form select option {
  color: #081223;
  background: #fff;
}

.journey-checkout-form select:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.journey-checkout-form input:focus,
.journey-checkout-form select:focus {
  border-color: var(--orange);
}

.journey-family-note {
  margin: -0.25rem 0 0;
  padding: 0.75rem 0.85rem;
  border-left: 2px solid var(--orange);
  background: rgba(232, 128, 40, 0.07);
  color: #c5cad3;
  font-size: 0.74rem;
  line-height: 1.55;
}

.journey-checkout-form .booking-consent {
  font-size: 0.76rem;
}

.journey-checkout-status {
  display: none;
  margin: 0;
  padding: 0.8rem 0.9rem;
  border: 1px solid rgba(255, 121, 107, 0.45);
  border-radius: 6px;
  background: rgba(255, 121, 107, 0.08);
  color: #ffd5d0;
  font-size: 0.76rem;
}

.journey-checkout-status.is-visible {
  display: block;
}

.journey-checkout-submit {
  width: 100%;
  min-height: 54px;
}

.journey-checkout-modal--aruba .journey-checkout-dialog {
  width: min(760px, 100%);
}

.journey-checkout-progress {
  position: relative;
  margin: 0.35rem 0 1.35rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  list-style: none;
}

.journey-checkout-progress::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 15px;
  right: 7%;
  left: 7%;
  height: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.journey-checkout-progress li {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 0.38rem;
  color: #747d8e;
  text-align: center;
}

.journey-checkout-progress li span {
  width: 31px;
  height: 31px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #0b1425;
  color: #a9b1bf;
  font-size: 0.68rem;
  font-weight: 700;
  transition: 180ms ease;
}

.journey-checkout-progress li small {
  font-size: 0.58rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.journey-checkout-progress li.is-current,
.journey-checkout-progress li.is-complete {
  color: #f4a45f;
}

.journey-checkout-progress li.is-current span,
.journey-checkout-progress li.is-complete span {
  border-color: var(--orange);
  background: var(--orange);
  color: #081223;
  box-shadow: 0 0 0 4px rgba(232, 128, 40, 0.12);
}

.journey-checkout-step {
  display: grid;
  gap: 1rem;
  animation: journey-step-in 260ms ease both;
}

.journey-checkout-step[hidden] {
  display: none;
}

@keyframes journey-step-in {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: translateX(0); }
}

.journey-step-heading {
  display: grid;
  gap: 0.18rem;
}

.journey-step-heading span {
  color: var(--orange-soft);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.journey-step-heading h3 {
  margin: 0;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(1.45rem, 4vw, 2.05rem);
  font-weight: 500;
}

.journey-step-copy {
  margin: 0;
  color: #bfc5d0;
  font-size: 0.8rem;
}

.journey-step-actions {
  margin-top: 0.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.journey-step-actions--end {
  justify-content: flex-end;
}

.journey-step-actions .button {
  width: auto;
  min-width: 190px;
  min-height: 50px;
  margin: 0;
}

.journey-step-back {
  border: 0;
  padding: 0.7rem 0;
  background: none;
  color: #c5cad3;
  font: inherit;
  font-size: 0.76rem;
  cursor: pointer;
}

.journey-step-back:hover,
.journey-step-back:focus-visible {
  color: var(--orange-soft);
}

.journey-review-summary {
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.025);
}

.journey-review-summary > div {
  padding: 0.78rem 0.95rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.journey-review-summary > div:last-child {
  border-bottom: 0;
}

.journey-review-summary dt {
  color: #9ba4b4;
  font-size: 0.7rem;
}

.journey-review-summary dd {
  margin: 0;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  text-align: right;
}

.journey-review-summary .journey-review-summary__deposit {
  padding-block: 1rem;
  background: rgba(232, 128, 40, 0.12);
}

.journey-review-summary__deposit dt {
  color: #ffd3ac;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.journey-review-summary__deposit dd {
  color: var(--orange-soft);
  font-size: clamp(1.15rem, 3vw, 1.5rem);
}

.journey-review-nonrefundable {
  margin: -0.2rem 0 0;
  color: #ffc99a;
  font-size: 0.72rem;
  line-height: 1.5;
}

.journey-payment-notice {
  position: fixed;
  z-index: 9999;
  top: 1rem;
  left: 50%;
  width: min(680px, calc(100% - 2rem));
  padding: 1rem 1.2rem;
  border: 1px solid rgba(58, 192, 134, 0.55);
  border-radius: 9px;
  display: grid;
  gap: 0.25rem;
  background: #102a29;
  color: white;
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.38);
  transform: translateX(-50%);
}

.journey-payment-notice span {
  color: #d0d8d7;
  font-size: 0.78rem;
}

.journey-payment-notice--pending,
.journey-payment-notice--cancelled {
  border-color: rgba(232, 128, 40, 0.58);
  background: #2a1e14;
}

@media (max-width: 620px) {
  .journey-checkout-modal {
    align-items: end;
    padding: 0;
  }

  .journey-checkout-dialog {
    width: 100%;
    max-height: calc(100dvh - 0.6rem);
    padding: 1.5rem 1.15rem max(1.5rem, env(safe-area-inset-bottom));
    border-radius: 18px 18px 0 0;
  }

  .journey-checkout-dialog .form-row {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .journey-checkout-dialog h2 {
    font-size: clamp(2rem, 12vw, 3rem);
  }

  .journey-checkout-progress {
    margin-bottom: 1rem;
  }

  .journey-checkout-progress li small {
    display: none;
  }

  .journey-checkout-progress::before {
    right: 8%;
    left: 8%;
  }

  .journey-step-actions .button {
    min-width: 0;
    flex: 1;
  }

  .journey-review-summary > div {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }

  .journey-review-summary dd {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .journey-checkout-step {
    animation: none;
  }
}

@media (min-width: 821px) and (max-width: 1200px) {
  .journey-menu {
    position: static;
  }

  .journey-dropdown {
    top: calc(100% - 2px);
    left: 50%;
    width: min(900px, calc(100vw - 2rem));
  }
}

@media (max-width: 1050px) {
  .site-header {
    grid-template-columns: 150px minmax(0, 1fr) auto;
  }

  .main-nav {
    gap: 1rem;
  }

  .main-nav > a:not(.button),
  .journey-menu-trigger {
    font-size: 0.62rem;
  }

  .header-actions {
    gap: 0.35rem;
  }

  .header-actions .button--small {
    padding-inline: 0.7rem;
    font-size: 0.61rem;
  }

  .journey-menu {
    position: static;
  }

  .journey-dropdown {
    top: calc(100% - 2px);
    left: 50%;
    width: min(780px, calc(100vw - 2rem));
    max-height: calc(100svh - 170px);
    grid-template-columns: minmax(0, 1fr) 170px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .site-header.is-scrolled .journey-dropdown {
    max-height: calc(100svh - 100px);
  }

  .journey-dropdown-heading {
    display: none;
  }

  .journey-grid,
  .experience-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .benefit-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 0;
  }

  .benefit-grid article:nth-child(3) {
    border-right: 0;
  }

  .blog-layout {
    grid-template-columns: 1fr 300px;
  }

  .journey-hero {
    grid-template-columns: minmax(350px, 0.9fr) minmax(410px, 1.1fr);
    gap: 2.2rem;
  }

  .journey-hero h1 {
    font-size: clamp(3.2rem, 5vw, 4.3rem);
  }

  .journey-hero-media {
    height: 440px;
  }

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

  .journey-fit-grid article:nth-child(n + 4) {
    min-height: 250px;
  }

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

  .journey-gallery-grid {
    grid-auto-rows: 165px;
  }

  .journey-support {
    grid-template-columns: 1fr;
  }

  .journey-support > div:first-child {
    justify-self: start;
  }

  #journeys-2026 .journey-year-grid,
  #journeys-2027 .journey-year-grid,
  #journeys-2024 .journey-year-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .article-reading-section {
    grid-template-columns: minmax(0, 1fr) 270px;
  }

  .article-share {
    position: static;
    grid-column: 1 / -1;
    grid-row: 1;
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }

  .article-share > span {
    margin: 0 0.4rem 0 0;
    writing-mode: initial;
    transform: none;
  }

  .article-content {
    grid-column: 1;
  }

  .article-sidebar {
    grid-column: 2;
  }

  .related-story-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 820px) {
  :root {
    --page-pad: 1.25rem;
  }

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

  .memory-editorial__column--left,
  .memory-editorial__column--right {
    padding-top: 0;
  }

  .memory-editorial__column--middle {
    margin-top: 3rem;
  }

  .memory-editorial__column--right {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

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

  .announcement {
    grid-template-columns: 1fr auto;
    height: 34px;
  }

  .announcement > span:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 1;
    justify-self: center;
    font-size: 0.68rem;
  }

  .announcement > a,
  .announcement .socials {
    display: none;
  }

  .site-header {
    top: 34px;
    height: 96px;
    grid-template-columns: 1fr auto;
  }

  .brand {
    transform: scale(0.83);
    transform-origin: left center;
  }

  .header-actions,
  .desktop-member,
  .desktop-quote {
    display: none;
  }

  .menu-button {
    position: relative;
    z-index: 2;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: rgba(3, 8, 19, 0.75);
  }

  .menu-button span {
    width: 19px;
    border-top: 2px solid white;
  }

  .main-nav {
    position: fixed;
    z-index: 1;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    padding: calc(4.25rem + env(safe-area-inset-top)) 1.5rem calc(1rem + env(safe-area-inset-bottom));
    flex-flow: column nowrap;
    justify-content: flex-start;
    justify-self: stretch;
    align-items: center;
    gap: 0.15rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: rgba(5, 11, 26, 0.985);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    transition: 220ms ease;
  }

  .main-nav--open {
    flex-direction: column;
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }

  .main-nav > a:not(.button),
  .journey-menu-trigger {
    min-height: 38px;
    padding: 0.3rem 0.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: Georgia, serif;
    font-size: clamp(0.95rem, 4.3vw, 1.1rem);
    line-height: 1.2;
  }

  .journey-menu {
    width: min(320px, 100%);
    flex: 0 0 auto;
    flex-direction: column;
  }

  .journey-menu::after {
    display: none;
  }

  .journey-menu-trigger {
    width: 100%;
    justify-content: center;
  }

  .journey-dropdown {
    position: static;
    width: 100%;
    min-height: 0;
    max-height: 0;
    border-width: 0;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: none;
    transition:
      max-height 520ms cubic-bezier(0.16, 1, 0.3, 1),
      opacity 260ms ease,
      visibility 260ms ease,
      margin 520ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  .journey-menu.is-open .journey-dropdown {
    max-height: 760px;
    margin-block: 0.35rem 0.8rem;
    border-width: 1px;
    border-top-width: 2px;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .journey-dropdown-heading {
    display: none;
  }

  .journey-dropdown-list,
  .journey-dropdown-years {
    padding: 0.6rem;
  }

  .journey-dropdown-years {
    grid-template-columns: 1fr 1fr;
  }

  .journey-dropdown-years section {
    padding: 0.6rem;
  }

  .journey-dropdown-item {
    grid-template-columns: 64px minmax(0, 1fr) auto;
    text-align: left;
  }

  .journey-dropdown-image {
    width: 64px;
    height: 48px;
  }

  .journey-dropdown-item b {
    font-size: 0.95rem;
  }

  .journey-dropdown-cta {
    min-height: 82px;
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--line);
    border-left: 0;
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }

  .journey-dropdown-cta span {
    align-items: flex-start;
  }

  .mobile-member,
  .mobile-quote {
    width: min(210px, 100%);
    min-height: 44px;
    margin-top: 0.25rem;
    padding: 0.55rem 0.8rem;
    display: inline-flex !important;
    font-family: inherit !important;
    font-size: 0.72rem !important;
  }

  .mobile-quote {
    margin-top: 0.55rem;
  }

  .hero {
    min-height: 720px;
  }

  .home-hero {
    min-height: max(720px, 100svh);
  }

  .hero-content {
    padding-top: 120px;
  }

  .hero-content h1 {
    max-width: 700px;
    margin-inline: auto;
    font-size: clamp(2.24rem, 5.6vw, 2.94rem);
    white-space: normal;
  }

  .hero-content h1 em {
    display: inline-block;
  }

  .hero-content h1 em::after {
    width: 108%;
  }

  .section-heading--row {
    align-items: flex-start;
    flex-direction: column;
  }

  .journey-grid,
  .experience-grid {
    grid-template-columns: 1fr 1fr;
  }

  .card-image {
    height: 220px;
  }

  .assurance-strip {
    grid-template-columns: 1fr 1fr;
  }

  .assurance-strip > div:nth-child(2) {
    border-right: 0;
  }

  .memory-mosaic {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 260px 420px 260px;
  }

  .memory-mosaic > :nth-child(1),
  .memory-mosaic > :nth-child(4) {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .memory-mosaic > :nth-child(2),
  .memory-mosaic > :nth-child(3) {
    grid-column: auto;
    grid-row: 2;
  }

  .insiders,
  .plan-cta,
  .membership-main,
  .membership-quote,
  .founder,
  .gallery-feature,
  .journey-intro,
  .contact-section {
    grid-template-columns: 1fr;
  }

  .insiders,
  .plan-cta {
    margin-inline: 1.25rem;
  }

  .benefit-grid,
  .benefit-grid--four {
    grid-template-columns: 1fr 1fr;
  }

  .benefit-grid article {
    border-right: 0;
  }

  .testimonial-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .testimonial-image {
    margin: auto;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .team-grid {
    grid-template-columns: 1fr 1fr;
  }

  .gallery-feature h2 {
    font-size: 3.6rem;
  }

  .gallery-feature img {
    max-height: 520px;
  }

  .gallery-grid button,
  .gallery-grid button:nth-child(1),
  .gallery-grid button:nth-child(6),
  .gallery-grid button:nth-child(9) {
    grid-column: span 6;
  }

  .blog-layout {
    grid-template-columns: 1fr;
  }

  .popular-posts {
    position: relative;
    top: 0;
  }

  .contact-section {
    padding-top: 170px;
  }

  .contact-intro {
    text-align: center;
  }

  .contact-intro h1,
  .contact-intro > p {
    margin-inline: auto;
  }

  .contact-intro .button {
    margin-inline: auto;
  }

  .membership-video img {
    min-height: 420px;
  }

  .membership-collage {
    height: 610px;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(4, 1fr);
  }

  .membership-collage img:nth-child(1),
  .membership-collage img:nth-child(8) {
    grid-column: span 2;
    grid-row: span 2;
  }

  .journey-hero {
    min-height: auto;
    padding-top: 155px;
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .journey-hero-content {
    max-width: 680px;
  }

  .journey-hero-media {
    width: 100%;
    height: 500px;
  }

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

  .journey-reality-card {
    grid-template-columns: 1fr;
  }

  .journey-reality-card .eyebrow,
  .journey-reality-card h3,
  .journey-reality-card ul,
  .journey-reality-card .button {
    grid-column: 1;
  }

  .journey-reality-card ul {
    grid-row: auto;
  }

  .journey-inclusion-grid,
  .journey-practical {
    grid-template-columns: 1fr;
  }

  .journey-practical > div:first-child {
    position: static;
  }

  .journey-support-actions {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .itinerary {
    grid-template-columns: 1fr;
  }

  .price-card {
    position: relative;
    top: 0;
  }

  .journey-year-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .journey-year-heading p {
    text-align: left;
  }

  .journey-year-grid,
  #journeys-2026 .journey-year-grid,
  #journeys-2027 .journey-year-grid,
  #journeys-2024 .journey-year-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .destination-featured-inner,
  .quote-payment-layout {
    grid-template-columns: 1fr;
  }

  .quote-page {
    padding-inline: 1rem;
  }

  .article-hero {
    min-height: 650px;
  }

  .article-hero-inner {
    padding-bottom: 95px;
  }

  .article-reading-section {
    grid-template-columns: minmax(0, 1fr);
  }

  .article-share,
  .article-content,
  .article-sidebar {
    grid-column: 1;
  }

  .article-sidebar {
    position: static;
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px) {
  h1 {
    font-size: clamp(2.7rem, 14vw, 4.1rem);
  }

  .memory-editorial {
    display: flex;
    grid-template-columns: none;
    gap: 14px;
    margin-top: 2.5rem;
    padding: 4px max(1.25rem, calc((100vw - 390px) / 2));
    max-width: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 1.25rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .memory-editorial::-webkit-scrollbar {
    display: none;
  }

  .memory-editorial__column,
  .memory-editorial__column--middle,
  .memory-editorial__column--right {
    display: contents;
  }

  .memory-editorial__item--horse,
  .memory-editorial__item--colombia,
  .memory-editorial__item--barcelona,
  .memory-editorial__item--temple,
  .memory-editorial__item--buddha,
  .memory-editorial__video,
  .memory-editorial__item--drinks {
    flex: 0 0 min(82vw, 320px);
    width: min(82vw, 320px);
    height: 318px;
    aspect-ratio: auto;
    scroll-snap-align: center;
  }

  .memory-editorial__link::after {
    inset: 0;
    opacity: 1;
    background: linear-gradient(180deg, transparent 52%, rgba(232, 128, 40, 0.92));
    transform: none;
  }

  .memory-editorial__destination {
    left: 1.1rem;
    right: 1.1rem;
    bottom: 1.05rem;
    display: block;
    font-family: "Poppins", Arial, sans-serif;
    opacity: 1;
    transform: none;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.25;
    text-align: center;
    text-transform: uppercase;
  }

  .memory-editorial__destination::before,
  .memory-editorial__destination::after {
    display: none;
  }

  .memory-editorial__dots {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin-top: 1.15rem;
  }

  .memory-editorial__dots span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.34);
    transition: width 220ms ease, background 220ms ease;
  }

  .memory-editorial__dots span.is-active {
    width: 20px;
    border-radius: 99px;
    background: var(--orange);
  }

  .memory-video-modal {
    padding: 1.25rem;
  }

  .memory-video-modal__close {
    top: -14px;
    right: -10px;
  }

  .contact-connect {
    padding-inline: 1.25rem;
  }

  .contact-connect__methods {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .contact-map {
    min-height: 230px;
    border-radius: 16px;
  }

  .contact-map__label {
    opacity: 1;
    transform: none;
  }

  .contact-connect__social {
    align-items: flex-start;
    flex-direction: column;
    gap: 1.25rem;
  }

  h2 {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .announcement > span:nth-child(2) {
    max-width: 92vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .home-hero {
    min-height: max(700px, 100svh);
  }

  .hero-slide--cruise-travelers img {
    object-position: 61% center;
  }

  .hero-slide--jamaica-group img {
    object-position: 50% center;
  }

  .hero-slide--rafting-travelers img {
    object-position: 50% 48%;
  }

  .hero-slide--poolside-travelers img {
    object-position: 51% center;
  }

  .hero-slide--sunset-group img {
    object-position: 48% center;
  }

  .hero-content p {
    font-size: 0.94rem;
  }

  .section {
    padding-block: 4rem;
  }

  .journey-grid,
  .experience-grid,
  .experience-grid--three,
  .assurance-strip,
  .benefit-grid,
  .benefit-grid--four,
  .trust-stats,
  .team-grid,
  .membership-benefits,
  .trip-stats {
    grid-template-columns: 1fr;
  }

  .journey-grid {
    gap: 2rem;
  }

  .card-image {
    height: 310px;
  }

  .journey-card p {
    min-height: 0;
  }

  .experience-card {
    min-height: 430px;
  }

  .assurance-strip > div {
    border-right: 0;
    border-bottom: 1px solid #e5e5e5;
  }

  .assurance-strip > div:last-child {
    border-bottom: 0;
  }

  .memory-mosaic {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 220px 360px 220px;
  }

  .memory-mosaic > :nth-child(1),
  .memory-mosaic > :nth-child(4) {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .memory-mosaic > :nth-child(2),
  .memory-mosaic > :nth-child(3) {
    grid-column: auto;
    grid-row: 2;
  }

  .check-grid {
    grid-template-columns: 1fr;
  }

  .benefit-grid article {
    padding: 1rem 0 2rem;
    border-bottom: 1px solid var(--line);
  }

  .testimonial {
    padding-inline: 1.25rem;
  }

  blockquote {
    padding-inline: 0;
  }

  .trust {
    min-height: 680px;
  }

  .trust-stats {
    gap: 1.4rem;
  }

  .trust-stats div {
    padding-bottom: 1rem;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  }

  .newsletter form {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .newsletter input {
    min-height: 48px;
    border-right: 0;
  }

  .newsletter .button {
    width: auto;
  }

  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 0.65rem;
    padding: 1.25rem;
    min-height: 0;
  }

  .footer-grid::before {
    opacity: 0.66;
    background-position: 34% bottom;
    background-size: auto 62%;
  }

  .footer-grid > .footer-brand-column {
    grid-column: 1 / -1;
  }

  .footer-grid h3 {
    margin-bottom: 0.55rem;
    font-size: 0.7rem;
    letter-spacing: 0.08em;
  }

  .footer-grid > div:not(:first-child) a {
    margin-bottom: 0.34rem;
    font-size: 0.68rem;
    line-height: 1.35;
  }

  .newsletter {
    padding: 1.35rem 1.25rem;
  }

  .newsletter h2 {
    font-size: clamp(2rem, 10vw, 2.45rem);
  }

  .newsletter p {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.82rem;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 0.5rem;
    text-align: center;
  }

  .floating-actions {
    right: 0.8rem;
    bottom: max(0.8rem, env(safe-area-inset-bottom));
  }

  .floating-actions a {
    width: 64px;
    height: 64px;
  }

  .subhero {
    min-height: 590px;
    padding-top: 145px;
  }

  .about-hero > div:not(.hero-overlay) {
    transform: translateY(70px);
  }

  .founder > img {
    max-height: 560px;
  }

  .gallery-feature h2 {
    font-size: 3rem;
  }

  .video-card,
  .video-card > img {
    min-height: 430px;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 260px;
  }

  .gallery-grid button,
  .gallery-grid button:nth-child(1),
  .gallery-grid button:nth-child(6),
  .gallery-grid button:nth-child(9) {
    grid-column: auto;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 1.3rem;
  }

  .membership-collage {
    height: 600px;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(4, 1fr);
  }

  .membership-collage img:nth-child(1),
  .membership-collage img:nth-child(8) {
    grid-column: span 2;
    grid-row: span 1;
  }

  .membership-main {
    padding-inline: 1.25rem;
  }

  .membership-main h1 span {
    font-size: 0.55em;
  }

  .journey-hero {
    min-height: auto;
    padding: 145px 1.25rem 3rem;
    gap: 2.4rem;
  }

  .journey-hero h1 {
    font-size: clamp(3rem, 13vw, 4rem);
  }

  .journey-dates {
    font-size: 0.84rem;
  }

  .hero-meta {
    grid-template-columns: 1fr 1fr;
    row-gap: 0.8rem;
  }

  .hero-meta span:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .journey-actions {
    flex-wrap: wrap;
  }

  .journey-hero-media {
    height: 390px;
  }

  .journey-image-stack {
    min-height: 430px;
  }

  .journey-date-stamp {
    right: 0;
    bottom: 1rem;
  }

  .journey-fit-grid,
  .journey-signature-grid,
  .journey-pricing-grid,
  .journey-stay-grid,
  .journey-practical-grid {
    grid-template-columns: 1fr;
  }

  .journey-fit-grid article,
  .journey-fit-grid article:nth-child(n + 4) {
    min-height: 230px;
  }

  .journey-signature-grid img,
  .journey-stay-grid img {
    height: 300px;
  }

  .journey-gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 220px;
  }

  .journey-gallery-grid figure,
  .journey-gallery-grid figure:first-child,
  .journey-gallery-grid figure:last-child {
    grid-column: auto;
    grid-row: auto;
  }

  .journey-gallery-grid figure:first-child {
    grid-column: 1 / -1;
  }

  .journey-booking-steps {
    grid-template-columns: 1fr;
  }

  .journey-booking-steps article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .journey-booking-steps article:last-child {
    border-bottom: 0;
  }

  .journey-itinerary-list summary {
    min-height: 105px;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 0.7rem;
  }

  .journey-itinerary-list summary small {
    grid-column: 2;
    text-align: left;
  }

  .journey-itinerary-list details > p {
    margin-left: 68px;
  }

  .journey-support-actions {
    grid-template-columns: 1fr;
  }

  .journey-support-actions a {
    min-height: 86px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  }

  .journey-support-actions a:last-child {
    border-bottom: 0;
  }

  .itinerary > div > article {
    grid-template-columns: 1fr;
  }

  .booking-page {
    padding-inline: 1rem;
  }

  .booking-progress {
    gap: 0.45rem;
  }

  .booking-stage {
    padding-right: 0;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 0.45rem;
  }

  .booking-stage > span {
    width: 34px;
    height: 34px;
  }

  .booking-stage b {
    font-size: 0.62rem;
  }

  .booking-stage small {
    display: none;
  }

  .booking-stage:not(:last-child)::after {
    display: none;
  }

  .journey-year-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .journey-year-heading p {
    text-align: left;
  }

  .journey-year-grid,
  #journeys-2026 .journey-year-grid,
  #journeys-2027 .journey-year-grid,
  #journeys-2024 .journey-year-grid {
    grid-template-columns: 1fr;
  }

  .journey-dropdown-years {
    grid-template-columns: 1fr;
  }

  .journey-menu.is-open .journey-dropdown {
    max-height: 980px;
  }

  .booking-progress {
    grid-template-columns: repeat(3, 34px);
    justify-content: center;
    gap: 1.2rem;
  }

  .booking-stage {
    display: block;
  }

  .booking-stage > div {
    display: none;
  }

  .booking-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .booking-actions .button,
  .quote-payment-actions .button {
    width: 100%;
  }

  .catalogue-card-image {
    height: 270px;
  }

  .destination-featured-inner,
  .quote-payment-layout {
    grid-template-columns: 1fr;
  }

  .destination-featured img {
    height: 380px;
  }

  .quote-page {
    padding-inline: 1rem;
  }

  .quote-progress small {
    display: block;
  }

  .quote-progress {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
  }

  .quote-progress::before {
    top: 20px;
    right: auto;
    bottom: 20px;
    left: 20px;
    border-top: 0;
    border-left: 1px solid #657086;
  }

  .article-hero {
    min-height: 600px;
    padding-inline: 1.25rem;
  }

  .article-hero-inner {
    padding: 140px 0 78px;
  }

  .article-breadcrumb {
    margin-bottom: 1.35rem;
  }

  .article-hero h1 {
    font-size: clamp(2.8rem, 13vw, 4.2rem);
  }

  .article-feature-image {
    width: calc(100% - 2rem);
    height: 380px;
    margin-top: -45px;
  }

  .article-reading-section {
    padding: 4rem 1.25rem 5rem;
    gap: 2.2rem;
  }

  .article-sidebar {
    grid-template-columns: 1fr;
  }

  .article-content blockquote {
    padding: 1.5rem;
  }

  .related-story-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .related-story img {
    height: 310px;
  }
}

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

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

/* Group Journeys lifecycle catalogue */
body[data-page="group-journeys"] {
  --gj-gold: #f0a35e;
  --gj-panel: #0d1629;
  --gj-panel-light: #121d32;
}

body[data-page="group-journeys"] .journeys-catalogue-hero {
  min-height: 620px;
  background:
    linear-gradient(180deg, rgba(2, 7, 18, 0.32), rgba(2, 7, 18, 0.88)),
    url("stock/curacao/hero.webp") center 55% / cover;
}

body[data-page="group-journeys"] .journeys-catalogue-hero .hero-overlay {
  background:
    linear-gradient(90deg, rgba(2, 7, 18, 0.78), rgba(2, 7, 18, 0.2) 62%, rgba(2, 7, 18, 0.45)),
    linear-gradient(180deg, rgba(2, 7, 18, 0.1), rgba(2, 7, 18, 0.84));
}

body[data-page="group-journeys"] .gj-hero-content {
  width: min(760px, 100%);
  margin-right: auto;
  text-align: left;
}

body[data-page="group-journeys"] .journeys-catalogue-hero h1 {
  margin-bottom: 1rem;
  font-size: clamp(3.5rem, 7.4vw, 7rem);
  letter-spacing: -0.045em;
}

body[data-page="group-journeys"] .journeys-catalogue-hero p:not(.eyebrow) {
  max-width: 660px;
  margin-bottom: 1.6rem;
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(1rem, 1.5vw, 1.22rem);
}

.gj-catalogue {
  background:
    radial-gradient(circle at 84% 11%, rgba(232, 128, 40, 0.08), transparent 23%),
    var(--navy);
}

.gj-discovery,
.gj-section,
.gj-no-results,
.gj-interest-cta {
  padding: 5.8rem var(--page-pad);
}

.gj-discovery {
  border-bottom: 1px solid var(--line);
  background: var(--navy-2);
}

.gj-section {
  border-bottom: 1px solid var(--line);
}

.gj-section--coming,
.gj-section--archive {
  background: var(--navy-2);
}

.gj-section-heading {
  max-width: 1280px;
  margin: 0 auto 2.3rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.gj-section-heading > div {
  min-width: 0;
}

.gj-section-heading h2 {
  margin-bottom: 0;
}

.gj-section-heading h2 em,
.gj-interest-cta h2 em {
  color: var(--orange-soft);
  font-weight: 400;
}

.gj-section-heading > p {
  max-width: 500px;
  margin-bottom: 0.25rem;
  text-align: right;
}

.gj-filters {
  max-width: 1280px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-top: 3px solid var(--orange);
  border-radius: 12px;
  background:
    linear-gradient(120deg, rgba(18, 29, 50, 0.96), rgba(8, 16, 32, 0.98));
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.26);
}

.gj-filter-head {
  min-height: 72px;
  padding: 0.9rem 1.2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.gj-filter-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.gj-filter-title > span {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border: 1px solid rgba(240, 163, 94, 0.55);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(232, 128, 40, 0.1);
  color: var(--orange-soft);
  font-size: 0.8rem;
}

.gj-filter-title strong,
.gj-filter-title small {
  display: block;
}

.gj-filter-title strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.08rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}

.gj-filter-title small {
  margin-top: 0.14rem;
  color: #858d9d;
  font-size: 0.63rem;
}

.gj-filter-controls {
  padding: 1rem 1.2rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 0.8rem;
}

.gj-filter-controls label {
  position: relative;
  min-width: 0;
  min-height: 72px;
  padding: 0.64rem 0.8rem 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 8px;
  display: block;
  background: rgba(5, 11, 26, 0.64);
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.gj-filter-controls label:hover,
.gj-filter-controls label:focus-within {
  border-color: rgba(240, 163, 94, 0.6);
  background: rgba(17, 28, 49, 0.96);
  transform: translateY(-1px);
}

.gj-filter-controls label::after {
  content: "";
  position: absolute;
  right: 0.9rem;
  bottom: 1.15rem;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid #9fa6b5;
  border-bottom: 1.5px solid #9fa6b5;
  transform: rotate(45deg);
  pointer-events: none;
}

.gj-filter-controls label > span {
  display: block;
  margin: 0 0 0.16rem;
  color: var(--orange-soft);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.gj-filter-controls select {
  appearance: none;
  width: 100%;
  min-height: 31px;
  padding: 0 2rem 0 0;
  border: 0;
  border-radius: 0;
  outline: none;
  background: transparent;
  color: white;
  font-size: 0.86rem;
  font-weight: 500;
  cursor: pointer;
}

.gj-filter-controls select:focus-visible {
  outline: 0;
}

.gj-reset {
  min-height: 36px;
  padding: 0.55rem 0.78rem;
  border: 1px solid rgba(240, 163, 94, 0.28);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  background: rgba(232, 128, 40, 0.08);
  color: var(--orange-soft);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, color 180ms ease;
}

.gj-reset span {
  font-size: 0.9rem;
  line-height: 1;
}

.gj-reset:hover,
.gj-reset:focus-visible {
  border-color: var(--orange);
  background: var(--orange);
  color: white;
}

.gj-filter-footer {
  min-height: 44px;
  padding: 0.68rem 1.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: rgba(3, 9, 22, 0.42);
}

.gj-filter-footer > span {
  color: #6f7889;
  font-size: 0.61rem;
  letter-spacing: 0.04em;
}

.gj-results-summary {
  max-width: none;
  min-height: 0;
  margin: 0;
  color: #9fa6b5;
  font-size: 0.66rem;
  text-align: right;
}

.gj-grid,
.gj-coming-grid,
.gj-archive-panel {
  max-width: 1280px;
  margin-inline: auto;
}

.gj-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
  gap: 1.35rem;
}

.gj-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  background: linear-gradient(155deg, var(--gj-panel-light), var(--gj-panel));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
  transition: transform 300ms cubic-bezier(0.16, 1, 0.3, 1), border-color 300ms ease;
}

.gj-card:hover,
.gj-card:focus-within {
  border-color: rgba(240, 163, 94, 0.58);
  transform: translateY(-7px);
}

.gj-card-image {
  position: relative;
  height: 270px;
  overflow: hidden;
  background: #12192a;
}

.gj-card-image::after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(transparent, rgba(5, 11, 26, 0.78));
}

.gj-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
}

.gj-card:hover .gj-card-image img {
  transform: scale(1.065);
}

.gj-status {
  position: absolute;
  z-index: 1;
  top: 1rem;
  left: 1rem;
  max-width: calc(100% - 2rem);
  padding: 0.42rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  background: rgba(5, 11, 26, 0.86);
  color: white;
  font-size: 0.58rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.gj-status--open {
  border-color: rgba(240, 163, 94, 0.8);
  background: var(--orange);
}

.gj-status--sold-out {
  border-color: #d97575;
  background: rgba(118, 28, 31, 0.9);
}

.gj-status--closed {
  border-color: rgba(255, 255, 255, 0.25);
  color: #d5d7dc;
}

.gj-card-body {
  flex: 1;
  padding: 1.3rem;
  display: flex;
  flex-direction: column;
}

.gj-card-kicker {
  margin-bottom: 0.55rem;
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  color: var(--orange-soft);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.gj-card-kicker span:last-child {
  color: #8e95a4;
  text-align: right;
}

.gj-card h3 {
  margin-bottom: 0.55rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 2.1vw, 1.9rem);
  font-weight: 500;
}

.gj-card h3 a:focus-visible,
.gj-card-image:focus-visible,
.gj-details-link:focus-visible,
.gj-archive-item:focus-visible {
  outline: 2px solid var(--orange-soft);
  outline-offset: 3px;
}

.gj-card-date {
  margin-bottom: 0.7rem;
  color: white;
  font-size: 0.73rem;
  font-weight: 750;
}

.gj-card-body > p:not(.gj-card-date) {
  margin-bottom: 1rem;
  font-size: 0.8rem;
}

.gj-card-meta {
  margin-top: auto;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.gj-card-meta span {
  padding: 0.35rem 0.58rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: #aeb3be;
  font-size: 0.58rem;
}

.gj-card-actions {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.gj-details-link {
  color: var(--orange-soft);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}

.gj-details-link[aria-disabled="true"],
[data-group-interest-link][aria-disabled="true"] {
	opacity: 0.58;
	cursor: not-allowed;
	pointer-events: none;
}

.gj-details-link span {
  display: inline-block;
  margin-left: 0.25rem;
  transition: transform 180ms ease;
}

.gj-details-link:hover span,
.gj-details-link:focus-visible span {
  transform: translateX(4px);
}

.gj-card-actions .button {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0.55rem 0.8rem;
  font-size: 0.62rem;
}

.gj-card-availability {
  color: #7f8797;
  font-size: 0.58rem;
  font-weight: 750;
  text-align: right;
  text-transform: uppercase;
}

.gj-coming-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr));
  gap: 1.25rem;
}

.gj-coming-card {
  min-width: 0;
  min-height: 270px;
  overflow: hidden;
  border: 1px solid rgba(240, 163, 94, 0.32);
  border-radius: 14px;
  display: grid;
  grid-template-columns: minmax(180px, 0.82fr) minmax(220px, 1.18fr);
  background: var(--gj-panel);
}

.gj-coming-card > img {
  width: 100%;
  height: 100%;
  min-height: 270px;
  object-fit: cover;
}

.gj-coming-card > div {
  align-self: center;
  padding: 1.7rem;
}

.gj-coming-card h3 {
  margin-bottom: 0.5rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  font-weight: 500;
}

.gj-coming-card p:not(.eyebrow, .gj-card-date) {
  font-size: 0.8rem;
}

.gj-archive-panel {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(5, 11, 26, 0.72);
}

.gj-archive-panel summary {
  min-height: 78px;
  padding: 1.15rem 1.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: white;
  cursor: pointer;
  list-style: none;
}

.gj-archive-panel summary::-webkit-details-marker {
  display: none;
}

.gj-archive-panel summary > span:first-child {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.28rem;
}

.gj-archive-panel summary b {
  color: var(--orange-soft);
}

.gj-archive-toggle {
  color: var(--orange-soft);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gj-archive-toggle::after {
  content: "+";
  width: 30px;
  height: 30px;
  margin-left: 0.7rem;
  border: 1px solid rgba(240, 163, 94, 0.45);
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
}

.gj-archive-panel[open] .gj-archive-toggle::after {
  content: "−";
}

.gj-archive-list {
  padding: 0 1.2rem 1.2rem;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.gj-archive-item {
  min-width: 0;
  min-height: 92px;
  padding: 0.75rem;
  display: grid;
  grid-template-columns: 88px 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  background: var(--gj-panel);
  transition: background 180ms ease;
}

.gj-archive-item:hover {
  background: var(--gj-panel-light);
}

.gj-archive-item img {
  width: 88px;
  height: 66px;
  border-radius: 4px;
  object-fit: cover;
}

.gj-archive-year {
  color: var(--orange-soft);
  font-size: 0.65rem;
  font-weight: 800;
}

.gj-archive-copy {
  min-width: 0;
}

.gj-archive-copy b,
.gj-archive-copy small {
  display: block;
}

.gj-archive-copy b {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gj-archive-copy small {
  margin-top: 0.2rem;
  color: #9298a6;
  font-size: 0.62rem;
}

.gj-archive-arrow {
  color: var(--orange-soft);
  transition: transform 180ms ease;
}

.gj-archive-item:hover .gj-archive-arrow {
  transform: translateX(4px);
}

.gj-no-results {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}

.gj-no-results .button {
  margin-inline: auto;
}

.gj-interest-cta {
  max-width: none;
  border-top: 1px solid rgba(240, 163, 94, 0.3);
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) auto;
  align-items: center;
  gap: 3rem;
  background:
    linear-gradient(105deg, rgba(5, 11, 26, 0.94), rgba(5, 11, 26, 0.68)),
    url("stock/antigua/sea.webp") center 52% / cover;
}

.gj-interest-cta > div:first-child {
  width: min(760px, 100%);
  margin-left: max(0px, calc((100vw - 1280px) / 2));
}

.gj-interest-cta h2 {
  margin-bottom: 0.9rem;
}

.gj-interest-cta p:not(.eyebrow) {
  max-width: 700px;
  margin-bottom: 0;
}

.gj-interest-actions {
  margin-right: max(0px, calc((100vw - 1280px) / 2));
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

@media (max-width: 1100px) {
  .gj-filter-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gj-interest-cta {
    grid-template-columns: 1fr;
  }

  .gj-interest-cta > div:first-child,
  .gj-interest-actions {
    margin-inline: 0;
  }
}

@media (max-width: 760px) {
  body[data-page="group-journeys"] .journeys-catalogue-hero {
    min-height: 650px;
    padding-bottom: 3rem;
    background-position: 61% center;
  }

  body[data-page="group-journeys"] .gj-hero-content {
    align-self: end;
  }

  body[data-page="group-journeys"] .journeys-catalogue-hero h1 {
    font-size: clamp(3.25rem, 17vw, 5rem);
  }

  .gj-discovery,
  .gj-section,
  .gj-no-results,
  .gj-interest-cta {
    padding: 4.4rem 1.15rem;
  }

  .gj-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.8rem;
  }

  .gj-section-heading > p {
    text-align: left;
  }

  .gj-filter-controls {
    padding: 0.9rem;
    grid-template-columns: 1fr;
  }

  .gj-filter-head {
    padding: 0.9rem;
  }

  .gj-filter-footer {
    padding-inline: 0.9rem;
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }

  .gj-filter-footer,
  .gj-results-summary {
    text-align: left;
  }

  .gj-coming-card {
    grid-template-columns: 1fr;
  }

  .gj-coming-card > img {
    height: 230px;
    min-height: 0;
  }

  .gj-coming-card > div {
    padding: 1.3rem;
  }

  .gj-archive-list {
    grid-template-columns: 1fr;
  }

  .gj-archive-item {
    grid-template-columns: 74px 42px minmax(0, 1fr) auto;
    gap: 0.6rem;
  }

  .gj-archive-item img {
    width: 74px;
    height: 58px;
  }

  .gj-interest-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gj-interest-actions .button {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .gj-card-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gj-card-actions .button,
  .gj-details-link {
    width: 100%;
  }

  .gj-card-availability {
    text-align: left;
  }

  .gj-archive-panel summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .gj-archive-item {
    grid-template-columns: 66px minmax(0, 1fr) auto;
  }

  .gj-archive-item img {
    width: 66px;
    height: 54px;
  }

  .gj-archive-year {
    display: none;
  }

  .gj-archive-copy b {
    white-space: normal;
  }
}

/* Immersive motion system — shared by every plain HTML page */
.scroll-progress {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  overflow: hidden;
  pointer-events: none;
}

.scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #9e4b13, var(--orange), #ffd09f);
  box-shadow: 0 0 14px rgba(232, 128, 40, 0.8);
  transform: scaleX(0);
  transform-origin: left;
}

body::after {
  content: "";
  position: fixed;
  z-index: 990;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(232, 128, 40, 0.15), transparent 38%),
    var(--navy);
  pointer-events: none;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 420ms cubic-bezier(0.76, 0, 0.24, 1);
}

body.page-leaving::after {
  transform: scaleY(1);
}

.motion-enabled .motion-hero-item {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}

.motion-enabled .motion-chrome-item {
  transform: translate3d(0, -8px, 0);
}

.motion-enabled body.motion-ready .motion-hero-item {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity 900ms ease,
    transform 900ms ease;
  transition-delay: var(--hero-delay, calc(200ms + var(--hero-order, 0) * 100ms));
}

.motion-word {
  display: inline-block;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}

.motion-ready .motion-word {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity 900ms ease,
    transform 900ms ease;
  transition-delay: calc(350ms + var(--word-index, 0) * 100ms);
}

.motion-ready .journey-hero h1 .motion-word {
  animation: journey-title-reveal 1.05s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(320ms + var(--word-index, 0) * 115ms);
  transition: none;
}

.motion-ready .journey-hero h1 em::after {
  animation: journey-title-underline 1s cubic-bezier(0.16, 1, 0.3, 1) 1.05s both;
}

@keyframes journey-title-reveal {
  0% {
    opacity: 0;
    filter: blur(10px);
    transform: translate3d(0, 0.9em, -60px) rotateX(-48deg) rotate(2deg);
  }

  68% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, -0.06em, 0) rotateX(0) rotate(-0.5deg);
  }

  100% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) rotateX(0) rotate(0);
  }
}

@keyframes journey-title-underline {
  0% {
    opacity: 0;
    transform: scaleX(0) rotate(-2deg);
  }

  72% {
    opacity: 1;
    transform: scaleX(1.06) rotate(-2deg);
  }

  100% {
    opacity: 1;
    transform: scaleX(1) rotate(-2deg);
  }
}

[data-motion] {
  --reveal-x: 0px;
  --reveal-y: 70px;
  --reveal-scale: 1;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  opacity: 0;
  transform:
    perspective(1100px)
    translate3d(var(--reveal-x), var(--reveal-y), 0)
    scale(var(--reveal-scale))
    rotateX(var(--tilt-x))
    rotateY(var(--tilt-y));
  filter: blur(7px);
  transition:
    opacity 900ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 1150ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 900ms ease;
  transition-delay: calc(var(--reveal-order, 0) * 70ms);
  will-change: transform, opacity;
}

[data-motion="left"] {
  --reveal-x: -72px;
  --reveal-y: 16px;
}

[data-motion="right"] {
  --reveal-x: 72px;
  --reveal-y: 16px;
}

[data-motion="scale"] {
  --reveal-y: 24px;
  --reveal-scale: 0.9;
}

[data-motion].is-visible {
  --reveal-x: 0px;
  --reveal-y: 0px;
  --reveal-scale: 1;
  opacity: 1;
  filter: blur(0);
}

.memory-mosaic > [data-motion],
.memory-editorial__item[data-motion],
.gallery-grid > [data-motion],
.journey-image-stack[data-motion],
.membership-quote > [data-motion] {
  clip-path: inset(0 0 100% 0 round 6px);
  transition-property: opacity, transform, filter, clip-path;
}

.memory-mosaic > [data-motion].is-visible,
.memory-editorial__item[data-motion].is-visible,
.gallery-grid > [data-motion].is-visible,
.journey-image-stack[data-motion].is-visible,
.membership-quote > [data-motion].is-visible {
  clip-path: inset(0 0 0 0 round 6px);
}

.site-header.is-scrolled {
  position: fixed;
  top: 0;
  height: 84px;
  background: rgba(5, 11, 26, 0.91);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(18px);
  animation: headerDrop 600ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.site-header.is-scrolled .brand {
  transform: scale(0.72);
  transform-origin: left center;
}

.main-nav > a:not(.button),
.text-link,
.journey-details-link {
  position: relative;
}

.main-nav > a:not(.button)::after,
.text-link::after,
.journey-details-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.28rem;
  height: 1px;
  background: var(--orange-soft);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.main-nav > a:not(.button):hover::after,
.main-nav > a:not(.button):focus-visible::after,
.text-link:hover::after,
.text-link:focus-visible::after,
.journey-details-link:hover::after,
.journey-details-link:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.announcement {
  overflow: hidden;
}

.announcement::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 25%, rgba(255, 255, 255, 0.12) 48%, transparent 72%);
  transform: translateX(-120%);
  animation: announcementShine 6s 2.4s ease-in-out infinite;
  pointer-events: none;
}

.brand-mark i {
  animation: tinyFlight 4s ease-in-out infinite;
}

.button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.button::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -2px;
  background: linear-gradient(105deg, transparent 28%, rgba(255, 255, 255, 0.45) 48%, transparent 68%);
  transform: translateX(-120%);
  transition: transform 750ms cubic-bezier(0.16, 1, 0.3, 1);
}

.button:hover::before,
.button:focus-visible::before {
  transform: translateX(120%);
}

.motion-magnetic {
  transition:
    translate 240ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease;
}

.hero,
.subhero,
.trust,
.membership-hero {
  isolation: isolate;
  overflow: hidden;
}

.home-hero {
  overflow: clip;
}

.hero-overlay::before,
.trust-overlay::before {
  content: "";
  position: absolute;
  inset: -25%;
  background:
    radial-gradient(circle at 25% 45%, rgba(232, 128, 40, 0.12), transparent 23%),
    radial-gradient(circle at 72% 55%, rgba(255, 255, 255, 0.08), transparent 20%);
  mix-blend-mode: screen;
  animation: ambientGlow 11s ease-in-out infinite alternate;
}

.subhero {
  animation: backgroundBreath 14s ease-in-out infinite alternate;
}

.journey-hero-content {
  translate: 0 calc(var(--journey-shift, 0px) * -0.18);
}

.journey-media-primary img {
  transform: translate3d(0, calc(var(--journey-shift, 0px) * 0.45), 0) scale(1.06);
}

.journey-hero-media > img:nth-child(2) {
  transform: translate3d(0, calc(var(--journey-shift, 0px) * -0.28), 0);
}

.journey-hero-media > img:nth-child(3) {
  transform: translate3d(0, calc(var(--journey-shift, 0px) * 0.24), 0);
}

.journey-hero-media img {
  transition: transform 180ms linear, filter 700ms ease;
}

.journey-hero-media:hover img {
  filter: saturate(1.12) contrast(1.04);
}

.journey-media-primary span,
.memory-play span,
.membership-video span {
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4), 0 12px 36px rgba(0, 0, 0, 0.25);
  animation: playPulse 2.5s ease-out infinite;
}

.memory-mosaic img,
.memory-editorial__item img,
.membership-collage img {
  animation: imageDrift 9s ease-in-out infinite alternate;
}

.memory-mosaic > :nth-child(2n) img,
.memory-editorial__column:nth-child(2n) .memory-editorial__item img,
.membership-collage img:nth-child(3n) {
  animation-delay: -3.5s;
  animation-direction: alternate-reverse;
}

.journey-image-stack img:first-child {
  animation: imageFloatA 6.5s ease-in-out infinite;
}

.journey-image-stack img:last-child {
  animation: imageFloatB 7.5s -2s ease-in-out infinite;
}

.floating-actions a {
  position: relative;
  animation: floatingAction 2.8s ease-in-out infinite;
}

.floating-actions a:last-child {
  animation-delay: -1.4s;
}

.floating-actions a::before {
  content: "";
  position: absolute;
  inset: -7px;
  border: 1px solid currentColor;
  border-radius: inherit;
  opacity: 0;
  animation: actionRing 2.8s ease-out infinite;
}

.motion-tilt {
  position: relative;
  transform-style: preserve-3d;
}

.motion-tilt::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  background: radial-gradient(
    circle at var(--shine-x, 50%) var(--shine-y, 50%),
    rgba(255, 255, 255, 0.16),
    transparent 34%
  );
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms ease;
}

.motion-tilt:hover::before {
  opacity: 1;
}

.motion-cursor-glow,
.motion-cursor-dot {
  position: fixed;
  z-index: 989;
  left: 0;
  top: 0;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
}

.motion-cursor-glow {
  width: 260px;
  height: 260px;
  margin: -130px 0 0 -130px;
  background: radial-gradient(circle, rgba(232, 128, 40, 0.12), transparent 68%);
  mix-blend-mode: screen;
  transition: opacity 400ms ease;
}

.motion-cursor-dot {
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  background: var(--orange);
  box-shadow: 0 0 18px rgba(232, 128, 40, 0.9);
  transition: opacity 300ms ease;
}

body.has-pointer .motion-cursor-glow {
  opacity: 1;
}

body.has-pointer .motion-cursor-dot {
  opacity: 0.9;
}

@keyframes headerDrop {
  from {
    opacity: 0;
    transform: translateY(-100%);
  }
}

@keyframes announcementShine {
  0%,
  68% {
    transform: translateX(-120%);
  }
  86%,
  100% {
    transform: translateX(120%);
  }
}

@keyframes tinyFlight {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(0);
  }
  50% {
    transform: translate3d(7px, -5px, 0) rotate(8deg);
  }
}

@keyframes ambientGlow {
  from {
    transform: translate3d(-3%, -2%, 0) rotate(-2deg);
  }
  to {
    transform: translate3d(4%, 3%, 0) rotate(3deg) scale(1.06);
  }
}

@keyframes backgroundBreath {
  from {
    background-size: auto 104%;
  }
  to {
    background-size: auto 112%;
  }
}

@keyframes heroCinematicZoom {
  from {
    transform: translate3d(0, var(--hero-parallax-y, 0), 0) scale(1.025);
  }
  to {
    transform: translate3d(0, var(--hero-parallax-y, 0), 0) scale(1.15);
  }
}

@keyframes heroSunsetGentleZoom {
  from {
    transform: translate3d(0, var(--hero-parallax-y, 0), 0) scale(1.005);
  }
  to {
    transform: translate3d(0, var(--hero-parallax-y, 0), 0) scale(1.045);
  }
}

@keyframes belongUnderlineDraw {
  0% {
    opacity: 0;
    filter: blur(2px);
    transform: rotate(-1.5deg) scaleX(0);
  }
  72% {
    opacity: 1;
    filter: blur(0);
    transform: rotate(-1.5deg) scaleX(1.035);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: rotate(-1.5deg) scaleX(1);
  }
}

@keyframes belongUnderlineInk {
  0%,
  100% {
    opacity: 0.92;
    filter: saturate(1);
  }
  50% {
    opacity: 1;
    filter: saturate(1.18) drop-shadow(0 0 3px rgba(244, 123, 32, 0.2));
  }
}

@keyframes playPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.38), 0 12px 36px rgba(0, 0, 0, 0.25);
  }
  70% {
    box-shadow: 0 0 0 18px rgba(255, 255, 255, 0), 0 12px 36px rgba(0, 0, 0, 0.25);
  }
}

@keyframes imageDrift {
  from {
    transform: scale(1.015) translate3d(-0.5%, -0.35%, 0);
  }
  to {
    transform: scale(1.065) translate3d(0.65%, 0.5%, 0);
  }
}

@keyframes imageFloatA {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(0);
  }
  50% {
    transform: translate3d(0, -11px, 0) rotate(0.7deg);
  }
}

@keyframes imageFloatB {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(0);
  }
  50% {
    transform: translate3d(8px, 8px, 0) rotate(-0.8deg);
  }
}

@keyframes floatingAction {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-7px);
  }
}

@keyframes actionRing {
  0% {
    opacity: 0.55;
    transform: scale(0.82);
  }
  75%,
  100% {
    opacity: 0;
    transform: scale(1.35);
  }
}

/* Homepage fidelity pass for the final Figma frame. */
body[data-page="home"] {
  --page-pad: clamp(1.25rem, 3.2vw, 2.9rem);
  --content: 1340px;
}

body[data-page="home"] .home-hero {
  min-height: max(650px, 100svh);
}

body[data-page="home"] .home-hero .hero-content {
  padding-top: 92px;
}

body[data-page="home"] #journeys {
  padding-top: clamp(2.75rem, 4.3vw, 4rem);
  padding-bottom: clamp(4.25rem, 6vw, 5.5rem);
}

body[data-page="home"] #journeys .section-heading {
  margin-bottom: 1.8rem;
}

body[data-page="home"] #journeys .section-heading h2 {
  margin-bottom: 0;
  font-size: clamp(2rem, 2.7vw, 2.55rem);
}

body[data-page="home"] .section-heading--center h2 {
  font-size: clamp(2.25rem, 3.25vw, 3rem);
}

body[data-page="home"] .section-heading--center > p:last-child {
  max-width: 760px;
}

body[data-page="home"] .assurance-strip {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

body[data-page="home"] .assurance-strip i {
  width: 52px;
  flex: 0 0 52px;
  font-size: 2.45rem;
  text-align: center;
}

body[data-page="home"] .assurance-strip b {
  font-size: 0.9rem;
}

body[data-page="home"] .assurance-strip small {
  font-size: 0.72rem;
}

body[data-page="home"] .section--dark .section-heading {
  margin-bottom: 2.4rem;
}

body[data-page="home"] .section--dark .section-heading h2 {
  font-size: clamp(2.1rem, 2.7vw, 2.5rem);
}

body[data-page="home"] .experience-card:first-child > img {
  object-position: center 62%;
}

body[data-page="home"] .experience-card > img.experience-card__image--group {
  object-position: 50% 44%;
}

body[data-page="home"] .experience-card > img.experience-card__image--wedding {
  object-position: 50% 48%;
}

body[data-page="home"] .experience-card > img.experience-card__image--event {
  object-position: 58% 50%;
}

body[data-page="home"] .memories {
  padding-top: clamp(4.75rem, 7vw, 6.5rem);
}

body[data-page="home"] .memories .section-heading {
  margin-bottom: 3rem;
}

body[data-page="home"] .insiders,
body[data-page="home"] .plan-cta {
  width: calc(100% - (var(--page-pad) * 2));
}

body[data-page="home"] .insiders {
  margin-top: clamp(4rem, 8vw, 8rem);
  margin-bottom: 0;
}

body[data-page="home"] .insiders-copy {
  position: relative;
  z-index: 1;
  padding: clamp(2.25rem, 3.5vw, 3rem);
}

body[data-page="home"] .insiders-copy::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: -15px;
  width: 25px;
  height: 100%;
  background: #fff;
  clip-path: polygon(
    25% 0,
    100% 0,
    62% 14%,
    86% 29%,
    48% 45%,
    78% 61%,
    42% 77%,
    70% 90%,
    25% 100%,
    0 100%,
    22% 89%,
    0 75%,
    24% 60%,
    0 44%,
    24% 28%,
    0 13%
  );
}

body[data-page="home"] .insiders-copy > .eyebrow {
  color: var(--orange-soft) !important;
  font-size: 0.88rem;
  letter-spacing: 0;
  text-transform: none;
}

body[data-page="home"] .insiders-copy h2 {
  font-size: clamp(2rem, 2.65vw, 2.35rem);
}

body[data-page="home"] .insiders > img {
  min-height: 440px;
}

body[data-page="home"] .why-us {
  padding-top: clamp(4.75rem, 7vw, 6.5rem);
  padding-bottom: clamp(4.75rem, 7vw, 6.5rem);
}

body[data-page="home"] .testimonial {
  border-radius: 16px 16px 0 0;
}

body[data-page="home"] .testimonial-grid {
  max-width: 1120px;
  grid-template-columns: 1fr 1fr;
}

body[data-page="home"] .testimonial-image {
  width: 100%;
  max-width: 400px;
  margin-left: 0;
}

body[data-page="home"] blockquote footer {
  margin-top: 1.45rem;
  flex-direction: row;
  align-items: center;
  gap: 0.8rem;
}

body[data-page="home"] blockquote footer > img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

body[data-page="home"] blockquote footer > span {
  display: flex;
  flex-direction: column;
}

body[data-page="home"] blockquote footer small {
  color: var(--muted);
  font-size: 0.7rem;
}

body[data-page="home"] .trust {
  min-height: 500px;
}

body[data-page="home"] .site-footer {
  padding-top: clamp(1rem, 2.5vw, 2rem);
  background: var(--navy);
}

body[data-page="home"] .newsletter {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  border-radius: 16px 16px 0 0;
  background: #3b3d49;
}

body[data-page="home"] .newsletter h2 {
  font-size: clamp(2rem, 3vw, 2.7rem);
}

body[data-page="home"] .footer-grid {
  padding-top: 1.65rem;
  background: #3b3d49;
}

.floating-actions {
  transition:
    opacity 260ms ease,
    transform 260ms ease,
    visibility 260ms ease;
}

body.footer-visible .floating-actions {
  visibility: hidden;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
}

body.navigation-open .floating-actions {
  visibility: hidden;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
}

@media (max-width: 820px), (hover: none), (pointer: coarse) {
  [data-motion] {
    --reveal-x: 0px !important;
    --reveal-y: 42px !important;
    filter: none;
  }

  [data-motion].is-visible {
    --reveal-y: 0px !important;
  }

  .motion-enabled .motion-hero-item {
    filter: none;
  }

  .site-header.is-scrolled {
    top: 0;
    height: 78px;
  }

  .motion-cursor-glow,
  .motion-cursor-dot {
    display: none;
  }

  .home-hero,
  .subhero {
    animation: none;
  }

  .journey-hero-content,
  .journey-hero-media > img,
  .journey-media-primary img {
    translate: none;
    transform: none;
  }

  .memory-mosaic img,
  .membership-collage img {
    animation-duration: 14s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion-cursor-glow,
  .motion-cursor-dot {
    display: none !important;
  }

  .motion-enabled .motion-hero-item,
  .motion-enabled body.motion-ready .motion-hero-item,
  .motion-word,
  .motion-ready .motion-word,
  .motion-ready .journey-hero h1 .motion-word,
  [data-motion],
  [data-motion].is-visible {
    opacity: 1 !important;
    filter: none !important;
    clip-path: none !important;
    transform: none !important;
    translate: none !important;
  }

  .motion-ready .journey-hero h1 .motion-word,
  .motion-ready .journey-hero h1 em::after {
    animation: none !important;
  }

  .journey-hero h1 em::after {
    opacity: 1 !important;
    transform: rotate(-2deg) !important;
  }

  .site-header.is-scrolled {
    animation: none;
  }

  .hero-slide.is-active img {
    animation: none !important;
    transform: translate3d(0, 0, 0) scale(1.04);
  }

  .hero-autoplay-toggle {
    display: none;
  }

  .hero-content h1 em::after {
    opacity: 1;
    filter: none;
    transform: rotate(0.35deg) scaleX(1);
    animation: none;
  }
}

@media (max-width: 820px) {
  body[data-page="home"] {
    --page-pad: clamp(1.1rem, 5vw, 2rem);
  }

  body[data-page="home"] .home-hero .hero-content {
    padding-top: 128px;
  }

  body[data-page="home"] .assurance-strip {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  body[data-page="home"] .insiders,
  body[data-page="home"] .plan-cta {
    width: calc(100% - (var(--page-pad) * 2));
  }

  body[data-page="home"] .insiders-copy::after {
    display: none;
  }

  body[data-page="home"] .insiders > img {
    min-height: 0;
    aspect-ratio: 4 / 3;
    object-position: center;
  }

  body[data-page="home"] .testimonial-grid {
    grid-template-columns: 1fr;
  }

  body[data-page="home"] .testimonial-image {
    max-width: 440px;
    margin-inline: auto;
  }

  body[data-page="home"] .site-footer {
    padding-top: 0.5rem;
  }

  .newsletter,
  body[data-page="home"] .newsletter {
    padding: 0.9rem 1rem;
  }

  .newsletter h2,
  body[data-page="home"] .newsletter h2 {
    margin-bottom: 0.25rem;
    font-size: clamp(1.7rem, 8vw, 2rem);
  }

  .newsletter p {
    max-width: 34rem;
    margin: 0.25rem auto 0.55rem;
    font-size: 0.76rem;
    line-height: 1.4;
  }

  .newsletter form {
    max-width: 480px;
    margin-top: 0.6rem;
  }

  .newsletter input,
  .newsletter .button {
    min-height: 44px;
  }

  .footer-grid {
    gap: 0.75rem 0.55rem;
    padding: 0.85rem 1rem 1rem;
  }

  .footer-grid > .footer-brand-column {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 0.75rem;
    align-items: center;
    min-height: 82px;
    padding-bottom: 0.7rem;
  }

  .footer-brand-column .brand {
    width: 96px;
    height: 64px;
    grid-row: 1 / 3;
  }

  .footer-grid > div:first-child p {
    max-width: none;
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.35;
  }

  .footer-socials {
    gap: 0.35rem;
    align-self: end;
  }

  .footer-socials a {
    width: 25px;
    height: 25px;
  }

  .footer-grid h3 {
    margin-bottom: 0.4rem;
    font-size: 0.64rem;
  }

  .footer-grid > div:not(:first-child) a {
    margin-bottom: 0.25rem;
    font-size: 0.64rem;
    line-height: 1.28;
  }

  .footer-bottom {
    padding: 0.6rem 1rem;
    gap: 0.3rem;
    font-size: 0.62rem;
    line-height: 1.35;
  }

  .floating-actions {
    right: 0.65rem;
    bottom: max(0.65rem, env(safe-area-inset-bottom));
    flex-direction: row;
    gap: 0.4rem;
  }

  .floating-actions a {
    width: 46px;
    height: 46px;
    border-width: 3px;
  }

  .floating-actions a::after {
    width: 20px;
    height: 20px;
  }

  .floating-actions a:last-child::after {
    width: 24px;
    height: 24px;
  }

  .floating-actions a::before {
    inset: -4px;
  }
}

@media (max-width: 560px) {
  body[data-page="home"] #journeys {
    padding-top: 3.75rem;
    padding-bottom: 4rem;
  }

  body[data-page="home"] #journeys .section-heading h2,
  body[data-page="home"] .section-heading--center h2 {
    font-size: clamp(2rem, 10vw, 2.75rem);
  }

  body[data-page="home"] .newsletter h2 {
    font-size: clamp(1.7rem, 8vw, 2rem);
  }

  body[data-page="home"] .assurance-strip i {
    width: 42px;
    flex-basis: 42px;
    font-size: 2rem;
  }
}

@media (max-width: 440px) {
  .newsletter {
    padding-inline: 1.25rem;
  }

  body[data-page="home"] .hero-content h1 {
    max-width: 340px;
    font-size: clamp(2rem, 9.5vw, 2.35rem);
    line-height: 1.02;
  }

  body[data-page="home"] .hero-content h1 em {
    width: max-content;
    margin: 0.12em auto 0;
    display: block;
  }

  body[data-page="home"] .hero-content p {
    max-width: 340px;
    padding-inline: 0.35rem;
  }
}

/*
 * Ultra-wide / zoomed-out screens
 *
 * At browser zoom levels below 100%, a large display exposes a much wider CSS
 * viewport. The former fixed desktop caps made the complete header and page
 * composition look miniature. These fluid limits preserve the intended visual
 * weight without changing laptop, tablet, or mobile layouts.
 */
@media (min-width: 2200px) {
  html {
    font-size: clamp(16px, 0.685vw, 28px);
  }

  :root {
    --page-pad: clamp(5rem, 6vw, 15rem);
    --content: min(64vw, 2620px);
  }

  .announcement {
    height: clamp(36px, 1.55vw, 64px);
  }

  .site-header {
    top: clamp(36px, 1.55vw, 64px);
    height: clamp(120px, 5.25vw, 215px);
    grid-template-columns: clamp(190px, 8vw, 330px) minmax(0, 1fr) auto;
  }

  .site-header--solid {
    top: clamp(36px, 1.55vw, 64px);
  }

  .brand {
    width: clamp(142.4px, 6.25vw, 256px);
    height: clamp(94.4px, 4.15vw, 170px);
  }

  .main-nav {
    gap: clamp(1.1rem, 1.45vw, 2.7rem);
  }

  .header-actions {
    gap: clamp(0.55rem, 0.75vw, 1.3rem);
  }
}

@media (max-width: 720px) {
  body[data-page="home"] .experience-card > img.experience-card__image--group {
    object-position: 50% 40%;
  }

  body[data-page="home"] .experience-card > img.experience-card__image--wedding {
    object-position: 50% 46%;
  }

  body[data-page="home"] .experience-card > img.experience-card__image--event {
    object-position: 60% 50%;
  }
}

/* Minimum accessible pointer targets for tablet and mobile controls. */
@media (max-width: 1050px) {
  .button,
  .hero-autoplay-toggle,
  body[data-page="blog"] .blog-category-list button {
    min-height: 44px;
  }
}
