*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}

:root{
  --teal:#3DD6B0;
  --teal-deep:#0C7A62;
  --ink:#14171C;
  --ink-2:#3A4049;
  --paper:#F5F3EE;
  --paper-2:#FAF9F6;
  --white:#FFFFFF;
  --line:rgba(20,23,28,0.10);
  --space:'Space Grotesk',system-ui,sans-serif;
  --hanken:'Hanken Grotesk',system-ui,sans-serif;
  --mono:'JetBrains Mono',monospace;
  --max:1080px;
  --pad:96px;
}

body{font-family:var(--hanken);background:var(--paper);color:var(--ink);font-size:17px;line-height:1.6;overflow-x:hidden}

/* language toggle: both languages are in the markup, one is shown */
html[lang="en"] .nl{display:none}
html:not([lang="en"]) .en{display:none}

/* typography */
.eyebrow,.eyebrow-light{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.22em;margin-bottom:1.25rem;display:block}
.eyebrow{color:var(--teal-deep)}
.eyebrow-light{color:var(--teal)}
h1,h2,h3{font-family:var(--space);font-weight:600;letter-spacing:-.02em;line-height:1.1}
h2{font-size:clamp(1.75rem,3vw,2.125rem);margin-bottom:1rem}
h3{font-size:1.25rem;margin-bottom:.5rem}
p{color:var(--ink-2);line-height:1.7}
a{color:var(--teal-deep);text-decoration:none}

/* layout */
.container{max-width:var(--max);margin:0 auto;padding:0 2rem}
section{padding:var(--pad) 0}
.section-header{margin-bottom:3rem}
.section-intro{font-size:1.0625rem;color:var(--ink-2);line-height:1.75;margin-top:.75rem;max-width:62ch}

/* buttons */
.btn-primary,.btn-outline,.btn-outline-light{display:inline-block;font-family:var(--space);font-size:.9375rem;padding:.875rem 1.75rem;border-radius:10px;letter-spacing:-.01em}
.btn-primary{background:var(--teal);color:var(--ink);font-weight:600;transition:opacity .18s}
.btn-primary:hover{opacity:.88;color:var(--ink)}
.btn-outline{border:1.5px solid var(--ink);color:var(--ink);font-weight:500;transition:background .18s,color .18s}
.btn-outline:hover{background:var(--ink);color:var(--white)}
.btn-outline-light{border:1.5px solid rgba(255,255,255,.35);color:var(--white);font-weight:500;transition:background .18s,border-color .18s}
.btn-outline-light:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);color:var(--white)}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:64px;background:rgba(245,243,238,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav-logo{display:flex;align-items:center;gap:.625rem;color:var(--ink)}
.nav-logo-mark{width:28px;height:28px;flex-shrink:0;display:block}
.nav-logo-mark svg{width:100%;height:100%;display:block}
.nav-wordmark{font-family:var(--space);font-weight:600;font-size:1.125rem;letter-spacing:-.02em;color:var(--ink);line-height:1}
.i-teal{color:var(--teal-deep)}
.nav-links{display:flex;gap:1.5rem;list-style:none;align-items:center}
.nav-links a{font-size:.9rem;color:var(--ink-2);font-weight:500;transition:color .18s}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-links a.active{box-shadow:0 2px 0 var(--teal)}
.nav-links a.nav-cta{background:var(--ink);color:var(--white);font-family:var(--space);font-weight:600;font-size:.875rem;padding:.5rem 1.125rem;border-radius:8px;letter-spacing:-.01em;box-shadow:none}
.nav-links a.nav-cta:hover{opacity:.82;color:var(--white)}
.lang-switcher{display:flex;align-items:center;gap:2px;margin-left:.5rem;background:var(--line);border-radius:6px;padding:2px}
.lang-btn{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;border:none;background:transparent;color:var(--ink-2);cursor:pointer;padding:.3rem .6rem;border-radius:4px;transition:all .18s}
.lang-btn.active{background:var(--white);color:var(--ink);font-weight:600}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;width:40px;height:40px;padding:10px;flex-direction:column;justify-content:space-between}
.nav-toggle span{display:block;height:2px;background:var(--ink);border-radius:2px}

/* page hero */
.page-hero{background:var(--ink);padding:calc(var(--pad) + 64px) 0 var(--pad)}
.crumbs{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.5);margin-bottom:1.5rem}
.crumbs a{color:var(--teal)}
.crumbs a:hover{color:var(--white)}
.page-title{font-size:clamp(2rem,4.2vw,3.25rem);letter-spacing:-.03em;line-height:1.08;color:var(--white);margin-bottom:1.25rem;max-width:22ch}
.page-title.wide{max-width:28ch}
.page-sub{font-size:1.0625rem;color:rgba(255,255,255,.65);max-width:58ch;line-height:1.7}

/* services */
.svc{background:var(--white)}
.svc.alt{background:var(--paper-2)}
.svc-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:4rem;align-items:start}
.svc-head{position:sticky;top:96px}
.svc-nr{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--teal-deep);display:block;margin-bottom:1rem}
.svc-problem{font-family:var(--space);font-size:1.0625rem;font-weight:500;letter-spacing:-.01em;line-height:1.45;color:var(--ink);padding-left:1.25rem;border-left:3px solid var(--teal);margin-top:1.25rem}
.label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--teal-deep);margin:2rem 0 .875rem;font-weight:400}
.label:first-child{margin-top:0}
.ticks{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.ticks li{position:relative;padding-left:1.5rem;font-size:.975rem;color:var(--ink-2);line-height:1.6}
.ticks li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--teal)}
.ticks li a{text-decoration:underline;text-decoration-color:rgba(12,122,98,.35);text-underline-offset:3px}
.ticks li a:hover{text-decoration-color:var(--teal-deep)}
.mini-cases{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.mini-case{display:block;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.125rem 1.25rem;transition:border-color .18s,transform .18s}
.mini-case:hover{border-color:var(--teal-deep);transform:translateY(-2px)}
.svc.alt .mini-case{background:var(--white)}
.mini-metric{display:block;font-family:var(--space);font-weight:600;font-size:1.5rem;letter-spacing:-.03em;color:var(--ink);line-height:1.1;margin-bottom:.25rem}
.mini-title{display:block;font-size:.85rem;color:var(--ink-2);line-height:1.4}

/* cases overview */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.chip{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--line);background:var(--white);color:var(--ink-2);padding:.5rem .875rem;border-radius:999px;cursor:pointer;transition:all .18s}
.chip:hover{border-color:var(--ink)}
.chip.active{background:var(--ink);color:var(--white);border-color:var(--ink)}
.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
.case-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:2rem;color:var(--ink);transition:border-color .18s,transform .18s}
.case-card:hover{border-color:var(--teal-deep);transform:translateY(-3px)}
.case-card[hidden]{display:none}
.case-metric{font-family:var(--space);font-weight:600;font-size:2.5rem;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.case-metric-label{font-size:.85rem;color:var(--ink-2);margin:.375rem 0 1.5rem}
.case-card h3{font-size:1.125rem;line-height:1.25;margin-bottom:.625rem}
.case-card p{font-size:.9rem;line-height:1.6;margin-bottom:1.25rem}
.case-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:auto;margin-bottom:1rem}
.tag{font-family:var(--mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--teal-deep);border:1px solid rgba(12,122,98,.25);border-radius:4px;padding:.25rem .5rem}
.case-more{font-family:var(--space);font-weight:600;font-size:.875rem;color:var(--teal-deep)}
.more-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.more-item{background:var(--white);padding:1.5rem 1.75rem}
.more-item h3{font-size:.975rem;margin-bottom:.4rem}
.more-item p{font-size:.875rem;line-height:1.6}

/* case detail */
.facts-wrap{padding:56px 0 0}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.fact{background:var(--white);padding:1.75rem}
.fact-num{display:block;font-family:var(--space);font-weight:600;font-size:2.25rem;letter-spacing:-.04em;line-height:1;margin-bottom:.4rem}
.fact-label{font-size:.85rem;color:var(--ink-2);line-height:1.4}
.case-body{padding:56px 0 var(--pad)}
.case-layout{display:grid;grid-template-columns:1fr 280px;gap:4rem;align-items:start}
.case-block{margin-bottom:2.75rem}
.case-block:last-child{margin-bottom:0}
.case-block h2{font-size:1.5rem;margin-bottom:.875rem}
.case-block p{font-size:1.0625rem;margin-bottom:1rem}
.case-block p:last-child{margin-bottom:0}
.case-block .ticks{margin-top:1.25rem}
.case-aside{position:sticky;top:96px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1.75rem}
.meta-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--teal-deep);display:block;margin-bottom:.3rem}
.meta-value{font-size:.9rem;color:var(--ink);line-height:1.45;margin-bottom:1.25rem;display:block}
.meta-links{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}
.meta-links a{font-family:var(--space);font-weight:500;font-size:.9rem;color:var(--teal-deep)}
.case-aside .case-tags{margin:0}
.insight{background:var(--ink);padding:var(--pad) 0}
.insight-quote{font-family:var(--space);font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:500;letter-spacing:-.02em;line-height:1.35;color:var(--white);padding-left:1.5rem;border-left:3px solid var(--teal);max-width:36ch}
.related{background:var(--paper-2)}
.related .mini-case{background:var(--white)}
.related-title{font-size:1.5rem;margin-bottom:1.5rem}

/* cta */
#cta{background:var(--ink);text-align:center}
.cta-title{font-size:clamp(1.75rem,3.5vw,2.75rem);letter-spacing:-.03em;color:var(--white);line-height:1.1;margin-bottom:1.25rem}
.cta-sub{font-size:1.0625rem;color:rgba(255,255,255,.55);max-width:52ch;margin:0 auto 2.5rem;line-height:1.7}
.cta-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* footer */
footer{background:var(--ink);border-top:1px solid rgba(255,255,255,.07);padding:2.5rem 2rem}
.footer-inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.footer-logo{display:flex;align-items:center;gap:.5rem}
.footer-logo-mark{width:22px;height:22px;display:block}
.footer-logo-mark svg{width:100%;height:100%;display:block}
.footer-wordmark{font-family:var(--space);font-weight:600;font-size:1rem;letter-spacing:-.02em;color:var(--white)}
.footer-wordmark .i-teal{color:var(--teal)}
.footer-links{display:flex;gap:1.5rem;list-style:none;flex-wrap:wrap}
.footer-links a{font-size:.875rem;color:rgba(255,255,255,.45);transition:color .18s}
.footer-links a:hover{color:rgba(255,255,255,.85)}
.footer-copy{font-family:var(--mono);font-size:.75rem;color:rgba(255,255,255,.25);letter-spacing:.04em}

/* animation, only when JavaScript is available */
.js .fade-up{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
.js .fade-up.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .fade-up{opacity:1;transform:none;transition:none}
}

/* responsive */
@media (max-width:1024px){
  .svc-grid{gap:3rem}
}
@media (max-width:900px){
  :root{--pad:64px}
  nav{padding:0 1.25rem}
  .nav-toggle{display:flex}
  .nav-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:1rem;background:var(--paper);padding:1.25rem 1.25rem 1.5rem;border-bottom:1px solid var(--line)}
  .nav-links.open{display:flex}
  .lang-switcher{margin-left:0}
  .svc-grid{grid-template-columns:1fr;gap:2rem}
  .svc-head{position:static}
  .case-layout{grid-template-columns:1fr;gap:2.5rem}
  .case-aside{position:static}
  .footer-inner{flex-direction:column;align-items:flex-start}
}
@media (max-width:600px){
  :root{--pad:48px}
  .container{padding:0 1.125rem}
  nav{height:56px}
  .nav-links{top:56px}
  .case-grid,.more-grid,.mini-cases{grid-template-columns:1fr}
  .case-card{padding:1.5rem 1.25rem}
  .cta-actions{flex-direction:column;align-items:stretch}
  .cta-actions a{text-align:center}
  .footer-links{gap:1rem}
}
