/* Halden Partners — design tokens */
:root{
  --ink:#0D1B2A; --ink-2:#14273B; --ink-3:#1D3550; --paper:#F5F3EE; --white:#FFFFFF; --line:#DDD8CC; --line-dark:rgba(255,255,255,.12);
  --text:#16202B; --muted:#5B6472; --muted-dark:#9AA5B4; --accent:#C2410C; --accent-bright:#FF7A45; --teal:#1F5F5B;
  --serif:"Instrument Serif", Georgia, serif; --sans:"Inter Tight", system-ui, sans-serif;
  --r:14px; --ease:cubic-bezier(.2,.75,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{margin:0 0 .5em;font-weight:600;letter-spacing:-.025em;line-height:1.08}
h1{font-size:clamp(2.8rem,5.6vw,5rem);letter-spacing:-.035em}
h2{font-size:clamp(2.2rem,4vw,3.5rem)}
h3{font-size:1.25rem;letter-spacing:-.01em;line-height:1.3}
h1 em,h2 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.01em;color:var(--accent)}
p{margin:0 0 1em}
.container{width:min(1240px,100% - 48px);margin-inline:auto}
.section{padding:clamp(88px,10vw,140px) 0}
.skip{position:absolute;top:-60px;left:12px;background:var(--ink);color:#fff;padding:10px 14px;z-index:200}
.skip:focus{top:10px}
:focus-visible{outline:2.5px solid var(--accent-bright);outline-offset:3px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border-radius:999px;font:600 .95rem/1 var(--sans);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .3s;white-space:nowrap}
.btn--lg{padding:17px 28px;font-size:1rem}
.btn--block{width:100%}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{background:var(--ink-3)}
.btn--accent{background:var(--accent);color:#fff;box-shadow:0 10px 24px -12px rgba(194,65,12,.7)}
.btn--accent:hover{background:#A9380A;transform:translateY(-2px)}
.btn--line{border-color:currentColor;color:var(--ink)}
.btn--line:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(245,243,238,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.is-scrolled{border-color:var(--line)}
.nav__inner{display:flex;align-items:center;gap:40px;height:76px}
.logo{display:inline-flex;align-items:center;gap:11px;font-weight:700;font-size:1.12rem;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
.logo__mark{width:34px;height:34px;border-radius:9px;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-size:1.05rem;position:relative}
.logo__mark i{position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background:var(--accent-bright);border:2px solid var(--paper)}
.logo--light{color:#fff}.logo--light .logo__mark{background:#fff;color:var(--ink)}.logo--light .logo__mark i{border-color:var(--ink)}
.nav nav{margin-left:auto}
.nav__links{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.nav__links a:not(.btn){text-decoration:none;font-weight:500;font-size:.95rem;color:var(--muted);transition:color .2s}
.nav__links a:not(.btn):hover{color:var(--ink)}
.nav__mcta{display:none}
.nav__toggle{display:none;width:44px;height:44px;border:0;background:none;position:relative;cursor:pointer;margin-left:auto}
.nav__toggle span{position:absolute;left:12px;right:12px;height:2px;background:var(--ink);transition:.3s}
.nav__toggle span:first-child{top:18px}.nav__toggle span:last-child{top:25px}
.nav__toggle[aria-expanded="true"] span:first-child{top:21px;transform:rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:last-child{top:21px;transform:rotate(-45deg)}

/* hero */
.hero{padding:64px 0 0;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;opacity:.45;mask-image:radial-gradient(ellipse at 70% 20%,#000 0%,transparent 60%);-webkit-mask-image:radial-gradient(ellipse at 70% 20%,#000 0%,transparent 60%);pointer-events:none}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:center;position:relative}
.pill{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--white);font-size:.85rem;font-weight:500;color:var(--muted)}
.pill__dot{width:8px;height:8px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 4px rgba(22,163,74,.15);animation:blink 2s infinite}
@keyframes blink{50%{box-shadow:0 0 0 7px rgba(22,163,74,0)}}
.hero h1{margin:26px 0 24px}
.hero h1 em{display:block}
.hero__lead{font-size:1.18rem;color:var(--muted);max-width:560px}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 48px}
.hero__stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:48px;margin:0;padding-top:28px;border-top:1px solid var(--line)}
.hero__stats dt{font-size:.82rem;color:var(--muted);order:2}
.hero__stats div{display:flex;flex-direction:column}
.hero__stats dd{margin:0;font-size:2.2rem;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.1}
.hero__visual{position:relative}
.hero__visual>img{border-radius:22px;aspect-ratio:5/6;object-fit:cover;width:100%;filter:saturate(.9)}
.metric{position:absolute;background:var(--white);border-radius:16px;box-shadow:0 24px 50px -24px rgba(13,27,42,.45);padding:16px 18px}
.metric--a{left:-56px;bottom:72px;width:230px}
.metric__label{display:block;font-size:.76rem;color:var(--muted);font-weight:500}
.metric--a strong{display:block;font-size:1.7rem;letter-spacing:-.03em;color:var(--ink);margin:2px 0 6px}
.metric--a svg{width:100%;height:44px;display:block}
.metric--a path:first-child{stroke-dasharray:220;stroke-dashoffset:220;animation:line 2s .6s var(--ease) forwards}
@keyframes line{to{stroke-dashoffset:0}}
.metric--b{top:40px;right:-28px;display:flex;gap:12px;align-items:center;font-size:.82rem;color:var(--muted)}
.metric--b strong{display:block;color:var(--ink);font-size:.95rem}
.metric__icon{width:36px;height:36px;border-radius:50%;background:#DCFCE7;display:grid;place-items:center;flex:none}
.metric__icon svg{width:18px;height:18px;fill:none;stroke:#15803D;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.logos{margin-top:88px;padding:34px 0 40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.4)}
.logos__title{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:600;margin-bottom:22px}
.logos__track{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.logos__list{display:flex;gap:72px;list-style:none;margin:0;padding:0;width:max-content;animation:marquee 40s linear infinite}
.logos__list li{flex:none;color:#4A5563;opacity:.85}
.logos__list svg{height:34px;width:auto;display:block}
.logos__track:hover .logos__list{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* section heads */
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:20px 64px;align-items:end;margin-bottom:64px}
.sec-head .kicker{grid-column:1/-1}
.sec-head h2{margin:0}
.sec-head__aside{color:var(--muted);margin:0;max-width:440px;justify-self:end}
.kicker{font-size:.82rem;font-weight:600;letter-spacing:.06em;color:var(--accent);margin:0;text-transform:uppercase}
.kicker--light{color:var(--accent-bright)}
.sec-head--light h2{color:#fff}
.sec-head--light .sec-head__aside{color:var(--muted-dark)}
.sec-head--light .kicker{color:var(--accent-bright)}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.svc{padding:40px 36px 36px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;transition:background .35s;position:relative}
.svc:hover{background:var(--white)}
.svc::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--accent);transition:width .45s var(--ease)}
.svc:hover::after{width:100%}
.svc__icon{width:48px;height:48px;border-radius:12px;background:var(--ink);display:grid;place-items:center;margin-bottom:28px}
.svc__icon svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svc p{color:var(--muted);font-size:.98rem}
.svc__out{margin:22px 0 0;padding-top:18px;border-top:1px dashed var(--line);font-size:.88rem!important}
.svc__out strong{color:var(--teal)}

/* approach */
.approach{background:var(--ink);color:#C9D1DB}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:var(--line-dark)}
.step{position:relative;padding-top:0}
.step__n{width:56px;height:56px;border-radius:50%;background:var(--ink);border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;font-weight:600;color:#fff;position:relative;margin-bottom:28px;transition:background .3s,border-color .3s}
.step:hover .step__n{background:var(--accent);border-color:var(--accent)}
.step__time{display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-bright);margin-bottom:8px}
.step h3{color:#fff;font-size:1.6rem}
.step p{font-size:.96rem;color:var(--muted-dark);padding-right:12px}

/* work */
.case--feature{display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:var(--white);border-radius:24px;overflow:hidden;border:1px solid var(--line);margin-bottom:28px}
.case__img{display:block;overflow:hidden}
.case__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.case:hover .case__img img{transform:scale(1.04)}
.case--feature .case__body{padding:52px 52px 48px;display:flex;flex-direction:column}
.case__meta{font-size:.85rem;font-weight:500;color:var(--muted);margin-bottom:14px}
.case--feature h3{font-size:clamp(1.6rem,2.3vw,2.1rem);letter-spacing:-.025em;line-height:1.15}
.case--feature h3 a{text-decoration:none}
.case--feature h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.case--feature .case__body>p:not(.case__meta){color:var(--muted)}
.kpis{list-style:none;padding:24px 0 0;margin:auto 0 28px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--line)}
.kpis strong{display:block;font-size:2rem;letter-spacing:-.035em;color:var(--accent);line-height:1.1;white-space:nowrap}
.kpis span{font-size:.85rem;color:var(--muted)}
.kpis--sm{grid-template-columns:repeat(2,1fr);margin:18px 0 0}
.kpis--sm strong{font-size:1.6rem}
.arrow-link{font-weight:600;text-decoration:none;display:inline-flex;gap:8px;align-items:center;color:var(--ink);align-self:flex-start;border-bottom:2px solid var(--accent);padding-bottom:3px}
.arrow-link span{transition:transform .3s}
.arrow-link:hover span{transform:translateX(5px)}
.cases{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cases .case{background:var(--white);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.cases .case__img{aspect-ratio:16/9}
.cases .case__body{padding:30px 32px 34px}
.cases h3{font-size:1.35rem}

/* quote */
.quote-band{background:var(--teal);color:#fff;padding:clamp(80px,9vw,120px) 0}
.quote-band__inner{max-width:980px}
.quote-band blockquote{margin:0 0 36px;font:400 clamp(1.8rem,3.2vw,2.75rem)/1.25 var(--serif);letter-spacing:-.01em}
.quote-band__who{display:flex;align-items:center;gap:16px}
.quote-band__who img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.4)}
.quote-band__who p{margin:0;font-size:.92rem;color:#CFE3E0}
.quote-band__who strong{display:block;color:#fff;font-size:1rem}

/* team */
.people{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.person__img{border-radius:18px;overflow:hidden;margin-bottom:20px;aspect-ratio:5/6;background:#E7E3D9}
.person__img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .8s var(--ease)}
.person:hover .person__img img{filter:none;transform:scale(1.03)}
.person h3{margin:0 0 2px}
.person__role{color:var(--accent);font-weight:600;font-size:.9rem;margin-bottom:10px}
.person p:last-child{color:var(--muted);font-size:.94rem}

/* engagements */
.engage{background:#ECE8DF}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.plan{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:38px 34px;display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s}
.plan:hover{transform:translateY(-6px);box-shadow:0 30px 60px -36px rgba(13,27,42,.5)}
.plan__name{font-weight:600;font-size:1.05rem;margin-bottom:18px}
.plan__price{font-size:2.6rem;font-weight:600;letter-spacing:-.04em;line-height:1;margin-bottom:8px;color:var(--ink)}
.plan__price span{font-size:.95rem;font-weight:500;letter-spacing:0;color:var(--muted)}
.plan__time{font-size:.9rem;color:var(--muted);padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:22px}
.plan ul{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:10px;font-size:.96rem}
.plan li{padding-left:28px;position:relative}
.plan li::before{content:"";position:absolute;left:0;top:.35em;width:16px;height:16px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/16px}
.plan .btn{margin-top:auto}
.plan--dark{background:var(--ink);color:#D5DCE4;border-color:var(--ink)}
.plan--dark .plan__price{color:#fff}
.plan--dark .plan__price span,.plan--dark .plan__time{color:var(--muted-dark)}
.plan--dark .plan__time{border-color:var(--line-dark)}
.plan--dark .plan__name{color:#fff}

/* contact */
.contact{background:var(--ink);color:#C9D1DB}
.contact__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.contact h2{color:#fff;margin:18px 0 22px}
.contact h2 em{color:var(--accent-bright)}
.contact__list{list-style:none;padding:0;margin:40px 0 0;display:grid;gap:0}
.contact__list li{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line-dark)}
.contact__list span{color:var(--muted-dark);font-size:.88rem}
.contact__list a{color:#fff;text-decoration:none}
.contact__list a:hover{color:var(--accent-bright)}
.cform{background:var(--white);color:var(--text);border-radius:24px;padding:40px;position:relative;box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld{margin-bottom:16px}
.fld label,.chips legend{display:block;font-size:.85rem;font-weight:600;margin-bottom:7px}
.fld input,.fld select,.fld textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.96rem;background:#FBFAF7;color:var(--text);transition:border-color .2s,box-shadow .2s,background .2s}
.fld textarea{resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--ink);background:#fff;box-shadow:0 0 0 4px rgba(13,27,42,.08)}
.fld [aria-invalid="true"]{border-color:#B91C1C;background:#FEF6F6}
.fld__err{color:#B91C1C;font-size:.8rem;font-weight:500;margin:6px 0 0}
.fld__err:empty{display:none}
.chips{border:0;padding:0;margin:4px 0 18px;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{margin-bottom:10px;padding:0}
.chips input{position:absolute;opacity:0}
.chips span{display:inline-block;padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;font-size:.88rem;font-weight:500;cursor:pointer;transition:all .2s;user-select:none}
.chips label:hover span{border-color:var(--ink)}
.chips input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.chips input:focus-visible+span{outline:2.5px solid var(--accent-bright);outline-offset:2px}
.cform__fine{text-align:center;font-size:.82rem;color:var(--muted);margin:12px 0 0}
.cform__ok{position:absolute;inset:0;background:var(--white);border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;animation:pop .5s var(--ease)}
.cform__ok[hidden]{display:none}
@keyframes pop{from{opacity:0;transform:scale(.97)}}
.ok-badge{width:64px;height:64px;border-radius:50%;background:#DCFCE7;color:#15803D;display:grid;place-items:center;font-size:1.8rem;font-weight:700;margin-bottom:18px}
.cform__ok p{color:var(--muted);max-width:400px}

/* footer */
.footer{background:#08131F;color:#8D99A8;padding:72px 0 28px;font-size:.92rem}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.footer__blurb{margin-top:18px;max-width:300px}
.footer h4{color:#fff;font-size:.85rem;margin:6px 0 16px;font-weight:600}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.footer a{text-decoration:none}
.footer a:hover{color:#fff}
.footer__base{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(255,255,255,.08);margin-top:56px;padding-top:24px;font-size:.82rem}
.footer__base p{margin:0}

/* ===== case study page ===== */
.cs-hero{padding:56px 0 0}
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:34px}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--ink)}
.cs-hero h1{font-size:clamp(2.4rem,5vw,4.3rem);max-width:1000px}
.cs-hero__lead{font-size:1.2rem;color:var(--muted);max-width:720px}
.cs-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:48px 0 56px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cs-facts dt{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.cs-facts dd{margin:6px 0 0;font-weight:500}
.cs-cover{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:21/9}
.cs-cover img{width:100%;height:100%;object-fit:cover}
.cs-results{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:-64px;position:relative;padding:0 32px}
.cs-result{background:var(--white);border-radius:18px;padding:26px 24px;box-shadow:0 24px 50px -30px rgba(13,27,42,.45);border:1px solid var(--line)}
.cs-result strong{display:block;font-size:2.4rem;letter-spacing:-.04em;line-height:1.05;color:var(--accent)}
.cs-result span{font-size:.9rem;color:var(--muted)}
.cs-body{display:grid;grid-template-columns:260px 1fr;gap:80px;align-items:start}
.cs-toc{position:sticky;top:110px;font-size:.92rem}
.cs-toc p{font-weight:600;margin-bottom:12px}
.cs-toc ol{list-style:none;padding:0;margin:0;display:grid;gap:4px;border-left:2px solid var(--line)}
.cs-toc a{display:block;padding:6px 0 6px 16px;margin-left:-2px;text-decoration:none;color:var(--muted);border-left:2px solid transparent;transition:color .2s,border-color .2s}
.cs-toc a:hover,.cs-toc a.is-active{color:var(--ink);border-color:var(--accent)}
.cs-content h2{font-size:clamp(1.8rem,3vw,2.5rem);margin-top:0}
.cs-content section{padding-bottom:64px;margin-bottom:64px;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.cs-content section:last-child{border:0;margin:0;padding:0}
.cs-content p{color:#3A4553;font-size:1.06rem;max-width:720px}
.cs-content p.kicker{color:var(--accent);font-size:.82rem;margin-bottom:12px}
.pain{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pain li{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px 22px;font-size:.96rem;color:var(--muted)}
.pain strong{display:block;color:var(--ink);margin-bottom:4px}
.phases{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:16px;counter-reset:ph}
.phase{display:grid;grid-template-columns:56px 1fr;gap:20px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:24px}
.phase__n{width:56px;height:56px;border-radius:14px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:600}
.phase h3{margin-bottom:4px}
.phase p{margin:0;font-size:.98rem!important;color:var(--muted)!important}
.phase__tag{display:inline-block;font-size:.76rem;font-weight:600;color:var(--teal);background:#E2EFED;padding:3px 10px;border-radius:999px;margin-bottom:8px}
.chart{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:32px;margin-top:28px}
.chart__title{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-weight:600;margin-bottom:26px}
.legend{display:flex;gap:18px;font-size:.85rem;font-weight:500;color:var(--muted)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.bars{display:grid;gap:18px}
.bar-row{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;font-size:.92rem}
.bar-row__bars{display:grid;gap:5px}
.bar{height:16px;border-radius:5px;width:var(--w);position:relative;transform-origin:left;animation:grow 1.2s var(--ease) both}
.bar--before{background:#CBD2DA}
.bar--after{background:var(--accent)}
.bar span{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);font-size:.8rem;font-weight:600;white-space:nowrap;color:var(--ink)}
@keyframes grow{from{transform:scaleX(0)}}
.cs-quote{margin:28px 0 0;padding:32px 36px;border-left:4px solid var(--accent);background:var(--white);border-radius:0 18px 18px 0}
.cs-quote blockquote{margin:0 0 16px;font:400 1.6rem/1.35 var(--serif);color:var(--ink)}
.cs-quote figcaption{font-size:.9rem;color:var(--muted)}
.cs-next{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cs-next a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:18px;padding:28px;background:var(--white);transition:border-color .3s,transform .3s}
.cs-next a:hover{border-color:var(--ink);transform:translateY(-4px)}
.cs-next small{color:var(--muted);font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.cs-next strong{display:block;font-size:1.25rem;margin-top:8px;letter-spacing:-.01em}
.cs-cta{background:var(--ink);color:#C9D1DB;border-radius:28px;padding:64px;display:flex;justify-content:space-between;align-items:center;gap:40px}
.cs-cta h2{color:#fff;margin:0 0 8px}
.cs-cta h2 em{color:var(--accent-bright)}
.cs-cta p{margin:0}

/* reveal */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}html{scroll-behavior:auto}}

@media (max-width:1100px){
  .hero__grid{grid-template-columns:1fr 1fr;gap:48px}
  .metric--a{left:-24px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;gap:40px 24px}.steps::before{display:none}
  .people{grid-template-columns:1fr 1fr}
  .plans{grid-template-columns:1fr}
  .plan--dark{order:-1}
  .cs-results{grid-template-columns:1fr 1fr;padding:0 16px}
  .cs-body{grid-template-columns:1fr;gap:32px}
  .cs-toc{display:none}
}
@media (max-width:900px){
  .nav__links{position:fixed;top:76px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);padding:8px 24px 24px;border-bottom:1px solid var(--line);transform:translateY(-10px);opacity:0;visibility:hidden;transition:all .3s var(--ease);box-shadow:0 30px 40px -30px rgba(0,0,0,.3)}
  .nav__links.is-open{transform:none;opacity:1;visibility:visible}
  .nav__links a:not(.btn){display:block;padding:15px 0;border-bottom:1px solid var(--line);font-size:1.1rem;color:var(--ink)}
  .nav__mcta{display:block;margin-top:16px}.nav__mcta .btn{width:100%}
  .nav__cta{display:none}
  .nav__toggle{display:block}
  .hero__grid,.contact__grid{grid-template-columns:1fr}
  .hero__visual{max-width:520px}
  .sec-head{grid-template-columns:1fr}
  .sec-head__aside{justify-self:start}
  .case--feature{grid-template-columns:1fr}
  .case--feature .case__img{aspect-ratio:16/10}
  .cases{grid-template-columns:1fr}
  .cs-facts{grid-template-columns:1fr 1fr}
  .cs-cta{flex-direction:column;align-items:flex-start;padding:44px 32px}
}
@media (max-width:600px){
  body{font-size:16px}
  .container{width:calc(100% - 36px)}
  .hero{padding-top:36px}
  .hero__lead{font-size:1.06rem}
  .hero__actions .btn{width:100%}
  .hero__stats{grid-template-columns:repeat(3,1fr);gap:16px}
  .hero__stats dd{font-size:1.6rem}
  .hero__stats dt{font-size:.74rem;line-height:1.3}
  .metric--a{left:12px;bottom:16px;width:200px;padding:12px 14px}
  .metric--a strong{font-size:1.35rem}
  .metric--b{right:12px;top:16px;padding:10px 12px}
  .logos{margin-top:64px}
  .logos__list{gap:48px}
  .svc-grid{grid-template-columns:1fr}
  .svc{padding:32px 24px}
  .steps{grid-template-columns:1fr}
  .people{grid-template-columns:1fr 1fr;gap:28px 14px}
  .person__img{margin-bottom:12px;border-radius:14px}
  .person h3{font-size:1.02rem}
  .person__role{font-size:.8rem;margin-bottom:6px}
  .person p:last-child{font-size:.84rem}
  .case--feature .case__body{padding:30px 24px}
  .kpis{grid-template-columns:1fr 1fr 1fr;gap:10px}
  .kpis strong{font-size:1.45rem}
  .cform{padding:26px 20px}
  .cform__row{grid-template-columns:1fr;gap:0}
  .contact__list li{grid-template-columns:1fr;gap:2px}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__grid>div:first-child{grid-column:1/-1}
  .footer__base{flex-direction:column}
  .cs-facts{grid-template-columns:1fr 1fr;gap:18px}
  .cs-cover{aspect-ratio:4/3}
  .cs-results{grid-template-columns:1fr 1fr;padding:0 10px;gap:12px;margin-top:-40px}
  .cs-result{padding:18px 16px}
  .cs-result strong{font-size:1.7rem}
  .pain,.cs-next{grid-template-columns:1fr}
  .phase{grid-template-columns:1fr;gap:14px}
  .bar-row{grid-template-columns:1fr;gap:6px}
  .chart{padding:22px 18px}
  .bar{max-width:78%}
}

/* tabbar:start — mobile bottom navigation (≤768px); desktop unchanged */
.tabbar{display:none}
@media (max-width:768px){
  :root{--tb-space:64px}
  .tabbar{display:block;position:fixed;z-index:55;font-family:var(--sans);-webkit-tap-highlight-color:transparent;
    transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .35s,visibility 0s}
  .tabbar ul{display:flex;list-style:none;margin:0;padding:0}
  .tabbar li{flex:1 1 0;min-width:0;display:flex}
  .tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;min-width:44px;padding:6px 2px;
    background:none;border:0;margin:0;font:inherit;font-size:11px;font-weight:600;line-height:1.1;letter-spacing:.01em;text-decoration:none;color:inherit;cursor:pointer;position:relative;border-radius:14px}
  .tabbar__ic{position:relative;display:grid;place-items:center}
  .tabbar__ic svg{width:22px;height:22px}
  .tabbar__lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .tabbar__badge{position:absolute;top:-6px;left:calc(50% + 5px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:grid;place-items:center;font-size:10.5px;font-weight:800;line-height:1;font-style:normal}
  .tabbar__item:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
  .tabbar.is-hidden,
  html:has(dialog[open]) .tabbar,
  html:has([aria-modal="true"]:not([hidden])) .tabbar,
  html:has(.nav__toggle[aria-expanded="true"]) .tabbar{transform:translateY(calc(100% + 40px));opacity:0;visibility:hidden;transition:transform .3s,opacity .3s,visibility 0s .3s}
  body:has(.tabbar) footer.footer{padding-bottom:calc(28px + var(--tb-space) + env(safe-area-inset-bottom,0px))}
}
@media (max-width:768px) and (prefers-reduced-motion:reduce){.tabbar,.tabbar *{transition:none!important}}

@media (max-width:768px){
  .tabbar--flat{left:0;right:0;bottom:0;background:#fff;color:var(--muted);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 30px -18px rgba(0,0,0,.35)}
  .tabbar--flat .tabbar__item{border-radius:12px}
  .tabbar--flat .tabbar__item.is-active{color:var(--ink);font-weight:700}
}
@media (max-width:768px){
  .tabbar--flat .tabbar__item::before{content:"";position:absolute;top:-4px;left:50%;width:0;height:3px;border-radius:0 0 3px 3px;background:var(--accent);transform:translateX(-50%);transition:width .3s}
  .tabbar--flat .tabbar__item.is-active::before{width:30px}
  .tabbar--flat .tabbar__item.is-active .tabbar__ic{color:var(--accent)}
}
/* tabbar:end */
