/* ═══════════════════════════════════════════════════════════════
   ELEV8 — ontwerpsysteem V4
   ─────────────────────────────────────────────────────────────
   Zelfde klassenamen als voorheen, zodat elke bestaande pagina
   meekantelt zonder herschreven te worden. Wat verandert is de
   dichtheid: twee tot drie keer zoveel lucht, geen kaderlijnen
   meer, en scheiding via ruimte in plaats van randen.
═══════════════════════════════════════════════════════════════ */

:root{
  /* merk — ongewijzigd */
  --teal:#0D7377;
  --teal-dark:#095a5d;
  --teal-deep:#063537;
  --teal-light:#14a085;
  --orange:#FF6B35;
  --orange-dark:#e85a28;

  /* oppervlakken — drie tinten wit, één donker */
  --warm-white:#F7F6F3;
  --cream:#EEF1F0;
  --black:#0B1F21;
  --ink:#0E1213;
  --border:rgba(14,18,19,.08);

  /* tekst */
  --tx-2:#5E6A6B;
  --tx-3:#93A0A0;

  --ff-display:'Nunito',system-ui,sans-serif;
  --ff-body:'Space Grotesk',system-ui,sans-serif;
  --ff-edit:'Instrument Serif',Georgia,serif;

  /* ritme — de kern van V4 */
  --bay:clamp(104px,14vw,210px);
  --gut:clamp(24px,5vw,80px);

  --elev-ease:cubic-bezier(.22,1,.36,1);
  --elev-ease-out:cubic-bezier(.16,1,.3,1);
  --elev-ease-in-out:cubic-bezier(.65,0,.35,1);
  --out:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--warm-white);color:var(--ink);
  font-family:var(--ff-body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

/* ── Layout ───────────────────────────────────────────────────── */
.wrap,.section__inner{width:min(100% - var(--gut)*2,1240px);margin-inline:auto}
.section{padding-block:var(--bay);position:relative}
.section--warm{background:var(--warm-white)}
.section--cream{background:var(--cream)}
.section--deep{background:var(--black);color:#fff}
.section--deep .lede,.section--deep p{color:rgba(255,255,255,.72)}
.section--deep .eyebrow{color:rgba(255,255,255,.42)}

/* ── Typografie ───────────────────────────────────────────────── */
.h-display,h1,h2{
  font-family:var(--ff-display);font-weight:900;
  letter-spacing:-.038em;line-height:1.04;
}
.h-display{font-size:clamp(1.95rem,4.6vw,3.5rem);max-width:18ch}
.serif,em.serif,.h-display em{
  font-family:var(--ff-edit);font-style:italic;font-weight:400;
  letter-spacing:-.015em;color:var(--teal);
  padding-bottom:.06em;line-height:1.1;
}
.section--deep .serif,.section--deep .h-display em{color:#8FD8CE}
.lede{
  font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.55;
  color:var(--tx-2);max-width:58ch;
}
.eyebrow{
  display:block;font-size:11.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--tx-3);
  background:none;border:0;padding:0;
}
.eyebrow .dot{display:none}

/* Sectiekop: gecentreerd, met lucht eronder. Dwingt korte koppen. */
.sec-head{
  display:grid;justify-items:center;text-align:center;
  gap:clamp(14px,1.8vw,22px);
  grid-template-columns:none;
  margin-bottom:clamp(56px,8vw,120px);
}
.sec-head>div{display:contents}
.sec-head .lede{text-align:center}

/* ── Kaarten: geen dubbele bezel meer, alleen oppervlak ───────── */
.bezel{
  background:none;border:0;border-radius:26px;padding:0;
  transition:transform .55s var(--out);
}
.bezel__inner{
  background:#fff;border:0;border-radius:26px;
  padding:clamp(30px,3.6vw,52px);
  box-shadow:0 1px 2px rgba(14,18,19,.04);
  height:100%;display:flex;flex-direction:column;
  transition:transform .55s var(--out),box-shadow .55s var(--out);
}
.bezel:hover .bezel__inner{transform:translateY(-5px);box-shadow:0 34px 70px -34px rgba(6,53,55,.4)}
.section--deep .bezel__inner{
  background:rgba(255,255,255,.05);color:#fff;
  box-shadow:none;
}

/* ── Knoppen ──────────────────────────────────────────────────── */
.btn,.btn-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 28px;border-radius:999px;
  font-family:var(--ff-body);font-weight:700;font-size:15.5px;
  border:0;cursor:pointer;white-space:nowrap;
  transition:transform .35s var(--out),box-shadow .35s var(--out),background .3s;
}
.btn:hover,.btn-pill:hover{transform:translateY(-2px)}
.btn--primary,.btn-pill--orange{background:var(--ink);color:#fff}
.btn--primary:hover,.btn-pill--orange:hover{background:#000;box-shadow:0 18px 40px -18px rgba(0,0,0,.5)}
.btn--ghost,.btn-pill--ghost-light{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.btn--ghost-dark,.btn-pill--ghost-dark{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(14,18,19,.16)}
.btn-pill--ink{background:var(--ink);color:#fff}
.btn-pill__icon{
  display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:rgba(255,255,255,.16);transition:transform .35s var(--out);
}
.btn-pill--ghost-dark .btn-pill__icon{background:rgba(14,18,19,.07)}
.btn-pill:hover .btn-pill__icon{transform:translateX(3px)}
.btn svg,.btn-pill svg{width:16px;height:16px}

/* ── Merkmerk ─────────────────────────────────────────────────── */
.brand-mark,.nav__ball{
  width:24px;height:24px;border-radius:50%;
  background:radial-gradient(circle at 32% 26%,var(--teal-light),var(--teal-deep) 72%);
  display:grid;place-items:center;color:var(--orange);
  font-family:var(--ff-display);font-weight:900;font-size:12px;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.92);flex:0 0 auto;
}

/* ── Navigatie ────────────────────────────────────────────────── */
.nav{
  position:fixed;inset:0 0 auto;z-index:60;height:64px;
  display:flex;align-items:center;gap:26px;padding-inline:var(--gut);
  background:rgba(247,246,243,.82);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid var(--border);
}
.nav__brand{display:flex;align-items:center;gap:9px;font-family:var(--ff-display);font-weight:900;font-size:19px;letter-spacing:-.03em}
.nav__links{display:flex;gap:24px;margin-left:auto;font-size:14.5px;color:var(--tx-2)}
.nav__link{transition:color .3s}
.nav__link:hover{color:var(--ink)}
.nav__right{display:flex;align-items:center;gap:12px}
@media(max-width:900px){.nav__links{display:none}.nav__right{margin-left:auto}}
.nav__cta{padding:9px 18px;border-radius:999px;background:var(--ink);color:#fff;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:7px;transition:transform .3s var(--out)}
.nav__cta:hover{transform:translateY(-1px)}
body{padding-top:0}

/* ── Feature-blokken ──────────────────────────────────────────── */
.feature{padding-block:clamp(22px,2.6vw,32px);border-top:1px solid var(--border)}
.feature__num{font-family:var(--ff-display);font-weight:900;font-size:13px;color:var(--teal);letter-spacing:.12em}
.feature h3{font-family:var(--ff-display);font-weight:900;font-size:clamp(1.2rem,2.2vw,1.6rem);letter-spacing:-.03em;margin:10px 0 12px}
.feature ul li{padding-block:9px;color:var(--tx-2);font-size:15.5px}

/* ── FAQ ──────────────────────────────────────────────────────── */
.faq-item{border-top:1px solid var(--border);padding:0}
.faq-item summary{
  cursor:pointer;list-style:none;padding-block:clamp(20px,2.4vw,28px);
  font-family:var(--ff-display);font-weight:900;
  font-size:clamp(1.05rem,1.9vw,1.3rem);letter-spacing:-.025em;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .chev{flex:0 0 20px;transition:transform .45s var(--out);color:var(--tx-3)}
.faq-item[open] .chev{transform:rotate(180deg)}
.faq-body{padding-bottom:clamp(20px,2.4vw,28px);color:var(--tx-2);max-width:64ch}

/* ── Footer ───────────────────────────────────────────────────── */
.footer{padding-block:clamp(56px,7vw,96px);border-top:1px solid var(--border);background:var(--warm-white)}
.footer__inner{width:min(100% - var(--gut)*2,1240px);margin-inline:auto}
.footer__top{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:clamp(28px,4vw,60px)}
@media(max-width:860px){.footer__top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer__top{grid-template-columns:1fr}}
.footer__brand-row{display:flex;align-items:center;gap:9px;font-family:var(--ff-display);font-weight:900;font-size:19px;letter-spacing:-.03em;margin-bottom:14px}
.footer__tag{color:var(--tx-2);font-size:15px;max-width:44ch}
.footer__col h4{font-family:var(--ff-display);font-weight:900;font-size:13px;letter-spacing:.06em;margin-bottom:14px}
.footer__links li{padding-block:6px}
.footer__links a{color:var(--tx-2);font-size:14.5px;transition:color .3s}
.footer__links a:hover{color:var(--ink)}
.footer__bottom{margin-top:clamp(40px,5vw,70px);padding-top:26px;border-top:1px solid var(--border);color:var(--tx-3);font-size:13.5px;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between}
.footer__wa{display:inline-flex;align-items:center;gap:9px;margin-top:16px;color:var(--teal);font-weight:600;font-size:14.5px}
.footer__wa svg{width:18px;height:18px}
/* Naam, adres, telefoon: overal identiek. Google vergelijkt dit met je
   Google Business-ficha, en een bezoeker wil weten waar je zit.      */
.footer__nap{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:7px;font-size:14px;color:var(--tx-2)}
.footer__nap a{color:var(--tx-2);transition:color .3s}
.footer__nap a:hover{color:var(--ink)}

/* ── Prijstabellen op de systeempagina's ──────────────────────── */
.tier__mark--y{color:var(--teal)}

/* ── Scroll-voortgang ─────────────────────────────────────────── */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;pointer-events:none}
.scroll-progress__bar{height:100%;width:100%;transform-origin:left;transform:scaleX(0);background:var(--teal)}
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion: no-preference){
    .scroll-progress__bar{animation:sp linear both;animation-timeline:scroll(root block)}
    @keyframes sp{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  }
}

/* ── Beweging: hetzelfde systeem als de homepage ──────────────── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--out),transform .9s var(--out)}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.06s}.d2{transition-delay:.12s}.d3{transition-delay:.18s}
.d4{transition-delay:.24s}.d5{transition-delay:.3s}.d6{transition-delay:.36s}
[data-stagger]>*{opacity:0;transform:translateY(20px);transition:opacity .85s var(--out),transform .85s var(--out);transition-delay:calc(var(--i,0)*70ms)}
[data-stagger].in>*,.reveal.in [data-stagger]>*{opacity:1;transform:none}

/* Maskerreveal — het handelsmerk van V4 */
.mw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.16em;margin-bottom:-.16em}
.mw>i{
  display:inline-block;font-style:inherit;transform:translateY(105%);
  transition:transform 1s var(--out);transition-delay:calc(var(--w,0)*42ms);
}
.in .mw>i,.mask-done .mw>i{transform:none}


/* ── SVG's standaard aan banden ──────────────────────────────────
   Zonder maat schalen inline-SVG's op tot de containerbreedte. Dat
   is precies wat er misging op de sectorpagina's.               */
svg{width:1em;height:1em;flex:0 0 auto}
.btn svg,.btn-pill svg{width:16px;height:16px}
.nav__cta svg{width:15px;height:15px}
.lang-switch__btn svg{width:11px;height:11px;transition:transform .3s var(--out)}
.lang-switch.is-open .lang-switch__btn svg{transform:rotate(180deg)}
.footer__wa svg{width:17px;height:17px}
.faq-item .chev svg{width:18px;height:18px}
.pain-gain__list svg,.prose svg{width:18px;height:18px}

/* ── Sub-hero: de kop van elke binnenpagina ──────────────────── */
.sub-hero{
  position:relative;overflow:hidden;
  padding-block:clamp(140px,17vh,220px) clamp(80px,10vw,140px);
  background:var(--black);color:#fff;
}
.sub-hero__inner{
  position:relative;z-index:2;
  width:min(100% - var(--gut)*2,1240px);margin-inline:auto;
  display:grid;gap:clamp(16px,2vw,24px);max-width:820px;
}
.sub-hero__crumbs{font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.sub-hero__crumbs a{color:rgba(255,255,255,.62);transition:color .3s}
.sub-hero__crumbs a:hover{color:#fff}
.sub-hero h1{
  font-family:var(--ff-display);font-weight:900;
  font-size:clamp(2.2rem,5.4vw,4.4rem);line-height:1.02;
  letter-spacing:-.045em;max-width:15ch;
}
.sub-hero h1 .serif,.sub-hero h1 em{color:#8FD8CE}
.sub-hero p,.sub-hero .lede{color:rgba(255,255,255,.76);max-width:52ch}
.sub-hero__meta{display:flex;flex-wrap:wrap;gap:22px;font-size:14px;color:rgba(255,255,255,.6);margin-top:6px}
.sub-hero__meta span{display:inline-flex;align-items:center;gap:8px}
.sub-hero__meta svg{color:#8FD8CE}
.sub-hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.sub-hero__ctas .btn--ghost{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)}
.sub-hero__visual,.sub-hero__ball{
  position:absolute;right:-6%;bottom:-24%;width:min(46vw,560px);
  opacity:.16;z-index:1;pointer-events:none;
}
@media(max-width:900px){.sub-hero__visual,.sub-hero__ball{opacity:.08;right:-22%}}

/* ── Pijn / winst ────────────────────────────────────────────── */
.pain-gain{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,26px)}
@media(max-width:860px){.pain-gain{grid-template-columns:1fr}}
.pain-gain__card{
  background:#fff;border-radius:26px;padding:clamp(30px,3.6vw,50px);
  box-shadow:0 1px 2px rgba(14,18,19,.04);
}
.pain-gain__card--gain{background:var(--black);color:#fff;box-shadow:none}
.pain-gain__label{
  display:block;font-size:11.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--tx-3);margin-bottom:14px;
}
.pain-gain__card--gain .pain-gain__label{color:rgba(255,255,255,.45)}
.pain-gain__card h3{font-family:var(--ff-display);font-weight:900;font-size:clamp(1.3rem,2.3vw,1.75rem);letter-spacing:-.032em;line-height:1.12;margin-bottom:22px}
.pain-gain__list{display:grid;gap:14px}
.pain-gain__list li{display:flex;gap:14px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--tx-2)}
.pain-gain__card--gain .pain-gain__list li{color:rgba(255,255,255,.76)}

/* ── Lopende tekst ───────────────────────────────────────────── */
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.5rem,3vw,2.2rem);margin:clamp(40px,5vw,64px) 0 18px}
.prose h3{font-family:var(--ff-display);font-weight:900;font-size:clamp(1.15rem,2vw,1.45rem);letter-spacing:-.028em;margin:clamp(30px,3.6vw,44px) 0 12px}
.prose p{margin-bottom:18px;color:var(--tx-2)}
.prose ul{display:grid;gap:11px;margin-bottom:20px}
.prose ul li{display:flex;gap:13px;align-items:flex-start;color:var(--tx-2)}
.prose a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.prose strong{color:var(--ink);font-weight:600}

/* ── Nav-variant + footer-restanten ──────────────────────────── */
.nav--solid{background:rgba(247,246,243,.86)}
.footer__legal{display:flex;flex-wrap:wrap;gap:18px}
.footer__legal a{color:var(--tx-3);font-size:13.5px}
.footer__legal a:hover{color:var(--ink)}
.mobile-menu__links{display:grid}
.mobile-menu__wa{display:inline-flex;align-items:center;gap:9px;margin-top:18px;color:var(--teal);font-weight:600}
.mobile-menu__foot{margin-top:20px;font-size:13px;color:var(--tx-3)}
.spotlight{display:none}

/* ── Site-brede chrome ────────────────────────────────────────── */

/* Taalschakelaar */
.lang-switch{position:relative}
.lang-switch__btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 13px;border-radius:999px;border:1px solid var(--border);
  background:transparent;color:var(--tx-2);font:inherit;font-size:13.5px;font-weight:600;
  cursor:pointer;transition:border-color .3s,color .3s;
}
.lang-switch__btn:hover{border-color:rgba(14,18,19,.2);color:var(--ink)}
.lang-switch__btn svg{width:13px;height:13px}
.lang-switch__menu{
  position:absolute;top:calc(100% + 8px);right:0;min-width:170px;
  background:#fff;border:1px solid var(--border);border-radius:16px;
  padding:6px;box-shadow:0 24px 50px -24px rgba(6,53,55,.4);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .3s var(--out),transform .3s var(--out),visibility .3s;
  z-index:70;
}
.lang-switch.is-open .lang-switch__menu{opacity:1;visibility:visible;transform:none}
.lang-switch__opt{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;
  font-size:14px;color:var(--tx-2);transition:background .25s,color .25s;
}
.lang-switch__opt:hover{background:var(--cream);color:var(--ink)}
.lang-switch__opt.is-active{color:var(--ink);font-weight:600}
.lang-switch__flag{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--tx-3)}
.lang-switch__code{margin-left:auto;font-size:11px;color:var(--tx-3)}

/* Hamburger + mobiel menu */
.nav__burger{
  display:none;width:40px;height:40px;border-radius:999px;
  border:1px solid var(--border);background:transparent;cursor:pointer;
  padding:0;place-items:center;
}
@media(max-width:900px){.nav__burger{display:grid}}
.burger-line{display:block;width:16px;height:1.5px;background:var(--ink);border-radius:2px;margin:3px auto;transition:transform .35s var(--out),opacity .3s}
.nav.menu-open .burger-line:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.nav.menu-open .burger-line:nth-child(2){opacity:0}
.nav.menu-open .burger-line:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}
.mobile-menu{
  position:fixed;inset:64px 0 auto;z-index:55;
  background:rgba(247,246,243,.97);
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);
  padding:var(--gut);display:grid;gap:4px;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .4s var(--out),transform .4s var(--out),visibility .4s;
  border-bottom:1px solid var(--border);max-height:calc(100svh - 64px);overflow-y:auto;
}
.mobile-menu.open{opacity:1;visibility:visible;transform:none}
.mobile-menu__link{
  padding:15px 0;font-family:var(--ff-display);font-weight:900;
  font-size:1.35rem;letter-spacing:-.03em;border-bottom:1px solid var(--border);
}
.mobile-menu__meta{margin-top:18px;font-size:13px;color:var(--tx-3)}

/* Lijstmarker */
.mk{
  display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;
  border-radius:50%;background:var(--cream);color:var(--teal);
  font-family:var(--ff-display);font-weight:900;font-size:11px;
}
.section--deep .mk{background:rgba(255,255,255,.1);color:#8FD8CE}

/* Marquee */
.marquee{overflow:hidden;padding-block:clamp(28px,3vw,44px);border-block:1px solid var(--border)}
.marquee__track{display:flex;gap:44px;width:max-content;animation:mq 42s linear infinite}
.marquee__item{display:inline-flex;align-items:center;gap:12px;font-size:14.5px;color:var(--tx-3);white-space:nowrap}
@keyframes mq{to{transform:translateX(-50%)}}
.marquee:hover .marquee__track{animation-play-state:paused}

/* Cookiebanner (gebouwd door shared.js) */
.cookie-banner{
  position:fixed;left:50%;bottom:20px;transform:translate(-50%,140%);
  width:min(100% - 32px,560px);z-index:80;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);
  border:1px solid var(--border);border-radius:22px;padding:24px;
  box-shadow:0 30px 70px -30px rgba(6,53,55,.4);
  transition:transform .6s var(--out),opacity .6s var(--out);opacity:0;
}
.cookie-banner.open{transform:translate(-50%,0);opacity:1}
.cookie-banner__head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.cookie-banner__ball{
  flex:0 0 34px;width:34px;height:34px;border-radius:50%;
  background:radial-gradient(circle at 32% 26%,var(--teal-light),var(--teal-deep) 72%);
  display:grid;place-items:center;color:var(--orange);
  font-family:var(--ff-display);font-weight:900;font-size:15px;
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.92);
}
.cookie-banner__title{font-family:var(--ff-display);font-weight:900;font-size:16px;letter-spacing:-.02em;margin-bottom:4px}
.cookie-banner__text{font-size:13.5px;line-height:1.5;color:var(--tx-2)}
.cookie-banner__text a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
.cookie-banner__categories{display:none;margin-bottom:16px}
.cookie-banner.show-config .cookie-banner__categories{display:grid;gap:10px}
.cookie-cat{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--border)}
.cookie-cat__name{font-weight:600;font-size:14px}
.cookie-cat__desc{font-size:12.5px;color:var(--tx-2);line-height:1.45}
.cookie-cat__switch{position:relative;flex:0 0 42px}
.cookie-cat__switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.cookie-cat__track{display:block;width:42px;height:24px;border-radius:999px;background:rgba(14,18,19,.16);transition:background .25s;position:relative}
.cookie-cat__track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .25s var(--out);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.cookie-cat__switch input:checked+.cookie-cat__track{background:var(--teal)}
.cookie-cat__switch input:checked+.cookie-cat__track::after{transform:translateX(18px)}
.cookie-cat__switch input:disabled+.cookie-cat__track{opacity:.55}
.cookie-banner__actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.cookie-banner__btn{
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;
  padding:11px 18px;border-radius:999px;border:1px solid var(--border);
  background:#fff;color:var(--ink);transition:transform .25s var(--out),background .25s;
}
.cookie-banner__btn:hover{transform:translateY(-1px)}
.cookie-banner__btn--accept{background:var(--ink);color:#fff;border-color:var(--ink);margin-left:auto}
.cookie-banner__btn--config{border:0;background:transparent;color:var(--tx-2);text-decoration:underline;text-underline-offset:3px}

/* Licht dat de cursor volgt — verraadt dat het element leeft */
.bezel,.tier{--px:50%;--py:50%;position:relative}
.bezel__inner,.tier{position:relative;overflow:hidden}
.bezel__inner::before,.tier::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(420px circle at var(--px) var(--py),rgba(13,115,119,.08),transparent 62%);
  opacity:0;transition:opacity .5s var(--out);
}
.bezel:hover .bezel__inner::before,.tier:hover::before{opacity:1}
.bezel__inner>*,.tier>*{position:relative;z-index:1}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,[data-stagger]>*{opacity:1;transform:none;transition:none}
  .mw>i{transform:none!important;transition:none}
  .scroll-progress__bar{animation:none;transform:scaleX(0)}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
