/* ============================================================
   Clínica Dental Berriotxoa — v2 (estilo editorial "Hub")
   Playfair Display + Be Vietnam Pro + Space Grotesk
   ============================================================ */
:root{
  --bg:#F4F2EC; --paper:#FBFAF6; --ink:#22303A; --slate:#445667; --muted:#8A8F92;
  --line:#E3E0D7; --accent:#6E9B9D; --accent-2:#4E7B7B; --dark:#22303A;
  --serif:"Playfair Display",Georgia,serif; --sans:"Be Vietnam Pro",system-ui,sans-serif; --mono:"Space Grotesk",monospace;
  --pad:clamp(1.15rem,5vw,5.5rem); --maxw:1400px; --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.js.lenis,html.js.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.cover{width:100%;height:100%;object-fit:cover}
em{font-style:italic}
::selection{background:var(--accent);color:#fff}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.02;letter-spacing:-.015em;color:var(--ink)}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-2)}
.eyebrow::before{content:"✦";margin-right:.6em;color:var(--accent)}

/* ---------- buttons / links ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--mono);font-size:.9rem;font-weight:600;letter-spacing:.02em;
  padding:1em 1.6em;border-radius:100px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);transition:background .4s var(--ease),color .4s,transform .4s var(--ease)}
.btn:hover{background:transparent;color:var(--ink);transform:translateY(-2px)}
.btn__ico{display:inline-block;transition:transform .4s var(--ease)}
.btn:hover .btn__ico{transform:translate(3px,-3px)}
.btn--sm{padding:.7em 1.25em;font-size:.82rem}
.btn--light{background:var(--accent);border-color:var(--accent);color:#10201f}
.btn--light:hover{background:transparent;color:var(--paper);border-color:var(--paper)}
.link{font-family:var(--mono);font-weight:600;font-size:.9rem;letter-spacing:.02em;color:var(--accent-2);border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .3s}
.link:hover{color:var(--ink)}

/* ---------- cursor ---------- */
.cursor{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid var(--ink);border-radius:50%;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s,border-color .3s,opacity .3s;mix-blend-mode:difference;opacity:0}
.cursor.is-active{width:64px;height:64px;background:#fff;border-color:#fff}
.cursor.is-drag{width:78px;height:78px;background:var(--accent);border-color:var(--accent);mix-blend-mode:normal}
@media(hover:none){.cursor{display:none}}

/* ---------- progress ---------- */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:1200;transition:width .1s linear}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:2000;background:var(--dark);display:grid;place-items:center;color:var(--paper)}
.loader__inner{display:flex;align-items:baseline;gap:1rem}
.loader__word{font-family:var(--serif);font-size:clamp(2rem,7vw,5rem);font-style:italic}
.loader__num{font-family:var(--mono);font-size:1rem;opacity:.6}
.loader__num i{font-style:normal}
.is-loaded .loader{transform:translateY(-100%);transition:transform 1s var(--ease) .2s;pointer-events:none}

/* ---------- topbar (franja) + wrapper sticky ---------- */
.sitetop{position:fixed;top:0;left:0;right:0;z-index:1000}
.topbar{background:var(--dark);color:rgba(251,250,246,.72);font-family:var(--mono);font-size:.78rem;
  display:flex;align-items:center;justify-content:center;gap:clamp(.7rem,2.2vw,1.6rem);padding:.5rem var(--pad);flex-wrap:wrap}
.tb__item{display:inline-flex;align-items:center;gap:.5em;color:rgba(251,250,246,.82);transition:color .25s;white-space:nowrap}
a.tb__item:hover{color:#fff}
.tb__item svg{color:var(--accent);flex-shrink:0}
.tb__item strong{color:#fff;font-weight:600}
.tb__soft{color:rgba(251,250,246,.4)}
.tb__sep{width:1px;height:15px;background:rgba(251,250,246,.22)}
.tb__lang{display:inline-flex;gap:.55em;align-items:center}
.tb__lang span{color:rgba(251,250,246,.5);font-weight:600;font-size:.72rem;cursor:pointer;transition:color .25s}
.tb__lang span:hover,.tb__lang span.is-active{color:var(--accent)}

/* ---------- header ---------- */
.hdr{position:relative;z-index:1000;display:flex;align-items:center;justify-content:space-between;
  background:rgba(244,242,236,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  padding:1.1rem var(--pad);transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s}
.hdr.solid{background:rgba(244,242,236,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:.7rem;padding-bottom:.7rem;box-shadow:0 1px 0 var(--line)}
.hdr__logo img{height:52px;width:auto}
.hdr__nav{display:flex;gap:2rem}
.hdr__nav a{font-family:var(--sans);font-size:.94rem;font-weight:500;letter-spacing:0;color:var(--ink);transition:color .25s}
.hdr__nav a:hover{color:var(--accent-2)}
.hdr__right{display:flex;align-items:center;gap:1rem}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;z-index:1001}
.burger span{width:26px;height:2px;background:var(--ink);transition:transform .4s var(--ease),opacity .3s}
.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-open .burger span{background:var(--paper)}

/* ---------- fullscreen menu ---------- */
.menu{position:fixed;inset:0;z-index:999;background:var(--dark);color:var(--paper);display:flex;flex-direction:column;justify-content:center;
  padding:5rem var(--pad) 3rem;clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path .8s var(--ease)}
.menu-open .menu{clip-path:inset(0 0 0 0);pointer-events:auto}
.menu__nav{display:flex;flex-direction:column;gap:.2rem}
.menu__link{font-family:var(--serif);font-size:clamp(2rem,7vw,4.5rem);font-weight:500;color:var(--paper);display:flex;align-items:baseline;gap:1.2rem;
  padding:.35rem 0;opacity:.55;transition:opacity .4s,padding-left .4s var(--ease)}
.menu__link:hover{opacity:1;padding-left:1.2rem;color:var(--accent)}
.menu__idx{font-family:var(--mono);font-size:.9rem;opacity:.5;letter-spacing:.1em}
.menu__foot{margin-top:2.5rem;display:flex;gap:2rem;flex-wrap:wrap;font-family:var(--mono);font-size:.85rem;color:rgba(251,250,246,.6)}
.menu__foot a:hover{color:var(--accent)}

/* ============================================================ HERO */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:10rem var(--pad) 2rem;position:relative}
.hero__grid{display:grid;grid-template-columns:1.55fr 1fr;gap:2rem 3rem;align-items:end;margin-bottom:clamp(2rem,4vw,3.5rem)}
.hero__title{font-size:clamp(2.9rem,8.5vw,8rem);font-weight:500;line-height:.98}
.hero__title em{font-style:italic;color:var(--accent-2)}
.hero__aside{padding-bottom:.6rem}
.hero__lead{color:var(--slate);font-size:clamp(1rem,1.35vw,1.18rem);max-width:38ch;margin-bottom:1.6rem}
.hero__media{position:relative;border-radius:8px;overflow:hidden;height:clamp(320px,52vh,620px)}
.hero__figure{position:absolute;inset:-12% 0;}
.hero__figure img{width:100%;height:100%;object-fit:cover}
.hero__badge{position:absolute;left:1.4rem;bottom:1.4rem;background:var(--paper);color:var(--ink);border-radius:100px;padding:.6em 1.1em;
  font-family:var(--mono);font-size:.82rem;font-weight:600;display:inline-flex;align-items:center;gap:.6em;box-shadow:0 14px 34px -18px rgba(0,0,0,.4)}
.hero__badge i{color:var(--accent);font-style:normal;letter-spacing:1px}
.scrollcue{position:absolute;right:var(--pad);bottom:2rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.scrollcue i{width:1px;height:44px;background:linear-gradient(var(--accent),transparent);position:relative;overflow:hidden}
.scrollcue i::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--ink);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(260%)}}

/* ============================================================ MARQUEE */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:1.1rem 0;background:var(--paper)}
.marquee__track{display:inline-flex;align-items:center;gap:1.5rem;white-space:nowrap;will-change:transform}
.marquee__track span{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.8rem);color:var(--ink)}
.marquee__track b{color:var(--accent);font-size:1.4rem}

/* ============================================================ MANIFESTO */
.manifesto{max-width:var(--maxw);margin:0 auto;padding:clamp(5rem,12vh,9rem) var(--pad)}
.manifesto__title{font-size:clamp(1.9rem,4.6vw,4rem);font-weight:500;max-width:20ch;margin:1.4rem 0 3rem}
.manifesto__cols{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.manifesto__cols>p{color:var(--slate);font-size:1.08rem;max-width:44ch}
.manifesto__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.stat strong{display:block;font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:500;color:var(--ink)}
.stat span{font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;color:var(--muted)}

/* ============================================================ FEAT / editorial rows */
.feat{max-width:var(--maxw);margin:0 auto;padding:clamp(2rem,5vw,4rem) var(--pad) clamp(4rem,9vh,7rem)}
.feat__head{margin-bottom:clamp(2.5rem,6vw,5rem)}
.feat__title{font-size:clamp(1.8rem,4vw,3.4rem);max-width:16ch;margin-top:1rem}
.feat__more{max-width:var(--maxw);margin:clamp(2rem,4vw,3rem) auto 0;padding:0 var(--pad);display:flex;flex-wrap:wrap;gap:.6rem}
.feat__more a{font-family:var(--mono);font-size:.78rem;letter-spacing:.02em;color:var(--accent-2);border:1px solid var(--line);border-radius:100px;padding:.6em 1.2em;transition:background .3s,color .3s,border-color .3s}
.feat__more a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(2rem,5vw,4rem) 0;border-top:1px solid var(--line)}
.frow--rev .frow__media{order:2}
.frow__media{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:4/3}
.frow__media img{width:100%;height:116%;object-fit:cover;transform:translateY(-8%)}
.frow__text{padding:1rem 0}
.frow__num{font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;color:var(--accent-2)}
.frow__text h3{font-size:clamp(2rem,5vw,4rem);font-weight:500;margin:.4rem 0 1.1rem;line-height:1}
.frow__text p{color:var(--slate);max-width:40ch;margin-bottom:1.4rem}
.frow__text p em{color:var(--ink);font-style:italic}

/* ============================================================ METHOD */
.method{background:var(--dark);color:var(--paper);padding:clamp(4rem,10vh,8rem) var(--pad)}
.method__head{max-width:var(--maxw);margin:0 auto clamp(2.5rem,5vw,4rem)}
.method__title{color:var(--paper);font-size:clamp(1.8rem,4vw,3.4rem);max-width:18ch;margin-top:1rem}
.method .eyebrow{color:var(--accent)}
.method__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(251,250,246,.14);border:1px solid rgba(251,250,246,.14)}
.mitem{background:var(--dark);padding:2rem 1.6rem 2.4rem}
.mitem__n{font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;color:var(--accent)}
.mitem h4{color:var(--paper);font-size:1.4rem;margin:1.4rem 0 .7rem;font-weight:500}
.mitem p{color:rgba(251,250,246,.6);font-size:.95rem}

/* ============================================================ THROWABLE gallery */
.throw{padding:clamp(4rem,9vh,7rem) var(--pad);overflow:hidden}
.throw__head{max-width:var(--maxw);margin:0 auto 1.5rem;text-align:center}
.throw__title{font-size:clamp(2.2rem,6vw,5rem);margin:1rem 0 .4rem}
.throw__hint{font-family:var(--mono);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2)}
.throw__scene{position:relative;height:clamp(420px,64vh,720px);max-width:1500px;margin:0 auto;touch-action:none}
.throw__item{position:absolute;left:var(--x);top:var(--y);width:var(--w);aspect-ratio:4/3;border-radius:6px;overflow:hidden;
  transform:rotate(var(--r));box-shadow:0 24px 60px -30px rgba(0,0,0,.5);cursor:grab;will-change:transform}
.throw__item:active{cursor:grabbing}
.throw__item img{pointer-events:none}
@media(max-width:700px){.throw__item{width:44%!important}}

/* ============================================================ CASES before/after */
.cases{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,7vh,6rem) var(--pad)}
.cases__head{text-align:center;margin-bottom:2.5rem}
.cases__title{font-size:clamp(2rem,5vw,4rem);margin-top:1rem}
.cases__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.ba{position:relative;margin:0;border-radius:8px;overflow:hidden;aspect-ratio:3/2;cursor:ew-resize;user-select:none;touch-action:none;background:var(--line)}
.ba__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba__before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.ba__handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2px;background:#fff;transform:translateX(-1px);box-shadow:0 0 12px rgba(0,0,0,.4)}
.ba__handle::after{content:"⇄";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-size:1.05rem}
.ba__tag{position:absolute;top:12px;font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.35em .7em;border-radius:100px;color:#fff;background:rgba(34,48,58,.6)}
.ba__tag--b{left:12px}.ba__tag--a{right:12px;background:var(--accent)}
.ba figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem 1.2rem;color:#fff;font-family:var(--mono);font-size:.78rem;background:linear-gradient(transparent,rgba(0,0,0,.55))}

/* ============================================================ TEAM */
.team{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,7vh,6rem) var(--pad)}
.team__head{margin-bottom:2.5rem}
.team__title{font-size:clamp(2rem,5vw,4rem);margin-top:1rem;max-width:16ch}
.team__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.doc{margin:0}
.doc__ph{aspect-ratio:3/4;border-radius:6px;overflow:hidden;background:linear-gradient(160deg,#e7ece9,#dfe6e4);margin-bottom:1rem;position:relative}
.doc__ph--i::after{content:attr(data-i);position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:2.6rem;color:var(--accent);opacity:.5}
/* flip card (Dr. Alejandro) */
.doc__ph--flip{overflow:visible;background:none;perspective:1100px;cursor:pointer}
.doc__ph--flip .flip{position:relative;width:100%;height:100%;transition:transform .8s var(--ease);transform-style:preserve-3d}
.doc.is-flipped .doc__ph--flip .flip{transform:rotateY(180deg)}
@media(hover:hover){.doc:hover .doc__ph--flip .flip{transform:rotateY(180deg)}}
.flip__front,.flip__back{position:absolute;inset:0;border-radius:6px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(160deg,#e7ece9,#dfe6e4)}
.flip__back{transform:rotateY(180deg)}
.doc__flipcue{position:absolute;top:.7rem;right:.7rem;z-index:3;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.85);color:var(--ink);display:grid;place-items:center;font-size:.95rem;box-shadow:0 6px 16px -8px rgba(0,0,0,.5);transition:opacity .35s}
.doc.is-flipped .doc__flipcue{opacity:0}
@media(hover:hover){.doc:hover .doc__flipcue{opacity:0}}
.doc figcaption strong{display:block;font-family:var(--serif);font-size:1.12rem;font-weight:500}
.doc figcaption span{font-family:var(--mono);font-size:.72rem;letter-spacing:.03em;color:var(--muted)}

/* ============================================================ REVIEWS */
.revs{background:var(--paper);border-top:1px solid var(--line);padding:clamp(4rem,9vh,7rem) 0}
.revs__head{max-width:var(--maxw);margin:0 auto 2.5rem;padding:0 var(--pad)}
.revs__title{font-size:clamp(2rem,5vw,4rem);margin-top:1rem;max-width:16ch}
.revs__swiper{padding:0 var(--pad) 1rem;overflow:hidden}
.rev{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:2rem;width:min(420px,80vw);height:auto}
.rev__stars{color:var(--accent);letter-spacing:2px;margin-bottom:1rem}
.rev blockquote{font-family:var(--serif);font-size:1.28rem;line-height:1.35;margin-bottom:1.3rem}
.rev cite{font-family:var(--mono);font-size:.76rem;letter-spacing:.04em;color:var(--muted);font-style:normal}
.revs__note{max-width:var(--maxw);margin:1.5rem auto 0;padding:0 var(--pad);font-family:var(--mono);font-size:.72rem;color:var(--muted);text-align:center}

/* ============================================================ FOOTER */
.foot{background:var(--dark);color:var(--paper);padding:clamp(4rem,9vh,7rem) var(--pad) 2rem;position:relative;overflow:hidden}
.foot .eyebrow{color:var(--accent)}
.foot__cta{max-width:var(--maxw);margin:0 auto}
.foot__title{color:var(--paper);font-size:clamp(2.4rem,7vw,6rem);margin-top:1rem}
.foot__title em{color:var(--accent);font-style:italic}
.foot__grid{max-width:var(--maxw);margin:clamp(2.5rem,5vw,4rem) auto 0;display:grid;grid-template-columns:1.1fr 1fr;gap:3rem}
.foot__form{display:flex;flex-direction:column;gap:1.1rem}
.field{position:relative}
.field input{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(251,250,246,.28);color:var(--paper);font-family:var(--sans);font-size:1.05rem;padding:1rem 0 .6rem}
.field input:focus{outline:none;border-color:var(--accent)}
.field label{position:absolute;left:0;top:1rem;font-family:var(--mono);font-size:.85rem;color:rgba(251,250,246,.5);pointer-events:none;transition:transform .3s var(--ease),font-size .3s,color .3s}
.field input:focus+label,.field input:not(:placeholder-shown)+label{transform:translateY(-1.35rem);font-size:.66rem;color:var(--accent)}
.foot__form .btn{align-self:flex-start;margin-top:.6rem}
.foot__msg{font-family:var(--mono);font-size:.85rem;color:var(--accent)}
.foot__lead{display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem}
.foot__leadin{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.4;color:rgba(251,250,246,.9);max-width:24ch}
.foot__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.foot__leadnote{font-family:var(--mono);font-size:.76rem;letter-spacing:.02em;color:rgba(251,250,246,.5);max-width:36ch}
.btn--outline{background:transparent;border-color:rgba(251,250,246,.4);color:var(--paper)}
.btn--outline:hover{background:var(--paper);border-color:var(--paper);color:var(--ink);transform:translateY(-2px)}
.foot__info{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.foot__block{display:flex;flex-direction:column;gap:.4rem}
.foot__k{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(251,250,246,.45);margin-bottom:.4rem}
.foot__block a,.foot__block p{color:rgba(251,250,246,.85);font-size:1rem}
.foot__block a:hover{color:var(--accent)}
.foot__map{max-width:var(--maxw);margin:clamp(2.5rem,5vw,4rem) auto 0;border-radius:10px;overflow:hidden;height:300px}
.foot__map iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}
.map-consent{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(160deg,#eef2f0,#dfe6e3)}
.map-consent.is-loaded{display:block;background:none}
.map-consent__inner{max-width:360px;padding:1.6rem}
.map-consent__t{font-family:var(--serif);font-size:1.25rem;font-weight:500;color:var(--ink);margin-bottom:.4rem}
.map-consent__p{font-size:.86rem;line-height:1.55;color:var(--slate);margin-bottom:1.1rem}

/* ============================================================ COOKIE CONSENT */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:1900;display:flex;justify-content:flex-start;padding:clamp(.8rem,2.2vw,1.5rem);pointer-events:none}
.cc[hidden]{display:none}
body.menu-open .cc{visibility:hidden;pointer-events:none}
.cc__card{pointer-events:auto;width:100%;max-width:430px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 26px 64px -22px rgba(34,48,58,.4);padding:clamp(1.3rem,3vw,1.75rem);animation:ccIn .65s var(--ease) .15s both}
@keyframes ccIn{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.cc__eyebrow{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2)}
.cc__title{font-family:var(--serif);font-size:1.32rem;font-weight:500;color:var(--ink);margin:.25rem 0 .55rem}
.cc__text{font-size:.88rem;line-height:1.62;color:var(--slate);margin-bottom:1.1rem}
.cc__text a{color:var(--accent-2);border-bottom:1px solid rgba(78,123,123,.45)}
.cc__text a:hover{border-color:var(--accent-2)}
.cc__actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;align-items:center}
.cc__btn{font-family:var(--sans);font-size:.82rem;font-weight:500;line-height:1;padding:.72em 1.2em;border-radius:100px;cursor:pointer;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s}
.cc__btn--ghost{background:transparent;color:var(--slate);border-color:var(--line)}
.cc__btn--ghost:hover{border-color:var(--ink);color:var(--ink)}
.cc__btn--solid{background:var(--dark);color:var(--paper)}
.cc__btn--solid:hover{background:var(--accent-2)}
.cc__btn:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
.cc__panel{margin-top:1.1rem;padding-top:.4rem;border-top:1px solid var(--line)}
.cc__panel[hidden]{display:none}
.cc__row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.cc__rowT{font-size:.9rem;font-weight:600;color:var(--ink)}
.cc__rowP{font-size:.77rem;color:var(--slate);line-height:1.45;margin-top:.15rem;max-width:34ch}
.cc__sw{position:relative;flex:0 0 auto;width:42px;height:24px;display:inline-block}
.cc__sw input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.cc__sw span{position:absolute;inset:0;background:#cfd4d0;border:1px solid var(--slate);border-radius:100px;transition:background .25s;pointer-events:none}
.cc__sw span::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.28)}
.cc__sw input:checked+span{background:var(--accent-2)}
.cc__sw input:checked+span::after{transform:translateX(18px)}
.cc__sw input:focus-visible+span{outline:2px solid var(--accent-2);outline-offset:2px}
.cc__sw input:disabled{cursor:not-allowed}
.cc__sw input:disabled+span{background:var(--accent);opacity:.55}
.cc-prefs{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
@media(max-width:520px){.cc{padding:.6rem}.cc__card{max-width:100%}.cc__actions{justify-content:stretch}.cc__actions .cc__btn{flex:1 1 auto;text-align:center}}
.foot__brand{display:block;width:100%;height:auto;margin:clamp(2rem,5vw,4rem) 0 0;user-select:none;pointer-events:none}
.foot__brand text{font-family:var(--serif);font-weight:600;font-size:200px;fill:rgba(251,250,246,.06)}
.foot__bottom{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding-top:1.5rem;border-top:1px solid rgba(251,250,246,.1);font-family:var(--mono);font-size:.72rem;color:rgba(251,250,246,.5)}
.foot__legal{display:flex;gap:1.2rem;flex-wrap:wrap}
.foot__legal a{color:rgba(251,250,246,.55);font-family:var(--mono);font-size:.72rem;transition:color .25s}
.foot__legal a:hover{color:var(--accent)}

/* ============================================================ LEGAL PAGES */
.legal{max-width:920px;margin:0 auto;padding:11rem var(--pad) clamp(3rem,7vw,5rem)}
.legal__head{border-bottom:1px solid var(--line);padding-bottom:clamp(1.4rem,3vw,2.2rem);margin-bottom:clamp(2rem,4vw,3rem)}
.legal__title{font-size:clamp(2.6rem,8vw,5.5rem);font-weight:500;line-height:.98;margin-top:1rem}
.legal__toc{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(2rem,4vw,3rem)}
.legal__toc a{font-family:var(--mono);font-size:.72rem;letter-spacing:.03em;color:var(--accent-2);border:1px solid var(--line);border-radius:100px;padding:.5em 1em;transition:background .3s,color .3s,border-color .3s}
.legal__toc a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.legal__data{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:clamp(1.4rem,3vw,2rem);margin-bottom:clamp(2rem,4vw,3rem);display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.6rem}
.legal__data dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-self:center}
.legal__data dd{color:var(--ink);font-size:.98rem}
.legal__data a{color:var(--accent-2)}
.legal__body h2{font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2.3rem);font-weight:500;letter-spacing:-.01em;margin:clamp(2.2rem,4vw,3rem) 0 1rem}
.legal__body h3{font-size:1.12rem;font-weight:600;color:var(--ink);margin:1.6rem 0 .5rem}
.legal__body p,.legal__body li{color:var(--slate);font-size:1.02rem;line-height:1.72;margin-bottom:1rem;max-width:72ch}
.legal__body ul{list-style:none;margin:0 0 1.2rem}
.legal__body li{position:relative;padding-left:1.3rem;margin-bottom:.5rem}
.legal__body li::before{content:"—";position:absolute;left:0;color:var(--accent)}
.legal__body a{color:var(--accent-2);border-bottom:1px solid rgba(78,123,123,.4)}
.legal__body a:hover{border-color:var(--accent-2)}
.legal__body strong{color:var(--ink);font-weight:600}
.legal__upd{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.ck-table-wrap{overflow-x:auto;margin:1rem 0 1.6rem;border:1px solid var(--line);border-radius:12px}
.ck-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:520px}
.ck-table th{text-align:left;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.85rem 1rem;background:var(--paper);border-bottom:1px solid var(--line)}
.ck-table td{padding:.85rem 1rem;border-bottom:1px solid var(--line);color:var(--slate);vertical-align:top}
.ck-table tr:last-child td{border-bottom:0}
.ck-table td:first-child{font-family:var(--mono);color:var(--ink);white-space:nowrap}
@media(max-width:700px){.legal__data{grid-template-columns:1fr;gap:.15rem}.legal__data dt{margin-top:.7rem}}

/* ============================================================ TREATMENT PAGES */
.btn--line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--line:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.tx__hero{max-width:var(--maxw);margin:0 auto;padding:10.5rem var(--pad) clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.tx__hero .eyebrow{margin-bottom:.4rem}
.tx__hero h1{font-family:var(--serif);font-size:clamp(2.5rem,6vw,4.6rem);font-weight:500;line-height:1.02;letter-spacing:-.015em;margin:.6rem 0 1.2rem}
.tx__lead{font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.5;color:var(--slate);max-width:42ch;margin-bottom:1.8rem}
.tx__hero-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.tx__hero-fig{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:var(--paper)}
.tx__hero-fig img{width:100%;height:100%;object-fit:cover}
.tx__body{max-width:760px;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--pad)}
.tx__body h2{font-family:var(--serif);font-size:clamp(1.6rem,3.4vw,2.5rem);font-weight:500;letter-spacing:-.01em;margin:clamp(2.2rem,4vw,3rem) 0 1rem}
.tx__body p{color:var(--slate);font-size:1.05rem;line-height:1.72;margin-bottom:1.1rem;max-width:70ch}
.tx__body .tx__intro{font-size:1.2rem;line-height:1.6;color:var(--ink)}
.tx__benefits{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(3rem,6vw,5rem) 0}
.tx__inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.tx__sec-head .eyebrow{color:var(--accent-2)}
.tx__sec-head h2{font-family:var(--serif);font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:500;margin:.6rem 0 0;letter-spacing:-.01em}
.tx__benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.3rem;margin-top:2rem}
.txcard{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:1.7rem}
.txcard h3{font-family:var(--serif);font-size:1.18rem;font-weight:500;color:var(--ink);margin-bottom:.5rem}
.txcard p{color:var(--slate);font-size:.95rem;line-height:1.55}
.tx__process{max-width:900px;margin:0 auto;padding:clamp(3rem,6vw,5rem) var(--pad)}
.tx__steps{margin-top:2rem;counter-reset:step}
.txstep{display:grid;grid-template-columns:2.6rem 1fr;gap:1.2rem;padding:1.5rem 0;border-top:1px solid var(--line)}
.txstep:last-child{border-bottom:1px solid var(--line)}
.txstep::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--mono);font-size:.9rem;color:var(--accent-2);padding-top:.2rem}
.txstep h3{font-size:1.15rem;font-weight:600;color:var(--ink);margin-bottom:.35rem}
.txstep p{color:var(--slate);font-size:1rem;line-height:1.6;max-width:60ch}
.tx__ba{max-width:var(--maxw);margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--pad)}
.tx__ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.6rem}
.tx__ba-fig{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
.tx__ba-fig img{width:100%;height:100%;object-fit:cover}
.tx__ba-fig span{position:absolute;top:.7rem;left:.7rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(34,48,58,.82);color:#fff;padding:.4em .8em;border-radius:100px}
.tx__ba-note{font-family:var(--mono);font-size:.72rem;color:var(--muted);margin-top:1rem;text-align:center}
.tx__faq{max-width:820px;margin:0 auto;padding:clamp(3rem,6vw,5rem) var(--pad)}
.txfaq{border-top:1px solid var(--line)}
.txfaq:last-of-type{border-bottom:1px solid var(--line)}
.txfaq summary{list-style:none;cursor:pointer;padding:1.3rem 2.4rem 1.3rem 0;position:relative;font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.25rem);color:var(--ink)}
.txfaq summary::-webkit-details-marker{display:none}
.txfaq summary::after{content:"+";position:absolute;right:.2rem;top:1.15rem;font-family:var(--mono);font-size:1.4rem;color:var(--accent-2);transition:transform .3s var(--ease)}
.txfaq[open] summary::after{transform:rotate(45deg)}
.txfaq p{color:var(--slate);font-size:1rem;line-height:1.68;padding:0 0 1.4rem;max-width:72ch}
.tx__cta{background:var(--dark);color:var(--paper);text-align:center;padding:clamp(3.5rem,8vw,6rem) var(--pad)}
.tx__cta .eyebrow{color:var(--accent)}
.tx__cta h2{font-family:var(--serif);font-size:clamp(2rem,5vw,3.6rem);font-weight:500;color:var(--paper);margin:.6rem 0 1.6rem;line-height:1.05}
.tx__cta h2 em{color:var(--accent);font-style:italic}
.tx__cta-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.tx__more{max-width:var(--maxw);margin:0 auto;padding:clamp(2.5rem,5vw,4rem) var(--pad)}
.tx__more-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem}
.tx__more-links a{font-family:var(--mono);font-size:.75rem;letter-spacing:.02em;color:var(--accent-2);border:1px solid var(--line);border-radius:100px;padding:.6em 1.15em;transition:background .3s,color .3s,border-color .3s}
.tx__more-links a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tx__more-links a[aria-current="page"]{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}
@media(max-width:820px){.tx__hero{grid-template-columns:1fr;padding-top:8.5rem;gap:1.8rem}.tx__hero-fig{aspect-ratio:16/11}.tx__ba-grid{grid-template-columns:1fr}}
.faq{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vh,7rem) var(--pad)}
.faq__head{margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.faq__title{font-size:clamp(2rem,5vw,4rem);margin-top:1rem;max-width:20ch}
.faq__list{max-width:860px}

/* ============================================================ BLOG */
.blog{max-width:var(--maxw);margin:0 auto;padding:10.5rem var(--pad) clamp(3rem,6vw,5rem)}
.blog__head{max-width:760px;margin-bottom:clamp(2.5rem,5vw,4rem)}
.blog__title{font-family:var(--serif);font-size:clamp(2.6rem,6vw,4.6rem);font-weight:500;line-height:1.02;letter-spacing:-.015em;margin:.6rem 0 1rem}
.blog__lead{font-size:clamp(1.1rem,2vw,1.3rem);color:var(--slate);line-height:1.5;max-width:54ch}
.blog__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:clamp(1.5rem,3vw,2.4rem)}
a.pcard{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;color:inherit;transition:transform .4s var(--ease),box-shadow .4s}
a.pcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -28px rgba(34,48,58,.4)}
.pcard__fig{aspect-ratio:16/10;overflow:hidden;background:var(--bg)}
.pcard__fig img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
a.pcard:hover .pcard__fig img{transform:scale(1.05)}
.pcard__body{padding:1.5rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.pcard__cat{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2)}
.pcard__title{font-family:var(--serif);font-size:1.3rem;font-weight:500;line-height:1.22;color:var(--ink)}
.pcard__excerpt{font-size:.94rem;color:var(--slate);line-height:1.55;flex:1}
.pcard__meta{font-family:var(--mono);font-size:.71rem;color:var(--muted);margin-top:.3rem}
.article{padding-top:10.5rem}
.article__head{max-width:800px;margin:0 auto;padding:0 var(--pad)}
.article__cat{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2)}
.article__title{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:500;line-height:1.05;letter-spacing:-.015em;margin:.8rem 0 1.2rem}
.article__meta{display:flex;align-items:center;gap:.85rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article__avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.article__by{font-size:.9rem;color:var(--ink);font-weight:600;line-height:1.3}
.article__by span{display:block;font-family:var(--mono);font-size:.71rem;font-weight:400;color:var(--muted)}
.article__cover{max-width:1100px;margin:clamp(2rem,4vw,3rem) auto 0;padding:0 var(--pad)}
.article__cover img{width:100%;border-radius:14px;aspect-ratio:16/9;object-fit:cover;display:block}
.article__takeaways{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:12px;padding:1.6rem 1.8rem;margin:2rem 0}
.article__takeaways h2{font-family:var(--serif);font-size:1.25rem;font-weight:500;margin-bottom:.8rem}
.article__takeaways ul{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.article__takeaways li{position:relative;padding-left:1.5rem;color:var(--slate);font-size:1rem;line-height:1.5}
.article__takeaways li::before{content:"→";position:absolute;left:0;color:var(--accent-2)}
.article__author{display:flex;gap:1.2rem;align-items:flex-start;max-width:760px;margin:clamp(2rem,4vw,3rem) auto 0;padding:1.7rem var(--pad);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article__author img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.article__author-txt strong{font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--ink)}
.article__author-txt .r{display:block;font-family:var(--mono);font-size:.71rem;color:var(--accent-2);margin:.15rem 0 .5rem}
.article__author-txt p{font-size:.92rem;color:var(--slate);line-height:1.55;margin:0}
.article__back{max-width:760px;margin:1.6rem auto 0;padding:0 var(--pad)}
.article__back a{font-family:var(--mono);font-size:.8rem;color:var(--accent-2)}
@media(max-width:600px){.pcard__fig,.article__cover img{aspect-ratio:16/9}}

/* ============================================================ reveal states (gated on JS) */
.js .reveal{opacity:0;transform:translateY(28px)}
.js .split{visibility:hidden}
.js .reveal-clip{clip-path:inset(0 0 100% 0)}
.split .line{overflow:hidden;display:block}
.split .word{will-change:transform}

/* ============================================================ RESPONSIVE */
@media(max-width:960px){
  .hdr__nav{display:none}
  .burger{display:flex}
  .hdr .btn--sm{display:none}
  .hdr__logo img{height:42px}
  .hero__grid{grid-template-columns:1fr;gap:1.2rem}
  .manifesto__cols{grid-template-columns:1fr;gap:2rem}
  .frow{grid-template-columns:1fr;gap:1.2rem}
  .frow--rev .frow__media{order:0}
  .method__grid{grid-template-columns:1fr 1fr}
  .team__grid{grid-template-columns:1fr 1fr}
  .cases__grid{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr;gap:2rem}
}
@media(max-width:680px){
  .tb__hide{display:none}
  .topbar{font-size:.72rem;gap:.7rem}
}
@media(max-width:520px){
  .method__grid{grid-template-columns:1fr}
  .manifesto__stats{grid-template-columns:1fr}
  .foot__info{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.001ms!important}
  .js .reveal,.js .reveal-clip{opacity:1;transform:none;clip-path:none}
  .js .split{visibility:visible}
  .loader{display:none}
}
