/* ==========================================================================
   TEAM9 — site styles
   Brand: TEAM 9 Brand Guidelines v1.0 (Erro Design, 2021)
   Primary maroon #7D2D3D · secondary gold #BBA461, cream #E5D5B1, green #3C5842
   Type: Playfair Display (headings, numbers) + Inter (text) — client's choice over the guideline's Myriad/Devanagari
   ========================================================================== */
:root{
  --maroon:#7D2D3D; --maroon-deep:#5A1E2A; --maroon-ink:#3A111B; --maroon-night:#2A0C14;
  --gold:#BBA461; --gold-soft:#D2BF84; --gold-deep:#7E6A2F;
  --cream:#E5D5B1; --cream-light:#F4ECDB; --paper:#FBF8F2; --white:#FFFFFF;
  --green:#3C5842; --green-deep:#2C4231;

  --ink:#2B1B1F; --ink-soft:#62504F; --line:#E8DDCB;
  --on-dark:#FFF8F0; --on-dark-soft:rgba(255,248,240,.80); --on-dark-faint:rgba(255,248,240,.56);
  --hair-dark:rgba(229,213,177,.20);

  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --script:'Caveat', 'Segoe Script', cursive;

  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-pill:999px;
  --gutter:clamp(20px,5vw,64px); --maxw:1320px; --head:78px;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1); --ease-back:cubic-bezier(.34,1.56,.64,1);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden; text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
img{max-width:100%; height:auto; display:block}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0; padding:0; list-style:none}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer; padding:0}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:6px}
[id]{scroll-margin-top:72px}
::selection{background:var(--maroon); color:#fff}
.sr{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.skip{position:absolute; left:12px; top:-60px; z-index:200; background:var(--gold); color:var(--maroon-ink); padding:10px 16px; border-radius:var(--r-sm); font-weight:600}
.skip:focus{top:12px}

.wrap{width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter)}
.eyebrow{font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase}
.display{font-family:var(--serif); font-weight:500; letter-spacing:-.015em; line-height:1.08}
.h2{font-family:var(--serif); font-weight:500; font-size:clamp(32px,3.8vw,50px); letter-spacing:-.015em; line-height:1.12}
.h2 em,.display em{font-style:normal; color:var(--gold)}
.on-light .h2 em{color:var(--maroon)}
.lede{font-size:clamp(17px,1.25vw,19px); line-height:1.65}
.serif{font-family:var(--serif)}

/* brand ornament: thin gold frame with arrow-tip corners (guideline "Elements") */
.frame{position:relative}
.frame::before{content:""; position:absolute; inset:-12px; border:1px solid rgba(187,164,97,.7); pointer-events:none; z-index:2;
  background:
    linear-gradient(135deg,var(--gold) 50%,transparent 50%) left -1px top -1px/9px 9px no-repeat,
    linear-gradient(225deg,var(--gold) 50%,transparent 50%) right -1px top -1px/9px 9px no-repeat,
    linear-gradient(45deg,var(--gold) 50%,transparent 50%) left -1px bottom -1px/9px 9px no-repeat,
    linear-gradient(315deg,var(--gold) 50%,transparent 50%) right -1px bottom -1px/9px 9px no-repeat}

/* ---------- buttons ---------- */
.btn{position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 28px; border-radius:var(--r-pill); font-family:var(--sans); font-size:15.5px; font-weight:600; letter-spacing:.01em; white-space:nowrap;
  transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background .3s var(--ease), color .3s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn--gold{background:linear-gradient(180deg,#CDB877,var(--gold)); color:var(--maroon-ink); box-shadow:0 6px 20px rgba(0,0,0,.22)}
.btn--gold:hover{box-shadow:0 12px 30px rgba(0,0,0,.30)}
.btn--maroon{background:linear-gradient(180deg,#8E3647,var(--maroon)); color:#fff; box-shadow:0 6px 20px rgba(125,45,61,.28)}
.btn--maroon:hover{box-shadow:0 12px 30px rgba(125,45,61,.38)}
.btn--line{color:var(--on-dark); border:1px solid rgba(229,213,177,.45)}
.btn--line:hover{background:rgba(229,213,177,.12)}
.btn--line-dark{color:var(--maroon); border:1px solid rgba(125,45,61,.4)}
.btn--line-dark:hover{background:rgba(125,45,61,.06)}
.btn::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.34) 50%,transparent 70%); transform:translateX(-130%); transition:transform .9s var(--ease)}
.btn:hover::after{transform:translateX(130%)}
.btn .arw{transition:transform .35s var(--ease-out)}
.btn:hover .arw{transform:translateX(4px)}
.wa-ico{width:18px; height:18px}

.iconbtn{width:46px; height:46px; flex:0 0 46px; border-radius:var(--r-pill); display:grid; place-items:center; border:1px solid currentColor;
  opacity:.8; transition:opacity .2s, background .25s, transform .3s var(--ease-out)}
.iconbtn:hover{opacity:1; transform:translateY(-2px)}
.iconbtn[disabled]{opacity:.25; cursor:not-allowed; transform:none}

/* ---------- motion (gated on .js; 3.5s failsafe) ---------- */
.js .hi{opacity:0; transform:translateY(22px)}
.is-ready .hi{opacity:1; transform:none; transition:opacity 1s var(--ease-out) calc(var(--i,0)*95ms + 240ms), transform 1.2s var(--ease-out) calc(var(--i,0)*95ms + 240ms)}
.js .rv{opacity:0; transform:translateY(28px)}
.js .rv.in{opacity:1; transform:none; transition:opacity 1s var(--ease-out) var(--d,0ms), transform 1.2s var(--ease-out) var(--d,0ms)}
/* leave a 1px strip unclipped: a fully clipped box never reports as on-screen, so it would never reveal (and its lazy image would never load) */
.js .rv-img{clip-path:inset(0 0 calc(100% - 1px) 0); opacity:.001}
.js .rv-img.in{clip-path:inset(0 0 0 0); opacity:1; transition:clip-path 1.3s var(--ease-out) var(--d,0ms), opacity .5s var(--ease) var(--d,0ms)}
.js .rv-zoom img{transform:scale(1.12)}
.js .rv-zoom.in img{transform:none; transition:transform 1.8s var(--ease-out) var(--d,0ms)}
.js .hi,.js .ln>span,.js .site-header,.js .hero-figure,.js .hero-wheel{animation:failsafe 0s 3.5s forwards}
@keyframes failsafe{to{opacity:1; transform:none}}
/* once the script has started the intro, drop the failsafe: Firefox won't run a transition on a property
   that has a pending animation, and the failsafe's opacity:1 would also over-brighten the wheel at 3.5s */
.is-ready .hi,.is-ready .ln>span,.is-ready .site-header,.is-ready .hero-figure,.is-ready .hero-wheel{animation:none}
/* failsafe must not push the wheel past its resting opacity if the script never runs */
.js .hero-wheel{animation-name:failsafe-wheel} @keyframes failsafe-wheel{to{opacity:.34; transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- header ---------- */
.progress{position:fixed; inset:0 0 auto 0; height:2px; z-index:101; transform-origin:0 50%; transform:scaleX(0); pointer-events:none;
  background:linear-gradient(90deg,var(--gold),var(--cream))}
.site-header{position:fixed; inset:0 0 auto 0; z-index:100; padding-top:env(safe-area-inset-top); color:var(--on-dark);
  transition:background .4s var(--ease), box-shadow .4s var(--ease), transform 1s var(--ease-out), opacity .8s var(--ease)}
.js .site-header{transform:translateY(-100%); opacity:0}
.is-ready .site-header{transform:none; opacity:1}
.site-header.stuck,.site-header.solid{background:rgba(58,17,27,.92); -webkit-backdrop-filter:saturate(150%) blur(16px); backdrop-filter:saturate(150%) blur(16px); box-shadow:0 1px 0 var(--hair-dark)}
.site-header .wrap{display:flex; align-items:center; gap:28px; height:var(--head); transition:height .45s var(--ease-out)}
.site-header.stuck .wrap{height:66px}
.brand{display:flex; align-items:center; gap:12px; color:var(--on-dark)}
.brand .mark{width:26px; height:34px; color:var(--gold); transition:transform .8s var(--ease-out)}
.brand:hover .mark{transform:translateY(-2px) scale(1.06)}
/* registered wordmark, drawn from the brand font — no typed text, so spacing always matches the logo */
.brand .wordmark{display:block; height:17px; width:auto; aspect-ratio:4.4; color:var(--gold)}
.nav{display:flex; align-items:center; gap:30px; margin-inline:auto}
.nav a{position:relative; font-size:15px; font-weight:400; color:var(--on-dark-soft); padding:6px 0; transition:color .25s}
.nav a::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1.5px; background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--ease-out)}
.nav a:hover{color:var(--on-dark)}
.nav a:hover::after,.nav a[aria-current="true"]::after,.nav a[aria-current="page"]::after{transform:scaleX(1); transform-origin:left}
.nav a[aria-current="true"],.nav a[aria-current="page"]{color:var(--on-dark)}
.header-cta{padding:12px 22px; font-size:14.5px}
.navtoggle{display:none; width:44px; height:44px; color:var(--on-dark)}
.navtoggle .bar{transition:transform .4s var(--ease-out), opacity .25s; transform-box:fill-box; transform-origin:center}
.site-header.open .navtoggle .b1{transform:translateY(6px) rotate(45deg)}
.site-header.open .navtoggle .b2{opacity:0}
.site-header.open .navtoggle .b3{transform:translateY(-6px) rotate(-45deg)}
.mobile-nav{display:none}

/* ---------- hero (home) ---------- */
.hero{position:relative; background:radial-gradient(120% 90% at 78% 30%,#8E3849 0%,var(--maroon) 38%,var(--maroon-deep) 100%); color:var(--on-dark);
  padding-top:var(--head); overflow:hidden; isolation:isolate; min-height:min(880px,100vh)}
.hero-wheel{position:absolute; z-index:0; right:calc(13% + 30px); top:calc(var(--head) + 10px); width:min(46vw,620px); aspect-ratio:1; color:var(--gold); opacity:.34; pointer-events:none}
.hero-wheel img,.hero-wheel svg{width:100%; height:100%; animation:spin 240s linear infinite}
.js .hero-wheel{opacity:0; transform:scale(.86) rotate(-40deg)}
.is-ready .hero-wheel{opacity:.34; transform:none; transition:opacity 1.6s var(--ease) .2s, transform 2.6s var(--ease-out) .2s}
.hero-figure{position:absolute; z-index:1; bottom:0; right:calc(13% + 30px); height:min(86%,721px); aspect-ratio:511/721; transform-origin:50% 100%}
.hero-figure img{width:100%; height:100%; object-fit:contain; object-position:bottom; filter:drop-shadow(0 20px 40px rgba(0,0,0,.35))}
.js .hero-figure{opacity:0; transform:translateY(40px) scale(.97)}
.is-ready .hero-figure{opacity:1; transform:none; transition:opacity 1.3s var(--ease) .15s, transform 1.8s var(--ease-out) .15s}
.hero .wrap{position:relative; z-index:2}
.hero-inner{max-width:560px; padding:clamp(56px,7vw,96px) 0 clamp(48px,5vw,72px)}
.hero .eyebrow{color:var(--gold-soft)}
.hero h1{font-size:clamp(46px,5.8vw,80px); margin:22px 0 24px; color:var(--on-dark)}
.hero h1 em{color:var(--gold)}
.ln{display:block; overflow:hidden; padding-bottom:.12em; margin-bottom:-.12em}
.ln>span{display:inline-block}
.js .ln>span{transform:translateY(110%)}
.is-ready .ln>span{transform:none; transition:transform 1.25s var(--ease-out) calc(var(--i)*115ms + 340ms)}
.hero-sub{color:var(--on-dark-soft); max-width:440px}
.hero-actions{display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:34px}
.watch{display:inline-flex; align-items:center; gap:12px; font-size:15.5px; font-weight:600; color:var(--on-dark)}
.watch .disc{position:relative; width:44px; height:44px; border-radius:var(--r-pill); display:grid; place-items:center; background:rgba(229,213,177,.14); border:1px solid rgba(229,213,177,.35); transition:background .3s, transform .4s var(--ease-out)}
.watch .disc::before{content:""; position:absolute; inset:-1px; border-radius:inherit; border:1px solid rgba(229,213,177,.6); animation:ping 2.8s var(--ease) 3s infinite; opacity:0}
@keyframes ping{0%{transform:scale(1); opacity:.7} 70%,100%{transform:scale(1.55); opacity:0}}
.watch:hover .disc{background:rgba(229,213,177,.26); transform:scale(1.08)}

.hero-panel{position:absolute; z-index:3; right:2%; top:200px; width:250px; padding:8px; color:var(--on-dark);
  background:linear-gradient(180deg,rgba(58,17,27,.78),rgba(42,12,20,.9)); border:1px solid rgba(187,164,97,.35); border-radius:16px;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:0 18px 46px rgba(0,0,0,.35)}
.js .hero-panel{opacity:0; transform:translateX(30px)}
.is-ready .hero-panel{opacity:1; transform:none; transition:opacity 1s var(--ease) 1.05s, transform 1.3s var(--ease-out) 1.05s}
.hero-panel ul{position:relative}
.hero-panel .glide{position:absolute; left:0; right:0; top:0; height:0; border-radius:10px; z-index:0; background:linear-gradient(90deg,rgba(187,164,97,.30),rgba(187,164,97,.08));
  box-shadow:inset 0 0 0 1px rgba(187,164,97,.35); transition:transform .7s var(--ease-out), height .7s var(--ease-out)}
.hero-panel li{position:relative; z-index:1; display:flex; align-items:center; gap:13px; padding:12px 14px; font-size:14.5px; color:var(--on-dark-soft); white-space:nowrap; transition:color .4s}
.hero-panel li+li{border-top:1px solid rgba(229,213,177,.10)}
.hero-panel li svg{flex:0 0 19px; opacity:.85; color:var(--gold-soft); transition:opacity .4s, color .4s}
.hero-panel li.on{color:var(--on-dark)}
.hero-panel li.on svg{opacity:1; color:var(--gold)}
.hero-panel li .tick{margin-left:auto; width:9px; height:1.5px; background:var(--gold); opacity:0; transition:opacity .4s}
.hero-panel li.on .tick{opacity:1}
.hero-panel .spark{margin-left:auto; color:var(--gold)}
.js .hero-panel li{opacity:0; transform:translateX(14px)}
.is-ready .hero-panel li{opacity:1; transform:none; transition:opacity .7s var(--ease) calc(1.3s + var(--i)*85ms), transform .9s var(--ease-out) calc(1.3s + var(--i)*85ms), color .4s}
.hero-quote{position:absolute; z-index:3; right:2.5%; top:500px; font-family:var(--script); font-size:31px; line-height:1.16; color:var(--cream); text-shadow:0 2px 14px rgba(42,12,20,.7)}
.hero-quote .q,.cta-quote .q{display:block; white-space:nowrap}
.js .hero-quote .q{clip-path:inset(-12% 100% -12% -6%)}
.is-ready .hero-quote .q{clip-path:inset(-12% -6% -12% -6%); transition:clip-path 1.05s cubic-bezier(.45,.05,.55,.95) calc(1.9s + var(--i)*.9s)}

.stats{display:flex; gap:clamp(26px,4vw,56px); flex-wrap:wrap; margin-top:clamp(40px,5vw,60px)}
.stats dt{font-family:var(--serif); font-size:clamp(34px,3.3vw,46px); font-weight:500; line-height:1; color:var(--gold); font-variant-numeric:lining-nums tabular-nums}
.stats dd{margin:10px 0 0; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-faint)}
.ct{display:inline-block}

/* ---------- section scaffolding ---------- */
.sec{padding:clamp(68px,7.5vw,112px) 0}
.sec--paper{background:var(--paper)}
.sec--cream{background:var(--cream-light)}
.sec--maroon{background:var(--maroon); color:var(--on-dark)}
.sec--deep{background:var(--maroon-deep); color:var(--on-dark)}
.sec--green{background:var(--green); color:var(--on-dark)}
.sec-head{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:end; margin-bottom:clamp(34px,4vw,52px)}
/* direct child only: the eyebrow <p> inside the heading block must not pick these up */
.sec-head>p{color:var(--ink-soft); max-width:470px; justify-self:end}
.sec--maroon .sec-head>p,.sec--deep .sec-head>p,.sec--green .sec-head>p,.hw-cert .sec-head>div>p:not(.eyebrow){color:var(--on-dark-soft)}
.on-light .eyebrow{color:var(--gold-deep)}
.sec--maroon .eyebrow,.sec--deep .eyebrow,.sec--green .eyebrow{color:var(--gold-soft)}
.eyebrow + .h2{margin-top:14px}
.watermark{position:absolute; pointer-events:none; color:var(--gold); opacity:.10}

/* ---------- scroller (services, related, testimonials) ---------- */
.scroller-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(28px,3.5vw,44px)}
.scroller-nav{display:flex; gap:10px; flex:0 0 auto}
.on-light .scroller-nav{color:var(--maroon)}
.scroller{display:grid; grid-auto-flow:column; grid-auto-columns:clamp(260px,24vw,318px); gap:22px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-padding-inline:var(--gutter); padding:8px var(--gutter) 26px; margin-inline:calc(var(--gutter) * -1);
  scrollbar-width:none; cursor:grab; -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent 100%); mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent 100%)}
.scroller::-webkit-scrollbar{display:none}
.scroller.dragging{cursor:grabbing; scroll-snap-type:none}
.scroller.dragging *{pointer-events:none}
.scroller > *{scroll-snap-align:start}
.scroll-track{height:2px; background:var(--line); border-radius:2px; position:relative; margin-top:6px; max-width:340px}
.scroll-track i{position:absolute; left:0; top:0; bottom:0; width:30%; background:var(--maroon); border-radius:2px; transition:transform .15s linear}

.svc{display:block; background:var(--white); border-radius:var(--r-md); box-shadow:0 1px 2px rgba(43,27,31,.05),0 10px 26px rgba(43,27,31,.07);
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out)}
.svc:hover{transform:translateY(-6px); box-shadow:0 2px 6px rgba(43,27,31,.07),0 24px 48px rgba(43,27,31,.14)}
.svc-img{aspect-ratio:1.73; overflow:hidden; background:var(--cream-light); border-radius:var(--r-md) var(--r-md) 0 0}
.svc-img img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-out)}
.svc:hover .svc-img img{transform:scale(1.06)}
.svc-body{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px 20px; border-top:2px solid var(--gold)}
.svc h3{font-size:18px; font-weight:600; color:var(--ink); line-height:1.25}
.svc p{font-family:var(--serif); font-size:16px; font-style:italic; color:var(--ink-soft); margin-top:4px}
.svc .go{width:36px; height:36px; flex:0 0 36px; border-radius:var(--r-pill); display:grid; place-items:center; background:var(--cream-light); color:var(--maroon);
  transition:background .35s var(--ease), color .35s, transform .45s var(--ease-out)}
.svc:hover .go{background:var(--maroon); color:#fff; transform:translateX(3px) rotate(-45deg)}

/* ---------- analysis ---------- */
.analysis{position:relative; overflow:hidden}
.analysis-grid{display:grid; grid-template-columns:minmax(280px,380px) minmax(0,560px); justify-content:space-between; gap:clamp(28px,5vw,72px); align-items:center}
.analysis-lede{color:var(--on-dark-soft); margin-top:16px; max-width:360px}
.tabs{position:relative; display:flex; flex-direction:column; gap:6px; margin-top:32px}
.tab-glide{position:absolute; left:0; top:0; width:0; height:0; z-index:0; border-radius:var(--r-sm); background:var(--cream); box-shadow:0 8px 24px rgba(0,0,0,.22); pointer-events:none}
.tabs.ready .tab-glide{transition:transform .55s var(--ease-out), width .55s var(--ease-out), height .55s var(--ease-out)}
.tab{position:relative; z-index:1; display:flex; align-items:center; gap:13px; width:100%; text-align:left; padding:12px 17px; border-radius:var(--r-sm); font-size:16px; color:var(--on-dark-soft); transition:background .25s, color .35s}
.tab svg{flex:0 0 18px; color:var(--gold-soft); transition:color .35s}
.tab:hover{background:rgba(229,213,177,.10); color:var(--on-dark)}
.tab[aria-selected="true"]{background:transparent; color:var(--maroon-ink); font-weight:600}
.tab[aria-selected="true"] svg{color:var(--maroon)}
.plan{position:relative; border-radius:var(--r-md); overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.35)}
.plan>img{width:100%; height:auto}
/* covers the "ENTRANCE" card baked into zone-plan.webp (42.3–87.4% across, 43.6–72.4% down) */
.plan-tip{position:absolute; left:40.5%; right:10.5%; top:41.5%; min-height:33%; background:var(--maroon-ink); border:1px solid rgba(187,164,97,.45); border-radius:10px;
  padding:clamp(12px,2.2cqw,20px) clamp(14px,2.6cqw,22px); box-shadow:0 12px 34px rgba(0,0,0,.5); display:flex; flex-direction:column; justify-content:center; container-type:inline-size}
.plan{container-type:inline-size}
.plan-tip h4{font-size:clamp(11px,2.1cqw,13px); letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:700}
.plan-tip p{font-family:var(--serif); font-size:clamp(13px,2.6cqw,17px); line-height:1.4; color:var(--on-dark-soft); margin-top:8px}
.plan-tip h4,.plan-tip p{transition:opacity .22s var(--ease), transform .35s var(--ease-out)}
.plan-tip.swap h4,.plan-tip.swap p{opacity:0; transform:translateY(4px)}
.plan-tip::after{content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; box-shadow:0 0 0 1px rgba(187,164,97,0); transition:box-shadow .6s}
.plan-tip.flash::after{box-shadow:0 0 0 1px rgba(187,164,97,.8),0 0 26px rgba(187,164,97,.3)}

/* ---------- process ---------- */
.steps{display:grid; grid-template-columns:repeat(4,1fr); margin-top:clamp(34px,4vw,54px)}
.step{position:relative; padding-right:34px}
.step:not(:last-child)::after{content:""; position:absolute; right:12px; top:22px; width:12px; height:12px; border-top:1.5px solid var(--gold); border-right:1.5px solid var(--gold); transform:rotate(45deg)}
.js .step:not(:last-child)::after{opacity:0; transform:translateX(-8px) rotate(45deg)}
.js .step.in:not(:last-child)::after{opacity:1; transform:rotate(45deg); transition:opacity .6s var(--ease) calc(var(--d,0ms) + 450ms), transform .8s var(--ease-out) calc(var(--d,0ms) + 450ms)}
.step .ic{width:56px; height:56px; border-radius:14px; display:grid; place-items:center; background:var(--white); border:1px solid var(--line); color:var(--maroon); margin-bottom:18px; transition:background .4s, color .4s, transform .5s var(--ease-out)}
.step:hover .ic{background:var(--maroon); color:var(--gold); transform:translateY(-3px)}
.js .step .ic{transform:scale(.55); opacity:0}
.js .step.in .ic{transform:none; opacity:1; transition:transform .8s var(--ease-back) calc(var(--d,0ms) + 120ms), opacity .5s var(--ease) calc(var(--d,0ms) + 120ms), background .4s, color .4s}
.js .step.in:hover .ic{transform:translateY(-3px)}
.step .no{font-family:var(--serif); font-size:20px; color:var(--gold-deep)}
.step h3{font-size:19px; font-weight:600; margin-top:4px; line-height:1.3}
.step p{color:var(--ink-soft); margin-top:8px; max-width:230px; font-size:16px}

/* ---------- case study ---------- */
.case-slide{display:grid; grid-template-columns:minmax(260px,1fr) 1.25fr minmax(220px,296px); gap:clamp(20px,3vw,40px); align-items:center}
.case-copy p{color:var(--on-dark-soft); margin:18px 0 26px; max-width:360px}
.case-photo{border-radius:var(--r-md); overflow:hidden; aspect-ratio:1.72}
.case-photo img{width:100%; height:100%; object-fit:cover}
.case-stats{background:var(--paper); color:var(--ink); border-radius:var(--r-md); padding:26px 28px; align-self:stretch; display:flex; flex-direction:column; justify-content:center; gap:20px}
.case-stats dt{font-family:var(--serif); font-size:34px; font-weight:500; color:var(--maroon); line-height:1; font-variant-numeric:lining-nums tabular-nums}
.case-stats dd{margin:6px 0 0; font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-soft)}

/* ---------- expert / founder ---------- */
.expert{display:grid; grid-template-columns:1fr 1fr; align-items:stretch; background:var(--paper)}
.expert-visual{position:relative; overflow:hidden; background:radial-gradient(110% 90% at 50% 20%,#8E3849 0%,var(--maroon) 45%,var(--maroon-deep) 100%);
  display:flex; align-items:flex-end; justify-content:center; padding:clamp(40px,5vw,64px) 24px 0; min-height:560px}
.expert-visual .wheel{position:absolute; width:min(82%,520px); aspect-ratio:1; left:50%; top:clamp(28px,4vw,48px); translate:-50% 0; color:var(--gold); opacity:.28}
.expert-visual .wheel img{width:100%; height:100%; animation:spin 300s linear infinite reverse}
.expert-visual .portrait{position:relative; z-index:1; width:min(100%,420px); max-height:600px; object-fit:contain; object-position:bottom; filter:drop-shadow(0 20px 40px rgba(0,0,0,.35))}
.expert-visual .caption{position:absolute; z-index:2; left:clamp(20px,3vw,36px); bottom:clamp(20px,3vw,32px); color:var(--on-dark)}
.expert-visual .caption b{display:block; font-size:19px; font-weight:600}
.expert-visual .caption span{font-family:var(--serif); font-style:italic; color:var(--gold-soft)}
.expert-body{padding:clamp(48px,5.5vw,84px) clamp(28px,5vw,80px); display:flex; flex-direction:column; justify-content:center}
.expert-body>p{color:var(--ink-soft); margin:20px 0 30px; max-width:460px}
.expert-body .btn{align-self:flex-start}
.expert .stats dt{color:var(--maroon)}
.expert .stats dd{color:var(--ink-soft)}

/* ---------- testimonials ---------- */
.quote{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:28px 28px 24px; display:flex; flex-direction:column; gap:18px;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .4s}
.quote:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(43,27,31,.08); border-color:#D9C8AE}
.quote .mark{font-family:var(--serif); font-size:52px; line-height:.5; color:var(--gold)}
.quote blockquote{font-family:var(--serif); font-size:19px; line-height:1.55; color:var(--ink); flex-grow:1}
.who{display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--line)}
.who .av{width:36px; height:36px; border-radius:var(--r-pill); background:var(--cream-light); color:var(--maroon); display:grid; place-items:center}
.who b{display:block; font-size:15px; font-weight:600}
.who span{font-size:14px; color:var(--ink-soft)}

/* ---------- CTA band ---------- */
.cta{position:relative; background:var(--maroon); color:var(--on-dark); overflow:hidden; isolation:isolate}
.cta-media{position:absolute; inset:0 0 0 auto; z-index:0; width:52%; max-width:720px; background-position:center; background-size:cover; background-repeat:no-repeat}
.cta-media::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--maroon) 0%,rgba(125,45,61,.9) 18%,rgba(125,45,61,.35) 55%,rgba(125,45,61,.15) 100%)}
.js .cta-media{opacity:0; transform:scale(1.06)}
.js .cta.in .cta-media{opacity:1; transform:none; transition:opacity 1.4s var(--ease), transform 2.4s var(--ease-out)}
.cta .wrap{position:relative; z-index:1}
.cta-inner{max-width:560px; padding:clamp(64px,7vw,108px) 0}
.cta p{color:var(--on-dark-soft); margin:20px 0 32px; max-width:430px}
.cta-actions{display:flex; gap:14px; flex-wrap:wrap}
.cta .watermark{right:4%; top:50%; translate:0 -50%; width:220px; height:290px; opacity:.16}

/* ---------- inner page hero ---------- */
.page-hero{position:relative; background:radial-gradient(120% 100% at 85% 20%,#8E3849 0%,var(--maroon) 40%,var(--maroon-deep) 100%); color:var(--on-dark);
  padding:calc(var(--head) + clamp(40px,6vw,80px)) 0 clamp(56px,6vw,88px); overflow:hidden; isolation:isolate}
.page-hero .watermark{right:-40px; top:calc(var(--head) - 10px); width:min(34vw,420px); aspect-ratio:1; opacity:.14}
.page-hero .watermark img{width:100%; height:100%; animation:spin 280s linear infinite}
.page-hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,72px); align-items:center}
.crumbs{display:flex; flex-wrap:wrap; gap:8px; font-size:14px; color:var(--on-dark-faint); margin-bottom:22px}
.crumbs a:hover{color:var(--on-dark)}
.crumbs span[aria-hidden]{opacity:.6}
.page-hero .eyebrow{color:var(--gold-soft)}
.page-hero h1{font-size:clamp(40px,5vw,68px); margin:16px 0 20px}
.page-hero .lede{color:var(--on-dark-soft); max-width:560px}
.page-hero .tagline{font-family:var(--serif); font-style:italic; font-size:22px; color:var(--gold); margin-top:4px}
.page-hero .hero-actions{margin-top:30px}
.page-hero-media{position:relative; justify-self:end; width:100%}
.page-hero-media img{width:100%; height:auto; border-radius:4px}
.page-hero-media.cut{align-self:end; margin-bottom:calc(clamp(56px,6vw,88px) * -1)}
.page-hero-media.cut img{border-radius:0; filter:drop-shadow(0 20px 40px rgba(0,0,0,.35))}

/* ---------- content blocks ---------- */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:start}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.prose p{color:var(--ink-soft); margin-top:16px}
.prose p.lede{color:var(--ink); margin-top:0}
.svc-intro-head{position:sticky; top:calc(var(--head) + 36px)}
@media (max-width:900px){.svc-intro-head{position:static}}
.prose p:first-child{margin-top:0}
.prose h2{font-size:clamp(24px,2.4vw,30px); font-weight:600; margin:40px 0 12px; color:var(--ink)}
.prose h3{font-size:19px; font-weight:600; margin:26px 0 8px; color:var(--ink)}
.prose ul{margin-top:12px; display:grid; gap:8px}
.prose li{position:relative; padding-left:22px; color:var(--ink-soft)}
.prose li::before{content:""; position:absolute; left:2px; top:.62em; width:7px; height:7px; background:var(--gold); transform:rotate(45deg)}
.prose a{color:var(--maroon); text-decoration:underline; text-underline-offset:3px}

.assess{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.assess-item{position:relative; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:26px 24px 24px; transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .4s}
.assess-item:hover{transform:translateY(-4px); box-shadow:0 18px 38px rgba(43,27,31,.08); border-color:#D9C8AE}
.assess-item .n{font-family:var(--serif); font-size:26px; color:var(--gold-deep); line-height:1}
.assess-item h3{font-size:18px; font-weight:600; margin:14px 0 8px; line-height:1.3}
.assess-item p{color:var(--ink-soft); font-size:16px}

.stages{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.stage{border-top:2px solid var(--gold); padding-top:22px}
.stage .lbl{font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft)}
.on-light .stage .lbl{color:var(--gold-deep)}
.stage h3{font-size:22px; font-weight:400; margin:10px 0 8px}
.stage p{color:var(--on-dark-soft); font-size:16px}
.on-light .stage p{color:var(--ink-soft)}

.advisory{display:grid; gap:22px}
.adv{display:grid; grid-template-columns:120px 1fr 1.2fr; gap:clamp(18px,3vw,44px); align-items:start; padding:34px 0; border-top:1px solid var(--line)}
.adv:last-child{border-bottom:1px solid var(--line)}
.adv .n{font-family:var(--serif); font-size:clamp(44px,5vw,64px); line-height:.9; color:var(--gold)}
.adv h3{font-size:clamp(22px,2.2vw,28px); font-weight:400; line-height:1.2}
.adv .kicker{font-family:var(--serif); font-style:italic; font-size:18px; color:var(--maroon); margin-top:8px}
.adv ul{display:grid; grid-template-columns:1fr 1fr; gap:10px 24px}
.adv li{position:relative; padding-left:20px; color:var(--ink-soft); font-size:16px}
.adv li::before{content:""; position:absolute; left:2px; top:.6em; width:6px; height:6px; background:var(--gold); transform:rotate(45deg)}

.flow{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:28px}
.flow span{font-size:13px; font-weight:700; letter-spacing:.18em; color:var(--gold)}
.flow i{width:26px; height:1px; background:currentColor; opacity:.5; position:relative; font-style:normal}
.flow i::after{content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid; border-right:1px solid; transform:rotate(45deg)}
.js .flow > *{opacity:0; transform:translateX(-10px)}
.js .flow.in > *{opacity:1; transform:none; transition:opacity .6s var(--ease) calc(var(--k)*140ms), transform .8s var(--ease-out) calc(var(--k)*140ms)}

.chips{display:flex; flex-wrap:wrap; gap:12px}
.chip{padding:12px 20px; border:1px solid var(--hair-dark); border-radius:var(--r-pill); font-size:14px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--cream); transition:background .3s, border-color .3s}
.chip:hover{background:rgba(229,213,177,.1); border-color:rgba(229,213,177,.45)}
.on-light .chip{border-color:var(--line); color:var(--maroon)}

.partner{position:relative; display:grid; grid-template-columns:1.2fr .8fr; gap:40px; align-items:center; padding:clamp(34px,5vw,60px); border:1px solid rgba(187,164,97,.5); border-radius:4px}
.tiers{display:flex; flex-wrap:wrap; gap:10px 18px; font-family:var(--serif); font-size:clamp(26px,3vw,38px); color:var(--gold); margin:18px 0 14px}
.tiers span+span::before{content:"·"; margin-right:18px; opacity:.6}

.gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
.gallery figure{overflow:hidden; border-radius:var(--r-sm); background:var(--cream-light)}
.gallery img{width:100%; height:100%; aspect-ratio:3/4; object-fit:cover; transition:transform .9s var(--ease-out)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery.wide img{aspect-ratio:3/2}

.founder{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,5vw,80px); align-items:center}
.founder-photo{position:relative; background:radial-gradient(100% 80% at 50% 30%,#8E3849,var(--maroon-deep)); border-radius:4px; display:flex; justify-content:center; align-items:flex-end; padding-top:36px; overflow:hidden}
.founder-photo img{width:min(100%,420px); height:auto}
.founder-photo .wheel{position:absolute; inset:6% 6% auto; aspect-ratio:1; color:var(--gold); opacity:.25}
.founder-photo .wheel img{width:100%; height:100%; animation:spin 300s linear infinite}
.acronym{display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:22px; font-size:15px; color:var(--ink-soft)}
.acronym b{font-family:var(--serif); font-size:26px; font-weight:500; color:var(--maroon); margin-right:2px}
.proof{display:flex; gap:clamp(28px,5vw,60px); margin-top:30px}
.proof dt{font-family:var(--serif); font-size:clamp(38px,4vw,52px); line-height:1; color:var(--maroon)}
.proof dd{margin-top:8px; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft)}

.contact-grid{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px,5vw,80px); align-items:start}
.channels{display:grid; gap:14px; margin-top:28px}
.channel{display:flex; align-items:center; gap:16px; padding:18px 20px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .3s}
.channel:hover{transform:translateY(-3px); box-shadow:0 16px 34px rgba(43,27,31,.08); border-color:#D9C8AE}
.channel .ci{width:46px; height:46px; flex:0 0 46px; border-radius:12px; display:grid; place-items:center; background:var(--maroon); color:var(--gold)}
.channel b{display:block; font-weight:600}
.channel span{color:var(--ink-soft); font-size:15px}
.form-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(26px,4vw,44px); box-shadow:0 24px 60px rgba(43,27,31,.07)}

.legal{max-width:780px}
.legal .updated{font-size:14px; color:var(--ink-soft); margin-bottom:26px}

/* ---------- media coverage: endless logo strip ---------- */
.media{position:relative; background:var(--maroon-ink); color:var(--on-dark); padding:clamp(40px,5vw,60px) 0 clamp(44px,5.5vw,66px); overflow:hidden}
.media .eyebrow{color:var(--gold-soft); text-align:center; margin-bottom:clamp(24px,3vw,34px)}
.marquee{position:relative; overflow:hidden}
.marquee::before,.marquee::after{content:""; position:absolute; z-index:1; top:0; bottom:0; width:clamp(40px,10vw,140px); pointer-events:none}
.marquee::before{left:0; background:linear-gradient(90deg,var(--maroon-ink),rgba(58,17,27,0))}
.marquee::after{right:0; background:linear-gradient(270deg,var(--maroon-ink),rgba(58,17,27,0))}
.marquee-track{display:flex; width:max-content; animation:marquee 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-list{display:flex; align-items:center; gap:clamp(44px,5vw,76px); padding-right:clamp(44px,5vw,76px); margin:0; list-style:none}
.marquee-list img{display:block; max-width:none; opacity:.82; transition:opacity .3s}
.marquee-list li:hover img{opacity:1}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (max-width:620px){ .marquee-list{zoom:.78} .marquee-track{animation-duration:34s} }
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none; width:auto} .marquee-list[aria-hidden]{display:none}
  .marquee-list{flex-wrap:wrap; justify-content:center; gap:26px 40px; padding:0 var(--gutter)} .marquee::before,.marquee::after{display:none}
}

/* ---------- The Healing Within (workshop page) ---------- */
.hw-hero{padding-bottom:0}
.hw-hero .page-hero-grid{align-items:end}
.hw-hero .page-hero-grid>div:first-child{padding-bottom:clamp(56px,6vw,88px)}
.hw-figure{position:relative; justify-self:end; align-self:end; width:min(100%,470px); margin:0}
.hw-figure::before{content:""; position:absolute; z-index:0; left:2%; right:-6%; top:8%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 38% 32%,#52715A 0%,var(--green) 48%,var(--green-deep) 100%); box-shadow:0 0 0 1px rgba(187,164,97,.55), 0 0 0 12px rgba(187,164,97,.07)}
.hw-figure img{position:relative; z-index:1; display:block; width:100%; height:auto; filter:drop-shadow(0 24px 40px rgba(0,0,0,.35));
  -webkit-mask-image:linear-gradient(90deg,#000 80%,transparent 99%); mask-image:linear-gradient(90deg,#000 80%,transparent 99%)}
/* framed photo (not a cut-out) in the hero: arch with a gold rule, lifted off the section edge */
.hw-figure--photo{align-self:center; width:min(100%,420px); margin-bottom:clamp(56px,6vw,88px)}
.hw-figure--photo::before{display:none}
.hw-figure--photo img{aspect-ratio:4/5; object-fit:cover; border-radius:999px 999px 18px 18px; -webkit-mask-image:none; mask-image:none; filter:none;
  box-shadow:0 0 0 1px rgba(187,164,97,.6), 0 0 0 10px rgba(187,164,97,.08), 0 30px 60px rgba(0,0,0,.35)}
.hw-words{display:flex; flex-wrap:wrap; gap:6px 0; margin-top:18px; font-size:12.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft)}
.hw-words span+span::before{content:"•"; margin:0 14px; color:var(--gold); opacity:.7}
.hw-facts{display:grid; grid-template-columns:repeat(4,auto); justify-content:start; gap:14px clamp(22px,3vw,40px); margin-top:clamp(30px,4vw,42px); padding-top:24px; border-top:1px solid var(--hair-dark)}
.hw-facts dt{font-family:var(--serif); font-size:clamp(20px,1.8vw,24px); color:var(--gold); line-height:1.1}
.hw-facts dd{margin:6px 0 0; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-faint)}
.hw-guide{margin-top:30px; padding:22px 24px; background:var(--white); border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:var(--r-md); max-width:440px}
.hw-guide .lbl{font-size:11.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep)}
.hw-guide .nm{font-family:var(--serif); font-size:24px; color:var(--ink); margin-top:6px}
.hw-guide .ttl{font-style:italic; color:var(--ink-soft); font-size:15.5px}
.hw-guide .pf{display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:12px; font-size:13.5px; font-weight:600; color:var(--maroon)}
.hw-elements{list-style:none; margin:clamp(40px,5vw,60px) 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:14px}
.hw-elements li{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:22px 18px; text-align:center; transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out)}
.hw-elements li:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(43,27,31,.08)}
.hw-elements b{display:block; font-family:var(--serif); font-weight:500; font-size:30px; color:var(--maroon); letter-spacing:.06em}
.hw-elements span{display:block; margin-top:8px; font-weight:600; color:var(--ink)}
.hw-elements small{display:block; margin-top:2px; font-size:13.5px; color:var(--ink-soft)}
.hw-days{display:grid; gap:clamp(22px,3vw,32px)}
.hw-day{display:grid; grid-template-columns:minmax(260px,340px) 1fr; border-radius:var(--r-lg); overflow:hidden; background:var(--white); border:1px solid var(--line)}
.hw-day-head{position:relative; padding:clamp(28px,3.5vw,44px); color:var(--on-dark); background:var(--green); overflow:hidden}
.hw-day--maroon .hw-day-head{background:var(--maroon)}
.hw-day-head::after{content:""; position:absolute; right:-60px; bottom:-60px; width:220px; height:220px; background:url(logo-symbol-gold.svg) center/contain no-repeat; opacity:.12}
.hw-day-head .no{font-family:var(--serif); font-size:clamp(56px,6vw,76px); line-height:.9; color:var(--gold)}
.hw-day-head .no span{display:block; font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:10px}
.hw-day-head h3{font-family:var(--serif); font-weight:500; font-size:clamp(24px,2.3vw,30px); line-height:1.15; margin-top:22px}
.hw-day-head .tag{font-family:var(--serif); font-style:italic; color:var(--gold-soft); margin-top:12px; font-size:17px}
.hw-sessions{list-style:none; margin:0; padding:clamp(12px,2vw,20px) clamp(22px,3vw,40px)}
.hw-sessions li{display:grid; grid-template-columns:96px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid var(--line)}
.hw-sessions li:last-child{border-bottom:0}
.hw-sessions .t{font-size:13px; font-weight:700; color:var(--maroon); padding-top:3px; white-space:nowrap}
.hw-sessions h4{font-size:17px; font-weight:600; color:var(--ink)}
.hw-sessions p{color:var(--ink-soft); font-size:15.5px; margin-top:4px; line-height:1.55}
.hw-affirm{background:var(--maroon-ink); color:var(--on-dark); padding:clamp(64px,7vw,100px) 0; text-align:center}
.hw-affirm .eyebrow{color:var(--gold-soft)}
.hw-lines{list-style:none; margin:22px 0 0; padding:0; display:grid; gap:4px}
.hw-lines li{font-family:var(--script); font-size:clamp(32px,4.4vw,54px); line-height:1.15; color:var(--cream)}
.hw-lines li:nth-child(even){color:var(--gold)}
.hw-cert .sec-head{align-items:start}
.hw-mosaic{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:clamp(130px,15vw,210px); grid-auto-flow:dense; gap:12px}
.hw-mosaic figure{margin:0; overflow:hidden; border-radius:var(--r-sm); background:var(--maroon-deep)}
.hw-mosaic img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-out)}
.hw-mosaic figure:hover img{transform:scale(1.04)}
.hw-mosaic .big{grid-column:span 2; grid-row:span 2}
.hw-mosaic .tall{grid-row:span 2}
.hw-mosaic .wide{grid-column:span 2}
.hw-caption{margin-top:16px; font-size:14px; color:var(--on-dark-faint)}
.form-title{font-family:var(--serif); font-weight:500; font-size:clamp(24px,2.4vw,30px); margin:10px 0 22px}
@media (max-width:1080px){
  .hw-elements{grid-template-columns:repeat(3,1fr)}
  .hw-facts{grid-template-columns:repeat(2,auto)}
}
@media (max-width:900px){
  .hw-figure{justify-self:center; width:min(78vw,400px); margin-top:8px}
  .hw-hero .page-hero-grid>div:first-child{padding-bottom:0}
  .hw-day{grid-template-columns:1fr}
  .hw-mosaic{grid-template-columns:repeat(2,1fr)}
  .hw-mosaic .big{grid-column:span 2; grid-row:span 2}
}
@media (max-width:620px){
  .hw-elements{grid-template-columns:repeat(2,1fr)}
  .hw-elements li:last-child{grid-column:span 2}
  .hw-sessions li{grid-template-columns:1fr; gap:4px}
  .hw-words{gap:8px 20px} .hw-words span+span::before{display:none}
  .hw-mosaic .wide{grid-column:span 2}
}

/* ---------- blog: listing + posts ---------- */
.blog-filter{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:clamp(28px,3.5vw,40px)}
.chip-btn{display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:9px 18px; border-radius:var(--r-pill); border:1px solid var(--line); background:var(--white); color:var(--ink); font-size:14.5px; font-weight:600; cursor:pointer; transition:background .25s, color .25s, border-color .25s}
.chip-btn span{font-size:12.5px; font-weight:600; color:var(--ink-soft)}
.chip-btn:hover{border-color:var(--gold)}
.chip-btn[aria-pressed="true"]{background:var(--maroon); border-color:var(--maroon); color:var(--on-dark)}
.chip-btn[aria-pressed="true"] span{color:var(--gold-soft)}
.post-cards{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px}
.post-cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.post-card{display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out)}
.post-card:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(43,27,31,.09)}
.post-card[hidden]{display:none}
.post-card figure{margin:0; aspect-ratio:16/10; overflow:hidden; background:var(--cream-light)}
.post-card figure img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-out)}
.post-card:hover figure img{transform:scale(1.04)}
.pc-body{padding:18px 18px 22px}
.pc-meta{display:flex; flex-wrap:wrap; gap:4px 10px; font-size:12.5px; color:var(--ink-soft)}
.pc-meta span{font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:11px; color:var(--gold-deep)}
.pc-title{font-family:var(--serif); font-weight:500; font-size:19px; line-height:1.3; color:var(--ink); margin-top:8px}
.post-hero{padding-bottom:clamp(44px,5vw,64px)}
.post-title{font-family:var(--serif); font-weight:500; font-size:clamp(32px,4vw,52px); line-height:1.12; letter-spacing:-.01em; margin:14px 0 18px; max-width:900px}
.post-meta{display:flex; flex-wrap:wrap; gap:6px 12px; color:var(--on-dark-faint); font-size:14.5px}
.post-sec{padding-top:clamp(40px,5vw,64px)}
.post-layout{display:grid; grid-template-columns:minmax(0,760px) minmax(240px,300px); justify-content:space-between; gap:clamp(32px,5vw,72px); align-items:start}
.post-body{font-size:18px; line-height:1.75; overflow-wrap:anywhere}
.post-body p{color:var(--ink); margin-top:18px}
.post-body h2{font-family:var(--serif); font-weight:500; font-size:clamp(26px,2.6vw,32px); line-height:1.2; margin:44px 0 6px; color:var(--ink)}
.post-body h3{font-size:20px; margin:30px 0 4px}
.post-body h4{font-size:17px; font-weight:700; margin:24px 0 4px; color:var(--ink)}
.post-body img{display:block; max-width:100%; height:auto; border-radius:var(--r-sm); margin:4px 0}
.post-body p:has(> img:only-child){margin-top:26px}
.post-body ul,.post-body ol{margin-top:14px}
.post-body li{color:var(--ink)}
.post-body ol{list-style:decimal; padding-left:1.3em; display:block}
.post-body ol li{padding-left:4px; margin-top:8px}
.post-body ol li::before{display:none}
.post-body blockquote{margin:28px 0; padding:6px 0 6px 22px; border-left:3px solid var(--gold); font-family:var(--serif); font-size:20px; color:var(--ink)}
.post-body blockquote p{margin-top:6px; color:inherit}
.post-body hr{border:0; border-top:1px solid var(--line); margin:36px 0}
.post-body table{width:100%; border-collapse:collapse; margin-top:18px; font-size:16px; display:block; overflow-x:auto}
.post-body th,.post-body td{border:1px solid var(--line); padding:8px 10px; text-align:left}
.post-body .embed{position:relative; aspect-ratio:16/9; margin-top:24px; border-radius:var(--r-sm); overflow:hidden; background:#000}
.post-body .embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.post-aside{position:sticky; top:calc(var(--head) + 24px); display:grid; gap:18px}
.aside-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:24px}
.aside-cta{border-top:3px solid var(--gold)}
.aside-cta .ac-h{font-family:var(--serif); font-size:21px; line-height:1.3; color:var(--ink); margin:10px 0 18px}
.aside-cta .btn{width:100%; justify-content:center; margin-top:10px}
.aside-list{list-style:none; margin:12px 0 0; padding:0; display:grid; gap:12px}
.aside-list a{font-size:15px; line-height:1.4; color:var(--ink); text-decoration:none}
.aside-list a:hover{color:var(--maroon); text-decoration:underline}
@media (max-width:1080px){ .post-cards{grid-template-columns:repeat(3,minmax(0,1fr))} .post-layout{grid-template-columns:1fr} .post-aside{position:static; grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){ .post-cards,.post-cards.three{grid-template-columns:repeat(2,minmax(0,1fr))} .post-aside{grid-template-columns:1fr} }
@media (max-width:520px){ .post-cards,.post-cards.three{grid-template-columns:1fr} .post-body{font-size:17px} }

/* ---------- numerology & astrology pages ---------- */
.ns-hero{padding-bottom:clamp(48px,5.5vw,72px)}
.ns-hero-grid{display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:clamp(32px,5vw,72px); align-items:end}
.ns-answer{max-width:640px; margin-top:4px}
.ns-hero-grid>*{min-width:0}
.post-title{overflow-wrap:break-word}
.ns-facts{background:rgba(42,12,20,.42); border:1px solid var(--hair-dark); border-radius:var(--r-lg); padding:24px 26px; backdrop-filter:blur(6px)}
.ns-facts dl{margin:0; display:grid; gap:14px}
.ns-facts dt{font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft)}
.ns-facts dd{margin:4px 0 0; color:var(--on-dark); font-size:15.5px; line-height:1.45}
.ns-proof{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:18px; padding-top:16px; border-top:1px solid var(--hair-dark); font-size:13px; font-weight:600; color:var(--gold)}
.ns-layout{display:grid; grid-template-columns:minmax(0,760px) minmax(240px,300px); justify-content:space-between; gap:clamp(32px,5vw,72px); align-items:start}
.ns-article{font-size:17.5px; line-height:1.75}
.ns-article h2{font-family:var(--serif); font-weight:500; font-size:clamp(26px,2.6vw,32px); line-height:1.2; margin:44px 0 6px; color:var(--ink)}
.ns-article h2:first-child{margin-top:0}
.ns-article p{color:var(--ink)}
.ns-who{font-size:15px; color:var(--ink-soft); margin:-8px 0 8px}
.ns-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:20px}
.on-dark.ns-grid,.ns-grid.on-dark{grid-template-columns:repeat(4,minmax(0,1fr))}
.ns-card{display:flex; flex-direction:column; gap:6px; padding:22px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); text-decoration:none !important; transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .3s}
.ns-card:hover{transform:translateY(-3px); box-shadow:0 16px 36px rgba(43,27,31,.08); border-color:var(--gold)}
.ns-card h3{font-family:var(--serif); font-weight:500; font-size:20px; line-height:1.25; color:var(--ink); margin:0}
.ns-card p{font-size:15px; line-height:1.55; color:var(--ink-soft); margin:0}
.ns-card .pc-meta{margin:0}
.ns-more{margin-top:auto; padding-top:6px; font-size:14px; font-weight:600; color:var(--maroon)}
.ns-grid.on-dark .ns-card{background:rgba(255,248,240,.06); border-color:var(--hair-dark)}
.ns-grid.on-dark .ns-card h3{color:var(--on-dark)}
.ns-grid.on-dark .ns-card p{color:var(--on-dark-soft)}
.ns-grid.on-dark .ns-card .pc-meta span{color:var(--gold-soft)}
.ns-grid.on-dark .ns-more{color:var(--gold)}
.ns-how{align-items:start}
.ns-how .h2{font-size:clamp(28px,2.7vw,38px)}
.ns-signs{list-style:none; margin:26px 0 0; padding:0; display:grid; gap:12px}
.ns-signs li{position:relative; padding:16px 18px 16px 46px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); color:var(--ink); line-height:1.5}
.ns-signs li::before{content:""; position:absolute; left:20px; top:23px; width:9px; height:9px; background:var(--gold); transform:rotate(45deg)}
.ns-steps{list-style:none; margin:26px 0 0; padding:0; display:grid; gap:20px}
.ns-steps li{display:grid; grid-template-columns:48px 1fr; gap:16px; align-items:start}
.ns-steps .n{display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--maroon); color:var(--gold); font-family:var(--serif); font-size:18px}
.ns-steps h3{font-size:17px; font-weight:600; color:var(--ink); margin-top:4px}
.ns-steps p{color:var(--ink-soft); margin-top:4px; line-height:1.6}
.ns-faq-wrap{display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,5vw,72px); align-items:start}
.ns-faqs{display:grid; gap:12px}
.faq{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); transition:border-color .3s}
.faq[open]{border-color:var(--gold)}
.faq summary{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 22px; cursor:pointer; list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:17px; font-weight:600; line-height:1.4; color:var(--ink); margin:0}
.faq .ic{position:relative; flex:0 0 18px; width:18px; height:18px}
.faq .ic::before,.faq .ic::after{content:""; position:absolute; left:2px; right:2px; top:8px; height:2px; background:var(--maroon); transition:transform .35s var(--ease-out)}
.faq .ic::after{transform:rotate(90deg)}
.faq[open] .ic::after{transform:rotate(0)}
.faq p{padding:0 22px 20px; color:var(--ink-soft); line-height:1.7; margin:0}
.aside-ns{border-top:3px solid var(--maroon)}
.home-ns{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.home-ns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.home-ns{grid-template-columns:1fr}}
@media (max-width:1080px){
  .ns-hero-grid,.ns-layout,.ns-faq-wrap{grid-template-columns:1fr}
  .ns-grid.on-dark{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){ .ns-grid,.ns-grid.on-dark{grid-template-columns:1fr} .ns-article{font-size:17px} }

/* form: spam trap + send error */
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.form-err{grid-column:1/-1; margin:4px 0 0; padding:12px 14px; border-radius:var(--r-sm); background:#FBEAEA; border:1px solid #E7B9B9; color:#7A1F2B; font-size:14.5px; line-height:1.5}
.form-err a{color:inherit; text-decoration:underline}
button[type="submit"][disabled]{opacity:.7; cursor:progress}

/* ---------- Elevitor by TEAM9 — cosmic logo design landing page ---------- */
.lp-hero{background:radial-gradient(90% 120% at 78% 30%,#5A1E2A 0%,#3A111B 45%,#22080F 100%); padding-bottom:clamp(40px,5vw,64px)}
.lp-hero-grid{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(28px,4vw,64px); align-items:center}
.lp-brand{font-size:13px; font-weight:700; letter-spacing:.42em; text-transform:uppercase; color:var(--gold)}
.lp-brand span{letter-spacing:.2em; font-weight:600; color:var(--on-dark-faint); margin-left:10px}
.lp-hero h1{font-size:clamp(36px,4vw,56px)}
.lp-scarcity{display:inline-flex; align-items:center; gap:10px; margin-top:26px; padding:9px 16px; border:1px solid rgba(187,164,97,.4); border-radius:var(--r-pill); font-size:14px; color:var(--on-dark-soft)}
.lp-scarcity .dot{width:8px; height:8px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 0 rgba(187,164,97,.6); animation:lpPulse 2.4s var(--ease) infinite}
@keyframes lpPulse{70%{box-shadow:0 0 0 10px rgba(187,164,97,0)} 100%{box-shadow:0 0 0 0 rgba(187,164,97,0)}}
.lp-proof{display:flex; flex-wrap:wrap; gap:8px 26px; margin-top:clamp(34px,4vw,48px); padding-top:22px; border-top:1px solid var(--hair-dark); font-size:13.5px; color:var(--on-dark-faint)}
.lp-proof span:first-child{color:var(--gold)}
.lp-hero-art{justify-self:center; width:min(100%,520px)}
.lp-orbit{display:block; width:100%; height:auto; color:var(--gold); overflow:visible}
.lp-orbit .ring{fill:none; stroke:rgba(187,164,97,.35); stroke-width:1}
.lp-orbit .ring:nth-child(2){stroke-dasharray:3 6}
.lp-orbit .spoke{stroke:rgba(187,164,97,.16); stroke-width:1}
.lp-orbit .spin{transform-origin:300px 300px; animation:spin 160s linear infinite}
.lp-orbit .core{fill:#7D2D3D; stroke:rgba(187,164,97,.8); stroke-width:1.5}
.lp-orbit .coremark{color:var(--gold)}
.lp-orbit .nb{fill:#22080F; stroke:var(--gold); stroke-width:1.4}
.lp-orbit .nn{fill:var(--gold); font-family:var(--serif); font-size:20px}
.lp-orbit .node{animation:lpNode 6s var(--ease) infinite; animation-delay:calc(var(--i) * .66s)}
@keyframes lpNode{0%,85%,100%{opacity:1} 92%{opacity:.45}}
.lp-quote{font-family:var(--serif); font-style:italic; font-size:clamp(20px,2vw,24px); line-height:1.4; color:var(--maroon); margin-top:24px; max-width:440px}
.lp-chain{list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 0; padding:0}
.lp-chain li{position:relative; padding:8px 14px; border-radius:var(--r-pill); background:var(--white); border:1px solid var(--line); font-size:14px; font-weight:600; color:var(--ink)}
.prose .lp-chain li::before{display:none}
.lp-chain li:last-child{background:var(--maroon); border-color:var(--maroon); color:var(--on-dark)}
.lp-reasons{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.lp-reason{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:24px 24px 22px; border-top:3px solid var(--gold)}
.lp-reason h3{font-family:var(--serif); font-weight:500; font-size:22px; color:var(--ink)}
.lp-reason p{color:var(--ink-soft); margin-top:8px; line-height:1.6}
.lp-spend{margin-top:clamp(28px,3.5vw,40px); padding:clamp(22px,3vw,32px); border-radius:var(--r-lg); background:var(--maroon-ink); color:var(--on-dark)}
.lp-spend .lbl{font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft)}
.lp-spend dl{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:18px 0 0}
.lp-spend dt{font-family:var(--serif); font-size:clamp(26px,3vw,38px); color:var(--gold); line-height:1}
.lp-spend dd{margin:8px 0 0; font-size:14px; color:var(--on-dark-soft)}
.lp-spend .src{margin-top:16px; font-size:13px; color:var(--on-dark-faint)}
.lp-sample-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
.lp-card{background:rgba(255,248,240,.05); border:1px solid var(--hair-dark); border-radius:var(--r-lg); padding:clamp(22px,3vw,32px)}
.lp-card .lbl{font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:16px}
.lp-dl{display:grid; gap:16px; margin:0}
.lp-dl dt{font-size:13px; font-weight:600; color:var(--gold)}
.lp-dl dd{margin:4px 0 0; color:var(--on-dark-soft); line-height:1.7}
.lp-dl .sw{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:8px; vertical-align:-1px; border:1px solid rgba(255,255,255,.25)}
.lp-evolve{margin:0; padding-left:22px; display:grid; gap:12px; color:var(--on-dark-soft); line-height:1.6}
.lp-evolve b{color:var(--on-dark); font-weight:600}
.lp-evolve li::marker{color:var(--gold); font-family:var(--serif)}
.lp-changes{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.lp-change{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:24px; transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out)}
.lp-change:hover{transform:translateY(-3px); box-shadow:0 16px 36px rgba(43,27,31,.08)}
.lp-change .k{font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep)}
.lp-change h3{font-family:var(--serif); font-weight:500; font-size:24px; color:var(--maroon); margin-top:8px}
.lp-change p:last-child{color:var(--ink-soft); margin-top:6px}
.lp-approach{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; counter-reset:none}
.lp-approach li{position:relative; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:24px}
.lp-approach li:not(:last-child)::after{content:"→"; position:absolute; right:-14px; top:28px; z-index:1; width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:var(--gold); color:var(--maroon-ink); font-size:13px}
.lp-approach .n{font-family:var(--serif); font-size:28px; color:var(--gold-deep)}
.lp-approach h3{font-size:18px; font-weight:600; color:var(--ink); margin-top:8px}
.lp-approach p{color:var(--ink-soft); margin-top:6px; line-height:1.6}
.lp-layers{background:radial-gradient(80% 100% at 80% 40%,#4A1622 0%,#2A0C14 60%,#1C060C 100%); color:var(--on-dark)}
.lp-layers .eyebrow{color:var(--gold-soft)}
.lp-layers p{color:var(--on-dark-soft); margin-top:14px; max-width:520px}
.lp-layers-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,4vw,64px); align-items:center}
.lp-layer-list{list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px}
.lp-layer-list li{display:flex; gap:14px; align-items:center; padding:12px 14px; border:1px solid var(--hair-dark); border-radius:var(--r-md); background:rgba(255,248,240,.04)}
.lp-layer-list .n{flex:0 0 36px; height:36px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--gold); color:var(--gold); font-family:var(--serif); font-size:16px}
.lp-layer-list h3{font-size:16px; font-weight:600; color:var(--on-dark)}
.lp-layer-list p{margin:2px 0 0; font-size:13.5px; color:var(--on-dark-faint)}
.lp-layers-art{width:min(100%,500px); justify-self:center}
.lp-receive{list-style:none; margin:0; padding:0; display:grid; gap:12px; counter-reset:rc}
.lp-receive li{counter-increment:rc; position:relative; padding:20px 22px 20px 70px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md)}
.lp-receive li::before{content:counter(rc,decimal-leading-zero); position:absolute; left:22px; top:18px; font-family:var(--serif); font-size:24px; color:var(--gold-deep)}
.lp-receive h3{font-size:17px; font-weight:600; color:var(--ink)}
.lp-receive p{color:var(--ink-soft); margin-top:4px; line-height:1.6}
.lp-who-grid{display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(28px,4vw,64px); align-items:center}
.lp-founder{margin:0; position:relative; max-width:440px; justify-self:center}
.lp-founder::before{content:""; position:absolute; inset:12% -4% 0 4%; border-radius:50% 50% 24px 24px; background:radial-gradient(circle at 40% 30%,#52715A,var(--green) 55%,var(--green-deep)); box-shadow:0 0 0 1px rgba(187,164,97,.5)}
.lp-founder img{position:relative; display:block; width:100%; height:auto; filter:drop-shadow(0 24px 40px rgba(0,0,0,.35)); -webkit-mask-image:linear-gradient(90deg,#000 80%,transparent 99%); mask-image:linear-gradient(90deg,#000 80%,transparent 99%)}
.lp-who .stats{margin-top:28px}
.lp-who .stats dt{color:var(--gold)}
.lp-who .stats dd{color:var(--on-dark-faint)}
.lp-workshop{margin-top:clamp(40px,5vw,64px); padding-top:clamp(28px,3.5vw,40px); background:linear-gradient(var(--hair-dark),var(--hair-dark)) top center / calc(100% - 2 * var(--gutter)) 1px no-repeat}
.lp-workshop .lbl{font-size:13px; color:var(--gold-soft); margin-bottom:12px}
.lp-ws-imgs{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.lp-ws-imgs figure{margin:0; overflow:hidden; border-radius:var(--r-md)}
.lp-ws-imgs img{width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; transition:transform .9s var(--ease-out)}
.lp-ws-imgs figure:hover img{transform:scale(1.04)}
.lp-steps{grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px}
.lp-steps li{grid-template-columns:1fr; gap:12px; align-content:start}
.lp-apply{background:radial-gradient(80% 120% at 20% 0%,#5A1E2A 0%,#2A0C14 70%); color:var(--on-dark)}
.lp-apply .eyebrow{color:var(--gold-soft)}
.lp-apply .form-card{box-shadow:0 30px 70px rgba(0,0,0,.35); color:var(--ink)}
.lp-apply .form-title{color:var(--ink)}
.lp-apply .form-card .eyebrow{color:var(--gold-deep)}
.lp-channels .channel{background:rgba(255,248,240,.06); border-color:var(--hair-dark)}
.lp-channels .channel b{color:var(--on-dark)}
.lp-channels .channel span{color:var(--on-dark-soft)}
.lp-channels .channel .ci{background:var(--gold); color:var(--maroon-ink)}
@media (max-width:1080px){
  .lp-hero-grid,.lp-layers-grid,.lp-who-grid{grid-template-columns:minmax(0,1fr)}
  .lp-hero-art{width:min(80%,420px)}
  .lp-reasons,.lp-changes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lp-approach,.lp-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lp-approach li:not(:last-child)::after{display:none}
  .lp-spend dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lp-layers-art{display:none}
}
@media (max-width:760px){
  .lp-sample-grid,.lp-layer-list{grid-template-columns:minmax(0,1fr)}
  .lp-ws-imgs{grid-template-columns:repeat(2,minmax(0,1fr))} .lp-ws-imgs figure:last-child{display:none}
}
@media (max-width:620px){
  .lp-reasons,.lp-changes,.lp-approach,.lp-steps{grid-template-columns:minmax(0,1fr)}
  .lp-brand{letter-spacing:.3em} .lp-brand span{display:block; margin:6px 0 0}
  .lp-hero-art{width:min(88%,360px)}
  .lp-hero h1{font-size:clamp(28px,8.4vw,34px)}
}
@media (prefers-reduced-motion:reduce){ .lp-orbit .spin,.lp-orbit .node,.lp-scarcity .dot{animation:none} }

/* ---------- numerology & astrology hubs as landing pages ---------- */
.hl-hero h1{font-size:clamp(38px,4.4vw,62px)}
.hl-hero h1 .ln>span{text-wrap:balance}
.hl-hero .hl-promise em{font-size:.62em; line-height:1.15; display:inline-block}
.hl-proof span:first-child{color:var(--gold)}
.hl-problems{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.hl-problems li{display:flex; gap:14px; align-items:flex-start; padding:20px 22px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); color:var(--ink); line-height:1.5; font-weight:500}
.hl-problems .ic{flex:0 0 26px; height:26px; border-radius:50%; background:var(--maroon); position:relative; margin-top:-1px}
.hl-problems .ic::after{content:""; position:absolute; left:9px; top:6px; width:6px; height:11px; border:solid var(--gold); border-width:0 2px 2px 0; transform:rotate(45deg)}
.hl-problems .hl-cta-cell{padding:0; background:var(--maroon); border-color:var(--maroon)}
.hl-problems .hl-cta-cell a{display:flex; flex-direction:column; justify-content:center; gap:4px; width:100%; height:100%; padding:20px 22px; color:var(--on-dark-soft); font-weight:500}
.hl-problems .hl-cta-cell b{color:var(--gold); font-weight:600}
.hl-problems .hl-cta-cell a:hover b{text-decoration:underline}
.hl-inline-cta{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; margin-top:22px; padding:20px 24px; border-radius:var(--r-md); background:var(--white); border:1px dashed rgba(125,45,61,.35)}
.hl-inline-cta p{font-family:var(--serif); font-size:20px; color:var(--ink)}
.hl-facts{list-style:none; margin:0; padding:0; display:grid; gap:10px; justify-self:end; max-width:470px}
.hl-facts li{display:grid; grid-template-columns:120px 1fr; gap:10px; font-size:15px; color:var(--ink-soft)}
.hl-facts b{font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); padding-top:3px}
.hl-services{grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:0}
.hl-offer{background:radial-gradient(90% 120% at 85% 20%,#52715A 0%,var(--green) 45%,var(--green-deep) 100%); color:var(--on-dark)}
.hl-offer .eyebrow{color:var(--gold-soft)}
.hl-offer p{color:var(--on-dark-soft); margin-top:14px; max-width:640px; line-height:1.7}
.hl-offer .hl-inc b{color:var(--gold)}
.hl-offer-grid{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr); gap:clamp(24px,4vw,56px); align-items:center}
.hl-offer-actions{display:flex; flex-direction:column; gap:12px; align-items:stretch}
.hl-offer-actions .btn{justify-content:center}
.hl .lp-founder::before{display:none}
.hl .lp-founder img{border-radius:var(--r-lg); -webkit-mask-image:none; mask-image:none; aspect-ratio:4/5; object-fit:cover; object-position:50% 25%}
.hl-who-text p{color:var(--on-dark-soft); margin-top:14px; line-height:1.75}
.hl-learn{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.hl-learn-item{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:24px}
.hl-learn-item h3{font-family:var(--serif); font-weight:500; font-size:22px; color:var(--ink)}
.hl-learn-item p{color:var(--ink-soft); margin-top:10px; line-height:1.7}
.hl-learn-item ul{margin:10px 0 0; padding-left:18px; color:var(--ink-soft); line-height:1.7}
.hl-reviews{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:30px}
.sticky-cta{display:none}
@media (max-width:1080px){ .hl-problems,.hl-services,.hl-learn{grid-template-columns:repeat(2,minmax(0,1fr))} .hl-offer-grid{grid-template-columns:minmax(0,1fr)} .hl-offer-actions{flex-direction:row; flex-wrap:wrap} .hl-facts{justify-self:start} }
@media (max-width:760px){
  .hl-problems,.hl-services,.hl-learn,.hl-reviews{grid-template-columns:minmax(0,1fr)}
  /* phones: WhatsApp + Book always within reach */
  .sticky-cta{display:grid; grid-template-columns:auto 1fr; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:60; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(251,248,242,.96); backdrop-filter:blur(8px); border-top:1px solid var(--line); box-shadow:0 -8px 24px rgba(43,27,31,.08)}
  .sticky-cta .btn{padding:12px 16px; font-size:15px; justify-content:center}
  body:has(.sticky-cta) .site-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .hl-facts li{grid-template-columns:1fr; gap:2px}
}

/* ---------- compact visual cards, timeline, learn cards ---------- */
.vgrid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.vcard{display:flex; align-items:center; gap:16px; padding:18px 18px 18px 20px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); text-decoration:none !important; transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .3s}
.vcard:hover{transform:translateY(-3px); box-shadow:0 14px 32px rgba(43,27,31,.08); border-color:var(--gold)}
.vic{flex:0 0 52px; height:52px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(145deg,var(--maroon),var(--maroon-deep)); color:var(--gold); box-shadow:inset 0 0 0 1px rgba(187,164,97,.35)}
.vtx{display:flex; flex-direction:column; gap:3px; min-width:0}
.vtx b{font-family:var(--serif); font-weight:500; font-size:18px; line-height:1.25; color:var(--ink)}
.vtx small{font-size:14px; line-height:1.45; color:var(--ink-soft)}
.vgo{margin-left:auto; flex:0 0 32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--cream); color:var(--maroon); font-size:15px; transition:background .3s, color .3s, transform .4s var(--ease-out)}
.vcard--cta{background:var(--maroon); border-color:var(--maroon)}
.vcard--cta .vtx b{color:var(--on-dark)} .vcard--cta .vtx small{color:var(--on-dark-soft)}
.vcard--cta .vgo{background:var(--gold); color:var(--maroon-ink)}
.vcard:hover .vgo{background:var(--maroon); color:var(--gold); transform:translateX(3px)}
.tl{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; position:relative}
.tl::before{content:""; position:absolute; left:12%; right:12%; top:34px; height:1px; background:repeating-linear-gradient(90deg,var(--gold) 0 6px,transparent 6px 12px); opacity:.7}
.tl li{position:relative; text-align:center; padding:0 8px}
.tl-ic{position:relative; z-index:1; width:68px; height:68px; margin:0 auto; display:grid; place-items:center; border-radius:50%; background:var(--maroon); color:var(--gold); box-shadow:0 0 0 6px var(--cream), 0 0 0 7px rgba(187,164,97,.45)}
.tl-n{display:block; margin-top:16px; font-family:var(--serif); font-size:14px; letter-spacing:.12em; color:var(--gold-deep)}
.tl h3{font-size:18px; font-weight:600; color:var(--ink); margin-top:4px}
.tl p{color:var(--ink-soft); margin-top:6px; font-size:15px; line-height:1.55}
.lcard{position:relative; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:24px; display:flex; flex-direction:column; align-items:flex-start}
.lcard .vic{flex:none; width:46px; height:46px}
.lcard h3{font-family:var(--serif); font-weight:500; font-size:21px; line-height:1.3; color:var(--ink); margin-top:16px}
.lcard .lead{color:var(--ink-soft); margin-top:8px; line-height:1.65}
.lcard details{margin-top:12px; width:100%}
.lcard summary{display:inline-flex; align-items:center; gap:6px; cursor:pointer; list-style:none; font-size:14px; font-weight:600; color:var(--maroon)}
.lcard summary::-webkit-details-marker{display:none}
.lcard summary::after{content:"+"; font-size:16px; transition:transform .3s}
.lcard details[open] summary::after{transform:rotate(45deg)}
.lcard details p{color:var(--ink-soft); margin-top:10px; line-height:1.65; font-size:15.5px}
@media (max-width:1080px){ .vgrid{grid-template-columns:repeat(2,minmax(0,1fr))} .vcard--cta{grid-column:1/-1 !important} .tl{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:34px} .tl::before{display:none} }
@media (max-width:620px){ .vgrid,.tl{grid-template-columns:minmax(0,1fr)} .tl li{display:grid; grid-template-columns:56px 1fr; column-gap:16px; text-align:left; padding:0}
  .tl-ic{grid-row:span 3; width:56px; height:56px; margin:0} .tl-n{margin-top:0} .vtx b{font-size:17px} }

/* ---------- shop ---------- */
.hdr-cart{position:relative; display:grid; place-items:center; width:44px; height:44px; margin-left:0; margin-right:12px; border-radius:50%; color:var(--on-dark-soft); transition:color .25s, background .25s}
.hdr-cart:hover{color:var(--gold); background:rgba(255,248,240,.06)}
.hdr-cart .cart-count,.cart-fab .cart-count{position:absolute; top:4px; right:2px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--gold); color:var(--maroon-ink); font-size:11px; font-weight:700; line-height:18px; text-align:center}
.cart-count[hidden]{display:none}
.shop-hero{padding-bottom:clamp(48px,5vw,72px)}
.shop-hero-grid{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:clamp(28px,4vw,56px); align-items:end}
.shop-trust{list-style:none; margin:0; padding:0; display:grid; gap:12px}
.shop-trust li{padding:16px 18px; border:1px solid var(--hair-dark); border-radius:var(--r-md); background:rgba(42,12,20,.35)}
.shop-trust b{display:block; color:var(--gold); font-weight:600}
.shop-trust span{font-size:14px; color:var(--on-dark-soft)}
.num-pick{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.num-btn{min-width:42px; height:42px; padding:0 12px; border-radius:var(--r-pill); border:1px solid var(--line); background:var(--white); font-family:var(--serif); font-size:17px; color:var(--ink); cursor:pointer; transition:background .25s, color .25s, border-color .25s}
.num-btn:hover{border-color:var(--gold)}
.num-btn[aria-pressed="true"]{background:var(--maroon); border-color:var(--maroon); color:var(--gold)}
.num-all{font-family:var(--sans); font-size:14px; font-weight:600}
.pgrid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px}
.pcard{display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; transition:box-shadow .45s var(--ease-out), border-color .3s}
.pcard:hover{box-shadow:0 16px 36px rgba(43,27,31,.08); border-color:rgba(187,164,97,.6)}
.pcard[hidden]{display:none}
.pc-media{display:grid; place-items:center; aspect-ratio:4/3; background:linear-gradient(160deg,#F7EEDD,#EADBBE); overflow:hidden}
.pc-media img{width:100%; height:100%; object-fit:contain; transition:transform .8s var(--ease-out)}
.pgrid:not(.pgrid--jiten) .pc-media img{object-fit:cover}
.pcard:hover .pc-media img{transform:scale(1.04)}
.pc-media .ph{display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--gold-deep); opacity:.75}
.pc-media .ph b{font-size:12px; letter-spacing:.2em; text-transform:uppercase}
.pc-body{display:flex; flex-direction:column; flex:1; padding:14px 16px 16px}
.pc-cat{font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep)}
.pc-title{font-family:var(--serif); font-weight:500; font-size:18px; line-height:1.3; color:var(--ink); margin-top:5px}
.pc-title a{color:inherit; text-decoration:none}
.pc-title a:hover{color:var(--maroon)}
.pc-nums{font-size:13px; color:var(--ink-soft); margin-top:3px}
.pc-var{display:block; margin-top:8px}
.pc-var select{width:100%; height:40px; padding:0 34px 0 12px; border:1px solid var(--line); border-radius:10px; font:inherit; font-size:14px; color:var(--ink); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2362504F' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center; -webkit-appearance:none; appearance:none; text-overflow:ellipsis}
.pc-var select:focus{outline:none; border-color:var(--maroon); box-shadow:0 0 0 3px rgba(125,45,61,.12)}
.pc-varn{font-size:12px; color:var(--ink-soft); margin-top:4px}
.pc-price{display:flex; align-items:baseline; gap:8px; margin-top:auto; padding-top:10px}
.pc-price b{font-size:18px; font-weight:700; color:var(--maroon)}
.pc-price s,.prod-price s{color:var(--ink-soft); font-size:14px}
.pc-add{margin-top:10px; width:100%; justify-content:center; padding:10px 14px; font-size:14px}
.pc-add.added,.prod-buy .added{background:var(--green); border-color:var(--green)}
.shop-tools{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr) auto; gap:12px; align-items:center; margin-bottom:22px}
.st-search{display:flex; align-items:center; gap:10px; padding:0 14px; height:48px; border:1px solid var(--line); border-radius:var(--r-pill); background:var(--white); color:var(--ink-soft)}
.st-search input{flex:1; min-width:0; border:0; outline:0; font:inherit; font-size:16px; background:transparent; color:var(--ink)}
.st-search:focus-within{border-color:var(--maroon); box-shadow:0 0 0 4px rgba(125,45,61,.12)}
.st-select select{width:100%; height:48px; padding:0 40px 0 16px; border:1px solid var(--line); border-radius:var(--r-pill); font:inherit; font-size:15px; color:var(--ink); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2362504F' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 16px center; -webkit-appearance:none; appearance:none; text-overflow:ellipsis}
.st-count{font-size:14px; color:var(--ink-soft); white-space:nowrap}
.shop-empty{padding:28px; text-align:center; color:var(--ink-soft); background:var(--white); border:1px dashed var(--line); border-radius:var(--r-md); margin-top:16px}
.shop-note{margin-top:22px; font-size:14px; color:var(--ink-soft)}
.cart-fab{display:none}
.toast{position:fixed; left:50%; bottom:24px; z-index:80; display:flex; gap:16px; align-items:center; padding:12px 18px; border-radius:var(--r-pill); background:var(--maroon-ink); color:var(--on-dark); box-shadow:0 14px 40px rgba(0,0,0,.25); transform:translate(-50%,20px); opacity:0; transition:transform .35s var(--ease-out), opacity .3s}
.toast.show{transform:translate(-50%,0); opacity:1}
.toast a{color:var(--gold); font-weight:600; white-space:nowrap}
.crumbs--light{color:var(--ink-soft)}
.crumbs--light a{color:var(--ink-soft)}
.crumbs--light a:hover{color:var(--maroon)}
.prod{padding-top:calc(var(--head) + 32px)}
.shop .prod, .shop .cartpage{background:var(--paper)}
.prod-grid{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(28px,4vw,64px); align-items:start; margin-top:18px}
.prod-gallery{display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,1fr); gap:12px; position:sticky; top:calc(var(--head) + 20px)}
.prod-gallery figure{margin:0; overflow:hidden; border-radius:var(--r-md); background:var(--cream-light)}
.prod-gallery img{width:100%; height:100%; object-fit:cover}
.prod-title{font-family:var(--serif); font-weight:500; font-size:clamp(32px,3.6vw,46px); line-height:1.12; color:var(--ink); margin-top:8px}
.prod-nums{display:inline-block; margin-top:12px; padding:6px 12px; border-radius:var(--r-pill); background:var(--cream); color:var(--maroon); font-size:14px; font-weight:600}
.prod-price{display:flex; align-items:baseline; gap:12px; margin-top:18px}
.prod-price b{font-size:30px; color:var(--maroon); font-weight:700}
.prod-price .save{font-size:13px; font-weight:700; color:var(--green); background:rgba(60,88,66,.1); padding:3px 9px; border-radius:var(--r-pill)}
.prod-desc{margin-top:16px; color:var(--ink); line-height:1.75; font-size:17px}
.prod-facts{list-style:none; margin:18px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px}
.prod-facts li{padding:10px 14px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--white)}
.prod-facts b{display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep)}
.prod-facts span{font-size:15px; color:var(--ink)}
.prod-buy{display:flex; gap:12px; margin-top:24px}
.prod-buy .btn{flex:1; justify-content:center}
.qty{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:var(--r-pill); background:var(--white); overflow:hidden}
.qty button{width:44px; height:48px; border:0; background:transparent; font-size:20px; color:var(--maroon); cursor:pointer}
.qty input{width:44px; border:0; text-align:center; font:inherit; font-size:16px; -moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.qty--sm button{width:34px; height:36px; font-size:17px}
.qty--sm span{min-width:24px; text-align:center; font-weight:600}
.prod-wa{display:inline-flex; align-items:center; gap:8px; margin-top:14px; color:var(--green); font-weight:600; font-size:15px}
.prod-wa .wa-ico{width:18px; height:18px}
.prod-care{margin-top:26px; padding:20px 22px; border-radius:var(--r-md); background:var(--white); border:1px solid var(--line)}
.prod-care h2{font-family:var(--serif); font-weight:500; font-size:20px; color:var(--ink)}
.prod-care ul{margin:10px 0 0; padding-left:20px; color:var(--ink-soft); line-height:1.7}
.prod-care .disclaimer{margin-top:12px; font-size:13px; color:var(--ink-soft)}
.cartpage{padding-top:calc(var(--head) + 32px)}
.cart-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(24px,4vw,56px); align-items:start; margin-top:22px}
.cart-lines{list-style:none; margin:0; padding:0; display:grid; gap:10px}
.cline{display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:14px; align-items:center; padding:14px 16px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md)}
.cl-name{font-weight:600; color:var(--ink)}
.cl-brand{font-size:13px; color:var(--ink-soft); margin-top:2px}
.cl-sub{font-weight:700; color:var(--maroon); min-width:76px; text-align:right}
.cl-del{width:32px; height:32px; border-radius:50%; border:0; background:var(--cream); color:var(--maroon); font-size:18px; cursor:pointer}
.cart-total{display:flex; justify-content:space-between; margin-top:16px; padding:16px; border-radius:var(--r-md); background:var(--cream); font-size:17px}
.cart-total b{color:var(--maroon); font-size:20px}
.cart-empty{padding:32px; text-align:center; background:var(--white); border:1px dashed var(--line); border-radius:var(--r-md)}
.cart-empty p{margin-bottom:14px; color:var(--ink-soft)}
@media (max-width:1080px){ .pgrid{grid-template-columns:repeat(3,minmax(0,1fr))} .shop-hero-grid,.prod-grid,.cart-grid{grid-template-columns:minmax(0,1fr)} .prod-gallery{position:static} .shop-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
@media (max-width:760px){
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
  .pc-body{padding:10px 12px 12px} .pc-title{font-size:16px} .pc-add{padding:9px 10px; font-size:13px}
  .shop-tools{grid-template-columns:minmax(0,1fr)} .st-count{order:-1}
  .cline{grid-template-columns:minmax(0,1fr) auto; row-gap:8px} .cl-sub{text-align:left}
  .cart-fab{display:grid; place-items:center; position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:60; width:56px; height:56px; border-radius:50%; background:var(--maroon); color:var(--gold); box-shadow:0 10px 26px rgba(0,0,0,.25)}
  .hdr-cart{margin-right:4px}
}
@media (max-width:1080px){ .hdr-cart{margin-left:auto} .hdr-cart + .header-cta + .navtoggle, .hdr-cart ~ .navtoggle{margin-inline-start:0} }

/* ---------- footer ---------- */
.site-footer{background:var(--maroon-ink); color:var(--on-dark-soft); padding:clamp(52px,6vw,76px) 0 calc(28px + env(safe-area-inset-bottom)); position:relative; overflow:hidden}
.site-footer .watermark{right:-30px; bottom:-40px; width:260px; height:340px; opacity:.07}
.foot-grid{position:relative; display:grid; grid-template-columns:1.4fr 1.05fr 1.05fr .85fr .95fr; gap:36px}
.site-footer .brand{margin-bottom:14px}
.foot-tag{font-family:var(--serif); font-style:italic; font-size:19px; color:var(--gold); margin-bottom:12px}
.site-footer .blurb{font-size:15px; max-width:300px}
.site-footer h4{font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:16px}
.site-footer li{margin-bottom:10px}
.site-footer li a{font-size:15px; transition:color .25s}
.site-footer li a:hover{color:var(--on-dark)}
.foot-base{position:relative; display:flex; flex-wrap:wrap; gap:12px 26px; justify-content:space-between; margin-top:clamp(36px,4vw,54px); padding-top:24px; border-top:1px solid var(--hair-dark); font-size:14px; color:var(--on-dark-faint)}
.footnote{position:relative; font-size:13px; color:var(--on-dark-faint); margin-top:16px}

/* ---------- dialogs & forms ---------- */
.modal{border:0; padding:0; margin:0; background:transparent; color:inherit; width:100%; height:100%; max-width:none; max-height:none; overflow-y:auto; overscroll-behavior:contain}
.modal[open]{display:grid; place-items:center}
.modal::backdrop{background:rgba(42,12,20,.72); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px)}
.modal[open]::backdrop{animation:fade .4s var(--ease) both}
.modal[open] .modal-card{animation:pop .6s var(--ease-out) both}
.modal.closing::backdrop{animation:fadeout .28s var(--ease) both}
.modal.closing .modal-card{animation:popout .28s var(--ease) both}
@keyframes fade{from{opacity:0}} @keyframes fadeout{to{opacity:0}}
@keyframes pop{from{opacity:0; transform:translateY(22px) scale(.97)}} @keyframes popout{to{opacity:0; transform:translateY(12px) scale(.98)}}
.modal-card{position:relative; width:min(580px,calc(100% - 32px)); margin:24px auto; background:var(--paper); color:var(--ink); border-radius:var(--r-lg); padding:clamp(26px,4.5vw,42px); box-shadow:0 30px 90px rgba(0,0,0,.45); border-top:3px solid var(--gold)}
.modal-x{position:absolute; top:14px; right:14px; width:40px; height:40px; border-radius:var(--r-pill); display:grid; place-items:center; color:var(--ink-soft); transition:background .25s, color .25s, transform .4s var(--ease-out)}
.modal-x:hover{background:var(--cream-light); color:var(--ink); transform:rotate(90deg)}
.modal .eyebrow{color:var(--gold-deep)}
.modal h2{font-family:var(--serif); font-size:clamp(28px,3.4vw,36px); font-weight:500; margin:10px 0 8px; padding-right:30px; line-height:1.15}
.modal-lede{color:var(--ink-soft); margin-bottom:24px}
.form{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px 14px}
.field{display:flex; flex-direction:column; gap:7px; min-width:0}
/* Safari sizes a <select> to its longest option; let it shrink and truncate instead */
.field select{min-width:0; max-width:100%; text-overflow:ellipsis; white-space:nowrap; overflow:hidden}
.field.full{grid-column:1/-1}
.field label{font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft)}
.field label i{font-style:normal; color:var(--maroon)}
.field input,.field select,.field textarea{width:100%; font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:10px; padding:13px 14px; transition:border-color .25s, box-shadow .25s; -webkit-appearance:none; appearance:none}
.field select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2362504F' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") right 14px center/12px no-repeat; padding-right:36px}
.field textarea{resize:vertical; min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--maroon); box-shadow:0 0 0 4px rgba(125,45,61,.12)}
.field .err{display:none; font-size:13px; color:#A3162C}
.field.bad input,.field.bad select{border-color:#A3162C}
.field.bad .err{display:block}
.form .btn{grid-column:1/-1; margin-top:6px; width:100%}
.form .alt{grid-column:1/-1; text-align:center; font-size:15px; color:var(--ink-soft)}
.form .alt a{color:var(--maroon); font-weight:600; text-decoration:underline; text-underline-offset:3px}
.done{text-align:center; padding:10px 0 4px}
.done .ok{width:66px; height:66px; margin:0 auto 18px; border-radius:var(--r-pill); display:grid; place-items:center; background:var(--cream-light); color:var(--maroon)}
.done .ok path{stroke-dasharray:30; stroke-dashoffset:30; animation:draw .7s var(--ease-out) .2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.done h2,.done h3{font-family:var(--serif); font-size:30px; font-weight:500}
.done p{color:var(--ink-soft); margin:8px auto 26px; max-width:380px}
.modal--wide .modal-card{width:min(980px,calc(100% - 32px)); padding:0; overflow:hidden; background:var(--maroon-ink); color:var(--on-dark)}
.modal--wide .modal-x{color:var(--on-dark-soft); background:rgba(0,0,0,.35); z-index:2}
.modal--wide .modal-x:hover{background:rgba(0,0,0,.6); color:#fff}
.film{position:relative; aspect-ratio:16/9; background:var(--maroon) center/cover no-repeat; display:grid; place-items:center; overflow:hidden}
.film .wheel{position:absolute; width:70%; aspect-ratio:1; color:var(--gold); opacity:.2}
.film .wheel img{width:100%; height:100%; animation:spin 200s linear infinite}
.film-inner{position:relative; z-index:1; text-align:center}
.film-play{width:76px; height:76px; margin:0 auto 14px; border-radius:var(--r-pill); display:grid; place-items:center; background:rgba(229,213,177,.14); border:1px solid rgba(229,213,177,.45)}
.film-inner p{font-size:13px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft)}
.case-full img{width:100%; aspect-ratio:1.72; object-fit:cover}
.case-full-body{padding:clamp(24px,4vw,40px); display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(20px,4vw,48px); align-items:start}
.case-full-body .eyebrow{color:var(--gold-soft)}
.case-full-body h2{margin:10px 0 12px; color:var(--on-dark)}
.case-full-body p{color:var(--on-dark-soft)}
.case-full-body dl{display:grid; grid-template-columns:1fr 1fr; gap:18px 20px}
.case-full-body dt{font-family:var(--serif); font-size:32px; color:var(--gold); line-height:1}
.case-full-body dd{margin-top:6px; font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--on-dark-faint)}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .hero-figure,.hero-wheel{right:calc(12% + 10px)}
  .hero-panel{width:230px; top:190px}
  .hero-quote{font-size:26px; top:470px}
  .hero h1{font-size:clamp(46px,5.2vw,72px)}
  .stats{gap:28px} .stats dd{letter-spacing:.1em}
  .assess{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1080px){
  .hero-quote{display:none}
  .hero-figure,.hero-wheel{right:calc(6% + 190px)}
  .hero-panel{top:180px; width:210px}
  .hero-panel li{padding:10px 12px; font-size:13.5px}
  .hero-panel .spark{display:none}
  .nav{gap:22px}
  .steps{grid-template-columns:repeat(2,1fr); gap:34px 0}
  .step:nth-child(2)::after{display:none}
  .case-slide{grid-template-columns:1fr 1fr; grid-template-areas:"copy stats" "photo photo"; gap:28px}
  .case-copy{grid-area:copy} .case-photo{grid-area:photo} .case-stats{grid-area:stats}
  .adv{grid-template-columns:80px 1fr}
  .adv ul{grid-column:2; grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr; gap:36px}
}
/* Playfair headlines + Inter nav are too wide to sit beside the founder / fit one nav row below 1080:
   switch to the menu button and the stacked hero here rather than at 900 */
@media (max-width:1080px){
  :root{--head:70px}
  .site-header .wrap,.site-header.stuck .wrap{height:var(--head)}
  .nav,.header-cta{display:none}
  .navtoggle{display:grid; place-items:center; margin-inline-start:auto}
  .site-header.open{background:var(--maroon-ink)}
  .mobile-nav{display:flex; flex-direction:column; padding:0 var(--gutter); background:var(--maroon-ink); max-height:0; overflow:hidden; visibility:hidden;
    transition:max-height .55s var(--ease-out), padding .55s var(--ease-out), visibility 0s .55s}
  .site-header.open .mobile-nav{max-height:640px; padding:6px var(--gutter) 26px; visibility:visible; transition-delay:0s}
  .mobile-nav a{padding:14px 0; font-size:17px; color:var(--on-dark-soft); border-bottom:1px solid var(--hair-dark)}
  .mobile-nav .btn{margin-top:18px; border-bottom:0; color:var(--maroon-ink)}
  .hero{min-height:0; display:flex; flex-direction:column}
  .hero .wrap{order:1}
  .hero-figure{order:2}
  .hero-panel{display:none}
  .hero-inner{max-width:620px; padding-bottom:0}
  .hero-figure{position:relative; right:auto; bottom:auto; display:block; margin:28px auto 0; height:auto; width:min(78vw,440px)}
  .hero-wheel{right:50%; translate:50% 0; top:auto; bottom:6%; width:min(100vw,560px)}
}
@media (max-width:900px){
  .hero-inner{max-width:none}
  .site-header .wrap,.site-header.stuck .wrap{height:var(--head)}
  .nav,.header-cta{display:none}
  .navtoggle{display:grid; place-items:center; margin-inline-start:auto}
  .site-header.open{background:var(--maroon-ink)}
  .mobile-nav{display:flex; flex-direction:column; padding:0 var(--gutter); background:var(--maroon-ink); max-height:0; overflow:hidden; visibility:hidden;
    transition:max-height .55s var(--ease-out), padding .55s var(--ease-out), visibility 0s .55s}
  .site-header.open .mobile-nav{max-height:640px; padding:6px var(--gutter) 26px; visibility:visible; transition-delay:0s}
  .mobile-nav a{padding:14px 0; font-size:17px; color:var(--on-dark-soft); border-bottom:1px solid var(--hair-dark)}
  .mobile-nav .btn{margin-top:18px; border-bottom:0; color:var(--maroon-ink)}
  .hero{min-height:0; display:flex; flex-direction:column}
  .hero .wrap{order:1}
  .hero-figure{order:2}
  .hero-panel{display:none}
  .hero-inner{max-width:none; padding-bottom:0}
  .hero-figure{position:relative; right:auto; bottom:auto; display:block; margin:28px auto 0; height:auto; width:min(78vw,420px)}
  .hero-wheel{right:50%; translate:50% 0; top:auto; bottom:6%; width:min(100vw,520px)}
  .sec-head{grid-template-columns:1fr; gap:18px}
  .sec-head>p{justify-self:start}
  .analysis-grid{grid-template-columns:1fr; gap:30px}
  .tabs{flex-direction:row; flex-wrap:wrap; margin-top:24px}
  .tab{width:auto; font-size:15px}
  .expert{grid-template-columns:1fr}
  .expert-visual{min-height:0}
  .cta-media{width:100%; max-width:none}
  .cta-media::after{background:linear-gradient(180deg,rgba(125,45,61,.95) 0%,rgba(125,45,61,.88) 55%,rgba(125,45,61,.7) 100%)}
  .page-hero-grid,.grid-2,.founder,.contact-grid,.partner{grid-template-columns:minmax(0,1fr)}
  .page-hero-media{justify-self:start; max-width:420px}
  .page-hero-media.cut{margin-bottom:calc(clamp(56px,6vw,88px) * -1); justify-self:center}
  .grid-3,.stages{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .case-full-body{grid-template-columns:1fr}
  .scroller-head{flex-wrap:wrap}
}
@media (max-width:620px){
  .steps{grid-template-columns:1fr; gap:30px}
  .step::after{display:none!important}
  .step p{max-width:none}
  .case-slide{grid-template-columns:1fr; grid-template-areas:"copy" "photo" "stats"}
  .assess{grid-template-columns:1fr}
  .adv{grid-template-columns:1fr; gap:10px}
  .adv ul{grid-column:auto}
  .foot-grid{grid-template-columns:1fr}
  .form{grid-template-columns:minmax(0,1fr)}
  .scroller{grid-auto-columns:78vw}
}
@media (max-width:440px){
  .stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
  .stats dt{font-size:30px}
  .stats dd{font-size:10.5px; letter-spacing:.08em; line-height:1.45}
  .proof{gap:24px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; transition-delay:0s!important}
  .js .hi,.js .rv,.js .rv-img,.js .site-header,.js .hero-figure,.js .hero-wheel,.js .hero-panel,.js .hero-panel li,.js .step .ic,.js .cta-media,.js .flow>*{opacity:1!important; transform:none!important; clip-path:none!important}
  .js .ln>span,.js .rv-zoom img{transform:none!important}
  .js .hero-quote .q,.js .cta-quote .q{clip-path:none!important}
  .js .step:not(:last-child)::after{opacity:1!important; transform:rotate(45deg)!important}
  .is-ready .hero-wheel{opacity:.34!important}
}
/* founder videos: hero link + pop-up player */
.watch-row{display:flex; flex-wrap:wrap; gap:14px 34px; margin-top:26px}
.watch{display:inline-flex; align-items:center; gap:14px; color:var(--on-dark); text-decoration:none; max-width:420px}
.watch-ic{flex:none; width:52px; height:52px; border-radius:50%; display:grid; place-items:center; padding-left:3px; background:var(--gold); color:var(--maroon-deep);
  box-shadow:0 0 0 6px rgba(187,164,97,.18); transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out)}
.watch:hover .watch-ic,.watch:focus-visible .watch-ic{transform:scale(1.07); box-shadow:0 0 0 11px rgba(187,164,97,.14)}
.watch b{display:block; font-size:15px; font-weight:600; letter-spacing:.01em}
.watch small{display:block; margin-top:2px; font-size:13px; line-height:1.4; color:var(--on-dark-soft)}
.modal--video::backdrop{background:rgba(20,6,10,.88)}
.vid-card{position:relative; width:min(1080px,calc(100% - 32px)); margin:64px auto 24px}
.vid-card video{display:block; width:100%; height:auto; aspect-ratio:16/9; background:#000; border-radius:var(--r-lg); box-shadow:0 30px 90px rgba(0,0,0,.55)}
.vid-card .modal-x{top:-54px; right:0; color:#fff; background:rgba(255,255,255,.12)}
.vid-card .modal-x:hover{background:rgba(255,255,255,.22); color:#fff}
.vid-title{margin-top:14px; font-family:var(--serif); font-size:clamp(18px,1.8vw,22px); color:#fff}
.modal[open] .vid-card{animation:pop .6s var(--ease-out) both}
.modal.closing .vid-card{animation:popout .28s var(--ease) both}
@media (max-width:480px){
  .hero-actions:has(.watch){gap:12px}
  .hero-actions .watch{gap:10px}
  .hero-actions .watch-ic{width:44px; height:44px; box-shadow:0 0 0 5px rgba(187,164,97,.18)}
  .hero-actions .w-more{display:none}
  .hero-actions:has(.watch) .btn{padding-left:20px; padding-right:20px}
}
