/* ==========================================================================
   GLOBAL HONOR CLUB — design system v2 (light)
   Ivory · Oxblood · Sovereign gold
   ========================================================================== */
:root{
  --paper:#ede3d0;        /* page */
  --ivory:#ede3d0;        /* warm band */
  --stone:#e6dfd1;
  --slate:#cbb187;        /* band colour — set per palette below (default: champagne) */
  --slate-deep:#c2a67a;
  --ink:#2a2925;          /* text */
  --muted:#6f6a60;
  --on-slate:#2a2925;
  --muted-slate:#4a4234;
  --gold:#7d653a;         /* olive sovereign gold (AA on paper for large text) */
  --gold-lt:#c8ad76;
  --gold-wash:rgba(140,116,68,.08);
  --rule:rgba(42,41,37,.14);
  --rule-slate:rgba(42,41,37,.22);
  --band-accent:#5a4522;  /* gold on band */
  --band-strong:#2a2925;  /* headline colour on band */
  --btn-fill:#2a2925;     /* button hover fill on paper */
  --band-btn-fill:#2a2925;--band-btn-text:#fbf9f5;--band-line:rgba(42,41,37,.35);
  --lp-1:#f7f1e4;--lp-2:#ebdfc6;--lp-3:#d6c29b;--l-stroke:#a88a52;--l-name:#5e4c2c;--l-cities:#8c7444;--l-seam:rgba(140,116,68,.35);
  --serif:"Cormorant Garamond","Cormorant",Didot,Georgia,serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --gutter:clamp(20px,5vw,80px);
  --radius:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold-lt);color:var(--ink)}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.6s;animation-timing-function:cubic-bezier(.22,1,.36,1)}

/* ---------- type ---------- */
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0}
.display{font-family:var(--serif);font-weight:300;letter-spacing:-.01em;line-height:1.08;margin:0}
.caps{text-transform:uppercase;letter-spacing:.08em}
.h1{font-size:clamp(44px,6.6vw,104px)}
.h2{font-size:clamp(36px,4.8vw,72px)}
.h3{font-size:clamp(26px,2.8vw,40px)}
.display em,.lede em{font-style:normal;color:var(--gold)}
.lede{font-family:var(--serif);font-weight:300;font-size:clamp(22px,2.3vw,34px);line-height:1.38;letter-spacing:-.005em;margin:0}
.body{font-size:15.5px;line-height:1.9;color:var(--muted);max-width:56ch}
.center{text-align:center;margin-left:auto;margin-right:auto}
.on-slate{background:var(--slate);color:var(--on-slate)}
.on-slate .body{color:var(--muted-slate)}
.on-slate .eyebrow,.on-slate .display em,.on-slate .lede em{color:var(--gold-lt)}
.on-ivory{background:var(--ivory)}
.on-dark{color:#fff}
.on-dark .eyebrow{color:var(--gold-lt)}

/* line-split reveal (GSAP SplitText adds .line wrappers) */
.split-line{overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}

/* ---------- buttons (Nexus-style compact) ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.8em;font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.26em;
  text-transform:uppercase;padding:13px 26px;border-radius:8px;background:var(--gold);color:#fff;border:1px solid var(--gold);cursor:pointer;
  overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s}
.btn::before{content:"";position:absolute;inset:0;background:var(--btn-fill);transform:translateY(101%);transition:transform .6s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
.btn:hover{border-color:var(--btn-fill)}
.btn--line{background:transparent;color:var(--gold)}
.btn--line::before{background:var(--gold)}
.btn--line:hover{color:#fff;border-color:var(--gold)}
.on-slate .btn::before,.on-dark .btn::before{background:#fff}
.on-slate .btn:hover,.on-dark .btn:hover{color:var(--slate);border-color:#fff}
.on-slate .btn--line,.on-dark .btn--line{color:#fff;border-color:rgba(255,255,255,.5)}
.link{display:inline-flex;gap:.7em;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);padding-bottom:6px;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .6s var(--ease)}
.link:hover{background-size:0 1px;background-position:100% 100%}
.arrow{display:inline-block;transition:transform .5s var(--ease)}
a:hover .arrow,.btn:hover .arrow{transform:translateX(6px)}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:22px var(--gutter);color:#fff;transition:background .6s var(--ease),color .6s var(--ease),padding .6s var(--ease),box-shadow .6s}
.hdr.is-solid{background:rgba(237,227,208,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink);padding-top:14px;padding-bottom:14px;box-shadow:0 1px 0 var(--rule)}
.hdr.is-hidden{transform:translateY(-100%)}
.hdr{transition:transform .6s var(--ease),background .6s var(--ease),color .6s var(--ease),padding .6s var(--ease),box-shadow .6s}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}
.brand img{width:34px;height:auto}
.brand span{font-family:var(--serif);font-size:15px;font-weight:400;letter-spacing:.3em;text-transform:uppercase;white-space:nowrap}
.nav{display:flex;gap:clamp(18px,2.2vw,36px)}
.nav a{font-size:11px;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;opacity:.86;position:relative;padding:6px 0;transition:opacity .4s,color .4s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-lt);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.nav a:hover,.nav a[aria-current]{opacity:1}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.hdr.is-solid .nav a::after{background:var(--gold)}
.hdr-cta{display:flex;align-items:center;gap:22px;flex-shrink:0}
.hdr-cta .login{font-size:11px;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;opacity:.8}
.hdr-cta .login:hover{opacity:1}
.hdr-cta .btn{padding:10px 18px;font-size:10px;white-space:nowrap;background:transparent;color:inherit;border-color:var(--gold-lt)}
.hdr-cta .btn::before{background:var(--gold)}
.hdr-cta .btn:hover{color:#fff;border-color:var(--gold)}
.hdr.is-solid .hdr-cta .btn{border-color:var(--gold);color:var(--gold)}
.hdr.is-solid .hdr-cta .btn:hover{color:#fff}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer;color:inherit}
.burger i{display:block;width:24px;height:1px;background:currentColor;margin:6px 0;transition:transform .4s}
.drawer{position:fixed;inset:0;z-index:59;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;justify-content:center;
  padding:0 var(--gutter);gap:18px;opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
.drawer a{font-family:var(--serif);font-size:34px;font-weight:300}
.drawer .btn{align-self:flex-start;margin-top:16px;font-family:var(--sans);font-size:11px}
.drawer small a{font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
body.menu-open .drawer{opacity:1;pointer-events:auto}
body.menu-open .hdr{color:var(--ink)}
body.menu-open .burger i:first-child{transform:translateY(3.5px) rotate(45deg)}
body.menu-open .burger i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media (max-width:1240px){.nav{display:none}.burger{display:block}}
@media (max-width:760px){.hdr-cta .btn,.hdr-cta .login{display:none}.brand span{font-size:12px;letter-spacing:.22em}}

/* ---------- sections ---------- */
.sec{position:relative;padding:clamp(100px,13vw,190px) var(--gutter)}
.wrap{max-width:1280px;margin:0 auto}
.rule{height:1px;background:var(--rule);border:0;margin:0}
.ornament{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--gold)}
.ornament::before,.ornament::after{content:"";width:56px;height:1px;background:currentColor;opacity:.55}
.ornament b{width:5px;height:5px;transform:rotate(45deg);border:1px solid currentColor}

/* CSS fallback reveal (used when GSAP is unavailable / reduced motion) */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="fade"]{transform:none}
[data-delay="1"]{transition-delay:.12s}[data-delay="2"]{transition-delay:.24s}[data-delay="3"]{transition-delay:.36s}[data-delay="4"]{transition-delay:.48s}

/* ---------- media ---------- */
.media{position:relative;overflow:hidden;background:var(--stone)}
.media img,.media video{width:100%;height:100%;object-fit:cover}
.media.round{border-radius:var(--radius)}
.reveal-img{clip-path:inset(0 0 100% 0)}
.reveal-img.in{clip-path:inset(0 0 0 0);transition:clip-path 1.4s var(--ease)}
.reveal-img img{transform:scale(1.15);transition:transform 2s var(--ease)}
.reveal-img.in img{transform:none}

/* ---------- page hero (subpages) ---------- */
.phero{position:relative;min-height:82vh;display:flex;align-items:flex-end;padding:0 var(--gutter) clamp(64px,8vw,110px);color:#fff;overflow:hidden}
.phero .media{position:absolute;inset:0;background:var(--slate)}
.phero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,30,.45),rgba(20,22,30,.08) 40%,rgba(20,22,30,.62))}
.phero .wrap{position:relative;z-index:2;width:100%}
.phero .eyebrow{color:var(--gold-lt)}
.phero .display{margin:18px 0 22px}
.phero .lede{color:rgba(255,255,255,.88)}

/* ---------- footer ---------- */
.ftr{background:var(--slate-deep);color:var(--muted-slate);padding:80px var(--gutter) 40px;font-size:13px}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;max-width:1280px;margin:0 auto}
.ftr h4{font-family:var(--sans);font-weight:400;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-lt);margin:0 0 18px}
.ftr a:hover{color:#fff}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ftr .brand{margin-bottom:20px;color:#fff}
.ftr-base{max-width:1280px;margin:56px auto 0;padding-top:24px;border-top:1px solid var(--rule-slate);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11px;letter-spacing:.06em}
.ftr-sep{margin:0 10px;opacity:.5}
.ftr-credit{opacity:.75}
@media (max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr-grid{grid-template-columns:1fr}}

/* ---------- forms ---------- */
.field{display:grid;gap:8px;margin-bottom:30px}
.field label{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.field input,.field textarea,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--rule);color:var(--ink);
  font-family:var(--serif);font-size:22px;font-weight:300;padding:8px 0 12px;border-radius:0;outline:none;transition:border-color .4s}
.field textarea{min-height:140px;resize:vertical;line-height:1.5}
.field input:focus,.field textarea:focus{border-color:var(--gold)}
.field input::placeholder,.field textarea::placeholder{color:rgba(42,41,37,.3)}

/* ---------- preloader: drawn emblem + door-split exit ---------- */
.loader{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:default}
.l-panel{position:absolute;top:0;bottom:0;width:50.5%;background:
  radial-gradient(ellipse 120% 90% at 100% 50%,var(--lp-1) 0%,var(--lp-2) 55%,var(--lp-3) 100%)}
.l-panel--l{left:0}
.l-panel--r{right:0;background:radial-gradient(ellipse 120% 90% at 0% 50%,var(--lp-1) 0%,var(--lp-2) 55%,var(--lp-3) 100%)}
.l-panel::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--l-seam) 30%,var(--l-seam) 70%,transparent);opacity:0}
.l-panel--l::after{right:0}.l-panel--r::after{left:0}
.loader.seam .l-panel::after{opacity:1;transition:opacity 1.2s}
.l-stage{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.l-emblem{width:clamp(92px,8.5vw,128px);height:auto;overflow:visible}
.l-p{fill:url(#lgGold);fill-opacity:0;stroke:var(--l-stroke);stroke-width:1.1px;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}
.l-name{margin:34px 0 0;font-family:var(--serif);font-weight:400;font-size:clamp(17px,1.7vw,24px);letter-spacing:.42em;padding-left:.42em;color:var(--l-name);white-space:nowrap}
.l-name span{display:inline-block;opacity:0}
.l-rule{display:block;width:0;height:1px;margin:22px auto 18px;background:linear-gradient(90deg,transparent,#c8ad76,transparent)}
.l-cities{margin:0;font-family:var(--sans);font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--l-cities);opacity:0}
html.no-loader .loader{display:none}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}[data-reveal]{opacity:1;transform:none}.reveal-img{clip-path:none}.reveal-img img{transform:none}.loader{display:none}}

/* ---------- palettes: band colour replaces the old oxblood ----------
   default = champagne (light). Alternatives via <html data-palette="midnight|green">  */
html[data-palette="midnight"]{--slate:#1e2734;--slate-deep:#161d27;--on-slate:#eef0f3;--muted-slate:#a9b2bf;--rule-slate:rgba(238,240,243,.16);
  --band-accent:#c8ad76;--band-strong:#fff;--btn-fill:#1e2734;--band-btn-fill:#fff;--band-btn-text:#1e2734;--band-line:rgba(255,255,255,.5);
  --lp-1:#2a3546;--lp-2:#1b2330;--lp-3:#0f141c;--l-stroke:#d8bd85;--l-name:#f1e3c4;--l-cities:#bfa57a;--l-seam:rgba(216,189,133,.35)}
html[data-palette="green"]{--slate:#213129;--slate-deep:#18241e;--on-slate:#f1efe6;--muted-slate:#b6c0b6;--rule-slate:rgba(241,239,230,.16);
  --band-accent:#c8ad76;--band-strong:#fff;--btn-fill:#213129;--band-btn-fill:#fff;--band-btn-text:#213129;--band-line:rgba(255,255,255,.5);
  --lp-1:#2c4036;--lp-2:#1d2b24;--lp-3:#111a15;--l-stroke:#d8bd85;--l-name:#f1e3c4;--l-cities:#bfa57a;--l-seam:rgba(216,189,133,.35)}
/* inside bands, "light gold" and white text follow the palette */
.on-slate,#circles,.stack-card:nth-child(even),.ftr,.gate{--gold-lt:var(--band-accent)}
.on-slate{background:radial-gradient(ellipse 90% 70% at 15% 0%,rgba(255,244,220,.28),transparent 60%),var(--slate)}
.on-slate .btn::before{background:var(--band-btn-fill)}
.on-slate .btn:hover{color:var(--band-btn-text);border-color:var(--band-btn-fill)}
.on-slate .btn--line{color:var(--band-strong);border-color:var(--band-line)}
.on-slate .rotator span,.on-slate .map .city text,.on-slate .display,.ftr .brand,.ftr a:hover{color:var(--band-strong);fill:var(--band-strong)}
.hero-btn:hover{color:var(--ink)}
:root{--map-land:rgba(42,41,37,.13)}
html[data-palette="midnight"],html[data-palette="green"]{--map-land:rgba(238,240,244,.16)}
.on-slate .map .land{fill:var(--map-land)}
#circles{background:radial-gradient(ellipse 90% 70% at 15% 0%,rgba(255,244,220,.28),transparent 60%),var(--slate)}
#circles .circle-card{box-shadow:0 24px 60px rgba(60,48,30,.08)}
.pal-switch{position:fixed;left:16px;bottom:16px;z-index:90;display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:999px;background:rgba(251,249,245,.92);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 30px rgba(0,0,0,.12);font-family:var(--sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.pal-switch>span{padding:0 8px 0 6px;color:var(--muted)}
.pal-switch button{display:flex;align-items:center;gap:6px;border:0;background:none;padding:6px 10px;border-radius:999px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.pal-switch button i{width:12px;height:12px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.pal-switch button.on{background:var(--ink);color:#fbf9f5}
@media (max-width:560px){.pal-switch button{padding:6px 7px}.pal-switch>span{display:none}}
.ftr .brand img{filter:brightness(.42) saturate(1.3)}

/* ---------- one-to-one consult block (home + club) ---------- */
.leader-solo{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:clamp(30px,7vw,120px);align-items:center}
.leader-solo figure{margin:0}
.leader-solo .media{aspect-ratio:4/5}
.leader-solo figcaption{margin-top:16px}
.leader-text .h2{margin:14px 0 24px}
@media (max-width:760px){.leader-solo{grid-template-columns:1fr}.leader-solo figure{max-width:420px;order:2}}
.contact-cta{display:flex;gap:12px;flex-wrap:wrap}
.leader-solo.consult .media{aspect-ratio:4/3}
.leader-solo.consult{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.consult-facts{list-style:none;margin:30px 0 0;padding:22px 0 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.consult-facts b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.8vw,26px);color:var(--ink)}
.consult-facts span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
@media (max-width:760px){.leader-solo.consult{grid-template-columns:1fr}.leader-solo.consult figure{max-width:none;order:0}.consult-facts{grid-template-columns:1fr 1fr 1fr;gap:10px}}
