/* Leaps Consulting — facelift layer (loads after style.css). Same palette: near-black, aubergine, champagne gold, ivory. */
:root{--glow:rgba(193,168,119,.35)}
body{background:var(--ivory)}
.wrap{width:min(1200px,calc(100% - 48px))}
h1 em,h2 em{font-style:italic;background:linear-gradient(100deg,#8a6d3e,#a98c55 50%,#7d6236);-webkit-background-clip:text;background-clip:text;color:transparent}
.dark h2 em,.hero h1 em,.page-intro h1 em,.funnel-sec h2 em,.cta-band h2 em,.page-intro h2 em{background:linear-gradient(100deg,#f1e3bf,#c1a877 55%,#dcc79c);-webkit-background-clip:text;background-clip:text;color:transparent}
/* ---------- reveal on scroll ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal[data-d="1"]{transition-delay:.1s}.js .reveal[data-d="2"]{transition-delay:.2s}.js .reveal[data-d="3"]{transition-delay:.3s}
/* ---------- hero ---------- */
.hero{position:relative;padding:112px 0 0;background:var(--black);isolation:isolate}
.hero::before{content:'';position:absolute;inset:-20% -10% auto -10%;height:140%;z-index:-2;background:
 radial-gradient(900px 520px at 82% 8%,rgba(125,80,150,.55),transparent 60%),
 radial-gradient(700px 480px at 8% 90%,rgba(193,168,119,.22),transparent 60%),
 radial-gradient(600px 400px at 55% 40%,rgba(45,34,53,.9),transparent 70%);animation:drift 24s ease-in-out infinite alternate}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 70% 30%,#000,transparent 70%)}
@keyframes drift{to{transform:translate3d(-3%,2%,0) scale(1.06)}}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-bottom:84px}
.hero h1{font-size:clamp(44px,5.4vw,82px)}
.hero .lead{margin-top:26px;max-width:560px}
.hero-art{position:relative;aspect-ratio:1/1.02;max-width:560px;justify-self:end;width:100%}
.hero-art svg{width:100%;height:100%;overflow:visible}
.hero-art .line{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 3.2s .4s var(--ease) forwards}
.hero-art .area{opacity:0;animation:fade 1.6s 1.6s ease forwards}
.hero-art .pt{opacity:0;transform-origin:center;animation:pop .6s var(--ease) forwards}
.hero-art .float{animation:bob 7s ease-in-out infinite}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:1}}@keyframes pop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}@keyframes bob{50%{transform:translateY(-10px)}}
.proof{border-top:1px solid rgba(193,168,119,.25);background:rgba(13,11,16,.6);backdrop-filter:blur(8px)}
.proof .wrap{display:flex;gap:28px 44px;align-items:center;justify-content:space-between;padding-block:22px;flex-wrap:wrap}
.proof span.t{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.proof .mini{display:flex;gap:14px;flex-wrap:wrap}
.proof .mini a{display:flex;align-items:center;justify-content:center;height:44px;padding:0 18px;border-radius:6px;background:#f6f1e8}
.proof .mini a.soulz{background:#4b5675}
.proof .mini img{height:26px;width:auto}
/* ---------- funnel ---------- */
.funnel-sec{position:relative;background:linear-gradient(180deg,var(--black),#171021 60%,#1b1326);padding:104px 0;overflow:hidden;color:#cfc4c8}
.funnel-sec::before{content:'';position:absolute;inset:0;background:radial-gradient(700px 400px at 20% 10%,rgba(193,168,119,.12),transparent 60%),radial-gradient(600px 420px at 90% 90%,rgba(125,80,150,.25),transparent 60%)}
.funnel-head{position:relative;text-align:center;max-width:720px;margin:0 auto}
.funnel-head h2{color:var(--ivory)}.funnel-head p{color:#cfc4c8}
.funnel{position:relative;max-width:820px;margin:52px auto 0;min-height:430px;border:1px solid rgba(193,168,119,.3);background:linear-gradient(160deg,rgba(45,34,53,.7),rgba(20,16,24,.85));backdrop-filter:blur(10px);padding:44px 40px 36px;box-shadow:0 40px 80px -40px #000,inset 0 1px 0 rgba(255,255,255,.06)}
.fprog{display:flex;gap:8px;justify-content:center;margin-bottom:34px}
.fprog i{width:34px;height:3px;background:rgba(255,255,255,.14);transition:.5s var(--ease)}
.fprog i.on{background:var(--gold);box-shadow:0 0 12px var(--glow)}
.fstage{position:relative;min-height:300px}
.fq{opacity:0;transform:translateY(-46px);transition:opacity .8s var(--ease),transform .9s var(--ease);pointer-events:none;position:absolute;inset:0}
.fq.show{opacity:1;transform:none;pointer-events:auto;position:relative}
.fq h3{font-size:clamp(28px,3.4vw,42px);color:var(--ivory);text-align:center;margin-bottom:30px}
.fq .sub{display:block;text-align:center;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.fopts{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
.fopts.one{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
.fopt{display:flex;align-items:center;gap:16px;text-align:left;padding:18px 22px;background:rgba(255,255,255,.04);border:1px solid rgba(193,168,119,.28);color:#efe8f0;font-size:16px;line-height:1.35;transition:.3s var(--ease)}
.fopt b{font-family:var(--serif);font-weight:500;font-size:28px;color:var(--gold);min-width:30px}
.fopt:hover,.fopt:focus-visible{background:rgba(193,168,119,.14);border-color:var(--gold);transform:translateY(-2px);box-shadow:0 14px 30px -18px var(--glow)}
.fback{display:block;margin:28px auto 0;background:none;border:0;color:#958b94;font-size:12px;letter-spacing:.2em;text-transform:uppercase}.fback:hover{color:var(--gold-lt)}
.fback[hidden]{display:none}
/* smoke quote */
.fquote{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px 26px;pointer-events:none;opacity:0}
.fquote blockquote{margin:0;max-width:640px;font-family:var(--serif);font-style:italic;font-size:clamp(26px,3.2vw,40px);line-height:1.25;color:var(--ivory);position:relative;z-index:2}
.fquote.go{opacity:1}
.fquote.go blockquote{animation:smokeIn 1.5s var(--ease) forwards,smokeOut 1.4s 3.3s ease-in forwards}
@keyframes smokeIn{0%{opacity:0;filter:blur(22px);letter-spacing:.18em;transform:translateY(40px) scale(1.06)}100%{opacity:1;filter:blur(0);letter-spacing:.005em;transform:none}}
@keyframes smokeOut{to{opacity:0;filter:blur(18px);transform:translateY(-34px) scale(1.04)}}
.smoke{position:absolute;inset:0;overflow:hidden}
.smoke i{position:absolute;bottom:-12%;width:46%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(220,199,156,.34),rgba(150,120,170,.16) 45%,transparent 70%);filter:blur(36px);opacity:0}
.fquote.go .smoke i{animation:puff 4.8s ease-out forwards}
.smoke i:nth-child(1){left:-6%;animation-delay:0s!important}.smoke i:nth-child(2){left:26%;animation-delay:.25s!important;width:56%}.smoke i:nth-child(3){left:58%;animation-delay:.1s!important}.smoke i:nth-child(4){left:12%;animation-delay:.5s!important;width:38%}
@keyframes puff{0%{opacity:0;transform:translate(0,40px) scale(.5)}25%{opacity:1}100%{opacity:0;transform:translate(30px,-170px) scale(1.5)}}
.fdone{text-align:center}.fdone .recap{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 26px}
.fdone .recap span{padding:7px 14px;border:1px solid rgba(193,168,119,.35);font-size:13px;color:#e6dcc7;background:rgba(193,168,119,.08)}
.fdone h3{margin-bottom:14px}.fdone p{max-width:560px;margin:0 auto;color:#cfc4c8}
.fdone .actions{justify-content:center}
.funnel noscript,.fallback{color:#cfc4c8;text-align:center}
/* ---------- journey infographic ---------- */
.journey{position:relative;padding:112px 0 96px;background:var(--ivory);overflow:hidden}
.journey::before{content:'';position:absolute;right:-180px;top:80px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(193,168,119,.22),transparent 68%)}
.jhead{text-align:center;max-width:680px;margin:0 auto 70px;position:relative}
.jtrack{position:relative;max-width:1000px;margin:0 auto}
.jtrack::before{content:'';position:absolute;left:50%;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--gold),rgba(193,168,119,.25));transform:translateX(-50%);opacity:.35}
.jprog{position:absolute;left:50%;top:10px;width:2px;height:0;background:linear-gradient(var(--gold-dk),var(--gold));transform:translateX(-50%);box-shadow:0 0 14px var(--glow);transition:height .2s linear}
.jstep{position:relative;display:grid;grid-template-columns:1fr 84px 1fr;align-items:center;margin-bottom:34px}
.jcard{background:var(--paper);border:1px solid var(--line);padding:28px 30px;box-shadow:0 22px 44px -30px rgba(33,25,41,.5);transition:.4s var(--ease)}
.jcard:hover{transform:translateY(-4px);border-color:var(--gold)}
.jcard h3{font-size:30px;margin-top:6px}.jcard p{margin-top:10px;font-size:15px}
.jcard .get{display:block;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:13px;color:var(--muted)}
.jcard .get b{color:var(--gold-dk);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:11px;margin-right:6px}
.jn{justify-self:center;width:64px;height:64px;border-radius:50%;background:var(--black);border:2px solid var(--gold);display:grid;place-items:center;position:relative;z-index:2;box-shadow:0 0 0 8px var(--ivory),0 10px 26px -8px rgba(33,25,41,.6)}
.jn svg{width:28px;height:28px;stroke:var(--gold-lt);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.jstep .num{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-dk)}
.jstep:nth-child(odd) .jcard{grid-column:1}.jstep:nth-child(odd) .jn{grid-column:2}
.jstep:nth-child(even) .jcard{grid-column:3}.jstep:nth-child(even) .jn{grid-column:2;grid-row:1}
.jstep:nth-child(odd) .jcard{text-align:right}
/* ---------- brands ---------- */
.brands{padding:100px 0;background:linear-gradient(180deg,var(--paper),var(--sand))}
.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px}
.btile{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);background:var(--paper);transition:.4s var(--ease)}
.btile:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 28px 50px -30px rgba(33,25,41,.6)}
.btile .logo-area{height:190px;display:grid;place-items:center;background:#f6f1e8;padding:30px}
.btile.soulz .logo-area{background:#4b5675}
.btile.lm .logo-area{background:#fbf6ee}
.btile .logo-area img{max-height:96px;max-width:78%;width:auto;height:auto;object-fit:contain;transition:transform .5s var(--ease)}
.btile:hover .logo-area img{transform:scale(1.06)}
.btile .meta{padding:22px 26px 26px;border-top:1px solid var(--line)}
.btile h3{font-size:24px}.btile p{margin-top:6px;font-size:14px;color:var(--muted)}
.btile .tag{display:inline-block;margin-bottom:10px;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-dk)}
/* ---------- services (facelift) ---------- */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.svc .card{background:var(--paper);overflow:hidden}
.svc .card::after{content:'';position:absolute;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold-dk),var(--gold-lt));transition:width .6s var(--ease)}
.svc .card:hover::after{width:100%}
.svc .ico{width:48px;height:48px;border:1px solid var(--gold);display:grid;place-items:center;margin-bottom:6px}
.svc .ico svg{width:24px;height:24px;stroke:var(--gold-dk);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cta-band{position:relative;padding:96px 0;background:var(--black);text-align:center;overflow:hidden;isolation:isolate}
.cta-band::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(700px 360px at 50% 0%,rgba(125,80,150,.45),transparent 65%),radial-gradient(600px 300px at 50% 100%,rgba(193,168,119,.22),transparent 65%)}
.cta-band h2{color:var(--ivory);max-width:760px;margin-inline:auto}.cta-band p{color:#cfc4c8;max-width:560px;margin-inline:auto}
.cta-band .actions{justify-content:center}
.page-intro{position:relative;overflow:hidden;isolation:isolate}
.page-intro::before{content:'';position:absolute;inset:-40% -10% auto auto;width:720px;height:520px;z-index:-1;background:radial-gradient(circle,rgba(125,80,150,.45),transparent 65%)}
@media(max-width:980px){
 .hero{padding-top:72px}.hero-grid{grid-template-columns:1fr;gap:30px;padding-bottom:56px}.hero-art{max-width:420px;justify-self:center;order:-1;aspect-ratio:1/.8}
 .funnel{padding:30px 20px 26px}.fopts{grid-template-columns:1fr}.fq h3{font-size:27px}
 .brand-grid,.svc{grid-template-columns:1fr}
 .jtrack::before,.jprog{left:31px}.jstep{grid-template-columns:64px 1fr;gap:18px}
 .jstep:nth-child(n) .jn{grid-column:1;grid-row:1}.jstep:nth-child(n) .jcard{grid-column:2;text-align:left}
 .journey{padding:72px 0}.jhead{margin-bottom:44px}
}
@media(prefers-reduced-motion:reduce){
 .hero::before,.hero-art .float{animation:none}.hero-art .line{animation:none;stroke-dashoffset:0}.hero-art .area,.hero-art .pt{animation:none;opacity:1}
 .js .reveal{opacity:1;transform:none;transition:none}
 .fquote.go blockquote{animation:qfade 4.6s linear forwards}.fquote.go .smoke i{animation:none}
 @keyframes qfade{0%{opacity:0}12%{opacity:1}85%{opacity:1}100%{opacity:0}}
}

/* ---------- teaching layers ---------- */
.flesson{margin:0 auto 26px;max-width:640px;padding:16px 20px;border-left:3px solid var(--gold);background:rgba(193,168,119,.1);text-align:left}
.flesson span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.flesson b{display:block;font-family:var(--serif);font-weight:500;font-size:22px;color:var(--ivory);margin:4px 0 4px}
.flesson p{margin:0;font-size:14.5px;line-height:1.6;color:#d6ccd2}
.plan{list-style:none;padding:0;margin:14px auto 18px;max-width:560px;text-align:left;display:grid;gap:9px}
.plan li{position:relative;padding:11px 14px 11px 42px;background:rgba(255,255,255,.04);border:1px solid rgba(193,168,119,.25);font-size:15px;color:#efe8f0}
.plan li::before{content:'✓';position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gold);font-weight:700}
.slot-line{margin:10px 0 18px;color:#e6dcc7;font-size:15px}.slot-line b{color:#f1e3bf}
.note2{margin-top:14px;font-size:12px;color:#958b94}
.problem{padding:104px 0 90px;background:var(--ivory)}
.gaps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.gap{position:relative;padding:34px 30px 28px;background:var(--paper);border:1px solid var(--line);transition:.4s var(--ease)}
.gap:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 26px 48px -32px rgba(33,25,41,.55)}
.gap .gn{position:absolute;right:22px;top:12px;font-family:var(--serif);font-size:64px;line-height:1;color:rgba(193,168,119,.28)}
.gap h3{font-size:27px;margin-bottom:6px}.gap p{font-size:15px}
.gap .fix{display:block;margin-top:16px;padding-top:12px;border-top:1px dashed var(--line);font-size:13.5px;color:var(--muted)}
.gap .fix b{display:block;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-dk);margin-bottom:3px}
.gaps-cta{text-align:center;margin-top:40px;font-size:17px}.gaps-cta a{color:var(--gold-dk);text-decoration:underline;text-underline-offset:4px}
.session{padding:100px 0;background:linear-gradient(180deg,var(--ivory),var(--paper))}
.session .split{align-items:start}
.next-slot{display:inline-flex;align-items:center;gap:12px;margin-top:22px;padding:11px 18px;border:1px solid var(--gold);background:rgba(193,168,119,.12);font-size:14.5px;color:var(--ink)}
.next-slot .dot{width:9px;height:9px;border-radius:50%;background:#3aa76d;box-shadow:0 0 0 0 rgba(58,167,109,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(58,167,109,0)}100%{box-shadow:0 0 0 0 rgba(58,167,109,0)}}
.steps3{list-style:none;margin:0;padding:0;counter-reset:s3;display:grid;gap:16px}
.steps3 li{counter-increment:s3;position:relative;padding:22px 24px 22px 76px;background:var(--paper);border:1px solid var(--line)}
.steps3 li::before{content:counter(s3);position:absolute;left:22px;top:20px;width:38px;height:38px;border-radius:50%;background:var(--black);color:var(--gold-lt);display:grid;place-items:center;font-family:var(--serif);font-size:22px}
.steps3 b{display:block;font-family:var(--serif);font-weight:500;font-size:22px;color:var(--ink)}.steps3 span{font-size:14.5px;color:var(--text)}
.faq{max-width:820px;margin-top:70px}
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-family:var(--serif);font-size:22px;color:var(--ink);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:26px;color:var(--gold-dk);transition:.3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{margin:0 0 18px;font-size:15.5px}
/* sticky book bar */
.sticky-book{position:fixed;left:0;right:0;bottom:0;z-index:60;transform:translateY(110%);transition:transform .5s var(--ease);background:rgba(13,11,16,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(193,168,119,.4)}
.sticky-book.on{transform:none}
.sticky-book .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
.sticky-book .t{color:#efe8f0;font-size:14px}.sticky-book .t small{display:block;font-size:12px;color:var(--gold-lt)}
.sticky-book .button{min-height:44px;padding:10px 20px;white-space:nowrap}
@media(max-width:980px){.gaps{grid-template-columns:1fr}.session{padding:70px 0}.problem{padding:70px 0}.sticky-book .t span{display:none}.sticky-book .wrap{padding-block:10px}}
