:root{
  --color-deep-ocean:#093554;
  --color-lagoon:#23A09A;
  --color-emerald:#46A18B;
  --color-gold:#CBA55D;
  --color-gold-deep:#CBA55D; /* using the lighter gold across the board; deep was #9A7528 */
  --color-clay:#E28F26;   /* clay retired from the official palette → Sunny Orange (warm CTA) */
  --color-sage:#A9B8A3;
  --color-ivory:#F6F0E8;
  --ocean-2:#0a2c46;
  --ocean-3:#071d30;
  --accent-ink:#093554;   /* text on the accent colour (gold) */
  --hero-top:#093554;     /* hero gradient highlight */

  --font-display:'Sora',system-ui,sans-serif;
  --font-accent:'Fraunces',Georgia,serif;
  --font-body:'Inter',system-ui,sans-serif;

  --maxw:1280px;
  --space:clamp(72px,10vw,140px);
}

/* ===== switchable brand themes (location skins) ===== */
.theme-forest{
  --color-deep-ocean:#143a2e; --ocean-2:#0f2e25; --ocean-3:#0a241c;
  --color-gold:#46A18B; --accent-ink:#07261d; --color-gold-deep:#46A18B;
  --color-lagoon:#23A09A; --color-emerald:#46A18B; --hero-top:#1f5a49;
}
.theme-golden{
  --color-deep-ocean:#2c2316; --ocean-2:#231a10; --ocean-3:#19130a;
  --color-gold:#CBA55D; --accent-ink:#26190b; --color-gold-deep:#CBA55D;
  --color-lagoon:#CBA55D; --hero-top:#5e4628;
}
.theme-lagoon{
  --color-deep-ocean:#0b3236; --ocean-2:#082a2e; --ocean-3:#061f22;
  --color-gold:#23A09A; --accent-ink:#04211f; --color-gold-deep:#23A09A;
  --color-lagoon:#23A09A; --hero-top:#176470;
}
.theme-switch{position:fixed;left:18px;bottom:18px;z-index:70;display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:32px;background:rgba(7,29,48,.72);backdrop-filter:blur(8px);border:1px solid rgba(245,241,232,.16);box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}
.ts-label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,241,232,.6);margin-right:2px}
.ts-dot{width:22px;height:22px;border-radius:50%;border:2px solid transparent;background:var(--sw);cursor:none;transition:transform .2s,border-color .2s;padding:0}
.ts-dot:hover{transform:scale(1.18)}
.ts-dot.active{border-color:#fff}
@media (max-width:600px){.theme-switch{left:10px;bottom:10px;padding:7px 10px;gap:7px}.ts-label{display:none}}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
/* keyboard-only focus rings (mouse users don't see them) */
*:focus{outline:none}
*:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px;border-radius:6px}
/* skip-to-content link for screen-reader / keyboard users */
.skip{position:fixed;top:-50px;left:14px;z-index:200;padding:10px 16px;border-radius:24px;background:var(--color-deep-ocean);color:var(--color-gold);font-family:var(--font-body);font-weight:600;font-size:14px;text-decoration:none;transition:top .25s ease}
.skip:focus,.skip:focus-visible{top:14px;outline:2px solid var(--color-gold);outline-offset:2px}
body{
  font-family:var(--font-body);
  color:var(--color-ivory);
  background:var(--color-ocean-3,#071d30);
  background:var(--ocean-3);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--color-gold);color:var(--color-deep-ocean)}

/* film grain overlay */
body::after{
  content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* preloader */
.preloader{position:fixed;inset:0;z-index:10000;background:radial-gradient(130% 100% at 50% 35%,#15506b 0%,var(--color-deep-ocean) 50%,var(--ocean-3) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;transition:opacity .9s ease,visibility .9s}
.preloader.done{opacity:0;visibility:hidden;pointer-events:none}
.pre-mark{width:88px;height:88px;animation:preFloat 2.6s ease-in-out infinite;filter:drop-shadow(0 8px 30px rgba(31,158,154,.4))}
@keyframes preFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.pre-title{font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.42em;color:var(--color-gold);text-transform:uppercase}
.pre-bar{width:170px;height:2px;background:rgba(200,161,90,.18);border-radius:2px;overflow:hidden}
.pre-bar span{display:block;height:100%;width:38%;background:var(--color-gold);border-radius:2px;animation:preLoad 1.25s ease-in-out infinite}
@keyframes preLoad{0%{transform:translateX(-110%)}100%{transform:translateX(360%)}}
@media (prefers-reduced-motion:reduce){.pre-mark{animation:none}.pre-bar span{animation:none;width:100%}}

/* custom cursor */
/* simple gold dot cursor — calm, premium, never obstructs */
.cursor{position:fixed;top:0;left:0;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--color-gold);box-shadow:0 0 0 1px rgba(245,241,232,.4),0 0 18px rgba(200,161,90,.35);pointer-events:none;z-index:9999;transition:width .25s cubic-bezier(.16,1,.3,1),height .25s cubic-bezier(.16,1,.3,1),margin .25s cubic-bezier(.16,1,.3,1),background .25s,box-shadow .25s,opacity .25s;will-change:transform}
.cursor.is-big{width:20px;height:20px;margin:-10px 0 0 -10px;background:rgba(200,161,90,.45);box-shadow:0 0 0 1px var(--color-gold),0 0 32px rgba(200,161,90,.55)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.narrow{max-width:780px}
.center{text-align:center}

h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.04;letter-spacing:-0.025em}
h2{font-size:clamp(30px,4.4vw,50px);margin-bottom:18px}
h3{font-size:22px;letter-spacing:-0.01em}

.eyebrow{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--color-lagoon);margin-bottom:18px;display:inline-flex;align-items:center;gap:10px}
.eyebrow-dark{color:var(--color-gold-deep)}
.eyebrow-clay{color:var(--color-clay)}
.accent-text,.accent-italic{color:var(--color-gold)}
.accent-italic{font-family:var(--font-accent);font-style:italic;font-weight:500}
.lead{font-size:clamp(15px,1.6vw,18.5px);max-width:60ch;margin:0 auto;color:rgba(245,241,232,.78)}
.section-light .lead{color:var(--ink-soft)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:14px;letter-spacing:.01em;padding:14px 28px;border-radius:40px;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,background .25s,color .25s;cursor:none;border:1px solid transparent}
.btn:hover{transform:translateY(-3px)}
.btn-sm{padding:10px 18px;font-size:13px}
.btn-gold{background:var(--color-gold);color:var(--accent-ink);box-shadow:0 10px 34px -10px rgba(200,161,90,.7)}
.btn-gold:hover{box-shadow:0 16px 44px -10px rgba(200,161,90,.85)}
.btn-deep{background:var(--color-deep-ocean);color:var(--color-ivory)}
.btn-clay{background:var(--color-clay);color:#fff;box-shadow:0 10px 34px -10px rgba(193,124,93,.7)}
.btn-outline{border-color:rgba(200,161,90,.55);color:var(--color-gold);background:rgba(200,161,90,.04);backdrop-filter:blur(2px)}
.btn-outline:hover{background:rgba(200,161,90,.14)}
.btn-ghost{border-color:var(--color-gold);color:var(--color-gold);background:rgba(200,161,90,.06)}
.btn-ghost:hover{background:var(--color-gold);color:var(--accent-ink);border-color:var(--color-gold)}
.btn-ghost-dark{border-color:rgba(14,53,83,.3);color:var(--color-deep-ocean)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;background:linear-gradient(rgba(7,29,48,.85),rgba(7,29,48,0))}
.brand{display:flex;align-items:center;gap:11px;cursor:none}
.brand-mark{width:40px;height:40px}
.brand-text{display:flex;flex-direction:column;font-family:var(--font-display);line-height:1}
.brand-text b{font-size:13px;font-weight:700;letter-spacing:.13em;color:var(--color-gold)}
.brand-text span{font-size:10px;letter-spacing:.36em;color:var(--color-ivory)}
.nav-links{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:500}
/* hide secondary nav links until the user scrolls (let the hero breathe) */
.nav:not(.is-solid) .nav-links > a:not(.btn){opacity:0;transform:translateY(-6px);pointer-events:none}
.nav-links > a:not(.btn){transition:opacity .45s ease,transform .45s ease}
.nav.is-solid .nav-links > a:not(.btn){opacity:1;transform:none;pointer-events:auto}
.nav-links a:not(.btn){color:rgba(245,241,232,.82);cursor:none;position:relative}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--color-gold);transition:width .3s ease}
.nav-links a:not(.btn):hover::after{width:100%}
.m-br{display:none}
.burger{display:none;flex-direction:column;justify-content:space-between;align-items:flex-end;width:26px;height:12px;background:none;border:0;padding:0;cursor:none;z-index:60}
.burger span{display:block;height:1.5px;background:var(--color-ivory);border-radius:2px;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .25s,width .35s}
.burger span:nth-child(1){width:100%}
.burger span:nth-child(2){width:70%}
.burger span:nth-child(3){width:85%}
.burger:hover span{width:100%}
body.menu-open .burger span{width:100%}
body.menu-open .burger span:nth-child(1){transform:translateY(5.25px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-5.25px) rotate(-45deg)}
.float-join{display:none;position:fixed;right:18px;bottom:18px;z-index:58;border:none;cursor:none;background:var(--color-gold);color:var(--color-deep-ocean);font-family:var(--font-body);font-weight:600;font-size:14px;padding:13px 26px;border-radius:40px;box-shadow:0 12px 30px -8px rgba(0,0,0,.55);opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .4s,transform .4s,visibility .4s}
.float-join.show{opacity:1;visibility:visible;transform:none}

/* ===== HERO ===== */
.hero{position:relative;isolation:isolate;height:100vh;min-height:640px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:radial-gradient(130% 100% at 50% 20%,var(--hero-top) 0%,var(--color-deep-ocean) 45%,var(--ocean-3) 100%)}

.stars{position:absolute;inset:-50%;background-image:radial-gradient(1px 1px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 130px 80px,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 220px 150px,#fff,transparent),radial-gradient(1px 1px at 320px 60px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 400px 200px,#fff,transparent);background-size:420px 320px;opacity:.5;animation:twinkle 6s ease-in-out infinite}
.stars-2{background-size:300px 260px;opacity:.28;animation-duration:9s;animation-delay:-3s}
@keyframes twinkle{0%,100%{opacity:.5}50%{opacity:.25}}

.hero-aura{position:absolute;z-index:0;width:1080px;height:1080px;max-width:135vw;max-height:135vw;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(47,108,143,.34) 0%,rgba(31,93,140,.17) 32%,rgba(20,55,90,.07) 54%,rgba(20,55,90,.02) 70%,transparent 84%);pointer-events:none}
.hero-band{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none;perspective:1150px;perspective-origin:50% 48%;opacity:.82;filter:blur(3px) saturate(.92) brightness(.82)}
.cyl{position:absolute;left:50%;top:50%;transform-style:preserve-3d}
.col{position:absolute;left:0;top:0;width:215px;display:flex;flex-direction:column;gap:8px;transform-origin:center center}
.b-tile{position:relative;flex:1;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px -22px rgba(0,0,0,.55)}
.b-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(14,53,83,.24),rgba(7,29,48,.42))}
.b-layer{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.3s ease}
.hero-globe{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:min(720px,94vw);height:min(720px,94vw);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 68%,rgba(0,0,0,.55) 82%,transparent 95%);
  mask-image:radial-gradient(circle at 50% 50%,#000 68%,rgba(0,0,0,.55) 82%,transparent 95%)}
.hero-globe canvas{display:block;filter:brightness(.95) contrast(1.04) saturate(.62) sepia(.42) hue-rotate(173deg)}
.hero-vignette{position:absolute;z-index:3;inset:0;pointer-events:none;background:radial-gradient(120% 100% at 50% 45%,transparent 50%,rgba(7,29,48,.5) 82%,var(--ocean-3) 100%)}
.hero-blue{position:absolute;z-index:4;inset:0;pointer-events:none;background:#093554;mix-blend-mode:color;opacity:.3}
.m-scrim{display:none;position:absolute;z-index:4;inset:0;pointer-events:none;background:radial-gradient(125% 88% at 50% 50%,rgba(6,24,40,.62) 0%,rgba(6,24,40,.34) 46%,rgba(6,24,40,.06) 74%,transparent 90%)}
.hero-mbg{display:none;position:absolute;z-index:0;inset:0;overflow:hidden}
.hero-mbg .mbg-layer{position:absolute;inset:-14%;background-size:cover;background-position:center;filter:blur(11px) saturate(.7) brightness(.7);opacity:0;transition:opacity 1.8s ease;transform:scale(1.22)}

.hero-content{position:relative;z-index:5;max-width:860px;padding:0 24px;pointer-events:none}
.hero-content .btn,.hero-content a{pointer-events:auto}
.hero-eyebrow{color:var(--color-gold);text-shadow:0 2px 20px rgba(7,29,48,.9)}
.ping{width:7px;height:7px;border-radius:50%;background:var(--color-lagoon);box-shadow:0 0 0 0 rgba(31,158,154,.6);animation:ping 2s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(31,158,154,.6)}70%{box-shadow:0 0 0 9px rgba(31,158,154,0)}100%{box-shadow:0 0 0 0 rgba(31,158,154,0)}}

.hero-title{font-size:clamp(44px,8.2vw,104px);font-weight:700;line-height:1.0;letter-spacing:-0.04em;margin:6px 0 22px;text-shadow:0 4px 40px rgba(7,29,48,.7)}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.06em}
.hero-title .line-inner{display:block;transform:translateY(115%);animation:lineUp 1.1s cubic-bezier(.16,1,.3,1) forwards}
.hero-title .line:nth-child(1) .line-inner{animation-delay:.35s}
.hero-title .line:nth-child(2) .line-inner{animation-delay:.52s}
@keyframes lineUp{to{transform:none}}

.hero-sub{font-size:clamp(15px,1.7vw,19px);color:rgba(245,241,232,.82);max-width:46ch;margin:0 auto;text-shadow:0 2px 24px rgba(7,29,48,.8)}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}

.fade-up{opacity:0;transform:translateY(26px);animation:fadeUp 1s cubic-bezier(.16,1,.3,1) forwards}
.d3{animation-delay:.75s}.d4{animation-delay:.9s}.d5{animation-delay:1.15s}
@keyframes fadeUp{to{opacity:1;transform:none}}
/* hero text cascade — gated by body.hero-go (fires ~1.2s after the globe drives
   in), so these are just a gentle stagger, not the whole "after globe" delay. */
.hero-title .line:nth-child(1) .line-inner{animation-delay:.12s}
.hero-title .line:nth-child(2) .line-inner{animation-delay:.28s}
.hero-sub{animation-delay:.5s}
.hero-cta{animation-delay:.7s}
.scroll-cue{animation-delay:.95s}

.nav-meta{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--font-body);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(245,241,232,.5);white-space:nowrap;pointer-events:none}
.nav-meta .dot{color:var(--color-gold)}
.nav .brand-text{display:none}
.nav .brand-mark{width:48px;height:48px}
.scroll-cue{position:absolute;bottom:30px;left:0;right:0;z-index:5;text-align:center;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:rgba(245,241,232,.55);cursor:none}
.scroll-cue span{display:block;text-align:center}
.scroll-cue::after{content:"";display:block;width:1px;height:38px;margin:10px auto 0;background:linear-gradient(var(--color-gold),transparent);animation:drift 2.2s ease-in-out infinite}
@keyframes drift{0%,100%{opacity:.25;transform:scaleY(.55)}50%{opacity:1;transform:scaleY(1)}}

/* ===== sections ===== */
.section{padding:var(--space) 0;position:relative}
.section-light{background:var(--color-ivory);color:var(--color-deep-ocean)}
.section-light h2{color:var(--color-deep-ocean)}
.on-dark{color:var(--color-ivory)}
.on-dark-sub{color:rgba(245,241,232,.75)}
.band{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--ocean-3),var(--color-deep-ocean))}
.band .wrap{position:relative;z-index:1}
.band .eyebrow{color:var(--color-gold);margin-bottom:24px}
.band-glow{position:absolute;z-index:0;width:70%;height:160%;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(200,161,90,.16),rgba(31,158,154,.08) 50%,transparent 72%);filter:blur(20px);animation:bandGlow 9s ease-in-out infinite}
@keyframes bandGlow{0%,100%{transform:translate(-54%,-50%) scale(1)}50%{transform:translate(-46%,-50%) scale(1.08)}}
.band-stars{position:absolute;inset:0;z-index:0;background-image:radial-gradient(1.5px 1.5px at 18% 30%,rgba(245,241,232,.5),transparent),radial-gradient(1.5px 1.5px at 82% 24%,rgba(200,161,90,.6),transparent),radial-gradient(1.5px 1.5px at 68% 72%,rgba(245,241,232,.4),transparent),radial-gradient(1.5px 1.5px at 30% 78%,rgba(200,161,90,.5),transparent);animation:bandTwinkle 5s ease-in-out infinite}
@keyframes bandTwinkle{0%,100%{opacity:.5}50%{opacity:1}}
.band-mark{display:block;font-family:var(--font-accent);font-style:italic;font-size:clamp(90px,12vw,150px);line-height:.4;color:rgba(200,161,90,.22);height:.5em;margin-bottom:6px}
.quote{font-family:var(--font-accent);font-style:italic;font-size:clamp(23px,2.8vw,34px);line-height:1.42;color:var(--color-gold);max-width:46ch;margin:0 auto}
.band-rule{display:block;width:0;height:2px;margin:30px auto 0;background:linear-gradient(90deg,transparent,var(--color-gold),transparent);transition:width 1.1s cubic-bezier(.16,1,.3,1) .3s}
.reveal.in .band-rule{width:90px}
@media (prefers-reduced-motion:reduce){.band-glow,.band-stars{animation:none}}

#reader,#vision{background:linear-gradient(180deg,var(--color-deep-ocean),var(--ocean-3))}

/* chips */
.chips{list-style:none;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:28px}
.chips li{font-size:13px;font-weight:500;padding:9px 17px;border:1px solid rgba(14,53,83,.18);border-radius:40px;color:var(--ink-soft);transition:transform .2s,border-color .2s}
.chips li:hover{transform:translateY(-2px);border-color:var(--color-gold)}

/* events */
.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:42px;text-align:left}
.event-card{background:#fff;border:1px solid var(--hair);border-radius:18px;overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;display:flex;flex-direction:column;cursor:none}
.event-card:hover{transform:translateY(-8px);box-shadow:0 28px 60px -30px rgba(14,53,83,.55)}
.event-img{height:150px;background:linear-gradient(135deg,var(--color-emerald),#274f40);position:relative;overflow:hidden}
.event-img::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 80% 10%,rgba(255,255,255,.18),transparent 50%)}
.event-img.img-gold{background:linear-gradient(135deg,var(--color-gold),var(--color-gold-deep))}
.event-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.event-loc{font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--accent)}
.event-card h3{color:var(--color-deep-ocean)}
.event-date{font-size:13px;color:var(--muted-soft);margin-bottom:8px}
.event-body .btn{align-self:flex-start;margin-top:auto;background:var(--accent);color:#fff}
.event-future{background:transparent;border:1px dashed var(--hair);justify-content:center;min-height:300px}
.future-plus{display:block;font-size:30px;line-height:1;color:var(--color-sage);margin-bottom:10px;font-weight:300}
.event-future h3{color:var(--color-deep-ocean)}
.event-future .btn{background:transparent;color:var(--muted);border-color:rgba(14,53,83,.28)}
.event-future .btn:hover{color:var(--color-deep-ocean);border-color:var(--color-deep-ocean)}

/* reader */
.reader-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:40px 0 32px}
.video{aspect-ratio:16/9;background:linear-gradient(135deg,#10405c,var(--ocean-3));border:1px solid rgba(200,161,90,.25);border-radius:14px;display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.16,1,.3,1);cursor:none}
.video:hover{transform:scale(1.04)}
.video span{width:52px;height:52px;border-radius:50%;background:rgba(200,161,90,.15);border:1px solid var(--color-gold);color:var(--color-gold);display:flex;align-items:center;justify-content:center;font-size:17px}

/* vision */
.vision-card{background:linear-gradient(160deg,#13405c,var(--ocean-3));border:1.5px solid var(--color-gold);border-radius:24px;padding:clamp(38px,5vw,62px) clamp(38px,5vw,62px) clamp(60px,7vw,90px);text-align:center;box-shadow:0 40px 90px -50px rgba(0,0,0,.7);position:relative;overflow:hidden;isolation:isolate;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.reveal.in .vision-card{transform:translateY(0)}
.vision-card::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--mx,70%) var(--my,0%),rgba(200,161,90,.28),rgba(193,124,93,.12) 40%,transparent 62%);transition:background .15s ease}
.vision-card *{position:relative;z-index:1}
.vision-card .lead{margin:14px auto 28px}
.heart{color:var(--color-clay);display:inline-block;animation:heartBeat 2.4s ease-in-out infinite}
@keyframes heartBeat{0%,100%{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}}
/* breathing aura + rising seed-embers (no cartoon plant) */
.vc-aura{position:absolute;z-index:0;left:50%;top:54%;width:74%;height:74%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(200,161,90,.2),rgba(193,124,93,.1) 42%,transparent 66%);
  filter:blur(10px);animation:vcAura 6s ease-in-out infinite;pointer-events:none}
@keyframes vcAura{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.95)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
.vc-embers{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;border-radius:24px}
.vc-embers i{position:absolute;bottom:14%;width:6px;height:6px;border-radius:50%;
  background:radial-gradient(circle,var(--color-gold) 0%,rgba(200,161,90,.5) 40%,rgba(200,161,90,0) 70%);
  opacity:0;animation:vcEmber 7s ease-in-out infinite}
@keyframes vcEmber{0%{transform:translateY(20px) scale(.5);opacity:0}12%{opacity:.95}70%{opacity:.8}100%{transform:translateY(-240px) scale(1.1);opacity:0}}
@media (prefers-reduced-motion:reduce){.heart{animation:none}.vc-aura,.vc-embers i{animation:none}.vc-embers i{opacity:.5}}

/* join */
.signup{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:28px 0 20px}
.signup input{font-family:var(--font-body);font-size:15px;padding:14px 20px;border-radius:40px;border:1px solid var(--hair);min-width:280px;background:#fff;color:var(--color-deep-ocean)}
.signup input:focus{outline:2px solid var(--color-lagoon);border-color:transparent}
.socials{display:flex;gap:24px;justify-content:center;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--color-gold-deep)}
.socials a{cursor:none}
.socials a:hover{color:var(--color-deep-ocean)}

/* footer */
.footer{background:var(--ocean-3);padding:64px 0 32px;border-top:1px solid rgba(200,161,90,.15)}
.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;padding-bottom:40px;border-bottom:1px solid rgba(245,241,232,.1)}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-tag{margin-top:16px;max-width:34ch;color:rgba(245,241,232,.66);font-size:15px}
.footer-social{display:flex;gap:12px;margin-top:22px}
.footer-social a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(245,241,232,.2);color:var(--color-gold);cursor:none;transition:background .25s,color .25s,transform .25s,border-color .25s}
.footer-social a:hover{background:var(--color-gold);color:var(--color-deep-ocean);transform:translateY(-3px);border-color:var(--color-gold)}
.footer-social svg{width:18px;height:18px;fill:currentColor}
.footer-join{justify-self:end;width:100%;max-width:420px}
.footer-join h3{font-family:var(--font-display);font-weight:600;font-size:22px;color:var(--color-ivory);margin-bottom:8px}
.footer-join p{color:rgba(245,241,232,.66);font-size:14px;margin-bottom:18px;max-width:42ch}
.footer-form{display:flex;gap:10px}
.footer-form input{flex:1;padding:13px 18px;border-radius:40px;border:1px solid rgba(245,241,232,.22);background:rgba(245,241,232,.06);color:var(--color-ivory);font-family:var(--font-body);font-size:14px}
.footer-form input::placeholder{color:rgba(245,241,232,.45)}
.footer-form input:focus{outline:none;border-color:var(--color-gold)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px}
.footer-links{display:flex;gap:24px;font-size:14px;color:rgba(245,241,232,.8);flex-wrap:wrap}
.footer-links a{cursor:none;position:relative}
.footer-links a:hover{color:var(--color-gold)}
.footer-meta{font-size:12px;color:rgba(245,241,232,.55);text-align:right;line-height:1.7}
.footer-credit{display:inline-block;margin-top:6px;font-size:12px;color:rgba(245,241,232,.42);cursor:none;transition:color .25s}
.footer-credit:hover{color:var(--color-gold)}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
/* staggered child reveals */
.reveal .r{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0)*.09s)}
.reveal.in .r{opacity:1;transform:none}
.section-head{max-width:680px;margin:0 auto 48px;text-align:center}

/* welcome */
.welcome-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,84px);align-items:center}
.welcome-copy{text-align:left}
.welcome-copy h2{margin-bottom:18px;max-width:14ch}
.welcome-copy .lead{margin:0;max-width:48ch}
.welcome-copy .chips{justify-content:flex-start;margin-top:28px}
.welcome-visual{display:flex;justify-content:center;align-items:center}

/* bodygraph */
.welcome-grid{position:relative}
.welcome-copy,.welcome-visual{position:relative;z-index:1}
.welcome-visual{isolation:isolate}
.bodygraph-wrap{position:relative;display:flex;justify-content:center;align-items:center;padding:8px;z-index:2}

/* sepia bento-collage of portraits behind text + bodygraph, 4-sided fade,
   denser to the right, lighter on the left */
.welcome-bento{position:absolute;inset:-6% -4% -6% -4%;z-index:0;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(5,1fr);gap:10px;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 90% 95% at 64% 50%,#000 0%,rgba(0,0,0,.78) 28%,rgba(0,0,0,.5) 48%,rgba(0,0,0,.26) 66%,rgba(0,0,0,.08) 82%,transparent 100%);
          mask-image:radial-gradient(ellipse 90% 95% at 64% 50%,#000 0%,rgba(0,0,0,.78) 28%,rgba(0,0,0,.5) 48%,rgba(0,0,0,.26) 66%,rgba(0,0,0,.08) 82%,transparent 100%)}
.welcome-bento .bp{background-size:cover;background-position:center;border-radius:18px;filter:sepia(1) saturate(.3) contrast(.9) brightness(1.08);opacity:.16;box-shadow:0 6px 16px -10px rgba(14,53,83,.2)}
/* placements: more density on the right (behind bodygraph), lighter scatter on the left */
.welcome-bento .bp-a{grid-column:1/2;grid-row:1/2;opacity:.1}
.welcome-bento .bp-b{grid-column:2/3;grid-row:1/3;opacity:.12}
.welcome-bento .bp-c{grid-column:3/4;grid-row:1/2;opacity:.14}
.welcome-bento .bp-d{grid-column:4/5;grid-row:1/3;opacity:.2}
.welcome-bento .bp-e{grid-column:5/6;grid-row:1/2}
.welcome-bento .bp-f{grid-column:6/7;grid-row:1/3}
.welcome-bento .bp-g{grid-column:7/8;grid-row:1/2}
.welcome-bento .bp-h{grid-column:8/9;grid-row:1/3}
.welcome-bento .bp-i{grid-column:5/6;grid-row:2/4}
.welcome-bento .bp-j{grid-column:7/8;grid-row:2/4}
.welcome-bento .bp-k{grid-column:1/2;grid-row:2/4;opacity:.1}
.welcome-bento .bp-l{grid-column:3/4;grid-row:2/4;opacity:.14}
.welcome-bento .bp-m{grid-column:4/5;grid-row:3/5;opacity:.2}
.welcome-bento .bp-n{grid-column:6/7;grid-row:3/5}
.welcome-bento .bp-o{grid-column:8/9;grid-row:3/5}
.welcome-bento .bp-p{grid-column:5/6;grid-row:4/6}
.welcome-bento .bp-q{grid-column:7/8;grid-row:4/6}
.welcome-bento .bp-r{grid-column:2/3;grid-row:3/5;opacity:.1}
.welcome-bento .bp-s{grid-column:1/2;grid-row:4/6;opacity:.08}
.welcome-bento .bp-t{grid-column:3/4;grid-row:4/6;opacity:.12}
@media (max-width:820px){.welcome-bento{display:none}}
.bodygraph{position:relative;z-index:1;width:auto;height:min(560px,64vh);max-width:100%;animation:bgFloat 9s ease-in-out infinite}
@keyframes bgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.bg-glow{position:absolute;z-index:0;width:78%;height:78%;left:50%;top:50%;transform:translate(-50%,-50%);
  background:radial-gradient(closest-side,rgba(31,158,154,.20),rgba(200,161,90,.10) 55%,transparent 75%);
  filter:blur(8px);animation:bgGlow 4.8s ease-in-out infinite}
@keyframes bgGlow{0%,100%{opacity:.6;transform:translate(-50%,-50%) scale(.96)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}
@media (prefers-reduced-motion:reduce){.bodygraph,.bg-glow{animation:none}}

/* events */
.event-img{display:block;height:172px;position:relative;overflow:hidden;cursor:none}
.event-img::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(14,53,83,.35));z-index:1}
.event-img::after{background:linear-gradient(120% 120% at 80% 10%,rgba(255,255,255,.12),transparent 50%)}
.event-loc-tag{position:absolute;top:12px;left:12px;z-index:2;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--accent);padding:5px 11px;border-radius:30px}
.event-note{font-size:12.5px;color:var(--color-emerald);font-weight:600;margin-top:-4px}

/* reader netflix row */
.reader-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:40px 0 32px}
/* infinite reader marquee */
.reader-marquee{position:relative;overflow:hidden;margin:44px 0 36px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.reader-track{display:flex;gap:18px;width:max-content;animation:marquee 55s linear infinite;will-change:transform}
.reader-marquee:hover .reader-track{animation-play-state:paused}
.reader-track .r-card{flex:0 0 clamp(260px,24vw,330px);aspect-ratio:16/10;margin:0}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 9px))}}
@media (prefers-reduced-motion:reduce){.reader-track{animation:none}}
.r-card{position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;background-size:cover;background-position:center;cursor:none;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.r-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,29,48,.1),rgba(7,29,48,.78))}
.r-card:hover{transform:translateY(-6px) scale(1.02)}
.r-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:54px;height:54px;border-radius:50%;background:rgba(200,161,90,.18);border:1px solid var(--color-gold);color:var(--color-gold);display:flex;align-items:center;justify-content:center;font-size:18px;backdrop-filter:blur(3px);transition:background .3s}
.r-card:hover .r-play{background:var(--color-gold);color:var(--color-deep-ocean)}
.r-meta{position:absolute;left:16px;bottom:14px;z-index:2;text-align:left}
.r-meta b{display:block;color:#fff;font-family:var(--font-display);font-weight:600;font-size:15px}
.r-meta span{font-size:11px;color:rgba(245,241,232,.7)}
.r-card .r-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.r-card:hover .r-img{transform:scale(1.06)}

/* event image zoom on hover */
.event-img{transition:none}
.event-img-z{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.16,1,.3,1);z-index:0}
.event-card:hover .event-img-z{transform:scale(1.07)}

/* button sheen */
.btn::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.28) 50%,transparent 75%);background-size:220% 100%;background-position:120% 0;opacity:0;transition:opacity .3s}
.btn:hover::before{opacity:1;animation:sheen .9s ease}
@keyframes sheen{from{background-position:120% 0}to{background-position:-40% 0}}
.btn-deep,.btn-clay{overflow:hidden}

/* scroll progress */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--color-gold),var(--color-lagoon));transition:transform .1s linear}

/* nav solid on scroll */
.nav.is-solid{background:rgba(8,32,54,.86);backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 1px 0 rgba(245,241,232,.06);padding-top:14px;padding-bottom:14px}
.nav{transition:padding .3s ease,background .3s ease}
/* sub-pages keep the nav permanently visible and styled */
body.nav-always-solid .nav{background:rgba(8,32,54,.92);backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 1px 0 rgba(245,241,232,.06);padding-top:14px;padding-bottom:14px}
body.nav-always-solid .nav:not(.is-solid) .nav-links > a:not(.btn){opacity:1;transform:none;pointer-events:auto}
body.nav-always-solid .nav-meta{opacity:0;pointer-events:none}

/* form success */
.form-msg{margin-top:16px;color:var(--color-emerald);font-weight:600;font-size:14px;min-height:1em}
form.sent input{opacity:.5}
form.sent .btn{background:var(--color-emerald);pointer-events:none}
.no-scroll{overflow:hidden}

/* video lightbox */
.lightbox{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:5vw}
.lightbox.open{display:flex}
.lb-backdrop{position:absolute;inset:0;background:rgba(5,20,36,.86);backdrop-filter:blur(6px);cursor:pointer}
.lb-frame{position:relative;z-index:2;width:min(960px,100%);aspect-ratio:16/9;border-radius:14px;overflow:hidden;box-shadow:0 40px 120px -30px rgba(0,0,0,.8);animation:lbIn .4s cubic-bezier(.16,1,.3,1)}
.lightbox.img-mode .lb-frame{width:auto;height:auto;aspect-ratio:auto;max-width:92vw;max-height:86vh;background:transparent}
.lightbox.img-mode .lb-frame img{display:block;max-width:92vw;max-height:86vh;width:auto;height:auto;border-radius:14px}
.lightbox.gallery-mode .lb-frame{width:min(1100px,92vw);height:auto;aspect-ratio:auto;max-height:86vh;background:transparent;display:flex;align-items:center;justify-content:center}
.lightbox.gallery-mode .lb-frame img{display:block;max-width:92vw;max-height:80vh;border-radius:14px;width:auto;height:auto}
.gx-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid rgba(245,241,232,.3);background:rgba(7,29,48,.65);color:var(--color-ivory);font-size:24px;line-height:1;cursor:none;backdrop-filter:blur(6px);transition:background .25s,transform .25s}
.gx-nav:hover{background:var(--color-gold);color:var(--color-deep-ocean);border-color:var(--color-gold);transform:translateY(-50%) scale(1.08)}
.gx-prev{left:-58px} .gx-next{right:-58px}
@media (max-width:1200px){.gx-prev{left:8px} .gx-next{right:8px}}
.gx-count{position:absolute;bottom:-32px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,241,232,.6);font-variant-numeric:tabular-nums}
.gx-title{position:absolute;top:-32px;left:0;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-gold);font-weight:700}
.lb-frame iframe{width:100%;height:100%;border:0;display:block}
@keyframes lbIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.lb-close{position:absolute;top:22px;right:26px;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(245,241,232,.3);background:rgba(7,29,48,.4);color:var(--color-ivory);font-size:18px;cursor:none;transition:background .25s,transform .25s}
.lb-close:hover{background:var(--color-gold);color:var(--color-deep-ocean);transform:rotate(90deg)}

/* generic modal */
.modal{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;padding:5vw}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(5,20,36,.82);backdrop-filter:blur(6px);cursor:pointer}
.modal-card{position:relative;z-index:2;width:min(540px,100%);max-height:90vh;overflow:auto;background:var(--color-ivory);border-radius:22px;padding:clamp(28px,4vw,44px);box-shadow:0 50px 130px -40px rgba(0,0,0,.8);animation:lbIn .4s cubic-bezier(.16,1,.3,1)}
.modal-close{position:absolute;top:16px;right:18px;width:44px;height:44px;border-radius:50%;border:1px solid var(--hair);background:#fff;color:var(--color-deep-ocean);font-size:16px;cursor:none;transition:background .25s,transform .25s}
.modal-close:hover{background:var(--color-deep-ocean);color:var(--color-ivory);transform:rotate(90deg)}
.m-head{text-align:center;margin-bottom:22px}
.m-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-gold-deep)}
.m-eyebrow.m-clay{color:var(--color-clay)}
.m-head h3{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,3vw,28px);color:var(--color-deep-ocean);margin:8px 0 10px}
.m-head p{color:var(--muted);font-size:15px;max-width:42ch;margin:0 auto}
/* chart form */
.chart-form{display:grid;gap:14px}
.chart-form label{display:grid;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.chart-form input{padding:12px 14px;border-radius:12px;border:1px solid var(--hair);background:#fff;font-family:var(--font-body);font-size:15px;color:var(--color-deep-ocean)}
.chart-form input:focus{outline:none;border-color:var(--color-gold)}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.chart-form .btn{justify-content:center;margin-top:6px}
.cf-note{font-size:12px;color:var(--muted-soft);text-align:center}
form.sent .form-msg{margin-top:4px}
/* teacher modal */
.m-teacher{text-align:center}
.mt-photo{display:block;width:120px;height:120px;border-radius:50%;margin:0 auto 16px;background-size:cover;background-position:center;border:3px solid #fff;box-shadow:0 18px 40px -22px rgba(14,53,83,.6)}
.m-teacher h3{font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--color-deep-ocean);margin:6px 0 10px}
.m-teacher p{color:var(--muted);font-size:15px;max-width:40ch;margin:0 auto 22px}
/* vision amounts */
.vb-amounts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:6px 0 20px}
.vb-amt{padding:11px 20px;border-radius:30px;border:1px solid var(--hair);background:#fff;font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--color-deep-ocean);cursor:none;transition:border-color .2s,background .2s,color .2s}
.vb-amt:hover{border-color:var(--color-clay)}
.vb-amt.sel{background:var(--color-clay);border-color:var(--color-clay);color:#fff}
.modal .btn-clay,.modal .btn-deep,.modal .btn-gold{justify-content:center;width:100%}

/* booking wizard */
.wiz-steps{display:flex;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0 0 22px;flex-wrap:wrap}
.ws{padding:6px 10px;border-radius:30px;background:#F6F0E8;color:var(--muted-soft)}
.ws.active{background:var(--color-deep-ocean);color:var(--color-ivory)}
.ws.done{background:rgba(62,122,99,.15);color:var(--color-emerald)}
.wiz-tiers,.wiz-rooms{display:grid;gap:10px;margin-bottom:18px}
.wiz-tier,.wiz-room{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-radius:14px;border:1.5px solid var(--hair);background:#fff;font-family:inherit;cursor:none;text-align:left;transition:border-color .2s,background .2s,transform .2s}
.wiz-tier b,.wiz-room b{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--color-deep-ocean)}
.wiz-tier span,.wiz-room span{font-size:14px;color:var(--muted)}
.wiz-tier:hover,.wiz-room:hover{border-color:var(--color-gold);transform:translateY(-2px)}
.wiz-tier.sel,.wiz-room.sel{border-color:var(--color-gold);background:rgba(200,161,90,.08);box-shadow:0 0 0 3px rgba(200,161,90,.18)}
.wiz-label{display:block;margin:6px 0 14px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wiz-input{display:block;width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--hair);background:#fff;font-family:var(--font-body);font-size:15px;color:var(--color-deep-ocean);margin-top:6px}
.wiz-input:focus{outline:none;border-color:var(--color-gold)}
textarea.wiz-input{resize:vertical;min-height:54px;line-height:1.4}
.wiz-foot{display:flex;gap:10px;margin-top:18px}
.wiz-foot .btn{flex:1;justify-content:center}
.wiz-review{list-style:none;margin:0 0 18px;padding:18px 20px;background:rgba(245,241,232,.6);border-radius:14px;border:1px solid var(--hair)}
.wiz-review li{display:flex;justify-content:space-between;padding:6px 0;font-size:15px;color:var(--muted);border-bottom:1px dashed rgba(154,117,40,.18)}
.wiz-review li:last-child{border:0}
.wiz-review li b{color:var(--color-deep-ocean);font-weight:600}
.wiz-review .wiz-total b{font-family:var(--font-display);font-size:22px}
.wiz-review .wiz-deposit{background:rgba(200,161,90,.16);margin:6px -20px -18px;padding:10px 20px;border-radius:0 0 13px 13px;border:0}
.wiz-review .wiz-deposit b{color:var(--color-gold-deep)}

/* ===== shared sub-page components ===== */
/* page hero */
.page-hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.page-hero-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;transform:scale(1.05)}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,29,48,.45) 0%,rgba(7,29,48,.2) 40%,rgba(7,29,48,.92) 100%)}
.page-hero .wrap{padding-bottom:64px;position:relative;z-index:2}
/* sub-page globe intro overlay */
.ph-globe{position:absolute;inset:0;z-index:1;opacity:1;transition:opacity 1.2s ease;background:radial-gradient(120% 100% at 50% 30%,var(--hero-top),var(--color-deep-ocean) 60%,var(--ocean-3))}
.ph-globe canvas{display:block}
.ph-globe.gone{opacity:0;pointer-events:none}
.ph-globe.faint{opacity:.16;pointer-events:none;transition:opacity 1.6s ease}
/* --- Variant A: sage / emerald wash, softer + edge fade --- */
.ph-globe.tone-forest canvas{
  filter:grayscale(.9) sepia(.65) hue-rotate(58deg) saturate(.55) brightness(1.04) contrast(.92);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 42%,rgba(0,0,0,.55) 64%,transparent 78%);
          mask-image:radial-gradient(circle at 50% 50%,#000 42%,rgba(0,0,0,.55) 64%,transparent 78%);
}
.ph-globe.tone-forest{background:radial-gradient(120% 90% at 50% 35%,#244b3e 0%,#163128 55%,#0e2620 100%)}

/* --- Variant B: real Earth at night (true colours, city lights) --- */
.ph-globe.tone-night canvas{
  filter:brightness(1.15) contrast(1.08) saturate(.9);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 46%,rgba(0,0,0,.6) 66%,transparent 80%);
          mask-image:radial-gradient(circle at 50% 50%,#000 46%,rgba(0,0,0,.6) 66%,transparent 80%);
}
.ph-globe.tone-night{background:radial-gradient(120% 95% at 50% 40%,#1f4b3e 0%,#0e2a23 55%,#06141a 100%)}
.page-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.85) brightness(.7)}
.landing.theme-forest .page-hero::after{background:linear-gradient(180deg,rgba(10,36,28,.55) 0%,rgba(10,36,28,.4) 42%,rgba(10,36,28,.96) 100%)}
.page-hero.has-globe .wrap{opacity:0;transform:translateY(26px);transition:opacity 1s ease,transform 1s ease}
.page-hero.has-globe.hero-revealed .wrap{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.page-hero.has-globe .wrap{opacity:1;transform:none}.ph-globe{display:none}}
/* Ireland hero: the animated GLOBE intro (subglobe.js) zooms to Northern Ireland,
   then settles as a faint backdrop (.faint) revealing a license-free Northern
   Ireland coastline VIDEO (Pexels) underneath. Video + scrim sit BELOW the globe
   (z-index 0); the globe's opaque gradient covers them during the intro and fades
   to .16 after, so the video shows through with a subtle scrim for legibility. */
.page-hero.has-video-bg .ph-video-wrap{position:absolute;inset:0;z-index:0;overflow:hidden}
.page-hero.has-video-bg .ph-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.page-hero.has-video-bg .ph-video-scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(3,32,26,.4),rgba(3,32,26,.14) 42%,rgba(3,26,22,.72))}

/* ===== standalone landing page (Ireland) ===== */
.nav-landing{justify-content:space-between}
.nav-landing-right{display:flex;align-items:center;gap:24px}
.nav-back{color:rgba(245,241,232,.8);font-size:14px;cursor:none;transition:color .25s}
.nav-back:hover{color:#46A18B}
.btn-emerald{background:var(--color-emerald);color:#fff;box-shadow:0 10px 34px -12px rgba(62,122,99,.7)}
.btn-emerald:hover{box-shadow:0 16px 44px -12px rgba(62,122,99,.9)}

/* fullscreen + centered hero */
.landing .page-hero{min-height:100vh;align-items:center;text-align:center}
.landing .page-hero .wrap{padding-bottom:0;max-width:820px;margin-inline:auto}
.landing .page-hero h1{margin-inline:auto;max-width:13ch}
.landing .page-hero .page-sub{margin-inline:auto}
.landing .breadcrumb{display:none}
.landing .countdown{justify-content:center}
.landing .page-hero::after{background:linear-gradient(180deg,rgba(7,29,48,.5) 0%,rgba(7,29,48,.32) 42%,rgba(7,29,48,.92) 100%)}

/* Ireland green (emerald) accents */
.theme-ireland .page-hero .eyebrow{color:#46A18B}
.theme-ireland .reveal .eyebrow,.theme-ireland .band .eyebrow{color:var(--color-emerald)}
.theme-ireland .band .quote{color:#46A18B}
.theme-ireland .band-rule{background:linear-gradient(90deg,transparent,var(--color-emerald),transparent)}
.theme-ireland .band-glow{background:radial-gradient(closest-side,rgba(62,122,99,.24),rgba(31,158,154,.1) 50%,transparent 72%)}
.theme-ireland .band-mark{color:rgba(62,122,99,.28)}
.theme-ireland .tl-day{color:var(--color-emerald)}
.theme-ireland .tl-item::before{background:var(--color-emerald);box-shadow:0 0 0 4px rgba(62,122,99,.18)}
.theme-ireland .timeline{border-left-color:rgba(62,122,99,.4)}
.theme-ireland .btn-gold{background:var(--color-emerald);color:#fff;box-shadow:0 10px 34px -12px rgba(62,122,99,.7)}
.theme-ireland .tier.featured{border-color:var(--color-emerald);box-shadow:0 24px 60px -34px rgba(62,122,99,.55)}
.theme-ireland .tier-flag{background:var(--color-emerald);color:#fff}
.theme-ireland .page-hero .eyebrow,.theme-ireland .page-sub{text-shadow:0 1px 16px rgba(7,29,48,.6)}

/* mobile landing nav */
@media (max-width:600px){.nav-back{display:none}.nav-landing-right{gap:14px}}
.page-hero .eyebrow{color:var(--color-gold);text-shadow:0 1px 14px rgba(7,29,48,.55)}
.page-hero h1{font-family:var(--font-display);font-weight:700;font-size:clamp(42px,7vw,86px);line-height:1.02;color:var(--color-ivory);letter-spacing:-.02em;max-width:16ch;text-shadow:0 2px 30px rgba(7,29,48,.4)}
.page-hero .page-sub{color:rgba(245,241,232,.9);max-width:52ch;margin-top:18px;font-size:18px;text-shadow:0 1px 16px rgba(7,29,48,.5)}
.breadcrumb{margin-bottom:18px;font-size:13px;letter-spacing:.04em;color:rgba(245,241,232,.78);text-shadow:0 1px 12px rgba(7,29,48,.5)}
.breadcrumb a{color:rgba(245,241,232,.85);cursor:none}
.breadcrumb a:hover{color:var(--color-gold)}

/* countdown */
.countdown{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.cd-cell{min-width:84px;padding:16px 12px;border-radius:14px;background:rgba(245,241,232,.06);border:1px solid rgba(245,241,232,.14);text-align:center;backdrop-filter:blur(4px)}
.cd-cell b{display:block;font-family:var(--font-display);font-weight:700;font-size:34px;color:var(--color-ivory);font-variant-numeric:tabular-nums lining-nums;line-height:1}
.cd-cell span{display:block;margin-top:6px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,241,232,.6)}

/* info / included boxes */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.info-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.info-grid.cols-2{grid-template-columns:repeat(2,1fr);gap:24px}
@media (max-width:1080px){.info-grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.info-grid,.info-grid.cols-4,.info-grid.cols-2{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.info-grid,.info-grid.cols-4,.info-grid.cols-2{grid-template-columns:1fr}}
.info-box{background:#fff;border:1px solid var(--hair);border-radius:18px;padding:28px;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.info-box:hover{transform:translateY(-6px);box-shadow:0 26px 56px -32px rgba(14,53,83,.5)}
.info-box .ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(31,158,154,.12);color:var(--color-emerald);font-size:20px;margin-bottom:16px}
/* Ireland "What to expect": clean, consistent SVG line icons (book / flame /
   mountains / people) replace the mismatched emoji glyphs. Drawn via CSS mask so
   they inherit the teal (currentColor) and render identically on every device. */
.expect-icons .info-box .ic{font-size:0}
.expect-icons .info-box .ic::before{content:"";display:block;width:24px;height:24px;background-color:currentColor;-webkit-mask:center/22px 22px no-repeat var(--exp);mask:center/22px 22px no-repeat var(--exp)}
.expect-icons .info-box:nth-child(1) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7C10.4 5.8 8.2 5.3 4 5.5v13c4.2-.2 6.4.3 8 1.5 1.6-1.2 3.8-1.7 8-1.5v-13c-4.2-.2-6.4.3-8 1.5Z'/%3E%3Cpath d='M12 7v13'/%3E%3C/svg%3E")}
.expect-icons .info-box:nth-child(2) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c.8 2.5-.3 4.1-1.7 5.5C8.9 10 7.5 11.4 7.5 14a4.5 4.5 0 0 0 9 0c0-1.8-.8-3.3-2-4.4.3 1.3-.4 2.2-1.2 2.6.9-2.7-.5-6.4-1.8-9.2Z'/%3E%3C/svg%3E")}
.expect-icons .info-box:nth-child(3) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.5 19 5-8 3.2 4.8'/%3E%3Cpath d='m9 19 5.5-9L21 19z'/%3E%3Ccircle cx='6.5' cy='6.5' r='1.7'/%3E%3C/svg%3E")}
.expect-icons .info-box:nth-child(4) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19.5a5.5 5.5 0 0 1 11 0'/%3E%3Cpath d='M16 5.3a3.2 3.2 0 0 1 0 5.8'/%3E%3Cpath d='M17 13.3a5.5 5.5 0 0 1 3.5 6.2'/%3E%3C/svg%3E")}
/* Ireland "Getting There": plane / bus / train / bed — same clean line-icon set. */
.travel-icons .info-box .ic{font-size:0}
.travel-icons .info-box .ic::before{content:"";display:block;width:24px;height:24px;background-color:currentColor;-webkit-mask:center/22px 22px no-repeat var(--exp);mask:center/22px 22px no-repeat var(--exp)}
.travel-icons .info-box:nth-child(1) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E")}
.travel-icons .info-box:nth-child(2) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='13' rx='2.5'/%3E%3Cpath d='M4 11h16'/%3E%3Ccircle cx='8' cy='20' r='1.4'/%3E%3Ccircle cx='16' cy='20' r='1.4'/%3E%3Cpath d='M7 17v1M17 17v1'/%3E%3C/svg%3E")}
.travel-icons .info-box:nth-child(3) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='14' rx='3'/%3E%3Cpath d='M5 11h14'/%3E%3Cpath d='M8 20l-2 2M16 20l2 2'/%3E%3Ccircle cx='9' cy='14' r='.7'/%3E%3Ccircle cx='15' cy='14' r='.7'/%3E%3C/svg%3E")}
.travel-icons .info-box:nth-child(4) .ic{--exp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8v11'/%3E%3Cpath d='M3 13h18v6'/%3E%3Cpath d='M3 16h18'/%3E%3Cpath d='M6.5 13v-1.5A1.5 1.5 0 0 1 8 10h4.5A1.5 1.5 0 0 1 14 11.5V13'/%3E%3C/svg%3E")}
.info-box h3{color:var(--color-deep-ocean);font-size:19px;margin-bottom:8px}
.info-box p{font-size:15px;color:var(--muted)}
.check-list{list-style:none;display:grid;gap:12px;margin-top:8px}
.check-list li{position:relative;padding-left:30px;color:var(--ink-soft)}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--color-emerald);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}
/* on dark backgrounds (.section without .section-light), brighten the list text */
.section:not(.section-light):not(.band) > .wrap > .check-list li,
.section:not(.section-light):not(.band) > .wrap > * > .check-list:not(.mini) li,
.itin-card .check-list li{color:rgba(245,241,232,.92)}
/* lists inside any white card stay dark */
.stay-card .check-list li,.info-box .check-list li,.tier .check-list li{color:var(--ink-soft)}
.check-list.mini{gap:8px;margin-top:14px}
.check-list.mini li{padding-left:26px;font-size:14px}
.check-list.mini li::before{width:17px;height:17px;font-size:10px}

/* itinerary timeline */
.timeline{margin-top:10px;border-left:2px solid rgba(200,161,90,.4);padding-left:28px;display:grid;gap:26px}
.tl-item{position:relative}
.tl-item::before{content:"";position:absolute;left:-37px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--color-gold);box-shadow:0 0 0 4px rgba(200,161,90,.18)}
.tl-day{font-family:var(--font-body);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:12px;color:var(--color-gold)}
.tl-item h3{color:var(--color-ivory);font-size:20px;margin:4px 0 6px}
.tl-item p{color:rgba(245,241,232,.72);font-size:15px;max-width:60ch}

/* rich timeline (image + structured detail per day) */
.timeline.rich{padding-left:30px;display:grid;gap:30px}
.tl-item.rich{display:grid;grid-template-columns:.7fr 1.3fr;gap:24px;align-items:start;padding:22px;border-radius:22px;
  background:linear-gradient(135deg,rgba(245,241,232,.09),rgba(245,241,232,.04));
  border:1px solid rgba(245,241,232,.14);
  backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 60px -38px rgba(0,0,0,.55);
  transition:background .35s,border-color .35s,transform .35s,box-shadow .35s}
.tl-item.rich:hover{background:linear-gradient(135deg,rgba(245,241,232,.14),rgba(245,241,232,.06));border-color:rgba(200,161,90,.4);transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 30px 70px -36px rgba(0,0,0,.6)}
.tl-item.rich::before{left:-38px}
.tl-item.rich .tl-img{display:block;width:100%;aspect-ratio:5/4;border-radius:14px;background-size:cover;background-position:center;filter:saturate(.95)}
.tl-item.rich .tl-body{padding-right:6px}
.itin-card{background:linear-gradient(135deg,rgba(245,241,232,.1),rgba(245,241,232,.05));border:1px solid rgba(245,241,232,.16);backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 60px -38px rgba(0,0,0,.55)}

/* itinerary section: slow drifting aurora behind the glass cards */
.itin-section{position:relative;overflow:hidden;isolation:isolate}
.itin-aurora{position:absolute;inset:-20% -10%;z-index:0;pointer-events:none;filter:blur(70px);opacity:.55}
.itin-aurora span{position:absolute;display:block;border-radius:50%;mix-blend-mode:screen;will-change:transform,opacity}
.itin-aurora span:nth-child(1){left:-8%;top:8%;width:46vw;height:46vw;background:radial-gradient(circle,#23A09A 0%,transparent 65%);animation:auroraDrift1 22s ease-in-out infinite alternate}
.itin-aurora span:nth-child(2){right:-12%;top:32%;width:48vw;height:48vw;background:radial-gradient(circle,#CBA55D 0%,transparent 65%);animation:auroraDrift2 28s ease-in-out infinite alternate}
.itin-aurora span:nth-child(3){left:22%;bottom:-10%;width:54vw;height:54vw;background:radial-gradient(circle,#46A18B 0%,transparent 65%);animation:auroraDrift3 32s ease-in-out infinite alternate}
.itin-section .wrap{position:relative;z-index:1}
@keyframes auroraDrift1{0%{transform:translate(0,0) scale(1);opacity:.55}100%{transform:translate(12vw,8vh) scale(1.15);opacity:.7}}
@keyframes auroraDrift2{0%{transform:translate(0,0) scale(1);opacity:.5}100%{transform:translate(-10vw,12vh) scale(1.1);opacity:.7}}
@keyframes auroraDrift3{0%{transform:translate(0,0) scale(1);opacity:.45}100%{transform:translate(8vw,-10vh) scale(1.18);opacity:.65}}
@media (prefers-reduced-motion:reduce){.itin-aurora span{animation:none}}
.tl-times{list-style:none;display:grid;gap:6px;margin-top:14px;border-top:1px dashed rgba(200,161,90,.22);padding-top:12px}
.tl-times li{font-size:13.5px;color:rgba(245,241,232,.78);display:flex;gap:12px}
.tl-times li b{flex:0 0 76px;font-family:var(--font-body);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:11px;color:var(--color-gold);padding-top:2px}

/* crossfade photo stack — click opens mini gallery in lightbox */
.bio-photo-stack{position:relative;cursor:none}
.bio-photo-stack .bp-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .7s ease;filter:saturate(.95)}
.bio-photo-stack .bp-img.active{opacity:1}
.bio-photo-stack .bp-count{position:absolute;top:14px;right:14px;z-index:2;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(14,53,83,.55);backdrop-filter:blur(6px);padding:6px 12px;border-radius:30px}
.bio-photo-stack .bp-count b{font-family:var(--font-display);margin-right:4px}
.bio-photo-stack::after{content:"";position:absolute;inset:0;border-radius:22px;box-shadow:inset 0 0 0 0 var(--color-gold);transition:box-shadow .35s;pointer-events:none}
.bio-photo-stack:hover::after{box-shadow:inset 0 0 0 2px var(--color-gold)}

/* stay grid — three rooms with photos */
/* stay grid — middle "Most chosen" tier scaled up for clarity & trust */
.stay-grid{display:grid;grid-template-columns:.9fr 1.2fr .9fr;gap:22px;align-items:start;margin-top:24px}
.stay-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--hair);border-radius:20px;overflow:hidden;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s;transform:scale(.94);transform-origin:center top;opacity:.92}
.stay-card:hover{transform:translateY(-6px) scale(.96);box-shadow:0 32px 70px -36px rgba(14,53,83,.55)}
.stay-card.stay-featured{transform:scale(1);opacity:1;border:2px solid var(--color-gold);box-shadow:0 36px 90px -34px rgba(200,161,90,.55),0 0 0 6px rgba(200,161,90,.08);z-index:1}
.stay-card.stay-featured:hover{transform:translateY(-6px) scale(1.01)}
.stay-img{display:block;width:100%;aspect-ratio:16/9;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.16,1,.3,1);filter:saturate(.92)}
.stay-card:hover .stay-img{transform:scale(1.05)}
.stay-body{padding:22px 24px 26px;display:flex;flex-direction:column}
.stay-body h3{color:var(--color-deep-ocean);font-size:21px;margin-bottom:6px}
.stay-featured .stay-body{padding:28px 28px 32px}
.stay-featured .stay-body h3{font-size:26px;margin-bottom:10px}
.stay-card .stay-price{font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--color-gold-deep);text-transform:uppercase;margin:0 0 12px}
.stay-card .stay-body p:not(.stay-price){color:var(--muted);font-size:14.5px;margin:0}
.stay-featured .stay-body p:not(.stay-price):not(.stay-supp-meta){font-size:15.5px;line-height:1.55}
/* the prominent price block on the featured tier */
.stay-price-block{display:flex;align-items:baseline;gap:10px;padding:10px 16px;background:linear-gradient(135deg,rgba(200,161,90,.16),rgba(200,161,90,.06));border:1px solid rgba(200,161,90,.32);border-radius:14px;margin:0 0 14px;width:fit-content}
.stay-supp{font-family:var(--font-display);font-weight:700;font-size:28px;color:var(--color-gold-deep);letter-spacing:-.01em;line-height:1}
.stay-supp-meta{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.stay-flag{position:absolute;top:16px;left:16px;z-index:2;background:var(--color-gold);color:var(--color-deep-ocean);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 14px;border-radius:30px;box-shadow:0 6px 16px -6px rgba(200,161,90,.6)}
@media (max-width:900px){.stay-grid{grid-template-columns:1fr;gap:18px}.stay-card,.stay-card.stay-featured{transform:none;opacity:1}}
@media (max-width:820px){
  .stay-grid{grid-template-columns:1fr}
  .tl-item.rich{grid-template-columns:1fr;gap:14px}
  .tl-item.rich .tl-img{aspect-ratio:16/10}
}

/* teachers row, centered (Ireland uses 4 cards) */
.teachers.teachers-center{grid-template-columns:repeat(4,minmax(0,200px));justify-content:center}
@media (max-width:820px){.teachers.teachers-center{grid-template-columns:repeat(2,1fr)}}

/* pricing tiers */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:18px;align-items:center}
.tier{position:relative;background:#fff;border:1px solid var(--hair);border-radius:22px;padding:34px 30px;display:flex;flex-direction:column;transform:scale(.95);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s}
.tier:not(.featured):hover{transform:scale(.95) translateY(-7px);box-shadow:0 32px 70px -36px rgba(14,53,83,.55)}
.tier.featured{border-color:var(--color-gold);box-shadow:0 30px 70px -32px rgba(200,161,90,.6);transform:scale(1.06);z-index:1;padding:42px 34px}
.tier.featured:hover{transform:scale(1.06) translateY(-7px)}
.tier-flag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--color-gold);color:var(--color-deep-ocean);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 16px;border-radius:30px}
.tier h3{color:var(--color-deep-ocean);font-size:22px}
.tier .price{font-family:var(--font-display);font-weight:700;font-size:42px;color:var(--color-deep-ocean);margin:10px 0 4px}
.tier .price small{font-size:15px;font-weight:500;color:var(--muted-soft)}
.tier .tier-note{font-size:13px;color:var(--muted-soft);margin-bottom:20px}
.tier .check-list{margin-bottom:26px}
.tier .btn{margin-top:auto;justify-content:center}

/* gallery strip */
.gallery-strip{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:14px;margin-top:10px}
.gallery-strip a{position:relative;border-radius:16px;overflow:hidden;background-size:cover;background-position:center;cursor:none}
.gallery-strip a::after{content:"";position:absolute;inset:0;background:rgba(14,53,83,0);transition:background .35s}
.gallery-strip a:hover::after{background:rgba(14,53,83,.18)}
.gallery-strip .g-tall{grid-row:span 2}
.gallery-strip .g-wide{grid-column:span 2}
.gallery-strip img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.gallery-strip a:hover img{transform:scale(1.06)}

/* accordion */
.acc{max-width:760px;margin:0 auto;display:grid;gap:14px}
.acc-item{border:1px solid var(--hair);border-radius:16px;overflow:hidden;background:#fff}
.acc-q{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--color-deep-ocean);background:none;border:0;cursor:none}
.acc-q .pm{flex:none;position:relative;width:24px;height:24px;border-radius:50%;border:1px solid var(--color-gold-deep);color:var(--color-gold-deep);display:flex;align-items:center;justify-content:center;transition:transform .3s,background .3s,color .3s}
.acc-item.open .acc-q .pm{transform:rotate(45deg);background:var(--color-gold);color:#fff;border-color:var(--color-gold)}
/* Icon optimization: crisp CSS-drawn "+" replaces the fullwidth ＋ text glyph on
   the accordion (.pm) and pillar (.pillar-toggle) circle toggles. Rotating the
   wrapper 45° on open turns the drawn + into a ×, exactly like before, but pixel-
   perfect and themeable (currentColor). The ＋ glyph is hidden via font-size:0. */
.acc-q .pm{font-size:0}
.pillar-toggle{font-size:0}
.acc-q .pm::before,.acc-q .pm::after,.pillar-toggle::before,.pillar-toggle::after{content:"";position:absolute;top:50%;left:50%;width:10px;height:1.6px;background:currentColor;border-radius:2px;transform:translate(-50%,-50%)}
.acc-q .pm::after,.pillar-toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.acc-item.open .acc-a{max-height:420px}
.acc-a p{padding:0 24px 22px;color:var(--muted);font-size:15px}

/* meet / bio split */
.bio-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,72px);align-items:center}
.bio-grid.reverse{grid-template-columns:1.15fr .85fr}
.stay-card .stay-price{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--color-gold-deep);margin-bottom:8px;text-transform:uppercase}
.bio-photo{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 40px 90px -50px rgba(14,53,83,.7)}
.bio-photo img{width:100%;height:100%;object-fit:cover;display:block}
.bio-photo .bio-badge{position:absolute;left:18px;bottom:18px;background:rgba(7,29,48,.7);backdrop-filter:blur(6px);color:var(--color-ivory);padding:10px 16px;border-radius:30px;font-size:12px;letter-spacing:.08em}
.signature{font-family:var(--font-accent);font-style:italic;font-size:30px;color:var(--color-gold-deep);margin-top:18px}

/* itinerary layout */
.itin-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(36px,5vw,68px);align-items:start}
.itin-side{position:sticky;top:96px}
.itin-card{background:rgba(245,241,232,.05);border:1px solid rgba(245,241,232,.16)}
.itin-card h3{color:var(--color-ivory);font-size:20px;margin-bottom:16px}
.itin-card .check-list li{color:rgba(245,241,232,.86)}
.itin-card .btn{margin-top:24px;width:100%;justify-content:center}

/* two-column check list */
.check-list.two-col{grid-template-columns:1fr 1fr;gap:14px 26px}
.muted-note{margin-top:22px;font-size:13px;color:var(--muted-soft);max-width:50ch}

/* ===== About: editorial portrait ===== */
.portrait-hero{position:relative;background:var(--color-ivory);padding:clamp(100px,12vw,160px) 0 clamp(60px,8vw,100px);overflow:hidden;isolation:isolate}
.portrait-hero .breadcrumb{margin-bottom:18px;color:rgba(14,53,83,.72);text-shadow:none}
.portrait-hero .breadcrumb a{color:var(--color-gold-deep)}
.portrait-hero .breadcrumb a:hover{color:var(--color-deep-ocean)}
.portrait-eyebrow{display:inline-block}
.ph-orb{position:absolute;inset:auto -10% -30% auto;width:60vw;height:60vw;max-width:780px;max-height:780px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(200,161,90,.22),rgba(169,183,162,.16) 45%,transparent 70%);filter:blur(8px);z-index:-1;animation:bgGlow 9s ease-in-out infinite}
.portrait-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,90px);align-items:center}
.portrait-eyebrow{font-family:var(--font-body);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:12px;color:var(--color-gold-deep)}
.portrait-h1{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,5.4vw,68px);line-height:1.05;color:var(--color-deep-ocean);letter-spacing:-.015em;margin:18px 0 22px;max-width:18ch}
.portrait-h1 .accent-italic{font-family:var(--font-accent);font-style:italic;font-weight:500;color:var(--color-gold-deep)}
.portrait-lead{font-family:var(--font-accent);font-style:italic;font-size:clamp(20px,2.2vw,26px);line-height:1.45;color:var(--ink-soft);max-width:38ch;margin-bottom:24px}
.portrait-hero .signature{font-family:var(--font-accent);font-style:italic;font-size:24px;color:var(--color-gold-deep);margin-top:8px}
.portrait-photo{position:relative;margin:0;border-radius:22px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 40px 100px -40px rgba(14,53,83,.55);transform:rotate(-1.2deg)}
.portrait-photo img{width:100%;height:100%;object-fit:cover;display:block;transform-origin:50% 40%;animation:jessBreathe 14s ease-in-out infinite alternate;will-change:transform,filter}
@keyframes jessBreathe{0%{transform:scale(1.02) translateY(0)}50%{transform:scale(1.06) translateY(-4px)}100%{transform:scale(1.03) translateY(2px)}}
@media (prefers-reduced-motion:reduce){.portrait-photo img{animation:none}}
.portrait-photo figcaption{position:absolute;left:18px;bottom:18px;color:#fff;background:rgba(14,53,83,.55);backdrop-filter:blur(6px);padding:10px 16px;border-radius:30px;font-size:12px;letter-spacing:.04em}
.portrait-photo figcaption b{display:block;font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:0}
.portrait-photo figcaption span{font-size:11px;opacity:.78}

/* long-form story */
.story-grid{display:grid;grid-template-columns:.42fr .58fr;gap:clamp(40px,6vw,90px);align-items:start}
.story-side{position:sticky;top:110px}
.story-pullquote{font-family:var(--font-accent);font-style:italic;font-size:clamp(22px,2.6vw,32px);line-height:1.35;color:var(--color-gold-deep);max-width:18ch;padding-left:18px;border-left:2px solid var(--color-gold)}
.story-body{font-size:17px;color:var(--ink-soft);max-width:60ch;line-height:1.78}
.story-body p{margin-bottom:18px}
.story-body .story-lead{font-family:var(--font-display);font-weight:500;font-size:21px;color:var(--color-deep-ocean);line-height:1.5;margin-bottom:22px}
.story-body .story-quote{font-family:var(--font-accent);font-style:italic;font-size:22px;color:var(--color-deep-ocean);padding:14px 0;border-top:1px solid rgba(154,117,40,.25);border-bottom:1px solid rgba(154,117,40,.25);margin:14px 0 22px}

/* moments photo strip */
.moments-sec{background:linear-gradient(180deg,var(--color-deep-ocean),var(--ocean-3))}
.moments-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,240px));justify-content:center;gap:14px;max-width:1120px;margin-inline:auto}
.moments-strip figure{position:relative;margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/5;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.moments-strip figure:nth-child(even){aspect-ratio:4/5;transform:translateY(18px)}
.moments-strip figure:hover{transform:translateY(-6px) scale(1.02)}
.moments-strip figure:nth-child(even):hover{transform:translateY(12px) scale(1.02)}
.moments-strip img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92)}
.moments-strip figcaption{position:absolute;left:12px;bottom:10px;font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.04em;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6);pointer-events:none}
.moments-strip figure{cursor:none}
.moments-strip .moment-plus{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:rgba(7,29,48,.65);backdrop-filter:blur(4px);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;opacity:0;transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.moments-strip figure:hover .moment-plus,.moments-strip figure:focus-visible .moment-plus{opacity:1;transform:scale(1.05)}
.moments-strip figure:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px;border-radius:14px}

/* modal: long-form moment report (Jess's voice) */
.m-moment{font-family:var(--font-body);color:var(--color-deep-ocean)}
.m-moment .moment-hero{height:240px;border-radius:16px;background-size:cover;background-position:center;margin-bottom:22px}
.m-moment header{margin-bottom:14px}
.m-moment h3{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.6vw,30px);line-height:1.2;color:var(--color-deep-ocean);margin:8px 0 0;letter-spacing:-.01em}
.m-moment p{font-size:16px;line-height:1.65;color:var(--ink-soft);margin:0 0 14px}
.m-moment p:last-child{margin-bottom:0}
/* roomier modal for long-form moments */
.modal.open .modal-card:has(.m-moment){width:min(680px,100%)}

/* manifesto */
.manifesto-sec{background:var(--color-deep-ocean)}
.manifesto{font-family:var(--font-accent);font-style:italic;font-size:clamp(22px,2.7vw,34px);line-height:1.32;color:var(--color-gold);margin:14px auto 18px;max-width:62ch}

@media (max-width:820px){
  .portrait-grid{grid-template-columns:1fr;gap:30px}
  .portrait-photo{max-width:340px;margin:0 auto;transform:none}
  .story-grid{grid-template-columns:1fr;gap:24px}
  .story-side{position:static}
  .moments-strip{grid-template-columns:repeat(2,1fr)}
  .moments-strip figure:nth-child(even){transform:none}
}

/* mission / vision */
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px)}
.mv-card{background:#fff;border:1px solid var(--hair);border-radius:22px;padding:clamp(28px,3.4vw,44px);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.mv-card:hover{transform:translateY(-6px);box-shadow:0 30px 64px -36px rgba(14,53,83,.5)}
.mv-card h2{font-size:clamp(24px,2.6vw,32px);margin:6px 0 14px;color:var(--color-deep-ocean)}

/* generic CTA band */
.cta-band{text-align:center}
.cta-band h2{max-width:18ch;margin:0 auto 16px}

/* ===== homepage content sections ===== */
/* stats band */
.stats-band{background:var(--color-deep-ocean);padding:46px 28px;border-top:1px solid rgba(245,241,232,.08);border-bottom:1px solid rgba(245,241,232,.08)}
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:24px;text-align:center}
.stat b{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(32px,3.4vw,46px);color:var(--color-gold);line-height:1;font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:10px;font-size:13px;letter-spacing:.05em;color:rgba(245,241,232,.66)}
.stat{position:relative}
.stat:not(:last-child)::after{content:"";position:absolute;right:-12px;top:50%;transform:translateY(-50%);width:1px;height:46px;background:rgba(245,241,232,.12)}

/* pillars (new to HD) */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.pillar{position:relative;display:block;width:100%;text-align:left;font-family:inherit;padding:30px 28px;border-radius:20px;background:rgba(245,241,232,.05);border:1px solid rgba(245,241,232,.12);cursor:none;transition:transform .35s cubic-bezier(.16,1,.3,1),background .35s,border-color .35s}
.pillar:hover{transform:translateY(-6px);background:rgba(245,241,232,.08);border-color:rgba(200,161,90,.4)}
.pillar.open{background:rgba(245,241,232,.09);border-color:rgba(200,161,90,.5)}
.pillar-no{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--color-gold);letter-spacing:.1em}
.pillar-toggle{position:absolute;top:24px;right:26px;width:26px;height:26px;border-radius:50%;border:1px solid rgba(200,161,90,.5);color:var(--color-gold);display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;transition:transform .3s,background .3s,color .3s}
.pillar.open .pillar-toggle{transform:rotate(45deg);background:var(--color-gold);color:var(--color-deep-ocean);border-color:var(--color-gold)}
.pillar h3{color:var(--color-ivory);font-size:21px;margin:12px 0 10px}
.pillar p{color:rgba(245,241,232,.74);font-size:15px}
.pillar-more{display:block;max-height:0;overflow:hidden;opacity:0;color:rgba(245,241,232,.68);font-size:14px;line-height:1.55;transition:max-height .45s ease,opacity .35s ease,margin-top .35s ease}
.pillar.open .pillar-more{max-height:220px;opacity:1;margin-top:14px}
.learn-cta{display:flex;align-items:center;gap:20px;justify-content:center;margin-top:42px;flex-wrap:wrap}
.learn-note{font-size:13px;color:rgba(245,241,232,.6)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
.step{text-align:center;padding:10px 18px}
.step-no{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:var(--color-ivory);border:1.5px solid var(--color-gold);color:var(--color-deep-ocean);font-family:var(--font-display);font-weight:700;font-size:22px;margin-bottom:18px;box-shadow:0 10px 28px -14px rgba(200,161,90,.7)}
.step h3{color:var(--color-deep-ocean);font-size:20px;margin-bottom:8px}
.step p{color:var(--muted);font-size:15px;max-width:34ch;margin:0 auto}

/* events timeline */
.ev-timeline{position:relative;display:flex;justify-content:space-between;gap:10px;margin:0 0 40px;padding:6px 4px 2px;overflow-x:auto}
.evt-line{position:absolute;top:13px;left:18px;right:18px;height:2px;background:repeating-linear-gradient(90deg,var(--hair) 0 8px,transparent 8px 14px);z-index:0}
.evt-node{position:relative;z-index:1;flex:1 0 0;min-width:96px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:none;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.evt-node:hover{transform:translateY(-4px)}
.evt-dot{width:15px;height:15px;border-radius:50%;background:var(--color-gold);border:3px solid var(--color-ivory);box-shadow:0 0 0 1px var(--hair);margin-bottom:12px;transition:transform .3s,box-shadow .3s}
.evt-node:hover .evt-dot{transform:scale(1.25);box-shadow:0 0 0 1px var(--color-gold),0 0 14px rgba(200,161,90,.5)}
.evt-partner .evt-dot{background:var(--color-emerald)}
.evt-node.is-past .evt-dot{background:var(--hair)}
.evt-node.is-past{opacity:.6}
.evt-date{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-gold-deep)}
.evt-title{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--color-deep-ocean);margin-top:3px}
.evt-sub{font-size:11.5px;color:var(--muted-soft);margin-top:1px}

/* featured event carousel — CSS scroll-snap, no JS transform needed */
.fe-carousel{position:relative;margin-bottom:34px}
.fe-track{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;border-radius:24px;box-shadow:0 30px 70px -40px rgba(14,53,83,.6);min-height:340px;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.fe-track::-webkit-scrollbar{display:none}
.fe-slide{flex:0 0 100%;width:100%;min-width:100%;display:grid;scroll-snap-align:start;scroll-snap-stop:always}
.fe-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid rgba(245,241,232,.35);background:rgba(7,29,48,.78);color:var(--color-ivory);font-size:24px;line-height:1;cursor:none;backdrop-filter:blur(6px);transition:background .25s,transform .25s,opacity .25s;opacity:.92}
.fe-nav:hover{background:var(--color-gold);color:var(--color-deep-ocean);border-color:var(--color-gold);opacity:1}
.fe-prev{left:18px} .fe-next{right:18px}
.fe-dots{position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);display:flex;gap:8px}
.fe-dots .fe-dot{width:8px;height:8px;border-radius:50%;border:0;background:rgba(245,241,232,.25);cursor:none;padding:0;transition:width .25s,background .25s}
.fe-dots .fe-dot.active{width:28px;background:var(--color-gold);border-radius:6px}
.fe-carousel + .events-grid{margin-top:46px}

/* featured event slide (used inside carousel) */
.featured-event{position:relative;display:grid;grid-template-columns:1.1fr 1fr;min-height:340px;overflow:hidden;cursor:none;background:var(--color-deep-ocean);text-decoration:none}
.fe-img{display:block;width:100%;height:100%;min-height:340px;position:relative;background-size:cover;background-position:center;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.fe-body{display:flex;flex-direction:column;justify-content:center}
.featured-event:hover .fe-img{transform:scale(1.05)}
.fe-body{position:relative;padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center;color:var(--color-ivory);background:linear-gradient(180deg,rgba(14,53,83,.92),rgba(7,29,48,.96))}
.fe-tag{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold)}
.fe-title{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,3.4vw,44px);line-height:1.02;margin:10px 0 6px}
.fe-meta{color:rgba(245,241,232,.78);font-size:15px}
.fe-count{display:flex;gap:18px;margin:24px 0}
.fe-cell{text-align:center}
.fe-cell b{display:block;font-family:var(--font-display);font-weight:700;font-size:30px;color:var(--color-ivory);font-variant-numeric:tabular-nums;line-height:1}
.fe-cell i{font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(245,241,232,.55)}
.fe-link{font-weight:600;color:var(--color-gold);font-size:15px;transition:gap .3s}
.featured-event:hover .fe-link{text-decoration:underline}

/* teachers */
.teachers{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,190px));justify-content:center;gap:24px}
.teacher{text-align:center}
.t-photo{display:block;width:100%;max-width:160px;aspect-ratio:1;margin:0 auto 16px;border-radius:50%;background-size:cover;background-position:center;border:3px solid #fff;box-shadow:0 18px 40px -22px rgba(14,53,83,.6);transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;filter:saturate(.92)}
.teacher:hover .t-photo{transform:translateY(-6px) scale(1.03);box-shadow:0 26px 50px -22px rgba(14,53,83,.7);border-color:var(--color-gold)}
.teacher b{display:block;color:var(--color-deep-ocean);font-family:var(--font-display);font-weight:600;font-size:16px}
.teacher span{font-size:13px;color:var(--muted-soft)}
/* Coming-soon: anonymous silhouette placeholders (non-interactive, no real face). */
.teacher.is-anon{cursor:default}
.teacher.is-anon .t-photo{position:relative;background:linear-gradient(155deg,var(--sage),#95a48f);filter:none;border-color:rgba(255,255,255,.85)}
.teacher.is-anon .t-photo::after{content:"";position:absolute;inset:0;border-radius:50%;background:center 60%/58% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='37' r='16' fill='%23F6F0E8'/%3E%3Cpath d='M20 88c0-16 13-29 30-29s30 13 30 29z' fill='%23F6F0E8'/%3E%3C/svg%3E");opacity:.9}
.teacher.is-anon:hover .t-photo{transform:none;box-shadow:0 18px 40px -22px rgba(14,53,83,.6);border-color:rgba(255,255,255,.85)}
.teacher.is-anon b{opacity:.68;font-size:14px;font-weight:500}
.teachers-soon-note{margin-top:10px;font-family:var(--font-body);font-size:14px;letter-spacing:.02em;color:var(--muted-soft)}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.qcard{background:#fff;border:1px solid var(--hair);border-radius:20px;padding:30px;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.qcard:hover{transform:translateY(-6px);box-shadow:0 28px 60px -34px rgba(14,53,83,.5)}
.qcard p{font-family:var(--font-accent);font-style:italic;font-size:19px;line-height:1.5;color:var(--color-deep-ocean)}
.qcard figcaption{display:flex;align-items:center;gap:12px;margin-top:22px}
.qa{width:46px;height:46px;border-radius:50%;background-size:cover;background-position:center;flex:none}
.qcard figcaption b{display:block;color:var(--color-deep-ocean);font-family:var(--font-display);font-weight:600;font-size:15px}
.qcard figcaption i{font-style:normal;font-size:13px;color:var(--muted-soft)}
.featured-q{background:var(--color-deep-ocean);border-color:transparent}
.featured-q p{color:var(--color-ivory)}
.featured-q figcaption b{color:var(--color-ivory)}
.featured-q figcaption i{color:rgba(245,241,232,.6)}

/* founded by jess */
.founder-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(40px,5vw,84px);align-items:center}
.founder-media{position:relative;display:flex;justify-content:center;padding:0 10% 7% 0}
.founder-glow{position:absolute;inset:-8%;z-index:0;background:radial-gradient(circle at 42% 38%,rgba(200,161,90,.26),rgba(31,158,154,.12) 45%,transparent 66%);filter:blur(22px);animation:bgGlow 5.5s ease-in-out infinite}
.founder-photo{position:relative;z-index:2;width:min(380px,86%);aspect-ratio:4/5;border-radius:24px;overflow:hidden;border:1px solid rgba(200,161,90,.45);box-shadow:0 44px 100px -44px rgba(0,0,0,.75)}
.founder-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.founder-media:hover .founder-photo img{transform:scale(1.04)}
.founder-chart{position:absolute;z-index:3;right:0;bottom:0;width:clamp(120px,15vw,168px);background:var(--color-ivory);border-radius:16px;padding:12px 12px 9px;box-shadow:0 28px 56px -22px rgba(0,0,0,.65);text-align:center;cursor:none;animation:bgFloat 7s ease-in-out infinite;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.founder-chart:hover{transform:translateY(-6px) scale(1.04)}
.founder-chart img{width:100%;height:auto;display:block}
.founder-chart figcaption{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold-deep);margin-top:8px}
.founder-copy .eyebrow{color:var(--color-gold)}
.founder-copy h2{color:var(--color-ivory);margin-bottom:14px}
.founder-quote{font-family:var(--font-accent);font-style:italic;font-size:clamp(22px,2.6vw,30px);line-height:1.42;color:var(--color-gold);margin:0 0 18px;max-width:20ch}
.founder-text{color:rgba(245,241,232,.8);max-width:48ch;margin:0 0 28px}
.founder-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn-outline-dark{border:1px solid rgba(245,241,232,.32);color:var(--color-ivory)}
.btn-outline-dark:hover{background:rgba(245,241,232,.08)}

/* partner experiences */
.partner-block{margin-top:54px;padding-top:42px;border-top:1px solid var(--hair)}
.partner-head{margin-bottom:22px}
.partner-sub{color:var(--muted);font-size:15px;margin-top:4px}
.partner-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.partner-card{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--hair);border-left:4px solid var(--color-emerald);border-radius:18px;padding:20px 22px;cursor:none;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.partner-card:hover{transform:translateY(-5px);box-shadow:0 26px 56px -34px rgba(14,53,83,.5)}
.pc-thumb{flex:none;width:86px;height:86px;border-radius:14px;background-size:cover;background-position:center;filter:saturate(.92)}
.pc-date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:78px;height:78px;border-radius:14px;background:rgba(62,122,99,.1);color:var(--color-emerald);line-height:1.1}
.pc-desc{display:block;font-size:13px;color:var(--muted-soft);margin-top:6px;max-width:34ch}
.partner-apply{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:24px;font-size:15px;color:var(--muted)}
.pc-date b{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.08em}
.pc-date i{font-style:normal;font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--color-deep-ocean)}
.pc-date u{text-decoration:none;font-size:11px;color:var(--muted-soft)}
.pc-body{flex:1}
.pc-tag{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-emerald);margin-bottom:4px}
.pc-title{display:block;font-family:var(--font-display);font-weight:600;font-size:21px;color:var(--color-deep-ocean)}
.pc-meta{display:block;font-size:14px;color:var(--muted);margin-top:3px}
.pc-link{flex:none;font-weight:600;font-size:14px;color:var(--color-gold-deep);white-space:nowrap}
.partner-card:hover .pc-link{text-decoration:underline}

/* miami past gathering — gold celebration tile */
.miami-banner{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,4vw,56px);align-items:center;background:linear-gradient(135deg,#E9C778 0%,#CBA55D 55%,#9A7528 100%);border:1px solid rgba(122,87,30,.25);border-radius:26px;padding:clamp(20px,2.4vw,32px);overflow:hidden;position:relative;color:var(--color-deep-ocean)}
.miami-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 100% 0%,rgba(255,255,255,.35),transparent 60%),radial-gradient(70% 50% at 0% 100%,rgba(255,255,255,.18),transparent 60%);pointer-events:none}
.mb-img{position:relative;z-index:1;min-height:320px;border-radius:18px;background-size:cover;background-position:center;overflow:hidden;animation:kenburns 18s ease-in-out infinite alternate;box-shadow:0 24px 60px -30px rgba(14,53,83,.5)}
@keyframes kenburns{from{background-size:108%;background-position:50% 40%}to{background-size:122%;background-position:52% 55%}}
@media (prefers-reduced-motion:reduce){.mb-img{animation:none}}
.mb-body{position:relative;z-index:1}
.mb-body .eyebrow{color:var(--color-deep-ocean);opacity:.85}
.mb-body h2{margin:6px 0 12px;color:var(--color-deep-ocean)}
.mb-body .lead{color:rgba(14,53,83,.82)}
.mb-date{margin-top:18px;font-size:13px;letter-spacing:.04em;color:rgba(14,53,83,.7)}

/* bigger vision / ecosystem (video bg) */
.eco-sec{position:relative;isolation:isolate;overflow:hidden}
.eco-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.7) brightness(.7) contrast(1.02)}
.eco-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,29,48,.86),rgba(8,32,54,.78)),radial-gradient(120% 80% at 50% 0%,rgba(31,158,154,.16),transparent 60%)}
.tree-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.tree-branch{position:relative;display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:none;background:rgba(245,241,232,.07);border:1px solid rgba(245,241,232,.16);backdrop-filter:blur(8px);border-radius:18px;padding:28px 24px;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,background .35s,border-color .35s}
.tree-branch:hover{transform:translateY(-6px);background:rgba(245,241,232,.1);border-color:rgba(200,161,90,.4);box-shadow:0 26px 56px -30px rgba(0,0,0,.6)}
.tree-branch .ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(200,161,90,.2);color:var(--color-gold);font-size:20px;margin-bottom:16px}
.tree-branch h3{color:var(--color-ivory);font-size:18px;margin-bottom:8px;max-width:14ch}
.tree-branch p{color:rgba(245,241,232,.74);font-size:14px}
.soon{position:absolute;top:16px;right:16px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ivory);background:rgba(62,122,99,.5);padding:4px 9px;border-radius:30px}

/* page footer spacing tweak handled by existing footer */

@media (max-width:820px){
  .brand-text{display:none}
  .corner{display:none}
  .nav-meta{display:none}
  .burger{display:flex}
  .float-join{display:block}
  .nav-links{position:fixed;inset:0;background:rgba(7,29,48,.97);backdrop-filter:blur(6px);flex-direction:column;align-items:center;justify-content:center;gap:30px;font-size:23px;transform:translateX(100%);transition:transform .45s cubic-bezier(.16,1,.3,1);z-index:56}
  body.menu-open .nav-links{transform:none}
  .nav-links a:not(.btn){color:var(--color-ivory)}
  .nav-links .btn{display:none}
  .hero-band{display:none}
  .hero-globe{width:200vw;height:200vw}
  .hero-aura{width:200vw;height:200vw}
  .hero-title{font-size:55px;line-height:1.02}
  .hero-title .accent-italic{font-size:1.16em}
  .hero-sub{font-size:17px;max-width:32ch}
  .hero-cta{margin-top:60px}
  .m-br{display:inline}
  .m-scrim{display:block}
  .hero-mbg{display:block}
  .hero-vignette{opacity:.35}
  .events-grid,.reader-grid,.reader-row{grid-template-columns:1fr}
  .welcome-grid{grid-template-columns:1fr;gap:36px}
  .welcome-visual{order:-1}
  .bodygraph{height:min(440px,52vh)}
  .bio-grid{grid-template-columns:1fr;gap:30px}
  .bio-photo{max-width:340px;margin:0 auto}
  .gallery-strip{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .gallery-strip .g-wide{grid-column:span 2}
  .tiers{grid-template-columns:1fr}
  .itin-grid{grid-template-columns:1fr;gap:36px}
  .itin-side{position:static}
  .mv-grid{grid-template-columns:1fr;gap:20px}
  .stats{grid-template-columns:repeat(2,1fr);gap:30px 16px}
  .stat:nth-child(odd):not(:last-child)::after{display:none}
  .stat:not(:last-child)::after{display:none}
  .pillars{grid-template-columns:1fr;gap:16px}
  .steps{grid-template-columns:1fr;gap:30px}
  .featured-event{grid-template-columns:1fr}
  .fe-img{min-height:200px}
  .fe-count{gap:12px}
  .teachers{grid-template-columns:repeat(2,1fr);gap:26px 18px}
  .quotes{grid-template-columns:1fr}
  .founder-grid{grid-template-columns:1fr;gap:40px}
  .founder-media{padding:0 14% 10% 0;max-width:360px;margin:0 auto}
  .learn-cta{flex-direction:column;gap:12px}
  .partner-cards{grid-template-columns:1fr}
  .partner-card{flex-direction:column;align-items:flex-start;text-align:left}
  .tree-grid{grid-template-columns:1fr 1fr;gap:14px}
  .miami-banner{grid-template-columns:1fr}
  .mb-img{min-height:200px}
  .check-list.two-col{grid-template-columns:1fr}
  .page-hero{min-height:64vh}
  .page-hero .wrap{padding-bottom:44px}
  .cd-cell{min-width:0;flex:0 0 calc(50% - 7px);padding:12px 8px}
  .countdown{max-width:300px;margin-left:auto;margin-right:auto}
  .cd-cell b{font-size:26px}
  .footer-grid{flex-direction:column;text-align:center}
  .footer-top{grid-template-columns:1fr;gap:34px}
  .footer-join{justify-self:stretch;max-width:none}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:16px}
  .footer-meta{text-align:left}
  .cursor{display:none}
  .lb-close{top:14px;right:16px}
  .btn,a,.event-card,.video,.brand,.burger,.r-card,.tier,.info-box,.acc-q{cursor:pointer}
}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}
  .reveal{opacity:1;transform:none;transition:none}
  .line-inner,.fade-up{opacity:1;transform:none}
}

/* =====================================================================
   v3 · WARM DAYLIGHT
   Same v1 structure & effects, re-skinned: cream-dominant, brand colours,
   real fonts (Aima Display / Ameliora / Cormorant / Inter), real logo.
   Light with multiple tinted section colours for rhythm.
   ===================================================================== */

/* --- real brand fonts --- */
@font-face{font-family:'Aima Display';src:url('assets/fonts/AimaDisplay.otf') format('opentype');font-weight:normal;font-style:normal;font-display:swap}
@font-face{font-family:'Ameliora';src:url('assets/fonts/Ameliora.otf') format('opentype');font-weight:normal;font-style:normal;font-display:swap}

:root{
  /* OFFICIAL brand palette — exact codes from the client's brand sheet.
     Black-Ink #2E3033 · Cream/Ivory #F6F0E8 · Off-White #F1F2F2 · Brand Teal #23A09A
     Deep Navy #093554 · Sage #A9B8A3 · Honey/Gold #CBA55D · Sunny Orange #E28F26
     Forest Green #03695B → #46A18B */
  --ink:#2E3033;             /* Black-Ink — body text on light */
  --ink-deep:#2E3033;
  --teal:#23A09A;            /* Brand Teal — primary accent, links, CTAs */
  --teal-deep:#1A7D6E;       /* darker teal for hover/contrast (derived) */
  --navy:#093554;            /* Deep Navy */
  --honey:#CBA55D;           /* Honey / Gold */
  --honey-deep:#9A7528;      /* accessible honey for text/icons on light (derived) */
  --honey-light:#E9C778;     /* light honey for highlights on dark (derived) */
  --sunny:#E28F26;           /* Sunny Orange */
  --sage:#A9B8A3;            /* Sage */
  --forest:#03695B;          /* Forest Green (start) */
  --forest-light:#46A18B;    /* Forest Green (end) */
  --cream:#F6F0E8;           /* Cream / Ivory — page background, calm tiles */
  --cream-2:#F1F2F2;         /* Off-White — modern surface, alt cream */
  --offwhite:#F1F2F2;        /* Off-White */
  /* tinted section backgrounds — soft washes derived from the brand colours */
  --tint-honey:#F6E9CE;      /* honey wash */
  --tint-sage:#DCE3D8;       /* sage wash */
  --tint-teal:#D3E6E2;       /* teal wash */
  --tint-offwhite:#F1F2F2;   /* off-white */
  /* secondary text + hairlines — derived from brand colours (no off-brand greys):
     muted text = Black-Ink at reduced opacity; hairlines = Sage at low opacity */
  --ink-soft:rgba(46,48,51,.82);    /* leads / soft body */
  --muted:rgba(46,48,51,.72);       /* secondary text, labels (AA: 5.07:1) */
  --muted-soft:rgba(46,48,51,.5);   /* faint meta / captions */
  --hair:rgba(169,184,163,.5);      /* sage hairline borders */

  /* re-map the legacy tokens so existing rules pick up warm values */
  --color-deep-ocean:var(--ink);
  --color-ivory:var(--cream);
  --color-gold:var(--honey);
  --color-gold-deep:var(--honey-deep);
  --color-lagoon:var(--teal);

  /* fonts */
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-accent:'Ameliora','Cormorant Garamond',cursive;
  --font-eyebrow:'Aima Display',Georgia,serif;
  --font-body:'Inter',system-ui,sans-serif;
}

/* base canvas → warm cream, warm ink */
body{background:var(--cream);color:var(--ink)}

/* headings: elegant feminine serif, a touch lighter & less tight than v1 */
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.005em;line-height:1.06;color:var(--ink)}
.section h2{font-size:clamp(30px,4.4vw,56px)}

/* eyebrows → real Aima Display, wide-tracked */
.eyebrow{font-family:var(--font-eyebrow);font-weight:400;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--honey-deep)}
.eyebrow-dark{color:var(--honey-deep)}
.band .eyebrow{color:var(--teal)}

/* script accent → Ameliora, ALWAYS with a stroke so it reads at the right weight.
   Rule: script only for SHORT, LARGE accents — never long body copy. */
.accent-italic,.accent-script,.amel,.signature,.story-pullquote{
  font-family:var(--font-accent);font-style:normal;font-weight:400;
  -webkit-text-stroke:.018em currentColor;text-stroke:.018em currentColor;
  paint-order:stroke fill;
}
/* long text that was set in script → back to a readable font */
.story-quote,.story-lead,.portrait-lead,.manifesto + .lead{
  font-family:var(--font-body) !important;-webkit-text-stroke:0 !important;
}

/* --- section colour rhythm (warm light + navy/forest anchors, NO blue tints) --- */
.section-light{background:var(--cream);color:var(--ink)}
#welcome{background:var(--cream)}
#learn{background:var(--cream-2)}          /* was honey (disliked) → calm cream */
#how{background:var(--tint-offwhite)}
#events{background:var(--cream)}
#teachers{background:var(--sage)}
#founder{background:var(--cream-2)}
#faq{background:var(--cream)}
.section h2,.section h3{color:var(--ink)}
.section .lead,.section-light .lead{color:rgba(44,79,74,.74)}
.on-dark{color:var(--ink)}
.on-dark-sub{color:rgba(44,79,74,.72)}

/* WHY band → calm sage band (was teal/blue tint) */
.band{background:var(--tint-sage);border-top:1px solid rgba(169,184,163,.4);border-bottom:1px solid rgba(169,184,163,.4)}
.band .quote,.band .on-dark{color:var(--ink) !important}
.band .lead,.band .on-dark-sub{color:rgba(44,79,74,.74) !important}
.band-stars{display:none}
.band-glow{background:radial-gradient(closest-side,rgba(169,184,163,.3),rgba(203,165,93,.1) 50%,transparent 72%)}
.band-mark{color:rgba(124,181,154,.3)}
.band-rule{background:linear-gradient(90deg,transparent,var(--forest-light),transparent)}

/* READER → deep NAVY anchor, cream text, dark cards stay */
#reader{background:linear-gradient(170deg,#0c4360 0%,var(--navy) 100%)}
#reader h2,#reader .on-dark{color:var(--cream) !important}
#reader .lead,#reader .on-dark-sub{color:rgba(248,244,236,.8) !important}
#reader .eyebrow{color:var(--honey)}
#reader .btn-outline{border-color:rgba(248,244,236,.5);color:var(--cream)}
#reader .btn-outline:hover{background:var(--cream);color:var(--navy)}

/* ECOSYSTEM → sage section, video off, glass→white cards */
.eco-sec{background:var(--tint-sage)}
.eco-video{display:none}
.eco-scrim{background:none}
#ecosystem h2,#ecosystem .on-dark{color:var(--ink) !important}
#ecosystem .lead,#ecosystem .on-dark-sub{color:rgba(44,79,74,.74) !important}
#ecosystem .eyebrow{color:var(--honey-deep)}
.tree-branch{background:#fff;border:1px solid rgba(169,128,58,.22);backdrop-filter:none;color:var(--ink);box-shadow:0 14px 36px -24px rgba(44,79,74,.2)}
.tree-branch:hover{background:var(--cream-2);border-color:var(--honey);box-shadow:0 24px 56px -28px rgba(169,128,58,.28)}
.tree-branch h3{color:var(--ink)}
.tree-branch p{color:rgba(44,79,74,.74)}
.tree-branch .ic{background:rgba(203,165,93,.2);color:var(--honey-deep)}

/* VISION → THE single deep anchor: forest gradient, white text, honey CTA */
#vision{background:linear-gradient(165deg,var(--forest) 0%,var(--ink-deep) 100%)}
.vision-card{background:rgba(255,255,255,.06);border:1.5px solid rgba(203,165,93,.5);box-shadow:0 40px 90px -50px rgba(0,0,0,.5)}
.vision-card .eyebrow,.vision-card .eyebrow-clay{color:var(--honey)}
.vision-card h2,.vision-card .on-dark{color:#fff !important}
.vision-card .lead,.vision-card .on-dark-sub{color:rgba(248,244,236,.85) !important}
.vision-card .heart{color:var(--sunny)}
.vision-card::before{background:radial-gradient(420px circle at var(--mx,70%) var(--my,0%),rgba(203,165,93,.3),rgba(226,143,38,.12) 40%,transparent 62%)}
/* Secondary "Become a sponsor" CTA sits on the DARK vision-card → force a light
   ghost style so it's readable (btn-ghost-dark's deep-ocean text was invisible). */
.vision-card .btn-ghost-dark{border-color:rgba(246,240,232,.55);color:var(--cream);background:rgba(255,255,255,.05)}
.vision-card .btn-ghost-dark:hover{border-color:var(--cream);background:rgba(246,240,232,.14);color:#fff}

/* --- cards & surfaces: warm borders, warm soft shadows, softer radius --- */
.info-box,.stay-card,.tier,.partner-card,.event-card,.teacher,.r-card,.featured-event,.miami-banner{
  border-radius:22px
}
.info-box{background:#fff;border:1px solid rgba(169,128,58,.18);box-shadow:0 12px 32px -22px rgba(44,79,74,.22)}
.info-box:hover{box-shadow:0 24px 56px -28px rgba(44,79,74,.28);border-color:rgba(169,128,58,.4)}
.info-box h3{color:var(--ink)}
.info-box p{color:rgba(44,79,74,.74)}
.info-box .ic{background:rgba(35,160,154,.12);color:var(--teal)}

/* --- buttons: honey primary, teal & ink secondary, pill --- */
.btn{border-radius:50px;font-weight:600}
.btn-gold{background:var(--honey);color:#3a2c10;box-shadow:0 12px 28px -14px rgba(169,128,58,.5)}
.btn-gold:hover{background:#CBA55D;transform:translateY(-2px)}
.btn-outline{border-color:var(--teal);color:var(--teal-deep);background:transparent}
.btn-outline:hover{background:var(--teal);color:#fff}
.btn-deep{background:var(--teal);color:#fff}
.btn-deep:hover{background:var(--teal-deep)}
.btn-ghost{border-color:rgba(44,79,74,.3);color:var(--ink);background:rgba(255,255,255,.5)}
.btn-ghost:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.btn-clay{background:var(--sunny);color:var(--ink)}
.btn-emerald{background:var(--forest-light);color:#fff}

/* --- HERO → warm DEEP anchor: forest-teal backdrop, luminous globe, legible cream text.
   Warm (not cold navy), confident, premium. Globe is the focal point again. --- */
.hero{background:
  radial-gradient(115% 90% at 50% 38%, #1c7268 0%, #0f5750 42%, #0a423d 72%, #07332f 100%)}
.hero-aura{background:radial-gradient(circle,rgba(45,180,168,.4) 0%,rgba(203,165,93,.16) 34%,rgba(10,66,61,.05) 55%,transparent 72%)}
/* image band: subtle texture behind, darkened so it never competes with text */
.hero-band{opacity:.32 !important;filter:blur(3px) saturate(.7) brightness(.62) contrast(1.02) !important}
.hero-blue{background:#0c4f48;mix-blend-mode:multiply;opacity:.35 !important}
/* dark vignette focuses the centre and guarantees text contrast */
.hero-vignette{background:radial-gradient(125% 105% at 50% 42%,transparent 30%,rgba(7,51,47,.55) 70%,rgba(7,51,47,.92) 100%) !important}
/* globe: present & luminous again */
#globeViz{opacity:1 !important;mix-blend-mode:normal !important}
.hero-globe canvas{filter:brightness(1.04) contrast(1.05) saturate(.7) sepia(.12) hue-rotate(125deg) !important}
/* cream text with real contrast */
.hero-content{color:var(--cream)}
.hero-title{font-family:var(--font-display);font-weight:500;font-size:clamp(50px,8vw,108px);letter-spacing:-.01em;line-height:1.02;color:var(--cream);text-shadow:0 2px 30px rgba(7,51,47,.5)}
.hero-title .accent-script{color:#23A09A !important;-webkit-text-stroke-color:#23A09A !important}
.hero-sub{color:rgba(248,244,236,.86)}
.hero-eyebrow,.nav-meta{color:rgba(248,244,236,.62) !important;text-shadow:none}
.scroll-cue{color:rgba(248,244,236,.6)}
.scroll-cue::after,.scroll-cue span+*{background:rgba(248,244,236,.45)}
/* soft dark scrim behind the text block → 4.5:1 contrast guaranteed */
.hero-content::before{content:"";position:absolute;inset:-40px -90px;z-index:-1;background:radial-gradient(58% 62% at 50% 50%,rgba(7,51,47,.5),transparent 72%);pointer-events:none;border-radius:50%}
/* hero buttons on deep bg */
.hero .btn-gold{background:var(--honey);color:#3a2c10}
.hero .btn-outline{border-color:rgba(248,244,236,.6);color:var(--cream)}
.hero .btn-outline:hover{background:var(--cream);color:var(--forest)}

/* --- NAV → cream over the deep hero, warm-solid (dark text) when scrolled --- */
.nav{background:linear-gradient(rgba(7,51,47,.55),rgba(7,51,47,0))}
.nav .brand-mark{background-color:transparent !important}
.nav-links a:not(.btn){color:rgba(248,244,236,.88)}
.nav-links a:not(.btn):hover{color:#fff}
.nav-links a:not(.btn)::after{background:var(--honey)}
.nav .btn-ghost{border-color:rgba(248,244,236,.45);color:var(--cream);background:rgba(255,255,255,.06)}
.nav .btn-ghost:hover{background:var(--cream);color:var(--forest);border-color:var(--cream)}
.nav-meta .dot{color:var(--honey)}
.nav-back{color:rgba(248,244,236,.8)}
.nav-back:hover{color:#fff}
/* solid (scrolled onto light body) → cream surface, dark text, teal logo */
.nav.is-solid{background:rgba(248,244,236,.92);backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 1px 0 rgba(44,79,74,.08)}
.nav.is-solid .brand-mark{background-color:var(--teal) !important}
.nav.is-solid .nav-links a:not(.btn){color:rgba(44,79,74,.82)}
.nav.is-solid .nav-links a:not(.btn):hover{color:var(--honey-deep)}
.nav.is-solid .nav-meta{color:rgba(44,79,74,.55) !important}
.nav.is-solid .btn-ghost{border-color:rgba(44,79,74,.3);color:var(--ink);background:rgba(255,255,255,.5)}
.nav.is-solid .btn-ghost:hover{background:var(--teal);color:#fff;border-color:var(--teal)}

/* --- STATS band, MIAMI banner → warm --- */
.stats-band{background:var(--cream-2)}
.miami-banner{background:linear-gradient(135deg,#E9C778,#CBA55D 60%,#9A7528);border:1px solid rgba(44,79,74,.16);color:var(--ink)}
.miami-banner .eyebrow{color:var(--navy)}
.miami-banner h2,.miami-banner .on-dark{color:var(--navy) !important}
.miami-banner .lead,.miami-banner .on-dark-sub{color:rgba(9,53,84,.82) !important}

/* --- PRELOADER → cream with the real logo --- */
.preloader{background:radial-gradient(120% 90% at 50% 35%,#fff 0%,var(--cream) 60%,var(--cream-2) 100%)}
.pre-title{color:var(--ink);font-family:var(--font-eyebrow);letter-spacing:.34em}
.pre-bar{background:rgba(169,128,58,.18)}
.pre-bar span{background:var(--honey)}

/* --- FOOTER → deep forest anchor with white logo --- */
.footer{background:linear-gradient(180deg,var(--forest) 0%,var(--ink-deep) 100%);border-top:none;color:var(--cream)}
.footer a,.footer p,.footer-tag,.footer-meta{color:rgba(248,244,236,.78)}
.footer h3{color:#fff}
.footer-credit{color:var(--honey)}
.footer-social svg{fill:rgba(248,244,236,.8)}

/* --- the real Jess logo, layout + colour auto-matched to context --- */
.brand-text{display:none}
.brand-mark,.pre-mark{background-color:var(--teal)}
.brand-mark > *,.pre-mark > *{display:none}
/* nav → icon only (legible at small size) */
.nav .brand-mark{
  width:46px;height:46px;
  -webkit-mask:url('assets/logo-icon.svg') no-repeat center / contain;
          mask:url('assets/logo-icon.svg') no-repeat center / contain;
}
/* preloader → full vertical lockup */
.pre-mark{
  width:130px;height:130px;background-color:var(--teal);
  -webkit-mask:url('assets/logo-ver.svg') no-repeat center / contain;
          mask:url('assets/logo-ver.svg') no-repeat center / contain;
  animation:preFloat 2.6s ease-in-out infinite}
/* footer → full vertical lockup, cream on the dark anchor */
.footer .brand-mark{
  width:96px;height:96px;background-color:var(--cream);
  -webkit-mask:url('assets/logo-ver.svg') no-repeat center / contain;
          mask:url('assets/logo-ver.svg') no-repeat center / contain;
}
@keyframes preFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* hide the internal theme-switcher for the client review build */
.theme-switch{display:none !important}

/* --- PILLARS (Learn) → white cards on honey, were built for dark bg --- */
.pillar{background:#fff;border:1px solid rgba(169,128,58,.24);box-shadow:0 12px 32px -24px rgba(44,79,74,.2)}
.pillar:hover{background:var(--cream-2);border-color:var(--honey);box-shadow:0 22px 50px -28px rgba(169,128,58,.3)}
.pillar.open{background:var(--cream-2);border-color:var(--honey-deep)}
.pillar h3{color:var(--ink)}
.pillar p{color:rgba(44,79,74,.74)}
.pillar-more{color:rgba(44,79,74,.7)}
.pillar-no{color:var(--honey-deep)}
.pillar-toggle{border-color:var(--honey-deep);color:var(--honey-deep)}
.pillar.open .pillar-toggle{background:var(--honey);color:#3a2c10;border-color:var(--honey)}

/* --- STEPS (How it works) → readable on offwhite --- */
.step{color:var(--ink)}
.step h3{color:var(--ink)}
.step p{color:rgba(44,79,74,.74)}
.step-no{color:var(--honey-deep)}

/* --- generic: any leftover glassy white-on-dark cards across sections --- */
.event-card,.partner-card,.r-card,.teacher,.stay-card,.tier,.quote-card,.faq-item,.acc-item{color:var(--ink)}
.acc-item{border-color:rgba(44,79,74,.14)}
.acc-q{color:var(--ink)}
.acc-a p{color:rgba(44,79,74,.74)}

/* keep nav-meta from colliding with the links on mid widths */
@media (max-width:1459px){.nav-meta{display:none}}

/* --- check-lists: were cream for dark bg; force ink on the now-light cards --- */
.check-list li,.itin-card .check-list li,
.section:not(.band) .check-list li{color:var(--ink) !important}
.itin-card{background:#fff;border:1px solid rgba(35,160,154,.18);box-shadow:0 16px 40px -26px rgba(44,79,74,.25)}
.itin-card h3{color:var(--ink)}
/* ireland timeline glass cards → readable white */
.tl-item.rich{background:#fff;border:1px solid rgba(44,79,74,.12);box-shadow:0 14px 36px -26px rgba(44,79,74,.22);backdrop-filter:none}
.tl-item.rich:hover{background:var(--cream-2);border-color:rgba(35,160,154,.3)}
.tl-item h3{color:var(--ink)}
.tl-item p{color:rgba(44,79,74,.74)}
.tl-day{color:var(--teal-deep)}
.tl-times li{color:rgba(44,79,74,.7)}
.tl-times b{color:var(--ink)}

/* --- ABOUT page: lighten its two dark sections --- */
.moments-sec{background:var(--tint-sage)}
.moments-sec .eyebrow{color:var(--honey-deep)}
.moments-sec h2,.moments-sec .on-dark{color:var(--ink) !important}
/* manifesto (mission/vision) → elegant deep forest anchor, like #vision */
.manifesto-sec{background:linear-gradient(165deg,var(--forest) 0%,var(--ink-deep) 100%)}
.manifesto-sec .eyebrow{color:var(--honey)}
.manifesto{font-family:var(--font-accent);color:var(--honey);font-style:normal}
.manifesto-sec .lead,.manifesto-sec .on-dark-sub{color:rgba(248,244,236,.85) !important}
/* about story quote accent → ameliora */
.story-pullquote,.story-quote{font-family:var(--font-accent);font-style:normal}

/* portrait hero (about) breadcrumb + photo border warm */
.portrait-hero{background:var(--cream)}
.founder-photo{border-color:rgba(203,165,93,.5)}

/* about's always-solid nav → warm cream, not dark navy */
body.nav-always-solid .nav{background:rgba(248,244,236,.92);box-shadow:0 1px 0 rgba(44,79,74,.08)}
.portrait-hero .breadcrumb,.portrait-hero .breadcrumb a{color:var(--honey-deep)}
.portrait-eyebrow{color:var(--honey-deep)}
.portrait-h1{font-family:var(--font-display);color:var(--ink);font-weight:600}
.portrait-h1 .accent-italic{font-family:var(--font-accent);color:var(--honey-deep)}
.portrait-lead{color:rgba(44,79,74,.74)}
.signature{font-family:var(--font-accent);color:var(--honey-deep);font-style:normal}

/* float-join → honey */
.float-join{background:var(--honey);color:#3a2c10}

/* selection */
::selection{background:var(--honey);color:#3a2c10}

/* =====================================================================
   v3 · BATCH REVISIONS (client feedback round)
   ===================================================================== */

/* #8 — CREAM is our white. Card/surface whites → cream (background-COLOR only,
   so image-bearing cards keep their thumbnails). Never pure #fff. */
.info-box,.stay-card,.tier,.partner-card,.acc-item,.mv-card,
.qcard,.pillar,.itin-card,.tl-item.rich,.tree-branch,
.chart-form input,.wiz-input,.wiz-tier,.wiz-room,.signup input,
.modal-close,.modal-card{
  background-color:var(--cream-2) !important;
}
.info-box,.pillar,.tree-branch,.mv-card,.qcard,.partner-card,.itin-card{
  border-color:rgba(169,128,58,.2)
}

/* #1 — PRELOADER: icon only (the title text below already carries the wordmark) */
.pre-mark{
  -webkit-mask:url('assets/logo-icon.svg') no-repeat center / contain !important;
          mask:url('assets/logo-icon.svg') no-repeat center / contain !important;
  width:110px !important;height:110px !important;
}

/* #2 — HEADER logo: horizontal lockup (tight-cropped), larger */
.nav .brand{display:flex;align-items:center}
.nav .brand-mark{
  width:204px !important;height:51px !important;
  -webkit-mask:url('assets/logo-hor-tight.svg') no-repeat left center / contain !important;
          mask:url('assets/logo-hor-tight.svg') no-repeat left center / contain !important;
  background-color:var(--cream) !important;   /* cream over deep hero */
}
.nav.is-solid .brand-mark{background-color:transparent !important}

/* #16 — FOOTER logo much larger (vertical, tight-cropped) */
.footer .brand-mark{
  width:212px !important;height:178px !important;background-color:var(--cream) !important;
  -webkit-mask:url('assets/logo-ver-tight.svg') no-repeat center / contain !important;
          mask:url('assets/logo-ver-tight.svg') no-repeat center / contain !important;
}

/* #3 — HERO background images: subtle texture on the deep backdrop (superseded by deep-hero block above) */
.hero-band{opacity:.32 !important;filter:blur(3px) saturate(.7) brightness(.62) contrast(1.02) !important}

/* #4 — HERO headline three lines; script line big + stroked (light teal on deep bg) */
.hero-title .accent-script{
  display:inline-block;font-family:var(--font-accent);color:#23A09A;font-weight:400;
  font-size:.92em;line-height:1.1;margin-top:.06em;
  -webkit-text-stroke:.02em #23A09A;text-stroke:.02em #23A09A;paint-order:stroke fill;
}

/* #5 — STATS band: readable. Numbers forest, labels ink. */
.stats-band{background:var(--cream-2)}
.stat b,.stat-num{color:var(--honey-deep) !important}
.stat span,.stat-label{color:rgba(44,79,74,.78) !important;font-weight:500}

/* #6a — WELCOME pillars as a 2x2 grid, staggered reveal */
.welcome-pillars{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:480px}
.welcome-pillars .wp{display:flex;align-items:center;gap:10px;background:var(--cream-2);border:1px solid rgba(169,128,58,.22);border-radius:16px;padding:14px 18px;font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--ink);box-shadow:0 10px 28px -22px rgba(44,79,74,.25)}
.welcome-pillars .wp-ic{color:var(--honey-deep);font-size:13px}
@media (max-width:560px){.welcome-pillars{grid-template-columns:1fr;max-width:none}}

/* #6b — bodygraph embed framing */
.bodygraph-wrap .bg-embed{display:block;width:100%;max-width:420px;margin:0 auto;min-height:520px;border-radius:18px;overflow:hidden;position:relative;z-index:2}

/* #7 — plain-language chart calculator embed (replaces button) */
.chart-embed-wrap{margin-top:40px;background:var(--cream-2);border:1px solid rgba(169,128,58,.22);border-radius:26px;padding:clamp(24px,3vw,40px);box-shadow:0 20px 50px -34px rgba(44,79,74,.3)}
.chart-embed-head{text-align:center;margin-bottom:22px}
.chart-embed-head h3{font-family:var(--font-display);font-size:clamp(22px,2.6vw,30px);color:var(--ink);margin:4px 0 6px}
.chart-embed-head .learn-note{color:rgba(44,79,74,.6);font-size:14px}
.chart-embed-frame{min-height:480px;border-radius:16px;overflow:hidden;background:var(--cream)}
.chart-embed-frame bodygraph-embed{display:block;width:100%;min-height:480px}

/* #11 — MIAMI past gathering → navy banner */
.miami-banner{background:linear-gradient(150deg,#0c4360,var(--navy)) !important;border:1px solid rgba(9,53,84,.4) !important;color:var(--cream) !important}
.miami-banner .eyebrow{color:var(--honey) !important}
.miami-banner h2,.miami-banner .on-dark{color:var(--cream) !important}
.miami-banner .lead,.miami-banner .on-dark-sub{color:rgba(248,244,236,.82) !important}
.miami-banner .btn-deep,.miami-banner .btn-outline{background:var(--honey);color:#3a2c10;border-color:var(--honey)}

/* #13 — JESS / founder section: readable. Script lead → readable serif, body → ink */
.founder-quote{
  font-family:var(--font-display) !important;font-style:italic !important;-webkit-text-stroke:0 !important;
  color:var(--ink) !important;font-size:clamp(20px,2.3vw,26px) !important;line-height:1.4 !important;font-weight:500
}
.founder-text{color:rgba(44,79,74,.82) !important;font-family:var(--font-body) !important}
.founder-sec h2,.founder-sec .on-dark{color:var(--ink) !important}
.founder-sec .eyebrow{color:var(--honey-deep) !important}
.founder-chart{background:var(--cream-2);border:1px solid rgba(169,128,58,.2);border-radius:18px;padding:10px}
.founder-chart figcaption{font-family:var(--font-eyebrow);letter-spacing:.16em;color:var(--honey-deep)}
/* the decorative "Jess's Design" mini chart had no channels → swap for real embed */
.founder-chart-embed{display:block;width:100%;max-width:300px;min-height:420px;border-radius:18px;overflow:hidden}

/* #14 — ECOSYSTEM: restore the video background (deep anchor) */
#ecosystem{background:var(--navy)}
.eco-sec .eco-video{display:block !important;filter:saturate(.8) brightness(.55) contrast(1.02)}
.eco-sec .eco-scrim{background:linear-gradient(180deg,rgba(9,53,84,.82),rgba(3,38,32,.88)),radial-gradient(120% 80% at 50% 0%,rgba(35,160,154,.16),transparent 60%) !important}
#ecosystem h2,#ecosystem .on-dark{color:var(--cream) !important}
#ecosystem .lead,#ecosystem .on-dark-sub{color:rgba(248,244,236,.82) !important}
#ecosystem .eyebrow{color:var(--honey) !important}
.tree-branch{background:rgba(248,244,236,.08) !important;border:1px solid rgba(248,244,236,.18) !important;backdrop-filter:blur(8px);color:var(--cream) !important}
.tree-branch:hover{background:rgba(248,244,236,.14) !important;border-color:rgba(203,165,93,.45) !important}
.tree-branch h3{color:var(--cream) !important}
.tree-branch p{color:rgba(248,244,236,.78) !important}
.tree-branch .ic{background:rgba(203,165,93,.2) !important;color:var(--honey) !important}
.tree-branch .soon{background:rgba(124,181,154,.3);color:var(--cream)}

/* #15 — VISION "Plant a Seed" → radial gradient, light centre → dark edges */
#vision{background:radial-gradient(120% 120% at 50% 45%,#1a7d6e 0%,var(--forest) 42%,var(--ink-deep) 100%) !important}

/* #17 — JOIN button (footer signup) → sunny orange test */
.footer-form .btn,.footer-join .btn{background:var(--sunny) !important;color:#fff !important}
.footer-form .btn:hover,.footer-join .btn:hover{background:#cf8020 !important}

/* ===== IRELAND (The Pilgrimage) — restore a coherent, legible deep hero ===== */
/* guaranteed deep forest hero. The coastal video washed out the centered text
   in some renderers, so we use a heavily-darkened static coast image + forest
   gradient instead of the live video — reliable, always legible. */
.page-hero{
  background:
    linear-gradient(180deg, rgba(8,51,46,.78), rgba(8,51,46,.6) 35%, rgba(6,40,36,.9)),
    url('assets/img/0d795e23881e2e7f55eff3bec0aed8eb.jpg') center/cover no-repeat,
    #08332e !important;
}
.page-hero-video{display:none !important}
.page-hero::after{
  z-index:1 !important;
  background:radial-gradient(110% 95% at 50% 50%, rgba(8,51,46,.4) 0%, rgba(8,51,46,.3) 55%, rgba(8,51,46,.7) 100%) !important;
}
.ph-globe{background:transparent !important}
.page-hero h1{color:var(--cream) !important;text-shadow:0 2px 30px rgba(7,51,47,.6)}
.page-hero .page-sub{color:rgba(248,244,236,.92) !important;text-shadow:0 1px 18px rgba(7,51,47,.6)}
.page-hero .eyebrow{color:#46A18B !important;text-shadow:0 1px 14px rgba(7,51,47,.6)}
.page-hero .breadcrumb,.page-hero .breadcrumb a{color:rgba(248,244,236,.8) !important}
.page-hero .countdown b,.page-hero [data-cd]{color:var(--cream) !important}
.page-hero .countdown span{color:rgba(248,244,236,.7) !important}
.page-hero .cd-cell{border-color:rgba(248,244,236,.25) !important}
/* ireland standalone nav: cream over the deep hero */
body.landing .nav .brand-mark{background-color:transparent !important}
body.landing .nav.is-solid .brand-mark{background-color:transparent !important}
.nav-landing .nav-back{color:rgba(248,244,236,.85)}
.nav-landing .btn-emerald{background:var(--forest-light);color:#fff}

/* #10 — long quote in the WHY band must be readable (not script) */
.band .quote{
  font-family:var(--font-display) !important;font-style:italic !important;
  -webkit-text-stroke:0 !important;font-weight:500;
  font-size:clamp(22px,2.6vw,32px) !important;line-height:1.4 !important;color:var(--ink) !important;
}
/* bodygraph embeds: give them a clean cream frame, remove default shadow */
bodygraph-embed{display:block;background:var(--cream);border-radius:14px;overflow:hidden}
.founder-chart bodygraph-embed{min-height:380px}

/* =====================================================================
   v3 · BATCH 2 — client feedback (cursor, globe, bold, headings, miami)
   ===================================================================== */

/* --- CURSOR: the custom dot lagged and the native cursor showed through.
   Disable the custom cursor entirely; restore normal + pointer cursors. --- */
.cursor{display:none !important}
html,body{cursor:auto}
a,button,summary,label,select,input[type="submit"],
[data-cursor],[data-vision],[data-join],[data-soon],[data-book],[data-moment],
[data-teacher],[data-chart],[data-fe-prev],[data-fe-next],[data-fe-dot],
.btn,.pillar,.tree-branch,.acc-q,.teacher,.r-card,.event-card,.partner-card,
.bio-photo-stack,.gallery-strip a,.moments-strip figure,.ts-dot,.burger{cursor:pointer !important}

/* --- HERO globe: single-colour teal style (like v1) instead of realistic earth --- */
/* dampened, soft globe — desaturated & gentle, NO hue-rotate so the honey arcs
   keep their gold colour. A teal glow behind (hero-aura) ties it to the brand. */
.hero-globe canvas{
  filter:saturate(.45) contrast(.85) brightness(.82) !important;
}
#globeViz{opacity:.95 !important;mix-blend-mode:normal !important}
/* soft teal veil over the globe edges (radial, fades to clear centre so arcs stay crisp) */
.hero-globe::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle at 50% 50%, transparent 40%, rgba(15,87,80,.35) 78%, rgba(8,51,46,.6) 100%);
  mix-blend-mode:multiply}

/* --- "Explore the World." bolder --- */
.hero-title{font-weight:700 !important}
.hero-title .line-inner{font-weight:700}
.hero-title .accent-script{font-weight:400 !important}  /* script stays its natural weight */

/* --- section headings: don't break short titles onto two lines on desktop --- */
@media (min-width:760px){
  .section-head h2{max-width:none;white-space:nowrap}
}
@media (max-width:759px){
  .section-head h2{white-space:normal}
}

/* --- MIAMI: section gets its own tinted background; banner deeper w/ gradient + shadow --- */
#miami{background:var(--tint-sage)}
.miami-banner{
  background:linear-gradient(135deg,#0e4e6e 0%,#093554 55%,#06283f 100%) !important;
  border:1px solid rgba(255,255,255,.08) !important;
  box-shadow:0 40px 90px -40px rgba(9,53,84,.7),inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.mb-img{box-shadow:0 24px 60px -28px rgba(0,0,0,.55)}

/* --- READER section: deeper gradient + premium shadows (client: "deeper, gradient, schatten") --- */
#reader{
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(35,160,154,.18), transparent 55%),
    linear-gradient(175deg,#0c4763 0%,#093554 45%,#06283f 100%) !important;
}
#reader .r-card,#reader .reader-card{
  box-shadow:0 30px 70px -34px rgba(0,0,0,.7),0 2px 0 rgba(255,255,255,.06) inset !important;
  border:1px solid rgba(255,255,255,.1) !important;
}
#reader .r-card:hover{transform:translateY(-6px);box-shadow:0 40px 90px -34px rgba(0,0,0,.8) !important}
/* teachers grid: keep tidy with 15 cards (wraps nicely) */
.teachers{flex-wrap:wrap;justify-content:center;gap:22px 18px}

/* =====================================================================
   v3 · BATCH 3 — Ireland colour variety + index band + sticky glance
   ===================================================================== */

/* --- INDEX: "Why we're building this" band → distinct warm sage-teal tone --- */
.band{background:linear-gradient(180deg,#D3E6E2 0%,#DCE3D8 100%) !important}
.band .quote{color:#1f4f48 !important}
.band .eyebrow{color:var(--teal-deep) !important}

/* ===== IRELAND — give each section its own colour + rhythm + animation ===== */

/* THE FOUR DAYS (itinerary) → deep forest anchor (green), glass cards, sticky glance */
.theme-ireland #itinerary{
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(35,160,154,.16), transparent 55%),
    linear-gradient(170deg,#0f5a50 0%,#0a463e 55%,#073330 100%) !important;
}
.theme-ireland #itinerary h2,.theme-ireland #itinerary .on-dark{color:var(--cream) !important}
.theme-ireland #itinerary .eyebrow{color:#46A18B !important}
.theme-ireland #itinerary .tl-item.rich{
  background:rgba(248,244,236,.07) !important;border:1px solid rgba(248,244,236,.16) !important;
  backdrop-filter:blur(10px);box-shadow:0 24px 60px -34px rgba(0,0,0,.6) !important;
}
.theme-ireland #itinerary .tl-item h3{color:var(--cream) !important}
.theme-ireland #itinerary .tl-item p{color:rgba(248,244,236,.82) !important}
.theme-ireland #itinerary .tl-day{color:#46A18B !important}
.theme-ireland #itinerary .tl-times li{color:rgba(248,244,236,.78) !important}
.theme-ireland #itinerary .tl-times b{color:var(--cream) !important}
.theme-ireland #itinerary .tl-item.rich::before{background:#46A18B !important}
.theme-ireland #itinerary .timeline.rich{border-left-color:rgba(143,224,207,.4) !important}
/* "At a glance" → glass card that scrolls/sticks with the page */
.itin-side{position:sticky;top:100px;align-self:start}
.theme-ireland #itinerary .itin-card{
  background:rgba(248,244,236,.1) !important;border:1px solid rgba(248,244,236,.2) !important;
  backdrop-filter:blur(14px);box-shadow:0 30px 70px -36px rgba(0,0,0,.6) !important;
}
.theme-ireland #itinerary .itin-card h3,.theme-ireland #itinerary .itin-card .check-list li{color:var(--cream) !important}

/* CHOOSE HOW YOU REST (stay) → sage-green tint section */
.theme-ireland #stay{background:#DCE3D8 !important}

/* YOUR TEACHERS (ireland) → warm honey-cream tint */
.theme-ireland #ire-teachers{background:#F6F0E8 !important}

/* CHOOSE YOUR PLACE (reserve/pricing) → deep navy anchor (blue) */
.theme-ireland #reserve{
  background:linear-gradient(170deg,#0c4763 0%,#093554 55%,#06283f 100%) !important;
}
.theme-ireland #reserve h2,.theme-ireland #reserve .on-dark{color:var(--cream) !important}
.theme-ireland #reserve .eyebrow{color:var(--honey) !important}
.theme-ireland #reserve .lead,.theme-ireland #reserve .on-dark-sub{color:rgba(248,244,236,.82) !important}
.theme-ireland #reserve .tier{background:var(--cream-2) !important}
.theme-ireland #reserve .tier.featured{box-shadow:0 36px 90px -34px rgba(0,0,0,.5) !important}

/* a little more life: animate the timeline cards in with a gentle float on hover */
.theme-ireland .tl-item.rich{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,background .4s}
.theme-ireland .tl-item.rich:hover{transform:translateY(-5px)}

/* =====================================================================
   v3 · BATCH 4 — about nav, mission text, vision builder, preloader, Jess
   ===================================================================== */

/* --- ABOUT nav (always-solid): light cream bar with DARK logo + ink links
   (my deep-hero nav rules had made the logo/links cream = invisible here) --- */
body.nav-always-solid .nav{background:rgba(248,244,236,.95) !important;backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 1px 0 rgba(44,79,74,.1) !important}
body.nav-always-solid .nav .brand-mark{background-color:transparent !important}
body.nav-always-solid .nav-links a:not(.btn){color:rgba(44,79,74,.82) !important}
body.nav-always-solid .nav-links a:not(.btn):hover{color:var(--honey-deep) !important}
body.nav-always-solid .nav .btn-ghost{border-color:rgba(44,79,74,.3) !important;color:var(--ink) !important;background:rgba(255,255,255,.5) !important}
body.nav-always-solid .nav .btn-ghost:hover{background:var(--teal) !important;color:#fff !important;border-color:var(--teal) !important}
body.nav-always-solid .nav-meta{display:none !important}
/* give the portrait hero clearance below the fixed nav */
body.nav-always-solid .portrait-hero{padding-top:clamp(120px,13vw,170px)}

/* --- MISSION & VISION quote → bigger + brighter (cream, not honey) --- */
.manifesto-sec .manifesto{
  font-family:var(--font-accent) !important;color:#F6F0E8 !important;
  font-size:clamp(28px,3.5vw,46px) !important;line-height:1.28 !important;
  -webkit-text-stroke:.012em #F6F0E8;paint-order:stroke fill;
  max-width:42ch;margin:18px auto 22px !important;
}
.manifesto-sec .eyebrow{color:var(--honey) !important}

/* --- VISION BUILDER → reworked: warmer radial bg + distinct gold-glass card --- */
#vision,.manifesto-sec + .section{}
.vision-card{
  background:linear-gradient(155deg, rgba(203,165,93,.16) 0%, rgba(248,244,236,.06) 60%) !important;
  border:1.5px solid rgba(203,165,93,.55) !important;
  box-shadow:0 40px 90px -46px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.12) !important;
  backdrop-filter:blur(8px);
}
.vision-card .heart{color:var(--sunny)}
.vision-card .btn-clay{background:var(--sunny) !important;color:var(--ink) !important}
.vision-card .btn-clay:hover{background:#cf8020 !important}

/* --- PRELOADER redesign: big logo that fills bottom→top, % in the centre --- */
.preloader{background:radial-gradient(120% 90% at 50% 40%,#fff,var(--cream) 70%,var(--cream-2)) !important}
.pre-logo{position:relative;width:clamp(180px,24vw,300px);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.pre-logo-empty,.pre-logo-fill{
  position:absolute;inset:0;
  -webkit-mask:url('assets/logo-icon.svg') no-repeat center / contain;
          mask:url('assets/logo-icon.svg') no-repeat center / contain;
}
.pre-logo-empty{background:rgba(35,160,154,.16)}
.pre-logo-fill{background:linear-gradient(to top,#23a09a,#46a18b);clip-path:inset(100% 0 0 0);transition:clip-path .15s linear}
.pre-pct{position:relative;z-index:2;font-family:var(--font-display);font-weight:600;font-size:clamp(26px,3vw,40px);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.01em;text-shadow:0 1px 10px rgba(248,244,236,.8)}
.pre-pct small{font-size:.5em;font-weight:500;opacity:.6;margin-left:1px}
/* hide the old preloader bits if any remain */
.pre-mark,.pre-title,.pre-bar{display:none !important}

/* --- ABOUT: Jess's chart figure in the story column --- */
.jess-chart{margin:26px 0 0;background:var(--cream-2);border:1px solid rgba(169,128,58,.22);border-radius:18px;padding:14px;box-shadow:0 18px 44px -30px rgba(44,79,74,.3)}
.jess-chart bodygraph-embed,.jess-chart img{display:block;width:100%;min-height:360px;border-radius:12px;overflow:hidden;background:var(--cream)}
.jess-chart img{min-height:0;object-fit:contain;padding:10px}
.jess-chart figcaption{margin-top:12px;font-family:var(--font-accent);font-style:normal;font-size:17px;line-height:1.4;color:var(--ink);-webkit-text-stroke:.012em var(--ink);paint-order:stroke fill}
.jess-chart figcaption span{display:block;font-family:var(--font-body);font-style:normal;font-size:12px;color:rgba(44,79,74,.55);margin-top:4px;-webkit-text-stroke:0}

/* =====================================================================
   v3 · DEFINITIVE LOGO (PNG background-image, uniform padding → never clips)
   Overrides every earlier mask-based attempt.
   ===================================================================== */
.brand-mark,.pre-mark,.footer .brand-mark{display:inline-block !important;-webkit-mask:none !important;mask:none !important;background-color:transparent !important}
.brand-mark > *,.pre-mark > *{display:none !important}

/* NAV — horizontal lockup. Cream over the deep hero, teal when scrolled/solid. */
.nav .brand-mark{
  width:200px !important;height:67px !important;-webkit-mask:none !important;mask:none !important;
  background:url('assets/hor-cream.png?v=1782488822') left center / contain no-repeat !important;
}
.nav.is-solid .brand-mark,
body.nav-always-solid .nav .brand-mark{
  background-image:url('assets/hor-teal.png?v=1782488822') !important;
}

/* FOOTER — vertical lockup, cream on the dark footer */
.footer .brand-mark{
  width:206px !important;height:176px !important;-webkit-mask:none !important;mask:none !important;
  background:url('assets/ver-cream.png?v=1782488822') center / contain no-repeat !important;
}

/* ireland pricing: small print under each tier */
.tier-fine{margin-top:10px;font-size:12px;line-height:1.4;color:rgba(44,79,74,.55)}
.theme-ireland #reserve .tier-fine{color:rgba(248,244,236,.55)}

/* --- "At a glance" must stick & follow on scroll: the section's overflow:hidden
   was breaking position:sticky. Let the section overflow, clip the aurora itself. --- */
.itin-section{overflow:visible !important}
.itin-aurora{inset:0 !important;overflow:hidden !important;border-radius:inherit}
.itin-side{position:sticky !important;top:96px !important;align-self:start !important}
.itin-grid{align-items:start !important}

/* --- VISION modal: donation amount buttons (clean, readable, Inter) --- */
.vb-amt{font-family:var(--font-body) !important;font-weight:600 !important;color:var(--ink) !important;background:var(--cream-2) !important;border:1.5px solid rgba(169,128,58,.3) !important;border-radius:30px !important;padding:12px 22px !important;transition:border-color .2s,background .2s,color .2s,transform .2s}
.vb-amt:hover{border-color:var(--honey-deep) !important;transform:translateY(-1px)}
.vb-amt.sel{background:var(--honey) !important;border-color:var(--honey) !important;color:#3a2c10 !important}

/* --- welcome pillar chips: hover feedback --- */
.welcome-pillars .wp{transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,border-color .28s,background .28s;cursor:default}
.welcome-pillars .wp:hover{transform:translateY(-3px);background:#fff;border-color:var(--honey);box-shadow:0 20px 40px -22px rgba(169,128,58,.4)}
.welcome-pillars .wp .wp-ic{transition:transform .28s cubic-bezier(.16,1,.3,1)}
.welcome-pillars .wp:hover .wp-ic{transform:rotate(90deg) scale(1.2)}

/* --- "How it works" section → teal-tinted background --- */
#how{background:#23A09A !important}
#how .eyebrow{color:var(--teal-deep) !important}
#how .step-no{border-color:rgba(31,112,107,.4) !important;color:var(--teal-deep) !important}

/* =====================================================================
   v3 · BATCH 5 — stats flip, exact teal, miami move, bento crossfade, mobile
   ===================================================================== */

/* --- STATS band: honey background, CREAM numbers (flipped) --- */
.stats-band{background:var(--honey) !important}
.stat b,.stat-num{color:var(--cream) !important}
.stat span,.stat-label{color:rgba(58,44,16,.72) !important;font-weight:600}

/* --- "How it works" → exact brand teal #23A09A, cream text on it --- */
#how{background:#23A09A !important}
#how h2,#how .on-dark{color:var(--cream) !important}
#how .lead,#how p{color:rgba(248,244,236,.9) !important}
#how .eyebrow{color:#E9C778 !important}
#how .step h3{color:var(--cream) !important}
#how .step-no{background:var(--cream) !important;border-color:transparent !important;color:#125c56 !important}

/* bento crossfade layers — always one image visible, smooth image-to-image */
.welcome-bento .bp{position:relative;overflow:hidden}
.welcome-bento .bp-fade{position:absolute;inset:0;background-size:cover;background-position:center;border-radius:inherit;opacity:0;transition:opacity 1.8s ease;will-change:opacity}

/* --- HERO INTRO sequencing: content waits for preloader + globe entrance --- */
.hero-content{opacity:0}
body.hero-go .hero-content{opacity:1;transition:opacity .7s ease}
.hero-title .line-inner,.hero .fade-up{animation-play-state:paused}
body.hero-go .hero-title .line-inner,body.hero-go .hero .fade-up{animation-play-state:running}
.scroll-cue{opacity:0}
body.hero-go .scroll-cue{opacity:1;transition:opacity .9s ease 1.1s}
/* globe drives in: small → full, over ~1.6s, when the page is loaded */
/* keep the centring translate; add the scale-in on top of it */
.hero-globe{transform:translate(-50%,-50%) scale(.2);opacity:0}
body.loaded .hero-globe{transform:translate(-50%,-50%) scale(1);opacity:1;transition:transform 1.7s cubic-bezier(.16,1,.3,1),opacity 1.1s ease}
@media (prefers-reduced-motion:reduce){
  .hero-content,.scroll-cue{opacity:1 !important;transform:none !important}
  .hero-globe{opacity:1 !important;transform:translate(-50%,-50%) !important}
}
/* safety net: if the load event is slow or JS is blocked, reveal the hero +
   globe anyway after a few seconds so nothing ever stays invisible. */
@keyframes heroSafety{to{opacity:1}}
@keyframes heroGlobeSafety{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.hero-content{animation:heroSafety .01s linear 4s forwards}
.hero-globe{animation:heroGlobeSafety .01s linear 4.5s forwards}

/* --- HERO PARTICLES (soft universe drift around the globe) --- */
.hero-particles{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-particles .pt{position:absolute;border-radius:50%;background:rgba(248,244,236,.7);opacity:0;
  animation:ptDrift linear infinite;will-change:transform,opacity}
.hero-particles .pt.gold{background:rgba(236,201,113,.85)}
@keyframes ptDrift{
  0%{opacity:0;transform:translate3d(0,20px,0) scale(.6)}
  15%{opacity:var(--o,.6)}
  85%{opacity:var(--o,.6)}
  100%{opacity:0;transform:translate3d(var(--dx,0),-90px,0) scale(1)}
}
@media (prefers-reduced-motion:reduce){.hero-particles{display:none}}

/* relocated Miami banner — space it from the apply line inside the partner block */
.partner-block .miami-banner{margin-top:26px}

/* =====================================================================
   MOBILE BOTTOM NAV (tabbar) + mobile hero/logo/footer cleanup
   ===================================================================== */
.tabbar{display:none}
@media (max-width:820px){
  /* — top bar: just a centered logo, no burger, no overlay — */
  .nav{justify-content:center;padding:14px 20px}
  .nav .brand{margin:0 auto;justify-content:center}
  .nav .brand-mark{width:168px;height:54px;background-position:center}
  .burger{display:none !important}
  .nav-links{display:none !important}
  .float-join{display:none !important}

  /* — hero: big earth only, no background gallery images — */
  .hero-mbg{display:none !important}
  .m-scrim{display:none !important}

  /* — bottom tabbar — */
  body{padding-bottom:80px}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;
    position:fixed;left:11px;right:11px;bottom:11px;z-index:70;
    padding:9px 7px;border-radius:22px;
    background:rgba(8,40,58,.84);backdrop-filter:blur(16px) saturate(1.25);
    border:1px solid rgba(248,244,236,.13);
    box-shadow:0 14px 36px -12px rgba(4,18,30,.62)}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;gap:5px;
    background:none;border:0;padding:5px 2px;border-radius:13px;text-decoration:none;
    color:rgba(248,244,236,.82);font:600 10px/1 var(--font-body);letter-spacing:.02em;cursor:pointer}
  .tabbar svg{width:21px;height:21px}
  .tabbar a:active,.tabbar button:active{transform:translateY(1px)}
  .tabbar .tab-cta{color:#0a3b36}
  .tabbar .tab-cta svg{width:32px;height:32px;padding:7px;border-radius:50%;
    background:linear-gradient(135deg,#E9C778,#CBA55D);color:#0a3b36;stroke-width:2.2;
    margin-top:-16px;box-shadow:0 7px 18px -6px rgba(200,161,90,.75);box-sizing:border-box}
  .tabbar .tab-cta span{color:var(--honey)}
  /* Join CTA sits raised in the CENTER of the bar (3rd of 5) */
  .tabbar>*:nth-child(1){order:1}
  .tabbar>*:nth-child(2){order:2}
  .tabbar>*:nth-child(3){order:4}
  .tabbar>*:nth-child(4){order:5}
  .tabbar .tab-cta{order:3}
  /* mobile: the globe must NOT capture touch — let the page scroll */
  #globeViz canvas,#phGlobe canvas{pointer-events:none !important;touch-action:pan-y !important}

  /* — footer fully centered — */
  .footer,.footer-top,.footer-brand,.footer-join,.footer-bottom,.footer-grid,.footer-meta,.footer-col{text-align:center}
  .footer-grid,.footer-bottom,.footer-brand,.footer-join,.footer-col{align-items:center}
  .footer-social,.footer-links,.footer-nav{justify-content:center}
  .footer-brand .footer-form,.footer-join .footer-form{margin-left:auto;margin-right:auto}
}

/* =====================================================================
   FAQ "still have a question?" contact card
   ===================================================================== */
.faq-contact{max-width:760px;margin:36px auto 0;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  background:var(--teal);color:var(--cream);border-radius:22px;padding:clamp(26px,3.4vw,38px) clamp(24px,3.6vw,44px);
  box-shadow:0 24px 54px -30px rgba(35,160,154,.55)}
.faq-contact .fq-text{min-width:min(100%,360px)}
.faq-contact .eyebrow{color:rgba(246,240,232,.82)}
.faq-contact h3{font-family:var(--font-display);font-weight:600;font-size:clamp(24px,2.7vw,33px);color:var(--cream);margin:.12em 0 .34em;line-height:1.1}
.faq-contact .fq-sub{color:rgba(246,240,232,.9);max-width:48ch;margin:0;font-size:15.5px;line-height:1.55}
.faq-contact .fq-mail{background:var(--honey);color:#2E3033;border:0;white-space:nowrap;font-weight:600}
.faq-contact .fq-mail:hover{background:var(--honey-light);color:#2E3033;transform:translateY(-2px)}
@media (max-width:820px){
  .faq-contact{flex-direction:column;align-items:center;text-align:center}
  .faq-contact .fq-sub{margin-inline:auto}
  .faq-contact .fq-mail{width:100%;max-width:360px}
}

/* Ireland landing nav on mobile: keep brand + Reserve (tab bar covers the rest) */
@media (max-width:820px){
  .nav-landing{justify-content:space-between !important}
  .nav-landing .brand{margin:0 !important}
  .nav-landing .nav-back{display:none}
  .nav-landing .nav-landing-right{gap:0}
  .nav-landing .btn{padding:10px 18px;font-size:13px}
}

/* PREVIEW ribbon (client review build — remove for production) */
.preview-flag{position:fixed;left:14px;bottom:14px;z-index:58;
  font:600 11px/1 var(--font-body);letter-spacing:.04em;color:var(--ink);
  background:rgba(246,240,232,.92);backdrop-filter:blur(6px);
  border:1px solid rgba(203,165,93,.55);border-radius:30px;padding:8px 14px;
  box-shadow:0 8px 22px -10px rgba(46,48,51,.3);pointer-events:none}
@media (max-width:820px){
  .preview-flag{left:50%;transform:translateX(-50%);bottom:auto;top:70px;font-size:10px;padding:6px 12px}
}

/* ============================================================
   About-page readability fixes (client feedback)
   ============================================================ */
/* 1) "Help us build it" card sits on a LIGHT section on About (homepage's sits on
      a dark one). Give it a solid dark backdrop so the on-dark text reads. */
body.nav-always-solid .vision-card{
  background:linear-gradient(160deg,#0f5750 0%,#0a423d 55%,#07332f 100%) !important;
  border:1.5px solid rgba(203,165,93,.5) !important;
}

/* 2) Script accents: open up the spacing so the handwriting reads easily. */
.accent-italic,.accent-script,.amel,.signature{word-spacing:.12em}
.portrait-h1 .accent-italic{letter-spacing:.022em;word-spacing:.24em}

/* 3) Jess's chart: smaller chart, larger readable caption, clean (no-paren) aside. */
.jess-chart img{max-width:72%;margin-left:auto;margin-right:auto}
.jess-chart figcaption{font-size:20px;line-height:1.5;word-spacing:.12em;letter-spacing:.008em}
.jess-chart figcaption span{font-family:var(--font-body);font-style:italic;font-weight:400;
  font-size:13.5px;color:rgba(46,48,51,.6);margin-top:9px;letter-spacing:.01em}

/* =====================================================================
   About hero — freigestellt cut-out: ALWAYS bottom-anchored, no name tag
   ===================================================================== */
.portrait-hero{padding-bottom:0;overflow:hidden}
.portrait-grid{align-items:end}                 /* figure sits at the row's bottom edge */
.portrait-copy{align-self:start;padding-bottom:clamp(34px,5vw,70px)}
.portrait-photo.is-cutout{
  align-self:end;margin:0;display:flex;justify-content:center;align-items:flex-end;
  border-radius:0;overflow:visible;aspect-ratio:auto;box-shadow:none;background:none;
}
.portrait-photo.is-cutout img{
  width:auto;max-width:122%;height:clamp(470px,52vw,700px);object-fit:contain;object-position:bottom center;
  border-radius:0;margin:0;display:block;
  filter:drop-shadow(0 18px 36px rgba(14,53,83,.24));
  animation:none;                               /* steady, flush to the bottom edge */
}
.portrait-photo.is-cutout figcaption{display:none}   /* name already in the copy on the left */
/* On larger screens: fill most of the viewport and let Jess's cutout stand FLUSH
   to the bottom edge (no gap below her feet). */
@media (min-width:1000px){
  .portrait-hero{min-height:94vh;padding-bottom:0}
  .portrait-photo.is-cutout{align-self:end}
  .portrait-photo.is-cutout img{height:min(82vh,900px);max-width:130%}
}
/* warm halo behind her */
.portrait-hero .ph-orb{
  inset:auto 9% 6% auto;width:42vw;height:42vw;max-width:520px;max-height:520px;
  background:radial-gradient(circle at 50% 48%,rgba(203,165,93,.32),rgba(169,184,163,.16) 50%,transparent 72%);
}
@media (max-width:820px){
  .portrait-hero{padding-bottom:0}
  .portrait-grid{align-items:center}
  .portrait-copy{align-self:center;padding-bottom:0}
  .portrait-photo.is-cutout{align-self:center;justify-content:center}
  .portrait-photo.is-cutout img{height:clamp(360px,82vw,470px);max-width:100%}
}

/* =====================================================================
   Sponsor page + form
   ===================================================================== */
.sponsor-hero{position:relative;min-height:94vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;isolation:isolate;background:radial-gradient(135% 118% at 50% 4%,#0e4d5e 0%,#0a3a58 26%,#093250 48%,#06243c 74%,#04192b 100%)}
.sponsor-hero .sh-net{position:absolute;inset:0;z-index:1;width:100%;height:100%}
.sh-glow{position:absolute;z-index:0;left:50%;top:40%;width:90vw;max-width:1100px;height:72vh;transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(42% 46% at 50% 50%,rgba(203,165,93,.28),rgba(35,160,154,.10) 55%,transparent 72%);filter:blur(28px);animation:shGlow 12s ease-in-out infinite}
@keyframes shGlow{0%,100%{opacity:.62;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-53%) scale(1.1)}}
.sponsor-hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 -130px 120px -70px rgba(4,18,30,.92),inset 0 0 200px 30px rgba(4,18,30,.45)}
.sponsor-hero .sh-inner{position:relative;z-index:3;max-width:920px;margin-inline:auto;padding:128px 24px 112px}
.sh-crumb,.sh-crumb a{color:rgba(246,240,232,.68)}
.sh-eyebrow{color:var(--honey)}
.sh-h1{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,6.6vw,84px);line-height:1.05;letter-spacing:-.01em;color:var(--cream);margin:14px auto 0;max-width:18ch;text-shadow:0 2px 40px rgba(4,18,30,.5)}
.sh-h1 em{display:block;font-family:var(--font-accent);font-style:italic;font-weight:500;letter-spacing:0;font-size:clamp(54px,15vw,104px);line-height:.92;margin-top:.02em;-webkit-text-stroke:.85px #CBA55D;background:linear-gradient(100deg,#CBA55D 0%,#F4DEB0 30%,#CBA55D 58%,#E2B566 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:sponsorSheen 6.5s linear infinite}
@keyframes sponsorSheen{to{background-position:-220% 0}}
.sh-sub{margin:22px auto 0;max-width:56ch;font-family:var(--font-body);font-size:clamp(16px,1.8vw,19px);line-height:1.6;color:rgba(246,240,232,.9);text-shadow:0 1px 18px rgba(4,18,30,.5)}
.sponsor-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.sponsor-cta .btn{padding:15px 34px;font-size:15px}
.btn-line{border:1.5px solid rgba(246,240,232,.55);color:var(--cream);border-radius:40px;background:transparent;transition:border-color .25s,background .25s}
.btn-line:hover{border-color:var(--honey);background:rgba(246,240,232,.08)}
.reach-strip{display:flex;align-items:center;justify-content:center;gap:13px;flex-wrap:wrap;margin-top:36px;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,240,232,.7)}
.reach-strip i{color:var(--honey);font-style:normal;opacity:.85}
.sh-inner>*{opacity:0;transform:translateY(24px);animation:shRise .9s cubic-bezier(.2,.7,.2,1) forwards}
.sh-inner>.sh-eyebrow{animation-delay:.16s}
.sh-inner>.sh-h1{animation-delay:.3s}
.sh-inner>.sh-sub{animation-delay:.48s}
.sh-inner>.sponsor-cta{animation-delay:.62s}
.sh-inner>.reach-strip{animation-delay:.76s}
@keyframes shRise{to{opacity:1;transform:none}}
.sponsor-intro{max-width:60ch;margin:0 auto 42px;text-align:center}
.sponsor-intro .lead{font-size:clamp(18px,2vw,21px);color:var(--ink);font-weight:500;margin:0}
.sponsor-intro p{color:var(--ink);opacity:.82;margin-top:12px}
@media (prefers-reduced-motion:reduce){.sh-h1 em,.sh-glow,.sh-inner>*{animation:none}.sh-inner>*{opacity:1;transform:none}}
@media (max-width:680px){.sponsor-hero .sh-inner{padding:106px 20px 84px}}
.sponsor-form{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--hair);border-radius:22px;padding:clamp(24px,4vw,46px);box-shadow:0 30px 80px -50px rgba(46,48,51,.4)}
.sf-set{border:0;margin:0 0 30px;padding:0}
.sf-set legend{font-family:var(--font-display);font-weight:600;font-size:23px;color:var(--navy);margin-bottom:16px;padding:0}
.sf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sponsor-form label{display:grid;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.sponsor-form .sf-full{display:block;margin-bottom:16px}
.sponsor-form input,.sponsor-form textarea{width:100%;font-family:var(--font-body);font-size:15px;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink);background:var(--cream);border:1.5px solid var(--hair);border-radius:12px;padding:12px 14px;resize:vertical}
.sponsor-form input:focus,.sponsor-form textarea:focus{outline:0;border-color:var(--teal);background:#fff}
.sf-req{color:var(--sunny)}
.sf-help{font-size:14px;color:var(--ink);margin:0 0 14px;text-transform:none;letter-spacing:normal;font-weight:400}
.sf-checks{display:grid;grid-template-columns:1fr 1fr;gap:11px 18px}
.sponsor-form .sf-check{display:flex;align-items:center;gap:11px;text-transform:none;letter-spacing:normal;font-weight:500;font-size:14.5px;color:var(--ink);cursor:pointer}
.sf-check input{width:18px;height:18px;accent-color:var(--teal);flex:0 0 auto;margin:0}
.sf-hp{position:absolute !important;left:-9999px !important;width:1px !important;height:1px !important;opacity:0 !important}
.sf-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.sf-foot .btn{padding:13px 34px}
.sf-msg{font-size:14px;margin:0;line-height:1.4;max-width:36ch}
.sf-msg.ok{color:var(--teal-deep);font-weight:600}
.sf-msg.err{color:#a85d12;font-weight:600}
.sponsor-form.sent{opacity:.6;pointer-events:none}
@media (max-width:680px){.sf-grid,.sf-checks{grid-template-columns:1fr}}
/* sponsor headline hierarchy: small serif lead-in, dominant script */
.sh-h1{max-width:none}
.sh-h1 .sh-line{display:block;font-family:var(--font-display);font-weight:500;font-size:clamp(18px,2.4vw,30px);letter-spacing:.015em;color:rgba(246,240,232,.9);margin:0 0 .3em;white-space:nowrap}
.sh-mobr{display:none}
@media (max-width:600px){.sh-h1 .sh-line{white-space:normal;font-size:clamp(16px,4.6vw,23px);margin-bottom:.34em}.sh-mobr{display:inline}}

/* =====================================================================
   Partners / sponsors — navy bento (homepage); tiles auto-size per logo
   ===================================================================== */
.partners-sec{background:radial-gradient(135% 130% at 50% -10%,#0e3f60 0%,#0a3a58 32%,#08304c 56%,#06243c 100%);padding-top:62px;padding-bottom:70px}
.partners-sec .eyebrow{color:var(--honey)}
.partners-sec .partners-title{font-family:var(--font-display);font-weight:600;font-size:clamp(24px,3vw,34px);color:var(--cream);margin-top:6px}
.logo-bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:16px;margin-top:36px;grid-auto-flow:dense}
.logo-tile{display:grid;place-items:center;padding:14px 18px;background:#fff;border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 30px -16px rgba(0,0,0,.55);transition:transform .3s ease,box-shadow .3s ease;overflow:hidden}
.logo-tile img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.logo-tile:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 20px 38px -16px rgba(0,0,0,.6);z-index:2}
.logo-tile:focus-visible{outline:2px solid var(--honey);outline-offset:3px;z-index:2}
.lt-wide{grid-column:span 2}
.lt-tall{grid-row:span 2}
.lt-big{grid-column:span 2;grid-row:span 2}
.partners-cta{margin-top:34px;font-size:14px}
.partners-cta a{color:var(--honey);font-weight:600;letter-spacing:.01em}
.partners-cta a:hover{text-decoration:underline}
@media (max-width:900px){.logo-bento{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.logo-bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:124px;gap:12px}.lt-big,.lt-wide,.lt-tall{grid-column:auto;grid-row:auto}}
@media (prefers-reduced-motion:reduce){.logo-tile{transition:none}.logo-tile:hover{transform:none}}

/* Reader Series title in the brand script (cream, on the navy reader band) — like "Discover Yourself" but cream */
#reader .section-head h2{font-family:var(--font-accent) !important;font-weight:400 !important;color:var(--cream) !important;-webkit-text-stroke:0 !important;font-size:clamp(54px,7.2vw,104px);line-height:1.02;letter-spacing:0;text-transform:none}

/* Event colour coding — own = teal, partner = gold, past = muted (client decision) */
#evTimeline .evt-own .evt-dot{background:var(--teal);border-color:var(--teal);box-shadow:0 0 0 4px rgba(35,160,154,.18)}
#evTimeline .evt-own .evt-title{color:var(--teal)}
#evTimeline .evt-partner .evt-dot{background:var(--honey);border-color:var(--honey);box-shadow:0 0 0 4px rgba(203,165,93,.18)}
#evTimeline .evt-partner .evt-title{color:var(--honey)}
#evTimeline .evt-past .evt-dot{background:var(--sage);border-color:var(--sage);box-shadow:none}
#events .partner-block .pc-tag{color:var(--honey)}
#events .partner-block .pc-link{color:var(--honey)}

/* External-link arrow icon — replaces the emoji ↗ (consistent, currentColor, never blue) */
.ico-ext{display:inline-block;vertical-align:-.1em;margin-left:.22em;width:.82em;height:.82em;flex:none}

/* How-it-works: LIGHT drifting "liquid-glass" blobs — pale cream/mint lights that
   slowly move + breathe (grow/shrink) behind the content, blended additively
   (screen) so they glow softly on the teal. Content sits above. */
#how{position:relative;overflow:hidden}
#how .wrap{position:relative;z-index:1}
.how-blob{position:absolute;z-index:0;border-radius:50%;pointer-events:none;filter:blur(72px);will-change:transform,opacity;mix-blend-mode:screen}
.how-blob-a{width:760px;height:760px;left:-180px;bottom:-240px;background:radial-gradient(closest-side,rgba(246,240,232,.66),transparent 74%);animation:howBlobA 19s ease-in-out infinite}
.how-blob-b{width:680px;height:680px;right:-180px;bottom:-180px;background:radial-gradient(closest-side,rgba(185,226,216,.62),transparent 74%);animation:howBlobB 23s ease-in-out infinite}
.how-blob-c{width:640px;height:640px;right:4%;top:-280px;background:radial-gradient(closest-side,rgba(246,240,232,.54),transparent 74%);animation:howBlobC 26s ease-in-out infinite}
.how-blob-d{width:600px;height:600px;left:10%;top:-260px;background:radial-gradient(closest-side,rgba(203,225,208,.52),transparent 74%);animation:howBlobD 21s ease-in-out infinite}
@keyframes howBlobA{0%,100%{transform:translate(0,0) scale(.8);opacity:.6}50%{transform:translate(110px,-80px) scale(1.4);opacity:1}}
@keyframes howBlobB{0%,100%{transform:translate(0,0) scale(1);opacity:.68}50%{transform:translate(-100px,-64px) scale(1.36);opacity:1}}
@keyframes howBlobC{0%,100%{transform:translate(0,0) scale(.82);opacity:.55}50%{transform:translate(-84px,96px) scale(1.38);opacity:.95}}
@keyframes howBlobD{0%,100%{transform:translate(0,0) scale(1);opacity:.58}50%{transform:translate(92px,80px) scale(1.34);opacity:.95}}
@media(prefers-reduced-motion:reduce){.how-blob{animation:none}}

/* How-it-works: responsive 4-across -> 2x2 -> stacked, with per-step buttons */
#how .steps{grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:900px){#how .steps{grid-template-columns:repeat(2,1fr);gap:34px}}
@media(max-width:540px){#how .steps{grid-template-columns:1fr;gap:30px}}
.step .step-btn{margin-top:18px;background:transparent;border:1.5px solid rgba(246,240,232,.55);color:var(--cream);cursor:pointer}
.step .step-btn:hover,.step .step-btn:focus-visible{background:var(--cream);color:#125c56;border-color:var(--cream);transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(0,0,0,.35)}

/* Why-band blob: clearly breathing — grows/shrinks + brightens (own keyframe so
   it doesn't touch the gentler global .band-glow used elsewhere). */
#why .band-glow{background:radial-gradient(closest-side,rgba(203,165,93,.34),rgba(35,160,154,.18) 48%,transparent 74%);filter:blur(28px);width:82%;height:175%;animation:whyPulse 11s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){#why .band-glow{animation:none}}
@keyframes whyPulse{0%,100%{transform:translate(-52%,-50%) scale(.86);opacity:.72}50%{transform:translate(-48%,-52%) scale(1.3);opacity:1}}

/* ===== Stripe "Plant a Seed" / Vision Builder modal (hdwt-payments.js) ===== */
.hdwt-pay-lock{overflow:hidden}
.hdwt-pay{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;padding:20px}
.hdwt-pay.is-open{display:flex}
.hdwt-pay__backdrop{position:absolute;inset:0;background:rgba(9,53,84,.62);backdrop-filter:blur(3px);animation:hdwtPayFade .3s ease}
.hdwt-pay__card{position:relative;width:min(94vw,460px);max-height:92vh;overflow:auto;background:var(--cream);color:var(--ink);border:1.5px solid var(--honey);border-radius:24px;padding:clamp(28px,5vw,40px) clamp(24px,5vw,38px) clamp(22px,4vw,30px);text-align:center;box-shadow:0 40px 90px -40px rgba(9,53,84,.7);animation:hdwtPayPop .42s cubic-bezier(.16,1,.3,1)}
.hdwt-pay__x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(46,48,51,.16);background:var(--offwhite);color:var(--ink);font-size:15px;line-height:1;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.hdwt-pay__x:hover{background:var(--cream);border-color:var(--teal);transform:rotate(90deg)}
.hdwt-pay__seed{display:block;font-size:34px;line-height:1;color:var(--honey);margin-bottom:6px}
.hdwt-pay__eyebrow{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:#a85d12;margin:0 0 8px}
.hdwt-pay__title{font-family:var(--font-display);font-weight:600;font-size:clamp(28px,5vw,38px);line-height:1.05;letter-spacing:-.02em;color:var(--navy);margin:0 0 10px}
.hdwt-pay__sub{font-family:var(--font-body);font-size:15px;line-height:1.55;color:rgba(46,48,51,.82);margin:0 auto 22px;max-width:42ch}
.hdwt-pay__toggle{display:inline-flex;gap:4px;padding:4px;border-radius:40px;background:var(--offwhite);border:1px solid rgba(169,184,163,.5);margin:0 auto 22px}
.hdwt-pay__seg{font-family:var(--font-body);font-weight:600;font-size:13px;padding:9px 20px;border:none;border-radius:40px;background:transparent;color:rgba(46,48,51,.7);cursor:pointer;transition:background .25s,color .25s}
.hdwt-pay__seg.is-active{background:var(--teal);color:#fff;box-shadow:0 8px 20px -10px rgba(35,160,154,.75)}
.hdwt-pay__amts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.hdwt-pay__amt{position:relative;display:flex;align-items:center;justify-content:center;min-height:64px;border:1.5px solid rgba(169,184,163,.6);border-radius:16px;background:var(--offwhite);color:var(--navy);font-family:var(--font-display);font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s}
.hdwt-pay__amt:hover{transform:translateY(-2px);border-color:var(--teal)}
.hdwt-pay__amt.is-active{border-color:var(--teal);background:rgba(35,160,154,.1);box-shadow:0 10px 26px -14px rgba(35,160,154,.7)}
.hdwt-pay__amt.is-suggested{border-color:var(--honey)}
.hdwt-pay__amt.is-suggested.is-active{border-color:var(--teal)}
.hdwt-pay__amtval{font-size:20px}
.hdwt-pay__tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-family:var(--font-body);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--honey);padding:2px 8px;border-radius:20px;white-space:nowrap}
.hdwt-pay__custom{text-align:left;margin-bottom:4px}
.hdwt-pay__custom label{display:block;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.04em;color:rgba(46,48,51,.7);margin:0 0 6px}
.hdwt-pay__field{display:flex;align-items:center;gap:6px;border:1.5px solid rgba(169,184,163,.6);border-radius:14px;background:#fff;padding:0 14px}
.hdwt-pay__field:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(35,160,154,.18)}
.hdwt-pay__field span{font-family:var(--font-display);font-weight:600;color:var(--navy)}
.hdwt-pay__field input{flex:1;border:none;outline:none;background:transparent;font-family:var(--font-body);font-size:16px;color:var(--ink);padding:13px 0}
.hdwt-pay__monthlyline{font-family:var(--font-display);font-size:22px;color:var(--navy);margin:6px 0}
.hdwt-pay__monthlyline b{color:var(--teal)}
.hdwt-pay__fine{font-family:var(--font-body);font-size:13px;color:rgba(46,48,51,.7);margin:0 0 4px}
.hdwt-pay__cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:20px;font-family:var(--font-body);font-weight:600;font-size:15px;padding:15px 28px;border:none;border-radius:40px;background:var(--sunny);color:#fff;cursor:pointer;box-shadow:0 12px 34px -12px rgba(226,143,38,.75);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,background .25s}
.hdwt-pay__cta:hover{transform:translateY(-3px);background:#cf8020;box-shadow:0 18px 44px -12px rgba(226,143,38,.85)}
.hdwt-pay__note{font-family:var(--font-body);font-size:13px;line-height:1.45;color:var(--ink);margin:12px 0 0;min-height:1em}
.hdwt-pay__secure{font-family:var(--font-body);font-size:12px;color:rgba(46,48,51,.6);margin:14px 0 0}
.hdwt-pay__card :focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:8px}
@media (max-width:380px){.hdwt-pay__amts{grid-template-columns:1fr 1fr}.hdwt-pay__amt:first-child{grid-column:1 / -1}}
@keyframes hdwtPayFade{from{opacity:0}to{opacity:1}}
@keyframes hdwtPayPop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hdwt-pay__backdrop,.hdwt-pay__card{animation:none}.hdwt-pay__x:hover,.hdwt-pay__amt:hover,.hdwt-pay__cta:hover{transform:none}}

/* ===== Newsletter island states (MailerLite) — official tokens ===== */
.form-msg--ok{color:var(--teal)}
.form-msg--err{color:var(--sunny)}
.form-msg--sending{color:rgba(246,240,232,.7)}
.section-light .form-msg--sending{color:rgba(9,53,84,.7)}
form.is-sending{opacity:.85}
form.is-sending button[type="submit"]{pointer-events:none;opacity:.7}
form.is-error input{border-color:var(--sunny)}
@media (prefers-reduced-motion:no-preference){
  form.is-sending button[type="submit"]::after{content:"";width:12px;height:12px;margin-left:8px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;display:inline-block;vertical-align:-2px;animation:hdwtSpin .7s linear infinite}
  @keyframes hdwtSpin{to{transform:rotate(360deg)}}
}

/* ── Round-2 fixes: nav active-state + reader play icon ── */
.nav-links a[aria-current="page"]:not(.btn),
.nav-always-solid .nav-links a[aria-current="page"]:not(.btn),
.nav.is-solid .nav-links a[aria-current="page"]:not(.btn){color:var(--color-gold)}
.nav-links a[aria-current="page"]:not(.btn)::after{width:100%}
.tabbar a[aria-current="page"]{color:var(--color-gold)}
.r-play svg{width:1em;height:1em;display:block;margin-left:.08em}

/* Plant a Seed — subtle living background (seed/growth feel) */
#vision{position:relative;overflow:hidden}
.vc-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.32;pointer-events:none;filter:saturate(.9)}
#vision .wrap{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.vc-bg-video{display:none}}

/* ── Partner cards — bigger image (full left), consistent border+shadow on BOTH variants ── */
.partner-cards{grid-template-columns:1fr 1fr;gap:20px}
.partner-card{
  display:grid;grid-template-columns:minmax(150px,40%) 1fr;grid-template-rows:1fr auto;
  gap:0;padding:0;overflow:hidden;border:1px solid var(--hair);border-radius:18px;
  background:#fff;text-align:left;appearance:none;-webkit-appearance:none;align-items:stretch;
  box-shadow:0 14px 34px -24px rgba(14,53,83,.4);
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s;
}
.partner-card:hover{transform:translateY(-5px);box-shadow:0 28px 60px -30px rgba(14,53,83,.5);border-color:rgba(203,165,93,.55)}
.pc-thumb{grid-row:1 / 3;grid-column:1;width:100%;height:100%;min-height:210px;border-radius:0;background-size:cover;background-position:center;filter:saturate(.95)}
.pc-body{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:5px;padding:22px 24px 6px;align-items:flex-start}
.pc-link{grid-column:2;grid-row:2;justify-self:start;margin:0;padding:2px 24px 22px;color:var(--honey)}
@media(max-width:680px){
  .partner-cards{grid-template-columns:1fr}
  .partner-card{grid-template-columns:1fr;grid-template-rows:auto auto auto}
  .pc-thumb{grid-row:1;grid-column:1;min-height:180px}
  .pc-body{grid-column:1;grid-row:2}
  .pc-link{grid-column:1;grid-row:3}
}

/* Reader Series — "coming soon" state (greyed watch button until launch, July 15) */
.btn.is-soon{opacity:.28;pointer-events:none;filter:grayscale(.6);cursor:default;transition:opacity .4s}
.reader-soon-note{margin-top:14px;font-family:var(--font-body);font-size:13px;letter-spacing:.03em;color:rgba(246,240,232,.6)}
/* Coming-soon reader cards: each stays a distinct rounded video card with a crisp
   ▶ play button, but its PHOTO is blurred in an inner layer (so you can't tell who
   it is) and the whole card is unclickable until the series launches. */
.reader-marquee.is-soon .r-card.is-locked{cursor:default;pointer-events:none}
.reader-marquee.is-soon .r-card.is-locked .r-img-blur{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(15px) grayscale(.22) brightness(.94);transform:scale(1.18);z-index:0}
.reader-marquee.is-soon .r-card.is-locked::after{z-index:1}
.reader-marquee.is-soon .r-card.is-locked .r-play{z-index:2;opacity:.92}
.reader-marquee.is-soon .r-card.is-locked:hover{transform:none !important;box-shadow:none !important}
.reader-marquee.is-soon .r-card.is-locked:hover .r-play{background:rgba(200,161,90,.18);color:var(--color-gold)}
