﻿/* ============================================================
   Bhubaneswar Travel Mart — Ultra-Premium Light Theme
   Dual Gradient: Royal Blue — Luxe Pink
   ============================================================ */

:root {
  /* Surfaces */
  --bg: #FBFBFF;
  --bg-soft: #FFF2F7;
  --bg-cool: #EEF3FF;
  --surface: #FFFFFF;
  --glass: rgba(255, 255, 255, 0.72);
  --glass-strong: rgba(255, 255, 255, 0.88);

  /* Ink */
  --ink: #0F1941;
  --ink-dim: #475473;
  --ink-soft: #7A86A6;
  --line: rgba(15, 25, 65, 0.08);
  --line-strong: rgba(15, 25, 65, 0.14);

  /* Brand colours — Blue + Pink luxury palette */
  --coral-1: #EC4899;    /* legacy token → luxe pink primary */
  --coral-2: #F472B6;    /* legacy token → soft pink */
  --indigo-1: #2563EB;   /* legacy token → royal blue primary */
  --violet-2: #60A5FA;   /* legacy token → sky blue */
  --rose: #EC4899;       /* legacy token → same luxe pink */
  --pink-1: #EC4899;
  --pink-2: #F472B6;
  --pink-3: #FBCFE8;
  --blue-1: #2563EB;
  --blue-2: #60A5FA;
  --blue-3: #BFDBFE;
  /* Logo signature cyan (globe + wordmark right edge) */
  --cyan-1: #06B6D4;
  --cyan-2: #22D3EE;
  --cyan-3: #A5F3FC;
  --violet-1: #6D28D9;
  --gold: #F4B740;
  --mint: #2DD4BF;
  --success: #22C55E;

  /* Gradients — tuned to the logo: violet → blue → cyan, magenta accent */
  --grad-warm: linear-gradient(135deg, #F472B6 0%, #E0218A 100%);
  --grad-cool: linear-gradient(135deg, #2563EB 0%, #06B6D4 100%);
  --grad-brand: linear-gradient(120deg, #6D28D9 0%, #2563EB 48%, #06B6D4 100%);
  --grad-sunrise: linear-gradient(135deg, #22B8E0 0%, #7C3AED 52%, #EC4899 100%);
  --grad-soft: linear-gradient(135deg, #E0ECFF 0%, #E8FBFF 55%, #FCE7F3 100%);

  /* Effects */
  --shadow-sm: 0 6px 16px -8px rgba(37, 99, 235, 0.14);
  --shadow-md: 0 14px 36px -16px rgba(37, 99, 235, 0.22);
  --shadow-lg: 0 30px 70px -28px rgba(37, 99, 235, 0.28);
  --shadow-coral: 0 18px 40px -14px rgba(236, 72, 153, 0.45);
  --shadow-indigo: 0 18px 40px -14px rgba(37, 99, 235, 0.45);
  --shadow-pink: 0 18px 40px -14px rgba(236, 72, 153, 0.45);
  --shadow-blue: 0 18px 40px -14px rgba(37, 99, 235, 0.45);
  --radius-sm: 12px;
  --radius: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Typography — simple, classy & professional: warm serif headings + clean sans */
  --serif: 'Lora', 'Georgia', serif;
  --sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* Refined, professional heading weights — a touch bolder for presence */
.section-title,
.page-hero-title,
h1, h2, h3 {
  font-weight: 700;
  letter-spacing: -0.015em;
}
.hero-title { font-weight: 600 !important; }

* { box-sizing: border-box; }
html, body, #root { min-height: 100%; height: auto; }
html {
  overflow-x: clip;
  scroll-behavior: auto;
  overscroll-behavior-y: contain;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto !important; }
html.has-lenis { scroll-behavior: auto !important; }
html.lenis.lenis-smooth iframe { pointer-events: none; }
html.lenis.lenis-scrolling iframe { pointer-events: none; }
.svg-plane {
  display: block;
  width: 1.15em;
  height: auto;
  overflow: visible;
  color: inherit;
  filter: drop-shadow(0 4px 8px rgba(8, 12, 26, 0.35));
}
.tourlux-desk,
.mobile-drawer,
.lightbox,
.mega { overscroll-behavior: contain; }
body {
  margin: 0;
  font-family: var(--sans);
  font-weight: 400;
  color: var(--ink);
  background:
    radial-gradient(1100px 700px at 88% -5%, rgba(236, 72, 153, 0.18), transparent 60%),
    radial-gradient(900px 700px at -10% 30%, rgba(37, 99, 235, 0.18), transparent 60%),
    radial-gradient(820px 560px at 50% 120%, rgba(6, 182, 212, 0.16), transparent 60%),
    radial-gradient(640px 520px at 20% 95%, rgba(109, 40, 217, 0.12), transparent 60%),
    linear-gradient(180deg, #FBFBFF 0%, #FFFFFF 100%);
  background-attachment: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: auto;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; letter-spacing: -0.022em; margin: 0; color: var(--ink); }
p { margin: 0; color: var(--ink-dim); line-height: 1.75; }

::selection { background: var(--coral-1); color: #fff; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-soft); }
::-webkit-scrollbar-thumb {
  background: var(--grad-brand);
  border-radius: var(--radius-pill);
  border: 2px solid var(--bg-soft);
}

/* =============== LAYOUT =============== */
.container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 28px; }

.section { padding: 60px 0; position: relative; }
.section-sm { padding: 40px 0; }

/* ===== Eyebrow — now a readable glass pill on any background ===== */
.eyebrow {
  font-family: var(--sans);
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8A3A56;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px 8px 14px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(226, 218, 208, 0.9);
  border-radius: 100px;
  box-shadow: 0 6px 18px -10px rgba(24, 16, 50, 0.22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.eyebrow::before {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--grad-brand);
  box-shadow: 0 0 0 3px rgba(255, 122, 158, 0.18);
}
.eyebrow.center { justify-content: center; }
.eyebrow.center::after {
  content: '';
  display: inline-block;
  width: 22px;
  height: 2px;
  background: linear-gradient(90deg, #EC4899, transparent);
  border-radius: 2px;
}

/* ===== Section Title ===== */
.section-title {
  font-family: var(--serif);
  font-size: clamp(28px, 4.1vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 400;
  color: var(--ink);
  margin-top: 16px;
}
.section-title .italic,
.section-title em {
  font-style: italic;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 400;
  filter: drop-shadow(0 2px 12px rgba(255, 122, 158, 0.2));
}

/* ===== Section head: title + tagline/CTA ===== */
.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 42px;
  flex-wrap: wrap;
}
.section-head > div { min-width: 0; flex: 1 1 460px; }
.section-head p,
.section-head > p {
  max-width: 520px;
  margin: 0;
  padding: 6px 0 6px 18px;
  border-left: 2px solid rgba(255, 138, 160, 0.55);
  color: #2B2440;
  font-size: 16px;
  line-height: 1.7;
  font-weight: 500;
  letter-spacing: -0.005em;
  flex: 1 1 360px;
}
.section-head p strong { color: var(--ink); }
@media (max-width: 900px) {
  .section-head {
    gap: 22px;
    margin-bottom: 44px;
    align-items: flex-start;
  }
  .section-head p { max-width: none; }
}

/* ===== Prominent centered taglines ===== */
.discover-head p,
.center-tag {
  font-size: 16.5px;
  line-height: 1.75;
  font-weight: 500;
}

/* =============== BUTTONS =============== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 28px;
  border-radius: var(--radius-pill);
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.45s var(--ease), background 0.4s var(--ease), color 0.3s var(--ease),
              box-shadow 0.4s var(--ease), border-color 0.3s var(--ease), filter 0.4s var(--ease);
  border: 1.5px solid transparent;
  will-change: transform;
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}
.btn svg { transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); }
.btn:hover svg { transform: translate(3px, -3px); }
.btn:active { transform: translateY(0) scale(0.98); }

.btn-primary {
  background: var(--grad-brand);
  background-size: 220% 220%;
  color: #fff;
  box-shadow: var(--shadow-coral);
  animation: gradient-shift 6s ease-in-out infinite;
}
.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px -14px rgba(255, 107, 157, 0.55);
  filter: saturate(1.12);
  background-position: 100% 50%;
}

@keyframes gradient-shift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.btn-secondary {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--line-strong);
  box-shadow: var(--shadow-sm);
}
.btn-secondary:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: var(--coral-1);
  color: var(--coral-1);
}

.btn-ghost {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(14px);
  color: var(--ink);
  border-color: var(--line-strong);
}
.btn-ghost:hover {
  background: var(--surface);
  border-color: var(--indigo-1);
  color: var(--indigo-1);
}

.btn-outline {
  background: transparent;
  color: var(--ink);
  border-color: var(--line-strong);
  position: relative;
  z-index: 1;
}
.btn-outline::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--grad-brand);
  opacity: 0;
  transition: opacity 0.45s var(--ease);
  z-index: -1;
  border-radius: inherit;
}
.btn-outline:hover {
  color: #FAFBFF;
  border-color: transparent;
  transform: translateY(-3px);
  box-shadow: 0 18px 36px -14px rgba(255, 122, 158, 0.5);
}
.btn-outline:hover::before { opacity: 1; }

.btn-sm { padding: 11px 20px; font-size: 12px; }
.btn-lg { padding: 18px 36px; font-size: 14px; letter-spacing: 0.05em; }

/* =============== TOP BAR =============== */
.topbar {
  background: linear-gradient(90deg, #1A1D2E 0%, #2D1E4A 100%);
  color: rgba(255, 255, 255, 0.85);
  font-size: 12.5px;
  padding: 8px 0;
  position: relative;
  z-index: 101;
  overflow: hidden;
}
.topbar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(400px 80px at 50% 50%, rgba(255, 122, 122, 0.22), transparent 70%);
  animation: topbar-glow 6s ease-in-out infinite;
}
@keyframes topbar-glow {
  0%, 100% { transform: translateX(-30%); }
  50% { transform: translateX(30%); }
}
.topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  position: relative;
}
.topbar-left, .topbar-right {
  display: flex;
  align-items: center;
  gap: 22px;
}
.topbar a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.85);
  transition: color 0.3s var(--ease);
}
.topbar a:hover { color: var(--coral-2); }
.topbar .divider { width: 1px; height: 14px; background: rgba(255, 255, 255, 0.15); }
.topbar-socials { display: flex; gap: 10px; }
.topbar-socials a {
  width: 26px; height: 26px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.08);
  align-items: center; justify-content: center;
  font-size: 11px;
}
.topbar-socials a:hover { background: var(--grad-brand); border-color: transparent; color: #fff; }

/* =============== NAVBAR (ULTRA-PREMIUM) =============== */
.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 6px 0;
  background: rgba(255, 252, 247, 0.78);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border-bottom: 1px solid transparent;
  transition: all 0.45s var(--ease);
}
.nav.scrolled {
  background: rgba(255, 255, 255, 0.94);
  border-bottom-color: rgba(226, 220, 210, 0.8);
  padding: 8px 0;
  box-shadow: 0 20px 50px -30px rgba(28, 38, 90, 0.18);
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: nowrap;
}
.nav-cta { flex-shrink: 0; flex-wrap: nowrap; }
.nav-links { flex-wrap: nowrap; }
.nav-link { white-space: nowrap; }
.logo-wrap {
  display: inline-flex;
  align-items: center;
  padding: 4px 0;
  border-radius: 18px;
  transition: transform 0.5s var(--ease-spring);
  cursor: pointer;
  position: relative;
}

.logo-img {
  height: 60px;
  width: auto;
  filter: url(#remove-black-bg);
  transition: filter 0.5s var(--ease), transform 0.8s var(--ease-spring);
}
.nav.scrolled .logo-img { height: 50px; }

.nav-links {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(228, 220, 210, 0.6);
  backdrop-filter: blur(10px);
  box-shadow: 0 6px 20px -12px rgba(40, 30, 80, 0.12);
}
.nav.scrolled .nav-links {
  background: rgba(248, 244, 238, 0.85);
  border-color: rgba(220, 212, 200, 0.8);
}
.nav-link {
  position: relative;
  padding: 9px 13px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #4C4A58;
  border-radius: var(--radius-pill);
  transition: color 0.3s var(--ease), background 0.35s var(--ease);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.nav-link:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.8);
}
.nav-link.active {
  color: #fff;
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 50%, #EC4899 100%);
  box-shadow: 0 8px 20px -8px rgba(255, 122, 158, 0.5);
}

.has-menu { position: relative; }
.dropdown {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 280px;
  padding: 12px;
  background: rgba(255, 252, 247, 0.98);
  backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid rgba(228, 220, 210, 0.9);
  border-radius: 18px;
  box-shadow: 0 40px 80px -30px rgba(40, 30, 80, 0.22);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s var(--ease), transform 0.4s var(--ease);
}
.has-menu:hover .dropdown,
.has-menu:focus-within .dropdown {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
.dropdown::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 14px;
  height: 14px;
  background: rgba(255, 252, 247, 0.98);
  border-top: 1px solid rgba(228, 220, 210, 0.9);
  border-left: 1px solid rgba(228, 220, 210, 0.9);
}
.dropdown a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 500;
  color: #5C5A68;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), transform 0.3s var(--ease);
}
.dropdown a:hover {
  background: linear-gradient(135deg, rgba(255, 186, 170, 0.18), rgba(195, 155, 255, 0.18));
  color: var(--coral-1);
  transform: translateX(4px);
}
.dropdown a span.arrow { opacity: 0; transition: opacity 0.3s var(--ease); color: var(--coral-1); }
.dropdown a:hover span.arrow { opacity: 1; }

/* ============================================================
   MEGA MENU
   ============================================================ */
.has-mega { position: static; }
.mega {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  width: min(900px, calc(100vw - 48px));
  display: grid;
  grid-template-columns: 0.82fr 1.5fr;
  gap: 0;
  background: rgba(255, 253, 250, 0.99);
  backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid rgba(228, 220, 210, 0.9);
  border-radius: 22px;
  box-shadow: 0 50px 100px -34px rgba(40, 30, 80, 0.32);
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s var(--ease), transform 0.4s var(--ease);
  z-index: 60;
}
.has-mega:hover .mega,
.has-mega:focus-within .mega {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

/* intro / featured panel */
.mega-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
  padding: 26px 24px;
  min-height: 260px;
  background-size: cover;
  background-position: center;
  color: #fff;
  isolation: isolate;
}
.mega-intro-veil {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(160deg, rgba(12, 16, 38, 0.42) 0%, rgba(12, 16, 38, 0.82) 100%);
}
.mega-eyebrow {
  font-size: 11px; font-weight: 700; letter-spacing: 0.18em;
  text-transform: uppercase; color: rgba(255, 255, 255, 0.82);
}
.mega-intro h4 {
  color: #fff;
  font-size: 1.7rem;
  line-height: 1.05;
  margin: 2px 0 12px;
}
.mega-cta {
  display: inline-flex; align-items: center; gap: 7px;
  align-self: flex-start;
  padding: 9px 16px;
  font-family: var(--sans);
  font-weight: 700; font-size: 12.5px;
  color: #fff;
  border-radius: var(--radius-pill);
  background: var(--grad-brand);
  box-shadow: 0 12px 26px -12px rgba(109, 40, 217, 0.7);
  transition: transform 0.3s var(--ease);
}
.mega-intro:hover .mega-cta { transform: translateY(-2px); }

.mega-intro-desc { font-size: 12.5px; color: rgba(255,255,255,0.88); margin-bottom: 12px; }

/* right column wrapper: featured picks + full list */
.mega-main { padding: 22px 24px; display: flex; flex-direction: column; gap: 20px; }
.mega-section-label {
  display: block;
  font-size: 11px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-soft);
  margin-bottom: 12px;
}

/* featured picks row with thumbnails */
.mega-featured-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.mega-feat {
  display: flex; flex-direction: column; gap: 4px;
  border-radius: 14px; overflow: hidden;
  background: var(--bg-cool);
  border: 1px solid var(--line);
  transition: transform 0.3s var(--ease-spring), box-shadow 0.3s var(--ease);
}
.mega-feat:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -20px rgba(28,38,90,0.4); }
.mega-feat-media { display: block; aspect-ratio: 16/10; overflow: hidden; }
.mega-feat-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.mega-feat:hover .mega-feat-media img { transform: scale(1.08); }
.mega-feat-title { font-size: 12.5px; font-weight: 700; color: var(--ink); padding: 6px 10px 0; line-height: 1.25; }
.mega-feat-price { font-size: 11.5px; font-weight: 700; color: var(--blue-1); padding: 0 10px 9px; }

/* link lists */
.mega-lists { padding: 0; }
.mega-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px 10px;
  max-height: 230px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.mega-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 9px 11px;
  border-radius: 11px;
  transition: background 0.22s var(--ease), transform 0.28s var(--ease);
}
.mega-link:hover {
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.12), rgba(236, 72, 153, 0.12));
  transform: translateX(3px);
}
.mega-link .ml-title {
  font-size: 13.5px; font-weight: 700; color: var(--ink);
}
.mega-link:hover .ml-title { color: var(--blue-1); }
.mega-link .ml-meta {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 600; color: var(--ink-soft);
}
.mega-link .ml-meta svg { font-size: 11px; opacity: 0.75; }
.mega-link .ml-dot {
  width: 3px; height: 3px; border-radius: 50%;
  background: var(--ink-soft); margin: 0 3px; opacity: 0.6;
}

@media (max-width: 1180px) {
  .mega { grid-template-columns: 1fr; width: min(620px, calc(100vw - 40px)); }
  .mega-intro { min-height: 150px; }
  .mega-links { grid-template-columns: repeat(2, 1fr); }
}

.nav-cta { display: flex; align-items: center; gap: 12px; }
.nav-book {
  position: relative;
  padding: 11px 22px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 50%, #EC4899 100%);
  background-size: 200% 200%;
  border: none;
  border-radius: var(--radius-pill);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow:
    0 10px 24px -8px rgba(255, 122, 158, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transition: transform 0.35s var(--ease-spring), box-shadow 0.35s var(--ease), background-position 0.6s var(--ease);
  text-decoration: none;
}
.nav-book:hover {
  transform: translateY(-2px);
  box-shadow:
    0 16px 30px -8px rgba(255, 122, 158, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.45);
  background-position: 100% 0;
}
.nav-book svg { font-size: 15px; transition: transform 0.35s var(--ease); }
.nav-book:hover svg { transform: rotate(-45deg); }

.mobile-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--bg-soft);
  border: 1px solid var(--line-strong);
  color: var(--ink);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.mobile-drawer {
  position: fixed;
  inset: 0;
  background: rgba(255, 252, 247, 0.98);
  backdrop-filter: blur(30px);
  z-index: 99;
  display: flex;
  flex-direction: column;
  padding: 120px 28px 40px;
  overflow-y: auto;
}
.mobile-drawer a {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  font-size: 20px;
  font-family: var(--serif);
  color: var(--ink);
}
.mobile-drawer a.sub { padding-left: 16px; font-size: 15px; color: var(--ink-dim); font-family: var(--sans); }

/* =============== HERO (CINEMATIC SLIDER) =============== */
.hero {
  position: relative;
  height: 86vh;
  min-height: 680px;
  max-height: 920px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.hero-stage { position: absolute; inset: 0; z-index: 0; background: #0a0c14; }
/* One stacked layer per slide: full-bleed video (or image fallback) */
.hero-bg-layer {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.1s var(--ease);
  pointer-events: none;
  z-index: 0;
}
.hero-bg-layer.is-active {
  opacity: 1;
  z-index: 1;
}
.hero-bg-layer .hero-video,
.hero-bg-layer .hero-fallback-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
}
.hero-bg-layer.is-active .hero-video,
.hero-bg-layer.is-active .hero-fallback-img {
  animation: hero-kenburns 6s var(--ease) infinite alternate;
}
@keyframes hero-kenburns {
  from { transform: scale(1.035); }
  to { transform: scale(1.01); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-bg-layer.is-active .hero-video,
  .hero-bg-layer.is-active .hero-fallback-img {
    animation: none;
    transform: scale(1.02);
  }
}
.hero-bg-layer .hero-video {
  filter: saturate(1.08) contrast(1.04);
}
/* Readability scrim: stronger on the copy side; keeps video cinematic */
.hero-stage::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(100deg, rgba(12, 14, 28, 0.78) 0%, rgba(18, 20, 38, 0.28) 42%, rgba(18, 20, 38, 0) 76%),
    linear-gradient(180deg, rgba(12, 14, 28, 0.12) 0%, rgba(18, 20, 38, 0.08) 55%, rgba(10, 10, 22, 0.62) 100%);
  z-index: 1;
}
/* subtle corner vignette for premium feel */
.hero-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(130% 90% at 50% 50%, transparent 55%, rgba(0, 0, 0, 0.35) 100%);
  z-index: 1;
  pointer-events: none;
}

.hero-floats {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-float-word {
  position: absolute;
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  color: rgba(255, 255, 255, 0.06);
  letter-spacing: -0.06em;
  font-size: clamp(120px, 22vw, 380px);
  line-height: 0.9;
  user-select: none;
  white-space: nowrap;
  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-shadow: 0 4px 60px rgba(0, 0, 0, 0.35);
}
.hero-float-word.vivid {
  color: transparent;
  background: linear-gradient(135deg, rgba(255, 230, 200, 0.14) 0%, rgba(255, 200, 220, 0.18) 50%, rgba(210, 190, 255, 0.14) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* Destination name — must read instantly over any footage */
.hero-float-word.hero-place-name {
  font-weight: 500;
  -webkit-text-stroke: 1.1px rgba(6, 8, 20, 0.5);
  paint-order: stroke fill;
  filter:
    drop-shadow(0 4px 3px rgba(0, 0, 0, 0.95))
    drop-shadow(0 14px 40px rgba(0, 0, 0, 0.75))
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.9));
}

/* ----- Hero: per-destination text contrast (synced to video mood) ----- */
.hero[data-hero-tone="snow"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(220, 240, 255, 0.32) 0%, rgba(200, 230, 255, 0.24) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="snow"] .hero-kicker { color: #E8F4FF; }
.hero[data-hero-tone="snow"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #B8D4FF, #E8F0FF);
}
.hero[data-hero-tone="snow"] .hero-title .line:not(.italic) {
  color: #FAFDFF;
  text-shadow: 0 2px 3px rgba(0, 20, 40, 0.5), 0 12px 40px rgba(0, 30, 60, 0.55);
}
.hero[data-hero-tone="snow"] .hero-title .italic {
  background: linear-gradient(135deg, #C5E8FF 0%, #E8F6FF 45%, #D4F0FF 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 28px rgba(100, 180, 255, 0.45));
  animation: gradient-shift 6s ease-in-out infinite;
}

.hero[data-hero-tone="dawn"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(255, 220, 180, 0.34) 0%, rgba(255, 200, 160, 0.26) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="dawn"] .hero-kicker { color: #E0EBFF; }
.hero[data-hero-tone="dawn"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #F9A8D4, #DBE8FF);
}
.hero[data-hero-tone="dawn"] .hero-title .line:not(.italic) {
  color: #F5F9FF;
  text-shadow: 0 2px 4px rgba(60, 30, 0, 0.45), 0 14px 42px rgba(40, 20, 0, 0.5);
}
.hero[data-hero-tone="dawn"] .hero-title .italic {
  background: linear-gradient(135deg, #DBE8FF 0%, #F9A8D4 40%, #F9A8D4 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 6px 26px rgba(255, 160, 100, 0.5));
  animation: gradient-shift 6s ease-in-out infinite;
}

.hero[data-hero-tone="lagoon"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(160, 240, 230, 0.34) 0%, rgba(120, 200, 255, 0.26) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="lagoon"] .hero-kicker { color: #D4FFF8; }
.hero[data-hero-tone="lagoon"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #5EEAD4, #7DD3FC);
}
.hero[data-hero-tone="lagoon"] .hero-title .line:not(.italic) {
  color: #F0FFFE;
  text-shadow: 0 2px 4px rgba(0, 40, 50, 0.55), 0 14px 44px rgba(0, 50, 70, 0.5);
}
.hero[data-hero-tone="lagoon"] .hero-title .italic {
  background: linear-gradient(135deg, #7FFFD4 0%, #A5F3FC 45%, #7DD3FC 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 28px rgba(50, 200, 220, 0.45));
  animation: gradient-shift 6s ease-in-out infinite;
}

.hero[data-hero-tone="gold"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(255, 220, 140, 0.36) 0%, rgba(255, 200, 100, 0.28) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="gold"] .hero-kicker { color: #DBE8FF; }
.hero[data-hero-tone="gold"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #FBBF24, #FDE68A);
}
.hero[data-hero-tone="gold"] .hero-title .line:not(.italic) {
  color: #FAFBFF;
  text-shadow: 0 2px 4px rgba(60, 40, 0, 0.55), 0 14px 44px rgba(40, 25, 0, 0.55);
}
.hero[data-hero-tone="gold"] .hero-title .italic {
  background: linear-gradient(135deg, #FDE68A 0%, #FBBF24 35%, #F59E0B 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 30px rgba(250, 200, 80, 0.55));
  animation: gradient-shift 6s ease-in-out infinite;
}

.hero[data-hero-tone="alp"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(230, 240, 255, 0.32) 0%, rgba(200, 220, 255, 0.24) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="alp"] .hero-kicker { color: #E8EEFF; }
.hero[data-hero-tone="alp"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #A5B4FC, #C7D2FE);
}
.hero[data-hero-tone="alp"] .hero-title .line:not(.italic) {
  color: #FBFCFF;
  text-shadow: 0 2px 4px rgba(15, 25, 50, 0.5), 0 14px 42px rgba(10, 20, 45, 0.55);
}
.hero[data-hero-tone="alp"] .hero-title .italic {
  background: linear-gradient(135deg, #E0E7FF 0%, #C7D2FE 40%, #A5B4FC 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 28px rgba(140, 160, 255, 0.45));
  animation: gradient-shift 6s ease-in-out infinite;
}

.hero[data-hero-tone="baroque"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(255, 230, 210, 0.32) 0%, rgba(240, 220, 255, 0.24) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="baroque"] .hero-kicker { color: #F5E6D8; }
.hero[data-hero-tone="baroque"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #D4A574, #E9D5FF);
}
.hero[data-hero-tone="baroque"] .hero-title .line:not(.italic) {
  color: #F5F9FF;
  text-shadow: 0 2px 4px rgba(40, 20, 30, 0.5), 0 14px 44px rgba(30, 15, 25, 0.55);
}
.hero[data-hero-tone="baroque"] .hero-title .italic {
  background: linear-gradient(135deg, #F5E6D8 0%, #E9C5A8 38%, #D4B4C8 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 28px rgba(220, 180, 160, 0.45));
  animation: gradient-shift 6s ease-in-out infinite;
}

.hero[data-hero-tone="jungle"] .hero-float-word.vivid {
  background: linear-gradient(135deg, rgba(200, 255, 210, 0.32) 0%, rgba(180, 240, 200, 0.24) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero[data-hero-tone="jungle"] .hero-kicker { color: #E8FCE8; }
.hero[data-hero-tone="jungle"] .hero-kicker .kicker-line {
  background: linear-gradient(90deg, #86EFAC, #6EE7B7);
}
.hero[data-hero-tone="jungle"] .hero-title .line:not(.italic) {
  color: #FAFFF8;
  text-shadow: 0 2px 4px rgba(0, 35, 25, 0.55), 0 14px 44px rgba(0, 40, 30, 0.5);
}
.hero[data-hero-tone="jungle"] .hero-title .italic {
  background: linear-gradient(135deg, #BBF7D0 0%, #86EFAC 40%, #6EE7B7 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 28px rgba(80, 220, 150, 0.45));
  animation: gradient-shift 6s ease-in-out infinite;
}

/* ----- Hero Title (second/italic line) — unified WHITE treatment ----- */
/* Overrides all per-tone brown/gold/tint gradients from above.
   Specificity matches `.hero[data-hero-tone=".."] .hero-title .italic` so it wins by order. */
.hero[data-hero-tone] .hero-title .italic,
.hero .hero-title .italic {
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  -webkit-text-fill-color: #FFFFFF;
  color: #FFFFFF;
  font-style: italic;
  font-weight: 500;
  animation: none;
  filter: none;
  text-shadow:
    0 1px 0 rgba(0, 0, 0, 0.35),
    0 4px 14px rgba(0, 0, 0, 0.55),
    0 16px 48px rgba(0, 0, 0, 0.55);
}

/* ----- Hero Place Name — black stroke + deep bee-yellow fill ----- */
/* Higher specificity than any `.hero[data-hero-tone="⬦"] .hero-float-word.vivid` rule. */
.hero[data-hero-tone] .hero-float-word.hero-place-name.vivid,
.hero .hero-float-word.hero-place-name {
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: #F5B700;
  -webkit-text-fill-color: #F5B700;
  -webkit-text-stroke: 3px #050505;
  paint-order: stroke fill;
  font-weight: 600;
  filter:
    drop-shadow(0 2px 0 rgba(0, 0, 0, 0.6))
    drop-shadow(0 10px 30px rgba(0, 0, 0, 0.6))
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.9));
}

.hero-inner {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 0 36px;
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-main {
  max-width: 880px;
  width: 100%;
  position: relative;
  text-align: center;
  margin: 0 auto;
}
/* Soft centered readability glow instead of a hard box */
.hero-main::before {
  content: '';
  position: absolute;
  inset: -50px -40px -30px -40px;
  background:
    radial-gradient(60% 70% at 50% 55%, rgba(8, 8, 22, 0.5) 0%, rgba(8, 8, 22, 0.22) 55%, transparent 82%);
  filter: blur(14px);
  z-index: -1;
  pointer-events: none;
}

.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--sans);
  font-size: 11.5px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-weight: 700;
  color: #E6EEFF;
  margin-bottom: 28px;
  padding: 8px 16px 8px 4px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0));
  border-radius: 100px;
  backdrop-filter: blur(6px);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
.hero-kicker .kicker-line {
  display: inline-block;
  width: 38px;
  height: 1.5px;
  background: linear-gradient(90deg, #DBE8FF, #C4B5FD);
}
.hero-kicker .kicker-dot { color: rgba(255, 255, 255, 0.4); }

.hero-title {
  font-family: var(--serif);
  font-size: clamp(38px, 5.6vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.03em;
  font-weight: 400;
  color: #FAFBFF;
  text-align: center;
  text-shadow:
    0 2px 2px rgba(0, 0, 0, 0.35),
    0 8px 30px rgba(0, 0, 0, 0.5),
    0 20px 60px rgba(0, 0, 0, 0.35);
}
.hero-title .line {
  display: block;
  overflow: hidden;
}
.hero-title .italic {
  font-style: italic;
  background: linear-gradient(135deg, #DBE8FF 0%, #FFC8A3 40%, #F9A8D4 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 400;
  animation: gradient-shift 6s ease-in-out infinite;
  filter: drop-shadow(0 6px 30px rgba(255, 180, 140, 0.5));
}

.hero-sub {
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
  max-width: 560px;
  color: rgba(255, 255, 255, 0.96);
  font-size: 15.5px;
  line-height: 1.65;
  font-weight: 400;
  text-align: center;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.5);
}

.hero-meta {
  margin: 22px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.95);
  font-weight: 500;
  padding: 11px 20px;
  background: rgba(20, 18, 40, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 100px;
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  width: fit-content;
  max-width: 100%;
  box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.5);
}
.hero-meta span { display: inline-flex; align-items: center; gap: 8px; }
.hero-meta .divider { width: 1px; height: 14px; background: rgba(255, 255, 255, 0.22); padding: 0; }
.hero-meta svg { color: #BFDBFE; font-size: 15px; }
.hero-meta .price strong {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  letter-spacing: -0.01em;
  margin: 0 4px;
  background: linear-gradient(135deg, #DBE8FF, #F9A8D4);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero-actions {
  margin-top: 28px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}
.hero-place-badge { justify-content: center; margin-left: auto; margin-right: auto; }

/* Hero control: slim progress line + counter */
.hero-control {
  position: absolute;
  left: 50%;
  bottom: 42px;
  transform: translateX(-50%);
  z-index: 4;
  width: min(92%, 1180px);
  display: flex;
  align-items: center;
  gap: 20px;
}
.hero-progress-line {
  flex: 1;
  height: 2px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 2px;
  overflow: hidden;
}
.hero-progress-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #DBE8FF, #F9A8D4, #C4B5FD);
  width: 0%;
  animation: hero-progress linear forwards;
  box-shadow: 0 0 16px rgba(255, 180, 140, 0.55);
}
@keyframes hero-progress { from { width: 0%; } to { width: 100%; } }
.hero-progress-meta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 11.5px;
  letter-spacing: 0.32em;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
.hero-progress-meta .hp-count { color: #DBE8FF; }
.hero-progress-meta .hp-sep {
  width: 12px; height: 1px;
  background: rgba(255, 255, 255, 0.4);
  display: inline-block;
}

/* Goto-fn removed — hero now uses pure autoplay with counter/progress only */

.hero .btn-primary-light {
  background: #fff;
  color: #1A1D2E;
  font-weight: 700;
  box-shadow: 0 18px 36px -10px rgba(0, 0, 0, 0.4);
}
.hero .btn-primary-light:hover {
  background: linear-gradient(135deg, #DBE8FF, #F9A8D4, #C4B5FD);
  color: #1A1D2E;
  transform: translateY(-3px);
  box-shadow: 0 20px 40px -10px rgba(255, 180, 200, 0.6);
}
.hero .btn-glass {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(18px);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.28);
}
.hero .btn-glass:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: #fff;
  transform: translateY(-3px);
}

/* =============== LOGO ALIVE =============== */
.logo-wrap {
  position: relative;
}
.logo-img {
  animation: logo-breathe 5s ease-in-out infinite;
  transform-origin: center;
}
@keyframes logo-breathe {
  0%, 100% {
    transform: scale(1) rotate(0deg);
    filter: url(#remove-black-bg) drop-shadow(0 2px 8px rgba(255, 107, 157, 0.08));
  }
  50% {
    transform: scale(1.04) rotate(-0.6deg);
    filter: url(#remove-black-bg) drop-shadow(0 8px 22px rgba(195, 155, 255, 0.28));
  }
}
.logo-wrap::before {
  content: '';
  position: absolute;
  inset: -8px -12px;
  border-radius: 20px;
  background: radial-gradient(60% 60% at 50% 50%, rgba(255, 122, 122, 0.18), transparent 70%);
  opacity: 0;
  transition: opacity 0.5s var(--ease);
  z-index: -1;
  pointer-events: none;
}
.logo-wrap:hover::before { opacity: 1; }
.logo-wrap:hover .logo-img {
  animation-play-state: paused;
  transform: scale(1.08) rotate(-2deg);
  transition: transform 0.5s var(--ease-spring);
  filter: url(#remove-black-bg) drop-shadow(0 10px 28px rgba(255, 107, 157, 0.45));
}

/* =============== MARQUEE =============== */
.marquee {
  overflow: hidden;
  background: linear-gradient(90deg, #E0ECFF, #FCE7F3);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 26px 0;
}
.marquee-track {
  display: flex;
  gap: 60px;
  white-space: nowrap;
  animation: marquee 45s linear infinite;
}
.marquee-item {
  font-family: var(--serif);
  font-style: italic;
  font-size: 28px;
  color: var(--ink-dim);
  display: flex;
  align-items: center;
  gap: 60px;
}
.marquee-item::after {
  content: '✦';
  color: var(--coral-1);
  font-style: normal;
  font-size: 18px;
}
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* =============== TOUR CARD (NEW PREMIUM) =============== */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px;
  align-items: stretch;
}
.card-grid > * { display: flex; }
.card-grid > .tcp-outer { width: 100%; }

/* =============== TOUR CARD · TRAVEL POSTER (v3) ===============
   Concept:
   - Full-bleed portrait image (3:4) — no white body panel
   - Permanent identity: N° number, region chip, rating, title + duration
   - On hover: a "boarding pass" ticket slides up from the bottom with
     tagline, price, old-price strike-through & Explore More CTA.
   - Travel-poster aesthetic: serif numerals, dashed travel line, punch holes.
============================================================== */

.tcp-outer { height: 100%; display: flex; width: 100%; }

.tcp {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: #FAFBFF;
  isolation: isolate;
  background: #1A1625;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 1px 2px rgba(20, 14, 40, 0.06),
    0 24px 60px -32px rgba(20, 14, 40, 0.45);
  transition:
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.tcp:hover {
  transform: translateY(-10px);
  box-shadow:
    0 4px 10px rgba(20, 14, 40, 0.1),
    0 54px 100px -34px rgba(255, 120, 150, 0.4),
    0 30px 60px -30px rgba(120, 90, 255, 0.32);
}

/* ---- Full-bleed image canvas ---- */
.tcp-canvas { position: absolute; inset: 0; z-index: 0; }
.tcp-canvas img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;
  transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1);
  filter: none;
}
.tcp:hover .tcp-canvas img {
  transform: scale(1.045);
  filter: none;
}
.tcp-scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(20, 14, 40, 0.18) 0%, rgba(20, 14, 40, 0.1) 38%, rgba(20, 14, 40, 0.78) 100%),
    radial-gradient(120% 80% at 50% 110%, rgba(20, 14, 40, 0.7), transparent 65%);
  transition: opacity 0.5s var(--ease);
  pointer-events: none;
}
.tcp-grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: overlay;
  opacity: 0.04;
  background-image:
    radial-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1px),
    radial-gradient(rgba(0, 0, 0, 0.14) 1px, transparent 1px);
  background-size: 3px 3px, 3px 3px;
  background-position: 0 0, 1.5px 1.5px;
}

/* ---- Top row: N° number + rating badge ---- */
.tcp-top {
  position: absolute;
  top: 18px; left: 18px; right: 18px;
  z-index: 3;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.tcp-num {
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: #FAFBFF;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
}
.tcp-num::before {
  content: '';
  display: inline-block;
  width: 22px;
  height: 1.5px;
  background: linear-gradient(90deg, #F9A8D4, #EC4899);
  margin-right: 10px;
  transform: translateY(-9px);
  transition: width 0.45s var(--ease);
}
.tcp:hover .tcp-num::before { width: 38px; }

.tcp-top-right {
  display: inline-flex;
  gap: 8px;
}
.tcp-rating {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  background: rgba(255, 253, 248, 0.92);
  border-radius: 100px;
  color: #1A1625;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.02em;
  box-shadow: 0 10px 22px -10px rgba(0, 0, 0, 0.45);
}
.tcp-rating svg {
  color: #F59E0B;
  font-size: 13px;
}

/* ---- Region pill sits near the top-right of canvas ---- */
.tcp-region {
  position: absolute;
  top: 62px;
  right: 18px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 100px;
  background: rgba(16, 12, 32, 0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(255, 253, 248, 0.94);
  max-width: 65%;
}
.tcp-region svg { font-size: 12px; color: #BFDBFE; }
.tcp-region span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ---- Title zone — always visible above ticket ---- */
.tcp-title-zone {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 24px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.tcp:hover .tcp-title-zone {
  transform: translateY(-118px);
}
.tcp-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(255, 210, 180, 0.95);
}
.tcp-dash {
  width: 22px; height: 1.5px;
  background: linear-gradient(90deg, #F9A8D4, transparent);
  display: inline-block;
}
.tcp-title {
  font-family: var(--serif);
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.08;
  color: #FAFBFF;
  margin: 0;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}
.tcp-duration {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px 5px 10px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255, 253, 248, 0.95);
  align-self: flex-start;
}
.tcp-duration svg { font-size: 13px; color: #F9A8D4; }

/* ---- Ticket footer — slides up on hover ---- */
.tcp-ticket {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: -140px;
  z-index: 4;
  padding: 18px 16px 14px;
  border-radius: 14px;
  background: #FAFBFF;
  color: var(--ink);
  box-shadow: 0 -14px 34px -14px rgba(20, 14, 40, 0.45);
  transition: bottom 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  opacity: 0;
}
.tcp:hover .tcp-ticket {
  bottom: 14px;
  opacity: 1;
}

/* Punch holes on the sides for boarding-pass look */
.tcp-punch {
  position: absolute;
  top: 50%;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #1A1625;
  transform: translateY(-50%);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
}
.tcp-punch.left { left: -7px; }
.tcp-punch.right { right: -7px; }

.tcp-ticket-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
}
.tcp-ticket-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.tcp-ticket-label {
  font-size: 9px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-dim);
}
.tcp-ticket-price {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
  background: linear-gradient(135deg, #E26079, #8F6FE8);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.tcp-ticket-strike {
  font-size: 11px;
  color: var(--ink-soft);
  text-decoration: line-through;
  font-weight: 600;
}
.tcp-ticket-dashes {
  height: 1px;
  background-image: linear-gradient(90deg, rgba(26, 22, 37, 0.3) 50%, transparent 50%);
  background-size: 8px 1px;
  background-repeat: repeat-x;
}
.tcp-ticket-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px 10px 16px;
  border-radius: 100px;
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 50%, #EC4899 100%);
  color: #FAFBFF;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  box-shadow: 0 10px 22px -8px rgba(255, 120, 150, 0.5);
  white-space: nowrap;
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), filter 0.3s var(--ease);
}
.tcp-ticket-cta span:first-child { line-height: 1; }
.tcp-ticket-arrow {
  width: 22px; height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  font-size: 13px;
  transition: transform 0.4s var(--ease), background 0.3s var(--ease);
}
.tcp:hover .tcp-ticket-cta {
  filter: brightness(1.05);
}
.tcp:hover .tcp-ticket-arrow { transform: translateX(3px); background: rgba(255, 255, 255, 0.4); }

.tcp-ticket-tagline {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px dashed rgba(26, 22, 37, 0.18);
  font-size: 12.5px;
  color: var(--ink-dim);
  line-height: 1.5;
  font-style: italic;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- Focus for accessibility ---- */
.tcp:focus-visible {
  outline: 3px solid rgba(255, 122, 158, 0.6);
  outline-offset: 3px;
}

/* ---- Touch devices: always show ticket (no hover) ---- */
@media (hover: none) {
  .tcp-ticket { bottom: 14px; opacity: 1; }
  .tcp-title-zone { transform: translateY(-118px); }
}

/* ---- Small screens: slightly taller ratio ---- */
@media (max-width: 520px) {
  .tcp { aspect-ratio: 4 / 5; }
  .tcp-title-zone { bottom: 20px; }
  .tcp:hover .tcp-title-zone { transform: translateY(-108px); }
}

/* =============== FEATURE / ICON CARDS =============== */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}
.feature-card {
  padding: 34px 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  transition: transform 0.5s var(--ease), box-shadow 0.4s var(--ease);
  position: relative;
  overflow: hidden;
}
.feature-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--grad-soft);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
  z-index: 0;
}
.feature-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.feature-card:hover::before { opacity: 1; }
.feature-card > * { position: relative; z-index: 1; }
.feature-icon {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--grad-brand);
  color: #fff;
  font-size: 26px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-coral);
}
.feature-card:nth-child(2n) .feature-icon { background: var(--grad-cool); box-shadow: var(--shadow-indigo); }
.feature-card h3 { font-size: 20px; color: var(--ink); margin-bottom: 8px; font-weight: 500; }
.feature-card p { font-size: 14.5px; color: var(--ink-dim); }

/* =============== ABOUT SECTION (home) =============== */
.about-home {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 70px;
  align-items: center;
}
.about-home-media {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.about-home-media img { width: 100%; height: 100%; object-fit: cover; }
/* Quiet, static credential chip tucked into the bottom-left corner of the
   image. No rotation, no circle — a refined glass plaque that reads at a
   glance and never distracts from the photograph behind it. */
.about-home-badge {
  position: absolute;
  left: 22px;
  bottom: 22px;
  right: auto;
  top: auto;
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px 14px 16px;
  border-radius: 16px;
  background: rgba(255, 253, 248, 0.92);
  color: var(--ink, #1a1a2e);
  text-align: left;
  font-family: var(--serif);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.04em;
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow:
    0 18px 36px -18px rgba(20, 30, 60, 0.35),
    0 6px 14px -6px rgba(20, 30, 60, 0.18);
  backdrop-filter: blur(10px);
  animation: none;
}
.about-home-badge::before {
  content: '';
  width: 3px;
  align-self: stretch;
  border-radius: 999px;
  background: var(--grad-brand);
  flex-shrink: 0;
}
.about-home-badge > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft, #5a5a72);
  font-weight: 600;
  font-family: var(--sans, inherit);
}
.about-home-badge strong {
  display: block;
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 500;
  letter-spacing: -0.025em;
  text-transform: none;
  color: var(--ink, #1a1a2e);
  margin: 0;
}

/* =============== ABOUT · MISSION & VISION =============== */
.about-mv {
  background:
    radial-gradient(600px 400px at 8% 10%, rgba(255, 196, 216, 0.28), transparent 55%),
    radial-gradient(520px 380px at 100% 90%, rgba(182, 200, 255, 0.24), transparent 55%),
    linear-gradient(180deg, #F5F9FF 0%, #F2ECFF 100%);
}
.mv-head {
  max-width: 720px;
  text-align: center;
  margin: 0 auto 44px;
}
.mv-head .section-title { margin-top: 14px; }
.mv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.mv-card {
  position: relative;
  padding: 48px 40px 44px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(226, 218, 208, 0.9);
  box-shadow: 0 30px 60px -40px rgba(42, 24, 72, 0.35);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.6s var(--ease), box-shadow 0.6s var(--ease);
}
.mv-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(150deg, transparent 55%, rgba(255, 163, 184, 0.08) 100%);
  z-index: -1;
  transition: opacity 0.6s var(--ease);
}
.mv-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 80px -45px rgba(42, 24, 72, 0.45);
}
.mv-mission::after,
.mv-vision::after {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: var(--grad-brand);
  opacity: 0.1;
  filter: blur(8px);
  z-index: -1;
}
.mv-vision::after {
  background: var(--grad-cool);
  opacity: 0.14;
}
.mv-ornament {
  position: absolute;
  top: 24px;
  right: 28px;
  font-family: var(--serif);
  font-size: 72px;
  line-height: 1;
  font-style: italic;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0.28;
  letter-spacing: -0.03em;
}
.mv-vision .mv-ornament { background: var(--grad-cool); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.mv-icon {
  display: inline-flex;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background: var(--grad-brand);
  color: #fff;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  box-shadow: 0 18px 30px -18px rgba(255, 122, 158, 0.6);
  margin-bottom: 22px;
}
.mv-vision .mv-icon { background: var(--grad-cool); box-shadow: 0 18px 30px -18px rgba(123, 159, 255, 0.6); }
.mv-card h3 {
  font-family: var(--serif);
  font-size: 28px;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: 12px;
  font-weight: 500;
}
.mv-card > p {
  color: var(--ink-dim);
  font-size: 15.5px;
  line-height: 1.75;
}
.mv-points {
  list-style: none;
  padding: 0;
  margin: 22px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mv-points li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14.5px;
  color: var(--ink);
  font-weight: 500;
}
.mv-points li svg {
  width: 22px;
  height: 22px;
  padding: 4px;
  border-radius: 50%;
  background: rgba(255, 122, 158, 0.14);
  color: var(--coral-1);
  flex-shrink: 0;
}
.mv-vision .mv-points li svg {
  background: rgba(123, 159, 255, 0.16);
  color: var(--indigo-1);
}
@media (max-width: 820px) {
  .mv-grid { grid-template-columns: 1fr; gap: 20px; }
  .mv-card { padding: 40px 28px 36px; }
  .mv-ornament { font-size: 60px; top: 20px; right: 22px; }
}

/* =============== ABOUT · WHY CHOOSE US =============== */
.about-why {
  background:
    radial-gradient(700px 460px at 90% 10%, rgba(255, 224, 186, 0.28), transparent 60%),
    linear-gradient(180deg, #FAFBFF 0%, #F5F9FF 100%);
}
.why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.why-card {
  position: relative;
  padding: 34px 28px 30px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 14px 32px -20px rgba(24, 16, 50, 0.2);
  transition: transform 0.55s var(--ease), box-shadow 0.55s var(--ease), border-color 0.55s var(--ease);
  overflow: hidden;
  isolation: isolate;
}
.why-card::before {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: var(--grad-brand);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.55s var(--ease);
}
.why-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px -25px rgba(24, 16, 50, 0.3);
  border-color: rgba(255, 163, 184, 0.45);
}
.why-card:hover::before { transform: scaleX(1); }
.why-num {
  position: absolute;
  top: 22px;
  right: 26px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  color: rgba(138, 58, 86, 0.28);
  letter-spacing: 0.04em;
}
.why-icon {
  display: inline-flex;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: linear-gradient(135deg, #FFE6F0, #F5F0FF);
  color: var(--coral-1);
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin-bottom: 18px;
  transition: transform 0.5s var(--ease), background 0.5s var(--ease), color 0.5s var(--ease);
}
.why-card:nth-child(3n) .why-icon { background: linear-gradient(135deg, #E8ECFF, #F3F0FF); color: var(--indigo-1); }
.why-card:nth-child(3n+1) .why-icon { background: linear-gradient(135deg, #E4F7F2, #EAF3FF); color: #4FA69A; }
.why-card:hover .why-icon { transform: rotate(-6deg) scale(1.05); }
.why-card h3 {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin-bottom: 10px;
}
.why-card p {
  color: var(--ink-dim);
  font-size: 14.5px;
  line-height: 1.7;
}

/* =============== ABOUT · JOURNEY (TIMELINE) + TEAM =============== */
.about-journey {
  background:
    radial-gradient(700px 480px at 0% 0%, rgba(195, 155, 255, 0.22), transparent 55%),
    radial-gradient(600px 400px at 100% 100%, rgba(255, 196, 216, 0.24), transparent 55%),
    linear-gradient(180deg, #F2ECFF 0%, #FFF5F0 100%);
}
.timeline {
  position: relative;
  max-width: 880px;
  margin: 10px auto 72px;
  padding: 10px 0;
}
.timeline-spine {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255, 138, 160, 0.45), rgba(123, 159, 255, 0.4));
  border-radius: 2px;
}
.timeline-item {
  position: relative;
  width: 50%;
  padding: 14px 44px;
  box-sizing: border-box;
}
.timeline-item.left { left: 0; text-align: right; }
.timeline-item.right { left: 50%; text-align: left; }
.timeline-node {
  position: absolute;
  top: 28px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--coral-1);
  box-shadow: 0 0 0 6px rgba(255, 122, 158, 0.14);
}
.timeline-item.left .timeline-node { right: -9px; }
.timeline-item.right .timeline-node { left: -9px; }
.timeline-item.right .timeline-node { border-color: var(--indigo-1); box-shadow: 0 0 0 6px rgba(123, 159, 255, 0.14); }
.timeline-card {
  display: inline-block;
  max-width: 360px;
  padding: 22px 26px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 14px 28px -18px rgba(24, 16, 50, 0.2);
  transition: transform 0.55s var(--ease), box-shadow 0.55s var(--ease);
  text-align: left;
}
.timeline-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px -22px rgba(24, 16, 50, 0.3);
}
.timeline-year {
  display: inline-block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 6px;
  font-weight: 500;
}
.timeline-item.right .timeline-year {
  background: var(--grad-cool);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.timeline-card h4 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin-bottom: 6px;
}
.timeline-card p {
  color: var(--ink-dim);
  font-size: 14px;
  line-height: 1.7;
}
@media (max-width: 720px) {
  .timeline-spine { left: 18px; }
  .timeline-item, .timeline-item.left, .timeline-item.right {
    width: 100%;
    left: 0;
    text-align: left;
    padding: 10px 0 10px 44px;
  }
  .timeline-item.left .timeline-node,
  .timeline-item.right .timeline-node { left: 10px; right: auto; }
  .timeline-card { max-width: 100%; }
}

/* ----- Team ----- */
.team-head {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 36px;
}
.team-head .section-title { margin-top: 14px; }
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 22px;
}
.team-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 14px 32px -22px rgba(24, 16, 50, 0.2);
  transition: transform 0.55s var(--ease), box-shadow 0.55s var(--ease);
}
.team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 52px -26px rgba(24, 16, 50, 0.32);
}
.team-media {
  position: relative;
  aspect-ratio: 5/6;
  overflow: hidden;
}
.team-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s var(--ease);
}
.team-card:hover .team-media img { transform: scale(1.05); }
.team-shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(24, 16, 50, 0.45) 100%);
  pointer-events: none;
}
.team-body {
  padding: 18px 20px 22px;
  text-align: left;
}
.team-body h4 {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 4px;
}
.team-role {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--coral-1);
}

/* =============== OFFERS =============== */
.offer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.offer-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  padding: 32px 28px;
  color: #fff;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  cursor: pointer;
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
  box-shadow: var(--shadow-md);
}
.offer-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.offer-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  transition: transform 1.2s var(--ease);
}
.offer-card:hover img { transform: scale(1.07); }
.offer-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(26, 29, 46, 0.05) 0%, rgba(26, 29, 46, 0.82) 100%);
  z-index: 1;
}
.offer-card > * { position: relative; z-index: 2; }
.offer-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 8px 14px;
  background: var(--grad-brand);
  color: #fff;
  border-radius: var(--radius-pill);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  z-index: 3;
  box-shadow: var(--shadow-coral);
}
.offer-card h3 { font-family: var(--serif); font-size: 26px; color: #fff; letter-spacing: -0.02em; font-weight: 500; }
.offer-card .offer-meta { font-size: 13px; opacity: 0.9; margin-top: 6px; font-weight: 500; }
.offer-card .offer-price { font-family: var(--serif); font-size: 20px; margin-top: 14px; display: flex; align-items: baseline; gap: 10px; }
.offer-card .offer-price .old { font-size: 14px; opacity: 0.6; text-decoration: line-through; font-family: var(--sans); font-weight: 400; }
.offer-card .offer-price .new { font-weight: 600; }
.offer-card .offer-cta {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
}

/* =============== ENGAGEMENT =============== */
.engage {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 50px;
  align-items: stretch;
}
.engage-tabs { display: flex; flex-direction: column; gap: 0; border-left: 1px solid var(--line); }
.engage-tab {
  padding: 22px 26px;
  cursor: pointer;
  transition: background 0.35s var(--ease);
  border-left: 2px solid transparent;
  margin-left: -1px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
}
.engage-tab:hover { background: var(--bg-soft); }
.engage-tab.active {
  border-left-color: var(--coral-1);
  background: var(--grad-soft);
}
.engage-tab-num {
  font-family: var(--serif);
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
  font-size: 14px;
  font-weight: 600;
}
.engage-tab h4 { font-family: var(--serif); font-size: 22px; color: var(--ink); font-weight: 500; }
.engage-tab p {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.5s var(--ease), opacity 0.4s var(--ease), margin-top 0.4s var(--ease);
  margin-top: 0;
  font-size: 14.5px;
  color: var(--ink-dim);
}
.engage-tab.active p { max-height: 200px; opacity: 1; margin-top: 8px; }

.engage-media {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 520px;
  box-shadow: var(--shadow-lg);
}
.engage-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.7s var(--ease), transform 6s var(--ease);
  transform: scale(1.06);
}
.engage-media img.active { opacity: 1; transform: scale(1); }

/* =============== TESTIMONIALS =============== */
.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.testimonial {
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform 0.5s var(--ease), box-shadow 0.4s var(--ease);
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.testimonial::before {
  content: '"';
  position: absolute;
  top: -10px;
  right: 20px;
  font-family: var(--serif);
  font-size: 100px;
  color: var(--coral-1);
  opacity: 0.25;
  line-height: 1;
  font-weight: 700;
}
.testimonial:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.testimonial .stars { color: var(--gold); letter-spacing: 3px; font-size: 14px; }
.testimonial p {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  line-height: 1.6;
}
.testimonial .who { display: flex; align-items: center; gap: 14px; margin-top: auto; }
.testimonial .who img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid var(--coral-2); }
.testimonial .who strong { color: var(--ink); font-size: 14px; font-weight: 700; display: block; }
.testimonial .who span { color: var(--ink-soft); font-size: 12px; letter-spacing: 0.1em; }

/* =============== FOOTER =============== */
.footer {
  padding: 84px 0 40px;
  background: linear-gradient(180deg, #E0ECFF 0%, #FCE7F3 100%);
  margin-top: 0;
  border-top: 1px solid var(--line);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 50px;
  margin-bottom: 60px;
}
.footer h5 {
  font-family: var(--serif);
  font-size: 14px;
  color: var(--ink);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  margin-bottom: 22px;
  font-weight: 600;
}
.footer h5::after {
  content: '';
  display: block;
  margin-top: 8px;
  width: 36px;
  height: 3px;
  background: var(--grad-brand);
  border-radius: 3px;
}
.footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.footer a {
  color: var(--ink, #0b1d3a);
  font-size: 14px;
  font-weight: 500;
  transition: color 0.3s var(--ease), transform 0.3s var(--ease);
  display: inline-block;
}
.footer a:hover { color: var(--coral-1, #ec4899); transform: translateX(4px); }
.footer ul li,
.footer p { color: var(--ink, #0b1d3a); }
.footer .footer-brand p { color: var(--ink-dim, #475569); }
.footer .footer-brand p { max-width: 320px; margin-top: 20px; font-size: 14px; }
.footer .footer-brand .logo-img { height: 64px; }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 30px;
  border-top: 1px solid var(--line-strong);
  color: var(--ink-soft);
  font-size: 13px;
  flex-wrap: wrap;
  gap: 20px;
}
.social-row { display: flex; gap: 10px; }
.social-row a {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  font-size: 14px;
  transition: background 0.3s var(--ease), color 0.3s var(--ease), transform 0.3s var(--ease);
  box-shadow: var(--shadow-sm);
}
.social-row a:hover { background: var(--grad-brand); color: #fff; transform: translateY(-3px); }

/* =============== WHATSAPP FLOAT =============== */
.whatsapp-float {
  position: fixed;
  right: 26px;
  bottom: 26px;
  z-index: 90;
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
  gap: 14px;
}
.whatsapp-btn {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  cursor: pointer;
  border: none;
  box-shadow: 0 14px 30px -6px rgba(37, 211, 102, 0.55);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
  position: relative;
}
.whatsapp-btn::before, .whatsapp-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid #25D366;
  animation: pulse 2.2s infinite;
}
.whatsapp-btn::after { animation-delay: 1.1s; }
@keyframes pulse {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(1.8); opacity: 0; }
}
.whatsapp-btn:hover { transform: scale(1.08) rotate(6deg); }
.whatsapp-tooltip {
  padding: 10px 16px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--ink);
  font-size: 13px;
  border-radius: 12px;
  box-shadow: var(--shadow-md);
  font-weight: 500;
}
.back-to-top {
  position: fixed;
  right: 26px;
  bottom: 108px;
  z-index: 90;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.4s var(--ease);
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  box-shadow: var(--shadow-md);
}
.back-to-top.show { opacity: 1; pointer-events: auto; transform: translateY(0); }
.back-to-top:hover { background: var(--grad-brand); color: #fff; border-color: transparent; }

/* =============== PAGE HERO ===============
   Premium, cinematic title section used by every page header on the site.
   The image is rendered crisply (HD hint) with a layered editorial scrim
   and subtle vignette so on-screen typography is always legible without
   crushing the underlying photograph. */
.page-hero {
  padding: 80px 0 54px;
  position: relative;
  overflow: hidden;
  min-height: 27vh;
  display: flex;
  align-items: center;
  color: #fff;
  isolation: isolate;
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.page-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: none;
  animation: slow-zoom 22s ease-out forwards;
  filter: none;
  image-rendering: auto;
  image-rendering: high-quality;
}
.page-hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(8, 6, 22, 0.22) 0%,
      rgba(8, 6, 22, 0.3) 45%,
      rgba(8, 6, 22, 0.6) 100%
    );
  pointer-events: none;
}
.page-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(90% 70% at 50% 42%, rgba(6, 4, 20, 0.0) 45%, rgba(6, 4, 20, 0.4) 100%),
    radial-gradient(70% 80% at 30% 100%, rgba(6, 4, 20, 0.5) 0%, transparent 72%);
  pointer-events: none;
}
@keyframes slow-zoom { from { transform: scale(1.025); } to { transform: scale(1.0); } }

.page-hero-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
}
.page-hero-inner .eyebrow {
  color: #DBE8FF;
  -webkit-text-fill-color: #DBE8FF;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: none;
  backdrop-filter: blur(10px);
}
.page-hero-inner .eyebrow::before {
  background: #60A5FA;
  box-shadow: 0 0 0 4px rgba(255, 181, 140, 0.25);
}
.page-hero-inner .eyebrow::after {
  background: linear-gradient(90deg, #60A5FA, transparent);
}
.page-hero-title {
  font-family: var(--serif);
  font-size: clamp(48px, 7.5vw, 104px);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.02;
  margin-top: 24px;
  color: #FFFFFF;
  -webkit-text-stroke: 0.6px rgba(10, 8, 24, 0.35);
  text-shadow:
    0 1px 0 rgba(0, 0, 0, 0.35),
    0 4px 14px rgba(0, 0, 0, 0.55),
    0 16px 50px rgba(0, 0, 0, 0.6);
}
.page-hero-title em {
  font-style: italic;
  background: linear-gradient(135deg, #E0EBFF 0%, #F9A8D4 45%, #DBE8FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 500;
  filter:
    drop-shadow(0 2px 0 rgba(0, 0, 0, 0.35))
    drop-shadow(0 10px 28px rgba(255, 180, 140, 0.6));
}
.page-hero-sub {
  max-width: 680px;
  margin: 22px auto 0;
  color: rgba(255, 253, 248, 0.95);
  font-size: 17px;
  line-height: 1.7;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.65),
    0 4px 22px rgba(0, 0, 0, 0.55);
}

.breadcrumb {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 28px;
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 600;
}
.page-hero-inner .breadcrumb span[style*="color: var(--coral-1)"] {
  color: #60A5FA !important;
}
.breadcrumb a { color: rgba(255, 255, 255, 0.72); transition: color 0.3s var(--ease); text-decoration: none; }
.breadcrumb a:hover { color: #DBE8FF; }
.breadcrumb .sep { color: rgba(255, 215, 165, 0.5); }

/* =============== PACKAGE DETAIL =============== */
.pd-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 50px;
  align-items: start;
}

.pd-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  box-shadow: var(--shadow-md);
}
.pd-gallery > div { overflow: hidden; position: relative; cursor: pointer; }
.pd-gallery > div:first-child { grid-row: 1 / 3; }
.pd-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.pd-gallery > div:hover img { transform: scale(1.08); }

.pd-meta-row {
  display: flex;
  gap: 30px;
  margin-top: 36px;
  padding: 24px 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  flex-wrap: wrap;
  box-shadow: var(--shadow-sm);
}
.pd-meta-row > div { display: flex; align-items: center; gap: 14px; }
.pd-meta-row .icon {
  width: 46px; height: 46px;
  border-radius: 14px;
  background: var(--grad-brand);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  box-shadow: var(--shadow-coral);
}
.pd-meta-row > div:nth-child(2n) .icon { background: var(--grad-cool); box-shadow: var(--shadow-indigo); }
.pd-meta-row .label { font-size: 11px; letter-spacing: 0.2em; color: var(--ink-soft); text-transform: uppercase; font-weight: 700; }
.pd-meta-row .value { font-family: var(--serif); font-size: 19px; color: var(--ink); font-weight: 500; margin-top: 2px; }

.pd-section { margin-top: 56px; }
.pd-section h2 {
  font-family: var(--serif);
  font-size: 36px;
  font-weight: 400;
  letter-spacing: -0.025em;
  margin-bottom: 20px;
  color: var(--ink);
}
.pd-section h2 em {
  font-style: italic;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-section p { font-size: 16.5px; color: var(--ink-dim); line-height: 1.85; }
.pd-section p + p { margin-top: 14px; }

.highlight-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 24px;
  padding: 0;
}
.highlight-list li {
  list-style: none;
  padding: 16px 20px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 14.5px;
  color: var(--ink);
  transition: border-color 0.3s var(--ease), transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  font-weight: 500;
  box-shadow: var(--shadow-sm);
}
.highlight-list li:hover {
  transform: translateY(-3px);
  border-color: transparent;
  box-shadow: var(--shadow-md);
}
.highlight-list li .check {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--grad-brand);
  color: #fff;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: var(--shadow-coral);
}

.itinerary-list { margin-top: 24px; list-style: none; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.itinerary-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 26px;
  padding: 26px 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease), transform 0.3s var(--ease);
  box-shadow: var(--shadow-sm);
  position: relative;
  overflow: hidden;
}
.itinerary-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 5px;
  height: 100%;
  background: var(--grad-brand);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.5s var(--ease);
}
.itinerary-item:hover::before { transform: scaleY(1); }
.itinerary-item:hover { transform: translateX(4px); box-shadow: var(--shadow-md); }
.itinerary-day {
  font-family: var(--serif);
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 18px;
  font-style: italic;
  letter-spacing: 0.02em;
  font-weight: 600;
}
.itinerary-item h4 { font-family: var(--serif); font-size: 21px; color: var(--ink); font-weight: 500; margin-bottom: 8px; letter-spacing: -0.02em; }
.itinerary-item p { font-size: 15px; color: var(--ink-dim); line-height: 1.75; }

.pd-side {
  position: sticky;
  top: 120px;
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.pd-side::before {
  content: '';
  position: absolute;
  top: -30px;
  right: -30px;
  width: 120px;
  height: 120px;
  background: var(--grad-soft);
  border-radius: 50%;
  z-index: 0;
}
.pd-side > * { position: relative; z-index: 1; }
.pd-side .price-label {
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--ink-soft);
  text-transform: uppercase;
  font-weight: 700;
}
.pd-side .price-big {
  font-family: var(--serif);
  font-size: 48px;
  font-weight: 500;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin: 6px 0 0;
  line-height: 1;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-side .price-per {
  font-size: 14px;
  color: var(--ink-soft);
  margin-top: 2px;
  font-weight: 500;
}
.pd-side .side-divider { height: 1px; background: var(--line); margin: 22px 0; }
.pd-side .side-field {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  font-size: 14px;
  color: var(--ink-dim);
  border-bottom: 1px dashed var(--line);
}
.pd-side .side-field:last-child { border-bottom: 0; }
.pd-side .side-field strong { color: var(--ink); font-weight: 600; }

/* =============== FORMS =============== */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-field { position: relative; display: flex; flex-direction: column; }
.input, .textarea, .select {
  width: 100%;
  padding: 15px 18px;
  border-radius: 14px;
  background: #FDFBF6;
  border: 1.5px solid rgba(226, 218, 208, 0.9);
  color: var(--ink);
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 500;
  transition:
    border-color 0.3s var(--ease),
    box-shadow 0.3s var(--ease),
    background 0.3s var(--ease);
}
.input::placeholder, .textarea::placeholder { color: rgba(100, 90, 120, 0.5); font-weight: 400; }
.input:hover, .textarea:hover, .select:hover {
  border-color: rgba(226, 170, 170, 0.6);
  background: #fff;
}
.input:focus, .textarea:focus, .select:focus {
  outline: none;
  border-color: #EC4899;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255, 138, 160, 0.15);
}
.input.has-error, .textarea.has-error, .select.has-error {
  border-color: #E55A5A;
  box-shadow: 0 0 0 4px rgba(229, 90, 90, 0.1);
}
.textarea { resize: vertical; min-height: 130px; }
.field-error {
  margin-top: 6px;
  font-size: 12px;
  color: #D04B4B;
  font-weight: 600;
}
label.label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 8px;
  font-weight: 700;
}
label.label .req { color: #EC4899; }

/* =============== HOME INQUIRY SECTION =============== */
.cta-inquiry-section {
  position: relative;
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(255, 186, 170, 0.25), transparent 62%),
    radial-gradient(800px 500px at 85% 85%, rgba(195, 155, 255, 0.22), transparent 62%),
    linear-gradient(180deg, #FFF9F2 0%, #F7EEFF 100%);
}
.cta-inquiry {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 60px;
  align-items: center;
}
.cta-inquiry-copy .section-title { margin-top: 18px; }
.cta-inquiry-copy p { margin-top: 22px; max-width: 520px; color: var(--ink-dim); line-height: 1.75; font-size: 16px; }
.cta-bullets {
  margin: 26px 0 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  padding: 0;
}
.cta-bullets li {
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 14.5px;
  color: var(--ink);
  font-weight: 500;
}
.cta-bullets li span {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  letter-spacing: 0.08em;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #2563EB, #EC4899);
  box-shadow: 0 8px 18px -6px rgba(255, 122, 158, 0.45);
}
.cta-inquiry-actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
}
.btn-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  padding: 12px 4px;
  transition: color 0.3s var(--ease);
}
.btn-link-arrow:hover {
  color: var(--coral-1);
}
.btn-link-arrow svg { font-size: 16px; transition: transform 0.3s var(--ease); }
.btn-link-arrow:hover svg { transform: translate(3px, -3px); }

@media (max-width: 960px) {
  .cta-inquiry { grid-template-columns: 1fr; gap: 40px; }
}

/* =============== INQUIRY FORM CARD =============== */
.inquiry-form {
  padding: 44px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(253, 249, 242, 0.98));
  border: 1px solid rgba(226, 218, 208, 0.7);
  border-radius: 28px;
  box-shadow:
    0 4px 10px rgba(30, 20, 60, 0.04),
    0 40px 100px -40px rgba(30, 20, 60, 0.35);
  position: relative;
  overflow: hidden;
}
.inquiry-form::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 29px;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255, 180, 160, 0.5), rgba(180, 157, 255, 0.5));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.inquiry-form--compact { padding: 28px; border-radius: 22px; }
.inquiry-form-title {
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.inquiry-form-title em {
  font-style: italic;
  background: linear-gradient(135deg, #EC4899, #2563EB);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.inquiry-form-hint {
  margin-top: 8px;
  font-size: 13.5px;
  color: var(--ink-dim);
}
.inquiry-form-hint .req { color: #EC4899; font-weight: 700; }
.inquiry-form-actions {
  margin-top: 28px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.btn-whatsapp {
  background: #1FAE53;
  color: #fff;
  box-shadow: 0 14px 30px -8px rgba(37, 211, 102, 0.45);
  border: none;
}
.btn-whatsapp:hover {
  background: #25D366;
  transform: translateY(-2px);
  box-shadow: 0 18px 36px -8px rgba(37, 211, 102, 0.6);
  color: #fff;
}

.inquiry-success {
  text-align: center;
  padding: 30px 10px;
}
.inquiry-success .check {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #74E3A8, #1FAE53);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  margin: 0 auto 22px;
  box-shadow: 0 20px 40px -10px rgba(31, 174, 83, 0.45);
  animation: pop-in 0.5s var(--ease-spring);
}
@keyframes pop-in {
  from { transform: scale(0.4); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.inquiry-success h3 {
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.inquiry-success p {
  margin: 12px auto 24px;
  max-width: 420px;
  color: var(--ink-dim);
  font-size: 15px;
  line-height: 1.65;
}
.inquiry-success .inquiry-form-actions { justify-content: center; }

@media (max-width: 640px) {
  .form-grid { grid-template-columns: 1fr; }
  .inquiry-form { padding: 28px; }
}

/* =============== GALLERY (PREMIUM FRAMES) =============== */
.gallery-section {
  background:
    radial-gradient(900px 520px at 12% -10%, rgba(255, 190, 160, 0.22), transparent 60%),
    radial-gradient(700px 480px at 92% 110%, rgba(195, 155, 255, 0.18), transparent 60%),
    linear-gradient(180deg, #FAFBFF 0%, #F5F9FF 100%);
}
.gallery-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 36px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(226, 218, 208, 0.8);
  border-radius: 100px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 20px 40px -28px rgba(30, 20, 60, 0.2);
}
.gallery-filter {
  padding: 10px 22px;
  border-radius: 100px;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-dim);
  cursor: pointer;
  transition: color 0.3s var(--ease), background 0.3s var(--ease), transform 0.3s var(--ease);
}
.gallery-filter:hover { color: var(--ink); transform: translateY(-1px); }
.gallery-filter.is-active {
  background: linear-gradient(135deg, #1F1B2E, #3A3452);
  color: #FAFBFF;
  box-shadow: 0 10px 22px -10px rgba(31, 27, 46, 0.5);
}

.gallery-frame-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.mosaic-frames { grid-template-columns: repeat(4, 1fr); }

.gframe {
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  display: block;
  text-align: left;
  font: inherit;
  color: inherit;
}
.gframe-inner {
  position: relative;
  padding: 14px 14px 16px;
  background: #FAFBFF;
  border-radius: 18px;
  box-shadow:
    0 1px 2px rgba(24, 16, 50, 0.05),
    0 20px 40px -24px rgba(24, 16, 50, 0.22);
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.55s var(--ease);
  isolation: isolate;
}
.gframe:hover .gframe-inner,
.gframe:focus-visible .gframe-inner {
  transform: translateY(-8px) rotate(-0.3deg);
  box-shadow:
    0 4px 10px rgba(24, 16, 50, 0.08),
    0 40px 80px -30px rgba(255, 122, 158, 0.35),
    0 26px 50px -26px rgba(120, 90, 255, 0.28);
}
/* Decorative corner marks */
.gframe-corner {
  position: absolute;
  width: 14px; height: 14px;
  border: 2px solid rgba(31, 27, 46, 0.55);
  transition: border-color 0.4s var(--ease), transform 0.4s var(--ease);
  z-index: 2;
}
.gframe-corner.tl { top: 6px; left: 6px; border-right: none; border-bottom: none; border-top-left-radius: 6px; }
.gframe-corner.tr { top: 6px; right: 6px; border-left: none; border-bottom: none; border-top-right-radius: 6px; }
.gframe-corner.bl { bottom: 6px; left: 6px; border-right: none; border-top: none; border-bottom-left-radius: 6px; }
.gframe-corner.br { bottom: 6px; right: 6px; border-left: none; border-top: none; border-bottom-right-radius: 6px; }
.gframe:hover .gframe-corner {
  border-color: #EC4899;
}
.gframe:hover .gframe-corner.tl { transform: translate(-3px, -3px); }
.gframe:hover .gframe-corner.tr { transform: translate(3px, -3px); }
.gframe:hover .gframe-corner.bl { transform: translate(-3px, 3px); }
.gframe:hover .gframe-corner.br { transform: translate(3px, 3px); }

.gframe-media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 10px;
  background: #F4EFE8;
}
.gframe-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s var(--ease);
  filter: saturate(0.98);
}
.gframe:hover .gframe-media img {
  transform: scale(1.06);
  filter: saturate(1.12) contrast(1.03);
}
.gframe-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 14, 40, 0) 55%, rgba(20, 14, 40, 0.4) 100%);
  opacity: 0;
  transition: opacity 0.45s var(--ease);
  pointer-events: none;
}
.gframe:hover .gframe-media::after { opacity: 1; }

.gframe-pin {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 5px 10px;
  border-radius: 100px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #FAFBFF;
  background: rgba(16, 16, 32, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  z-index: 2;
}
.gframe-expand {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px; height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.92);
  color: #1F1B2E;
  font-size: 14px;
  box-shadow: 0 6px 16px -6px rgba(24, 16, 50, 0.3);
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
  z-index: 2;
}
.gframe:hover .gframe-expand {
  opacity: 1;
  transform: translateY(0);
}

.gframe-caption {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 12px;
  padding: 2px 4px 0;
}
.gframe-num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  background: linear-gradient(135deg, #EC4899, #2563EB);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 500;
}
.gframe-text {
  font-size: 13px;
  color: var(--ink-dim);
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1.3;
}

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(14, 12, 28, 0.94);
  backdrop-filter: blur(22px);
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
}
.lightbox-img {
  max-width: min(92%, 1100px);
  max-height: 88vh;
  border-radius: 16px;
  box-shadow: 0 40px 120px rgba(0, 0, 0, 0.5);
  object-fit: contain;
}
.lightbox-close,
.lightbox-nav {
  position: absolute;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  color: #FAFBFF;
  width: 52px; height: 52px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease);
  z-index: 2;
}
.lightbox-close { top: 28px; right: 28px; }
.lightbox-nav.prev { left: 28px; top: 50%; transform: translateY(-50%); }
.lightbox-nav.next { right: 28px; top: 50%; transform: translateY(-50%); }
.lightbox-close:hover,
.lightbox-nav:hover {
  background: linear-gradient(135deg, #2563EB, #EC4899);
  border-color: transparent;
  transform: scale(1.06);
}
.lightbox-nav.prev:hover { transform: translateY(-50%) scale(1.06) translateX(-2px); }
.lightbox-nav.next:hover { transform: translateY(-50%) scale(1.06) translateX(2px); }
.lightbox-caption {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 12px 22px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FAFBFF;
}
.lightbox-caption span {
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  font-weight: 500;
}
.lightbox-caption small {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(255, 253, 248, 0.7);
}

/* =============== BLOG =============== */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 28px;
}
.blog-card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
  cursor: pointer;
  box-shadow: var(--shadow-sm);
}
.blog-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.blog-card .media { aspect-ratio: 16/10; overflow: hidden; }
.blog-card .media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.blog-card:hover .media img { transform: scale(1.07); }
.blog-card .body { padding: 26px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.blog-card .body .meta {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.blog-card .body h3 { font-family: var(--serif); font-size: 22px; color: var(--ink); font-weight: 500; line-height: 1.25; }
.blog-card .body p { font-size: 14.5px; color: var(--ink-dim); }
.blog-card .body .read {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--coral-1);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* =============== STATS BAND =============== */
.stats-band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  padding: 50px 40px;
  background: var(--grad-soft);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.stats-band > div {
  text-align: center;
  padding: 0 10px;
  position: relative;
}
.stats-band > div:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 20%;
  height: 60%;
  width: 1px;
  background: var(--line-strong);
}
.stats-band .value {
  font-family: var(--serif);
  font-size: 48px;
  font-weight: 500;
  letter-spacing: -0.02em;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1;
}
.stats-band .label {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-top: 10px;
  font-weight: 600;
}

/* =============== CTA BAND =============== */
.cta-band {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  padding: 80px 50px;
  text-align: center;
  background: var(--grad-brand);
  background-size: 200% 200%;
  animation: gradient-shift 8s ease infinite;
  color: #fff;
  box-shadow: var(--shadow-lg);
}
.cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(400px 200px at 20% 30%, rgba(255, 255, 255, 0.25), transparent 60%),
    radial-gradient(500px 260px at 80% 70%, rgba(255, 255, 255, 0.2), transparent 60%);
}
.cta-band > * { position: relative; z-index: 2; }
.cta-band .eyebrow {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.95);
  -webkit-text-fill-color: rgba(255, 255, 255, 0.95);
  box-shadow: none;
}
.cta-band .eyebrow::before { background: #FFFFFF; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.22); }
.cta-band h2 { color: #fff; }
.cta-band h2 em { color: #fff; opacity: 0.95; }
.cta-band p { color: rgba(255, 255, 255, 0.92); }
.cta-band .btn-primary {
  background: #fff;
  color: var(--coral-1);
  animation: none;
  box-shadow: 0 14px 30px -8px rgba(26, 29, 46, 0.35);
}
.cta-band .btn-primary:hover { background: var(--ink); color: #fff; }
.cta-band .btn-ghost {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.45);
  color: #fff;
  backdrop-filter: blur(12px);
}
.cta-band .btn-ghost:hover { background: rgba(255, 255, 255, 0.3); border-color: #fff; color: #fff; }

/* =============== PAGE TRANSITIONS =============== */
.page-enter { animation: page-in 0.55s var(--ease); }
@keyframes page-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* =============== DISCOVER SECTION (DARK, ULTRA-PREMIUM) =============== */
.discover {
  padding: 96px 0 104px;
  background:
    radial-gradient(900px 580px at 15% 15%, rgba(255, 122, 158, 0.22), transparent 60%),
    radial-gradient(820px 540px at 85% 85%, rgba(140, 118, 255, 0.28), transparent 60%),
    radial-gradient(600px 400px at 50% 100%, rgba(255, 196, 133, 0.12), transparent 60%),
    linear-gradient(180deg, #0C0D1C 0%, #11121F 50%, #0F1020 100%);
  position: relative;
  overflow: hidden;
  color: #F3F1FF;
}
.discover-deco { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.discover-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(130px);
  opacity: 0.6;
  mix-blend-mode: screen;
}
.discover-glow.glow-a {
  width: 520px; height: 520px;
  background: radial-gradient(circle, #EC4899, transparent 70%);
  top: -160px; left: -140px;
  animation: glow-drift-a 18s ease-in-out infinite;
}
.discover-glow.glow-b {
  width: 620px; height: 620px;
  background: radial-gradient(circle, #8C76FF, transparent 70%);
  bottom: -200px; right: -140px;
  animation: glow-drift-b 22s ease-in-out infinite;
}
@keyframes glow-drift-a {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(60px, 40px) scale(1.08); }
}
@keyframes glow-drift-b {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-40px, -60px) scale(1.06); }
}
.discover-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(ellipse at center, black 35%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 35%, transparent 80%);
  opacity: 0.8;
}
.discover .container { position: relative; z-index: 1; }

.discover-head {
  text-align: center;
  max-width: 880px;
  margin: 0 auto 56px;
}
.discover-head .eyebrow {
  color: #BFDBFE;
  -webkit-text-fill-color: #BFDBFE;
  background: rgba(255, 199, 153, 0.1);
  border: 1px solid rgba(255, 199, 153, 0.25);
  box-shadow: none;
}
.discover-head .eyebrow::before { background: #BFDBFE; box-shadow: 0 0 0 4px rgba(255, 199, 153, 0.2); }
.discover-head .eyebrow::after { background: linear-gradient(90deg, #BFDBFE, transparent); }
.discover-head .section-title {
  margin-top: 18px;
  font-size: clamp(42px, 5.6vw, 74px);
  color: #FAFBFF;
}
.discover-head .section-title em {
  background: linear-gradient(135deg, #F9A8D4 0%, #F472B6 50%, #7C3AED 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.discover-head p {
  margin: 22px auto 0;
  max-width: 640px;
  font-size: 16px;
  color: rgba(245, 240, 255, 0.7);
  line-height: 1.75;
}

/* --- Trip Planner --- */
.trip-planner {
  max-width: 1180px;
  margin: 0 auto;
  position: relative;
}
.tp-filters {
  display: grid;
  grid-template-columns: 1fr auto 1fr 220px;
  gap: 18px;
  align-items: end;
  padding: 22px;
  background: rgba(18, 18, 36, 0.72);
  backdrop-filter: blur(26px) saturate(140%);
  -webkit-backdrop-filter: blur(26px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  box-shadow:
    0 40px 100px -40px rgba(200, 60, 160, 0.45),
    0 14px 40px -14px rgba(120, 90, 255, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.tp-field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.tp-field label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(245, 240, 255, 0.62);
}
.tp-field label svg { font-size: 13px; color: #60A5FA; }
.tp-field select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  padding: 16px 44px 16px 18px;
  border-radius: 14px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  color: #FAFBFF;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: border-color 0.3s var(--ease), background 0.3s var(--ease), box-shadow 0.3s var(--ease);
  background-image:
    linear-gradient(45deg, transparent 50%, #60A5FA 50%),
    linear-gradient(135deg, #60A5FA 50%, transparent 50%);
  background-position:
    calc(100% - 22px) center,
    calc(100% - 16px) center;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.tp-field select:hover,
.tp-field select:focus {
  outline: none;
  border-color: rgba(255, 180, 200, 0.45);
  background-color: rgba(255, 255, 255, 0.07);
  box-shadow: 0 0 0 3px rgba(255, 138, 160, 0.14);
}
.tp-field select option { background: #16172A; color: #FAFBFF; }
.tp-field select optgroup {
  background: #0F1020;
  color: #60A5FA;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 11px;
}

.tp-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 18px;
  gap: 0;
}
.tp-arrow-line {
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, #60A5FA, #EC4899);
  border-radius: 2px;
  animation: tp-line-pulse 2.4s ease-in-out infinite;
}
.tp-arrow-head {
  width: 0; height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 9px solid #EC4899;
  filter: drop-shadow(0 0 6px rgba(195, 155, 255, 0.5));
}
@keyframes tp-line-pulse {
  0%, 100% { opacity: 0.6; transform: scaleX(0.9); }
  50% { opacity: 1; transform: scaleX(1.05); }
}

.tp-field-trav { min-width: 180px; }
.tp-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.tp-stepper button {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FAFBFF;
  cursor: pointer;
  font-size: 18px;
  font-weight: 600;
  transition: all 0.3s var(--ease);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.tp-stepper button:hover {
  background: linear-gradient(135deg, #60A5FA, #EC4899);
  border-color: transparent;
  color: #0D0E1C;
  transform: translateY(-1px);
}
.tp-stepper span {
  flex: 1;
  text-align: center;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  color: #FAFBFF;
}

/* Result card */
.tp-result {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 0;
  background: rgba(16, 16, 32, 0.78);
  backdrop-filter: blur(26px) saturate(140%);
  -webkit-backdrop-filter: blur(26px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 28px;
  overflow: hidden;
  box-shadow:
    0 50px 120px -40px rgba(200, 60, 160, 0.45),
    0 18px 50px -18px rgba(120, 90, 255, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.tp-result-media {
  position: relative;
  min-height: 420px;
  overflow: hidden;
}
.tp-result-media img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease);
  filter: saturate(1.05);
}
.tp-result:hover .tp-result-media img { transform: scale(1.05); }
.tp-result-media::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(13, 14, 28, 0.15) 0%, rgba(13, 14, 28, 0.35) 55%, rgba(13, 14, 28, 0.92) 100%);
  pointer-events: none;
}
.tp-result-overlay {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 32px;
  z-index: 2;
  color: #FAFBFF;
}
.tp-route {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px;
  background: rgba(16, 16, 32, 0.55);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 100px;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(255, 253, 248, 0.92);
  margin-bottom: 16px;
}
.tp-route-sep {
  background: linear-gradient(135deg, #BFDBFE, #EC4899);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 15px;
  font-weight: 700;
}
.tp-result-overlay h3 {
  font-family: var(--serif);
  font-size: clamp(30px, 3.4vw, 42px);
  margin: 0;
  letter-spacing: -0.02em;
  color: #FAFBFF;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}
.tp-result-overlay p {
  margin: 8px 0 0;
  font-size: 15px;
  font-style: italic;
  color: rgba(255, 253, 248, 0.82);
  max-width: 90%;
}

.tp-result-body {
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.tp-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.tp-fact {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease);
}
.tp-fact:hover {
  background: rgba(255, 181, 140, 0.08);
  border-color: rgba(255, 181, 140, 0.28);
  transform: translateY(-2px);
}
.tp-fact > svg {
  font-size: 20px;
  color: #60A5FA;
  flex-shrink: 0;
  margin-top: 2px;
}
.tp-fact span {
  display: block;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(245, 240, 255, 0.55);
  font-weight: 700;
  margin-bottom: 3px;
}
.tp-fact strong {
  display: block;
  font-size: 14px;
  color: #FAFBFF;
  font-weight: 600;
  line-height: 1.3;
}

.tp-sub-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(245, 240, 255, 0.6);
}
.tp-sub-label svg { color: #F9A8D4; font-size: 14px; }

.tp-highlights ul {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
  display: grid;
  gap: 8px;
}
.tp-highlights li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  color: rgba(245, 240, 255, 0.88);
  line-height: 1.5;
}
.tp-highlights li svg {
  color: #EC4899;
  font-size: 14px;
  margin-top: 4px;
  flex-shrink: 0;
  background: rgba(195, 155, 255, 0.14);
  border-radius: 50%;
  padding: 2px;
  box-sizing: content-box;
  width: 12px; height: 12px;
}

.tp-quote {
  padding: 18px;
  border-radius: 16px;
  background:
    linear-gradient(140deg, rgba(255, 181, 140, 0.08), rgba(195, 155, 255, 0.08));
  border: 1px solid rgba(255, 181, 140, 0.2);
}
.tp-quote-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  font-size: 13.5px;
  color: rgba(245, 240, 255, 0.8);
}
.tp-quote-row.muted { color: rgba(245, 240, 255, 0.55); font-size: 12.5px; }
.tp-quote-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.18), transparent);
  margin: 8px 0;
}
.tp-quote-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 6px;
}
.tp-quote-total small {
  display: block;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(245, 240, 255, 0.55);
  margin-bottom: 4px;
  font-weight: 700;
}
.tp-quote-total strong {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 500;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #DBE8FF, #F9A8D4 60%, #C4B5FD);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.tp-quote-total strong svg {
  -webkit-text-fill-color: #F9A8D4;
  color: #F9A8D4;
  font-size: 24px;
}
.tp-per {
  font-size: 12px;
  color: rgba(245, 240, 255, 0.6);
  padding: 6px 12px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-weight: 600;
}

.tp-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.tp-actions .btn { flex: 1; justify-content: center; min-width: 180px; }
.btn-outline-light {
  padding: 14px 24px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.04);
  color: #FAFBFF;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.35s var(--ease);
}
.btn-outline-light:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 181, 140, 0.5);
  transform: translateY(-2px);
}

.tp-foot {
  font-size: 11.5px;
  color: rgba(245, 240, 255, 0.5);
  line-height: 1.6;
  margin: 0;
  font-style: italic;
}

/* Empty state */
.tp-empty {
  margin-top: 28px;
  padding: 60px 32px;
  border-radius: 28px;
  text-align: center;
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(255, 181, 140, 0.12), transparent 70%),
    rgba(16, 16, 32, 0.6);
  border: 1px dashed rgba(255, 255, 255, 0.14);
}
.tp-empty-inner { max-width: 540px; margin: 0 auto; }
.tp-empty-icon {
  width: 74px; height: 74px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255, 181, 140, 0.2), rgba(195, 155, 255, 0.22));
  border: 1px solid rgba(255, 181, 140, 0.32);
  color: #F9A8D4;
  font-size: 34px;
  margin-bottom: 18px;
  animation: tp-float 4s ease-in-out infinite;
}
@keyframes tp-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.tp-empty h3 {
  font-family: var(--serif);
  font-size: 26px;
  color: #FAFBFF;
  margin: 0 0 10px;
  font-weight: 500;
  letter-spacing: -0.015em;
}
.tp-empty p {
  color: rgba(245, 240, 255, 0.7);
  font-size: 14.5px;
  line-height: 1.7;
  margin: 0 auto 22px;
  max-width: 480px;
}
.tp-empty-tags { display: inline-flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.tp-empty-tags span {
  padding: 8px 16px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 12px;
  font-weight: 600;
  color: rgba(245, 240, 255, 0.8);
  letter-spacing: 0.04em;
}

@media (max-width: 960px) {
  .tp-filters {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .tp-arrow { display: none; }
  .tp-result { grid-template-columns: 1fr; }
  .tp-result-media { min-height: 280px; }
}
@media (max-width: 560px) {
  .tp-facts { grid-template-columns: 1fr; }
  .tp-result-body { padding: 22px; }
  .tp-result-overlay { padding: 22px; }
}

/* Legacy discover-search/category-carousel CSS removed (replaced by trip planner) */

/* =============== SPOTLIGHT BENTO =============== */
.spotlight {
  padding: 92px 0;
  background:
    radial-gradient(700px 460px at 15% 10%, rgba(255, 186, 170, 0.22), transparent 55%),
    radial-gradient(600px 420px at 90% 90%, rgba(255, 215, 170, 0.2), transparent 55%),
    linear-gradient(180deg, #FAFBFF 0%, #F5F9FF 100%);
  position: relative;
}
.bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 260px;
  gap: 18px;
}
.bento-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
  isolation: isolate;
}
.bento-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}
.bento-card img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease);
}
.bento-card:hover img { transform: scale(1.09); }
.bento-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.0) 40%, rgba(26, 29, 46, 0.85) 100%);
  z-index: 1;
}
.bento-card .bento-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  padding: 22px;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.bento-card .tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(10px);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  align-self: flex-start;
  margin-bottom: 8px;
  color: #fff;
}
.bento-card h3 {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.bento-card .meta {
  display: flex;
  gap: 14px;
  margin-top: 8px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}
.bento-card .price {
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--coral-1);
  border-radius: 12px;
  font-weight: 700;
  font-size: 13px;
  z-index: 2;
  letter-spacing: -0.01em;
  box-shadow: var(--shadow-sm);
}
.bento-card.feat-1 { grid-column: span 2; grid-row: span 2; }
.bento-card.feat-1 h3 { font-size: 38px; }
.bento-card.feat-2 { grid-column: span 2; }
.bento-card.feat-3 { grid-column: span 1; }
.bento-card.feat-4 { grid-column: span 1; }
.bento-card.feat-5 { grid-column: span 2; }

/* =============== EXPLORE REGIONS =============== */
.explore-regions {
  padding: 92px 0;
  background:
    radial-gradient(600px 420px at 85% 15%, rgba(152, 195, 255, 0.2), transparent 55%),
    radial-gradient(500px 360px at 15% 90%, rgba(255, 212, 121, 0.2), transparent 55%),
    linear-gradient(180deg, #F7F4EE 0%, #EFF4FF 100%);
}
.region-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
  margin-top: 40px;
}
.region-card {
  position: relative;
  padding: 28px 22px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease), border-color 0.5s var(--ease);
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
}
.region-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--grad-soft);
  opacity: 0;
  transition: opacity 0.5s var(--ease);
  z-index: 0;
}
.region-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: transparent; }
.region-card:hover::before { opacity: 1; }
.region-card > * { position: relative; z-index: 1; }
.region-flag {
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--grad-brand);
  color: #fff;
  font-size: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-coral);
  margin-bottom: 18px;
}
.region-card:nth-child(3n) .region-flag { background: var(--grad-cool); box-shadow: var(--shadow-indigo); }
.region-card:nth-child(3n+1) .region-flag { background: linear-gradient(135deg, #60A5FA, #2563EB); }
.region-card h4 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.region-card p {
  font-size: 13.5px;
  color: var(--ink-dim);
  margin-top: 6px;
}
.region-card .count {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--coral-1);
}

/* =============== GALLERY MOSAIC (home) =============== */
.mosaic-section {
  padding: 92px 0;
  background:
    radial-gradient(dotted 1px 1px at center, rgba(80, 60, 140, 0.08) 1px, transparent 1px),
    linear-gradient(180deg, #FFFFFF 0%, #EFF3FF 100%);
  background-size: 24px 24px, auto;
  overflow: hidden;
  position: relative;
}
.mosaic-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(rgba(80, 60, 140, 0.08) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(ellipse at center, black 25%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 25%, transparent 75%);
  opacity: 0.7;
  pointer-events: none;
}
.mosaic-section .container { position: relative; }
.mosaic-frames { margin-top: 40px; }

/* =============== BLOG PREVIEW (home) =============== */
.blog-preview-section {
  padding: 92px 0;
  background:
    radial-gradient(600px 440px at 50% 0%, rgba(255, 196, 216, 0.22), transparent 55%),
    linear-gradient(180deg, #FFE6F0 0%, #F2ECFF 100%);
}
.blog-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
/* Uniform, capped media height across all story cards */
.blog-preview-grid .blog-card .media { aspect-ratio: auto; height: 220px; }
.blog-preview-grid .blog-card .body h3 { font-size: 21px; }

/* =============== TESTIMONIAL CAROUSEL =============== */
.testimonial-carousel {
  padding: 92px 0;
  background:
    radial-gradient(700px 440px at 18% 30%, rgba(195, 155, 255, 0.28), transparent 55%),
    radial-gradient(600px 400px at 82% 70%, rgba(255, 185, 128, 0.22), transparent 55%),
    linear-gradient(180deg, #F2ECFF 0%, #FFF8F1 100%);
  position: relative;
}
.tc-slide {
  max-width: 920px;
  margin: 40px auto 30px;
  padding: 50px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  text-align: center;
  position: relative;
}
.tc-slide::before {
  content: '"';
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--serif);
  font-size: 140px;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 0.4;
  font-weight: 700;
}
.tc-slide .stars {
  color: var(--gold);
  letter-spacing: 8px;
  font-size: 20px;
  margin-top: 10px;
}
.tc-slide blockquote {
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  line-height: 1.5;
  color: var(--ink);
  font-weight: 300;
  max-width: 720px;
  margin: 20px auto;
}
.tc-who {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 22px;
}
.tc-who img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; border: 2px solid var(--coral-2); }
.tc-who strong { color: var(--ink); display: block; }
.tc-who span { color: var(--ink-soft); font-size: 12px; letter-spacing: 0.14em; }
.tc-nav {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
}
.tc-nav button {
  width: 10px; height: 10px;
  border-radius: 50%;
  border: none;
  background: var(--line-strong);
  cursor: pointer;
  transition: all 0.4s var(--ease);
  padding: 0;
}
.tc-nav button.active {
  width: 34px;
  border-radius: 5px;
  background: var(--grad-brand);
}

/* =============== FAQ =============== */
.faq-section {
  padding: 92px 0;
  background:
    radial-gradient(700px 500px at 0% 80%, rgba(195, 155, 255, 0.2), transparent 55%),
    radial-gradient(500px 360px at 100% 10%, rgba(255, 215, 170, 0.18), transparent 55%),
    linear-gradient(180deg, #F2ECFF 0%, #F5F9FF 100%);
}
.faq-layout {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 60px;
  align-items: start;
}
.faq-list { display: flex; flex-direction: column; gap: 12px; }
.faq-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
  box-shadow: var(--shadow-sm);
}
.faq-item.open { border-color: var(--coral-2); box-shadow: var(--shadow-md); }
.faq-q {
  padding: 20px 24px;
  font-family: var(--serif);
  font-size: 18px;
  color: var(--ink);
  font-weight: 500;
  letter-spacing: -0.015em;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  background: transparent;
  border: none;
  text-align: left;
  width: 100%;
  transition: color 0.3s var(--ease);
}
.faq-q:hover { color: var(--coral-1); }
.faq-q .icon {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--bg-soft);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.4s var(--ease), background 0.4s var(--ease), color 0.4s var(--ease);
  font-size: 14px;
}
.faq-item.open .faq-q .icon {
  transform: rotate(135deg);
  background: var(--grad-brand);
  color: #fff;
}
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease), padding 0.4s var(--ease);
  padding: 0 24px;
}
.faq-item.open .faq-a {
  max-height: 400px;
  padding: 0 24px 22px;
}
.faq-a p { font-size: 14.5px; color: var(--ink-dim); line-height: 1.7; }

/* ---- FAQ question chip (category label on each question) ---- */
.faq-q-text {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 0;
}
.faq-q-chip {
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8A3A56;
  background: linear-gradient(135deg, rgba(255, 201, 216, 0.55), rgba(255, 227, 200, 0.55));
  border: 1px solid rgba(255, 163, 184, 0.55);
  padding: 5px 11px;
  border-radius: 999px;
  flex-shrink: 0;
  line-height: 1;
}

/* ---- Simple (full-width) FAQ variant ---- */
.faq-section--simple {
  padding: 96px 0;
  background:
    radial-gradient(600px 420px at 90% 0%, rgba(255, 201, 216, 0.28), transparent 60%),
    radial-gradient(520px 380px at 0% 100%, rgba(196, 179, 255, 0.24), transparent 60%),
    linear-gradient(180deg, #F5F9FF 0%, #F5F0FF 100%);
}
.faq-simple-head {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
}
.faq-simple-head .section-title {
  margin-top: 14px;
}
.faq-simple-sub {
  margin: 18px auto 0;
  max-width: 620px;
  color: var(--ink-dim);
  line-height: 1.75;
  font-size: 16px;
}
.faq-filter-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0 auto 36px;
  max-width: 860px;
}
.faq-filter {
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.85);
  color: var(--ink-dim);
  cursor: pointer;
  transition: all 0.35s var(--ease);
  backdrop-filter: blur(8px);
}
.faq-filter:hover {
  color: var(--ink);
  border-color: rgba(255, 138, 160, 0.55);
  transform: translateY(-1px);
}
.faq-filter.active {
  background: var(--grad-brand);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 10px 24px -12px rgba(255, 122, 158, 0.55);
}
.faq-simple-body {
  max-width: 880px;
  margin: 0 auto;
}
@media (max-width: 640px) {
  .faq-section--simple { padding: 72px 0; }
  .faq-q-text { gap: 10px; flex-wrap: wrap; }
  .faq-q-chip { order: -1; }
}

/* =============== NEWSLETTER =============== */
.newsletter {
  padding: 80px 0;
}
.newsletter-band {
  max-width: 1180px;
  margin: 0 auto;
  padding: 62px 56px;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(500px 300px at 80% 20%, rgba(255, 255, 255, 0.3), transparent 60%),
    linear-gradient(135deg, #2563EB 0%, #7C3AED 50%, #EC4899 100%);
  background-size: 200% 200%;
  animation: gradient-shift 10s ease infinite;
  color: #fff;
  position: relative;
  overflow: hidden;
  box-shadow: 0 40px 80px -30px rgba(255, 107, 157, 0.5);
}
.newsletter-band::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
}
.newsletter-band::after {
  content: '';
  position: absolute;
  bottom: -100px; left: -60px;
  width: 260px; height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
}
.newsletter-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  z-index: 2;
}
.newsletter-inner h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 48px);
  letter-spacing: -0.025em;
  font-weight: 400;
  color: #fff;
  line-height: 1.05;
}
.newsletter-inner h2 em {
  font-style: italic;
  opacity: 0.92;
}
.newsletter-inner p { color: rgba(255, 255, 255, 0.95); margin-top: 14px; font-size: 15px; }
.newsletter-form {
  display: flex;
  gap: 10px;
  background: rgba(255, 255, 255, 0.96);
  border-radius: var(--radius-pill);
  padding: 8px;
  box-shadow: 0 20px 40px -16px rgba(0, 0, 0, 0.3);
}
.newsletter-form input {
  flex: 1;
  border: none;
  background: transparent;
  padding: 14px 20px;
  font-family: inherit;
  font-size: 15px;
  color: var(--ink);
  outline: none;
  min-width: 0;
}
.newsletter-form input::placeholder { color: var(--ink-soft); }
.newsletter-form button {
  padding: 14px 26px;
  border-radius: var(--radius-pill);
  background: var(--ink);
  color: #fff;
  border: none;
  cursor: pointer;
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: 0.06em;
  transition: all 0.3s var(--ease);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.newsletter-form button:hover {
  background: #fff;
  color: var(--coral-1);
  border: 1px solid var(--coral-1);
  transform: scale(1.02);
}
.newsletter-note { font-size: 12px; color: rgba(255, 255, 255, 0.82); margin-top: 14px; }

/* TourCard variants removed — all cards use the single premium classic design */

/* =============== GALLERY V2 — image-only, animation-rich =============== */
.gallery-v2-section {
  padding: 80px 0 110px;
  background:
    radial-gradient(700px 500px at 15% 10%, rgba(255, 214, 170, 0.22), transparent 55%),
    radial-gradient(700px 500px at 90% 95%, rgba(203, 185, 255, 0.22), transparent 55%),
    linear-gradient(180deg, #FDFAF4 0%, #F6F1EA 100%);
}
.gallery-v2-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 120px;
  grid-auto-flow: dense;
  gap: 18px;
}
/* Per-tile shapes — give the mosaic premium rhythm */
.gv2-tile {
  position: relative;
  display: block;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 22px;
  overflow: hidden;
  background: #0a0816;
  cursor: zoom-in;
  isolation: isolate;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 30px 60px -30px rgba(18, 14, 40, 0.3),
    0 12px 30px -20px rgba(18, 14, 40, 0.22);
  transition:
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    border-radius 0.6s var(--ease);
}
.gv2-landscape { grid-column: span 6; grid-row: span 3; }
.gv2-portrait  { grid-column: span 4; grid-row: span 4; }
.gv2-square    { grid-column: span 4; grid-row: span 3; }
.gv2-tall      { grid-column: span 4; grid-row: span 5; }
/* Rearrange a subtle featured tile every 5 items for asymmetry */
.gv2-tile:nth-child(5n+3) { grid-column: span 8; grid-row: span 4; }

.gv2-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}
.gv2-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  filter: saturate(1.02) contrast(1.02);
  transition:
    transform 1.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1.2s var(--ease);
  will-change: transform;
}
.gv2-tile:hover .gv2-media img,
.gv2-tile:focus-visible .gv2-media img {
  transform: scale(1.14) translateY(-6px);
  filter: saturate(1.18) contrast(1.06);
}
/* Subtle shine sweep across tile on hover */
.gv2-shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    115deg,
    transparent 35%,
    rgba(255, 255, 255, 0.18) 50%,
    transparent 65%
  );
  transform: translateX(-120%);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
  mix-blend-mode: overlay;
}
.gv2-tile:hover .gv2-shine { transform: translateX(120%); }

/* Elegant premium ring that appears on hover */
.gv2-ring {
  position: absolute;
  inset: 10px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  opacity: 0;
  transform: scale(0.96);
  transition:
    opacity 0.6s var(--ease),
    transform 0.6s var(--ease);
  pointer-events: none;
  box-shadow: 0 0 0 1px rgba(10, 8, 22, 0.08);
}
.gv2-tile:hover .gv2-ring {
  opacity: 1;
  transform: scale(1);
}

.gv2-tile:hover {
  transform: translateY(-4px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 40px 80px -30px rgba(18, 14, 40, 0.45),
    0 14px 40px -16px rgba(18, 14, 40, 0.3);
}
.gv2-tile:focus-visible {
  outline: 2px solid var(--coral-1);
  outline-offset: 3px;
}

/* =============== EXPLORE REGIONS V2 — dark premium =============== */
.explore-regions-v2 {
  position: relative;
  padding: 120px 0 130px;
  color: rgba(255, 253, 248, 0.92);
  background:
    radial-gradient(1000px 600px at 80% 10%, rgba(104, 86, 200, 0.3), transparent 60%),
    radial-gradient(900px 600px at 10% 100%, rgba(200, 120, 90, 0.22), transparent 60%),
    linear-gradient(180deg, #0b0818 0%, #0a0615 100%);
  overflow: hidden;
  isolation: isolate;
}
.erv2-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.erv2-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.4;
}
.erv2-glow.a {
  width: 520px;
  height: 520px;
  top: -180px;
  right: -120px;
  background: radial-gradient(circle, #7c5cff 0%, transparent 65%);
  animation: erv2-drift 16s ease-in-out infinite alternate;
}
.erv2-glow.b {
  width: 460px;
  height: 460px;
  bottom: -180px;
  left: -100px;
  background: radial-gradient(circle, #ff9a7a 0%, transparent 65%);
  animation: erv2-drift 20s ease-in-out infinite alternate-reverse;
}
/* Decorative grid pattern that lives inside `.erv2-bg`. Renamed from
   `.erv2-grid` to `.erv2-pattern` so it never collides with the cards
   grid container (which also used to be `.erv2-grid`) — that collision
   was forcing all the cards to overlap the section title. */
.erv2-pattern {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, #000 40%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, #000 40%, transparent 100%);
  opacity: 0.7;
  pointer-events: none;
}
@keyframes erv2-drift {
  0%   { transform: translate(0, 0); }
  100% { transform: translate(40px, -30px); }
}
.erv2-inner { position: relative; z-index: 1; }
.erv2-head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 50px 80px;
  align-items: end;
  margin-bottom: 64px;
}
.erv2-head-top {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 4px;
}
.erv2-eyebrow {
  color: #DBE8FF !important;
  -webkit-text-fill-color: #DBE8FF !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  backdrop-filter: blur(12px);
}
.erv2-rail {
  flex: 1;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(255, 226, 176, 0.4) 0%,
    rgba(255, 255, 255, 0.08) 40%,
    transparent 100%
  );
}
.erv2-title {
  font-family: var(--serif);
  font-size: clamp(44px, 6vw, 84px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.035em;
  color: #FAFBFF;
  margin: 0;
}
.erv2-title em {
  font-style: italic;
  background: linear-gradient(135deg, #DBE8FF 0%, #F9A8D4 50%, #C4B5FD 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 400;
}
.erv2-lede {
  font-size: 15.5px;
  line-height: 1.8;
  color: rgba(255, 253, 248, 0.72);
  max-width: 460px;
  margin: 0;
  padding-left: 28px;
  border-left: 1px solid rgba(255, 255, 255, 0.15);
  justify-self: end;
}
.erv2-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  position: relative;
  z-index: 1;
}
.erv2-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 30px 26px 28px;
  min-height: 320px;
  border-radius: 22px;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.06) 0%,
    rgba(255, 255, 255, 0.02) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  transition:
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.6s var(--ease),
    background 0.6s var(--ease);
}
.erv2-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    400px 300px at var(--mx, 50%) var(--my, 0%),
    rgba(255, 194, 163, 0.14),
    transparent 65%
  );
  opacity: 0;
  transition: opacity 0.6s var(--ease);
  pointer-events: none;
  z-index: -1;
}
.erv2-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 194, 163, 0.45);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.09) 0%,
    rgba(255, 255, 255, 0.03) 100%
  );
}
.erv2-card:hover::before { opacity: 1; }

/* Photographic backdrop per mood card — lifts the section to premium */
.erv2-card-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.62;
  pointer-events: none;
  transition: opacity 0.6s var(--ease), transform 1.2s var(--ease);
}
.erv2-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.erv2-card-media::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 10, 30, 0.32) 0%, rgba(8, 10, 30, 0.72) 55%, rgba(8, 10, 30, 0.94) 100%);
}
.erv2-card:hover .erv2-card-media { opacity: 0.78; transform: scale(1.07); }
.erv2-card-top,
.erv2-card-title,
.erv2-card-desc,
.erv2-chips,
.erv2-card-meta,
.erv2-line { position: relative; z-index: 1; }
.erv2-card-title { margin-top: auto; }

.erv2-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 253, 248, 0.55);
}
.erv2-code {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #DBE8FF;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.erv2-coord {
  font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
  color: rgba(255, 253, 248, 0.4);
  letter-spacing: 0.12em;
  font-size: 10.5px;
}
.erv2-card-title {
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: #FAFBFF;
  margin: 4px 0 2px;
  transition: color 0.5s var(--ease);
}
.erv2-card:hover .erv2-card-title {
  background: linear-gradient(135deg, #DBE8FF 0%, #F9A8D4 60%, #C4B5FD 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.erv2-card-desc {
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255, 253, 248, 0.62);
  margin: 0;
}
.erv2-card-meta {
  margin-top: auto;
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.erv2-count {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.erv2-count strong {
  font-family: var(--serif);
  font-size: 34px;
  font-weight: 400;
  background: linear-gradient(135deg, #DBE8FF 0%, #F9A8D4 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1;
}
.erv2-count span {
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 253, 248, 0.55);
  font-weight: 600;
}
.erv2-go {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.04);
  color: #DBE8FF;
  font-size: 16px;
  transition:
    transform 0.5s var(--ease),
    background 0.5s var(--ease),
    border-color 0.5s var(--ease);
}
.erv2-card:hover .erv2-go {
  transform: rotate(-45deg) scale(1.05);
  background: linear-gradient(135deg, #60A5FA, #2563EB);
  border-color: transparent;
  color: #0b0818;
}
.erv2-line {
  position: absolute;
  left: 26px;
  right: 26px;
  bottom: 18px;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 194, 163, 0.6),
    transparent
  );
  opacity: 0;
  transform: scaleX(0.3);
  transform-origin: left center;
  transition:
    opacity 0.6s var(--ease),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}
.erv2-card:hover .erv2-line {
  opacity: 1;
  transform: scaleX(1);
}

@media (max-width: 1100px) {
  .erv2-cards { grid-template-columns: repeat(3, 1fr); }
  .erv2-head { grid-template-columns: 1fr; gap: 22px; }
  .erv2-lede {
    justify-self: start;
    padding-left: 22px;
  }
  .gallery-v2-grid { grid-auto-rows: 110px; }
  .gv2-tile:nth-child(5n+3) { grid-column: span 6; grid-row: span 3; }
}
@media (max-width: 820px) {
  .explore-regions-v2 { padding: 90px 0 100px; }
  .erv2-cards { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .erv2-title { font-size: clamp(38px, 8vw, 56px); }
  .erv2-card { padding: 24px 22px; min-height: 220px; }
  .gallery-v2-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 100px;
    gap: 14px;
  }
  .gv2-landscape { grid-column: span 6; grid-row: span 3; }
  .gv2-portrait  { grid-column: span 3; grid-row: span 4; }
  .gv2-square    { grid-column: span 3; grid-row: span 3; }
  .gv2-tall      { grid-column: span 3; grid-row: span 4; }
  .gv2-tile:nth-child(5n+3) { grid-column: span 6; grid-row: span 4; }
}
@media (max-width: 520px) {
  .erv2-cards { grid-template-columns: 1fr; }
  .gallery-v2-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 14px;
  }
  .gv2-tile,
  .gv2-landscape,
  .gv2-portrait,
  .gv2-square,
  .gv2-tall,
  .gv2-tile:nth-child(5n+3) {
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
  }
}

/* =============== SECTION TINTS (distinct per-section palettes) =============== */
.sec-cream {
  background:
    radial-gradient(600px 400px at 8% 10%, rgba(109, 40, 217, 0.12), transparent 55%),
    radial-gradient(500px 320px at 95% 95%, rgba(6, 182, 212, 0.14), transparent 55%),
    #FAFBFF;
}
.sec-blush {
  background:
    radial-gradient(700px 500px at 50% -10%, rgba(255, 186, 170, 0.22), transparent 55%),
    linear-gradient(180deg, #F5F9FF 0%, #FFFFFF 100%);
}
.sec-lavender {
  background:
    radial-gradient(600px 420px at 90% 15%, rgba(195, 155, 255, 0.22), transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, #E9DDFF 100%);
}
.sec-mint {
  background:
    radial-gradient(600px 420px at 15% 85%, rgba(154, 222, 204, 0.22), transparent 55%),
    linear-gradient(180deg, #EFF6FF 0%, #F5F9FF 100%);
}
.sec-ivory {
  background:
    radial-gradient(500px 350px at 50% 50%, rgba(6, 182, 212, 0.12), transparent 65%),
    #F6FCFF;
}
.sec-periwinkle {
  background:
    radial-gradient(600px 420px at 80% 80%, rgba(152, 175, 235, 0.2), transparent 55%),
    linear-gradient(180deg, #EEF2FF 0%, #FDF6EF 100%);
}
.sec-rose {
  background:
    radial-gradient(700px 500px at 50% 100%, rgba(255, 170, 185, 0.26), transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, #FFF0F7 100%);
}
.sec-amber {
  background:
    radial-gradient(600px 420px at 12% 20%, rgba(236, 72, 153, 0.13), transparent 55%),
    radial-gradient(520px 360px at 88% 90%, rgba(6, 182, 212, 0.12), transparent 55%),
    linear-gradient(180deg, #F5F9FF 0%, #FFFFFF 100%);
}

/* Soft vignette between sections for clear separation without lines */
.sec-divider {
  height: 60px;
  background: linear-gradient(180deg, transparent 0%, rgba(226, 218, 210, 0.3) 50%, transparent 100%);
  pointer-events: none;
}

/* =============== SECTION DIVIDERS =============== */
.wave-divider {
  height: 80px;
  background: inherit;
  position: relative;
}
.section-number {
  display: inline-block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  color: var(--coral-1);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-right: 8px;
}

/* =============== RESPONSIVE =============== */
@media (max-width: 1100px) {
  .hero { height: auto; min-height: 0; padding: 140px 0 140px; }
  .hero-inner { padding: 0 24px; }
  .hero-main { max-width: 100%; }
  .hero-control { bottom: 20px; width: 92%; }
  .hero-dots button { padding: 7px 12px; font-size: 11px; letter-spacing: 0.08em; }
  .pd-layout { grid-template-columns: 1fr; }
  .pd-side { position: static; }
  .engage { grid-template-columns: 1fr; }
  .engage-media { min-height: 380px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .gallery-frame-grid { grid-template-columns: repeat(3, 1fr); gap: 22px; }
  .about-home { grid-template-columns: 1fr; gap: 50px; }
  .stats-band { grid-template-columns: repeat(2, 1fr); }
  .stats-band > div:nth-child(2)::after { display: none; }
  .bento-grid { grid-template-columns: repeat(2, 1fr); }
  .bento-card.feat-1 { grid-column: span 2; }
  .bento-card.feat-2, .bento-card.feat-3, .bento-card.feat-4, .bento-card.feat-5 { grid-column: span 1; }
  .blog-preview-grid { grid-template-columns: 1fr 1fr; }
  .blog-preview-grid .blog-card:first-child { grid-column: span 2; }
  .faq-layout { grid-template-columns: 1fr; gap: 36px; }
  .newsletter-inner { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 820px) {
  .nav-links, .desktop-only { display: none; }
  .mobile-toggle { display: inline-flex; }
  .topbar-left { display: none; }
  .section { padding: 64px 0; }
  .form-grid { grid-template-columns: 1fr; }
  .pd-gallery { grid-template-columns: 1fr; grid-template-rows: auto; aspect-ratio: auto; }
  .pd-gallery > div { aspect-ratio: 16/10; }
  .pd-gallery > div:first-child { grid-row: auto; }
  .itinerary-item { grid-template-columns: 1fr; gap: 8px; }
  .gallery-frame-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .lightbox-close, .lightbox-nav { width: 44px; height: 44px; }
  .lightbox-close { top: 18px; right: 18px; }
  .lightbox-nav.prev { left: 12px; }
  .lightbox-nav.next { right: 12px; }
  .footer-grid { grid-template-columns: 1fr; }
  .stats-band { grid-template-columns: repeat(2, 1fr); padding: 40px 24px; }
  .stats-band .value { font-size: 36px; }
  .hero-float-word { display: none; }
  .discover { padding: 70px 0 90px; }
  .newsletter-band { padding: 40px 28px; }
  .newsletter-form { flex-direction: column; background: transparent; padding: 0; box-shadow: none; gap: 10px; }
  .newsletter-form input { background: rgba(255, 255, 255, 0.96); border-radius: var(--radius-pill); }
  .newsletter-form button { width: 100%; justify-content: center; }
  .spotlight, .explore-regions, .mosaic-section, .blog-preview-section, .faq-section, .testimonial-carousel { padding: 64px 0; }
  .discover { padding: 60px 0 72px; }
  .bento-grid { grid-auto-rows: 220px; }
  .tc-slide { padding: 36px 24px; }
  .tc-slide blockquote { font-size: 19px; }
}
@media (max-width: 520px) {
  .container { padding: 0 20px; }
  .hero { padding: 120px 0 70px; }
  .hero-inner { padding: 0 22px; gap: 28px; }
  .hero-title { font-size: clamp(44px, 12vw, 68px); }
  .hero-meta { gap: 10px; font-size: 12px; }
  .hero-meta .divider { display: none; }
  .page-hero { padding: 88px 0 48px; }
  .gallery-frame-grid { grid-template-columns: 1fr; gap: 24px; }
  .pd-meta-row { gap: 20px; }
  .cta-band { padding: 60px 26px; }
  .stats-band { grid-template-columns: 1fr 1fr; gap: 20px; }
  .stats-band > div::after { display: none; }
  .blog-preview-grid { grid-template-columns: 1fr; }
  .blog-preview-grid .blog-card:first-child { grid-column: span 1; }
  .bento-grid { grid-template-columns: 1fr; }
  .bento-card.feat-1, .bento-card.feat-2, .bento-card.feat-3, .bento-card.feat-4, .bento-card.feat-5 { grid-column: span 1; }
}

/* =============== ABOUT HOME BADGES (responsive) =============== */
.about-home-badges {
  margin-top: 30px;
  display: flex;
  gap: 36px;
  flex-wrap: wrap;
}
@media (max-width: 640px) {
  .about-home-badges { gap: 18px 24px; margin-top: 24px; }
  /* Reduce hero height on phones */
  .hero.hero--video { height: auto; min-height: 0; padding: 96px 0 64px; max-height: none; }
  .hero.hero--video .hero-inner { height: auto; }
  .hero.hero--video .hero-main { padding-bottom: 24px; }
  .pd-hero { padding: 104px 0 44px; min-height: 56vh; }
}
@media (max-width: 420px) {
  .hero.hero--video { padding: 88px 0 56px; }
}

/* =====================================================================
   MOBILE RESPONSIVE REFINEMENTS — full-site polish across all breakpoints
   Appended last so these rules win. Covers every major component, including
   safe-area inset handling, prevention of horizontal overflow, touch-friendly
   targets, fluid typography, stacked grids, and compact spacing.
   ===================================================================== */

/* ---------- Base global safeguards ---------- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
}
img, video, iframe, svg { max-width: 100%; }
/* Prevent iOS zoom on focus: inputs need ≤ 16px */
input, select, textarea, .input { font-size: 16px; }
/* All tappable elements honor a minimum touch target */
button, a.btn, .nav-link, .mobile-toggle, .faq-q, .offer-card, .bento-card {
  touch-action: manipulation;
}

/* ---------- ≤ 1200px : minor header + hero compression ---------- */
@media (max-width: 1200px) {
  .nav-link { padding: 9px 12px; font-size: 13px; }
  .nav-inner { gap: 16px; }
  .logo-img { height: 52px; }
  .nav.scrolled .logo-img { height: 44px; }
  .hero-title { font-size: clamp(56px, 8.5vw, 120px); }
}

/* ---------- ≤ 1024px : tablet landscape — condense gaps & grids ---------- */
@media (max-width: 1024px) {
  .section { padding: 76px 0; }
  .container { padding: 0 26px; }
  .hero { height: auto; min-height: 0; padding: 140px 0 110px; }
  .hero.hero--video { height: 70vh; min-height: 480px; max-height: 680px; padding: 0; }
  .hero-main { max-width: 100%; }
  .hero-main::before { inset: -28px -36px -16px -36px; }
  .hero-title { font-size: clamp(52px, 8.8vw, 104px); }
  .hero-sub { max-width: 100%; }
  .hero-control { width: 92%; bottom: 26px; }

  .card-grid { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 22px; }
  .offer-grid { gap: 20px; }
  .feature-grid { gap: 22px; }

  .pd-layout { grid-template-columns: 1fr; gap: 36px; }
  .pd-side { position: static; }
  .engage { grid-template-columns: 1fr; gap: 34px; }
  .engage-media { min-height: 380px; aspect-ratio: 16/10; }

  .about-home { grid-template-columns: 1fr; gap: 44px; }
  .cta-inquiry { grid-template-columns: 1fr; gap: 44px; }

  .footer-grid { grid-template-columns: repeat(2, 1fr); }

  .erv2-head { grid-template-columns: 1fr; gap: 24px; }
  .erv2-lede { justify-self: start; padding-left: 22px; }
  .erv2-cards { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- ≤ 900px : small tablet / large phone ---------- */
@media (max-width: 900px) {
  html { scroll-padding-top: 80px; }
  .section { padding: 64px 0; }
  .section-sm { padding: 44px 0; }
  .container { padding: 0 22px; }
  .section-title { font-size: clamp(28px, 6vw, 40px); }

  /* Nav / Topbar */
  .topbar { display: none; }
  .nav-inner { padding: 0; }
  .logo-img { height: 46px; }
  .nav.scrolled .logo-img { height: 40px; }
  .nav-cta { gap: 8px; }

  /* Hero */
  .hero { padding: 120px 0 110px; }
  .hero-inner { padding: 0 22px; }
  .hero-kicker {
    font-size: 10.5px;
    letter-spacing: 0.24em;
    padding: 6px 12px 6px 4px;
    margin-bottom: 22px;
    gap: 10px;
  }
  .hero-title {
    font-size: clamp(46px, 10vw, 80px);
    line-height: 0.98;
    letter-spacing: -0.035em;
  }
  .hero-sub { font-size: 15px; line-height: 1.65; margin-top: 14px; }
  .hero-meta {
    margin-top: 22px;
    padding: 12px 16px;
    gap: 12px;
    font-size: 12.5px;
    border-radius: 28px;
    width: 100%;
  }
  .hero-meta .price strong { font-size: 16px; }
  .hero-actions { margin-top: 26px; gap: 10px; width: 100%; }
  .hero-actions .btn { flex: 1 1 auto; justify-content: center; }
  .hero-control { bottom: 18px; width: 94%; gap: 14px; }
  .hero-progress-meta .hp-count,
  .hero-progress-meta .hp-total { font-size: 12px; }
  .hero-float-word.hero-place-name {
    font-size: clamp(110px, 28vw, 220px);
    -webkit-text-stroke-width: 2px;
  }

  /* Page hero (tour & page headers) */
  .page-hero { padding: 74px 0 50px; min-height: 24vh; }
  .page-hero-title {
    font-size: clamp(38px, 9vw, 72px);
    margin-top: 18px;
  }
  .page-hero-sub { font-size: 15px; margin-top: 16px; }
  .page-hero-inner .breadcrumb { font-size: 11px; margin-top: 18px; }

  /* Section head stacks */
  .section-head { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 32px; }
  .section-head > div { flex: 1 1 auto; width: 100%; }
  .section-head p, .section-head > p { padding-left: 14px; font-size: 15px; max-width: 100%; flex: 1 1 auto; }

  /* Buttons for small screens */
  .btn { padding: 13px 22px; font-size: 12.5px; letter-spacing: 0.05em; }
  .btn-lg { padding: 15px 26px; font-size: 13px; }

  /* Tour cards */
  .card-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }

  /* Offers */
  .offer-grid { grid-template-columns: 1fr 1fr; gap: 16px; }

  /* Engage */
  .engage-tabs { border-left: 1px solid var(--line); }
  .engage-tab { padding: 16px 18px; }
  .engage-tab h4 { font-size: 19px; }
  .engage-media { min-height: 300px; border-radius: 22px; }

  /* About home */
  .about-home-media { aspect-ratio: 4/5; }
  .about-home-badge { bottom: 18px; left: 18px; padding: 14px 18px; }
  .about-home-badge strong { font-size: 30px; }

  /* CTA inquiry (home) */
  .cta-inquiry-actions { gap: 10px; }
  .cta-inquiry-actions .btn { flex: 1 1 auto; justify-content: center; }
  .inquiry-form { padding: 28px 22px; border-radius: 22px; }
  .inquiry-form--compact { padding: 22px; }
  .inquiry-form-title { font-size: 24px; }

  /* Package detail */
  .pd-meta-row {
    grid-template-columns: 1fr 1fr;
    display: grid;
    gap: 18px;
    padding: 22px;
  }
  .pd-meta-row > div { gap: 12px; }
  .pd-meta-row .icon { width: 42px; height: 42px; font-size: 18px; }
  .pd-meta-row .value { font-size: 16px; }
  .pd-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    aspect-ratio: auto;
  }
  .pd-gallery > div { aspect-ratio: 4/3; }
  .pd-gallery > div:first-child { grid-column: 1 / -1; aspect-ratio: 16/10; }
  .pd-section { margin-top: 40px; }
  .pd-section h2 { font-size: clamp(26px, 5.5vw, 34px); }
  .pd-section p { font-size: 15.5px; line-height: 1.75; }
  .itinerary-item { grid-template-columns: 1fr; gap: 8px; }

  /* Spotlight / Bento */
  .bento-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; gap: 14px; }
  .bento-card.feat-1 { grid-column: span 2; grid-row: span 2; }
  .bento-card.feat-2 { grid-column: span 2; grid-row: span 1; }
  .bento-card.feat-3, .bento-card.feat-4 { grid-column: span 1; }
  .bento-card.feat-5 { grid-column: span 2; }
  .bento-card h3 { font-size: 22px; }
  .bento-card.feat-1 h3 { font-size: 28px; }
  .bento-card .bento-content { padding: 18px; }

  /* Stats band */
  .stats-band { grid-template-columns: repeat(2, 1fr); padding: 32px 22px; gap: 24px; }
  .stats-band > div:nth-child(2)::after { display: none; }
  .stats-band .value { font-size: 38px; }
  .stats-band .label { font-size: 11px; }

  /* Feature grid */
  .feature-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .feature-card { padding: 22px; }
  .feature-card h3 { font-size: 17px; }

  /* FAQ */
  .faq-layout { grid-template-columns: 1fr; gap: 28px; }
  .faq-q { padding: 16px 18px; font-size: 15px; }
  .faq-a { padding: 0 18px 18px; font-size: 14.5px; }
  .faq-filter-row { flex-wrap: wrap; gap: 8px; }

  /* Testimonials */
  .tc-slide { padding: 32px 22px; }
  .tc-slide blockquote { font-size: 18px; line-height: 1.55; }
  .tc-who { gap: 12px; }
  .tc-nav { gap: 10px; }

  /* Blog preview */
  .blog-preview-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .blog-preview-grid .blog-card:first-child { grid-column: span 2; }

  /* Newsletter */
  .newsletter-inner { grid-template-columns: 1fr; gap: 24px; }
  .newsletter-band { padding: 36px 22px; }
  .newsletter-form { flex-direction: column; background: transparent; padding: 0; box-shadow: none; gap: 10px; }
  .newsletter-form input { background: rgba(255, 255, 255, 0.96); border-radius: var(--radius-pill); }
  .newsletter-form button { width: 100%; justify-content: center; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 22px; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 14px; }

  /* Discover dark section */
  .discover { padding: 72px 0 80px; }
  .discover-head p, .center-tag { font-size: 15px; }

  /* Explore regions v2 */
  .explore-regions-v2 { padding: 80px 0 90px; }
  .erv2-title { font-size: clamp(38px, 9vw, 64px); }
  .erv2-lede { font-size: 14.5px; padding-left: 16px; }
  .erv2-cards { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .erv2-card { padding: 22px 18px; min-height: 210px; gap: 10px; }
  .erv2-card-title { font-size: 24px; }
  .erv2-card-desc { font-size: 13px; line-height: 1.55; }
  .erv2-count strong { font-size: 26px; }
  .erv2-go { width: 36px; height: 36px; font-size: 14px; }

  /* Gallery v2 */
  .gallery-v2-section { padding: 60px 0 80px; }
  .gallery-v2-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 110px;
    gap: 14px;
  }
  .gv2-landscape { grid-column: span 6; grid-row: span 3; }
  .gv2-portrait  { grid-column: span 3; grid-row: span 4; }
  .gv2-square    { grid-column: span 3; grid-row: span 3; }
  .gv2-tall      { grid-column: span 3; grid-row: span 4; }
  .gv2-tile:nth-child(5n+3) { grid-column: span 6; grid-row: span 4; }

  /* Mobile drawer — roomier, clearly readable */
  .mobile-drawer { padding: 100px 22px 36px; }
  .mobile-drawer a { font-size: 18px; padding: 14px 0; }
  .mobile-drawer a.sub { font-size: 14px; padding: 8px 0 8px 14px; }

  /* Marquee */
  .marquee-item { font-size: 13px; padding: 0 14px; }

  /* Back-to-top sits above luxury FAB */
  .back-to-top { right: 18px; bottom: 96px; }

  /* Contact/about grids fallback */
  .form-grid { grid-template-columns: 1fr; gap: 14px; }

  /* Lightbox chrome */
  .lightbox-close, .lightbox-nav { width: 44px; height: 44px; }
  .lightbox-close { top: 18px; right: 18px; }
  .lightbox-nav.prev { left: 10px; }
  .lightbox-nav.next { right: 10px; }
  .lightbox-img { max-width: 94vw; max-height: 80vh; }
  .lightbox-caption { bottom: 22px; padding: 0 18px; text-align: center; }
}

/* ---------- ≤ 640px : phone ---------- */
@media (max-width: 640px) {
  .section { padding: 56px 0; }
  .container { padding: 0 18px; }

  .hero { padding: 110px 0 88px; }
  .hero-inner { padding: 0 18px; gap: 20px; }
  .hero-kicker { font-size: 10px; letter-spacing: 0.2em; }
  .hero-kicker .kicker-line { width: 24px; }
  .hero-kicker .kicker-dot { display: none; }
  .hero-title { font-size: clamp(40px, 11.5vw, 64px); }
  .hero-sub { font-size: 14.5px; }
  .hero-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 18px;
    border-radius: 20px;
  }
  .hero-meta .divider { display: none; }
  .hero-meta span { width: 100%; }
  .hero-actions { flex-direction: column; }
  .hero-actions .btn { width: 100%; }

  .page-hero-title { font-size: clamp(34px, 11vw, 56px); }
  .page-hero-sub { font-size: 14.5px; }

  .section-title { font-size: clamp(26px, 7.5vw, 36px); }
  .section-head { margin-bottom: 26px; gap: 14px; }
  .section-head p, .section-head > p { font-size: 14.5px; padding: 4px 0 4px 12px; }
  .eyebrow { font-size: 10.5px; padding: 7px 14px 7px 12px; letter-spacing: 0.2em; }

  /* Offers → single column */
  .offer-grid { grid-template-columns: 1fr; }

  /* Blog preview → single column */
  .blog-preview-grid { grid-template-columns: 1fr; }
  .blog-preview-grid .blog-card:first-child { grid-column: span 1; }

  /* Feature grid → single column for small screens */
  .feature-grid { grid-template-columns: 1fr; }

  /* Stats band */
  .stats-band { grid-template-columns: 1fr 1fr; padding: 28px 18px; gap: 18px; }
  .stats-band > div::after { display: none; }
  .stats-band .value { font-size: 32px; }

  /* Bento */
  .bento-grid { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .bento-card.feat-1, .bento-card.feat-2, .bento-card.feat-3,
  .bento-card.feat-4, .bento-card.feat-5 { grid-column: span 1; grid-row: span 1; }
  .bento-card.feat-1 { grid-row: span 1; }
  .bento-card h3 { font-size: 20px; }
  .bento-card.feat-1 h3 { font-size: 24px; }

  /* Package detail meta */
  .pd-meta-row { grid-template-columns: 1fr; padding: 18px; gap: 14px; }
  .pd-meta-row > div { padding: 0; }
  .pd-gallery > div { aspect-ratio: 4/3; }
  .pd-gallery > div:first-child { aspect-ratio: 4/3; }

  /* CTA band / CTA inquiry */
  .cta-band { padding: 48px 22px; border-radius: 22px; }
  .cta-band h2 { font-size: clamp(26px, 7.5vw, 36px); }
  .cta-inquiry-copy p { font-size: 15px; margin-top: 16px; }
  .cta-bullets li { font-size: 13.5px; }
  .cta-bullets li span { width: 28px; height: 28px; font-size: 10px; }
  .inquiry-form { padding: 24px 18px; border-radius: 20px; }

  /* Explore regions v2 → 1 column */
  .explore-regions-v2 { padding: 64px 0 72px; }
  .erv2-head-top { flex-wrap: wrap; gap: 16px; }
  .erv2-cards { grid-template-columns: 1fr; gap: 14px; }
  .erv2-card { min-height: 190px; }

  /* Footer grid → stacked */
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }

  /* Gallery v2 → flowing 2-col */
  .gallery-v2-section { padding: 48px 0 64px; }
  .gallery-v2-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: auto;
    gap: 12px;
  }
  .gv2-tile,
  .gv2-landscape,
  .gv2-portrait,
  .gv2-square,
  .gv2-tall,
  .gv2-tile:nth-child(5n+3) {
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 4 / 5;
    border-radius: 16px;
  }

  /* Tour card grid → comfortable 2-up */
  .card-grid { grid-template-columns: 1fr; gap: 18px; }

  /* Testimonial carousel */
  .tc-slide { padding: 24px 18px; border-radius: 20px; }
  .tc-slide blockquote { font-size: 16.5px; }
  .tc-nav button { width: 38px; height: 38px; }

  /* FAQ */
  .faq-q-chip { display: none; }
  .faq-q { font-size: 14.5px; }

  /* Engage */
  .engage-tab { padding: 14px 16px; }
  .engage-tab h4 { font-size: 17px; }
  .engage-tab p { font-size: 13.5px; }
  .engage-media { min-height: 240px; aspect-ratio: 4/3; }

  /* About preview home */
  .about-home-badge { bottom: 14px; left: 14px; padding: 12px 16px; }
  .about-home-badge strong { font-size: 26px; }

  /* About Us inline spacing reduction */
  .about-home .section-title { font-size: clamp(26px, 7.5vw, 36px); }
}

/* ---------- ≤ 420px : very small phone (e.g. SE / narrow Android) ---------- */
@media (max-width: 420px) {
  .container { padding: 0 16px; }
  .section { padding: 48px 0; }
  .section-sm { padding: 36px 0; }

  .logo-img { height: 42px; }
  .nav.scrolled .logo-img { height: 36px; }
  .mobile-toggle { width: 40px; height: 40px; }

  .hero { padding: 100px 0 80px; }
  .hero-title { font-size: clamp(36px, 13vw, 54px); }
  .hero-sub { font-size: 14px; }
  .hero-meta { padding: 12px 14px; font-size: 11.5px; }
  .hero-meta .price strong { font-size: 14.5px; }
  .hero-float-word.hero-place-name { -webkit-text-stroke-width: 2px; }

  .page-hero { padding: 84px 0 44px; min-height: 26vh; }
  .page-hero-title { font-size: clamp(30px, 11vw, 48px); }

  .section-title { font-size: clamp(24px, 8vw, 32px); }

  .btn { padding: 12px 18px; font-size: 12px; }
  .btn-lg { padding: 14px 22px; }

  .stats-band { grid-template-columns: 1fr 1fr; padding: 24px 16px; gap: 14px; }
  .stats-band .value { font-size: 28px; }
  .stats-band .label { font-size: 10.5px; letter-spacing: 0.14em; }

  .erv2-title { font-size: clamp(30px, 10vw, 44px); }
  .erv2-card { padding: 20px 16px; min-height: 180px; }
  .erv2-card-title { font-size: 22px; }

  .inquiry-form { padding: 20px 16px; }
  .inquiry-form-title { font-size: 20px; }

  .mobile-drawer { padding: 90px 18px 30px; }
  .mobile-drawer a { font-size: 16.5px; }

  .tc-slide blockquote { font-size: 15.5px; }
}

/* ---------- Touch / hover capability refinements ---------- */
@media (hover: none) {
  /* On touch devices, disable hover-specific heavy transforms for smoother scroll */
  .tcp:hover, .offer-card:hover, .blog-card:hover, .region-card:hover,
  .feature-card:hover, .bento-card:hover, .erv2-card:hover, .gv2-tile:hover {
    transform: none;
  }
  .dropdown { display: none; }
  /* Ensure accordion-like items don't require hover to reveal on tap */
}

/* ---------- Landscape phones — avoid oversized hero vertical ---------- */
@media (max-width: 900px) and (orientation: landscape) {
  .hero { padding: 100px 0 90px; }
  .hero-float-word.hero-place-name { font-size: clamp(90px, 22vw, 180px); }
  .page-hero { padding: 80px 0 40px; min-height: 0; }
}

/* ---------- Hi-DPI small screens — slightly sharper images ---------- */
@media (max-width: 900px) and (min-resolution: 2dppx) {
  .hero.hero--luxe .hero-bg-layer .hero-video { transform: none !important; }
}

/* ============================================================
   Premium Package Detail / Cab / Certifications / Reviews
   Added for blue+pink luxury redesign
   ============================================================ */

/* ---------- Package Detail HERO ---------- */
.pd-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: flex-end;
  padding: 140px 0 64px;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.pd-hero-bg {
  position: absolute; inset: 0; z-index: -2;
  overflow: hidden;
}
.pd-hero-bg img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.05);
  filter: saturate(1.05);
}
.pd-hero-scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(10, 18, 48, 0.22) 0%, rgba(10, 18, 48, 0.15) 30%, rgba(10, 18, 48, 0.78) 100%),
    radial-gradient(1200px 600px at 10% 110%, rgba(236, 72, 153, 0.35), transparent 60%),
    radial-gradient(1000px 500px at 90% 100%, rgba(37, 99, 235, 0.35), transparent 60%);
}
.pd-hero-inner { position: relative; z-index: 2; width: 100%; }
.pd-hero-title {
  font-family: var(--serif);
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1.02; letter-spacing: -0.025em;
  color: #fff; margin: 16px 0 10px;
  text-shadow: 0 14px 40px rgba(0,0,0,0.35);
}
.pd-hero-tagline {
  color: rgba(255,255,255,0.88);
  font-size: clamp(15px, 1.6vw, 18px);
  max-width: 680px; line-height: 1.6;
}
.pd-hero-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
  margin-top: 26px; color: rgba(255,255,255,0.92);
  font-size: 14.5px;
}
.pd-hero-meta .dot {
  width: 4px; height: 4px; background: rgba(255,255,255,0.55); border-radius: 50%;
}
.pd-hero-meta svg { vertical-align: -2px; margin-right: 6px; }
.pd-hero-meta .price strong {
  font-family: var(--serif);
  font-size: 22px; font-weight: 500;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-left: 4px;
}
.pd-hero-actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 14px; }

.eyebrow--on-dark {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.22);
  color: #fff; backdrop-filter: blur(10px);
}
.eyebrow--on-dark::before { box-shadow: 0 0 0 3px rgba(255,255,255,0.18); }
.breadcrumb--on-dark { color: rgba(255,255,255,0.85); }
.breadcrumb--on-dark a { color: rgba(255,255,255,0.85); }
.breadcrumb--on-dark a:hover { color: #fff; }
.breadcrumb--on-dark .sep { color: rgba(255,255,255,0.55); margin: 0 8px; }

/* ---------- Buttons helpers ---------- */
.btn-glass {
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff; backdrop-filter: blur(14px);
}
.btn-glass:hover { background: rgba(255,255,255,0.22); transform: translateY(-2px); }
.btn-whatsapp {
  background: linear-gradient(135deg, #25D366, #128C7E);
  color: #fff; border: none;
}
.btn-whatsapp:hover { filter: brightness(1.07); transform: translateY(-2px); box-shadow: 0 18px 38px -16px rgba(37, 211, 102, 0.6); }

.btn-sm {
  padding: 9px 16px; font-size: 13.5px; border-radius: 12px;
  display: inline-flex; align-items: center; gap: 6px;
}
.btn-lg { padding: 16px 28px; font-size: 15.5px; border-radius: 16px; }

.btn-outline {
  background: transparent; color: var(--ink);
  border: 1.5px solid var(--line-strong);
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px; border-radius: 14px; font-weight: 600;
  transition: all .35s var(--ease);
}
.btn-outline:hover {
  border-color: transparent;
  background: var(--grad-brand); color: #fff;
  box-shadow: var(--shadow-pink);
  transform: translateY(-2px);
}

/* ---------- PD Layout ---------- */
.pd-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 56px;
  align-items: start;
}
.pd-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  height: 480px;
}
.pd-gallery > div {
  position: relative; overflow: hidden; cursor: zoom-in;
  transition: transform 0.55s var(--ease);
}
.pd-gallery > div img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.pd-gallery > div:hover img { transform: scale(1.08); }
.pd-gallery > div:first-child { grid-column: 1 / 3; grid-row: 1 / 3; }

.pd-meta-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin: 38px 0 12px;
  background: var(--surface);
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.pd-meta-row > div { display: flex; gap: 14px; align-items: center; }
.pd-meta-row .icon {
  width: 44px; height: 44px; border-radius: 12px;
  display: grid; place-items: center;
  background: var(--grad-soft); color: var(--ink);
  font-size: 20px; flex: 0 0 44px;
}
.pd-meta-row .label { font-size: 11.5px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ink-soft); font-weight: 700; }
.pd-meta-row .value { font-family: var(--serif); font-size: 17px; color: var(--ink); margin-top: 2px; }

.pd-section { margin-top: 56px; }
.pd-section h2 {
  font-family: var(--serif);
  font-size: clamp(26px, 3.2vw, 36px);
  letter-spacing: -0.02em;
  margin-bottom: 18px;
}
.pd-section h2 em {
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic; font-weight: 500;
}
.pd-section p { font-size: 16px; color: var(--ink-dim); line-height: 1.8; margin-bottom: 14px; }

/* ---------- Sub-destinations ---------- */
.subdest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 22px;
}
.subdest-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.45s var(--ease);
}
.subdest-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  border-color: transparent;
}
.subdest-media { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.subdest-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.subdest-card:hover .subdest-media img { transform: scale(1.1); }
.subdest-body { padding: 20px; }
.subdest-body h4 {
  font-family: var(--serif); font-size: 20px; margin-bottom: 8px;
  color: var(--ink);
}
.subdest-body p { font-size: 14px; color: var(--ink-dim); line-height: 1.65; margin-bottom: 16px; }
.subdest-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- Highlights ---------- */
.highlight-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px;
}
.highlight-list li {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 12px 14px; border-radius: 12px;
  background: var(--bg-cool);
  font-size: 14.5px; color: var(--ink);
  transition: all .35s var(--ease);
}
.highlight-list li:hover { background: var(--grad-soft); transform: translateX(4px); }
.highlight-list .check {
  display: grid; place-items: center;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--grad-brand); color: #fff;
  flex: 0 0 24px; font-size: 13px;
  box-shadow: 0 4px 12px -4px rgba(236, 72, 153, 0.4);
}

/* ---------- Itinerary ---------- */
.itinerary-list {
  list-style: none; padding: 0; margin: 20px 0 0;
  position: relative;
}
.itinerary-list::before {
  content: ''; position: absolute;
  top: 0; bottom: 0; left: 22px; width: 2px;
  background: linear-gradient(180deg, var(--blue-1), var(--pink-1));
  opacity: 0.35; border-radius: 2px;
}
.itinerary-item {
  position: relative; display: flex; gap: 22px;
  padding: 14px 0 26px 0;
}
.itinerary-day {
  flex: 0 0 46px; height: 46px; width: 46px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--grad-brand); color: #fff;
  font-family: var(--serif); font-size: 12px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  box-shadow: 0 10px 26px -10px rgba(236, 72, 153, 0.55);
  z-index: 1; position: relative;
}
.itinerary-item h4 {
  font-family: var(--serif); font-size: 19px; color: var(--ink); margin-bottom: 6px;
}
.itinerary-item p { font-size: 14.5px; line-height: 1.72; color: var(--ink-dim); }

/* ---------- Inclusions ---------- */
.incl-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  margin-top: 16px;
}
.incl-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow-sm);
}
.incl-card h4 { font-family: var(--serif); font-size: 18px; margin-bottom: 12px; }
.incl-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.incl-card li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ink-dim); line-height: 1.6; }
.incl-ok { color: var(--blue-1); font-size: 17px; flex: 0 0 auto; margin-top: 2px; }
.incl-no { color: var(--pink-1); font-weight: 700; flex: 0 0 14px; }

/* ---------- Sticky Side ---------- */
.pd-side {
  position: sticky; top: 110px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  isolation: isolate;
}
.pd-side::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(400px 180px at 100% -10%, rgba(236, 72, 153, 0.12), transparent 60%);
}
.price-label { font-size: 11.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); font-weight: 700; }
.price-big {
  font-family: var(--serif); font-size: 42px; line-height: 1;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 8px 0 2px;
}
.price-per { font-size: 13px; color: var(--ink-soft); margin-bottom: 4px; }
.price-compare { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 13px; }
.price-compare .strike { text-decoration: line-through; color: var(--ink-soft); }
.price-compare .save {
  padding: 3px 8px; border-radius: 8px;
  background: rgba(34, 197, 94, 0.14); color: var(--success);
  font-weight: 700;
}
.side-divider { height: 1px; background: var(--line); margin: 20px 0; }
.side-field {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 0; font-size: 14px;
}
.side-field span { color: var(--ink-soft); }
.side-field strong { color: var(--ink); font-weight: 600; }
.side-fine { margin-top: 16px; font-size: 12px; color: var(--ink-soft); text-align: center; line-height: 1.55; }

/* ---------- Lightbox ---------- */
.pd-lightbox {
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(10, 14, 40, 0.92);
  display: grid; place-items: center;
  backdrop-filter: blur(12px);
}
.pd-lightbox img { max-width: 92vw; max-height: 86vh; border-radius: var(--radius-lg); box-shadow: 0 30px 90px rgba(0,0,0,0.6); }
.pd-lb-btn {
  position: absolute; z-index: 2;
  width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.1); color: #fff;
  display: grid; place-items: center; cursor: pointer;
  transition: all .3s var(--ease);
  backdrop-filter: blur(10px);
}
.pd-lb-btn:hover { background: rgba(255,255,255,0.22); transform: scale(1.06); }
.pd-lb-close { top: 28px; right: 28px; }
.pd-lb-prev { top: 50%; left: 28px; transform: translateY(-50%); }
.pd-lb-next { top: 50%; right: 28px; transform: translateY(-50%); }
.pd-lb-prev:hover, .pd-lb-next:hover { transform: translateY(-50%) scale(1.06); }

/* ---------- Modal ---------- */
.pd-modal-bg {
  position: fixed; inset: 0; z-index: 1200;
  background: rgba(10, 14, 40, 0.65);
  backdrop-filter: blur(14px);
  display: grid; place-items: center;
  padding: 24px;
  overflow-y: auto;
}
.pd-modal {
  width: min(640px, 100%);
  background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: 0 40px 100px rgba(0,0,0,0.35);
  overflow: hidden;
  position: relative;
}
.pd-modal-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 24px 28px 8px;
  gap: 20px;
  border-bottom: 1px solid var(--line);
}
.pd-modal-head h3 {
  font-family: var(--serif); font-size: 22px; margin-top: 10px;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-modal-close {
  flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--line); background: var(--bg-cool);
  display: grid; place-items: center; cursor: pointer;
  transition: all .3s var(--ease); color: var(--ink);
}
.pd-modal-close:hover { background: var(--grad-brand); color: #fff; border-color: transparent; }

/* ---------- Reviews Section ---------- */
.reviews-section {
  background: linear-gradient(180deg, var(--bg) 0%, #FFF0F7 100%);
}
.reviews-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 44px;
  box-shadow: var(--shadow-lg);
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 48px;
  align-items: center;
  position: relative; overflow: hidden;
}
.reviews-card::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(400px 220px at 0% 0%, rgba(37, 99, 235, 0.08), transparent 60%),
    radial-gradient(400px 220px at 100% 100%, rgba(236, 72, 153, 0.1), transparent 60%);
}
.reviews-content, .reviews-snippets { position: relative; z-index: 1; }
.reviews-stars {
  display: flex; align-items: center; gap: 6px; margin: 18px 0 16px;
  font-size: 14px; color: var(--ink-dim);
}
.reviews-stars .star { font-size: 22px; color: var(--gold); }
.reviews-stars .star.filled { fill: var(--gold); color: var(--gold); }
.reviews-score { font-family: var(--serif); font-size: 20px; color: var(--ink); font-weight: 500; margin-left: 8px; }
.reviews-count { margin-left: 6px; }
.reviews-actions { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.reviews-snippets { display: grid; gap: 14px; }
.review-snippet {
  background: var(--bg-cool);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px 20px;
  transition: all .35s var(--ease);
}
.review-snippet:hover { transform: translateX(6px); background: var(--grad-soft); box-shadow: var(--shadow-sm); }
.review-stars { display: flex; gap: 2px; margin-bottom: 10px; }
.review-stars .star { font-size: 16px; color: var(--gold); fill: var(--gold); }
.review-snippet p { font-size: 14.5px; color: var(--ink); line-height: 1.6; font-style: italic; }
.review-name { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--ink-soft); font-weight: 600; }

/* ---------- Suggested ---------- */
.suggested-section { background: linear-gradient(180deg, #FFF0F7 0%, var(--bg-cool) 100%); }
.suggested-controls { display: flex; align-items: center; gap: 8px; }
.suggested-controls button {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1.5px solid var(--line-strong);
  background: var(--surface); color: var(--ink);
  display: grid; place-items: center; cursor: pointer;
  transition: all .3s var(--ease); font-size: 18px;
}
.suggested-controls button:hover:not(.btn) {
  background: var(--grad-brand); color: #fff; border-color: transparent;
  box-shadow: var(--shadow-pink); transform: translateY(-2px);
}
.suggested-scroller {
  display: flex; gap: 22px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 16px 4px 28px;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.suggested-scroller::-webkit-scrollbar { display: none; }
.suggested-item {
  flex: 0 0 340px;
  max-width: 340px;
  scroll-snap-align: start;
}

/* ---------- Cab Service (Odisha) ---------- */
.cab-section { background: linear-gradient(180deg, var(--bg-cool) 0%, #FFF0F7 100%); }
.cab-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 22px;
  margin-top: 32px;
}
.cab-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.45s var(--ease);
  position: relative;
}
.cab-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}
.cab-media { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.cab-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.cab-card:hover .cab-media img { transform: scale(1.08); }
.cab-price-badge {
  position: absolute; top: 14px; right: 14px;
  padding: 8px 14px; border-radius: var(--radius-pill);
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(10px);
  color: var(--ink);
  font-family: var(--serif); font-size: 16px; font-weight: 600;
  box-shadow: var(--shadow-sm);
}
.cab-price-badge small { font-size: 11px; color: var(--ink-soft); font-weight: 500; margin-left: 2px; }
.cab-body { padding: 22px; }
.cab-body h3 {
  font-family: var(--serif); font-size: 20px; color: var(--ink);
  margin-bottom: 6px;
}
.cab-desc { font-size: 13.5px; color: var(--ink-dim); line-height: 1.6; margin-bottom: 14px; }
.cab-meta {
  display: flex; flex-wrap: wrap; gap: 14px;
  font-size: 12.5px; color: var(--ink-soft); font-weight: 600;
  padding-top: 12px; border-top: 1px dashed var(--line);
}
.cab-meta svg { margin-right: 4px; vertical-align: -2px; color: var(--blue-1); }

/* ---------- Certifications ---------- */
.certifications-section {
  background: linear-gradient(180deg, #FFFFFF 0%, #EEF3FF 100%);
}
.certifications-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 22px;
  margin-top: 36px;
}
.cert-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.45s var(--ease);
  position: relative;
}
.cert-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}
.cert-media {
  position: relative; aspect-ratio: 3/4; overflow: hidden;
  background: var(--grad-soft);
}
.cert-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.cert-card:hover .cert-media img { transform: scale(1.06); }
.cert-glow {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 55%, rgba(15, 25, 65, 0.75) 100%);
  opacity: 0; transition: opacity .4s var(--ease);
}
.cert-card:hover .cert-glow { opacity: 1; }
.cert-body { padding: 22px; }
.cert-body h4 {
  font-family: var(--serif); font-size: 18px; color: var(--ink);
  line-height: 1.25; margin-bottom: 6px;
}
.cert-year {
  display: inline-block; font-size: 11.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--blue-1); font-weight: 700;
  background: rgba(37, 99, 235, 0.1);
  padding: 4px 10px; border-radius: var(--radius-pill);
  margin-bottom: 10px;
}
.cert-issuer {
  font-size: 12.5px; color: var(--ink-soft); font-weight: 600;
  margin-bottom: 8px;
}
.cert-desc { font-size: 13.5px; color: var(--ink-dim); line-height: 1.65; }

.cert-upload-hint {
  margin-top: 34px;
  padding: 20px 24px;
  border-radius: var(--radius);
  background: rgba(236, 72, 153, 0.06);
  border: 1px dashed rgba(236, 72, 153, 0.3);
  display: grid; grid-template-columns: auto 1fr; gap: 18px;
  align-items: center;
}
.cert-upload-hint > span {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--pink-1);
}
.cert-upload-hint > span svg {
  width: 28px; height: 28px; padding: 6px; border-radius: 50%;
  background: var(--grad-brand); color: #fff;
}
.cert-upload-hint p { font-size: 13px; color: var(--ink-dim); line-height: 1.65; margin: 0; }
.cert-upload-hint code {
  padding: 2px 6px; border-radius: 6px; background: rgba(15, 25, 65, 0.08);
  font-size: 12px; color: var(--blue-1); font-weight: 600;
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .pd-layout { grid-template-columns: 1fr; gap: 36px; }
  .pd-side { position: static; }
  .reviews-card { grid-template-columns: 1fr; padding: 28px; gap: 28px; }
  .pd-gallery { grid-template-columns: repeat(3, 1fr); height: 400px; }
  .pd-gallery > div:first-child { grid-column: 1 / 3; }
  .pd-meta-row { grid-template-columns: 1fr 1fr; }
  .incl-grid { grid-template-columns: 1fr; }
  .highlight-list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .pd-gallery { grid-template-columns: 1fr 1fr; height: 340px; }
  .pd-gallery > div:first-child { grid-column: 1 / 3; grid-row: 1 / 2; }
  .pd-gallery > div:nth-child(n+5) { display: none; }
  .pd-meta-row { grid-template-columns: 1fr; }
  .reviews-card { padding: 24px; }
  .suggested-item { flex: 0 0 280px; max-width: 280px; }
  .pd-hero { padding: 120px 0 48px; min-height: 68vh; }
  .pd-hero-actions .btn { flex: 1 1 auto; justify-content: center; }
  .cert-upload-hint { grid-template-columns: 1fr; }
}

/* ============================================================
   Hero v3 — Video-first, premium, dynamic tone
   ============================================================ */
.hero.hero--video {
  height: 78vh;
  min-height: 580px;
  max-height: 820px;
  color: #fff;
}

/* Three-layer scrim system for readability over any video */
.hero-scrim {
  position: absolute; inset: 0; z-index: 2;
  pointer-events: none;
}
.hero-scrim-bottom {
  background: linear-gradient(
    180deg,
    rgba(5, 8, 25, 0) 0%,
    rgba(5, 8, 25, 0) 28%,
    rgba(5, 8, 25, 0.45) 60%,
    rgba(5, 8, 25, 0.88) 92%,
    rgba(5, 8, 25, 0.95) 100%
  );
}
.hero-scrim-left {
  background: linear-gradient(
    100deg,
    rgba(5, 8, 25, 0.72) 0%,
    rgba(5, 8, 25, 0.32) 28%,
    rgba(5, 8, 25, 0) 58%
  );
}
.hero-scrim-vignette {
  background:
    radial-gradient(140% 85% at 50% 45%, transparent 50%, rgba(0, 0, 0, 0.38) 100%),
    radial-gradient(500px 320px at 18% 80%, rgba(236, 72, 153, 0.14), transparent 70%),
    radial-gradient(500px 320px at 85% 80%, rgba(37, 99, 235, 0.14), transparent 70%);
}

.hero.hero--video .hero-stage::before,
.hero.hero--video .hero-stage::after { display: none; }

/* Legacy giant watermark place-name — retired in favour of the glass
   content card below. Kept hidden so any stray markup never reappears. */
.hero-placename-wrap { display: none !important; }

/* ---- Premium glass content card (lower-left) ---- */
/* Box removed — content sits directly on the video, centered */
.hero.hero--video .hero-card {
  position: relative;
  padding: 0;
  border-radius: 0;
  background: none;
  border: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero.hero--video .hero-card::before,
.hero.hero--video .hero-card::after { display: none; }

/* ---- Destination badge ---- */
.hero-place-badge {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  padding: 8px 8px 8px 8px;
  margin-bottom: 18px;
  font-family: var(--sans);
  position: relative;
}
.hpb-pin {
  display: inline-grid; place-items: center;
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--grad-brand);
  color: #fff; font-size: 15px;
  box-shadow: 0 8px 20px -8px rgba(6, 182, 212, 0.6);
}
.hpb-name {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(20px, 2vw, 26px);
  color: #fff;
  letter-spacing: -0.01em;
  line-height: 1;
}
.hpb-divider { width: 1px; height: 18px; background: rgba(255, 255, 255, 0.28); }
.hpb-region {
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: rgba(255, 255, 255, 0.82);
}
.hpb-count {
  margin-left: 6px;
  font-family: var(--serif); font-style: italic;
  font-size: 13px; color: rgba(255, 255, 255, 0.6);
}

/* Top "Now Playing" ribbon — premium glass pill with a stronger dark
   inner so the destination name reads on every video. */
.hero-topline {
  position: absolute; z-index: 5;
  top: clamp(20px, 2.6vw, 36px);
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 18px 10px 14px;
  background: rgba(8, 6, 22, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: var(--radius-pill);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  box-shadow:
    0 14px 32px -16px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: #ffffff; font-weight: 700;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.hero-topline-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #EC4899;
  box-shadow: 0 0 0 4px rgba(236, 72, 153, 0.22);
  animation: hero-pulse 1.8s var(--ease) infinite;
}
@keyframes hero-pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(236, 72, 153, 0.22); }
  50% { box-shadow: 0 0 0 10px rgba(236, 72, 153, 0); }
}
.hero-topline-label { opacity: 0.7; }
.hero-topline-name {
  letter-spacing: -0.005em; text-transform: none;
  font-family: var(--serif); font-weight: 500; font-style: italic;
  font-size: 15px; padding-left: 8px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

/* Hero inner — fully centered premium frame */
.hero.hero--video .hero-inner {
  position: relative; z-index: 5;
  width: 100%;
  padding: 0 clamp(24px, 5vw, 64px);
  display: flex; align-items: center; justify-content: center;
  height: 100%;
}
.hero.hero--video .hero-main {
  width: 100%;
  max-width: 840px;
  margin: 0 auto;
  text-align: center;
  padding-bottom: clamp(40px, 5vw, 72px);
}

.hero.hero--video .hero-kicker {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 22px;
}
.hero.hero--video .hero-kicker .kicker-line {
  width: 44px; height: 2px;
  background: var(--grad-brand);
  border-radius: 2px;
}
.hero.hero--video .hero-kicker .kicker-count {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: 15px; letter-spacing: -0.005em; text-transform: none;
  color: #fff;
}
.hero.hero--video .hero-kicker .kicker-dot { opacity: 0.5; }

.hero.hero--video .hero-title {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(36px, 5vw, 68px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 auto 18px;
  text-align: center;
}
.hero.hero--video .hero-title .line { display: block; }
.hero.hero--video .hero-title .italic {
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(120deg, #A5F3FC 0%, #FFFFFF 46%, #FBCFE8 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero.hero--video .hero-sub {
  font-size: clamp(14.5px, 1.3vw, 17px);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.92);
  max-width: 540px;
  margin: 0 0 26px;
}

.hero.hero--video .hero-meta {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 10px 12px;
  margin-bottom: 28px;
}
.hero.hero--video .hero-meta .hm-item {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 14px;
  font-size: 13px; font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-pill);
  backdrop-filter: blur(6px);
}
.hero.hero--video .hero-meta svg { opacity: 0.9; }
.hero.hero--video .hero-meta .hm-price {
  background: rgba(255, 255, 255, 0.95);
  border-color: transparent;
  color: var(--ink);
}
.hero.hero--video .hero-meta .hm-price small { font-size: 11px; opacity: 0.65; font-weight: 600; }
.hero.hero--video .hero-meta .hm-price strong {
  font-family: var(--serif); font-weight: 600; font-size: 17px;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero.hero--video .hero-actions {
  display: flex; flex-wrap: wrap; gap: 12px;
}
.btn.btn-primary-light {
  background: #fff; color: var(--ink);
  border: 1px solid transparent;
  padding: 16px 26px; border-radius: 16px;
  font-weight: 700; font-size: 14.5px;
  display: inline-flex; align-items: center; gap: 8px;
  box-shadow: 0 20px 45px -20px rgba(0, 0, 0, 0.45);
  transition: all .35s var(--ease);
}
.btn.btn-primary-light:hover {
  background: var(--grad-brand); color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 22px 50px -16px rgba(236, 72, 153, 0.55);
}
.btn.btn-call-ghost {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  padding: 16px 22px; border-radius: 16px;
  font-weight: 700; font-size: 14.5px;
  display: inline-flex; align-items: center; gap: 8px;
  backdrop-filter: blur(12px);
  transition: all .35s var(--ease);
}
.btn.btn-call-ghost:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.45);
  transform: translateY(-2px);
}

/* Dot selector */
.hero-dots {
  position: absolute; z-index: 5;
  right: clamp(24px, 3vw, 56px);
  bottom: clamp(70px, 9vw, 120px);
  display: flex; flex-direction: column; gap: 10px;
  max-height: 60vh; overflow-y: auto;
  scrollbar-width: none;
}
.hero-dots::-webkit-scrollbar { display: none; }
.hero-dot {
  appearance: none; border: 0; background: transparent; cursor: pointer;
  display: flex; align-items: center; gap: 12px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px; font-weight: 600; letter-spacing: 0.06em;
  padding: 4px 0; transition: color .3s var(--ease);
}
.hero-dot::before {
  content: '';
  width: 20px; height: 2px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  transition: all .35s var(--ease);
}
.hero-dot:hover { color: rgba(255, 255, 255, 0.95); }
.hero-dot:hover::before { width: 32px; background: rgba(255, 255, 255, 0.7); }
.hero-dot.is-active {
  color: #fff;
}
.hero-dot.is-active::before {
  width: 44px;
  background: var(--grad-brand);
  box-shadow: 0 0 12px rgba(236, 72, 153, 0.45);
}
.hero-dot-label { white-space: nowrap; }

/* Text-tone overrides: dark video ? lighten text; light video ? darken */
.hero[data-text-tone="dark"] .hero-title,
.hero[data-text-tone="dark"] .hero-sub,
.hero[data-text-tone="dark"] .hero-kicker,
.hero[data-text-tone="dark"] .hero-meta {
  color: #0F1941;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.35);
}
.hero[data-text-tone="dark"] .hero-title .italic {
  background: linear-gradient(120deg, #2563EB 0%, #EC4899 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Mobile */
@media (max-width: 900px) {
  .hero.hero--video { height: 90vh; min-height: 620px; }
  .hero.hero--video .hero-main { padding-bottom: 80px; max-width: 100%; }
  .hero-placename {
    font-size: clamp(90px, 30vw, 180px);
    text-align: center; width: 100%;
  }
  .hero-placename-wrap { justify-content: center; padding-right: 0; padding-top: 80px; align-items: flex-start; }
  .hero-dots { display: none; }
  .hero-topline { top: 14px; font-size: 10.5px; padding: 7px 12px; }
  .hero-topline-name { font-size: 13px; }
  .hero.hero--video .hero-actions { flex-direction: column; align-items: stretch; }
  .hero.hero--video .hero-actions .btn { justify-content: center; }
}

/* ============================================================
   btn-call
   ============================================================ */
.btn.btn-call {
  background: linear-gradient(135deg, #2563EB, #1E40AF);
  color: #fff; border: none;
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700;
  transition: all .35s var(--ease);
}
.btn.btn-call:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 18px 38px -16px rgba(37, 99, 235, 0.55);
}

/* ============================================================
   Destination page — premium detail layout
   ============================================================ */
.dest-hero {
  position: relative;
  min-height: 72vh;
  display: flex; align-items: flex-end;
  padding: 140px 0 64px;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.dest-hero-bg {
  position: absolute; inset: 0; z-index: -2;
  overflow: hidden;
}
.dest-hero-bg img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.04);
  filter: saturate(1.05);
  animation: hero-kenburns 14s var(--ease) infinite alternate;
}
.dest-hero-scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(10, 18, 48, 0.28) 0%, rgba(10, 18, 48, 0.14) 30%, rgba(10, 18, 48, 0.80) 100%),
    radial-gradient(900px 400px at 8% 100%, rgba(236, 72, 153, 0.32), transparent 60%),
    radial-gradient(900px 400px at 92% 100%, rgba(37, 99, 235, 0.32), transparent 60%);
}
.dest-hero-inner { position: relative; z-index: 2; width: 100%; }

.dest-hero-title {
  font-family: var(--serif);
  font-size: clamp(44px, 7vw, 92px);
  line-height: 0.98;
  letter-spacing: -0.03em;
  font-weight: 400;
  color: #fff;
  margin: 16px 0 12px;
  text-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}
.dest-hero-tagline {
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--serif); font-style: italic; font-weight: 400;
  font-size: clamp(17px, 1.9vw, 22px);
  max-width: 640px;
  line-height: 1.5;
}
.dest-hero-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
  margin-top: 26px; color: rgba(255, 255, 255, 0.92);
  font-size: 14.5px;
}
.dest-hero-meta .dot {
  width: 4px; height: 4px;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 50%;
}
.dest-hero-meta svg { vertical-align: -2px; margin-right: 6px; }

.dest-hero-actions {
  display: flex; flex-wrap: wrap; gap: 12px;
  margin-top: 32px;
}

/* Layout */
.dest-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 56px;
  align-items: start;
}
.dest-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  height: 460px;
}
.dest-gallery > button {
  appearance: none; border: 0; padding: 0; background: transparent;
  position: relative; overflow: hidden; cursor: zoom-in;
}
.dest-gallery > button img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.dest-gallery > button:hover img { transform: scale(1.08); }
.dest-gallery > button:first-child { grid-column: 1 / 3; grid-row: 1 / 3; }

.dest-section { margin-top: 56px; }
.dest-section h2 {
  font-family: var(--serif);
  font-size: clamp(26px, 3.2vw, 36px);
  letter-spacing: -0.02em;
  margin-bottom: 18px;
}
.dest-section h2 em {
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic; font-weight: 500;
}
.dest-section p {
  font-size: 16px; line-height: 1.82;
  color: var(--ink-dim); margin-bottom: 14px;
}
.dest-section p.dest-lead {
  font-size: 18px; color: var(--ink);
  font-family: var(--serif); font-weight: 400;
  line-height: 1.7;
}

.incl-card-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 22px;
}
.incl-card-list li {
  display: flex; gap: 10px; align-items: center;
  padding: 10px 14px; border-radius: 12px;
  background: var(--bg-cool);
  font-size: 14px; color: var(--ink);
  transition: all .35s var(--ease);
}
.incl-card-list li:hover { background: var(--grad-soft); transform: translateX(4px); }
.incl-card-list .incl-ok { color: var(--blue-1); font-size: 16px; flex: 0 0 auto; }

/* Parent package callout */
.dest-parent-card {
  margin-top: 56px;
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 22px;
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
}
.dest-parent-card::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background: radial-gradient(400px 180px at 100% 0%, rgba(236, 72, 153, 0.08), transparent 60%);
  pointer-events: none;
}
.dest-parent-media {
  position: relative; z-index: 1;
  border-radius: var(--radius);
  overflow: hidden; aspect-ratio: 4/3;
}
.dest-parent-media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1s var(--ease);
}
.dest-parent-card:hover .dest-parent-media img { transform: scale(1.06); }
.dest-parent-body { position: relative; z-index: 1; }
.dest-parent-body h3 {
  font-family: var(--serif); font-size: 26px; margin: 10px 0 6px;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.dest-parent-body p {
  color: var(--ink-dim);
  font-family: var(--serif); font-style: italic;
  font-size: 15px; margin-bottom: 14px;
}
.dest-parent-meta {
  display: flex; align-items: center; gap: 12px;
  font-size: 13.5px; color: var(--ink-soft);
  margin-bottom: 18px;
}
.dest-parent-meta .dot {
  width: 4px; height: 4px;
  background: var(--ink-soft); border-radius: 50%;
}
.dest-parent-meta strong {
  font-family: var(--serif);
  font-size: 17px; font-weight: 500;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.dest-parent-meta svg { vertical-align: -2px; margin-right: 4px; }

/* Sidebar */
.dest-side {
  position: sticky; top: 110px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 26px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  isolation: isolate;
}
.dest-side::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(340px 160px at 100% -10%, rgba(236, 72, 153, 0.12), transparent 60%);
}
.dest-side-pkg {
  font-family: var(--serif); font-size: 22px;
  color: var(--ink); margin-top: 6px; line-height: 1.2;
}
.dest-side-from {
  margin-top: 8px; font-size: 14px; color: var(--ink-dim);
}
.dest-side-from strong {
  font-family: var(--serif);
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 500;
  font-size: 19px;
  padding-left: 4px;
}

/* Sibling grid */
.dest-sibling-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 22px;
  margin-top: 28px;
}
.dest-sibling-card {
  display: block;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.5s var(--ease);
  color: inherit;
  text-decoration: none;
  height: 100%;
}
.dest-sibling-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}
.dest-sibling-media { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.dest-sibling-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.dest-sibling-card:hover .dest-sibling-media img { transform: scale(1.1); }
.dest-sibling-body { padding: 20px; }
.dest-sibling-body h4 {
  font-family: var(--serif); font-size: 20px;
  color: var(--ink); margin-bottom: 8px; line-height: 1.25;
}
.dest-sibling-body p {
  font-size: 13.5px; color: var(--ink-dim);
  line-height: 1.65; margin-bottom: 14px;
}
.dest-sibling-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700;
  letter-spacing: 0.02em;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: transform .35s var(--ease);
}
.dest-sibling-card:hover .dest-sibling-cta { transform: translateX(4px); }

/* Linked sub-destination cards inside PackageDetail */
.subdest-card--link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.subdest-card--link:hover { color: inherit; }
.subdest-ribbon {
  position: absolute; top: 14px; right: 14px;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--pink-1);
  display: grid; place-items: center;
  font-size: 18px;
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-sm);
  transition: all .35s var(--ease);
}
.subdest-card--link:hover .subdest-ribbon {
  background: var(--grad-brand); color: #fff;
  transform: scale(1.08) rotate(8deg);
}

/* Responsive */
@media (max-width: 1024px) {
  .dest-layout { grid-template-columns: 1fr; }
  .dest-side { position: static; }
  .dest-gallery { grid-template-columns: repeat(3, 1fr); height: 380px; }
  .dest-gallery > button:first-child { grid-column: 1 / 3; }
  .dest-parent-card { grid-template-columns: 1fr; }
  .dest-parent-media { aspect-ratio: 16/9; }
}
@media (max-width: 640px) {
  .dest-hero { min-height: 60vh; padding: 110px 0 48px; }
  .dest-gallery { grid-template-columns: 1fr 1fr; height: 320px; }
  .dest-gallery > button:first-child { grid-column: 1 / 3; grid-row: 1 / 2; }
  .dest-gallery > button:nth-child(n+5) { display: none; }
  .incl-card-list { grid-template-columns: 1fr; }
  .dest-hero-actions .btn { flex: 1 1 auto; justify-content: center; }
}


/* =============================================================
   BRAND VIDEO LOGO — clean, robust, always-visible
   The supplied logo MP4 has a white background. We mount the video
   inside a soft "frosted glass" capsule that creates its own
   stacking context (`isolation: isolate`) so `mix-blend-mode` blends
   ONLY with the capsule (white) — never with the dark hero video
   behind it. Result: the painted logo letterforms always read
   crisply on any backdrop (dark hero, light scrolled nav, dark footer).
   ============================================================ */

.brand-logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 0;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  border: none;
  --brand-logo-h: 48px;
  transition: padding 0.4s ease, transform 0.4s ease;
}
.brand-logo::before,
.brand-logo::after {
  display: none !important;
}

/* No capsule on scroll either — keep the logo clean on the white bar. */
.nav.scrolled .brand-logo {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: 0;
}

/* Footer is dark — sit the video on a white capsule, then multiply so
   the MP4's white plate disappears and the painted wordmark stays crisp. */
.brand-logo--footer {
  isolation: isolate;
  background: #fff;
  box-shadow: 0 12px 28px -18px rgba(0, 0, 0, 0.45);
  border: none;
  border-radius: 16px;
  padding: 8px 14px;
  overflow: hidden;
}

.brand-logo-video {
  height: 100%;
  width: 100%;
  max-width: none;
  display: block;
  background: transparent;
  pointer-events: none;
  object-fit: contain;
  object-position: center center;
  mix-blend-mode: multiply;
  filter: none;
}

.nav .brand-logo:hover,
.brand-logo--footer:hover {
  transform: none;
}
.nav .brand-logo:hover .brand-logo-video,
.brand-logo--footer:hover .brand-logo-video {
  transform: none;
}
.curochrome .curonav .curologo:hover .brand-logo-video {
  transform: translate(-50%, -50%);
}

.brand-logo-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0.02em;
  color: var(--ink, #0b1d3a);
  background: var(--grad-brand, linear-gradient(135deg, #1e3a8a, #ec4899));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* Show the text fallback only if the video element fails to render */
.brand-logo:has(video[poster]:not([src])) .brand-logo-fallback,
.brand-logo:not(:has(video)) .brand-logo-fallback {
  opacity: 1;
}

.nav .brand-logo {
  --brand-logo-h: 56px;
  flex: 0 0 176px;
  width: 176px;
  height: 56px;
  max-width: 176px;
  max-height: 56px;
  overflow: hidden;
  clip-path: inset(0);
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: #FFFCF7;
}
.nav.scrolled .brand-logo {
  --brand-logo-h: 50px;
  width: 160px;
  height: 50px;
  max-width: 160px;
  max-height: 50px;
  flex-basis: 160px;
}
.brand-logo--footer {
  --brand-logo-h: 64px;
  width: 200px;
  height: 64px;
  max-width: 200px;
}

.nav .brand-logo-video,
.brand-logo--footer .brand-logo-video {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center center;
  transform: none;
}

@media (max-width: 1100px) {
  .nav .brand-logo {
    --brand-logo-h: 50px;
    width: 160px;
    height: 50px;
    max-width: 160px;
    flex-basis: 160px;
  }
  .nav.scrolled .brand-logo { --brand-logo-h: 46px; width: 148px; height: 46px; max-width: 148px; flex-basis: 148px; }
  .brand-logo--footer { --brand-logo-h: 56px; width: 180px; height: 56px; }
}

@media (max-width: 768px) {
  .brand-logo--footer { padding: 6px 12px; border-radius: 14px; }
  .nav .brand-logo {
    --brand-logo-h: 46px;
    width: 148px;
    height: 46px;
    max-width: 148px;
    flex-basis: 148px;
  }
  .nav.scrolled .brand-logo { --brand-logo-h: 42px; width: 136px; height: 42px; max-width: 136px; flex-basis: 136px; }
  .brand-logo--footer { --brand-logo-h: 48px; width: 160px; height: 48px; }
}

@media (max-width: 480px) {
  .brand-logo--footer { padding: 5px 10px; border-radius: 12px; }
  .nav .brand-logo {
    --brand-logo-h: 42px;
    width: 136px;
    height: 42px;
    max-width: 136px;
    flex-basis: 136px;
  }
  .nav.scrolled .brand-logo { --brand-logo-h: 38px; width: 124px; height: 38px; max-width: 124px; flex-basis: 124px; }
  .brand-logo--footer { --brand-logo-h: 44px; width: 148px; height: 44px; }
}

/* Reduce motion preference: pause looping video */
@media (prefers-reduced-motion: reduce) {
  .brand-logo-video {
    animation-play-state: paused;
  }
}


/* =============================================================
   v2 POLISH PASS — encompassing the post-launch design refinements:
   - Bigger, fully-transparent video logo
   - Robust mobile drawer & menu interactions
   - WhatsApp recurring concierge popup
   - Premium destination detail layout (single hero image)
   - Compact + premium enquiry form (iform-v2)
   - Page-section title contrast, balanced sizing, overlay/overlap fixes
   - Discover-section refinement
   - Trip-planner image robustness
   ============================================================ */

/* -------- 1. LOGO: see "BRAND VIDEO LOGO" block above -----------*/
/* (Consolidated into a single canonical block higher in this file
   so we don't conflict with the frosted-glass capsule + isolation
   stacking context that keeps the logo visible on every surface.) */

/* -------- 2. MOBILE HEADER DRAWER -------------------------------*/
.mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 99;
  background: linear-gradient(180deg, #ffffffea 0%, #fff8f0ea 60%, #f0e9ffea 100%);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  display: flex;
  flex-direction: column;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px);
  transition: opacity 0.4s var(--ease, ease),
    transform 0.45s var(--ease, ease),
    visibility 0s linear 0.4s;
  pointer-events: none;
  overflow: hidden;
}
.mobile-drawer.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity 0.45s var(--ease, ease),
    transform 0.5s var(--ease, ease),
    visibility 0s;
}
.mobile-drawer-inner {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 110px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mobile-drawer-row {
  border-bottom: 1px solid rgba(20, 18, 50, 0.08);
}
.mobile-drawer-row:last-of-type { border-bottom: none; }

.mobile-drawer-item {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.mobile-drawer-ico {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 14px;
  color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b 56%, #a9821f);
  border: 1px solid rgba(138, 106, 44, 0.35);
  box-shadow: 0 8px 16px -12px rgba(169, 130, 31, 0.85);
}
.mobile-drawer-link,
.mobile-drawer-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 6px;
  font-family: var(--serif, serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink, #0b1d3a);
  background: transparent;
  border: none !important;
  text-align: left;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: -0.01em;
  transition: color 0.3s ease, transform 0.3s ease;
}
/* Reset legacy `.mobile-drawer a` inheritance that would otherwise add an
   extra hairline between every menu row. */
.mobile-drawer a.mobile-drawer-link,
.mobile-drawer a.sub,
.mobile-drawer a.mobile-drawer-cta { border-bottom: none !important; }
.mobile-drawer-link:hover,
.mobile-drawer-toggle:hover { color: #ec4899; transform: translateX(4px); }
.mobile-drawer-link::after,
.mobile-drawer-toggle::after { display: none; }
.mobile-drawer-toggle.is-expanded { color: #8a6a2c; }
.mobile-drawer-toggle.is-expanded .mobile-drawer-ico {
  color: #fffdf7;
  background: #1b2140;
  border-color: rgba(201, 162, 74, 0.45);
}

.mobile-drawer-caret {
  font-size: 20px;
  color: var(--ink-dim, #5a5a72);
  transition: transform 0.35s ease, color 0.3s ease;
}
.mobile-drawer-toggle.is-expanded .mobile-drawer-caret { color: #8a6a2c; }

.mobile-drawer-sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s var(--ease, ease);
  overflow: hidden;
}
.mobile-drawer-sub.is-open { grid-template-rows: 1fr; }
.mobile-drawer-sub > * { min-height: 0; }
.mobile-drawer-sub a.sub {
  display: block;
  padding: 12px 6px 12px 22px;
  font-size: 15.5px;
  font-family: var(--sans, sans-serif);
  color: var(--ink-dim, #4a4a62);
  border-bottom: 1px dashed rgba(20, 18, 50, 0.08);
  text-decoration: none;
  transition: color 0.25s ease, padding-left 0.25s ease;
}
.mobile-drawer-sub a.sub:last-child { border-bottom: none; }
.mobile-drawer-sub a.sub:hover {
  color: #ec4899;
  padding-left: 28px;
}
.mobile-drawer-sub a.sub-all {
  color: #1e3a8a;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 12.5px;
}

.mobile-drawer-cta {
  margin: 28px 6px 8px;
  justify-content: center;
}

/* The mobile-toggle button needs to layer ABOVE the drawer */
.nav .mobile-toggle { position: relative; z-index: 100; }

/* Lock body scroll when drawer is open — handled in JS but we
   help with safe-area on iOS. */
@media (max-width: 820px) {
  .mobile-drawer-inner { padding-top: max(110px, env(safe-area-inset-top, 0px) + 90px); }
}

/* -------- 3. WHATSAPP CONCIERGE POPUP --------------------------- */
/* Compact single-line "How can I help you?" pill that hovers next to the
   floating WhatsApp button. Designed to look like a tiny chat bubble — not a
   card — so it never competes with the page content. */
.whatsapp-popup {
  position: absolute;
  right: 70px;
  bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 30px 8px 14px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--ink, #1a1a2e);
  text-decoration: none;
  white-space: nowrap;
  box-shadow:
    0 12px 30px -12px rgba(20, 50, 30, 0.28),
    0 4px 10px -4px rgba(20, 50, 30, 0.16);
  border: 1px solid rgba(20, 50, 30, 0.08);
  opacity: 0;
  transform: translateX(8px) scale(0.94);
  transform-origin: right center;
  pointer-events: none;
  transition: opacity 0.4s var(--ease, ease), transform 0.5s var(--ease, ease);
  z-index: 0;
}
.whatsapp-popup.is-open {
  opacity: 1;
  transform: translateX(0) scale(1);
  pointer-events: auto;
}
.whatsapp-popup-text {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--ink, #1a1a2e);
  line-height: 1;
}
.whatsapp-popup-close {
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(20, 50, 30, 0.08);
  color: rgba(20, 50, 30, 0.6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.25s ease, color 0.25s ease;
}
.whatsapp-popup-close:hover {
  background: rgba(20, 50, 30, 0.16);
  color: #1a1a2e;
}
.whatsapp-popup-tail {
  position: absolute;
  right: -4px;
  top: 50%;
  width: 9px;
  height: 9px;
  background: #fff;
  border-right: 1px solid rgba(20, 50, 30, 0.08);
  border-top: 1px solid rgba(20, 50, 30, 0.08);
  transform: translateY(-50%) rotate(45deg);
}
@media (max-width: 480px) {
  .whatsapp-popup {
    right: auto;
    left: 14px;
    bottom: 92px;
    padding-right: 26px;
  }
  .whatsapp-popup-tail { display: none; }
}

/* The old text-only `.whatsapp-tooltip` is no longer rendered; hide any
   stale residue if a stray markup fragment slips through. */
.whatsapp-tooltip { display: none !important; }

/* -------- 4. DESTINATION DETAIL — single image hero ------------- */
.dest-hero--v2 {
  min-height: 78vh;
  padding: 170px 0 110px;
}
.dest-hero--v2 .dest-hero-vignette {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 18% 100%, rgba(0, 0, 0, 0.55), transparent 70%),
    radial-gradient(80% 70% at 70% 0%, rgba(0, 0, 0, 0.35), transparent 70%);
  pointer-events: none;
  z-index: 1;
}
.dest-hero--v2 .dest-hero-bg img {
  /* Gentle slow zoom for a cinematic feel */
  animation: dest-hero-pan 24s ease-in-out infinite alternate;
}
@keyframes dest-hero-pan {
  from { transform: scale(1.05) translate3d(-1%, 0, 0); }
  to   { transform: scale(1.12) translate3d(2%, -1%, 0); }
}

.dest-body-section { padding: 70px 0 100px; }

.dest-layout--v2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 56px;
  align-items: flex-start;
}
.dest-layout--v2 > div { min-width: 0; }
@media (max-width: 1024px) {
  .dest-layout--v2 { grid-template-columns: 1fr; gap: 40px; }
}

.dest-feature {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  margin-bottom: 56px;
  box-shadow:
    0 30px 80px -40px rgba(20, 30, 60, 0.4),
    0 8px 18px -8px rgba(20, 30, 60, 0.15);
}
.dest-feature img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.6s var(--ease, ease);
}
.dest-feature:hover img { transform: scale(1.04); }
.dest-feature-scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 50%, rgba(8, 12, 30, 0.78) 100%);
  pointer-events: none;
}
.dest-feature-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 28px 32px;
  color: #fff;
  z-index: 1;
}
.dest-feature-caption .eyebrow {
  display: inline-block;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.18em;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.1);
  padding: 5px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(8px);
}
.dest-feature-caption h3 {
  margin-top: 12px;
  font-family: var(--serif, serif);
  font-size: clamp(28px, 3.5vw, 40px);
  font-weight: 500;
  letter-spacing: -0.02em;
}
.dest-feature-caption p {
  color: rgba(255, 255, 255, 0.85);
  margin-top: 6px;
  font-size: 15px;
  line-height: 1.55;
  max-width: 640px;
}
@media (max-width: 640px) {
  .dest-feature { aspect-ratio: 4 / 5; border-radius: 22px; margin-bottom: 36px; }
  .dest-feature-caption { padding: 20px 22px; }
}

/* Sticky sidebar premium */
.dest-side--v2 {
  position: sticky;
  top: 110px;
  background: linear-gradient(180deg, #ffffff 0%, #fdf7ee 100%);
  border: 1px solid rgba(20, 30, 60, 0.06);
  border-radius: 24px;
  padding: 28px 26px;
  box-shadow:
    0 30px 80px -40px rgba(20, 30, 60, 0.35),
    0 6px 16px -8px rgba(20, 30, 60, 0.1);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.dest-side--v2 .price-label {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-dim, #5a5a72);
  font-weight: 700;
}
.dest-side--v2 .dest-side-pkg {
  font-family: var(--serif, serif);
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--ink, #0b1d3a);
}
.dest-side--v2 .dest-side-from {
  font-size: 13.5px;
  color: var(--ink-dim, #5a5a72);
}
.dest-side--v2 .dest-side-from strong {
  font-size: 19px;
  color: var(--ink, #0b1d3a);
  font-family: var(--serif, serif);
}
.side-divider {
  height: 1px;
  background: linear-gradient(90deg,
    transparent, rgba(20, 30, 60, 0.16), transparent);
  margin: 8px 0;
}
.side-field {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 13px;
  color: var(--ink-dim, #5a5a72);
  letter-spacing: 0.01em;
}
.side-field strong {
  color: var(--ink, #0b1d3a);
  font-weight: 600;
  text-align: right;
}
.dest-side-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dest-side-actions .btn { justify-content: center; }
.side-fine {
  margin-top: 4px;
  font-size: 11.5px;
  color: var(--ink-soft, #7e7e92);
  text-align: center;
  line-height: 1.55;
}

/* Suggested siblings — premium card grid */
.dest-sibling-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 22px;
  margin-top: 30px;
}
.dest-sibling-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(20, 30, 60, 0.06);
  text-decoration: none;
  color: inherit;
  box-shadow: 0 12px 32px -16px rgba(20, 30, 60, 0.18);
  transition: transform 0.5s var(--ease, ease), box-shadow 0.5s var(--ease, ease);
}
.dest-sibling-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 50px -22px rgba(20, 30, 60, 0.32);
}
.dest-sibling-media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f4ecdf;
}
.dest-sibling-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease, ease);
}
.dest-sibling-card:hover .dest-sibling-media img { transform: scale(1.06); }
.dest-sibling-body {
  padding: 18px 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dest-sibling-body h4 {
  font-family: var(--serif, serif);
  font-size: 21px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink, #0b1d3a);
}
.dest-sibling-body p {
  color: var(--ink-dim, #5a5a72);
  font-size: 14px;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dest-sibling-cta {
  margin-top: auto;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: #ec4899;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* -------- 5. COMPACT PREMIUM ENQUIRY FORM (.iform-v2) ----------- */
.iform-v2 {
  position: relative;
  padding: 32px 32px;
  background:
    linear-gradient(180deg, #ffffff 0%, #fdf7ee 100%);
  border: 1px solid rgba(20, 30, 60, 0.06);
  border-radius: 24px;
  box-shadow:
    0 4px 10px rgba(20, 30, 60, 0.04),
    0 30px 70px -28px rgba(20, 30, 60, 0.32);
  overflow: hidden;
  overflow: clip;
  isolation: isolate;
}
.iform-v2::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(420px 220px at 0% 0%, rgba(236, 72, 153, 0.12), transparent 70%),
    radial-gradient(420px 220px at 100% 100%, rgba(37, 99, 235, 0.1), transparent 70%);
  pointer-events: none;
  z-index: -1;
}
.iform-v2--compact { padding: 22px 22px; border-radius: 20px; }

.iform-v2-head { margin-bottom: 18px; }
.iform-v2-head .eyebrow {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #ec4899;
  font-weight: 700;
}
.iform-v2-title {
  margin-top: 6px;
  font-family: var(--serif, serif);
  font-size: clamp(24px, 2.6vw, 30px);
  font-weight: 500;
  color: var(--ink, #0b1d3a);
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.iform-v2-title em {
  font-style: italic;
  background: linear-gradient(135deg, #2563eb, #ec4899);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.iform-v2-hint {
  margin-top: 4px;
  font-size: 12.5px;
  color: var(--ink-dim, #5a5a72);
}
.iform-v2-hint .req,
.iform-v2 .req { color: #ec4899; font-weight: 700; }
.iform-v2-mute { color: var(--ink-soft, #888); font-weight: 500; font-size: 11.5px; }

.iform-v2-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 14px;
}
.iform-v2-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.iform-v2-field--full { grid-column: 1 / -1; }

.iform-v2-field label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-dim, #5a5a72);
}
.iform-v2-field label svg {
  font-size: 13px;
  color: #2563eb;
  flex-shrink: 0;
}

.iform-v2-field input,
.iform-v2-field select,
.iform-v2-field textarea {
  width: 100%;
  font: inherit;
  font-size: 14.5px;
  color: var(--ink, #0b1d3a);
  background: #ffffff;
  border: 1px solid rgba(20, 30, 60, 0.14);
  border-radius: 12px;
  padding: 11px 14px;
  transition: border-color 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease;
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
}
.iform-v2-field textarea { resize: vertical; min-height: 60px; }
.iform-v2-field select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2333364a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
.iform-v2-field input:hover,
.iform-v2-field select:hover,
.iform-v2-field textarea:hover { border-color: rgba(37, 99, 235, 0.4); }
.iform-v2-field input:focus,
.iform-v2-field select:focus,
.iform-v2-field textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}
.iform-v2-field input.has-error,
.iform-v2-field select.has-error,
.iform-v2-field textarea.has-error {
  border-color: #f43f5e;
  background: #fff5f7;
}
.iform-v2-err {
  font-size: 12px;
  color: #f43f5e;
  font-weight: 500;
  margin-top: 1px;
}
.iform-v2-err--terms { display: block; margin: -6px 0 8px; }

/* Stepper chip */
.iform-v2-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #ffffff;
  border: 1px solid rgba(20, 30, 60, 0.14);
  border-radius: 12px;
  padding: 5px 6px;
  height: 44px;
  user-select: none;
}
.iform-v2-stepper.has-error {
  border-color: #f43f5e;
  background: #fff5f7;
}
.iform-v2-stepper button {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  border: none;
  background: linear-gradient(135deg, #f6f1ff, #ffeef4);
  color: #2563eb;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.2s ease;
}
.iform-v2-stepper button:hover {
  background: linear-gradient(135deg, #2563eb, #ec4899);
  color: #fff;
  transform: scale(1.06);
}
.iform-v2-stepper span {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #0b1d3a);
  font-family: var(--serif, serif);
}

/* Children ages chips row */
.iform-v2-ages {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.iform-v2-ages select {
  width: auto;
  min-width: 110px;
  flex: 0 0 auto;
  height: 36px;
  padding: 6px 28px 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  border: 1px solid rgba(20, 30, 60, 0.14);
  background-color: #ffffff;
}

.iform-v2-divider {
  grid-column: 1 / -1;
  height: 1px;
  background: linear-gradient(90deg,
    transparent, rgba(20, 30, 60, 0.14), transparent);
  margin: 6px 0 2px;
}

.iform-v2-terms {
  margin-top: 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: var(--ink-dim, #5a5a72);
  line-height: 1.55;
  cursor: pointer;
}
.iform-v2-terms input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: #2563eb;
}
.iform-v2-terms a {
  color: #2563eb;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.iform-v2-terms.has-error { color: #f43f5e; }

.iform-v2-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.iform-v2-actions .btn {
  flex: 1 1 auto;
  justify-content: center;
}

.iform-v2-success {
  text-align: center;
  padding: 16px 6px 8px;
}
.iform-v2-check {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #74e3a8, #1fae53);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  margin: 0 auto 16px;
  box-shadow: 0 18px 36px -12px rgba(31, 174, 83, 0.4);
  animation: pop-in 0.5s var(--ease-spring, cubic-bezier(0.34, 1.56, 0.64, 1));
}
.iform-v2-success h3 {
  font-family: var(--serif, serif);
  font-size: 26px;
  font-weight: 500;
  color: var(--ink, #0b1d3a);
  letter-spacing: -0.02em;
}
.iform-v2-success p {
  margin: 8px auto 18px;
  max-width: 380px;
  color: var(--ink-dim, #5a5a72);
  font-size: 14px;
  line-height: 1.6;
}

@media (max-width: 720px) {
  .iform-v2 { padding: 26px 20px; }
  .iform-v2-grid { grid-template-columns: 1fr; }
  .iform-v2-field--full { grid-column: 1; }
}

/* The OLD .inquiry-form is no longer rendered — we leave its styles
   intact for legacy pages but explicitly hide any stray instances
   so we never see two stacked forms. */
.inquiry-form { display: none; }

/* Tighten the home CTA inquiry section so the new compact form looks
   balanced alongside the copy. */
.cta-inquiry { gap: 44px; }
.cta-inquiry-section { padding: 80px 0 100px; }

/* -------- 6. DISCOVER SECTION REFINEMENT ------------------------ */
.discover {
  padding: 80px 0 100px;
}
.discover-head {
  max-width: 760px;
  margin: 0 auto 36px;
  text-align: center;
}
.discover-head .eyebrow.center {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(236, 72, 153, 0.12));
  display: inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(37, 99, 235, 0.2);
  letter-spacing: 0.18em;
  font-weight: 700;
  font-size: 11px;
  color: #2563eb;
  text-transform: uppercase;
}
.discover-head .section-title { margin-top: 14px; }
.discover-head p {
  margin-top: 14px;
  color: var(--ink-dim, #5a5a72);
  font-size: 15.5px;
  line-height: 1.7;
}

.tp-result-media {
  position: relative;
}
.tp-result-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(8, 10, 28, 0.78) 100%);
  pointer-events: none;
}
.tp-result-overlay {
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 24px;
  z-index: 2;
  color: #fff;
}

.tp-route {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: #ffd9e7;
  background: rgba(8, 10, 28, 0.6);
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(6px);
}
.tp-route-sep { color: #fff; opacity: 0.7; }

/* Empty state — nicer typography */
.tp-empty-icon {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(236, 72, 153, 0.16));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  color: #ec4899;
  margin: 0 auto 14px;
  border: 1px solid rgba(236, 72, 153, 0.2);
  animation: tp-empty-orb 4s ease-in-out infinite;
}
@keyframes tp-empty-orb {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.25); }
  50% { transform: scale(1.06); box-shadow: 0 0 0 16px rgba(236, 72, 153, 0); }
}
.tp-empty-tags {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 18px;
}
.tp-empty-tags span {
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.06);
  border: 1px solid rgba(37, 99, 235, 0.18);
  color: #2563eb;
  font-size: 12px;
  letter-spacing: 0.04em;
  font-weight: 700;
}

/* -------- 7. SECTION SIZING / BALANCE --------------------------- */
.section { padding: 90px 0; }
.section-sm { padding: 50px 0; }
@media (max-width: 768px) {
  .section { padding: 60px 0; }
  .section-sm { padding: 36px 0; }
}

/* Final CTA inquiry section: dial down the sub-padding because the new
   compact form is shorter than the previous tall card. */
.cta-inquiry-section { padding: 70px 0 90px; }

/* -------- 8. SECTION-TITLE COLOR PER BACKGROUND ----------------- */
/* Light cream / ivory / lavender / amber / mint sections — pure ink. */
.sec-cream .section-title,
.sec-ivory .section-title,
.sec-lavender .section-title,
.sec-amber .section-title,
.sec-mint .section-title,
.sec-rose .section-title,
.sec-periwinkle .section-title {
  color: var(--ink, #0b1d3a);
}
/* Dark/photo sections — readable on dark backgrounds. */
.cta-inquiry-section .section-title,
.dest-body-section .section-title,
.suggested-section .section-title {
  color: var(--ink, #0b1d3a);
}
/* Page hero & dark scrims always carry their own white/contrast palette. */

/* -------- 9. OVERLAY / OVERLAP HARDENING ------------------------ */
/* Z-index hierarchy: hero(1) < page(5) < sticky-side(20) < nav(50) <
   mobile-toggle(100) < drawer(99 visible only) <
   floating(90) < modal(900) < lightbox(1000). Apply systematically: */
.nav { z-index: 50; }
.dest-side, .dest-side--v2 { z-index: 5; }
.whatsapp-float { z-index: 90; }
.back-to-top { z-index: 90; }
.pd-modal-bg, .pd-modal-overlay { z-index: 900; }
.pd-lightbox, .lightbox { z-index: 1000; }

/* The breadcrumb on dark hero used to overlap the title. Push it up */
.dest-hero-inner .breadcrumb { margin-bottom: 14px; }
.dest-hero-inner .eyebrow.eyebrow--on-dark { display: inline-block; margin-bottom: 6px; }

/* When the trip-planner result is open, never let its overlay scrim eat
   the controls underneath. */
.tp-result-media,
.tp-result-overlay { pointer-events: none; }
.tp-result-overlay h3,
.tp-result-overlay p,
.tp-route { pointer-events: auto; }

/* Card grids should not let their hover ring punch through siblings */
.tcp, .offer-card, .bento-card, .feature-card,
.dest-sibling-card, .subdest-card { isolation: isolate; }

/* Page-hero scrim must sit BELOW the page-hero-inner content */
.page-hero-bg { z-index: 0; }
.page-hero .container { position: relative; z-index: 1; }

/* -------- 10. PAGE HERO + STORY-SECTION POLISH ------------------ */
/* Story section "about-home": media + copy — keep aspect ratio,
   centre vertically, and avoid letterboxing. */
.about-home {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 56px;
  align-items: center;
}
.about-home-media {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  box-shadow:
    0 30px 80px -40px rgba(20, 30, 60, 0.4),
    0 6px 16px -8px rgba(20, 30, 60, 0.15);
  aspect-ratio: 4 / 3;
  background: #f4ecdf;
}
.about-home-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* `.about-home-badge` is now styled once near the top of this file
   (search for "ABOUT SECTION (home)") — a static glass corner plaque with
   no rotation. The duplicate ruleset that lived here previously was
   re-introducing a centred-card look, so it has been removed. */
.about-home-badges {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 22px;
}
@media (max-width: 960px) {
  .about-home { grid-template-columns: 1fr; gap: 36px; }
  .about-home-media { aspect-ratio: 16 / 11; max-width: 560px; margin: 0 auto; }
}

/* -------- 11. OFFER CARD IMAGE NORMALISATION -------------------- */
.offer-card img {
  aspect-ratio: 16 / 10;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

/* -------- 12. ENGAGEMENT MEDIA NORMALISATION -------------------- */
.engage-media {
  position: relative;
  aspect-ratio: 4 / 3;
  width: 100%;
  min-width: 0;
  border-radius: 28px;
  overflow: hidden;
  background: #f4ecdf;
  box-shadow: 0 30px 80px -40px rgba(20, 30, 60, 0.4);
}
.engage-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.7s ease;
}
.engage-media img.active { opacity: 1; }

/* -------- 13. PHOTO CLARITY ----------------------------------- */
img, video {
  image-rendering: auto;
  image-rendering: high-quality;
  -ms-interpolation-mode: bicubic;
}

/* ============================================================
   14. FLOATING ACTION STACK — Call (top) + WhatsApp (below)
   ============================================================ */
.floating-stack {
  position: fixed;
  right: 26px;
  bottom: 26px;
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  pointer-events: none;
}
.floating-cluster {
  position: relative;
  pointer-events: auto;
}

/* Call button — premium pink-to-blue gradient pill */
.call-btn {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--grad-brand, linear-gradient(135deg, #2563EB 0%, #7C3AED 50%, #EC4899 100%));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  border: none;
  cursor: pointer;
  position: relative;
  text-decoration: none;
  box-shadow:
    0 16px 36px -10px rgba(124, 58, 237, 0.55),
    0 4px 12px -4px rgba(236, 72, 153, 0.35);
  transition:
    transform 0.4s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
    box-shadow 0.4s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
}
.call-btn:hover {
  transform: scale(1.07) rotate(-4deg);
  box-shadow:
    0 22px 48px -10px rgba(124, 58, 237, 0.7),
    0 6px 16px -4px rgba(236, 72, 153, 0.45);
}
.call-btn-pulse {
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(236, 72, 153, 0.55);
  animation: call-btn-pulse 2.4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  pointer-events: none;
}
@keyframes call-btn-pulse {
  0% { transform: scale(0.92); opacity: 0.85; }
  70% { transform: scale(1.4); opacity: 0; }
  100% { transform: scale(1.4); opacity: 0; }
}

/* "Call Now" popup — luxe glass pill with brand-gradient text */
.call-popup {
  position: absolute;
  right: 70px;
  top: 50%;
  transform: translate(8px, -50%) scale(0.94);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 28px 9px 16px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--ink, #0F1941);
  text-decoration: none;
  white-space: nowrap;
  box-shadow:
    0 14px 32px -12px rgba(124, 58, 237, 0.35),
    0 4px 12px -4px rgba(37, 99, 235, 0.2);
  border: 1px solid rgba(124, 58, 237, 0.16);
  opacity: 0;
  pointer-events: none;
  transform-origin: right center;
  transition:
    opacity 0.4s var(--ease, ease),
    transform 0.5s var(--ease, ease);
}
.call-popup.is-open {
  opacity: 1;
  transform: translate(0, -50%) scale(1);
  pointer-events: auto;
}
.call-popup-text {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1;
  background: var(--grad-brand, linear-gradient(135deg, #2563EB 0%, #EC4899 100%));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.call-popup-close {
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(124, 58, 237, 0.12);
  color: rgba(15, 25, 65, 0.6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.25s ease, color 0.25s ease;
}
.call-popup-close:hover {
  background: rgba(124, 58, 237, 0.22);
  color: #0F1941;
}
.call-popup-tail {
  position: absolute;
  right: -4px;
  top: 50%;
  width: 9px;
  height: 9px;
  background: #fff;
  border-right: 1px solid rgba(124, 58, 237, 0.16);
  border-top: 1px solid rgba(124, 58, 237, 0.16);
  transform: translateY(-50%) rotate(45deg);
}

/* Reuse existing .whatsapp-btn / .whatsapp-popup styles but anchor inside
   the new .floating-cluster. Override absolute positioning to be relative
   to the cluster. */
.floating-cluster--wa .whatsapp-btn {
  width: 60px;
  height: 60px;
  font-size: 28px;
  position: relative;
}
.floating-cluster--wa .whatsapp-popup {
  right: 70px;
  bottom: auto;
  top: 50%;
  transform: translate(8px, -50%) scale(0.94);
}
.floating-cluster--wa .whatsapp-popup.is-open {
  transform: translate(0, -50%) scale(1);
}
.floating-cluster--wa .whatsapp-popup-tail {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.floating-stack { right: 22px; bottom: 22px; }
.back-to-top { right: 22px; bottom: 118px; }

@media (max-width: 600px) {
  .floating-stack { right: 16px; bottom: 16px; gap: 12px; }
  .call-btn,
  .floating-cluster--wa .whatsapp-btn { width: 54px; height: 54px; font-size: 22px; }
  .call-popup,
  .floating-cluster--wa .whatsapp-popup {
    right: 64px;
    padding: 8px 26px 8px 14px;
    font-size: 12px;
  }
  .call-popup-text,
  .whatsapp-popup-text { font-size: 12px; }
  .back-to-top { bottom: 148px; right: 16px; width: 42px; height: 42px; }
}

/* When cluster popups are visible, hide on very small screens to avoid
   stacking with the FAB inside the screen edge. */
@media (max-width: 380px) {
  .call-popup, .floating-cluster--wa .whatsapp-popup-tail { display: none; }
}

/* ============================================================
   15. RECOGNITIONS SECTION — premium logo strip on home page
   ============================================================ */
.recognitions-section {
  position: relative;
  background:
    radial-gradient(circle at 8% 20%, rgba(37, 99, 235, 0.06), transparent 60%),
    radial-gradient(circle at 90% 80%, rgba(236, 72, 153, 0.06), transparent 60%),
    linear-gradient(180deg, #fbfbff 0%, #fff 100%);
  isolation: isolate;
  overflow: hidden;
}
.recognitions-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.recognitions-glow {
  position: absolute;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.45;
}
.recognitions-glow.a { left: -160px; top: -120px; background: radial-gradient(circle, #BFDBFE 0%, transparent 70%); }
.recognitions-glow.b { right: -160px; bottom: -120px; background: radial-gradient(circle, #FBCFE8 0%, transparent 70%); }

.recognitions-section .container { position: relative; z-index: 1; }

.recognitions-head {
  text-align: center;
  max-width: 780px;
  margin: 0 auto 60px;
}
.recognitions-head .eyebrow.center {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.recognitions-head .section-title { color: var(--ink); }
.recognitions-lede {
  margin-top: 18px;
  font-size: 16px;
  color: var(--ink-dim);
  line-height: 1.6;
}

.recognitions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 22px;
}

.recognition-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 28px 22px 24px;
  text-align: center;
  background: #ffffff;
  border-radius: 22px;
  border: 1px solid var(--line);
  box-shadow:
    0 10px 30px -16px rgba(15, 25, 65, 0.18),
    0 2px 6px -2px rgba(15, 25, 65, 0.06);
  text-decoration: none;
  color: var(--ink);
  isolation: isolate;
  overflow: hidden;
  transition:
    transform 0.45s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
    box-shadow 0.45s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
    border-color 0.4s ease;
}
.recognition-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  padding: 1px;
  background: var(--grad-brand, linear-gradient(135deg, #2563EB, #EC4899));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.recognition-card:hover {
  transform: translateY(-6px);
  box-shadow:
    0 22px 50px -22px rgba(124, 58, 237, 0.32),
    0 6px 16px -6px rgba(15, 25, 65, 0.12);
  border-color: transparent;
}
.recognition-card:hover::before { opacity: 1; }

.recognition-shine {
  position: absolute;
  top: -40%;
  left: -40%;
  width: 60%;
  height: 200%;
  background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.55) 50%, transparent 100%);
  transform: translateX(-100%) skewX(-20deg);
  transition: transform 0.9s var(--ease, ease);
  pointer-events: none;
}
.recognition-card:hover .recognition-shine { transform: translateX(220%) skewX(-20deg); }

.recognition-logo {
  width: 84px;
  height: 84px;
  border-radius: 18px;
  background:
    linear-gradient(135deg, #f4f7ff 0%, #fff5fa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(15, 25, 65, 0.06);
  flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}
.recognition-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.05);
}

.recognition-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 60px;
}
.recognition-name {
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.recognition-issuer {
  font-size: 12px;
  color: var(--ink-soft);
  line-height: 1.4;
}

.recognition-cta {
  margin-top: 4px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.recognitions-foot {
  margin-top: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 18px 26px;
  background: var(--glass-strong, #fff);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: var(--shadow-sm);
}
.recognitions-foot p {
  margin: 0;
  font-size: 14px;
  color: var(--ink-dim);
}
.recognitions-foot-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--grad-brand);
  color: #fff;
  font-size: 16px;
  flex-shrink: 0;
}

@media (max-width: 720px) {
  .recognitions-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .recognitions-grid { grid-template-columns: 1fr; }
  .recognition-card { padding: 22px 18px; }
}

/* ============================================================
   16. CERTIFICATES PAGE — large viewer + alternating cards
   ============================================================ */
.certificates-section {
  background:
    radial-gradient(circle at 5% 5%, rgba(96, 165, 250, 0.07), transparent 55%),
    radial-gradient(circle at 95% 95%, rgba(244, 114, 182, 0.07), transparent 55%),
    #fbfbff;
}

.cert-intro {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  margin-bottom: 60px;
  max-width: 880px;
}
.cert-intro-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: var(--grad-brand);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
  box-shadow: var(--shadow-coral);
}
.cert-intro p {
  margin-top: 14px;
  color: var(--ink-dim);
  font-size: 16px;
  line-height: 1.65;
  max-width: 760px;
}

.cert-list-v2 {
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.cert-card-v2 {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 44px;
  align-items: stretch;
  background: #ffffff;
  border-radius: 28px;
  padding: 26px;
  border: 1px solid var(--line);
  box-shadow:
    0 24px 64px -36px rgba(15, 25, 65, 0.32),
    0 6px 14px -6px rgba(15, 25, 65, 0.08);
  scroll-margin-top: 110px;
  transition: box-shadow 0.5s ease, transform 0.5s ease;
}
.cert-card-v2--flip { grid-template-columns: 1fr 1.05fr; }
.cert-card-v2--flip .cert-card-v2-media { order: 2; }
.cert-card-v2--flip .cert-card-v2-body { order: 1; }
.cert-card-v2--flash {
  box-shadow:
    0 0 0 3px rgba(124, 58, 237, 0.45),
    0 24px 64px -28px rgba(124, 58, 237, 0.45),
    0 8px 20px -8px rgba(236, 72, 153, 0.45);
  transform: translateY(-2px);
}

.cert-card-v2-media {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  border: none;
  background: linear-gradient(135deg, #f3f6ff, #fdf2f8);
  cursor: zoom-in;
  aspect-ratio: 4 / 5;
  isolation: isolate;
  padding: 0;
}
.cert-card-v2-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.cert-card-v2-media:hover img { transform: scale(1.04); }
.cert-card-v2-zoom {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  box-shadow: var(--shadow-sm);
  z-index: 2;
}
.cert-card-v2-shine {
  position: absolute;
  inset: -2px;
  border-radius: 22px;
  pointer-events: none;
  background: linear-gradient(135deg, transparent 0%, rgba(255, 255, 255, 0.35) 45%, transparent 90%);
  opacity: 0;
  transition: opacity 0.45s ease;
}
.cert-card-v2-media:hover .cert-card-v2-shine { opacity: 1; }

.cert-card-v2-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 14px 14px 14px 6px;
  gap: 14px;
}
.cert-card-v2-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.cert-card-v2-logo {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: linear-gradient(135deg, #f3f6ff 0%, #fdf2f8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  border: 1px solid var(--line);
}
.cert-card-v2-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cert-card-v2-year {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.cert-card-v2-body h3 {
  margin: 4px 0 4px;
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 28px;
  line-height: 1.18;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.cert-card-v2-issuer {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-dim);
}
.cert-card-v2-desc {
  margin: 0;
  font-size: 15px;
  color: var(--ink-dim);
  line-height: 1.65;
}
.cert-card-v2-points {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px 14px;
}
.cert-card-v2-points li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink-dim);
}
.cert-card-v2-points svg {
  color: #22c55e;
  font-size: 14px;
  flex-shrink: 0;
}
.cert-card-v2-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.cert-lightbox-frame {
  max-width: min(900px, 92vw);
  max-height: 92vh;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.6);
}
.cert-lightbox-frame img {
  width: 100%;
  height: auto;
  max-height: 76vh;
  object-fit: contain;
  display: block;
}
.cert-lightbox-meta {
  padding: 14px 22px;
  background: linear-gradient(180deg, #fff, #fbfbff);
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cert-lightbox-meta strong {
  font-family: var(--serif);
  font-size: 18px;
  color: var(--ink);
}
.cert-lightbox-meta span {
  font-size: 13px;
  color: var(--ink-dim);
}

@media (max-width: 880px) {
  .cert-card-v2,
  .cert-card-v2--flip {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 18px;
  }
  .cert-card-v2-media,
  .cert-card-v2--flip .cert-card-v2-media { aspect-ratio: 4 / 5; max-height: 520px; order: 0; }
  .cert-card-v2--flip .cert-card-v2-body { order: 1; }
  .cert-card-v2-body h3 { font-size: 22px; }
  .cert-intro { flex-direction: column; gap: 16px; }
}


/* =====================================================================
   Review CTA + Navbar tweaks
   ===================================================================== */
.nav-cta { display: inline-flex; align-items: center; gap: 10px; }

.nav-review {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: var(--radius-pill, 999px);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  background: linear-gradient(135deg, #4285F4 0%, #DB4437 50%, #F4B400 100%);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 8px 22px -10px rgba(66, 133, 244, 0.45),
              0 2px 6px -2px rgba(0, 0, 0, 0.18);
  text-decoration: none;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), filter 0.3s ease;
  position: relative;
  isolation: isolate;
}
.nav-review:hover {
  transform: translateY(-2px) scale(1.02);
  filter: brightness(1.04);
  box-shadow: 0 14px 32px -10px rgba(66, 133, 244, 0.55),
              0 4px 10px -2px rgba(0, 0, 0, 0.22);
}
.nav-review svg { font-size: 14px; }
.nav.scrolled .nav-review {
  border-color: rgba(255, 255, 255, 0.4);
}

.mobile-drawer-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}
.mobile-drawer-actions .mobile-drawer-cta { width: 100%; justify-content: center; }
.mobile-drawer-cta--review {
  background: linear-gradient(135deg, #4285F4 0%, #DB4437 50%, #F4B400 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
}

/* =====================================================================
   Emblem badges (institutional monogram badges, original CSS/SVG art)
   ===================================================================== */
.emblem-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  flex-shrink: 0;
  filter:
    drop-shadow(0 6px 18px rgba(15, 25, 65, 0.18))
    drop-shadow(0 2px 4px rgba(15, 25, 65, 0.12));
  transition: transform 0.5s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
              filter 0.4s ease;
}
.emblem-badge::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: inherit;
  background: conic-gradient(
    from 0deg,
    var(--emblem-accent, #F4B740) 0deg,
    transparent 70deg,
    var(--emblem-accent, #F4B740) 180deg,
    transparent 250deg,
    var(--emblem-accent, #F4B740) 360deg
  );
  opacity: 0.0;
  filter: blur(6px);
  z-index: -1;
  transition: opacity 0.5s ease;
}
.emblem-badge:hover { transform: scale(1.05) rotate(-1.5deg); }
.emblem-badge:hover::after { opacity: 0.55; }

/* =====================================================================
   Recognitions V2 — premium "Officially Recognised By" section
   ===================================================================== */
.recognitions-v2-section {
  position: relative;
  isolation: isolate;
  padding: 110px 0 100px;
  background:
    linear-gradient(180deg, #FBF9FF 0%, #F4F0FA 60%, #FFFFFF 100%);
  overflow: hidden;
}
.rcg-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
}
.rcg-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.45;
}
.rcg-glow.a { width: 560px; height: 560px; background: radial-gradient(closest-side, #c4b5fd, transparent 70%); top: -180px; left: -160px; }
.rcg-glow.b { width: 520px; height: 520px; background: radial-gradient(closest-side, #fbcfe8, transparent 70%); bottom: -200px; right: -140px; }
.rcg-glow.c { width: 380px; height: 380px; background: radial-gradient(closest-side, #bfdbfe, transparent 70%); top: 40%; left: 50%; transform: translateX(-50%); opacity: 0.3; }
.rcg-mesh {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(120, 110, 200, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120, 110, 200, 0.06) 1px, transparent 1px);
  background-size: 56px 56px;
  mask: radial-gradient(60% 70% at 50% 30%, #000 30%, transparent 80%);
  -webkit-mask: radial-gradient(60% 70% at 50% 30%, #000 30%, transparent 80%);
  opacity: 0.5;
}
.rcg-inner { position: relative; }
.rcg-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 56px;
}
.rcg-head .eyebrow.center {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.rcg-lede {
  margin-top: 14px;
  font-size: 16px;
  color: var(--ink-dim);
  line-height: 1.7;
}

/* ----- Featured tier (3 hero cards) ----- */
.rcg-featured {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 70px;
}
.rcg-feat-card {
  position: relative;
  display: flex;
  gap: 20px;
  padding: 30px 26px 26px;
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(252, 250, 255, 0.92));
  border: 1px solid rgba(124, 58, 237, 0.14);
  box-shadow:
    0 30px 70px -30px rgba(70, 60, 160, 0.28),
    0 8px 24px -12px rgba(15, 25, 65, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  text-decoration: none;
  color: var(--ink);
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.55s var(--ease, ease), box-shadow 0.55s var(--ease, ease);
}
.rcg-feat-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 80% -10%, rgba(244, 183, 64, 0.16), transparent 60%),
    radial-gradient(70% 80% at -10% 110%, rgba(124, 58, 237, 0.14), transparent 65%);
  opacity: 0.7;
  z-index: -1;
}
.rcg-feat-card:hover {
  transform: translateY(-8px);
  box-shadow:
    0 40px 90px -28px rgba(70, 60, 160, 0.4),
    0 14px 30px -12px rgba(15, 25, 65, 0.18);
}
.rcg-feat-corner {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  background: linear-gradient(135deg, #F4B740, #FBCFE8);
  color: #fff;
  box-shadow: 0 4px 12px -4px rgba(244, 183, 64, 0.5);
}
.rcg-feat-emblem {
  position: relative;
  flex-shrink: 0;
  width: 108px;
  height: 108px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rcg-feat-emblem-glow {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, rgba(244, 183, 64, 0.3), transparent 35%, rgba(124, 58, 237, 0.25), transparent 70%, rgba(244, 183, 64, 0.3));
  filter: blur(10px);
  opacity: 0.7;
  z-index: -1;
}
.rcg-feat-body { flex: 1; min-width: 0; }
.rcg-feat-year {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7C3AED;
  background: rgba(124, 58, 237, 0.08);
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.rcg-feat-title {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 22px;
  line-height: 1.18;
  color: var(--ink);
  margin: 0 0 4px;
}
.rcg-feat-issuer {
  font-size: 12.5px;
  color: var(--ink-dim);
  margin: 0 0 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.rcg-feat-desc {
  font-size: 13.5px;
  color: var(--ink-dim);
  line-height: 1.6;
  margin: 0 0 14px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rcg-feat-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #1e3a8a;
  letter-spacing: 0.02em;
}
.rcg-feat-cta svg { transition: transform 0.4s var(--ease, ease); }
.rcg-feat-card:hover .rcg-feat-cta svg { transform: translate(2px, -2px) rotate(8deg); }
.rcg-feat-shine {
  position: absolute;
  top: -50%;
  left: -60%;
  width: 50%;
  height: 200%;
  background: linear-gradient(115deg, transparent, rgba(255, 255, 255, 0.7), transparent);
  transform: translateX(-100%) skewX(-18deg);
  transition: transform 0.9s var(--ease, ease);
  pointer-events: none;
}
.rcg-feat-card:hover .rcg-feat-shine { transform: translateX(260%) skewX(-18deg); }

/* ----- Standard tier (compact pill cards) ----- */
.rcg-standard-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 14px auto 28px;
  max-width: 720px;
  justify-content: center;
}
.rcg-rail {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, 0.3), transparent);
}
.rcg-standard-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #7C3AED;
  white-space: nowrap;
}
.rcg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.rcg-std-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(124, 58, 237, 0.12);
  box-shadow: 0 12px 30px -18px rgba(70, 60, 160, 0.18);
  text-decoration: none;
  color: var(--ink);
  transition: transform 0.4s var(--ease, ease), box-shadow 0.4s var(--ease, ease), border-color 0.4s ease;
  backdrop-filter: blur(6px);
}
.rcg-std-card:hover {
  transform: translateY(-4px);
  border-color: rgba(244, 183, 64, 0.5);
  box-shadow: 0 22px 44px -22px rgba(70, 60, 160, 0.28);
}
.rcg-std-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rcg-std-name {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 16px;
  color: var(--ink);
  font-weight: 600;
  line-height: 1.25;
}
.rcg-std-issuer {
  font-size: 11.5px;
  color: var(--ink-dim);
  letter-spacing: 0.02em;
}
.rcg-std-arrow {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(124, 58, 237, 0.08);
  color: #7C3AED;
  transition: transform 0.4s var(--ease, ease), background 0.4s ease;
}
.rcg-std-card:hover .rcg-std-arrow {
  background: linear-gradient(135deg, #F4B740, #EC4899);
  color: #fff;
  transform: translate(2px, -2px) rotate(8deg);
}

/* Trust ribbon footer */
.rcg-foot {
  margin-top: 50px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 28px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.06), rgba(236, 72, 153, 0.06));
  border: 1px solid rgba(124, 58, 237, 0.14);
  flex-wrap: wrap;
  justify-content: center;
}
.rcg-foot-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #1e3a8a, #ec4899);
  color: #fff;
  font-size: 16px;
  flex-shrink: 0;
}
.rcg-foot p {
  margin: 0;
  font-size: 14px;
  color: var(--ink-dim);
  flex: 1;
}

@media (max-width: 1100px) {
  .rcg-featured { grid-template-columns: 1fr; }
  .rcg-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .rcg-grid { grid-template-columns: 1fr; }
  .rcg-feat-card { flex-direction: column; align-items: flex-start; }
  .rcg-feat-emblem { width: 88px; height: 88px; }
  .rcg-foot { padding: 18px; text-align: center; }
}

/* =====================================================================
   ExploreRegions — trend cards w/ chips + featured banner
   ===================================================================== */
.erv2-featured {
  position: relative;
  margin: 28px 0 42px;
  padding: 36px 40px;
  border-radius: 26px;
  background:
    radial-gradient(70% 100% at 0% 0%, rgba(124, 58, 237, 0.45), transparent 60%),
    radial-gradient(80% 100% at 100% 100%, rgba(244, 183, 64, 0.3), transparent 60%),
    linear-gradient(135deg, #0F1941 0%, #1e3a8a 100%);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 30px 80px -30px rgba(15, 25, 65, 0.55);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 28px;
  align-items: center;
}
.erv2-featured::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 40px 40px;
  mask: radial-gradient(70% 80% at 50% 30%, #000 20%, transparent 75%);
  -webkit-mask: radial-gradient(70% 80% at 50% 30%, #000 20%, transparent 75%);
  z-index: -1;
}
.erv2-featured-inner { display: flex; flex-direction: column; gap: 12px; }
.erv2-featured-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(244, 183, 64, 0.25), rgba(236, 72, 153, 0.25));
  border: 1px solid rgba(244, 183, 64, 0.4);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #FBCFE8;
  width: fit-content;
}
.erv2-featured-title {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1.12;
  margin: 0;
  font-weight: 600;
}
.erv2-featured-title em {
  font-style: italic;
  background: linear-gradient(135deg, #F4B740 0%, #FBCFE8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.erv2-featured-desc {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
  max-width: 56ch;
}
.erv2-featured-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.erv2-featured-actions .btn-ghost { color: #fff; border: 1px solid rgba(255, 255, 255, 0.3); }
.erv2-featured-actions .btn-ghost:hover { background: rgba(255, 255, 255, 0.08); }

.erv2-featured-media {
  position: relative;
  width: 100%;
  height: 240px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.6);
}
.erv2-featured-media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.4s var(--ease);
}
.erv2-featured:hover .erv2-featured-media img { transform: scale(1.06); }
.erv2-featured-media-badge {
  position: absolute; left: 16px; bottom: 16px;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 999px;
  background: rgba(8, 10, 30, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff; font-size: 12.5px; font-weight: 600; letter-spacing: 0.02em;
}
.erv2-featured-media-badge strong {
  font-family: var(--serif); font-size: 18px; font-weight: 700;
  background: linear-gradient(135deg, #F4B740, #FBCFE8);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.erv2-featured-orbits {
  position: relative;
  width: 100%;
  height: 220px;
}
.erv2-orbit {
  position: absolute;
  border: 1px dashed rgba(244, 183, 64, 0.4);
  border-radius: 50%;
  animation: erv2-orbit-rot 26s linear infinite;
  top: 50%;
  left: 50%;
}
.erv2-orbit.a { width: 200px; height: 200px; transform: translate(-50%, -50%); animation-duration: 22s; }
.erv2-orbit.b { width: 140px; height: 140px; transform: translate(-50%, -50%); animation-duration: 16s; animation-direction: reverse; opacity: 0.7; }
.erv2-orbit.c { width: 80px; height: 80px; transform: translate(-50%, -50%); animation-duration: 12s; opacity: 0.5; }
.erv2-orbit-dot {
  position: absolute;
  width: 14px;
  height: 14px;
  background: linear-gradient(135deg, #F4B740, #FBCFE8);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(calc(-50% + 100px), -50%);
  box-shadow: 0 0 22px 4px rgba(244, 183, 64, 0.55);
  animation: erv2-orbit-dot 22s linear infinite;
}
@keyframes erv2-orbit-rot {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes erv2-orbit-dot {
  from { transform: rotate(0deg) translateX(100px) rotate(0deg); }
  to { transform: rotate(360deg) translateX(100px) rotate(-360deg); }
}

/* Per-trend accent ribbon on the small cards */
.erv2-card { position: relative; }
.erv2-card::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 4px;
  background: var(--erv2-accent, linear-gradient(180deg, #F4B740, #EC4899));
  opacity: 0.85;
}
.erv2-card--cool      { --erv2-accent: linear-gradient(180deg, #60A5FA, #A8D0FF); }
.erv2-card--astro     { --erv2-accent: linear-gradient(180deg, #7C3AED, #EC4899); }
.erv2-card--wellness  { --erv2-accent: linear-gradient(180deg, #34D399, #FBCFE8); }
.erv2-card--royal     { --erv2-accent: linear-gradient(180deg, #F4B740, #C0392B); }
.erv2-card--set-jet   { --erv2-accent: linear-gradient(180deg, #EC4899, #F4B740); }
.erv2-card--coast     { --erv2-accent: linear-gradient(180deg, #38BDF8, #34D399); }
.erv2-card--adventure { --erv2-accent: linear-gradient(180deg, #F97316, #EC4899); }
.erv2-card--sacred    { --erv2-accent: linear-gradient(180deg, #F4B740, #7C3AED); }

.erv2-card .erv2-coord { display: inline-flex; align-items: center; gap: 6px; }
.erv2-card .erv2-coord svg { font-size: 14px; }

.erv2-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  margin-bottom: 6px;
}
.erv2-chip {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.3s ease, transform 0.3s ease;
}
.erv2-card:hover .erv2-chip {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-1px);
}

@media (max-width: 920px) {
  .erv2-featured { grid-template-columns: 1fr; padding: 28px 24px; }
  .erv2-featured-orbits { height: 180px; }
}

/* =====================================================================
   Footer V2 — tour link lists + new column layout
   ===================================================================== */
.footer-grid--v2 {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 0.9fr 1.1fr;
  gap: 40px;
}
.footer-tour-list--single { grid-template-columns: 1fr; }
.footer-col h5 {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 17px;
  margin: 0 0 4px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink, #0b1d3a);
  letter-spacing: 0;
  text-transform: none;
}
.footer-col h5::after { display: none; }
.footer-col-icon {
  font-size: 18px;
  color: var(--coral-1, #ec4899);
  background: rgba(236, 72, 153, 0.12);
  padding: 5px;
  border-radius: 8px;
}
.footer-col-sub {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-dim, #64748b);
  margin-bottom: 16px;
}
.footer-tour-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.footer-tour-list li { font-size: 13.5px; line-height: 1.45; }
.footer-tour-list li a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.footer-tour-list li a {
  position: relative;
  display: inline-block;
  color: #0b1d3a !important;
  font-weight: 600;
  text-decoration: none;
  padding: 4px 0;
  transition: color 0.3s ease, transform 0.3s ease;
}
.footer-tour-list li a::before {
  content: '\203A';
  margin-right: 6px;
  color: var(--coral-1, #ec4899);
  font-weight: 800;
  opacity: 0;
  transform: translateX(-4px);
  display: inline-block;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.footer-tour-list li a:hover {
  color: var(--coral-1, #ec4899) !important;
  transform: translateX(2px);
}
.footer-tour-list li a:hover::before {
  opacity: 1;
  transform: translateX(0);
}
.footer-tour-list-all {
  grid-column: 1 / -1;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(15, 25, 65, 0.12);
}
.footer-tour-list-all a {
  font-weight: 700;
  background: var(--grad-brand, linear-gradient(135deg, #1e3a8a, #ec4899));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent !important;
  letter-spacing: 0.02em;
}

@media (max-width: 1080px) {
  .footer-grid--v2 { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 640px) {
  .footer-grid--v2 { grid-template-columns: 1fr; gap: 30px; }
  .footer-tour-list { grid-template-columns: 1fr; }
}

/* Old recognitions-section v1 visually retired — keep selectors so any
   stale markup still inherits a sensible fallback look. */
.recognitions-section { padding: 0; }

/* =====================================================================
   TRUST AUTHORITIES · BNI BAND · ASSOCIATIONS MARQUEE
   (home RecognitionsSection redesign)
   ===================================================================== */
.rcg-authorities {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 14px;
}
.rcg-auth-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  padding: 30px 22px 24px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(15, 25, 65, 0.08);
  box-shadow: 0 20px 50px -34px rgba(28, 38, 90, 0.4);
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.5s var(--ease-spring, cubic-bezier(0.22,1,0.36,1)),
    box-shadow 0.5s ease, border-color 0.5s ease;
}
.rcg-auth-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px -28px rgba(28, 38, 90, 0.5);
  border-color: rgba(124, 58, 237, 0.4);
}
.rcg-auth-corner {
  position: absolute;
  top: 12px;
  right: 14px;
  font-size: 16px;
  color: var(--coral-1, #ec4899);
  opacity: 0.5;
}
.rcg-auth-body { display: flex; flex-direction: column; gap: 4px; }
.rcg-auth-title {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 18px;
  margin: 0;
  color: var(--ink, #0b1d3a);
  line-height: 1.25;
}
.rcg-auth-issuer { font-size: 12.5px; color: var(--ink-dim, #64748b); margin: 0; }
.rcg-auth-cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: var(--grad-brand, linear-gradient(135deg, #2563eb, #7c3aed, #ec4899));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---------- BNI HIGHLIGHT BAND ---------- */
.bni-band {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 40px;
  margin: 56px 0 12px;
  padding: 40px 44px;
  border-radius: 28px;
  background:
    radial-gradient(120% 160% at 0% 0%, rgba(184, 31, 45, 0.12), transparent 60%),
    linear-gradient(135deg, #fff 0%, #fff7f7 100%);
  border: 1px solid rgba(184, 31, 45, 0.18);
  box-shadow: 0 28px 70px -40px rgba(184, 31, 45, 0.55);
  overflow: hidden;
}
.bni-band-emblem {
  position: relative;
  display: grid;
  place-items: center;
  padding: 6px;
}
.bni-band-ring {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px dashed rgba(184, 31, 45, 0.35);
  animation: bniSpin 22s linear infinite;
}
@keyframes bniSpin { to { transform: rotate(360deg); } }
.bni-band-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #b81f2d;
  margin-bottom: 8px;
}
.bni-band-title {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: clamp(24px, 3vw, 32px);
  margin: 0;
  color: var(--ink, #0b1d3a);
}
.bni-band-issuer { font-size: 13.5px; font-weight: 700; color: #b81f2d; margin: 4px 0 10px; }
.bni-band-desc { font-size: 15px; line-height: 1.7; color: var(--ink-dim, #475569); margin: 0 0 16px; max-width: 720px; }
.bni-band-points {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 22px;
}
.bni-band-points li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink, #0b1d3a);
}
.bni-band-points svg { color: #1aa251; flex-shrink: 0; }

/* ---------- ASSOCIATIONS MARQUEE ---------- */
.assoc-marquee {
  position: relative;
  overflow: hidden;
  margin-top: 8px;
  padding: 6px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.assoc-track {
  display: flex;
  gap: 14px;
  width: max-content;
  animation: assocScroll 46s linear infinite;
}
.assoc-marquee:hover .assoc-track { animation-play-state: paused; }
@keyframes assocScroll { to { transform: translateX(-50%); } }
.assoc-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 20px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(15, 25, 65, 0.1);
  box-shadow: 0 10px 26px -20px rgba(28, 38, 90, 0.5);
  white-space: nowrap;
}
.assoc-code {
  font-weight: 800;
  font-size: 15px;
  letter-spacing: 0.04em;
  background: var(--grad-brand, linear-gradient(135deg, #2563eb, #7c3aed, #ec4899));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.assoc-name { font-size: 11px; color: var(--ink-dim, #64748b); font-weight: 600; }

@media (max-width: 1080px) {
  .rcg-authorities { grid-template-columns: repeat(2, 1fr); }
  .bni-band { grid-template-columns: 1fr; gap: 24px; padding: 32px 28px; text-align: center; }
  .bni-band-points { grid-template-columns: 1fr; text-align: left; max-width: 360px; margin: 0 auto; }
  .bni-band-desc { margin-left: auto; margin-right: auto; }
}
@media (max-width: 560px) {
  .rcg-authorities { grid-template-columns: 1fr; }
}

/* =====================================================================
   CABS PAGE
   ===================================================================== */
.cab-perks {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.cab-perk {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 22px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(15, 25, 65, 0.08);
  box-shadow: 0 18px 44px -34px rgba(28, 38, 90, 0.42);
}
.cab-perk-icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  font-size: 19px;
  color: #fff;
  background: var(--grad-brand, linear-gradient(135deg, #2563eb, #7c3aed, #ec4899));
}
.cab-perk h4 { margin: 0 0 4px; font-size: 15.5px; color: var(--ink, #0b1d3a); }
.cab-perk p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-dim, #64748b); }

.cab-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.cab-card {
  display: flex;
  flex-direction: column;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 25, 65, 0.08);
  box-shadow: 0 22px 56px -38px rgba(28, 38, 90, 0.5);
  transition: transform 0.5s var(--ease-spring, cubic-bezier(0.22,1,0.36,1)), box-shadow 0.5s ease;
}
.cab-card:hover { transform: translateY(-8px); box-shadow: 0 34px 70px -34px rgba(28, 38, 90, 0.55); }
.cab-card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f1f1f6;
}
.cab-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease, ease); }
.cab-card:hover .cab-card-media img { transform: scale(1.07); }
.cab-card-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: var(--grad-brand, linear-gradient(135deg, #2563eb, #7c3aed, #ec4899));
  box-shadow: 0 8px 18px -8px rgba(124, 58, 237, 0.6);
}
.cab-card-body { display: flex; flex-direction: column; gap: 12px; padding: 24px; flex: 1; }
.cab-card-name { font-family: var(--serif, 'Playfair Display', serif); font-size: 21px; margin: 0; color: var(--ink, #0b1d3a); }
.cab-card-models { font-size: 12.5px; font-weight: 700; letter-spacing: 0.04em; color: var(--ink-dim, #64748b); margin-top: -8px; }
.cab-card-specs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.cab-card-specs span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink, #0b1d3a);
  background: rgba(124, 58, 237, 0.08);
  padding: 6px 12px;
  border-radius: 999px;
}
.cab-card-specs svg { color: #7c3aed; }
.cab-card-best { font-size: 13.5px; color: var(--ink-dim, #475569); margin: 0; line-height: 1.5; }
.cab-card-features { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.cab-card-features li { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--ink, #0b1d3a); }
.cab-card-features svg { color: #1aa251; flex-shrink: 0; }
.cab-card-pricing {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px solid rgba(15, 25, 65, 0.1);
}
.cab-card-pricing small { display: block; font-size: 11px; color: var(--ink-dim, #64748b); text-transform: uppercase; letter-spacing: 0.08em; }
.cab-card-pricing strong { font-size: 18px; color: var(--ink, #0b1d3a); }
.cab-card-base { text-align: right; }
.cab-card-actions { display: flex; gap: 10px; margin-top: 6px; }
.cab-card-actions .btn { flex: 1; padding: 11px 14px; font-size: 13px; gap: 7px; }
.cab-note { margin-top: 30px; text-align: center; font-size: 12.5px; color: var(--ink-dim, #64748b); max-width: 760px; margin-left: auto; margin-right: auto; }

@media (max-width: 1080px) {
  .cab-perks { grid-template-columns: repeat(2, 1fr); }
  .cab-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .cab-perks { grid-template-columns: 1fr; }
  .cab-grid { grid-template-columns: 1fr; }
}

/* =====================================================================
   FOOTER ASSOCIATIONS STRIP
   ===================================================================== */
.footer-assoc {
  margin-top: 8px;
  padding: 26px 0 22px;
  border-top: 1px solid rgba(15, 25, 65, 0.1);
  text-align: center;
}
.footer-assoc-label {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-dim, #64748b);
  margin-bottom: 14px;
}
.footer-assoc-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.footer-assoc-chip {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #0b1d3a;
  background: rgba(15, 25, 65, 0.05);
  border: 1px solid rgba(15, 25, 65, 0.1);
  padding: 6px 13px;
  border-radius: 999px;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.footer-assoc-chip:hover { transform: translateY(-2px); }
.footer-assoc-chip--bni {
  color: #fff;
  background: linear-gradient(135deg, #b81f2d, #e0353f);
  border-color: transparent;
}

/* ============================================================
   DISCOVER — ultra-luxury champagne mosaic
   ============================================================ */
.discover-v2 {
  --dv2-gold: #b8924a;
  --dv2-gold-2: #d9b56b;
  --dv2-ink: #12172b;
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 8vw, 108px) 0 clamp(66px, 7.5vw, 100px);
  background:
    radial-gradient(920px 440px at 6% -4%, rgba(184, 146, 74, 0.14), transparent 60%),
    radial-gradient(860px 420px at 98% 6%, rgba(28, 174, 131, 0.1), transparent 62%),
    linear-gradient(180deg, #fbf8f1 0%, #f6f1e6 46%, #fbf9f4 100%);
}
.dv2-deco { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.dv2-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.dv2-glow.a {
  width: 34vw; height: 34vw;
  left: -8vw; top: -8vw;
  background: radial-gradient(circle, rgba(217, 181, 107, 0.55), transparent 70%);
  animation: dv2Drift 24s ease-in-out infinite alternate;
}
.dv2-glow.b {
  width: 40vw; height: 40vw;
  right: -12vw; bottom: -16vw;
  background: radial-gradient(circle, rgba(28, 174, 131, 0.32), transparent 70%);
  animation: dv2Drift 30s ease-in-out infinite alternate-reverse;
}
@keyframes dv2Drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(4vw, 4vh, 0) scale(1.12); }
}
.dv2-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.05) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 22%, #000 0%, transparent 70%);
  mask-image: radial-gradient(110% 80% at 50% 22%, #000 0%, transparent 70%);
}
.dv2-arc {
  position: absolute;
  left: 0;
  right: 0;
  top: 2%;
  width: 100%;
  height: 32%;
  overflow: visible;
}
.dv2-arc path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.34);
  stroke-width: 1.4;
  stroke-dasharray: 6 9;
  animation: dv2Dash 44s linear infinite;
}
@keyframes dv2Dash { to { stroke-dashoffset: -660; } }

.discover-v2 .container { position: relative; z-index: 1; }

/* ---- header ---- */
.dv2-head { max-width: 820px; margin-bottom: clamp(36px, 4vw, 56px); }
.dv2-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.4);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 12px 26px -20px rgba(18, 23, 43, 0.5);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.dv2-kicker i { font-size: 12px; color: var(--dv2-gold); }
.dv2-title {
  margin: 20px 0 16px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(42px, 5.4vw, 76px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--dv2-ink);
}
.dv2-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.dv2-lead {
  margin: 0;
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.8;
  color: rgba(18, 23, 43, 0.66);
}
.dv2-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 40px;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(18, 23, 43, 0.1);
}
.dv2-stats span {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dv2-stats strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  color: var(--dv2-ink);
}
.dv2-stats em {
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}

/* ---- mosaic ---- */
.dv2-mosaic {
  display: grid;
  grid-template-columns: 1.16fr 1fr;
  gap: 20px;
  align-items: stretch;
}

.dv2-hero,
.dv2-tile {
  position: relative;
  display: block;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  background: #0d1122;
}
.dv2-hero {
  border-radius: 28px;
  min-height: 560px;
  box-shadow: 0 50px 90px -46px rgba(18, 23, 43, 0.62);
}
.dv2-hero::after,
.dv2-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16), inset 0 0 0 6px rgba(255, 255, 255, 0.05);
  pointer-events: none;
}
.dv2-hero-media,
.dv2-tile-media { position: absolute; inset: 0; display: block; }
.dv2-hero-media img,
.dv2-tile-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.1s var(--ease);
}
.dv2-hero-media::after,
.dv2-tile-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.36) 0%, rgba(8, 12, 26, 0.02) 34%, rgba(8, 12, 26, 0.72) 78%, rgba(6, 9, 20, 0.94) 100%);
}
.dv2-hero:hover .dv2-hero-media img,
.dv2-tile:hover .dv2-tile-media img { transform: scale(1.11); }
.dv2-hero:hover { box-shadow: 0 60px 110px -44px rgba(18, 23, 43, 0.72); }

.dv2-sig {
  position: absolute;
  z-index: 3;
  left: 24px;
  top: 24px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 18px;
  border-radius: 999px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  box-shadow: 0 14px 30px -14px rgba(184, 146, 74, 0.9);
}
.dv2-sig i { font-size: 11px; }

.dv2-hero-copy {
  position: absolute;
  z-index: 3;
  left: 28px;
  right: 28px;
  bottom: 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: #fff;
}
.dv2-hero-region {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #e8cf95;
}
.dv2-hero-name {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(34px, 3.6vw, 50px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.01em;
}
.dv2-hero-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.dv2-hero-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.94);
}
.dv2-hero-meta i { color: #e8cf95; font-size: 11px; }

.dv2-explore {
  position: absolute;
  z-index: 3;
  right: 24px;
  bottom: 28px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 22px;
  border-radius: 999px;
  background: #fff;
  color: var(--dv2-ink);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 20px 40px -20px rgba(8, 12, 26, 0.85);
  transition: transform 0.4s var(--ease), background 0.4s ease, color 0.4s ease;
}
.dv2-explore i { font-size: 11px; transition: transform 0.4s var(--ease); }
.dv2-hero:hover .dv2-explore {
  transform: translateY(-3px);
  background: linear-gradient(100deg, #d9b56b, #fdf3d8 52%, #c9a24a);
}
.dv2-hero:hover .dv2-explore i { transform: translateX(4px); }

/* ---- tiles ---- */
.dv2-tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;
  gap: 20px;
}
.dv2-tile {
  border-radius: 22px;
  min-height: 172px;
  box-shadow: 0 34px 62px -40px rgba(18, 23, 43, 0.6);
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.dv2-tile:hover {
  transform: translateY(-6px);
  box-shadow: 0 44px 76px -38px rgba(18, 23, 43, 0.7);
}
.dv2-tile-copy {
  position: absolute;
  z-index: 3;
  left: 18px;
  right: 54px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: #fff;
}
.dv2-tile-copy em {
  font-style: normal;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #e8cf95;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dv2-tile-name {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 23px;
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.01em;
}
.dv2-tile-go {
  position: absolute;
  z-index: 3;
  right: 16px;
  bottom: 16px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  font-size: 11px;
  transition: background 0.4s ease, color 0.4s ease, transform 0.4s var(--ease), border-color 0.4s ease;
}
.dv2-tile:hover .dv2-tile-go {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  border-color: transparent;
  color: #2a1e06;
  transform: translateX(3px);
}

/* ---- foot ---- */
.dv2-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: clamp(30px, 3.4vw, 46px);
  padding-top: 26px;
  border-top: 1px solid rgba(18, 23, 43, 0.1);
}
.dv2-note {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  font-weight: 600;
  color: rgba(18, 23, 43, 0.62);
}
.dv2-note i { color: var(--dv2-gold); font-size: 14px; }
.dv2-all {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 7px 7px 7px 24px;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(100deg, #12172b 0%, #222a4c 52%, #12172b 100%);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 20px 40px -22px rgba(18, 23, 43, 0.85);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.dv2-all-orb {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
  transition: transform 0.4s var(--ease);
}
.dv2-all:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -20px rgba(18, 23, 43, 0.9); }
.dv2-all:hover .dv2-all-orb { transform: translateX(4px); }

@media (max-width: 1180px) {
  .dv2-mosaic { grid-template-columns: 1fr; }
  .dv2-hero { min-height: 420px; }
  .dv2-tiles { grid-template-columns: repeat(3, 1fr); }
  .dv2-tile { min-height: 190px; }
}
@media (max-width: 860px) {
  .dv2-tiles { grid-template-columns: 1fr 1fr; gap: 14px; }
  .dv2-stats { gap: 14px 26px; }
  .dv2-stats strong { font-size: 26px; }
}
@media (max-width: 720px) {
  .discover-v2 { padding: 54px 0 60px; }
  .dv2-title { font-size: clamp(34px, 10vw, 44px); }
  .dv2-lead { font-size: 14.5px; }
  .dv2-mosaic { gap: 14px; }
  .dv2-hero { border-radius: 24px; min-height: 340px; }
  .dv2-hero-copy { left: 18px; right: 18px; bottom: 18px; }
  .dv2-hero-name { font-size: 30px; }
  .dv2-sig { left: 16px; top: 16px; padding: 7px 14px; font-size: 9px; }
  .dv2-explore {
    right: 16px;
    top: 16px;
    bottom: auto;
    padding: 10px 15px;
    font-size: 9px;
    gap: 8px;
  }
  .dv2-hero-copy { z-index: 4; }
  .dv2-tile { border-radius: 18px; min-height: 168px; }
  .dv2-tile-name { font-size: 18px; }
  .dv2-tile-copy { left: 14px; right: 14px; bottom: 12px; }
  .dv2-tile-go { display: none; }
  .dv2-foot { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .dv2-glow,
  .dv2-arc path { animation: none !important; }
  .dv2-hero-media img,
  .dv2-tile-media img,
  .dv2-explore,
  .dv2-tile,
  .dv2-all { transition: none; }
}

/* ============================================================
   FOOTER — extended sections (CTA band, features, payments)
   ============================================================ */
.footer-grid--v3 {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1fr 1.1fr;
  gap: 40px;
  margin-bottom: 48px;
  align-items: start;
}

/* ---- CTA band ---- */
.footer-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 28px;
  padding: 34px 40px;
  margin-bottom: 56px;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(600px 300px at 12% -20%, rgba(6, 182, 212, 0.5), transparent 70%),
    radial-gradient(600px 300px at 100% 120%, rgba(236, 72, 153, 0.45), transparent 70%),
    var(--grad-brand);
  color: #fff;
  box-shadow: 0 36px 80px -36px rgba(109, 40, 217, 0.6);
}
.footer-cta-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: rgba(255, 255, 255, 0.9);
}
.footer-cta-text h3 {
  color: #fff;
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  margin: 10px 0 8px;
  line-height: 1.05;
}
.footer-cta-text p { color: rgba(255, 255, 255, 0.88); max-width: 460px; }
.footer-cta-actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
}
.footer-cta-btn { display: inline-flex; align-items: center; gap: 8px; }
.footer-cta .btn.btn-primary {
  background: #fff; color: var(--ink); border-color: transparent;
}
.footer-cta .btn.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -14px rgba(0,0,0,0.4); }
.footer-cta .btn.btn-outline {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.5);
  color: #fff;
}
.footer-cta .btn.btn-outline:hover { background: rgba(255, 255, 255, 0.22); }
.footer-cta-phone {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--serif); font-style: italic; font-size: 1.15rem;
  color: #fff;
}
.footer-cta-phone:hover { color: #fff; transform: none; }

/* ---- Trust features ---- */
.footer-features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  padding: 0 0 44px;
  margin-bottom: 44px;
  border-bottom: 1px solid var(--line-strong);
}
.footer-feature {
  display: flex; align-items: center; gap: 14px;
}
.footer-feature-icon {
  flex-shrink: 0;
  display: inline-grid; place-items: center;
  width: 48px; height: 48px;
  border-radius: 14px;
  font-size: 22px; color: #fff;
  background: var(--grad-brand);
  box-shadow: 0 12px 26px -12px rgba(37, 99, 235, 0.6);
}
.footer-feature-icon svg { width: 24px; height: 24px; color: #fff; fill: currentColor; }
.footer-feature strong { display: block; font-size: 14.5px; color: var(--ink); font-weight: 800; }
.footer-feature span { display: block; font-size: 12.5px; color: var(--ink-dim); margin-top: 2px; }

/* ---- Brand contact mini ---- */
.footer-contact-mini {
  display: flex; flex-direction: column; gap: 9px;
  margin-top: 20px;
}
.footer-contact-mini a,
.footer-contact-mini span {
  display: inline-flex; align-items: flex-start; gap: 9px;
  font-size: 13.5px; color: var(--ink-dim); font-weight: 500;
}
.footer-contact-mini svg { color: var(--blue-1); flex-shrink: 0; margin-top: 2px; font-size: 16px; }
.footer-contact-mini a:hover { color: var(--coral-1); transform: none; }

/* ---- Payments ---- */
.footer-payments {
  display: flex; align-items: center; flex-wrap: wrap; gap: 16px 24px;
  padding: 26px 0;
  margin-top: 8px;
  border-top: 1px solid var(--line);
}
.footer-payments-label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-soft);
}
.footer-payments-row { display: flex; align-items: center; gap: 18px; }
.footer-payments-row svg {
  font-size: 30px; color: var(--ink-dim);
  opacity: 0.7; transition: opacity 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease);
}
.footer-payments-row svg:hover { opacity: 1; color: var(--blue-1); transform: translateY(-2px); }

/* ---- Bottom links ---- */
.footer-bottom-links { display: flex; flex-wrap: wrap; gap: 18px; }
.footer-bottom-links a { font-size: 13px; color: var(--ink-soft); font-weight: 600; }
.footer-bottom-links a:hover { color: var(--coral-1); transform: none; }
.footer-bottom-tag {
  font-family: var(--serif); font-style: italic; font-weight: 600;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

@media (max-width: 1080px) {
  .footer-grid--v3 { grid-template-columns: 1fr 1fr 1fr; }
  .footer-grid--v3 .footer-brand { grid-column: 1 / -1; }
  .footer-features { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .footer-cta { padding: 26px 22px; }
  .footer-grid--v3 { grid-template-columns: 1fr 1fr; }
  .footer-features { grid-template-columns: 1fr; gap: 14px; }
  .footer-bottom { flex-direction: column; text-align: center; }
}
@media (max-width: 460px) {
  .footer-grid--v3 { grid-template-columns: 1fr; }
}

/* ============================================================
   THEME EXPLORER (interactive)  +  BUDGET PLANNER
   ============================================================ */
.sec-cool {
  background:
    radial-gradient(620px 420px at 10% 12%, rgba(6, 182, 212, 0.16), transparent 58%),
    radial-gradient(520px 360px at 92% 90%, rgba(236, 72, 153, 0.14), transparent 58%),
    linear-gradient(180deg, #F4FBFF 0%, #FFFFFF 100%);
}

/* ---- theme tabs ---- */
.theme-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 8px 0 40px;
}
.theme-tab {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 12px 20px;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink-dim);
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: transform 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease), box-shadow 0.3s var(--ease), background 0.3s var(--ease);
}
.theme-tab-icon { font-size: 17px; }
.theme-tab:hover { transform: translateY(-2px); border-color: var(--blue-2); color: var(--ink); }
.theme-tab.is-active {
  color: #fff;
  background: var(--grad-brand);
  border-color: transparent;
  box-shadow: 0 16px 30px -14px rgba(109, 40, 217, 0.55);
}
.theme-grid { min-height: 200px; }

/* ---- budget planner ---- */
.planner {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.planner-controls { padding: clamp(26px, 3vw, 40px); }
.planner-field { margin-bottom: 26px; }
.planner-field > label {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--ink-soft);
  margin-bottom: 14px;
}
.planner-field > label svg { font-size: 15px; color: var(--blue-1); }
.planner-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.planner-type {
  text-align: left;
  padding: 14px 14px;
  border-radius: 14px;
  background: var(--bg-cool);
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: border-color 0.25s var(--ease), transform 0.25s var(--ease), background 0.25s var(--ease);
}
.planner-type strong { display: block; font-size: 14px; color: var(--ink); }
.planner-type span { display: block; font-size: 11.5px; color: var(--ink-soft); margin-top: 3px; }
.planner-type:hover { transform: translateY(-2px); }
.planner-type.is-active {
  border-color: var(--blue-1);
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(6, 182, 212, 0.08));
}
.planner-row { display: flex; flex-wrap: wrap; gap: 26px; align-items: flex-end; }
.planner-field--grow { flex: 1; min-width: 220px; margin-bottom: 0; }
.planner-stepper {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-cool); border-radius: var(--radius-pill); padding: 6px;
}
.planner-stepper button {
  width: 38px; height: 38px; border-radius: 50%;
  border: 0; cursor: pointer; color: #fff;
  background: var(--grad-brand);
  display: inline-grid; place-items: center; font-size: 15px;
  transition: transform 0.2s var(--ease);
}
.planner-stepper button:hover { transform: scale(1.08); }
.planner-stepper span { min-width: 40px; text-align: center; font-weight: 800; font-size: 17px; color: var(--ink); }
.planner-nights {
  margin-left: 6px;
  font-family: var(--serif); font-style: italic; font-size: 17px;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.planner-range {
  width: 100%; height: 6px; border-radius: 999px;
  -webkit-appearance: none; appearance: none;
  background: linear-gradient(90deg, var(--blue-1), var(--cyan-1));
  outline: none; cursor: pointer;
}
.planner-range::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 22px; height: 22px; border-radius: 50%;
  background: #fff; border: 3px solid var(--blue-1);
  box-shadow: 0 4px 12px -3px rgba(37, 99, 235, 0.6); cursor: pointer;
}
.planner-range::-moz-range-thumb {
  width: 22px; height: 22px; border-radius: 50%;
  background: #fff; border: 3px solid var(--blue-1); cursor: pointer;
}
.planner-range-scale { display: flex; justify-content: space-between; font-size: 11px; color: var(--ink-soft); margin-top: 6px; }

.planner-result {
  position: relative;
  padding: clamp(28px, 3vw, 40px);
  color: #fff;
  background:
    radial-gradient(420px 240px at 110% -10%, rgba(6, 182, 212, 0.55), transparent 70%),
    var(--grad-brand);
  display: flex; flex-direction: column; justify-content: center;
}
.planner-result-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.82); }
.planner-result-total {
  font-family: var(--serif); font-weight: 600;
  font-size: clamp(2.4rem, 5vw, 3.4rem); line-height: 1; margin: 8px 0 10px; color: #fff;
}
.planner-result-sub { font-size: 14px; color: rgba(255,255,255,0.92); font-weight: 600; }
.planner-note { font-size: 11.5px; color: rgba(255,255,255,0.72); margin: 16px 0 22px; line-height: 1.5; }
.planner-cta {
  align-self: flex-start;
  background: #fff !important; color: var(--ink) !important; border-color: transparent !important;
}
.planner-cta:hover { transform: translateY(-2px); }

@media (max-width: 860px) {
  .planner { grid-template-columns: 1fr; }
  .planner-types { grid-template-columns: 1fr; }
}

/* =============== CONTACT — interactive channels, reasons, map =============== */
@media (max-width: 860px) {
  .contact-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
}
.contact-channels {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.contact-channel {
  position: relative;
  display: flex; flex-direction: column; gap: 4px;
  padding: 24px 22px 22px;
  border-radius: 20px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  box-shadow: 0 16px 40px -28px rgba(28,38,90,0.35);
  text-decoration: none;
  transition: transform 0.4s var(--ease-spring), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease);
}
.contact-channel:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent; }
.contact-channel-icon {
  width: 50px; height: 50px; border-radius: 14px;
  display: grid; place-items: center; color: #fff; font-size: 21px;
  margin-bottom: 10px;
}
.contact-channel-icon svg { width: 22px; height: 22px; }
.contact-channel--wa .contact-channel-icon { background: #25D366; }
.contact-channel--call .contact-channel-icon { background: var(--grad-brand); }
.contact-channel--mail .contact-channel-icon { background: linear-gradient(135deg, #2563EB, #06B6D4); }
.contact-channel--insta .contact-channel-icon { background: linear-gradient(135deg, #F58529, #DD2A7B, #8134AF); }
.contact-channel-label { font-weight: 800; font-size: 15.5px; color: var(--ink); }
.contact-channel-sub { font-size: 13px; color: var(--ink-dim); }
.contact-channel-go {
  position: absolute; top: 18px; right: 18px; color: var(--ink-soft);
  transition: transform 0.3s var(--ease), color 0.3s var(--ease);
}
.contact-channel:hover .contact-channel-go { transform: translate(2px, -2px); color: var(--blue-1); }

.contact-reasons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 22px;
}
.contact-reason {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 20px 22px; border-radius: 18px;
  background: rgba(255,255,255,0.6); border: 1px solid var(--line);
}
.contact-reason-icon {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px;
  display: grid; place-items: center; color: #fff; background: var(--grad-brand);
}
.contact-reason-icon svg { width: 20px; height: 20px; }
.contact-reason strong { display: block; font-size: 15px; color: var(--ink); }
.contact-reason p { font-size: 13.5px; color: var(--ink-dim); margin-top: 3px; }

.contact-map-frame {
  border-radius: 22px; overflow: hidden;
  border: 1px solid var(--line-strong);
  box-shadow: var(--shadow-lg);
  height: 420px;
}
.contact-map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

.contact-cta-band {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 22px;
  padding: 36px 40px; border-radius: 24px;
  background:
    radial-gradient(600px 300px at 10% -30%, rgba(6,182,212,0.45), transparent 70%),
    radial-gradient(600px 300px at 100% 130%, rgba(236,72,153,0.4), transparent 70%),
    var(--grad-brand);
  color: #fff;
  box-shadow: 0 36px 80px -36px rgba(109,40,217,0.55);
}
.contact-cta-band h3 { color: #fff; font-size: clamp(1.4rem, 2.6vw, 2rem); margin: 0 0 6px; }
.contact-cta-band p { color: rgba(255,255,255,0.9); margin: 0; }
.contact-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.contact-cta-band .btn.btn-primary { background: #fff; color: var(--ink); }
.contact-cta-band .btn.btn-ghost { color: #fff; border: 1px solid rgba(255,255,255,0.5); }

@media (max-width: 900px) {
  .contact-channels { grid-template-columns: 1fr 1fr; }
  .contact-reasons { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .contact-channels { grid-template-columns: 1fr; }
  .contact-cta-band { padding: 26px 22px; }
}

/* Seven signature journeys — 4 per row, last 3 centered */
.seven-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 26px;
}
.seven-grid > * {
  flex: 0 1 calc(25% - 19.5px);
  min-width: 240px;
  max-width: 340px;
}
@media (max-width: 1100px) {
  .seven-grid > * { flex-basis: calc(33.333% - 18px); }
}
@media (max-width: 820px) {
  .seven-grid > * { flex-basis: calc(50% - 13px); }
}
@media (max-width: 540px) {
  .seven-grid { gap: 18px; }
  .seven-grid > * { flex-basis: 100%; max-width: 100%; }
}

/* =============== FLIGHT BAND — luxury tour / travel =============== */
.flightband {
  --fb-gold: #c9a24a;
  --fb-gold-2: #b8924a;
  --fb-ink: #12172b;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(64px, 7vw, 100px) 0 clamp(58px, 6.5vw, 92px);
  color: var(--fb-ink);
  background:
    radial-gradient(820px 380px at 8% -8%, rgba(201, 162, 74, 0.16), transparent 60%),
    radial-gradient(760px 360px at 96% 12%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
  border-top: 1px solid rgba(18, 23, 43, 0.06);
  border-bottom: 1px solid rgba(18, 23, 43, 0.06);
}
.flightband-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.fb-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.55;
}
.fb-aurora--1 {
  width: 42vw; height: 42vw;
  left: -10vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.4), transparent 70%);
  animation: fbDrift 28s ease-in-out infinite alternate;
}
.fb-aurora--2 {
  width: 46vw; height: 46vw;
  right: -14vw; bottom: -22vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.28), transparent 70%);
  animation: fbDrift 34s ease-in-out infinite alternate-reverse;
}
@keyframes fbDrift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(4vw, 3vh, 0) scale(1.1); }
}
.fb-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.045) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.fb-photo {
  position: absolute;
  inset: 0;
  background: url('../images/pangong_tso_lake.png') center 58% / cover no-repeat;
  opacity: 0.05;
  mix-blend-mode: multiply;
}
.fb-sky-route {
  position: absolute;
  left: 0; right: 0; top: 6%;
  width: 100%;
  height: 38%;
  overflow: visible;
}
.fb-sky-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.6;
  stroke-dasharray: 7 10;
  animation: fbDash 40s linear infinite;
}
@keyframes fbDash { to { stroke-dashoffset: -680; } }
.fb-sky-plane {
  position: absolute;
  left: 0;
  top: 10%;
  color: var(--fb-gold-2);
  width: 52px;
  filter: drop-shadow(0 4px 8px rgba(184, 146, 74, 0.45));
  animation: fbPlane 20s ease-in-out infinite;
}
.fb-sky-plane .svg-plane { width: 52px; }
@keyframes fbPlane {
  0% { transform: translate3d(-6vw, 48px, 0) rotate(52deg); opacity: 0; }
  8% { opacity: 1; }
  50% { transform: translate3d(48vw, 4px, 0) rotate(62deg); opacity: 1; }
  92% { opacity: 1; }
  100% { transform: translate3d(106vw, -36px, 0) rotate(56deg); opacity: 0; }
}
.fb-stamp {
  position: absolute;
  right: 6%;
  bottom: 10%;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  border: 2px dashed rgba(184, 146, 74, 0.42);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: rgba(138, 106, 44, 0.5);
  transform: rotate(16deg);
}
.fb-stamp i { font-size: 18px; }
.fb-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.fb-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 700;
}

.flightband-inner { position: relative; z-index: 1; text-align: center; }
.flightband-copy { max-width: 760px; margin: 0 auto; }
.flightband-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.flightband-eyebrow i { color: var(--fb-gold-2); font-size: 12px; animation: fbCompass 8s ease-in-out infinite; }
@keyframes fbCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.flightband-title {
  margin: 20px 0 14px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-weight: 600;
  font-size: clamp(36px, 5vw, 68px);
  color: var(--fb-ink);
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.flightband-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.flightband-lead {
  margin: 0 auto;
  max-width: 58ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.64);
}

.fb-itinerary {
  list-style: none;
  margin: clamp(36px, 4.4vw, 52px) auto 0;
  padding: 0;
  max-width: 1180px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  position: relative;
}
.fb-itinerary::before {
  content: '';
  position: absolute;
  left: 8%;
  right: 8%;
  top: 34px;
  height: 0;
  border-top: 1.5px dashed rgba(184, 146, 74, 0.5);
  z-index: 0;
}
.fb-stop {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 22px 16px 20px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: 0 24px 44px -32px rgba(18, 23, 43, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s var(--ease), box-shadow 0.4s ease, background 0.4s ease;
}
.fb-stop:hover {
  transform: translateY(-6px);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 32px 56px -30px rgba(18, 23, 43, 0.42);
}
.fb-stop-pin {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-bottom: 6px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 16px;
  box-shadow: 0 12px 24px -14px rgba(184, 146, 74, 0.9);
}
.fb-stop-kicker {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fb-gold-2);
}
.fb-stop strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.1;
  color: var(--fb-ink);
}
.fb-stop em {
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
  color: rgba(18, 23, 43, 0.52);
}

.fb-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 28px auto 0;
  max-width: 860px;
}
.fb-pills span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.28);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(18, 23, 43, 0.72);
}
.fb-pills i { color: var(--fb-gold-2); font-size: 12px; }

.flightband-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}
.fb-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 7px 7px 7px 22px;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(100deg, #12172b 0%, #222a4c 52%, #12172b 100%);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 20px 40px -22px rgba(18, 23, 43, 0.85);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.fb-cta-orb {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
  transition: transform 0.4s var(--ease);
}
.fb-cta:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -20px rgba(18, 23, 43, 0.9); }
.fb-cta:hover .fb-cta-orb { transform: translateX(4px); }
.fb-ghost {
  display: inline-flex;
  align-items: center;
  padding: 14px 24px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid rgba(18, 23, 43, 0.14);
  background: rgba(255, 255, 255, 0.55);
  color: var(--fb-ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: transform 0.35s var(--ease), background 0.35s ease, border-color 0.35s ease;
}
.fb-ghost:hover {
  transform: translateY(-2px);
  background: #fff;
  border-color: rgba(184, 146, 74, 0.5);
}

@media (max-width: 980px) {
  .fb-itinerary { grid-template-columns: 1fr 1fr; }
  .fb-itinerary::before { display: none; }
  .fb-stamp { display: none; }
}
@media (max-width: 600px) {
  .flightband { padding: 52px 0 56px; }
  .flightband-title { font-size: clamp(32px, 9vw, 42px); }
  .flightband-lead { font-size: 14.5px; }
  .fb-itinerary { grid-template-columns: 1fr; gap: 12px; }
  .fb-stop { flex-direction: row; align-items: center; text-align: left; gap: 14px; padding: 14px 16px; }
  .fb-stop-pin { margin-bottom: 0; width: 42px; height: 42px; flex: 0 0 auto; }
  .fb-stop-kicker { margin-right: auto; }
  .fb-sky-plane { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fb-aurora, .fb-sky-route path, .fb-sky-plane, .flightband-eyebrow i { animation: none !important; }
}

/* ============================================================
   ABOUT LUX — ultra-luxury tour memoir
   ============================================================ */
.aboutlux {
  --al-gold: #c9a24a;
  --al-gold-2: #b8924a;
  --al-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: visible;
  padding: clamp(80px, 9vw, 128px) 0 clamp(88px, 9vw, 132px);
  color: var(--al-ink);
  background:
    radial-gradient(900px 420px at 6% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 20%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.aboutlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.aboutlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.aboutlux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.4), transparent 70%);
}
.aboutlux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.26), transparent 70%);
}
.aboutlux-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.04) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.aboutlux-route {
  position: absolute; left: 0; right: 0; top: 8%;
  width: 100%; height: 36%; overflow: visible;
}
.aboutlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.aboutlux.is-in .aboutlux-route path { animation: alDash 42s linear infinite; }
@keyframes alDash { to { stroke-dashoffset: -640; } }
.aboutlux-skyplane {
  position: absolute;
  top: 14%;
  left: -4%;
  z-index: 1;
  color: #b8924a;
  font-size: 18px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.aboutlux.is-in .aboutlux-skyplane { animation: alSky 22s linear infinite; }
@keyframes alSky {
  0% { transform: translate3d(0, 18px, 0) rotate(18deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -10px, 0) rotate(12deg); opacity: 1; }
  92% { opacity: 0.85; }
  100% { transform: translate3d(108vw, -36px, 0) rotate(16deg); opacity: 0; }
}

.aboutlux-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: clamp(40px, 5.5vw, 80px);
  align-items: center;
}

/* ---- photo stack ---- */
.aboutlux-media {
  position: relative;
  min-height: 560px;
  padding: 28px 36px 44px 28px;
}
.aboutlux-stage {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  isolation: isolate;
  aspect-ratio: 4 / 5;
  max-height: 640px;
  background: #1a1630;
  box-shadow:
    0 48px 80px -42px rgba(18, 23, 43, 0.55),
    0 0 0 1px rgba(201, 162, 74, 0.18);
}
.aboutlux-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.85), rgba(201, 162, 74, 0.08) 40%, rgba(26, 143, 124, 0.28) 72%, rgba(201, 162, 74, 0.5));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.aboutlux-stage img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(1.04);
}
.aboutlux.is-in .aboutlux-stage img {
  animation: alKen 22s ease-in-out infinite alternate;
}
@keyframes alKen {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.09) translate3d(-1.2%, -0.8%, 0); }
}
.aboutlux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.12) 0%, rgba(8, 12, 26, 0) 36%, rgba(8, 12, 26, 0.58) 100%);
  pointer-events: none;
}
.aboutlux-shine {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(108deg, transparent 36%, rgba(255, 248, 230, 0.34) 50%, transparent 64%);
  transform: translate3d(-130%, 0, 0);
}
.aboutlux.is-in .aboutlux-shine { animation: alShine 1.8s 0.45s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes alShine {
  from { transform: translate3d(-130%, 0, 0); }
  to { transform: translate3d(130%, 0, 0); }
}
.aboutlux-corners {
  position: absolute; inset: 14px;
  pointer-events: none;
  z-index: 3;
  border-radius: 18px;
  box-shadow:
    inset 18px 18px 0 -16px rgba(240, 215, 140, 0.9),
    inset -18px -18px 0 -16px rgba(240, 215, 140, 0.9);
}
.aboutlux-pin {
  position: absolute;
  top: 18px; left: 18px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(18, 23, 43, 0.42);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.aboutlux-pin i { color: #e0bd76; font-size: 11px; }
.aboutlux-years {
  position: absolute;
  left: 22px; bottom: 22px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 20px 14px 18px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.38);
  background: rgba(255, 253, 248, 0.72);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  color: var(--al-ink);
  box-shadow: 0 18px 36px -22px rgba(18, 23, 43, 0.55);
}
.aboutlux-years::before {
  content: '';
  position: absolute;
  left: 0; top: 12px; bottom: 12px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, #e0bd76, #b8924a);
}
.aboutlux-years strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  background: linear-gradient(100deg, #b8924a, #e0bd76 50%, #8a6a2c);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.aboutlux-years em {
  font-style: normal;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.55);
}
.aboutlux-stamp {
  position: absolute;
  right: 18px;
  bottom: 22px;
  z-index: 3;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(240, 215, 140, 0.92);
  transform: rotate(-16deg);
  background: radial-gradient(circle, rgba(18, 23, 43, 0.28), transparent 72%);
  pointer-events: none;
}
.aboutlux-stamp i { font-size: 16px; }
.aboutlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.aboutlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.aboutlux.is-in .aboutlux-stamp { animation: alStamp 1s 0.55s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes alStamp {
  from { opacity: 0; transform: rotate(-16deg) scale(1.25); }
  to { opacity: 1; transform: rotate(-16deg) scale(1); }
}

.aboutlux-shot {
  position: absolute;
  margin: 0;
  width: 176px;
  background: #fffdf8;
  padding: 8px 8px 30px;
  border-radius: 6px;
  box-shadow:
    0 22px 40px -22px rgba(18, 23, 43, 0.55),
    0 0 0 1px rgba(201, 162, 74, 0.16);
  z-index: 5;
}
.aboutlux-shot img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 3px;
}
.aboutlux-shot figcaption {
  position: absolute;
  left: 8px; right: 8px; bottom: 8px;
  font-family: 'Great Vibes', cursive;
  font-size: 16px;
  color: #5a4630;
  text-align: center;
}
.aboutlux-shot--puri {
  right: 4px; top: 6%;
  --r: 7deg;
  transform: rotate(7deg);
}
.aboutlux-shot--paris {
  left: 2px; bottom: 4%;
  --r: -8deg;
  transform: rotate(-8deg);
  width: 158px;
}
.aboutlux.is-in .aboutlux-shot--puri { animation: alPolaroid 0.8s 0.28s cubic-bezier(0.22, 1, 0.36, 1) both, alFloat 6.5s 1.2s ease-in-out infinite; }
.aboutlux.is-in .aboutlux-shot--paris { animation: alPolaroid 0.8s 0.4s cubic-bezier(0.22, 1, 0.36, 1) both, alFloat 7.4s 1.3s ease-in-out infinite reverse; }
@keyframes alPolaroid {
  from { opacity: 0; transform: translate3d(0, 18px, 0) rotate(var(--r, 7deg)) scale(0.92); }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotate(var(--r, 7deg)) scale(1); }
}
@keyframes alFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(var(--r, 7deg)); }
  50% { transform: translate3d(0, -8px, 0) rotate(var(--r, 7deg)); }
}

/* ---- copy ---- */
.aboutlux-copy { position: relative; padding-left: 8px; }
.aboutlux-copy::before {
  content: '';
  position: absolute;
  left: -6px; top: 8px; bottom: 8px;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(184, 146, 74, 0.55), transparent);
}
.aboutlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.aboutlux-kicker i { color: var(--al-gold-2); animation: alCompass 8s ease-in-out infinite; }
@keyframes alCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.aboutlux-title {
  margin: 18px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--al-ink);
}
.aboutlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.aboutlux-script {
  margin: 0 0 16px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--al-gold-2);
  line-height: 1.15;
}
.aboutlux-lead {
  margin: 0 0 12px;
  max-width: 52ch;
  font-size: 16px;
  line-height: 1.78;
  color: rgba(18, 23, 43, 0.64);
}
.aboutlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 18px 0 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.52);
}
.aboutlux-itin i {
  font-size: 10px;
  color: var(--al-gold-2);
  transform: rotate(45deg);
}
.aboutlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}
.aboutlux-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 32px;
  margin: 26px 0 22px;
  padding: 18px 0;
  border-top: 1px solid rgba(18, 23, 43, 0.08);
  border-bottom: 1px solid rgba(18, 23, 43, 0.08);
}
.aboutlux-stats span { display: flex; flex-direction: column; gap: 3px; }
.aboutlux-stats strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  color: var(--al-ink);
}
.aboutlux-stats em {
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.48);
}
.aboutlux-creds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 28px;
}
.aboutlux-creds > span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 14px 18px;
  border-radius: 16px;
  border: 1px solid rgba(184, 146, 74, 0.26);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.aboutlux-creds > span:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 32px -22px rgba(18, 23, 43, 0.4);
}
.aboutlux-ico {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: grid; place-items: center;
  margin-bottom: 6px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 13px;
  box-shadow: 0 8px 16px -10px rgba(184, 146, 74, 0.8);
}
.aboutlux-creds b {
  font-size: 13px;
  font-weight: 800;
  color: var(--al-ink);
}
.aboutlux-creds em {
  font-style: normal;
  font-size: 11.5px;
  color: rgba(18, 23, 43, 0.52);
}
.aboutlux-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 7px 7px 7px 22px;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(100deg, #12172b 0%, #222a4c 52%, #12172b 100%);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 20px 40px -22px rgba(18, 23, 43, 0.85);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  position: relative;
  overflow: hidden;
}
.aboutlux-cta::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 248, 230, 0.22) 48%, transparent 66%);
  transform: translateX(-120%);
  pointer-events: none;
}
.aboutlux-cta:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -20px rgba(18, 23, 43, 0.9); }
.aboutlux-cta:hover::after { animation: alShine 0.9s ease; }
.aboutlux-cta-orb {
  width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
  transition: transform 0.4s ease;
}
.aboutlux-cta:hover .aboutlux-cta-orb { transform: translateX(4px); }

/* reveal — hide only until is-in, then stay visible */
.aboutlux.js-on:not(.is-in) .aboutlux-media,
.aboutlux.js-on:not(.is-in) .aboutlux-copy > * {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.aboutlux.is-in .aboutlux-media {
  opacity: 1;
  transform: none;
  animation: alRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.aboutlux.is-in .aboutlux-copy > * {
  opacity: 1;
  transform: none;
}
.aboutlux.is-in .aboutlux-copy > *:nth-child(1) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(2) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.14s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(3) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(4) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.26s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(5) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(6) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.34s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(7) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.38s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(8) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.44s both; }
.aboutlux.is-in .aboutlux-copy > *:nth-child(9) { animation: alRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.5s both; }
@keyframes alRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .aboutlux-inner { grid-template-columns: 1fr; gap: 36px; }
  .aboutlux-media { min-height: 0; max-width: 560px; margin: 0 auto; padding: 18px 18px 36px; }
  .aboutlux-stage { aspect-ratio: 4 / 5; max-height: 520px; }
  .aboutlux-creds { grid-template-columns: 1fr; }
  .aboutlux-copy::before { display: none; }
  .aboutlux-skyplane { display: none; }
  .aboutlux-stamp { display: none; }
  .aboutlux-shot--paris { left: auto; right: 10px; bottom: -16px; width: 132px; }
}
@media (max-width: 720px) {
  .aboutlux { padding: 56px 0 64px; }
  .aboutlux-shot { width: 108px; padding-bottom: 22px; }
  .aboutlux-shot--puri { right: 6px; top: 8px; }
  .aboutlux-shot--paris { display: none; }
  .aboutlux-title { font-size: clamp(34px, 10vw, 44px); }
  .aboutlux-lead { font-size: 14.5px; }
  .aboutlux-years { left: 14px; bottom: 14px; right: auto; max-width: calc(100% - 28px); }
  .aboutlux-years strong { font-size: 28px; }
  .aboutlux-script { font-size: 24px; }
  .aboutlux.is-in .aboutlux-stage img { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  .aboutlux-media,
  .aboutlux-copy > * { opacity: 1 !important; transform: none !important; animation: none !important; }
  .aboutlux-stage img,
  .aboutlux-shot--puri,
  .aboutlux-shot--paris,
  .aboutlux-route path,
  .aboutlux-skyplane,
  .aboutlux-shine,
  .aboutlux-stamp,
  .aboutlux-kicker i { animation: none !important; }
}

/* ============================================================
   TRUST LUX — recognitions / seals of a journey
   ============================================================ */
.trustlux {
  --tl-gold: #c9a24a;
  --tl-gold-2: #b8924a;
  --tl-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 120px) 0 clamp(80px, 8vw, 118px);
  color: var(--tl-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.15), transparent 58%),
    radial-gradient(820px 380px at 100% 28%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.trustlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.trustlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.trustlux-aurora.a {
  width: 42vw; height: 42vw; left: -12vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.4), transparent 70%);
}
.trustlux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -22vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.trustlux-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.04) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.trustlux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 30%; overflow: visible;
}
.trustlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.4);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.trustlux.is-in .trustlux-route path { animation: tlDash 42s linear infinite; }
@keyframes tlDash { to { stroke-dashoffset: -640; } }
.trustlux-plane {
  position: absolute;
  top: 10%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.trustlux.is-in .trustlux-plane { animation: tlFly 22s linear infinite; }
@keyframes tlFly {
  0% { transform: translate3d(0, 16px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -32px, 0) rotate(14deg); opacity: 0; }
}

.trustlux-inner { position: relative; z-index: 1; }
.trustlux-head { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.trustlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.trustlux-kicker i { color: var(--tl-gold-2); animation: tlCompass 8s ease-in-out infinite; }
@keyframes tlCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.trustlux-title {
  margin: 18px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--tl-ink);
}
.trustlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.trustlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--tl-gold-2);
}

.trustlux-auths {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.trustlux-auth {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 24px 22px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--tl-ink);
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.26);
  box-shadow:
    0 28px 56px -36px rgba(18, 23, 43, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  overflow: hidden;
  transition: transform 0.45s ease, background 0.45s ease, box-shadow 0.45s ease;
}
.trustlux-auth::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(201, 162, 74, 0.7), rgba(201, 162, 74, 0.08) 42%, rgba(26, 143, 124, 0.25) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.trustlux-auth:hover {
  transform: translateY(-8px);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 36px 64px -32px rgba(18, 23, 43, 0.48);
}
.trustlux-seal {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: grid; place-items: center;
  margin-bottom: 6px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 15px;
  box-shadow: 0 10px 18px -12px rgba(184, 146, 74, 0.9);
}
.trustlux-auth h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--tl-ink);
}
.trustlux-auth p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(18, 23, 43, 0.55);
}
.trustlux-auth-cta {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tl-ink);
}
.trustlux-auth-orb {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.trustlux-auth:hover .trustlux-auth-orb { transform: translateX(3px); }

.trustlux-bni {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 42px;
  margin: 42px 0 36px;
  padding: 32px 36px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: 0 36px 70px -42px rgba(18, 23, 43, 0.5);
  overflow: hidden;
}
.trustlux-bni::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(500px 180px at 0% 0%, rgba(201, 162, 74, 0.14), transparent 70%);
}
.trustlux-bni-mark {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  padding: 14px;
}
.trustlux-bni-ring {
  position: absolute;
  inset: 0;
  border-radius: 28px;
  border: 1.5px dashed rgba(184, 146, 74, 0.55);
}
.trustlux-bni-logo {
  position: relative;
  z-index: 1;
  width: clamp(140px, 15vw, 196px);
  height: auto;
  padding: 14px 16px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 40px -24px rgba(18, 23, 43, 0.45);
}
.trustlux-bni-copy { position: relative; z-index: 1; min-width: 0; }
.trustlux-bni-kicker {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
  margin-bottom: 8px;
}
.trustlux-bni-copy h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 600;
  color: var(--tl-ink);
}
.trustlux-bni-issuer {
  margin: 4px 0 12px;
  font-size: 13px;
  font-weight: 700;
  color: var(--tl-gold-2);
}
.trustlux-bni-desc {
  margin: 0 0 16px;
  max-width: 62ch;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(18, 23, 43, 0.62);
}
.trustlux-points {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 22px;
}
.trustlux-points li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tl-ink);
}
.trustlux-points i {
  flex: 0 0 auto;
  margin-top: 2px;
  width: 18px; height: 18px;
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: 9px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
}

.trustlux-assoc-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 8px auto 22px;
  max-width: 720px;
}
.trustlux-rail {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184, 146, 74, 0.55), transparent);
}
.trustlux-assoc-head span:nth-child(2) {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8a6a2c;
  white-space: nowrap;
}

.trustlux-marquee {
  position: relative;
  overflow: hidden;
  padding: 4px 0 8px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.trustlux-track {
  display: flex;
  gap: 14px;
  width: max-content;
  animation: tlMarquee 48s linear infinite;
}
.trustlux-marquee:hover .trustlux-track { animation-play-state: paused; }
@keyframes tlMarquee { to { transform: translate3d(-50%, 0, 0); } }
.trustlux-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 18px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.58);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(184, 146, 74, 0.28);
  white-space: nowrap;
}
.trustlux-chip-code {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--tl-ink);
}
.trustlux-chip-name {
  font-size: 11px;
  font-weight: 600;
  color: rgba(18, 23, 43, 0.5);
}

.trustlux-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-top: 36px;
  padding-top: 22px;
  border-top: 1px dashed rgba(184, 146, 74, 0.4);
}
.trustlux-foot-ico {
  width: 36px; height: 36px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
}
.trustlux-foot p {
  margin: 0;
  font-size: 14px;
  color: rgba(18, 23, 43, 0.55);
}
.trustlux-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 7px 7px 7px 20px;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(100deg, #12172b 0%, #222a4c 52%, #12172b 100%);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 20px 40px -22px rgba(18, 23, 43, 0.85);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.trustlux-cta-orb {
  width: 32px; height: 32px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
  transition: transform 0.35s ease;
}
.trustlux-cta:hover { transform: translateY(-3px); }
.trustlux-cta:hover .trustlux-cta-orb { transform: translateX(4px); }

.trustlux.js-on:not(.is-in) .trustlux-head,
.trustlux.js-on:not(.is-in) .trustlux-auths,
.trustlux.js-on:not(.is-in) .trustlux-bni,
.trustlux.js-on:not(.is-in) .trustlux-assoc-head,
.trustlux.js-on:not(.is-in) .trustlux-marquee,
.trustlux.js-on:not(.is-in) .trustlux-foot {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.trustlux.is-in .trustlux-head,
.trustlux.is-in .trustlux-auths,
.trustlux.is-in .trustlux-bni,
.trustlux.is-in .trustlux-assoc-head,
.trustlux.is-in .trustlux-marquee,
.trustlux.is-in .trustlux-foot {
  opacity: 1;
  transform: none;
  animation: tlRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.trustlux.is-in .trustlux-auths { animation-delay: 0.1s; }
.trustlux.is-in .trustlux-bni { animation-delay: 0.2s; }
.trustlux.is-in .trustlux-assoc-head { animation-delay: 0.28s; }
.trustlux.is-in .trustlux-marquee { animation-delay: 0.34s; }
.trustlux.is-in .trustlux-foot { animation-delay: 0.4s; }
@keyframes tlRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1080px) {
  .trustlux-auths { grid-template-columns: repeat(2, 1fr); }
  .trustlux-bni { grid-template-columns: 1fr; gap: 18px; padding: 28px 22px; text-align: center; }
  .trustlux-bni-copy { text-align: center; }
  .trustlux-points { grid-template-columns: 1fr; text-align: left; max-width: 420px; margin: 0 auto; }
  .trustlux-bni-desc { margin-left: auto; margin-right: auto; }
  .trustlux-plane { display: none; }
}
@media (max-width: 560px) {
  .trustlux { padding: 56px 0 64px; }
  .trustlux-auths { grid-template-columns: 1fr; }
  .trustlux-title { font-size: clamp(32px, 9vw, 42px); }
  .trustlux-foot { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .trustlux-head,
  .trustlux-auths,
  .trustlux-bni,
  .trustlux-assoc-head,
  .trustlux-marquee,
  .trustlux-foot { opacity: 1 !important; transform: none !important; animation: none !important; }
  .trustlux-route path,
  .trustlux-plane,
  .trustlux-bni-ring,
  .trustlux-track,
  .trustlux-kicker i { animation: none !important; }
}

/* ============================================================
   SIGLUX — seven signature journeys
   ============================================================ */
.siglux {
  --sg-gold: #c9a24a;
  --sg-gold-2: #b8924a;
  --sg-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--sg-ink);
  background:
    radial-gradient(900px 420px at 6% 0%, rgba(201, 162, 74, 0.15), transparent 58%),
    radial-gradient(820px 380px at 100% 24%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 50%, #fffdf8 100%);
}
.siglux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.siglux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.siglux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.4), transparent 70%);
}
.siglux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.siglux-grid-deco {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.siglux-route {
  position: absolute; left: 0; right: 0; top: 4%;
  width: 100%; height: 28%; overflow: visible;
}
.siglux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.4);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.siglux.is-in .siglux-route path { animation: sgDash 42s linear infinite; }
@keyframes sgDash { to { stroke-dashoffset: -640; } }
.siglux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.siglux.is-in .siglux-plane { animation: sgFly 22s linear infinite; }
@keyframes sgFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.siglux-inner { position: relative; z-index: 1; }
.siglux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: clamp(36px, 4vw, 52px);
}
.siglux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.siglux-kicker i { color: var(--sg-gold-2); animation: sgCompass 8s ease-in-out infinite; }
@keyframes sgCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.siglux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--sg-ink);
}
.siglux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.siglux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--sg-gold-2);
}
.siglux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}

.siglux-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: minmax(210px, auto);
  gap: 18px;
}
.siglux-card {
  position: relative;
  display: block;
  min-height: 260px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.siglux-card--hero {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 540px;
}
.siglux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.siglux-photo { position: absolute; inset: 0; }
.siglux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.siglux-card:hover .siglux-photo img { transform: scale(1.13); }
.siglux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.18) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.72) 100%);
  pointer-events: none;
}
.siglux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.siglux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.siglux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.siglux-rate {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.88);
  color: var(--sg-ink);
  font-size: 11px;
  font-weight: 800;
}
.siglux-rate i { color: var(--sg-gold-2); font-size: 10px; }
.siglux-stamp {
  position: absolute;
  right: 18px;
  top: 46%;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.siglux-stamp i { font-size: 14px; }
.siglux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.siglux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.siglux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.siglux-region {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(18, 23, 43, 0.42);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
}
.siglux-region i { color: #e0bd76; }
.siglux-meta h3 {
  margin: 2px 0 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 2.2vw, 36px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.siglux-card--hero .siglux-meta h3 { font-size: clamp(36px, 3.6vw, 54px); }
.siglux-meta p {
  margin: 0 0 4px;
  max-width: 36ch;
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.siglux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 11.5px;
  font-weight: 700;
  color: #fff;
}
.siglux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.siglux-card:hover .siglux-go { transform: translateX(3px); }

.siglux-all {
  grid-column: span 2;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  min-height: 210px;
  padding: 28px 28px 28px 32px;
  border-radius: 24px;
  text-decoration: none;
  color: var(--sg-ink);
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(201, 162, 74, 0.22), transparent 70%),
    linear-gradient(160deg, #12172b 0%, #1c2442 55%, #12172b 100%);
  overflow: hidden;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.7);
  transition: transform 0.45s ease;
}
.siglux-all:hover { transform: translateY(-6px); }
.siglux-all-kicker {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #e0bd76;
}
.siglux-all strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 2.6vw, 38px);
  font-weight: 600;
  color: #fff;
}
.siglux-all em {
  font-style: normal;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.62);
}
.siglux-all-orb {
  position: absolute;
  right: 24px; bottom: 24px;
  width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 14px;
  transition: transform 0.35s ease;
}
.siglux-all:hover .siglux-all-orb { transform: translateX(4px); }

.siglux.js-on:not(.is-in) .siglux-head,
.siglux.js-on:not(.is-in) .siglux-card,
.siglux.js-on:not(.is-in) .siglux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.siglux.is-in .siglux-head {
  opacity: 1;
  animation: sgRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.siglux.is-in .siglux-card,
.siglux.is-in .siglux-all {
  opacity: 1;
  animation: sgRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.siglux.is-in .siglux-card:nth-child(1) { animation-delay: 0.08s; }
.siglux.is-in .siglux-card:nth-child(2) { animation-delay: 0.14s; }
.siglux.is-in .siglux-card:nth-child(3) { animation-delay: 0.2s; }
.siglux.is-in .siglux-card:nth-child(4) { animation-delay: 0.26s; }
.siglux.is-in .siglux-card:nth-child(5) { animation-delay: 0.32s; }
.siglux.is-in .siglux-card:nth-child(6) { animation-delay: 0.38s; }
.siglux.is-in .siglux-card:nth-child(7) { animation-delay: 0.44s; }
.siglux.is-in .siglux-all { animation-delay: 0.5s; }
@keyframes sgRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .siglux-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .siglux-card--hero { grid-column: span 2; grid-row: span 1; min-height: 420px; }
  .siglux-all { grid-column: span 2; }
  .siglux-head { flex-direction: column; align-items: flex-start; }
  .siglux-plane { display: none; }
  .siglux-stamp { display: none; }
}
@media (max-width: 640px) {
  .siglux { padding: 56px 0 64px; }
  .siglux-mosaic { grid-template-columns: 1fr; gap: 14px; }
  .siglux-card,
  .siglux-card--hero { grid-column: auto; grid-row: auto; min-height: 320px; }
  .siglux-all { grid-column: auto; min-height: 180px; }
  .siglux-title { font-size: clamp(34px, 10vw, 44px); }
  .siglux-corners { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .siglux-head,
  .siglux-card,
  .siglux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .siglux-route path,
  .siglux-plane,
  .siglux-kicker i,
  .siglux-photo img { animation: none !important; transition: none !important; }
}

/* ============================================================
   DESKLUX — complete travel desk
   ============================================================ */
.desklux {
  --dk-gold: #c9a24a;
  --dk-gold-2: #b8924a;
  --dk-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--dk-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.15), transparent 58%),
    radial-gradient(820px 380px at 100% 24%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 50%, #fffdf8 100%);
}
.desklux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.desklux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.desklux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.4), transparent 70%);
}
.desklux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.desklux-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.04) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.desklux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.desklux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.4);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.desklux.is-in .desklux-route path { animation: dkDash 42s linear infinite; }
@keyframes dkDash { to { stroke-dashoffset: -640; } }
.desklux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.desklux.is-in .desklux-plane { animation: dkFly 22s linear infinite; }
@keyframes dkFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.desklux-inner { position: relative; z-index: 1; }
.desklux-head { text-align: center; max-width: 720px; margin: 0 auto 44px; }
.desklux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.desklux-kicker i { color: var(--dk-gold-2); animation: dkCompass 8s ease-in-out infinite; }
@keyframes dkCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.desklux-title {
  margin: 18px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--dk-ink);
}
.desklux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.desklux-script {
  margin: 0 0 14px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--dk-gold-2);
}
.desklux-lead {
  margin: 0 auto 18px;
  max-width: 52ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.desklux-itin {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.desklux-itin i {
  font-size: 10px;
  color: var(--dk-gold-2);
  transform: rotate(45deg);
}
.desklux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.desklux-grid-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.desklux-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-height: 280px;
  padding: 26px 24px 22px;
  border-radius: 24px;
  text-decoration: none;
  color: var(--dk-ink);
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.26);
  box-shadow:
    0 28px 56px -36px rgba(18, 23, 43, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  overflow: hidden;
  transition: transform 0.45s ease, background 0.45s ease, box-shadow 0.45s ease;
}
.desklux-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(201, 162, 74, 0.7), rgba(201, 162, 74, 0.08) 42%, rgba(26, 143, 124, 0.22) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.desklux-card:hover {
  transform: translateY(-8px);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 36px 64px -32px rgba(18, 23, 43, 0.5);
}
.desklux-num {
  position: absolute;
  top: 18px; right: 20px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: rgba(184, 146, 74, 0.7);
}
.desklux-seal {
  width: 48px; height: 48px;
  border-radius: 50%;
  display: grid; place-items: center;
  margin-bottom: 8px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.desklux-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.desklux-card h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.15;
  color: var(--dk-ink);
}
.desklux-card p {
  margin: 0 0 auto;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(18, 23, 43, 0.58);
}
.desklux-cta {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dk-ink);
}
.desklux-orb {
  width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.desklux-card:hover .desklux-orb { transform: translateX(4px); }

.desklux.js-on:not(.is-in) .desklux-head,
.desklux.js-on:not(.is-in) .desklux-card {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.desklux.is-in .desklux-head,
.desklux.is-in .desklux-card {
  opacity: 1;
  animation: dkRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.desklux.is-in .desklux-card:nth-child(1) { animation-delay: 0.08s; }
.desklux.is-in .desklux-card:nth-child(2) { animation-delay: 0.16s; }
.desklux.is-in .desklux-card:nth-child(3) { animation-delay: 0.24s; }
.desklux.is-in .desklux-card:nth-child(4) { animation-delay: 0.32s; }
@keyframes dkRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .desklux-grid-cards { grid-template-columns: 1fr 1fr; }
  .desklux-plane { display: none; }
}
@media (max-width: 640px) {
  .desklux { padding: 56px 0 64px; }
  .desklux-grid-cards { grid-template-columns: 1fr; }
  .desklux-title { font-size: clamp(34px, 10vw, 44px); }
  .desklux-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .desklux-head,
  .desklux-card { opacity: 1 !important; transform: none !important; animation: none !important; }
  .desklux-route path,
  .desklux-plane,
  .desklux-kicker i { animation: none !important; }
}

/* =============== THEME EXPLORER (ULTRA LUXURY) =============== */
.themelux {
  --tm-gold: #c9a24a;
  --tm-gold-2: #b8924a;
  --tm-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--tm-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.themelux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.themelux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.themelux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.themelux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.themelux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.themelux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.themelux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.themelux.is-in .themelux-route path { animation: tmDash 42s linear infinite; }
@keyframes tmDash { to { stroke-dashoffset: -640; } }
.themelux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.themelux.is-in .themelux-plane { animation: tmFly 22s linear infinite; }
@keyframes tmFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.themelux-inner { position: relative; z-index: 1; }
.themelux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.themelux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.themelux-kicker i { color: var(--tm-gold-2); animation: tmCompass 8s ease-in-out infinite; }
@keyframes tmCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.themelux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--tm-ink);
}
.themelux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.themelux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--tm-gold-2);
}
.themelux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.themelux-itin {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 28px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.themelux-itin i {
  font-size: 10px;
  color: var(--tm-gold-2);
  transform: rotate(45deg);
}
.themelux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.themelux-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
}
.themelux-tab {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.28);
  background: rgba(255, 255, 255, 0.58);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  color: var(--tm-ink);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.35s ease, background 0.35s ease, box-shadow 0.35s ease, color 0.35s ease, border-color 0.35s ease;
}
.themelux-tab i { color: var(--tm-gold-2); font-size: 13px; }
.themelux-tab:hover {
  transform: translateY(-2px);
  border-color: rgba(184, 146, 74, 0.5);
  background: rgba(255, 255, 255, 0.88);
}
.themelux-tab.is-active {
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
  border-color: rgba(201, 162, 74, 0.55);
  box-shadow: 0 18px 36px -20px rgba(18, 23, 43, 0.75);
}
.themelux-tab.is-active i { color: #e0bd76; }

.themelux-panel[hidden] { display: none !important; }
.themelux-panel:not([hidden]) { animation: tmPanel 0.55s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes tmPanel {
  from { opacity: 0; transform: translate3d(0, 10px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.themelux-panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
}
.themelux-line {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(20px, 2vw, 26px);
  font-style: italic;
  font-weight: 500;
  line-height: 1.35;
  color: #8a6a2c;
}
.themelux-count {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.48);
}

.themelux-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(230px, auto);
  gap: 18px;
}
.themelux-card {
  position: relative;
  display: block;
  min-height: 320px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.themelux-card--hero {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 560px;
}
.themelux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.themelux-photo { position: absolute; inset: 0; }
.themelux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.themelux-card:hover .themelux-photo img { transform: scale(1.13); }
.themelux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.22) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.78) 100%);
  pointer-events: none;
}
.themelux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.themelux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.themelux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.themelux-badges {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.themelux-rate,
.themelux-loc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.themelux-rate {
  background: rgba(255, 253, 248, 0.9);
  color: var(--tm-ink);
}
.themelux-rate i { color: var(--tm-gold-2); font-size: 10px; }
.themelux-loc {
  max-width: 180px;
  background: rgba(18, 23, 43, 0.48);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.themelux-loc i { color: #e0bd76; }
.themelux-stamp {
  position: absolute;
  right: 22px;
  top: 46%;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.themelux-stamp i { font-size: 14px; }
.themelux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.themelux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.themelux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.themelux-eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.themelux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 2.2vw, 36px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.themelux-card--hero .themelux-meta h3 { font-size: clamp(36px, 3.6vw, 54px); }
.themelux-meta p {
  margin: 0 0 4px;
  max-width: 36ch;
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.themelux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
}
.themelux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.themelux-card:hover .themelux-go { transform: translateX(3px); }

.themelux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--tm-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.themelux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.themelux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.themelux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.themelux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.themelux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.themelux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.themelux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--tm-gold-2);
  transition: transform 0.35s ease;
}
.themelux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.themelux.js-on:not(.is-in) .themelux-head,
.themelux.js-on:not(.is-in) .themelux-itin,
.themelux.js-on:not(.is-in) .themelux-tabs,
.themelux.js-on:not(.is-in) .themelux-panel-head,
.themelux.js-on:not(.is-in) .themelux-card,
.themelux.js-on:not(.is-in) .themelux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.themelux.is-in .themelux-head,
.themelux.is-in .themelux-itin,
.themelux.is-in .themelux-tabs,
.themelux.is-in .themelux-panel-head,
.themelux.is-in .themelux-card,
.themelux.is-in .themelux-all {
  opacity: 1;
  animation: tmRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.themelux.is-in .themelux-itin { animation-delay: 0.06s; }
.themelux.is-in .themelux-tabs { animation-delay: 0.1s; }
.themelux.is-in .themelux-card:nth-child(1) { animation-delay: 0.12s; }
.themelux.is-in .themelux-card:nth-child(2) { animation-delay: 0.18s; }
.themelux.is-in .themelux-card:nth-child(3) { animation-delay: 0.24s; }
.themelux.is-in .themelux-card:nth-child(4) { animation-delay: 0.3s; }
.themelux.is-in .themelux-card:nth-child(5) { animation-delay: 0.36s; }
.themelux.is-in .themelux-card:nth-child(6) { animation-delay: 0.42s; }
.themelux.is-in .themelux-all { animation-delay: 0.48s; }
@keyframes tmRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .themelux-head { flex-direction: column; align-items: flex-start; }
  .themelux-mosaic { grid-template-columns: 1fr 1fr; }
  .themelux-card--hero { grid-column: span 2; grid-row: span 1; min-height: 420px; }
  .themelux-stamp { display: none; }
  .themelux-plane { display: none; }
}
@media (max-width: 640px) {
  .themelux { padding: 56px 0 64px; }
  .themelux-title { font-size: clamp(34px, 10vw, 44px); }
  .themelux-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; scrollbar-width: none; }
  .themelux-tabs::-webkit-scrollbar { display: none; }
  .themelux-tab { flex: 0 0 auto; }
  .themelux-mosaic { grid-template-columns: 1fr; }
  .themelux-card,
  .themelux-card--hero { grid-column: auto; grid-row: auto; min-height: 360px; }
  .themelux-panel-head { flex-direction: column; gap: 6px; }
  .themelux-all { padding: 16px 16px; }
  .themelux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .themelux-head,
  .themelux-itin,
  .themelux-tabs,
  .themelux-panel-head,
  .themelux-card,
  .themelux-all,
  .themelux-panel:not([hidden]) { opacity: 1 !important; transform: none !important; animation: none !important; }
  .themelux-route path,
  .themelux-plane,
  .themelux-kicker i { animation: none !important; }
}

/* =============== SPIN-THE-GLOBE PICKER (ULTRA LUXURY) =============== */
.spinlux {
  --sl-gold: #c9a24a;
  --sl-gold-2: #b8924a;
  --sl-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--sl-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.spinlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.spinlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.spinlux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.spinlux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.spinlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.spinlux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.spinlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.spinlux.is-in .spinlux-route path { animation: slDash 42s linear infinite; }
@keyframes slDash { to { stroke-dashoffset: -640; } }
.spinlux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.spinlux.is-in .spinlux-plane { animation: slFly 22s linear infinite; }
@keyframes slFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.spinlux-inner { position: relative; z-index: 1; }
.spinlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.spinlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.spinlux-kicker i { color: var(--sl-gold-2); animation: slCompass 8s ease-in-out infinite; }
@keyframes slCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.spinlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--sl-ink);
}
.spinlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.spinlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--sl-gold-2);
}
.spinlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.spinlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 36px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.spinlux-itin i {
  font-size: 10px;
  color: var(--sl-gold-2);
  transform: rotate(45deg);
}
.spinlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.spinlux-stage {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 28px;
  align-items: stretch;
  margin-bottom: 22px;
}
.spinlux-console {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 36px 28px 32px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.26);
  box-shadow:
    0 28px 56px -36px rgba(18, 23, 43, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  position: relative;
  overflow: hidden;
}
.spinlux-console::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(201, 162, 74, 0.7), rgba(201, 162, 74, 0.08) 42%, rgba(26, 143, 124, 0.22) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.spinlux-globe {
  position: relative;
  width: 236px;
  height: 236px;
  display: grid;
  place-items: center;
}
.spinlux-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px dashed rgba(184, 146, 74, 0.5);
  pointer-events: none;
}
.spinlux-ring.outer { inset: 0; animation: slOrbit 28s linear infinite; }
.spinlux-ring.inner { inset: 22px; animation: slOrbit 18s linear infinite reverse; }
@keyframes slOrbit { to { transform: rotate(360deg); } }
.spinlux-orb {
  position: relative;
  width: 156px; height: 156px;
  border-radius: 50%;
  display: grid; place-items: center;
  background:
    radial-gradient(circle at 32% 28%, #3d486c 0%, #12172b 52%, #07090f 100%);
  box-shadow:
    inset -16px -18px 36px rgba(0, 0, 0, 0.45),
    inset 10px 12px 20px rgba(240, 215, 140, 0.12),
    0 28px 40px -22px rgba(18, 23, 43, 0.7);
  overflow: hidden;
}
.spinlux-meridians {
  position: absolute;
  inset: 8px;
  width: calc(100% - 16px);
  height: calc(100% - 16px);
  fill: none;
  stroke: rgba(224, 189, 118, 0.38);
  stroke-width: 1.2;
  animation: slGlobe 36s linear infinite;
}
@keyframes slGlobe { to { transform: rotate(360deg); } }
.spinlux-compass {
  position: relative;
  z-index: 1;
  color: #e0bd76;
  font-size: 28px;
  filter: drop-shadow(0 8px 12px rgba(184, 146, 74, 0.4));
  animation: slCompass 6s ease-in-out infinite;
}
.spinlux-sat {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  color: var(--sl-gold-2);
  font-size: 13px;
  animation: slSat 28s linear infinite;
  filter: drop-shadow(0 6px 10px rgba(184, 146, 74, 0.45));
  pointer-events: none;
}
@keyframes slSat {
  from { transform: rotate(0deg) translateX(108px) rotate(20deg); }
  to { transform: rotate(360deg) translateX(108px) rotate(20deg); }
}
.spinlux-orb-shadow {
  position: absolute;
  bottom: 8px;
  width: 120px; height: 14px;
  border-radius: 50%;
  background: rgba(18, 23, 43, 0.22);
  filter: blur(8px);
}

.spinlux-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}
.spinlux-stat {
  padding: 12px 8px;
  border-radius: 16px;
  text-align: center;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(184, 146, 74, 0.22);
}
.spinlux-stat em {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-style: normal;
  font-weight: 600;
  color: var(--sl-ink);
  line-height: 1;
}
.spinlux-stat span {
  display: block;
  margin-top: 4px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}

.spinlux-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 28px;
  border-radius: 999px;
  border: 1px solid rgba(201, 162, 74, 0.55);
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 18px 36px -18px rgba(18, 23, 43, 0.75);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.spinlux-btn i { color: #e0bd76; }
.spinlux-btn:hover { transform: translateY(-2px); }
.spinlux-btn.is-busy {
  pointer-events: none;
  opacity: 0.88;
}
.spinlux-btn.is-busy i { animation: slOrbit 0.7s linear infinite; }
.spinlux-whisper {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-style: italic;
  color: #8a6a2c;
}

.spinlux-portrait {
  position: relative;
  display: block;
  min-height: 560px;
  border-radius: 28px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.spinlux-portrait:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.spinlux-photo { position: absolute; inset: 0; }
.spinlux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease, opacity 0.35s ease;
}
.spinlux-portrait:hover .spinlux-photo img { transform: scale(1.12); }
.spinlux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.22) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.78) 100%);
  pointer-events: none;
}
.spinlux-portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.spinlux-corners {
  position: absolute; inset: 14px;
  pointer-events: none;
  z-index: 3;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.spinlux-num {
  position: absolute;
  top: 18px; left: 18px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.spinlux-badges {
  position: absolute;
  top: 18px; right: 18px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.spinlux-rate,
.spinlux-loc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.spinlux-rate {
  background: rgba(255, 253, 248, 0.9);
  color: var(--sl-ink);
}
.spinlux-rate i { color: var(--sl-gold-2); font-size: 10px; }
.spinlux-rate b { font-weight: 800; }
.spinlux-loc {
  max-width: 200px;
  background: rgba(18, 23, 43, 0.48);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.spinlux-loc i { color: #e0bd76; }
.spinlux-stamp {
  position: absolute;
  right: 24px;
  top: 44%;
  z-index: 3;
  width: 92px; height: 92px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.spinlux-stamp i { font-size: 14px; }
.spinlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.spinlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 700;
}
.spinlux-meta {
  position: absolute;
  left: 20px; right: 20px; bottom: 18px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.spinlux-eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.spinlux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(36px, 3.6vw, 56px);
  font-weight: 600;
  line-height: 1.06;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.spinlux-meta p {
  margin: 0 0 4px;
  max-width: 36ch;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.spinlux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 12px;
  font-weight: 700;
  color: #fff;
}
.spinlux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.spinlux-portrait:hover .spinlux-go { transform: translateX(3px); }

.spinlux.is-spinning .spinlux-ring { animation-duration: 0.55s; }
.spinlux.is-spinning .spinlux-meridians { animation-duration: 0.8s; }
.spinlux.is-spinning .spinlux-sat { animation-duration: 0.7s; }
.spinlux.is-spinning .spinlux-photo img {
  filter: blur(8px) saturate(0.7);
  transform: scale(1.18);
}
.spinlux.is-spinning .spinlux-portrait { pointer-events: none; }
.spinlux.is-revealed .spinlux-portrait { animation: slReveal 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; }
.spinlux.is-revealed .spinlux-stamp { animation: slStamp 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes slReveal {
  0% { transform: scale(0.985); }
  45% { transform: scale(1.018); }
  100% { transform: scale(1); }
}
@keyframes slStamp {
  0% { opacity: 0; transform: rotate(-28deg) scale(0.7); }
  100% { opacity: 1; transform: rotate(-16deg) scale(1); }
}
.spinlux.is-spinning .spinlux-film-track { animation-duration: 4s; }

.spinlux-film {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 18px;
  min-width: 0;
}
.spinlux-film-kicker {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.spinlux-film-mask {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.spinlux-film-track {
  display: flex;
  gap: 10px;
  width: max-content;
  animation: slFilm 32s linear infinite;
}
@keyframes slFilm { to { transform: translateX(-50%); } }
.spinlux-chip {
  position: relative;
  flex: 0 0 92px;
  height: 118px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(184, 146, 74, 0.3);
  box-shadow: 0 12px 24px -16px rgba(18, 23, 43, 0.5);
}
.spinlux-chip img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.spinlux-chip em {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 18px 6px 7px;
  background: linear-gradient(180deg, transparent, rgba(8, 12, 26, 0.82));
  color: #fff;
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
}

.spinlux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--sl-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.spinlux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.spinlux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.spinlux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.spinlux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.spinlux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.spinlux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.spinlux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--sl-gold-2);
  transition: transform 0.35s ease;
}
.spinlux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.spinlux.js-on:not(.is-in) .spinlux-head,
.spinlux.js-on:not(.is-in) .spinlux-itin,
.spinlux.js-on:not(.is-in) .spinlux-console,
.spinlux.js-on:not(.is-in) .spinlux-portrait,
.spinlux.js-on:not(.is-in) .spinlux-film,
.spinlux.js-on:not(.is-in) .spinlux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.spinlux.is-in .spinlux-head,
.spinlux.is-in .spinlux-itin,
.spinlux.is-in .spinlux-console,
.spinlux.is-in .spinlux-portrait,
.spinlux.is-in .spinlux-film,
.spinlux.is-in .spinlux-all {
  opacity: 1;
  animation: slRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.spinlux.is-in .spinlux-itin { animation-delay: 0.06s; }
.spinlux.is-in .spinlux-console { animation-delay: 0.12s; }
.spinlux.is-in .spinlux-portrait { animation-delay: 0.2s; }
.spinlux.is-in .spinlux-film { animation-delay: 0.28s; }
.spinlux.is-in .spinlux-all { animation-delay: 0.36s; }
@keyframes slRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .spinlux-head { flex-direction: column; align-items: flex-start; }
  .spinlux-stage { grid-template-columns: 1fr; }
  .spinlux-portrait { min-height: 460px; }
  .spinlux-plane { display: none; }
  .spinlux-sat { display: none; }
}
@media (max-width: 640px) {
  .spinlux { padding: 56px 0 64px; }
  .spinlux-title { font-size: clamp(34px, 10vw, 44px); }
  .spinlux-portrait { min-height: 400px; }
  .spinlux-stamp { display: none; }
  .spinlux-globe { width: 200px; height: 200px; }
  .spinlux-orb { width: 132px; height: 132px; }
  .spinlux-stats { gap: 8px; }
  .spinlux-all { padding: 16px; }
  .spinlux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .spinlux-head,
  .spinlux-itin,
  .spinlux-console,
  .spinlux-portrait,
  .spinlux-film,
  .spinlux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .spinlux-route path,
  .spinlux-plane,
  .spinlux-kicker i,
  .spinlux-ring,
  .spinlux-meridians,
  .spinlux-compass,
  .spinlux-sat,
  .spinlux-film-track { animation: none !important; }
}

/* =============== OFFERS (ULTRA LUXURY) =============== */
.offerlux {
  --of-gold: #c9a24a;
  --of-gold-2: #b8924a;
  --of-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--of-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.offerlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.offerlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.offerlux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.offerlux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.offerlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.offerlux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.offerlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.offerlux.is-in .offerlux-route path { animation: ofDash 42s linear infinite; }
@keyframes ofDash { to { stroke-dashoffset: -640; } }
.offerlux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.offerlux.is-in .offerlux-plane { animation: ofFly 22s linear infinite; }
@keyframes ofFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.offerlux-inner { position: relative; z-index: 1; }
.offerlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.offerlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.offerlux-kicker i { color: var(--of-gold-2); animation: ofCompass 8s ease-in-out infinite; }
@keyframes ofCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.offerlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--of-ink);
}
.offerlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.offerlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--of-gold-2);
}
.offerlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.offerlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.offerlux-itin i {
  font-size: 10px;
  color: var(--of-gold-2);
  transform: rotate(45deg);
}
.offerlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.offerlux-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(230px, auto);
  gap: 18px;
}
.offerlux-card {
  position: relative;
  display: block;
  min-height: 320px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.offerlux-card--hero {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 560px;
}
.offerlux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.offerlux-photo { position: absolute; inset: 0; }
.offerlux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.offerlux-card:hover .offerlux-photo img { transform: scale(1.13); }
.offerlux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.22) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.78) 100%);
  pointer-events: none;
}
.offerlux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.offerlux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.offerlux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.offerlux-badges {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.offerlux-seal,
.offerlux-when {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 11px;
  border-radius: 999px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.offerlux-seal {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  box-shadow: 0 10px 18px -12px rgba(184, 146, 74, 0.95);
}
.offerlux-when {
  background: rgba(18, 23, 43, 0.48);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.offerlux-when i { color: #e0bd76; }
.offerlux-stamp {
  position: absolute;
  right: 22px;
  top: 46%;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.offerlux-stamp i { font-size: 14px; }
.offerlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.offerlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 700;
}
.offerlux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.offerlux-eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.offerlux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(24px, 2.1vw, 34px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.offerlux-card--hero .offerlux-meta h3 { font-size: clamp(34px, 3.4vw, 52px); }
.offerlux-meta p {
  margin: 0 0 4px;
  max-width: 38ch;
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.offerlux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
}
.offerlux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  margin-left: auto;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.offerlux-card:hover .offerlux-go { transform: translateX(3px); }

.offerlux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--of-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.offerlux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.offerlux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.offerlux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.offerlux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.offerlux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.offerlux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.offerlux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--of-gold-2);
  transition: transform 0.35s ease;
}
.offerlux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.offerlux.js-on:not(.is-in) .offerlux-head,
.offerlux.js-on:not(.is-in) .offerlux-itin,
.offerlux.js-on:not(.is-in) .offerlux-card,
.offerlux.js-on:not(.is-in) .offerlux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.offerlux.is-in .offerlux-head,
.offerlux.is-in .offerlux-itin,
.offerlux.is-in .offerlux-card,
.offerlux.is-in .offerlux-all {
  opacity: 1;
  animation: ofRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.offerlux.is-in .offerlux-itin { animation-delay: 0.06s; }
.offerlux.is-in .offerlux-card:nth-child(1) { animation-delay: 0.1s; }
.offerlux.is-in .offerlux-card:nth-child(2) { animation-delay: 0.16s; }
.offerlux.is-in .offerlux-card:nth-child(3) { animation-delay: 0.22s; }
.offerlux.is-in .offerlux-card:nth-child(4) { animation-delay: 0.28s; }
.offerlux.is-in .offerlux-card:nth-child(5) { animation-delay: 0.34s; }
.offerlux.is-in .offerlux-card:nth-child(6) { animation-delay: 0.4s; }
.offerlux.is-in .offerlux-all { animation-delay: 0.46s; }
@keyframes ofRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .offerlux-head { flex-direction: column; align-items: flex-start; }
  .offerlux-mosaic { grid-template-columns: 1fr 1fr; }
  .offerlux-card--hero { grid-column: span 2; grid-row: span 1; min-height: 420px; }
  .offerlux-stamp { display: none; }
  .offerlux-plane { display: none; }
}
@media (max-width: 640px) {
  .offerlux { padding: 56px 0 64px; }
  .offerlux-title { font-size: clamp(34px, 10vw, 44px); }
  .offerlux-mosaic { grid-template-columns: 1fr; }
  .offerlux-card,
  .offerlux-card--hero { grid-column: auto; grid-row: auto; min-height: 360px; }
  .offerlux-all { padding: 16px; }
  .offerlux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .offerlux-head,
  .offerlux-itin,
  .offerlux-card,
  .offerlux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .offerlux-route path,
  .offerlux-plane,
  .offerlux-kicker i { animation: none !important; }
}

/* =============== INCREDIBLE INDIA (ULTRA LUXURY) =============== */
.indialux {
  --il-gold: #c9a24a;
  --il-gold-2: #b8924a;
  --il-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--il-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.indialux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.indialux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.indialux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.indialux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.indialux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.indialux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.indialux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.indialux.is-in .indialux-route path { animation: ilDash 42s linear infinite; }
@keyframes ilDash { to { stroke-dashoffset: -640; } }
.indialux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.indialux.is-in .indialux-plane { animation: ilFly 22s linear infinite; }
@keyframes ilFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.indialux-inner { position: relative; z-index: 1; }
.indialux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.indialux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.indialux-kicker i { color: var(--il-gold-2); animation: ilCompass 8s ease-in-out infinite; }
@keyframes ilCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.indialux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--il-ink);
}
.indialux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.indialux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--il-gold-2);
}
.indialux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.indialux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.indialux-itin i {
  font-size: 10px;
  color: var(--il-gold-2);
  transform: rotate(45deg);
}
.indialux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.indialux-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(230px, auto);
  gap: 18px;
}
.indialux-card {
  position: relative;
  display: block;
  min-height: 320px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.indialux-card--hero {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 560px;
}
.indialux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.indialux-photo { position: absolute; inset: 0; }
.indialux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.indialux-card:hover .indialux-photo img { transform: scale(1.13); }
.indialux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.22) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.78) 100%);
  pointer-events: none;
}
.indialux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.indialux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.indialux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.indialux-badges {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.indialux-rate,
.indialux-loc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.indialux-rate {
  background: rgba(255, 253, 248, 0.9);
  color: var(--il-ink);
}
.indialux-rate i { color: var(--il-gold-2); font-size: 10px; }
.indialux-loc {
  max-width: 180px;
  background: rgba(18, 23, 43, 0.48);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.indialux-loc i { color: #e0bd76; }
.indialux-stamp {
  position: absolute;
  right: 22px;
  top: 46%;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.indialux-stamp i { font-size: 14px; }
.indialux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.indialux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.indialux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.indialux-eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.indialux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 2.2vw, 36px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.indialux-card--hero .indialux-meta h3 { font-size: clamp(36px, 3.6vw, 54px); }
.indialux-meta p {
  margin: 0 0 4px;
  max-width: 36ch;
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.indialux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}
.indialux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.indialux-card:hover .indialux-go { transform: translateX(3px); }

.indialux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--il-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.indialux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.indialux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.indialux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.indialux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.indialux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.indialux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.indialux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--il-gold-2);
  transition: transform 0.35s ease;
}
.indialux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.indialux.js-on:not(.is-in) .indialux-head,
.indialux.js-on:not(.is-in) .indialux-itin,
.indialux.js-on:not(.is-in) .indialux-card,
.indialux.js-on:not(.is-in) .indialux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.indialux.is-in .indialux-head,
.indialux.is-in .indialux-itin,
.indialux.is-in .indialux-card,
.indialux.is-in .indialux-all {
  opacity: 1;
  animation: ilRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.indialux.is-in .indialux-itin { animation-delay: 0.06s; }
.indialux.is-in .indialux-card:nth-child(1) { animation-delay: 0.1s; }
.indialux.is-in .indialux-card:nth-child(2) { animation-delay: 0.16s; }
.indialux.is-in .indialux-card:nth-child(3) { animation-delay: 0.22s; }
.indialux.is-in .indialux-card:nth-child(4) { animation-delay: 0.28s; }
.indialux.is-in .indialux-card:nth-child(5) { animation-delay: 0.34s; }
.indialux.is-in .indialux-card:nth-child(6) { animation-delay: 0.4s; }
.indialux.is-in .indialux-all { animation-delay: 0.46s; }
@keyframes ilRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .indialux-head { flex-direction: column; align-items: flex-start; }
  .indialux-mosaic { grid-template-columns: 1fr 1fr; }
  .indialux-card--hero { grid-column: span 2; grid-row: span 1; min-height: 420px; }
  .indialux-stamp { display: none; }
  .indialux-plane { display: none; }
}
@media (max-width: 640px) {
  .indialux { padding: 56px 0 64px; }
  .indialux-title { font-size: clamp(34px, 10vw, 44px); }
  .indialux-mosaic { grid-template-columns: 1fr; }
  .indialux-card,
  .indialux-card--hero { grid-column: auto; grid-row: auto; min-height: 360px; }
  .indialux-all { padding: 16px; }
  .indialux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .indialux-head,
  .indialux-itin,
  .indialux-card,
  .indialux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .indialux-route path,
  .indialux-plane,
  .indialux-kicker i { animation: none !important; }
}

/* =============== COOLCATIONS (ULTRA LUXURY) =============== */
.coollux {
  --cl-gold: #c9a24a;
  --cl-gold-2: #b8924a;
  --cl-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--cl-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.coollux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.coollux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.coollux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.coollux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.26), transparent 70%);
}
.coollux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.coollux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.coollux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.coollux.is-in .coollux-route path { animation: clDash 42s linear infinite; }
@keyframes clDash { to { stroke-dashoffset: -640; } }
.coollux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.coollux.is-in .coollux-plane { animation: clFly 22s linear infinite; }
@keyframes clFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.coollux-inner { position: relative; z-index: 1; }
.coollux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.coollux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.coollux-kicker i { color: var(--cl-gold-2); animation: clCompass 8s ease-in-out infinite; }
@keyframes clCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.coollux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--cl-ink);
}
.coollux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.coollux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--cl-gold-2);
}
.coollux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.coollux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.coollux-itin i {
  font-size: 10px;
  color: var(--cl-gold-2);
  transform: rotate(45deg);
}
.coollux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.coollux-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 18px;
  margin-bottom: 18px;
  align-items: stretch;
}
.coollux-hero-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  padding: 36px 32px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.26);
  box-shadow:
    0 28px 56px -36px rgba(18, 23, 43, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  overflow: hidden;
}
.coollux-hero-copy::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(201, 162, 74, 0.7), rgba(201, 162, 74, 0.08) 42%, rgba(26, 143, 124, 0.22) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.coollux-trend {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(18, 23, 43, 0.06);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.coollux-trend i { color: var(--cl-gold-2); }
.coollux-hero-copy h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 3.2vw, 46px);
  font-weight: 600;
  line-height: 1.08;
  color: var(--cl-ink);
}
.coollux-hero-copy h3 em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 50%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.coollux-hero-copy > p {
  margin: 0;
  max-width: 42ch;
  font-size: 15.5px;
  line-height: 1.7;
  color: rgba(18, 23, 43, 0.62);
}
.coollux-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.coollux-stats div {
  padding: 12px 8px;
  border-radius: 16px;
  text-align: center;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(184, 146, 74, 0.22);
}
.coollux-stats em {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
}
.coollux-stats span {
  display: block;
  margin-top: 4px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.coollux-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.coollux-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: 0 18px 36px -18px rgba(18, 23, 43, 0.75);
  transition: transform 0.35s ease;
}
.coollux-btn i { color: #e0bd76; }
.coollux-btn:hover { transform: translateY(-2px); }
.coollux-ghost {
  display: inline-flex;
  align-items: center;
  padding: 14px 20px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.4);
  background: rgba(255, 255, 255, 0.55);
  color: var(--cl-ink);
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: transform 0.35s ease, background 0.35s ease;
}
.coollux-ghost:hover { transform: translateY(-2px); background: #fff; }

.coollux-hero-photo {
  position: relative;
  display: block;
  min-height: 460px;
  border-radius: 28px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
}
.coollux-hero-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.coollux-hero-photo:hover img { transform: scale(1.13); }
.coollux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.12) 40%, rgba(8, 12, 26, 0.45) 100%);
  pointer-events: none;
}
.coollux-hero-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.coollux-corners {
  position: absolute; inset: 14px;
  pointer-events: none;
  z-index: 3;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.coollux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.coollux-stamp i { font-size: 14px; }
.coollux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.coollux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.coollux-media-badge {
  position: absolute;
  left: 18px; bottom: 18px;
  z-index: 3;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(18, 23, 43, 0.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}
.coollux-media-badge strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  color: #f7e7bc;
}

.coollux-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.coollux-card {
  position: relative;
  display: block;
  min-height: 340px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.coollux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.coollux-photo { position: absolute; inset: 0; }
.coollux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.coollux-card:hover .coollux-photo img { transform: scale(1.13); }
.coollux-card-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.18) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.78) 100%);
  pointer-events: none;
}
.coollux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.coollux-card-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.5),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.5);
}
.coollux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
}
.coollux-mood {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.9);
  color: var(--cl-ink);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.coollux-mood i { color: var(--cl-gold-2); }
.coollux-meta {
  position: absolute;
  left: 16px; right: 16px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}
.coollux-eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.coollux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(24px, 2vw, 32px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.coollux-meta p {
  margin: 0 0 4px;
  font-size: 13.5px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.82);
}
.coollux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}
.coollux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  margin-left: auto;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.coollux-card:hover .coollux-go { transform: translateX(3px); }

.coollux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--cl-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.coollux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.coollux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.coollux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.coollux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.coollux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.coollux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.coollux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--cl-gold-2);
  transition: transform 0.35s ease;
}
.coollux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.coollux.js-on:not(.is-in) .coollux-head,
.coollux.js-on:not(.is-in) .coollux-itin,
.coollux.js-on:not(.is-in) .coollux-hero,
.coollux.js-on:not(.is-in) .coollux-card,
.coollux.js-on:not(.is-in) .coollux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.coollux.is-in .coollux-head,
.coollux.is-in .coollux-itin,
.coollux.is-in .coollux-hero,
.coollux.is-in .coollux-card,
.coollux.is-in .coollux-all {
  opacity: 1;
  animation: clRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.coollux.is-in .coollux-itin { animation-delay: 0.06s; }
.coollux.is-in .coollux-hero { animation-delay: 0.12s; }
.coollux.is-in .coollux-card:nth-child(1) { animation-delay: 0.16s; }
.coollux.is-in .coollux-card:nth-child(2) { animation-delay: 0.22s; }
.coollux.is-in .coollux-card:nth-child(3) { animation-delay: 0.28s; }
.coollux.is-in .coollux-card:nth-child(4) { animation-delay: 0.34s; }
.coollux.is-in .coollux-card:nth-child(5) { animation-delay: 0.4s; }
.coollux.is-in .coollux-card:nth-child(6) { animation-delay: 0.46s; }
.coollux.is-in .coollux-all { animation-delay: 0.5s; }
@keyframes clRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .coollux-head { flex-direction: column; align-items: flex-start; }
  .coollux-hero { grid-template-columns: 1fr; }
  .coollux-hero-photo { min-height: 380px; }
  .coollux-mosaic { grid-template-columns: 1fr 1fr; }
  .coollux-plane { display: none; }
}
@media (max-width: 640px) {
  .coollux { padding: 56px 0 64px; }
  .coollux-title { font-size: clamp(34px, 10vw, 44px); }
  .coollux-hero-copy { padding: 26px 20px; }
  .coollux-mosaic { grid-template-columns: 1fr; }
  .coollux-card { min-height: 320px; }
  .coollux-stamp { display: none; }
  .coollux-all { padding: 16px; }
  .coollux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .coollux-head,
  .coollux-itin,
  .coollux-hero,
  .coollux-card,
  .coollux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .coollux-route path,
  .coollux-plane,
  .coollux-kicker i { animation: none !important; }
}

/* =============== HOW WE WORK (ULTRA LUXURY) =============== */
.worklux {
  --wk-gold: #c9a24a;
  --wk-gold-2: #b8924a;
  --wk-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--wk-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.worklux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.worklux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.worklux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.worklux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.worklux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.worklux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.worklux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.worklux.is-in .worklux-route path { animation: wkDash 42s linear infinite; }
@keyframes wkDash { to { stroke-dashoffset: -640; } }
.worklux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.worklux.is-in .worklux-plane { animation: wkFly 22s linear infinite; }
@keyframes wkFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.worklux-inner { position: relative; z-index: 1; }
.worklux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.worklux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.worklux-kicker i { color: var(--wk-gold-2); animation: wkCompass 8s ease-in-out infinite; }
@keyframes wkCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.worklux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--wk-ink);
}
.worklux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.worklux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--wk-gold-2);
}
.worklux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.worklux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.worklux-itin i {
  font-size: 10px;
  color: var(--wk-gold-2);
  transform: rotate(45deg);
}
.worklux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.worklux-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 22px;
  align-items: stretch;
  margin-bottom: 18px;
}
.worklux-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.worklux-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
  width: 100%;
  text-align: left;
  padding: 18px 18px 16px;
  border-radius: 22px;
  border: 1px solid rgba(184, 146, 74, 0.26);
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  color: var(--wk-ink);
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.worklux-step:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.84);
}
.worklux-step.is-active {
  background: linear-gradient(180deg, #1c2340, #12172b);
  border-color: rgba(201, 162, 74, 0.5);
  color: #f7e7bc;
  box-shadow: 0 22px 40px -24px rgba(18, 23, 43, 0.7);
}
.worklux-step-seal {
  width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 15px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.worklux-step-copy { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.worklux-step-copy em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: italic;
  font-size: 13px;
  color: var(--wk-gold-2);
}
.worklux-step.is-active .worklux-step-copy em { color: #e0bd76; }
.worklux-step-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.15;
}
.worklux-step-copy span {
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(18, 23, 43, 0.58);
}
.worklux-step.is-active .worklux-step-copy span { color: rgba(247, 231, 188, 0.78); }

.worklux-media {
  position: relative;
  min-height: 560px;
  border-radius: 28px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
}
.worklux-media img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity 0.7s ease, transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.worklux-media img.is-active {
  opacity: 1;
  transform: scale(1.02);
  z-index: 1;
}
.worklux-scrim {
  position: absolute; inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.18) 0%, rgba(8, 12, 26, 0.08) 42%, rgba(8, 12, 26, 0.72) 100%);
  pointer-events: none;
}
.worklux-media::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 4;
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.worklux-corners {
  position: absolute; inset: 14px;
  z-index: 3;
  pointer-events: none;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.worklux-num {
  position: absolute;
  top: 18px; left: 18px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.worklux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.worklux-stamp i { font-size: 14px; }
.worklux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.worklux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.worklux-cap {
  position: absolute;
  left: 20px; right: 20px; bottom: 20px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.worklux-cap span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.worklux-cap strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

.worklux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--wk-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.worklux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.worklux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.worklux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.worklux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.worklux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.worklux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.worklux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--wk-gold-2);
  transition: transform 0.35s ease;
}
.worklux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.worklux.js-on:not(.is-in) .worklux-head,
.worklux.js-on:not(.is-in) .worklux-itin,
.worklux.js-on:not(.is-in) .worklux-step,
.worklux.js-on:not(.is-in) .worklux-media,
.worklux.js-on:not(.is-in) .worklux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.worklux.is-in .worklux-head,
.worklux.is-in .worklux-itin,
.worklux.is-in .worklux-step,
.worklux.is-in .worklux-media,
.worklux.is-in .worklux-all {
  opacity: 1;
  animation: wkRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.worklux.is-in .worklux-itin { animation-delay: 0.06s; }
.worklux.is-in .worklux-step:nth-child(1) { animation-delay: 0.1s; }
.worklux.is-in .worklux-step:nth-child(2) { animation-delay: 0.16s; }
.worklux.is-in .worklux-step:nth-child(3) { animation-delay: 0.22s; }
.worklux.is-in .worklux-step:nth-child(4) { animation-delay: 0.28s; }
.worklux.is-in .worklux-media { animation-delay: 0.18s; }
.worklux.is-in .worklux-all { animation-delay: 0.36s; }
@keyframes wkRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .worklux-head { flex-direction: column; align-items: flex-start; }
  .worklux-stage { grid-template-columns: 1fr; }
  .worklux-media { min-height: 420px; }
  .worklux-plane { display: none; }
}
@media (max-width: 640px) {
  .worklux { padding: 56px 0 64px; }
  .worklux-title { font-size: clamp(34px, 10vw, 44px); }
  .worklux-stamp { display: none; }
  .worklux-all { padding: 16px; }
  .worklux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .worklux-head,
  .worklux-itin,
  .worklux-step,
  .worklux-media,
  .worklux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .worklux-route path,
  .worklux-plane,
  .worklux-kicker i,
  .worklux-media img { animation: none !important; transition: none !important; }
}

/* =============== BUDGET PLANNER (ULTRA LUXURY) =============== */
.planlux {
  --pl-gold: #c9a24a;
  --pl-gold-2: #b8924a;
  --pl-ink: #12172b;
  --pl-cream: #f7e7bc;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--pl-ink);
  background:
    radial-gradient(900px 420px at 92% 0%, rgba(201, 162, 74, 0.18), transparent 58%),
    radial-gradient(820px 380px at 0% 70%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffdf8 0%, #f4eee0 46%, #fffefb 100%);
}
.planlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.planlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.planlux-aurora.a {
  width: 42vw; height: 42vw; right: -14vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.46), transparent 70%);
}
.planlux-aurora.b {
  width: 46vw; height: 46vw; left: -16vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(18, 23, 43, 0.16), transparent 70%);
}
.planlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.planlux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.planlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.planlux.is-in .planlux-route path { animation: plDash 42s linear infinite; }
@keyframes plDash { to { stroke-dashoffset: -640; } }
.planlux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.planlux.is-in .planlux-plane { animation: plFly 22s linear infinite; }
@keyframes plFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.planlux-inner { position: relative; z-index: 1; }
.planlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.planlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.planlux-kicker i { color: var(--pl-gold-2); animation: plPen 7s ease-in-out infinite; }
@keyframes plPen {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
}
.planlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--pl-ink);
}
.planlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.planlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--pl-gold-2);
}
.planlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.planlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.planlux-itin i {
  font-size: 10px;
  color: var(--pl-gold-2);
  transform: rotate(45deg);
}
.planlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.planlux-desk {
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(280px, 0.88fr);
  min-height: 620px;
  border-radius: 32px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow:
    0 40px 90px -48px rgba(18, 23, 43, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}
.planlux-controls {
  display: flex;
  flex-direction: column;
  gap: 26px;
  padding: clamp(24px, 3vw, 40px);
}
.planlux-field { min-width: 0; }
.planlux-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.planlux-label i { color: var(--pl-gold-2); }
.planlux-nights {
  margin-left: 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  background: linear-gradient(100deg, #b8924a, #e0bd76 45%, #8a6a2c);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.planlux-types {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.planlux .planner-type.planlux-type {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 210px;
  padding: 0;
  overflow: hidden;
  text-align: left;
  border: 1px solid rgba(184, 146, 74, 0.22);
  border-radius: 22px;
  background: #12172b;
  cursor: pointer;
  box-shadow: 0 18px 36px -28px rgba(18, 23, 43, 0.55);
  transition: transform 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.planlux .planner-type.planlux-type:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 162, 74, 0.7);
}
.planlux .planner-type.planlux-type.is-active {
  border-color: #e0bd76;
  box-shadow:
    0 0 0 1px rgba(224, 189, 118, 0.55),
    0 22px 40px -24px rgba(18, 23, 43, 0.7);
  background: #12172b;
}
.planlux-type-photo {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.planlux-type-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.7s ease, filter 0.5s ease;
  filter: saturate(1.05) contrast(1.04);
}
.planlux .planner-type.planlux-type.is-active .planlux-type-photo img {
  transform: scale(1.1);
}
.planlux-type-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 58px 16px 16px;
  color: #fff;
  background: linear-gradient(180deg, transparent 0%, rgba(18, 23, 43, 0.18) 28%, rgba(18, 23, 43, 0.88) 100%);
}
.planlux-type-copy i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(240, 215, 140, 0.45);
  background: rgba(18, 23, 43, 0.35);
  color: #f7e7bc;
  font-size: 11px;
  margin-bottom: 4px;
}
.planlux .planner-type.planlux-type strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  color: #fff;
  line-height: 1.1;
}
.planlux .planner-type.planlux-type em,
.planlux .planner-type.planlux-type span {
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(247, 231, 188, 0.82);
  margin-top: 0;
}

.planlux-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
}
.planlux-chips span {
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px dashed rgba(184, 146, 74, 0.42);
  background: rgba(255, 255, 255, 0.45);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8a6a2c;
}

.planlux-row {
  display: flex;
  flex-wrap: wrap;
  gap: 22px 28px;
  align-items: flex-end;
}
.planlux-field--grow { flex: 1; min-width: 220px; }

.planlux .planner-stepper.planlux-stepper,
.planlux-stepper {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.planlux .planner-stepper button {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(184, 146, 74, 0.4);
  cursor: pointer;
  color: #12172b;
  background: linear-gradient(180deg, #f7e7bc 0%, #c9a24a 100%);
  display: inline-grid;
  place-items: center;
  font-size: 18px;
  font-weight: 600;
  box-shadow: 0 10px 18px -12px rgba(184, 146, 74, 0.8);
  transition: transform 0.25s ease, filter 0.25s ease;
}
.planlux .planner-stepper button:hover { transform: scale(1.08); filter: brightness(1.05); }
.planlux .planner-stepper span {
  min-width: 44px;
  text-align: center;
  font-family: 'Cormorant Garamond', var(--serif);
  font-weight: 600;
  font-size: 28px;
  color: var(--pl-ink);
}

.planlux-range,
.planlux .planner-range {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  -webkit-appearance: none;
  appearance: none;
  background:
    linear-gradient(#c9a24a, #c9a24a) 0 / var(--pct, 28.57%) 100% no-repeat,
    rgba(18, 23, 43, 0.12);
  outline: none;
  cursor: pointer;
}
.planlux-range::-webkit-slider-thumb,
.planlux .planner-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff, #f7e7bc 42%, #c9a24a);
  border: 2px solid #8a6a2c;
  box-shadow: 0 8px 16px -6px rgba(138, 106, 44, 0.7);
  cursor: pointer;
}
.planlux-range::-moz-range-thumb,
.planlux .planner-range::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f7e7bc;
  border: 2px solid #8a6a2c;
  cursor: pointer;
}
.planlux-scale {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(18, 23, 43, 0.42);
}

.planlux-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: auto;
}
.planlux-stats div {
  padding: 14px 12px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(184, 146, 74, 0.22);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.planlux-stats em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: italic;
  font-size: 20px;
  color: var(--pl-ink);
}
.planlux-stats span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}

.planlux-result {
  position: relative;
  min-height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
  background: #12172b;
}
.planlux-photo {
  position: absolute;
  inset: 0;
}
.planlux-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.08) contrast(1.05);
  transform: scale(1.06);
  animation: plKen 22s ease-in-out infinite alternate;
}
@keyframes plKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-2%, -1.5%, 0); }
}
.planlux-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(18, 23, 43, 0.18) 0%, rgba(18, 23, 43, 0.35) 38%, rgba(18, 23, 43, 0.92) 100%),
    radial-gradient(420px 240px at 110% -10%, rgba(201, 162, 74, 0.35), transparent 70%);
}
.planlux-corners {
  position: absolute;
  inset: 16px;
  z-index: 3;
  pointer-events: none;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.planlux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 4;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
  background: rgba(18, 23, 43, 0.28);
  backdrop-filter: blur(8px);
}
.planlux-stamp i { font-size: 14px; }
.planlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.planlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.planlux-quote {
  position: relative;
  z-index: 4;
  padding: clamp(26px, 3vw, 40px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.planlux-eyebrow {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.88);
}
.planlux-mood {
  margin: 8px 0 4px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.05;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
}
.planlux-total {
  font-family: 'Great Vibes', cursive;
  font-size: clamp(42px, 5vw, 58px);
  line-height: 1;
  color: #f7e7bc;
  margin: 4px 0 10px;
}
.planlux-sub {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.planlux-quote p {
  max-width: 34ch;
  margin: 14px 0 22px;
  font-size: 13.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.72);
}
.planlux-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #12172b;
  background: linear-gradient(180deg, #f7e7bc 0%, #c9a24a 100%);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 16px 28px -16px rgba(201, 162, 74, 0.9);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.planlux-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 32px -14px rgba(201, 162, 74, 1);
  color: #12172b;
}
.planlux-cta i { transition: transform 0.35s ease; }
.planlux-cta:hover i { transform: translateX(4px); }

.planlux.js-on:not(.is-in) .planlux-head,
.planlux.js-on:not(.is-in) .planlux-itin,
.planlux.js-on:not(.is-in) .planlux-desk {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.planlux.is-in .planlux-head,
.planlux.is-in .planlux-itin,
.planlux.is-in .planlux-desk {
  opacity: 1;
  animation: plRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.planlux.is-in .planlux-itin { animation-delay: 0.06s; }
.planlux.is-in .planlux-desk { animation-delay: 0.14s; }
@keyframes plRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .planlux-head { flex-direction: column; align-items: flex-start; }
  .planlux-desk { grid-template-columns: 1fr; min-height: 0; }
  .planlux-result { min-height: 460px; }
  .planlux-plane { display: none; }
}
@media (max-width: 860px) {
  .planlux-types { grid-template-columns: 1fr; }
  .planlux .planner-type.planlux-type { min-height: 160px; }
}
@media (max-width: 640px) {
  .planlux { padding: 56px 0 64px; }
  .planlux-title { font-size: clamp(34px, 10vw, 44px); }
  .planlux-stamp { display: none; }
  .planlux-stats { grid-template-columns: 1fr; }
  .planlux-controls { padding: 18px 16px 22px; }
  .planlux-result { min-height: 400px; }
}
@media (prefers-reduced-motion: reduce) {
  .planlux-head,
  .planlux-itin,
  .planlux-desk { opacity: 1 !important; transform: none !important; animation: none !important; }
  .planlux-route path,
  .planlux-plane,
  .planlux-kicker i,
  .planlux-photo img { animation: none !important; }
}

/* =============== LIVE SKIES (ULTRA LUXURY) =============== */
.skylux {
  --sk-gold: #c9a24a;
  --sk-gold-2: #b8924a;
  --sk-ink: #12172b;
  --sk-cream: #f7e7bc;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--sk-ink);
  background:
    radial-gradient(920px 440px at 8% 0%, rgba(201, 162, 74, 0.18), transparent 58%),
    radial-gradient(780px 360px at 100% 80%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f3eee1 46%, #fffdf8 100%);
}
.skylux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.skylux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.skylux-aurora.a {
  width: 42vw; height: 42vw; left: -14vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.44), transparent 70%);
}
.skylux-aurora.b {
  width: 46vw; height: 46vw; right: -16vw; bottom: -22vw;
  background: radial-gradient(circle, rgba(18, 23, 43, 0.14), transparent 70%);
}
.skylux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.skylux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.skylux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.skylux.is-in .skylux-route path { animation: skDash 42s linear infinite; }
@keyframes skDash { to { stroke-dashoffset: -640; } }
.skylux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.skylux.is-in .skylux-plane { animation: skFly 22s linear infinite; }
@keyframes skFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.skylux-inner { position: relative; z-index: 1; }
.skylux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.skylux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.skylux-kicker i { color: var(--sk-gold-2); animation: skSun 8s ease-in-out infinite; }
@keyframes skSun {
  0%, 100% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.08); }
}
.skylux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--sk-ink);
}
.skylux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.skylux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--sk-gold-2);
}
.skylux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.skylux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.skylux-itin i {
  font-size: 10px;
  color: var(--sk-gold-2);
  transform: rotate(45deg);
}
.skylux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.skylux-stage {
  display: grid;
  grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.28fr);
  gap: 16px;
  min-height: 620px;
  align-items: stretch;
}
.skylux-hero {
  position: relative;
  overflow: hidden;
  min-height: 620px;
  border-radius: 30px;
  background: #12172b;
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 40px 90px -48px rgba(18, 23, 43, 0.55);
}
.skylux-hero-photo,
.skylux-hero-scrim,
.skylux-hero-corners { position: absolute; inset: 0; }
.skylux-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  animation: skKen 22s ease-in-out infinite alternate;
  filter: saturate(1.08) contrast(1.05);
}
@keyframes skKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-2%, -1.5%, 0); }
}
.skylux-hero-scrim {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(18, 23, 43, 0.12) 0%, rgba(18, 23, 43, 0.28) 38%, rgba(18, 23, 43, 0.92) 100%),
    radial-gradient(420px 240px at 110% -10%, rgba(201, 162, 74, 0.32), transparent 70%);
}
.skylux-hero-corners {
  z-index: 3;
  inset: 16px;
  pointer-events: none;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.skylux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 4;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
  background: rgba(18, 23, 43, 0.28);
  backdrop-filter: blur(8px);
}
.skylux-stamp i { font-size: 14px; }
.skylux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.skylux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.skylux-hero-copy {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 4;
  padding: clamp(24px, 3vw, 36px);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.skylux-eyebrow {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.88);
}
.skylux-hero-place {
  margin: 8px 0 2px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(36px, 4vw, 58px);
  font-weight: 600;
  line-height: 1;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
}
.skylux-hero-region {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.82);
}
.skylux-hero-temp {
  margin: 12px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(52px, 6vw, 78px);
  font-weight: 600;
  line-height: 0.9;
  color: #f7e7bc;
}
.skylux-hero-temp span {
  font-size: 0.38em;
  margin-left: 4px;
  vertical-align: super;
  color: rgba(247, 231, 188, 0.75);
}
.skylux-hero-cond {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: 28px;
  color: #f7e7bc;
}
.skylux-hero-cond i { font-size: 16px; font-family: 'Font Awesome 6 Free'; }

.skylux-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-height: 620px;
}
.skylux-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  text-align: left;
  cursor: pointer;
  border: 1px solid rgba(184, 146, 74, 0.24);
  border-radius: 22px;
  background: #12172b;
  color: #fff;
  box-shadow: 0 18px 36px -28px rgba(18, 23, 43, 0.55);
  transition: transform 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.skylux-card:hover { transform: translateY(-4px); border-color: rgba(201, 162, 74, 0.7); }
.skylux-card.is-active {
  border-color: #e0bd76;
  box-shadow:
    0 0 0 1px rgba(224, 189, 118, 0.55),
    0 22px 40px -24px rgba(18, 23, 43, 0.7);
}
.skylux-card-photo { position: absolute; inset: 0; overflow: hidden; }
.skylux-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.7s ease;
  filter: saturate(1.05) contrast(1.04);
}
.skylux-card.is-active .skylux-card-photo img,
.skylux-card:hover .skylux-card-photo img { transform: scale(1.1); }
.skylux-card-scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(18, 23, 43, 0.08) 0%, rgba(18, 23, 43, 0.22) 40%, rgba(18, 23, 43, 0.88) 100%);
}
.skylux-card-corners {
  position: absolute; inset: 10px; z-index: 3;
  pointer-events: none;
  border-radius: 14px;
  box-shadow:
    inset 12px 12px 0 -10px rgba(240, 215, 140, 0.28),
    inset -12px -12px 0 -10px rgba(240, 215, 140, 0.28);
}
.skylux-card.is-active .skylux-card-corners {
  box-shadow:
    inset 12px 12px 0 -10px rgba(240, 215, 140, 0.62),
    inset -12px -12px 0 -10px rgba(240, 215, 140, 0.62);
}
.skylux-pulse {
  position: absolute;
  top: 14px; left: 14px;
  z-index: 4;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #e0bd76;
  box-shadow: 0 0 0 0 rgba(224, 189, 118, 0.7);
  animation: skPulse 2.2s ease-out infinite;
}
@keyframes skPulse {
  0% { box-shadow: 0 0 0 0 rgba(224, 189, 118, 0.65); }
  70% { box-shadow: 0 0 0 10px rgba(224, 189, 118, 0); }
  100% { box-shadow: 0 0 0 0 rgba(224, 189, 118, 0); }
}
.skylux-card-icon {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 4;
  width: 34px; height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(240, 215, 140, 0.45);
  background: rgba(18, 23, 43, 0.38);
  backdrop-filter: blur(8px);
  color: #f7e7bc;
  font-size: 13px;
}
.skylux-card.is-loading .skylux-card-icon { animation: skLoad 1.2s ease-in-out infinite; }
@keyframes skLoad { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } }
.skylux-card-copy {
  position: relative;
  z-index: 4;
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.skylux-temp {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 34px;
  font-weight: 600;
  line-height: 1;
  color: #f7e7bc;
}
.skylux-temp span {
  font-size: 13px;
  margin-left: 3px;
  vertical-align: super;
  color: rgba(247, 231, 188, 0.72);
}
.skylux-card-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  color: #fff;
  line-height: 1.1;
}
.skylux-card-copy em {
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.82);
}
.skylux-card-copy span {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.72);
}

.skylux-foot {
  margin: 22px 0 0;
  text-align: center;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.42);
}

.skylux.js-on:not(.is-in) .skylux-head,
.skylux.js-on:not(.is-in) .skylux-itin,
.skylux.js-on:not(.is-in) .skylux-stage,
.skylux.js-on:not(.is-in) .skylux-foot {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.skylux.is-in .skylux-head,
.skylux.is-in .skylux-itin,
.skylux.is-in .skylux-stage,
.skylux.is-in .skylux-foot {
  opacity: 1;
  animation: skRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.skylux.is-in .skylux-itin { animation-delay: 0.06s; }
.skylux.is-in .skylux-stage { animation-delay: 0.14s; }
.skylux.is-in .skylux-foot { animation-delay: 0.28s; }
@keyframes skRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .skylux-head { flex-direction: column; align-items: flex-start; }
  .skylux-stage { grid-template-columns: 1fr; min-height: 0; }
  .skylux-hero { min-height: 420px; }
  .skylux-board { min-height: 0; grid-template-rows: none; }
  .skylux-card { min-height: 220px; }
  .skylux-plane { display: none; }
}
@media (max-width: 720px) {
  .skylux-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .skylux { padding: 56px 0 64px; }
  .skylux-title { font-size: clamp(34px, 10vw, 44px); }
  .skylux-stamp { display: none; }
  .skylux-hero { min-height: 360px; }
  .skylux-hero-temp { font-size: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .skylux-head,
  .skylux-itin,
  .skylux-stage,
  .skylux-foot { opacity: 1 !important; transform: none !important; animation: none !important; }
  .skylux-route path,
  .skylux-plane,
  .skylux-kicker i,
  .skylux-hero-photo img,
  .skylux-pulse,
  .skylux-card.is-loading .skylux-card-icon { animation: none !important; }
}

/* =============== VOICES (ULTRA LUXURY) =============== */
.voicelux {
  --vl-gold: #c9a24a;
  --vl-gold-2: #b8924a;
  --vl-ink: #12172b;
  --vl-cream: #f7e7bc;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--vl-ink);
  background:
    radial-gradient(900px 420px at 92% 0%, rgba(201, 162, 74, 0.18), transparent 58%),
    radial-gradient(820px 380px at 0% 70%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffdf8 0%, #f4eee0 46%, #fffefb 100%);
}
.voicelux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.voicelux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.voicelux-aurora.a {
  width: 42vw; height: 42vw; right: -14vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.46), transparent 70%);
}
.voicelux-aurora.b {
  width: 46vw; height: 46vw; left: -16vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(18, 23, 43, 0.16), transparent 70%);
}
.voicelux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.voicelux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.voicelux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.voicelux.is-in .voicelux-route path { animation: vlDash 42s linear infinite; }
@keyframes vlDash { to { stroke-dashoffset: -640; } }
.voicelux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.voicelux.is-in .voicelux-plane { animation: vlFly 22s linear infinite; }
@keyframes vlFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.voicelux-inner { position: relative; z-index: 1; }
.voicelux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.voicelux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.voicelux-kicker i { color: var(--vl-gold-2); animation: vlFeather 7s ease-in-out infinite; }
@keyframes vlFeather {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
}
.voicelux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--vl-ink);
}
.voicelux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.voicelux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--vl-gold-2);
}
.voicelux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.voicelux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.voicelux-itin i {
  font-size: 10px;
  color: var(--vl-gold-2);
  transform: rotate(45deg);
}
.voicelux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.voicelux-stage {
  display: grid;
  grid-template-columns: minmax(280px, 1.05fr) minmax(0, 0.95fr);
  gap: 16px;
  min-height: 560px;
  align-items: stretch;
  margin-bottom: 16px;
}
.voicelux-scene {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  border-radius: 30px;
  background: #12172b;
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 40px 90px -48px rgba(18, 23, 43, 0.55);
}
.voicelux-scene-photo,
.voicelux-scene-scrim { position: absolute; inset: 0; }
.voicelux-scene-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  animation: vlKen 22s ease-in-out infinite alternate;
  filter: saturate(1.08) contrast(1.05);
}
@keyframes vlKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-2%, -1.5%, 0); }
}
.voicelux-scene-scrim {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(18, 23, 43, 0.12) 0%, rgba(18, 23, 43, 0.28) 42%, rgba(18, 23, 43, 0.9) 100%),
    radial-gradient(420px 240px at 110% -10%, rgba(201, 162, 74, 0.32), transparent 70%);
}
.voicelux-scene-corners {
  position: absolute;
  inset: 16px;
  z-index: 3;
  pointer-events: none;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.voicelux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 4;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
  background: rgba(18, 23, 43, 0.28);
  backdrop-filter: blur(8px);
}
.voicelux-stamp i { font-size: 14px; }
.voicelux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.voicelux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.voicelux-num {
  position: absolute;
  top: 22px; left: 22px;
  z-index: 4;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.voicelux-scene-cap {
  position: absolute;
  left: 22px; right: 22px; bottom: 22px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: #fff;
}
.voicelux-scene-cap span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.voicelux-scene-cap strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.1;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

.voicelux-letter {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 560px;
  padding: clamp(28px, 3.4vw, 48px);
  overflow: hidden;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow:
    0 40px 90px -48px rgba(18, 23, 43, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}
.voicelux-letter.is-in blockquote,
.voicelux-letter.is-in .voicelux-who {
  animation: vlLetter 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes vlLetter {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.voicelux-stars {
  display: flex;
  gap: 6px;
  color: #c9a24a;
  font-size: 13px;
  margin-bottom: 10px;
  filter: drop-shadow(0 6px 10px rgba(201, 162, 74, 0.35));
}
.voicelux-mark {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 92px;
  line-height: 0.45;
  color: rgba(201, 162, 74, 0.45);
  pointer-events: none;
}
.voicelux-letter blockquote {
  margin: 8px 0 28px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 500;
  line-height: 1.35;
  color: var(--vl-ink);
}
.voicelux-who {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: auto;
}
.voicelux-who-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 16px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.voicelux-who strong {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  color: var(--vl-ink);
}
.voicelux-who span {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.voicelux-nav {
  display: flex;
  gap: 10px;
  margin-top: 28px;
}
.voicelux-nav button {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 1px solid rgba(184, 146, 74, 0.4);
  background: linear-gradient(180deg, #f7e7bc 0%, #c9a24a 100%);
  color: #12172b;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.9);
  transition: transform 0.3s ease;
}
.voicelux-nav button:hover { transform: scale(1.08); }

.voicelux-rail {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.voicelux-pill {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  border: 1px solid rgba(184, 146, 74, 0.22);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  min-height: 168px;
  color: var(--vl-ink);
  transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.voicelux-pill:hover { transform: translateY(-3px); border-color: rgba(201, 162, 74, 0.65); }
.voicelux-pill.is-active {
  border-color: #e0bd76;
  box-shadow: 0 0 0 1px rgba(224, 189, 118, 0.5);
}
.voicelux-pill img {
  width: 100%;
  height: 88px;
  object-fit: cover;
  display: block;
}
.voicelux-pill span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 12px 12px;
}
.voicelux-pill strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.15;
}
.voicelux-pill em {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.48);
}

.voicelux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--vl-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.voicelux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  color: var(--vl-ink);
}
.voicelux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.voicelux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.voicelux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.voicelux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
}
.voicelux-all-copy em {
  font-style: italic;
  font-size: 13px;
  color: rgba(18, 23, 43, 0.55);
}
.voicelux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--vl-gold-2);
  transition: transform 0.35s ease;
}
.voicelux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.voicelux.js-on:not(.is-in) .voicelux-head,
.voicelux.js-on:not(.is-in) .voicelux-itin,
.voicelux.js-on:not(.is-in) .voicelux-stage,
.voicelux.js-on:not(.is-in) .voicelux-rail,
.voicelux.js-on:not(.is-in) .voicelux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.voicelux.is-in .voicelux-head,
.voicelux.is-in .voicelux-itin,
.voicelux.is-in .voicelux-stage,
.voicelux.is-in .voicelux-rail,
.voicelux.is-in .voicelux-all {
  opacity: 1;
  animation: vlRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.voicelux.is-in .voicelux-itin { animation-delay: 0.06s; }
.voicelux.is-in .voicelux-stage { animation-delay: 0.12s; }
.voicelux.is-in .voicelux-rail { animation-delay: 0.22s; }
.voicelux.is-in .voicelux-all { animation-delay: 0.32s; }
@keyframes vlRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .voicelux-head { flex-direction: column; align-items: flex-start; }
  .voicelux-stage { grid-template-columns: 1fr; min-height: 0; }
  .voicelux-scene, .voicelux-letter { min-height: 420px; }
  .voicelux-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .voicelux-plane { display: none; }
}
@media (max-width: 640px) {
  .voicelux { padding: 56px 0 64px; }
  .voicelux-title { font-size: clamp(34px, 10vw, 44px); }
  .voicelux-stamp { display: none; }
  .voicelux-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .voicelux-letter { padding: 22px 18px 24px; min-height: 0; }
  .voicelux-scene { min-height: 340px; }
  .voicelux-all { padding: 16px; }
  .voicelux-all-copy strong { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .voicelux-head,
  .voicelux-itin,
  .voicelux-stage,
  .voicelux-rail,
  .voicelux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .voicelux-route path,
  .voicelux-plane,
  .voicelux-kicker i,
  .voicelux-scene-photo img,
  .voicelux-letter.is-in blockquote,
  .voicelux-letter.is-in .voicelux-who { animation: none !important; }
}

/* =============== POSTCARDS (ULTRA LUXURY) =============== */
.postlux {
  --pc-gold: #c9a24a;
  --pc-gold-2: #b8924a;
  --pc-ink: #12172b;
  --pc-cream: #f7e7bc;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--pc-ink);
  background:
    radial-gradient(920px 440px at 8% 0%, rgba(201, 162, 74, 0.18), transparent 58%),
    radial-gradient(780px 360px at 100% 80%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f3eee1 46%, #fffdf8 100%);
}
.postlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.postlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.postlux-aurora.a {
  width: 42vw; height: 42vw; left: -14vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.44), transparent 70%);
}
.postlux-aurora.b {
  width: 46vw; height: 46vw; right: -16vw; bottom: -22vw;
  background: radial-gradient(circle, rgba(18, 23, 43, 0.14), transparent 70%);
}
.postlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.postlux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.postlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.postlux.is-in .postlux-route path { animation: pcDash 42s linear infinite; }
@keyframes pcDash { to { stroke-dashoffset: -640; } }
.postlux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.postlux.is-in .postlux-plane { animation: pcFly 22s linear infinite; }
@keyframes pcFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.postlux-inner { position: relative; z-index: 1; }
.postlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.postlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.postlux-kicker i { color: var(--pc-gold-2); animation: pcStamp 8s ease-in-out infinite; }
@keyframes pcStamp {
  0%, 100% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.08); }
}
.postlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--pc-ink);
}
.postlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.postlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--pc-gold-2);
}
.postlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.postlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.postlux-itin i {
  font-size: 10px;
  color: var(--pc-gold-2);
  transform: rotate(45deg);
}
.postlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.postlux-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: minmax(168px, 22vh);
  gap: 14px;
  min-height: 640px;
  margin-bottom: 16px;
}
.postlux-card {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 168px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  color: #fff;
}
.postlux-card.is-hero {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.postlux-card:last-child:not(.is-hero) { grid-column: span 2; }
.postlux-mat {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  overflow: hidden;
  border-radius: 22px;
  background: #12172b;
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow:
    0 22px 40px -28px rgba(18, 23, 43, 0.55),
    inset 0 0 0 8px rgba(255, 252, 246, 0.08);
  transition: transform 0.45s ease, border-color 0.45s ease, box-shadow 0.45s ease;
}
.postlux-card:nth-child(3) .postlux-mat { transform: rotate(0.7deg); }
.postlux-card:nth-child(5) .postlux-mat { transform: rotate(-0.8deg); }
.postlux-card:nth-child(7) .postlux-mat { transform: rotate(0.5deg); }
.postlux-card:hover .postlux-mat,
.postlux-card.is-hero .postlux-mat {
  transform: rotate(0deg) translateY(-3px);
  border-color: rgba(224, 189, 118, 0.75);
  box-shadow:
    0 0 0 1px rgba(224, 189, 118, 0.45),
    0 28px 48px -24px rgba(18, 23, 43, 0.55);
}
.postlux-photo,
.postlux-scrim,
.postlux-corners { position: absolute; inset: 0; }
.postlux-photo { overflow: hidden; }
.postlux-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  transition: transform 0.9s ease;
  filter: saturate(1.06) contrast(1.04);
}
.postlux-card:hover .postlux-photo img,
.postlux-card.is-hero .postlux-photo img { transform: scale(1.12); }
.postlux.is-in .postlux-card.is-hero .postlux-photo img {
  animation: pcKen 22s ease-in-out infinite alternate;
}
@keyframes pcKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-2%, -1.5%, 0); }
}
.postlux-scrim {
  z-index: 1;
  background: linear-gradient(180deg, rgba(18, 23, 43, 0.05) 0%, rgba(18, 23, 43, 0.18) 42%, rgba(18, 23, 43, 0.88) 100%);
}
.postlux-corners {
  z-index: 3;
  inset: 10px;
  pointer-events: none;
  border-radius: 14px;
  box-shadow:
    inset 12px 12px 0 -10px rgba(240, 215, 140, 0.35),
    inset -12px -12px 0 -10px rgba(240, 215, 140, 0.35);
}
.postlux-card.is-hero .postlux-corners {
  inset: 14px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.58),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.58);
}
.postlux-postage {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 4;
  width: 52px; height: 58px;
  border-radius: 6px;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  background: rgba(18, 23, 43, 0.32);
  backdrop-filter: blur(8px);
  pointer-events: none;
}
.postlux-postage i { font-size: 11px; transform: rotate(45deg); }
.postlux-postage em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.16em;
}
.postlux-postage strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 700;
}
.postlux-card.is-hero .postlux-postage { width: 64px; height: 72px; top: 18px; right: 18px; }
.postlux-copy {
  position: absolute;
  left: 14px; right: 14px; bottom: 14px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.postlux-copy em {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.9);
}
.postlux-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.15;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.4);
}
.postlux-card.is-hero .postlux-copy { left: 22px; right: 22px; bottom: 22px; }
.postlux-card.is-hero .postlux-copy em { font-size: 11px; }
.postlux-card.is-hero .postlux-copy strong { font-size: clamp(28px, 3vw, 42px); }

.postlux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--pc-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease;
}
.postlux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  color: var(--pc-ink);
}
.postlux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.postlux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.postlux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.postlux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
}
.postlux-all-copy em {
  font-style: italic;
  font-size: 13px;
  color: rgba(18, 23, 43, 0.55);
}
.postlux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--pc-gold-2);
  transition: transform 0.35s ease;
}
.postlux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.postlux.js-on:not(.is-in) .postlux-head,
.postlux.js-on:not(.is-in) .postlux-itin,
.postlux.js-on:not(.is-in) .postlux-mosaic,
.postlux.js-on:not(.is-in) .postlux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.postlux.is-in .postlux-head,
.postlux.is-in .postlux-itin,
.postlux.is-in .postlux-mosaic,
.postlux.is-in .postlux-all {
  opacity: 1;
  animation: pcRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.postlux.is-in .postlux-itin { animation-delay: 0.06s; }
.postlux.is-in .postlux-mosaic { animation-delay: 0.12s; }
.postlux.is-in .postlux-all { animation-delay: 0.28s; }
@keyframes pcRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .postlux-head { flex-direction: column; align-items: flex-start; }
  .postlux-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(180px, auto); }
  .postlux-card.is-hero { grid-column: 1 / -1; grid-row: auto; min-height: 380px; }
  .postlux-plane { display: none; }
}
@media (max-width: 640px) {
  .postlux { padding: 56px 0 64px; }
  .postlux-title { font-size: clamp(34px, 10vw, 44px); }
  .postlux-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .postlux-card.is-hero { grid-column: 1 / -1; min-height: 280px; }
  .postlux-card:last-child:not(.is-hero) { grid-column: auto; }
  .postlux-postage { display: none; }
  .postlux-all { padding: 16px; }
  .postlux-all-copy strong { font-size: 20px; }
  .postlux-card:nth-child(n) .postlux-mat { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .postlux-head,
  .postlux-itin,
  .postlux-mosaic,
  .postlux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .postlux-route path,
  .postlux-plane,
  .postlux-kicker i,
  .postlux-photo img { animation: none !important; }
}

/* =============== JOURNAL (ULTRA LUXURY) =============== */
.journlux {
  --jn-gold: #c9a24a;
  --jn-gold-2: #b8924a;
  --jn-ink: #12172b;
  --jn-cream: #f7e7bc;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--jn-ink);
  background:
    radial-gradient(900px 420px at 92% 0%, rgba(201, 162, 74, 0.18), transparent 58%),
    radial-gradient(820px 380px at 0% 70%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffdf8 0%, #f4eee0 46%, #fffefb 100%);
}
.journlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.journlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.journlux-aurora.a {
  width: 42vw; height: 42vw; right: -14vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.46), transparent 70%);
}
.journlux-aurora.b {
  width: 46vw; height: 46vw; left: -16vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(18, 23, 43, 0.16), transparent 70%);
}
.journlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.journlux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.journlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.journlux.is-in .journlux-route path { animation: jnDash 42s linear infinite; }
@keyframes jnDash { to { stroke-dashoffset: -640; } }
.journlux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.journlux.is-in .journlux-plane { animation: jnFly 22s linear infinite; }
@keyframes jnFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.journlux-inner { position: relative; z-index: 1; }
.journlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.journlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.journlux-kicker i { color: var(--jn-gold-2); animation: jnBook 8s ease-in-out infinite; }
@keyframes jnBook {
  0%, 100% { transform: rotate(-6deg); }
  50% { transform: rotate(8deg); }
}
.journlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--jn-ink);
}
.journlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.journlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--jn-gold-2);
}
.journlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.journlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.journlux-itin i {
  font-size: 10px;
  color: var(--jn-gold-2);
  transform: rotate(45deg);
}
.journlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.journlux-stage {
  display: grid;
  grid-template-columns: minmax(280px, 1.2fr) minmax(0, 0.9fr);
  gap: 16px;
  min-height: 620px;
  align-items: stretch;
  margin-bottom: 16px;
}
.journlux-hero {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: 620px;
  border-radius: 30px;
  text-decoration: none;
  color: #fff;
  background: #12172b;
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 40px 90px -48px rgba(18, 23, 43, 0.55);
}
.journlux-hero-photo,
.journlux-hero-scrim { position: absolute; inset: 0; }
.journlux-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 0.8s ease;
  filter: saturate(1.08) contrast(1.05);
}
.journlux.is-in .journlux-hero-photo img {
  animation: jnKen 22s ease-in-out infinite alternate;
}
.journlux-hero:hover .journlux-hero-photo img { transform: scale(1.12); }
@keyframes jnKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-2%, -1.5%, 0); }
}
.journlux-hero-scrim {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(18, 23, 43, 0.12) 0%, rgba(18, 23, 43, 0.28) 40%, rgba(18, 23, 43, 0.92) 100%),
    radial-gradient(420px 240px at 110% -10%, rgba(201, 162, 74, 0.28), transparent 70%);
}
.journlux-hero-corners {
  position: absolute;
  inset: 16px;
  z-index: 3;
  pointer-events: none;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.journlux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 4;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
  background: rgba(18, 23, 43, 0.28);
  backdrop-filter: blur(8px);
}
.journlux-stamp i { font-size: 14px; }
.journlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.journlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.journlux-hero-copy {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 4;
  padding: clamp(24px, 3vw, 36px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.journlux-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 10px;
}
.journlux-meta em {
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #c9a24a;
}
.journlux-hero-copy .journlux-meta em,
.journlux-hero-copy .journlux-meta span { color: rgba(247, 231, 188, 0.88); }
.journlux-meta span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.45);
}
.journlux-hero-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 3.2vw, 44px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
}
.journlux-hero-copy p {
  max-width: 46ch;
  margin: 12px 0 18px;
  font-size: 14.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
}
.journlux-go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.journlux-hero .journlux-go i,
.journlux-note .journlux-go i { transition: transform 0.35s ease; }
.journlux-hero:hover .journlux-go i,
.journlux-note:hover .journlux-go i { transform: translateX(4px); }

.journlux-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 620px;
}
.journlux-note {
  flex: 1;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  min-height: 0;
  overflow: hidden;
  text-decoration: none;
  color: var(--jn-ink);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, border-color 0.4s ease;
}
.journlux-note:hover {
  transform: translateY(-3px);
  border-color: rgba(201, 162, 74, 0.7);
  color: var(--jn-ink);
}
.journlux-note-photo {
  position: relative;
  overflow: hidden;
  min-height: 180px;
}
.journlux-note-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.7s ease;
}
.journlux-note:hover .journlux-note-photo img { transform: scale(1.1); }
.journlux-note-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(18, 23, 43, 0.25) 100%);
}
.journlux-note-corners {
  position: absolute; inset: 10px;
  pointer-events: none;
  border-radius: 12px;
  box-shadow:
    inset 12px 12px 0 -10px rgba(240, 215, 140, 0.4),
    inset -12px -12px 0 -10px rgba(240, 215, 140, 0.4);
}
.journlux-note-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 18px 18px 18px 16px;
}
.journlux-note-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.15;
}
.journlux-note-copy p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(18, 23, 43, 0.58);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.journlux-note-copy .journlux-go { color: #8a6a2c; margin-top: 4px; }

.journlux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--jn-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease;
}
.journlux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  color: var(--jn-ink);
}
.journlux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.journlux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.journlux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.journlux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
}
.journlux-all-copy em {
  font-style: italic;
  font-size: 13px;
  color: rgba(18, 23, 43, 0.55);
}
.journlux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--jn-gold-2);
  transition: transform 0.35s ease;
}
.journlux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.journlux.js-on:not(.is-in) .journlux-head,
.journlux.js-on:not(.is-in) .journlux-itin,
.journlux.js-on:not(.is-in) .journlux-stage,
.journlux.js-on:not(.is-in) .journlux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.journlux.is-in .journlux-head,
.journlux.is-in .journlux-itin,
.journlux.is-in .journlux-stage,
.journlux.is-in .journlux-all {
  opacity: 1;
  animation: jnRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.journlux.is-in .journlux-itin { animation-delay: 0.06s; }
.journlux.is-in .journlux-stage { animation-delay: 0.12s; }
.journlux.is-in .journlux-all { animation-delay: 0.28s; }
@keyframes jnRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .journlux-head { flex-direction: column; align-items: flex-start; }
  .journlux-stage { grid-template-columns: 1fr; min-height: 0; }
  .journlux-hero { min-height: 460px; }
  .journlux-stack { min-height: 0; }
  .journlux-plane { display: none; }
}
@media (max-width: 720px) {
  .journlux-note { grid-template-columns: 1fr; }
  .journlux-note-photo { min-height: 200px; }
}
@media (max-width: 640px) {
  .journlux { padding: 56px 0 64px; }
  .journlux-title { font-size: clamp(34px, 10vw, 44px); }
  .journlux-stamp { display: none; }
  .journlux-hero { min-height: 380px; }
  .journlux-all { padding: 16px; }
  .journlux-all-copy strong { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .journlux-head,
  .journlux-itin,
  .journlux-stage,
  .journlux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .journlux-route path,
  .journlux-plane,
  .journlux-kicker i,
  .journlux-hero-photo img { animation: none !important; }
}

/* =============== FAQ (ULTRA LUXURY) =============== */
.faqlux {
  --fq-gold: #c9a24a;
  --fq-gold-2: #b8924a;
  --fq-ink: #12172b;
  --fq-cream: #f7e7bc;
  position: relative;
  isolation: isolate;
  /* clip, not hidden: hidden would make this a scroll container and kill the
     sticky desk inside, leaving the column blank as the FAQ list scrolls. */
  overflow: clip;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--fq-ink);
  background:
    radial-gradient(920px 440px at 8% 0%, rgba(201, 162, 74, 0.18), transparent 58%),
    radial-gradient(780px 360px at 100% 80%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f3eee1 46%, #fffdf8 100%);
}
.faqlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.faqlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.faqlux-aurora.a {
  width: 42vw; height: 42vw; left: -14vw; top: -18vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.44), transparent 70%);
}
.faqlux-aurora.b {
  width: 46vw; height: 46vw; right: -16vw; bottom: -22vw;
  background: radial-gradient(circle, rgba(18, 23, 43, 0.14), transparent 70%);
}
.faqlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.faqlux-route {
  position: absolute; left: 0; right: 0; top: 6%;
  width: 100%; height: 28%; overflow: visible;
}
.faqlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.faqlux.is-in .faqlux-route path { animation: fqDash 42s linear infinite; }
@keyframes fqDash { to { stroke-dashoffset: -640; } }
.faqlux-plane {
  position: absolute;
  top: 9%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.faqlux.is-in .faqlux-plane { animation: fqFly 22s linear infinite; }
@keyframes fqFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.faqlux-inner { position: relative; z-index: 1; }
.faqlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.faqlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.faqlux-kicker i { color: var(--fq-gold-2); animation: fqAsk 8s ease-in-out infinite; }
@keyframes fqAsk {
  0%, 100% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.08); }
}
.faqlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--fq-ink);
}
.faqlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.faqlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--fq-gold-2);
}
.faqlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.faqlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.faqlux-itin i {
  font-size: 10px;
  color: var(--fq-gold-2);
  transform: rotate(45deg);
}
.faqlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.faqlux-stage {
  display: grid;
  grid-template-columns: minmax(260px, 0.88fr) minmax(0, 1.22fr);
  gap: 18px;
  align-items: start;
  margin-bottom: 16px;
}
.faqlux-desk {
  position: sticky;
  top: 108px;
  min-height: 560px;
  overflow: hidden;
  border-radius: 30px;
  background: #12172b;
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 40px 90px -48px rgba(18, 23, 43, 0.55);
}
.faqlux-desk-photo,
.faqlux-desk-scrim { position: absolute; inset: 0; }
.faqlux-desk { isolation: isolate; }
.faqlux-desk-photo { z-index: 0; }
.faqlux-desk-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  animation: fqKen 22s ease-in-out infinite alternate;
  filter: saturate(1.08) contrast(1.05);
}
@keyframes fqKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-2%, -1.5%, 0); }
}
.faqlux-desk-scrim {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(18, 23, 43, 0.12) 0%, rgba(18, 23, 43, 0.28) 42%, rgba(18, 23, 43, 0.9) 100%),
    radial-gradient(420px 240px at 110% -10%, rgba(201, 162, 74, 0.28), transparent 70%);
}
.faqlux-desk-corners {
  position: absolute;
  inset: 16px;
  z-index: 3;
  pointer-events: none;
  border-radius: 18px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.faqlux-stamp {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 4;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
  background: rgba(18, 23, 43, 0.28);
  backdrop-filter: blur(8px);
}
.faqlux-stamp i { font-size: 14px; }
.faqlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.faqlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.faqlux-desk-cap {
  position: absolute;
  left: 22px; right: 22px; bottom: 22px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: #fff;
}
.faqlux-desk-cap span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.faqlux-desk-cap strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.1;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

.faqlux-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.faqlux .faq-item {
  background: rgba(255, 255, 255, 0.52);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.24);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: border-color 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}
.faqlux .faq-item.open {
  border-color: rgba(201, 162, 74, 0.7);
  background: rgba(255, 252, 246, 0.82);
  box-shadow:
    0 0 0 1px rgba(224, 189, 118, 0.35),
    0 18px 36px -28px rgba(18, 23, 43, 0.35);
}
.faqlux .faq-q {
  padding: 16px 18px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--fq-ink);
  letter-spacing: -0.01em;
}
.faqlux .faq-q:hover { color: var(--fq-ink); }
.faqlux .faq-q-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.faqlux .faq-q-chip {
  color: #8a6a2c;
  background: rgba(247, 231, 188, 0.45);
  border: 1px dashed rgba(184, 146, 74, 0.5);
  padding: 5px 11px;
}
.faqlux .faq-q .icon {
  width: 36px; height: 36px;
  background: linear-gradient(180deg, #f7e7bc 0%, #c9a24a 100%);
  color: #12172b;
  box-shadow: 0 10px 16px -12px rgba(184, 146, 74, 0.9);
}
.faqlux .faq-item.open .faq-q .icon {
  transform: rotate(45deg);
  background: linear-gradient(180deg, #f7e7bc 0%, #c9a24a 100%);
  color: #12172b;
}
.faqlux .faq-a {
  padding: 0 18px;
  transition: max-height 0.45s ease, padding 0.35s ease;
}
.faqlux .faq-item.open .faq-a {
  max-height: 280px;
  padding: 0 18px 18px;
}
.faqlux .faq-a p {
  font-size: 14.5px;
  line-height: 1.7;
  color: rgba(18, 23, 43, 0.62);
}

.faqlux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--fq-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease;
}
.faqlux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  color: var(--fq-ink);
}
.faqlux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.faqlux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.faqlux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.faqlux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
}
.faqlux-all-copy em {
  font-style: italic;
  font-size: 13px;
  color: rgba(18, 23, 43, 0.55);
}
.faqlux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--fq-gold-2);
  transition: transform 0.35s ease;
}
.faqlux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.faqlux.js-on:not(.is-in) .faqlux-head,
.faqlux.js-on:not(.is-in) .faqlux-itin,
.faqlux.js-on:not(.is-in) .faqlux-stage,
.faqlux.js-on:not(.is-in) .faqlux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.faqlux.is-in .faqlux-head,
.faqlux.is-in .faqlux-itin,
.faqlux.is-in .faqlux-stage,
.faqlux.is-in .faqlux-all {
  opacity: 1;
  animation: fqRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.faqlux.is-in .faqlux-itin { animation-delay: 0.06s; }
.faqlux.is-in .faqlux-stage { animation-delay: 0.12s; }
.faqlux.is-in .faqlux-all { animation-delay: 0.28s; }
@keyframes fqRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .faqlux-head { flex-direction: column; align-items: flex-start; }
  .faqlux-stage { grid-template-columns: 1fr; }
  .faqlux-desk { position: relative; top: auto; min-height: 380px; }
  .faqlux-plane { display: none; }
}
@media (max-width: 640px) {
  .faqlux { padding: 56px 0 64px; }
  .faqlux-title { font-size: clamp(34px, 10vw, 44px); }
  .faqlux-stamp { display: none; }
  .faqlux-desk { min-height: 280px; }
  .faqlux .faq-q { font-size: 18px; padding: 14px; }
  .faqlux-all { padding: 16px; }
  .faqlux-all-copy strong { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .faqlux-head,
  .faqlux-itin,
  .faqlux-stage,
  .faqlux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .faqlux-route path,
  .faqlux-plane,
  .faqlux-kicker i,
  .faqlux-desk-photo img { animation: none !important; }
}

/* =============== PASSPORTS TO WONDER (ULTRA LUXURY) =============== */
.intllux {
  --ix-gold: #c9a24a;
  --ix-gold-2: #b8924a;
  --ix-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--ix-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.intllux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.intllux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.intllux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.intllux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.intllux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.intllux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.intllux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.intllux.is-in .intllux-route path { animation: ixDash 42s linear infinite; }
@keyframes ixDash { to { stroke-dashoffset: -640; } }
.intllux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.intllux.is-in .intllux-plane { animation: ixFly 22s linear infinite; }
@keyframes ixFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.intllux-inner { position: relative; z-index: 1; }
.intllux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.intllux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.intllux-kicker i { color: var(--ix-gold-2); animation: ixCompass 8s ease-in-out infinite; }
@keyframes ixCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.intllux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--ix-ink);
}
.intllux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.intllux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--ix-gold-2);
}
.intllux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.intllux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.intllux-itin i {
  font-size: 10px;
  color: var(--ix-gold-2);
  transform: rotate(45deg);
}
.intllux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.intllux-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(230px, auto);
  gap: 18px;
}
.intllux-card {
  position: relative;
  display: block;
  min-height: 320px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.intllux-card--hero {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 560px;
}
.intllux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.intllux-photo { position: absolute; inset: 0; }
.intllux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.intllux-card:hover .intllux-photo img { transform: scale(1.13); }
.intllux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.22) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.78) 100%);
  pointer-events: none;
}
.intllux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.intllux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.intllux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.intllux-badges {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.intllux-rate,
.intllux-loc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.intllux-rate {
  background: rgba(255, 253, 248, 0.9);
  color: var(--ix-ink);
}
.intllux-rate i { color: var(--ix-gold-2); font-size: 10px; }
.intllux-loc {
  max-width: 180px;
  background: rgba(18, 23, 43, 0.48);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.intllux-loc i { color: #e0bd76; }
.intllux-stamp {
  position: absolute;
  right: 22px;
  top: 46%;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.intllux-stamp i { font-size: 14px; }
.intllux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.intllux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.intllux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.intllux-eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.intllux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 2.2vw, 36px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.intllux-card--hero .intllux-meta h3 { font-size: clamp(36px, 3.6vw, 54px); }
.intllux-meta p {
  margin: 0 0 4px;
  max-width: 36ch;
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.intllux-dur {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}
.intllux-go {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  transition: transform 0.35s ease;
}
.intllux-card:hover .intllux-go { transform: translateX(3px); }

.intllux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--ix-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.intllux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.intllux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.intllux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.intllux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.intllux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.intllux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.intllux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--ix-gold-2);
  transition: transform 0.35s ease;
}
.intllux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.intllux.js-on:not(.is-in) .intllux-head,
.intllux.js-on:not(.is-in) .intllux-itin,
.intllux.js-on:not(.is-in) .intllux-card,
.intllux.js-on:not(.is-in) .intllux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.intllux.is-in .intllux-head,
.intllux.is-in .intllux-itin,
.intllux.is-in .intllux-card,
.intllux.is-in .intllux-all {
  opacity: 1;
  animation: ixRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.intllux.is-in .intllux-itin { animation-delay: 0.06s; }
.intllux.is-in .intllux-card:nth-child(1) { animation-delay: 0.1s; }
.intllux.is-in .intllux-card:nth-child(2) { animation-delay: 0.16s; }
.intllux.is-in .intllux-card:nth-child(3) { animation-delay: 0.22s; }
.intllux.is-in .intllux-card:nth-child(4) { animation-delay: 0.28s; }
.intllux.is-in .intllux-card:nth-child(5) { animation-delay: 0.34s; }
.intllux.is-in .intllux-card:nth-child(6) { animation-delay: 0.4s; }
.intllux.is-in .intllux-all { animation-delay: 0.46s; }
@keyframes ixRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .intllux-head { flex-direction: column; align-items: flex-start; }
  .intllux-mosaic { grid-template-columns: 1fr 1fr; }
  .intllux-card--hero { grid-column: span 2; grid-row: span 1; min-height: 420px; }
  .intllux-stamp { display: none; }
  .intllux-plane { display: none; }
}
@media (max-width: 640px) {
  .intllux { padding: 56px 0 64px; }
  .intllux-title { font-size: clamp(34px, 10vw, 44px); }
  .intllux-mosaic { grid-template-columns: 1fr; }
  .intllux-card,
  .intllux-card--hero { grid-column: auto; grid-row: auto; min-height: 360px; }
  .intllux-all { padding: 16px; }
  .intllux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .intllux-head,
  .intllux-itin,
  .intllux-card,
  .intllux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .intllux-route path,
  .intllux-plane,
  .intllux-kicker i { animation: none !important; }
}

/* =============== WHY US (ULTRA LUXURY) =============== */
.whylux {
  --wy-gold: #c9a24a;
  --wy-gold-2: #b8924a;
  --wy-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--wy-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.whylux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.whylux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.whylux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.whylux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.whylux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.whylux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.whylux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.whylux.is-in .whylux-route path { animation: wyDash 42s linear infinite; }
@keyframes wyDash { to { stroke-dashoffset: -640; } }
.whylux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.whylux.is-in .whylux-plane { animation: wyFly 22s linear infinite; }
@keyframes wyFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.whylux-inner { position: relative; z-index: 1; }
.whylux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.whylux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.whylux-kicker i { color: var(--wy-gold-2); animation: wyCompass 8s ease-in-out infinite; }
@keyframes wyCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.whylux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--wy-ink);
}
.whylux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.whylux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--wy-gold-2);
}
.whylux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.whylux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.whylux-itin i {
  font-size: 10px;
  color: var(--wy-gold-2);
  transform: rotate(45deg);
}
.whylux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.whylux-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr);
  gap: 18px;
  align-items: stretch;
}
.whylux-pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.whylux-hero,
.whylux-card {
  position: relative;
  display: block;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.whylux-hero { min-height: 560px; }
.whylux-card { min-height: 270px; }
.whylux-hero:hover,
.whylux-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.whylux-photo { position: absolute; inset: 0; }
.whylux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.whylux-hero:hover .whylux-photo img,
.whylux-card:hover .whylux-photo img { transform: scale(1.13); }
.whylux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.22) 0%, rgba(8, 12, 26, 0.08) 38%, rgba(8, 12, 26, 0.82) 100%);
  pointer-events: none;
}
.whylux-hero::after,
.whylux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.whylux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.whylux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.whylux-pin {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(18, 23, 43, 0.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.whylux-pin i { color: #e0bd76; }
.whylux-seal {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 14px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.whylux-stamp {
  position: absolute;
  right: 22px;
  top: 42%;
  z-index: 3;
  width: 88px; height: 88px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.whylux-stamp i { font-size: 14px; }
.whylux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.whylux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.whylux-hero-meta,
.whylux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.whylux-eyebrow,
.whylux-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.whylux-hero-meta h3,
.whylux-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}
.whylux-hero-meta h3 { font-size: clamp(36px, 3.4vw, 52px); }
.whylux-meta h3 { font-size: clamp(22px, 1.8vw, 28px); }
.whylux-hero-meta p,
.whylux-meta p {
  margin: 0 0 4px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.whylux-hero-meta p { max-width: 38ch; font-size: 15px; }
.whylux-years,
.whylux-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}
.whylux-years strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
  color: #f7e7bc;
}
.whylux-chip i { color: #e0bd76; font-size: 10px; }

.whylux-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.whylux-stats > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.26);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.whylux-stats strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 32px;
  font-weight: 600;
  line-height: 1;
  color: var(--wy-ink);
}
.whylux-stats em {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8a6a2c;
}

.whylux-all {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: var(--wy-ink);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.whylux-all:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.5);
}
.whylux-all-seal {
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 17px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.whylux-all-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.whylux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.whylux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}
.whylux-all-copy em {
  font-style: italic;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.55);
}
.whylux-all > .fa-arrow-right {
  margin-left: auto;
  color: var(--wy-gold-2);
  transition: transform 0.35s ease;
}
.whylux-all:hover > .fa-arrow-right { transform: translateX(4px); }

.whylux.js-on:not(.is-in) .whylux-head,
.whylux.js-on:not(.is-in) .whylux-itin,
.whylux.js-on:not(.is-in) .whylux-hero,
.whylux.js-on:not(.is-in) .whylux-card,
.whylux.js-on:not(.is-in) .whylux-stats,
.whylux.js-on:not(.is-in) .whylux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.whylux.is-in .whylux-head,
.whylux.is-in .whylux-itin,
.whylux.is-in .whylux-hero,
.whylux.is-in .whylux-card,
.whylux.is-in .whylux-stats,
.whylux.is-in .whylux-all {
  opacity: 1;
  animation: wyRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.whylux.is-in .whylux-itin { animation-delay: 0.06s; }
.whylux.is-in .whylux-hero { animation-delay: 0.1s; }
.whylux.is-in .whylux-card:nth-child(1) { animation-delay: 0.16s; }
.whylux.is-in .whylux-card:nth-child(2) { animation-delay: 0.22s; }
.whylux.is-in .whylux-card:nth-child(3) { animation-delay: 0.28s; }
.whylux.is-in .whylux-card:nth-child(4) { animation-delay: 0.34s; }
.whylux.is-in .whylux-stats { animation-delay: 0.4s; }
.whylux.is-in .whylux-all { animation-delay: 0.46s; }
@keyframes wyRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .whylux-head { flex-direction: column; align-items: flex-start; }
  .whylux-stage { grid-template-columns: 1fr; }
  .whylux-hero { min-height: 420px; }
  .whylux-stamp { display: none; }
  .whylux-plane { display: none; }
}
@media (max-width: 720px) {
  .whylux-pillars { grid-template-columns: 1fr; }
  .whylux-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .whylux { padding: 56px 0 64px; }
  .whylux-title { font-size: clamp(34px, 10vw, 44px); }
  .whylux-hero,
  .whylux-card { min-height: 360px; }
  .whylux-all { padding: 16px; }
  .whylux-all-copy strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .whylux-head,
  .whylux-itin,
  .whylux-hero,
  .whylux-card,
  .whylux-stats,
  .whylux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .whylux-route path,
  .whylux-plane,
  .whylux-kicker i { animation: none !important; }
}

/* =============== HOUSE FIGURES (ULTRA LUXURY) =============== */
.statlux {
  --st-gold: #c9a24a;
  --st-gold-2: #b8924a;
  --st-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(64px, 7vw, 108px) 0 clamp(72px, 7vw, 112px);
  color: var(--st-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.statlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.statlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.statlux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.statlux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.statlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.statlux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.statlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.statlux.is-in .statlux-route path { animation: stDash 42s linear infinite; }
@keyframes stDash { to { stroke-dashoffset: -640; } }
.statlux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.statlux.is-in .statlux-plane { animation: stFly 22s linear infinite; }
@keyframes stFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.statlux-inner { position: relative; z-index: 1; }
.statlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 18px;
}
.statlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.statlux-kicker i { color: var(--st-gold-2); animation: stCompass 8s ease-in-out infinite; }
@keyframes stCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.statlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5.2vw, 68px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--st-ink);
}
.statlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.statlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--st-gold-2);
}
.statlux-lead {
  margin: 0;
  max-width: 36ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.statlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 32px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.statlux-itin i {
  font-size: 10px;
  color: var(--st-gold-2);
  transform: rotate(45deg);
}
.statlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.statlux-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.statlux-card {
  position: relative;
  display: block;
  min-height: 420px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.statlux-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.statlux-photo { position: absolute; inset: 0; }
.statlux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.statlux-card:hover .statlux-photo img { transform: scale(1.13); }
.statlux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.28) 0%, rgba(8, 12, 26, 0.08) 36%, rgba(8, 12, 26, 0.84) 100%);
  pointer-events: none;
}
.statlux-glint {
  position: absolute; inset: 0;
  z-index: 4;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255, 247, 220, 0.28) 50%, transparent 62%);
  transform: translate3d(-120%, 0, 0);
  opacity: 0;
}
.statlux-card:hover .statlux-glint {
  opacity: 1;
  animation: stGlint 1.05s ease;
}
@keyframes stGlint {
  from { transform: translate3d(-120%, 0, 0); opacity: 0; }
  18% { opacity: 1; }
  to { transform: translate3d(120%, 0, 0); opacity: 0; }
}
.statlux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 5;
}
.statlux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.statlux-num {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
  text-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}
.statlux-seal {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 3;
  width: 42px; height: 42px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 14px;
  box-shadow: 0 12px 20px -12px rgba(184, 146, 74, 0.95);
}
.statlux-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 18px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.statlux-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.statlux-val {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(48px, 4.4vw, 64px);
  font-weight: 600;
  line-height: 0.95;
  color: #fff;
  text-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
  background: linear-gradient(180deg, #fff 0%, #f7e7bc 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.statlux-meta em {
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}

.statlux.js-on:not(.is-in) .statlux-head,
.statlux.js-on:not(.is-in) .statlux-itin,
.statlux.js-on:not(.is-in) .statlux-card {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.statlux.is-in .statlux-head,
.statlux.is-in .statlux-itin,
.statlux.is-in .statlux-card {
  opacity: 1;
  animation: stRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.statlux.is-in .statlux-itin { animation-delay: 0.06s; }
.statlux.is-in .statlux-card:nth-child(1) { animation-delay: 0.1s; }
.statlux.is-in .statlux-card:nth-child(2) { animation-delay: 0.18s; }
.statlux.is-in .statlux-card:nth-child(3) { animation-delay: 0.26s; }
.statlux.is-in .statlux-card:nth-child(4) { animation-delay: 0.34s; }
@keyframes stRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .statlux-head { flex-direction: column; align-items: flex-start; }
  .statlux-grid { grid-template-columns: 1fr 1fr; }
  .statlux-card { min-height: 360px; }
  .statlux-plane { display: none; }
}
@media (max-width: 640px) {
  .statlux { padding: 52px 0 60px; }
  .statlux-title { font-size: clamp(34px, 10vw, 44px); }
  .statlux-grid { grid-template-columns: 1fr; }
  .statlux-card { min-height: 340px; }
}
@media (prefers-reduced-motion: reduce) {
  .statlux-head,
  .statlux-itin,
  .statlux-card { opacity: 1 !important; transform: none !important; animation: none !important; }
  .statlux-route path,
  .statlux-plane,
  .statlux-kicker i,
  .statlux-glint { animation: none !important; }
}

/* =============== INQUIRE DESK (ULTRA LUXURY) =============== */
.ctalux {
  --cq-gold: #c9a24a;
  --cq-gold-2: #b8924a;
  --cq-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  overflow: clip;
  padding: clamp(72px, 8vw, 118px) 0 clamp(80px, 8vw, 120px);
  color: var(--cq-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.ctalux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.ctalux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.ctalux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.ctalux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.ctalux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.ctalux-route {
  position: absolute; left: 0; right: 0; top: 5%;
  width: 100%; height: 28%; overflow: visible;
}
.ctalux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.ctalux.is-in .ctalux-route path { animation: cqDash 42s linear infinite; }
@keyframes cqDash { to { stroke-dashoffset: -640; } }
.ctalux-plane {
  position: absolute;
  top: 8%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.ctalux.is-in .ctalux-plane { animation: cqFly 22s linear infinite; }
@keyframes cqFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.ctalux-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 36px;
  align-items: start;
}
.ctalux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.ctalux-kicker i { color: var(--cq-gold-2); animation: cqCompass 8s ease-in-out infinite; }
@keyframes cqCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.ctalux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 4.8vw, 64px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--cq-ink);
}
.ctalux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ctalux-script {
  margin: 0 0 12px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.4vw, 34px);
  color: var(--cq-gold-2);
}
.ctalux-lead {
  margin: 0 0 16px;
  max-width: 46ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.ctalux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 22px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.ctalux-itin i {
  font-size: 10px;
  color: var(--cq-gold-2);
  transform: rotate(45deg);
}
.ctalux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.ctalux-hero {
  position: relative;
  display: block;
  min-height: 240px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  margin-bottom: 18px;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.ctalux-hero:hover {
  transform: translateY(-4px);
  box-shadow: 0 40px 72px -32px rgba(18, 23, 43, 0.6);
}
.ctalux-photo { position: absolute; inset: 0; }
.ctalux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.ctalux-hero:hover .ctalux-photo img { transform: scale(1.13); }
.ctalux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.18) 0%, rgba(8, 12, 26, 0.72) 100%);
  pointer-events: none;
}
.ctalux-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 4;
}
.ctalux-corners {
  position: absolute; inset: 12px;
  pointer-events: none;
  z-index: 3;
  border-radius: 16px;
  box-shadow:
    inset 16px 16px 0 -14px rgba(240, 215, 140, 0.55),
    inset -16px -16px 0 -14px rgba(240, 215, 140, 0.55);
}
.ctalux-pin {
  position: absolute;
  top: 14px; right: 14px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(18, 23, 43, 0.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ctalux-pin i { color: #e0bd76; }
.ctalux-stamp {
  position: absolute;
  left: 18px; top: 18px;
  z-index: 3;
  width: 78px; height: 78px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-16deg);
  pointer-events: none;
}
.ctalux-stamp i { font-size: 12px; }
.ctalux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ctalux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 700;
}
.ctalux-hero-meta {
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ctalux-hero-meta span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.92);
}
.ctalux-hero-meta strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.1;
}

.ctalux-points {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ctalux-points li {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  font-size: 14.5px;
  font-weight: 500;
  color: var(--cq-ink);
  transition: transform 0.4s ease, background 0.4s ease;
}
.ctalux-points li:hover {
  transform: translateX(4px);
  background: rgba(255, 255, 255, 0.88);
}
.ctalux-n {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--cq-gold-2);
}
.ctalux-seal {
  width: 32px; height: 32px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 12px;
  box-shadow: 0 10px 16px -12px rgba(184, 146, 74, 0.95);
}

.ctalux-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.ctalux-call {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 10px 10px;
  border-radius: 999px;
  text-decoration: none;
  color: var(--cq-ink);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(184, 146, 74, 0.32);
  transition: transform 0.35s ease, background 0.35s ease;
}
.ctalux-call:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.92);
}
.ctalux-all-seal {
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 14px;
}
.ctalux-call em {
  display: block;
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.ctalux-call strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 600;
}
.ctalux-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cq-ink);
  text-decoration: none;
}
.ctalux-more i {
  color: var(--cq-gold-2);
  transition: transform 0.35s ease;
}
.ctalux-more:hover i { transform: translateX(4px); }

.ctalux-form { min-width: 0; }
.ctalux .iform-v2 {
  padding: 28px 26px 24px;
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.28);
  border-radius: 24px;
  box-shadow:
    0 32px 60px -36px rgba(18, 23, 43, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.ctalux .iform-v2::before {
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 42%, rgba(255, 255, 255, 0.18) 100%);
}
.ctalux .iform-v2-head .eyebrow {
  display: inline-flex;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.35);
  background: rgba(255, 253, 248, 0.7);
  color: #8a6a2c;
  letter-spacing: 0.22em;
}
.ctalux .iform-v2-title {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 2.4vw, 36px);
  font-weight: 600;
  color: var(--cq-ink);
}
.ctalux .iform-v2-title em {
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ctalux .iform-v2-hint { color: rgba(18, 23, 43, 0.55); }
.ctalux .iform-v2-hint .req,
.ctalux .iform-v2 .req { color: var(--cq-gold-2); }
.ctalux .iform-v2-field label { color: #8a6a2c; letter-spacing: 0.12em; }
.ctalux .iform-v2-field label i { color: var(--cq-gold-2); }
.ctalux .iform-v2-field input,
.ctalux .iform-v2-field select,
.ctalux .iform-v2-field textarea {
  background: rgba(255, 253, 248, 0.88);
  border: 1px solid rgba(184, 146, 74, 0.28);
  border-radius: 14px;
  color: var(--cq-ink);
}
.ctalux .iform-v2-field select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b8924a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
}
.ctalux .iform-v2-field input:hover,
.ctalux .iform-v2-field select:hover,
.ctalux .iform-v2-field textarea:hover { border-color: rgba(184, 146, 74, 0.55); }
.ctalux .iform-v2-field input:focus,
.ctalux .iform-v2-field select:focus,
.ctalux .iform-v2-field textarea:focus {
  border-color: var(--cq-gold-2);
  box-shadow: 0 0 0 4px rgba(201, 162, 74, 0.16);
}
.ctalux .iform-v2-stepper {
  background: rgba(255, 253, 248, 0.88);
  border: 1px solid rgba(184, 146, 74, 0.28);
  border-radius: 14px;
}
.ctalux .iform-v2-stepper button {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
}
.ctalux .iform-v2-stepper button:hover {
  background: linear-gradient(180deg, #fff6e0, #c9a24a);
  color: #2a1e06;
  transform: scale(1.06);
}
.ctalux .iform-v2-stepper span {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
}
.ctalux .iform-v2-divider {
  background: linear-gradient(90deg, transparent, rgba(184, 146, 74, 0.35), transparent);
}
.ctalux .iform-v2-terms input[type="checkbox"] { accent-color: #b8924a; }
.ctalux .iform-v2-terms a { color: var(--cq-gold-2); }
.ctalux .iform-v2-actions .btn {
  border-radius: 999px;
  min-height: 48px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ctalux .iform-v2-actions .btn-primary {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  background-size: auto;
  color: #2a1e06;
  border: none;
  box-shadow: 0 14px 24px -16px rgba(184, 146, 74, 0.95);
  animation: none;
}
.ctalux .iform-v2-actions .btn-primary:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
  box-shadow: 0 18px 32px -16px rgba(184, 146, 74, 0.95);
  background-position: 0 0;
}
.ctalux .iform-v2-actions .btn-whatsapp {
  background: #1f6b4a;
  color: #fff;
  border: 1px solid rgba(201, 162, 74, 0.25);
}
.ctalux .iform-v2-success h3 {
  font-family: 'Cormorant Garamond', var(--serif);
  font-weight: 600;
}
.ctalux .iform-v2-check {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
}

.ctalux.js-on:not(.is-in) .ctalux-copy,
.ctalux.js-on:not(.is-in) .ctalux-form {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.ctalux.is-in .ctalux-copy,
.ctalux.is-in .ctalux-form {
  opacity: 1;
  animation: cqRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.ctalux.is-in .ctalux-form { animation-delay: 0.12s; }
@keyframes cqRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1040px) {
  .ctalux-inner { grid-template-columns: 1fr; }
  .ctalux-plane { display: none; }
  .ctalux-stamp { display: none; }
}
@media (max-width: 640px) {
  .ctalux { padding: 56px 0 64px; }
  .ctalux-title { font-size: clamp(34px, 10vw, 44px); }
  .ctalux .iform-v2 { padding: 22px 16px; }
  .ctalux-call { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ctalux-copy,
  .ctalux-form { opacity: 1 !important; transform: none !important; animation: none !important; }
  .ctalux-route path,
  .ctalux-plane,
  .ctalux-kicker i { animation: none !important; }
}

/* =============== SITE FOOTER (ULTRA LUXURY) =============== */
.footlux.footer {
  --ft-gold: #c9a24a;
  --ft-gold-2: #b8924a;
  --ft-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  overflow: clip;
  padding: clamp(56px, 6vw, 88px) 0 28px;
  margin-top: 0;
  color: var(--ft-ink);
  border-top: 1px solid rgba(184, 146, 74, 0.22);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.footlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.footlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}
.footlux-aurora.a {
  width: 40vw; height: 40vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.footlux-aurora.b {
  width: 44vw; height: 44vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.footlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.footlux-route {
  position: absolute; left: 0; right: 0; top: 4%;
  width: 100%; height: 22%; overflow: visible;
}
.footlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.footlux.is-in .footlux-route path { animation: ftDash 42s linear infinite; }
@keyframes ftDash { to { stroke-dashoffset: -640; } }
.footlux-plane {
  position: absolute;
  top: 6%;
  left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.footlux.is-in .footlux-plane { animation: ftFly 22s linear infinite; }
@keyframes ftFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.footlux-inner { position: relative; z-index: 1; }
.footlux a { color: var(--ft-ink); transform: none; }
.footlux a:hover { color: var(--ft-gold-2); transform: none; }

.footlux-cta {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) auto;
  gap: 28px;
  align-items: center;
  min-height: 220px;
  padding: 28px 32px;
  margin-bottom: 28px;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  box-shadow: 0 32px 60px -36px rgba(18, 23, 43, 0.55);
}
.footlux-cta-photo {
  position: absolute; inset: 0;
  z-index: 0;
}
.footlux-cta-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.footlux-cta:hover .footlux-cta-photo img { transform: scale(1.12); }
.footlux-cta-scrim {
  position: absolute; inset: 0;
  z-index: 1;
  background: linear-gradient(100deg, rgba(8, 12, 26, 0.82) 0%, rgba(8, 12, 26, 0.45) 58%, rgba(8, 12, 26, 0.7) 100%);
}
.footlux-cta::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.8), rgba(201, 162, 74, 0.1) 42%, rgba(255, 255, 255, 0.2) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 3;
}
.footlux-cta-text,
.footlux-cta-actions { position: relative; z-index: 2; }
.footlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid rgba(240, 215, 140, 0.45);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.footlux-kicker i { color: #e0bd76; animation: ftCompass 8s ease-in-out infinite; }
@keyframes ftCompass {
  0%, 100% { transform: rotate(-12deg); }
  50% { transform: rotate(12deg); }
}
.footlux-cta-text h3 {
  margin: 12px 0 4px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 3.6vw, 48px);
  font-weight: 600;
  line-height: 1.05;
  color: #fff;
}
.footlux-cta-text h3 em {
  font-style: italic;
  background: linear-gradient(100deg, #f7e7bc 0%, #e0bd76 50%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.footlux-script {
  margin: 0 0 8px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(24px, 2.2vw, 32px);
  color: #e0bd76;
}
.footlux-cta-text p:last-child {
  margin: 0;
  max-width: 46ch;
  font-size: 14.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}
.footlux-cta-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.footlux-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.35s ease, background 0.35s ease;
}
.footlux-btn:hover { transform: translateY(-2px); }
.footlux-btn--gold {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06 !important;
  box-shadow: 0 14px 24px -16px rgba(184, 146, 74, 0.95);
}
.footlux-btn--wa {
  background: rgba(31, 107, 74, 0.92);
  color: #fff !important;
  border: 1px solid rgba(240, 215, 140, 0.28);
}
.footlux-phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  color: #f7e7bc !important;
  text-decoration: none;
}
.footlux-phone i { font-size: 13px; color: #e0bd76; }

.footlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 22px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.footlux-itin i {
  font-size: 10px;
  color: var(--ft-gold-2);
  transform: rotate(45deg);
}
.footlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}

.footlux-feats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 36px;
}
.footlux-feat {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.4s ease, background 0.4s ease;
}
.footlux-feat:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, 0.88);
}
.footlux-seal {
  flex-shrink: 0;
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 14px;
  box-shadow: 0 10px 16px -12px rgba(184, 146, 74, 0.95);
}
.footlux-feat strong {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ft-ink);
}
.footlux-feat em {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 12px;
  color: rgba(18, 23, 43, 0.55);
}

.footlux-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1.15fr;
  gap: 32px 24px;
  margin-bottom: 36px;
}
.footlux .brand-logo--footer {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: 0;
  border-radius: 0;
}
.footlux-brand p {
  max-width: 36ch;
  margin: 16px 0 0;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(18, 23, 43, 0.62);
}
.footlux-contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 18px;
}
.footlux-contact a,
.footlux-contact span {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13.5px;
  color: rgba(18, 23, 43, 0.62);
  text-decoration: none;
}
.footlux-contact i { color: var(--ft-gold-2); margin-top: 3px; }
.footlux-contact a:hover { color: var(--ft-gold-2); }
.footlux-social {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.footlux-social a {
  width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(184, 146, 74, 0.28);
  color: var(--ft-ink);
  font-size: 13px;
  transition: transform 0.35s ease, background 0.35s ease, color 0.35s ease;
}
.footlux-social a:hover {
  transform: translateY(-3px);
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
}

.footlux-col h5 {
  margin: 0 0 4px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ft-ink);
}
.footlux-col h5::after { display: none; }
.footlux-col h5 i {
  font-size: 13px;
  color: #2a1e06;
  width: 28px; height: 28px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.footlux-col-sub {
  display: block;
  margin-bottom: 14px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.footlux-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.footlux-col li,
.footlux-col p { color: var(--ft-ink); }
.footlux-col a {
  font-size: 13.5px;
  font-weight: 500;
  color: rgba(18, 23, 43, 0.72);
  text-decoration: none;
  transition: color 0.3s ease, transform 0.3s ease;
}
.footlux-col a:hover {
  color: var(--ft-gold-2);
  transform: translateX(3px);
}
.footlux-all a {
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--ft-gold-2);
}
.footlux-all i { font-size: 10px; margin-left: 4px; }

.footlux-tours,
.footlux-assoc,
.footlux-pay {
  padding: 22px 0;
  border-top: 1px solid rgba(184, 146, 74, 0.22);
}
.footlux-tours > span,
.footlux-assoc > span,
.footlux-pay > span {
  display: block;
  margin-bottom: 12px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.footlux-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.footlux-chips a,
.footlux-chips span {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ft-ink);
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 146, 74, 0.24);
  text-decoration: none;
  transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.footlux-chips a:hover,
.footlux-chips span:hover {
  transform: translateY(-2px);
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  border-color: transparent;
}
.footlux-chips .is-bni {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  border-color: transparent;
}
.footlux-pay { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
.footlux-pay > span { margin-bottom: 0; }
.footlux-pay-row { display: flex; align-items: center; gap: 16px; color: var(--ft-gold-2); font-size: 28px; }

.footlux-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid rgba(184, 146, 74, 0.22);
  font-size: 13px;
  color: rgba(18, 23, 43, 0.55);
}
.footlux-legal { display: flex; flex-wrap: wrap; gap: 16px; }
.footlux-legal a {
  font-size: 13px;
  font-weight: 600;
  color: rgba(18, 23, 43, 0.55);
  text-decoration: none;
}
.footlux-legal a:hover { color: var(--ft-gold-2); }
.footlux-tag {
  font-family: 'Great Vibes', cursive;
  font-size: 22px;
  font-style: normal;
  color: var(--ft-gold-2);
}

.footlux.js-on:not(.is-in) .footlux-cta,
.footlux.js-on:not(.is-in) .footlux-itin,
.footlux.js-on:not(.is-in) .footlux-feats,
.footlux.js-on:not(.is-in) .footlux-grid {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.footlux.is-in .footlux-cta,
.footlux.is-in .footlux-itin,
.footlux.is-in .footlux-feats,
.footlux.is-in .footlux-grid {
  opacity: 1;
  animation: ftRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.footlux.is-in .footlux-itin { animation-delay: 0.08s; }
.footlux.is-in .footlux-feats { animation-delay: 0.14s; }
.footlux.is-in .footlux-grid { animation-delay: 0.2s; }
@keyframes ftRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .footlux-cta { grid-template-columns: 1fr; padding: 24px; min-height: 0; }
  .footlux-cta-actions { flex-direction: row; flex-wrap: wrap; }
  .footlux-grid { grid-template-columns: 1fr 1fr 1fr; }
  .footlux-brand { grid-column: 1 / -1; }
  .footlux-feats { grid-template-columns: 1fr 1fr; }
  .footlux-plane { display: none; }
}
@media (max-width: 720px) {
  .footlux-feats,
  .footlux-grid { grid-template-columns: 1fr; }
  .footlux-bottom { flex-direction: column; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .footlux-cta,
  .footlux-itin,
  .footlux-feats,
  .footlux-grid { opacity: 1 !important; transform: none !important; animation: none !important; }
  .footlux-route path,
  .footlux-plane,
  .footlux-kicker i { animation: none !important; }
}

/* =============== MEGA MENU (ULTRA LUXURY) =============== */
.mega.megalux {
  --mg-gold: #c9a24a;
  --mg-gold-2: #b8924a;
  --mg-ink: #12172b;
  position: absolute;
  top: calc(100% + 8px);
  width: min(1240px, calc(100vw - 28px));
  display: grid;
  grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.78fr);
  align-items: stretch;
  gap: 0;
  background:
    radial-gradient(520px 220px at 100% 0%, rgba(201, 162, 74, 0.12), transparent 62%),
    rgba(255, 253, 248, 0.97);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border: 1px solid rgba(184, 146, 74, 0.38);
  border-radius: 26px;
  box-shadow:
    0 48px 90px -36px rgba(18, 23, 43, 0.58),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  overflow: visible;
  z-index: 220;
}
.mega.megalux::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -18px;
  height: 18px;
  background: transparent;
}
.has-mega:hover .mega.megalux,
.has-mega:focus-within .mega.megalux {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.megalux-intro {
  position: relative;
  display: flex;
  min-height: 468px;
  color: #fff;
  text-decoration: none;
  isolation: isolate;
  overflow: hidden;
  border-radius: 25px 0 0 25px;
}
.megalux-intro-photo { position: absolute; inset: 0; }
.megalux-intro-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.megalux-intro:hover .megalux-intro-photo img { transform: scale(1.12); }
.megalux-intro-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(8, 12, 26, 0.12) 0%, rgba(8, 12, 26, 0.82) 100%),
    radial-gradient(80% 50% at 20% 90%, rgba(201, 162, 74, 0.22), transparent 70%);
}
.megalux-stamp {
  position: absolute;
  top: 18px; right: 16px;
  z-index: 2;
  width: 78px; height: 78px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.72);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.92);
  transform: rotate(-14deg);
  pointer-events: none;
  background: rgba(8, 12, 26, 0.18);
}
.megalux-stamp i { font-size: 12px; }
.megalux-stamp em {
  font-style: normal;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.megalux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 15px;
  font-weight: 700;
}
.megalux-intro-copy {
  position: relative;
  z-index: 2;
  margin-top: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 22px 20px 20px;
}
.megalux-kicker {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.megalux-intro-copy h4 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(26px, 2.2vw, 36px);
  font-weight: 600;
  line-height: 1.08;
  color: #fff;
}
.megalux-script {
  font-family: 'Great Vibes', cursive;
  font-size: 24px;
  font-style: normal;
  color: #e0bd76;
}
.megalux-count {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.78);
}
.megalux-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  box-shadow: 0 12px 20px -14px rgba(184, 146, 74, 0.95);
  transition: transform 0.35s ease;
}
.megalux-intro:hover .megalux-cta { transform: translateX(3px); }

.megalux-main {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 16px 14px;
  min-width: 0;
  min-height: 468px;
  border-radius: 0 25px 25px 0;
  overflow: hidden;
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(201, 162, 74, 0.12), transparent 70%),
    linear-gradient(180deg, rgba(255, 253, 248, 0.5), rgba(246, 240, 228, 0.42));
}
.megalux-main::before {
  content: '';
  position: absolute;
  left: 6%;
  right: 8%;
  top: 34px;
  height: 34px;
  pointer-events: none;
  opacity: 0.55;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 48' fill='none'%3E%3Cpath d='M8 30 C 90 8, 170 42, 250 18 S 430 8, 520 28 S 610 18, 632 22' stroke='%23b8924a' stroke-width='1.2' stroke-dasharray='5 7' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='30' r='2.4' fill='%23c9a24a'/%3E%3Ccircle cx='632' cy='22' r='2.4' fill='%23c9a24a'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.megalux-itin {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: 0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.megalux-itin i {
  font-size: 9px;
  color: var(--mg-gold-2);
  transform: rotate(45deg);
}
.megalux-itin span {
  padding-bottom: 3px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.4);
}
.megalux-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.megalux-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  flex: 1 1 auto;
  min-height: 0;
}
.megalux-mosaic--atlas {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(118px, 1fr) minmax(118px, 1fr) minmax(110px, 0.92fr);
}
.megalux-mosaic--atlas .megalux-card:first-child {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.megalux-mosaic--five {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: minmax(148px, 1fr) minmax(148px, 1fr);
}
.megalux-mosaic--five .megalux-card:first-child {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.megalux-mosaic--four {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(150px, 1fr) minmax(150px, 1fr);
}
.megalux-mosaic--four .megalux-card:first-child {
  grid-column: 1 / 3;
  grid-row: 1;
}
.megalux-mosaic--four .megalux-card:nth-child(2) {
  grid-column: 3;
  grid-row: 1 / 3;
}
.megalux-mosaic--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(150px, 1fr) minmax(150px, 1fr);
}
.megalux-mosaic--three .megalux-card:first-child {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.megalux-card {
  position: relative;
  display: block;
  min-height: 118px;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 18px 36px -28px rgba(18, 23, 43, 0.55);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.megalux-card--hero .megalux-card-meta strong { font-size: 26px; }
.megalux-card--tall { min-height: 150px; }
.megalux-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 44px -24px rgba(18, 23, 43, 0.55);
  z-index: 2;
}
.megalux-card-photo { position: absolute; inset: 0; }
.megalux-card-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.megalux-card:hover .megalux-card-photo img { transform: scale(1.12); }
.megalux-card-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.08) 18%, rgba(8, 12, 26, 0.8) 100%);
}
.megalux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 16px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(240, 215, 140, 0.75), rgba(201, 162, 74, 0.08) 50%, rgba(255, 255, 255, 0.16) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.megalux-num {
  position: absolute;
  top: 10px; left: 10px;
  z-index: 2;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #f7e7bc;
}
.megalux-seal {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 2;
  width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
}
.megalux-card-meta {
  position: absolute;
  left: 12px; right: 12px; bottom: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.megalux-card-meta strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.1;
  color: #fff;
}
.megalux-card-meta em {
  font-style: normal;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.82);
}

.megalux-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.megalux-chips a {
  font-size: 12px;
  font-weight: 600;
  color: var(--mg-ink);
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(184, 146, 74, 0.26);
  text-decoration: none;
  transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.megalux-chips a:hover {
  transform: translateY(-2px);
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  border-color: transparent;
}
.megalux-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding: 10px 12px;
  border-radius: 14px;
  text-decoration: none;
  color: var(--mg-ink);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 146, 74, 0.24);
  font-size: 12.5px;
  font-weight: 700;
  transition: transform 0.35s ease, background 0.35s ease;
}
.megalux-foot:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.92);
}
.megalux-foot i { color: var(--mg-gold-2); }

/* Text-first mega — one photograph, gold-numbered columns */
.mega.megalux.megalux--list {
  width: min(calc(480px + (var(--mega-cols, 2) * 248px)), calc(100vw - 28px));
  grid-template-columns: minmax(236px, 0.7fr) minmax(0, 2.15fr);
}
.megalux--list .megalux-intro,
.megalux--list .megalux-main {
  min-height: 360px;
  max-height: min(72vh, 640px);
}
.megalux--list .megalux-main {
  gap: 12px;
  padding: 16px 18px 14px;
}
.megalux--list .megalux-main::before { top: 28px; opacity: 0.38; }
.megalux-cols {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(var(--mega-cols, 2), minmax(0, 1fr));
  gap: 6px 0;
  flex: 1 1 auto;
  min-height: 0;
  align-items: start;
}
.megalux-col {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 16px;
}
.megalux-col:first-child { padding-left: 2px; }
.megalux-col:last-child { padding-right: 2px; }
.megalux-col + .megalux-col {
  border-left: 1px solid rgba(184, 146, 74, 0.18);
}
.megalux-col .megalux-label {
  display: block;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.28);
}
.megalux-links {
  list-style: none;
  margin: 0;
  padding: 0 4px 0 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  max-height: min(46vh, 400px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(184, 146, 74, 0.45) transparent;
}
.megalux-links::-webkit-scrollbar { width: 6px; }
.megalux-links::-webkit-scrollbar-thumb {
  background: rgba(184, 146, 74, 0.4);
  border-radius: 99px;
}
.megalux-links a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 6px;
  padding: 7px 8px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--mg-ink);
  transition: background 0.28s ease, transform 0.28s ease;
}
.megalux-links a:hover {
  background: linear-gradient(90deg, rgba(253, 243, 216, 0.95), rgba(255, 255, 255, 0.35));
  transform: translateX(3px);
}
.megalux-links a em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: normal;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--mg-gold-2);
}
.megalux-link-ico {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 11px;
  color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  box-shadow: 0 8px 16px -12px rgba(184, 146, 74, 0.9);
}
.megalux-links a span { min-width: 0; }
.megalux-links a strong {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16.5px;
  font-weight: 600;
  line-height: 1.18;
  color: var(--mg-ink);
}
.megalux-links a b {
  display: block;
  margin-top: 1px;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.01em;
  color: rgba(18, 23, 43, 0.52);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.megalux-links a > .fa-arrow-right {
  font-size: 10px;
  color: var(--mg-gold-2);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.28s ease, transform 0.28s ease;
}
.megalux-links a:hover > .fa-arrow-right {
  opacity: 1;
  transform: translateX(0);
}

.mobile-drawer-sub .sub-label {
  display: block;
  padding: 14px 6px 4px 22px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8a6a2c;
}

@media (max-width: 1180px) {
  .mega.megalux {
    grid-template-columns: 1fr;
    width: min(720px, calc(100vw - 32px));
  }
  .megalux-intro,
  .megalux-main {
    min-height: 0;
    border-radius: 0;
  }
  .megalux-intro {
    min-height: 168px;
    border-radius: 25px 25px 0 0;
  }
  .megalux-main { border-radius: 0 0 25px 25px; }
  .megalux-stamp { display: none; }
  .megalux-mosaic--atlas,
  .megalux-mosaic--five,
  .megalux-mosaic--four,
  .megalux-mosaic--three {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
  }
  .megalux-mosaic--atlas .megalux-card:first-child,
  .megalux-mosaic--five .megalux-card:first-child,
  .megalux-mosaic--four .megalux-card:first-child,
  .megalux-mosaic--four .megalux-card:nth-child(2),
  .megalux-mosaic--three .megalux-card:first-child {
    grid-column: auto;
    grid-row: auto;
  }
  .mega.megalux.megalux--list { width: min(720px, calc(100vw - 32px)); }
  .megalux-cols { grid-template-columns: 1fr; }
  .megalux-col { padding: 0; }
  .megalux-col + .megalux-col {
    border-left: 0;
    border-top: 1px solid rgba(184, 146, 74, 0.16);
    margin-top: 8px;
    padding-top: 12px;
  }
}
@media (hover: none) {
  .mega.megalux { display: none; }
}

/* =============== PACKAGE DETAIL (ULTRA LUXURY) =============== */
.tourlux {
  --tl-gold: #c9a24a;
  --tl-gold-2: #b8924a;
  --tl-ink: #12172b;
  --tl-cream: #fffdf8;
  color: var(--tl-ink);
  background: #fffefb;
}
.tourlux-hero {
  position: relative;
  isolation: isolate;
  min-height: calc(100svh - var(--mast-offset, 180px));
  display: flex;
  align-items: flex-end;
  padding: 48px 0 56px;
  color: #fff;
  overflow: hidden;
}
.tourlux-hero-bg { position: absolute; inset: 0; z-index: 0; }
.tourlux-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.06);
  animation: tlKen 22s ease-in-out alternate infinite;
}
@keyframes tlKen {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-1.5%, -1%, 0); }
}
.tourlux-hero-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(8, 12, 26, 0.18) 0%, rgba(8, 12, 26, 0.22) 38%, rgba(8, 12, 26, 0.88) 100%),
    radial-gradient(70% 50% at 80% 90%, rgba(201, 162, 74, 0.22), transparent 70%);
}
.tourlux-hero-route {
  position: absolute; left: 0; right: 0; top: 12%;
  width: 100%; height: 28%;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}
.tourlux-hero-route path {
  fill: none;
  stroke: rgba(240, 215, 140, 0.55);
  stroke-width: 1.6;
  stroke-dasharray: 7 10;
  animation: tlDash 42s linear infinite;
}
@keyframes tlDash { to { stroke-dashoffset: -640; } }
.tourlux-hero-plane {
  position: absolute;
  top: 16%; left: -4%;
  z-index: 1;
  color: #e0bd76;
  width: 56px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.4));
  animation: tlFly 22s linear infinite;
}
.tourlux-hero-plane .svg-plane { width: 56px; }
@keyframes tlFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.95; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}
.tourlux-hero-inner {
  position: relative;
  z-index: 2;
}
.tourlux-hero-copy { max-width: 920px; }
.tourlux-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 22px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.tourlux-crumbs a { color: inherit; text-decoration: none; }
.tourlux-crumbs a:hover { color: #f7e7bc; }
.tourlux-crumbs i {
  font-size: 9px;
  color: var(--tl-gold);
  transform: rotate(45deg);
}
.tourlux-stamp {
  position: absolute;
  top: 0; right: 0;
  width: 86px; height: 86px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: #f7e7bc;
  transform: rotate(-12deg);
  background: rgba(8, 12, 26, 0.2);
  pointer-events: none;
}
.tourlux-stamp i { font-size: 13px; }
.tourlux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.tourlux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 700;
}
.tourlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid rgba(240, 215, 140, 0.4);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.tourlux-kicker--ink {
  background: rgba(255, 255, 255, 0.62);
  border-color: rgba(184, 146, 74, 0.38);
  color: #8a6a2c;
}
.tourlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(46px, 7vw, 92px);
  font-weight: 600;
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: #fff;
}
.tourlux-script {
  display: block;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 3vw, 38px);
  font-style: normal;
  color: #e0bd76;
  margin-bottom: 12px;
}
.tourlux-script--gold { color: #b8924a; margin: 0 0 8px; font-size: 26px; }
.tourlux-lead {
  max-width: 640px;
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.84);
}
.tourlux-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}
.tourlux-hero-chips span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 12.5px;
  font-weight: 600;
}
.tourlux-hero-chips i { color: #e0bd76; font-size: 11px; }
.tourlux-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.tourlux-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 14px 24px -16px rgba(184, 146, 74, 0.95);
  transition: transform 0.35s ease;
}
.tourlux-cta:hover { transform: translateY(-2px); }
.tourlux-cta--sm { padding: 8px 14px; font-size: 11px; }
.tourlux-cta--full { width: 100%; }
.tourlux-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.4);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: transform 0.35s ease, background 0.35s ease;
}
.tourlux-ghost:hover { transform: translateY(-2px); background: rgba(255, 255, 255, 0.2); }
.tourlux-ghost--sm { padding: 8px 14px; font-size: 11px; color: #fff; }
.tourlux-ghost--full {
  width: 100%;
  color: var(--tl-ink);
  background: rgba(255, 255, 255, 0.7);
  border-color: rgba(184, 146, 74, 0.28);
}

.tourlux-band {
  position: relative;
  padding: 16px 0;
  background:
    radial-gradient(500px 80px at 80% 0%, rgba(201, 162, 74, 0.14), transparent 70%),
    linear-gradient(180deg, #12172b, #1a2138);
}
.tourlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.82);
}
.tourlux-itin i {
  font-size: 9px;
  color: var(--tl-gold);
  transform: rotate(45deg);
}
.tourlux-itin span {
  padding-bottom: 3px;
  border-bottom: 1px dashed rgba(201, 162, 74, 0.45);
}

.tourlux-body {
  position: relative;
  padding: 56px 0 24px;
  background:
    radial-gradient(900px 420px at 6% 0%, rgba(201, 162, 74, 0.14), transparent 58%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 42%, #fffdf8 100%);
}
.tourlux-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.72fr) minmax(280px, 0.86fr);
  gap: 28px;
}
/* The desk column must span the full row so the card inside has room to stick;
   collapsing it with align-items:start leaves the right side empty on scroll. */
.tourlux-deskcol { min-width: 0; }
.tourlux-main { min-width: 0; display: flex; flex-direction: column; gap: 56px; }
.tourlux-head h2,
.tourlux-about-copy h2 {
  margin: 10px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 600;
  line-height: 1.05;
  color: var(--tl-ink);
}
.tourlux-head h2 em,
.tourlux-about-copy h2 em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.tourlux-head--row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}

.tourlux-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: minmax(118px, 16vw);
  gap: 10px;
}
.tourlux-gallery--atlas {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(130px, 1fr) minmax(130px, 1fr) minmax(120px, 0.9fr);
  grid-auto-rows: minmax(120px, 14vw);
}
.tourlux-gallery--atlas .tourlux-shot--hero {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.tourlux-gallery--five {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: minmax(140px, 1fr) minmax(140px, 1fr);
}
.tourlux-gallery--five .tourlux-shot--hero {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.tourlux-gallery--four {
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: minmax(180px, 22vw);
}
.tourlux-gallery--four .tourlux-shot--hero {
  grid-column: auto;
  grid-row: auto;
}
.tourlux-shot {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  isolation: isolate;
}
.tourlux-shot--hero {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.tourlux-shot img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.tourlux-shot:hover img { transform: scale(1.12); }
.tourlux-shot-num {
  position: absolute;
  left: 12px; bottom: 12px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 14px;
  color: #f7e7bc;
  letter-spacing: 0.06em;
}

.tourlux-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.tourlux-fact,
.tourlux-place,
.tourlux-hi-card,
.tourlux-voice,
.tourlux-plus-card {
  position: relative;
  display: block;
  min-height: 210px;
  border-radius: 18px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  text-decoration: none;
}
.tourlux-fact-photo,
.tourlux-place-photo,
.tourlux-hi-photo,
.tourlux-voice-photo,
.tourlux-plus-photo {
  position: absolute; inset: 0;
}
.tourlux-fact-photo img,
.tourlux-place-photo img,
.tourlux-hi-photo img,
.tourlux-voice-photo img,
.tourlux-plus-photo img,
.tourlux-about-photo img,
.tourlux-desk-photo img,
.tourlux-day-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.tourlux-fact:hover img,
.tourlux-place:hover img,
.tourlux-hi-card:hover img,
.tourlux-voice:hover img,
.tourlux-plus-card:hover img,
.tourlux-about-photo:hover img,
.tourlux-day:hover img { transform: scale(1.1); }
.tourlux-fact-scrim,
.tourlux-place-scrim,
.tourlux-hi-scrim,
.tourlux-voice-scrim,
.tourlux-plus-scrim,
.tourlux-desk-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.08) 20%, rgba(8, 12, 26, 0.82) 100%);
}
.tourlux-num {
  position: absolute;
  top: 12px; left: 12px;
  z-index: 2;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: #f7e7bc;
}
.tourlux-seal {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 2;
  width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 11px;
}
.tourlux-fact-copy {
  position: absolute;
  left: 14px; right: 14px; bottom: 14px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tourlux-fact-copy em {
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.85);
}
.tourlux-fact-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.15;
}

.tourlux-about {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 28px;
  align-items: stretch;
}
.tourlux-about-copy p {
  margin: 0 0 14px;
  font-size: 16.5px;
  line-height: 1.8;
  color: rgba(18, 23, 43, 0.68);
}
.tourlux-about-photo {
  position: relative;
  min-height: 420px;
  border-radius: 24px;
  overflow: hidden;
}
.tourlux-about-stamp {
  position: absolute;
  right: 18px; bottom: 18px;
  width: 92px; height: 92px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.75);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #f7e7bc;
  background: rgba(8, 12, 26, 0.28);
  transform: rotate(-10deg);
}
.tourlux-about-stamp em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: normal;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}
.tourlux-about-stamp small {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.tourlux-places {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.tourlux-place { min-height: 280px; }
.tourlux-place--hero {
  grid-column: 1 / -1;
  min-height: 360px;
}
.tourlux-place-copy {
  position: absolute;
  left: 18px; right: 18px; bottom: 18px;
  z-index: 2;
}
.tourlux-place-copy h3 {
  margin: 0 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 28px;
  font-weight: 600;
  color: #fff;
}
.tourlux-place-copy p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.84);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tourlux-place-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.tourlux-hi {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.tourlux-hi-card { min-height: 200px; }
.tourlux-hi-card--hero {
  grid-column: 1 / 3;
  min-height: 280px;
}
.tourlux-hi-card strong {
  position: absolute;
  left: 14px; right: 14px; bottom: 14px;
  z-index: 2;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.15;
}

.tourlux-days {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.tourlux-day {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 0;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 146, 74, 0.22);
  border-radius: 20px;
  overflow: hidden;
}
.tourlux-day-photo {
  position: relative;
  min-height: 168px;
}
.tourlux-day-badge {
  position: absolute;
  left: 12px; bottom: 12px;
  padding: 5px 10px;
  border-radius: 999px;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.tourlux-day-copy { padding: 18px 20px 18px 18px; }
.tourlux-day-kicker {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.tourlux-day-copy h3 {
  margin: 4px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.15;
}
.tourlux-day-copy p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.7;
  color: rgba(18, 23, 43, 0.66);
}

.tourlux-incl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.tourlux-incl-card {
  padding: 22px 22px 16px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(184, 146, 74, 0.24);
  backdrop-filter: blur(14px);
}
.tourlux-incl-card--mute { background: rgba(18, 23, 43, 0.04); }
.tourlux-incl-card h3 {
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
}
.tourlux-incl-card h3 i { color: var(--tl-gold-2); font-size: 13px; }
.tourlux-incl-card ul { list-style: none; margin: 0; padding: 0; }
.tourlux-incl-card li {
  padding: 8px 0;
  border-top: 1px dashed rgba(184, 146, 74, 0.28);
  font-size: 14px;
  line-height: 1.5;
  color: rgba(18, 23, 43, 0.72);
}

.tourlux-desk {
  position: sticky;
  top: calc(var(--mast-offset, 180px) + 14px);
  max-height: calc(100svh - var(--mast-offset, 180px) - 30px);
  border-radius: 24px;
  overflow: hidden auto;
  background: rgba(255, 253, 248, 0.9);
  border: 1px solid rgba(184, 146, 74, 0.3);
  box-shadow: 0 32px 70px -36px rgba(18, 23, 43, 0.5);
  scrollbar-width: thin;
  scrollbar-color: rgba(184, 146, 74, 0.5) transparent;
}
.tourlux-desk::-webkit-scrollbar { width: 6px; }
.tourlux-desk::-webkit-scrollbar-thumb {
  border-radius: 6px;
  background: rgba(184, 146, 74, 0.45);
}
.tourlux-desk-photo {
  position: relative;
  min-height: 180px;
  padding: 18px 18px 16px;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 4px;
}
.tourlux-desk-photo img { position: absolute; inset: 0; }
.tourlux-desk-photo .tourlux-kicker,
.tourlux-desk-photo strong,
.tourlux-desk-photo em { position: relative; z-index: 1; }
.tourlux-desk-photo strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.05;
}
.tourlux-desk-photo em {
  font-family: 'Great Vibes', cursive;
  font-style: normal;
  font-size: 20px;
  color: #e0bd76;
}
.tourlux-desk-body { padding: 18px 18px 16px; display: flex; flex-direction: column; gap: 10px; }
.tourlux-desk-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.tourlux-desk-quote {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  line-height: 1.25;
  color: var(--tl-ink);
}
.tourlux-desk-fields { display: grid; gap: 0; }
.tourlux-desk-fields div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  border-top: 1px dashed rgba(184, 146, 74, 0.28);
  font-size: 13px;
}
.tourlux-desk-fields span { color: rgba(18, 23, 43, 0.5); }
.tourlux-desk-fields strong { font-weight: 700; }
.tourlux-quick {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(184, 146, 74, 0.2);
}
.tourlux-quick span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.tourlux-quick input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(184, 146, 74, 0.28);
  background: rgba(255, 255, 255, 0.75);
  font-size: 14px;
  color: var(--tl-ink);
}
.tourlux-quick input:focus {
  outline: none;
  border-color: var(--tl-gold-2);
}
.tourlux-fine {
  margin: 0;
  font-size: 11.5px;
  line-height: 1.5;
  text-align: center;
  color: rgba(18, 23, 43, 0.5);
}

.tourlux-voices,
.tourlux-related,
.tourlux-plus {
  padding: 64px 0 72px;
  background:
    radial-gradient(820px 380px at 100% 10%, rgba(26, 143, 124, 0.08), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 50%, #fffdf8 100%);
}
.tourlux-related { padding-top: 24px; }
.tourlux-stars {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 8px 0 0;
  color: var(--tl-gold-2);
}
.tourlux-stars em {
  font-style: normal;
  font-size: 13px;
  font-weight: 600;
  color: rgba(18, 23, 43, 0.55);
}
.tourlux-voice-grid,
.tourlux-plus-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.tourlux-plus-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tourlux-voice { min-height: 320px; }
.tourlux-voice blockquote {
  position: absolute;
  left: 16px; right: 16px; bottom: 16px;
  z-index: 2;
  margin: 0;
}
.tourlux-voice p {
  margin: 0 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  line-height: 1.25;
  color: #fff;
}
.tourlux-voice cite {
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.tourlux-plus-card { min-height: 240px; }
.tourlux-plus-card strong,
.tourlux-plus-card em {
  position: relative;
  z-index: 2;
}
.tourlux-plus-card strong {
  position: absolute;
  left: 14px; right: 14px; bottom: 34px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  font-weight: 600;
}
.tourlux-plus-card em {
  position: absolute;
  left: 14px; right: 14px; bottom: 14px;
  font-style: normal;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.82);
}

.tourlux-related-nav {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tourlux-related-nav button {
  width: 42px; height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(184, 146, 74, 0.35);
  background: rgba(255, 255, 255, 0.7);
  color: var(--tl-gold-2);
  cursor: pointer;
}
.tourlux-related-nav .tourlux-ghost { color: var(--tl-ink); background: rgba(255,255,255,0.7); }

.tourlux-modal .pd-modal {
  background: #fffdf8;
  border: 1px solid rgba(184, 146, 74, 0.28);
  border-radius: 24px;
}
.tourlux-modal .pd-modal-head h3 {
  font-family: 'Cormorant Garamond', var(--serif);
  font-weight: 600;
}
.tourlux-lb { background: rgba(12, 16, 30, 0.92); }
.tourlux-lb .pd-lb-btn {
  border-color: rgba(240, 215, 140, 0.4);
  color: #f7e7bc;
}

.tourlux-block.js-on:not(.is-in) {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.tourlux-block.is-in {
  opacity: 1;
  animation: tlRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes tlRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 1100px) {
  .tourlux-shell { grid-template-columns: 1fr; }
  .tourlux-desk { position: static; max-height: none; overflow: hidden; }
  .tourlux-facts { grid-template-columns: 1fr 1fr; }
  .tourlux-hi { grid-template-columns: 1fr 1fr; }
  .tourlux-hi-card--hero { grid-column: 1 / -1; }
  .tourlux-about { grid-template-columns: 1fr; }
  .tourlux-about-photo { min-height: 280px; }
  .tourlux-plus-grid { grid-template-columns: 1fr 1fr; }
  .tourlux-stamp { display: none; }
  .tourlux-hero-inner { max-width: 100%; }
}
@media (max-width: 720px) {
  .tourlux-hero { min-height: 78svh; padding: 28px 0 36px; }
  .tourlux-title { font-size: clamp(40px, 12vw, 56px); }
  .tourlux-gallery,
  .tourlux-gallery--atlas,
  .tourlux-gallery--five,
  .tourlux-gallery--four {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
    grid-auto-rows: 140px;
  }
  .tourlux-gallery--atlas .tourlux-shot--hero,
  .tourlux-gallery--five .tourlux-shot--hero {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 200px;
  }
  .tourlux-facts,
  .tourlux-places,
  .tourlux-incl,
  .tourlux-voice-grid,
  .tourlux-plus-grid,
  .tourlux-hi { grid-template-columns: 1fr; }
  .tourlux-place--hero,
  .tourlux-hi-card--hero { grid-column: auto; min-height: 240px; }
  .tourlux-day { grid-template-columns: 1fr; }
  .tourlux-day-photo { min-height: 180px; }
  .tourlux-head--row { flex-direction: column; align-items: flex-start; }
  .tourlux-hero-plane { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tourlux-hero-bg img,
  .tourlux-hero-route path,
  .tourlux-hero-plane,
  .tourlux-block { animation: none !important; transform: none !important; opacity: 1 !important; }
}

/* =============== HOME ATLAS RAILS (ULTRA LUXURY) =============== */
.atlaslux {
  --ax-gold: #c9a24a;
  --ax-gold-2: #b8924a;
  --ax-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(64px, 7vw, 96px);
  color: var(--ax-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(26, 143, 124, 0.09), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.atlaslux + .atlaslux { padding-top: 28px; }
.atlaslux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.atlaslux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.45;
}
.atlaslux-aurora.a {
  width: 38vw; height: 38vw; left: -12vw; top: -16vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.42), transparent 70%);
}
.atlaslux-aurora.b {
  width: 42vw; height: 42vw; right: -14vw; bottom: -18vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.24), transparent 70%);
}
.atlaslux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 40%, #000 0%, transparent 72%);
}
.atlaslux-route {
  position: absolute; left: 0; right: 0; top: 8%;
  width: 100%; height: 28%; overflow: visible;
}
.atlaslux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.atlaslux.is-in .atlaslux-route path { animation: axDash 42s linear infinite; }
@keyframes axDash { to { stroke-dashoffset: -640; } }
.atlaslux-plane {
  position: absolute;
  top: 10%; left: -4%;
  color: #b8924a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.35));
  opacity: 0;
}
.atlaslux.is-in .atlaslux-plane { animation: axFly 22s linear infinite; }
@keyframes axFly {
  0% { transform: translate3d(0, 14px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.9; }
  50% { transform: translate3d(48vw, -8px, 0) rotate(10deg); opacity: 1; }
  92% { opacity: 0.8; }
  100% { transform: translate3d(108vw, -28px, 0) rotate(14deg); opacity: 0; }
}

.atlaslux-inner { position: relative; z-index: 1; }
.atlaslux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 18px;
}
.atlaslux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(12px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.atlaslux-kicker i { color: var(--ax-gold-2); }
.atlaslux-title {
  margin: 12px 0 4px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 600;
  line-height: 1.02;
  color: var(--ax-ink);
}
.atlaslux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.atlaslux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: 28px;
  color: #b8924a;
}
.atlaslux-lead {
  margin: 0 0 8px;
  max-width: 420px;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(18, 23, 43, 0.62);
  text-align: right;
}
.atlaslux-count {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8a6a2c;
  text-align: right;
}
.atlaslux-itin {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0 0 22px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.48);
}
.atlaslux-itin i {
  font-size: 9px;
  color: var(--ax-gold-2);
  transform: rotate(45deg);
}
.atlaslux-itin span {
  padding-bottom: 3px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.4);
}

.atlaslux-carousel { position: relative; }
.atlaslux-view {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  margin: 0 -8px;
  padding: 8px;
}
.atlaslux-view::-webkit-scrollbar { display: none; }
.atlaslux-track {
  display: flex;
  gap: 14px;
  width: max-content;
}
.atlaslux-card {
  position: relative;
  flex: 0 0 min(320px, 78vw);
  width: min(320px, 78vw);
  height: 460px;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  text-decoration: none;
  scroll-snap-align: start;
  box-shadow: 0 24px 48px -28px rgba(18, 23, 43, 0.55);
  transition: transform 0.4s ease;
}
.atlaslux-card--hero {
  flex-basis: min(520px, 86vw);
  width: min(520px, 86vw);
}
.atlaslux-card:hover { transform: translateY(-6px); }
.atlaslux-photo { position: absolute; inset: 0; }
.atlaslux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.05);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.atlaslux-card:hover .atlaslux-photo img { transform: scale(1.12); }
.atlaslux-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.08) 18%, rgba(8, 12, 26, 0.82) 100%);
}
.atlaslux-num {
  position: absolute;
  top: 14px; left: 14px;
  z-index: 2;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 14px;
  letter-spacing: 0.06em;
  color: #f7e7bc;
}
.atlaslux-stamp {
  position: absolute;
  top: 14px; right: 14px;
  z-index: 2;
  width: 72px; height: 72px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: #f7e7bc;
  transform: rotate(-12deg);
  background: rgba(8, 12, 26, 0.2);
}
.atlaslux-stamp i { font-size: 11px; }
.atlaslux-stamp em {
  font-style: normal;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.atlaslux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 13px;
  font-weight: 700;
}
.atlaslux-meta {
  position: absolute;
  left: 16px; right: 16px; bottom: 16px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.atlaslux-meta em {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(247, 231, 188, 0.9);
}
.atlaslux-meta strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.08;
}
.atlaslux-card--hero .atlaslux-meta strong { font-size: 36px; }
.atlaslux-line {
  font-size: 13.5px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.82);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.atlaslux-dur {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-top: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #f7e7bc;
}
.atlaslux-dur .fa-arrow-right {
  margin-left: auto;
  color: #e0bd76;
  transition: transform 0.35s ease;
}
.atlaslux-card:hover .atlaslux-dur .fa-arrow-right { transform: translateX(4px); }

.atlaslux-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 46px; height: 46px;
  margin-top: -23px;
  border-radius: 50%;
  border: 1px solid rgba(184, 146, 74, 0.4);
  background: rgba(255, 253, 248, 0.92);
  color: var(--ax-gold-2);
  cursor: pointer;
  box-shadow: 0 12px 28px -16px rgba(18, 23, 43, 0.5);
  transition: transform 0.35s ease;
}
.atlaslux-nav:hover { transform: scale(1.06); }
.atlaslux-nav--prev { left: -8px; }
.atlaslux-nav--next { right: -8px; }

.atlaslux-progress {
  height: 3px;
  margin: 16px 2px 0;
  border-radius: 99px;
  background: rgba(184, 146, 74, 0.18);
  overflow: hidden;
}
.atlaslux-progress i {
  display: block;
  height: 100%;
  width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #c9a24a, #f4dfa4);
  transform-origin: left center;
  transform: scaleX(0.12);
}

.atlaslux-all {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  padding: 14px 16px;
  border-radius: 18px;
  text-decoration: none;
  color: var(--ax-ink);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 146, 74, 0.24);
  transition: transform 0.35s ease, background 0.35s ease;
}
.atlaslux-all:hover { transform: translateY(-2px); background: rgba(255, 255, 255, 0.88); }
.atlaslux-all-seal {
  width: 42px; height: 42px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  flex-shrink: 0;
}
.atlaslux-all-copy { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.atlaslux-all-copy span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.atlaslux-all-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
}
.atlaslux-all-copy em {
  font-style: normal;
  font-size: 12.5px;
  color: rgba(18, 23, 43, 0.55);
}
.atlaslux-all > .fa-arrow-right { margin-left: auto; color: var(--ax-gold-2); }

.atlaslux.js-on:not(.is-in) .atlaslux-head,
.atlaslux.js-on:not(.is-in) .atlaslux-itin,
.atlaslux.js-on:not(.is-in) .atlaslux-carousel,
.atlaslux.js-on:not(.is-in) .atlaslux-all {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.atlaslux.is-in .atlaslux-head,
.atlaslux.is-in .atlaslux-itin,
.atlaslux.is-in .atlaslux-carousel,
.atlaslux.is-in .atlaslux-all {
  opacity: 1;
  animation: axRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.atlaslux.is-in .atlaslux-itin { animation-delay: 0.08s; }
.atlaslux.is-in .atlaslux-carousel { animation-delay: 0.14s; }
.atlaslux.is-in .atlaslux-all { animation-delay: 0.22s; }
@keyframes axRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 900px) {
  .atlaslux-head { flex-direction: column; align-items: flex-start; }
  .atlaslux-lead, .atlaslux-count { text-align: left; }
  .atlaslux-nav--prev { left: 0; }
  .atlaslux-nav--next { right: 0; }
  .atlaslux-card, .atlaslux-card--hero {
    height: 420px;
    flex-basis: min(300px, 82vw);
    width: min(300px, 82vw);
  }
}
@media (max-width: 640px) {
  .atlaslux { padding: 52px 0 48px; }
  .atlaslux-plane { display: none; }
  .atlaslux-stamp { display: none; }
  .atlaslux-all-copy em { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .atlaslux-head,
  .atlaslux-itin,
  .atlaslux-carousel,
  .atlaslux-all { opacity: 1 !important; transform: none !important; animation: none !important; }
  .atlaslux-route path,
  .atlaslux-plane { animation: none !important; }
}

/* =============== LUXURY CURSOR =============== */
html.has-luxcur,
html.has-luxcur * { cursor: auto; }
.luxcur { display: none !important; }
html.has-luxcur input,
html.has-luxcur textarea,
html.has-luxcur select,
html.has-luxcur [contenteditable="true"] { cursor: text !important; }

.luxcur {
  position: fixed;
  inset: 0;
  z-index: 10050;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s ease;
}
.luxcur.is-on { opacity: 1; }
.luxcur-follow {
  position: absolute;
  left: 0; top: 0;
  width: 0; height: 0;
  will-change: transform;
}
.luxcur-aura {
  position: absolute;
  left: 0; top: 0;
  width: 42px; height: 42px;
  margin: -21px 0 0 -21px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.55) 0%, rgba(201, 162, 74, 0.16) 42%, transparent 72%);
  box-shadow: 0 0 28px rgba(201, 162, 74, 0.35);
}
.luxcur-ring {
  position: absolute;
  left: 0; top: 0;
  width: 52px; height: 52px;
  margin: -26px 0 0 -26px;
  border-radius: 50%;
  border: 1.6px dashed rgba(201, 162, 74, 0.92);
  background:
    radial-gradient(circle at 50% 42%, rgba(253, 243, 216, 0.42), rgba(201, 162, 74, 0.12) 58%, transparent 70%);
  animation: luxcurSpin 18s linear infinite;
}
@keyframes luxcurSpin { to { transform: rotate(360deg); } }
.luxcur-core {
  position: absolute;
  left: 0; top: 0;
  width: 13px; height: 13px;
  margin: -6.5px 0 0 -6.5px;
  border-radius: 50%;
  background: linear-gradient(180deg, #fff6d8, #c9a24a 58%, #8a6a2c);
  box-shadow:
    0 0 0 3px rgba(253, 243, 216, 0.55),
    0 0 18px rgba(201, 162, 74, 0.9);
}
.luxcur-disc {
  position: absolute;
  left: 0; top: 0;
  width: 92px; height: 92px;
  margin: -46px 0 0 -46px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.55), transparent 42%),
    linear-gradient(180deg, #fdf3d8, #d9b56b 62%, #b8924a);
  border: 1.5px solid rgba(255, 247, 220, 0.7);
  box-shadow:
    0 18px 40px -18px rgba(18, 23, 43, 0.55),
    0 0 0 6px rgba(201, 162, 74, 0.12);
  color: #2a1e06;
  opacity: 0;
  transform: scale(0.42);
  transition: opacity 0.28s ease, transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.luxcur-disc i { font-size: 13px; transform: rotate(-18deg); }
.luxcur-disc em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: normal;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.luxcur.is-hover .luxcur-disc {
  opacity: 1;
  transform: scale(1);
}
.luxcur.is-hover .luxcur-core,
.luxcur.is-hover .luxcur-ring,
.luxcur.is-hover .luxcur-aura { opacity: 0; transition: opacity 0.2s ease; }
.luxcur.is-click .luxcur-core {
  transform: scale(0.72);
  transition: transform 0.16s ease;
}
.luxcur.is-click .luxcur-disc { transform: scale(0.88); }
.luxcur.is-type { opacity: 0; }
.luxcur.is-type .luxcur-disc,
.luxcur.is-type .luxcur-ring,
.luxcur.is-type .luxcur-aura,
.luxcur.is-type .luxcur-trail { opacity: 0; visibility: hidden; }

.luxcur-trail i {
  position: fixed;
  left: 0; top: 0;
  width: 10px; height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fdf3d8, #c9a24a);
  box-shadow: 0 0 10px rgba(201, 162, 74, 0.7);
  pointer-events: none;
  will-change: transform;
  opacity: 0.55;
}
.luxcur-trail i:nth-child(2) { width: 9px; height: 9px; opacity: 0.46; }
.luxcur-trail i:nth-child(3) { width: 8px; height: 8px; opacity: 0.38; }
.luxcur-trail i:nth-child(4) { width: 7px; height: 7px; opacity: 0.3; }
.luxcur-trail i:nth-child(5) { width: 6px; height: 6px; opacity: 0.22; }
.luxcur-trail i:nth-child(6) { width: 5px; height: 5px; opacity: 0.16; }
.luxcur.is-hover .luxcur-trail { opacity: 0.35; }

@media (hover: none), (pointer: coarse) {
  .luxcur { display: none !important; }
  html.has-luxcur,
  html.has-luxcur * { cursor: auto !important; }
}
@media (prefers-reduced-motion: reduce) {
  .luxcur-ring { animation: none; }
  .luxcur-trail { display: none; }
}

/* =============== INNER PAGE HERO (ULTRA LUXURY) =============== */
.page-hero.herolux {
  --hl-gold: #c9a24a;
  --hl-gold-2: #b8924a;
  min-height: 52vh;
  padding: 118px 0 72px;
  display: flex;
  align-items: flex-end;
  color: #fff;
}
.herolux-bg img {
  transform: none;
  animation: heroluxKen 28s ease-out forwards;
  filter: none;
}
@keyframes heroluxKen {
  from { transform: scale(1.03); }
  to { transform: scale(1.0); }
}
.herolux .page-hero-bg::before,
.herolux .page-hero-bg::after { display: none; }
.herolux-scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(8, 12, 26, 0.28) 0%, rgba(8, 12, 26, 0.18) 38%, rgba(8, 12, 26, 0.78) 100%),
    radial-gradient(80% 70% at 50% 100%, rgba(8, 12, 26, 0.55), transparent 70%);
  pointer-events: none;
  z-index: 1;
}
.herolux-grain {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0.05;
  mix-blend-mode: overlay;
}
.herolux-route {
  position: absolute;
  left: 0; right: 0; top: 18%;
  width: 100%;
  height: 34%;
  z-index: 2;
  pointer-events: none;
  overflow: visible;
}
.herolux-route path {
  fill: none;
  stroke: rgba(240, 215, 140, 0.55);
  stroke-width: 1.6;
  stroke-dasharray: 7 11;
  animation: heroluxDash 36s linear infinite;
}
@keyframes heroluxDash { to { stroke-dashoffset: -560; } }
.herolux-plane {
  position: absolute;
  top: 22%;
  left: -4%;
  z-index: 3;
  color: #e0bd76;
  font-size: 15px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.45));
  animation: heroluxFly 20s linear infinite;
  pointer-events: none;
}
@keyframes heroluxFly {
  0% { transform: translate3d(0, 12px, 0) rotate(16deg); opacity: 0; }
  8% { opacity: 0.95; }
  92% { opacity: 0.85; }
  100% { transform: translate3d(108vw, -22px, 0) rotate(12deg); opacity: 0; }
}
.herolux-stamp {
  position: absolute;
  right: clamp(24px, 6vw, 72px);
  top: 38%;
  z-index: 3;
  width: 96px; height: 96px;
  border-radius: 50%;
  border: 2px dashed rgba(240, 215, 140, 0.72);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: rgba(247, 231, 188, 0.95);
  transform: rotate(-16deg);
  pointer-events: none;
}
.herolux-stamp i { font-size: 14px; }
.herolux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.herolux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 700;
}
.herolux-inner {
  position: relative;
  z-index: 4;
  text-align: left;
  max-width: 920px;
  margin: 0;
  padding-bottom: 8px;
}
.herolux-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(247, 231, 188, 0.78);
}
.herolux-crumbs a {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
}
.herolux-crumbs a:hover { color: #fdf3d8; }
.herolux-crumbs i {
  font-size: 9px;
  color: var(--hl-gold-2);
  transform: rotate(45deg);
}
.herolux-kicker {
  display: inline-flex;
  align-items: center;
  margin: 0 0 14px;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid rgba(240, 215, 140, 0.38);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.herolux .page-hero-title,
.herolux-title {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(46px, 6.4vw, 92px);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 0.98;
  color: #fff;
  -webkit-text-stroke: 0;
  text-shadow: 0 12px 36px rgba(0, 0, 0, 0.45);
}
.herolux-title em,
.herolux .page-hero-title em {
  font-style: italic;
  background: linear-gradient(100deg, #fdf3d8 0%, #e0bd76 42%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 18px rgba(184, 146, 74, 0.35));
}
.herolux-script {
  margin: 10px 0 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 2.6vw, 38px);
  color: #e0bd76;
}
.herolux .page-hero-sub,
.herolux-lead {
  max-width: 58ch;
  margin: 16px 0 0;
  font-size: 16.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
.herolux-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
.herolux-chips span {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.12);
  border: 1px solid rgba(240, 215, 140, 0.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fdf3d8;
}
.herolux.js-on:not(.is-in) .herolux-inner,
.herolux.js-on:not(.is-in) .herolux-stamp {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
}
.herolux.is-in .herolux-inner {
  animation: heroluxRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.herolux.is-in .herolux-stamp {
  animation: heroluxStamp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}
@keyframes heroluxRise {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes heroluxStamp {
  from { opacity: 0; transform: rotate(-28deg) scale(0.72); }
  to { opacity: 1; transform: rotate(-16deg) scale(1); }
}
@media (max-width: 860px) {
  .page-hero.herolux { min-height: 42vh; padding: 104px 0 48px; }
  .herolux-stamp { display: none; }
  .herolux-plane { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .herolux-bg img,
  .herolux-route path,
  .herolux-plane,
  .herolux-inner,
  .herolux-stamp { animation: none !important; opacity: 1 !important; transform: none !important; }
}

/* =============== CATEGORY ATLAS (ULTRA LUXURY) =============== */
.catlux {
  --cl-gold: #c9a24a;
  --cl-gold-2: #b8924a;
  --cl-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(64px, 7vw, 108px) 0 clamp(72px, 8vw, 120px);
  color: var(--cl-ink);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.14), transparent 58%),
    radial-gradient(820px 380px at 100% 18%, rgba(26, 143, 124, 0.08), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 48%, #fffdf8 100%);
}
.catlux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.catlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.48;
}
.catlux-aurora.a {
  width: 38vw; height: 38vw; left: -12vw; top: -14vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.4), transparent 70%);
}
.catlux-aurora.b {
  width: 42vw; height: 42vw; right: -14vw; bottom: -16vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.22), transparent 70%);
}
.catlux-mesh {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.03) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(110% 80% at 50% 30%, #000 0%, transparent 72%);
  mask-image: radial-gradient(110% 80% at 50% 30%, #000 0%, transparent 72%);
}
.catlux-route {
  position: absolute; left: 0; right: 0; top: 4%;
  width: 100%; height: 22%;
}
.catlux-route path {
  fill: none;
  stroke: rgba(184, 146, 74, 0.4);
  stroke-width: 1.5;
  stroke-dasharray: 7 10;
}
.catlux.is-in .catlux-route path { animation: heroluxDash 42s linear infinite; }
.catlux-plane {
  position: absolute;
  top: 6%;
  left: -4%;
  color: #b8924a;
  font-size: 15px;
  opacity: 0;
}
.catlux.is-in .catlux-plane { animation: heroluxFly 22s linear infinite; }
.catlux-inner { position: relative; z-index: 1; }
.catlux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 16px;
}
.catlux-head--tight { margin-top: 72px; }
.catlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.catlux-kicker i { color: var(--cl-gold-2); }
.catlux-title {
  margin: 16px 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(36px, 4.6vw, 64px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.02em;
}
.catlux-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.catlux-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(24px, 2.2vw, 32px);
  color: var(--cl-gold-2);
}
.catlux-lead {
  margin: 0;
  max-width: 38ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.62);
}
.catlux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 28px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.catlux-itin i {
  font-size: 10px;
  color: var(--cl-gold-2);
  transform: rotate(45deg);
}
.catlux-itin span {
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.45);
}
.catlux-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 32px;
  padding: 8px;
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 146, 74, 0.28);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.catlux-filter button {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(18, 23, 43, 0.62);
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
}
.catlux-filter button.is-active {
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
  box-shadow: 0 12px 24px -16px rgba(18, 23, 43, 0.7);
}
.catlux-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.catlux-cell { min-width: 0; display: flex; }
.catlux-cell > * { width: 100%; }
.catlux-empty {
  text-align: center;
  padding: 48px 20px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  color: rgba(18, 23, 43, 0.5);
}
.catlux-all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--cl-ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.catlux-all i { color: var(--cl-gold-2); transition: transform 0.3s ease; }
.catlux-all:hover i { transform: translateX(4px); }
.catlux-mosaic {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: 220px 220px;
  gap: 14px;
}
.catlux-shot {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 22px;
  color: #fff;
  text-decoration: none;
  min-height: 220px;
  box-shadow: 0 24px 48px -32px rgba(18, 23, 43, 0.55);
}
.catlux-shot--hero {
  grid-row: 1 / span 2;
  min-height: 454px;
}
.catlux-shot img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.catlux-shot:hover img { transform: scale(1.12); }
.catlux-shot-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.12), rgba(8, 12, 26, 0.72));
}
.catlux-num {
  position: absolute;
  top: 14px; left: 14px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  color: #f7e7bc;
}
.catlux-shot-meta {
  position: absolute;
  left: 16px; right: 16px; bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.catlux-shot-meta em {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(247, 231, 188, 0.9);
}
.catlux-shot-meta strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.08;
}
.catlux-shot--hero .catlux-shot-meta strong { font-size: 36px; }
.catlux-shot-meta span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.82);
}
.catlux-cabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.catlux-cab {
  border-radius: 22px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(184, 146, 74, 0.26);
  box-shadow: 0 24px 48px -34px rgba(18, 23, 43, 0.45);
}
.catlux-cab-photo {
  aspect-ratio: 16/10;
  overflow: hidden;
}
.catlux-cab-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.catlux-cab:hover .catlux-cab-photo img { transform: scale(1.08); }
.catlux-cab-body { padding: 18px 18px 20px; }
.catlux-cab-body h3 {
  margin: 0 0 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 26px;
  font-weight: 600;
}
.catlux-cab-body p {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(18, 23, 43, 0.62);
}
.catlux-cab-meta {
  display: flex;
  gap: 14px;
  margin-top: 12px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(18, 23, 43, 0.55);
}
.catlux-cab-meta i { color: var(--cl-gold-2); margin-right: 4px; }
.catlux-cab-go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cl-ink);
}
.catlux-cab-go i { color: var(--cl-gold-2); }
.catlux-desk {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 28px;
  margin-top: 72px;
  padding: 28px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 146, 74, 0.26);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.catlux-bullets {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.catlux-bullets li {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 14.5px;
}
.catlux-bullets span {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  color: var(--cl-gold-2);
}
.catlux.js-on:not(.is-in) .catlux-head,
.catlux.js-on:not(.is-in) .catlux-itin,
.catlux.js-on:not(.is-in) .catlux-filter,
.catlux.js-on:not(.is-in) .catlux-grid,
.catlux.js-on:not(.is-in) .catlux-spot,
.catlux.js-on:not(.is-in) .catlux-fleet,
.catlux.js-on:not(.is-in) .catlux-desk {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}
.catlux.is-in .catlux-head,
.catlux.is-in .catlux-itin,
.catlux.is-in .catlux-filter,
.catlux.is-in .catlux-grid,
.catlux.is-in .catlux-spot,
.catlux.is-in .catlux-fleet,
.catlux.is-in .catlux-desk {
  animation: heroluxRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.catlux.is-in .catlux-itin { animation-delay: 0.06s; }
.catlux.is-in .catlux-filter { animation-delay: 0.1s; }
.catlux.is-in .catlux-grid { animation-delay: 0.16s; }
@media (max-width: 1040px) {
  .catlux-head { flex-direction: column; align-items: flex-start; }
  .catlux-grid,
  .catlux-cabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catlux-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .catlux-shot--hero { grid-row: auto; min-height: 280px; }
  .catlux-desk { grid-template-columns: 1fr; }
  .catlux-plane { display: none; }
}
@media (max-width: 720px) {
  .catlux-grid,
  .catlux-cabs,
  .catlux-mosaic { grid-template-columns: 1fr; }
  .catlux-filter { border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .catlux-head,
  .catlux-itin,
  .catlux-filter,
  .catlux-grid,
  .catlux-spot,
  .catlux-fleet,
  .catlux-desk { opacity: 1 !important; transform: none !important; animation: none !important; }
  .catlux-route path,
  .catlux-plane { animation: none !important; }
}

/* =============== HOME TRAVEL SKY FLEET =============== */
.travsky {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}
.hero.hero--cine > .travsky { z-index: 4; }
.voyalux > .travsky { z-index: 4; }
.page-home .cine-dust {
  display: block;
  z-index: 4;
  pointer-events: none;
}
.newsletter-band .travsky { z-index: 1; }
.newsletter-inner { position: relative; z-index: 2; }
.travsky-a,
.travsky-b {
  position: absolute;
  color: #c9a24a;
  font-size: 16px;
  filter: drop-shadow(0 10px 16px rgba(184, 146, 74, 0.42));
  opacity: 0;
}
.travsky-a .svg-plane,
.travsky-b .svg-plane { width: 48px; }
.travsky.is-live .travsky-a,
.travsky.is-live .travsky-b { will-change: transform; }
.travsky:not(.is-live) .travsky-a,
.travsky:not(.is-live) .travsky-b,
.travsky:not(.is-live) .travsky-dust i {
  animation-play-state: paused !important;
  opacity: 0 !important;
}
.travsky-b { font-size: 13px; color: #b8924a; }
.travsky-dust i {
  position: absolute;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fdf3d8 0%, #c9a24a 70%, transparent 100%);
  opacity: 0;
}

@keyframes skyLTR {
  0% { transform: translate3d(-8vw, 18px, 0) rotate(14deg); opacity: 0; }
  8% { opacity: 0.95; }
  50% { transform: translate3d(48vw, -22px, 0) rotate(8deg); opacity: 1; }
  92% { opacity: 0.85; }
  100% { transform: translate3d(108vw, -40px, 0) rotate(12deg); opacity: 0; }
}
@keyframes skyRTL {
  0% { transform: translate3d(108vw, -10px, 0) rotate(-16deg) scaleX(-1); opacity: 0; }
  10% { opacity: 0.9; }
  50% { transform: translate3d(46vw, 28px, 0) rotate(-10deg) scaleX(-1); opacity: 1; }
  100% { transform: translate3d(-10vw, 8px, 0) rotate(-14deg) scaleX(-1); opacity: 0; }
}
@keyframes skyDiag {
  0% { transform: translate3d(-6vw, 42vh, 0) rotate(-28deg); opacity: 0; }
  12% { opacity: 0.95; }
  100% { transform: translate3d(72vw, -8vh, 0) rotate(-12deg); opacity: 0; }
}
@keyframes skyRise {
  0% { transform: translate3d(12vw, 78%, 0) scale(0.7); opacity: 0; }
  12% { opacity: 0.9; }
  100% { transform: translate3d(58vw, -12%, 0) scale(1.05); opacity: 0; }
}
@keyframes skyWave {
  0% { transform: translate3d(-8vw, 8px, 0) rotate(-6deg); opacity: 0; }
  10% { opacity: 0.95; }
  25% { transform: translate3d(22vw, -10px, 0) rotate(7deg); }
  50% { transform: translate3d(48vw, 12px, 0) rotate(-5deg); opacity: 1; }
  75% { transform: translate3d(74vw, -8px, 0) rotate(6deg); }
  100% { transform: translate3d(108vw, 6px, 0) rotate(-4deg); opacity: 0; }
}
@keyframes skyTrain {
  0% { transform: translate3d(-12vw, 0, 0); opacity: 0; }
  8% { opacity: 1; }
  20% { transform: translate3d(16vw, 2px, 0); }
  40% { transform: translate3d(38vw, -2px, 0); }
  60% { transform: translate3d(62vw, 2px, 0); }
  80% { transform: translate3d(84vw, -1px, 0); }
  100% { transform: translate3d(112vw, 0, 0); opacity: 0; }
}
@keyframes skyHeli {
  0% { transform: translate3d(8vw, 12px, 0); opacity: 0; }
  12% { opacity: 1; transform: translate3d(14vw, -6px, 0); }
  38% { transform: translate3d(18vw, 8px, 0); }
  52% { transform: translate3d(42vw, -18px, 0) rotate(8deg); }
  100% { transform: translate3d(110vw, -36px, 0) rotate(16deg); opacity: 0; }
}
@keyframes skyOrbit {
  0% { transform: rotate(0deg) translateX(42px) rotate(0deg); opacity: 0; }
  8% { opacity: 0.9; }
  100% { transform: rotate(360deg) translateX(42px) rotate(-360deg); opacity: 0.9; }
}
@keyframes skyFlutter {
  0% { transform: translate3d(-6vw, 20px, 0) rotate(-18deg); opacity: 0; }
  10% { opacity: 0.95; }
  25% { transform: translate3d(18vw, -8px, 0) rotate(12deg); }
  50% { transform: translate3d(44vw, 16px, 0) rotate(-14deg); }
  75% { transform: translate3d(72vw, -12px, 0) rotate(10deg); }
  100% { transform: translate3d(108vw, 8px, 0) rotate(-8deg); opacity: 0; }
}
@keyframes skyBob {
  0%, 100% { transform: translate3d(0, 0, 0); opacity: 0.85; }
  50% { transform: translate3d(10px, -16px, 0); opacity: 1; }
}
@keyframes skyPinHop {
  0% { transform: translate3d(10vw, 8px, 0) scale(0.8); opacity: 0; }
  15% { opacity: 1; transform: translate3d(18vw, -18px, 0) scale(1); }
  30% { transform: translate3d(18vw, 4px, 0) scale(0.92); }
  48% { transform: translate3d(46vw, -22px, 0) scale(1); }
  62% { transform: translate3d(46vw, 6px, 0); }
  80% { transform: translate3d(78vw, -16px, 0); }
  100% { transform: translate3d(96vw, 10px, 0); opacity: 0; }
}
@keyframes skyMote {
  0% { transform: translate3d(0, 20px, 0) scale(0.4); opacity: 0; }
  12% { opacity: 0.7; }
  100% { transform: translate3d(28px, -120px, 0) scale(1); opacity: 0; }
}
@keyframes skySpinSlow { to { transform: rotate(360deg); } }

.travsky--hero .travsky-a { top: 18%; left: 0; animation: skyLTR 17s linear infinite; }
.travsky--hero .travsky-b { top: 58%; left: 0; animation: skyRTL 23s linear infinite 3s; }
.travsky--jet .travsky-a { top: 12%; left: 0; animation: skyLTR 19s linear infinite; }
.travsky--jet .travsky-b { top: 62%; left: 0; animation: skyRTL 27s linear infinite 5s; }
.travsky--crossjet .travsky-a { top: 16%; left: 0; animation: skyLTR 15s linear infinite; }
.travsky--crossjet .travsky-b { top: 48%; left: 0; animation: skyRTL 21s linear infinite 2.4s; }
.travsky--balloon .travsky-a { left: 0; animation: skyRise 28s ease-in infinite; font-size: 22px; }
.travsky--balloon .travsky-b { left: 0; animation: skyRise 34s ease-in infinite 8s; }
.travsky--train .travsky-a { top: 28%; left: 0; animation: skyTrain 18s linear infinite; }
.travsky--train .travsky-b { top: 58%; left: 0; animation: skyFlutter 22s linear infinite 4s; }
.travsky--car .travsky-a { top: 70%; left: 0; animation: skyTrain 16s linear infinite; }
.travsky--car .travsky-b { top: 22%; left: 0; animation: skyPinHop 20s ease-in-out infinite 2s; }
.travsky--ship .travsky-a { top: 64%; left: 0; animation: skyWave 24s linear infinite; font-size: 18px; }
.travsky--ship .travsky-b { top: 18%; left: 72%; animation: skyBob 5.5s ease-in-out infinite; opacity: 0.7; }
.travsky--heli .travsky-a { top: 14%; left: 0; animation: skyHeli 20s linear infinite; }
.travsky--heli .travsky-b { top: 44%; left: 0; animation: skyPinHop 18s ease-in-out infinite 3s; }
.travsky--shuttle .travsky-a { top: 68%; left: 0; animation: skyTrain 17s linear infinite; }
.travsky--shuttle .travsky-b { top: 20%; left: 0; animation: skyLTR 22s linear infinite 4s; }
.travsky--beach .travsky-a { top: 22%; left: 12%; animation: skyBob 6s ease-in-out infinite; opacity: 0.85; }
.travsky--beach .travsky-b { top: 18%; left: 0; animation: skyLTR 26s linear infinite 2s; }
.travsky--ticket .travsky-a { top: 20%; left: 0; animation: skyFlutter 16s linear infinite; }
.travsky--ticket .travsky-b { top: 56%; left: 0; animation: skyFlutter 21s linear infinite 5s; }
.travsky--paper .travsky-a { top: 16%; left: 0; animation: skyDiag 14s linear infinite; }
.travsky--paper .travsky-b { top: 50%; left: 0; animation: skyRTL 19s linear infinite 3s; }
.travsky--compass .travsky-a { top: 16%; right: 8%; animation: skyBob 7s ease-in-out infinite; opacity: 0.9; }
.travsky--compass .travsky-a i { display: inline-block; animation: skySpinSlow 10s linear infinite; }
.travsky--compass .travsky-b { top: 28%; left: 0; animation: skyPinHop 18s ease-in-out infinite; }
.travsky--cloud .travsky-a { top: 14%; left: 0; animation: skyLTR 32s linear infinite; font-size: 22px; opacity: 0.55; }
.travsky--cloud .travsky-b { top: 36%; left: 0; animation: skyLTR 20s linear infinite 6s; }
.travsky--dove .travsky-a { top: 18%; left: 0; animation: skyFlutter 18s linear infinite; }
.travsky--dove .travsky-b { top: 48%; left: 0; animation: skyDiag 22s linear infinite 4s; }
.travsky--camera .travsky-a { top: 20%; left: 0; animation: skyLTR 21s linear infinite; }
.travsky--camera .travsky-b { top: 60%; left: 0; animation: skyFlutter 25s linear infinite 3s; }
.travsky--quill .travsky-a { top: 18%; left: 0; animation: skyDiag 19s linear infinite; }
.travsky--quill .travsky-b { top: 54%; left: 0; animation: skyRTL 24s linear infinite 5s; }
.travsky--pin .travsky-a { top: 22%; left: 0; animation: skyPinHop 16s ease-in-out infinite; }
.travsky--pin .travsky-b { top: 40%; left: 0; animation: skyLTR 28s linear infinite 2s; }
.travsky--globe .travsky-a { top: 14%; right: 10%; animation: skyBob 8s ease-in-out infinite; opacity: 0.88; }
.travsky--globe .travsky-a i { display: inline-block; animation: skySpinSlow 18s linear infinite; }
.travsky--globe .travsky-b { top: 24%; left: 0; animation: skyLTR 20s linear infinite 1s; }
.travsky--suitcase .travsky-a { top: 62%; left: 0; animation: skyTrain 19s linear infinite; }
.travsky--suitcase .travsky-b { top: 16%; left: 0; animation: skyLTR 23s linear infinite 4s; }
.travsky--stamp .travsky-a { top: 18%; right: 9%; animation: skyBob 6.5s ease-in-out infinite; opacity: 0.9; }
.travsky--stamp .travsky-b { top: 28%; left: 0; animation: skyFlutter 20s linear infinite; }
.travsky--mountain .travsky-a { top: 58%; left: 8%; animation: skyBob 9s ease-in-out infinite; opacity: 0.55; font-size: 28px; }
.travsky--mountain .travsky-b { top: 12%; left: 0; animation: skyLTR 30s linear infinite; }
.travsky--envelope .travsky-a { top: 22%; left: 0; animation: skyFlutter 15s linear infinite; }
.travsky--envelope .travsky-b { top: 52%; left: 0; animation: skyDiag 18s linear infinite 2s; }
.travsky--bus .travsky-a { top: 68%; left: 0; animation: skyTrain 18s linear infinite; }
.travsky--bus .travsky-b { top: 20%; left: 0; animation: skyLTR 24s linear infinite; }

.travsky-dust i:nth-child(1) { left: 12%; bottom: 18%; animation: skyMote 9s linear infinite; }
.travsky-dust i:nth-child(2) { left: 28%; bottom: 30%; animation: skyMote 11s linear infinite 1.4s; }
.travsky-dust i:nth-child(3) { left: 46%; bottom: 14%; animation: skyMote 8s linear infinite 2.8s; }
.travsky-dust i:nth-child(4) { left: 64%; bottom: 26%; animation: skyMote 12s linear infinite 0.8s; }
.travsky-dust i:nth-child(5) { left: 82%; bottom: 20%; animation: skyMote 10s linear infinite 3.6s; }

.page-home .fb-sky-plane { animation-name: skyLTR !important; animation-duration: 16s !important; }
.page-home .aboutlux.is-in .aboutlux-skyplane { animation-name: skyTrain !important; animation-duration: 20s !important; top: 62%; }
.page-home .trustlux.is-in .trustlux-plane { animation-name: skyBob !important; animation-duration: 7s !important; left: auto; right: 8%; top: 14%; opacity: 0.85; }
.page-home .siglux.is-in .siglux-plane { animation-name: skyHeli !important; animation-duration: 19s !important; }
.page-home .desklux.is-in .desklux-plane { animation-name: skyTrain !important; animation-duration: 17s !important; top: 68%; }
.page-home .themelux.is-in .themelux-plane { animation-name: skyBob !important; animation-duration: 6s !important; left: 10%; top: 16%; opacity: 0.85; }
.page-home .spinlux.is-in .spinlux-plane { animation-name: skyOrbit !important; animation-duration: 16s !important; left: 72%; top: 12%; opacity: 0.9; }
.page-home .offerlux.is-in .offerlux-plane { animation-name: skyFlutter !important; animation-duration: 16s !important; }
.page-home .indialux.is-in .indialux-plane { animation-name: skyTrain !important; animation-duration: 18s !important; top: 30%; }
.page-home .coollux.is-in .coollux-plane { animation-name: skyRise !important; animation-duration: 26s !important; }
.page-home .worklux.is-in .worklux-plane { animation-name: skyDiag !important; animation-duration: 14s !important; }
.page-home .planlux.is-in .planlux-plane { animation-name: skyBob !important; animation-duration: 8s !important; left: auto; right: 7%; top: 14%; opacity: 0.9; }
.page-home .planlux-plane i { display: inline-block; animation: skySpinSlow 9s linear infinite; }
.page-home .skylux.is-in .skylux-plane { animation-name: skyLTR !important; animation-duration: 28s !important; }
.page-home .voicelux.is-in .voicelux-plane { animation-name: skyFlutter !important; animation-duration: 18s !important; }
.page-home .postlux.is-in .postlux-plane { animation-name: skyLTR !important; animation-duration: 21s !important; }
.page-home .journlux.is-in .journlux-plane { animation-name: skyDiag !important; animation-duration: 19s !important; }
.page-home .faqlux.is-in .faqlux-plane { animation-name: skyPinHop !important; animation-duration: 16s !important; }
.page-home .intllux.is-in .intllux-plane { animation-name: skyRTL !important; animation-duration: 22s !important; }
.page-home .whylux.is-in .whylux-plane { animation-name: skyWave !important; animation-duration: 24s !important; top: 58%; }
.page-home .statlux.is-in .statlux-plane { animation-name: skyOrbit !important; animation-duration: 18s !important; left: 78%; top: 10%; opacity: 0.9; }
.page-home .ctalux.is-in .ctalux-plane { animation-name: skyTrain !important; animation-duration: 19s !important; top: 64%; }
.page-home #atlas-odisha .atlaslux-plane { animation-name: skyTrain !important; animation-duration: 16s !important; top: 68%; }
.page-home #atlas-india .atlaslux-plane { animation-name: skyTrain !important; animation-duration: 19s !important; top: 32%; }
.page-home #atlas-world .atlaslux-plane { animation-name: skyRTL !important; animation-duration: 23s !important; }

@media (max-width: 1040px) {
  .page-home .trustlux-plane,
  .page-home .siglux-plane,
  .page-home .desklux-plane,
  .page-home .themelux-plane,
  .page-home .spinlux-plane,
  .page-home .offerlux-plane,
  .page-home .indialux-plane,
  .page-home .coollux-plane,
  .page-home .worklux-plane,
  .page-home .planlux-plane,
  .page-home .skylux-plane,
  .page-home .voicelux-plane,
  .page-home .postlux-plane,
  .page-home .journlux-plane,
  .page-home .faqlux-plane,
  .page-home .intllux-plane,
  .page-home .whylux-plane,
  .page-home .statlux-plane,
  .page-home .ctalux-plane,
  .page-home .aboutlux-skyplane,
  .page-home .atlaslux-plane,
  .page-home .fb-sky-plane,
  .page-home .luxpkg-plane { display: block !important; font-size: 13px; }
}
@media (max-width: 720px) {
  .travsky-a { font-size: 13px; }
  .travsky-b { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .travsky,
  .page-home .cine-dust { display: none !important; }
  .page-home [class*="-plane"],
  .page-home .aboutlux-skyplane,
  .page-home .fb-sky-plane,
  .page-home .luxpkg-plane { animation: none !important; opacity: 0.35; }
}

/* =============== LIVE WEATHER WIDGET =============== */
.weather-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.weather-card {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  padding: 22px 14px 20px;
  text-align: center;
  box-shadow: 0 16px 40px -26px rgba(28, 38, 90, 0.3);
  transition: transform 0.4s var(--ease-spring), box-shadow 0.4s var(--ease);
}
.weather-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.weather-icon { font-size: 40px; display: block; line-height: 1; animation: wxFloat 3.4s ease-in-out infinite; }
.weather-icon.is-loading { animation: wxPulse 1.2s ease-in-out infinite; }
@keyframes wxFloat { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-6px) rotate(3deg); } }
@keyframes wxPulse { 0%,100% { opacity: 0.4; } 50% { opacity: 1; } }
.weather-temp { font-family: var(--serif); font-size: 34px; font-weight: 600; color: var(--ink); margin-top: 8px; }
.weather-temp span { font-size: 15px; color: var(--ink-soft); vertical-align: super; margin-left: 2px; }
.weather-place { font-weight: 800; font-size: 14.5px; color: var(--ink); margin-top: 2px; }
.weather-region { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue-1, #2563EB); font-weight: 700; }
.weather-sub { font-size: 12.5px; color: var(--ink-dim); margin-top: 6px; }
@media (max-width: 900px) { .weather-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { .weather-grid { grid-template-columns: repeat(2, 1fr); } }

/* =============== PHOTO CLARITY (sitewide) =============== */
img:not(.logo-img):not(.trustlux-bni-logo) {
  image-rendering: auto;
  image-rendering: high-quality;
}
.atlaslux-photo img,
.luxpkg [class*="photo"] img,
[class*="-photo"] img {
  filter: none;
}

/* =============== LUXURY TRAVEL DESK FAB =============== */
.deskfab {
  --df-gold: #c9a24a;
  --df-gold-2: #b8924a;
  --df-ink: #12172b;
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 240;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  pointer-events: none;
}
.deskfab > * { pointer-events: auto; }

.deskfab-orb {
  position: relative;
  width: 68px; height: 68px;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.deskfab-path {
  position: absolute;
  inset: -12px;
  width: calc(100% + 24px);
  height: calc(100% + 24px);
  color: rgba(201, 162, 74, 0.72);
  pointer-events: none;
  animation: dfSpin 22s linear infinite reverse;
}
.deskfab-ring {
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 1.6px dashed rgba(201, 162, 74, 0.9);
  animation: dfSpin 18s linear infinite;
  pointer-events: none;
}
.deskfab-pulse {
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.45), transparent 70%);
  animation: dfPulse 2.8s ease-out infinite;
  pointer-events: none;
}
@keyframes dfSpin { to { transform: rotate(360deg); } }
@keyframes dfPulse {
  0% { transform: scale(1); opacity: 0.55; }
  70% { transform: scale(1.55); opacity: 0; }
  100% { opacity: 0; }
}
.deskfab-core {
  position: relative;
  width: 58px; height: 58px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.55), transparent 42%),
    linear-gradient(180deg, #fdf3d8, #d9b56b 58%, #8a6a2c);
  color: #2a1e06;
  box-shadow:
    0 16px 32px -14px rgba(18, 23, 43, 0.55),
    0 0 0 4px rgba(253, 243, 216, 0.45);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), background 0.35s ease, color 0.35s ease;
}
.deskfab-core::before {
  content: '';
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  border: 1px dashed rgba(42, 30, 6, 0.28);
  pointer-events: none;
}
.deskfab-orb:hover .deskfab-core { transform: translateY(-2px) scale(1.04); }
.deskfab.is-open .deskfab-core {
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
}
.deskfab.is-open .deskfab-core::before { border-color: rgba(247, 231, 188, 0.35); }
.deskfab.is-open .deskfab-pulse { opacity: 0; animation: none; }
.deskfab-ico {
  font-size: 18px;
  grid-area: 1 / 1;
  transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.deskfab-ico--open { transform: rotate(-18deg); }
.deskfab-ico--close { opacity: 0; transform: rotate(40deg) scale(0.6); }
.deskfab.is-open .deskfab-ico--open { opacity: 0; transform: rotate(28deg) scale(0.6); }
.deskfab.is-open .deskfab-ico--close { opacity: 1; transform: none; }
.deskfab-hint {
  position: absolute;
  bottom: -16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8a6a2c;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
  transition: opacity 0.25s ease;
}
.deskfab.is-open .deskfab-hint { opacity: 0; }

.deskfab-rail {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.deskfab-act {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  color: var(--df-ink);
  font: inherit;
  padding: 0;
}
.deskfab-act-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255, 253, 248, 0.92);
  border: 1px solid rgba(184, 146, 74, 0.32);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 16px 32px -22px rgba(18, 23, 43, 0.45);
}
.deskfab-act-copy em {
  font-style: normal;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.deskfab-act-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.1;
  white-space: nowrap;
}
.deskfab-act-icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 17px;
  color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  box-shadow: 0 12px 22px -12px rgba(184, 146, 74, 0.9);
  transition: transform 0.35s ease;
}
.deskfab-act:hover .deskfab-act-icon { transform: translateY(-2px); }
.deskfab-act--wa .deskfab-act-icon {
  background: linear-gradient(180deg, #5ee08a, #1faa59);
  color: #fff;
}
.deskfab-act--chat .deskfab-act-icon {
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
}

.deskfab-ico[hidden] { display: none !important; }
.deskfab-panel {
  width: min(360px, calc(100vw - 32px));
  max-height: min(560px, calc(100dvh - 110px));
  border-radius: 24px;
  overflow: auto;
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(201, 162, 74, 0.16), transparent 60%),
    linear-gradient(180deg, #fffefb, #f6f0e4);
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 28px 60px -28px rgba(18, 23, 43, 0.55);
  animation: dfRise 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes dfRise {
  from { opacity: 0; transform: translate3d(0, 16px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.deskfab-panel-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 14px 12px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.35);
}
.deskfab-panel-seal {
  width: 40px; height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  flex-shrink: 0;
}
.deskfab-panel-head em {
  display: block;
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.deskfab-panel-head strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  color: var(--df-ink);
}
.deskfab-panel-close {
  margin-left: auto;
  width: 32px; height: 32px;
  border: 0;
  border-radius: 50%;
  background: rgba(18, 23, 43, 0.06);
  color: var(--df-ink);
  cursor: pointer;
}
.deskfab-thread { padding: 14px 14px 6px; }
.deskfab-bubble {
  margin: 0;
  max-width: 92%;
  padding: 12px 14px;
  border-radius: 4px 16px 16px 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(184, 146, 74, 0.22);
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(18, 23, 43, 0.82);
}
.deskfab-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 4px 14px 10px;
}
.deskfab-chips button {
  border: 1px solid rgba(184, 146, 74, 0.35);
  background: rgba(255, 255, 255, 0.55);
  color: var(--df-ink);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
.deskfab-chips button.is-on,
.deskfab-chips button:hover {
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
  border-color: transparent;
}
.deskfab-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0 14px 14px;
}
.deskfab-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.deskfab-field--full { grid-column: 1 / -1; }
.deskfab-field input,
.deskfab-field textarea {
  width: 100%;
  border: 1px solid rgba(184, 146, 74, 0.28);
  border-radius: 12px;
  padding: 9px 11px;
  font: 400 14px/1.4 var(--sans);
  letter-spacing: 0;
  text-transform: none;
  color: var(--df-ink);
  background: rgba(255, 255, 255, 0.8);
}
.deskfab-send {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 999px;
  padding: 12px 16px;
  cursor: pointer;
  background: linear-gradient(180deg, #1c2340, #12172b);
  color: #f7e7bc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.deskfab-send i { color: #5ee08a; font-size: 16px; }

.deskfab.is-open .deskfab-rail li {
  animation: dfRise 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.deskfab.is-open .deskfab-rail li:nth-child(1) { animation-delay: 0.04s; }
.deskfab.is-open .deskfab-rail li:nth-child(2) { animation-delay: 0.1s; }
.deskfab.is-open .deskfab-rail li:nth-child(3) { animation-delay: 0.16s; }

.deskfab-rail[hidden],
.deskfab-panel[hidden] { display: none !important; }

.back-to-top {
  z-index: 239;
  right: max(28px, env(safe-area-inset-right));
  bottom: 118px;
  background: rgba(255, 253, 248, 0.92);
  border: 1px solid rgba(184, 146, 74, 0.32);
  color: #8a6a2c;
  box-shadow: 0 12px 24px -16px rgba(18, 23, 43, 0.4);
}
.back-to-top:hover {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  border-color: transparent;
}
.back-to-top .fa-plane-up { transform: rotate(-18deg); font-size: 13px; }

@media (max-width: 640px) {
  .deskfab { right: 14px; bottom: 14px; }
  .deskfab-orb { width: 62px; height: 62px; }
  .deskfab-core { width: 52px; height: 52px; }
  .deskfab-hint { display: none; }
  .deskfab-panel { max-height: calc(100dvh - 92px); }
  .deskfab-act-copy strong { font-size: 14px; }
  .back-to-top { bottom: 96px; right: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .deskfab-ring, .deskfab-path, .deskfab-pulse, .deskfab-panel, .deskfab.is-open .deskfab-rail li { animation: none !important; }
}

/* Honour archived cine slider */
.hero--cine[hidden],
#hero[hidden] { display: none !important; }

/* =============== VOYAGE HERO + HOUSE CHROME =============== */
.voyalux {
  --vy-gold: #c9a24a;
  --vy-gold-2: #b8924a;
  --vy-ink: #12172b;
  --vy-cream: #fffefb;
  position: relative;
  isolation: isolate;
  min-height: 680px;
  min-height: calc(100svh - var(--mast-offset, 168px));
  color: var(--vy-ink);
  background: #0c101c;
  overflow: hidden;
}
.voyalux-stage {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.voyalux-layer {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.1s ease;
}
.voyalux-layer.is-on { opacity: 1; z-index: 1; }
.voyalux-layer img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
  transform: scale(1.03);
  transition: transform 12s linear;
}
.voyalux-layer.is-on img { transform: scale(1.07); }
.voyalux-scrim {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(12, 16, 28, 0.58) 0%, rgba(12, 16, 28, 0.18) 46%, rgba(12, 16, 28, 0.28) 100%),
    linear-gradient(180deg, rgba(12, 16, 28, 0.18) 0%, transparent 28%, rgba(12, 16, 28, 0.55) 100%);
  pointer-events: none;
}
.voyalux-gold {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(520px 220px at 18% 78%, rgba(201, 162, 74, 0.22), transparent 70%);
}
.voyalux-grain {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0.18;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
.voyalux-foil {
  position: absolute;
  inset: -8% -20%;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 32%, rgba(247, 231, 188, 0.16) 48%, transparent 64%);
  mix-blend-mode: soft-light;
  animation: vyFoil 10s ease-in-out infinite;
}
@keyframes vyFoil {
  0%, 18% { transform: translate3d(-28%, 0, 0); opacity: 0.25; }
  52% { transform: translate3d(8%, 0, 0); opacity: 0.7; }
  100% { transform: translate3d(36%, 0, 0); opacity: 0.2; }
}
.voyalux-meridian {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  pointer-events: none;
  fill: none;
  stroke: rgba(247, 231, 188, 0.22);
  stroke-width: 1;
  stroke-dasharray: 2 12;
  transform-origin: 75% 24%;
  animation: vySpin 72s linear infinite;
  opacity: 0.7;
}
.voyalux-route {
  position: absolute;
  inset: 8% 0 18%;
  z-index: 3;
  width: 100%;
  height: auto;
  pointer-events: none;
  fill: none;
  stroke: rgba(201, 162, 74, 0.55);
  stroke-width: 1.4;
  stroke-dasharray: 6 10;
}
.voyalux-route--b {
  inset: 4% 0 42%;
  stroke: rgba(247, 231, 188, 0.32);
  stroke-width: 1.1;
  opacity: 0.85;
}
.voyalux-plane {
  position: absolute;
  z-index: 4;
  left: 8%;
  top: 42%;
  color: #f7e7bc;
  font-size: 14px;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.45));
  animation: vyPlane 18s linear infinite;
  pointer-events: none;
}
.voyalux-plane--b {
  left: auto;
  right: 8%;
  top: 18%;
  font-size: 12px;
  animation: vyPlaneB 22s linear infinite;
}
@keyframes vyPlane {
  0% { transform: translate3d(0, 40px, 0) rotate(-12deg); opacity: 0; }
  8% { opacity: 1; }
  92% { opacity: 1; }
  100% { transform: translate3d(82vw, -80px, 0) rotate(-8deg); opacity: 0; }
}
@keyframes vyPlaneB {
  0% { transform: translate3d(0, 0, 0) rotate(14deg) scaleX(-1); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate3d(-78vw, 70px, 0) rotate(18deg) scaleX(-1); opacity: 0; }
}
.voyalux-orbit {
  position: absolute;
  right: 4.5%;
  top: 11%;
  z-index: 4;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  border: 1px dashed rgba(247, 231, 188, 0.42);
  pointer-events: none;
  animation: vySpin 40s linear infinite;
}
.voyalux-orbit::after {
  content: '';
  position: absolute;
  top: -4px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  border-radius: 50%;
  background: #f7e7bc;
  box-shadow: 0 0 12px rgba(247, 231, 188, 0.9);
}
.voyalux-pins {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.voyalux-pins span {
  position: absolute;
  left: var(--x);
  top: var(--y);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: #f7e7bc;
  text-shadow: 0 2px 8px rgba(8, 10, 18, 0.6);
}
.voyalux-pins i {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f7e7bc;
  box-shadow: 0 0 0 5px rgba(201, 162, 74, 0.22);
  animation: vyPin 2.8s ease-out infinite;
}
.voyalux-pins span:nth-child(2) i { animation-delay: 0.6s; }
.voyalux-pins span:nth-child(3) i { animation-delay: 1.2s; }
.voyalux-pins span:nth-child(4) i { animation-delay: 1.8s; }
@keyframes vyPin {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.4); opacity: 0.65; }
}
.voyalux-motes {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.voyalux-motes i {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #f7e7bc;
  box-shadow: 0 0 8px rgba(247, 231, 188, 0.7);
  animation: vyMote 7.5s ease-in-out infinite;
}
.voyalux-motes i:nth-child(1) { left: 12%; top: 24%; }
.voyalux-motes i:nth-child(2) { left: 28%; top: 62%; animation-delay: 1.1s; }
.voyalux-motes i:nth-child(3) { left: 46%; top: 18%; animation-delay: 2s; }
.voyalux-motes i:nth-child(4) { left: 61%; top: 54%; animation-delay: 0.4s; }
.voyalux-motes i:nth-child(5) { left: 74%; top: 32%; animation-delay: 1.6s; }
.voyalux-motes i:nth-child(6) { left: 88%; top: 58%; animation-delay: 2.4s; }
.voyalux-motes i:nth-child(7) { left: 38%; top: 78%; animation-delay: 3s; }
@keyframes vyMote {
  0%, 100% { transform: translate3d(0, 0, 0); opacity: 0.2; }
  50% { transform: translate3d(6px, -16px, 0); opacity: 0.85; }
}
.voyalux-compass {
  position: absolute;
  right: 6%;
  top: 18%;
  z-index: 4;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #f7e7bc;
  border: 1px dashed rgba(201, 162, 74, 0.7);
  background: rgba(18, 23, 43, 0.28);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  animation: vySpin 28s linear infinite;
  pointer-events: none;
}
@keyframes vySpin { to { transform: rotate(360deg); } }
.voyalux-frame {
  position: absolute;
  inset: 18px;
  z-index: 5;
  pointer-events: none;
}
.voyalux-frame span {
  position: absolute;
  width: 28px;
  height: 28px;
  border-color: rgba(247, 231, 188, 0.55);
  border-style: solid;
  border-width: 0;
}
.voyalux-frame span:nth-child(1) { top: 0; left: 0; border-top-width: 1px; border-left-width: 1px; }
.voyalux-frame span:nth-child(2) { top: 0; right: 0; border-top-width: 1px; border-right-width: 1px; }
.voyalux-frame span:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1px; border-left-width: 1px; }
.voyalux-frame span:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1px; border-right-width: 1px; }

.voyalux-layout {
  position: relative;
  z-index: 6;
  display: flex;
  align-items: flex-end;
  min-height: 680px;
  min-height: calc(100svh - var(--mast-offset, 168px));
  padding: 36px 0 118px;
}
.voyalux-sheet {
  position: relative;
  width: min(540px, 100%);
  padding: 30px 32px 24px;
  border-radius: 28px;
  background:
    radial-gradient(420px 160px at 100% 0%, rgba(201, 162, 74, 0.16), transparent 62%),
    linear-gradient(180deg, rgba(255, 254, 251, 0.94), rgba(246, 240, 228, 0.9));
  border: 1px solid rgba(184, 146, 74, 0.38);
  box-shadow:
    0 40px 80px -36px rgba(8, 10, 18, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(22px) saturate(140%);
  -webkit-backdrop-filter: blur(22px) saturate(140%);
}
.voyalux-sheet::before {
  content: '';
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, #fdf3d8, #c9a24a, #8a6a2c);
}
.voyalux-sheet.is-swap .voyalux-kicker,
.voyalux-sheet.is-swap .voyalux-title,
.voyalux-sheet.is-swap .voyalux-lead,
.voyalux-sheet.is-swap .voyalux-itin {
  animation: vyCopyIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.voyalux-sheet.is-swap .voyalux-stamp {
  animation: vyStampIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes vyCopyIn {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes vyStampIn {
  from { opacity: 0; transform: rotate(-14deg) scale(0.86); }
  to { opacity: 1; transform: rotate(8deg) scale(1); }
}
.voyalux-perf {
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 14px;
  background-image: radial-gradient(circle at 8px 8px, rgba(18, 23, 43, 0.12) 2px, transparent 2.4px);
  background-size: 18px 14px;
  opacity: 0.7;
  pointer-events: none;
}
.voyalux-stamp {
  position: absolute;
  top: 22px;
  right: 22px;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  border: 1.6px dashed rgba(184, 146, 74, 0.7);
  color: #8a6a2c;
  transform: rotate(8deg);
}
.voyalux-stamp i { font-size: 15px; }
.voyalux-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.voyalux-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--vy-ink);
}
.voyalux-kicker {
  margin: 6px 0 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.voyalux-title { margin: 0; }
.voyalux-place {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(3.1rem, 6vw, 4.6rem);
  font-weight: 600;
  line-height: 0.92;
  color: var(--vy-ink);
  letter-spacing: -0.03em;
}
.voyalux-lyric {
  display: block;
  margin-top: 6px;
  font-family: 'Great Vibes', cursive;
  font-style: normal;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  color: #9a742e;
  line-height: 1.15;
}
.voyalux-lead {
  margin: 16px 0 0;
  max-width: 42ch;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(18, 23, 43, 0.72);
}
.voyalux-itin {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 18px 0 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.voyalux-itin i {
  font-size: 9px;
  transform: rotate(45deg);
  color: var(--vy-gold-2);
}
.voyalux-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}
.voyalux-cta,
.voyalux-ghost {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  border-radius: 999px;
  min-height: 48px;
  padding: 0 18px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.voyalux-cta {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b 58%, #8a6a2c);
  color: #2a1e06;
  box-shadow: 0 16px 28px -16px rgba(184, 146, 74, 0.95);
}
.voyalux-cta::after {
  content: '';
  position: absolute;
  inset: -20%;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.5) 50%, transparent 60%);
  animation: vyShine 4.8s ease-in-out infinite;
  pointer-events: none;
}
.voyalux-cta span,
.voyalux-cta i { position: relative; z-index: 1; }
.voyalux-ghost {
  background: rgba(18, 23, 43, 0.06);
  color: var(--vy-ink);
  border: 1px solid rgba(184, 146, 74, 0.28);
}
.voyalux-seals {
  list-style: none;
  display: flex;
  gap: 18px;
  margin: 22px 0 0;
  padding: 16px 0 0;
  border-top: 1px dashed rgba(184, 146, 74, 0.35);
}
.voyalux-seals li { min-width: 64px; }
.voyalux-seals em {
  display: block;
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.voyalux-seals strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
}
.voyalux-rail {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 22px;
  z-index: 7;
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 0 24px;
}
.voyalux-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px 6px 6px;
  border: 1px solid rgba(247, 231, 188, 0.28);
  background: rgba(18, 23, 43, 0.42);
  color: #f7e7bc;
  border-radius: 999px;
  cursor: pointer;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  text-align: left;
}
.voyalux-tab img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}
.voyalux-tab em {
  display: block;
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.16em;
  opacity: 0.7;
}
.voyalux-tab strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 16px;
  font-weight: 600;
}
.voyalux-tab.is-on,
.voyalux-tab:hover {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
  color: #2a1e06;
  border-color: transparent;
}

.voyagate {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  min-height: 420px;
  background: #12172b;
}
.voyagate-card {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  color: #fffefb;
  text-decoration: none;
  isolation: isolate;
}
.voyagate-photo,
.voyagate-scrim { position: absolute; inset: 0; }
.voyagate-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.voyagate-card:hover .voyagate-photo img { transform: scale(1.08); }
.voyagate-scrim {
  background: linear-gradient(180deg, rgba(12, 16, 28, 0.04) 0%, rgba(12, 16, 28, 0.46) 100%);
}
.voyagate-num {
  position: absolute;
  top: 22px;
  left: 22px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: #f7e7bc;
}
.voyagate-copy {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.voyagate-copy em {
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #e0bd76;
}
.voyagate-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(2.1rem, 3vw, 3.1rem);
  font-weight: 600;
  line-height: 0.95;
}
.voyagate-copy b {
  font-family: 'Great Vibes', cursive;
  font-weight: 400;
  font-size: 22px;
  color: #f7e7bc;
}
.voyagate-copy span {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f7e7bc;
}
.voyagate-num,
.voyagate-copy { z-index: 5; }
.voyagate-foil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 34%, rgba(247, 231, 188, 0.2) 50%, transparent 66%);
  transform: translate3d(-70%, 0, 0);
  opacity: 0;
}
.voyagate-card:hover .voyagate-foil {
  opacity: 1;
  animation: vyShine 1.15s ease-out;
}
.voyagate-arc {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 26%;
  height: 140px;
  z-index: 3;
  fill: none;
  stroke: rgba(247, 231, 188, 0.48);
  stroke-width: 1.2;
  stroke-dasharray: 5 9;
  pointer-events: none;
  opacity: 0.75;
}
.voyagate-craft {
  position: absolute;
  z-index: 4;
  left: 8%;
  top: 36%;
  color: #f7e7bc;
  font-size: 12px;
  pointer-events: none;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.4));
  animation: vyGateCraft 14s linear infinite;
}
.voyagate-card:nth-child(2) .voyagate-craft { animation-delay: 2.2s; }
.voyagate-card:nth-child(3) .voyagate-craft { animation-delay: 4.4s; }
@keyframes vyGateCraft {
  0% { transform: translate3d(0, 18px, 0) rotate(-18deg); opacity: 0; }
  12% { opacity: 1; }
  88% { opacity: 1; }
  100% { transform: translate3d(72%, -36px, 0) rotate(-8deg); opacity: 0; }
}
.voyagate-card:hover .voyagate-copy { transform: translate3d(0, -4px, 0); }
.voyagate-copy { transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); }

.voyamarq {
  overflow: hidden;
  background:
    radial-gradient(480px 80px at 50% 0%, rgba(201, 162, 74, 0.18), transparent 70%),
    linear-gradient(180deg, #161c33, #12172b);
  border-top: 1px solid rgba(201, 162, 74, 0.38);
  border-bottom: 1px solid rgba(201, 162, 74, 0.22);
  padding: 13px 0;
}
.voyamarq-track {
  display: flex;
  align-items: center;
  gap: 22px;
  width: max-content;
  color: #f7e7bc;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  animation: vyMarq 36s linear infinite;
}
.voyamarq-track i {
  font-size: 9px;
  opacity: 0.72;
  transform: rotate(45deg);
}
@keyframes vyMarq {
  to { transform: translate3d(-50%, 0, 0); }
}

@media (max-width: 980px) {
  .voyalux,
  .voyalux-layout { min-height: 0; }
  .voyalux-layout { padding: 240px 0 132px; }
  .voyalux-sheet { width: 100%; }
  .voyalux-stamp { width: 62px; height: 62px; }
  .voyagate { grid-template-columns: 1fr; }
  .voyagate-card { min-height: 280px; }
}
@media (max-width: 720px) {
  .voyalux-rail { flex-wrap: wrap; justify-content: flex-start; }
  .voyalux-tab strong { display: none; }
  .voyalux-compass,
  .voyalux-orbit,
  .voyalux-meridian,
  .voyalux-pins,
  .voyalux-motes,
  .voyalux-plane--b,
  .voyalux-route--b,
  .voyagate-craft { display: none; }
  .voyalux-seals { gap: 12px; }
}

/* House chrome — top bar, header, logo */
.housebar { overflow: hidden; }
.housebar-route {
  position: absolute;
  inset: 10px 0 auto;
  width: 100%;
  height: 70px;
  pointer-events: none;
  fill: none;
  stroke: rgba(201, 162, 74, 0.42);
  stroke-width: 1.2;
  stroke-dasharray: 5 8;
  z-index: 1;
}
.housebar-plane {
  position: absolute;
  top: 22px;
  left: 6%;
  z-index: 1;
  color: #f7e7bc;
  font-size: 11px;
  pointer-events: none;
  animation: vyPlane 22s linear infinite;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.35));
}
.housechrome .mast-top {
  background:
    radial-gradient(640px 120px at 50% -20%, rgba(201, 162, 74, 0.22), transparent 70%),
    linear-gradient(180deg, #161c33 0%, #12172b 55%, #0e1324 100%);
}
.housechrome .mast-jaga-seal {
  position: relative;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.housechrome .mast-jaga-ring,
.housechrome .mast-jaga-halo {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  pointer-events: none;
}
.housechrome .mast-jaga-ring {
  border: 1.5px dashed rgba(247, 231, 188, 0.85);
  animation: vySpin 16s linear infinite;
}
.housechrome .mast-jaga-halo {
  background: radial-gradient(circle, rgba(255, 214, 140, 0.45), transparent 70%);
  animation: dfPulse 2.8s ease-out infinite;
}
.housechrome .mast-jaga-seal .mast-jaga {
  width: 42px;
  height: 46px;
  position: relative;
  z-index: 1;
  display: block !important;
  animation: mastJaga 5.5s ease-in-out infinite;
}
.housechrome .mast-jay {
  font-size: 20px;
  background: linear-gradient(180deg, #fff4cc, #d9b56b);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.housechrome .nav-inner {
  background:
    linear-gradient(180deg, #fffefb 0%, #f7f0e4 100%) !important;
  border: 1px solid rgba(184, 146, 74, 0.38) !important;
  box-shadow:
    0 22px 44px -24px rgba(18, 23, 43, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
}
.housechrome .nav-links {
  background: rgba(255, 255, 255, 0.72) !important;
  border: 1px solid rgba(184, 146, 74, 0.22) !important;
}
.housechrome .nav-link.active {
  background: linear-gradient(180deg, #1c2340, #12172b) !important;
}

.housechrome .nav .brand-logo--lux,
.brand-logo--lux {
  position: relative;
  isolation: isolate;
  overflow: visible !important;
  clip-path: none !important;
  border-radius: 18px !important;
  background: #fffefb !important;
  border: 1px solid rgba(201, 162, 74, 0.48) !important;
  box-shadow:
    0 0 0 4px rgba(253, 243, 216, 0.72),
    0 16px 32px -18px rgba(18, 23, 43, 0.45),
    inset 0 1px 0 #fff !important;
  padding: 6px 10px !important;
}
.brand-lux-glow,
.brand-lux-ring,
.brand-lux-shine {
  position: absolute;
  pointer-events: none;
}
.brand-lux-glow {
  inset: -10px;
  border-radius: 24px;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.28), transparent 70%);
  z-index: 0;
}
.brand-lux-ring {
  inset: -7px;
  border-radius: 22px;
  border: 1.3px dashed rgba(184, 146, 74, 0.8);
  animation: vySpin 20s linear infinite;
  z-index: 2;
}
.brand-lux-shine {
  inset: 0;
  border-radius: 16px;
  overflow: hidden;
  z-index: 3;
}
.brand-lux-shine::after {
  content: '';
  position: absolute;
  inset: -20%;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.55) 50%, transparent 60%);
  transform: translateX(-70%);
  animation: vyShine 4.8s ease-in-out infinite;
}
@keyframes vyShine {
  0%, 55% { transform: translateX(-80%); }
  100% { transform: translateX(80%); }
}
.housechrome .nav .brand-logo--lux .brand-logo-video {
  position: relative;
  z-index: 1;
  width: 176px;
  height: 50px;
}
.housechrome .nav .brand-logo--lux {
  width: 204px !important;
  max-width: 204px !important;
  flex-basis: 204px !important;
  min-height: 62px;
}

.footlux--house .footlux-cta {
  position: relative;
  border: 1px solid rgba(184, 146, 74, 0.38);
  box-shadow: 0 28px 60px -32px rgba(8, 10, 18, 0.55);
}
.footlux-jaga {
  position: absolute;
  top: 18px;
  right: 22px;
  width: 56px;
  height: 56px;
  z-index: 3;
  display: grid;
  place-items: center;
}
.footlux-jaga svg { width: 40px; height: 44px; display: block; }
.footlux-jaga .mast-jaga-ring {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1.4px dashed rgba(247, 231, 188, 0.8);
  animation: vySpin 16s linear infinite;
}
.footlux--house .brand-logo--lux {
  width: 210px;
  height: auto;
  min-height: 64px;
}

.site-masthead.is-compact .mast-mid {
  display: flex !important;
}
.site-masthead.is-compact .mast-slogan,
.site-masthead.is-compact .mast-jay { display: none !important; }
.housechrome .mast-jaga-seal { display: grid !important; }

@media (max-width: 1500px) {
  .housechrome .mast-jaga-seal { display: grid !important; }
  .housechrome .mast-jaga-seal .mast-jaga { display: block !important; }
}
@media (max-width: 1100px) {
  .housechrome .mast-slogan { display: none; }
  .housechrome .mast-jay { display: none; }
}
@media (max-width: 720px) {
  .housebar-plane,
  .housebar-route { display: none; }
  .footlux-jaga { display: none; }
  .housechrome .nav .brand-logo--lux {
    width: 148px !important;
    max-width: 148px !important;
    flex-basis: 148px !important;
    min-height: 48px;
    padding: 4px 6px !important;
  }
  .housechrome .nav .brand-logo--lux .brand-logo-video {
    width: 132px;
    height: 40px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .voyalux-plane,
  .voyalux-compass,
  .voyalux-orbit,
  .voyalux-meridian,
  .voyalux-foil,
  .voyalux-motes i,
  .voyalux-pins i,
  .voyalux-cta::after,
  .voyalux-layer img,
  .voyamarq-track,
  .voyagate-craft,
  .voyagate-foil,
  .page-home .atlaslux-stamp,
  .page-home .luxpkg-stamp,
  .housebar-plane,
  .brand-lux-ring,
  .brand-lux-shine::after,
  .housechrome .mast-jaga-ring,
  .housechrome .mast-jaga-halo,
  .footlux-jaga .mast-jaga-ring { animation: none !important; }
}

/* =============== ULTRA LUXURY SMOOTH SCROLL =============== */
.site-masthead {
  transform: translateZ(0);
  backface-visibility: visible;
  overflow: visible !important;
}
.site-masthead-spacer {
  contain: size layout;
}
html.is-scrolling .luxcur {
  opacity: 0;
  transition: opacity 0.12s linear;
}
html.is-settled .luxcur { opacity: 1; }
html.is-scrolling .voyalux-grain,
html.is-scrolling .cine-grain,
html.is-scrolling .herolux-grain,
html.is-scrolling .voyalux-foil { opacity: 0 !important; }
html.is-scrolling .travsky-a,
html.is-scrolling .travsky-b,
html.is-scrolling .travsky-dust i,
html.is-scrolling .mast-bird,
html.is-scrolling .mast-bird-bob,
html.is-scrolling .mast-wing--l,
html.is-scrolling .mast-wing--r,
html.is-scrolling .voyalux-plane,
html.is-scrolling .voyalux-compass,
html.is-scrolling .voyalux-orbit,
html.is-scrolling .voyalux-meridian,
html.is-scrolling .voyalux-motes i,
html.is-scrolling .voyalux-pins i,
html.is-scrolling .voyalux-cta::after,
html.is-scrolling .voyamarq-track,
.voyamarq.is-offscreen .voyamarq-track,
html.is-scrolling .voyagate-craft,
html.is-scrolling .housebar-plane,
html.is-scrolling .brand-lux-ring,
html.is-scrolling .brand-lux-shine::after,
html.is-scrolling .mast-jaga-ring,
html.is-scrolling .mast-jaga-halo,
html.is-scrolling .deskfab-ring,
html.is-scrolling .deskfab-path,
html.is-scrolling .deskfab-pulse,
html.is-scrolling .footlux-jaga .mast-jaga-ring {
  animation-play-state: paused !important;
}
html.is-scrolling .voyalux-layer img { transition: none; }
.page-home .moodlux,
.page-home .atlaslux,
.page-home .luxpkg,
section.themelux,
section.voicelux {
  content-visibility: auto;
  contain-intrinsic-size: auto 780px;
}
/* .faqlux is excluded: paint containment from content-visibility stops its
   sticky desk from pinning.
   .ctalux is excluded: overflow + intrinsic size made it a nested scroller
   and trapped the mouse wheel before the footer. */

/* Homepage tour atlas — gold foil, no tour-card restyle */
.page-home .luxpkg-kicker,
.page-home .atlaslux-kicker,
.page-home .themelux-kicker {
  text-shadow: 0 0 18px rgba(201, 162, 74, 0.28);
}
.page-home .atlaslux-card {
  overflow: hidden;
}
.page-home .atlaslux-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 38%, rgba(247, 231, 188, 0.22) 50%, transparent 62%);
  transform: translate3d(-90%, 0, 0);
  opacity: 0;
}
.page-home .atlaslux-card:hover::after {
  opacity: 1;
  animation: vyShine 0.95s ease-out;
}
.page-home .atlaslux-stamp {
  animation: atlasStampFloat 5.5s ease-in-out infinite;
}
.page-home .luxpkg-stamp {
  animation: luxpkgStampFloat 6s ease-in-out infinite;
}
@keyframes atlasStampFloat {
  0%, 100% { transform: rotate(-12deg) translate3d(0, 0, 0); }
  50% { transform: rotate(-7deg) translate3d(0, -4px, 0); }
}
@keyframes luxpkgStampFloat {
  0%, 100% { transform: rotate(-18deg) translate3d(0, 0, 0); }
  50% { transform: rotate(-12deg) translate3d(0, -5px, 0); }
}
html.is-scrolling .page-home .atlaslux-stamp,
html.is-scrolling .page-home .luxpkg-stamp {
  animation-play-state: paused !important;
}

/* Footer all-destinations chip cloud */
.footer-alltours {
  padding: 26px 0 4px;
  margin-top: 8px;
  border-top: 1px solid var(--line);
}
.footer-alltours-label {
  display: block;
  font-size: 12px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-soft);
  margin-bottom: 14px;
}
.footer-alltours-row { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-alltours-chip {
  font-size: 12.5px; font-weight: 600; color: var(--ink-dim);
  padding: 6px 13px; border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid var(--line-strong);
  transition: color 0.2s var(--ease), background 0.2s var(--ease), transform 0.2s var(--ease), border-color 0.2s var(--ease);
}
.footer-alltours-chip:hover {
  color: #fff; transform: translateY(-2px);
  background: var(--grad-brand); border-color: transparent;
}

/* Tidy footer brand text so nothing reads "unstructured" */
.footer .footer-brand p { max-width: 300px; line-height: 1.7; }
.footer-contact-mini a, .footer-contact-mini span { line-height: 1.5; max-width: 300px; }

/* Compact quick-inquiry form in the package detail sidebar */
.side-quick-form { display: flex; flex-direction: column; gap: 10px; }
.side-quick-title {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sans); font-weight: 800; font-size: 14px;
  color: var(--ink); margin-bottom: 2px;
}
.side-quick-title svg { color: var(--blue-1); }
.side-quick-form input {
  width: 100%;
  padding: 11px 14px;
  font-family: var(--sans); font-size: 14px;
  color: var(--ink);
  background: var(--bg-cool);
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  outline: none;
  transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.side-quick-form input:focus {
  border-color: var(--blue-1);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
.side-quick-form .btn { width: 100%; margin-top: 2px; }

/* Real BNI member logo inside the highlight band */
.bni-band-logo {
  width: clamp(150px, 16vw, 210px);
  height: auto;
  border-radius: 16px;
  background: #fff;
  padding: 12px 16px;
  box-shadow: 0 20px 44px -22px rgba(184, 31, 45, 0.5);
}

/* ============================================================
   SERVICES SECTION (home) — cabs, flights, trains, buses
   ============================================================ */
.section-head--center { justify-content: center; text-align: center; }
.section-head--center > div { max-width: 720px; margin: 0 auto; }
.section-head--center .eyebrow::after,
.section-head--center .eyebrow::before { display: inline-block; }
.section-lede { margin: 14px auto 0; color: var(--ink-dim); font-size: 16px; line-height: 1.6; }

.services-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 40px;
}
.service-card {
  position: relative; display: flex; flex-direction: column; align-items: flex-start;
  padding: 30px 26px; border-radius: 20px;
  background: var(--surface, #fff); border: 1px solid var(--line);
  box-shadow: 0 10px 30px -22px rgba(28, 38, 90, 0.35);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
  overflow: hidden;
}
.service-card::before {
  content: ''; position: absolute; inset: 0; opacity: 0;
  background: linear-gradient(160deg, rgba(37,99,235,0.06), rgba(236,72,153,0.05));
  transition: opacity 0.35s var(--ease);
}
.service-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px -30px rgba(37, 99, 235, 0.4);
  border-color: rgba(37, 99, 235, 0.25);
}
.service-card:hover::before { opacity: 1; }
.service-card > * { position: relative; z-index: 1; }
.service-card-icon {
  width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center;
  background: var(--grad-brand); color: #fff; font-size: 24px; margin-bottom: 18px;
  box-shadow: 0 16px 32px -14px rgba(37, 99, 235, 0.55);
}
.service-card-title { font-size: 19px; color: var(--ink); margin: 0 0 8px; }
.service-card-text { font-size: 14px; color: var(--ink-dim); line-height: 1.6; margin: 0 0 18px; flex-grow: 1; }
.service-card-link {
  display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px;
  color: var(--blue-1); margin-top: auto;
}
.service-card-link svg { transition: transform 0.3s var(--ease); }
.service-card:hover .service-card-link svg { transform: translate(3px, -3px); }

@media (max-width: 980px) { .services-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .services-grid { grid-template-columns: 1fr; gap: 16px; } }

/* ============================================================
   SERVICE CROSS-LINKS — compact "complete your trip" strip
   ============================================================ */
.service-links-head { margin-bottom: 22px; }
.service-links-title {
  font-family: var(--serif); font-weight: 600; margin: 8px 0 0;
  font-size: clamp(20px, 2.6vw, 28px); color: var(--ink); line-height: 1.2;
}
.service-links { display: grid; gap: 14px; }
.service-links--2 { grid-template-columns: repeat(2, 1fr); }
.service-links--3 { grid-template-columns: repeat(3, 1fr); }
.service-links--4 { grid-template-columns: repeat(4, 1fr); }
.service-link-card {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 18px; border-radius: 16px;
  background: var(--surface, #fff); border: 1px solid var(--line-strong);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.service-link-card:hover {
  transform: translateY(-4px); border-color: rgba(37, 99, 235, 0.3);
  box-shadow: 0 22px 46px -26px rgba(37, 99, 235, 0.4);
}
.service-link-icon {
  flex-shrink: 0; width: 46px; height: 46px; border-radius: 13px;
  display: grid; place-items: center; color: #fff; background: var(--grad-brand);
  font-size: 19px;
}
.service-link-body { display: flex; flex-direction: column; line-height: 1.35; }
.service-link-body strong { font-size: 15px; color: var(--ink); }
.service-link-body span { font-size: 12.5px; color: var(--ink-dim); }
.service-link-arrow { margin-left: auto; color: var(--blue-1); flex-shrink: 0; transition: transform 0.3s var(--ease); }
.service-link-card:hover .service-link-arrow { transform: translate(3px, -3px); }

@media (max-width: 880px) {
  .service-links--3, .service-links--4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .service-links--2, .service-links--3, .service-links--4 { grid-template-columns: 1fr; }
}

/* ============================================================
   BOOKING WIDGETS — shared styles for Cab + Ticket booking forms
   ============================================================ */
.cab-booking, .ticket-booking {
  position: relative;
  background: var(--surface, #fff);
  border: 1px solid var(--line-strong);
  border-radius: 24px;
  padding: clamp(22px, 3vw, 36px);
  box-shadow: 0 36px 90px -50px rgba(28, 38, 90, 0.45);
}
/* Lift the booking widget up so it overlaps the title bar */
.cab-booking-section, .ticket-booking-section { margin-top: -56px; position: relative; z-index: 5; }

.cab-booking-head, .ticket-booking-head {
  display: flex; align-items: center; gap: 14px; margin-bottom: 22px;
}
.cab-booking-icon, .ticket-booking-icon {
  width: 52px; height: 52px; flex-shrink: 0;
  display: grid; place-items: center; border-radius: 15px;
  background: var(--grad-brand); color: #fff; font-size: 22px;
  box-shadow: 0 14px 30px -12px rgba(37, 99, 235, 0.55);
}
.cab-booking-head strong, .ticket-booking-head strong {
  display: block; font-size: 18px; color: var(--ink); font-weight: 700;
}
.cab-booking-head span, .ticket-booking-head span {
  display: block; font-size: 13.5px; color: var(--ink-dim); margin-top: 2px;
}

.cab-step-label {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-soft); margin: 22px 0 12px;
}
.cab-step-label span {
  width: 22px; height: 22px; border-radius: 50%;
  display: grid; place-items: center; font-size: 12px;
  background: var(--grad-brand); color: #fff;
}

.cab-trip-toggle, .ticket-trip-toggle {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px;
}
.cab-trip-opt, .ticket-trip-opt {
  padding: 10px 18px; border-radius: 999px;
  border: 1px solid var(--line-strong); background: var(--bg-cool, #f4f7ff);
  font-size: 13px; font-weight: 700; color: var(--ink-dim); cursor: pointer;
  transition: all 0.25s var(--ease);
}
.cab-trip-opt.is-active, .ticket-trip-opt.is-active {
  background: var(--grad-brand); color: #fff; border-color: transparent;
  box-shadow: 0 10px 22px -10px rgba(37, 99, 235, 0.5);
}

.cab-fields, .ticket-fields {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
}
.cab-field, .ticket-field { display: flex; flex-direction: column; gap: 7px; }
.cab-field > span, .ticket-field > span {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.04em; color: var(--ink-soft);
  text-transform: uppercase;
}
.cab-field input, .cab-field select,
.ticket-field input, .ticket-field select {
  width: 100%; padding: 12px 14px; font-family: var(--sans); font-size: 14.5px;
  color: var(--ink); background: var(--bg-cool, #f4f7ff);
  border: 1px solid var(--line-strong); border-radius: 12px; outline: none;
  transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.cab-field input:focus, .cab-field select:focus,
.ticket-field input:focus, .ticket-field select:focus {
  border-color: var(--blue-1); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
  background: #fff;
}

.cab-choose {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px;
}
.cab-choose-card {
  position: relative; cursor: pointer; display: flex; flex-direction: column;
  padding: 12px 12px 14px; border-radius: 16px; text-align: center;
  background: var(--bg-cool, #f4f7ff); border: 2px solid transparent;
  transition: border-color 0.25s var(--ease), transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.cab-choose-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.cab-choose-card input { position: absolute; opacity: 0; pointer-events: none; }
.cab-choose-card.is-active {
  border-color: var(--blue-1); background: #fff;
  box-shadow: 0 16px 34px -18px rgba(37, 99, 235, 0.45);
}
.cab-choose-card img { width: 100%; height: 64px; object-fit: contain; margin-bottom: 8px; }
.cab-choose-name { font-size: 13px; font-weight: 800; color: var(--ink); }
.cab-choose-meta { font-size: 11.5px; color: var(--ink-dim); margin-top: 2px; }

.cab-booking-actions, .ticket-booking-actions {
  display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px;
}
.cab-booking-actions .btn, .ticket-booking-actions .btn { flex: 1 1 auto; justify-content: center; }
.cab-booking-note {
  margin-top: 14px; font-size: 12.5px; color: var(--ink-soft); text-align: center;
}

/* ---- Ticket page specific ---- */
.ticket-perks {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
}
.ticket-perk {
  display: flex; gap: 13px; align-items: flex-start;
  padding: 20px; border-radius: 18px; background: var(--surface);
  border: 1px solid var(--line);
}
.ticket-perk-icon {
  flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px;
  display: grid; place-items: center; color: #fff; background: var(--grad-brand);
}
.ticket-perk-icon svg { width: 20px; height: 20px; }
.ticket-perk strong { display: block; font-size: 15px; color: var(--ink); }
.ticket-perk p { font-size: 13px; color: var(--ink-dim); margin-top: 3px; }

.ticket-routes {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
}
.ticket-route {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 20px; border-radius: 16px; cursor: pointer; text-align: left;
  background: var(--surface); border: 1px solid var(--line-strong);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.ticket-route:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--blue-1); }
.ticket-route-path { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--ink); }
.ticket-route-path svg { color: var(--blue-1); }
.ticket-route-price { font-weight: 800; color: var(--blue-1); font-size: 14px; white-space: nowrap; }

.ticket-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ticket-step {
  padding: 24px 22px; border-radius: 18px; background: var(--surface);
  border: 1px solid var(--line); position: relative;
}
.ticket-step-no {
  font-family: var(--serif); font-size: 30px; font-weight: 600;
  background: var(--grad-brand); -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; display: block; margin-bottom: 8px;
}
.ticket-step strong { display: block; font-size: 15.5px; color: var(--ink); }
.ticket-step p { font-size: 13.5px; color: var(--ink-dim); margin-top: 5px; }

.ticket-faq-wrap { max-width: 860px; }
.ticket-faqs { display: flex; flex-direction: column; gap: 12px; }
.ticket-faq {
  background: var(--surface); border: 1px solid var(--line-strong);
  border-radius: 14px; padding: 6px 20px;
}
.ticket-faq summary {
  cursor: pointer; padding: 14px 0; font-weight: 700; color: var(--ink);
  list-style: none; display: flex; justify-content: space-between; align-items: center;
}
.ticket-faq summary::after { content: '+'; font-size: 22px; color: var(--blue-1); }
.ticket-faq[open] summary::after { content: '\2212'; }
.ticket-faq p { padding: 0 0 16px; color: var(--ink-dim); font-size: 14px; line-height: 1.6; }

.ticket-cta, .contact-cta-band {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 22px; padding: 34px 40px; border-radius: 24px;
  background:
    radial-gradient(600px 300px at 10% -30%, rgba(6,182,212,0.45), transparent 70%),
    radial-gradient(600px 300px at 100% 130%, rgba(236,72,153,0.4), transparent 70%),
    var(--grad-brand);
  color: #fff; box-shadow: 0 36px 80px -36px rgba(109,40,217,0.55);
}
.ticket-cta h3 { color: #fff; font-size: clamp(1.4rem, 2.6vw, 2rem); margin: 0 0 6px; }
.ticket-cta p { color: rgba(255,255,255,0.9); margin: 0; }
.ticket-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.ticket-cta .btn.btn-primary { background: #fff; color: var(--ink); }
.ticket-cta .btn.btn-ghost { color: #fff; border: 1px solid rgba(255,255,255,0.5); }

@media (max-width: 1000px) {
  .cab-fields, .ticket-fields { grid-template-columns: repeat(2, 1fr); }
  .cab-choose { grid-template-columns: repeat(3, 1fr); }
  .ticket-perks { grid-template-columns: repeat(2, 1fr); }
  .ticket-steps { grid-template-columns: repeat(2, 1fr); }
  .ticket-routes { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .cab-booking-section, .ticket-booking-section { margin-top: -36px; }
  .cab-fields, .ticket-fields { grid-template-columns: 1fr; }
  .cab-choose { grid-template-columns: 1fr 1fr; }
  .ticket-perks, .ticket-steps, .ticket-routes { grid-template-columns: 1fr; }
  .cab-booking-actions .btn, .ticket-booking-actions .btn { flex-basis: 100%; }
  .ticket-cta, .contact-cta-band { padding: 26px 22px; }
}

/* Honour HTML hidden even when a rule sets display:flex/grid */
.pd-lightbox[hidden],
.pd-modal-bg[hidden],
.lightbox[hidden],
.fab-menu[hidden],
.deskfab-rail[hidden],
.deskfab-panel[hidden],
.hero--cine[hidden],
#hero[hidden] {
  display: none !important;
}

/* ============================================================
   HOME — header in its own bar (no overlay) + luxury hero
   ============================================================ */
body.page-home { --topbar-h: 84px; --nav-h: 74px; }
body.page-home main.page-enter { animation: none; }

body.page-home .site-masthead .nav {
  position: relative;
  top: auto;
  z-index: 3;
  isolation: isolate;
  padding: 0 10px 12px;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 0;
  box-shadow: none;
}
body.page-home .nav .nav-inner {
  min-height: var(--nav-h);
  align-items: center;
  gap: 22px;
  overflow: visible;
}

body.page-home .nav .nav-links {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
}
body.page-home .nav .nav-cta { flex: 0 0 auto; }

.hero.hero--luxe {
  height: calc(100svh - var(--topbar-h, 37px) - var(--nav-h, 72px));
  min-height: 620px;
  max-height: none;
  color: #fff;
  isolation: isolate;
}
.hero.hero--luxe .hero-stage { z-index: 0; background: #07080f; }
.hero.hero--luxe .hero-bg-layer {
  opacity: 0;
  z-index: 0;
  transition: opacity 0.5s ease;
}
.hero.hero--luxe .hero-bg-layer.is-leaving {
  opacity: 1;
  z-index: 1;
}
.hero.hero--luxe .hero-bg-layer.is-active {
  opacity: 1;
  z-index: 2;
}
.hero.hero--luxe .hero-stage::before,
.hero.hero--luxe .hero-stage::after { display: none !important; }

.hero.hero--luxe .hero-bg-layer .hero-video,
.hero.hero--luxe .hero-bg-layer .hero-fallback-img {
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition: none;
  will-change: auto;
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.hero.hero--luxe .hero-bg-layer.is-active .hero-video,
.hero.hero--luxe .hero-bg-layer.is-active .hero-fallback-img {
  transform: none !important;
  filter: none !important;
  animation: none !important;
}
.hero.hero--luxe .hero-scrim-cinematic {
  z-index: 3;
  background:
    linear-gradient(90deg, rgba(6, 8, 18, 0.22) 0%, rgba(6, 8, 18, 0.06) 22%, rgba(6, 8, 18, 0) 48%),
    linear-gradient(180deg, rgba(6, 8, 18, 0.04) 0%, rgba(6, 8, 18, 0) 40%, rgba(6, 8, 18, 0.16) 80%, rgba(6, 8, 18, 0.42) 100%);
}
.hero.hero--luxe .hero-grain { display: none; }

.hero.hero--luxe .hero-watermark {
  position: absolute;
  right: -2%;
  top: 46%;
  transform: translateY(-50%);
  z-index: 5;
  pointer-events: none;
  font-family: var(--serif);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(88px, 16vw, 220px);
  line-height: 0.8;
  letter-spacing: -0.06em;
  color: rgba(255, 255, 255, 0.07);
  white-space: nowrap;
  user-select: none;
  transition: opacity 0.6s var(--ease);
}
.hero.hero--luxe .hero-watermark span {
  display: inline-block;
  animation: heroWatermark 1.2s var(--ease) both;
}

.hero.hero--luxe .hero-topline {
  top: 28px;
  left: clamp(28px, 6vw, 88px);
  transform: none;
  z-index: 6;
}

.hero.hero--luxe .hero-inner {
  z-index: 6;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 0 clamp(28px, 6vw, 88px) 120px;
  max-width: none;
  margin: 0;
}
.hero.hero--luxe .hero-main {
  max-width: 720px;
  margin: 0;
  text-align: left;
  padding-bottom: 0;
}
.hero.hero--luxe .hero-main::before { display: none; }
.hero.hero--luxe .hero-card {
  align-items: flex-start;
}
.hero.hero--luxe .hero-kicker {
  margin-bottom: 18px;
  color: rgba(255, 255, 255, 0.78);
}
.hero.hero--luxe .hero-title {
  font-weight: 400 !important;
  font-size: clamp(42px, 6.2vw, 84px);
  line-height: 0.96;
  letter-spacing: -0.038em;
  text-align: left;
  margin: 0 0 22px;
  max-width: 14ch;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}
.hero.hero--luxe .hero-title .line {
  overflow: hidden;
  display: block;
}
.hero.hero--luxe .hero-title .line > span {
  display: inline-block;
}
.hero.hero--luxe .hero-title .italic {
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  -webkit-text-fill-color: unset;
  color: inherit;
  font-weight: 400;
  filter: none;
  animation: none;
  text-shadow: none;
}
.hero.hero--luxe .hero-title .italic > span {
  background: linear-gradient(120deg, #A5F3FC 0%, #FFFFFF 42%, #FBCFE8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hero.hero--luxe .hero-sub {
  text-align: left;
  margin: 0 0 26px;
  max-width: 34em;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(15px, 1.25vw, 17.5px);
  line-height: 1.7;
}
.hero.hero--luxe .hero-meta {
  justify-content: flex-start;
  margin: 0 0 28px;
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
  backdrop-filter: none;
}
.hero.hero--luxe .hero-actions {
  justify-content: flex-start;
}
.hero.hero--luxe .hero-actions .btn {
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), background 0.45s var(--ease);
}
.hero.hero--luxe .hero-actions .btn:hover { transform: translateY(-3px); }

.hero.hero--luxe .hero-card.is-out .hero-kicker,
.hero.hero--luxe .hero-card.is-out .hero-title .line > span,
.hero.hero--luxe .hero-card.is-out .hero-sub,
.hero.hero--luxe .hero-card.is-out .hero-meta,
.hero.hero--luxe .hero-card.is-out .hero-actions {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.hero.hero--luxe .hero-card.is-in .hero-kicker,
.hero.hero--luxe .hero-card.is-in .hero-title .line > span,
.hero.hero--luxe .hero-card.is-in .hero-sub,
.hero.hero--luxe .hero-card.is-in .hero-meta,
.hero.hero--luxe .hero-card.is-in .hero-actions {
  animation: heroRise 0.95s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.hero.hero--luxe .hero-card.is-in .hero-title .line.italic > span { animation-delay: 0.1s; }
.hero.hero--luxe .hero-card.is-in .hero-sub { animation-delay: 0.18s; }
.hero.hero--luxe .hero-card.is-in .hero-meta { animation-delay: 0.26s; }
.hero.hero--luxe .hero-card.is-in .hero-actions { animation-delay: 0.34s; }

@keyframes heroRise {
  from { opacity: 0; transform: translateY(28px); filter: blur(6px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes heroWatermark {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}

.hero.hero--luxe .hero-dots { display: none; }

.hero.hero--luxe .hero-rail {
  position: absolute;
  z-index: 7;
  left: clamp(28px, 6vw, 88px);
  right: clamp(28px, 6vw, 88px);
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.hero-nav-btn {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  display: grid; place-items: center;
  cursor: pointer;
  backdrop-filter: blur(12px);
  transition: background 0.35s var(--ease), transform 0.35s var(--ease);
}
.hero-nav-btn:hover { background: rgba(255, 255, 255, 0.2); transform: scale(1.06); }
.hero-ticks {
  display: flex; align-items: center; gap: 7px;
  flex: 1;
}
.hero-tick {
  appearance: none; border: 0; padding: 0;
  height: 3px; flex: 1; max-width: 42px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.28);
  cursor: pointer;
  transition: transform 0.35s var(--ease), background 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.hero-tick:hover { background: rgba(255, 255, 255, 0.55); }
.hero-tick.is-active {
  background: linear-gradient(90deg, #A5F3FC, #F9A8D4);
  transform: scaleY(1.8);
  box-shadow: 0 0 16px rgba(165, 243, 252, 0.45);
}
.hero-rail-copy {
  display: flex; align-items: baseline; gap: 14px;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700;
}
.hero-rail-copy strong {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: 20px; letter-spacing: -0.02em; text-transform: none; color: #fff;
}
.hero.hero--luxe .hero-control {
  left: 0; right: 0; bottom: 0; width: 100%;
  transform: none;
  z-index: 7;
  padding: 0;
}
.hero.hero--luxe .hero-progress-line {
  height: 2px; border-radius: 0;
  background: rgba(255, 255, 255, 0.12);
}
.hero.hero--luxe .hero-progress-fill {
  background: linear-gradient(90deg, #67E8F9, #FFFFFF 45%, #F9A8D4);
  box-shadow: 0 0 18px rgba(249, 168, 212, 0.45);
  animation-timing-function: linear;
}

@media (max-width: 900px) {
  .hero.hero--luxe {
    height: calc(100svh - var(--topbar-h, 46px) - var(--nav-h, 60px));
    min-height: 560px;
  }
  .hero.hero--luxe .hero-watermark { display: none; }
  .hero.hero--luxe .hero-topline { left: 50%; transform: translateX(-50%); top: 20px; }
  .hero.hero--luxe .hero-inner {
    align-items: center;
    padding: 110px 22px 110px;
    justify-content: center;
  }
  .hero.hero--luxe .hero-main,
  .hero.hero--luxe .hero-title,
  .hero.hero--luxe .hero-sub { text-align: center; margin-left: auto; margin-right: auto; }
  .hero.hero--luxe .hero-card,
  .hero.hero--luxe .hero-meta,
  .hero.hero--luxe .hero-actions { align-items: center; justify-content: center; }
  .hero.hero--luxe .hero-kicker { margin-left: auto; margin-right: auto; }
  .hero.hero--luxe .hero-rail { left: 16px; right: 16px; bottom: 22px; gap: 10px; }
  .hero-rail-copy strong { font-size: 16px; }
  .hero-tick { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero.hero--luxe .hero-bg-layer,
  .hero.hero--luxe .hero-bg-layer .hero-video {
    transition: none;
  }
  .hero.hero--luxe .hero-card.is-in * { animation: none !important; }
}

/* ============================================================
   CINEMATIC HERO — ultra-luxury travel slider
   ============================================================ */
.hero.hero--cine {
  --cine-gold: #d4af6a;
  --cine-gold-2: #f4dfa4;
  --cine-gold-3: #a9803a;
  --cine-ink: #04070f;
  height: calc(100svh - var(--topbar-h, 84px) - var(--nav-h, 74px));
  min-height: 660px;
  max-height: none;
  color: #fff;
  isolation: isolate;
  overflow: hidden;
}
.hero.hero--cine .hero-stage { z-index: 0; background: var(--cine-ink); overflow: hidden; }
.hero.hero--cine .hero-bg-layer {
  overflow: hidden;
  opacity: 0;
  z-index: 0;
  transition: opacity 1.35s ease;
}
.hero.hero--cine .hero-bg-layer.is-leaving { opacity: 1; z-index: 1; }
.hero.hero--cine .hero-bg-layer.is-active { opacity: 1; z-index: 2; }
.hero.hero--cine .hero-stage::before,
.hero.hero--cine .hero-stage::after { display: none !important; }

.hero.hero--cine .hero-bg-layer .hero-video,
.hero.hero--cine .hero-bg-layer .hero-fallback-img {
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  transform: none;
  animation: none;
}
.hero.hero--cine .hero-bg-layer.is-active[data-ken="l"] .hero-fallback-img {
  animation: cineKenL 24s ease-in-out infinite alternate;
}
.hero.hero--cine .hero-bg-layer.is-active[data-ken="r"] .hero-fallback-img {
  animation: cineKenR 24s ease-in-out infinite alternate;
}
@keyframes cineKenL {
  from { transform: scale(1.0) translate3d(0, 0, 0); }
  to { transform: scale(1.03) translate3d(-1.2%, -0.4%, 0); }
}
@keyframes cineKenR {
  from { transform: scale(1.0) translate3d(0, 0, 0); }
  to { transform: scale(1.03) translate3d(1.2%, -0.4%, 0); }
}

/* cinematic grading: warm navy shadows, clean highlights */
.cine-scrim {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    radial-gradient(120% 90% at 8% 62%, rgba(3, 8, 22, 0.86) 0%, rgba(3, 8, 22, 0.5) 34%, rgba(3, 8, 22, 0) 62%),
    linear-gradient(180deg, rgba(3, 8, 22, 0.72) 0%, rgba(3, 8, 22, 0.1) 24%, rgba(3, 8, 22, 0.16) 56%, rgba(3, 8, 22, 0.9) 100%),
    linear-gradient(90deg, rgba(6, 20, 44, 0.34) 0%, rgba(6, 20, 44, 0) 46%, rgba(6, 20, 44, 0.4) 100%);
}
.cine-sweep {
  position: absolute;
  inset: -20% -40%;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 38%, rgba(255, 240, 200, 0.09) 47%, rgba(255, 240, 200, 0.16) 50%, rgba(255, 240, 200, 0.09) 53%, transparent 62%);
  transform: translateX(-40%);
  animation: cineSweep 13s ease-in-out infinite;
}
@keyframes cineSweep {
  0%, 62% { transform: translateX(-45%); opacity: 0; }
  70% { opacity: 1; }
  100% { transform: translateX(45%); opacity: 0; }
}
.cine-sweep { display: none; }
.cine-grain {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0.05;
  background-image: none;
}
.hero.hero--cine.is-photo .hero-video { display: none; }
.cine-veil {
  position: absolute;
  inset: 0;
  z-index: 4;
  background: radial-gradient(120% 100% at 50% 50%, #061024 0%, #02040c 100%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}
.cine-veil.is-on { opacity: 0.6; }

/* gold hairline frame with corner brackets */
.cine-frame {
  position: absolute;
  inset: clamp(14px, 1.6vw, 26px);
  z-index: 5;
  pointer-events: none;
  border: 1px solid rgba(240, 215, 140, 0.16);
  border-radius: 6px;
}
.cine-corner {
  position: absolute;
  width: 34px;
  height: 34px;
  border: 0 solid var(--cine-gold);
  opacity: 0.85;
  filter: drop-shadow(0 0 6px rgba(212, 175, 106, 0.5));
}
.cine-corner--tl { top: -1px; left: -1px; border-top-width: 1.5px; border-left-width: 1.5px; border-top-left-radius: 6px; }
.cine-corner--tr { top: -1px; right: -1px; border-top-width: 1.5px; border-right-width: 1.5px; border-top-right-radius: 6px; }
.cine-corner--bl { bottom: -1px; left: -1px; border-bottom-width: 1.5px; border-left-width: 1.5px; border-bottom-left-radius: 6px; }
.cine-corner--br { bottom: -1px; right: -1px; border-bottom-width: 1.5px; border-right-width: 1.5px; border-bottom-right-radius: 6px; }
.hero.hero--cine.is-ready .cine-corner { animation: cineCorner 1.1s cubic-bezier(0.22, 1, 0.36, 1) both; }
.hero.hero--cine.is-ready .cine-corner--tr { animation-delay: 0.1s; }
.hero.hero--cine.is-ready .cine-corner--bl { animation-delay: 0.2s; }
.hero.hero--cine.is-ready .cine-corner--br { animation-delay: 0.3s; }
@keyframes cineCorner {
  from { opacity: 0; transform: scale(0.5); }
  to { opacity: 0.85; transform: scale(1); }
}

/* floating gold dust */
.cine-dust { display: none; }
.cine-dust i {
  position: absolute;
  bottom: -6%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 240, 200, 0.95), rgba(212, 175, 106, 0));
  animation: cineDust 18s linear infinite;
}
.cine-dust i:nth-child(1) { left: 8%; animation-duration: 17s; animation-delay: 0s; }
.cine-dust i:nth-child(2) { left: 18%; animation-duration: 21s; animation-delay: 2.5s; width: 3px; height: 3px; }
.cine-dust i:nth-child(3) { left: 27%; animation-duration: 15s; animation-delay: 5s; }
.cine-dust i:nth-child(4) { left: 39%; animation-duration: 23s; animation-delay: 1.2s; width: 5px; height: 5px; }
.cine-dust i:nth-child(5) { left: 48%; animation-duration: 19s; animation-delay: 7s; width: 3px; height: 3px; }
.cine-dust i:nth-child(6) { left: 58%; animation-duration: 16s; animation-delay: 3.4s; }
.cine-dust i:nth-child(7) { left: 68%; animation-duration: 22s; animation-delay: 8.5s; width: 3px; height: 3px; }
.cine-dust i:nth-child(8) { left: 77%; animation-duration: 18s; animation-delay: 4.2s; width: 5px; height: 5px; }
.cine-dust i:nth-child(9) { left: 86%; animation-duration: 20s; animation-delay: 6.4s; }
.cine-dust i:nth-child(10) { left: 94%; animation-duration: 14s; animation-delay: 9.6s; width: 3px; height: 3px; }
@keyframes cineDust {
  0% { transform: translate3d(0, 0, 0) scale(0.6); opacity: 0; }
  12% { opacity: 0.9; }
  70% { opacity: 0.6; }
  100% { transform: translate3d(28px, -108vh, 0) scale(1.1); opacity: 0; }
}

/* ---- top row ---- */
.cine-top {
  position: absolute;
  z-index: 7;
  top: clamp(30px, 4vh, 52px);
  left: clamp(38px, 5vw, 74px);
  right: clamp(38px, 5vw, 74px);
  display: flex;
  align-items: center;
  gap: 24px;
}
.cine-loc {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 18px 8px 8px;
  border-radius: 999px;
  border: 1px solid rgba(240, 215, 140, 0.28);
  background: rgba(6, 14, 30, 0.42);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  box-shadow: 0 16px 40px -26px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
}
.cine-loc-pin {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #f4dfa4, #c9a24a);
  color: #10203c;
  font-size: 11px;
  box-shadow: 0 6px 14px -6px rgba(212, 175, 106, 0.9);
}
.cine-loc-name { white-space: nowrap; }
.cine-loc-line {
  width: 26px;
  height: 1px;
  background: linear-gradient(90deg, rgba(240, 215, 140, 0.2), var(--cine-gold));
}
.cine-count { display: inline-flex; align-items: baseline; gap: 5px; letter-spacing: 0.12em; }
.cine-count-now {
  display: inline-block;
  min-width: 1.5em;
  text-align: right;
  color: var(--cine-gold-2);
  font-size: 12px;
}
.cine-count-all { color: rgba(255, 255, 255, 0.55); }
.cine-count-now.is-flip { animation: cineCount 0.45s ease; }
@keyframes cineCount {
  0% { opacity: 1; transform: translateY(0); }
  45% { opacity: 0; transform: translateY(-10px); }
  46% { opacity: 0; transform: translateY(10px); }
  100% { opacity: 1; transform: translateY(0); }
}
.cine-count-sep { color: rgba(240, 215, 140, 0.5); }

.cine-mantra {
  margin: 0 0 10px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
}
.cine-mantra span { color: var(--cine-gold); margin: 0 8px; }

.cine-watch {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 7px 22px 7px 7px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(6, 14, 30, 0.4);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  color: #fff;
  cursor: pointer;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  flex: 0 0 auto;
  transition: border-color 0.3s ease, background 0.3s ease, transform 0.3s ease;
}
.cine-watch:hover {
  border-color: rgba(240, 215, 140, 0.6);
  background: rgba(212, 175, 106, 0.16);
  transform: translateY(-1px);
}
.cine-watch-play {
  position: relative;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  background: linear-gradient(180deg, #f4dfa4, #c9a24a);
  display: grid;
  place-items: center;
  color: #10203c;
  font-size: 10px;
}
.cine-watch-play i { margin-left: 1.5px; }
.cine-watch-play::after {
  content: '';
  position: absolute;
  inset: -7px;
  border-radius: 50%;
  border: 1px solid rgba(240, 215, 140, 0.5);
  animation: cinePulse 2.8s ease-in-out infinite;
}
@keyframes cinePulse {
  0%, 100% { transform: scale(1); opacity: 0.75; }
  50% { transform: scale(1.18); opacity: 0; }
}

/* ---- vertical index ---- */
.cine-vnav {
  position: absolute;
  right: clamp(30px, 3.4vw, 48px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 7;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
}
.cine-vnum {
  background: none;
  border: 0;
  color: rgba(255, 255, 255, 0.4);
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  cursor: pointer;
  position: relative;
  padding: 7px 14px 7px 0;
  transition: color 0.35s ease, transform 0.35s var(--ease);
}
.cine-vnum:hover { color: rgba(255, 255, 255, 0.8); }
.cine-vnum.is-active { color: var(--cine-gold-2); transform: translateX(-6px); }
.cine-vnum::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  width: 18px;
  height: 1.5px;
  border-radius: 2px;
  background: var(--cine-gold);
  transform: translateY(-50%) scaleX(0);
  transform-origin: right center;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 0 10px rgba(212, 175, 106, 0.8);
}
.cine-vnum.is-active::after { transform: translateY(-50%) scaleX(1); }

/* ---- main copy ---- */
.cine-main {
  position: absolute;
  z-index: 7;
  left: clamp(38px, 5vw, 74px);
  top: 47%;
  transform: translateY(-50%);
  max-width: min(660px, 52vw);
}
.cine-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--cine-gold-2);
}
.cine-kicker-rule {
  width: 46px;
  height: 1px;
  flex: 0 0 auto;
  background: linear-gradient(90deg, var(--cine-gold), rgba(240, 215, 140, 0));
}
.cine-title {
  margin: 0 0 18px;
  color: #fff;
  font-family: 'Cormorant Garamond', var(--serif);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.02em;
}
.cine-place {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: clamp(52px, 6.8vw, 96px);
  font-weight: 600;
  background: linear-gradient(180deg, #ffffff 8%, #fff6e0 48%, #e8c987 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.55));
}
.cine-sun {
  width: 30px;
  height: 30px;
  color: var(--cine-gold);
  flex: 0 0 auto;
  -webkit-text-fill-color: initial;
  animation: cineSun 22s linear infinite;
}
@keyframes cineSun { to { transform: rotate(360deg); } }
.cine-lyric {
  display: block;
  margin-top: 10px;
  font-size: clamp(26px, 3.2vw, 42px);
  font-weight: 400;
  font-style: italic;
  color: rgba(255, 255, 255, 0.74);
  letter-spacing: 0.01em;
}
.cine-sub {
  margin: 0 0 26px;
  max-width: 34em;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.8);
}
.cine-feats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 30px;
}
.cine-feat {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.9);
  transition: border-color 0.3s ease, background 0.3s ease;
}
.cine-feat:hover { border-color: rgba(240, 215, 140, 0.45); background: rgba(212, 175, 106, 0.12); }
.cine-feat i { color: var(--cine-gold-2); font-size: 13px; }

.cine-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.cine-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 8px 8px 8px 28px;
  border-radius: 999px;
  overflow: hidden;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #171104;
  background: linear-gradient(100deg, #b8924a 0%, #f4dfa4 44%, #e0bc72 70%, #b8924a 100%);
  background-size: 220% 100%;
  background-position: 0% 0;
  box-shadow: 0 18px 40px -18px rgba(212, 175, 106, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: background-position 0.7s var(--ease), transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.cine-cta::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.65), transparent);
  transform: skewX(-18deg);
  animation: cineShine 4.6s ease-in-out infinite;
}
@keyframes cineShine {
  0%, 55% { left: -60%; }
  85%, 100% { left: 130%; }
}
.cine-cta-orb {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #10203c;
  color: var(--cine-gold-2);
  font-size: 12px;
  transition: transform 0.35s var(--ease);
}
.cine-cta:hover {
  transform: translateY(-2px);
  background-position: 100% 0;
  box-shadow: 0 22px 48px -16px rgba(240, 215, 140, 0.7);
}
.cine-cta:hover .cine-cta-orb { transform: translateX(4px) rotate(-8deg); }
.cine-ghost {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 24px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: background 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}
.cine-ghost:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.6);
  transform: translateY(-2px);
}

/* ---- signature script ---- */
.cine-sign {
  position: absolute;
  z-index: 7;
  left: clamp(38px, 5vw, 74px);
  bottom: clamp(52px, 6.4vh, 72px);
  max-width: 42vw;
}
.cine-script {
  margin: 0;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.1;
  color: var(--cine-gold-2);
  text-shadow: 0 6px 24px rgba(0, 0, 0, 0.6);
  opacity: 0.95;
}
.cine-script::after {
  content: '';
  display: block;
  width: 84px;
  height: 1px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--cine-gold), transparent);
}

/* ---- thumbnail rail ---- */
.cine-rail {
  position: absolute;
  z-index: 7;
  left: 0;
  right: 0;
  bottom: clamp(48px, 6vh, 66px);
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.cine-thumbs {
  display: flex;
  gap: 10px;
  pointer-events: auto;
  padding: 10px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(6, 14, 30, 0.34);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 30px 70px -40px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.cine-thumb {
  width: 112px;
  border: 0;
  padding: 0;
  background: none;
  cursor: pointer;
  position: relative;
  border-radius: 13px;
  overflow: hidden;
  isolation: isolate;
  opacity: 0.66;
  transform: scale(1);
  transition: transform 0.45s var(--ease), opacity 0.4s ease, box-shadow 0.4s ease;
}
.cine-thumb img {
  width: 100%;
  height: 66px;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform 0.7s var(--ease);
}
.cine-thumb span {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 16px 8px 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(180deg, transparent, rgba(3, 8, 22, 0.85));
}
.cine-thumb:hover { opacity: 1; transform: translateY(-3px); }
.cine-thumb:hover img { transform: scale(1.1); }
.cine-thumb.is-active {
  opacity: 1;
  transform: translateY(-3px);
  box-shadow: 0 0 0 1.5px var(--cine-gold), 0 12px 28px -14px rgba(212, 175, 106, 0.9);
  animation: cineGlow 3s ease-in-out infinite;
}
@keyframes cineGlow {
  0%, 100% { box-shadow: 0 0 0 1.5px var(--cine-gold), 0 12px 26px -16px rgba(212, 175, 106, 0.7); }
  50% { box-shadow: 0 0 0 1.5px var(--cine-gold-2), 0 14px 34px -12px rgba(240, 215, 140, 0.95); }
}

/* ---- foot controls ---- */
.cine-foot {
  position: absolute;
  z-index: 7;
  right: clamp(38px, 5vw, 74px);
  bottom: clamp(100px, 11vh, 122px);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}
.cine-arrows { display: flex; gap: 10px; }
.cine-nav {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(240, 215, 140, 0.32);
  background: rgba(6, 14, 30, 0.4);
  color: var(--cine-gold-2);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 13px;
  transition: transform 0.35s var(--ease), background 0.35s ease, box-shadow 0.35s ease, color 0.35s ease;
}
.cine-nav i { transition: transform 0.35s var(--ease); }
.cine-nav:hover {
  background: linear-gradient(180deg, #f4dfa4, #c9a24a);
  color: #10203c;
  border-color: transparent;
  box-shadow: 0 16px 34px -16px rgba(212, 175, 106, 0.95);
}
.cine-nav[data-hero-prev]:hover i { transform: translateX(-4px); }
.cine-nav[data-hero-next]:hover i { transform: translateX(4px); }

.cine-cats {
  display: flex;
  gap: 6px;
  margin: 0 auto;
  flex: 0 0 auto;
  padding: 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(6, 14, 30, 0.34);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.cine-cat {
  background: none;
  border: 0;
  padding: 7px 14px;
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  cursor: pointer;
  position: relative;
  transition: color 0.3s ease, background 0.3s ease;
}
.cine-cat:hover { color: #fff; }
.cine-cat.is-active {
  color: #171104;
  background: linear-gradient(180deg, #f4dfa4, #c9a24a);
  box-shadow: 0 8px 18px -10px rgba(212, 175, 106, 0.95);
}

/* ---- slide progress ---- */
.cine-prog {
  position: absolute;
  z-index: 7;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: rgba(255, 255, 255, 0.08);
  pointer-events: none;
}
.cine-prog i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #b8924a, #f4dfa4 60%, #fff6e0);
  box-shadow: 0 0 14px rgba(240, 215, 140, 0.8);
}
.cine-main.is-in ~ .cine-prog i { animation: cineProg 8s linear both; }
@keyframes cineProg { from { width: 0; } to { width: 100%; } }

/* ---- copy transitions ---- */
.hero.hero--cine .cine-main.is-out .cine-kicker,
.hero.hero--cine .cine-main.is-out .cine-place,
.hero.hero--cine .cine-main.is-out .cine-lyric,
.hero.hero--cine .cine-main.is-out .cine-sub,
.hero.hero--cine .cine-main.is-out .cine-feat,
.hero.hero--cine .cine-main.is-out .cine-actions {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.32s ease, transform 0.32s ease;
}
.hero.hero--cine .cine-main.is-in .cine-kicker { animation: cineRise 0.6s cubic-bezier(0.22, 1, 0.36, 1) both; }
.hero.hero--cine .cine-main.is-in .cine-place { animation: cineRise 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both; }
.hero.hero--cine .cine-main.is-in .cine-lyric { animation: cineRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both; }
.hero.hero--cine .cine-main.is-in .cine-sub { animation: cineRise 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.32s both; }
.hero.hero--cine .cine-main.is-in .cine-feat:nth-child(1) { animation: cineRise 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.44s both; }
.hero.hero--cine .cine-main.is-in .cine-feat:nth-child(2) { animation: cineRise 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.53s both; }
.hero.hero--cine .cine-main.is-in .cine-feat:nth-child(3) { animation: cineRise 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.62s both; }
.hero.hero--cine .cine-main.is-in .cine-actions { animation: cineRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.72s both; }
.hero.hero--cine.is-ready .cine-rail { animation: cineRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.9s both; }
.hero.hero--cine.is-ready .cine-foot { animation: cineRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 1s both; }
  .hero.hero--cine.is-ready .cine-sign { animation: cineRise 1s cubic-bezier(0.22, 1, 0.36, 1) 1.1s both; }
@keyframes cineRise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

.cine-modal {
  position: fixed;
  inset: 0;
  z-index: 400;
  background: rgba(4, 6, 12, 0.94);
  display: grid;
  place-items: center;
  padding: 40px 20px;
}
.cine-modal[hidden] { display: none; }
.cine-modal video {
  width: min(1100px, 100%);
  max-height: 80vh;
  background: #000;
  border-radius: 12px;
  box-shadow: 0 0 0 1px rgba(240, 215, 140, 0.3), 0 60px 120px -50px rgba(0, 0, 0, 1);
}
.cine-modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(240, 215, 140, 0.4);
  background: rgba(255, 255, 255, 0.08);
  color: var(--cine-gold-2);
  cursor: pointer;
}

@media (max-width: 1440px) {
  .cine-thumb { width: 98px; }
  .cine-thumb img { height: 58px; }
  .cine-top { gap: 16px; }
}
@media (max-width: 1280px) {
  .cine-main { max-width: min(560px, 54vw); }
  .cine-thumb { width: 90px; }
  .cine-thumb img { height: 54px; }
  .cine-cat { padding: 6px 11px; letter-spacing: 0.08em; }
  .cine-loc { padding: 7px 14px 7px 7px; letter-spacing: 0.14em; gap: 9px; }
}
@media (max-width: 1024px) {
  .cine-vnav { display: none; }
  .cine-mantra { display: none; }
  .cine-rail { justify-content: flex-end; padding-right: clamp(38px, 5vw, 74px); bottom: clamp(124px, 15vh, 152px); }
  .cine-watch-txt { display: none; }
  .cine-watch { padding: 6px; }
}
@media (max-width: 900px) {
  .hero.hero--cine {
    height: auto;
    min-height: calc(100svh - var(--topbar-h, 46px) - var(--nav-h, 60px));
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
  }
  .hero.hero--cine > .cine-main,
  .hero.hero--cine > .cine-rail,
  .hero.hero--cine > .cine-foot { flex: 0 0 auto; width: 100%; box-sizing: border-box; }
  .cine-frame { inset: 10px; }
  .cine-corner { width: 22px; height: 22px; }
  .cine-vnav, .cine-sign, .cine-mantra { display: none; }
  .cine-top { left: 16px; right: 16px; top: 16px; gap: 10px; flex-wrap: wrap; }
  .cine-cats { order: 3; flex: 1 1 100%; margin: 0; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
  .cine-cats::-webkit-scrollbar { display: none; }
  .cine-loc { padding: 6px 14px 6px 6px; font-size: 9px; letter-spacing: 0.14em; gap: 9px; }
  .cine-loc-pin { width: 24px; height: 24px; font-size: 10px; }
  .cine-watch { padding: 5px 5px 5px 5px; }
  .cine-watch-txt { display: none; }
  .cine-main {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    max-width: none;
    padding: 132px 20px 0;
    z-index: 7;
  }
  .cine-kicker { margin-bottom: 12px; letter-spacing: 0.24em; }
  .cine-kicker-rule { width: 26px; }
  .cine-place { font-size: clamp(40px, 12vw, 58px); gap: 10px; }
  .cine-sun { width: 22px; height: 22px; }
  .cine-lyric { font-size: clamp(20px, 6vw, 26px); }
  .cine-sub { font-size: 14px; margin-bottom: 20px; }
  .cine-feats { gap: 8px; margin-bottom: 22px; }
  .cine-feat { padding: 6px 12px; font-size: 10.5px; }
  .cine-cta { padding: 6px 6px 6px 20px; font-size: 11px; }
  .cine-cta-orb { width: 32px; height: 32px; }
  .cine-ghost { padding: 11px 18px; font-size: 10.5px; }
  .cine-rail {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    justify-content: flex-start;
    margin: 30px 20px 0;
    padding: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
    margin-top: auto;
  }
  .cine-thumbs { gap: 8px; border-radius: 16px; padding: 8px; }
  .cine-thumb { width: 92px; flex: 0 0 92px; }
  .cine-thumb img { height: 54px; }
  .cine-foot {
    position: relative;
    right: auto;
    bottom: auto;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 18px 20px 30px;
  }
  .cine-cats { gap: 4px; padding: 4px; }
  .cine-cat { padding: 6px 10px; font-size: 9px; letter-spacing: 0.1em; }
  .cine-nav { width: 42px; height: 42px; }
  .cine-dust { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero.hero--cine .hero-bg-layer .hero-video,
  .hero.hero--cine .hero-bg-layer .hero-fallback-img,
  .cine-watch-play::after,
  .cine-sweep,
  .cine-dust i,
  .cine-sun,
  .cine-cta::after,
  .cine-thumb.is-active { animation: none !important; }
  .hero.hero--cine .cine-main.is-in * { animation: none !important; }
  .hero.hero--cine.is-ready .cine-corner { animation: none !important; }
}

/* ============================================================
   TOUR PACKAGES — white glass / tour theme
   ============================================================ */
.luxpkg {
  --lp-gold: #c9a24a;
  --lp-gold-2: #b8924a;
  --lp-gold-3: #8a6a2c;
  --lp-teal: #1a8f7c;
  --lp-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 116px) 0 clamp(64px, 7vw, 104px);
  color: var(--lp-ink);
  scroll-margin-top: 170px;
  background:
    radial-gradient(920px 440px at 8% -6%, rgba(201, 162, 74, 0.16), transparent 58%),
    radial-gradient(860px 420px at 96% 8%, rgba(26, 143, 124, 0.1), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f7f1e4 46%, #fffdf8 100%);
}

/* ---- backdrop ---- */
.luxpkg-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.luxpkg-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.55;
  will-change: transform;
}
.luxpkg-aurora--1 {
  width: 46vw; height: 46vw;
  left: -12vw; top: -14vw;
  background: radial-gradient(circle, rgba(26, 143, 124, 0.28) 0%, rgba(26, 143, 124, 0) 68%);
  animation: lpDrift1 26s ease-in-out infinite alternate;
}
.luxpkg-aurora--2 {
  width: 52vw; height: 52vw;
  right: -14vw; top: -10vw;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.32) 0%, rgba(201, 162, 74, 0) 68%);
  animation: lpDrift2 32s ease-in-out infinite alternate;
}
.luxpkg-aurora--3 {
  width: 58vw; height: 44vw;
  left: 24vw; bottom: -20vw;
  background: radial-gradient(circle, rgba(184, 146, 74, 0.18) 0%, rgba(184, 146, 74, 0) 70%);
  animation: lpDrift3 38s ease-in-out infinite alternate;
}
@keyframes lpDrift1 {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(6vw, 5vh, 0) scale(1.14); }
}
@keyframes lpDrift2 {
  from { transform: translate3d(0, 0, 0) scale(1.08); }
  to { transform: translate3d(-7vw, 6vh, 0) scale(1); }
}
@keyframes lpDrift3 {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-5vw, -6vh, 0) scale(1.12); }
}
.luxpkg-grid {
  position: absolute;
  inset: 0;
  opacity: 0.55;
  background-image:
    linear-gradient(rgba(18, 23, 43, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 23, 43, 0.045) 1px, transparent 1px);
  background-size: 78px 78px;
  -webkit-mask-image: radial-gradient(120% 90% at 50% 30%, #000 0%, transparent 72%);
  mask-image: radial-gradient(120% 90% at 50% 30%, #000 0%, transparent 72%);
}
.luxpkg-photo {
  position: absolute;
  inset: 0;
  background: url('../images/pangong_tso_lake.png') center 62% / cover no-repeat;
  opacity: 0.055;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 28%, #000 72%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 28%, #000 72%, transparent 100%);
}
.luxpkg-route {
  position: absolute;
  left: 0;
  right: 0;
  top: 1%;
  width: 100%;
  height: 30%;
  overflow: visible;
}
.luxpkg-route-line {
  fill: none;
  stroke: rgba(184, 146, 74, 0.42);
  stroke-width: 1.6;
  stroke-dasharray: 7 10;
  filter: drop-shadow(0 0 4px rgba(201, 162, 74, 0.35));
  animation: lpDash 40s linear infinite;
}
@keyframes lpDash { to { stroke-dashoffset: -680; } }
.luxpkg-plane {
  position: absolute;
  left: 0;
  top: 3%;
  color: var(--lp-gold-2);
  width: 56px;
  filter: drop-shadow(0 4px 10px rgba(184, 146, 74, 0.45));
  animation: lpPlane 22s ease-in-out infinite;
}
.luxpkg-plane .svg-plane { width: 56px; }
@keyframes lpPlane {
  0% { transform: translate3d(-6vw, 60px, 0) rotate(56deg); opacity: 0; }
  8% { opacity: 1; }
  50% { transform: translate3d(50vw, 8px, 0) rotate(64deg); opacity: 1; }
  92% { opacity: 1; }
  100% { transform: translate3d(106vw, -48px, 0) rotate(58deg); opacity: 0; }
}
.luxpkg-stamp {
  position: absolute;
  right: 7%;
  bottom: 9%;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  border: 2px dashed rgba(184, 146, 74, 0.45);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: rgba(138, 106, 44, 0.55);
  transform: rotate(-18deg);
  background: radial-gradient(circle, rgba(255,255,255,0.28), transparent 70%);
}
.luxpkg-stamp i { font-size: 22px; }
.luxpkg-stamp em {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.luxpkg-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.luxpkg-fade { position: absolute; left: 0; right: 0; height: 130px; }
.luxpkg-fade--t { top: 0; background: linear-gradient(180deg, rgba(255, 253, 248, 0.92), transparent); }
.luxpkg-fade--b { bottom: 0; background: linear-gradient(0deg, rgba(255, 253, 248, 0.88), transparent); }

.luxpkg-inner {
  position: relative;
  z-index: 2;
  width: min(1480px, 100%);
  margin: 0 auto;
  padding: 0 clamp(18px, 3vw, 40px);
}

/* ---- header ---- */
.luxpkg-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: clamp(38px, 4.4vw, 62px);
}
.luxpkg-head-copy { max-width: 660px; }
.luxpkg-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 12px 26px -20px rgba(18, 23, 43, 0.45);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.luxpkg-kicker i { font-size: 12px; color: var(--lp-gold-2); animation: lpCompass 8s ease-in-out infinite; }
@keyframes lpCompass {
  0%, 100% { transform: rotate(-14deg); }
  50% { transform: rotate(14deg); }
}
.luxpkg-title {
  margin: 18px 0 14px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(44px, 5.6vw, 82px);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--lp-ink);
}
.luxpkg-title em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.luxpkg-lead {
  margin: 0 0 16px;
  max-width: 54ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.66);
}
.luxpkg-pills {
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.5);
}
.luxpkg-pills span {
  width: 5px;
  height: 5px;
  border-radius: 1px;
  background: var(--lp-gold);
  transform: rotate(45deg);
  box-shadow: 0 0 8px rgba(201, 162, 74, 0.55);
}

.luxpkg-head-aside {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
}
.luxpkg-script {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  color: var(--lp-gold-2);
  white-space: nowrap;
}
.luxpkg-script i {
  font-size: 17px;
  color: #e0654f;
  filter: drop-shadow(0 0 6px rgba(224, 101, 79, 0.45));
  animation: lpHeart 2.4s ease-in-out infinite;
}
@keyframes lpHeart {
  0%, 100% { transform: scale(1); }
  35% { transform: scale(1.22); }
  60% { transform: scale(0.96); }
}
.luxpkg-badges { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.luxpkg-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.28);
  background: rgba(255, 255, 255, 0.58);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 10px 22px -18px rgba(18, 23, 43, 0.4);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: rgba(18, 23, 43, 0.78);
  white-space: nowrap;
  transition: border-color 0.3s ease, background 0.3s ease, transform 0.3s ease;
}
.luxpkg-badge:hover {
  border-color: rgba(184, 146, 74, 0.55);
  background: rgba(255, 255, 255, 0.88);
  transform: translateY(-2px);
}
.luxpkg-badge i { color: var(--lp-gold-2); font-size: 12px; }

/* ---- carousel shell ---- */
.luxpkg-carousel { position: relative; display: flex; align-items: center; gap: 16px; }
.luxpkg-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  flex: 1 1 auto;
  padding: 8px 4px 14px;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: none;
  cursor: grab;
  scrollbar-width: none;
}
.luxpkg-viewport::-webkit-scrollbar { display: none; }
.luxpkg-viewport.is-dragging { cursor: grabbing; user-select: none; }
.luxpkg-track {
  display: flex;
  gap: 22px;
  transform: none !important;
  transition: none;
}

/* ---- card ---- */
.luxpkg-card {
  position: relative;
  flex: 0 0 360px;
  width: 360px;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  background: rgba(255, 255, 255, 0.42);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  box-shadow:
    0 28px 56px -36px rgba(18, 23, 43, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease), background 0.5s ease;
}
.luxpkg-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  padding: 1px;
  background: linear-gradient(160deg, rgba(201, 162, 74, 0.7) 0%, rgba(201, 162, 74, 0.12) 34%, rgba(26, 143, 124, 0.28) 68%, rgba(201, 162, 74, 0.45) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 3;
  opacity: 0.85;
  transition: opacity 0.45s ease;
}
.luxpkg-card { scroll-snap-align: start; }
.luxpkg-card:hover {
  transform: translateY(-10px);
  background: rgba(255, 255, 255, 0.62);
  box-shadow:
    0 44px 80px -38px rgba(18, 23, 43, 0.42),
    0 0 0 1px rgba(201, 162, 74, 0.22),
    0 18px 40px -26px rgba(184, 146, 74, 0.35);
}
.luxpkg-card:hover::before { opacity: 1; }

.luxpkg-media {
  position: relative;
  height: 300px;
  overflow: hidden;
}
.luxpkg-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  transition: transform 0.9s var(--ease);
}
.luxpkg-card:hover .luxpkg-media img { transform: scale(1.12); }
.luxpkg-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 12, 26, 0.18) 0%, rgba(8, 12, 26, 0) 42%, rgba(8, 12, 26, 0.22) 100%);
}
.luxpkg-tag,
.luxpkg-days {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  white-space: nowrap;
}
.luxpkg-tag {
  left: 14px;
  top: 14px;
  color: #171104;
  background: linear-gradient(180deg, #f4dfa4, #cfa552);
  box-shadow: 0 10px 22px -12px rgba(201, 162, 74, 0.85);
}
.luxpkg-tag i { font-size: 11px; }
.luxpkg-days {
  left: 14px;
  bottom: 14px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.34);
  background: rgba(18, 23, 43, 0.42);
}
.luxpkg-days i { color: #f4dfa4; font-size: 10px; }
.luxpkg-heart {
  position: absolute;
  z-index: 2;
  right: 14px;
  top: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 13px;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s var(--ease), border-color 0.3s ease;
}
.luxpkg-heart:hover { transform: scale(1.1); background: rgba(255, 255, 255, 0.42); color: #d1362a; }
.luxpkg-heart.is-on {
  color: #fff;
  background: linear-gradient(180deg, #f4675a, #d1362a);
  border-color: transparent;
}
.luxpkg-heart.is-pop { animation: lpPop 0.42s var(--ease); }
@keyframes lpPop {
  0% { transform: scale(1); }
  45% { transform: scale(1.28); }
  100% { transform: scale(1); }
}

.luxpkg-body {
  position: relative;
  z-index: 2;
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.luxpkg-region {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lp-gold-2);
}
.luxpkg-region i { font-size: 10px; opacity: 0.85; }
.luxpkg-name {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 27px;
  font-weight: 600;
  line-height: 1.1;
  color: var(--lp-ink);
}
.luxpkg-line {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
  color: rgba(18, 23, 43, 0.62);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.luxpkg-amenities {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  padding: 12px 0;
  border-top: 1px solid rgba(18, 23, 43, 0.08);
  border-bottom: 1px solid rgba(18, 23, 43, 0.08);
}
.luxpkg-amenities span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(18, 23, 43, 0.62);
}
.luxpkg-amenities i { color: var(--lp-teal); font-size: 11px; }

.luxpkg-foot {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 2px;
}
.luxpkg-price { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.luxpkg-price em {
  font-style: normal;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.42);
}
.luxpkg-price strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
  color: var(--lp-gold-2);
  white-space: nowrap;
}
.luxpkg-price s {
  font-size: 11px;
  color: rgba(18, 23, 43, 0.38);
}
.luxpkg-cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 6px 6px 6px 15px;
  border-radius: 999px;
  border: 1px solid rgba(184, 146, 74, 0.4);
  background: rgba(255, 255, 255, 0.55);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lp-ink);
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s var(--ease);
}
.luxpkg-cta-orb {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #f4dfa4, #c9a24a);
  color: #171104;
  font-size: 10px;
  transition: transform 0.35s var(--ease);
}
.luxpkg-cta:hover {
  background: linear-gradient(100deg, #b8924a, #f4dfa4 52%, #c9a24a);
  border-color: transparent;
  color: #171104;
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -16px rgba(201, 162, 74, 0.85);
}
.luxpkg-cta:hover .luxpkg-cta-orb { background: #171104; color: #f4dfa4; transform: translateX(3px); }

/* ---- nav + dots ---- */
.luxpkg-nav {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid rgba(184, 146, 74, 0.38);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--lp-gold-2);
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 14px;
  box-shadow: 0 12px 24px -18px rgba(18, 23, 43, 0.4);
  transition: background 0.35s ease, color 0.35s ease, transform 0.35s var(--ease), box-shadow 0.35s ease, border-color 0.35s ease;
}
.luxpkg-nav i { transition: transform 0.35s var(--ease); }
.luxpkg-nav:hover {
  background: linear-gradient(180deg, #f4dfa4, #c9a24a);
  color: #171104;
  border-color: transparent;
  box-shadow: 0 18px 36px -16px rgba(201, 162, 74, 0.85);
}
.luxpkg-nav--prev:hover i { transform: translateX(-3px); }
.luxpkg-nav--next:hover i { transform: translateX(3px); }
.luxpkg-nav[disabled] { opacity: 0.3; cursor: default; }
.luxpkg-nav[disabled]:hover {
  background: rgba(255, 255, 255, 0.62);
  color: var(--lp-gold-2);
  box-shadow: none;
  border-color: rgba(184, 146, 74, 0.38);
}

.luxpkg-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  margin-top: 30px;
}
.luxpkg-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(18, 23, 43, 0.18);
  cursor: pointer;
  transition: width 0.45s var(--ease), background 0.35s ease, box-shadow 0.35s ease;
}
.luxpkg-dot:hover { background: rgba(18, 23, 43, 0.4); }
.luxpkg-dot.is-active {
  width: 34px;
  background: linear-gradient(90deg, #c9a24a, #f4dfa4);
  box-shadow: 0 0 12px rgba(201, 162, 74, 0.55);
}

@media (max-width: 1100px) {
  .luxpkg-head { flex-direction: column; align-items: flex-start; gap: 26px; }
  .luxpkg-head-aside { align-items: flex-start; }
  .luxpkg-badges { justify-content: flex-start; }
}
@media (max-width: 900px) {
  .luxpkg { padding: 62px 0 52px; }
  .luxpkg-nav { display: none; }
  .luxpkg-carousel { gap: 0; }
  .luxpkg-viewport {
    overflow-x: auto;
    scroll-snap-type: none;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 8px;
  }
  .luxpkg-viewport::-webkit-scrollbar { display: none; }
  .luxpkg-track { transform: none !important; gap: 14px; }
  .luxpkg-card { flex: 0 0 min(86vw, 340px); width: min(86vw, 340px); scroll-snap-align: start; }
  .luxpkg-media { height: 260px; }
  .luxpkg-foot { flex-direction: column; align-items: stretch; gap: 12px; }
  .luxpkg-cta { justify-content: space-between; padding-left: 18px; }
  .luxpkg-price strong { font-size: 23px; }
  .luxpkg-title { font-size: clamp(38px, 11vw, 52px); }
  .luxpkg-script { font-size: 28px; }
  .luxpkg-lead { font-size: 14px; }
  .luxpkg-badge { font-size: 10px; padding: 8px 13px; }
  .luxpkg-plane,
  .luxpkg-stamp { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .luxpkg-aurora,
  .luxpkg-route-line,
  .luxpkg-plane,
  .luxpkg-kicker i,
  .luxpkg-script i { animation: none !important; }
  .luxpkg-track { transition: none; }
}

/* ============================================================
   SITE MASTHEAD — navy wave topbar + cream pill nav
   ============================================================ */
:root {
  --mast-navy: #00234B;
  --mast-navy-2: #001530;
  --mast-gold: #d4af6a;
  --mast-gold-2: #f0d78c;
  --mast-gold-3: #b8924a;
  --mast-cream: #FDF8EE;
  --mast-script: 'Great Vibes', cursive;
}

.site-masthead-spacer {
  height: var(--mast-offset, 180px);
  pointer-events: none;
}
.site-masthead {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 400;
  width: 100%;
  overflow: visible;
  background: var(--mast-navy-2);
  --topbar-h: 84px;
  --nav-h: 74px;
}
.site-masthead .container {
  max-width: 1480px;
  width: 100%;
}

.mast-top {
  position: relative;
  z-index: 2;
  color: #fff;
  background:
    radial-gradient(720px 140px at 72% 10%, rgba(255, 176, 70, 0.18), transparent 62%),
    radial-gradient(520px 120px at 18% 120%, rgba(80, 160, 255, 0.16), transparent 70%),
    linear-gradient(180deg, #06356e 0%, var(--mast-navy) 48%, var(--mast-navy-2) 100%);
  overflow: visible;
}
.mast-glow {
  position: absolute;
  inset: 0 0 18px;
  pointer-events: none;
  background: radial-gradient(420px 80px at 50% 0%, rgba(255, 214, 140, 0.16), transparent 72%);
}
/* Flock crossing the navy band, looping forever */
.mast-birds {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.mast-bird {
  position: absolute;
  left: 0;
  top: var(--t, 20%);
  width: 100%;
  height: 0;
  animation: birdFly var(--s, 20s) linear var(--d, 0s) infinite;
}
@keyframes birdFly {
  0% { transform: translateX(-7%); opacity: 0; }
  9% { opacity: 1; }
  88% { opacity: 1; }
  100% { transform: translateX(107%); opacity: 0; }
}
.mast-bird-bob {
  display: block;
  width: 42px;
  color: rgba(246, 234, 198, 0.9);
  filter: drop-shadow(0 0 4px rgba(255, 214, 140, 0.45)) drop-shadow(0 1px 2px rgba(0, 12, 30, 0.55));
  animation: birdBob calc(var(--s, 20s) / 7) ease-in-out infinite;
}
@keyframes birdBob {
  0%, 100% { transform: translateY(3px) scale(var(--z, 1)); }
  50% { transform: translateY(-5px) scale(var(--z, 1)); }
}
.mast-bird svg { display: block; width: 100%; height: auto; overflow: visible; }
.mast-wing {
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  transform-box: fill-box;
}
.mast-wing--l {
  transform-origin: 100% 100%;
  animation: birdWingL var(--f, 0.46s) ease-in-out infinite;
}
.mast-wing--r {
  transform-origin: 0% 100%;
  animation: birdWingR var(--f, 0.46s) ease-in-out infinite;
}
.mast-bird-body { fill: currentColor; }
@keyframes birdWingL {
  0%, 100% { transform: rotate(-17deg); }
  50% { transform: rotate(13deg); }
}
@keyframes birdWingR {
  0%, 100% { transform: rotate(17deg); }
  50% { transform: rotate(-13deg); }
}

@media (prefers-reduced-motion: reduce) {
  .mast-birds { display: none; }
}

.mast-top-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 76px;
  padding: 10px 0 6px;
}
.mast-contacts,
.mast-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.mast-contacts { gap: 8px; justify-self: start; }
.mast-tools { justify-self: end; }
.mast-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px 6px 6px;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.05) 100%);
  border: 1px solid rgba(232, 216, 168, 0.38);
  box-shadow:
    0 8px 22px -16px rgba(0, 12, 32, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  min-width: 0;
  flex: 0 0 auto;
  transition: border-color 0.25s var(--ease), transform 0.25s var(--ease), background 0.25s var(--ease);
}
.mast-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(240, 215, 140, 0.7);
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.07) 100%);
}
.mast-chip-ico {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #f0d78c 0%, #d4af6a 52%, #b8924a 100%);
  color: #001530;
  font-size: 13px;
  box-shadow: 0 6px 14px -6px rgba(184, 146, 74, 0.85);
}
.mast-chip-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  overflow: hidden;
  line-height: 1.15;
}
.mast-chip-copy em {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mast-gold-2);
}
.mast-chip-copy strong {
  display: block;
  font-size: 13.5px;
  font-weight: 650;
  color: #fff;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mast-chip--mail { flex: 0 1 auto; min-width: 0; }
.mast-dd > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  list-style: none;
  cursor: pointer;
}
.mast-dd > summary:hover { color: var(--mast-gold-2); }
.mast-dd > summary i { color: var(--mast-gold); font-size: 12px; }
.mast-caret { font-size: 9px !important; opacity: 0.8; margin-left: 2px; }
.mast-dd { position: relative; }
.mast-dd > summary { background: none; border: 0; }
.mast-dd > summary::-webkit-details-marker { display: none; }
.mast-dd-menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 150px;
  padding: 8px;
  background: #fffdf8;
  color: #0b1f3d;
  border-radius: 14px;
  border: 1px solid rgba(212, 175, 106, 0.35);
  box-shadow: 0 18px 40px -20px rgba(0, 20, 50, 0.45);
  z-index: 30;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mast-dd--tool .mast-dd-menu { left: auto; right: 0; }
.mast-dd-menu span,
.mast-dd-menu button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  border: 0;
  background: transparent;
  border-radius: 9px;
  font-size: 12.5px;
  font-weight: 600;
  color: #0b1f3d;
  cursor: default;
}
.mast-dd-menu button { cursor: pointer; }
.mast-dd-menu button:hover,
.mast-dd-menu span:hover { background: rgba(212, 175, 106, 0.16); }

.mast-mid {
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  pointer-events: none;
}
.mast-slogan { position: relative; text-align: center; flex: 0 1 auto; min-width: 0; }
.mast-script {
  position: relative;
  margin: 0;
  font-family: var(--mast-script);
  font-size: 27px;
  line-height: 1.05;
  color: var(--mast-gold-2);
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
  white-space: nowrap;
  padding: 0 30px;
}
.mast-script::before,
.mast-script::after {
  content: '';
  position: absolute;
  top: 52%;
  width: 22px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--mast-gold));
  opacity: 0.85;
}
.mast-script::before { left: 0; }
.mast-script::after { right: 0; transform: scaleX(-1); }
.mast-sub {
  margin: 3px 0 0;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
  white-space: nowrap;
}
.mast-sub span { color: var(--mast-gold); margin: 0 5px; }

.mast-jaga {
  width: 46px;
  height: 52px;
  flex: 0 0 auto;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.42));
  animation: mastJaga 5.5s ease-in-out infinite;
}
.mast-jaga svg { width: 100%; height: 100%; display: block; }
@keyframes mastJaga {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.04); }
}
.mast-jay {
  font-family: var(--mast-script);
  font-size: 21px;
  color: var(--mast-gold-2);
  white-space: nowrap;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.mast-socials { display: flex; align-items: center; gap: 8px; }
.mast-socials a {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 12px;
  transition: background 0.25s var(--ease), transform 0.25s var(--ease), color 0.25s var(--ease);
}
.mast-socials a:hover {
  background: var(--mast-gold);
  color: var(--mast-navy);
  transform: translateY(-1px);
}

.mast-wave {
  display: block;
  width: 100%;
  height: 32px;
  margin-bottom: -22px;
  position: relative;
  z-index: 5;
  pointer-events: none;
  overflow: visible;
}
.mast-wave-fill { fill: var(--mast-navy-2); }
.mast-wave-stroke {
  stroke: var(--mast-gold);
  stroke-width: 2.6;
  filter: drop-shadow(0 0 5px rgba(212, 175, 106, 0.95));
}

/* Cream overlapping nav */
.site-masthead .nav {
  position: relative !important;
  top: auto !important;
  z-index: 3;
  margin-top: 0;
  padding: 0 16px 12px !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}
.site-masthead .nav-stage {
  display: flex;
  align-items: flex-end;
  position: relative;
  overflow: visible;
  gap: 0;
}
.site-masthead .nav-inner {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  min-height: 72px;
  padding: 8px 18px 8px 10px;
  background:
    linear-gradient(180deg, #fffef9 0%, var(--mast-cream) 100%);
  border-radius: 999px;
  box-shadow:
    0 18px 40px -22px rgba(0, 35, 75, 0.45),
    0 2px 0 rgba(255, 255, 255, 0.9) inset;
  border: 1px solid rgba(212, 175, 106, 0.28);
  overflow: visible;
  gap: 14px;
}
.site-masthead .nav.scrolled .nav-inner {
  box-shadow: 0 14px 32px -20px rgba(0, 35, 75, 0.4);
}

.site-masthead .nav .brand-logo {
  position: relative;
  flex: 0 0 188px;
  width: 188px;
  max-width: 188px;
  height: auto;
  min-height: 56px;
  max-height: none;
  background: var(--mast-cream);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  isolation: isolate;
}
.site-masthead .nav.scrolled .brand-logo {
  width: 176px;
  max-width: 176px;
  flex-basis: 176px;
}
.brand-temple-mark {
  position: absolute;
  left: -8px;
  top: -6px;
  width: 200px;
  height: 70px;
  z-index: 0;
  pointer-events: none;
  opacity: 0.7;
}
.brand-temple-mark svg { width: 100%; height: 100%; }
.site-masthead .nav .brand-logo-video {
  position: relative;
  z-index: 1;
  width: 180px;
  height: 52px;
  object-fit: contain;
  object-position: center center;
  mix-blend-mode: multiply;
}
.brand-tagline {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: -2px;
  padding-left: 6px;
  font-family: var(--mast-script);
  font-size: 13px;
  line-height: 1;
  color: #c43b3b;
  white-space: nowrap;
}

.site-masthead .nav-links {
  flex: 1 1 auto;
  justify-content: center;
  gap: 2px;
  padding: 5px;
  background: #fff;
  border: 1px solid rgba(15, 35, 75, 0.06);
  box-shadow: 0 10px 24px -16px rgba(0, 35, 75, 0.28);
}
.site-masthead .nav-link {
  padding: 8px 8px;
  font-size: 12px;
  font-weight: 700;
  color: #1f2a44;
  gap: 5px;
}
.site-masthead .nav-link:hover {
  background: rgba(0, 35, 75, 0.05);
  color: var(--mast-navy);
}
.site-masthead .nav-link.active {
  background: var(--mast-navy);
  color: #fff;
  box-shadow: 0 10px 18px -10px rgba(0, 35, 75, 0.65);
}
.nav-ico { font-size: 12px; }
.nav-ico--gold { color: #c9a24a; }
.nav-ico--teal { color: #1a8f7c; }
.nav-ico--blue { color: #2b6cb0; }
.nav-ico--amber { color: #d97706; }
.nav-ico--navy { color: #1e3a5f; }
.site-masthead .nav-link.active .nav-ico { color: var(--mast-gold-2); }
.nav-caret { font-size: 9px; opacity: 0.55; margin-left: 1px; }
.site-masthead .nav-link.active .nav-caret { opacity: 0.8; color: #fff; }

.site-masthead .nav-cta {
  gap: 10px;
  margin-left: auto;
  flex: 0 0 auto;
  padding-right: 8px;
}
.nav-search {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(15, 35, 75, 0.08);
  background: #fff;
  color: var(--mast-navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 18px -12px rgba(0, 35, 75, 0.45);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.nav-search:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 22px -12px rgba(0, 35, 75, 0.5);
}

.site-masthead .nav-book {
  background: linear-gradient(180deg, #f3e0b0 0%, #d4af6a 48%, #b8924a 100%) !important;
  color: var(--mast-navy) !important;
  padding: 8px 8px 8px 14px !important;
  gap: 8px;
  box-shadow: 0 12px 24px -12px rgba(184, 146, 74, 0.8), inset 0 1px 0 rgba(255,255,255,.55) !important;
  border: 1px solid rgba(255, 255, 255, 0.35);
  letter-spacing: 0.02em;
}
.site-masthead .nav-book:hover {
  transform: translateY(-2px);
  background-position: 0 0;
  box-shadow: 0 16px 28px -12px rgba(184, 146, 74, 0.9), inset 0 1px 0 rgba(255,255,255,.65) !important;
}
.site-masthead .nav-book > i { color: var(--mast-navy); font-size: 13px; }
.site-masthead .nav-book:hover > i,
.site-masthead .nav-book:hover svg { transform: none; }
.nav-book-go {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 35, 75, 0.12);
  color: var(--mast-navy);
  font-size: 11px;
}

.site-masthead .mobile-toggle {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(0, 35, 75, 0.16);
  color: var(--mast-navy);
  box-shadow: 0 8px 16px -12px rgba(0, 35, 75, 0.4);
}
.hamburger {
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  display: block;
  position: relative;
}
.hamburger::before,
.hamburger::after {
  content: '';
  position: absolute;
  left: 0;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 0.25s var(--ease), top 0.25s var(--ease);
}
.hamburger::before { top: -6px; }
.hamburger::after { top: 6px; }
.mobile-toggle.is-open .hamburger { background: transparent; }
.mobile-toggle.is-open .hamburger::before { top: 0; transform: rotate(45deg); }
.mobile-toggle.is-open .hamburger::after { top: 0; transform: rotate(-45deg); }

.nav-peacock {
  position: absolute;
  right: -10px;
  bottom: -22px;
  flex: none;
  width: 168px;
  height: 228px;
  margin: 0;
  pointer-events: none;
  z-index: 18;
  overflow: visible;
  transform-origin: 62% 100%;
  animation: pkPerch 7.2s ease-in-out infinite;
  will-change: transform;
  filter: drop-shadow(0 16px 18px rgba(8, 28, 48, 0.32));
}
.nav-peacock-glow,
.nav-peacock-orbit,
.nav-peacock-sheen,
.nav-peacock-sparkles {
  position: absolute;
  pointer-events: none;
}
.nav-peacock-glow {
  inset: 8% 4% 2% 4%;
  border-radius: 46% 54% 42% 58%;
  background:
    radial-gradient(circle at 48% 38%, rgba(247, 231, 188, 0.62), rgba(6, 182, 212, 0.2) 42%, transparent 72%);
  filter: blur(11px);
  animation: pkHalo 5.4s ease-in-out infinite;
  z-index: 0;
}
.nav-peacock-orbit { display: none; }
.nav-peacock img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
  object-fit: contain;
  object-position: center bottom;
  animation: pkGleam 7.6s ease-in-out infinite;
}
.nav-peacock-sheen {
  inset: 6% 10% 8% 10%;
  z-index: 2;
  border-radius: 40% 46% 36% 48%;
  background: linear-gradient(
    118deg,
    transparent 28%,
    rgba(255, 244, 214, 0) 38%,
    rgba(255, 236, 190, 0.55) 50%,
    rgba(180, 245, 255, 0.18) 56%,
    transparent 68%
  );
  background-size: 240% 100%;
  mix-blend-mode: soft-light;
  animation: pkSheen 5.8s ease-in-out infinite;
}
.nav-peacock-sparkles {
  inset: 0;
  z-index: 3;
}
.nav-peacock-sparkles i {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff6d8;
  box-shadow: 0 0 8px rgba(201, 162, 74, 0.9);
  animation: pkSpark 3.8s ease-in-out infinite;
}
.nav-peacock-sparkles i:nth-child(1) { top: 14%; left: 38%; animation-delay: 0s; }
.nav-peacock-sparkles i:nth-child(2) { top: 28%; left: 62%; width: 3px; height: 3px; animation-delay: 0.9s; }
.nav-peacock-sparkles i:nth-child(3) { top: 48%; left: 22%; animation-delay: 1.6s; }
.nav-peacock-sparkles i:nth-child(4) { top: 62%; left: 70%; width: 3px; height: 3px; animation-delay: 2.4s; }
@keyframes pkPerch {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
  24% { transform: translate3d(-2px, -7px, 0) rotate(-2.1deg) scale(1.035); }
  52% { transform: translate3d(2px, -3px, 0) rotate(1.6deg) scale(1.02); }
  76% { transform: translate3d(-1px, -6px, 0) rotate(-1.1deg) scale(1.03); }
}
@keyframes pkHalo {
  0%, 100% { opacity: 0.5; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.12); }
}
@keyframes pkOrbit {
  to { transform: rotate(360deg); }
}
@keyframes pkGleam {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(201, 162, 74, 0)); }
  42% { filter: drop-shadow(0 0 12px rgba(201, 162, 74, 0.5)); }
}
@keyframes pkSheen {
  0%, 100% { background-position: 130% 0; opacity: 0; }
  35% { opacity: 0.85; }
  72% { background-position: -40% 0; opacity: 0.2; }
}
@keyframes pkSpark {
  0%, 100% { opacity: 0; transform: translate3d(0, 4px, 0) scale(0.6); }
  40% { opacity: 1; transform: translate3d(0, -3px, 0) scale(1); }
  70% { opacity: 0.35; transform: translate3d(2px, -6px, 0) scale(0.8); }
}
@media (prefers-reduced-motion: reduce) {
  .nav-peacock,
  .nav-peacock-glow,
  .nav-peacock-orbit,
  .nav-peacock-sheen,
  .nav-peacock-sparkles i,
  .nav-peacock img,
  .mast-jaga { animation: none !important; }
}

.mast-mobile-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.mast-mobile-actions .nav-search,
.mast-mobile-actions .mobile-toggle {
  display: inline-flex;
  width: 34px;
  height: 34px;
  min-width: 34px;
}
@media (min-width: 901px) {
  .mast-mobile-actions { display: none !important; }
}

.site-masthead.is-compact {
  box-shadow: 0 18px 40px -24px rgba(0, 20, 50, 0.55);
}
.site-masthead.is-compact .mast-mid { display: none; }
.site-masthead.is-compact .mast-top-inner { min-height: 46px; padding: 5px 0 0; }
.site-masthead.is-compact .mast-wave { height: 22px; margin-bottom: -16px; }
.site-masthead.is-compact .nav-peacock { width: 148px; height: 200px; right: -8px; bottom: -18px; }
.site-masthead.is-compact .mast-chip-copy em { display: none; }
.site-masthead.is-compact .mast-chip { padding: 4px 12px 4px 4px; }
.site-masthead.is-compact .mast-chip-ico { width: 28px; height: 28px; font-size: 12px; }

.mast-search {
  position: fixed;
  inset: 0;
  z-index: 500;
  background: rgba(0, 20, 50, 0.42);
  display: flex;
  justify-content: center;
  padding: 120px 20px 40px;
}
.mast-search[hidden] { display: none; }
.mast-search-panel {
  width: min(640px, 100%);
  background: var(--mast-cream);
  border-radius: 22px;
  border: 1px solid rgba(212, 175, 106, 0.35);
  box-shadow: 0 40px 80px -28px rgba(0, 20, 50, 0.55);
  overflow: hidden;
  align-self: flex-start;
}
.mast-search-form {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(15, 35, 75, 0.08);
}
.mast-search-form i { color: var(--mast-gold-3); }
.mast-search-form input {
  flex: 1;
  border: 0;
  background: transparent;
  font-size: 16px;
  outline: none;
  color: var(--mast-navy);
}
.mast-search-close {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 35, 75, 0.06);
  cursor: pointer;
  color: var(--mast-navy);
}
.mast-search-results { padding: 10px; max-height: 360px; overflow: auto; }
.mast-search-hit {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 12px;
  border-radius: 12px;
  color: var(--mast-navy);
}
.mast-search-hit:hover { background: rgba(212, 175, 106, 0.16); }
.mast-search-hit strong { font-size: 14px; }
.mast-search-hit span { font-size: 12px; color: #6b7289; }
.mast-search-empty { padding: 22px 12px; text-align: center; color: #6b7289; font-size: 14px; }

html { scroll-padding-top: var(--mast-offset, 150px); }

@media (max-width: 1740px) {
  .mast-jay { display: none; }
}
@media (max-width: 1500px) {
  .mast-jaga { display: none; }
  .mast-chip-copy strong { font-size: 12.5px; }
  .mast-chip-ico { width: 31px; height: 31px; font-size: 12px; }
}
@media (max-width: 1700px) {
  .site-masthead .nav .brand-logo { width: 172px; flex-basis: 172px; max-width: 172px; }
}
@media (max-width: 1520px) {
  .mast-script { font-size: 25px; }
  .site-masthead .nav-cta { padding-right: 8px; }
  .nav-peacock { width: 150px; height: 204px; right: -8px; bottom: -18px; }
  .site-masthead .nav .brand-logo { width: 170px; flex-basis: 170px; max-width: 170px; }
}
@media (max-width: 1400px) {
  .mast-script { font-size: 24px; }
  .site-masthead .nav-link { padding: 7px 6px; font-size: 11.5px; gap: 4px; }
  .mast-chip-copy em { display: none; }
  .mast-chip { padding: 5px 12px 5px 5px; }
  .mast-chip-copy strong { font-size: 12.5px; }
  .site-masthead .nav-cta { padding-right: 8px; }
  .nav-peacock { width: 136px; height: 186px; right: -6px; bottom: -16px; }
  .site-masthead .nav .brand-logo { width: 156px; flex-basis: 156px; max-width: 156px; }
}
/* Below this width the 9 primary links cannot fit beside the logo + CTA,
   so the pill falls back to the drawer while keeping Book Now visible. */
@media (max-width: 1300px) and (min-width: 901px) {
  .site-masthead .nav-links { display: none !important; }
  .site-masthead .nav-cta { padding-right: 8px; margin-left: auto; }
  .nav-peacock { display: block; width: 120px; height: 164px; right: -4px; bottom: -12px; }
  .site-masthead .mobile-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(15, 35, 75, 0.1);
    background: var(--mast-navy);
    color: #fff;
    cursor: pointer;
  }
}
@media (max-width: 1240px) {
  .mast-chip--mail { display: none; }
  .site-masthead .container { padding: 0 16px; }
}
@media (max-width: 1100px) {
  .mast-mid { display: none; }
  .site-masthead .nav .brand-logo { width: 160px; flex-basis: 160px; max-width: 160px; }
  .site-masthead .nav .brand-logo-video { width: 156px; height: 46px; }
}
@media (max-width: 900px) {
  html { scroll-padding-top: 108px; overflow-x: clip; }
  .site-masthead-spacer { height: var(--mast-offset, 112px); }
  body.page-home,
  .site-masthead { --topbar-h: 46px; --nav-h: 60px; }
  .site-masthead { max-width: 100%; }
  .mast-mid,
  .mast-dd,
  .mast-birds,
  .nav-peacock,
  .brand-tagline,
  .brand-temple-mark { display: none; }
  .mast-chip-copy { display: none; }
  .mast-chip {
    padding: 3px;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(232, 216, 168, 0.35);
  }
  .mast-chip-ico { width: 28px; height: 28px; font-size: 12px; }
  .mast-socials { display: none; }
  .mast-chip--mail { display: inline-flex; }
  .mast-top-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 44px;
    gap: 8px;
    padding: 5px 0 3px;
  }
  .site-masthead .container { max-width: 100%; padding: 0 12px; }
  .site-masthead .nav {
    margin-top: 0;
    padding: 0 8px 8px !important;
    width: 100%;
    max-width: 100%;
    position: relative !important;
  }
  .site-masthead .nav-inner {
    min-height: 56px;
    border-radius: 22px;
    padding: 6px 10px;
    position: relative;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .site-masthead .nav .brand-logo {
    width: 148px; flex-basis: 148px; max-width: 148px; min-height: 42px;
  }
  .site-masthead .nav-links { display: none !important; }
  .site-masthead .nav-book { display: none !important; }
  .site-masthead .nav-cta {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    padding-right: 0 !important;
    flex: 0 0 auto;
  }
  .site-masthead .nav-search,
  .site-masthead .mobile-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 50%;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .site-masthead .nav-search {
    background: #fff;
    border: 1px solid rgba(15, 35, 75, 0.12);
    color: var(--mast-navy);
    box-shadow: 0 8px 16px -12px rgba(0, 35, 75, 0.4);
  }
  .site-masthead .mobile-toggle {
    background: var(--mast-navy);
    color: #fff;
    border: 1px solid rgba(15, 35, 75, 0.2);
  }
  .mast-mobile-actions { display: flex !important; }
  .mast-mobile-actions .nav-search,
  .mast-mobile-actions .mobile-toggle {
    display: inline-flex !important;
    width: 34px;
    height: 34px;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .mast-mobile-actions .nav-search {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
    box-shadow: none;
  }
  .mast-mobile-actions .mobile-toggle {
    background: #fff;
    color: var(--mast-navy);
    border-color: #fff;
  }
  .mobile-drawer { padding-top: 128px; z-index: 180; }
}

/* ============================================================
   SCROLL / VIDEO PERFORMANCE
   ============================================================ */
.hero-stage { contain: layout paint; }
.hero-bg-layer.is-active .hero-video {
  transform: translateZ(0);
  backface-visibility: hidden;
}
.discover-v2,
.flightband {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}
@media (max-width: 900px) {
  .hero.hero--cine .hero-video { display: none; }
  .mast-birds { display: none; }
}


/* ============================================================
   COUTURE CHROME + HERO — ultra-luxury top bar, header, hero
   ============================================================ */
.curochrome {
  --cu-navy: #0d1226;
  --cu-navy-2: #141a33;
  --cu-gold: #c9a24a;
  --cu-gold-lt: #f2dda6;
  --cu-gold-dp: #8a6a2c;
  --cu-cream: #fffdf7;
  background: var(--cu-navy) !important;
}
.curochrome .container { max-width: 1520px; }

/* ---------- Top bar ---------- */
.curobar {
  position: relative;
  z-index: 5;
  overflow: visible;
  color: #f8efd8;
  background:
    radial-gradient(720px 160px at 18% 120%, rgba(70, 140, 255, 0.14), transparent 62%),
    radial-gradient(820px 180px at 78% -40%, rgba(212, 175, 106, 0.32), transparent 64%),
    linear-gradient(180deg, #10244a 0%, #0a1a38 46%, #071428 100%);
  box-shadow: inset 0 1px 0 rgba(247, 231, 188, 0.18);
}
.curobar-clip {
  position: absolute;
  inset: 0 0 10px;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.curobar-glow,
.curobar-grain,
.curobar-silk,
.curobar-sheen,
.curobar-clip { pointer-events: none; }
.curobar-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(280px 90px at 8% 50%, rgba(201, 162, 74, 0.16), transparent 70%),
    radial-gradient(280px 90px at 92% 50%, rgba(201, 162, 74, 0.14), transparent 70%);
}
.curobar-grain {
  position: absolute;
  inset: 0;
  opacity: 0.14;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.curobar-silk {
  position: absolute;
  inset: 0;
  background: linear-gradient(118deg, transparent 38%, rgba(255,255,255,0.05) 50%, transparent 62%);
}
.curobar-sheen {
  position: absolute;
  inset: -60% -30%;
  background: linear-gradient(104deg, transparent 42%, rgba(247, 231, 188, 0.16) 50%, transparent 58%);
  animation: curoSheen 13s ease-in-out infinite;
}
@keyframes curoSheen {
  0%, 12% { transform: translate3d(-34%, 0, 0); }
  100% { transform: translate3d(34%, 0, 0); }
}
.curobar-wave {
  display: block;
  width: 100%;
  height: 14px;
  margin-bottom: -8px;
  position: relative;
  z-index: 2;
  pointer-events: none;
}
.curobar-wave-gold {
  fill: none;
  stroke: #d4b36a;
  stroke-width: 1.7;
  filter: drop-shadow(0 0 4px rgba(212, 175, 106, 0.55));
}
.curobar-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) auto minmax(0, 0.95fr);
  align-items: center;
  gap: 16px;
  min-height: 52px;
  padding-block: 8px 6px;
}
.curobar-desk,
.curobar-heart,
.curobar-tools {
  display: flex;
  align-items: center;
  min-width: 0;
}
.curobar-desk { gap: 10px; overflow: visible; }
.curobar-heart {
  gap: 10px;
  justify-self: center;
  justify-content: center;
}
.curobar-tools {
  justify-self: end;
  justify-content: flex-end;
  gap: 12px;
  position: relative;
  z-index: 6;
  overflow: visible;
}
.curobar-flock {
  position: absolute;
  inset: 0 0 10px;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}
.curobar-bird {
  position: absolute;
  left: 0;
  top: var(--t, 18%);
  width: 100%;
  height: 0;
  animation: curoBirdFly var(--s, 22s) linear var(--d, 0s) infinite;
  will-change: transform;
}
.curobar-bird img {
  display: block;
  width: calc(78px * var(--z, 1));
  max-width: none;
  height: auto;
  filter:
    brightness(1.12)
    drop-shadow(0 4px 6px rgba(4, 12, 28, 0.55))
    drop-shadow(0 0 12px rgba(255, 255, 255, 0.28));
  animation: curoBirdBob 2.6s ease-in-out infinite;
  opacity: 0.84;
}
.curobar-bird--rev { animation-name: curoBirdFlyRev; }
.curobar-bird--rev img { transform: scaleX(-1); }
@keyframes curoBirdFly {
  0% { transform: translate3d(-14%, 0, 0); opacity: 0; }
  8% { opacity: 1; }
  92% { opacity: 1; }
  100% { transform: translate3d(114%, 0, 0); opacity: 0; }
}
@keyframes curoBirdFlyRev {
  0% { transform: translate3d(114%, 0, 0); opacity: 0; }
  8% { opacity: 1; }
  92% { opacity: 1; }
  100% { transform: translate3d(-14%, 0, 0); opacity: 0; }
}
@keyframes curoBirdBob {
  0%, 100% { margin-top: 3px; }
  50% { margin-top: -5px; }
}
.curobar-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  text-decoration: none;
  color: #f8efd8;
  border-radius: 999px;
  padding: 4px 10px 4px 4px;
  background:
    linear-gradient(180deg, rgba(255, 248, 230, 0.14), rgba(8, 16, 36, 0.18));
  border: 1px solid rgba(232, 200, 120, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 10px 18px -14px rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(10px);
  transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}
.curobar-link:hover {
  transform: translateY(-1px);
  border-color: rgba(247, 231, 188, 0.85);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 14px 24px -12px rgba(201, 162, 74, 0.55);
}
.curobar-link--call {
  padding-right: 6px;
  background:
    linear-gradient(180deg, rgba(255, 236, 186, 0.28), rgba(201, 162, 74, 0.14) 55%, rgba(12, 20, 42, 0.2));
  border-color: rgba(247, 231, 188, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.38),
    0 0 0 1px rgba(201, 162, 74, 0.18),
    0 12px 22px -12px rgba(201, 162, 74, 0.7);
  animation: curoCallGlow 3.4s ease-in-out infinite;
}
.curobar-link--call:hover {
  background: linear-gradient(180deg, #fff4d4, #e2c078 58%, #c9a24a);
  color: #1c1406;
  border-color: #f7e7bc;
}
.curobar-link--call:hover .curobar-link-copy em,
.curobar-link--call:hover .curobar-link-copy strong { color: #1c1406; }
.curobar-link--call:hover .curobar-link-cta {
  background: #102038;
  color: #f7e7bc;
}
.curobar-pulse {
  position: absolute;
  left: 4px;
  top: 50%;
  width: 32px;
  height: 32px;
  transform: translateY(-50%);
  pointer-events: none;
}
.curobar-pulse i {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(247, 231, 188, 0.7);
  animation: curoCallPulse 2.4s ease-out infinite;
}
.curobar-pulse i:nth-child(2) { animation-delay: 1.1s; }
.curobar-link:hover .curobar-orb {
  transform: translateY(-1px) scale(1.06);
  box-shadow: 0 8px 16px -8px rgba(201, 162, 74, 0.9);
}
.curobar-orb {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex: 0 0 auto;
  font-size: 11px;
  color: #1c1406;
  background: linear-gradient(180deg, #fff6d8, #d4b36a 58%, #a07c28);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 6px 12px -8px rgba(0, 0, 0, 0.55);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.curobar-link--call .curobar-orb i {
  transform-origin: 50% 20%;
  animation: curoPhoneRing 2.8s ease-in-out infinite;
}
.curobar-link-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.12;
  min-width: 0;
  position: relative;
  z-index: 1;
}
.curobar-link-copy em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #e8c878;
}
.curobar-link-copy strong {
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: 0.01em;
  white-space: nowrap;
  color: #fff8e8;
  overflow: hidden;
  text-overflow: ellipsis;
}
.curobar-link-cta {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  margin-left: 2px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #1c1406;
  background: linear-gradient(180deg, #fffaf0, #f0d48a);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
  animation: curoCtaNudge 2.8s ease-in-out infinite;
}
@keyframes curoCallGlow {
  0%, 100% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.38), 0 0 0 1px rgba(201,162,74,0.18), 0 12px 22px -12px rgba(201,162,74,0.55); }
  50% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), 0 0 0 1px rgba(247,231,188,0.45), 0 0 22px rgba(201,162,74,0.38); }
}
@keyframes curoCallPulse {
  0% { transform: scale(0.7); opacity: 0.7; }
  100% { transform: scale(1.85); opacity: 0; }
}
@keyframes curoPhoneRing {
  0%, 78%, 100% { transform: rotate(0deg); }
  82% { transform: rotate(16deg); }
  86% { transform: rotate(-14deg); }
  90% { transform: rotate(10deg); }
  94% { transform: rotate(-6deg); }
}
@keyframes curoCtaNudge {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(2px); }
}
@media (prefers-reduced-motion: reduce) {
  .curobar-flock { display: none !important; }
  .curobar-pulse,
  .curobar-link-cta,
  .curobar-link--call,
  .curobar-link--call .curobar-orb i { animation: none !important; }
}
.curobar-script {
  font-family: 'Great Vibes', cursive;
  font-size: 26px;
  line-height: 1;
  white-space: nowrap;
  background: linear-gradient(180deg, #fff6da, #e2c078);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 10px rgba(201, 162, 74, 0.28));
}
.curobar-dots {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #d4b36a;
  flex: 0 0 auto;
}
.curobar-dots i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.8;
}
.curobar-dots b { font-size: 9px; margin-left: 2px; }
.curobar-twins {
  display: flex;
  align-items: center;
  position: relative;
  flex: 0 0 auto;
}
.curobar-seal {
  position: relative;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
}
.curobar-seal--jaga { z-index: 2; }
.curobar-seal--puri {
  width: 40px;
  height: 40px;
  margin-left: -11px;
  z-index: 1;
}
.curobar-seal-ring,
.curobar-seal-halo {
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  pointer-events: none;
}
.curobar-seal--puri .curobar-seal-ring { inset: -4px; }
.curobar-seal-ring {
  border: 1.2px dashed rgba(247, 231, 188, 0.8);
  animation: curoSpin 18s linear infinite;
}
.curobar-seal-halo {
  background: radial-gradient(circle, rgba(255, 214, 140, 0.42), transparent 70%);
  animation: curoHalo 3.2s ease-out infinite;
}
@keyframes curoSpin { to { transform: rotate(360deg); } }
@keyframes curoHalo {
  0%, 100% { transform: scale(0.94); opacity: 0.5; }
  50% { transform: scale(1.12); opacity: 0.95; }
}
.curobar-seal-art {
  position: relative;
  z-index: 1;
  display: block;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid rgba(247, 231, 188, 0.92);
  box-shadow: 0 0 0 1px rgba(12, 16, 32, 0.55), 0 6px 14px rgba(0, 0, 0, 0.35);
  background: #1a120c;
}
.curobar-seal--puri .curobar-seal-art {
  width: 32px;
  height: 32px;
}
.curobar-seal-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.curobar-seal--jaga .curobar-seal-art img { object-position: 50% 38%; }
.curobar-seal--puri .curobar-seal-art img { object-position: 50% 22%; }
.curobar-jay {
  font-family: 'Great Vibes', cursive;
  font-size: 22px;
  line-height: 1;
  color: #f3dca6;
  white-space: nowrap;
  text-shadow: 0 0 16px rgba(201, 162, 74, 0.45);
}
.curobar-marks {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #e8c878;
  white-space: nowrap;
}
.curobar-marks i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.7;
}
.curobar-socials { display: inline-flex; gap: 6px; }
.curobar-socials a {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 12px;
  color: #1c1406;
  background: linear-gradient(180deg, #fff6d8, #d4b36a 58%, #a07c28);
  border: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.65), 0 6px 12px -8px rgba(0,0,0,0.5);
  transition: transform 0.3s ease, filter 0.3s ease;
}
.curobar-socials a:hover {
  transform: translateY(-2px);
  filter: brightness(1.08);
}
.curochrome .curobar-dd { position: relative; }
.curochrome .curobar-dd > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  cursor: pointer;
  list-style: none;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #f6ecd2;
  border: 1px solid rgba(201, 162, 74, 0.34);
  background: rgba(255, 255, 255, 0.04);
}
.curochrome .curobar-dd > summary::-webkit-details-marker { display: none; }
.curochrome .curobar-dd > summary i { font-size: 8px; opacity: 0.7; }
.curochrome .curobar-dd[open] > summary {
  color: #2a1e06;
  border-color: transparent;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.curochrome .curobar-dd-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 30;
  display: grid;
  min-width: 118px;
  padding: 6px;
  border-radius: 14px;
  background: var(--cu-cream);
  border: 1px solid rgba(184, 146, 74, 0.4);
  box-shadow: 0 26px 50px -26px rgba(6, 9, 20, 0.7);
  animation: curoDd 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes curoDd {
  from { opacity: 0; transform: translate3d(0, -6px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.curochrome .curobar-dd-menu button {
  border: 0;
  background: transparent;
  text-align: left;
  padding: 8px 10px;
  border-radius: 9px;
  cursor: pointer;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #1b2140;
}
.curochrome .curobar-dd-menu button:hover { background: rgba(201, 162, 74, 0.16); }

.curobar-lang {
  position: relative;
  z-index: 40;
  flex: 0 0 auto;
}
.curobar-lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #1c1406;
  border: 0;
  background: linear-gradient(180deg, #fff6d8, #d4b36a 58%, #a07c28);
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.65);
}
.curobar-lang-btn > .fa-language { font-size: 12px; color: #1c1406; }
.curobar-lang-btn > .fa-chevron-down { font-size: 8px; opacity: 0.7; color: #1c1406; }
.curobar-lang.is-open .curobar-lang-btn {
  color: #2a1e06;
  border-color: transparent;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.curobar-lang.is-open .curobar-lang-btn > .fa-language,
.curobar-lang.is-open .curobar-lang-btn > .fa-chevron-down { color: #2a1e06; opacity: 1; }
.curobar-lang-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 80;
  width: min(280px, calc(100vw - 24px));
  max-height: min(70vh, 440px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px 8px 8px;
  border-radius: 18px;
  background: #fffdf8;
  border: 1px solid rgba(184, 146, 74, 0.45);
  box-shadow:
    0 28px 60px -22px rgba(6, 9, 20, 0.72),
    0 0 0 1px rgba(255, 255, 255, 0.4) inset;
  animation: curoDd 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.curobar-lang-menu[hidden] { display: none !important; }
.curobar-lang-kicker {
  margin: 0 8px 8px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(42, 30, 6, 0.45);
}
.curobar-lang-menu button {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 10px;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 9px 10px;
  border-radius: 10px;
  cursor: pointer;
  color: #1b2140;
}
.curobar-lang-menu button em {
  font-style: normal;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  min-width: 0;
}
.curobar-lang-menu button span {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(27, 33, 64, 0.48);
  white-space: nowrap;
}
.curobar-lang-menu button:hover,
.curobar-lang-menu button[aria-selected="true"] {
  background: rgba(201, 162, 74, 0.16);
}
.curobar-lang-menu button[aria-selected="true"] span { color: #8a6a22; }

.btm-gt {
  position: absolute !important;
  left: -9999px !important;
  top: 0 !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
iframe.goog-te-banner-frame,
.goog-te-banner-frame,
.goog-te-balloon-frame,
#goog-gt-tt,
.goog-tooltip,
.goog-tooltip:hover,
.VIpgJd-ZVi9od-aZ2wEe-wOHMyf {
  display: none !important;
}
body { top: 0 !important; }
font font, font {
  font-family: inherit !important;
  font-size: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
}
html[data-lang]:not([data-lang="en"]) body {
  font-family: 'Noto Sans', 'Noto Sans Devanagari', 'Noto Sans Oriya', 'Noto Sans Bengali', 'Noto Sans Tamil', 'Noto Sans Telugu', 'Noto Sans Kannada', 'Noto Sans Malayalam', 'Noto Sans Gujarati', 'Noto Sans Gurmukhi', 'Noto Naskh Arabic', Inter, sans-serif;
}
.curobar-mob { display: none; align-items: center; gap: 8px; }
.curochrome .curobar-mob-btn {
  display: inline-grid !important;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(201, 162, 74, 0.5) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: #f6ecd2 !important;
  font-size: 13px;
}

/* compact scroll state */
.site-masthead.is-compact .curobar-inner { min-height: 42px; padding: 5px 0 4px; }
.site-masthead.is-compact .curobar-script,
.site-masthead.is-compact .curobar-dots,
.site-masthead.is-compact .curobar-jay,
.site-masthead.is-compact .curobar-marks,
.site-masthead.is-compact .curobar-link-cta,
.site-masthead.is-compact .curobar-link--visit,
.site-masthead.is-compact .curobar-link--write { display: none; }
.site-masthead.is-compact .curobar-seal { width: 32px; height: 32px; }
.site-masthead.is-compact .curobar-seal--puri { width: 28px; height: 28px; margin-left: -8px; }
.site-masthead.is-compact .curobar-seal-art { width: 26px; height: 26px; }
.site-masthead.is-compact .curobar-seal--puri .curobar-seal-art { width: 22px; height: 22px; }
.site-masthead.is-compact .curobar-link-copy em { display: none; }

/* ---------- Header ---------- */
.curochrome .curonav {
  position: relative;
  z-index: 3;
  padding: 9px 0 13px !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 0 !important;
}
.curonav-hair {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201, 162, 74, 0.45), transparent);
  pointer-events: none;
}
.curochrome .curonav .nav-inner {
  position: relative;
  gap: 14px;
  width: auto;
  flex: 1 1 auto;
  padding: 9px 92px 9px 18px !important;
  border-radius: 24px !important;
  overflow: visible !important;
  background: linear-gradient(180deg, #fffdf7 0%, #f8f1e3 100%) !important;
  border: 1px solid rgba(184, 146, 74, 0.42) !important;
  box-shadow:
    0 30px 60px -30px rgba(6, 9, 20, 0.6),
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 0 0 5px rgba(255, 253, 247, 0.08) !important;
}
.curonav-foil {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: 24px;
  background: linear-gradient(112deg, transparent 40%, rgba(201, 162, 74, 0.14) 50%, transparent 60%);
  animation: curoSheen 9s ease-in-out infinite;
}
.curochrome .curonav .nav-inner > *:not(.curonav-foil):not(.nav-peacock) {
  position: relative;
  z-index: 1;
}
.curochrome .curonav .nav-inner > .curonav-foil { position: absolute; }

/* logo */
.curochrome .curonav .curologo {
  flex: 0 0 214px !important;
  width: 214px !important;
  max-width: 214px !important;
  min-height: 64px;
  height: auto !important;
  max-height: none !important;
  padding: 7px 14px !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  clip-path: none !important;
  background: #fffdf7 !important;
  border: 1px solid rgba(201, 162, 74, 0.45) !important;
  box-shadow:
    0 0 0 4px rgba(253, 243, 216, 0.6),
    0 18px 34px -20px rgba(18, 23, 43, 0.4),
    inset 0 1px 0 #fff !important;
  isolation: isolate;
}
.curologo-glow,
.curologo-ring,
.curologo-shine,
.curologo-corners { position: absolute; pointer-events: none; }
.curologo-glow {
  inset: -12px;
  border-radius: 26px;
  background: radial-gradient(circle, rgba(201, 162, 74, 0.3), transparent 70%);
  z-index: 0;
}
.curologo-ring {
  inset: -6px;
  border-radius: 22px;
  border: 1.2px dashed rgba(184, 146, 74, 0.7);
  z-index: 2;
}
.curologo-corners { inset: 3px; z-index: 3; }
.curologo-corners i {
  position: absolute;
  width: 10px;
  height: 10px;
  border: 0 solid rgba(184, 146, 74, 0.85);
}
.curologo-corners i:nth-child(1) { top: 0; left: 0; border-top-width: 1.4px; border-left-width: 1.4px; }
.curologo-corners i:nth-child(2) { top: 0; right: 0; border-top-width: 1.4px; border-right-width: 1.4px; }
.curologo-corners i:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1.4px; border-left-width: 1.4px; }
.curologo-corners i:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1.4px; border-right-width: 1.4px; }
.curologo-shine {
  inset: 0;
  border-radius: 16px;
  overflow: hidden;
  z-index: 4;
}
.curologo-shine::after {
  content: '';
  position: absolute;
  inset: -25%;
  background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.6) 50%, transparent 58%);
  animation: curoShine 5.4s ease-in-out infinite;
}
@keyframes curoShine {
  0%, 58% { transform: translateX(-85%); }
  100% { transform: translateX(85%); }
}
.curochrome .curonav .curologo .brand-logo-video {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: 158%;
  height: 158%;
  object-fit: contain;
  object-position: center center;
  transform: translate(-50%, -50%);
}

/* nav links */
.curochrome .curonav .nav-links {
  gap: 2px;
  padding: 4px !important;
  border-radius: 999px !important;
  background: rgba(13, 18, 38, 0.045) !important;
  border: 1px solid rgba(184, 146, 74, 0.2) !important;
  box-shadow: none !important;
}
.curochrome .curonav .nav-link {
  position: relative;
  padding: 9px 12px !important;
  border-radius: 999px !important;
  font-family: var(--sans);
  font-size: 12.5px !important;
  font-weight: 650 !important;
  letter-spacing: 0.015em !important;
  text-transform: none;
  color: #1b2140 !important;
  background: transparent !important;
  transition: color 0.3s ease, background 0.35s ease;
}
.curochrome .curonav .nav-link .nav-ico { font-size: 10.5px; opacity: 0.72; }
.curochrome .curonav .nav-link .nav-caret { font-size: 7.5px; opacity: 0.5; }
.curochrome .curonav .nav-link::after {
  content: '';
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 5px;
  height: 1.4px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--cu-gold), transparent);
  transform: scaleX(0);
  transform-origin: 50% 50%;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.curochrome .curonav .nav-link:hover::after { transform: scaleX(1); }
.curochrome .curonav .nav-link:hover { color: #7a5a1c !important; }
.curochrome .curonav .nav-link.active {
  color: #f6ecd2 !important;
  background: linear-gradient(180deg, #1d2547, #0f1428) !important;
  box-shadow: 0 12px 22px -14px rgba(13, 18, 38, 0.9);
}
.curochrome .curonav .nav-link.active .nav-ico { color: var(--cu-gold-lt); opacity: 1; }
.curochrome .curonav .nav-link.active::after { display: none; }

/* nav actions */
.curochrome .curonav .nav-search {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #1b2140 !important;
  background: rgba(255, 255, 255, 0.75) !important;
  border: 1px solid rgba(184, 146, 74, 0.42) !important;
  transition: transform 0.35s ease, background 0.35s ease, color 0.35s ease;
}
.curochrome .curonav .nav-search:hover {
  transform: translateY(-2px);
  color: #2a1e06 !important;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b) !important;
}
.curochrome .curonav .nav-book {
  position: relative;
  overflow: hidden;
  min-height: 46px;
  padding: 0 8px 0 20px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: #2a1e06 !important;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b 56%, #a9821f) !important;
  border: 1px solid rgba(138, 106, 44, 0.45) !important;
  box-shadow: 0 18px 30px -16px rgba(169, 130, 31, 0.85) !important;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.curochrome .curonav .nav-book:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 36px -16px rgba(169, 130, 31, 0.95) !important;
}
.nav-book-shine {
  position: absolute;
  inset: -30%;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.65) 50%, transparent 58%);
  animation: curoShine 4.4s ease-in-out infinite;
}
.curochrome .curonav .nav-book > *:not(.nav-book-shine) { position: relative; z-index: 1; }
.curochrome .curonav .nav-book-go {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 11px;
  color: #fdf3d8;
  background: #1b2140;
}
.curochrome .curonav .nav-peacock { opacity: 1; }
.curochrome .curonav .mobile-toggle {
  border-radius: 50% !important;
  border: 1px solid rgba(184, 146, 74, 0.42) !important;
  background: rgba(255, 255, 255, 0.75) !important;
  color: #1b2140 !important;
}
.phonav-chip,
.phonav-menu { display: none; }
.curobar-link--wa,
.curobar-link--ask { display: none; }
.mobile-drawer-kicker { display: none; }

/* ---------- Couture hero ---------- */
.curohero {
  --ch-gold: #c9a24a;
  --ch-gold-lt: #f2dda6;
  --ch-ink: #0b0f1e;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  overflow: clip;
  color: #fffdf7;
  background: #0b0f1e;
  min-height: 640px;
  min-height: calc(100svh - var(--mast-offset, 168px));
}
.curohero-stage {
  position: absolute;
  inset: 0;
  z-index: 0;
  transform: none;
  transition: none;
  will-change: auto;
}
.curohero-layer {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.25s ease;
}
.curohero-layer.is-on { opacity: 1; z-index: 1; }
.curohero-layer img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  transform: none;
  filter: none;
  image-rendering: auto;
  -ms-interpolation-mode: bicubic;
}
.curohero-layer.is-on img { animation: curoKen 18s linear forwards; }
@keyframes curoKen {
  from { transform: scale(1) translate3d(0, 0, 0); }
  to { transform: scale(1.04) translate3d(-0.5%, -0.4%, 0); }
}
.curohero-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(94deg, rgba(8, 11, 22, 0.58) 0%, rgba(8, 11, 22, 0.22) 32%, rgba(8, 11, 22, 0.04) 58%, rgba(8, 11, 22, 0.18) 100%),
    linear-gradient(180deg, rgba(8, 11, 22, 0.32) 0%, transparent 28%, rgba(8, 11, 22, 0.42) 100%);
}
.curohero-leak {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(620px 300px at 84% 16%, rgba(255, 205, 120, 0.3), transparent 68%),
    radial-gradient(520px 260px at 6% 92%, rgba(201, 162, 74, 0.22), transparent 70%);
  animation: curoLeak 12s ease-in-out infinite;
}
@keyframes curoLeak {
  0%, 100% { opacity: 0.72; }
  50% { opacity: 1; }
}
.curohero-grain {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0.03;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

.curohero-decor {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  transform: none;
}
.curohero-route {
  position: absolute;
  inset: 6% 0 16%;
  width: 100%;
  height: auto;
  fill: none;
  stroke: rgba(201, 162, 74, 0.5);
  stroke-width: 1.3;
  stroke-dasharray: 6 11;
}
.curohero-route--b {
  inset: 3% 0 44%;
  stroke: rgba(247, 231, 188, 0.3);
  stroke-width: 1;
}
.curohero-jet {
  position: absolute;
  left: 7%;
  top: 44%;
  width: 54px;
  color: var(--ch-gold-lt);
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.5));
  animation: curoJet 20s linear infinite;
  pointer-events: none;
}
.curohero-jet .svg-plane { width: 54px; }
.curohero-jet--b {
  left: auto;
  right: 9%;
  top: 20%;
  width: 40px;
  animation: curoJetB 25s linear infinite;
}
.curohero-jet--b .svg-plane { width: 40px; }
@keyframes curoJet {
  0% { transform: translate3d(0, 46px, 0) rotate(-13deg); opacity: 0; }
  9% { opacity: 1; }
  91% { opacity: 1; }
  100% { transform: translate3d(80vw, -84px, 0) rotate(-7deg); opacity: 0; }
}
@keyframes curoJetB {
  0% { transform: translate3d(0, 0, 0) rotate(13deg) scaleX(-1); opacity: 0; }
  11% { opacity: 1; }
  89% { opacity: 1; }
  100% { transform: translate3d(-76vw, 74px, 0) rotate(18deg) scaleX(-1); opacity: 0; }
}
.curohero-dial {
  position: absolute;
  left: 41%;
  bottom: 23%;
  width: 108px;
  height: 108px;
  display: grid;
  place-items: center;
  color: var(--ch-gold-lt);
  font-size: 20px;
}
.curohero-dial-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px dashed rgba(247, 231, 188, 0.5);
  animation: curoSpin 34s linear infinite;
}
.curohero-dial-ring--b {
  inset: 16px;
  border-style: solid;
  border-color: rgba(201, 162, 74, 0.3);
  animation: curoSpin 22s linear infinite reverse;
}
.curohero-dial-ring::after {
  content: '';
  position: absolute;
  top: -4px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  border-radius: 50%;
  background: var(--ch-gold-lt);
  box-shadow: 0 0 12px rgba(247, 231, 188, 0.9);
}
.curohero-motes { position: absolute; inset: 0; }
.curohero-motes i {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--ch-gold-lt);
  box-shadow: 0 0 9px rgba(247, 231, 188, 0.75);
  animation: curoMote 8s ease-in-out infinite;
}
.curohero-motes i:nth-child(1) { left: 14%; top: 26%; }
.curohero-motes i:nth-child(2) { left: 32%; top: 66%; animation-delay: 1.3s; }
.curohero-motes i:nth-child(3) { left: 52%; top: 20%; animation-delay: 2.4s; }
.curohero-motes i:nth-child(4) { left: 68%; top: 58%; animation-delay: 0.6s; }
.curohero-motes i:nth-child(5) { left: 82%; top: 36%; animation-delay: 3.1s; }
.curohero-motes i:nth-child(6) { left: 44%; top: 82%; animation-delay: 1.9s; }
@keyframes curoMote {
  0%, 100% { transform: translate3d(0, 0, 0); opacity: 0.18; }
  50% { transform: translate3d(7px, -18px, 0); opacity: 0.9; }
}
.curohero-frame {
  position: absolute;
  inset: 20px;
  z-index: 5;
  pointer-events: none;
}
.curohero-frame span {
  position: absolute;
  width: 30px;
  height: 30px;
  border: 0 solid rgba(247, 231, 188, 0.5);
}
.curohero-frame span:nth-child(1) { top: 0; left: 0; border-top-width: 1px; border-left-width: 1px; }
.curohero-frame span:nth-child(2) { top: 0; right: 0; border-top-width: 1px; border-right-width: 1px; }
.curohero-frame span:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1px; border-left-width: 1px; }
.curohero-frame span:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1px; border-right-width: 1px; }

.curohero-grid {
  position: relative;
  z-index: 6;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 274px;
  grid-template-rows: auto 1fr;
  gap: 26px 44px;
  min-height: 640px;
  min-height: calc(100svh - var(--mast-offset, 168px));
  padding-block: 40px 148px;
}
.curohero-head {
  grid-column: 1 / -1;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 16px;
}
.curohero-index {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  font-family: 'Cormorant Garamond', var(--serif);
}
.curohero-index b {
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
  background: linear-gradient(180deg, #fff6da, #d9b56b);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.curohero-index i {
  width: 30px;
  height: 1px;
  background: rgba(247, 231, 188, 0.6);
}
.curohero-index em {
  font-style: normal;
  font-size: 14px;
  color: rgba(255, 253, 247, 0.6);
}
.curohero-region {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(255, 253, 247, 0.76);
}
.curohero-region::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 10px;
  border-radius: 50%;
  vertical-align: middle;
  background: var(--ch-gold-lt);
  box-shadow: 0 0 0 4px rgba(201, 162, 74, 0.24);
}

.curohero-copy {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  max-width: 640px;
}
.curohero-copy > * { animation: curoRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; animation-delay: calc(var(--i, 0) * 90ms + 120ms); }
.curohero-copy.is-swap > *:not(.curohero-display) { animation: curoRise 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; animation-delay: calc(var(--i, 0) * 70ms); }
@keyframes curoRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.curohero-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #f0d9a0;
}
.curohero-kicker-rule {
  width: 46px;
  height: 1px;
  background: linear-gradient(90deg, var(--ch-gold), transparent);
}
.curohero-display { margin: 0; }
.curohero-place {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(3.6rem, 7.6vw, 6.6rem);
  font-weight: 600;
  line-height: 0.9;
  letter-spacing: -0.035em;
  color: #fffdf7;
  text-shadow: 0 26px 60px rgba(0, 0, 0, 0.55);
}
.curohero-place i {
  display: inline-block;
  font-style: normal;
  animation: curoLetter 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--l, 0) * 45ms + 100ms);
}
@keyframes curoLetter {
  from { opacity: 0; transform: translate3d(0, 40px, 0) rotate(4deg); }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotate(0); }
}
.curohero-script {
  display: block;
  margin-top: 8px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(1.8rem, 3.2vw, 2.7rem);
  line-height: 1.15;
  color: #f0d9a0;
  text-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}
.curohero-lead {
  margin: 18px 0 0;
  max-width: 50ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(255, 253, 247, 0.82);
}
.curohero-itin {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 20px 0 0;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #f0d9a0;
}
.curohero-itin i { font-size: 9px; color: var(--ch-gold); transform: rotate(45deg); }
.curohero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}
.curohero-cta,
.curohero-ghost {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 0 8px 0 24px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
}
.curohero-cta {
  position: relative;
  overflow: hidden;
  color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b 56%, #a9821f);
  box-shadow: 0 22px 40px -18px rgba(169, 130, 31, 0.9);
}
.curohero-cta:hover { transform: translateY(-3px); box-shadow: 0 28px 48px -18px rgba(169, 130, 31, 0.95); }
.curohero-cta-shine {
  position: absolute;
  inset: -30%;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.62) 50%, transparent 58%);
  animation: curoShine 5s ease-in-out infinite;
}
.curohero-cta > span:not(.curohero-cta-shine),
.curohero-cta > .curohero-cta-orb { position: relative; z-index: 1; }
.curohero-cta-orb {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  font-size: 12px;
  color: #fdf3d8;
  background: #1b2140;
}
.curohero-ghost {
  padding: 0 24px;
  color: #fffdf7;
  border: 1px solid rgba(247, 231, 188, 0.4);
  background: rgba(255, 253, 247, 0.07);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.curohero-ghost:hover { transform: translateY(-3px); border-color: rgba(247, 231, 188, 0.85); }

.curohero-rail {
  grid-column: 2;
  grid-row: 2;
  align-self: end;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: min(58vh, 480px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(201, 162, 74, 0.45) transparent;
}
.curohero-rail-label {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255, 253, 247, 0.5);
  margin-bottom: 4px;
}
.curohero-tab {
  position: relative;
  display: grid;
  grid-template-columns: auto 44px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 6px 10px 10px 8px;
  border-radius: 16px;
  cursor: pointer;
  text-align: left;
  color: rgba(255, 253, 247, 0.8);
  border: 1px solid rgba(247, 231, 188, 0.16);
  background: rgba(11, 15, 30, 0.42);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  transition: color 0.35s ease, border-color 0.35s ease, background 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.curohero-tab:hover { transform: translateX(-5px); border-color: rgba(247, 231, 188, 0.5); }
.curohero-tab.is-on {
  color: #fffdf7;
  border-color: rgba(242, 221, 166, 0.7);
  background: rgba(20, 26, 51, 0.72);
}
.curohero-tab-n {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #f0d9a0;
}
.curohero-tab-thumb {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(247, 231, 188, 0.28);
}
.curohero-tab-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.curohero-tab-copy { display: flex; flex-direction: column; min-width: 0; }
.curohero-tab-copy strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.1;
}
.curohero-tab-copy em {
  font-style: normal;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.62;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.curohero-tab-bar {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 6px;
  height: 2px;
  border-radius: 2px;
  background: rgba(247, 231, 188, 0.16);
  overflow: hidden;
}
.curohero-tab-bar i {
  display: block;
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--ch-gold), #fff6da);
  transform: scaleX(0);
  transform-origin: 0 50%;
}
.curohero-tab.is-on .curohero-tab-bar i { animation: curoBar 7200ms linear forwards; }
@keyframes curoBar {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

.curohero-stamp {
  position: absolute;
  right: 0;
  top: 96px;
  z-index: 7;
  width: 104px;
  height: 104px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #f0d9a0;
  transform: rotate(-9deg);
}
.curohero-stamp-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.6px dashed rgba(242, 221, 166, 0.6);
  animation: curoSpin 40s linear infinite;
}
.curohero-stamp i { font-size: 17px; }
.curohero-stamp em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  opacity: 0.8;
}
.curohero-stamp strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 19px;
  font-weight: 600;
}
.curohero-copy.is-swap ~ .curohero-stamp,
.curohero.is-swap .curohero-stamp { animation: curoStamp 0.85s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes curoStamp {
  from { opacity: 0; transform: rotate(-24deg) scale(0.84); }
  to { opacity: 1; transform: rotate(-9deg) scale(1); }
}

.curohero-strip {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 7;
  border-top: 1px solid rgba(247, 231, 188, 0.2);
  background: linear-gradient(180deg, rgba(11, 15, 30, 0.28), rgba(11, 15, 30, 0.78));
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
}
.curohero-strip-in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 28px;
}
.curohero-seals {
  list-style: none;
  display: flex;
  gap: 30px;
  margin: 0;
  padding: 0;
}
.curohero-seals em {
  display: block;
  font-style: normal;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(240, 217, 160, 0.8);
}
.curohero-seals strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 23px;
  font-weight: 600;
  color: #fffdf7;
}
.curohero-note {
  margin: 0;
  font-size: 11.5px;
  letter-spacing: 0.04em;
  color: rgba(255, 253, 247, 0.7);
}
.curohero-note i { color: var(--ch-gold-lt); margin-right: 8px; }
.curohero-scroll {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #fffdf7;
  border: 1px solid rgba(247, 231, 188, 0.4);
  flex: 0 0 auto;
  transition: background 0.35s ease, color 0.35s ease;
}
.curohero-scroll i { animation: curoNudge 2.4s ease-in-out infinite; }
.curohero-scroll:hover { color: #2a1e06; background: linear-gradient(180deg, #fdf3d8, #d9b56b); }
@keyframes curoNudge {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, 4px, 0); }
}

/* ---------- Couture responsive ---------- */
@media (max-width: 1540px) {
  .curobar-marks,
  .curobar-link--write { display: none; }
  .curobar-script { font-size: 22px; }
}
@media (max-width: 1400px) {
  .curobar-link-cta { display: none; }
  .curochrome .curonav .curologo { flex-basis: 196px !important; width: 196px !important; max-width: 196px !important; }
  .curochrome .curonav .curologo .brand-logo-video { width: 142%; height: 142%; }
}
@media (max-width: 1200px) {
  .curobar-link--write { display: none; }
  .curohero-grid { grid-template-columns: minmax(0, 1fr) 232px; }
  .curohero-dial { display: none; }
}
@media (max-width: 1000px) {
  .curobar-script,
  .curobar-dots,
  .curobar-jay { display: none; }
  .curohero-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    padding-block: 34px 176px;
  }
  .curohero-copy { grid-column: 1; grid-row: 2; max-width: none; }
  .curohero-rail {
    grid-column: 1;
    grid-row: 3;
    flex-direction: row;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .curohero-rail::-webkit-scrollbar { display: none; }
  .curohero-rail-label { display: none; }
  .curohero-tab { flex: 0 0 auto; }
  .curohero-tab:hover { transform: none; }
  .curohero-stamp { top: 60px; width: 84px; height: 84px; }
  .curohero-strip-in { flex-wrap: wrap; gap: 14px; padding: 14px 20px; }
  .curohero-note { display: none; }
}
@media (max-width: 900px) {
  .curobar-inner { grid-template-columns: minmax(0, 1fr) auto; min-height: 48px; }
  .curobar-heart,
  .curobar-flock,
  .curobar-link--visit,
  .curobar-link-cta { display: none !important; }
  .curobar-seal { width: 34px; height: 34px; }
  .curobar-seal--puri { width: 30px; height: 30px; margin-left: -8px; }
  .curobar-seal-art { width: 28px; height: 28px; }
  .curobar-seal--puri .curobar-seal-art { width: 24px; height: 24px; }
  .curobar-socials { display: none; }
  .curobar-lang { display: block; }
  .curobar-lang-btn { padding: 6px 10px; }
  .curobar-lang-btn [data-lang-label] { max-width: 5.5em; overflow: hidden; text-overflow: ellipsis; }
  .curobar-wave { display: none; }
  .curochrome .curonav { padding: 7px 0 10px !important; }
  .curochrome .curonav .nav-inner { padding: 7px 12px !important; border-radius: 20px !important; }
  .curochrome .curonav .curologo {
    flex-basis: 168px !important;
    width: 168px !important;
    max-width: 168px !important;
    min-height: 52px;
    padding: 5px 10px !important;
  }
  .curochrome .curonav .curologo .brand-logo-video { width: 132%; height: 132%; }
  .curologo-ring, .curologo-corners { display: none; }
  .curohero { min-height: 0; }
  .curohero-grid {
    min-height: 0;
    padding-block: 18px 28px;
    gap: 18px;
  }
  .page-home .curohero-grid { padding-block: 18px 28px; }
  .curohero-motes,
  .curohero-jet--b,
  .curohero-route--b,
  .curohero-frame { display: none; }
  .curohero-seals { gap: 18px; }
  .curohero-seals strong { font-size: 19px; }
}
@media (max-width: 560px) {
  .curobar-link-copy em { display: none; }
  .curohero-place { font-size: clamp(2.1rem, 11vw, 2.7rem); }
  .curohero-stamp { display: none; }
  .curohero-seals li:nth-child(2) { display: none; }
  .curohero-actions { gap: 9px; }
  .curohero-cta, .curohero-ghost { min-height: 48px; font-size: 10.5px; letter-spacing: 0.14em; }
  .phonav-chip-copy em { display: none; }
  .curobar-link--wa .curobar-link-copy,
  .curobar-link--ask .curobar-link-copy { display: none; }
  .curobar-link--wa,
  .curobar-link--ask { padding: 3px; }
}

/* ---------- Couture motion guards ---------- */
html.is-scrolling .nav-peacock,
html.is-scrolling .nav-peacock-glow,
html.is-scrolling .nav-peacock-orbit,
html.is-scrolling .nav-peacock-sheen,
html.is-scrolling .nav-peacock-sparkles i,
html.is-scrolling .nav-peacock img,
html.is-scrolling .curobar-sheen,
html.is-scrolling .curobar-bird,
html.is-scrolling .curobar-bird img,
html.is-scrolling .curobar-pulse i,
html.is-scrolling .curobar-link--call,
html.is-scrolling .curobar-link--call .curobar-orb i,
html.is-scrolling .curobar-link-cta,
html.is-scrolling .curobar-seal-ring,
html.is-scrolling .curobar-seal-halo,
html.is-scrolling .curobar-seal-art,
html.is-scrolling .curonav-foil,
html.is-scrolling .curologo-ring,
html.is-scrolling .curologo-shine::after,
html.is-scrolling .nav-book-shine,
html.is-scrolling .curohero-leak,
html.is-scrolling .curohero-jet,
html.is-scrolling .curohero-dial-ring,
html.is-scrolling .curohero-motes i,
html.is-scrolling .curohero-cta-shine,
html.is-scrolling .curohero-stamp-ring,
html.is-scrolling .curohero-scroll i,
html.is-scrolling .curohero-layer.is-on img {
  animation-play-state: paused !important;
}
html.is-scrolling .curohero-grain { opacity: 0 !important; }
html.is-scrolling .curohero-stage,
html.is-scrolling .curohero-decor,
html.is-scrolling .curohero-copy { transition: none; }

@media (prefers-reduced-motion: reduce) {
  .curobar-sheen,
  .curobar-seal-ring,
  .curobar-seal-halo,
  .curobar-seal-art,
  .curonav-foil,
  .curologo-ring,
  .curologo-shine::after,
  .nav-book-shine,
  .curohero-leak,
  .curohero-jet,
  .curohero-dial-ring,
  .curohero-motes i,
  .curohero-cta-shine,
  .curohero-stamp-ring,
  .curohero-scroll i,
  .curohero-layer.is-on img,
  .curohero-place i,
  .curohero-copy > *,
  .curohero-tab.is-on .curohero-tab-bar i { animation: none !important; }
  .curohero-stage,
  .curohero-decor,
  .curohero-copy { transform: none !important; }
}

/* ---------- Couture density tuning (fit the rail + the nav pill) ---------- */
.curobar-script { font-size: 24px; }
.curobar-jay { font-size: 20px; }

@media (max-width: 1320px) {
  .curobar-script { font-size: 22px; }
}
@media (min-width: 1600px) {
  .curobar-script { font-size: 28px; }
  .curobar-link--write { display: inline-flex; }
}

/* The pill carries nine primary links, so the type stays quiet and the
   decorative link icons live only in the mega menus and the drawer. */
.curochrome .curonav .nav-links { gap: 1px; }
.curochrome .curonav .nav-link .nav-ico { display: none; }
.curochrome .curonav .nav-link {
  padding: 9px 10px !important;
  font-size: 12px !important;
  letter-spacing: 0.012em !important;
  gap: 5px;
}
.curochrome .curonav .nav-link::after { left: 10px; right: 10px; }
@media (max-width: 1540px) {
  .curochrome .curonav .nav-link {
    padding: 8px 7px !important;
    font-size: 11.5px !important;
    gap: 4px;
  }
  .curochrome .curonav .nav-link::after { left: 7px; right: 7px; }
  .curochrome .curonav .nav-book { padding: 0 6px 0 16px !important; letter-spacing: 0.12em !important; }
  .curochrome .curonav .nav-search { width: 38px; height: 38px; }
}
@media (max-width: 1400px) {
  .curochrome .curonav .nav-link {
    padding: 7px 6px !important;
    font-size: 11px !important;
  }
  .curochrome .curonav .nav-link .nav-caret { display: none; }
  .curochrome .curonav .nav-link::after { left: 6px; right: 6px; }
}

/* ---------- Couture final polish ---------- */
.curohero-dial { opacity: 0.72; }
@media (max-width: 900px) {
  .curochrome .curonav .nav-inner { justify-content: space-between !important; }
}

/* ========== HOUSELUX — About / Certificates / Writing desk ========== */
.houselux {
  --hl-navy: #0d1226;
  --hl-ink: #12172b;
  --hl-gold: #c9a24a;
  --hl-gold-2: #e0bd76;
  --hl-cream: #fffdf7;
  --hl-paper: #f6f0e4;
  color: var(--hl-ink);
  background:
    radial-gradient(900px 480px at 8% 8%, rgba(201, 162, 74, 0.12), transparent 60%),
    linear-gradient(180deg, #fffefb 0%, var(--hl-paper) 42%, #fffdf8 100%);
}
.houselux-kicker {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.houselux-kicker--light { color: #e0bd76; }
.houselux-head {
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}
.houselux-head h2,
.houselux-letter h2,
.houselux-desk-side h2,
.houselux-band h2 {
  margin: 10px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 4.4vw, 52px);
  font-weight: 600;
  line-height: 1.08;
  color: var(--hl-ink);
}
.houselux-head h2 em,
.houselux-letter h2 em,
.houselux-desk-side h2 em,
.houselux-band h2 em,
.houselux-pillar h3 em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a 0%, #e0bd76 38%, #8a6a2c 72%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.houselux-script {
  margin: 0 0 16px;
  font-family: 'Great Vibes', cursive;
  font-size: 26px;
  color: var(--hl-gold);
}
.houselux-head--row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  max-width: none;
  text-align: left;
  margin-bottom: 36px;
}
.houselux-head--row > p { max-width: 38ch; margin: 0; color: rgba(18, 23, 43, 0.62); line-height: 1.65; }

.houselux-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.houselux-btn,
.houselux-ghost {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}
.houselux-btn {
  color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b 56%, #a9821f);
  box-shadow: 0 18px 30px -16px rgba(169, 130, 31, 0.85);
}
.houselux-btn:hover { transform: translateY(-2px); }
.houselux-ghost {
  color: #1b2140;
  background: rgba(255, 253, 247, 0.7);
  border-color: rgba(184, 146, 74, 0.4);
}
.houselux-ghost--light {
  color: #f6ecd2;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(247, 231, 188, 0.35);
}

.houselux-story { padding: 72px 0 24px; }
.houselux-story--tight { padding: 48px 0 12px; }
.houselux-story-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}
.houselux-photo {
  position: relative;
  margin: 0;
  border-radius: 28px;
  overflow: hidden;
  min-height: 520px;
  box-shadow: 0 40px 80px -48px rgba(18, 23, 43, 0.55);
}
.houselux-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  min-height: 520px;
  transform: scale(1.04);
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.houselux-photo:hover img { transform: scale(1.1); }
.houselux-photo-foil {
  position: absolute; inset: 0;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 40%, rgba(247, 231, 188, 0.22) 50%, transparent 60%);
  animation: houseluxSheen 9s ease-in-out infinite;
}
@keyframes houseluxSheen {
  0%, 20% { transform: translate3d(-40%, 0, 0); }
  100% { transform: translate3d(40%, 0, 0); }
}
.houselux-photo-stamp {
  position: absolute;
  top: 18px; right: 18px;
  width: 88px; height: 88px;
  border-radius: 50%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 0;
  color: #f7e7bc;
  background: rgba(13, 18, 38, 0.72);
  border: 1.4px dashed rgba(247, 231, 188, 0.75);
  backdrop-filter: blur(10px);
}
.houselux-photo-stamp i { font-size: 14px; color: var(--hl-gold-2); }
.houselux-photo-stamp em { font-size: 8px; letter-spacing: 0.2em; text-transform: uppercase; font-style: normal; }
.houselux-photo-stamp strong { font-family: 'Cormorant Garamond', var(--serif); font-size: 20px; }
.houselux-photo figcaption {
  position: absolute; left: 18px; bottom: 16px;
  display: flex; align-items: center; gap: 10px;
  color: #fffefb; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
}
.houselux-photo figcaption span { color: #e0bd76; font-weight: 800; }
.houselux-letter p { margin: 0 0 14px; font-size: 16px; line-height: 1.75; color: rgba(18, 23, 43, 0.72); }
.houselux-letter--center { text-align: center; max-width: 720px; margin: 0 auto; }
.houselux-itin {
  list-style: none; margin: 22px 0 26px; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.houselux-itin li {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255, 253, 247, 0.8);
  border: 1px solid rgba(184, 146, 74, 0.22);
}
.houselux-itin i { color: var(--hl-gold); font-size: 12px; }

.houselux-seals { padding: 20px 0 56px; }
.houselux-seals-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.houselux-seal {
  position: relative;
  text-align: center;
  padding: 28px 16px 22px;
  border-radius: 24px;
  background: linear-gradient(180deg, #fffef9, #f8f1e3);
  border: 1px solid rgba(184, 146, 74, 0.32);
  overflow: hidden;
}
.houselux-seal-ring {
  position: absolute; inset: 10px;
  border-radius: 18px;
  border: 1px dashed rgba(184, 146, 74, 0.45);
  pointer-events: none;
  animation: houseluxSpin 22s linear infinite;
}
@keyframes houseluxSpin { to { transform: rotate(360deg); } }
.houselux-seal em {
  display: block;
  font-size: 10px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase;
  color: #8a6a2c; font-style: normal;
}
.houselux-seal strong {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 42px; font-weight: 600; line-height: 1.1;
  background: linear-gradient(180deg, #fff6da, #d9b56b);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.houselux-seal b { display: block; margin-top: 4px; font-weight: 500; font-size: 13px; color: rgba(18, 23, 43, 0.55); }
.houselux-seal p { margin: 8px 0 0; font-size: 12.5px; line-height: 1.5; color: rgba(18, 23, 43, 0.58); }

.houselux-mv { padding: 24px 0 72px; }
.houselux-mv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.houselux-mv-card {
  position: relative;
  min-height: 420px;
  border-radius: 28px;
  overflow: hidden;
  color: #fffefb;
}
.houselux-mv-photo, .houselux-mv-scrim { position: absolute; inset: 0; }
.houselux-mv-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.05); transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.houselux-mv-card:hover .houselux-mv-photo img { transform: scale(1.12); }
.houselux-mv-scrim { background: linear-gradient(180deg, rgba(8, 11, 22, 0.12) 20%, rgba(8, 11, 22, 0.86) 100%); }
.houselux-num {
  position: absolute; top: 18px; left: 18px; z-index: 2;
  font-size: 11px; font-weight: 800; letter-spacing: 0.2em; color: #f7e7bc;
}
.houselux-mv-copy { position: absolute; left: 22px; right: 22px; bottom: 22px; z-index: 2; }
.houselux-mv-copy em { font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #e0bd76; }
.houselux-mv-copy h3 { margin: 6px 0 8px; font-family: 'Cormorant Garamond', var(--serif); font-size: 32px; font-weight: 600; }
.houselux-mv-copy p { margin: 0 0 10px; color: rgba(255, 253, 247, 0.82); line-height: 1.55; }
.houselux-mv-copy ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.houselux-mv-copy li {
  padding: 5px 10px; border-radius: 999px; font-size: 11px; letter-spacing: 0.04em;
  border: 1px solid rgba(247, 231, 188, 0.35); color: #f7e7bc;
}

.houselux-why { padding: 24px 0 72px; }
.houselux-why--compact { padding-top: 8px; }
.houselux-why-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.houselux-why-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.houselux-why-card {
  position: relative;
  padding: 28px 22px 22px;
  border-radius: 24px;
  background: rgba(255, 253, 247, 0.86);
  border: 1px solid rgba(184, 146, 74, 0.24);
  box-shadow: 0 24px 50px -36px rgba(18, 23, 43, 0.35);
  overflow: hidden;
}
.houselux-why-card .houselux-num { position: static; color: #8a6a2c; display: block; margin-bottom: 8px; }
.houselux-why-ico {
  display: grid; place-items: center;
  width: 42px; height: 42px; margin-bottom: 12px;
  border-radius: 50%;
  color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.houselux-why-card h3 { margin: 0 0 8px; font-family: 'Cormorant Garamond', var(--serif); font-size: 24px; font-weight: 600; }
.houselux-why-card p { margin: 0; color: rgba(18, 23, 43, 0.62); line-height: 1.6; }

.houselux-journey { padding: 8px 0 80px; }
.houselux-path { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.houselux-path-item {
  display: grid;
  grid-template-columns: 92px 28px minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}
.houselux-path-year {
  padding-top: 18px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 28px; font-weight: 600; color: var(--hl-gold);
  text-align: right;
}
.houselux-path-dot {
  position: relative;
  display: flex; justify-content: center;
}
.houselux-path-dot::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 50%;
  width: 1px;
  background: linear-gradient(180deg, rgba(184, 146, 74, 0.15), rgba(184, 146, 74, 0.7), rgba(184, 146, 74, 0.15));
  transform: translateX(-50%);
}
.houselux-path-dot i {
  position: relative; z-index: 1;
  margin-top: 22px;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 50%;
  font-size: 10px; color: #2a1e06;
  background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.houselux-path-card {
  margin: 8px 0;
  padding: 18px 22px;
  border-radius: 20px;
  background: rgba(255, 253, 247, 0.9);
  border: 1px solid rgba(184, 146, 74, 0.24);
}
.houselux-path-code {
  font-size: 10px; font-weight: 800; letter-spacing: 0.2em; color: #8a6a2c;
}
.houselux-path-card h3 { margin: 4px 0 6px; font-family: 'Cormorant Garamond', var(--serif); font-size: 26px; font-weight: 600; }
.houselux-path-card p { margin: 0; color: rgba(18, 23, 43, 0.62); }

.houselux-pillars { padding: 0 0 72px; }
.houselux-pillar-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.houselux-pillar {
  padding: 24px 20px;
  border-radius: 22px;
  background: var(--hl-navy);
  color: #f6ecd2;
  min-height: 210px;
}
.houselux-pillar span { font-size: 11px; font-weight: 800; letter-spacing: 0.2em; color: #e0bd76; }
.houselux-pillar h3 { margin: 10px 0 8px; font-family: 'Cormorant Garamond', var(--serif); font-size: 24px; font-weight: 600; color: #fffefb; }
.houselux-pillar p { margin: 0; color: rgba(246, 236, 210, 0.72); line-height: 1.55; }

.houselux-atlas { padding: 0 0 80px; }
.houselux-atlas-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.houselux-atlas-card {
  position: relative;
  min-height: 340px;
  border-radius: 24px;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}
.houselux-atlas-card img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; transform: scale(1.04); transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1); }
.houselux-atlas-card:hover img { transform: scale(1.1); }
.houselux-atlas-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,11,22,0.08) 30%, rgba(8,11,22,0.82) 100%); }
.houselux-atlas-copy { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; flex-direction: column; gap: 4px; }
.houselux-atlas-copy em { font-style: normal; font-size: 10px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #e0bd76; }
.houselux-atlas-copy strong { font-family: 'Cormorant Garamond', var(--serif); font-size: 36px; font-weight: 600; }
.houselux-atlas-copy b { font-family: 'Great Vibes', cursive; font-weight: 400; font-size: 22px; color: #f7e7bc; }

.houselux-band {
  margin: 0;
  padding: 56px 0 72px;
  background:
    radial-gradient(700px 240px at 80% 0%, rgba(201, 162, 74, 0.28), transparent 70%),
    linear-gradient(180deg, #151c37 0%, #0b0f20 100%);
  color: #f6ecd2;
}
.houselux-band-in {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
}
.houselux-band h2 { color: #fffefb; }
.houselux-band p { margin: 0; color: rgba(246, 236, 210, 0.72); max-width: 48ch; }

.houselux-certs { padding: 12px 0 64px; }
.houselux-certs-list { display: flex; flex-direction: column; gap: 28px; }
.houselux-dossier {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 0;
  border-radius: 28px;
  overflow: hidden;
  background: rgba(255, 253, 247, 0.92);
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: 0 32px 70px -40px rgba(18, 23, 43, 0.4);
}
.houselux-dossier--flip { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
.houselux-dossier--flip .houselux-dossier-media { order: 2; }
.houselux-dossier-media {
  position: relative;
  min-height: 320px;
  padding: 0; border: 0; cursor: zoom-in;
  background: #12172b;
}
.houselux-dossier-media img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 320px; }
.houselux-dossier-zoom {
  position: absolute; right: 14px; bottom: 14px; z-index: 2;
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  color: #2a1e06; background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.houselux-dossier-body { position: relative; padding: 32px 32px 28px; }
.houselux-dossier-year { display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.16em; color: #8a6a2c; margin: 8px 0 12px; }
.houselux-dossier-crest {
  width: 56px; height: 56px; border-radius: 50%;
  display: grid; place-items: center;
  color: #fff; font-family: 'Cormorant Garamond', var(--serif); font-weight: 700; font-size: 13px;
  margin-bottom: 14px;
}
.houselux-dossier-body h3 { margin: 0 0 6px; font-family: 'Cormorant Garamond', var(--serif); font-size: 30px; font-weight: 600; line-height: 1.15; }
.houselux-dossier-issuer { margin: 0 0 12px; font-size: 13px; color: rgba(18, 23, 43, 0.5); }
.houselux-dossier-body > p { margin: 0 0 14px; line-height: 1.7; color: rgba(18, 23, 43, 0.7); }
.houselux-dossier-points { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 14px; }
.houselux-dossier-points li { font-size: 13px; color: rgba(18, 23, 43, 0.7); }
.houselux-dossier-points i { color: var(--hl-gold); margin-right: 6px; }

.houselux-desksec { padding: 64px 0 48px; }
.houselux-desk-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.88fr) minmax(0, 1.12fr);
  gap: 36px;
  align-items: start;
}
.houselux-desk-side p { margin: 0 0 14px; line-height: 1.7; color: rgba(18, 23, 43, 0.7); }
.houselux-reach { list-style: none; margin: 22px 0 20px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.houselux-reach li {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255, 253, 247, 0.85);
  border: 1px solid rgba(184, 146, 74, 0.22);
}
.houselux-reach-ico {
  width: 42px; height: 42px; flex: 0 0 auto;
  display: grid; place-items: center; border-radius: 50%;
  color: #2a1e06; background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}
.houselux-reach em { display: block; font-style: normal; font-size: 10px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #8a6a2c; }
.houselux-reach strong { font-size: 14px; font-weight: 600; color: var(--hl-ink); }
.houselux-channels { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.houselux-channel {
  display: flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 0 14px;
  border-radius: 14px;
  text-decoration: none; color: var(--hl-ink);
  background: #fffdf7; border: 1px solid rgba(184, 146, 74, 0.28);
  font-size: 12px; font-weight: 700;
}
.houselux-channel--wa { background: #12351f; color: #e8ffe8; border-color: transparent; }
.houselux-formwrap {
  position: relative;
  border-radius: 28px;
  padding: 8px;
  background: linear-gradient(180deg, rgba(255,253,247,0.96), #fff);
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 40px 80px -48px rgba(18, 23, 43, 0.45);
  overflow: hidden;
}
.houselux-form-foil {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(110deg, transparent 42%, rgba(201, 162, 74, 0.12) 50%, transparent 58%);
  animation: houseluxSheen 11s ease-in-out infinite;
}
.houselux-formwrap .iform-v2 { position: relative; z-index: 1; background: transparent; box-shadow: none; border: 0; }

.houselux-map { padding: 12px 0 64px; }
.houselux-map-frame {
  border-radius: 28px; overflow: hidden;
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 32px 70px -42px rgba(18, 23, 43, 0.4);
  min-height: 380px;
}
.houselux-map-frame iframe { display: block; width: 100%; height: 380px; border: 0; }

html.is-scrolling .houselux-photo-foil,
html.is-scrolling .houselux-form-foil,
html.is-scrolling .houselux-seal-ring { animation: none; }
@media (prefers-reduced-motion: reduce) {
  .houselux-photo-foil, .houselux-form-foil, .houselux-seal-ring,
  .houselux-photo img, .houselux-mv-photo img, .houselux-atlas-card img { animation: none; transition: none; }
}

.letterlux-faqs { padding: 12px 0 72px; }
.letterlux-faq-list {
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.letterlux-faq {
  border-radius: 20px;
  background: rgba(255, 253, 247, 0.92);
  border: 1px solid rgba(184, 146, 74, 0.24);
  overflow: hidden;
}
.letterlux-faq summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 10px;
  padding: 16px 18px;
}
.letterlux-faq summary::-webkit-details-marker { display: none; }
.letterlux-faq summary em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: normal;
  font-size: 14px;
  color: #8a6a2c;
}
.letterlux-faq summary strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  color: #12172b;
}
.letterlux-faq summary i {
  color: #b8924a;
  font-size: 12px;
  transition: transform 0.28s ease;
}
.letterlux-faq[open] summary i { transform: rotate(45deg); }
.letterlux-faq p {
  margin: 0;
  padding: 0 18px 18px 70px;
  color: rgba(18, 23, 43, 0.68);
  line-height: 1.7;
}
@media (max-width: 720px) {
  .letterlux-faq summary { grid-template-columns: 36px minmax(0, 1fr) 16px; padding: 14px; }
  .letterlux-faq summary strong { font-size: 18px; }
  .letterlux-faq p { padding: 0 14px 16px 14px; }
}

@media (max-width: 1024px) {
  .houselux-story-grid,
  .houselux-desk-grid,
  .houselux-dossier,
  .houselux-dossier--flip { grid-template-columns: 1fr; }
  .houselux-dossier--flip .houselux-dossier-media { order: 0; }
  .houselux-mv-grid,
  .houselux-why-grid,
  .houselux-why-grid--three,
  .houselux-atlas-grid { grid-template-columns: 1fr 1fr; }
  .houselux-pillar-grid,
  .houselux-seals-grid { grid-template-columns: 1fr 1fr; }
  .houselux-band-in { flex-direction: column; align-items: flex-start; }
  .houselux-head--row { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 720px) {
  .houselux-mv-grid,
  .houselux-why-grid,
  .houselux-why-grid--three,
  .houselux-atlas-grid,
  .houselux-pillar-grid,
  .houselux-seals-grid,
  .houselux-channels { grid-template-columns: 1fr; }
  .houselux-photo, .houselux-photo img { min-height: 320px; }
  .houselux-path-item { grid-template-columns: 64px 24px minmax(0, 1fr); gap: 10px; }
  .houselux-path-year { font-size: 20px; }
}

/* ========== WRITELUX — Contact / private desk ========== */
.writelux { color: #12172b; background: #fffdf8; }
.writehero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: min(88svh, 760px);
  color: #fffefb;
  background: #0b0f1e;
}
.writehero-stage { position: absolute; inset: 0; z-index: 0; }
.writehero-stage img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%;
  transform: scale(1.06);
  animation: writeKen 22s linear forwards;
}
@keyframes writeKen {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.14) translate3d(-1.5%, -1%, 0); }
}
.writehero-veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg, rgba(8, 11, 22, 0.88) 0%, rgba(8, 11, 22, 0.58) 36%, rgba(8, 11, 22, 0.22) 68%, rgba(8, 11, 22, 0.5) 100%),
    linear-gradient(180deg, rgba(8, 11, 22, 0.48) 0%, transparent 28%, rgba(8, 11, 22, 0.82) 100%);
}
.writehero-grain {
  position: absolute; inset: 0; opacity: 0.07; pointer-events: none;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.writehero-route {
  position: absolute; inset: 12% 0 18%;
  width: 100%; height: auto; z-index: 1; pointer-events: none;
  fill: none; stroke: rgba(201, 162, 74, 0.55); stroke-width: 1.4; stroke-dasharray: 6 10;
}
.writehero-jet {
  position: absolute; z-index: 2; top: 28%; left: 8%;
  color: #f2dda6; font-size: 18px;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,0.45));
  animation: writeJet 18s linear infinite;
}
@keyframes writeJet {
  0% { transform: translate3d(0, 20px, 0) rotate(-12deg); opacity: 0; }
  8% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate3d(78vw, -80px, 0) rotate(-8deg); opacity: 0; }
}
.writehero-dial {
  position: absolute; z-index: 2; right: 7%; top: 22%;
  width: 92px; height: 92px;
  display: grid; place-items: center;
  color: #f7e7bc; opacity: 0.8;
}
.writehero-dial span {
  position: absolute; inset: 0; border-radius: 50%;
  border: 1.2px dashed rgba(247, 231, 188, 0.7);
  animation: houseluxSpin 24s linear infinite;
}
.writehero-dial span:nth-child(2) { inset: 8px; animation-duration: 16s; animation-direction: reverse; }
.writehero-dial i { font-size: 22px; }
.writehero-stamp {
  position: absolute; z-index: 2; right: 8%; bottom: 18%;
  width: 96px; height: 96px; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border: 1.5px dashed rgba(247, 231, 188, 0.8);
  background: rgba(13, 18, 38, 0.55);
  backdrop-filter: blur(10px);
  color: #f7e7bc;
}
.writehero-stamp i { color: #e0bd76; }
.writehero-stamp em { font-style: normal; font-size: 8px; letter-spacing: 0.22em; text-transform: uppercase; }
.writehero-stamp strong { font-family: 'Cormorant Garamond', var(--serif); font-size: 18px; }
.writehero-in { position: relative; z-index: 3; padding: 120px 0 72px; max-width: 920px; }
.writehero-kicker {
  display: inline-flex; margin: 0 0 16px; padding: 8px 16px;
  border-radius: 999px; border: 1px solid rgba(240, 215, 140, 0.38);
  background: rgba(255,255,255,0.08); backdrop-filter: blur(12px);
  font-size: 10.5px; font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase; color: #f7e7bc;
}
.writehero h1 {
  margin: 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(48px, 7vw, 92px);
  font-weight: 600;
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: #fffefb;
  -webkit-text-fill-color: #fffefb;
  text-shadow: 0 12px 36px rgba(0, 0, 0, 0.55);
}
.writehero h1 em {
  font-style: italic;
  background: linear-gradient(100deg, #fdf3d8, #e0bd76 46%, #c9a24a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 8px 18px rgba(184, 146, 74, 0.35));
}
.writehero-script {
  margin: 12px 0 14px;
  font-family: 'Great Vibes', cursive; font-size: clamp(26px, 3vw, 40px); color: #e0bd76;
}
.writehero-lead { margin: 0 0 24px; max-width: 54ch; font-size: 16.5px; line-height: 1.7; color: rgba(255,255,255,0.86); }
.writehero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.writehero-pills {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.writehero-pills li {
  display: flex; flex-direction: column; gap: 2px;
  padding: 10px 16px; border-radius: 16px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(247, 231, 188, 0.28);
  backdrop-filter: blur(10px);
}
.writehero-pills em { font-style: normal; font-size: 9px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #e0bd76; }
.writehero-pills strong { font-size: 13px; font-weight: 600; }

.writemarq {
  overflow: hidden;
  background: #0d1226;
  border-top: 1px solid rgba(201, 162, 74, 0.25);
  border-bottom: 1px solid rgba(201, 162, 74, 0.25);
}
.writemarq-track {
  display: flex; align-items: center; gap: 22px;
  padding: 14px 0;
  width: max-content;
  color: #f6ecd2;
  font-size: 11px; font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase;
  animation: writeMarq 32s linear infinite;
}
.writemarq-track i { color: #c9a24a; font-size: 10px; }
@keyframes writeMarq { to { transform: translateX(-50%); } }

.writestage {
  position: relative;
  padding: 72px 0 56px;
  background:
    radial-gradient(800px 360px at 8% 0%, rgba(201, 162, 74, 0.14), transparent 60%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 100%);
}
.writestage-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
  gap: 28px;
  align-items: start;
}
.writepass {
  position: sticky; top: calc(var(--mast-offset, 160px) + 12px);
  border-radius: 28px; overflow: hidden;
  background: #fffdf7;
  border: 1px solid rgba(184, 146, 74, 0.32);
  box-shadow: 0 36px 70px -40px rgba(18, 23, 43, 0.5);
}
.writepass-photo {
  position: relative; min-height: 210px; padding: 18px;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 4px;
  color: #fff;
}
.writepass-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.writepass-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, rgba(8,11,22,0.88) 100%); }
.writepass-photo .houselux-kicker, .writepass-photo strong, .writepass-photo em { position: relative; z-index: 1; }
.writepass-photo strong { font-family: 'Cormorant Garamond', var(--serif); font-size: 28px; font-weight: 600; line-height: 1.05; }
.writepass-photo em { font-family: 'Great Vibes', cursive; font-style: normal; font-size: 20px; color: #e0bd76; }
.writepass-body { padding: 18px 18px 16px; }
.writepass-label { display: block; font-size: 10px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: #8a6a2c; margin-bottom: 8px; }
.writepass-body > p { margin: 0 0 14px; line-height: 1.6; color: rgba(18, 23, 43, 0.68); }
.writepass-rows { list-style: none; margin: 0; padding: 0; }
.writepass-rows li {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 9px 0;
  border-top: 1px dashed rgba(184, 146, 74, 0.3);
  font-size: 13px;
}
.writepass-rows span { color: rgba(18, 23, 43, 0.5); }
.writepass-tear {
  height: 16px; margin: 14px -18px 14px;
  background:
    radial-gradient(circle at 8px 0, transparent 7px, rgba(184, 146, 74, 0.18) 8px) repeat-x;
  background-size: 16px 16px;
}
.writepass-wa {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; border-radius: 999px;
  background: #12351f; color: #e8ffe8; text-decoration: none;
  font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
}

.writefolio {
  position: relative;
  border-radius: 30px;
  padding: 10px;
  background:
    linear-gradient(#fffdf7, #fffdf7) padding-box,
    linear-gradient(135deg, #fdf3d8, #c9a24a 40%, #8a6a2c 70%, #fdf3d8) border-box;
  border: 1.5px solid transparent;
  box-shadow: 0 40px 80px -48px rgba(18, 23, 43, 0.5);
  overflow: hidden;
}
.writefolio-corners { position: absolute; inset: 10px; pointer-events: none; z-index: 3; }
.writefolio-corners i {
  position: absolute; width: 14px; height: 14px;
  border: 0 solid rgba(184, 146, 74, 0.85);
}
.writefolio-corners i:nth-child(1) { top: 0; left: 0; border-top-width: 1.6px; border-left-width: 1.6px; }
.writefolio-corners i:nth-child(2) { top: 0; right: 0; border-top-width: 1.6px; border-right-width: 1.6px; }
.writefolio-corners i:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1.6px; border-left-width: 1.6px; }
.writefolio-corners i:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1.6px; border-right-width: 1.6px; }
.writefolio-foil {
  position: absolute; inset: 0; pointer-events: none; z-index: 2;
  background: linear-gradient(110deg, transparent 42%, rgba(201, 162, 74, 0.16) 50%, transparent 58%);
  animation: houseluxSheen 10s ease-in-out infinite;
}
.writefolio .iform-v2 {
  position: relative; z-index: 1;
  background: transparent; box-shadow: none; border: 0; padding: 22px 22px 18px;
}
.writefolio .iform-v2::before { display: none; }
.writefolio .iform-v2-head .eyebrow { color: #8a6a2c; letter-spacing: 0.2em; }
.writefolio .iform-v2-title {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 600;
}
.writefolio .iform-v2-title em {
  background: linear-gradient(100deg, #b8924a, #e0bd76 40%, #8a6a2c);
  -webkit-background-clip: text; background-clip: text;
}
.writefolio .iform-v2 .req { color: #8a6a2c; }
.writefolio .iform-v2-field label { color: #6b5a32; }
.writefolio .iform-v2-field label i { color: #c9a24a; }
.writefolio .iform-v2-field input,
.writefolio .iform-v2-field select,
.writefolio .iform-v2-field textarea {
  border-color: rgba(184, 146, 74, 0.32);
  background: #fffef9;
  border-radius: 14px;
}
.writefolio .iform-v2-field input:hover,
.writefolio .iform-v2-field select:hover,
.writefolio .iform-v2-field textarea:hover { border-color: rgba(184, 146, 74, 0.7); }
.writefolio .iform-v2-field input:focus,
.writefolio .iform-v2-field select:focus,
.writefolio .iform-v2-field textarea:focus {
  border-color: #c9a24a;
  box-shadow: 0 0 0 4px rgba(201, 162, 74, 0.16);
}
.writefolio .iform-v2-stepper { border-color: rgba(184, 146, 74, 0.32); background: #fffef9; }
.writefolio .iform-v2-stepper button { color: #8a6a2c; }
.writefolio .iform-v2-terms input { accent-color: #c9a24a; }
.writefolio .iform-v2-actions .btn {
  border-radius: 999px; min-height: 48px;
  font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
}
.writefolio .iform-v2-actions .btn-primary {
  background: linear-gradient(180deg, #fdf3d8, #d9b56b 56%, #a9821f);
  color: #2a1e06; border: none;
  box-shadow: 0 16px 28px -16px rgba(169, 130, 31, 0.85);
}
.writefolio .iform-v2-actions .btn-whatsapp { background: #12351f; color: #e8ffe8; border: none; }

.writegates { padding: 24px 0 72px; background: #fffdf8; }
.writegates-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.writegate {
  position: relative; min-height: 320px; border-radius: 24px; overflow: hidden;
  color: #fff; text-decoration: none; isolation: isolate;
}
.writegate-photo, .writegate-scrim { position: absolute; inset: 0; }
.writegate-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.05); transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1); }
.writegate:hover .writegate-photo img { transform: scale(1.12); }
.writegate-scrim { background: linear-gradient(180deg, rgba(8,11,22,0.1) 20%, rgba(8,11,22,0.86) 100%); }
.writegate-copy { position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 2; display: flex; flex-direction: column; gap: 4px; }
.writegate-copy em { font-style: normal; font-size: 10px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #e0bd76; }
.writegate-copy strong { font-family: 'Cormorant Garamond', var(--serif); font-size: 30px; font-weight: 600; }
.writegate-copy b { font-weight: 500; font-size: 13px; color: rgba(255,253,247,0.82); word-break: break-word; }
.writegate-ico {
  position: absolute; top: 16px; right: 16px; z-index: 2;
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  color: #2a1e06; background: linear-gradient(180deg, #fdf3d8, #d9b56b);
}

.writestudio {
  padding: 8px 0 72px;
  background:
    radial-gradient(700px 300px at 90% 10%, rgba(201, 162, 74, 0.12), transparent 60%),
    #f6f0e4;
}
.writestudio-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 32px;
  align-items: center;
}
.writestudio-copy h2 {
  margin: 10px 0 8px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 600; line-height: 1.08;
}
.writestudio-copy h2 em {
  font-style: italic;
  background: linear-gradient(100deg, #b8924a, #e0bd76 40%, #8a6a2c);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.writestudio-copy > p { margin: 0 0 14px; line-height: 1.7; color: rgba(18, 23, 43, 0.68); }
.writestudio-map {
  position: relative;
  border-radius: 28px; overflow: hidden; min-height: 400px;
  border: 1px solid rgba(184, 146, 74, 0.35);
  box-shadow: 0 36px 70px -42px rgba(18, 23, 43, 0.45);
}
.writestudio-map iframe { display: block; width: 100%; height: 400px; border: 0; }
.writestudio-foil {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  box-shadow: inset 0 0 0 1px rgba(201, 162, 74, 0.35);
  background: linear-gradient(110deg, transparent 46%, rgba(247, 231, 188, 0.18) 50%, transparent 54%);
  animation: houseluxSheen 12s ease-in-out infinite;
}

html.is-scrolling .writehero-stage img,
html.is-scrolling .writehero-jet,
html.is-scrolling .writehero-dial span,
html.is-scrolling .writemarq-track,
html.is-scrolling .writefolio-foil,
html.is-scrolling .writestudio-foil { animation: none; }

@media (prefers-reduced-motion: reduce) {
  .writehero-stage img, .writehero-jet, .writehero-dial span,
  .writemarq-track, .writefolio-foil, .writestudio-foil,
  .writegate-photo img { animation: none; transition: none; }
}

@media (max-width: 1024px) {
  .writestage-grid, .writestudio-grid { grid-template-columns: 1fr; }
  .writepass { position: static; }
  .writegates-grid { grid-template-columns: 1fr 1fr; }
  .writehero-dial, .writehero-stamp { display: none; }
}
@media (max-width: 720px) {
  .writegates-grid { grid-template-columns: 1fr; }
  .writehero-in { padding: 96px 0 56px; }
  .writehero { min-height: 72svh; }
}

/* Homepage — tighter vertical rhythm so the canvas feels filled, not airy */
.page-home .curohero {
  min-height: 640px;
  min-height: calc(92svh - var(--mast-offset, 168px));
}
.page-home .curohero-grid { padding-block: 28px 120px; }
.page-home .voyagate,
.page-home .voyagate-card { min-height: 340px; }
.page-home .discover-v2,
.page-home .flightband,
.page-home .aboutlux,
.page-home .trustlux,
.page-home .siglux,
.page-home .desklux,
.page-home .themelux,
.page-home .spinlux,
.page-home .offerlux,
.page-home .indialux,
.page-home .coollux,
.page-home .worklux,
.page-home .planlux,
.page-home .skylux,
.page-home .voicelux,
.page-home .postlux,
.page-home .journlux,
.page-home .faqlux,
.page-home .intllux,
.page-home .whylux,
.page-home .statlux,
.page-home .ctalux,
.page-home .luxpkg,
.page-home .atlaslux,
.page-home .newsletter,
.page-home .section.discover-v2 {
  padding-top: clamp(36px, 4.2vw, 58px);
  padding-bottom: clamp(36px, 4.2vw, 58px);
}
.page-home .dv2-head,
.page-home .trustlux-head,
.page-home .siglux-head,
.page-home .desklux-head,
.page-home .themelux-head,
.page-home .spinlux-head,
.page-home .offerlux-head,
.page-home .indialux-head,
.page-home .coollux-head,
.page-home .worklux-head,
.page-home .planlux-head,
.page-home .skylux-head,
.page-home .voicelux-head,
.page-home .postlux-head,
.page-home .journlux-head,
.page-home .faqlux-head,
.page-home .intllux-head,
.page-home .whylux-head,
.page-home .statlux-head,
.page-home .luxpkg-head,
.page-home .atlaslux-head,
.page-home .moodlux-head,
.page-home .section-head {
  margin-bottom: clamp(18px, 2.2vw, 28px);
}
.page-home .newsletter-band { padding: 42px 40px; }
.page-home .moodlux,
.page-home .luxpkg,
.page-home .atlaslux {
  padding-top: clamp(36px, 4.2vw, 58px);
  padding-bottom: clamp(36px, 4.2vw, 58px);
}

/* ============================================================
   MOOD RAILS — themed auto-scroll package ateliers
   ============================================================ */
.moodlux {
  --md-gold: #d4b36a;
  --md-ink: #12101a;
  --md-paper: #fff8f2;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--md-ink);
  scroll-margin-top: 160px;
}
.moodlux-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.moodlux-inner { position: relative; z-index: 1; }
.moodlux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(88px);
  opacity: 0.55;
}
.moodlux-aurora.a { width: 48vw; height: 48vw; left: -12vw; top: -18vw; }
.moodlux-aurora.b { width: 42vw; height: 42vw; right: -10vw; top: -8vw; }
.moodlux-aurora.c { width: 50vw; height: 36vw; left: 28vw; bottom: -18vw; }
.moodlux-photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 40%;
  opacity: 0.12;
  mix-blend-mode: luminosity;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 24%, #000 78%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 24%, #000 78%, transparent);
}
.moodlux-silk {
  position: absolute;
  inset: 0;
  opacity: 0.55;
  background:
    linear-gradient(118deg, transparent 0 42%, rgba(255,255,255,0.04) 46%, transparent 52%),
    linear-gradient(180deg, rgba(255,255,255,0.04), transparent 28%, transparent 72%, rgba(0,0,0,0.18));
}
.moodlux-mesh {
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 72px 72px;
}
.moodlux-mark {
  position: absolute;
  right: -2%;
  bottom: -8%;
  font-size: clamp(160px, 22vw, 280px);
  color: var(--md-gold);
  opacity: 0.07;
  line-height: 1;
  transform: rotate(-12deg);
  pointer-events: none;
}
.moodlux-route {
  position: absolute;
  left: 0; right: 0; top: 6%;
  width: 100%; height: 28%;
}
.moodlux-route path {
  fill: none;
  stroke: var(--md-gold);
  stroke-width: 1.4;
  stroke-dasharray: 6 11;
  opacity: 0.45;
  animation: moodDash 36s linear infinite;
}
@keyframes moodDash { to { stroke-dashoffset: -640; } }
.moodlux-craft {
  position: absolute;
  left: 6%;
  top: 18%;
  font-size: 18px;
  color: var(--md-gold);
  opacity: 0.7;
  animation: moodCraft 22s ease-in-out infinite;
}
@keyframes moodCraft {
  0%, 100% { transform: translate3d(0,0,0) rotate(-8deg); }
  50% { transform: translate3d(12px,-10px,0) rotate(8deg); }
}

.moodlux-head {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: 24px 40px;
  align-items: end;
  margin-bottom: 22px;
}
.moodlux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--md-gold);
  margin-bottom: 8px;
}
.moodlux-title {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 4.2vw, 52px);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: -0.03em;
  margin: 0;
}
.moodlux-title em {
  font-style: italic;
  font-weight: 500;
  color: var(--md-gold);
}
.moodlux-script {
  font-family: 'Great Vibes', cursive;
  font-size: clamp(22px, 2.4vw, 30px);
  margin: 8px 0 0;
  color: var(--md-gold);
}
.moodlux-head-aside { padding-right: clamp(0px, 8vw, 108px); }
.moodlux-lead {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  opacity: 0.78;
}
.moodlux-count {
  display: inline-block;
  margin-top: 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.55;
}
.moodlux-itin {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0 0 22px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.62;
}
.moodlux-itin i { font-size: 9px; color: var(--md-gold); }

.moodlux-rail {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  scrollbar-width: none;
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.moodlux-rail::-webkit-scrollbar { display: none; }
.moodlux-rail.is-dragging { cursor: grabbing; user-select: none; }
.moodlux-track {
  display: flex;
  gap: 16px;
  width: max-content;
  animation: none;
  transform: none;
}
.moodlux.is-static .moodlux-track { animation: none; transform: none; }

.moodlux-card {
  position: relative;
  flex: 0 0 300px;
  height: 420px;
  border-radius: 22px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  isolation: isolate;
  box-shadow: 0 22px 40px -28px rgba(8, 8, 16, 0.7);
  border: 1px solid rgba(212, 179, 106, 0.28);
}
.moodlux-card-foil {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(246, 236, 210, 0.18);
  background: linear-gradient(180deg, rgba(255,255,255,0.12), transparent 28%);
}
.moodlux-card-photo { position: absolute; inset: 0; }
.moodlux-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.8s ease;
}
.moodlux-card:hover .moodlux-card-photo img { transform: scale(1.12); }
.moodlux-card-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8,6,12,0.08) 20%, rgba(8,6,12,0.88) 100%);
}
.moodlux-num {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: #f6ecd2;
}
.moodlux-stamp {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1.4px dashed rgba(246, 236, 210, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(18, 12, 8, 0.35);
  backdrop-filter: blur(6px);
  line-height: 1;
}
.moodlux-stamp i { font-size: 12px; color: var(--md-gold); margin-bottom: 3px; }
.moodlux-stamp em { font-size: 8px; letter-spacing: 0.16em; text-transform: uppercase; font-style: normal; opacity: 0.8; }
.moodlux-stamp strong { font-family: 'Cormorant Garamond', serif; font-size: 13px; }
.moodlux-meta {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.moodlux-meta em {
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.8;
}
.moodlux-meta strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.05;
}
.moodlux-line {
  font-size: 13px;
  opacity: 0.78;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.moodlux-dur {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.moodlux-dur .fa-arrow-right { color: var(--md-gold); }

.moodlux-all {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  padding: 12px 16px;
  border-radius: 18px;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(212, 179, 106, 0.28);
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(10px);
}
.moodlux-all-seal {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #f7e7b8, #c9a24a);
  color: #2a1e06;
  flex: 0 0 auto;
}
.moodlux-all-copy { min-width: 0; flex: 1; }
.moodlux-all-copy span {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.55;
}
.moodlux-all-copy strong {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-weight: 600;
}
.moodlux-all-copy em {
  display: block;
  font-style: normal;
  font-size: 12px;
  opacity: 0.7;
}
.moodlux-all > .fa-arrow-right { color: var(--md-gold); }

/* ---- Honeymoon: ivory, blush & champagne — written for two ---- */
.moodlux--honeymoon {
  --md-gold: #c4a06a;
  --md-ink: #3a2430;
  --md-rose: #c47a8c;
  --md-blush: #f6d5de;
  color: var(--md-ink);
  background:
    radial-gradient(980px 520px at 6% -8%, rgba(236, 176, 196, 0.38), transparent 58%),
    radial-gradient(860px 460px at 100% 0%, rgba(212, 179, 106, 0.32), transparent 60%),
    radial-gradient(720px 400px at 48% 108%, rgba(248, 214, 224, 0.7), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fff8f6 26%, #faf1e8 58%, #fffdfb 100%);
}
.moodlux--honeymoon .moodlux-aurora.a {
  background: radial-gradient(circle, rgba(232, 164, 184, 0.55), transparent 70%);
}
.moodlux--honeymoon .moodlux-aurora.b {
  background: radial-gradient(circle, rgba(212, 179, 106, 0.42), transparent 70%);
}
.moodlux--honeymoon .moodlux-aurora.c {
  background: radial-gradient(circle, rgba(255, 255, 255, 0.9), rgba(246, 213, 222, 0.4) 40%, transparent 70%);
}
.moodlux--honeymoon .moodlux-photo {
  opacity: 0.16;
  mix-blend-mode: multiply;
  filter: saturate(0.85) contrast(1.05);
}
.moodlux--honeymoon .moodlux-silk {
  opacity: 0.85;
  background:
    linear-gradient(118deg, transparent 0 38%, rgba(255, 255, 255, 0.55) 46%, transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.5), transparent 22%, transparent 74%, rgba(232, 176, 192, 0.12));
  animation: honeymoonSheen 14s ease-in-out infinite;
}
@keyframes honeymoonSheen {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4%); }
}
.moodlux--honeymoon .moodlux-mesh {
  opacity: 0.28;
  background-image:
    linear-gradient(rgba(196, 122, 140, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196, 160, 106, 0.1) 1px, transparent 1px);
}
.moodlux--honeymoon .moodlux-veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255, 255, 255, 0.55), transparent 55%),
    radial-gradient(70% 50% at 88% 18%, rgba(212, 179, 106, 0.16), transparent 70%);
  pointer-events: none;
}
.moodlux--honeymoon .moodlux-title {
  color: #2c1822;
}
.moodlux--honeymoon .moodlux-title em {
  background: linear-gradient(100deg, #b76e79 0%, #d4a373 42%, #c9a24a 86%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #b76e79;
}
.moodlux--honeymoon .moodlux-kicker { color: #b76e79; }
.moodlux--honeymoon .moodlux-script { color: #c47a8c; }
.moodlux--honeymoon .moodlux-lead,
.moodlux--honeymoon .moodlux-count,
.moodlux--honeymoon .moodlux-itin { color: #5a3a46; opacity: 0.86; }
.moodlux--honeymoon .moodlux-card {
  border-color: rgba(196, 160, 106, 0.5);
  box-shadow:
    0 28px 50px -28px rgba(80, 28, 48, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.65) inset;
}
.moodlux--honeymoon .moodlux-card-foil {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 30%),
    linear-gradient(110deg, transparent 42%, rgba(247, 231, 188, 0.28) 50%, transparent 58%);
  box-shadow: inset 0 0 0 1px rgba(246, 226, 210, 0.45);
  animation: honeymoonFoil 10s ease-in-out infinite;
}
@keyframes honeymoonFoil {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
.moodlux--honeymoon .moodlux-card-scrim {
  background: linear-gradient(180deg, rgba(58, 20, 32, 0.04) 18%, rgba(42, 16, 28, 0.78) 100%);
}
.moodlux--honeymoon .moodlux-all {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.82), rgba(255, 247, 246, 0.55));
  border-color: rgba(196, 160, 106, 0.42);
  box-shadow: 0 18px 40px -28px rgba(80, 28, 48, 0.35);
}
.moodlux--honeymoon .moodlux-all-seal {
  background: linear-gradient(180deg, #fde8ee, #e8b4c0 52%, #c47a8c);
  color: #3a1822;
}
.moodlux--honeymoon .moodlux-hearts i {
  position: absolute;
  left: calc(4% + var(--i) * 6%);
  bottom: -10%;
  color: rgba(196, 122, 140, 0.55);
  font-size: calc(11px + var(--i) * 0.7px);
  filter: drop-shadow(0 0 8px rgba(212, 179, 106, 0.35));
  animation: moodHeart 14s ease-in infinite;
  animation-delay: calc(var(--i) * -0.8s);
}
@keyframes moodHeart {
  0% { transform: translate3d(0, 24px, 0) scale(0.4) rotate(-12deg); opacity: 0; }
  12% { opacity: 0.85; }
  100% { transform: translate3d(22px, -78vh, 0) scale(1.15) rotate(16deg); opacity: 0; }
}
.moodlux--honeymoon .moodlux-petals i {
  position: absolute;
  left: calc(8% + var(--i) * 7.2%);
  top: -8%;
  width: 11px;
  height: 18px;
  border-radius: 80% 0 80% 0;
  background: linear-gradient(135deg, #fff6f8, #e8a8b8 60%, #d4a373);
  opacity: 0.5;
  animation: moodPetal 16s linear infinite;
  animation-delay: calc(var(--i) * -1.1s);
}
@keyframes moodPetal {
  0% { transform: translate3d(0,-10px,0) rotate(0deg); opacity: 0; }
  12% { opacity: 0.65; }
  100% { transform: translate3d(-40px, 78vh, 0) rotate(220deg); opacity: 0; }
}
.moodlux--honeymoon .moodlux-spark i {
  position: absolute;
  top: calc(12% + var(--i) * 5.4%);
  left: calc(6% + var(--i) * 6.5%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0 30%, #e0bd76 55%, transparent 70%);
  box-shadow: 0 0 10px rgba(224, 189, 118, 0.85);
  animation: honeymoonSpark 3.6s ease-in-out infinite;
  animation-delay: calc(var(--i) * -0.28s);
}
.moodlux--honeymoon .moodlux-spark i:nth-child(odd) {
  width: 3px;
  height: 3px;
  background: radial-gradient(circle, #fff, #e8a8b8 60%, transparent 70%);
}
@keyframes honeymoonSpark {
  0%, 100% { opacity: 0.15; transform: scale(0.6); }
  50% { opacity: 1; transform: scale(1.35); }
}
.moodlux--honeymoon .moodlux-rings {
  position: absolute;
  right: 6%;
  top: 22%;
  width: 108px;
  height: 64px;
  filter: drop-shadow(0 10px 18px rgba(196, 160, 106, 0.28));
}
.moodlux--honeymoon .moodlux-rings::before,
.moodlux--honeymoon .moodlux-rings::after {
  content: "";
  position: absolute;
  top: 0;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 2px solid rgba(196, 122, 140, 0.7);
  box-shadow: 0 0 18px rgba(196, 122, 140, 0.2), inset 0 0 12px rgba(255, 255, 255, 0.65);
}
.moodlux--honeymoon .moodlux-rings::before { left: 0; }
.moodlux--honeymoon .moodlux-rings::after {
  left: 32px;
  border-color: rgba(196, 160, 106, 0.9);
  box-shadow: 0 0 18px rgba(212, 179, 106, 0.28), inset 0 0 12px rgba(255, 248, 230, 0.7);
}
.moodlux--honeymoon .moodlux-vow {
  position: absolute;
  right: 7%;
  top: 8%;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.95), transparent 42%),
    linear-gradient(180deg, #fffdfb, #f6d5de 58%, #f3ead4);
  border: 1.6px dashed rgba(196, 160, 106, 0.75);
  box-shadow: 0 18px 36px -22px rgba(80, 28, 48, 0.4);
  color: #3a2430;
  line-height: 1.05;
  transform: rotate(8deg);
}
.moodlux--honeymoon .moodlux-vow i { color: #c47a8c; font-size: 14px; margin-bottom: 4px; }
.moodlux--honeymoon .moodlux-vow em {
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #b76e79;
}
.moodlux--honeymoon .moodlux-vow strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  font-weight: 600;
}

/* ---- Family: ivory marble, forest, house crest ---- */
.moodlux--family {
  --md-gold: #b8924a;
  --md-ink: #1c2418;
  background:
    radial-gradient(900px 420px at 6% 0%, rgba(90, 140, 78, 0.22), transparent 58%),
    radial-gradient(760px 360px at 100% 8%, rgba(201, 162, 74, 0.24), transparent 60%),
    linear-gradient(180deg, #fffaf0 0%, #f3ead4 48%, #f8f1df 100%);
}
.moodlux--family .moodlux-aurora.a { background: radial-gradient(circle, rgba(90, 140, 78, 0.34), transparent 70%); }
.moodlux--family .moodlux-aurora.b { background: radial-gradient(circle, rgba(201, 162, 74, 0.36), transparent 70%); }
.moodlux--family .moodlux-photo { opacity: 0.14; mix-blend-mode: multiply; }
.moodlux--family .moodlux-mesh {
  opacity: 0.2;
  background-image:
    linear-gradient(rgba(28,36,24,0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28,36,24,0.055) 1px, transparent 1px);
}
.moodlux--family .moodlux-card {
  border-color: rgba(184, 146, 74, 0.42);
  box-shadow: 0 22px 42px -24px rgba(40, 48, 28, 0.45);
}
.moodlux--family .moodlux-all {
  background: linear-gradient(90deg, rgba(255,255,255,0.62), rgba(247, 241, 226, 0.4));
}
.moodlux--family .moodlux-confetti i {
  position: absolute;
  top: 12%;
  left: calc(6% + var(--i) * 6.4%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c9a24a;
  opacity: 0.7;
  animation: moodConf 8s ease-in-out infinite;
  animation-delay: calc(var(--i) * -0.55s);
}
.moodlux--family .moodlux-confetti i:nth-child(odd) {
  background: #6d8f5a;
  border-radius: 1px;
  width: 7px;
  height: 11px;
}
.moodlux--family .moodlux-confetti i:nth-child(3n) {
  background: #d46a8a;
  border-radius: 50% 0;
}
@keyframes moodConf {
  0%, 100% { transform: translate3d(0,0,0) rotate(0deg); }
  50% { transform: translate3d(10px, 22px, 0) rotate(48deg); }
}
.moodlux--family .moodlux-crest {
  position: absolute;
  right: 6%;
  top: 14%;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  border: 1.6px dashed rgba(184, 146, 74, 0.7);
  background: rgba(255, 250, 240, 0.55);
  backdrop-filter: blur(8px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #3a2a12;
  box-shadow: 0 12px 28px -16px rgba(40, 32, 12, 0.45);
}
.moodlux--family .moodlux-crest i { color: #6d8f5a; font-size: 16px; margin-bottom: 4px; }
.moodlux--family .moodlux-crest em {
  font-size: 8px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-style: normal;
  opacity: 0.7;
}
.moodlux--family .moodlux-crest strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
}

/* ---- Spiritual: ivory temple, saffron & living gold ---- */
.moodlux--spiritual {
  --md-gold: #c9a24a;
  --md-ink: #3a2818;
  --md-saffron: #d4891a;
  color: var(--md-ink);
  background:
    radial-gradient(980px 520px at 8% -8%, rgba(232, 168, 72, 0.32), transparent 58%),
    radial-gradient(860px 460px at 100% 0%, rgba(196, 92, 48, 0.14), transparent 60%),
    radial-gradient(720px 400px at 48% 108%, rgba(247, 231, 188, 0.7), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fffaf3 26%, #f7eedc 58%, #fffdf8 100%);
}
.moodlux--spiritual .moodlux-aurora.a {
  background: radial-gradient(circle, rgba(232, 168, 72, 0.5), transparent 70%);
}
.moodlux--spiritual .moodlux-aurora.b {
  background: radial-gradient(circle, rgba(201, 162, 74, 0.38), transparent 70%);
}
.moodlux--spiritual .moodlux-aurora.c {
  background: radial-gradient(circle, rgba(255, 255, 255, 0.92), rgba(247, 231, 188, 0.45) 40%, transparent 70%);
}
.moodlux--spiritual .moodlux-photo {
  opacity: 0.14;
  mix-blend-mode: multiply;
  filter: saturate(0.9) sepia(0.12);
}
.moodlux--spiritual .moodlux-silk {
  opacity: 0.88;
  background:
    linear-gradient(118deg, transparent 0 38%, rgba(255, 255, 255, 0.58) 46%, transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.5), transparent 22%, transparent 74%, rgba(232, 168, 72, 0.1));
  animation: honeymoonSheen 14s ease-in-out infinite;
}
.moodlux--spiritual .moodlux-mesh {
  opacity: 0.26;
  background-image:
    linear-gradient(rgba(180, 120, 40, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201, 162, 74, 0.1) 1px, transparent 1px);
}
.moodlux--spiritual .moodlux-veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255, 255, 255, 0.55), transparent 55%),
    radial-gradient(70% 50% at 88% 18%, rgba(232, 168, 72, 0.16), transparent 70%);
  pointer-events: none;
}
.moodlux--spiritual .moodlux-title { color: #2c1c10; }
.moodlux--spiritual .moodlux-title em {
  background: linear-gradient(100deg, #c45c38 0%, #d4891a 42%, #c9a24a 86%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #c45c38;
}
.moodlux--spiritual .moodlux-kicker { color: #c45c38; }
.moodlux--spiritual .moodlux-script { color: #b07a28; }
.moodlux--spiritual .moodlux-lead,
.moodlux--spiritual .moodlux-count,
.moodlux--spiritual .moodlux-itin { color: #5a3e28; opacity: 0.86; }
.moodlux--spiritual .moodlux-card {
  border-color: rgba(201, 162, 74, 0.5);
  box-shadow:
    0 28px 50px -28px rgba(72, 40, 12, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.65) inset;
}
.moodlux--spiritual .moodlux-card-foil {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 30%),
    linear-gradient(110deg, transparent 42%, rgba(247, 231, 188, 0.3) 50%, transparent 58%);
  box-shadow: inset 0 0 0 1px rgba(246, 236, 210, 0.45);
}
.moodlux--spiritual .moodlux-card-scrim {
  background: linear-gradient(180deg, rgba(42, 24, 10, 0.04) 18%, rgba(28, 16, 8, 0.78) 100%);
}
.moodlux--spiritual .moodlux-all {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.84), rgba(255, 250, 243, 0.55));
  border-color: rgba(201, 162, 74, 0.42);
  box-shadow: 0 18px 40px -28px rgba(72, 40, 12, 0.35);
}
.moodlux--spiritual .moodlux-all-seal {
  background: linear-gradient(180deg, #fdf3d8, #e0bd76 52%, #c45c38);
  color: #2a1e06;
}
.moodlux--spiritual .moodlux-om {
  position: absolute;
  left: 4%;
  top: 10%;
  font-size: clamp(88px, 14vw, 160px);
  line-height: 1;
  color: rgba(201, 162, 74, 0.14);
  font-family: 'Cormorant Garamond', serif;
  pointer-events: none;
}
.moodlux--spiritual .moodlux-spark i {
  position: absolute;
  top: calc(10% + var(--i) * 5.2%);
  left: calc(8% + var(--i) * 6.2%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0 28%, #e8b45a 55%, transparent 70%);
  box-shadow: 0 0 10px rgba(232, 180, 90, 0.85);
  animation: honeymoonSpark 3.4s ease-in-out infinite;
  animation-delay: calc(var(--i) * -0.26s);
}
.moodlux--spiritual .moodlux-diyas {
  position: absolute;
  left: 0; right: 0; bottom: 6%;
  height: 48px;
}
.moodlux--spiritual .moodlux-diyas i {
  position: absolute;
  bottom: 0;
  left: calc(8% + var(--i) * 10%);
  width: 8px;
  height: 8px;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 40% 30%, #fff6d8, #ffcf6b 40%, #c45c38);
  box-shadow: 0 0 16px 6px rgba(255, 180, 60, 0.38);
  animation: moodDiya 2.6s ease-in-out infinite;
  animation-delay: calc(var(--i) * 0.22s);
}
@keyframes moodDiya {
  0%, 100% { transform: scale(0.85); opacity: 0.5; }
  50% { transform: scale(1.28); opacity: 1; }
}
.moodlux--spiritual .moodlux-lotus {
  position: absolute;
  right: 7%;
  top: 24%;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 1.5px dashed rgba(201, 162, 74, 0.55);
  box-shadow: inset 0 0 28px rgba(232, 168, 72, 0.18), 0 0 32px rgba(232, 168, 72, 0.12);
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 248, 230, 0.9) 0 18%, transparent 19%),
    repeating-conic-gradient(from 0deg, rgba(201, 162, 74, 0.35) 0 12deg, transparent 12deg 30deg);
  animation: spiritualLotus 22s linear infinite;
}
@keyframes spiritualLotus {
  to { transform: rotate(360deg); }
}
.moodlux--spiritual .moodlux-incense {
  position: absolute;
  left: 22%;
  top: 16%;
  width: 2px;
  height: 80px;
  background: linear-gradient(180deg, transparent, rgba(201, 162, 74, 0.28));
  filter: blur(1px);
  animation: moodSmoke 5s ease-in-out infinite;
}
@keyframes moodSmoke {
  0%, 100% { transform: translate3d(0, 8px, 0) scaleY(0.8); opacity: 0.2; }
  50% { transform: translate3d(8px, -10px, 0) scaleY(1.1); opacity: 0.5; }
}
.moodlux--spiritual .moodlux-sacred {
  position: absolute;
  right: 7%;
  top: 8%;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.95), transparent 42%),
    linear-gradient(180deg, #fffdf8, #f7eedc 58%, #f3ead4);
  border: 1.6px dashed rgba(201, 162, 74, 0.75);
  box-shadow: 0 18px 36px -22px rgba(72, 40, 12, 0.4);
  color: #3a2818;
  line-height: 1.05;
  transform: rotate(-8deg);
}
.moodlux--spiritual .moodlux-sacred i { color: #c45c38; font-size: 16px; margin-bottom: 4px; }
.moodlux--spiritual .moodlux-sacred em {
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #b07a28;
}
.moodlux--spiritual .moodlux-sacred strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  font-weight: 600;
}

/* ---- Domestic: ivory India, saffron, forest & gold ---- */
.moodlux--domestic {
  --md-gold: #c9a24a;
  --md-ink: #2a2418;
  color: var(--md-ink);
  background:
    radial-gradient(980px 520px at 6% -8%, rgba(232, 168, 72, 0.3), transparent 58%),
    radial-gradient(860px 460px at 100% 0%, rgba(45, 106, 79, 0.16), transparent 60%),
    radial-gradient(720px 400px at 48% 108%, rgba(247, 231, 188, 0.65), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fffaf3 26%, #f6f0e4 58%, #fffdf8 100%);
}
.moodlux--domestic .moodlux-aurora.a {
  background: radial-gradient(circle, rgba(232, 168, 72, 0.48), transparent 70%);
}
.moodlux--domestic .moodlux-aurora.b {
  background: radial-gradient(circle, rgba(45, 106, 79, 0.28), transparent 70%);
}
.moodlux--domestic .moodlux-aurora.c {
  background: radial-gradient(circle, rgba(224, 138, 60, 0.22), transparent 70%);
}
.moodlux--domestic .moodlux-photo {
  opacity: 0.14;
  mix-blend-mode: multiply;
  filter: saturate(0.92) sepia(0.08);
}
.moodlux--domestic .moodlux-silk {
  opacity: 0.88;
  background:
    linear-gradient(118deg, transparent 0 38%, rgba(255, 255, 255, 0.58) 46%, transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.5), transparent 22%, transparent 74%, rgba(45, 106, 79, 0.08));
  animation: honeymoonSheen 14s ease-in-out infinite;
}
.moodlux--domestic .moodlux-mesh {
  opacity: 0.24;
  background-image:
    linear-gradient(rgba(45, 106, 79, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201, 162, 74, 0.1) 1px, transparent 1px);
}
.moodlux--domestic .moodlux-veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255, 255, 255, 0.55), transparent 55%),
    radial-gradient(70% 50% at 88% 18%, rgba(232, 168, 72, 0.14), transparent 70%);
  pointer-events: none;
}
.moodlux--domestic .moodlux-title { color: #241c10; }
.moodlux--domestic .moodlux-title em {
  background: linear-gradient(100deg, #c45c38 0%, #d4891a 40%, #2d6a4f 86%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #c45c38;
}
.moodlux--domestic .moodlux-kicker { color: #b07a28; }
.moodlux--domestic .moodlux-script { color: #2d6a4f; }
.moodlux--domestic .moodlux-lead,
.moodlux--domestic .moodlux-count,
.moodlux--domestic .moodlux-itin { color: #4a4030; opacity: 0.86; }
.moodlux--domestic .moodlux-card {
  border-color: rgba(201, 162, 74, 0.48);
  box-shadow:
    0 28px 50px -28px rgba(40, 32, 12, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.65) inset;
}
.moodlux--domestic .moodlux-card-foil {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 30%),
    linear-gradient(110deg, transparent 42%, rgba(247, 231, 188, 0.28) 50%, transparent 58%);
  box-shadow: inset 0 0 0 1px rgba(246, 236, 210, 0.45);
}
.moodlux--domestic .moodlux-card-scrim {
  background: linear-gradient(180deg, rgba(36, 28, 12, 0.04) 18%, rgba(24, 18, 8, 0.78) 100%);
}
.moodlux--domestic .moodlux-all {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.84), rgba(255, 250, 243, 0.55));
  border-color: rgba(201, 162, 74, 0.42);
  box-shadow: 0 18px 40px -28px rgba(40, 32, 12, 0.35);
}
.moodlux--domestic .moodlux-all-seal {
  background: linear-gradient(180deg, #fdf3d8, #e0bd76 48%, #2d6a4f);
  color: #2a1e06;
}
.moodlux--domestic .moodlux-spark i {
  position: absolute;
  top: calc(10% + var(--i) * 5.2%);
  left: calc(8% + var(--i) * 6.2%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0 28%, #e2c078 55%, transparent 70%);
  box-shadow: 0 0 10px rgba(226, 192, 120, 0.8);
  animation: honeymoonSpark 3.4s ease-in-out infinite;
  animation-delay: calc(var(--i) * -0.26s);
}
.moodlux--domestic .moodlux-ashoka {
  position: absolute;
  right: 7%;
  top: 24%;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px solid rgba(201, 162, 74, 0.55);
  background: repeating-conic-gradient(from 0deg, rgba(201, 162, 74, 0.7) 0 6deg, transparent 6deg 15deg);
  -webkit-mask: radial-gradient(circle, transparent 38%, #000 39% 52%, transparent 53%, #000 54%);
  mask: radial-gradient(circle, transparent 38%, #000 39% 52%, transparent 53%, #000 54%);
  box-shadow: 0 0 28px rgba(201, 162, 74, 0.18);
  animation: spiritualLotus 36s linear infinite;
}
.moodlux--domestic .moodlux-tricolor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5px;
  background: linear-gradient(90deg, #e08a3c 0 34%, #f7f1e2 34% 66%, #2d6a4f 66% 100%);
  opacity: 0.55;
}
.moodlux--domestic .moodlux-india {
  position: absolute;
  right: 7%;
  top: 8%;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.95), transparent 42%),
    linear-gradient(180deg, #fffdf8, #f7eedc 58%, #f3ead4);
  border: 1.6px dashed rgba(201, 162, 74, 0.75);
  box-shadow: 0 18px 36px -22px rgba(40, 32, 12, 0.4);
  color: #2a2418;
  line-height: 1.05;
  transform: rotate(-8deg);
}
.moodlux--domestic .moodlux-india i { color: #2d6a4f; font-size: 14px; margin-bottom: 4px; }
.moodlux--domestic .moodlux-india em {
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #b07a28;
}
.moodlux--domestic .moodlux-india strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  font-weight: 600;
}

/* ---- International: ivory atlas, sky & champagne gold ---- */
.moodlux--international {
  --md-gold: #c9a24a;
  --md-ink: #1c2438;
  color: var(--md-ink);
  background:
    radial-gradient(980px 520px at 6% -8%, rgba(90, 150, 220, 0.22), transparent 58%),
    radial-gradient(860px 460px at 100% 0%, rgba(201, 162, 74, 0.26), transparent 60%),
    radial-gradient(720px 400px at 48% 108%, rgba(230, 240, 255, 0.7), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #f7f9ff 26%, #f4efe4 58%, #fffdf8 100%);
}
.moodlux--international .moodlux-aurora.a {
  background: radial-gradient(circle, rgba(90, 150, 220, 0.4), transparent 70%);
}
.moodlux--international .moodlux-aurora.b {
  background: radial-gradient(circle, rgba(201, 162, 74, 0.38), transparent 70%);
}
.moodlux--international .moodlux-aurora.c {
  background: radial-gradient(circle, rgba(255, 255, 255, 0.9), rgba(200, 220, 255, 0.4) 40%, transparent 70%);
}
.moodlux--international .moodlux-photo {
  opacity: 0.13;
  mix-blend-mode: multiply;
  filter: saturate(0.88);
}
.moodlux--international .moodlux-silk {
  opacity: 0.88;
  background:
    linear-gradient(118deg, transparent 0 38%, rgba(255, 255, 255, 0.58) 46%, transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.5), transparent 22%, transparent 74%, rgba(90, 150, 220, 0.08));
  animation: honeymoonSheen 14s ease-in-out infinite;
}
.moodlux--international .moodlux-mesh {
  opacity: 0.22;
  background-image:
    radial-gradient(circle at 70% 30%, transparent 0 90px, rgba(201,162,74,0.1) 91px 92px, transparent 93px),
    linear-gradient(rgba(28, 36, 56, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(90, 150, 220, 0.08) 1px, transparent 1px);
}
.moodlux--international .moodlux-veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255, 255, 255, 0.55), transparent 55%),
    radial-gradient(70% 50% at 88% 18%, rgba(90, 150, 220, 0.12), transparent 70%);
  pointer-events: none;
}
.moodlux--international .moodlux-title { color: #141c2c; }
.moodlux--international .moodlux-title em {
  background: linear-gradient(100deg, #3d6bb3 0%, #c9a24a 55%, #8a6a2c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #3d6bb3;
}
.moodlux--international .moodlux-kicker { color: #3d6bb3; }
.moodlux--international .moodlux-script { color: #8a6a2c; }
.moodlux--international .moodlux-lead,
.moodlux--international .moodlux-count,
.moodlux--international .moodlux-itin { color: #3a4458; opacity: 0.86; }
.moodlux--international .moodlux-card {
  border-color: rgba(90, 150, 220, 0.38);
  box-shadow:
    0 28px 50px -28px rgba(20, 32, 64, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.65) inset;
}
.moodlux--international .moodlux-card-foil {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 30%),
    linear-gradient(110deg, transparent 42%, rgba(200, 220, 255, 0.32) 50%, transparent 58%);
  box-shadow: inset 0 0 0 1px rgba(230, 240, 255, 0.5);
}
.moodlux--international .moodlux-card-scrim {
  background: linear-gradient(180deg, rgba(12, 20, 40, 0.04) 18%, rgba(10, 16, 32, 0.78) 100%);
}
.moodlux--international .moodlux-all {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.84), rgba(247, 249, 255, 0.55));
  border-color: rgba(90, 150, 220, 0.35);
  box-shadow: 0 18px 40px -28px rgba(20, 32, 64, 0.35);
}
.moodlux--international .moodlux-all-seal {
  background: linear-gradient(180deg, #e8f0ff, #c9a24a 56%, #3d6bb3);
  color: #141c2c;
}
.moodlux--international .moodlux-spark i {
  position: absolute;
  top: calc(10% + var(--i) * 5.2%);
  left: calc(8% + var(--i) * 6.2%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0 28%, #8ab0e0 50%, #e0bd76 70%, transparent 72%);
  box-shadow: 0 0 10px rgba(90, 150, 220, 0.7);
  animation: honeymoonSpark 3.4s ease-in-out infinite;
  animation-delay: calc(var(--i) * -0.26s);
}
.moodlux--international .moodlux-meridians {
  position: absolute;
  right: -4%;
  top: -8%;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  border: 1px solid rgba(90, 150, 220, 0.18);
  box-shadow:
    inset 0 0 0 40px rgba(201, 162, 74, 0.05),
    inset 0 0 0 80px rgba(90, 150, 220, 0.05);
  pointer-events: none;
}
.moodlux--international .moodlux-visa {
  position: absolute;
  right: 7%;
  top: 8%;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #1c2438;
  transform: rotate(8deg);
  background:
    radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.95), transparent 42%),
    linear-gradient(180deg, #fffdf8, #eef3ff 58%, #f3ead4);
  border: 1.6px dashed rgba(201, 162, 74, 0.7);
  box-shadow: 0 18px 36px -22px rgba(20, 32, 64, 0.4);
  backdrop-filter: none;
}
.moodlux--international .moodlux-visa i { color: #3d6bb3; font-size: 14px; }
.moodlux--international .moodlux-visa em {
  font-size: 8px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-style: normal;
  font-weight: 800;
  color: #8a6a2c;
  opacity: 1;
}
.moodlux--international .moodlux-visa strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  font-weight: 600;
}
.moodlux--international .moodlux-ports i {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c9a24a;
  box-shadow: 0 0 10px rgba(201, 162, 74, 0.75);
  animation: moodPort 4s ease-in-out infinite;
}
.moodlux--international .moodlux-ports i:nth-child(1) { left: 18%; top: 28%; }
.moodlux--international .moodlux-ports i:nth-child(2) { left: 38%; top: 18%; animation-delay: 0.4s; }
.moodlux--international .moodlux-ports i:nth-child(3) { left: 58%; top: 26%; animation-delay: 0.8s; }
.moodlux--international .moodlux-ports i:nth-child(4) { left: 72%; top: 40%; animation-delay: 1.1s; }
.moodlux--international .moodlux-ports i:nth-child(5) { left: 48%; top: 48%; animation-delay: 0.2s; }
.moodlux--international .moodlux-ports i:nth-child(6) { left: 28%; top: 52%; animation-delay: 1.4s; }
@keyframes moodPort {
  0%, 100% { transform: scale(0.7); opacity: 0.4; }
  50% { transform: scale(1.25); opacity: 1; }
}

html.is-scrolling .moodlux-hearts i,
html.is-scrolling .moodlux-petals i,
html.is-scrolling .moodlux-spark i,
html.is-scrolling .moodlux-silk,
html.is-scrolling .moodlux-diyas i,
html.is-scrolling .moodlux-lotus,
html.is-scrolling .moodlux-ashoka,
html.is-scrolling .moodlux-confetti i,
html.is-scrolling .moodlux-route path,
html.is-scrolling .moodlux-craft,
html.is-scrolling .moodlux-incense,
html.is-scrolling .moodlux-ports i,
.moodlux.is-offscreen .moodlux-hearts i,
.moodlux.is-offscreen .moodlux-petals i,
.moodlux.is-offscreen .moodlux-spark i,
.moodlux.is-offscreen .moodlux-silk,
.moodlux.is-offscreen .moodlux-diyas i,
.moodlux.is-offscreen .moodlux-lotus,
.moodlux.is-offscreen .moodlux-ashoka,
.moodlux.is-offscreen .moodlux-confetti i,
.moodlux.is-offscreen .moodlux-route path,
.moodlux.is-offscreen .moodlux-craft,
.moodlux.is-offscreen .moodlux-incense,
.moodlux.is-offscreen .moodlux-ports i {
  animation-play-state: paused !important;
}

@media (max-width: 900px) {
  .moodlux-head { grid-template-columns: 1fr; gap: 12px; }
  .moodlux-head-aside { padding-right: 88px; }
  .moodlux-card { flex-basis: 260px; height: 380px; }
  .moodlux-meta strong { font-size: 22px; }
  .moodlux-all { align-items: flex-start; }
  .moodlux-mark { font-size: 140px; }
  .moodlux--honeymoon .moodlux-rings,
  .moodlux--honeymoon .moodlux-vow { display: none; }
  .moodlux--honeymoon .moodlux-head-aside { padding-right: 0; }
  .moodlux--spiritual .moodlux-sacred,
  .moodlux--spiritual .moodlux-lotus { display: none; }
  .moodlux--spiritual .moodlux-head-aside { padding-right: 0; }
  .moodlux--domestic .moodlux-india,
  .moodlux--domestic .moodlux-ashoka { display: none; }
  .moodlux--domestic .moodlux-head-aside { padding-right: 0; }
  .moodlux--international .moodlux-visa { display: none; }
  .moodlux--international .moodlux-head-aside { padding-right: 0; }
  .moodlux--family .moodlux-crest { top: 8%; right: 3%; }
}
@media (prefers-reduced-motion: reduce) {
  .moodlux-track,
  .moodlux-hearts i,
  .moodlux-petals i,
  .moodlux-spark i,
  .moodlux-silk,
  .moodlux-diyas i,
  .moodlux-lotus,
  .moodlux-ashoka,
  .moodlux-confetti i,
  .moodlux-route path,
  .moodlux-craft,
  .moodlux-incense,
  .moodlux-ports i { animation: none !important; }
}

/* =============== COLLECTION PAGES (ULTRA LUXURY) =============== */
.collux { color: #12172b; background: #fffefb; }
.collux-body {
  --cx-gold: #c9a24a;
  --cx-gold-2: #b8924a;
  --cx-ink: #12172b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(56px, 6.5vw, 96px) 0 clamp(72px, 8vw, 120px);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(201, 162, 74, 0.15), transparent 58%),
    radial-gradient(820px 380px at 100% 12%, rgba(18, 23, 43, 0.05), transparent 62%),
    linear-gradient(180deg, #fffefb 0%, #f6f0e4 46%, #fffdf8 100%);
}
.collux-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.collux-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.55;
}
.collux-aurora.a {
  width: 420px; height: 420px; left: -80px; top: 40px;
  background: rgba(201, 162, 74, 0.22);
}
.collux-aurora.b {
  width: 380px; height: 380px; right: -60px; top: 180px;
  background: rgba(18, 23, 43, 0.06);
}
.collux-mesh {
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(184, 146, 74, 0.09) 0.8px, transparent 0.8px);
  background-size: 22px 22px;
  opacity: 0.45;
}
.collux-route {
  position: absolute; left: 0; right: 0; top: 90px; height: 180px;
  opacity: 0.45;
}
.collux-route path {
  fill: none;
  stroke: #b8924a;
  stroke-width: 1.2;
  stroke-dasharray: 6 9;
}
.collux-plane {
  position: absolute;
  top: 118px; left: 8%;
  color: var(--cx-gold-2);
  font-size: 14px;
  opacity: 0.7;
}
.collux-inner { position: relative; z-index: 1; }
.collux-letter {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 36px;
  align-items: start;
  padding: 28px 32px;
  border-radius: 28px;
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(201, 162, 74, 0.12), transparent 70%),
    linear-gradient(180deg, rgba(255, 253, 248, 0.92), rgba(246, 240, 228, 0.72));
  border: 1px solid rgba(184, 146, 74, 0.28);
  box-shadow: 0 36px 70px -48px rgba(18, 23, 43, 0.45);
}
.collux-seal {
  width: 118px; height: 118px;
  margin-top: 8px;
  border-radius: 50%;
  border: 2px dashed rgba(184, 146, 74, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #8a6a2c;
  transform: rotate(-12deg);
  background: rgba(255, 253, 248, 0.7);
}
.collux-seal i { font-size: 16px; color: var(--cx-gold-2); }
.collux-seal em {
  font-style: normal;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.collux-seal strong {
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 18px;
  font-weight: 700;
}
.collux-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a6a2c;
}
.collux-kicker i { color: var(--cx-gold-2); }
.collux-letter-copy h2,
.collux-head h2,
.collux-sisters h2 {
  margin: 8px 0 0;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: clamp(32px, 3.4vw, 52px);
  font-weight: 600;
  line-height: 1.08;
  color: var(--cx-ink);
}
.collux-letter-copy h2 em,
.collux-head h2 em,
.collux-sisters h2 em {
  font-style: italic;
  background: linear-gradient(100deg, #8a6a2c, #c9a24a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.collux-script {
  margin: 8px 0 0;
  font-family: 'Great Vibes', cursive;
  font-size: 30px;
  color: var(--cx-gold-2);
}
.collux-lead {
  max-width: 68ch;
  margin: 14px 0 0;
  font-size: 17px;
  line-height: 1.75;
  color: rgba(18, 23, 43, 0.72);
}
.collux-notes {
  list-style: none;
  margin: 36px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.collux-notes li {
  padding: 20px 18px 18px;
  border-radius: 20px;
  background: rgba(255, 253, 248, 0.78);
  border: 1px solid rgba(184, 146, 74, 0.22);
  box-shadow: 0 18px 36px -30px rgba(18, 23, 43, 0.45);
}
.collux-notes em {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: normal;
  font-size: 13px;
  color: var(--cx-gold-2);
}
.collux-notes strong {
  display: block;
  margin-top: 6px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.15;
}
.collux-notes p {
  margin: 8px 0 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(18, 23, 43, 0.62);
}
.collux-itin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 36px 0 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(18, 23, 43, 0.48);
}
.collux-itin i {
  font-size: 10px;
  color: var(--cx-gold-2);
  transform: rotate(45deg);
}
.collux-itin span {
  padding-bottom: 3px;
  border-bottom: 1px dashed rgba(184, 146, 74, 0.4);
}
.collux-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 48px 0 22px;
}
.collux-all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--cx-ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
}
.collux-all i { color: var(--cx-gold-2); transition: transform 0.3s ease; }
.collux-all:hover i { transform: translateX(4px); }
.collux-grid { margin-top: 8px; }
.collux-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 48px 20px;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 24px;
  color: rgba(18, 23, 43, 0.5);
}
.collux-sisters { margin-top: 72px; }
.collux-sisters h2 { margin-bottom: 18px; }
.collux-sister-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.collux-sister {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 10px;
  padding: 16px 16px;
  border-radius: 18px;
  text-decoration: none;
  color: var(--cx-ink);
  background: rgba(255, 253, 248, 0.8);
  border: 1px solid rgba(184, 146, 74, 0.22);
  transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
.collux-sister:hover {
  transform: translateY(-3px);
  background: linear-gradient(180deg, #fffdf8, #fdf3d8);
  box-shadow: 0 22px 40px -28px rgba(18, 23, 43, 0.4);
}
.collux-sister em {
  font-family: 'Cormorant Garamond', var(--serif);
  font-style: normal;
  font-size: 14px;
  color: var(--cx-gold-2);
}
.collux-sister strong {
  display: block;
  font-family: 'Cormorant Garamond', var(--serif);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.15;
}
.collux-sister b {
  display: block;
  margin-top: 2px;
  font-weight: 500;
  font-size: 12px;
  color: rgba(18, 23, 43, 0.52);
}
.collux-sister i { color: var(--cx-gold-2); font-size: 11px; }
.collux-desk { margin-top: 72px; }

@media (max-width: 980px) {
  .collux-letter { grid-template-columns: 1fr; gap: 16px; padding: 22px 20px; }
  .collux-seal { display: none; }
  .collux-notes,
  .collux-sister-grid { grid-template-columns: 1fr 1fr; }
  .collux-head { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 640px) {
  .collux-notes,
  .collux-sister-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .collux-route path,
  .collux-plane,
  .collux-hearts i,
  .collux-diyas i { animation: none !important; }
}

/* =============== HONEYMOON THEME — white, blush, champagne =============== */
.collux--honeymoon { background: #fffdfb; }
.collux--honeymoon .collux-body {
  --cx-gold: #c4a06a;
  --cx-gold-2: #b76e79;
  --cx-ink: #3a2430;
  background:
    radial-gradient(920px 460px at 6% 0%, rgba(236, 176, 196, 0.32), transparent 58%),
    radial-gradient(820px 400px at 100% 8%, rgba(212, 179, 106, 0.26), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fff7f4 42%, #faf1e6 100%);
}
.collux--honeymoon .collux-aurora.a { background: rgba(232, 164, 184, 0.38); }
.collux--honeymoon .collux-aurora.b { background: rgba(212, 179, 106, 0.28); }
.collux--honeymoon .collux-letter {
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(232, 164, 184, 0.18), transparent 70%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 247, 246, 0.78));
  border-color: rgba(196, 160, 106, 0.38);
}
.collux--honeymoon .collux-seal {
  color: #b76e79;
  border-color: rgba(196, 122, 140, 0.7);
  background: linear-gradient(180deg, #fffdfb, #f6d5de);
}
.collux--honeymoon .collux-letter-copy h2 em,
.collux--honeymoon .collux-head h2 em {
  background: linear-gradient(100deg, #b76e79, #d4a373 50%, #c9a24a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.collux--honeymoon .collux-notes li,
.collux--honeymoon .collux-sister {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 247, 246, 0.7));
  border-color: rgba(196, 160, 106, 0.28);
}
.collux--honeymoon .collux-hearts i {
  position: absolute;
  left: calc(8% + var(--i) * 8.4%);
  bottom: 8%;
  color: rgba(196, 122, 140, 0.28);
  font-size: calc(10px + var(--i) * 0.6px);
  animation: moodHeart 16s ease-in infinite;
  animation-delay: calc(var(--i) * -1.1s);
}
.collux--honeymoon .collux-rings {
  position: absolute;
  right: 9%;
  top: 70px;
  width: 88px;
  height: 52px;
}
.collux--honeymoon .collux-rings::before,
.collux--honeymoon .collux-rings::after {
  content: "";
  position: absolute;
  top: 0;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid rgba(196, 122, 140, 0.55);
}
.collux--honeymoon .collux-rings::before { left: 0; }
.collux--honeymoon .collux-rings::after {
  left: 26px;
  border-color: rgba(196, 160, 106, 0.8);
}

.herolux--honeymoon .herolux-scrim {
  background:
    linear-gradient(180deg, rgba(58, 24, 36, 0.22) 0%, rgba(58, 24, 36, 0.12) 36%, rgba(42, 16, 28, 0.72) 100%),
    radial-gradient(80% 70% at 50% 100%, rgba(183, 110, 121, 0.28), transparent 70%);
}
.herolux--honeymoon .herolux-kicker,
.herolux--honeymoon .herolux-script { color: #f3d5de; }

.themelux {
  transition: background 0.7s ease;
}
.themelux--honeymoon {
  --tm-gold: #c4a06a;
  --tm-gold-2: #b76e79;
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(236, 176, 196, 0.3), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(212, 179, 106, 0.22), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fff7f4 48%, #faf1e6 100%);
}
.themelux-tab[data-theme-tab="honeymoon"].is-active {
  background: linear-gradient(180deg, #fff7f9, #f3d5dc);
  color: #3a2430;
  border-color: rgba(196, 122, 140, 0.55);
  box-shadow: 0 18px 36px -20px rgba(80, 28, 48, 0.45);
}
.themelux-tab[data-theme-tab="honeymoon"].is-active i { color: #b76e79; }
.themelux-panel[data-theme-panel="honeymoon"] .themelux-card {
  box-shadow: 0 28px 48px -28px rgba(80, 28, 48, 0.42);
  border: 1px solid rgba(196, 160, 106, 0.38);
}
.themelux-panel[data-theme-panel="honeymoon"] .themelux-card--hero {
  box-shadow: 0 36px 60px -30px rgba(80, 28, 48, 0.5);
}

.collux--pilgrimage { background: #fffdf8; }
.collux--pilgrimage .collux-body {
  --cx-gold: #c9a24a;
  --cx-gold-2: #c45c38;
  --cx-ink: #3a2818;
  background:
    radial-gradient(920px 460px at 6% 0%, rgba(232, 168, 72, 0.28), transparent 58%),
    radial-gradient(820px 400px at 100% 8%, rgba(196, 92, 48, 0.12), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fffaf3 42%, #f7eedc 100%);
}
.collux--pilgrimage .collux-aurora.a { background: rgba(232, 168, 72, 0.36); }
.collux--pilgrimage .collux-aurora.b { background: rgba(201, 162, 74, 0.26); }
.collux--pilgrimage .collux-letter {
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(232, 168, 72, 0.16), transparent 70%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 250, 243, 0.78));
  border-color: rgba(201, 162, 74, 0.38);
}
.collux--pilgrimage .collux-seal {
  color: #c45c38;
  border-color: rgba(201, 162, 74, 0.7);
  background: linear-gradient(180deg, #fffdf8, #f7eedc);
}
.collux--pilgrimage .collux-letter-copy h2 em,
.collux--pilgrimage .collux-head h2 em {
  background: linear-gradient(100deg, #c45c38, #d4891a 50%, #c9a24a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.collux--pilgrimage .collux-notes li,
.collux--pilgrimage .collux-sister {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 250, 243, 0.7));
  border-color: rgba(201, 162, 74, 0.28);
}
.collux--pilgrimage .collux-om {
  position: absolute;
  left: 6%;
  top: 40px;
  font-size: 120px;
  line-height: 1;
  color: rgba(201, 162, 74, 0.12);
  font-family: 'Cormorant Garamond', serif;
}
.collux--pilgrimage .collux-lotus {
  position: absolute;
  right: 8%;
  top: 64px;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 1.5px dashed rgba(201, 162, 74, 0.5);
  background: repeating-conic-gradient(from 0deg, rgba(201, 162, 74, 0.28) 0 12deg, transparent 12deg 30deg);
}
.collux--pilgrimage .collux-diyas i {
  position: absolute;
  bottom: 12%;
  left: calc(10% + var(--i) * 10%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffcf6b;
  box-shadow: 0 0 12px 4px rgba(255, 180, 60, 0.35);
  animation: moodDiya 2.8s ease-in-out infinite;
  animation-delay: calc(var(--i) * 0.2s);
}

.herolux--pilgrimage .herolux-scrim {
  background:
    linear-gradient(180deg, rgba(42, 24, 10, 0.22) 0%, rgba(42, 24, 10, 0.12) 36%, rgba(28, 16, 8, 0.74) 100%),
    radial-gradient(80% 70% at 50% 100%, rgba(196, 92, 48, 0.22), transparent 70%);
}
.herolux--pilgrimage .herolux-kicker,
.herolux--pilgrimage .herolux-script { color: #f7eedc; }

.themelux--spiritual {
  --tm-gold: #c9a24a;
  --tm-gold-2: #c45c38;
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(232, 168, 72, 0.28), transparent 58%),
    radial-gradient(820px 380px at 100% 22%, rgba(196, 92, 48, 0.1), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fffaf3 48%, #f7eedc 100%);
}
.themelux-tab[data-theme-tab="spiritual"].is-active {
  background: linear-gradient(180deg, #fffaf3, #f3ead4);
  color: #3a2818;
  border-color: rgba(196, 92, 48, 0.45);
  box-shadow: 0 18px 36px -20px rgba(72, 40, 12, 0.45);
}
.themelux-tab[data-theme-tab="spiritual"].is-active i { color: #c45c38; }
.themelux-panel[data-theme-panel="spiritual"] .themelux-card {
  box-shadow: 0 28px 48px -28px rgba(72, 40, 12, 0.42);
  border: 1px solid rgba(201, 162, 74, 0.38);
}

.herolux--national .herolux-scrim {
  background:
    linear-gradient(180deg, rgba(36, 28, 12, 0.2) 0%, rgba(36, 28, 12, 0.1) 36%, rgba(24, 18, 8, 0.74) 100%),
    radial-gradient(80% 70% at 50% 100%, rgba(45, 106, 79, 0.22), transparent 70%);
}
.herolux--international .herolux-scrim {
  background:
    linear-gradient(180deg, rgba(12, 20, 40, 0.22) 0%, rgba(12, 20, 40, 0.12) 36%, rgba(10, 16, 32, 0.74) 100%),
    radial-gradient(80% 70% at 50% 100%, rgba(61, 107, 179, 0.24), transparent 70%);
}

.catlux--national {
  --cl-gold-2: #2d6a4f;
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(232, 168, 72, 0.22), transparent 58%),
    radial-gradient(820px 380px at 100% 18%, rgba(45, 106, 79, 0.12), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fffaf3 48%, #f6f0e4 100%);
}
.catlux--international {
  --cl-gold-2: #3d6bb3;
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(90, 150, 220, 0.18), transparent 58%),
    radial-gradient(820px 380px at 100% 18%, rgba(201, 162, 74, 0.16), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #f7f9ff 48%, #f4efe4 100%);
}

/* ============================================================
   SITEWIDE PHONE SHEET — last so it wins the cascade
   Do not set overflow-x: hidden on body (breaks sticky).
   ============================================================ */
@media (max-width: 900px) {
  html { overflow-x: clip; }
  .container {
    width: 100%;
    max-width: 100%;
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }
  .site-masthead .container { padding-left: 12px; padding-right: 12px; }

  /* Header: navy field only — no cream bar / white line. 3-col: East | Logo | Menu */
  .nav-peacock,
  .nav-peacock-glow,
  .nav-peacock-orbit,
  .nav-peacock-sheen,
  .nav-peacock-sparkles { display: none !important; }
  .curonav-hair { display: none !important; }
  .curobar-wave { display: none !important; }
  .curochrome .curonav {
    padding: 6px 0 10px !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
  }
  .site-masthead .nav-stage {
    display: block !important;
    width: 100%;
    max-width: 100%;
  }
  .curochrome .curonav .nav-inner,
  .site-masthead .nav-inner {
    display: grid !important;
    grid-template-columns: minmax(86px, 1fr) auto minmax(86px, 1fr) !important;
    justify-content: stretch !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    box-sizing: border-box;
    overflow: visible !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  .curonav-foil { display: none !important; }
  .site-masthead .nav-book,
  .curochrome .curonav .nav-book,
  .site-masthead .nav-links,
  .curochrome .curonav .nav-links,
  .curochrome .curonav .nav-cta,
  .site-masthead .nav-cta { display: none !important; }
  .curochrome .curonav .phonav-chip,
  .curochrome .curonav .phonav-menu,
  .phonav-chip,
  .phonav-menu {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
    text-decoration: none;
    color: #2a1e06;
    position: relative;
    z-index: 4;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
  }
  .curochrome .curonav .phonav-chip,
  .phonav-chip {
    grid-column: 1;
    justify-self: start;
    padding: 5px 10px 5px 5px;
    border-radius: 999px;
    background:
      linear-gradient(180deg, #fffdf8 0%, #f4e8c8 100%);
    border: 1px solid rgba(201, 162, 74, 0.55);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.9),
      0 10px 18px -14px rgba(169, 130, 31, 0.75);
  }
  .phonav-chip-ico {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    color: #f6ecd2;
    background: linear-gradient(180deg, #2a3358, #12182e);
    font-size: 11px;
    box-shadow: inset 0 0 0 1px rgba(201, 162, 74, 0.35);
  }
  .phonav-chip-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
  }
  .phonav-chip-copy em {
    font-style: normal;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(42, 30, 6, 0.5);
  }
  .phonav-chip-copy strong {
    font-family: 'Cormorant Garamond', var(--serif);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #1b2140;
  }
  .curochrome .curonav .phonav-menu,
  button.phonav-menu,
  .phonav-menu {
    grid-column: 3;
    justify-self: end;
    padding: 4px 11px 4px 4px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(247, 231, 188, 0.85) !important;
    background:
      linear-gradient(180deg, #fff8e4 0%, #f0d48a 42%, #c9a24a 78%, #8a6a2c 100%) !important;
    color: #2a1e06 !important;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.78),
      0 0 0 1px rgba(201, 162, 74, 0.28),
      0 14px 26px -12px rgba(169, 130, 31, 0.95) !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 44px !important;
    overflow: hidden !important;
  }
  .phonav-menu-glow {
    position: absolute;
    inset: -2px;
    border-radius: 999px;
    pointer-events: none;
    background: radial-gradient(circle at 50% 50%, rgba(247, 231, 188, 0.35), transparent 70%);
    animation: phonavGlow 2.8s ease-in-out infinite;
  }
  .phonav-menu-ring {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    border: 1px dashed rgba(246, 236, 210, 0.45);
    pointer-events: none;
    animation: phonavOrbit 12s linear infinite;
  }
  @keyframes phonavOrbit {
    to { transform: rotate(360deg); }
  }
  @keyframes phonavGlow {
    0%, 100% { opacity: 0.35; transform: scale(0.96); }
    50% { opacity: 0.85; transform: scale(1.04); }
  }
  .phonav-menu-ico {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    background:
      radial-gradient(circle at 30% 20%, #2a3358, #0d1226 70%);
    color: #f2dda6;
    box-shadow:
      inset 0 0 0 1px rgba(242, 221, 166, 0.4),
      0 6px 12px -8px rgba(0, 0, 0, 0.7);
    position: relative;
    z-index: 1;
  }
  .phonav-burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    width: 14px;
  }
  .phonav-burger i {
    display: block;
    height: 1.5px;
    border-radius: 2px;
    background: linear-gradient(90deg, #fff6da, #d9b56b);
    box-shadow: 0 0 6px rgba(247, 231, 188, 0.65);
    transform-origin: 50% 50%;
    transition: transform 0.28s ease, opacity 0.2s ease, width 0.28s ease;
  }
  .phonav-burger i:nth-child(1) { width: 100%; }
  .phonav-burger i:nth-child(2) { width: 72%; }
  .phonav-burger i:nth-child(3) { width: 88%; }
  .phonav-menu.is-open .phonav-burger i:nth-child(1) { transform: translateY(4.5px) rotate(42deg); width: 100%; }
  .phonav-menu.is-open .phonav-burger i:nth-child(2) { opacity: 0; }
  .phonav-menu.is-open .phonav-burger i:nth-child(3) { transform: translateY(-4.5px) rotate(-42deg); width: 100%; }
  .phonav-menu-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
    padding-right: 5px;
    position: relative;
    z-index: 1;
  }
  .phonav-menu-copy strong {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #2a1e06;
  }
  .phonav-menu-copy em {
    font-family: 'Cormorant Garamond', var(--serif);
    font-style: italic;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #3a2a0a;
  }
  .curochrome .curonav .curologo,
  .curochrome .curonav .curologo.brand-logo,
  .site-masthead .nav .brand-logo {
    grid-column: 2 !important;
    justify-self: center;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    width: min(152px, 42vw) !important;
    max-width: min(152px, 42vw) !important;
    min-width: 0 !important;
    min-height: 46px;
    height: 46px !important;
    padding: 4px 10px !important;
    border-radius: 16px !important;
  }

  /* Drawer sits under the sticky header so the toggle stays tappable */
  .mobile-drawer {
    z-index: 360;
    padding-top: 0;
    background:
      linear-gradient(180deg, rgba(255, 253, 247, 0.97) 0%, rgba(248, 241, 227, 0.97) 100%) !important;
  }
  .mobile-drawer-inner {
    padding-top: max(118px, calc(env(safe-area-inset-top, 0px) + 96px));
  }
  .mast-search { z-index: 520; padding: 100px 16px 24px; }

  /* Top bar: call + WhatsApp + enquire | marks + language + search */
  .curobar-heart,
  .curobar-flock,
  .curobar-link--visit,
  .curobar-link--write,
  .curobar-link-cta,
  .curobar-socials { display: none !important; }
  .curobar-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    justify-content: stretch;
    align-items: center;
    gap: 8px;
    min-height: 50px;
  }
  .curobar-desk {
    flex: 1 1 auto;
    min-width: 0;
    display: flex !important;
    flex-wrap: nowrap;
    gap: 6px;
    overflow: visible;
  }
  .curobar-desk .curobar-link:not(.curobar-link--call):not(.curobar-link--wa):not(.curobar-link--ask) { display: none !important; }
  .curobar-desk .curobar-link--call,
  .curobar-desk .curobar-link--wa,
  .curobar-desk .curobar-link--ask,
  .curobar-link--call,
  .curobar-link--wa,
  .curobar-link--ask {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 100%;
    padding: 3px 8px 3px 3px;
  }
  .curobar-link--wa {
    background:
      linear-gradient(180deg, rgba(190, 255, 214, 0.2), rgba(18, 53, 31, 0.28));
    border-color: rgba(164, 230, 180, 0.45);
  }
  .curobar-link--ask {
    background:
      linear-gradient(180deg, rgba(255, 236, 186, 0.22), rgba(42, 30, 6, 0.22));
    border-color: rgba(247, 231, 188, 0.5);
  }
  .curobar-tools {
    display: flex !important;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    margin-left: 0;
    overflow: visible !important;
    justify-self: end;
  }
  .curochrome .curobar-marks,
  .curobar-marks { display: none !important; }
  .curochrome .curobar-lang,
  .curobar-lang {
    display: block !important;
    visibility: visible !important;
    position: relative;
    z-index: 40;
  }
  .curobar-lang-btn {
    width: 36px !important;
    height: 36px !important;
    min-height: 36px;
    padding: 0 !important;
    justify-content: center;
    gap: 0 !important;
  }
  .curobar-lang-btn [data-lang-label],
  .curobar-lang-btn .fa-chevron-down { display: none !important; }
  .curobar-lang-btn > .fa-language { font-size: 14px; color: #1c1406; }
  .curobar-link-copy em,
  .curobar-pulse { display: none !important; }
  .curobar-link-copy strong { font-size: 12px; letter-spacing: 0; white-space: nowrap; }
  .curobar-link--call { flex: 0 1 auto; min-width: 0; }
  .curobar-link--call .curobar-link-copy strong {
    overflow: visible;
    text-overflow: unset;
    max-width: none;
  }
  .curobar-mob {
    display: flex !important;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
  }
  .curobar-mob .mobile-toggle { display: none !important; }
  .curochrome .curobar-mob .nav-search,
  .curochrome .curobar-mob-btn.nav-search,
  .curobar-mob .nav-search {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: 50% !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: rgba(246, 236, 210, 0.16) !important;
    color: #f6ecd2 !important;
    border: 1px solid rgba(246, 236, 210, 0.45) !important;
  }

  /* Home hero — photo fills the phone; copy + rail stay inside the viewport */
  .curohero,
  .page-home .curohero {
    min-height: calc(100svh - var(--mast-offset, 118px)) !important;
    height: auto;
    overflow: hidden;
    overflow: clip;
  }
  .curohero-grid,
  .page-home .curohero-grid {
    min-height: calc(100svh - var(--mast-offset, 118px));
    width: 100%;
    max-width: 100%;
    padding-block: 8px max(10px, env(safe-area-inset-bottom, 0px)) !important;
    padding-inline: max(16px, env(safe-area-inset-left, 0px)) max(16px, env(safe-area-inset-right, 0px)) !important;
    gap: 10px;
    align-content: end;
    box-sizing: border-box;
  }
  .curohero-copy,
  .curohero-rail,
  .curohero-head,
  .curohero-grid,
  .curohero-strip,
  .curohero-strip-in {
    max-width: 100%;
    min-width: 0;
  }
  .curohero-head {
    margin-bottom: 0;
    flex-wrap: nowrap;
    gap: 8px;
    overflow: visible;
  }
  .curohero-index {
    flex: 0 0 auto;
    gap: 6px;
    padding-left: 2px;
    font-family: Inter, var(--sans);
  }
  .curohero-index b {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding-left: 1px;
    background: none;
    color: #f2dda6;
    -webkit-text-fill-color: #f2dda6;
    font-variant-numeric: tabular-nums;
  }
  .curohero-index i { width: 18px; }
  .curohero-index em { font-size: 12px; }
  .curohero-region {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: 0.12em;
    font-size: 9px;
  }
  .curohero-kicker {
    letter-spacing: 0.14em;
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .curohero-stamp,
  .curohero-dial,
  .curohero-jet,
  .curohero-route,
  .curohero-frame { display: none !important; }
  .curohero-place {
    font-size: clamp(2rem, 11vw, 2.7rem);
    overflow-wrap: anywhere;
  }
  .curohero-script { font-size: clamp(1.15rem, 5.2vw, 1.55rem); }
  .curohero-lead {
    font-size: 13.5px;
    max-width: none;
    overflow-wrap: anywhere;
    padding-inline: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
  .curohero-itin {
    letter-spacing: 0.08em;
    font-size: 10px;
    flex-wrap: wrap;
  }
  .curohero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-top: 12px;
  }
  .curohero-cta,
  .curohero-ghost {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    box-sizing: border-box;
    min-height: 46px;
    padding: 0 16px;
    font-size: 11px;
    letter-spacing: 0.1em;
    white-space: nowrap;
    text-align: center;
  }
  .curohero-rail {
    display: flex;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 4px;
    position: relative;
    z-index: 8;
    padding: 2px 2px 6px;
    gap: 8px;
    box-sizing: border-box;
  }
  .curohero-tab {
    flex: 0 0 auto;
    width: min(168px, 72vw);
    min-width: 148px;
    max-width: 78vw;
    padding: 6px 10px 8px 8px;
    gap: 8px;
    grid-template-columns: auto 36px minmax(0, 1fr);
    scroll-snap-align: start;
  }
  .curohero-tab-thumb { width: 36px; height: 36px; border-radius: 10px; }
  .curohero-tab-copy em { display: none; }
  .curohero-strip {
    position: relative !important;
    z-index: 7;
  }
  .curohero-strip-in {
    padding: 10px 4px 12px !important;
    gap: 10px;
  }
  .curohero-seals { flex-wrap: wrap; gap: 14px 18px; }
  .curohero-seals strong { font-size: 18px; }

  .mobile-drawer-kicker {
    display: flex !important;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px;
    padding: 0 6px 12px;
    border-bottom: 1px solid rgba(201, 162, 74, 0.22);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #8a6a2c;
  }
  .mobile-drawer-kicker i {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    color: #f6ecd2;
    background: #12182e;
    font-size: 12px;
  }

  /* Inner page heroes */
  .page-hero.herolux {
    min-height: 0;
    padding: 108px 0 40px;
  }
  .herolux .page-hero-title,
  .herolux-title,
  .writehero h1,
  .tourlux-title,
  .collux-title,
  .page-hero-title {
    font-size: clamp(30px, 8vw, 42px) !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
  }
  .herolux-title em,
  .writehero h1 em { display: block; }
  .herolux-lead,
  .herolux .page-hero-sub,
  .writehero-lead { font-size: 15px; max-width: none; }
  .herolux-chips,
  .writehero-pills,
  .tourlux-hero-chips,
  .catlux-itin,
  .luxpkg-pills,
  .writehero-actions,
  .tourlux-hero-actions,
  .herolux-actions {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .herolux-chips::-webkit-scrollbar,
  .writehero-pills::-webkit-scrollbar,
  .tourlux-hero-chips::-webkit-scrollbar { display: none; }
  .writehero-actions { flex-direction: column; align-items: stretch; }
  .writehero-actions a,
  .writehero-actions .houselux-ghost { width: 100%; justify-content: center; }
  .herolux-chips span,
  .writehero-pills li,
  .tourlux-hero-chips span,
  .luxpkg-pills span {
    white-space: normal;
    letter-spacing: 0.06em;
    font-size: 10px;
    max-width: 100%;
    flex: 0 1 auto;
  }
  .writehero-pills li { flex: 1 1 calc(50% - 10px); min-width: 0; }
  .writehero {
    min-height: 0 !important;
  }
  .writehero-in {
    padding: 108px 0 40px;
    max-width: 100%;
  }
  .tourlux-hero {
    min-height: 0 !important;
    padding: 108px 0 36px;
  }
  .voyalux-layout { padding: 120px 0 48px !important; }

  /* Category / collection / about */
  .catlux-grid,
  .catlux-cabs,
  .catlux-mosaic { grid-template-columns: 1fr; }
  .catlux-filter {
    width: 100%;
    border-radius: 22px;
  }
  .catlux-head,
  .houselux-head--row,
  .collux-head { flex-direction: column; align-items: flex-start; }
  .houselux-channels { grid-template-columns: 1fr; }

  /* Booking widgets should not climb into the header */
  .cab-booking-section,
  .ticket-booking-section { margin-top: 12px; }

  /* Grids that used minmax(260–300px) overflow on 360px phones */
  .blog-grid,
  .card-grid,
  .testimonial-grid,
  .cab-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .ticket-perks,
  .ticket-steps,
  .ticket-routes,
  .services-grid,
  .service-links--2,
  .service-links--3,
  .service-links--4 { grid-template-columns: 1fr; }

  /* Forms — 16px prevents iOS input zoom */
  input, select, textarea {
    font-size: 16px !important;
    max-width: 100%;
  }
  .form-grid,
  .inquiry-form .form-grid { grid-template-columns: 1fr; }
  .btn, a.btn { max-width: 100%; }

  table { display: block; max-width: 100%; overflow-x: auto; }

  .deskfab {
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 560px) {
  .curobar-lang-btn [data-lang-label],
  .curobar-lang-btn .fa-chevron-down { display: none !important; }
  .curochrome .curobar-link--ask,
  .curobar-link--ask,
  .curochrome .curobar-marks,
  .curobar-marks { display: none !important; }
  .curochrome .curonav .nav-inner,
  .site-masthead .nav-inner {
    grid-template-columns: minmax(72px, 1fr) auto minmax(72px, 1fr) !important;
    gap: 6px !important;
  }
  .curochrome .curonav .curologo,
  .curochrome .curonav .curologo.brand-logo,
  .site-masthead .nav .brand-logo {
    grid-column: 2 !important;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    width: min(132px, 38vw) !important;
    max-width: min(132px, 38vw) !important;
  }
  .phonav-menu-copy em { font-size: 13px; }
  .phonav-chip-copy strong { font-size: 14px; }
  .curohero-place { font-size: clamp(2.15rem, 12vw, 2.9rem); }
  .curohero-cta, .curohero-ghost { letter-spacing: 0.1em; font-size: 10.5px; }
  .moodlux-card { flex-basis: 86vw; height: 380px; }
  .luxpkg-card { flex-basis: 86vw; width: 86vw; }
  .houselux-map-frame,
  .houselux-map-frame iframe,
  .writestudio-map,
  .writestudio-map iframe { min-height: 260px; height: 260px; }
}

/* Desktop peacock — perched on the cream bar, owned by the masthead */
@media (min-width: 901px) {
  .site-masthead {
    overflow: visible !important;
  }
  .curochrome .curonav .nav-inner,
  .site-masthead .nav-inner {
    padding-right: 72px !important;
  }
  .nav-peacock {
    display: block !important;
    position: absolute !important;
    right: max(10px, calc((100% - 1480px) / 2 + 4px)) !important;
    bottom: 2px !important;
    left: auto !important;
    top: auto !important;
    width: 140px !important;
    height: 176px !important;
    margin: 0 !important;
    flex: none !important;
    z-index: 30 !important;
    pointer-events: none;
    overflow: visible !important;
  }
  .nav-peacock img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }
  .site-masthead.is-compact .nav-peacock {
    width: 112px !important;
    height: 142px !important;
    bottom: 2px !important;
  }
}
