/* OTO Performance & Recovery — full-bleed editorial system (Equinox benchmark)
   Black + white first, beige (sand) for accents. Everything edge to edge. */
@font-face{font-family:'Archivo'; src:url('fonts/archivo-wdth.woff2') format('woff2'); font-weight:100 900; font-stretch:62% 125%; font-display:swap;}
@font-face{font-family:'Instrument Serif'; src:url('fonts/instrument-serif-italic.woff2') format('woff2'); font-style:italic; font-weight:400; font-display:swap;}
@font-face{font-family:'Hanken Grotesk'; src:url('fonts/hanken-grotesk.woff2') format('woff2'); font-weight:100 900; font-display:swap;}

:root{
  --black:#000;
  --ink:#0B0A09;
  --coal:#121110;
  --char:#1B1917;
  --white:#FFFFFF;
  --text:#F5F2EC;
  --muted:#A39A8E;
  --sand:#D7C1A2;
  --sand-hi:#EADBC4;
  --bone:#F2EDE5;
  --bone-ink:#141210;
  --bone-muted:#6A6055;
  --line:rgba(255,255,255,0.14);
  --line-strong:rgba(255,255,255,0.3);

  --f-display:'Archivo', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
  --f-serif:'Instrument Serif', Georgia, 'Times New Roman', serif;
  --f-body:'Hanken Grotesk', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  --gut:clamp(20px, 4.2vw, 72px);
  --sec:clamp(80px, 11vw, 180px);
  --ease:cubic-bezier(.2,.7,.1,1);
  --ease-io:cubic-bezier(.77,0,.18,1);
  --hdr:76px;
  color-scheme:dark;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{background:var(--black); color:var(--text); font-family:var(--f-body); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; min-width:320px;}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer;}
:focus-visible{outline:2px solid var(--sand); outline-offset:3px;}
::selection{background:var(--sand); color:var(--black);}

.gut{padding-left:var(--gut); padding-right:var(--gut);}
.sec{padding-top:var(--sec); padding-bottom:var(--sec);}
.sec.tight{padding-top:calc(var(--sec)*.6); padding-bottom:calc(var(--sec)*.6);}

/* ---------- Type ---------- */
.display{font-family:var(--f-display); font-stretch:82%; font-weight:600; text-transform:uppercase; letter-spacing:-0.005em; line-height:0.9; text-wrap:balance;}
.d-xxl{font-size:clamp(3.2rem, 9.4vw, 10rem);}
.d-xl{font-size:clamp(3rem, 8.2vw, 8.4rem);}
.d-lg{font-size:clamp(2.4rem, 5.6vw, 5.6rem);}
.d-md{font-size:clamp(1.9rem, 3.6vw, 3.4rem);}
.d-sm{font-size:clamp(1.35rem, 2vw, 1.9rem); line-height:1;}
.serif{font-family:var(--f-serif); font-weight:400; font-style:italic; text-transform:none; letter-spacing:0; color:var(--sand);}
.display .serif{font-size:.92em; line-height:.9;}
.eyebrow{font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; font-weight:600; color:var(--sand);}
.lead{font-size:clamp(1.05rem, 1.35vw, 1.3rem); line-height:1.55; color:#DED8CE; max-width:36em;}
.muted{color:var(--muted);}
p{max-width:62ch;}

/* ---------- Buttons (Equinox-style fill wipe) ---------- */
.btn{position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:54px; padding:0 34px; font-size:.76rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; border:1px solid currentColor; transition:color .45s var(--ease), border-color .45s var(--ease); -webkit-tap-highlight-color:transparent;}
.btn::before{content:""; position:absolute; inset:0; z-index:-1; transform:scaleX(0); transform-origin:right; transition:transform .55s var(--ease-io);}
.btn:hover::before, .btn:focus-visible::before{transform:scaleX(1); transform-origin:left;}
.btn:active{transform:scale(.98);}
.btn .arr{display:inline-block; transition:transform .45s var(--ease);}
.btn:hover .arr{transform:translateX(5px);}
.btn-white{background:var(--white); color:var(--black); border-color:var(--white);}
.btn-white::before{background:var(--black);}
.btn-white:hover{color:var(--white);}
.btn-sand{background:var(--sand); color:var(--black); border-color:var(--sand);}
.btn-sand::before{background:var(--black);}
.btn-sand:hover{color:var(--sand);}
.btn-line{color:var(--white); border-color:rgba(255,255,255,.55);}
.btn-line::before{background:var(--white);}
.btn-line:hover{color:var(--black); border-color:var(--white);}
.btn-dark{background:var(--black); color:var(--white); border-color:var(--black);}
.btn-dark::before{background:var(--sand);}
.btn-dark:hover{color:var(--black); border-color:var(--sand);}
.ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:38px;}

/* underline link */
.link{position:relative; display:inline-flex; align-items:center; gap:10px; font-size:.74rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; padding-bottom:6px;}
.link::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:currentColor; transform:scaleX(1); transform-origin:left; transition:transform .5s var(--ease-io);}
.link:hover::after{animation:uline .8s var(--ease-io);}
@keyframes uline{0%{transform:scaleX(1); transform-origin:right;} 45%{transform:scaleX(0); transform-origin:right;} 46%{transform-origin:left;} 100%{transform:scaleX(1); transform-origin:left;}}

/* ---------- Header ---------- */
.hdr{position:fixed; inset:0 0 auto 0; z-index:60; height:var(--hdr); display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 var(--gut); transition:background-color .4s ease, transform .5s var(--ease), border-color .4s ease; border-bottom:1px solid transparent;}
.hdr.solid{background:rgba(0,0,0,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom-color:var(--line);}
.hdr.hide{transform:translateY(-100%);}
.brand{display:flex; align-items:center; gap:14px; flex:none;}
.brand img{height:30px; width:auto;}
.brand span{font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; font-weight:600; line-height:1.4; color:var(--sand); border-left:1px solid var(--line-strong); padding-left:14px;}
.nav{display:flex; align-items:center; gap:clamp(18px, 2.4vw, 40px);}
.nav > a:not(.btn){position:relative; font-size:.74rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; padding:8px 0;}
.nav > a:not(.btn)::after{content:""; position:absolute; left:0; right:0; bottom:2px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .45s var(--ease-io);}
.nav > a:not(.btn):hover::after, .nav > a[aria-current]::after{transform:scaleX(1); transform-origin:left;}
.nav > a .ext{font-size:.9em; opacity:.6; margin-left:4px;}
.hdr-right{display:flex; align-items:center; gap:18px;}
.hdr .btn{min-height:44px; padding:0 22px; font-size:.68rem;}

.lang{position:relative;}
.lang-btn{display:flex; align-items:center; gap:8px; font-size:.72rem; font-weight:700; letter-spacing:.2em; height:44px; padding:0 4px;}
.lang-btn svg{width:16px; height:16px; opacity:.8;}
.lang-menu{position:absolute; right:0; top:calc(100% + 6px); min-width:170px; background:var(--ink); border:1px solid var(--line); padding:8px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:all .3s var(--ease);}
.lang.open .lang-menu{opacity:1; visibility:visible; transform:none;}
.lang-menu button{display:flex; justify-content:space-between; width:100%; text-align:left; padding:11px 12px; font-size:.82rem; color:var(--muted); transition:color .2s, background-color .2s;}
.lang-menu button b{font-weight:700; letter-spacing:.15em; font-size:.7rem;}
.lang-menu button:hover, .lang-menu button[aria-current="true"]{color:var(--white); background:var(--char);}

.burger{display:none; width:44px; height:44px; position:relative;}
.burger i{position:absolute; left:10px; right:10px; height:1.5px; background:currentColor; transition:transform .45s var(--ease), opacity .3s;}
.burger i:nth-child(1){top:16px;} .burger i:nth-child(2){top:27px;}
.menu-open .burger i:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.menu-open .burger i:nth-child(2){transform:translateY(-5.5px) rotate(-45deg);}

/* mobile overlay menu */
.mnav{position:fixed; inset:0; z-index:55; background:var(--black); display:flex; flex-direction:column; justify-content:space-between; padding:calc(var(--hdr) + 28px) var(--gut) calc(28px + env(safe-area-inset-bottom)); clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease-io); visibility:hidden;}
.menu-open .mnav{clip-path:inset(0 0 0 0); visibility:visible;}
.mnav .links a{display:block; font-family:var(--f-display); font-stretch:80%; font-weight:600; text-transform:uppercase; font-size:clamp(2.4rem, 11vw, 4rem); line-height:1.05; padding:6px 0; opacity:0; transform:translateY(24px); transition:opacity .5s, transform .6s var(--ease);}
.mnav .links a small{font-family:var(--f-body); font-size:.8rem; letter-spacing:.2em; color:var(--sand); vertical-align:middle; margin-left:8px;}
.menu-open .mnav .links a{opacity:1; transform:none;}
.menu-open .mnav .links a:nth-child(1){transition-delay:.25s;} .menu-open .mnav .links a:nth-child(2){transition-delay:.3s;} .menu-open .mnav .links a:nth-child(3){transition-delay:.35s;} .menu-open .mnav .links a:nth-child(4){transition-delay:.4s;} .menu-open .mnav .links a:nth-child(5){transition-delay:.45s;}
.mnav .foot{display:grid; gap:18px;}
.mnav .langs{display:flex; gap:8px;}
.mnav .langs button{flex:1; height:46px; border:1px solid var(--line-strong); font-size:.75rem; font-weight:700; letter-spacing:.2em;}
.mnav .langs button[aria-current="true"]{background:var(--white); color:var(--black); border-color:var(--white);}
.mnav .btn{width:100%;}
.mnav .first{font-size:.85rem; color:var(--muted); border-top:1px solid var(--line); padding-top:18px;}
.mnav .first:hover{color:var(--sand);}

@media(max-width:1080px){
  .nav, .hdr-right .lang, .hdr-right .btn{display:none;}
  .burger{display:block;}
}
@media(min-width:1081px){ .mnav{display:none;} }

/* ---------- Hero ---------- */
.hero{position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--black);}
.hero .bg{position:absolute; inset:0;}
.hero .bg img, .hero .bg picture{width:100%; height:100%; object-fit:cover;}
.hero .bg img{transform:scale(1.08); animation:kb 9s var(--ease) forwards;}
@keyframes kb{to{transform:scale(1);}}
.hero::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,0) 70%), linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,0) 45%); pointer-events:none;}
.hero .content{position:relative; z-index:2; width:100%; padding:calc(var(--hdr) + 40px) var(--gut) clamp(56px, 9vh, 110px);}
.hero .eyebrow{margin-bottom:24px;}
.hero h1{max-width:12ch;}
.hero .lead{margin-top:26px;}
.hero.mid{min-height:92vh; min-height:92svh;}
.hero h1.d-xl{max-width:14ch;}
.hero-in > *{opacity:0; transform:translateY(30px); animation:up 1.1s var(--ease) forwards;}
.hero-in > *:nth-child(2){animation-delay:.12s;} .hero-in > *:nth-child(3){animation-delay:.24s;} .hero-in > *:nth-child(4){animation-delay:.36s;}
@keyframes up{to{opacity:1; transform:none;}}
.scroll-cue{position:absolute; z-index:2; right:var(--gut); bottom:clamp(56px, 9vh, 110px); writing-mode:vertical-rl; font-size:.66rem; letter-spacing:.35em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:14px;}
.scroll-cue::after{content:""; width:1px; height:70px; background:linear-gradient(var(--sand), transparent); animation:cue 2.2s ease-in-out infinite;}
@keyframes cue{0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;}}
@media(max-width:760px){
  .hero::after{background:linear-gradient(0deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.55) 38%, rgba(0,0,0,0) 70%);}
  .scroll-cue{display:none;}
  .hero .ctas .btn{flex:1 1 100%;}
}

/* ---------- Statement ---------- */
.statement{text-align:center;}
.statement .display{max-width:16ch; margin:22px auto 0;}
.statement .trio{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:clamp(56px, 7vw, 110px); border-top:1px solid var(--line); text-align:left;}
.statement .trio > div{padding:34px clamp(18px, 2.4vw, 40px) 0;}
.statement .trio > div + div{border-left:1px solid var(--line);}
.statement .trio .k{font-size:.7rem; letter-spacing:.3em; color:var(--sand); font-weight:600;}
.statement .trio strong{display:block; font-family:var(--f-display); font-stretch:82%; text-transform:uppercase; font-size:clamp(1.5rem, 2.2vw, 2.1rem); font-weight:600; margin:14px 0 10px; line-height:1;}
.statement .trio p{color:var(--muted);}
@media(max-width:760px){ .statement .trio{grid-template-columns:1fr;} .statement .trio > div{padding:28px 0;} .statement .trio > div + div{border-left:0; border-top:1px solid var(--line);} }

/* ---------- Section head ---------- */
.shead{display:flex; justify-content:space-between; align-items:flex-end; gap:30px 60px; flex-wrap:wrap; margin-bottom:clamp(36px, 4vw, 64px);}
.shead .display{margin-top:16px;}
.shead p{color:var(--muted); max-width:42ch;}
.shead .ctrl{display:flex; gap:10px;}
.arrow{width:54px; height:54px; border:1px solid var(--line-strong); display:grid; place-items:center; transition:background-color .35s, color .35s, border-color .35s;}
.arrow:hover{background:var(--white); color:var(--black); border-color:var(--white);}
.arrow svg{width:18px; height:18px;}

/* ---------- Rail (sliding cards) ---------- */
.rail{display:flex; gap:clamp(10px, 1.1vw, 18px); overflow-x:auto; scrollbar-width:none; padding:0 var(--gut); cursor:grab; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;}
.rail::-webkit-scrollbar{display:none;}
.rail.dragging{cursor:grabbing;}
.rail.dragging a{pointer-events:none;}
.card{position:relative; flex:0 0 clamp(270px, 25vw, 440px); aspect-ratio:3/4.2; overflow:hidden; background:var(--char); display:block; user-select:none; -webkit-user-drag:none;}
.card img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease), filter .8s; filter:brightness(.82); pointer-events:none;}
.card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 45%, rgba(0,0,0,0) 70%); transition:opacity .6s;}
.card .txt{position:absolute; z-index:2; left:0; right:0; bottom:0; padding:clamp(20px, 2vw, 32px);}
.card .tag{font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:var(--sand); font-weight:600;}
.card h3{font-family:var(--f-display); font-stretch:82%; text-transform:uppercase; font-weight:600; font-size:clamp(1.6rem, 2.3vw, 2.3rem); line-height:.95; margin:10px 0 0;}
.card p{color:#D8D1C6; font-size:.94rem; margin-top:12px; max-height:0; opacity:0; overflow:hidden; transition:max-height .7s var(--ease), opacity .5s, margin .5s;}
.card .go{display:inline-flex; align-items:center; gap:10px; margin-top:18px; font-size:.68rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase;}
.card .go i{display:inline-block; width:26px; height:1px; background:currentColor; transition:width .5s var(--ease);}
.card:hover img{transform:scale(1.06); filter:brightness(.7);}
.card:hover p{max-height:120px; opacity:1;}
.card:hover .go i{width:46px;}
@media(hover:none){ .card p{max-height:120px; opacity:1;} .card{flex-basis:78vw;} }

/* ---------- Full-bleed split ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; min-height:min(100vh, 980px); background:var(--black);}
.split .media{position:relative; overflow:hidden; min-height:520px;}
.split .media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.split .copy{display:flex; flex-direction:column; justify-content:center; padding:clamp(56px, 7vw, 140px) var(--gut);}
.split .copy .display{margin:18px 0 26px;}
.split .copy p + p{margin-top:16px;}
.split.flip .media{order:2;}
.split.bone{background:var(--bone); color:var(--bone-ink);}
.split.bone .lead{color:#2C2620;} .split.bone .muted{color:var(--bone-muted);} .split.bone .eyebrow{color:#8A6E50;} .split.bone .serif{color:#8A6E50;}
.split.coal{background:var(--coal);}
@media(max-width:900px){ .split{grid-template-columns:1fr; min-height:0;} .split.flip .media{order:0;} .split .media{min-height:0; aspect-ratio:4/5;} .split .media.land{aspect-ratio:4/3;} }

/* image reveal */
.reveal{clip-path:inset(12% 0 0 0); transition:clip-path 1.4s var(--ease-io);}
.reveal img{transform:scale(1.15); transition:transform 1.8s var(--ease);}
.reveal.in{clip-path:inset(0 0 0 0);}
.reveal.in img{transform:scale(1);}
.rise{opacity:0; transform:translateY(36px); transition:opacity 1s var(--ease), transform 1.1s var(--ease);}
.rise.in{opacity:1; transform:none;}
.no-js .rise, .no-js .reveal{opacity:1; transform:none; clip-path:none;}
.no-js .reveal img{transform:none;}

/* credentials list */
.creds{list-style:none; margin-top:34px; border-top:1px solid var(--line);}
.creds li{display:flex; justify-content:space-between; gap:20px; padding:16px 0; border-bottom:1px solid var(--line); font-size:.98rem;}
.creds li span:last-child{color:var(--muted); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; text-align:right;}
.bone .creds{border-color:rgba(20,18,16,.15);} .bone .creds li{border-color:rgba(20,18,16,.15);} .bone .creds li span:last-child{color:var(--bone-muted);}

/* ---------- Big band (21 days) ---------- */
.band{position:relative; overflow:hidden; background:var(--bone); color:var(--bone-ink);}
.band .inner{display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(40px, 6vw, 120px); align-items:center;}
.band .eyebrow{color:#8A6E50;} .band .serif{color:#8A6E50;} .band .lead{color:#2C2620;}
.band .meta{display:flex; gap:30px; flex-wrap:wrap; margin-top:28px; font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; color:var(--bone-muted);}
.band .meta b{color:var(--bone-ink); font-size:1.3rem; letter-spacing:0; margin-right:6px;}
.lu{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.lu a{position:relative; display:block; overflow:hidden; background:#ddd;}
.lu img{width:100%; aspect-ratio:1; object-fit:cover; transition:transform 1.2s var(--ease);}
.lu a:hover img{transform:scale(1.05);}
.lu .lbl{display:flex; justify-content:space-between; align-items:center; padding:16px 18px; background:var(--black); color:var(--white); font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;}
.lu .lbl i{font-style:normal; transition:transform .4s var(--ease);}
.lu a:hover .lbl i{transform:translateX(5px);}
.band .big{position:absolute; right:-2vw; bottom:-8vw; font-family:var(--f-display); font-stretch:70%; font-weight:700; font-size:38vw; line-height:.8; color:rgba(20,18,16,.05); pointer-events:none;}
@media(max-width:900px){ .band .inner{grid-template-columns:1fr;} }

/* ---------- Holistic tabs ---------- */
.holistic{display:grid; grid-template-columns:1fr 1fr; min-height:min(100vh, 960px); background:var(--coal);}
.holistic .pics{position:relative; overflow:hidden; min-height:520px;}
.holistic .pics img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.06); transition:opacity 1s var(--ease), transform 1.6s var(--ease);}
.holistic .pics img.on{opacity:1; transform:none;}
.holistic .copy{padding:clamp(56px, 7vw, 130px) var(--gut); display:flex; flex-direction:column; justify-content:center;}
.holistic .copy > .display{margin:18px 0 18px;}
.tabs{margin-top:34px; border-top:1px solid var(--line);}
.tab{border-bottom:1px solid var(--line);}
.tab button{width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 0; text-align:left; font-family:var(--f-display); font-stretch:82%; font-weight:600; text-transform:uppercase; font-size:clamp(1.4rem, 2.2vw, 2.1rem); line-height:1; color:var(--muted); transition:color .35s;}
.tab button .n{font-family:var(--f-body); font-size:.7rem; letter-spacing:.25em; color:var(--sand); margin-right:18px; vertical-align:middle;}
.tab button .pm{position:relative; width:16px; height:16px; flex:none;}
.tab button .pm::before, .tab button .pm::after{content:""; position:absolute; left:0; right:0; top:50%; height:1.5px; background:currentColor; transition:transform .45s var(--ease);}
.tab button .pm::after{transform:rotate(90deg);}
.tab.on button{color:var(--white);}
.tab.on button .pm::after{transform:rotate(0);}
.tab .body{display:grid; grid-template-rows:0fr; transition:grid-template-rows .6s var(--ease);}
.tab.on .body{grid-template-rows:1fr;}
.tab .body > div{overflow:hidden;}
.tab .body p{color:#CFC7BB; padding-bottom:26px; max-width:52ch;}
.tab .body ul{list-style:none; padding-bottom:28px; display:grid; gap:8px;}
.tab .body li{color:#CFC7BB; padding-left:20px; position:relative;}
.tab .body li::before{content:""; position:absolute; left:0; top:.75em; width:8px; height:1px; background:var(--sand);}
@media(max-width:900px){ .holistic{grid-template-columns:1fr; min-height:0;} .holistic .pics{aspect-ratio:4/5; min-height:0;} }

/* ---------- Steps ---------- */
.steps{display:grid; grid-template-columns:repeat(var(--n,4), 1fr); border-top:1px solid var(--line);}
.step{padding:34px clamp(16px, 2vw, 34px) 0 0;}
.step + .step{padding-left:clamp(16px, 2vw, 34px); border-left:1px solid var(--line);}
.step .k{font-family:var(--f-display); font-stretch:75%; font-weight:600; font-size:3rem; line-height:1; color:var(--sand);}
.step strong{display:block; font-size:1.06rem; margin:18px 0 8px; letter-spacing:.02em;}
.step p{color:var(--muted); font-size:.95rem;}
.bonebg{background:var(--bone); color:var(--bone-ink);} .bonebg .eyebrow, .bonebg .serif, .bonebg .step .k{color:#8A6E50;} .bonebg .step p, .bonebg .shead p{color:var(--bone-muted);} .bonebg .steps, .bonebg .step + .step{border-color:rgba(20,18,16,.15);}
@media(max-width:1000px){ .steps{grid-template-columns:1fr 1fr;} .step:nth-child(odd){padding-left:0; border-left:0;} .step{padding-bottom:30px; border-bottom:1px solid var(--line);} .bonebg .step{border-color:rgba(20,18,16,.15);} }
@media(max-width:560px){ .steps{grid-template-columns:1fr;} .step + .step{padding-left:0; border-left:0;} }

/* ---------- Offer grid ---------- */
.offers{display:grid; grid-template-columns:repeat(var(--n,3), 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.offer{background:var(--black); padding:clamp(30px, 3vw, 52px); display:flex; flex-direction:column; gap:14px; transition:background-color .5s;}
.offer:hover{background:var(--ink);}
.offer .kind{font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--sand); font-weight:600;}
.offer p{color:var(--muted);}
.offer .price{font-family:var(--f-display); font-stretch:80%; font-weight:600; font-size:2.6rem; line-height:1; margin-top:6px;}
.offer .price small{font-family:var(--f-body); font-size:.8rem; color:var(--muted); font-weight:500; letter-spacing:.06em;}
.offer ul{list-style:none; display:grid; gap:10px; margin:6px 0 10px;}
.offer li{padding-left:20px; position:relative; color:#D9D2C7; font-size:.95rem;}
.offer li::before{content:""; position:absolute; left:0; top:.72em; width:9px; height:1px; background:var(--sand);}
.offer .btn{margin-top:auto; align-self:flex-start;}
@media(max-width:960px){ .offers{grid-template-columns:1fr;} }

.rows{display:grid; margin-top:8px;}
.rows .row{display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--line); font-size:.95rem;}
.rows .row span:last-child{color:var(--muted); text-align:right;}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line); max-width:1100px;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 0; font-size:clamp(1.05rem, 1.4vw, 1.25rem); font-weight:500;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; font-size:1.6rem; font-weight:300; color:var(--sand); transition:transform .4s var(--ease);}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .ans{padding:0 0 26px; color:var(--muted);}
.faq .ans li{margin-left:18px; margin-top:6px;}

/* ---------- Partners ---------- */
.partners{display:grid; grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.partner{position:relative; background:var(--black); padding:clamp(30px, 3.5vw, 60px); display:grid; grid-template-rows:auto 1fr auto; gap:26px; min-height:360px; transition:background-color .5s;}
.partner:hover{background:var(--ink);}
.partner .logo{height:72px; display:flex; align-items:center;}
.partner .logo img{max-height:64px; max-width:240px; width:auto; object-fit:contain;}
.partner .wordmark{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(2.4rem, 4vw, 3.6rem); line-height:1; letter-spacing:-.01em;}
.partner .wordmark.pz{font-stretch:110%; letter-spacing:.02em;}
.partner .wordmark.gf{font-family:var(--f-serif); font-style:italic; font-weight:400; text-transform:none; color:#B9D6A0;}
.partner .kind{font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--sand); font-weight:600; margin-bottom:10px;}
.partner p{color:var(--muted);}
.partner .bottom{display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap;}
.code{display:inline-flex; align-items:center; border:1px dashed var(--line-strong);}
.code span{padding:12px 16px; font-weight:700; letter-spacing:.22em; font-size:.82rem;}
.code button{position:relative; z-index:3; padding:12px 16px; border-left:1px dashed var(--line-strong); font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--sand); transition:background-color .3s, color .3s;}
.code button:hover{background:var(--sand); color:var(--black);}
.partner .cover{position:absolute; inset:0; z-index:1;}
.partner .link{position:relative; z-index:2;}
@media(max-width:820px){ .partners{grid-template-columns:1fr;} .partner{min-height:0;} }

/* ---------- Final CTA ---------- */
.cta-final{position:relative; overflow:hidden; min-height:80vh; display:flex; align-items:center; text-align:center;}
.cta-final .bg{position:absolute; inset:0;}
.cta-final .bg img{width:100%; height:100%; object-fit:cover; filter:brightness(.4);}
.cta-final .inner{position:relative; z-index:2; width:100%; padding:var(--sec) var(--gut);}
.cta-final .display{max-width:14ch; margin:20px auto 0;}
.cta-final .lead{margin:24px auto 0;}
.cta-final .ctas{justify-content:center;}

/* ---------- Footer ---------- */
.ftr{background:var(--black); border-top:1px solid var(--line); padding:clamp(64px, 7vw, 110px) var(--gut) calc(28px + env(safe-area-inset-bottom));}
.ftr .top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px;}
.ftr .top img{height:40px; width:auto;}
.ftr .tag{color:var(--muted); margin-top:20px; max-width:32ch; font-size:.95rem;}
.ftr h4{font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--sand); font-weight:600; margin-bottom:18px;}
.ftr ul{list-style:none; display:grid; gap:10px;}
.ftr li, .ftr li a{color:#CFC8BD; font-size:.95rem; transition:color .25s;}
.ftr li a:hover{color:var(--white);}
.ftr .social{display:flex; gap:10px; margin-top:24px;}
.ftr .social a{width:46px; height:46px; border:1px solid var(--line-strong); display:grid; place-items:center; transition:all .35s;}
.ftr .social a:hover{background:var(--white); color:var(--black); border-color:var(--white);}
.ftr .social svg{width:18px; height:18px;}
.ftr .word{font-family:var(--f-display); font-stretch:70%; font-weight:700; text-transform:uppercase; font-size:clamp(2.6rem, 12.4vw, 15rem); line-height:.82; color:transparent; -webkit-text-stroke:1px rgba(215,193,162,.35); margin:clamp(60px, 7vw, 110px) 0 30px; white-space:nowrap; overflow:hidden;}
.ftr .legal{display:flex; justify-content:space-between; gap:12px 30px; flex-wrap:wrap; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font-size:.8rem;}
.ftr .legal p{max-width:none;}
@media(max-width:900px){ .ftr .top{grid-template-columns:1fr 1fr;} .ftr .top > div:first-child{grid-column:1/-1;} }
@media(max-width:520px){ .ftr .top{grid-template-columns:1fr;} }

/* ---------- Floating contact ---------- */
.float{transition:opacity .4s; position:fixed; z-index:50; right:clamp(14px, 2vw, 28px); bottom:calc(clamp(14px, 2vw, 28px) + env(safe-area-inset-bottom)); display:flex; flex-direction:column; gap:10px;}
.float a{width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:rgba(0,0,0,.82); color:var(--sand); border:1px solid rgba(215,193,162,.5); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 10px 30px rgba(0,0,0,.35); transition:transform .4s var(--ease), background-color .3s, color .3s;}
.float a:hover{transform:translateY(-3px); background:var(--sand); color:var(--black);}
.float svg{width:23px; height:23px;}
.float a.wa{width:60px; height:60px; background:var(--sand); color:var(--black); border-color:var(--sand);}
.float a.wa:hover{background:var(--white); border-color:var(--white);}
.float a.wa svg{width:27px; height:27px;}

/* ---------- Free session pop-up ---------- */
.pop{position:fixed; z-index:70; right:calc(clamp(14px, 2vw, 28px) + 76px); bottom:calc(clamp(14px, 2vw, 28px) + env(safe-area-inset-bottom)); width:min(370px, calc(100vw - 100px)); background:var(--ink); border:1px solid rgba(215,193,162,.4); box-shadow:0 30px 80px rgba(0,0,0,.6); transform:translateY(calc(100% + 40px)); opacity:0; visibility:hidden; transition:transform .8s var(--ease), opacity .5s, visibility .8s;}
.pop.show{transform:none; opacity:1; visibility:visible;}
.pop .pic{height:150px; overflow:hidden;}
.pop .pic img{width:100%; height:100%; object-fit:cover; object-position:center 30%;}
.pop .in{padding:24px 26px 26px;}
.pop .eyebrow{font-size:.64rem;}
.pop h3{font-family:var(--f-display); font-stretch:82%; font-weight:600; text-transform:uppercase; font-size:1.9rem; line-height:.95; margin:10px 0 10px;}
.pop p{color:var(--muted); font-size:.92rem;}
.pop .btn{width:100%; margin-top:20px; min-height:50px;}
.pop .x{position:absolute; top:10px; right:10px; width:38px; height:38px; border-radius:50%; background:rgba(0,0,0,.6); display:grid; place-items:center; font-size:1.2rem; line-height:1; color:var(--white); transition:background-color .3s;}
.pop .x:hover{background:var(--black);}
.pop-tab{position:fixed; z-index:49; left:0; top:50%; writing-mode:vertical-rl; transform:translateY(-50%) rotate(180deg); background:var(--sand); color:var(--black); padding:18px 12px; font-size:.66rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase; opacity:0; visibility:hidden; transition:opacity .5s, visibility .5s, background-color .3s;}
.pop-tab.show{opacity:1; visibility:visible;}
.pop-tab:hover{background:var(--white);}
@media(max-width:560px){ .pop{left:12px; right:12px; width:auto; bottom:calc(12px + env(safe-area-inset-bottom));} .pop .pic{display:none;} .pop .in{padding:20px 20px 20px;} .pop h3{font-size:1.5rem; padding-right:30px;} .pop p{font-size:.86rem;} .pop .btn{margin-top:14px;} .pop.show ~ .float, body:has(.pop.show) .float{opacity:0; pointer-events:none;} }

/* utility */
.center{text-align:center;}
.mt-s{margin-top:18px;} .mt-m{margin-top:34px;}
.coalbg{background:var(--coal);}
.hide-m{} @media(max-width:760px){ .hide-m{display:none !important;} }
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
@media(prefers-reduced-motion:reduce){ *, *::before, *::after{animation-duration:.01ms !important; transition-duration:.01ms !important;} .rise, .reveal{opacity:1; transform:none; clip-path:none;} }
@media(max-width:560px){
  .btn{white-space:normal; text-align:center; line-height:1.35; padding:14px 22px;}
  .ctas .btn{flex:1 1 100%;}
  .display{overflow-wrap:break-word; hyphens:auto; -webkit-hyphens:auto;}
  .lu .lbl{font-size:.62rem; letter-spacing:.16em; padding:14px 12px;}
}

/* ---------- Pricing (Equinox-style selector) ---------- */
.seg{display:inline-flex; border:1px solid var(--line-strong); padding:4px; margin-bottom:28px;}
.seg button{min-width:120px; height:46px; font-size:.74rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); transition:background-color .4s var(--ease), color .4s;}
.seg button.on{background:var(--white); color:var(--black);}
.seg button:not(.on):hover{color:var(--white);}
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.plan{position:relative; background:var(--black); padding:clamp(28px,3vw,48px); display:flex; flex-direction:column; gap:12px; transition:background-color .5s;}
.plan:hover{background:var(--ink);}
.plan.popular{background:var(--coal); box-shadow:inset 0 0 0 1px rgba(215,193,162,.55);}
.plan .badge{position:absolute; top:18px; right:18px; font-size:.62rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; background:var(--sand); color:var(--black); padding:6px 10px;}
.plan .kind{font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--sand); font-weight:600;}
.plan .price{font-family:var(--f-display); font-stretch:80%; font-weight:600; font-size:clamp(2.6rem,4vw,3.6rem); line-height:1; margin-top:10px; font-variant-numeric:tabular-nums;}
.plan .price small{font-family:var(--f-body); font-size:.85rem; color:var(--muted); font-weight:500; margin-left:6px; letter-spacing:.04em;}
.plan .unit{color:var(--muted); font-size:.92rem;}
.plan .btn{margin-top:18px; align-self:stretch;}
.amt.flip{animation:flip .5s var(--ease);}
@keyframes flip{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
.singles{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-top:0;}
.single{background:var(--black); padding:22px clamp(28px,3vw,48px); display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.single .kind{font-size:.64rem; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:4px;}
.single strong{font-size:1.05rem; font-weight:600;}
.single .r{display:flex; align-items:center; gap:22px;}
.single .amt{font-family:var(--f-display); font-stretch:80%; font-weight:600; font-size:2rem; line-height:1;}
.single .btn{min-height:46px; padding:0 22px;}
.pnotes{display:flex; justify-content:space-between; gap:12px 40px; flex-wrap:wrap; margin-top:22px; color:var(--muted); font-size:.9rem;}
.pnotes p{max-width:none;}
.pnotes .link{color:var(--sand); margin-left:8px;}
@media(max-width:900px){ .plans{grid-template-columns:1fr;} .singles{grid-template-columns:1fr;} .seg{display:flex;} .seg button{flex:1;} }

/* ---------- Results ---------- */
.rcard{flex:0 0 clamp(300px, 36vw, 580px); background:var(--ink); border:1px solid var(--line); display:flex; flex-direction:column; user-select:none;}
.rcard .ph{position:relative; aspect-ratio:5/3; overflow:hidden; background:#111;}
.rcard .ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; pointer-events:none; transition:opacity .8s var(--ease), transform 1.4s var(--ease);}
.rcard .ph img.alt{opacity:0;}
.rcard:hover .ph img.alt{opacity:1;}
.rcard:hover .ph img{transform:scale(1.03);}
.rcard .tx{padding:22px 24px 26px; display:flex; flex-direction:column; gap:14px; flex:1;}
.rcard .top{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap;}
.rcard .kg{font-family:var(--f-display); font-stretch:80%; font-weight:600; font-size:2rem; line-height:1; text-transform:uppercase; font-variant-numeric:tabular-nums;}
.rcard .kg em{font-style:normal; color:var(--sand); margin:0 4px;}
.rcard .chip{font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--sand); border:1px solid rgba(215,193,162,.45); padding:6px 10px; white-space:nowrap;}
.rcard .chip b{color:var(--white); font-weight:700;}
.rcard blockquote{font-family:var(--f-serif); font-style:italic; font-size:1.18rem; line-height:1.4; color:#E9E2D6;}
.rcard .sol{color:var(--muted); font-size:.82rem; margin-top:auto; padding-top:12px; border-top:1px solid var(--line);}
@media(hover:none){ .rcard{flex-basis:84vw;} }
.card.ath{cursor:grab;}
.card.ath img{filter:brightness(.9);}
.card.ath::after{background:linear-gradient(0deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,0) 40%);}
.card.w{flex-basis:clamp(340px, 38vw, 640px); aspect-ratio:4/3.1;}
@media(hover:none){ .card.w{flex-basis:88vw;} }
