/* Case studies page — builds on v2.css tokens/components */
html{scroll-behavior:auto}
[id^="cs-"],.cat{scroll-margin-top:150px}
.nav__links a[aria-current=page]::after{transform:scaleX(1)}

/* hero */
.csh{position:relative;background:var(--forest-deep);color:var(--ivory);padding:clamp(150px,20vw,260px) 0 clamp(80px,10vw,150px);overflow:hidden}
.csh__glow{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5}
.csh__glow--a{width:46vw;height:46vw;right:-10vw;top:-14vw;background:radial-gradient(circle,var(--herb),transparent 68%)}
.csh__glow--b{width:34vw;height:34vw;left:-8vw;bottom:-14vw;background:radial-gradient(circle,var(--gold),transparent 66%);opacity:.32}
.csh__in{position:relative;z-index:1}
.csh__title{font-size:clamp(3rem,9.6vw,10rem);line-height:.92;letter-spacing:-.03em;margin:.2em 0 .45em}
.csh__title .line{display:block;overflow:hidden;padding-bottom:.08em}.csh__title .line>span{display:block}
.csh__title em{color:var(--gold-bright)}
.csh__sub{max-width:36em;font-size:clamp(1.05rem,1.6vw,1.4rem);color:rgba(247,243,232,.78)}
.csh__sub strong{color:var(--ivory)}

/* sticky category bar */
.csnav{position:sticky;top:84px;z-index:80;display:flex;justify-content:center;gap:.4rem;width:max-content;max-width:calc(100% - 24px);margin:-30px auto 0;padding:.4rem;border-radius:999px;background:rgba(247,243,232,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 12px 34px -12px rgba(16,32,26,.5);border:1px solid rgba(28,43,33,.08);overflow-x:auto;scrollbar-width:none}
.csnav::-webkit-scrollbar{display:none}
.csnav a{display:flex;align-items:baseline;gap:.5em;padding:.6em 1.2em;border-radius:999px;font-size:.85rem;font-weight:600;white-space:nowrap;transition:background .4s,color .4s}
.csnav a b{font:600 .66rem var(--body);letter-spacing:.18em;color:var(--gold)}
.csnav a:hover{background:rgba(28,43,33,.08)}
.csnav a.on{background:var(--forest);color:var(--ivory)}.csnav a.on b{color:var(--gold-bright)}

/* category sections */
.cat{position:relative;background:var(--bg);color:var(--ink);padding:clamp(80px,10vw,150px) 0 clamp(70px,9vw,130px);border-radius:var(--r) var(--r) 0 0;margin-top:calc(var(--r)*-1)}
.csnav+.cat{margin-top:0;border-radius:0}
.cat[data-theme=ivory]{--bg:var(--ivory-soft);--ink:var(--forest);--mute:rgba(28,43,33,.72);--line:rgba(28,43,33,.22);--acc:var(--herb)}
.cat[data-theme=gold]{--bg:var(--gold-bright);--ink:var(--forest);--mute:rgba(28,43,33,.78);--line:rgba(28,43,33,.28);--acc:var(--forest)}
.cat[data-theme=sage]{--bg:var(--sage);--ink:var(--forest);--mute:rgba(28,43,33,.74);--line:rgba(28,43,33,.26);--acc:var(--forest)}
.cat[data-theme=rosso]{--bg:var(--rosso);--ink:var(--ivory);--mute:rgba(247,243,232,.86);--line:rgba(247,243,232,.4);--acc:var(--gold-bright)}
.cat[data-theme=forest]{--bg:var(--forest);--ink:var(--ivory);--mute:rgba(247,243,232,.76);--line:rgba(247,243,232,.22);--acc:var(--gold-bright)}
.cat .eyebrow{color:var(--ink);opacity:.75}
.cat h2{font-size:clamp(2.8rem,7.4vw,7.6rem)}
.cat h2 em{color:var(--acc)}
.cat__head{display:grid;grid-template-columns:auto 1fr;gap:clamp(1rem,4vw,4rem);align-items:start;margin-bottom:clamp(50px,7vw,100px)}
.cat__num{font:400 clamp(6rem,17vw,17rem)/.8 var(--head);color:transparent;-webkit-text-stroke:2px var(--ink);opacity:.55}
.cat__blurb{margin-top:1.4rem;max-width:34em;font-size:clamp(1.05rem,1.5vw,1.3rem);color:var(--mute)}
.lbl{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.1rem;opacity:.8}

/* a case */
.case{padding:clamp(34px,5vw,64px) 0;border-top:1.5px solid var(--ink)}
.case+.case{margin-top:clamp(20px,3vw,40px)}
.case__tags{font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;opacity:.75;margin-bottom:1rem;display:flex;align-items:center;gap:.6em}
.case__title{font-size:clamp(2rem,4.4vw,4.4rem);line-height:1.02;max-width:17em;margin-bottom:1.4rem}
.case__problem{max-width:44em;font-size:clamp(1.02rem,1.4vw,1.25rem);color:var(--mute);margin-bottom:clamp(32px,4vw,56px)}
.case__cols{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,5vw,6rem);align-items:start}
.appr{list-style:none;counter-reset:a;display:grid;gap:1.1rem}
.appr li{counter-increment:a;display:grid;grid-template-columns:2.4rem 1fr;column-gap:.4rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line)}
.appr li::before{content:counter(a,decimal-leading-zero);grid-row:1/3;font:600 .72rem var(--body);letter-spacing:.14em;padding-top:.35rem;color:var(--acc)}
.appr b{font:400 1.35rem/1.15 var(--head);margin-bottom:.2rem}
.appr span{color:var(--mute);font-size:.97rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-radius:26px;overflow:hidden}
.stats--5{grid-template-columns:repeat(5,1fr)}
.stat{background:var(--bg);padding:clamp(1.1rem,2vw,1.8rem)}
.stat b{display:block;font:400 clamp(2.3rem,4.6vw,4.8rem)/1 var(--head);letter-spacing:-.02em;margin-bottom:.5rem;font-variant-numeric:lining-nums}
.stat small{display:block;font-size:.84rem;line-height:1.35;color:var(--mute)}
.case__close{margin-top:clamp(28px,4vw,50px);max-width:30em;font:italic clamp(1.4rem,2.4vw,2.2rem)/1.25 var(--head)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,5rem);margin-top:clamp(30px,4vw,50px);padding-top:clamp(24px,3vw,40px);border-top:1px solid var(--line)}
.tick{list-style:none;display:grid;gap:.6rem}
.tick li{padding-left:1.4rem;position:relative;color:var(--mute)}
.tick li::before{content:"◆";position:absolute;left:0;top:.2em;font-size:.6rem;color:var(--acc)}
.tick b{color:var(--ink);font-weight:700}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:1rem}
.steps li{padding:1.2rem 1.2rem 1.4rem;border-radius:22px;border:1.5px solid var(--line);display:grid;gap:.5rem}
.steps b{font:400 1.45rem/1.1 var(--head);color:var(--acc)}.steps span{color:var(--mute);font-size:.94rem}

/* compact stories */
.minis{margin-top:clamp(40px,6vw,80px)}
.minis__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.1rem}
.mini{padding:clamp(1.3rem,2vw,2rem);border-radius:26px;border:1.5px solid var(--line);display:flex;flex-direction:column;gap:.8rem;transition:transform .6s var(--out),border-color .4s,background .4s}
.mini:hover{transform:translateY(-6px);border-color:var(--ink)}
.mini h4{font:400 clamp(1.5rem,2.2vw,2.1rem)/1.08 var(--head)}
.mini>p:not(.case__tags){color:var(--mute);font-size:.96rem}
.mini ul{list-style:none;margin-top:auto;display:grid;gap:.5rem;padding-top:.8rem;border-top:1px solid var(--line)}
.mini li{font-size:.94rem;padding-left:1.2rem;position:relative}
.mini li::before{content:"◆";position:absolute;left:0;top:.28em;font-size:.55rem;color:var(--acc)}
.mini li b{font-weight:700}
.mini--lab .dot{width:8px;height:8px;border-radius:50%;background:#7bd88f;box-shadow:0 0 10px #7bd88f}
.link{margin-top:auto;font-weight:700;color:var(--acc);padding-top:.6rem}
.link:hover{text-decoration:underline;text-underline-offset:4px}

/* closing */
.next{background:var(--ivory);padding:clamp(90px,12vw,170px) 0;border-radius:var(--r) var(--r) 0 0;margin-top:calc(var(--r)*-1);position:relative}
.next h2{font-size:clamp(2.4rem,6vw,6rem);max-width:15em}
.next h2 em{color:var(--rosso)}
.next__lede{margin:1.6rem 0 2.2rem;font-size:1.15rem;max-width:30em}
.next__act{display:flex;gap:.8rem;flex-wrap:wrap}
.btn--ghost2{border:1.5px solid var(--forest);color:var(--forest);--fill:var(--forest)}
.btn--ghost2:hover{color:var(--ivory)}

@media(max-width:900px){
  .case__cols,.split{grid-template-columns:1fr}
  .stats--5{grid-template-columns:1fr 1fr}.stats--5 .stat:last-child{grid-column:1/-1}
  .steps{grid-template-columns:1fr 1fr}
  .cat__head{grid-template-columns:1fr}.cat__num{font-size:7rem}
}
@media(max-width:560px){.steps{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.csh__title .line>span{transform:none!important}}
.stats .stat:last-child:nth-child(odd){grid-column:1/-1}
.stats--5 .stat:last-child:nth-child(odd){grid-column:auto}
@media(max-width:900px){.stats--5 .stat:last-child{grid-column:1/-1}}
