/* ==========================================================================
   VANTA PRIVATE MEMBERS CLUB — Master Stylesheet
   Colours extracted from vantamembers.com live site inspection
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=STIX+Two+Text:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');

/* --------------------------------------------------------------------------
   1. CSS Custom Properties
   -------------------------------------------------------------------------- */
:root {
  /* ── Official VANTA Colour Palette ── */
  --vanta-midnight: #1C2555;   /* Midnight — primary background                */
  --vanta-azure:    #0151A0;   /* Azure    — accent blue, CTAs                 */
  --vanta-skies:    #97B9D4;   /* Skies    — light blue accent, rules, labels  */
  --vanta-slate:    #2D3134;   /* Slate    — card / drawer surfaces            */
  --vanta-stone:    #7B7C7A;   /* Stone    — tertiary text                     */
  --vanta-sand:     #C9C6BF;   /* Sand     — secondary body text               */
  --vanta-abyss:    #101313;   /* Abyss    — footer background                 */
  --vanta-dust:     #F2EDE9;   /* Dust     — primary light text, fullmenu bg   */

  /* Semantic aliases for legacy variable names */
  --vanta-navy:    #1C2555;    /* = Midnight */
  --vanta-gold:    #97B9D4;    /* = Skies    — replaces old champagne gold     */
  --vanta-cream:   #1C2555;    /* = Midnight — sections now dark               */
  --vanta-white:   #F2EDE9;    /* = Dust     — light text on dark              */
  --vanta-footer:  #101313;    /* = Abyss                                      */
  --vanta-dark:    #F2EDE9;    /* = Dust     — body text on dark bg            */
  --vanta-mid:     #C9C6BF;    /* = Sand     — secondary text                  */
  --vanta-border:  rgba(151, 185, 212, 0.18);
  --vanta-overlay: rgba(16, 19, 19, 0.72);

  /* Typography */
  --font-serif:    'STIX Two Text', Georgia, serif;
  --font-sans:     'DM Sans', 'Helvetica Neue', Arial, sans-serif;

  /* No paper texture on dark backgrounds — ambient glow replaces it */
  --paper-texture: none;

  /* Type Scale */
  --text-display:  clamp(3rem,   6vw,  6rem);
  --text-script:   clamp(2.5rem, 5vw,  5rem);
  --text-h1:       clamp(2rem,   3.5vw, 3.5rem);
  --text-h2:       clamp(1.75rem,2.8vw, 3rem);
  --text-h3:       clamp(1.4rem, 2vw,   2rem);
  --text-h4:       clamp(1.1rem, 1.4vw, 1.4rem);
  --text-body:     1.125rem;
  --text-small:    0.875rem;
  --text-xs:       0.75rem;

  /* Spacing */
  --section-pad:   clamp(5rem, 8vw, 10rem);
  --container-max: 1200px;
  --gap:           2rem;

  /* Transitions */
  --ease:          cubic-bezier(0.4, 0, 0.2, 1);
  --dur:           0.35s;
}

/* --------------------------------------------------------------------------
   2. Reset & Base
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; background: var(--vanta-midnight); }

/* --------------------------------------------------------------------------
   Ambient Animated Background — dark blue gradient movement
   -------------------------------------------------------------------------- */
.vanta-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

/* ── Base gradient layer — slow diagonal breathe ─────────────────────────── */
.vanta-bg__base {
  position: absolute;
  inset: -20%;
  background: conic-gradient(
    from 0deg at 40% 50%,
    #0A1229 0deg,
    #1C2555 80deg,
    #0151A0 140deg,
    #0A1840 200deg,
    #1C2555 260deg,
    #07122A 320deg,
    #0A1229 360deg
  );
  opacity: 0.75;
  animation: base-rotate 90s linear infinite;
  filter: blur(60px);
}

/* ── Primary orbs ─────────────────────────────────────────────────────────── */
.vanta-bg__orb {
  position: absolute;
  border-radius: 50%;
  will-change: transform;
}

.vanta-bg__orb--azure {
  width: 90vw;
  height: 90vw;
  background: radial-gradient(circle at 40% 40%, #0151A0 0%, #091B4A 45%, transparent 70%);
  opacity: 0.55;
  filter: blur(90px);
  top: -40%;
  left: -28%;
  animation: orb-drift-a 28s ease-in-out infinite alternate;
}

.vanta-bg__orb--skies {
  width: 60vw;
  height: 60vw;
  background: radial-gradient(circle at 60% 60%, #0D3470 0%, #0151A0 30%, transparent 68%);
  opacity: 0.35;
  filter: blur(100px);
  bottom: -22%;
  right: -18%;
  animation: orb-drift-b 22s ease-in-out infinite alternate;
}

.vanta-bg__orb--deep {
  width: 50vw;
  height: 50vw;
  background: radial-gradient(circle at 50% 50%, #07122A 0%, #0151A0 40%, transparent 70%);
  opacity: 0.4;
  filter: blur(110px);
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: orb-drift-c 38s ease-in-out infinite alternate;
}

/* ── Sweeping diagonal gradient band ─────────────────────────────────────── */
.vanta-bg__sweep {
  position: absolute;
  width: 250%;
  height: 250%;
  top: -75%;
  left: -75%;
  background: linear-gradient(
    125deg,
    transparent         0%,
    rgba(1,26,70,0.6)  20%,
    rgba(1,81,160,0.18) 38%,
    rgba(28,37,85,0.55) 50%,
    rgba(1,81,160,0.14) 62%,
    rgba(1,26,70,0.5)  80%,
    transparent         100%
  );
  animation: sweep-diagonal 20s ease-in-out infinite alternate;
  will-change: transform;
}

/* ── Vertical breathing layer ─────────────────────────────────────────────── */
.vanta-bg__flow {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(7, 18, 42, 0.7)   0%,
    rgba(1, 81, 160, 0.1)  25%,
    rgba(28, 37, 85, 0.0)  50%,
    rgba(1, 81, 160, 0.08) 75%,
    rgba(7, 18, 42, 0.65)  100%
  );
  animation: flow-breathe 18s ease-in-out infinite alternate;
}

/* ── Subtle dot grid ──────────────────────────────────────────────────────── */
.vanta-bg__grid {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(151,185,212,0.09) 1px, transparent 0);
  background-size: 52px 52px;
  animation: grid-pulse 10s ease-in-out infinite alternate;
}

/* ── Keyframes ────────────────────────────────────────────────────────────── */
@keyframes base-rotate {
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(180deg) scale(1.08); }
  100% { transform: rotate(360deg) scale(1); }
}

@keyframes orb-drift-a {
  0%   { transform: translate(0, 0) scale(1); }
  25%  { transform: translate(14%, 8%) scale(1.12); }
  50%  { transform: translate(9%, 22%) scale(0.9); }
  75%  { transform: translate(-5%, 16%) scale(1.07); }
  100% { transform: translate(6%, -7%) scale(1.1); }
}

@keyframes orb-drift-b {
  0%   { transform: translate(0, 0) scale(1); }
  33%  { transform: translate(-12%, -14%) scale(1.15); }
  66%  { transform: translate(-16%, -5%) scale(0.87); }
  100% { transform: translate(7%, -16%) scale(1.08); }
}

@keyframes orb-drift-c {
  0%   { transform: translate(-50%, -50%) scale(1);    opacity: 0.4; }
  30%  { transform: translate(-64%, -36%) scale(1.3);  opacity: 0.25; }
  65%  { transform: translate(-38%, -60%) scale(0.82); opacity: 0.48; }
  100% { transform: translate(-54%, -44%) scale(1.18); opacity: 0.32; }
}

@keyframes sweep-diagonal {
  0%   { transform: translate(-15%, -15%) rotate(0deg); opacity: 0.7; }
  50%  { transform: translate(5%, 8%) rotate(3deg);     opacity: 1; }
  100% { transform: translate(15%, 15%) rotate(-2deg);  opacity: 0.6; }
}

@keyframes flow-breathe {
  0%   { opacity: 0.6; transform: scaleY(1); }
  50%  { opacity: 0.9; transform: scaleY(1.04); }
  100% { opacity: 0.5; transform: scaleY(0.97); }
}

@keyframes grid-pulse {
  0%   { opacity: 0.5; }
  100% { opacity: 0.9; }
}

body {
  font-family: var(--font-sans);
  font-size: var(--text-body);
  color: var(--vanta-dust);
  background: transparent;
  line-height: 1.8;
  overflow-x: hidden;
}

body.modal-open { overflow: hidden; }

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

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

ul { list-style: none; }

button { cursor: pointer; border: none; background: none; font-family: inherit; }

/* --------------------------------------------------------------------------
   3. Layout Utilities
   -------------------------------------------------------------------------- */
.container {
  width: 80%;
  margin-inline: auto;
}

.section {
  padding-block: var(--section-pad);
}

.section--cream {
  background: rgba(16, 19, 19, 0.3);
}
.section--white {
  background: rgba(16, 19, 19, 0.3);
}
.section--navy {
  background: rgba(16, 19, 19, 0.3);
  color: var(--vanta-dust);
}
.section--footer { background-color: var(--vanta-footer); color: var(--vanta-dust); }
.welcome { background: rgba(16, 19, 19, 0.3); }
.instagram-strip { background: rgba(16, 19, 19, 0.3); }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: center; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); }

.text-center { text-align: center; }
.text-right  { text-align: right; }

/* --------------------------------------------------------------------------
   4. Typography
   -------------------------------------------------------------------------- */
.t-display {
  font-family: var(--font-serif);
  font-size: var(--text-display);
  font-weight: 300;
  line-height: 1.1;
  color: var(--vanta-dust);
  letter-spacing: -0.02em;
}

.t-script {
  font-family: var(--font-serif);
  font-size: var(--text-script);
  font-style: italic;
  font-weight: 300;
  color: var(--vanta-skies);
  line-height: 1.2;
  letter-spacing: 0.01em;
}

.t-h1 {
  font-family: var(--font-serif);
  font-size: var(--text-h1);
  font-weight: 300;
  line-height: 1.15;
  color: var(--vanta-dust);
  letter-spacing: -0.01em;
}

.t-h2 {
  font-family: var(--font-serif);
  font-size: var(--text-h2);
  font-weight: 300;
  line-height: 1.2;
  color: var(--vanta-dust);
  letter-spacing: -0.01em;
}

.t-h3 {
  font-family: var(--font-serif);
  font-size: var(--text-h3);
  font-weight: 400;
  color: var(--vanta-dust);
}

.t-label {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
}

.t-caps {
  font-family: var(--font-sans);
  font-size: var(--text-small);
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.t-body {
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: 1.8;
  color: var(--vanta-mid);
}

/* White variants for dark backgrounds */
.section--navy  .t-h1,
.section--navy  .t-h2,
.section--navy  .t-h3,
.section--navy  .t-display,
.section--footer .t-h1,
.section--footer .t-h2 { color: var(--vanta-white); }

.section--navy  .t-body,
.section--footer .t-body { color: rgba(255,255,255,0.75); }

/* --------------------------------------------------------------------------
   5. Buttons — pill shape, navy fill, white text, arrow icon
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.6rem 1.4rem;
  border: 2px solid transparent;
  border-radius: 999px;           /* pill */
  transition: all var(--dur) var(--ease);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  position: relative;
  overflow: visible;
}

/* Arrow icon injected via ::after on every .btn */
.btn::after {
  content: '→';
  font-size: 1em;
  line-height: 1;
  transition: transform var(--dur) var(--ease);
  flex-shrink: 0;
}
.btn:hover::after { transform: translateX(3px); }

/* All CTA buttons — VANTA Dust cream/white background */
.btn--navy,
.btn--gold-outline,
.btn--white,
.btn--white-outline {
  background-color: var(--vanta-dust);
  color: var(--vanta-midnight);
  border-color: var(--vanta-dust);
}

.btn--navy:hover,
.btn--gold-outline:hover,
.btn--white:hover,
.btn--white-outline:hover {
  background-color: #ffffff;
  border-color: #ffffff;
  color: var(--vanta-midnight);
  box-shadow: 0 6px 28px rgba(242,237,233,0.25);
  transform: translateY(-1px);
}

/* Same cream on all section backgrounds */
.section--navy .btn--gold-outline,
.cta-band .btn--gold-outline,
.hero .btn--gold-outline,
.hero .btn--white-outline {
  background-color: var(--vanta-dust);
  color: var(--vanta-midnight);
  border-color: var(--vanta-dust);
}
.section--navy .btn--gold-outline:hover,
.cta-band .btn--gold-outline:hover,
.hero .btn--gold-outline:hover,
.hero .btn--white-outline:hover {
  background-color: #ffffff;
  border-color: #ffffff;
  box-shadow: 0 6px 28px rgba(242,237,233,0.2);
  transform: translateY(-1px);
}

/* Nav CTA — same cream pill, consistent with page */
.nav__cta .btn,
.nav--transparent .nav__cta .btn,
.nav--scrolled .nav__cta .btn {
  background-color: var(--vanta-dust);
  border-color: var(--vanta-dust);
  color: var(--vanta-midnight);
}
.nav__cta .btn:hover,
.nav--transparent .nav__cta .btn:hover,
.nav--scrolled .nav__cta .btn:hover {
  background-color: #ffffff;
  border-color: #ffffff;
  color: var(--vanta-midnight);
  box-shadow: 0 4px 20px rgba(242,237,233,0.2);
}

/* ── Laser beam — registers animatable angle property ─────────────────────── */
@property --btn-laser-angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

.btn:not(.btn--link)::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(
    from var(--btn-laser-angle),
    transparent 0%,
    transparent 60%,
    rgba(151, 185, 212, 0.25) 72%,
    rgba(151, 185, 212, 0.85) 82%,
    rgba(220, 240, 255, 1.00) 88%,
    rgba(255, 255, 255, 1.00) 91%,
    rgba(220, 240, 255, 1.00) 94%,
    rgba(151, 185, 212, 0.50) 98%,
    transparent 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  animation: btn-laser-run 2.4s linear infinite;
  pointer-events: none;
  z-index: 1;
  filter: blur(0.5px) drop-shadow(0 0 4px rgba(151, 185, 212, 0.9));
}

@keyframes btn-laser-run {
  to { --btn-laser-angle: 360deg; }
}

/* Text link — unchanged */
.btn--link {
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  color: var(--vanta-skies);
  font-size: var(--text-small);
  font-weight: 700;
  letter-spacing: 0.15em;
  position: relative;
}
.btn--link::after {
  content: '';          /* override the → arrow for link style */
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--vanta-skies);
  transition: width var(--dur) var(--ease);
  transform: none;
}
.btn--link:hover::after { width: 100%; transform: none; }
.btn--link:hover { transform: none; box-shadow: none; }

/* --------------------------------------------------------------------------
   6. Navigation
   -------------------------------------------------------------------------- */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 0.75rem 10%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Always-on liquid glass base */
  backdrop-filter: blur(24px) saturate(160%) brightness(1.04);
  -webkit-backdrop-filter: blur(24px) saturate(160%) brightness(1.04);
  transition: background var(--dur) var(--ease),
              box-shadow var(--dur) var(--ease),
              padding var(--dur) var(--ease),
              border-color var(--dur) var(--ease);
  border-bottom: 1px solid transparent;
}

/* Both states share the same liquid glass look — no color shift on scroll */
.nav--transparent,
.nav--scrolled {
  background: rgba(28, 37, 85, 0.28);
  border-bottom-color: rgba(151, 185, 212, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(151,185,212,0.1),
    0 4px 32px rgba(16,19,19,0.25);
}

.nav--scrolled {
  padding-block: 0.55rem;   /* slight compact on scroll — only size changes */
}

.nav__logo {
  flex-shrink: 0;
  width: 98px;
}

.nav__logo img {
  width: 100%;
  height: auto;
  transition: filter var(--dur) var(--ease);
}

.nav--scrolled .nav__logo .logo-white   { display: block; }
.nav--scrolled .nav__logo .logo-dark    { display: none; }
.nav--transparent .nav__logo .logo-white { display: block; }
.nav--transparent .nav__logo .logo-dark  { display: none; }

.nav__links {
  display: flex;
  align-items: center;
  gap: 2.25rem;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nav__links a { color: rgba(242,237,233,0.88); }

.nav__links a {
  position: relative;
  transition: color var(--dur) var(--ease);
}

.nav__links a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--vanta-skies);
  transition: width var(--dur) var(--ease);
}

.nav__links a:hover::after,
.nav__links a[aria-current="page"]::after { width: 100%; }

.nav__links a[aria-current="page"] { color: var(--vanta-skies); }

.nav__cta {
  flex-shrink: 0;
}

/* ── Hamburger → X morphing icon ── */
.nav__hamburger {
  display: none;               /* shown in @media */
  position: relative;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border-radius: 50%;
  flex-shrink: 0;
  z-index: 1;
  /* Circular glass ripple background */
  --hbg-bg: transparent;
  background: var(--hbg-bg);
  transition: background 0.3s var(--ease);
}

/* When fullmenu is open, hamburger stays Dust (shown over dark midnight fullmenu) */
.nav__hamburger.is-open { color: var(--vanta-dust) !important; }

/* The three spans — all absolutely centred on the button */
.nav__hamburger span {
  position: absolute;
  left: 50%;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  transform-origin: center center;
  will-change: transform, opacity, width;
}

/* ── Closed state positions ── */
/* Top line — full width, sits 7px above center */
.nav__hamburger span:nth-child(1) {
  width: 20px;
  transform: translate(-50%, -7px);
  transition:
    transform 0.45s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
    width     0.3s  cubic-bezier(0.4, 0, 0.2, 1),
    opacity   0.2s  ease;
}
/* Middle line — shorter, right-aligned accent */
.nav__hamburger span:nth-child(2) {
  width: 12px;
  transform: translate(-50%, 0) translateX(4px);
  transition:
    transform 0.3s  cubic-bezier(0.4, 0, 0.2, 1),
    width     0.3s  cubic-bezier(0.4, 0, 0.2, 1),
    opacity   0.2s  ease 0.05s;
}
/* Bottom line — full width, sits 7px below center */
.nav__hamburger span:nth-child(3) {
  width: 20px;
  transform: translate(-50%, 7px);
  transition:
    transform 0.45s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
    width     0.3s  cubic-bezier(0.4, 0, 0.2, 1),
    opacity   0.2s  ease;
}

/* ── Open (X) state ── */
.nav__hamburger.is-open span:nth-child(1) {
  width: 20px;
  transform: translate(-50%, 0) rotate(45deg);
  transition:
    transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1) 0.08s,
    width     0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Middle line collapses first */
.nav__hamburger.is-open span:nth-child(2) {
  opacity: 0;
  width: 0;
  transform: translate(-50%, 0);
  transition:
    opacity   0.15s ease,
    width     0.2s  cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.2s  ease;
}
.nav__hamburger.is-open span:nth-child(3) {
  width: 20px;
  transform: translate(-50%, 0) rotate(-45deg);
  transition:
    transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1) 0.08s,
    width     0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Full-screen menu overlay — radial clip-path reveal */
.fullmenu {
  position: fixed;
  inset: 0;
  z-index: 990;
  background: #07122A;

  display: flex;
  flex-direction: column;

  clip-path: circle(0% at var(--menu-origin, 95% 5%));
  transition: clip-path 0.65s cubic-bezier(0.77, 0, 0.175, 1);
  pointer-events: none;
  overflow: hidden;
}

/* Animated gradient layers inside fullmenu — mirrors vanta-bg */
.fullmenu::before {
  content: '';
  position: absolute;
  inset: -20%;
  background: conic-gradient(
    from 0deg at 40% 50%,
    #0A1229 0deg,
    #1C2555 80deg,
    #0151A0 140deg,
    #0A1840 200deg,
    #1C2555 260deg,
    #07122A 320deg,
    #0A1229 360deg
  );
  opacity: 0.68;
  filter: blur(60px);
  animation: base-rotate 90s linear infinite;
  pointer-events: none;
  z-index: 0;
}

.fullmenu::after {
  content: '';
  position: absolute;
  width: 90vw;
  height: 90vw;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #0151A0 0%, #091B4A 45%, transparent 70%);
  opacity: 0.45;
  filter: blur(90px);
  top: -30%;
  right: -10%;
  animation: orb-drift-a 28s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: 0;
}

/* Ensure fullmenu content sits above the gradient pseudo-elements */
.fullmenu__links,
.fullmenu__footer {
  position: relative;
  z-index: 1;
}

.fullmenu.open {
  clip-path: circle(170% at var(--menu-origin, 95% 5%));
  pointer-events: all;
}

.fullmenu.is-closing {
  clip-path: circle(0% at var(--menu-origin, 95% 5%));
  transition: clip-path 0.45s cubic-bezier(0.77, 0, 0.175, 1);
}

/* ── Nav links — left-aligned editorial rows with counter numbers ── */
.fullmenu__links {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: calc(80px + clamp(1rem, 3vw, 1.5rem)) 10% clamp(1rem, 3vw, 1.5rem);
  counter-reset: fm;
}

.fullmenu__links li {
  counter-increment: fm;
  border-bottom: 1px solid rgba(151, 185, 212, 0.1);
  overflow: hidden;
}
.fullmenu__links li:first-child { border-top: 1px solid rgba(151, 185, 212, 0.1); }

.fullmenu__links a {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: clamp(0.7rem, 2vw, 1rem) 0;
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.65rem, 5.5vw, 2.25rem);
  color: var(--vanta-dust);
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-decoration: none;
  position: relative;

  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.45s var(--ease), transform 0.45s var(--ease), color 0.2s var(--ease);
}

/* Counter number */
.fullmenu__links a::before {
  content: counter(fm, decimal-leading-zero);
  font-family: var(--font-sans);
  font-style: normal;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  color: rgba(151, 185, 212, 0.35);
  flex-shrink: 0;
  width: 1.75rem;
  transition: color 0.2s;
}

/* Arrow right — slides in on hover */
.fullmenu__links a::after {
  content: '→';
  font-family: var(--font-sans);
  font-style: normal;
  font-size: 0.875rem;
  color: transparent;
  margin-left: auto;
  transform: translateX(-8px);
  transition: color 0.25s var(--ease), transform 0.3s var(--ease);
}

.fullmenu__links a:hover { color: var(--vanta-skies); }
.fullmenu__links a:hover::before { color: var(--vanta-skies); }
.fullmenu__links a:hover::after { color: var(--vanta-skies); transform: translateX(0); }

/* Stagger entrance */
.fullmenu.open .fullmenu__links a { opacity: 1; transform: translateY(0); }
.fullmenu.open .fullmenu__links li:nth-child(1) a { transition-delay: 0.22s; }
.fullmenu.open .fullmenu__links li:nth-child(2) a { transition-delay: 0.27s; }
.fullmenu.open .fullmenu__links li:nth-child(3) a { transition-delay: 0.32s; }
.fullmenu.open .fullmenu__links li:nth-child(4) a { transition-delay: 0.37s; }
.fullmenu.open .fullmenu__links li:nth-child(5) a { transition-delay: 0.42s; }
.fullmenu.open .fullmenu__links li:nth-child(6) a { transition-delay: 0.47s; }
.fullmenu.open .fullmenu__links li:nth-child(7) a { transition-delay: 0.52s; }
.fullmenu.open .fullmenu__links li:nth-child(8) a { transition-delay: 0.57s; }

/* Fast exit */
.fullmenu.is-closing .fullmenu__links a {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.15s var(--ease), transform 0.15s var(--ease);
  transition-delay: 0s !important;
}

/* ── Footer strip ── */
.fullmenu__footer {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1rem, 2.5vw, 1.5rem) 10%;
  border-top: 1px solid rgba(151, 185, 212, 0.12);
  gap: 1rem;
  flex-wrap: wrap;

  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s var(--ease) 0.5s, transform 0.4s var(--ease) 0.5s;
}

.fullmenu.open .fullmenu__footer { opacity: 1; transform: translateY(0); }

.fullmenu.is-closing .fullmenu__footer {
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.15s, transform 0.15s;
  transition-delay: 0s !important;
}

.fullmenu__address {
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--vanta-stone);
  line-height: 1.6;
}

.fullmenu__socials { display: none; }

/* CTA button */
.fullmenu .btn {
  background-color: transparent;
  border-color: rgba(151, 185, 212, 0.35);
  color: var(--vanta-dust);
  font-size: 0.65rem;
  padding: 0.55rem 1.1rem;
  letter-spacing: 0.12em;
}
.fullmenu .btn:hover {
  background-color: var(--vanta-dust);
  border-color: var(--vanta-dust);
  color: var(--vanta-midnight);
}

/* --------------------------------------------------------------------------
   7. Spaces Premium Carousel
   -------------------------------------------------------------------------- */
.spaces-section {
  padding-bottom: 0; /* carousel bleeds to edge, bottom padding on carousel itself */
}

/* Header row: title left, controls right */
.spaces-carousel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--vanta-border);
}

.spaces-carousel__controls {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* Arrow buttons */
.sc-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(151,185,212,0.3);
  border-radius: 50%;
  color: var(--vanta-dust);
  background: rgba(28,37,85,0.4);
  backdrop-filter: blur(8px);
  cursor: pointer;
  transition: all var(--dur) var(--ease);
  flex-shrink: 0;
}
.sc-arrow:hover {
  background: var(--vanta-azure);
  border-color: var(--vanta-azure);
  color: var(--vanta-dust);
}
.sc-arrow:disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

/* Dot indicators */
.sc-dots {
  display: flex;
  gap: 6px;
  align-items: center;
}
.sc-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vanta-border);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all var(--dur) var(--ease);
}
.sc-dot.active {
  background: var(--vanta-skies);
  width: 22px;
  border-radius: 3px;
}

/* Track wrapper — clips overflow, allows peek */
.sc-track-wrapper {
  overflow: hidden;
  padding-bottom: clamp(3rem, 5vw, 5rem);
  /* left padding aligns with container, right is intentionally open for peek */
  padding-left: 10%;
  padding-right: clamp(1.5rem, 5vw, 4rem);
  cursor: grab;
  user-select: none;
  -webkit-user-drag: none;
  touch-action: pan-y;
}
.sc-track-wrapper:active { cursor: grabbing; }
.sc-track img { pointer-events: none; -webkit-user-drag: none; user-select: none; }

/* The scrolling track */
.sc-track {
  display: flex;
  gap: 1.5rem;
  padding-right: clamp(1.5rem, 5vw, 4rem);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  list-style: none;
}

/* Individual card */
/* ── Running border light for cards ──────────────────────────────────────── */
@property --card-light-angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

.sc-card {
  flex: 0 0 clamp(280px, 32vw, 420px);
  display: flex;
  flex-direction: column;
  background: rgba(28, 37, 85, 0.65);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(151,185,212,0.18);
  border-radius: 5px;
  overflow: hidden;
  transition: box-shadow 0.4s var(--ease), transform 0.4s var(--ease);
  position: relative;
}

.sc-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: conic-gradient(
    from var(--card-light-angle),
    transparent 0%,
    rgba(255, 255, 255, 0.35) 10%,
    transparent 22%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  animation: card-border-run 4s linear infinite;
  pointer-events: none;
  z-index: 2;
}

@keyframes card-border-run {
  to { --card-light-angle: 360deg; }
}

.sc-card:hover {
  box-shadow: 0 20px 60px rgba(1, 81, 160, 0.3), 0 0 40px rgba(151,185,212,0.08);
  transform: translateY(-4px);
  border-color: rgba(151, 185, 212, 0.35);
}

/* Card image */
.sc-card__img-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.sc-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease);
  display: block;
}
.sc-card:hover .sc-card__img { transform: scale(1.05); }

/* Gradient overlay on image */
.sc-card__img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 50%,
    rgba(16,19,19,0.55) 100%
  );
  pointer-events: none;
}

/* Category pill — on image */
.sc-card__category {
  position: absolute;
  top: 1.1rem;
  left: 1.1rem;
  font-family: var(--font-sans);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
  color: var(--vanta-white);
  background: rgba(28,37,85,0.55);
  backdrop-filter: blur(8px);
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
}

/* Card body */
.sc-card__body {
  padding: 1.5rem 1.75rem 1.75rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  background: transparent;
}

.sc-card__name {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  font-weight: 400;
  color: var(--vanta-dust);
  line-height: 1.2;
  margin-bottom: 0;
}

.sc-card__rule {
  width: 36px;
  height: 1px;
  background: var(--vanta-gold);
  margin-block: 1rem;
}

/* Stats row */
.sc-card__stats {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: auto;
}

.sc-stat {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.sc-stat__icon {
  width: 14px;
  height: 14px;
  color: var(--vanta-gold);
  flex-shrink: 0;
}

.sc-stat__value {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--vanta-sand);
  white-space: nowrap;
}

.sc-stat__label {
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 400;
  color: var(--vanta-mid);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.sc-stat__divider {
  width: 1px;
  height: 28px;
  background: var(--vanta-border);
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 768px) {
  .sc-track-wrapper {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .sc-track {
    padding-right: 1.25rem;
  }
  .sc-card {
    flex: 0 0 min(85vw, 320px);
  }
  .spaces-carousel__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
  }
}

/* --------------------------------------------------------------------------
   8. Hero (Full-screen)
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero--short {
  height: 55vh;
  min-height: 400px;
}

.hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  transform-origin: center;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(7, 18, 42, 0.55) 0%,
    rgba(7, 18, 42, 0.65) 45%,
    rgba(7, 18, 42, 0.88) 100%
  );
}

.hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 2rem;
  max-width: 900px;
}

.hero__logo {
  width: clamp(90px, 10vw, 140px);
  margin-inline: auto;
  margin-bottom: 0;
}

.hero__location {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 1rem;
}

.hero__title {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 5vw, 5rem);
  font-weight: 300;
  color: var(--vanta-white);
  line-height: 1.1;
  margin-bottom: 1rem;
}

.hero__script {
  font-family: var(--font-script);
  font-size: clamp(2rem, 4vw, 4rem);
  color: var(--vanta-skies);
  display: block;
  margin-bottom: 1rem;
}

.hero__sub {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 300;
  color: rgba(255,255,255,0.8);
  line-height: 1.7;
  max-width: 600px;
  margin-inline: auto;
  margin-bottom: 2.5rem;
}

/* --------------------------------------------------------------------------
   8. Welcome Section (Homepage §2)
   -------------------------------------------------------------------------- */
.welcome {
  background: rgba(16, 19, 19, 0.3);
  padding-block: var(--section-pad);
}

.welcome__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: center;
}

.welcome__text {}

.welcome__title { margin-bottom: 1.5rem; }
.welcome__rule {
  width: 60px;
  height: 1px;
  background: var(--vanta-skies);
  margin-bottom: 1.5rem;
}

.welcome__body { margin-bottom: 2rem; }

/* Photo collage — overlapping */
.collage {
  position: relative;
  height: clamp(380px, 50vw, 560px);
}

.collage__img {
  position: absolute;
  object-fit: cover;
  box-shadow: 0 20px 60px rgba(1,81,160,0.2);
}

.collage__img--main {
  width: 62%;
  height: 80%;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

.collage__img--top-left {
  width: 42%;
  height: 52%;
  top: 0;
  left: 0;
  z-index: 3;
}

.collage__img--bottom-right {
  width: 42%;
  height: 48%;
  bottom: 0;
  right: 0;
  z-index: 3;
}

/* --------------------------------------------------------------------------
   9. Spaces / Room Grid (Homepage §3)
   -------------------------------------------------------------------------- */
.spaces__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  margin-bottom: var(--section-pad);
}

.spaces__feature-img {
  width: 100%;
  height: clamp(350px, 45vw, 520px);
  object-fit: cover;
}

.spaces__grid-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 2.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(151,185,212,0.18);
}

.room-card {
  display: flex;
  flex-direction: column;
}

.room-card__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  margin-bottom: 1.25rem;
  transition: transform 0.5s var(--ease);
  overflow: hidden;
}

.room-card:hover .room-card__img { transform: scale(1.03); }

.room-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease);
}

.room-card:hover .room-card__img img { transform: scale(1.06); }

.room-card__rule {
  width: 100%;
  height: 1px;
  background: var(--vanta-border);
  margin-block: 0.75rem;
}

.room-card__name { margin-bottom: 0.25rem; }

/* --------------------------------------------------------------------------
   10. Experience + Location (Homepage §4)
   -------------------------------------------------------------------------- */
.experience__intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: 3rem;
}

.experience__hero-img {
  width: 100%;
  height: clamp(400px, 50vw, 600px);
  object-fit: cover;
  display: block;
  margin-bottom: 4rem;
}

.experience__detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.collage-stacked {
  position: relative;
  height: clamp(340px, 45vw, 500px);
}

.collage-stacked__back {
  position: absolute;
  width: 72%;
  height: 72%;
  top: 0;
  right: 0;
  object-fit: cover;
  z-index: 1;
  box-shadow: 0 16px 48px rgba(1,81,160,0.2);
}

.collage-stacked__front {
  position: absolute;
  width: 60%;
  height: 60%;
  bottom: 0;
  left: 0;
  object-fit: cover;
  z-index: 2;
  box-shadow: 0 16px 48px rgba(1,81,160,0.22);
  border: 6px solid var(--vanta-midnight);
}

/* --------------------------------------------------------------------------
   11. Events / Testimonial (Homepage §5)
   -------------------------------------------------------------------------- */
.events-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.events-split__imgs {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 1rem;
  height: clamp(380px, 50vw, 540px);
}

.events-split__imgs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Testimonial Carousel */
.testimonial {
  position: relative;
  overflow: hidden;
}

.testimonial__slide {
  display: none;
  position: relative;
  min-height: clamp(400px, 55vw, 600px);
}

.testimonial__slide.active { display: block; }

.testimonial__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}

.testimonial__overlay {
  position: absolute;
  inset: 0;
  background: rgba(16,19,19,0.75);
}

.testimonial__body {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
  padding: clamp(4rem,8vw,8rem) 2rem;
}

.testimonial__quote {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2.5vw, 2rem);
  font-style: italic;
  color: var(--vanta-white);
  line-height: 1.6;
  margin-bottom: 2rem;
}

.testimonial__quote::before { content: '\201C'; }
.testimonial__quote::after  { content: '\201D'; }

.testimonial__author {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--vanta-skies);
}

.testimonial__nav {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 1rem;
  z-index: 3;
}

.testimonial__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.5);
  background: transparent;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
}
.testimonial__dot.active {
  background: var(--vanta-skies);
  border-color: var(--vanta-skies);
}

.testimonial__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  color: rgba(255,255,255,0.7);
  font-size: 2rem;
  padding: 0.5rem 1rem;
  transition: color var(--dur) var(--ease);
  background: rgba(255,255,255,0.08);
}
.testimonial__arrow:hover { color: var(--vanta-skies); background: rgba(255,255,255,0.12); }
.testimonial__arrow--prev { left: 1.5rem; }
.testimonial__arrow--next { right: 1.5rem; }

/* --------------------------------------------------------------------------
   12. Instagram Strip (Homepage §6)
   -------------------------------------------------------------------------- */
.instagram-strip {
  background: rgba(16, 19, 19, 0.3);
  padding-block: var(--section-pad);
}

.instagram-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.5rem;
  margin-bottom: 3rem;
}

.instagram-grid__item {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  cursor: pointer;
}

.instagram-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}

.instagram-grid__item:hover img { transform: scale(1.08); }

.instagram-grid__item::after {
  content: '\f16d';
  font-family: 'Font Awesome 6 Brands', sans-serif;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: white;
  background: rgba(16,19,19,0.4);
  opacity: 0;
  transition: opacity var(--dur) var(--ease);
}
.instagram-grid__item:hover::after { opacity: 1; }

.instagram-handle {
  display: block;
  margin-top: 0.5rem;
}

/* --------------------------------------------------------------------------
   13. Pre-Footer CTA Band
   -------------------------------------------------------------------------- */
.cta-band {
  background: rgba(16, 19, 19, 0.3);
  padding-block: clamp(4rem, 7vw, 7rem);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.cta-band__script {
  font-family: var(--font-script);
  font-size: clamp(2.2rem, 4vw, 4rem);
  color: var(--vanta-white);
  display: block;
  margin-bottom: 2rem;
}

/* --------------------------------------------------------------------------
   14. Footer — premium 2-column
   -------------------------------------------------------------------------- */
.footer {
  position: relative;
  background: #1C2555;
  color: rgba(255, 255, 255, 0.5);
  overflow: hidden;
}

.footer::before,
.footer::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.footer::before {
  width: 70vw;
  height: 70vw;
  background: radial-gradient(circle at 40% 40%, rgba(1,81,160,0.55) 0%, rgba(28,37,85,0.2) 50%, transparent 70%);
  filter: blur(80px);
  top: -40%;
  left: -20%;
  animation: footer-orb-a 20s ease-in-out infinite alternate;
}

.footer::after {
  width: 50vw;
  height: 50vw;
  background: radial-gradient(circle at 60% 60%, rgba(151,185,212,0.18) 0%, rgba(1,81,160,0.25) 35%, transparent 65%);
  filter: blur(90px);
  bottom: -30%;
  right: -15%;
  animation: footer-orb-b 26s ease-in-out infinite alternate;
}

@keyframes footer-orb-a {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(12%, 15%) scale(1.15); }
  100% { transform: translate(5%, -10%) scale(0.9); }
}

@keyframes footer-orb-b {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(-10%, -12%) scale(1.2); }
  100% { transform: translate(8%, 10%) scale(0.85); }
}

.footer__divider {
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(151, 185, 212, 0.35) 25%,
    rgba(151, 185, 212, 0.55) 50%,
    rgba(151, 185, 212, 0.35) 75%,
    transparent 100%
  );
}

.footer__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 8vw, 10rem);
  padding-top: clamp(4rem, 6vw, 6.5rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
  align-items: start;
  position: relative;
  z-index: 1;
}

.footer__logo {
  display: block;
  width: 150px;
  margin-bottom: 1.75rem;
  opacity: 0.92;
}

.footer__tagline {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(0.88rem, 1.1vw, 1.05rem);
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.75;
  margin-bottom: 2.25rem;
  letter-spacing: 0.01em;
}

.footer__address {
  margin-bottom: 2.25rem;
}

.footer__address p {
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.4);
}

.footer__address a {
  display: inline-block;
  margin-top: 0.75rem;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  transition: color var(--dur);
}
.footer__address a:hover { color: #b8d4e8; }

.footer__socials {
  display: flex;
  gap: 0.75rem;
}

.footer__socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(151, 185, 212, 0.18);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.38);
  font-size: 0.72rem;
  transition: all var(--dur) var(--ease);
}
.footer__socials a:hover {
  border-color: var(--vanta-skies);
  color: var(--vanta-skies);
  background: rgba(151, 185, 212, 0.07);
}

.footer__col--nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  padding-top: 0.25rem;
}

.footer__nav-label {
  font-family: var(--font-sans);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 1.5rem;
  opacity: 0.85;
}

.footer__nav-links {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.footer__nav-links a {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.03em;
  line-height: 1;
  transition: color var(--dur);
  text-decoration: none;
}
.footer__nav-links a:hover { color: var(--vanta-dust); }

.footer__cta {
  margin-top: 2.25rem !important;
  font-size: 0.58rem !important;
  padding: 0.55rem 1.2rem !important;
}

.footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-block: 1.6rem;
  position: relative;
  z-index: 1;
}

.footer__bottom .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.footer__bottom p {
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.22);
}

.footer__bottom a {
  color: rgba(255, 255, 255, 0.28);
  transition: color var(--dur);
}
.footer__bottom a:hover { color: rgba(255, 255, 255, 0.55); }

/* ── Coviola credit badge ── */
.coviola-credit {
  display: inline-flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.55) !important;
  text-decoration: none;
  vertical-align: middle;
  transition: color 0.3s ease;
}
.coviola-credit:hover { color: rgba(255, 255, 255, 0.85) !important; }

/* pulsing dot */
.coviola-credit__inner::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #661FF4;
  margin-right: 0.45em;
  vertical-align: middle;
  animation: coviola-blink 1.8s ease-in-out infinite;
  box-shadow: 0 0 6px rgba(102, 31, 244, 0.8);
}
@keyframes coviola-blink {
  0%, 100% { opacity: 1; box-shadow: 0 0 6px rgba(102,31,244,0.8); }
  50%       { opacity: 0.3; box-shadow: 0 0 2px rgba(102,31,244,0.3); }
}

/* --------------------------------------------------------------------------
   15. Global Modal
   -------------------------------------------------------------------------- */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.modal.open { display: flex; }

.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16,19,19,0.8);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.modal__card {
  position: relative;
  z-index: 1;
  background: rgba(16, 19, 19, 0.92);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
  border: 1px solid rgba(151,185,212,0.15);
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  overflow-y: auto;
  padding: clamp(2.5rem, 5vw, 4rem);
  box-shadow: 0 30px 80px rgba(0,0,0,0.6), 0 0 60px rgba(1,81,160,0.15);
}

.modal__close {
  position: absolute;
  top: 1.25rem;
  right: 1.5rem;
  font-size: 1.5rem;
  color: var(--vanta-stone);
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  transition: color var(--dur) var(--ease);
}
.modal__close:hover { color: var(--vanta-dust); }

.modal__logo {
  display: block;
  width: 120px;
  margin-inline: auto;
  margin-bottom: 2rem;
}

.modal__heading {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  font-weight: 300;
  color: var(--vanta-dust);
  text-align: center;
  line-height: 1.3;
  margin-bottom: 0.75rem;
}

.modal__sub {
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--vanta-sand);
  text-align: center;
  margin-bottom: 0.5rem;
}

.modal__fine {
  font-size: 0.75rem;
  color: var(--vanta-stone);
  text-align: center;
  margin-bottom: 2rem;
  font-style: italic;
}

.modal__rule {
  width: 60px;
  height: 1px;
  background: var(--vanta-skies);
  margin: 1.5rem auto;
}

.form-group {
  margin-bottom: 1.25rem;
}

.form-group label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.5rem;
}

.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid rgba(151,185,212,0.2);
  background: rgba(28,37,85,0.5);
  font-family: var(--font-sans);
  font-size: 0.9rem;
  color: var(--vanta-dust);
  outline: none;
  transition: border-color var(--dur) var(--ease);
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus { border-color: var(--vanta-skies); }

.form-group textarea { resize: vertical; min-height: 100px; }

/* --------------------------------------------------------------------------
   16. Section Dividers / Decorative Elements
   -------------------------------------------------------------------------- */
.section-rule {
  width: 60px;
  height: 1px;
  background: var(--vanta-skies);
  margin-bottom: 1.5rem;
}

.section-rule--center { margin-inline: auto; }

/* --------------------------------------------------------------------------
   17. The Club Page
   -------------------------------------------------------------------------- */
.stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding-block: 3rem;
  border-top: 1px solid var(--vanta-border);
  border-bottom: 1px solid var(--vanta-border);
  margin-block: 3rem;
}

.stat__number {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 300;
  color: var(--vanta-dust);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.stat__label {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
}

.mission-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 5vw, 6rem);
  margin-top: 3rem;
}

/* --------------------------------------------------------------------------
   18. Club Life Page
   -------------------------------------------------------------------------- */
.feature-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 6vw, 7rem);
  align-items: center;
}

.feature-split--reversed { direction: rtl; }
.feature-split--reversed > * { direction: ltr; }

.feature-list {
  margin-block: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.feature-list li {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.feature-list li::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 24px;
  height: 1px;
  background: var(--vanta-skies);
  margin-top: 0.75rem;
}

.feature-img {
  width: 100%;
  height: clamp(380px, 50vw, 560px);
  object-fit: cover;
}

.feature-full-img {
  width: 100%;
  height: clamp(350px, 45vw, 520px);
  object-fit: cover;
  display: block;
}

/* --------------------------------------------------------------------------
   19. Culinary Page
   -------------------------------------------------------------------------- */
.culinary-intro {
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
}

.chef-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 6vw, 7rem);
  align-items: center;
}

.chef-collage {
  position: relative;
  height: clamp(480px, 60vw, 680px);
}

.chef-collage__main {
  position: absolute;
  width: 72%;
  height: 85%;
  top: 0;
  left: 0;
  object-fit: cover;
  z-index: 1;
  box-shadow: 0 20px 60px rgba(1,81,160,0.2);
}

.chef-collage__accent {
  position: absolute;
  width: 50%;
  height: 45%;
  bottom: 0;
  right: 0;
  object-fit: cover;
  z-index: 2;
  border: 6px solid var(--vanta-midnight);
  box-shadow: 0 16px 48px rgba(1,81,160,0.22);
}

.dining-levels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  margin-block: 3rem;
}

.dining-level {
  padding: 2.5rem;
  border: 1px solid var(--vanta-border);
}

.dining-level__num {
  font-family: var(--font-serif);
  font-size: 4rem;
  font-weight: 300;
  color: var(--vanta-skies);
  opacity: 0.4;
  line-height: 1;
  margin-bottom: 0.5rem;
}

/* --------------------------------------------------------------------------
   19b. About Immersive — The Club Page
   -------------------------------------------------------------------------- */

/* ── Wrapper ── */
.about-immersive { overflow: hidden; }

/* ── ① Opening Hero Chapter ── */
.about-hero-ch {
  position: relative;
  min-height: 100vh;
  background: var(--vanta-midnight);
  display: flex;
  align-items: center;
  overflow: hidden;
}

.about-hero-ch__watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: clamp(10rem, 24vw, 26rem);
  font-weight: 700;
  color: rgba(151,185,212,0.035);
  letter-spacing: -0.03em;
  line-height: 1;
  pointer-events: none;
  user-select: none;
  animation: wm-breathe 8s ease-in-out infinite alternate;
}
@keyframes wm-breathe {
  from { transform: scale(1); }
  to   { transform: scale(1.04); }
}

.about-hero-ch__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(70px);
}
.about-hero-ch__orb--a {
  width: 55vw; height: 55vw;
  top: -20%; left: -15%;
  background: radial-gradient(circle, rgba(1,81,160,0.28) 0%, transparent 70%);
  animation: about-orb-a 16s ease-in-out infinite alternate;
}
.about-hero-ch__orb--b {
  width: 35vw; height: 35vw;
  bottom: -10%; right: 5%;
  background: radial-gradient(circle, rgba(151,185,212,0.1) 0%, transparent 70%);
  animation: about-orb-b 20s ease-in-out infinite alternate;
}
.about-hero-ch__orb--c {
  width: 20vw; height: 20vw;
  top: 30%; right: 15%;
  background: radial-gradient(circle, rgba(28,37,85,0.5) 0%, transparent 70%);
  animation: about-orb-b 12s ease-in-out infinite alternate-reverse;
}
@keyframes about-orb-a {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(4%,6%) scale(1.08); }
}
@keyframes about-orb-b {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-5%,-4%) scale(1.12); }
}

.about-hero-ch__inner {
  position: relative;
  z-index: 2;
  padding-block: clamp(7rem,14vw,11rem);
}

/* Eyebrow */
.about-eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: clamp(2rem,4vw,3rem);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}
.about-eyebrow.ab-visible { opacity: 1; transform: translateY(0); }
.about-eyebrow__line {
  display: block;
  width: 0;
  height: 1px;
  background: var(--vanta-skies);
  transition: width 1.1s cubic-bezier(0.16,1,0.3,1) 0.2s;
}
.about-eyebrow.ab-visible .about-eyebrow__line { width: 44px; }
.about-eyebrow__text {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--vanta-skies);
}

/* Headline line-mask */
.about-headline {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem,7.5vw,7.5rem);
  font-weight: 400;
  line-height: 1.06;
  color: var(--vanta-dust);
  margin-bottom: clamp(1.5rem,3vw,2.5rem);
  letter-spacing: -0.01em;
}
.about-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em;
}
.about-line__mask {
  display: block;
  transform: translateY(108%);
  transition: transform 1s cubic-bezier(0.16,1,0.3,1);
}
.about-line:nth-child(2) .about-line__mask { transition-delay: 0.14s; }
.about-line:nth-child(3) .about-line__mask { transition-delay: 0.28s; }
.about-line.line-up .about-line__mask { transform: translateY(0); }

.about-hero-sub {
  font-family: var(--font-sans);
  font-size: clamp(0.95rem,1.6vw,1.15rem);
  color: rgba(242,237,233,0.5);
  font-weight: 300;
  letter-spacing: 0.02em;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.9s ease 0.55s, transform 0.9s ease 0.55s;
}
.about-hero-sub.ab-visible { opacity: 1; transform: translateY(0); }

/* Scroll cue */
.about-scroll-cue {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  z-index: 2;
  opacity: 0;
  animation: scroll-cue-fade 1s ease 1.8s forwards;
}
@keyframes scroll-cue-fade { to { opacity: 1; } }
.about-scroll-cue__line {
  display: block;
  width: 1px;
  height: 56px;
  background: linear-gradient(to bottom, var(--vanta-skies), transparent);
  transform-origin: top;
  animation: scroll-cue-line 2.2s ease-in-out infinite;
}
@keyframes scroll-cue-line {
  0%,100% { transform: scaleY(0.4); opacity: 0.3; }
  50%      { transform: scaleY(1);   opacity: 1; }
}
.about-scroll-cue__label {
  font-family: var(--font-sans);
  font-size: 0.58rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(151,185,212,0.45);
}

/* ── ② Marquee ── */
.about-marquee {
  background: var(--vanta-skies);
  overflow: hidden;
  padding-block: 0.85rem;
  white-space: nowrap;
}
.about-marquee__track {
  display: inline-flex;
  gap: 1.75rem;
  padding-right: 1.75rem;
  animation: about-marquee 22s linear infinite;
}
.about-marquee__track span {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-midnight);
}
.about-marquee__sep { opacity: 0.4; }
@keyframes about-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── ③ Stats Chapter ── */
.about-stats-ch {
  background: var(--vanta-abyss);
  padding-block: clamp(5rem,9vw,9rem);
}
.about-stats-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: clamp(1rem,2vw,1.5rem);
}
@media (max-width: 900px) { .about-stats-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px) { .about-stats-grid { grid-template-columns: repeat(2,1fr); gap: 0.75rem; } }

.about-stat-card {
  position: relative;
  border: 1px solid rgba(151,185,212,0.1);
  border-radius: 6px;
  padding: clamp(1.5rem,3vw,2.5rem) clamp(1.2rem,2.5vw,2rem) clamp(1.75rem,3vw,2.25rem);
  overflow: hidden;
  cursor: default;
  transform-style: preserve-3d;
  will-change: transform;
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.16,1,0.3,1),
              border-color 0.3s ease, box-shadow 0.3s ease;
}
.about-stat-card.ab-visible { opacity: 1; transform: translateY(0); }
.about-stat-card:nth-child(2) { transition-delay: 0.1s; }
.about-stat-card:nth-child(3) { transition-delay: 0.2s; }
.about-stat-card:nth-child(4) { transition-delay: 0.3s; }
.about-stat-card:hover {
  border-color: rgba(151,185,212,0.3);
  box-shadow: 0 20px 60px rgba(1,81,160,0.2);
}

.about-stat-card__glow {
  position: absolute;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(1,81,160,0.35), transparent 70%);
  top: -40px; left: -40px;
  pointer-events: none;
  transition: transform 0.4s ease;
}
.about-stat-card:hover .about-stat-card__glow { transform: scale(1.4); }

.about-stat-card__top {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  margin-bottom: 0.6rem;
}
.about-stat-card__prefix {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem,2.5vw,2.2rem);
  color: var(--vanta-skies);
  line-height: 1;
}
.about-stat-card__num {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem,4.5vw,3.8rem);
  font-weight: 400;
  color: var(--vanta-dust);
  line-height: 1;
  letter-spacing: -0.02em;
}
.about-stat-card__unit {
  font-family: var(--font-sans);
  font-size: clamp(0.75rem,1.2vw,1rem);
  color: var(--vanta-skies);
  font-weight: 500;
  letter-spacing: 0.06em;
  margin-left: 0.1rem;
}
.about-stat-card__label {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--vanta-stone);
  margin-bottom: 1.25rem;
}
.about-stat-card__rule {
  width: 32px;
  height: 1px;
  background: var(--vanta-skies);
  opacity: 0.4;
  transition: width 0.4s ease;
}
.about-stat-card:hover .about-stat-card__rule { width: 56px; opacity: 0.7; }

/* ── ④ Narrative Chapter ── */
.about-narrative-ch {
  background: rgba(16,19,19,0.4);
  padding-block: clamp(5rem,9vw,9rem);
}
.about-narrative-inner {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  gap: clamp(3rem,7vw,8rem);
  align-items: center;
}
@media (max-width: 768px) { .about-narrative-inner { grid-template-columns: 1fr; } }

.about-narrative-tag {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 1.25rem;
}
.about-narrative-img-wrap {
  position: relative;
  overflow: hidden;
}
.about-narrative-img {
  width: 100%;
  height: clamp(300px,38vw,520px);
  object-fit: cover;
  display: block;
  transform: scale(1.08);
  opacity: 0;
  transition: transform 1.1s cubic-bezier(0.16,1,0.3,1), opacity 0.9s ease;
}
.about-narrative-img.ab-visible { transform: scale(1); opacity: 1; }
.about-narrative-img__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(1,81,160,0.15), transparent 60%);
  pointer-events: none;
}

.about-narrative-body {
  font-family: var(--font-sans);
  font-size: var(--text-body, 1rem);
  line-height: 1.85;
  color: var(--vanta-sand);
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.85s ease, transform 0.85s cubic-bezier(0.16,1,0.3,1);
}
.about-narrative-body.ab-visible { opacity: 1; transform: translateY(0); }
.about-narrative-body:nth-of-type(2) { transition-delay: 0.18s; }

/* --------------------------------------------------------------------------
   20. Events Page
   -------------------------------------------------------------------------- */
.event-card {
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(151,185,212,0.15);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(28,37,85,0.6);
  backdrop-filter: blur(20px);
  transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.event-card:hover { box-shadow: 0 12px 40px rgba(1,81,160,0.3); border-color: rgba(151,185,212,0.3); }

.event-card__img {
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
}

.event-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease);
}

.event-card:hover .event-card__img img { transform: scale(1.06); }

.event-card__body {
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  background: transparent;
}

.event-card__date {
  font-size: 0.75rem;
  color: var(--vanta-skies, #97B9D4);
  letter-spacing: 0.04em;
  margin-bottom: 0.5rem;
  opacity: 0.85;
}

.event-card__tag {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.5rem;
}

.event-card__title {
  font-family: var(--font-serif);
  font-size: var(--text-h4);
  font-weight: 400;
  color: var(--vanta-dust);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.event-card__desc {
  font-size: 0.875rem;
  color: var(--vanta-sand);
  line-height: 1.6;
  margin-bottom: 1rem;
  flex: 1;
}

.event-badge {
  display: inline-block;
  padding: 0.3rem 0.9rem;
  background: var(--vanta-skies);
  color: var(--vanta-midnight);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border-radius: 999px;
  margin-bottom: 0.75rem;
}

.event-card__note {
  font-size: 0.75rem;
  color: var(--vanta-stone);
  font-style: italic;
}

.event-card--past .event-card__img { filter: grayscale(30%); }
.event-card--past .event-badge {
  background: transparent;
  color: var(--vanta-mid);
  border: 1px solid #ccc;
}

/* GHL Signup Popup Modal */
.ghl-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  align-items: center;
  justify-content: center;
}
.ghl-modal.open { display: flex; }

.ghl-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 19, 19, 0.82);
  backdrop-filter: blur(6px);
}

.ghl-modal__panel {
  position: relative;
  z-index: 1;
  background: var(--vanta-white, #F2EDE9);
  border-radius: 4px;
  width: min(680px, 94vw);
  max-height: 90vh;
  overflow-y: auto;
  padding: 2.5rem 2rem 2rem;
}

.ghl-modal__close {
  position: absolute;
  top: 1rem;
  right: 1.25rem;
  background: none;
  border: none;
  font-size: 1.1rem;
  color: var(--vanta-navy, #1C2555);
  cursor: pointer;
  line-height: 1;
  transition: opacity 0.2s;
}
.ghl-modal__close:hover { opacity: 0.55; }

.ghl-modal__body { width: 100%; }
.ghl-modal__body iframe { width: 100%; border: none; min-height: 480px; }

/* --------------------------------------------------------------------------
   21. Benefits Page
   -------------------------------------------------------------------------- */
.filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 3rem;
}

.filter-tab {
  padding: 0.6rem 1.5rem;
  border: 1px solid rgba(151,185,212,0.3);
  background: rgba(28,37,85,0.4);
  backdrop-filter: blur(8px);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--vanta-sand);
  cursor: pointer;
  border-radius: 999px;
  transition: all var(--dur) var(--ease);
}

.filter-tab.active,
.filter-tab:hover {
  background: var(--vanta-azure);
  border-color: var(--vanta-azure);
  color: var(--vanta-dust);
}

.benefit-card {
  position: relative;
  cursor: pointer;
  border-radius: 10px;
  overflow: hidden;
  background: var(--vanta-midnight);
  transition: transform 0.45s cubic-bezier(0.16,1,0.3,1),
              box-shadow 0.45s ease;
}
.benefit-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 64px rgba(1,81,160,0.35),
              0 0 0 1px rgba(151,185,212,0.12);
}

.benefit-card__img {
  width: 100%;
  aspect-ratio: 5/4;
  overflow: hidden;
  position: relative;
}
.benefit-card__img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(7,18,42,0.05) 30%,
    rgba(7,18,42,0.88) 100%
  );
  pointer-events: none;
}
.benefit-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.75s cubic-bezier(0.16,1,0.3,1);
  display: block;
}
.benefit-card:hover .benefit-card__img img { transform: scale(1.07); }

/* Category pill — top-left on image */
.benefit-card__cat {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  font-family: var(--font-sans);
  font-size: 0.57rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(151,185,212,0.85);
  border: 1px solid rgba(151,185,212,0.28);
  padding: 0.22em 0.65em;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: rgba(7,18,42,0.45);
}

/* Name + location — overlaid on image bottom */
.benefit-card__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: 1.25rem 1.25rem 1.1rem;
  pointer-events: none;
}
.benefit-card__name {
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
  font-weight: 400;
  color: var(--vanta-dust);
  line-height: 1.25;
  margin-bottom: 0.25rem;
}
.benefit-card__location {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.07em;
  color: rgba(151,185,212,0.6);
}

/* Arrow — reveals on hover */
.benefit-card__arrow {
  position: absolute;
  bottom: 1.1rem;
  right: 1.1rem;
  z-index: 2;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(151,185,212,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(151,185,212,0.75);
  font-size: 0.8rem;
  opacity: 0;
  transform: translate(4px, 4px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;
}
.benefit-card:hover .benefit-card__arrow {
  opacity: 1;
  transform: translate(0, 0);
}

.benefit-card.hidden { display: none; }

/* Benefit Drawer */
.benefit-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(480px, 90vw);
  height: 100vh;
  height: 100dvh;
  background: rgba(16,19,19,0.95);
  backdrop-filter: blur(24px);
  border-left: 1px solid rgba(151,185,212,0.15);
  color: var(--vanta-dust);
  z-index: 10100;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  box-shadow: -10px 0 60px rgba(0,0,0,0.5);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0s linear 0.5s;
  padding: 3rem 2.5rem;
  padding-bottom: calc(3rem + env(safe-area-inset-bottom, 0px));
}

/* Body scroll lock while a drawer is open. We use a simple overflow:hidden
 * on html+body — combined with `overscroll-behavior: contain` on the drawer
 * itself this works reliably across desktop and iOS Safari without breaking
 * scroll inside the drawer. */
html.drawer-open,
body.drawer-open {
  overflow: hidden !important;
  height: 100% !important;
}

.benefit-drawer.open {
  transform: translateX(0);
  visibility: visible;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0s linear 0s;
}

.benefit-drawer__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--vanta-stone);
  background: none;
  border: none;
  line-height: 1;
  transition: color 0.2s;
}
.benefit-drawer__close:hover { color: var(--vanta-dust); }

/* Event drawer hero image */
.ev-drawer__img {
  width: calc(100% + 5rem);
  margin-left: -2.5rem;
  margin-top: -3rem;
  height: 240px;
  object-fit: cover;
  display: block;
}

.benefit-detail__divider {
  width: 100%;
  height: 1px;
  background: var(--vanta-border);
  margin-block: 1.5rem;
}

/* ── Redeem Benefit dropdown form ──────────────────── */
.redeem-form-wrap {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.32s ease, margin-top 0.32s ease;
  margin-top: 0;
}
.redeem-form-wrap.open {
  max-height: 700px;
  opacity: 1;
  margin-top: 1.25rem;
}
.redeem-field {
  margin-bottom: 1rem;
}
.redeem-field label {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--vanta-skies, #97B9D4);
  margin-bottom: 0.4rem;
}
.redeem-field input,
.redeem-field textarea {
  width: 100%;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(151,185,212,0.2);
  border-radius: 6px;
  padding: 0.72rem 0.9rem;
  color: var(--vanta-dust, #F2EDE9);
  font-family: var(--font-sans);
  font-size: 0.88rem;
  outline: none;
  transition: border-color 0.22s;
}
.redeem-field input:focus,
.redeem-field textarea:focus {
  border-color: rgba(151,185,212,0.6);
}
.redeem-field input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(0.7);
  cursor: pointer;
}
.redeem-field textarea { resize: vertical; min-height: 80px; }
.redeem-success {
  display: none;
  text-align: center;
  padding: 1rem;
  margin-bottom: 0.75rem;
  background: rgba(46,204,113,0.08);
  border: 1px solid rgba(46,204,113,0.25);
  border-radius: 6px;
}
.redeem-success.show { display: block; }
.redeem-success__icon { font-size: 1.5rem; margin-bottom: 0.4rem; color: #5dde8f; }
.redeem-success__text { font-size: 0.8rem; color: rgba(151,185,212,0.85); line-height: 1.6; }

/* --------------------------------------------------------------------------
   22. Membership Page
   -------------------------------------------------------------------------- */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.pricing-card {
  border: 1px solid rgba(151,185,212,0.15);
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  background: rgba(28,37,85,0.55);
  backdrop-filter: blur(20px);
  transition: all var(--dur) var(--ease);
  position: relative;
  color: var(--vanta-dust);
}

.pricing-card:hover {
  background: rgba(1,81,160,0.4);
  border-color: rgba(151,185,212,0.35);
  box-shadow: 0 20px 60px rgba(1,81,160,0.25);
}

.pricing-card:hover .pricing-card__name,
.pricing-card:hover .pricing-card__price,
.pricing-card:hover .pricing-card__feature { color: var(--vanta-dust); }
.pricing-card:hover .pricing-card__sub { color: var(--vanta-sand); }
.pricing-card:hover .pricing-card__rule { background: rgba(151,185,212,0.35); }
.pricing-card:hover .pricing-card__features-list li::before { background: var(--vanta-skies); }

/* Founding card — keep gold on hover, override blue */
.pricing-card--founding:hover {
  background: linear-gradient(145deg,
    rgba(45,32,6,0.98) 0%,
    rgba(70,52,12,0.96) 30%,
    rgba(40,28,5,0.98) 60%,
    rgba(60,44,10,0.96) 100%
  );
  border-color: rgba(212,175,55,0.6);
  box-shadow: 0 24px 64px rgba(212,175,55,0.18), 0 0 0 1px rgba(212,175,55,0.22);
}
.pricing-card--founding:hover .pricing-card__features-list li::before { background: rgba(212,175,55,0.55); }
.pricing-card--founding:hover .pricing-card__feat--gold-highlight::before { background: #D4AF37; }

.pricing-card--black {
  background: rgba(1,81,160,0.45);
  color: var(--vanta-dust);
  border-color: rgba(151,185,212,0.4);
}

.pricing-card--black .pricing-card__name,
.pricing-card--black .pricing-card__price { color: var(--vanta-dust); }
.pricing-card--black .pricing-card__sub { color: var(--vanta-sand); }
.pricing-card--black .pricing-card__rule { background: rgba(151,185,212,0.3); }

.pricing-card--popular::before {
  content: 'MOST POPULAR';
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--vanta-skies);
  color: var(--vanta-midnight);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  padding: 0.35rem 1rem;
  white-space: nowrap;
}

.pricing-card__tier {
  color: var(--vanta-skies);
  margin-bottom: 0.5rem;
}

.pricing-card__name {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 300;
  color: var(--vanta-dust);
  margin-bottom: 0.25rem;
}

.pricing-card__sub {
  font-size: 0.8rem;
  color: var(--vanta-sand);
  margin-bottom: 1.5rem;
}

.pricing-card__rule {
  width: 100%;
  height: 1px;
  background: var(--vanta-border);
  margin-bottom: 1.5rem;
}

.pricing-card__price {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 300;
  color: var(--vanta-dust);
  margin-bottom: 0.25rem;
}

.pricing-card__per {
  font-size: 0.75rem;
  color: var(--vanta-sand);
  margin-bottom: 2rem;
}

.pricing-card--black .pricing-card__per { color: var(--vanta-sand); }

.pricing-card__features-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin-bottom: 2rem;
}

.pricing-card__features-list li {
  font-size: 0.85rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.pricing-card__features-list li::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 1px;
  background: var(--vanta-skies);
  margin-top: 0.65rem;
}

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

.council-card {
  text-align: center;
}

.council-card__img {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  object-fit: cover;
  margin-inline: auto;
  margin-bottom: 1rem;
  border: 3px solid rgba(151,185,212,0.25);
}

.council-card__name {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--vanta-dust);
  margin-bottom: 0.25rem;
}

.council-card__title {
  font-size: 0.8rem;
  color: var(--vanta-sand);
  font-style: italic;
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   23. Contact Page
   -------------------------------------------------------------------------- */
.contact-split {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(4rem, 7vw, 8rem);
  align-items: start;
}

.contact-detail {
  padding-block: 1.5rem;
  border-bottom: 1px solid var(--vanta-border);
}

.contact-detail:first-child { border-top: 1px solid var(--vanta-border); }

.contact-detail__label {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.35rem;
}

.contact-detail__value { font-size: 0.9rem; }

.map-section-wrap {
  background: var(--vanta-midnight);
  padding: 0;
}

.map-container {
  position: relative;
  width: 100%;
  height: clamp(420px, 50vw, 580px);
  overflow: hidden;
}

.map-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  /* Dark branded tint: invert → dark base, hue-rotate → navy/blue palette */
  filter: invert(92%) hue-rotate(193deg) saturate(1.6) brightness(0.72) contrast(1.05);
}

/* Vignette overlay — blends edges into brand background */
.map-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 38%, rgba(7,18,42,0.55) 100%),
    linear-gradient(to bottom, rgba(7,18,42,0.25) 0%, transparent 15%, transparent 75%, rgba(7,18,42,0.6) 100%);
}

/* Custom pin */
@keyframes pin-pulse {
  0%   { transform: translate(-50%,-50%) scale(1);   opacity: 0.55; }
  100% { transform: translate(-50%,-50%) scale(2.8); opacity: 0; }
}

.map-pin {
  position: absolute;
  left: 50%;
  top: calc(50% - 10px);
  transform: translate(-50%, -100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
  z-index: 10;
}

.map-pin__pulse {
  position: absolute;
  top: 26px;
  left: 50%;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(1,81,160,0.35);
  animation: pin-pulse 2.6s ease-out infinite;
}
.map-pin__pulse--b {
  animation-delay: 1.3s;
}

.map-pin__circle {
  position: relative;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--vanta-midnight);
  border: 2px solid var(--vanta-skies);
  box-shadow:
    0 0 0 4px rgba(1,81,160,0.2),
    0 0 28px rgba(1,81,160,0.65),
    0 6px 20px rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.map-pin__logo {
  width: 30px;
  height: auto;
  object-fit: contain;
}

.map-pin__stem {
  width: 2px;
  height: 14px;
  background: linear-gradient(to bottom, var(--vanta-skies), transparent);
  z-index: 1;
}

.map-pin__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  background: rgba(7,18,42,0.88);
  border: 1px solid rgba(1,81,160,0.35);
  backdrop-filter: blur(12px);
  padding: 0.45rem 0.9rem;
  white-space: nowrap;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
}

.map-pin__label span {
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--vanta-dust);
}

.map-pin__label-sub {
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  color: rgba(151,185,212,0.6) !important;
  font-size: 0.55rem !important;
}

.map-section {
  width: 100%;
  height: clamp(300px, 40vw, 480px);
  display: block;
}

/* --------------------------------------------------------------------------
   24. Scroll Animations
   -------------------------------------------------------------------------- */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}

.fade-up.visible {
  opacity: 1;
  transform: none;
}

.fade-up.delay-1 { transition-delay: 0.15s; }
.fade-up.delay-2 { transition-delay: 0.3s; }
.fade-up.delay-3 { transition-delay: 0.45s; }

/* --------------------------------------------------------------------------
   Homepage — block scroll snap (desktop only)
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  .page-home {
    scroll-snap-type: y proximity;
    overflow-y: scroll;
    height: 100vh;
  }

  .page-home .hero,
  .page-home .explore-grid {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* --------------------------------------------------------------------------
   Explore Grid — 5-page navigation tiles
   -------------------------------------------------------------------------- */
.explore-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 55vh 45vh;
  height: 100vh;
  gap: 0;
  background: none;
}

/* THE CLUB spans 2 columns in the top row */
.explore-grid__item:nth-child(1) {
  grid-column: span 2;
}

@keyframes explore-tile-in {
  from {
    opacity: 0;
    transform: translateY(48px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.explore-grid__item {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  opacity: 0; /* hidden until JS adds .is-visible to parent */
}

.explore-grid.is-visible .explore-grid__item {
  animation: explore-tile-in 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.explore-grid.is-visible .explore-grid__item:nth-child(1) { animation-delay: 0s;    }
.explore-grid.is-visible .explore-grid__item:nth-child(2) { animation-delay: 0.1s;  }
.explore-grid.is-visible .explore-grid__item:nth-child(3) { animation-delay: 0.22s; }
.explore-grid.is-visible .explore-grid__item:nth-child(4) { animation-delay: 0.32s; }
.explore-grid.is-visible .explore-grid__item:nth-child(5) { animation-delay: 0.42s; }

.explore-grid__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
}

.explore-grid__item:hover .explore-grid__img {
  transform: scale(1.03);
  filter: grayscale(1);
}

.explore-grid__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.80) 0%,
    rgba(0, 0, 0, 0.50) 40%,
    rgba(0, 0, 0, 0.30) 70%,
    rgba(0, 0, 0, 0.18) 100%
  );
  transition: background 0.5s;
}

.explore-grid__item:hover .explore-grid__overlay {
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.92) 0%,
    rgba(0, 0, 0, 0.65) 35%,
    rgba(0, 0, 0, 0.35) 65%,
    rgba(0, 0, 0, 0.20) 100%
  );
}

/* Laser beam border — hidden by default, fades in on hover */
.explore-grid__item::after {
  content: '';
  position: absolute;
  inset: 0;
  padding: 2px;
  background: conic-gradient(
    from var(--card-light-angle),
    transparent 0%,
    transparent 60%,
    rgba(151, 185, 212, 0.25) 72%,
    rgba(151, 185, 212, 0.85) 82%,
    rgba(220, 240, 255, 1.00) 88%,
    rgba(255, 255, 255, 1.00) 91%,
    rgba(220, 240, 255, 1.00) 94%,
    rgba(151, 185, 212, 0.50) 98%,
    transparent 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  animation: card-border-run 3.5s linear infinite;
  pointer-events: none;
  z-index: 3;
  opacity: 0;
  transition: opacity 0.45s var(--ease);
  filter: blur(0.4px) drop-shadow(0 0 5px rgba(151, 185, 212, 0.8));
}

.explore-grid__item:hover::after {
  opacity: 1;
}

.explore-grid__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  z-index: 1;
}

.explore-grid__label {
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.6rem;
  opacity: 0.9;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
}

.explore-grid__title {
  font-family: var(--font-serif);
  font-size: clamp(1.6rem, 3vw, 2.8rem);
  font-weight: 400;
  color: var(--vanta-dust);
  line-height: 1.2;
  margin-bottom: 1.1rem;
  transition: color 0.3s, text-shadow 0.5s;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.explore-grid__item:hover .explore-grid__title {
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.9), 0 4px 40px rgba(0, 0, 0, 0.6);
}

.explore-grid__item:hover .explore-grid__label {
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.8);
}

.explore-grid__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(242, 237, 233, 0.75);
  border-bottom: 1px solid rgba(242, 237, 233, 0.3);
  padding-bottom: 0.2rem;
  transition: color 0.3s, border-color 0.3s;
  transform: translateY(4px);
  opacity: 0;
  transition: opacity 0.4s var(--ease), transform 0.4s var(--ease), color 0.3s, border-color 0.3s;
}

.explore-grid__item:hover .explore-grid__cta {
  opacity: 1;
  transform: translateY(0);
  color: var(--vanta-skies);
  border-color: rgba(151, 185, 212, 0.6);
}

@media (max-width: 768px) {
  .explore-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, calc(34vh + 100px));
    height: auto;
  }
  .explore-grid__item:nth-child(1) {
    grid-column: span 2;
  }
  .explore-grid__title {
    font-size: clamp(1.6rem, 5vw, 2.8rem);
  }
}

@media (max-width: 480px) {
  .explore-grid {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, calc(50vw + 100px));
    height: auto;
  }
  .explore-grid__item:nth-child(1) {
    grid-column: span 1;
  }
}

/* --------------------------------------------------------------------------
   24b. Responsive — 1100px (nav breakpoint — 8 links need room)
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .nav__links, .nav__cta { display: none; }
  .nav__hamburger { display: flex; color: var(--vanta-dust); }
  .nav--scrolled .nav__hamburger { color: var(--vanta-dust); }
}

/* --------------------------------------------------------------------------
   25. Responsive — 768px
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {

  .grid-2, .grid-3, .grid-4,
  .welcome__inner, .spaces__header,
  .experience__intro, .experience__detail,
  .events-split, .mission-grid,
  .feature-split, .chef-split,
  .dining-levels, .contact-split { grid-template-columns: 1fr; }

  #benefits-grid { grid-template-columns: 1fr; }

  .feature-split--reversed { direction: ltr; }

  .pricing-grid {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
    padding-bottom: 1.25rem;
    scrollbar-width: none;
  }
  .pricing-grid::-webkit-scrollbar { display: none; }
  .pricing-grid .pricing-card {
    flex: 0 0 82vw;
    max-width: 340px;
    scroll-snap-align: start;
  }
  .council-grid { grid-template-columns: repeat(2, 1fr); }
  .instagram-grid { grid-template-columns: repeat(3, 1fr); }

  .collage, .collage-stacked { height: 300px; }

  .hero__title { font-size: clamp(1.8rem, 6vw, 3rem); }

  .spaces__feature-img { height: 280px; }

  .footer__inner { grid-template-columns: 1fr; gap: 3rem; }
  .footer__col--nav { grid-template-columns: 1fr 1fr; }
  .footer__bottom .container { flex-direction: column; text-align: center; }

  .testimonial__arrow { display: none; }

  .container { width: 92%; }
  .nav { padding: 0.75rem 4%; }
}

/* --------------------------------------------------------------------------
   26. Responsive — 1200px+
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .pricing-grid { grid-template-columns: repeat(2, 1fr); }
  .council-grid { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .instagram-grid { grid-template-columns: repeat(2, 1fr); }
  .council-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-row { grid-template-columns: 1fr; }
  .filter-tabs { justify-content: center; }
}

/* --------------------------------------------------------------------------
   27. Custom Cursor, Particle Trail & Interactions
   -------------------------------------------------------------------------- */
@media (pointer: fine) {
  body, a, button, [data-modal], [role="button"], input, textarea, select { cursor: none !important; }
}

@media (pointer: coarse) {
  .cursor-dot,
  .cursor-ring,
  .cursor-trail,
  .click-ripple { display: none !important; }
}

.cursor-dot {
  position: fixed;
  top: 0; left: 0;
  width: 6px; height: 6px;
  margin: -3px 0 0 -3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 8px rgba(255,255,255,0.95), 0 0 20px rgba(151,185,212,0.6);
  pointer-events: none;
  z-index: 999999;
  will-change: transform;
  transition: opacity 0.3s;
}

.cursor-ring {
  position: fixed;
  top: 0; left: 0;
  width: 36px; height: 36px;
  margin: -18px 0 0 -18px;
  border-radius: 50%;
  border: 1px solid rgba(151,185,212,0.45);
  pointer-events: none;
  z-index: 999998;
  will-change: transform;
  transition:
    width 0.28s var(--ease),
    height 0.28s var(--ease),
    margin 0.28s var(--ease),
    border-color 0.28s,
    background 0.28s,
    opacity 0.3s;
}

.cursor-ring--hover {
  width: 56px; height: 56px;
  margin: -28px 0 0 -28px;
  border-color: rgba(151,185,212,0.85);
  background: rgba(151,185,212,0.06);
}

.cursor-trail {
  position: fixed;
  top: 0; left: 0;
  width: 8px; height: 8px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(151,185,212,0.55) 0%, transparent 70%);
  pointer-events: none;
  z-index: 9997;
  will-change: transform, opacity;
}

/* Click ripple */
.click-ripple {
  position: fixed;
  top: 0; left: 0;
  width: 10px; height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  border: 1px solid rgba(151,185,212,0.7);
  pointer-events: none;
  z-index: 9996;
  animation: ripple-expand 0.8s cubic-bezier(0.2, 0.8, 0.4, 1) forwards;
}

@keyframes ripple-expand {
  from { transform: scale(0); opacity: 1; }
  to   { transform: scale(20); opacity: 0; }
}

/* ==========================================================================
   PREMIUM LAYER — GSAP · Lenis · Grain · Page Transitions
   ========================================================================== */

/* ── Grain texture overlay ── */
body::after {
  content: '';
  position: fixed;
  top: -150px; left: -150px;
  width: calc(100% + 300px);
  height: calc(100% + 300px);
  pointer-events: none;
  z-index: 9997;
  opacity: 0.022;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='512' height='512' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain-drift 0.55s steps(1) infinite;
  will-change: transform;
}
@keyframes grain-drift {
  0%   { transform: translate(0px,    0px); }
  20%  { transform: translate(-18px, -11px); }
  40%  { transform: translate(11px,   17px); }
  60%  { transform: translate(-9px,   10px); }
  80%  { transform: translate(16px,  -14px); }
  100% { transform: translate(0px,    0px); }
}

/* ── Page transition overlay ── */
#page-transition {
  position: fixed;
  inset: 0;
  z-index: 9500;
  background: var(--vanta-midnight);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  will-change: transform;
}
#page-transition img {
  width: 88px;
  opacity: 0;
  transition: opacity 0.4s ease 0.2s;
}
#page-transition.pt-active img { opacity: 0.55; }

/* ── Fullmenu link hover — handled by main fullmenu block above ── */

/* ── Section-rule transform origin (for GSAP scaleX draw) ── */
.section-rule { transform-origin: left center; }
.section-rule--center { transform-origin: center center; }

/* ── Feature / collage images — will-change for GPU ── */
.feature-img,
.chef-collage__main,
.chef-collage__accent,
.collage__img,
.spaces__feature-img { will-change: transform, clip-path; }

/* ── Hero text GPU hints ── */
.hero__title, .hero__sub, .hero__location, .hero__logo { will-change: transform, opacity; }

/* ── Stat card 3D tilt ── */
.about-stat-card { will-change: transform; }

/* ── Smooth scroll: offset anchors for fixed nav ── */
html { scroll-padding-top: 80px; }

/* ── Lenis html class ── */
html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }

/* ==========================================================================
   PREMIUM PAGE SECTIONS — Generic line-mask headline
   ========================================================================== */
.page-headline {
  font-family: var(--font-serif);
  font-size: var(--text-display);
  font-weight: 400;
  line-height: 1.1;
  color: var(--vanta-dust);
  margin-bottom: clamp(2rem,4vw,4rem);
}

.page-line {
  display: block;
  overflow: hidden;
  line-height: 1.18;
}

.page-line__mask {
  display: block;
  transform: translateY(110%);
  transition: transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
}

.page-line__mask.line-up { transform: translateY(0); }

/* stagger delays */
.page-line:nth-child(2) .page-line__mask { transition-delay: 0.1s; }
.page-line:nth-child(3) .page-line__mask { transition-delay: 0.2s; }
.page-line:nth-child(4) .page-line__mask { transition-delay: 0.3s; }

/* ==========================================================================
   CLUB LIFE PAGE — Immersive Sections
   ========================================================================== */

/* ── Intro immersive chapter ── */
.cl-intro-ch {
  position: relative;
  min-height: 100vh;
  background: var(--vanta-midnight);
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: clamp(7rem,12vw,12rem) 0 clamp(5rem,8vw,8rem);
}

.cl-intro-ch__watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-serif);
  font-size: clamp(7rem,19vw,21rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.05);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  animation: wm-breathe 10s ease-in-out infinite;
}

.cl-intro-ch__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(90px);
}

.cl-intro-ch__orb--a {
  width: clamp(350px,50vw,650px);
  height: clamp(350px,50vw,650px);
  top: -15%;
  right: -8%;
  background: radial-gradient(circle, rgba(1,81,160,0.16) 0%, transparent 70%);
  animation: about-orb-a 20s ease-in-out infinite;
}

.cl-intro-ch__orb--b {
  width: clamp(280px,38vw,480px);
  height: clamp(280px,38vw,480px);
  bottom: -8%;
  left: -4%;
  background: radial-gradient(circle, rgba(28,37,85,0.45) 0%, rgba(1,81,160,0.08) 50%, transparent 70%);
  animation: about-orb-b 25s ease-in-out infinite reverse;
}

.cl-intro-ch__inner {
  position: relative;
  z-index: 1;
}

.cl-features-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 2rem 3rem;
  margin-top: clamp(3rem,6vw,5rem);
  border-top: 1px solid rgba(151,185,212,0.12);
  padding-top: 2.5rem;
}

.cl-feat {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.16,1,0.3,1);
}

.cl-feat.cl-feat--visible { opacity: 1; transform: translateY(0); }
.cl-feat:nth-child(2) { transition-delay: 0.1s; }
.cl-feat:nth-child(3) { transition-delay: 0.2s; }
.cl-feat:nth-child(4) { transition-delay: 0.3s; }

.cl-feat__num {
  font-family: var(--font-serif);
  font-size: 2.2rem;
  color: var(--vanta-skies);
  opacity: 0.4;
  line-height: 1;
}

.cl-feat__rule {
  width: 28px;
  height: 1px;
  background: var(--vanta-skies);
  opacity: 0.25;
}

.cl-feat__text {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  color: var(--vanta-sand);
  line-height: 1.75;
}

/* ── The Bar — dark cinematic split ── */
.cl-bar-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 85vh;
  background: var(--vanta-abyss);
}

.cl-bar-section__img-col {
  position: relative;
  overflow: hidden;
  min-height: 50vw;
}

.cl-bar-section__img-wrap {
  position: absolute;
  inset: 0;
}

.cl-bar-section__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s ease;
}

.cl-bar-section:hover .cl-bar-section__img-wrap img { transform: scale(1.04); }

.cl-bar-section__num {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  font-family: var(--font-serif);
  font-size: clamp(4rem,8vw,9rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.18);
  line-height: 1;
  pointer-events: none;
  z-index: 1;
}

.cl-bar-section__text-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem,6vw,8rem) 10vw;
}

/* ── Wine Vault — midnight reverse split ── */
.cl-vault-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 85vh;
  background: var(--vanta-midnight);
}

.cl-vault-section__text-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem,6vw,8rem) 10vw;
  order: 1;
}

.cl-vault-section__img-col {
  position: relative;
  overflow: hidden;
  min-height: 50vw;
  order: 2;
}

.cl-vault-section__img-wrap {
  position: absolute;
  inset: 0;
}

.cl-vault-section__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s ease;
}

.cl-vault-section:hover .cl-vault-section__img-wrap img { transform: scale(1.04); }

.cl-vault-section__num {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  font-family: var(--font-serif);
  font-size: clamp(4rem,8vw,9rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.18);
  line-height: 1;
  pointer-events: none;
  z-index: 1;
}

/* ── Boardrooms — full-bleed cinematic ── */
.cl-boardrooms {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: flex-end;
  padding: clamp(4rem,8vw,8rem) 0;
  overflow: hidden;
}

.cl-boardrooms__img-wrap {
  position: absolute;
  inset: 0;
}

.cl-boardrooms__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 12s ease;
}

.cl-boardrooms:hover .cl-boardrooms__bg-img { transform: scale(1.03); }

.cl-boardrooms__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(16,19,19,0.94) 0%,
    rgba(16,19,19,0.55) 45%,
    rgba(16,19,19,0.15) 100%
  );
}

.cl-boardrooms__inner {
  position: relative;
  z-index: 1;
}

.cl-boardrooms__num {
  font-family: var(--font-serif);
  font-size: clamp(3.5rem,7vw,9rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.22);
  line-height: 1;
  margin-bottom: 0.75rem;
}

@media (max-width: 860px) {
  .cl-bar-section,
  .cl-vault-section {
    grid-template-columns: 1fr;
  }

  .cl-bar-section__img-col,
  .cl-vault-section__img-col {
    min-height: 55vw;
  }

  .cl-vault-section__text-col { order: 2; }
  .cl-vault-section__img-col  { order: 1; }
}

/* ==========================================================================
   CULINARY PAGE — Immersive Sections
   ========================================================================== */

/* ── Philosophy immersive chapter ── */
.cul-philosophy-ch {
  position: relative;
  background: var(--vanta-midnight);
  overflow: hidden;
  padding: clamp(6rem,10vw,11rem) 0 clamp(5rem,8vw,9rem);
}

.cul-philosophy-ch__watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-serif);
  font-size: clamp(5rem,14vw,18rem);
  font-weight: 700;
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.04);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  animation: wm-breathe 12s ease-in-out infinite;
  letter-spacing: -0.02em;
}

.cul-philosophy-ch__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 820px;
  margin-inline: auto;
}

.cul-philosophy-quote {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem,3.2vw,2.6rem);
  color: var(--vanta-dust);
  font-weight: 400;
  line-height: 1.55;
  font-style: italic;
  margin-bottom: 2.5rem;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.16,1,0.3,1);
}

.cul-philosophy-quote.cul-visible { opacity: 1; transform: translateY(0); }

.cul-philosophy-attr {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  opacity: 0;
  transition: opacity 0.7s ease 0.4s;
}

.cul-philosophy-attr.cul-visible { opacity: 0.7; }

.cul-philosophy-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
}

.cul-philosophy-orb--a {
  width: 60vw;
  height: 60vw;
  top: -20%;
  left: -10%;
  background: radial-gradient(circle, rgba(1,81,160,0.1) 0%, transparent 70%);
}

.cul-philosophy-orb--b {
  width: 45vw;
  height: 45vw;
  bottom: -15%;
  right: -8%;
  background: radial-gradient(circle, rgba(28,37,85,0.4) 0%, rgba(1,81,160,0.06) 50%, transparent 70%);
}

/* ── Chef portrait — full-height immersive split ── */
.chef-portrait-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
  background: var(--vanta-abyss);
}

.chef-portrait-section__img-col {
  position: relative;
  overflow: hidden;
}

.chef-portrait-section__img-wrap {
  position: absolute;
  inset: 0;
}

.chef-portrait-section__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 10s ease;
}

.chef-portrait-section:hover .chef-portrait-section__img-wrap img { transform: scale(1.04); }

.chef-portrait-section__badge {
  position: absolute;
  bottom: 2.5rem;
  left: 2.5rem;
  z-index: 2;
  background: rgba(28,37,85,0.85);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(151,185,212,0.2);
  padding: 1.25rem 1.75rem;
  max-width: 240px;
}

.chef-portrait-section__badge-stars {
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.4rem;
}

.chef-portrait-section__badge-name {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--vanta-dust);
  font-weight: 400;
  line-height: 1.3;
}

.chef-portrait-section__text-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(4rem,7vw,9rem) 10vw;
}

@media (max-width: 860px) {
  .chef-portrait-section {
    grid-template-columns: 1fr;
  }

  .chef-portrait-section__img-col {
    min-height: 60vw;
  }
}

/* ── Dining levels — dark numbered panels ── */
.dining-levels-immersive {
  background: var(--vanta-midnight);
  padding: clamp(5rem,8vw,10rem) 0;
}

.dining-levels-immersive__header {
  text-align: center;
  margin-bottom: clamp(3rem,5vw,6rem);
}

.dining-panels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  margin-top: clamp(2rem,4vw,4rem);
}

.dining-panel {
  position: relative;
  overflow: hidden;
  min-height: clamp(460px,55vw,700px);
  display: flex;
  align-items: flex-end;
}

.dining-panel__bg {
  position: absolute;
  inset: 0;
}

.dining-panel__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s ease;
  filter: brightness(0.55);
}

.dining-panel:hover .dining-panel__bg img { transform: scale(1.05); filter: brightness(0.65); }

.dining-panel__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(16,19,19,0.92) 0%, transparent 55%);
}

.dining-panel__content {
  position: relative;
  z-index: 1;
  padding: 2.5rem 3rem;
}

.dining-panel__num {
  font-family: var(--font-serif);
  font-size: clamp(3rem,6vw,7rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.3);
  line-height: 1;
  margin-bottom: 1rem;
}

.dining-panel__label {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.5rem;
}

.dining-panel__title {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem,2.5vw,2.2rem);
  color: var(--vanta-dust);
  font-weight: 400;
  margin-bottom: 1rem;
  line-height: 1.25;
}

.dining-panel__text {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  color: rgba(242,237,233,0.72);
  line-height: 1.75;
  max-width: 380px;
}

@media (max-width: 700px) {
  .dining-panels { grid-template-columns: 1fr; }
}

/* ==========================================================================
   EVENTS PAGE — Premium Intro
   ========================================================================== */
.ev-intro-strip {
  background: var(--vanta-midnight);
  padding: clamp(4rem,7vw,7rem) 0;
  border-bottom: 1px solid rgba(151,185,212,0.08);
}

.ev-intro-strip__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem,6vw,8rem);
  align-items: center;
}

.ev-intro-strip__stat {
  font-family: var(--font-serif);
  font-size: clamp(3.5rem,7vw,7rem);
  color: var(--vanta-dust);
  font-weight: 400;
  line-height: 1;
  border-right: 1px solid rgba(151,185,212,0.12);
  padding-right: clamp(2rem,4vw,5rem);
}

.ev-intro-strip__stat span {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  font-weight: 600;
  margin-top: 0.5rem;
  opacity: 0.7;
}

@media (max-width: 600px) {
  .ev-intro-strip__inner { grid-template-columns: 1fr; }
  .ev-intro-strip__stat { border-right: none; border-bottom: 1px solid rgba(151,185,212,0.12); padding-right: 0; padding-bottom: 2rem; }
}

/* ── Host Private Event — enhanced dark section ── */
.host-event-section {
  background: var(--vanta-abyss);
  padding: clamp(5rem,9vw,10rem) 0;
}

.host-event-section__img-col {
  position: relative;
  overflow: hidden;
}

.host-event-section__img-col img {
  width: 100%;
  height: clamp(360px,45vw,520px);
  object-fit: cover;
  transition: transform 8s ease;
}

.host-event-section:hover .host-event-section__img-col img { transform: scale(1.04); }

/* ==========================================================================
   MEMBERSHIP PAGE — Premium Tiers Intro
   ========================================================================== */
.membership-intro-ch {
  position: relative;
  background: var(--vanta-midnight);
  overflow: hidden;
  padding: clamp(5rem,8vw,9rem) 0;
  border-bottom: 1px solid rgba(151,185,212,0.08);
}

.membership-intro-ch__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem,6vw,8rem);
  align-items: center;
}

.membership-intro-ch__keys {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 2rem;
}

.membership-intro-ch__key {
  padding: 0.5rem 1.25rem;
  border: 1px solid rgba(151,185,212,0.2);
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  border-radius: 999px;
  transition: all 0.3s var(--ease);
}

.membership-intro-ch__key:hover {
  background: rgba(151,185,212,0.08);
  border-color: rgba(151,185,212,0.4);
}

.membership-intro-ch__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
}

.membership-intro-ch__orb--a {
  width: 45vw;
  height: 45vw;
  top: -20%;
  right: -10%;
  background: radial-gradient(circle, rgba(1,81,160,0.12) 0%, transparent 70%);
}

/* ── Council cards enhanced ── */
.council-card {
  text-align: center;
  padding: 2rem 1.5rem;
  border: 1px solid rgba(151,185,212,0.1);
  background: rgba(28,37,85,0.3);
  backdrop-filter: blur(12px);
  transition: border-color 0.3s, transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s;
}

.council-card:hover {
  border-color: rgba(151,185,212,0.28);
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(1,81,160,0.2);
}

.council-card__img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
  margin-inline: auto;
  margin-bottom: 1.25rem;
  border: 1px solid rgba(151,185,212,0.2);
  filter: grayscale(20%);
  transition: filter 0.4s;
}

.council-card:hover .council-card__img { filter: grayscale(0%); }

.council-card__name {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--vanta-dust);
  margin-bottom: 0.35rem;
}

.council-card__title {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  color: var(--vanta-sand);
  line-height: 1.5;
}

/* ── Pricing cards enhanced ── */
.pricing-card {
  background: rgba(28,37,85,0.45);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(151,185,212,0.12);
  padding: 2.5rem 2rem;
  transition: border-color 0.35s, transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s;
}

.pricing-card:hover {
  border-color: rgba(151,185,212,0.28);
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(1,81,160,0.22);
}

.pricing-card--popular {
  border-color: rgba(151,185,212,0.28);
  background: rgba(1,81,160,0.18);
}

.pricing-card--black {
  background: rgba(16,19,19,0.85);
  border-color: rgba(151,185,212,0.2);
}

/* ── Policies section enhanced ── */
.policies-callout {
  background: rgba(28,37,85,0.35);
  border: 1px solid rgba(151,185,212,0.1);
  border-left: 3px solid var(--vanta-skies);
  padding: 2.5rem 3rem;
  max-width: 700px;
  margin-inline: auto;
}

/* ==========================================================================
   CONTACT PAGE — Premium Layout
   ========================================================================== */
.contact-info-card {
  background: rgba(28,37,85,0.4);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(151,185,212,0.1);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: border-color 0.3s, transform 0.4s cubic-bezier(0.16,1,0.3,1);
}

.contact-info-card:hover {
  border-color: rgba(151,185,212,0.25);
  transform: translateY(-4px);
}

.contact-info-card__label {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  opacity: 0.75;
}

.contact-info-card__value {
  font-family: var(--font-sans);
  font-size: 0.9rem;
  color: var(--vanta-dust);
  line-height: 1.5;
}

.contact-info-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.25rem;
  margin-top: 3rem;
}

/* ── FAQ enhanced accordion ── */
.faq-item {
  border-bottom: 1px solid rgba(151,185,212,0.1);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}

.faq-item:last-child { border-bottom: none; }

.faq-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 clamp(2rem, 5vw, 4rem);
}

@media (max-width: 680px) {
  .faq-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   INDEX PAGE — Explore Grid enhanced hover
   ========================================================================== */
.explore-grid__item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(1,81,160,0.12) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 1;
  pointer-events: none;
}

.explore-grid__item:hover::before { opacity: 1; }

.explore-grid__cta {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.explore-grid__item:hover .explore-grid__cta {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   BENEFITS PAGE — Intro section
   ========================================================================== */
.benefits-intro-strip {
  background: var(--vanta-midnight);
  padding: clamp(4rem,7vw,8rem) 0 0;
  position: relative;
  overflow: hidden;
}

.benefits-intro-strip__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 720px;
  margin-inline: auto;
  padding-bottom: clamp(3rem,5vw,6rem);
}

.benefits-intro-strip__watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-serif);
  font-size: clamp(5rem,13vw,16rem);
  font-weight: 700;
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.04);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  animation: wm-breathe 11s ease-in-out infinite;
}

/* ==========================================================================
   SHARED — Numbered section divider
   ========================================================================== */
.num-divider {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.num-divider__num {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem,5vw,4.5rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.3);
  line-height: 1;
}

.num-divider__line {
  flex: 1;
  height: 1px;
  background: rgba(151,185,212,0.12);
}

/* ==========================================================================
   MOBILE RESPONSIVE — shared overrides
   ========================================================================== */
@media (max-width: 768px) {
  .membership-intro-ch__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   MISSION & VISION SECTION
   ========================================================================== */
.mv-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.mv-panel {
  position: relative;
  overflow: hidden;
  padding: clamp(6rem,10vw,10rem) 10vw clamp(5rem,8vw,8rem);
  display: flex;
  align-items: flex-end;
  min-height: 78vh;
}

.mv-panel--mission {
  background: var(--vanta-abyss);
  border-right: 1px solid rgba(151,185,212,0.08);
}
.mv-panel--vision {
  background: var(--vanta-midnight);
}

.mv-panel__watermark {
  position: absolute;
  bottom: -0.14em;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-serif);
  font-size: clamp(4.5rem,12vw,15rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.055);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  animation: wm-breathe 13s ease-in-out infinite;
  transition: -webkit-text-stroke-color 0.8s ease;
}
.mv-panel:hover .mv-panel__watermark {
  -webkit-text-stroke-color: rgba(151,185,212,0.2);
}

.mv-panel__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(85px);
}
.mv-panel--mission .mv-panel__orb {
  width: clamp(260px,38vw,480px);
  height: clamp(260px,38vw,480px);
  top: -18%;
  right: -14%;
  background: radial-gradient(circle, rgba(1,81,160,0.14) 0%, transparent 70%);
  animation: about-orb-a 20s ease-in-out infinite;
}
.mv-panel--vision .mv-panel__orb {
  width: clamp(200px,28vw,380px);
  height: clamp(200px,28vw,380px);
  top: -10%;
  left: -10%;
  background: radial-gradient(circle, rgba(28,37,85,0.5) 0%, rgba(1,81,160,0.1) 50%, transparent 70%);
  animation: about-orb-b 24s ease-in-out infinite reverse;
}

.mv-panel__content {
  position: relative;
  z-index: 1;
  max-width: 490px;
}

.mv-panel__label {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 1.25rem;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.16,1,0.3,1);
}

.mv-panel__headline {
  font-family: var(--font-serif);
  font-size: clamp(1.9rem,3.5vw,3.2rem);
  font-weight: 500;
  font-style: italic;
  color: var(--vanta-dust);
  line-height: 1.18;
  margin-bottom: 1.5rem;
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.75s ease 0.1s, transform 0.75s cubic-bezier(0.16,1,0.3,1) 0.1s;
}

.mv-panel__divider {
  width: 40px;
  height: 1px;
  background: var(--vanta-gold);
  margin-bottom: 1.5rem;
  transition: width 0.7s cubic-bezier(0.16,1,0.3,1);
}
.mv-panel:hover .mv-panel__divider { width: 72px; }

.mv-panel__text {
  font-family: var(--font-serif);
  font-size: clamp(1rem,1.4vw,1.15rem);
  font-weight: 300;
  color: rgba(242,237,233,0.72);
  line-height: 1.9;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.75s ease 0.2s, transform 0.75s cubic-bezier(0.16,1,0.3,1) 0.2s;
}

.mv-panel__cta {
  margin-top: 2.5rem;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease 0.33s, transform 0.7s cubic-bezier(0.16,1,0.3,1) 0.33s,
              background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}

.mv-panel.mv-visible .mv-panel__label,
.mv-panel.mv-visible .mv-panel__headline,
.mv-panel.mv-visible .mv-panel__text,
.mv-panel.mv-visible .mv-panel__cta {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 860px) {
  .mv-section { grid-template-columns: 1fr; }
  .mv-panel--mission { border-right: none; border-bottom: 1px solid rgba(151,185,212,0.08); }
  .mv-panel { min-height: 60vh; }
}

/* ==========================================================================
   ROOMS CAROUSEL (Club Life)
   ========================================================================== */
.rooms-section {
  padding-top: clamp(3rem,6vw,5rem);
  padding-bottom: clamp(3rem,6vw,5rem);
}

.rooms-card {
  cursor: pointer;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.rooms-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 52px rgba(0,0,0,0.16);
}

.rooms-card__explore {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-top: 1rem;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.rooms-card:hover .rooms-card__explore {
  opacity: 1;
  transform: translateX(0);
}

/* Room Drawer stats */
.rd-stats {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}
.rd-stat {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.rd-stat__value {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--vanta-dust);
  line-height: 1;
}
.rd-stat__label {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(242,237,233,0.45);
}


/* ==========================================================================
   INVITATION MODAL — Premium Full-Screen
   ========================================================================== */

/* Base: hidden by default */
.inv-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.inv-modal.open { display: flex; }

/* Backdrop */
.inv-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7,18,42,0.85);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
}

/* Panel wrapper — slides up & scales in */
.inv-modal__panel {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: min(1080px, 96vw);
  max-height: 90vh;
  border: 1px solid rgba(151,185,212,0.14);
  border-radius: 4px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(36px) scale(0.97);
  transition: opacity 0.5s cubic-bezier(0.16,1,0.3,1),
              transform 0.55s cubic-bezier(0.16,1,0.3,1);
}
.inv-modal.open .inv-modal__panel {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Close button */
.inv-modal__close {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  z-index: 10;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(7,18,42,0.12);
  border: 1px solid rgba(7,18,42,0.18);
  color: rgba(7,18,42,0.75);
  font-size: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease, color 0.3s ease;
  cursor: pointer;
}
.inv-modal__close:hover {
  background: rgba(7,18,42,0.2);
  color: var(--vanta-midnight);
}

/* ── LEFT — dark persuasion panel ── */
.inv-modal__left {
  background: var(--vanta-midnight);
  padding: clamp(2.5rem,4vw,4rem) clamp(2rem,3.5vw,3.5rem);
  position: relative;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5rem;
  max-height: 90vh;
}

/* Animated orbs */
.inv-modal__left-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(70px);
}
.inv-modal__left-orb--a {
  width: 280px; height: 280px;
  top: -12%; right: -12%;
  background: radial-gradient(circle, rgba(1,81,160,0.2) 0%, transparent 70%);
  animation: about-orb-a 18s ease-in-out infinite;
}
.inv-modal__left-orb--b {
  width: 220px; height: 220px;
  bottom: -8%; left: -8%;
  background: radial-gradient(circle, rgba(28,37,85,0.6) 0%, rgba(1,81,160,0.12) 50%, transparent 70%);
  animation: about-orb-b 22s ease-in-out infinite reverse;
}

.inv-modal__left-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.inv-modal__logo {
  height: 26px;
  width: auto;
  object-fit: contain;
  object-position: left;
  margin-bottom: 1.75rem;
}

/* Pulsing exclusivity badge */
.inv-modal__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  border: 1px solid rgba(151,185,212,0.25);
  padding: 0.38rem 0.85rem;
  border-radius: 2px;
  margin-bottom: 1.5rem;
  width: fit-content;
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity 0.5s ease 0.1s, transform 0.5s cubic-bezier(0.16,1,0.3,1) 0.1s;
}
.inv-modal.open .inv-modal__badge { opacity: 1; transform: translateX(0); }

.inv-modal__badge-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--vanta-skies);
  flex-shrink: 0;
  animation: inv-pulse 2.2s ease-in-out infinite;
}
@keyframes inv-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.65); }
}

.inv-modal__headline {
  font-family: var(--font-serif);
  font-size: clamp(1.55rem,2.6vw,2.5rem);
  font-weight: 500;
  color: var(--vanta-dust);
  line-height: 1.2;
  margin-bottom: 1rem;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.65s ease 0.2s, transform 0.65s cubic-bezier(0.16,1,0.3,1) 0.2s;
}
.inv-modal.open .inv-modal__headline { opacity: 1; transform: translateY(0); }

.inv-modal__sub {
  font-family: var(--font-sans);
  font-size: 0.84rem;
  color: rgba(242,237,233,0.62);
  line-height: 1.72;
  margin-bottom: 1.75rem;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.6s ease 0.28s, transform 0.6s cubic-bezier(0.16,1,0.3,1) 0.28s;
}
.inv-modal.open .inv-modal__sub { opacity: 1; transform: translateY(0); }

/* Benefits list */
.inv-modal__benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  border-top: 1px solid rgba(151,185,212,0.1);
  padding-top: 1.25rem;
}

.inv-modal__benefit {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.inv-modal.open .inv-modal__benefit:nth-child(1) { opacity:1; transform:translateX(0); transition-delay:0.35s; }
.inv-modal.open .inv-modal__benefit:nth-child(2) { opacity:1; transform:translateX(0); transition-delay:0.45s; }
.inv-modal.open .inv-modal__benefit:nth-child(3) { opacity:1; transform:translateX(0); transition-delay:0.55s; }
.inv-modal.open .inv-modal__benefit:nth-child(4) { opacity:1; transform:translateX(0); transition-delay:0.65s; }
.inv-modal.open .inv-modal__benefit:nth-child(5) { opacity:1; transform:translateX(0); transition-delay:0.75s; }

.inv-modal__benefit-icon {
  color: var(--vanta-gold);
  font-size: 0.55rem;
  flex-shrink: 0;
  margin-top: 0.35rem;
}
.inv-modal__benefit-text {
  font-family: var(--font-sans);
  font-size: 0.8rem;
  color: rgba(242,237,233,0.7);
  line-height: 1.55;
}
.inv-modal__benefit-text strong {
  color: var(--vanta-dust);
  font-weight: 600;
}

.inv-modal__disclaimer {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  color: rgba(242,237,233,0.32);
  line-height: 1.65;
  border-top: 1px solid rgba(151,185,212,0.08);
  padding-top: 1.1rem;
  margin-top: 1.25rem;
  opacity: 0;
  transition: opacity 0.6s ease 0.85s;
}
.inv-modal.open .inv-modal__disclaimer { opacity: 1; }

/* ── RIGHT — form panel ── */
.inv-modal__right {
  background: #f7f5f2;
  padding: clamp(2rem,3.5vw,3.5rem) clamp(1.75rem,3vw,3rem);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  max-height: 90vh;
}

.inv-modal__form-label {
  font-family: var(--font-sans);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--vanta-midnight);
  opacity: 0.45;
  margin-bottom: 0.6rem;
}

.inv-modal__form-title {
  font-family: var(--font-serif);
  font-size: clamp(1.1rem,1.8vw,1.45rem);
  font-weight: 500;
  color: var(--vanta-midnight);
  line-height: 1.3;
  margin-bottom: 0.75rem;
}

.inv-modal__form-note {
  font-family: var(--font-sans);
  font-size: 0.8rem;
  color: rgba(7,18,42,0.55);
  line-height: 1.65;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(7,18,42,0.1);
}

.inv-modal__form-wrap {
  flex: 1;
}

/* ── Mobile ── */
@media (max-width: 768px) {
  .inv-modal {
    padding: 0;
    align-items: stretch;
  }
  .inv-modal__panel {
    grid-template-columns: 1fr;
    width: 100%;
    height: 100dvh;
    height: 100vh;
    max-height: none;
    border-radius: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    transform: translateY(100%);
    transition: transform 0.45s cubic-bezier(0.16,1,0.3,1);
  }
  .inv-modal.open .inv-modal__panel { transform: translateY(0); }

  /* Close button — fixed so it's always visible while scrolling */
  .inv-modal__close {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 9001;
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.3);
    color: rgba(255,255,255,0.9);
    opacity: 1 !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .inv-modal__close:hover {
    background: rgba(255,255,255,0.25);
    color: #fff;
  }

  /* Left panel — benefits only, flows into the form */
  .inv-modal__left {
    display: block;
    padding: 4.5rem 1.25rem 1.25rem;
    background: var(--vanta-midnight);
  }
  .inv-modal__left-orb,
  .inv-modal__logo,
  .inv-modal__badge,
  .inv-modal__headline,
  .inv-modal__sub,
  .inv-modal__disclaimer { display: none; }

  .inv-modal__benefits { margin: 0; gap: 0.6rem; }
  .inv-modal__benefit { gap: 0.55rem; }
  .inv-modal__benefit-text { font-size: 0.78rem; line-height: 1.45; }

  /* Right panel — natural height, no internal scroll */
  .inv-modal__right {
    padding: 1.5rem 1.25rem 2.5rem;
    overflow: visible;
    max-height: none;
  }
  .inv-modal__form-title { font-size: 1.6rem; }
}

/* ==========================================================================
   CONTACT PAGE — Premium Redesign
   ========================================================================== */
.contact-pg {
  position: relative;
  background: var(--vanta-midnight);
  padding: clamp(6rem,10vw,11rem) 0 clamp(5rem,8vw,9rem);
  overflow: hidden;
}

.contact-pg__wm {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-serif);
  font-size: clamp(7rem, 18vw, 20rem);
  font-weight: 700;
  color: transparent;
  -webkit-text-stroke: 1px rgba(151,185,212,0.045);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  letter-spacing: -0.02em;
  animation: wm-breathe 14s ease-in-out infinite;
}

.contact-pg__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(100px);
}
.contact-pg__orb--a {
  width: clamp(300px,45vw,600px);
  height: clamp(300px,45vw,600px);
  top: -10%;
  right: -8%;
  background: radial-gradient(circle, rgba(1,81,160,0.14) 0%, transparent 70%);
  animation: about-orb-a 22s ease-in-out infinite alternate;
}
.contact-pg__orb--b {
  width: clamp(250px,35vw,480px);
  height: clamp(250px,35vw,480px);
  bottom: -10%;
  left: -6%;
  background: radial-gradient(circle, rgba(28,37,85,0.5) 0%, rgba(1,81,160,0.07) 50%, transparent 70%);
  animation: about-orb-b 28s ease-in-out infinite reverse;
}

.contact-pg__header {
  text-align: left;
  max-width: 600px;
  margin: 0 0 clamp(4rem,7vw,7rem);
  position: relative;
  z-index: 1;
}

/* ── Contact Strip ── */
.contact-strip {
  display: flex;
  align-items: flex-start;
  border-top: 1px solid rgba(151,185,212,0.13);
  border-bottom: 1px solid rgba(151,185,212,0.13);
  padding-block: clamp(2.5rem,5vw,4.5rem);
  margin-bottom: clamp(3rem,6vw,5rem);
  position: relative;
  z-index: 1;
}

.contact-strip__item {
  flex: 1;
  padding-inline: clamp(1rem,2.5vw,2.25rem);
}
.contact-strip__item:first-child { padding-left: 0; }
.contact-strip__item:last-child  { padding-right: 0; }

.club-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.875rem;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: #F5C842;
}

.club-status__dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #F5C842;
  flex-shrink: 0;
  box-shadow: 0 0 0 0 rgba(245, 200, 66, 0.5);
  animation: status-pulse 2s ease-out infinite;
}

@keyframes status-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(245, 200, 66, 0.55); }
  70%  { box-shadow: 0 0 0 8px rgba(245, 200, 66, 0); }
  100% { box-shadow: 0 0 0 0 rgba(245, 200, 66, 0); }
}

.contact-strip__divider {
  width: 1px;
  align-self: stretch;
  background: rgba(151,185,212,0.13);
  flex-shrink: 0;
}

.contact-strip__label {
  display: block;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 1rem;
  font-weight: 600;
}

.contact-strip__value {
  font-family: var(--font-serif);
  font-size: clamp(0.9rem,1.4vw,1.1rem);
  color: var(--vanta-dust);
  line-height: 1.75;
}
.contact-strip__value a {
  color: var(--vanta-dust);
  transition: color 0.2s;
}
.contact-strip__value a:hover { color: var(--vanta-skies); }

.contact-strip__link {
  display: inline-block;
  margin-top: 0.9rem;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  opacity: 0.8;
  transition: opacity 0.2s;
}
.contact-strip__link:hover { opacity: 1; }

/* ── Bottom row ── */
.contact-pg__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 2rem;
  position: relative;
  z-index: 1;
}

@media (max-width: 900px) {
  .contact-strip {
    flex-wrap: wrap;
    gap: 0;
  }
  .contact-strip__item {
    flex: 0 0 calc(50% - 0.5px);
    padding: clamp(1.5rem,3vw,2.5rem) 0;
    border-bottom: 1px solid rgba(151,185,212,0.1);
  }
  .contact-strip__item:nth-child(odd)  { padding-right: clamp(1rem,2vw,2rem); }
  .contact-strip__item:nth-child(even) { padding-left: clamp(1rem,2vw,2rem); border-left: 1px solid rgba(151,185,212,0.1); }
  .contact-strip__item:nth-last-child(-n+2):not(:has(~ .contact-strip__item)) { border-bottom: none; }
  .contact-strip__divider { display: none; }
}

@media (max-width: 600px) {
  .contact-strip__item {
    flex: 0 0 100%;
    padding: 1.5rem 0;
    border-bottom: 1px solid rgba(151,185,212,0.1);
    border-left: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .contact-strip__item:last-child { border-bottom: none; }
  .contact-pg__bottom { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================================
   Legal Pages — Light Theme (Terms, Privacy, Handbook)
   ========================================================================== */

/* ── Nav override: force light/cream appearance on legal pages ── */
body.is-legal { background: #F5F0EC; }

body.is-legal .nav,
body.is-legal .nav.nav--transparent,
body.is-legal .nav.nav--scrolled {
  background: #F5F0EC;
  border-bottom: 1px solid rgba(28,37,85,0.1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}
body.is-legal .nav .nav__logo .logo-white,
body.is-legal .nav.nav--transparent .nav__logo .logo-white,
body.is-legal .nav.nav--scrolled .nav__logo .logo-white { display: none; }
body.is-legal .nav .nav__logo .logo-dark,
body.is-legal .nav.nav--transparent .nav__logo .logo-dark,
body.is-legal .nav.nav--scrolled .nav__logo .logo-dark  { display: block; }
body.is-legal .nav .nav__links a { color: var(--vanta-midnight); }
body.is-legal .nav .nav__links a:hover { color: var(--vanta-azure); }
body.is-legal .nav .nav__hamburger { color: var(--vanta-midnight); }
body.is-legal .nav.nav--scrolled .nav__hamburger { color: var(--vanta-midnight); }
body.is-legal .nav .nav__cta .btn,
body.is-legal .nav.nav--transparent .nav__cta .btn,
body.is-legal .nav.nav--scrolled .nav__cta .btn {
  background-color: var(--vanta-midnight);
  border-color: var(--vanta-midnight);
  color: var(--vanta-dust);
}
body.is-legal .nav .nav__cta .btn:hover,
body.is-legal .nav.nav--transparent .nav__cta .btn:hover,
body.is-legal .nav.nav--scrolled .nav__cta .btn:hover {
  background-color: var(--vanta-azure);
  border-color: var(--vanta-azure);
}

/* ── Legal Header (replaces hero) ── */
.lp-header {
  background: #F5F0EC;
  padding-top: calc(clamp(3.5rem, 7vw, 6rem) + 80px);
  padding-bottom: clamp(3rem, 6vw, 5rem);
  position: relative;
  overflow: hidden;
}

.lp-header__wm {
  position: absolute;
  bottom: -3rem;
  right: -1rem;
  font-family: var(--font-serif);
  font-size: clamp(8rem, 20vw, 18rem);
  font-weight: 700;
  color: rgba(28,37,85,0.04);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

.lp-header__inner { position: relative; z-index: 1; }

.lp-header__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vanta-stone);
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.lp-header__breadcrumb a { color: var(--vanta-stone); text-decoration: none; transition: color 0.2s; }
.lp-header__breadcrumb a:hover { color: var(--vanta-azure); }

.lp-header__accent {
  width: 2rem;
  height: 2px;
  background: var(--vanta-azure);
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}

.lp-header__title {
  font-family: var(--font-serif);
  font-size: clamp(2.75rem, 6vw, 5.5rem);
  font-weight: 400;
  color: var(--vanta-midnight);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}

.lp-header__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--vanta-stone);
}

.lp-header__divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, rgba(28,37,85,0.15) 0%, rgba(28,37,85,0.03) 100%);
}

/* ── Legal content area ── */
.legal-page {
  background: #F5F0EC;
  padding: clamp(3.5rem, 6vw, 6rem) 0 clamp(6rem, 12vw, 10rem);
}

.lp-layout {
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 0 clamp(3rem, 5vw, 6rem);
  align-items: start;
}

/* ── TOC sidebar ── */
.lp-toc {
  position: sticky;
  top: calc(80px + 2.5rem);
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.lp-toc__label {
  font-family: var(--font-sans);
  font-size: 0.625rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(28,37,85,0.4);
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(28,37,85,0.12);
}

.lp-toc__list { list-style: none; padding: 0; margin: 0; }
.lp-toc__list li { border-bottom: 1px solid rgba(28,37,85,0.06); }

.lp-toc__list a {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.5rem 0;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  color: var(--vanta-stone);
  text-decoration: none;
  transition: color 0.2s;
  line-height: 1.4;
}
.lp-toc__list a:hover,
.lp-toc__list a.is-active { color: var(--vanta-midnight); }
.lp-toc__list a.is-active { font-weight: 500; }

.toc-num {
  font-size: 0.625rem;
  color: rgba(28,37,85,0.28);
  flex-shrink: 0;
  letter-spacing: 0.05em;
  transition: color 0.2s;
}
.lp-toc__list a.is-active .toc-num { color: var(--vanta-azure); }

/* ── Intro paragraph ── */
.lp-intro {
  font-size: 1.0625rem;
  color: #3A3D40;
  line-height: 1.85;
  max-width: 640px;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
  border-bottom: 1px solid rgba(28,37,85,0.1);
}

/* ── Legal items ── */
.legal-body { display: flex; flex-direction: column; }

.legal-item {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 0 2rem;
  padding: clamp(1.75rem, 3.5vw, 2.75rem) 0;
  border-bottom: 1px solid rgba(28,37,85,0.08);
  align-items: start;
  scroll-margin-top: calc(80px + 2rem);
}
.legal-item:first-child { border-top: 1px solid rgba(28,37,85,0.08); }

.legal-item__num {
  font-family: var(--font-sans);
  font-size: 0.625rem;
  letter-spacing: 0.12em;
  color: rgba(28,37,85,0.28);
  padding-top: 0.375rem;
}

.legal-item__title {
  font-family: var(--font-serif);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  font-weight: 500;
  color: var(--vanta-midnight);
  margin-bottom: 0.75rem;
  letter-spacing: -0.01em;
}

.legal-item__content p {
  font-size: 0.9375rem;
  color: #3A3D40;
  line-height: 1.85;
  margin-bottom: 0.75rem;
}
.legal-item__content p:last-child { margin-bottom: 0; }

.legal-item__content ul,
.legal-item__content ol {
  margin: 0.5rem 0 0.75rem 0;
  padding: 0;
  list-style: none;
  color: #3A3D40;
  font-size: 0.9375rem;
  line-height: 1.85;
}
.legal-item__content li {
  position: relative;
  padding-left: 1.125rem;
  margin-bottom: 0.35rem;
}
.legal-item__content li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: rgba(28,37,85,0.22);
  font-size: 0.75rem;
  line-height: 1.85;
}

.legal-item__content a { color: var(--vanta-azure); text-decoration: underline; text-underline-offset: 3px; }
.legal-item__content strong { color: var(--vanta-midnight); font-weight: 600; }

/* ── Legal page footer strip ── */
.legal-footer {
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
  border-top: 1px solid rgba(28,37,85,0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.5rem;
}
.legal-footer p { font-size: 0.875rem; color: var(--vanta-stone); }
.legal-footer p a { color: var(--vanta-azure); text-underline-offset: 3px; }

.legal-footer__links {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-family: var(--font-sans);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  flex-wrap: wrap;
}
.legal-footer__links a { color: var(--vanta-stone); text-decoration: none; transition: color 0.2s; }
.legal-footer__links a:hover { color: var(--vanta-midnight); }
.legal-footer__links span { color: rgba(28,37,85,0.2); }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .lp-layout { grid-template-columns: 175px 1fr; gap: 0 2.5rem; }
}

@media (max-width: 860px) {
  .lp-layout { grid-template-columns: 1fr; }
  .lp-toc {
    position: static;
    max-height: none;
    border: 1px solid rgba(28,37,85,0.1);
    padding: 1.5rem;
    margin-bottom: 3rem;
  }
  .lp-toc__list { display: grid; grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .lp-toc__list { grid-template-columns: 1fr; }
  .legal-item { grid-template-columns: 1fr; gap: 0.25rem; }
  .legal-item__num { padding-top: 0; }
  .legal-footer { flex-direction: column; align-items: flex-start; }
}


/* ==========================================================================
   CULINARY PAGE — Premium Redesign
   ========================================================================== */

/* ── Hero scroll cue ── */
.cul-hero-scroll {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  opacity: 0;
  animation: cul-scroll-appear 1s ease 1.5s forwards;
}
.cul-hero-scroll svg {
  width: 20px;
  height: 20px;
  color: rgba(242,237,233,0.4);
  animation: cul-scroll-bounce 2s ease-in-out infinite;
}
@keyframes cul-scroll-appear { to { opacity: 1; } }
@keyframes cul-scroll-bounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(6px); }
}

/* ── Culinary Intro / Philosophy ── */
.cul-intro {
  background: var(--vanta-midnight);
  position: relative;
  overflow: hidden;
  padding: clamp(6rem,10vw,10rem) 0 0;
}
.cul-intro__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}
.cul-intro__orb--a {
  width: clamp(300px,40vw,540px);
  height: clamp(300px,40vw,540px);
  background: radial-gradient(circle, rgba(1,81,160,0.28) 0%, transparent 70%);
  top: -15%; right: -8%;
  animation: about-orb-a 20s ease-in-out infinite;
}
.cul-intro__orb--b {
  width: clamp(240px,32vw,440px);
  height: clamp(240px,32vw,440px);
  background: radial-gradient(circle, rgba(102,31,244,0.14) 0%, transparent 70%);
  bottom: 5%; left: -5%;
  animation: about-orb-b 25s ease-in-out infinite;
}
.cul-intro__inner {
  text-align: center;
  position: relative;
  z-index: 1;
}
.cul-intro__quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.3rem,2.3vw,2rem);
  color: var(--vanta-dust);
  line-height: 1.65;
  max-width: 800px;
  margin: 2rem auto 1.5rem;
  font-weight: 400;
}
.cul-intro__attr {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(151,185,212,0.4);
}

/* Stats row */
.cul-stats {
  display: flex;
  align-items: stretch;
  border-top: 1px solid rgba(151,185,212,0.1);
  margin-top: clamp(4rem,7vw,6rem);
  position: relative;
  z-index: 1;
}
.cul-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: clamp(2rem,4vw,3rem) 1rem;
  text-align: center;
}
.cul-stat__num {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem,2.4vw,2rem);
  color: var(--vanta-dust);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
}
.cul-stat__label {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(151,185,212,0.45);
}
.cul-stat__divider {
  width: 1px;
  background: rgba(151,185,212,0.1);
  flex-shrink: 0;
  align-self: stretch;
}

/* ── Chef Alvin Leung ── */
.cul-chef {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
}
.cul-chef__img-col {
  position: relative;
  overflow: hidden;
  min-height: 600px;
}
.cul-chef__img-wrap {
  position: absolute;
  inset: 0;
}
.cul-chef__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 12%;
  transition: transform 10s ease;
}
.cul-chef:hover .cul-chef__img-wrap img { transform: scale(1.04); }
.cul-chef__img-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent 60%, var(--vanta-midnight) 100%),
              linear-gradient(to top, rgba(7,18,42,0.75) 0%, transparent 45%);
}
.cul-chef__img-caption {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.cul-chef__stars {
  font-size: 1.05rem;
  color: var(--vanta-skies);
  letter-spacing: 0.18em;
}
.cul-chef__badge-line {
  font-family: var(--font-sans);
  font-size: 0.67rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(242,237,233,0.45);
}
.cul-chef__text-col {
  background: var(--vanta-midnight);
  padding: clamp(4rem,7vw,7rem) clamp(2.5rem,5vw,5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* Keep the CTA at intrinsic width so it doesn't stretch like a banner */
.cul-chef__text-col > .btn { align-self: flex-start; margin-top: 1.5rem; }
.cul-chef__name {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem,5vw,5rem);
  color: var(--vanta-dust);
  line-height: 1.02;
  font-weight: 400;
  margin-bottom: 1.75rem;
}
.cul-chef__body {
  font-family: var(--font-sans);
  font-size: clamp(0.87rem,1.4vw,0.98rem);
  color: var(--vanta-sand);
  line-height: 1.85;
  margin-bottom: 1rem;
}
.cul-chef__pull-quote {
  border-left: 2px solid rgba(151,185,212,0.28);
  padding-left: 1.25rem;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(0.92rem,1.4vw,1.08rem);
  color: rgba(242,237,233,0.6);
  line-height: 1.65;
  margin: 1.75rem 0;
}
.cul-chef__credentials {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(151,185,212,0.1);
  margin-bottom: 2rem;
}
.cul-chef__cred {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 0.75rem;
  align-items: baseline;
}
.cul-chef__cred-title {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--vanta-skies);
}
.cul-chef__cred-desc {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  color: var(--vanta-stone);
  line-height: 1.5;
}

/* ── Full-width image divider ── */
.cul-divider {
  height: clamp(200px,28vw,380px);
  overflow: hidden;
  position: relative;
}
.cul-divider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  filter: brightness(0.7);
}
.cul-divider__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    var(--vanta-midnight) 0%,
    transparent 20%,
    transparent 80%,
    var(--vanta-midnight) 100%
  );
}

/* ── Dining level splits ── */
.cul-level {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 85vh;
}
.cul-level__img-col {
  position: relative;
  overflow: hidden;
  min-height: 480px;
}
.cul-level__img-col img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 10s ease;
}
.cul-level:hover .cul-level__img-col img { transform: scale(1.04); }
.cul-level__img-overlay {
  position: absolute;
  inset: 0;
  background: rgba(7,18,42,0.2);
}
.cul-level__text-col {
  background: var(--vanta-midnight);
  padding: clamp(3.5rem,6vw,6rem) clamp(2.5rem,5vw,5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.cul-level__num {
  font-family: var(--font-serif);
  font-size: clamp(6rem,10vw,10rem);
  color: rgba(151,185,212,0.05);
  line-height: 1;
  font-weight: 700;
  position: absolute;
  top: clamp(1.5rem,3vw,3rem);
  right: clamp(1.5rem,3vw,3rem);
  pointer-events: none;
  user-select: none;
}
.cul-level__label {
  font-family: var(--font-sans);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  margin-bottom: 0.9rem;
}
.cul-level__rule {
  width: 36px;
  height: 1px;
  background: rgba(151,185,212,0.3);
  margin-bottom: 1.5rem;
}
.cul-level__title {
  font-family: var(--font-serif);
  font-size: clamp(2rem,3.8vw,3.5rem);
  color: var(--vanta-dust);
  line-height: 1.08;
  font-weight: 400;
  margin-bottom: 1.5rem;
}
.cul-level__text {
  font-family: var(--font-sans);
  font-size: clamp(0.87rem,1.3vw,0.97rem);
  color: var(--vanta-sand);
  line-height: 1.85;
  max-width: 460px;
  margin-bottom: 2.5rem;
}
.cul-level__details {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(151,185,212,0.1);
}
.cul-level__detail {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 1rem;
  align-items: baseline;
}
.cul-level__detail-key {
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(151,185,212,0.4);
}
.cul-level__detail-val {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  color: var(--vanta-sand);
  line-height: 1.5;
}

/* ── Dining details grid ── */
.cul-details-section {
  background: var(--vanta-midnight);
  padding: clamp(5rem,9vw,9rem) 0;
  border-top: 1px solid rgba(151,185,212,0.07);
}
.cul-details-header {
  text-align: center;
  margin-bottom: clamp(3rem,5vw,5rem);
}
.cul-details-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1px;
  background: rgba(151,185,212,0.07);
  border: 1px solid rgba(151,185,212,0.07);
  overflow: hidden;
  border-radius: 4px;
}
.cul-detail-card {
  background: var(--vanta-midnight);
  padding: clamp(1.75rem,3.5vw,3rem) clamp(1.5rem,3vw,2.5rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: background 0.35s ease;
}
.cul-detail-card:hover { background: rgba(1,81,160,0.13); }
.cul-detail-card__icon {
  width: 30px;
  height: 30px;
  color: var(--vanta-skies);
  opacity: 0.55;
  flex-shrink: 0;
}
.cul-detail-card__title {
  font-family: var(--font-serif);
  font-size: clamp(1rem,1.5vw,1.2rem);
  color: var(--vanta-dust);
  font-weight: 400;
  line-height: 1.3;
}
.cul-detail-card__text {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  color: var(--vanta-stone);
  line-height: 1.75;
}

/* ── Closing CTA ── */
.cul-closing {
  position: relative;
  min-height: 65vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}
.cul-closing__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.32);
  transform: scale(1.06);
  transition: transform 14s ease;
}
.cul-closing:hover .cul-closing__bg { transform: scale(1); }
.cul-closing__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    var(--vanta-midnight) 0%,
    rgba(7,18,42,0.55) 30%,
    rgba(7,18,42,0.55) 70%,
    var(--vanta-midnight) 100%
  );
}
.cul-closing__inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
}
.cul-closing__headline {
  font-family: var(--font-serif);
  font-size: clamp(3rem,6vw,5.5rem);
  color: var(--vanta-dust);
  line-height: 1.05;
  font-weight: 400;
  margin-bottom: 1.5rem;
}
.cul-closing__sub {
  font-family: var(--font-sans);
  font-size: clamp(0.88rem,1.5vw,1rem);
  color: var(--vanta-sand);
  line-height: 1.8;
  max-width: 440px;
  margin: 0 auto 2.5rem;
}

/* ── Culinary mobile ── */
@media (max-width: 860px) {
  .cul-chef { grid-template-columns: 1fr; }
  .cul-chef__img-col { min-height: 65vw; position: relative; }
  .cul-chef__img-wrap { position: absolute; }
  .cul-chef__img-gradient { background: linear-gradient(to bottom, transparent 50%, var(--vanta-midnight) 100%); }
  .cul-chef__text-col { padding: clamp(2.5rem,5vw,4rem) clamp(1.5rem,4vw,2.5rem); }
  .cul-chef__cred { grid-template-columns: 1fr; gap: 0.2rem; }
}
@media (max-width: 768px) {
  .cul-level { grid-template-columns: 1fr; min-height: auto; }
  .cul-level__img-col { min-height: 60vw; position: relative; }
  .cul-level__img-col img { position: absolute; }
  .cul-level__num { font-size: clamp(4rem,14vw,7rem); }
  .cul-details-grid { grid-template-columns: 1fr; }
  .cul-stats { flex-wrap: wrap; }
  .cul-stat { flex: 0 0 50%; }
  .cul-stat__divider { display: none; }
}

/* ── Benefit drawer redeem info ── */
.benefit-redeem-info {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  background: rgba(1,81,160,0.12);
  border: 1px solid rgba(151,185,212,0.15);
  border-left: 3px solid var(--vanta-skies);
  padding: 1.25rem 1.5rem;
  margin-top: 0.25rem;
}
.benefit-redeem-info__icon {
  color: var(--vanta-skies);
  font-size: 0.75rem;
  flex-shrink: 0;
  margin-top: 0.2rem;
}
.benefit-redeem-info__text {
  font-size: 0.85rem;
  color: var(--vanta-sand);
  line-height: 1.75;
  margin: 0;
}
.benefit-redeem-info__text strong {
  color: var(--vanta-dust);
  font-weight: 600;
}

/* ── Events carousels ── */
.ev-carousel .sc-track { padding-inline: var(--container-pad, clamp(1.25rem,5vw,4rem)); }
.ev-carousel .event-card {
  flex: 0 0 clamp(280px, 32vw, 420px);
  min-width: 0;
}

/* ── Key Council Carousel ── */
.council-section {
  background: var(--vanta-midnight);
  padding-block: clamp(4rem, 8vw, 7rem);
  overflow: hidden;
}

.council-carousel__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: clamp(2.5rem, 4vw, 4rem);
  flex-wrap: wrap;
}

.council-carousel__intro { flex: 1; min-width: 260px; }

.council-carousel__sub {
  font-size: 0.9rem;
  color: var(--vanta-sand);
  max-width: 420px;
  line-height: 1.75;
  margin-top: 0.75rem;
}

.council-carousel__controls {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.council-carousel__track-wrapper {
  cursor: grab;
  overflow: hidden;
}
.council-carousel__track-wrapper:active { cursor: grabbing; }

.council-carousel__track {
  display: flex;
  gap: 1.5rem;
  padding-inline: var(--container-pad, clamp(1.25rem, 5vw, 4rem));
  transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* Council card */
.council-card {
  flex: 0 0 clamp(240px, 24vw, 300px);
  min-width: 0;
  cursor: pointer;
  background: rgba(14,22,54,0.6);
  border: 1px solid rgba(151,185,212,0.1);
  border-radius: 12px;
  padding: 0;
  text-align: left;
  overflow: hidden;
  transition: border-color 0.35s, box-shadow 0.35s, transform 0.45s cubic-bezier(0.16,1,0.3,1);
}

.council-card:hover {
  border-color: rgba(151,185,212,0.28);
  box-shadow: 0 24px 56px rgba(1,81,160,0.25), 0 0 0 1px rgba(151,185,212,0.1);
  transform: translateY(-5px);
}

.council-card__portrait {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: rgba(28,37,85,0.4);
  border-radius: 0;
}

.council-card__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  filter: grayscale(15%);
}

.council-card:hover .council-card__portrait img {
  transform: scale(1.05);
  filter: grayscale(0%);
}

.council-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(7,18,42,0) 45%,
    rgba(7,18,42,0.65) 75%,
    rgba(7,18,42,0.88) 100%
  );
  pointer-events: none;
}

.council-card__index {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  font-family: var(--font-serif);
  font-size: 0.65rem;
  color: rgba(151,185,212,0.35);
  letter-spacing: 0.1em;
  line-height: 1;
  pointer-events: none;
}

.council-card__body {
  padding: 1.1rem 1.25rem 1.35rem;
  border-top: 1px solid rgba(151,185,212,0.1);
  transition: border-color 0.3s;
}

.council-card:hover .council-card__body {
  border-color: rgba(151,185,212,0.25);
}

.council-card__name {
  font-family: var(--font-serif);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  color: var(--vanta-dust);
  margin-bottom: 0.35rem;
  font-weight: 500;
}

.council-card__title {
  font-size: 0.72rem;
  color: var(--vanta-sand);
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* ── Membership tiers: floating keys ── */
.mem-tiers-section {
  position: relative;
  overflow: hidden;
}

@keyframes mem-key-float-a {
  0%   { transform: rotate(-38deg) translateY(0px); }
  50%  { transform: rotate(-34deg) translateY(-22px); }
  100% { transform: rotate(-38deg) translateY(0px); }
}
@keyframes mem-key-float-b {
  0%   { transform: rotate(18deg) translateY(0px); }
  50%  { transform: rotate(22deg) translateY(-16px); }
  100% { transform: rotate(18deg) translateY(0px); }
}
@keyframes mem-key-float-c {
  0%   { transform: rotate(-55deg) translateY(0px) scale(1); }
  50%  { transform: rotate(-51deg) translateY(-12px) scale(1.02); }
  100% { transform: rotate(-55deg) translateY(0px) scale(1); }
}

.mem-key {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

/* Key A — large, top-left, blue glow */
.mem-key--a {
  width: clamp(160px, 17vw, 240px);
  top: 4%;
  left: 1.5vw;
  opacity: 0.55;
  filter: drop-shadow(0 0 20px rgba(151,185,212,0.6)) drop-shadow(0 4px 32px rgba(1,81,160,0.5));
  animation: mem-key-float-a 7s ease-in-out infinite;
}

/* Key B — medium, bottom-right, gold glow */
.mem-key--b {
  width: clamp(130px, 13vw, 190px);
  bottom: 5%;
  right: 2vw;
  opacity: 0.5;
  filter: drop-shadow(0 0 18px rgba(212,175,55,0.55)) drop-shadow(0 4px 28px rgba(212,175,55,0.3));
  animation: mem-key-float-b 9s ease-in-out infinite;
  animation-delay: -4s;
}

/* Key C — small, mid-right, blurred/depth effect */
.mem-key--c {
  width: clamp(90px, 9vw, 130px);
  top: 42%;
  right: 3vw;
  opacity: 0.28;
  filter: drop-shadow(0 0 12px rgba(151,185,212,0.35)) blur(2px);
  animation: mem-key-float-c 11s ease-in-out infinite;
  animation-delay: -6s;
}

@media (max-width: 768px) {
  .mem-key--a,
  .mem-key--c { display: none; }
  .mem-key--b {
    width: 110px;
    bottom: 1%;
    right: 4vw;
    top: auto;
    opacity: 0.35;
  }
}

/* ── Membership: currency label ── */
.pricing-card__price {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.pricing-card__currency {
  font-family: var(--font-sans);
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--vanta-sand);
  opacity: 0.65;
  line-height: 1;
  margin-bottom: 0.15em;
}

/* ── Membership: locked perks (Black Key only) ── */
.pricing-card__features-list li.pricing-card__feat--locked {
  opacity: 0.28;
  color: var(--vanta-mid);
  text-decoration: line-through;
  text-decoration-color: rgba(151,185,212,0.25);
}
.pricing-card__features-list li.pricing-card__feat--locked::before {
  background: rgba(151,185,212,0.15) !important;
}

/* ── Membership: initiation fee note ── */
.pricing-card__initiation {
  font-size: 0.72rem;
  color: rgba(151,185,212,0.45);
  letter-spacing: 0.04em;
  margin-bottom: 1.25rem;
  margin-top: -0.25rem;
}

/* ── Founding Membership card ── */
.pricing-card--founding {
  position: relative;
  background:
    linear-gradient(145deg,
      rgba(40, 28, 5, 0.97) 0%,
      rgba(65, 48, 10, 0.95) 25%,
      rgba(35, 24, 4, 0.97) 55%,
      rgba(55, 40, 8, 0.95) 80%,
      rgba(38, 26, 5, 0.97) 100%
    );
  border: 1px solid rgba(212,175,55,0.35);
  overflow: visible;
}
.pricing-card--founding::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(212,175,55,0.07) 0%, transparent 65%),
              radial-gradient(ellipse at 80% 80%, rgba(212,175,55,0.05) 0%, transparent 55%);
  pointer-events: none;
}
.pricing-card--founding:hover {
  border-color: rgba(212,175,55,0.6);
  box-shadow: 0 24px 64px rgba(212,175,55,0.15), 0 0 0 1px rgba(212,175,55,0.2);
}

.pricing-card--founding::before {
  content: 'LIMITED TIME';
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #8B6914, #D4AF37, #C9A227, #D4AF37, #8B6914);
  color: #1a1000;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  padding: 0.35rem 1rem;
  white-space: nowrap;
  z-index: 2;
}

.pricing-card__name--gold {
  color: #F0D882 !important;
}
.pricing-card__price--gold {
  color: #D4AF37 !important;
}

.pricing-card__initiation-waived {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1.25rem;
  margin-top: -0.25rem;
}
.pricing-card__initiation-waived-old {
  font-size: 0.72rem;
  color: rgba(212,175,55,0.4);
  text-decoration: line-through;
  text-decoration-color: rgba(212,175,55,0.35);
  letter-spacing: 0.03em;
}
.pricing-card__initiation-waived-tag {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #1a1000;
  background: linear-gradient(90deg, #C9A227, #D4AF37);
  padding: 0.15rem 0.55rem;
}

.pricing-card__features-list--gold li {
  color: rgba(240,216,130,0.75);
}
.pricing-card__features-list--gold li::before {
  background: rgba(212,175,55,0.5) !important;
}
.pricing-card__features-list--gold li.pricing-card__feat--locked {
  color: rgba(212,175,55,0.2);
}

.pricing-card__feat--gold-highlight {
  color: #D4AF37 !important;
  font-weight: 600;
}
.pricing-card__feat--gold-highlight::before {
  background: #D4AF37 !important;
}

.pricing-card__founding-note {
  font-size: 0.7rem;
  color: rgba(212,175,55,0.45);
  line-height: 1.6;
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
  font-style: italic;
}

/* =========================================================================
   BENEFITS CONTROLS — filter pills row + globe button
   ========================================================================= */
.benefits-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.benefits-controls #filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0;
}

/* Globe toggle button */
.globe-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 1.25rem 0.55rem 1rem;
  background: rgba(1, 26, 74, 0.18);
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 2rem;
  color: var(--vanta-gold, #D4AF37);
  font-family: var(--font-sans, 'DM Sans', sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.3s, border-color 0.3s, box-shadow 0.3s, transform 0.2s;
}

.globe-btn:hover {
  background: rgba(212, 175, 55, 0.12);
  border-color: rgba(212, 175, 55, 0.65);
  box-shadow: 0 0 22px rgba(212, 175, 55, 0.22), 0 2px 8px rgba(0,0,0,0.12);
  transform: translateY(-1px);
}

.globe-btn__icon {
  font-size: 0.92rem;
  animation: globe-btn-spin 7s linear infinite;
  transform-origin: center;
  display: inline-block;
}

.globe-btn:hover .globe-btn__icon {
  animation-duration: 2.5s;
  filter: drop-shadow(0 0 5px rgba(212,175,55,0.7));
}

@keyframes globe-btn-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* =========================================================================
   GLOBE OVERLAY — fullscreen 3D globe
   ========================================================================= */
.globe-overlay {
  position: fixed;
  inset: 0;
  z-index: 9500;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.globe-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

.globe-overlay__bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 55%, #020f2e 0%, #00060f 100%);
}

/* Close button */
.globe-overlay__close {
  position: absolute;
  top: 1.1rem;
  right: 1.3rem;
  z-index: 20;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.75);
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.globe-overlay__close:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}

/* Header */
.globe-overlay__header {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 2rem 2rem 0;
  pointer-events: none;
}

.globe-overlay__eyebrow {
  font-family: var(--font-sans, 'DM Sans', sans-serif);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #D4AF37;
  margin: 0 0 0.35rem;
}

.globe-overlay__title {
  font-family: var(--font-serif, 'STIX Two Text', serif);
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  font-weight: 500;
  color: #fff;
  margin: 0 0 0.4rem;
  letter-spacing: -0.01em;
}

.globe-overlay__sub {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.35);
  text-transform: uppercase;
  margin: 0;
}

/* Globe canvas container */
.globe-container {
  position: absolute;
  inset: 0;
  z-index: 2;
}

/* Loading state */
.globe-loading {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 15;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  opacity: 1;
  transition: opacity 0.4s;
}

.globe-loading.hidden {
  opacity: 0;
  pointer-events: none;
}

.globe-loading__ring {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid rgba(212, 175, 55, 0.15);
  border-top-color: #D4AF37;
  animation: globe-loading-spin 0.9s linear infinite;
}

@keyframes globe-loading-spin {
  to { transform: rotate(360deg); }
}

.globe-loading__text {
  font-family: var(--font-sans, 'DM Sans', sans-serif);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin: 0;
}

/* Globe HTML pins */
.globe-pin {
  position: relative;
  cursor: pointer;
  transform: translate(-50%, -50%);
  width: 14px;
  height: 14px;
  z-index: 5;
}

.globe-pin--multi {
  width: 20px;
  height: 20px;
}

.globe-pin__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 32%, #FBF0A4, #D4AF37 58%, #B8921E);
  border: 1.5px solid rgba(255, 255, 255, 0.5);
  box-shadow:
    0 0 0 2.5px rgba(212, 175, 55, 0.22),
    0 0 7px rgba(212, 175, 55, 0.9),
    0 0 18px rgba(212, 175, 55, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  position: relative;
  z-index: 2;
}

.globe-pin--multi .globe-pin__dot {
  width: 20px;
  height: 20px;
}

.globe-pin__count {
  font-size: 7.5px;
  font-weight: 800;
  color: rgba(0, 0, 0, 0.62);
  font-family: var(--font-sans, 'DM Sans', sans-serif);
  line-height: 1;
  letter-spacing: -0.01em;
}

.globe-pin:hover .globe-pin__dot,
.globe-pin:focus .globe-pin__dot {
  transform: scale(1.5);
  box-shadow:
    0 0 0 3.5px rgba(212, 175, 55, 0.3),
    0 0 14px rgba(212, 175, 55, 1),
    0 0 34px rgba(212, 175, 55, 0.65);
}

/* Tooltip — interactive list panel */
.globe-tooltip {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  z-index: 20;
  background: rgba(2, 12, 38, 0.94);
  border: 1px solid rgba(212, 175, 55, 0.32);
  border-radius: 14px;
  padding: 1rem 1.1rem 0.85rem;
  min-width: 220px;
  max-width: min(88vw, 340px);
  width: max-content;
  color: #fff;
  opacity: 0;
  transition: opacity 0.25s, transform 0.25s;
  pointer-events: none;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 10px 48px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(212,175,55,0.06);
}

.globe-tooltip.visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.globe-tooltip__city {
  font-family: var(--font-serif, 'STIX Two Text', serif);
  font-size: 0.98rem;
  font-weight: 500;
  color: #fff;
  margin: 0 0 0.6rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}

.globe-tooltip__list {
  list-style: none;
  padding: 0;
  margin: 0 0 0.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  max-height: 210px;
  overflow-y: auto;
}

.globe-tooltip__list::-webkit-scrollbar { width: 3px; }
.globe-tooltip__list::-webkit-scrollbar-track { background: transparent; }
.globe-tooltip__list::-webkit-scrollbar-thumb { background: rgba(212,175,55,0.3); border-radius: 4px; }

.globe-tooltip__item {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  padding: 0.45rem 0.65rem;
  border-radius: 8px;
  border: 1px solid rgba(212, 175, 55, 0.12);
  background: rgba(212, 175, 55, 0.04);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.globe-tooltip__item:hover {
  background: rgba(212, 175, 55, 0.13);
  border-color: rgba(212, 175, 55, 0.38);
}

.globe-tooltip__item-cat {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #D4AF37;
  line-height: 1;
}

.globe-tooltip__item-name {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
  line-height: 1.3;
}

.globe-tooltip__hint {
  font-size: 0.62rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.28);
  text-align: center;
  margin: 0;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* Responsive */
@media (max-width: 600px) {
  .benefits-controls {
    flex-direction: column;
    align-items: flex-start;
  }

  .globe-overlay__header {
    padding-top: 3rem;
  }

  .globe-overlay__title {
    font-size: 1.3rem;
  }

  .globe-tooltip {
    bottom: 1.2rem;
    max-width: 92vw;
    padding: 0.9rem 1.1rem;
  }
}

/* Ensure benefit drawer backdrop sits above globe overlay */
#benefit-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 10000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s;
}
#benefit-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

/* ── Globe button — laser border + glow ── */
.globe-btn {
  position: relative;
  background: transparent;
  border: none;
  overflow: hidden;
  isolation: isolate;
  animation: globe-btn-glow-pulse 3s ease-in-out infinite;
}

/* Rotating laser strip */
.globe-btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 320%;
  height: 320%;
  transform: translate(-50%, -50%) rotate(0deg);
  background: conic-gradient(
    transparent 0deg,
    transparent 320deg,
    rgba(212, 175, 55, 0.08) 335deg,
    rgba(212, 175, 55, 0.55) 348deg,
    #FFF8C8 353deg,
    #D4AF37 357deg,
    transparent 360deg
  );
  animation: globe-btn-laser-spin 2.8s linear infinite;
  z-index: 0;
  pointer-events: none;
}

/* Inner pill fill — sits above the laser, below the text */
.globe-btn::after {
  content: '';
  position: absolute;
  inset: 1.5px;
  background: rgba(1, 18, 52, 0.92);
  border-radius: calc(2rem - 1.5px);
  z-index: 1;
  pointer-events: none;
}

/* Text content above pseudo-elements */
.globe-btn__icon,
.globe-btn__label {
  position: relative;
  z-index: 2;
}

/* Outer breathing glow */
@keyframes globe-btn-glow-pulse {
  0%, 100% {
    box-shadow:
      0 0 8px  rgba(212, 175, 55, 0.28),
      0 0 22px rgba(212, 175, 55, 0.12),
      0 0 0 1px rgba(212, 175, 55, 0.18);
  }
  50% {
    box-shadow:
      0 0 16px rgba(212, 175, 55, 0.55),
      0 0 42px rgba(212, 175, 55, 0.22),
      0 0 0 1px rgba(212, 175, 55, 0.45);
  }
}

/* Laser spin */
@keyframes globe-btn-laser-spin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Hover: speed up laser + intensify glow */
.globe-btn:hover::before {
  animation-duration: 1.2s;
}
.globe-btn:hover {
  animation: none;
  box-shadow:
    0 0 20px rgba(212, 175, 55, 0.65),
    0 0 55px rgba(212, 175, 55, 0.28),
    0 0 0 1px rgba(212, 175, 55, 0.6);
  transform: translateY(-1px);
}

/* =========================================================================
   GLOBE BUTTON — laser border rewrite (mask-composite technique)
   Overrides the previous overflow:hidden approach which only swept, not traced
   ========================================================================= */
@property --globe-laser-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

/* Reset the old approach */
.globe-btn {
  background: transparent !important;
  border: none !important;
  overflow: visible !important;
  position: relative;
  isolation: isolate;
  animation: globe-btn-breathe 3s ease-in-out infinite;
}

/* Kill the old spinning rectangle — this is the NEW border layer */
.globe-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 2rem;
  padding: 1.5px;                        /* ← border thickness */
  background: conic-gradient(
    from var(--globe-laser-angle),
    transparent 0%,
    transparent 68%,
    rgba(212,175,55,0.05) 76%,
    rgba(212,175,55,0.5)  86%,
    #FFFBE8               91%,
    #D4AF37               94%,
    rgba(212,175,55,0.5)  97%,
    transparent           100%
  );
  /* Mask: show ONLY the padding (border) area, hide the interior */
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: globe-laser-travel 2.8s linear infinite;
  pointer-events: none;
  z-index: 1;
  top: -1px; left: -1px; right: -1px; bottom: -1px; /* 1px extra so it hugs the outside edge */
}

/* Dark pill fill behind the content */
.globe-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 2rem;
  background: rgba(1, 16, 48, 0.9);
  z-index: -1;
  pointer-events: none;
}

/* Keep content above pseudo-elements */
.globe-btn__icon,
.globe-btn__label {
  position: relative;
  z-index: 2;
}

@keyframes globe-laser-travel {
  to { --globe-laser-angle: 360deg; }
}

@keyframes globe-btn-breathe {
  0%, 100% {
    box-shadow: 0 0 8px rgba(212,175,55,0.3), 0 0 24px rgba(212,175,55,0.1);
  }
  50% {
    box-shadow: 0 0 18px rgba(212,175,55,0.6), 0 0 44px rgba(212,175,55,0.22);
  }
}

.globe-btn:hover {
  animation: none;
  transform: translateY(-1px);
  box-shadow: 0 0 22px rgba(212,175,55,0.7), 0 0 56px rgba(212,175,55,0.3);
}

.globe-btn:hover::before { animation-duration: 1.1s; }

/* ── Globe button: remove laser, restore clean pill ── */
.globe-btn {
  background: rgba(1, 26, 74, 0.18) !important;
  border: 1px solid rgba(212, 175, 55, 0.4) !important;
  overflow: visible !important;
  animation: none !important;
  box-shadow: none !important;
  isolation: auto !important;
}

.globe-btn::before,
.globe-btn::after {
  display: none !important;
}

.globe-btn__icon,
.globe-btn__label {
  position: static;
  z-index: auto;
}

.globe-btn:hover {
  background: rgba(212, 175, 55, 0.12) !important;
  border-color: rgba(212, 175, 55, 0.65) !important;
  box-shadow: 0 0 20px rgba(212, 175, 55, 0.2) !important;
  transform: translateY(-1px);
  animation: none !important;
}

/* ── Hero video ── */
.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* ── Events grid (replaces carousels) ── */
.ev-grid-header {
  margin-bottom: 2rem;
}

/* Badge on event benefit-cards */
.ev-grid-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  background: rgba(1, 81, 160, 0.85);
  color: #fff;
  padding: 0.25rem 0.6rem;
  border-radius: 2rem;
  backdrop-filter: blur(4px);
  pointer-events: none;
  z-index: 3;
}

.ev-grid-badge--past {
  background: rgba(80, 80, 80, 0.75);
}

/* Mobile: 1 col for event grids */
@media (max-width: 768px) {
  #upcoming-grid,
  #past-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================================
   FOUNDING MEMBERSHIP BANNER
   ========================================================================= */
.founding-banner {
  position: relative;
  margin-bottom: 3rem;
  border-radius: 16px;
  border: 1px solid rgba(212, 175, 55, 0.4);
  background: linear-gradient(135deg, rgba(212,175,55,0.07) 0%, rgba(1,26,74,0.3) 60%, rgba(212,175,55,0.05) 100%);
  overflow: hidden;
  padding: 2.5rem 2.75rem;
}

/* Ambient glow */
.founding-banner::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,55,0.12) 0%, transparent 70%);
  pointer-events: none;
}

.founding-banner__badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #1a0f00;
  background: linear-gradient(90deg, #C9A227, #D4AF37);
  padding: 0.22rem 0.75rem;
  border-radius: 2rem;
  margin-bottom: 1.5rem;
}

.founding-banner__body {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 2rem 3rem;
  align-items: start;
}

.founding-banner__eyebrow {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #D4AF37;
  margin: 0 0 0.5rem;
}

.founding-banner__title {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 500;
  color: var(--vanta-dust);
  margin: 0 0 0.85rem;
  line-height: 1.25;
}

.founding-banner__sub {
  font-size: 0.88rem;
  color: rgba(242, 237, 233, 0.62);
  line-height: 1.75;
  margin: 0;
}

.founding-banner__sub em {
  font-style: italic;
  color: rgba(242, 237, 233, 0.85);
}

.founding-banner__perks {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  padding-top: 0.15rem;
}

.founding-banner__perk {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: rgba(242, 237, 233, 0.75);
  line-height: 1.5;
}

.founding-banner__perk strong {
  color: rgba(242, 237, 233, 0.95);
}

.founding-banner__perk-icon {
  color: #D4AF37;
  font-size: 0.65rem;
  flex-shrink: 0;
  margin-top: 0.3rem;
}

.founding-banner__cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  padding-top: 0.15rem;
  white-space: nowrap;
}

/* Responsive */
@media (max-width: 1100px) {
  .founding-banner__body {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
  }
  .founding-banner__cta {
    grid-column: span 2;
    flex-direction: row;
    align-items: center;
  }
}

@media (max-width: 700px) {
  .founding-banner {
    padding: 1.75rem 1.5rem;
  }
  .founding-banner__body {
    grid-template-columns: 1fr;
  }
  .founding-banner__cta {
    grid-column: 1;
  }
}

/* ── Placeholder for missing images ── */
img[src="images/placeholder.svg"],
img[src=""] {
  background: linear-gradient(135deg, var(--vanta-abyss) 0%, var(--vanta-midnight) 100%);
  display: block;
}

/* ── Homepage hero — refined layout overrides ── */
.hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.hero__eyebrow {
  font-family: var(--font-sans);
  font-size: 0.62rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(151, 185, 212, 0.65);
  margin-bottom: 1.75rem;
}

.hero__rule {
  width: 48px;
  height: 1px;
  background: rgba(151, 185, 212, 0.35);
  margin: 1.75rem auto;
  flex-shrink: 0;
}

.page-home .hero__location {
  font-size: 0.62rem;
  letter-spacing: 0.26em;
  color: rgba(151, 185, 212, 0.6);
  margin-bottom: 1.75rem;
  order: -1;
}

.page-home .hero__title {
  font-family: var(--font-serif);
  font-size: clamp(0.95rem, 1.4vw, 1.5rem);
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.05em;
  color: rgba(242, 237, 233, 0.6);
  line-height: 1.5;
  margin: 0;
}


/* ── Benefit booking form (drawer) — VANTA palette ─────────────── */
.vbk {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.vbk__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.vbk__label {
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--vanta-skies);
  font-weight: 500;
}
.vbk__input {
  width: 100%;
  padding: 0.78rem 0.95rem;
  background: rgba(151, 185, 212, 0.05);
  border: 1px solid var(--vanta-border);
  border-radius: 4px;
  color: var(--vanta-dust);
  font-family: inherit;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.vbk__input::placeholder { color: rgba(201, 198, 191, 0.45); letter-spacing: 0.04em; }
.vbk__input:hover { border-color: rgba(151, 185, 212, 0.35); }
.vbk__input:focus {
  outline: none;
  border-color: var(--vanta-skies);
  background: rgba(151, 185, 212, 0.08);
  box-shadow: 0 0 0 3px rgba(151, 185, 212, 0.12);
}
.vbk__input[type="date"] { color-scheme: dark; }

.vbk__submit {
  margin-top: 0.6rem;
  padding: 0.95rem 1rem;
  background: var(--vanta-azure);
  border: 1px solid var(--vanta-azure);
  border-radius: 4px;
  color: var(--vanta-dust);
  font-family: inherit;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s, opacity 0.2s;
  box-shadow: 0 6px 22px rgba(1, 81, 160, 0.28);
}
.vbk__submit:hover {
  background: #0469cc;
  border-color: #0469cc;
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(1, 81, 160, 0.4);
}
.vbk__submit:active { transform: translateY(0); }
.vbk__submit:disabled { opacity: 0.4; cursor: not-allowed; transform: none; box-shadow: none; }

.vbk__error {
  font-size: 0.78rem;
  color: #ff7a7a;
  background: rgba(255, 122, 122, 0.08);
  border: 1px solid rgba(255, 122, 122, 0.25);
  border-radius: 4px;
  padding: 0.6rem 0.8rem;
  letter-spacing: 0.02em;
}

.vbk__success {
  margin-top: 0.5rem;
  padding: 1.6rem 1.1rem;
  text-align: center;
  border: 1px solid rgba(151, 185, 212, 0.25);
  background: linear-gradient(180deg, rgba(151,185,212,0.08), rgba(28, 37, 85, 0.15));
  border-radius: 6px;
  animation: vbk-fadein 0.4s ease-out;
}
@keyframes vbk-fadein {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.vbk__success-icon {
  width: 48px; height: 48px;
  margin: 0 auto 0.85rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(151, 185, 212, 0.15);
  border: 1px solid rgba(151, 185, 212, 0.35);
  color: var(--vanta-skies);
  font-size: 1.4rem;
}
.vbk__success-title {
  font-family: var(--font-serif, 'STIX Two Text', 'Cormorant Garamond', serif);
  color: var(--vanta-dust);
  font-size: 1.3rem;
  letter-spacing: 0.01em;
  margin: 0 0 0.5rem;
}
.vbk__success-text {
  font-size: 0.82rem;
  color: var(--vanta-sand);
  line-height: 1.6;
  margin: 0;
}

/* Event signup specific extras (uses .vbk* base styles) */
.vbk__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%2397B9D4' stroke-width='1.5' stroke-linecap='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.95rem center;
  padding-right: 2.4rem;
}
.vbk__select option { background: var(--vanta-midnight); color: var(--vanta-dust); }

.vbk__radio-row {
  display: flex;
  gap: 0.5rem;
}
.vbk__radio {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 0.9rem;
  background: rgba(151, 185, 212, 0.05);
  border: 1px solid var(--vanta-border);
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  color: var(--vanta-sand);
  transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.vbk__radio input { position: absolute; opacity: 0; pointer-events: none; }
.vbk__radio:hover { border-color: rgba(151, 185, 212, 0.35); }
.vbk__radio:has(input:checked) {
  border-color: var(--vanta-skies);
  background: rgba(151, 185, 212, 0.15);
  color: var(--vanta-dust);
  font-weight: 500;
}

.vbk__guest-list { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
.vbk__guest-list .vbk__input { font-size: 0.88rem; padding: 0.65rem 0.85rem; }

.ev-seats {
  margin-bottom: 1.25rem;
  padding: 0.75rem 0.95rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--vanta-sand);
  background: rgba(151, 185, 212, 0.06);
  border: 1px solid var(--vanta-border);
  border-radius: 4px;
}
.ev-seats strong { color: var(--vanta-skies); font-weight: 600; }
.ev-seats--full { color: #ff7a7a; border-color: rgba(255,122,122,0.25); background: rgba(255,122,122,0.08); }
