/* Secties van de MARSS-site. Volgorde volgt de homepage. */

/* ---------- Kop ---------- */
.kop {
  position: fixed; inset: 0 0 auto; z-index: 60;
  display: flex; align-items: center; justify-content: space-between;
  height: var(--kophoogte);
  padding: env(safe-area-inset-top) var(--rand) 0;
  color: var(--wit);
  transition: transform 0.6s var(--uit), color 0.4s var(--uit);
}
.kop.is-weg { transform: translateY(-110%); }
body[data-kopthema="licht"] .kop:not(.is-menu) { color: var(--zwart); }
.kop__logo { position: relative; display: block; width: clamp(7rem, 5rem + 5vw, 10rem); color: inherit; }
.kop__logo::after { content: "®"; position: absolute; left: calc(100% + 0.15em); top: -0.15em; font: 500 clamp(0.6rem, 0.45rem + 0.4vw, 0.85rem)/1 var(--font-tekst); }
.kop__rechts { display: flex; align-items: center; gap: 1.5rem; }

.taal {
  display: flex; padding: 3px; border-radius: var(--hoek-pil);
  background: color-mix(in srgb, currentColor 18%, transparent);
}
.taal a {
  display: block; padding: 0.3rem 0.7rem; border-radius: var(--hoek-pil);
  font: 700 var(--maat-xs)/1 var(--font-tekst); text-decoration: none;
  opacity: 0.7; transition: opacity 0.2s, background-color 0.3s var(--uit), color 0.3s var(--uit);
}
.taal a:hover { opacity: 1; }
.taal a[aria-current] { background: var(--wit); color: var(--zwart); opacity: 1; }
body[data-kopthema="licht"] .kop:not(.is-menu) .taal a[aria-current] { background: var(--zwart); color: var(--wit); }
.menu .taal { display: none; justify-self: start; width: max-content; }
.menu .taal a { padding: 0.5rem 1rem; font-size: var(--maat-s); }

.menuknop { position: relative; width: 2.75rem; height: 2.75rem; display: grid; place-content: center; gap: 6px; }
.menuknop__streep { display: block; width: 1.9rem; height: 2px; background: currentColor; border-radius: 2px; transition: transform 0.5s var(--uit), opacity 0.3s; }
.menuknop[aria-expanded="true"] .menuknop__streep:nth-of-type(2) { transform: translateY(8px) rotate(45deg); }
.menuknop[aria-expanded="true"] .menuknop__streep:nth-of-type(3) { opacity: 0; transform: scaleX(0); }
.menuknop[aria-expanded="true"] .menuknop__streep:nth-of-type(4) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- Menu ---------- */
.menu {
  position: fixed; inset: 0; z-index: 55;
  background: var(--zwart); color: var(--wit);
  clip-path: circle(0 at calc(100% - var(--rand) - 1.4rem) 2.75rem);
  transition: clip-path 0.9s var(--uit);
  overflow-y: auto;
}
.menu[hidden] { display: block; visibility: hidden; }
.menu.is-open { clip-path: circle(150% at calc(100% - var(--rand) - 1.4rem) 2.75rem); visibility: visible; }
.menu__binnen {
  min-height: 100%;
  display: grid; grid-template-columns: 1fr 1fr 1fr;
}
.menu__kol { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 3rem; padding: calc(var(--kophoogte) + 1.5rem) clamp(1.25rem, 2vw, 2rem) clamp(1.5rem, 3vw, 2.5rem); }
.menu__kol:first-child { padding-left: var(--rand); }
.menu__kol:last-child { padding-right: var(--rand); justify-content: flex-end; align-items: flex-start; }
.menu__kol + .menu__kol::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: rgba(255, 255, 255, 0.28); transform: scaleY(0); transform-origin: top; transition: transform 1.1s var(--uit) 0.2s; }
.menu.is-open .menu__kol + .menu__kol::before { transform: none; }
.menu__boven, .menu__snel, .menu__kol--actie > * { opacity: 0; transform: translateY(1rem); transition: opacity 0.6s var(--uit) 0.4s, transform 0.8s var(--uit) 0.4s; }
.menu.is-open :is(.menu__boven, .menu__snel, .menu__kol--actie > *) { opacity: 1; transform: none; }
.menu__boven { display: grid; gap: 1.5rem; justify-items: start; }
.menu__typ { max-width: 22rem; min-height: 6.5em; font: 500 0.75rem/1.3 var(--font-tekst); letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); }
.menu__cursor { display: inline-block; width: 1px; height: 1.1em; margin-left: 2px; vertical-align: -0.2em; background: currentColor; animation: knipper 1s steps(1) infinite; }
@keyframes knipper { 50% { opacity: 0; } }
.menu__boven .sociaal a { font-size: var(--maat-s); text-decoration: underline; text-underline-offset: 4px; }
.menu__snel { display: grid; gap: 0.6rem; justify-items: start; }
.menu__snellabel { font: 500 0.75rem/1.3 var(--font-tekst); letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); }
.menu__label { font: 500 0.8rem/1.3 var(--font-tekst); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 0.6rem; }
.menu__hoofd { justify-content: flex-start; }
.menu__hoofd ol { display: grid; }
.menu__hoofd ol > li > :is(a, button) {
  display: block; overflow: hidden; text-decoration: none; text-align: left;
  font: 700 clamp(2.6rem, 1rem + 3.6vw, 5rem)/1.08 var(--font-kop); letter-spacing: -0.03em;
  transition: opacity 0.4s var(--uit);
}
.menu__hoofd ol > li > :is(a, button) > span { display: inline-flex; align-items: center; gap: 0.25em; transform: translateY(105%); transition: transform 0.9s var(--uit); transition-delay: calc(0.12s + var(--i) * 0.06s); }
.menu.is-open .menu__hoofd ol > li > :is(a, button) > span { transform: none; }
@media (hover: hover) {
  .menu__hoofd ol:hover > li > :is(a, button) { opacity: 0.35; }
  .menu__hoofd ol > li:hover > :is(a, button) { opacity: 1; }
}
.menu__klap { cursor: pointer; }
.menu__plus { position: relative; width: 0.36em; height: 0.36em; flex: none; margin-left: 0.1em; }
.menu__plus::before, .menu__plus::after { content: ""; position: absolute; inset: 50% 0 auto; height: 0.07em; margin-top: -0.035em; background: currentColor; transition: transform 0.5s var(--uit); }
.menu__plus::after { transform: rotate(90deg); }
.menu__klap[aria-expanded="true"] .menu__plus::after { transform: rotate(0deg); }
.menu__sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.6s var(--uit); }
.menu__sub > ul { overflow: hidden; min-height: 0; display: grid; }
.menu__klap[aria-expanded="true"] + .menu__sub { grid-template-rows: 1fr; }
.menu__sub li:first-child { margin-top: 0.75rem; border-top: 1px solid rgba(255, 255, 255, 0.28); }
.menu__sub li:last-child { margin-bottom: 1.25rem; }
.menu__sub li { border-bottom: 1px solid rgba(255, 255, 255, 0.28); }
.menu__subitem { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 0; text-decoration: none; opacity: 0; transform: translateY(0.6rem); transition: opacity 0.4s var(--uit), transform 0.6s var(--uit), padding 0.4s var(--uit), color 0.3s; }
.menu__klap[aria-expanded="true"] + .menu__sub .menu__subitem { opacity: 1; transform: none; }
.menu__klap[aria-expanded="true"] + .menu__sub li:nth-child(2) .menu__subitem { transition-delay: 0.06s; }
.menu__klap[aria-expanded="true"] + .menu__sub li:nth-child(3) .menu__subitem { transition-delay: 0.12s; }
.menu__subitem:hover { color: var(--roze); padding-left: 0.5rem; }
.menu__subpijl { flex: none; }
.menu__subtekst { display: grid; gap: 0.2rem; }
.menu__subtekst b { display: inline-flex; align-items: center; gap: 0.4rem; font: 700 var(--maat-l)/1.15 var(--font-kop); letter-spacing: -0.01em; }
.menu__subtekst small { font-size: var(--maat-s); opacity: 0.7; }
.pillen--klein .pil { font-size: var(--maat-xs); }
.menu .pil:hover { background: var(--roze); border-color: var(--roze); color: var(--zwart); }
.pil { cursor: pointer; }
.pil[aria-pressed="true"] { background: var(--roze); border-color: var(--roze); color: var(--zwart); }

/* Pillen met het telefoonveld eronder */
.pilbel { display: grid; gap: 1rem; justify-items: start; }
.pilbel [hidden] { display: none; }
.pilbel__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem; width: 100%; max-width: 30rem; animation: bel-in 0.5s var(--uit) both; }
.pilbel__veld { flex: 1 1 13rem; display: grid; gap: 0.4rem; font: 500 0.75rem/1.3 var(--font-tekst); letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.7); }
.pilbel__veld input { min-height: 3rem; padding: 0 1.1rem; border: 1.5px solid rgba(255, 255, 255, 0.4); border-radius: var(--hoek-pil); background: transparent; color: var(--wit); font: 500 var(--maat-m)/1 var(--font-tekst); letter-spacing: 0; text-transform: none; outline: none; transition: border-color 0.25s; }
.pilbel__veld input:focus { border-color: var(--roze); }
.pilbel__knop { min-height: 3rem; }
.pilbel__melding { flex-basis: 100%; color: var(--roze); font-size: var(--maat-xs); font-weight: 700; }
.pilbel__bedankt { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 700; color: var(--roze); animation: bel-in 0.5s var(--uit) both; }
.pilbel--groot { justify-items: center; }
.pilbel--groot .pilbel__form { justify-content: center; margin-inline: auto; margin-top: 1rem; text-align: left; }
.pilbel--groot .pilbel__bedankt { font-size: var(--maat-l); margin-top: 1rem; }

/* ---------- Hero met deeltjes ---------- */
.hero {
  position: relative; isolation: isolate;
  min-height: 100svh;
  display: grid; align-content: end;
  background: var(--hero-bg);
  color: var(--wit);
  overflow: hidden;
  transition: background-color 1.2s var(--uit), color 0.8s var(--uit);
  cursor: crosshair;
}
.hero__doek { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.hero__statisch { display: none; }
.geen-js .hero__statisch {
  display: block; position: absolute; z-index: -1;
  left: 50%; top: 14%; width: min(36vh, 60vw); height: auto; transform: translateX(-50%);
}
.hero__inhoud {
  display: grid; justify-items: center; gap: clamp(1.25rem, 2.5vh, 2rem);
  padding: 0 var(--rand) clamp(4.5rem, 10vh, 7rem);
  text-align: center;
  pointer-events: none;
}
.hero__inhoud a { pointer-events: auto; }
.hero__dias { display: grid; width: 100%; align-items: end; }
.hero__dia { grid-area: 1 / 1; display: grid; justify-items: center; gap: clamp(0.9rem, 2vh, 1.5rem); }
.hero__kop { font: 700 var(--maat-hero)/0.98 var(--font-kop); letter-spacing: -0.035em; max-width: 17ch; text-wrap: balance; }
.hero__tekst { max-width: 40rem; font: 600 clamp(0.95rem, 0.85rem + 0.35vw, 1.15rem)/1.5 var(--font-tekst); opacity: 0; transform: translateY(0.8rem); transition: opacity 0.7s var(--uit), transform 0.9s var(--uit); }
.hero__dia.is-actief .hero__tekst { opacity: 1; transform: none; transition-delay: 0.35s; }
.hero__knoppen { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.75rem; margin-top: clamp(0.5rem, 2vh, 1.5rem); }
.hero__knoppen > .knop { min-height: 3.375rem; }
.knop--agent { padding-right: 0.5rem; gap: 0.8rem; }
.knop__tijd {
  display: inline-flex; align-items: center; gap: 0.3rem;
  padding: 0.45rem 0.7rem; border-radius: var(--hoek-pil);
  background: rgba(10, 10, 10, 0.07); font-size: 0.75rem; font-weight: 700;
  transition: background 0.35s var(--uit);
}
.knop--agent:hover .knop__tijd { background: rgba(255, 255, 255, 0.16); }
.knop .knop__tijd svg, .knop:hover .knop__tijd svg { transform: none; }

.woord { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.woord > span { display: inline-block; }
.js .hero__dia .woord > span { transform: translateY(110%); transition: transform 1s var(--uit); transition-delay: calc(var(--w) * 0.05s); }
.js .hero__dia.is-actief .woord > span { transform: none; transition-delay: calc(0.35s + var(--w) * 0.05s); }
.js .hero__dia.is-weg .woord > span { transform: translateY(-110%); transition-duration: 0.55s; transition-delay: calc(var(--w) * 0.02s); }
.js .hero__dia.is-terug .woord > span { transition: none; }

.hero__stippen {
  position: absolute; right: var(--rand); top: 50%; transform: translateY(-50%);
  display: grid; gap: 0.9rem;
}
.hero__stip { width: 1.5rem; height: 1.5rem; display: grid; place-items: center; border-radius: 50%; }
.hero__stip span { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: currentColor; opacity: 0.45; transition: transform 0.5s var(--veer), opacity 0.3s; }
.hero__stip:hover span { opacity: 0.8; }
.hero__stip.is-actief span { transform: scale(1.7); opacity: 1; }

.hero__hint {
  position: absolute; left: var(--rand); bottom: clamp(1.5rem, 4vh, 2.5rem);
  display: flex; align-items: center; gap: 0.6rem;
  font: 500 var(--maat-xs)/1 var(--font-tekst); letter-spacing: 0.14em; text-transform: uppercase;
  opacity: 0.8;
}
.hero__hint-stip { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; animation: puls 2s var(--uit) infinite; }
@keyframes puls { 0% { box-shadow: 0 0 0 0 currentColor; } 70%, 100% { box-shadow: 0 0 0 0.75rem transparent; } }

/* ---------- Intro: de zin die oplicht tijdens het lezen ---------- */
.intro { display: grid; align-items: center; min-height: 100svh; padding: calc(var(--ruimte) * 1.5) 0; }
.intro__tekst {
  max-width: 60rem;
  font: 700 var(--maat-statement)/1.12 var(--font-kop); letter-spacing: -0.025em;
  text-align: center; color: var(--grijs); text-wrap: balance;
}
.intro__tekst .woord { overflow: visible; }
.js .intro__tekst .woord > span { opacity: 0.14; transition: opacity 0.4s linear, color 0.4s linear; }
.js .intro__tekst .woord.is-gelezen > span { opacity: 1; }
.intro__tekst .woord--nadruk > span { color: var(--zwart); }
.routes__link { color: inherit; text-decoration: none; background: linear-gradient(rgba(10, 10, 10, 0.25), rgba(10, 10, 10, 0.25)) 0 100% / 100% 1px no-repeat; transition: background-image 0.3s; }
.routes__link:hover, .routes__link:focus-visible { background-image: linear-gradient(var(--zwart), var(--zwart)); }
.woorden__link { color: inherit; text-decoration: none; background: linear-gradient(rgba(10, 10, 10, 0.2), rgba(10, 10, 10, 0.2)) 0 94% / 100% 0.05em no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-image 0.3s; }
.woorden__link:hover, .woorden__link:focus-visible { background-image: linear-gradient(var(--zwart), var(--zwart)); }

/* ---------- Reel: de video staat vast achter de pagina, de sectie is een venster ---------- */
.reel { position: relative; height: 100svh; clip-path: inset(0); background: var(--zwart); }
.reel__venster { position: fixed; inset: 0; z-index: -1; }
.reel__video { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Sectiekop ---------- */
.sectiekop { display: grid; gap: 1.25rem; margin-bottom: clamp(3rem, 2rem + 4vw, 6rem); }
.sectiekop__titel { font-size: var(--maat-xxl); color: var(--grijs); max-width: 16ch; }
.sectiekop__titel em { color: var(--zwart); background: linear-gradient(transparent 64%, var(--roze) 64%, var(--roze) 92%, transparent 92%); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.sectiekop__intro { max-width: 30rem; font-size: clamp(1rem, 0.95rem + 0.25vw, 1.15rem); color: var(--grijs); }
.sectiekop--rij { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 2rem; }
.sectiekop--rij > div:first-child { display: grid; gap: 1.25rem; }

/* ---------- Wat we doen: twee routes naast elkaar ---------- */
.routes { padding: var(--ruimte) 0; }
.routes__duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2vw, 2rem); align-items: stretch; }
.route { display: grid; grid-template-rows: auto 1fr; border-radius: var(--hoek); overflow: hidden; }
.route--licht { background: var(--roze); color: var(--zwart); }
.route--donker { background: var(--zwart); color: var(--wit); }
.route__foto { display: block; aspect-ratio: 16 / 10; overflow: hidden; margin: 0; }
.route__foto img, .route__video { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--uit); }
.route:hover .route__foto img, .route:hover .route__video { transform: scale(1.05); }
.route__foto:has(.route__video) { position: relative; background: linear-gradient(#000000, #00020A 20%, #072130 40%, #3D566C 60%, #8CA1B3 80%, #B5BEC8); }
.route__foto .route__video {
  position: absolute; left: 50%; top: 0; width: auto; height: 100%; aspect-ratio: 720 / 806; translate: -50% 0; transform-origin: 50% 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.route__tekst { display: grid; align-content: start; gap: 1.1rem; padding: clamp(1.25rem, 2.5vw, 2.5rem); }
.route__voor { display: flex; align-items: center; gap: 0.75rem; font: 500 var(--maat-xs)/1 var(--font-tekst); letter-spacing: 0.14em; text-transform: uppercase; }
.route__nr { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border: 1.5px solid currentColor; border-radius: 50%; font: 700 var(--maat-xs)/1 var(--font-kop); letter-spacing: 0; }
.route__kop { font-size: clamp(2.3rem, 1.2rem + 3.2vw, 4.25rem); line-height: 1; letter-spacing: -0.03em; }
.routes__intro { max-width: 34rem; font: 500 clamp(1.15rem, 1rem + 0.6vw, 1.6rem)/1.35 var(--font-tekst); color: var(--zwart); }
.route__kop a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size 0.5s var(--uit); }
.route__kop a:hover { background-size: 100% 2px; }
.route__zin { font: 500 clamp(1.1rem, 1rem + 0.4vw, 1.35rem)/1.35 var(--font-tekst); max-width: 30rem; }
.route__punten { display: grid; gap: 0.55rem; }
.route__punten li { display: flex; gap: 0.6rem; align-items: start; font-weight: 500; }
.route__punten svg { flex-shrink: 0; margin-top: 0.2rem; }
.route__typisch { font-size: var(--maat-xs); font-weight: 500; }
.route__typisch span { opacity: 0.6; text-transform: uppercase; letter-spacing: 0.08em; }
.route__knoppen { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 0.5rem; }
.route--licht .knop--route { --k-achter: var(--zwart); --k-tekst: var(--wit); --k-vul: var(--wit); }
.route--licht .knop--route:hover { --k-tekst: var(--zwart); --k-rand: var(--zwart); }
.route--donker .knop--route { --k-achter: var(--roze); --k-tekst: var(--zwart); --k-vul: var(--wit); }
.route__mens { display: inline-flex; align-items: center; gap: 0.6rem; font: 700 var(--maat-s)/1.2 var(--font-tekst); text-decoration: none; color: inherit; }
.route__mens img { width: 2.4rem; height: 2.4rem; border-radius: 50%; object-fit: cover; border: 2px solid currentColor; }
.route__mens span { background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1.5px no-repeat; padding-bottom: 2px; transition: background-size 0.5s var(--uit); }
.route__mens:hover span { background-size: 0 1.5px; }

/* ---------- Rocket: voor- en achterkant ---------- */
.rocket { background: var(--zwart); color: var(--wit); padding: var(--ruimte) 0; overflow: hidden; }
.rocket .sectiekop__titel, .dienst__koppeling h2 { color: var(--wit); }
.rocket .sectiekop__titel em { color: var(--roze); background: none; }
.rocket__binnen, .dienst__koppelbinnen { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.rocket__tekst { display: grid; gap: 1.5rem; justify-items: start; }
.rocket__intro { max-width: 34rem; opacity: 0.85; font-size: clamp(1rem, 0.95rem + 0.25vw, 1.15rem); }
.rocket__punten { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 2rem; margin-block: 0.25rem 0.75rem; }
.rocket__punten div { border-top: 1px solid var(--lijn-licht); padding-top: 0.9rem; }
.rocket__punten dt { font: 700 var(--maat-m)/1.2 var(--font-kop); }
.rocket__punten dd { margin-top: 0.35rem; font-size: var(--maat-s); opacity: 0.7; }
.rocket__toon { display: grid; gap: 1.25rem; justify-items: center; min-width: 0; }
.wissel { position: relative; display: inline-flex; padding: 4px; border-radius: var(--hoek-pil); background: rgba(255, 255, 255, 0.1); }
.wissel__knop { position: relative; z-index: 1; padding: 0.7rem clamp(0.8rem, 2.5vw, 1.3rem); white-space: nowrap; border-radius: var(--hoek-pil); font: 700 var(--maat-s)/1 var(--font-tekst); color: var(--wit); transition: color 0.4s var(--uit); }
.wissel__knop[aria-pressed="true"] { color: var(--zwart); }
.wissel__balk { position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 0; width: 0; border-radius: var(--hoek-pil); background: var(--roze); transition: transform 0.6s var(--uit), width 0.6s var(--uit); }
.venster { width: 100%; border-radius: 0.4rem; overflow: hidden; background: #141414; border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 3rem 6rem rgba(0, 0, 0, 0.5); }
.venster__balk { display: flex; align-items: center; gap: 6px; padding: 0.7rem 1rem; background: #1c1c1c; }
.venster__balk > i { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, 0.22); }
.venster__url { margin-inline: auto; padding: 0.3rem 1rem; border-radius: var(--hoek-pil); background: rgba(255, 255, 255, 0.08); font: 500 0.75rem/1.2 var(--font-tekst); color: rgba(255, 255, 255, 0.7); transition: opacity 0.3s; }
.venster__url.is-wissel { opacity: 0; }
.venster__lagen { position: relative; aspect-ratio: 16 / 10; overflow: hidden; container-type: inline-size; }
.venster__laag { position: absolute; inset: 0; transition: transform 1s var(--uit), opacity 0.8s var(--uit), filter 0.8s var(--uit); }
.venster__laag--voor img, .venster__laag--voor video, .venster__laag--achter img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.venster__laag--achter, .venster__laag--uitleg { transform: translateY(100%); }
.venster[data-kant="achter"] .venster__laag--achter, .venster[data-kant="uitleg"] .venster__laag--uitleg { transform: none; }
.venster:not([data-kant="voor"]) .venster__laag--voor { transform: scale(0.92); opacity: 0.3; filter: blur(2px); }
.venster[data-kant="uitleg"] .venster__laag--achter { transform: translateY(100%); }

/* De tekening achter de derde knop: acht losse systemen schuiven in Rocket. */
.venster__laag--uitleg { background: #0d0d0d; }
.uitleg { display: block; width: 100%; height: 100%; font-family: var(--font-tekst); fill: var(--wit); }
.uitleg text { text-anchor: middle; }
.uitleg__titel text { text-anchor: start; }
.uitleg__kop { font: 700 22px var(--font-kop); }
.uitleg__sub { font-size: 13px; opacity: 0.6; }
.uitleg__naam { font-size: 12.5px; font-weight: 700; }
.uitleg__klein { font-size: 10.5px; opacity: 0.65; }
.uitleg__merk { font: 700 19px var(--font-kop); }
.uitleg__roze { fill: var(--roze); opacity: 1; }
.uitleg rect, .uitleg circle, .uitleg line, .uitleg path { fill: none; stroke: var(--wit); stroke-width: 1.3; }
.uitleg__titel, .uitleg__draden line, .uitleg__eigenaar, .uitleg__straks > *, .uitleg__los, .uitleg__module, .uitleg__item rect { transition: opacity 0.6s var(--uit), transform 0.9s var(--uit), stroke-dashoffset 1.1s var(--uit), fill 0.6s var(--uit), stroke 0.6s var(--uit); }
.uitleg__draden line { stroke: rgba(255, 255, 255, 0.45); stroke-dasharray: 4 5; animation: draad 1.4s linear infinite; }
@keyframes draad { to { stroke-dashoffset: -18; } }
.uitleg__eigenaar circle { fill: var(--wit); stroke: none; }
.uitleg__eigenaar text { fill: var(--zwart); }
.uitleg__eigenaar .uitleg__klein { opacity: 0.75; }
.uitleg__eigenaar { transform-origin: 400px 285px; animation: druk 1.6s var(--uit) infinite alternate; }
@keyframes druk { to { transform: scale(1.06); } }
.uitleg__item { transform: translate(var(--nx), var(--ny)); transition: transform 1.1s var(--uit); transition-delay: calc(var(--i) * 0.06s); }
.uitleg__item rect { fill: #0d0d0d; stroke-dasharray: 5 4; stroke: rgba(255, 255, 255, 0.55); }
.uitleg__wiebel { animation: wiebel 2.6s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -0.7s); }
@keyframes wiebel { from { transform: translate(-3px, 2px) rotate(-1.2deg); } to { transform: translate(3px, -2px) rotate(1.2deg); } }
.uitleg__module { opacity: 0; }
.uitleg__straks > * { opacity: 0; }
.uitleg__straks [pathLength] { stroke-dasharray: 1; stroke-dashoffset: 1; }
.uitleg__site { stroke: var(--roze) !important; }
.uitleg__titel--straks { opacity: 0; }

.uitleg[data-fase="straks"] .uitleg__titel--nu, .uitleg[data-fase="straks"] .uitleg__draden line, .uitleg[data-fase="straks"] .uitleg__los { opacity: 0; }
.uitleg[data-fase="straks"] .uitleg__eigenaar { opacity: 0; animation: none; transform: scale(0.4); }
.uitleg[data-fase="straks"] .uitleg__titel--straks, .uitleg[data-fase="straks"] .uitleg__module, .uitleg[data-fase="straks"] .uitleg__straks > * { opacity: 1; }
.uitleg[data-fase="straks"] .uitleg__straks [pathLength] { stroke-dashoffset: 0; }
.uitleg[data-fase="straks"] .uitleg__item { transform: translate(var(--sx), var(--sy)); }
.uitleg[data-fase="straks"] .uitleg__wiebel { animation: none; }
.uitleg[data-fase="straks"] .uitleg__item rect { stroke-dasharray: none; stroke: var(--roze); fill: rgba(253, 191, 202, 0.12); }
.uitleg__nieuw rect { stroke: var(--wit); fill: rgba(255, 255, 255, 0.08); }
.uitleg__straks > :nth-child(1), .uitleg__straks > :nth-child(2), .uitleg__straks > :nth-child(3) { transition-delay: 0.5s; }
.uitleg__straks .uitleg__blok, .uitleg__straks .uitleg__merk, .uitleg__straks .uitleg__roze { transition-delay: 0.2s; }
.uitleg__nieuw { transition-delay: 1.2s !important; }
.uitleg__pil { transition-delay: calc(1.3s + var(--i) * 0.08s) !important; }
.uitleg__pil rect { stroke: rgba(255, 255, 255, 0.4); }
.uitleg__noot { transition-delay: 1.9s !important; }
.uitleg[data-fase="nu"] .uitleg__straks > * { transition-delay: 0s !important; }
@media (prefers-reduced-motion: reduce) { .uitleg *, .uitleg { animation: none !important; transition: none !important; } }

/* ---------- Dienstpagina's: vaste foto, tekst scrolt eroverheen ---------- */
.dienst__beeld { position: relative; clip-path: inset(0); background: var(--zwart); color: var(--wit); }
.dienst__beeld--donker { background: radial-gradient(circle at 85% 15%, rgba(253, 191, 202, 0.2), transparent 45%), radial-gradient(circle at 0% 90%, rgba(239, 155, 181, 0.12), transparent 40%), var(--zwart); }
.dienst__foto { position: fixed; inset: 0; z-index: -1; }
.dienst__foto img { width: 100%; height: 100%; object-fit: cover; }
.dienst__foto--plant { background: linear-gradient(#000000, #00020A 20%, #072130 40%, #3D566C 60%, #8CA1B3 80%, #B5BEC8); }
.dienst__foto--plant img { position: absolute; left: 50%; top: 0; width: auto; height: 100%; aspect-ratio: 720 / 806; translate: -50% 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.dienst__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(10, 10, 10, 0.35), rgba(10, 10, 10, 0.55)); }
.dienst__hero { min-height: 100svh; display: flex; align-items: center; padding-top: var(--kophoogte); }
.dienst__hero .breed { display: grid; gap: 1.5rem; }
.dienst__kop { display: grid; font-size: var(--maat-hero); line-height: 1.02; }
.dienst__kop span { animation: kopIn 1.1s var(--uit) both; animation-delay: calc(0.15s + var(--i) * 0.12s); }
@keyframes kopIn { from { opacity: 0; transform: translateY(0.4em); } }
.dienst__intro { min-height: 85svh; display: flex; align-items: center; justify-content: flex-end; }
.dienst__beeld--donker .dienst__intro { min-height: 0; padding-bottom: var(--ruimte); }
.dienst__introtekst { max-width: 32rem; display: grid; gap: 1.25rem; justify-items: start; }
.dienst__introtekst h2 { font-size: var(--maat-l); }
.dienst__introtekst p { opacity: 0.9; }
.route__mens--licht { color: var(--wit); margin-top: 0.5rem; }
.dienst__rocket { padding-bottom: var(--ruimte); }
.dienst__rocket .rocket__toon { max-width: 64rem; margin-inline: auto; }
.dienst__waarom { display: grid; gap: clamp(2rem, 4vw, 4rem); padding-block: calc(var(--ruimte) * 0.5) var(--ruimte); }
.dienst__waaromkop { font-size: var(--maat-xxl); max-width: 13ch; }
.waarom { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(2rem, 5vw, 6rem); align-items: start; }
.waarom__item { border-top: 1px solid var(--lijn-licht); }
.waarom__item summary { list-style: none; display: grid; grid-template-columns: 2.5rem 1fr auto; gap: 1rem; align-items: center; padding: 1.25rem 0; cursor: pointer; font: 500 var(--maat-s)/1.3 var(--font-tekst); text-transform: uppercase; letter-spacing: 0.04em; }
.waarom__item summary::-webkit-details-marker { display: none; }
.waarom__nr { font: 700 var(--maat-xs)/1 var(--font-kop); opacity: 0.7; }
.waarom__plus { position: relative; width: 14px; height: 14px; transition: transform 0.4s var(--uit); }
.waarom__plus::before, .waarom__plus::after { content: ""; position: absolute; inset: 6px 0; background: currentColor; border-radius: 2px; }
.waarom__plus::after { transform: rotate(90deg); }
.waarom__item[open] .waarom__plus { transform: rotate(45deg); }
.waarom__item p { padding: 0 0 1.5rem 3.5rem; max-width: 34rem; opacity: 0.85; }
.dienst__koppeling { background: var(--zwart); color: var(--wit); padding: var(--ruimte) 0; border-top: 1px solid var(--lijn-licht); overflow: hidden; }
.dienst__koppelbinnen > div:first-child { display: grid; gap: 1.25rem; justify-items: start; }
.dienst__koppeling h2 { font-size: var(--maat-xl); }
.dienst__koppeling p:not(.label) { max-width: 30rem; opacity: 0.85; }
.dienst__cases { padding: var(--ruimte) 0; overflow: hidden; }
.strook { display: flex; gap: clamp(1rem, 2vw, 1.75rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-inline: max(var(--rand), calc((100% - var(--breedte)) / 2 + var(--rand))); scroll-padding-inline: max(var(--rand), calc((100% - var(--breedte)) / 2 + var(--rand))); }
.strook::-webkit-scrollbar { display: none; }
.strook__case { flex: 0 0 min(80vw, 30rem); scroll-snap-align: start; display: grid; gap: 1rem; align-content: start; }
.strook__case .case__beeld img { transition: transform 1.2s var(--uit); }
.strook__case:hover .case__beeld img { transform: scale(1.05); }
.strook__case:hover .case__beeld video { opacity: 1; }
.dienst__proces { background: var(--roze); color: var(--zwart); padding: var(--ruimte) 0; }
.dienst__proceslabel { font: 700 var(--maat-l)/1.2 var(--font-kop); opacity: 0.5; }
.dienst__proceskop { font-size: var(--maat-xxl); margin: 0.3rem 0 clamp(3rem, 5vw, 5rem); }
.proces { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: clamp(2rem, 3vw, 3rem); }
.proces__stap { display: grid; gap: 0.75rem; align-content: start; padding-top: 1.25rem; border-top: 1.5px solid var(--zwart); }
.proces__nr { font: 700 var(--maat-s)/1 var(--font-kop); }
.proces__stap h3 { font-size: var(--maat-l); }
.proces__stap p { max-width: 26rem; }
.dienst__proceskop { max-width: 22ch; }
.proces__stap .proces__lever { margin-top: auto; padding-top: 0.75rem; border-top: 1px solid rgba(0, 0, 0, 0.18); font: 700 var(--maat-xs)/1.4 var(--font-tekst); }
.proces__stap { grid-template-rows: auto auto auto 1fr; }

/* ---------- Voorbeeld bij een werkwijze-stap ----------
   Desktop: een kaart die de muis volgt zolang je boven een stap hangt.
   Mobiel: een venster dat bovenin blijft staan en meewisselt met de stap in beeld. */
.dienst__proces { position: relative; }
.voorbeeld { --b: clamp(20rem, 29vw, 28rem); position: absolute; left: 0; top: 0; z-index: 5; width: var(--b); aspect-ratio: 16 / 11; border-radius: 0.6rem; overflow: hidden; background: #0d0d0d; color: var(--wit); box-shadow: 0 2rem 4rem -1rem rgba(0, 0, 0, 0.45); pointer-events: none; opacity: 0; scale: 0.85; transform: translate3d(var(--x, 0), var(--y, 0), 0) rotate(var(--r, 0deg)); transition: opacity 0.35s var(--uit), scale 0.45s var(--uit); font: 500 calc(var(--b) / 36)/1.3 var(--font-tekst); }
.voorbeeld.is-zichtbaar { opacity: 1; scale: 1; }
.voorbeeld__label { position: absolute; right: 0.7em; top: 0.7em; z-index: 3; padding: 0.25em 0.7em; border-radius: var(--hoek-pil); background: var(--roze); color: var(--zwart); font-size: 0.85em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.voorbeeld__scene { position: absolute; inset: 0; opacity: 0; transition: opacity 0.3s; }
.voorbeeld__scene.is-actief { opacity: 1; }
.proces--voorbeeld .proces__stap { cursor: default; transition: opacity 0.3s; }
.proces--voorbeeld:hover .proces__stap:not(:hover) { opacity: 0.45; }
.scene { position: absolute; inset: 0; display: grid; }
.doc { display: grid; align-content: space-between; gap: 0.9em; padding: 1.3em 1.4em; background: #f8f0eb; color: var(--zwart); }
.doc--donker { background: #111; color: var(--wit); }
.doc__kop { display: flex; align-items: baseline; gap: 0.8em; padding-bottom: 0.7em; border-bottom: 1px solid currentColor; padding-right: 6em; }
.doc__kop strong { font: 700 1.45em/1 var(--font-kop); }
.doc__kop span { opacity: 0.6; }
.doc__voet { display: flex; align-items: center; gap: 0.5em; opacity: 0.7; }
.doc__voet i { width: 3.5em; height: 0.55em; border-radius: 1em; background: currentColor; opacity: 0.25; }
.doc__voet--roze { color: var(--roze); opacity: 1; font-weight: 700; }
.doc__sub { font-weight: 700; }
.is-actief .doc > * { animation: kom 0.6s var(--uit) both; }
.is-actief .doc > :nth-child(2) { animation-delay: 0.1s; }
.is-actief .doc > :nth-child(3) { animation-delay: 0.2s; }
.is-actief .doc > :nth-child(4) { animation-delay: 0.3s; }
@keyframes kom { from { opacity: 0; transform: translateY(0.8em); } }
@keyframes groei { from { transform: scaleX(0); } }
@keyframes stijg { from { transform: scaleY(0); } }
@property --n { syntax: "<integer>"; inherits: false; initial-value: 0; }
.teller { --n: 0; counter-reset: n var(--n); }
.teller::after { content: counter(n); }
.is-actief .teller { animation: tel 1.4s var(--uit) 0.2s forwards; }
@keyframes tel { to { --n: var(--tot); } }

.scan { display: grid; grid-template-columns: 7em 1fr; gap: 0.6em 1.4em; align-items: center; }
.scan__meter { grid-area: 1 / 1; width: 7em; transform: rotate(-90deg); }
.scan__meter circle { fill: none; stroke: rgba(255, 255, 255, 0.12); stroke-width: 8; }
.scan__meter .scan__boog { stroke: var(--roze); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; }
.is-actief .scan__boog { animation: boog 1.4s var(--uit) 0.2s forwards; }
@keyframes boog { to { stroke-dashoffset: 42; } }
.scan__getal { grid-area: 1 / 1; place-self: center; display: grid; justify-items: center; gap: 0.15em; }
.scan__getal b { font: 700 2.2em/1 var(--font-kop); }
.scan__getal small { font-size: 0.62em; opacity: 0.6; }
.scan__balken { grid-area: 1 / 2; display: grid; gap: 0.55em; }
.scan__balken li { display: grid; gap: 0.25em; }
.scan__balken i, .score i { display: block; height: 0.5em; border-radius: 1em; background: rgba(255, 255, 255, 0.1); position: relative; overflow: hidden; }
.scan__balken i::after, .score i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: inherit; background: var(--roze); transform-origin: left; }
.is-actief .scan__balken i::after, .is-actief .score i::after { animation: groei 1s var(--uit) both; animation-delay: calc(0.3s + var(--i) * 0.1s); }

.stapel { position: absolute; inset: 0; background: #d9edf3; }
.stapel img { position: absolute; inset: 8% 7%; width: 86%; height: 84%; object-fit: cover; border-radius: 0.4em; box-shadow: 0 1em 2em -0.6em rgba(0, 0, 0, 0.35); opacity: 0; }
.is-actief .stapel img { animation: blad 6s var(--uit) infinite; animation-delay: calc(var(--i) * 1.2s); }
@keyframes blad { 0% { opacity: 0; transform: translateY(12%) rotate(3deg); } 6%, 20% { opacity: 1; transform: none; } 26%, 100% { opacity: 0; transform: translateY(-6%) rotate(-2deg) scale(0.96); } }

.browser { position: absolute; inset: 0; display: grid; grid-template-rows: auto 1fr; background: #1c1c1c; }
.browser__balk { display: flex; gap: 0.35em; padding: 0.7em; }
.browser__balk i { width: 0.6em; height: 0.6em; border-radius: 50%; background: rgba(255, 255, 255, 0.25); }
.browser__beeld { position: relative; overflow: hidden; }
.browser__beeld img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0; }
.is-actief .browser__beeld img { animation: site 7.5s var(--uit) infinite; animation-delay: calc(var(--i) * 1.5s); }
@keyframes site { 0% { opacity: 0; transform: scale(1.08); } 5%, 20% { opacity: 1; transform: none; } 25%, 100% { opacity: 0; } }

.raster { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 0.35em; padding: 0.35em; background: #111; }
.raster img { width: 100%; height: 100%; object-fit: cover; border-radius: 0.3em; }
.is-actief .raster img { animation: kom 0.7s var(--uit) both; animation-delay: calc(var(--i) * 0.12s); }
.raster__kanalen { position: absolute; left: 0.8em; bottom: 0.8em; right: 0.8em; display: flex; flex-wrap: wrap; gap: 0.35em; align-items: center; }
.raster__kanalen span, .raster__kanalen em { padding: 0.3em 0.8em; border-radius: var(--hoek-pil); background: rgba(13, 13, 13, 0.8); font-style: normal; font-weight: 700; }
.raster__kanalen em { background: var(--roze); color: var(--zwart); }
.is-actief .raster__kanalen > * { animation: kom 0.5s var(--uit) both; animation-delay: calc(0.6s + var(--i, 3) * 0.12s); }

.kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6em; }
.kpis div { padding: 0.7em; border-radius: 0.5em; background: rgba(255, 255, 255, 0.06); }
.kpis small { display: block; opacity: 0.6; }
.kpis b { font: 700 1.6em/1.1 var(--font-kop); color: var(--roze); }
.staven { display: flex; align-items: end; gap: 4%; height: 5.5em; }
.staven i { position: relative; flex: 1; height: var(--h); border-radius: 0.3em 0.3em 0 0; background: linear-gradient(var(--roze), rgba(253, 191, 202, 0.25)); transform-origin: bottom; }
.is-actief .staven i { animation: stijg 0.9s var(--uit) both; animation-delay: calc(0.3s + var(--i) * 0.08s); }
.staven small { position: absolute; bottom: -1.5em; left: 0; right: 0; text-align: center; opacity: 0.6; }

.score { display: grid; gap: 0.42em; }
.score li { display: grid; grid-template-columns: 6em 1fr 1.2em; gap: 0.7em; align-items: center; }
.score i { background: rgba(0, 0, 0, 0.08); overflow: visible; }
.score i::before { content: ""; position: absolute; left: 90%; top: -0.25em; bottom: -0.25em; width: 2px; background: var(--zwart); }
.score i::after { background: var(--zwart); }
.score b { text-align: right; }

.fasen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.4em; }
.fasen div { display: grid; gap: 0.2em; padding: 0.7em; border-radius: 0.4em; background: var(--wit); border-top: 0.25em solid var(--roze); }
.is-actief .fasen div { animation: kom 0.6s var(--uit) both; animation-delay: calc(0.2s + var(--i) * 0.15s); }
.fasen small { opacity: 0.6; }
.vinken { display: grid; gap: 0.35em; }
.vinken li { display: flex; gap: 0.6em; align-items: center; }
.vinken li::before { content: "✓"; display: grid; place-content: center; width: 1.4em; height: 1.4em; border-radius: 50%; background: var(--zwart); color: var(--roze); font-weight: 700; }
.is-actief .vinken li::before { animation: vink 0.4s var(--uit) both; animation-delay: calc(0.8s + var(--i) * 0.35s); }
@keyframes vink { from { transform: scale(0); } }

.reis { width: 100%; overflow: visible; font-family: var(--font-tekst); }
.reis text { text-anchor: middle; fill: var(--zwart); }
.reis__naam { font-size: 8.5px; font-weight: 700; }
.reis__klein { font-size: 6.5px; opacity: 0.6; }
.reis__baan, .reis__gedaan { fill: none; stroke-width: 2; }
.reis__baan { stroke: #E3DCD2; stroke-dasharray: 4 5; }
.reis__gedaan { stroke: var(--zwart); stroke-dasharray: 1; stroke-dashoffset: 1; }
.reis__fase circle { fill: var(--zwart); stroke: #f8f0eb; stroke-width: 2; }
.reis__fase { opacity: 0.35; }
.reis__raket { offset-path: path("M22,88 C80,16 200,14 272,54"); offset-rotate: auto; offset-distance: 0%; }
.reis__vlam { fill: #ff8a3d; transform-box: fill-box; transform-origin: 50% 0; animation: vlam 0.14s ease-in-out infinite alternate; }
@keyframes vlam { from { transform: scaleY(0.7) scaleX(0.85); } to { transform: scaleY(1.3) scaleX(1.05); } }
.reis__mars { transform-box: fill-box; transform-origin: center; }
.is-actief .reis__gedaan { animation: spoor 3.2s cubic-bezier(.5, 0, .3, 1) 0.4s forwards; }
.is-actief .reis__raket { animation: reisvlucht 3.2s cubic-bezier(.5, 0, .3, 1) 0.4s forwards; }
.is-actief .reis__fase { animation: fase 0.4s var(--uit) forwards; animation-delay: calc(1.2s + var(--i) * 0.8s); }
.is-actief .reis__fase circle { animation: reisstip 0.4s var(--uit) forwards; animation-delay: calc(1.2s + var(--i) * 0.8s); }
.is-actief .reis__mars { animation: landing 0.6s cubic-bezier(.2, 1.6, .4, 1) 3.5s both; }
@keyframes spoor { to { stroke-dashoffset: 0.05; } }
@keyframes reisvlucht { to { offset-distance: 95%; } }
@keyframes fase { to { opacity: 1; } }
@keyframes reisstip { to { fill: var(--roze); stroke: var(--zwart); } }
@keyframes landing { 50% { transform: scale(1.18); } }
.pva__onder { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2em; align-items: start; }
.pva__onder > div { display: grid; gap: 0.5em; }
.winst { display: grid; gap: 0.4em; }
.winst span { display: grid; grid-template-columns: 4.5em 1fr; gap: 0.7em; align-items: center; }
.winst i { height: 0.6em; border-radius: 1em; background: var(--zwart); width: var(--w); transform-origin: left; }
.is-actief .winst i { animation: groei 1s var(--uit) both; animation-delay: calc(1.6s + var(--i) * 0.15s); }
.regels { display: grid; gap: 0.1em; }
.regels div { padding-block: 0.8em !important; }
.kwartaal__meter svg { width: 11em !important; }
.staven--kwartaal { height: 8em; }
.regels div { display: grid; grid-template-columns: 8em 1fr; gap: 0.8em; padding: 0.55em 0; border-bottom: 1px solid rgba(0, 0, 0, 0.12); }
.regels dt { font-weight: 700; }
.is-actief .regels div { animation: kom 0.5s var(--uit) both; animation-delay: calc(0.2s + var(--i) * 0.18s); }
.stempel { position: absolute; right: 1.4em; bottom: 1.2em; padding: 0.4em 0.9em; border: 2px solid #c2185b; border-radius: 0.3em; color: #c2185b; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; transform: rotate(-8deg); opacity: 0; }
.is-actief .stempel { animation: stempel 0.45s cubic-bezier(.2, 1.6, .4, 1) 1.3s forwards; }
@keyframes stempel { from { opacity: 0; transform: rotate(-8deg) scale(1.8); } to { opacity: 1; transform: rotate(-8deg) scale(1); } }

.modules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.45em; }
.modules span { padding: 0.8em 0.5em; border-radius: 0.4em; border: 1px dashed rgba(255, 255, 255, 0.3); text-align: center; font-weight: 700; opacity: 0.45; }
.is-actief .modules span { animation: module 0.5s var(--uit) forwards; animation-delay: calc(0.3s + var(--i) * 0.28s); }
@keyframes module { to { opacity: 1; border-style: solid; border-color: var(--roze); background: rgba(253, 191, 202, 0.14); } }

.kwartaal { display: grid; grid-template-columns: 9em 1fr; gap: 1.4em; align-items: end; padding-bottom: 1.5em; }
.kwartaal__meter { display: grid; justify-items: center; }
.kwartaal__meter svg { width: 9em; }
.kwartaal__meter path { fill: none; stroke: rgba(255, 255, 255, 0.12); stroke-width: 9; stroke-linecap: round; }
.kwartaal__meter .kwartaal__boog { stroke: var(--roze); stroke-dasharray: 100; stroke-dashoffset: 100; }
.is-actief .kwartaal__boog { animation: meter 1.6s var(--uit) 0.3s forwards; }
@keyframes meter { to { stroke-dashoffset: 28; } }
.kwartaal__meter small { opacity: 0.7; }
.staven--kwartaal { height: 6em; }

/* Twee fases in één scène: eerst A, dan schakelt de JS .is-b aan. Wat in B
   beweegt, start pas op dat moment. */
.twee { position: absolute; inset: 0; }
.fase { position: absolute; inset: 0; transition: opacity 0.6s var(--uit), transform 0.8s var(--uit); }
.fase--b { opacity: 0; transform: scale(1.04); }
.twee.is-b .fase--a { opacity: 0; transform: scale(0.97); }
.twee.is-b .fase--b { opacity: 1; transform: none; }
.twee:not(.is-b) .fase--b, .twee:not(.is-b) .fase--b *, .twee:not(.is-b) .fase--b *::before, .twee:not(.is-b) .fase--b *::after { animation: none !important; }

.radar__binnen { display: grid; grid-template-columns: 1fr auto; gap: 1em; align-items: center; }
.radar__binnen svg { width: 100%; height: 17em; overflow: visible; font-family: var(--font-tekst); }
.radar__ring { fill: none; stroke: rgba(0, 0, 0, 0.1); }
.radar__as { stroke: rgba(0, 0, 0, 0.1); }
.radar__naam { font-size: 9.5px; font-weight: 700; text-anchor: middle; fill: var(--zwart); opacity: 0.75; }
.radar__doel { fill: none; stroke: var(--zwart); stroke-width: 1.2; stroke-dasharray: 3 3; transform-box: view-box; transform-origin: 110px 110px; }
.radar__nu { fill: rgba(253, 191, 202, 0.75); stroke: #c2185b; stroke-width: 1.5; stroke-linejoin: round; transform-box: view-box; transform-origin: 110px 110px; }
.is-b .radar__doel { animation: radarop 1s var(--uit) 0.3s both; }
.is-b .radar__nu { animation: radarop 1.4s cubic-bezier(.3, 1.4, .5, 1) 0.9s both; }
.is-b .radar__naam { animation: kom 0.5s var(--uit) 0.2s both; }
@keyframes radarop { from { opacity: 0; transform: scale(0); } }
.radar__legenda { display: grid; gap: 0.7em; }
.radar__legenda li { display: grid; grid-template-columns: auto 1fr; gap: 0.1em 0.5em; align-items: center; }
.radar__legenda b { grid-column: 2; font: 700 1.8em/1 var(--font-kop); }
.radar__stip { width: 0.9em; height: 0.9em; border-radius: 0.2em; }
.radar__stip--nu { background: var(--roze); box-shadow: inset 0 0 0 1.5px #c2185b; }
.radar__stip--doel { box-shadow: inset 0 0 0 1.5px var(--zwart); }
.is-b .radar__legenda li { animation: kom 0.5s var(--uit) both; animation-delay: calc(1.4s + var(--i, 0) * 0.2s); }

.crm { display: grid; grid-template-columns: 1.6fr 1fr; grid-template-rows: auto auto 1fr; gap: 0.5em; padding: 1.1em; color: var(--wit); background: radial-gradient(circle at 72% 45%, #ffd9e1, var(--roze) 45%, #e993a6); }
.crm__foto { position: absolute; right: -10%; bottom: -14%; width: 66%; height: auto; }
.crm .crm__auto { align-self: end; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); background: rgba(20, 12, 14, 0.22); }
.crm .glas { background: rgba(20, 12, 14, 0.34); border-color: rgba(255, 255, 255, 0.35); }
.crm::after { --wit: var(--zwart); }
.crm::before { content: ""; position: absolute; inset: 0.5em; border: 1px solid rgba(255, 255, 255, 0.22); pointer-events: none; }
.crm::after { content: ""; position: absolute; inset: 0.3em; pointer-events: none;
  background:
    linear-gradient(var(--wit), var(--wit)) left top / 0.9em 1px, linear-gradient(var(--wit), var(--wit)) left top / 1px 0.9em,
    linear-gradient(var(--wit), var(--wit)) right top / 0.9em 1px, linear-gradient(var(--wit), var(--wit)) right top / 1px 0.9em,
    linear-gradient(var(--wit), var(--wit)) left bottom / 0.9em 1px, linear-gradient(var(--wit), var(--wit)) left bottom / 1px 0.9em,
    linear-gradient(var(--wit), var(--wit)) right bottom / 0.9em 1px, linear-gradient(var(--wit), var(--wit)) right bottom / 1px 0.9em;
  background-repeat: no-repeat; }
.crm > :not(img) { position: relative; z-index: 1; }
.glas { padding: 0.55em 0.75em; border-radius: 0.55em; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.24); -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3); }
.glas small { display: block; opacity: 0.75; }
.crm__kop { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; padding-right: 6.5em; }
.crm__kop strong { font: 700 1.25em/1 var(--font-kop); }
.crm__live { display: flex; align-items: center; gap: 0.4em; font-weight: 700; }
.crm__live::before { content: ""; width: 0.55em; height: 0.55em; border-radius: 50%; background: #3ddc84; animation: knipper 1.6s steps(2) infinite; }
.crm__kpis { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5em; }
.crm__kpis b { font: 700 1.45em/1.15 var(--font-kop); }
.crm__inbox { --rij: 2.35em; overflow: hidden; }
.crm__inbox ul { height: calc(var(--rij) * 3); overflow: hidden; margin-top: 0.3em; }
.crm__inbox li { display: grid; grid-template-columns: auto 1fr; gap: 0 0.55em; align-items: center; height: var(--rij); }
.crm__inbox li em { grid-column: 2; font-style: normal; font-size: 0.8em; color: var(--roze); line-height: 1; }
.crm__inbox li > span:nth-child(2) { font-weight: 700; line-height: 1.1; }
.crm__wie { grid-row: span 2; display: grid; place-content: center; width: 1.9em; height: 1.9em; border-radius: 50%; background: var(--roze); color: var(--zwart); font-weight: 800; font-size: 0.85em; }
.is-b .crm__inbox li { animation: rol 6s var(--uit) 0.6s both; }
@keyframes rol { 0%, 22% { transform: none; } 30%, 52% { transform: translateY(calc(var(--rij) * -1)); } 60%, 82% { transform: translateY(calc(var(--rij) * -2)); } 90%, 100% { transform: translateY(calc(var(--rij) * -3)); } }
.crm__auto { display: grid; align-content: end; }
.crm__auto b { font: 700 3em/1 var(--font-kop); color: var(--roze); }
.is-b .crm > .glas, .is-b .crm__kpis .glas { animation: kom 0.6s var(--uit) both; animation-delay: calc(0.1s + var(--i, 0) * 0.12s); }
.is-b .crm__inbox { animation-delay: 0.4s !important; }
.is-b .crm__auto { animation-delay: 0.55s !important; }
.is-b .crm .teller { animation: tel 2.4s var(--uit) 0.6s forwards; }

@media (hover: none), (max-width: 1023px) {
  .voorbeeld__houder { position: sticky; bottom: 0; z-index: 5; margin: 0 calc(var(--rand, 1.25rem) * -1); padding: 2.5rem var(--rand, 1.25rem) calc(env(safe-area-inset-bottom) + 4.75rem); background: linear-gradient(rgba(253, 191, 202, 0), var(--roze) 2.25rem); pointer-events: none; }
  .voorbeeld { --b: min(100%, 20rem); position: relative; width: var(--b); margin: 0 auto; opacity: 1; scale: 1; transform: none; font-size: calc(min(100vw - 2 * var(--rand, 1.25rem), 20rem) / 36); }
  .proces--voorbeeld .proces__stap { opacity: 0.4; }
  .proces--voorbeeld .proces__stap.is-hier { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .voorbeeld *, .voorbeeld *::before, .voorbeeld *::after { animation-duration: 0.01s !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; } }

/* ---------- Traject: een AI-transformatie van dichtbij ---------- */
.traject { background: var(--zwart); color: var(--wit); padding: var(--ruimte) 0; border-top: 1px solid var(--lijn-licht); }
.traject__kop { display: grid; gap: 1rem; max-width: 46rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.traject__kop .sectiekop__titel { color: var(--wit); max-width: 18ch; }
.traject__kop .sectiekop__titel em { color: var(--roze); background: none; }
.traject__intro { opacity: 0.85; }
.traject__raster { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 3vw, 3rem); }
.traject__blok { display: grid; gap: 0.9rem; align-content: start; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 0.4rem; background: #141414; }
.traject__blok h3 { font-size: var(--maat-l); }
.traject__blok > p { opacity: 0.75; max-width: 34rem; }
.meting { display: grid; gap: 0.7rem; margin-top: 0.75rem; }
.meting__rij { display: grid; grid-template-columns: 11rem 1fr auto; gap: 1rem; align-items: center; font-size: var(--maat-xs); }
.meting__balk { position: relative; height: 0.5rem; border-radius: var(--hoek-pil); background: rgba(255, 255, 255, 0.08); }
.meting__balk::after { content: ""; position: absolute; top: -0.2rem; bottom: -0.2rem; left: 90%; width: 2px; background: rgba(255, 255, 255, 0.5); }
.meting__balk i { position: absolute; inset: 0 auto 0 0; width: var(--nu); border-radius: inherit; background: var(--roze); transform-origin: left; transform: scaleX(0); transition: transform 1s var(--uit); transition-delay: calc(0.3s + var(--i) * 0.06s); }
.is-zichtbaar .meting__balk i { transform: none; }
.meting__score { font-weight: 700; white-space: nowrap; }
.meting__score small { margin-left: 0.4rem; font-weight: 500; opacity: 0.5; }
.lagen { display: grid; gap: 0.5rem; margin-top: 0.75rem; }
.lagen__laag { display: grid; grid-template-columns: 2rem 1fr; gap: 0 0.9rem; align-items: baseline; padding: 0.9rem 1rem; border-radius: 0.4rem; background: rgba(255, 255, 255, calc(0.03 + var(--i) * 0.025)); font-size: var(--maat-s); }
.lagen__laag span:last-child { grid-column: 2; opacity: 0.7; }
.lagen__baan { display: grid; grid-template-columns: minmax(9rem, 44%) 1fr; gap: clamp(1rem, 2vw, 1.75rem); align-items: center; margin-top: 0.75rem; }
.lagen__baan .lagen { margin-top: 0; }
.raket { position: relative; }
.raket svg { position: relative; z-index: 1; display: block; width: 100%; height: auto; }
.raket__vlam-gl { position: absolute; left: 32%; top: 81.2%; width: 36%; height: 18.8%; z-index: 0; pointer-events: none; }
.raket__vorm { fill: var(--wit); stroke: var(--zwart); stroke-width: 2; transition: fill 0.25s; }
.raket__nr { font: 700 14px var(--font-kop); text-anchor: middle; fill: var(--zwart); }
.raket__naam { font: 500 9.5px var(--font-tekst); text-anchor: middle; fill: var(--zwart); }
.raket__marss { font: 500 10px var(--font-tekst); fill: var(--roze); text-anchor: middle; letter-spacing: 2px; }
.raket__vinnen path { fill: var(--roze); opacity: 0.85; }
.raket__trap { cursor: pointer; transition: opacity 0.2s; }
.raket__trap.is-dim { opacity: 0.7; }
.raket__trap.is-actief .raket__vorm { fill: var(--roze); }
.raket__trap, .raket__vinnen, .raket__vlammen { opacity: 0; transform: translateY(14px); transition: opacity 0.5s var(--uit), transform 0.6s var(--uit); }
.is-zichtbaar .raket__trap, .is-zichtbaar .raket__vinnen { opacity: 1; transform: none; transition-delay: calc(0.3s + var(--i, 1.5) * 0.28s); }
.is-zichtbaar .raket__trap.is-dim { opacity: 0.7; }
.is-zichtbaar .raket__vlammen { opacity: 1; transform: none; transition-delay: 1.8s; }
.raket__vlam-gl { opacity: 0; transition: opacity 0.6s 1.8s; }
.is-zichtbaar .raket__vlam-gl { opacity: 1; }
.raket__vlammen, .vl-lijf { transform-box: fill-box; transform-origin: 50% 0; }
.vl-lijf { animation: vlamzwaai 0.32s ease-in-out infinite; }
.vl-gloed { animation: vlamgloed 0.55s ease-in-out infinite; }
@keyframes vlamzwaai { 0%, 100% { transform: none; } 25% { transform: scaleY(1.06) scaleX(0.86) rotate(-2.2deg); } 50% { transform: scaleY(0.97) scaleX(1.06) rotate(1.8deg); } 75% { transform: scaleY(1.04) scaleX(0.9) rotate(-1.2deg); } }
@keyframes vlamgloed { 0%, 100% { opacity: 0.28; } 50% { opacity: 0.5; } }
.lagen__laag { cursor: pointer; border: 1px solid rgba(255, 255, 255, 0.1); transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
.lagen__laag:hover { background: rgba(255, 255, 255, 0.08); }
.lagen__laag.is-actief { background: var(--wit); color: var(--zwart); border-color: var(--wit); }
.lagen__laag.is-actief .lagen__nr { color: #b0607c; }
@media (max-width: 1023px) { .lagen__baan { grid-template-columns: 1fr; } .raket { max-width: 13rem; margin: 0 auto; } }
.lagen__nr { grid-row: span 2; font: 700 var(--maat-s)/1 var(--font-kop); color: var(--roze); }
.volwassen { display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: center; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.1); }
.volwassen svg { width: 100%; max-width: 22rem; height: auto; overflow: visible; font-family: var(--font-tekst); }
.volwassen__ring, .volwassen__as { fill: none; stroke: rgba(255, 255, 255, 0.12); }
.volwassen__doel { fill: none; stroke: var(--wit); stroke-width: 1.2; stroke-dasharray: 4 4; opacity: 0.7; }
.volwassen__nu { fill: rgba(253, 191, 202, 0.35); stroke: var(--roze); stroke-width: 2; stroke-linejoin: round; }
.volwassen__stip { fill: var(--roze); }
.volwassen__naam { font-size: 11px; font-weight: 600; text-anchor: middle; fill: var(--wit); opacity: 0.75; }
.volwassen__doel, .volwassen__nu, .volwassen__stip { transform-box: view-box; transform-origin: 160px 150px; transform: scale(0); opacity: 0; transition: transform 1.2s cubic-bezier(.3, 1.3, .5, 1), opacity 0.6s; }
.is-zichtbaar .volwassen__doel { transform: none; opacity: 0.7; transition-delay: 0.6s; }
.is-zichtbaar .volwassen__nu, .is-zichtbaar .volwassen__stip { transform: none; opacity: 1; transition-delay: 1.1s; }
.volwassen__legenda { display: grid; gap: 1rem; font-size: var(--maat-xs); }
.volwassen__legenda li { display: grid; grid-template-columns: auto 1fr; gap: 0.15rem 0.5rem; align-items: center; }
.volwassen__legenda b { grid-column: 2; font: 700 var(--maat-l)/1 var(--font-kop); }
.volwassen__legenda i { width: 0.8rem; height: 0.8rem; border-radius: 0.2rem; }
.volwassen__legenda .is-nu { background: rgba(253, 191, 202, 0.35); box-shadow: inset 0 0 0 2px var(--roze); }
.volwassen__legenda .is-doel { box-shadow: inset 0 0 0 1.5px var(--wit); }
@media (max-width: 1023px) { .traject__raster { grid-template-columns: 1fr; } }
@media (max-width: 599px) { .meting__rij { grid-template-columns: 1fr auto; } .meting__balk { grid-column: 1 / -1; grid-row: 2; } }

/* ---------- Aanpak ---------- */
.aanpak { padding: calc(var(--ruimte) * 0.6) 0 var(--ruimte); }
.stappen { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 3rem); }
.stap { display: grid; gap: 1rem; align-content: start; padding-top: 1.5rem; border-top: 1.5px solid var(--grijs); }
.stap__nr { font: 700 clamp(3.5rem, 2rem + 4vw, 6rem)/0.9 var(--font-kop); color: transparent; -webkit-text-stroke: 1.5px var(--zwart); letter-spacing: -0.03em; }
.stap__kop { font-size: var(--maat-l); color: var(--grijs); }
.stap p { max-width: 26rem; }
.cijfers { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 3rem); margin-top: clamp(4rem, 3rem + 5vw, 8rem); }
.cijfer { display: grid; gap: 0.5rem; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--wit); border-radius: var(--hoek); }
.cijfer__waarde { font: 700 clamp(3rem, 2rem + 4vw, 6rem)/1 var(--font-kop); color: var(--zwart); letter-spacing: -0.035em; }
.cijfer dd { font-weight: 500; }

/* ---------- Aparte pagina's: kop ---------- */
.paginakop { background: var(--zwart); color: var(--wit); padding: calc(var(--kophoogte) + clamp(4rem, 10vw, 9rem)) 0 clamp(4rem, 8vw, 7rem); }
.paginakop .breed { display: grid; gap: 1.5rem; }
.paginakop__titel { font-size: var(--maat-hero); max-width: 14ch; }
.paginakop__titel em { color: var(--roze); }
.paginakop__intro { max-width: 34rem; font-size: clamp(1.05rem, 1rem + 0.4vw, 1.35rem); opacity: 0.8; }

/* ---------- Juridische tekst (privacy) ---------- */
.juridisch { padding: clamp(3rem, 7vw, 6rem) var(--rand) clamp(5rem, 10vw, 8rem); background: var(--creme, #f8f0eb); color: var(--zwart); }
.juridisch__tekst { max-width: 44rem; margin: 0 auto; line-height: 1.7; }
.juridisch__intro { font-size: clamp(1.1rem, 1rem + 0.5vw, 1.4rem); line-height: 1.5; }
.juridisch h2 { margin: 2.75rem 0 0.75rem; font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.9rem); }
.juridisch p + p, .juridisch ul + p, .juridisch p + ul { margin-top: 0.9rem; }
.juridisch ul { display: grid; gap: 0.6rem; padding-left: 1.2rem; list-style: disc; }
.juridisch address { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(10, 10, 10, 0.15); font-style: normal; }

/* ---------- Voor wie (Rocket en AI-transformatie) ---------- */
.voorwie { padding: var(--ruimte) 0; background: var(--creme, #f8f0eb); }
.voorwie__binnen { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 6rem); align-items: start; }
.voorwie__intro { font: 500 clamp(1.1rem, 1rem + 0.5vw, 1.4rem)/1.45 var(--font-tekst); margin-bottom: 1.75rem; }
.voorwie__punten { display: grid; border-top: 1px solid var(--lijn); margin-bottom: 2.5rem; }
.voorwie__punten li { display: flex; gap: 0.9rem; align-items: flex-start; padding: 1rem 0; border-bottom: 1px solid var(--lijn); }
.voorwie__punten svg { flex: none; margin-top: 0.2rem; }
.voorwie__door { display: grid; gap: 1rem; justify-items: start; padding: clamp(1.5rem, 2.5vw, 2rem); background: var(--zwart); color: var(--wit); }
.voorwie__door .knop { --k-achter: var(--roze); --k-tekst: var(--zwart); --k-vul: var(--wit); }
@media (max-width: 1023px) { .voorwie__binnen { grid-template-columns: 1fr; } }

/* ---------- Contact ---------- */
.contactkop__titel { max-width: 16ch; }
.contactkop__intro { max-width: 40rem; font-size: clamp(1.15rem, 1rem + 0.6vw, 1.6rem); line-height: 1.45; }
.contactkop__intro a { color: var(--roze); text-decoration: none; white-space: nowrap; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1.5px no-repeat; }
.contactkop__knoppen { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.5rem; }
.contact { padding: var(--ruimte) 0; }
.contact__blokken { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem clamp(2rem, 4vw, 4rem); }
.contact__blokken li { display: grid; align-content: start; gap: 0.75rem; border-top: 1.5px solid currentColor; padding-top: 1.25rem; }
.contact__blokken h2 { font-size: var(--maat-l); }
.contact__blokken p { color: var(--grijs); max-width: 24rem; }
.contact__blokken .contact__actie { color: inherit; font: 600 var(--maat-m)/1.75 var(--font-tekst); }
.contact .contact__blokken .contact__actie a { background-size: 100% 1px; }
.contact :is(.contact__actie, .contact__team) a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.5s var(--uit); }
.contact :is(.contact__actie, .contact__team) a:hover { background-size: 100% 1.5px; }
.contact__team { margin-top: clamp(4rem, 8vw, 7rem); }
.contact__teamkop { font-size: var(--maat-l); margin-bottom: 1rem; }
.contact__team li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.25rem; padding-block: 1rem; border-top: 1px solid rgba(10, 10, 10, 0.15); }
.contact__team li:last-child { border-bottom: 1px solid rgba(10, 10, 10, 0.15); }
.contact__team img { width: 3.5rem; height: 3.5rem; border-radius: 50%; object-fit: cover; }
.contact__team b { display: block; font: 700 var(--maat-l)/1.1 var(--font-kop); }
.contact__team span { font: 500 var(--maat-xs)/1 var(--font-tekst); letter-spacing: 0.14em; text-transform: uppercase; color: var(--grijs); }
.contact__team li > a { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; }
@media (max-width: 1023px) {
  .contact__blokken { grid-template-columns: 1fr; }
}
@media (max-width: 559px) {
  .contact__team li { grid-template-columns: auto 1fr; }
  .contact__team li > a { grid-column: 2; }
}

/* ---------- Cases binnenkort: casescompilatie op de achtergrond, tekst en logo's erover ---------- */
.binnenkort { position: relative; display: grid; align-content: center; min-height: min(100svh, 56rem); overflow: hidden; background: var(--zwart); color: var(--wit); isolation: isolate; padding-block: var(--ruimte); }
.binnenkort__video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.binnenkort::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 45%, rgba(10, 10, 10, 0.97) 88%), linear-gradient(90deg, rgba(10, 10, 10, 0.74), rgba(10, 10, 10, 0.42) 70%); }
.binnenkort__inhoud { display: grid; justify-items: start; gap: 1.25rem; }
.binnenkort__kop { font-size: var(--maat-xxl); line-height: 0.95; letter-spacing: -0.035em; max-width: 14ch; }
.binnenkort__tekst { max-width: 34rem; font-size: var(--maat-l); line-height: 1.35; color: rgba(255, 255, 255, 0.88); }
.binnenkort__logolabel { font: 600 clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem)/1.2 var(--font-kop); letter-spacing: -0.02em; }
.binnenkort__logolabel em { font-style: normal; text-decoration: underline; text-decoration-color: var(--roze-diep); text-decoration-thickness: 0.08em; text-underline-offset: 0.12em; }
.binnenkort__knop { justify-self: start; margin-top: 0.5rem; }
.binnenkort__bbi { font: 500 var(--maat-xs)/1.4 var(--font-tekst); letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.75); margin-top: clamp(1.5rem, 3vw, 2.5rem); }

/* Klantlogo's op licht: sluit aan op de lichte sectie erboven, dus alleen ruimte eronder. */
.klanten { display: grid; gap: 1.5rem; padding: 0 0 var(--ruimte); }
.klanten .logoband { margin-top: 0; }
.klanten .logoband__spoor img { filter: brightness(0); opacity: 0.7; }

/* Logoband: twee keer dezelfde rij in één spoor, dat een halve breedte opschuift en dan naadloos opnieuw begint. */
.logoband { margin-top: 1.5rem; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.logoband__spoor { display: flex; align-items: center; width: max-content; animation: logoband var(--logoband-duur, 90s) linear infinite; }
.logoband__spoor li { flex: none; padding-inline: clamp(1.25rem, 2.6vw, 2.5rem); }
.logoband__spoor img { display: block; height: clamp(1.3rem, 0.9rem + 1vw, 2rem); width: auto; max-width: 10rem; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.88; }
.logoband__spoor .is-beeldmerk img { height: clamp(2.2rem, 1.6rem + 1.5vw, 3.2rem); }
@keyframes logoband { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .logoband__spoor { animation: none; flex-wrap: wrap; width: auto; justify-content: center; row-gap: 1.5rem; } .logoband__spoor li[aria-hidden] { display: none; } }

/* ---------- Over ons ---------- */
.overkop { position: relative; display: grid; align-items: end; min-height: 100svh; color: var(--wit); background: var(--zwart); overflow: hidden; }
.overkop__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.overkop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 10, 10, 0.25), rgba(10, 10, 10, 0.2) 40%, rgba(10, 10, 10, 0.78)); }
.overkop__inhoud { position: relative; z-index: 1; display: grid; gap: 1.25rem; padding-block: calc(var(--kophoogte) + 2rem) clamp(3rem, 8vw, 6rem); }
.overkop__kop { font-size: var(--maat-hero); line-height: 0.95; letter-spacing: -0.035em; max-width: 18ch; }
.overkop__kop em { font-style: normal; color: var(--roze); }
.oververhaal { padding-block: var(--ruimte); }
.oververhaal__binnen { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.oververhaal__tekst { display: grid; gap: 1.25rem; font-size: clamp(1.1rem, 1rem + 0.45vw, 1.4rem); line-height: 1.5; }
.oververhaal__tekst p:first-child { font: 600 var(--maat-l)/1.3 var(--font-kop); letter-spacing: -0.01em; }
.overwaarden { margin-top: clamp(4rem, 9vw, 8rem); }
.overwaarden__kop { font: 500 var(--maat-xs)/1 var(--font-tekst); letter-spacing: 0.14em; text-transform: uppercase; color: var(--grijs); margin-bottom: 1.5rem; }
.overwaarden ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.overwaarden li { display: grid; justify-items: start; gap: 0.35rem; padding-top: 1.25rem; border-top: 1.5px solid currentColor; }
.overwaarden__icoon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--roze); color: var(--zwart); margin-bottom: 0.6rem; }
.overwaarden b { font: 700 var(--maat-m)/1.2 var(--font-kop); }
.overwaarden small { font-size: var(--maat-s); color: var(--grijs); }
.overbbi { padding-block: var(--ruimte); background: var(--zwart); color: var(--wit); overflow: hidden; }
.overbbi__tekst { display: grid; gap: 1.25rem; }
.overbbi__tekst > p:last-child { max-width: 34rem; font-size: var(--maat-l); line-height: 1.35; color: rgba(255, 255, 255, 0.85); }
.overbbi__kop { font-size: var(--maat-xxl); line-height: 0.95; letter-spacing: -0.035em; max-width: 14ch; }
.overbbi__kop em { font-style: normal; color: var(--roze); }
.mensenstroom { margin-top: clamp(3rem, 7vw, 5.5rem); }
.mensenstroom__spoor { display: flex; gap: clamp(0.75rem, 1.5vw, 1.25rem); width: max-content; animation: mensenstroom 45s linear infinite; }
.mensenstroom li { flex: none; width: clamp(15rem, 24vw, 22rem); }
.mensenstroom img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; border-radius: 0.5rem; }
@keyframes mensenstroom { to { transform: translateX(-50%); } }
.overteam { padding-block: var(--ruimte); }
.overteam__lijst { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); margin-top: clamp(2rem, 4vw, 3.5rem); }
.overteam__lijst li { display: grid; justify-items: start; gap: 0.4rem; }
.overteam .sectiekop__titel { max-width: 24ch; }
.overteam__lijst img { width: clamp(6rem, 9vw, 8.5rem); aspect-ratio: 1; object-fit: cover; border-radius: 50%; filter: grayscale(1); margin-bottom: 0.75rem; }
.overteam__lijst li { padding: clamp(1.5rem, 2.5vw, 2rem); border-radius: 1.25rem; background: var(--wit); }
.overteam__lijst h3 { font-size: var(--maat-xl); line-height: 1; }
.overteam .knop { --k-achter: var(--zwart); --k-tekst: var(--wit); --k-vul: var(--roze); }
.overteam .knop:hover { --k-tekst: var(--zwart); }
.overteam__initialen { display: grid; place-items: center; width: clamp(6rem, 9vw, 8.5rem); aspect-ratio: 1; border-radius: 50%; background: var(--roze); color: var(--zwart); font: 700 var(--maat-xl)/1 var(--font-kop); margin-bottom: 0.75rem; }
.overteam__groep { margin-top: clamp(3.5rem, 7vw, 6rem); font: 700 var(--maat-xl)/1 var(--font-kop); }
.overteam__groep + .overteam__lijst { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.overteam__tekst { color: var(--grijs); font-size: var(--maat-s); margin-bottom: 0.75rem; }
.overteam__rol { font: 500 var(--maat-xs)/1.4 var(--font-tekst); letter-spacing: 0.14em; text-transform: uppercase; color: var(--grijs); margin-bottom: 0.15rem; }
@media (prefers-reduced-motion: reduce) {
  .mensenstroom { overflow-x: auto; }
  .mensenstroom__spoor { animation: none; }
}
@media (max-width: 1023px) {
  .oververhaal__binnen { grid-template-columns: 1fr; }
  .overwaarden ul { grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; }
}
@media (max-width: 719px) {
  .overkop__inhoud { padding-bottom: 7rem; }
  .overteam__lijst { grid-template-columns: 1fr; }
  .overteam__lijst li { grid-template-columns: 6rem 1fr; column-gap: 1.25rem; align-items: center; }
  .overteam__lijst :is(img, .overteam__initialen) { grid-row: span 4; width: 6rem; margin: 0; }
  .overteam__lijst .knop { grid-column: 2; }
  .overteam__rol { margin-bottom: 0.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    }

/* ---------- Werk: kies wat je wilt zien (bewaard, partials/werk-kiezer.php) ---------- */
.werk { padding: var(--ruimte) 0 0; }
.werk__hint { max-width: 24rem; font-weight: 500; color: var(--grijs-zacht); }
.kiezer { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2vw, 2rem); }
.kiezer__tegel {
  position: relative; display: grid; align-content: start; gap: clamp(1.25rem, 2vw, 1.75rem);
  padding: 0 0 clamp(1.25rem, 2.2vw, 2rem);
  border-radius: var(--hoek); background: var(--wit); color: var(--zwart); text-align: left;
}
.kiezer__preview {
  position: relative; display: block; overflow: hidden;
  height: clamp(15rem, 10rem + 16vw, 30rem);
  border-radius: 0; background: var(--zwart);
  container-type: size;
}
.kiezer__dia { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s var(--uit); }
.kiezer__dia.is-actief { opacity: 1; }
.kiezer__dia img, .kiezer__dia video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kiezer__dia img { transform: scale(1.04); }
.kiezer__tegel.is-hover .kiezer__dia.is-actief img { animation: kenburns 7s linear forwards; }
.kiezer__dia video { opacity: 0; transition: opacity 0.8s; }
.kiezer__dia video.is-spelend { opacity: 1; }
@keyframes kenburns { to { transform: scale(1.14); } }
.kiezer__diaNaam {
  position: absolute; left: 1rem; top: 1rem; z-index: 2;
  padding: 0.35rem 0.75rem; border-radius: var(--hoek-pil); background: var(--wit); color: var(--zwart);
  font: 700 0.6875rem/1 var(--font-tekst); letter-spacing: 0.06em; text-transform: uppercase;
}
.route__foto:has(.mockup) { position: relative; }
.mockup { position: absolute; inset: 0; overflow: hidden; background: #ece8e3; }
.mockup__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.mockup__scherm { position: absolute; left: 0; top: 0; width: 1000px; height: 649px; transform-origin: 0 0; overflow: hidden; background: var(--wit); }
.mockup__site { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; visibility: hidden; }
.mockup__site.is-actief { visibility: visible; }
.mockup__notch { position: absolute; left: 50%; top: 0; width: 9.5%; height: 3.4%; transform: translateX(-50%); background: #0a0a0a; border-radius: 0 0 6px 6px; }
.mockup__scherm::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(255, 255, 255, 0.12), transparent 40%, rgba(0, 0, 0, 0.06)); pointer-events: none; }
.kiezer__tekst { display: grid; gap: 0.5rem; padding: 0 clamp(1.25rem, 2vw, 1.75rem); }
.kiezer__nr { font: 700 var(--maat-xs)/1 var(--font-kop); color: var(--grijs-zacht); }
.kiezer__titel { font: 700 var(--maat-l)/1.1 var(--font-kop); letter-spacing: -0.015em; color: var(--grijs); }
.kiezer__omschrijving { max-width: 30rem; color: var(--grijs); }
.kiezer__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }
.kiezer__tags li {
  padding: 0.3rem 0.7rem; border-radius: var(--hoek-pil); background: var(--roze-zacht); color: var(--zwart);
  font: 600 0.6875rem/1.3 var(--font-tekst); letter-spacing: 0.04em; text-transform: uppercase;
}

/* Systeemdemo (recruitment, CRM, bouwcalculatie, hotel): stil het eindbeeld, bij afspelen loopt elke scène zijn tijdlijn. */
.kiezer__tegel--ai .kiezer__diaNaam { background: var(--zwart); color: var(--wit); }
.dm {
  --veer: cubic-bezier(0.34, 1.56, 0.64, 1);
  position: absolute; inset: 0; overflow: hidden;
  font: 500 1.75cqw/1.3 var(--font-tekst); letter-spacing: 0;
}
.dm--recruitment {
  --groen: #4CC87D; --inkt: #0D2918; --grijs: #5C7064; --lijn: #D0DBD5; --munt: #F5FAF7; --donker: #0D2918;
  background: radial-gradient(circle at 85% -10%, #C9F0D8, transparent 55%), radial-gradient(circle at 0% 110%, #E3F6EA, transparent 50%), #F5FAF7;
  color: var(--inkt);
}
.dm--crm {
  --groen: #1E9E57; --inkt: #290D0D; --grijs: #705C5C; --lijn: #DBD0D0; --munt: #FAF5F5; --donker: #262222; --rood: #DC0000;
  background: radial-gradient(circle at 90% -10%, #F3D9D9, transparent 55%), radial-gradient(circle at 0% 110%, #F7ECE6, transparent 50%), #FAF5F5;
  color: var(--inkt);
}
.dm b { font-weight: 700; }
.dm small { font-size: 0.78em; color: var(--grijs); }
.dm img { display: block; border-radius: 50%; object-fit: cover; aspect-ratio: 1; }
.kiezer__tegel .kiezer__dia .dm img { position: static; height: auto; transform: none; }
.kiezer__tegel.is-hover .kiezer__dia.is-actief .dm img { animation: none; }
.kiezer__tegel .kiezer__dia .dm .dm-logo { aspect-ratio: auto; }
.dm svg { display: block; }
.dm-scene { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 0.5s, visibility 0s 0.5s; }
.dm-scene.is-aan { opacity: 1; visibility: visible; transition: opacity 0.5s; }

/* Inkomen: stil staat alles er, bij is-speelt komt het binnen op --d seconden */
.dm-scene.is-speelt .dm-in { animation: var(--anim, dm-pop) 0.75s var(--veer) both; animation-delay: calc(var(--d, 0) * 1s); }
.dm-in--op { --anim: dm-op; }
.dm-in--links { --anim: dm-links; }
.dm-in--rechts { --anim: dm-rechts; }
.dm-in--voor { --anim: dm-voor; }
@keyframes dm-pop { from { opacity: 0; transform: scale(0.8) translateY(0.5em); } }
@keyframes dm-op { from { opacity: 0; transform: translateY(1.6em); } }
@keyframes dm-links { from { opacity: 0; transform: translateX(-2.4em); } }
@keyframes dm-rechts { from { opacity: 0; transform: translateX(2.4em); } }
@keyframes dm-voor { from { opacity: 0; transform: translateY(40%) scale(0.85) rotate(-6deg); } }
.dm-staaf { display: block; height: var(--h); border-radius: 0.3em 0.3em 0.1em 0.1em; background: var(--groen); transform-origin: bottom; }
.dm-scene.is-speelt .dm-staaf { animation: dm-groei 0.9s var(--veer) both; animation-delay: calc(var(--d, 0) * 1s); }
@keyframes dm-groei { from { transform: scaleY(0); } }

.dm-kaart { position: absolute; display: grid; align-content: start; gap: 0.35em; padding: 0.9em 1em; border-radius: 0.9em; background: #FFFFFF; border: 1px solid var(--lijn); box-shadow: 0 1.2em 2.6em -1em rgba(13, 41, 24, 0.22); }
.dm-groot { font-size: 2.6em; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.dm-zacht { opacity: 0.85; }
.dm-groen { color: var(--groen); }
.dm-chips { display: flex; flex-wrap: wrap; gap: 0.3em; }
.dm-chips i { padding: 0.25em 0.6em; border-radius: 999px; background: var(--munt); border: 1px solid var(--lijn); font-style: normal; font-size: 0.8em; font-weight: 600; }
.dm-label-groen { display: inline-flex; align-items: center; gap: 0.35em; justify-self: start; padding: 0.3em 0.7em; border-radius: 999px; background: color-mix(in srgb, var(--groen) 16%, #FFFFFF); color: var(--groen); font-weight: 700; font-size: 0.85em; }
.dm-label-groen svg { width: 1em; height: 1em; }
.dm-li { width: 1.15em; height: 1.15em; flex: none; }

/* Recruitment 1: AI Recruiter */
.dm-chat { left: 5%; top: 17%; width: 56%; bottom: 7%; gap: 0.55em; grid-template-rows: auto auto auto auto auto auto 1fr; }
.dm-chat .dm-invoer { align-self: end; }
.dm-chat__kop { display: flex; align-items: center; gap: 0.5em; padding-bottom: 0.5em; border-bottom: 1px solid var(--lijn); }
.dm-chat__kop small { margin-left: auto; }
.dm-vonk { display: grid; place-items: center; width: 1.8em; height: 1.8em; border-radius: 50%; background: var(--groen); color: #FFFFFF; }
.dm-vonk svg { width: 1.05em; height: 1.05em; }
.dm-bel { max-width: 82%; padding: 0.55em 0.8em; border-radius: 0.9em; font-size: 0.92em; }
.dm-bel--ik { justify-self: end; background: var(--groen); color: #FFFFFF; border-bottom-right-radius: 0.25em; min-height: 2.6em; }
.dm-bel--ai { justify-self: start; background: var(--munt); border: 1px solid var(--lijn); border-bottom-left-radius: 0.25em; }
.dm-kandidaat { display: grid; grid-template-columns: 2.2em 1fr auto; align-items: center; gap: 0.6em; padding: 0.4em 0.55em; border-radius: 0.7em; border: 1px solid var(--lijn); background: #FFFFFF; }
.dm-kandidaat img { width: 2.2em; height: 2.2em; }
.dm-kandidaat > span { display: grid; min-width: 0; line-height: 1.2; }
.dm-kandidaat small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-kandidaat em { padding: 0.2em 0.55em; border-radius: 999px; background: color-mix(in srgb, var(--groen) 16%, #FFFFFF); color: #2E9A5C; font-style: normal; font-weight: 700; font-size: 0.85em; }
.dm-gevonden { right: 5%; top: 24%; width: 31%; gap: 0.55em; }
.dm-gevonden .dm-groot { color: var(--groen); }
[data-typ].is-typend::after { content: ""; display: inline-block; width: 0.08em; height: 1em; margin-left: 0.1em; vertical-align: -0.12em; background: currentColor; animation: dm-knipper 0.8s steps(1) infinite; }
@keyframes dm-knipper { 50% { opacity: 0; } }

/* Recruitment 2: LinkedIn */
.dm-kop { position: absolute; left: 5%; top: 17%; display: flex; align-items: center; gap: 0.45em; font-size: 0.95em; }
.dm-meldingen { position: absolute; left: 5%; top: 27%; width: 52%; display: grid; gap: 0.45em; }
.dm-melding { display: grid; grid-template-columns: 2em 1fr auto; align-items: center; gap: 0.6em; padding: 0.5em 0.7em; border-radius: 0.8em; background: #FFFFFF; border: 1px solid var(--lijn); box-shadow: 0 0.8em 1.8em -1em rgba(13, 41, 24, 0.25); font-size: 0.9em; }
.dm-melding img { width: 2em; height: 2em; }
.dm-melding > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-stats { position: absolute; left: 5%; bottom: 7%; width: 52%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.45em; }
.dm-stats > span { display: grid; padding: 0.55em 0.75em; border-radius: 0.8em; background: var(--inkt); color: #FFFFFF; }
.dm-stats small { color: #A9C2B3; }
.dm-stats b { font-size: 1.6em; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.dm-telefoon { position: absolute; right: 6%; top: 12%; width: 30%; aspect-ratio: 9 / 18.5; padding: 0.45em; border-radius: 2.2em; background: #101412; box-shadow: 0 2em 3.5em -1em rgba(13, 41, 24, 0.45); }
.dm-telefoon__scherm { display: flex; flex-direction: column; gap: 0.5em; height: 100%; overflow: hidden; padding: 0.8em 0.7em; border-radius: 1.8em; background: #FFFFFF; font-size: 0.82em; }
.dm-telefoon__kop { display: grid; grid-template-columns: 2.2em 1fr; align-items: center; gap: 0.5em; padding: 0.6em 0 0.6em; border-bottom: 1px solid #E6E9EC; line-height: 1.2; }
.dm-telefoon__kop img { width: 2.2em; height: 2.2em; }
.dm-telefoon__kop small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-li-bel { align-self: flex-start; max-width: 88%; padding: 0.55em 0.75em; border-radius: 0.9em; border-bottom-left-radius: 0.25em; background: #F1F3F5; color: #1D2226; }
.dm-li-bel--ik { align-self: flex-end; background: #0A66C2; color: #FFFFFF; border-radius: 0.9em; border-bottom-right-radius: 0.25em; }
.dm-typt { display: none; align-self: flex-start; gap: 0.25em; padding: 0.6em 0.75em; border-radius: 0.9em; background: #F1F3F5; }
.dm-typt i { width: 0.45em; height: 0.45em; border-radius: 50%; background: #8A949B; animation: dm-stip 0.9s infinite; }
.dm-typt i:nth-child(2) { animation-delay: 0.15s; }
.dm-typt i:nth-child(3) { animation-delay: 0.3s; }
.dm-scene.is-speelt .dm-typt { display: flex; overflow: hidden; animation: dm-even calc(var(--duur) * 1s) both; animation-delay: calc(var(--d) * 1s); }
@keyframes dm-even {
  0%, 100% { opacity: 0; max-height: 0; padding-block: 0; margin-block: -0.25em; }
  12%, 85% { opacity: 1; max-height: 2.4em; padding-block: 0.6em; margin-block: 0; }
}
@keyframes dm-stip { 0%, 60%, 100% { transform: none; } 30% { transform: translateY(-0.3em); } }
.dm-telefoon .dm-label-groen { align-self: flex-start; }
.dm-invoer { display: flex; align-items: center; justify-content: space-between; gap: 0.5em; margin-top: auto; padding: 0.45em 0.45em 0.45em 0.8em; border-radius: 999px; background: var(--munt); border: 1px solid var(--lijn); color: var(--grijs); font-size: 0.85em; }
.dm-invoer i { display: grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: 50%; background: var(--groen); color: #FFFFFF; }
.dm-invoer i svg { width: 1em; height: 1em; }
.dm-invoer--li { padding: 0.6em 0.8em; background: #F1F3F5; border-color: #E6E9EC; }
.dm-afspraak { align-self: flex-end; display: grid; padding: 0.5em 0.75em; border-radius: 0.7em; border: 1px solid #B3DAC4; border-left: 0.25em solid var(--groen); background: #F0FFF6; }

/* Vensters: recruitment-overzicht, CRM-planning en deals, hoteldashboard */
.dm-venster { position: absolute; left: 5%; right: 5%; top: 16%; bottom: -6%; display: grid; grid-template-columns: 19% 1fr; overflow: hidden; border-radius: 1em 1em 0 0; background: #FFFFFF; border: 1px solid var(--lijn); box-shadow: 0 2em 3.5em -1em rgba(13, 41, 24, 0.3); }
.dm-venster--los { grid-template-columns: 1fr; }
.dm-zij { display: flex; flex-direction: column; gap: 0.25em; padding: 1em 0.7em; background: var(--munt); border-right: 1px solid var(--lijn); }
.dm-logo { width: 72%; height: auto; margin: 0 0 0.7em 0.35em; border-radius: 0; }
.dm-zij i { padding: 0.4em 0.55em; border-radius: 0.5em; font-style: normal; font-size: 0.85em; color: var(--grijs); white-space: nowrap; }
.dm-zij i.is-aan { background: #E0F0E7; color: var(--inkt); font-weight: 700; }
.dm-hoofd { display: grid; align-content: start; gap: 0.6em; padding: 0.9em 1em; min-width: 0; }
.dm-titel { display: flex; align-items: center; justify-content: space-between; gap: 0.6em; }
.dm-titel > b { font-size: 1.35em; letter-spacing: -0.02em; }
.dm-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5em; }
.dm-kpi { position: relative; display: grid; gap: 0.15em; padding: 0.6em 0.75em; border-radius: 0.75em; background: #F0FFF6; border: 1px solid var(--lijn); overflow: hidden; }
.dm-kpi small { display: flex; align-items: center; gap: 0.3em; white-space: nowrap; }
.dm-kpi b { font-size: 1.7em; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.dm-mini { position: absolute; right: 0.7em; bottom: 0.6em; display: flex; align-items: end; gap: 0.18em; height: 1.8em; }
.dm-mini .dm-staaf { width: 0.35em; }
.dm-campagne { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: center; column-gap: 0.8em; padding: 0.5em 0.75em; border-radius: 0.75em; border: 1px solid var(--lijn); background: #FFFFFF; }
.dm-campagne > span:first-child { display: flex; align-items: center; gap: 0.45em; }
.dm-campagne em { padding: 0.1em 0.5em; border-radius: 999px; background: var(--groen); color: #FFFFFF; font-style: normal; font-size: 0.75em; font-weight: 700; }
.dm-campagne small { grid-row: 2; color: #2E9A5C; font-weight: 600; }
.dm-gezichten { grid-row: 1 / 3; grid-column: 2; display: flex; }
.dm-gezichten img, .dm-gezichten i { width: 1.9em; height: 1.9em; margin-left: -0.45em; border: 0.14em solid #FFFFFF; box-shadow: 0 0 0 0.08em var(--groen); }
.dm-gezichten i { display: grid; place-items: center; border-radius: 50%; background: var(--munt); font-style: normal; font-size: 0.7em; width: 2.7em; height: 2.7em; font-weight: 700; }

/* CRM 1: maandcijfers */
.dm-behaald { left: 5%; top: 18%; width: 38%; gap: 0.5em; background: var(--donker); border-color: var(--donker); color: #FFFFFF; }
.dm-behaald small { color: #C7BBBB; }
.dm-voortgang { display: block; height: 0.45em; border-radius: 999px; background: rgba(255, 255, 255, 0.15); overflow: hidden; }
.dm-voortgang i { display: block; height: 100%; border-radius: inherit; background: var(--groen); }
.dm-scene.is-speelt .dm-voortgang i { animation: dm-vul 1.6s cubic-bezier(0.22, 1, 0.36, 1) both; animation-delay: calc(var(--d) * 1s); }
@keyframes dm-vul { from { width: 0; } }
.dm-behaald .dm-label-groen { background: rgba(30, 158, 87, 0.2); color: #5FD394; }
.dm-omzet { left: 47%; right: 5%; top: 18%; bottom: 9%; }
.dm-kaartkop { display: flex; justify-content: space-between; align-items: baseline; }
.dm-grafiek { position: relative; display: grid; grid-template-columns: repeat(10, 1fr); gap: 0.4em; height: 100%; min-height: 0; }
.dm-grafiek > span { display: grid; grid-template-rows: 1fr auto; justify-items: center; gap: 0.3em; min-height: 0; }
.dm-grafiek > span > span, .dm-grafiek .dm-staaf { align-self: end; width: 100%; }
.dm-grafiek .dm-staaf { background: color-mix(in srgb, var(--groen) 75%, #FFFFFF); }
.dm-grafiek .dm-staaf.is-nu { background: var(--groen); }
.dm-target { position: absolute; left: 0; right: 0; bottom: 64%; border-top: 1px dashed var(--rood, var(--inkt)); }
.dm-omzet { grid-template-rows: auto 1fr; }
.dm-jaar { left: 5%; bottom: 9%; width: 38%; grid-auto-flow: column; align-items: center; justify-content: space-between; }
.dm-jaar b { font-size: 1.5em; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }

/* CRM 2: planning */
.dm-tabs { display: flex; gap: 0.9em; font-size: 0.85em; }
.dm-tabs i { font-style: normal; color: var(--grijs); padding-bottom: 0.2em; }
.dm-tabs i.is-aan { color: var(--inkt); font-weight: 700; border-bottom: 0.15em solid var(--inkt); }
.dm-week { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.4em; }
.dm-dag { display: grid; align-content: start; gap: 0.4em; min-width: 0; padding: 0.5em 0.4em; border-radius: 0.7em; background: var(--munt); }
.dm-dag > small { font-weight: 700; letter-spacing: 0.04em; }
.dm-dag.is-vandaag { background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--rood); }
.dm-dag.is-vandaag > small { color: var(--rood); }
.dm-taak { display: grid; gap: 0.35em; padding: 0.45em 0.5em; border-radius: 0.55em; background: #FFFFFF; border: 1px solid var(--lijn); border-left: 0.25em solid var(--kleur); font-size: 0.8em; }
.dm-taak__titel { position: relative; display: flex; align-items: center; gap: 0.35em; font-weight: 600; line-height: 1.2; }
.dm-vinkje { flex: none; width: 1em; height: 1em; border-radius: 50%; border: 0.12em solid var(--lijn); }
.dm-taak--af .dm-vinkje { background: var(--groen) radial-gradient(circle, #FFFFFF 22%, transparent 26%); border-color: var(--groen); }
.dm-taak--af .dm-taak__titel { color: var(--grijs); text-decoration: line-through; }
.dm-scene.is-speelt .dm-taak--af .dm-vinkje { animation: dm-af 0.5s var(--veer) both; animation-delay: calc(var(--d) * 1s); }
@keyframes dm-af { from { background: transparent; border-color: var(--lijn); transform: scale(0.6); } }
.dm-taak__voet { display: flex; align-items: center; justify-content: space-between; gap: 0.3em; }
.dm-taak__voet em { overflow: hidden; padding: 0.1em 0.45em; border-radius: 999px; background: var(--kleur); color: #FFFFFF; font-style: normal; font-size: 0.8em; font-weight: 700; white-space: nowrap; text-overflow: ellipsis; }
.dm-taak__voet img { flex: none; width: 1.6em; height: 1.6em; }

/* Recruitment 3: campagne, resultaten en feedback */
.dm-advertentie { position: absolute; left: 5%; top: 15%; bottom: 6%; width: 33%; display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; border-radius: 0.9em; background: #FFFFFF; border: 1px solid var(--lijn); box-shadow: 0 2em 3.5em -1em rgba(41, 13, 13, 0.35); font-size: 0.85em; }
.dm-advertentie__kop { display: flex; align-items: center; gap: 0.5em; padding: 0.6em 0.7em; line-height: 1.15; }
.dm-advertentie__kop > span { display: grid; }
.dm-advertentie__kop > i { display: grid; place-items: center; width: 2em; height: 2em; border-radius: 50%; background: var(--donker); color: #FFFFFF; font-style: normal; font-weight: 800; }
.dm-advertentie__beeld { display: grid; align-content: end; gap: 0.3em; padding: 0.9em; background: radial-gradient(circle at 80% 10%, rgba(255, 255, 255, 0.25), transparent 45%), linear-gradient(160deg, #DC0000, #6E0A0A); color: #FFFFFF; }
.dm-advertentie__beeld b { font-size: 1.55em; line-height: 1.05; letter-spacing: -0.02em; }
.dm-advertentie__beeld small { color: rgba(255, 255, 255, 0.85); }
.dm-advertentie__voet { display: flex; align-items: center; justify-content: space-between; gap: 0.4em; padding: 0.55em 0.7em; background: #F4F0F0; }
.dm-advertentie__voet i { padding: 0.35em 0.7em; border-radius: 0.4em; background: var(--donker); color: #FFFFFF; font-style: normal; font-weight: 700; }
.dm-resultaten { position: absolute; left: 43%; right: 5%; top: 15%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.45em; }
.dm-resultaten .dm-kaart { position: relative; gap: 0.1em; padding: 0.6em 0.75em; }
.dm-resultaten b { font-size: 1.5em; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.dm-feedback { position: absolute; left: 43%; right: 5%; top: 40%; display: grid; gap: 0.45em; }
.dm-reactie { display: grid; grid-template-columns: 2em 1fr; align-items: start; gap: 0.55em; justify-self: start; max-width: 92%; }
.dm-reactie img { width: 2em; height: 2em; }
.dm-reactie > span { display: grid; padding: 0.5em 0.75em; border-radius: 0.9em; border-top-left-radius: 0.25em; background: #FFFFFF; border: 1px solid var(--lijn); font-size: 0.9em; }
.dm-reactie b { font-size: 0.85em; color: var(--grijs); }
.dm-reactie--wij { justify-self: end; }
.dm-reactie--wij > span { background: var(--donker); color: #FFFFFF; border-color: var(--donker); }
.dm-reactie--wij b { color: rgba(255, 255, 255, 0.65); }
.dm-goedkeuren { position: relative; justify-self: end; display: grid; padding: 0.55em 1.1em; border-radius: 999px; background: var(--donker); color: #FFFFFF; font-weight: 700; font-size: 0.9em; overflow: hidden; --klik: 5; }
.dm-goedkeuren > span { grid-area: 1 / 1; display: inline-flex; align-items: center; justify-content: center; gap: 0.35em; }
.dm-goedkeuren svg { width: 1em; height: 1em; }
.dm-goedkeuren__nee { opacity: 0; }
.dm-goedkeuren { background: var(--groen); }
.dm-scene.is-speelt .dm-goedkeuren { animation: dm-pop 0.75s var(--veer) both, dm-klik 0.5s both; animation-delay: calc(var(--d, 0) * 1s), calc(var(--klik) * 1s); }
.dm-scene.is-speelt .dm-goedkeuren__nee { animation: dm-uit 0.3s both; animation-delay: calc(var(--klik) * 1s + 0.15s); }
.dm-scene.is-speelt .dm-goedkeuren__ja { animation: dm-weg 0.3s both; animation-delay: calc(var(--klik) * 1s + 0.15s); }
@keyframes dm-klik { 0% { background: var(--donker); transform: scale(1); } 40% { background: var(--donker); transform: scale(0.9); } 100% { background: var(--groen); transform: scale(1); } }
@keyframes dm-weg { from { opacity: 0; transform: translateY(0.6em); } }
@keyframes dm-uit { from { opacity: 1; } to { opacity: 0; transform: translateY(-0.6em); } }
.dm-muis { position: absolute; right: 8%; top: 70%; width: 2.2em; opacity: 0; filter: drop-shadow(0 0.2em 0.3em rgba(0, 0, 0, 0.35)); pointer-events: none; }
.dm-scene.is-speelt .dm-muis { animation: dm-muis 2.2s cubic-bezier(0.65, 0, 0.35, 1) both; animation-delay: calc(var(--muis, 3.5) * 1s); }
@keyframes dm-muis {
  0% { opacity: 0; transform: translate(6em, 5em); }
  20% { opacity: 1; }
  65% { transform: translate(-1.5em, -0.6em); }
  75% { transform: translate(-1.5em, -0.6em) scale(0.85); }
  85%, 100% { opacity: 1; transform: translate(-1.5em, -0.6em); }
}
.dm-merk { display: flex; align-items: center; gap: 0.45em; margin: 0 0 0.7em 0.3em; font-weight: 800; font-size: 1.05em; letter-spacing: -0.01em; }
.dm-merk .dm-vonk { width: 1.6em; height: 1.6em; }
.dm-live { display: inline-block; flex: none; width: 0.5em; height: 0.5em; border-radius: 50%; background: #1E9E57; box-shadow: 0 0 0 0.2em rgba(30, 158, 87, 0.2); }
.dm-scene.is-speelt .dm-live { animation: dm-puls 1.6s ease infinite; }
@keyframes dm-puls { 50% { box-shadow: 0 0 0 0.35em rgba(30, 158, 87, 0); } }
.dm-ai { display: inline-flex; align-items: center; gap: 0.35em; justify-self: start; padding: 0.25em 0.6em; border-radius: 999px; background: var(--donker); color: #FFFFFF; font-size: 0.78em; font-weight: 700; }
.dm-ai svg { width: 1em; height: 1em; color: var(--accent, var(--groen)); }

/* CRM 3: deals en koppelingen */
.dm-pijplijn { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5em; }
.dm-kolom { display: grid; align-content: start; gap: 0.4em; min-width: 0; padding: 0.5em; border-radius: 0.7em; background: var(--munt); }
.dm-kolom__kop { display: flex; align-items: center; gap: 0.4em; font-size: 0.85em; }
.dm-kolom__kop em { padding: 0 0.45em; border-radius: 999px; background: #FFFFFF; border: 1px solid var(--lijn); font-style: normal; font-size: 0.85em; font-weight: 700; }
.dm-kolom__kop small { margin-left: auto; font-weight: 700; color: var(--groen); font-variant-numeric: tabular-nums; }
.dm-deal { display: grid; gap: 0.35em; padding: 0.5em 0.6em; border-radius: 0.6em; background: #FFFFFF; border: 1px solid var(--lijn); font-size: 0.85em; }
.dm-deal > span { display: flex; align-items: center; justify-content: space-between; }
.dm-deal em { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; }
.dm-deal img { width: 1.6em; height: 1.6em; }
.dm-deal--nieuw { --anim: dm-schuif; border-color: var(--groen); box-shadow: 0 0 0 0.15em color-mix(in srgb, var(--groen) 25%, transparent), 0 1em 2em -1em rgba(41, 13, 13, 0.4); }
@keyframes dm-schuif { from { transform: translateX(calc(-100% - 1.5em)) rotate(-3deg); box-shadow: 0 1.6em 2.4em -1em rgba(41, 13, 13, 0.45); } }
.dm-sync { position: absolute; right: 7%; bottom: 7%; width: 46%; display: grid; gap: 0.4em; }
.dm-koppeling { display: grid; grid-template-columns: 2em 1fr auto; align-items: center; gap: 0.6em; padding: 0.5em 0.7em; border-radius: 0.8em; background: var(--donker); color: #FFFFFF; box-shadow: 0 1em 2em -0.8em rgba(0, 0, 0, 0.45); font-size: 0.85em; }
.dm-koppeling > i { display: grid; place-items: center; width: 2em; height: 2em; border-radius: 0.5em; background: #FFFFFF; color: var(--donker); font-style: normal; font-weight: 800; }
.dm-koppeling > span { display: grid; line-height: 1.25; }
.dm-koppeling b { font-size: 0.85em; color: rgba(255, 255, 255, 0.65); }

/* Bouwcalculatie: geel en bijna-zwart */
.dm--bouw {
  --groen: #1E9E57; --accent: #FFC700; --inkt: #0C0C10; --grijs: #5A5A5A; --lijn: #E3E3E3; --munt: #F5F5F5; --donker: #0C0C10;
  background: radial-gradient(circle at 88% -10%, #FFF0B3, transparent 55%), radial-gradient(circle at 0% 110%, #F2F2F2, transparent 50%), #F8F8F8;
  color: var(--inkt);
}
.dm--bouw .dm-staaf { background: var(--accent); }
.dm-lijn { fill: none; stroke: var(--inkt); stroke-width: 1.6; stroke-linecap: square; }
.dm-lijn--dun { stroke-width: 0.8; stroke-dasharray: 0.04 0.03; }
.dm-lijn--raam { stroke: var(--accent); stroke-width: 3.2; }
.dm-scene.is-speelt .dm-lijn:not(.dm-lijn--dun) { stroke-dasharray: 1; animation: dm-teken 1.4s cubic-bezier(0.65, 0, 0.35, 1) both; animation-delay: calc(var(--d, 0) * 1s); }
.dm-scene.is-speelt .dm-lijn--dun { animation: dm-op-lijn 0.6s both; animation-delay: calc(var(--d, 0) * 1s); }
@keyframes dm-teken { from { stroke-dashoffset: 1; } }
@keyframes dm-op-lijn { from { opacity: 0; } }
.dm-tekening { left: 5%; top: 16%; bottom: 7%; width: 56%; grid-template-rows: auto 1fr; }
.dm-plan { position: relative; display: block; align-self: center; width: 100%; aspect-ratio: 200 / 132; border-radius: 0.6em; background-color: #FBFBF7; background-image: linear-gradient(rgba(12, 12, 16, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(12, 12, 16, 0.05) 1px, transparent 1px); background-size: 1.2em 1.2em; }
.dm-plan > span { position: absolute; inset: 7% 5%; }
.dm-plan svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.dm-maat { position: absolute; display: grid; padding: 0.25em 0.5em; border-radius: 0.4em; background: var(--accent); color: var(--inkt); font-size: 0.72em; line-height: 1.15; white-space: nowrap; transform: translate(-50%, -50%); box-shadow: 0 0.6em 1.2em -0.6em rgba(0, 0, 0, 0.4); }
.dm-scene.is-speelt .dm-maat { animation-name: dm-pop-midden; }
@keyframes dm-pop-midden { from { opacity: 0; transform: translate(-50%, -50%) scale(0.6); } }
.dm-posten { right: 5%; top: 16%; width: 30%; gap: 0.45em; }
.dm-post { display: grid; grid-template-columns: 1.3em 1fr auto; align-items: center; gap: 0.45em; padding: 0.35em 0.5em; border-radius: 0.5em; background: var(--munt); font-size: 0.85em; }
.dm-post i { display: grid; place-items: center; width: 1.3em; height: 1.3em; border-radius: 50%; background: var(--accent); color: var(--inkt); }
.dm-post i svg { width: 0.8em; height: 0.8em; }
.dm-begroting { left: 5%; top: 16%; bottom: 7%; width: 54%; gap: 0.3em; }
.dm-regel { display: grid; grid-template-columns: 2em 1fr auto; align-items: center; gap: 0.5em; padding: 0.35em 0.2em; border-bottom: 1px solid var(--lijn); font-size: 0.9em; }
.dm-regel b { font-variant-numeric: tabular-nums; }
.dm-regel--totaal { margin-top: 0.3em; padding: 0.55em 0.6em; border: 0; border-radius: 0.6em; background: var(--accent); font-size: 1em; }
.dm-marge { right: 5%; top: 16%; width: 34%; gap: 0.5em; background: var(--donker); border-color: var(--donker); color: #FFFFFF; }
.dm-marge small { color: rgba(255, 255, 255, 0.65); }
.dm-marge .dm-groot { color: var(--accent); }
.dm-marge .dm-voortgang i { background: var(--accent); }
.dm-check { right: 5%; bottom: 7%; width: 34%; gap: 0.5em; font-size: 0.9em; }
.dm-netwerk { position: absolute; left: 4%; top: 15%; bottom: 6%; width: 56%; }
.dm-netwerk > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.dm-lijn--stroom { stroke: var(--inkt); stroke-width: 0.35; opacity: 0.5; }
.dm-hub { position: absolute; left: 50%; top: 50%; display: grid; justify-items: center; gap: 0.2em; padding: 0.8em 1.1em; border-radius: 1em; background: var(--accent); color: var(--inkt); font-size: 1.05em; transform: translate(-50%, -50%); box-shadow: 0 0 0 0.5em rgba(255, 199, 0, 0.22), 0 1.4em 2.6em -1em rgba(0, 0, 0, 0.4); }
.dm-hub svg { width: 1.4em; height: 1.4em; }
.dm-knoop { position: absolute; display: grid; gap: 0.15em; padding: 0.5em 0.75em; border-radius: 0.7em; background: #FFFFFF; border: 1px solid var(--lijn); white-space: nowrap; transform: translate(-50%, -50%); box-shadow: 0 1em 2em -1em rgba(0, 0, 0, 0.3); }
.dm-knoop small { display: flex; align-items: center; gap: 0.4em; }
.dm-scene.is-speelt :is(.dm-hub, .dm-knoop) { animation-name: dm-pop-midden; }
.dm-stroom { right: 5%; top: 15%; bottom: 6%; width: 34%; gap: 0.45em; }
.dm-gebeurtenis { display: grid; grid-template-columns: 1.9em 1fr; align-items: center; gap: 0.55em; padding: 0.45em 0.55em; border-radius: 0.6em; background: var(--munt); font-size: 0.85em; }
.dm-gebeurtenis > i { display: grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: 0.5em; background: var(--donker); color: var(--accent); font-style: normal; font-weight: 800; }
.dm-gebeurtenis > span { display: grid; line-height: 1.25; }

/* Hotelreserveringen: nachtblauw en zand */
.dm--hotel {
  --groen: #1A9B6C; --inkt: #0B1020; --grijs: #6B6B6B; --lijn: #E3DCD2; --munt: #F7F3EC; --donker: #0B1020; --accent: #C9A46A;
  background: radial-gradient(circle at 88% -10%, #EADFCB, transparent 55%), radial-gradient(circle at 0% 110%, #F4EFE8, transparent 50%), #F8F5F0;
  color: var(--inkt);
}
.dm-hotels { display: flex; gap: 0.3em; }
.dm-hotels i { padding: 0.3em 0.7em; border-radius: 999px; border: 1px solid var(--lijn); font-style: normal; font-size: 0.8em; font-weight: 600; color: var(--grijs); }
.dm-hotels i.is-aan { background: var(--donker); border-color: var(--donker); color: #FFFFFF; }
.dm--hotel .dm-hoofd { height: 100%; grid-template-rows: auto auto 1fr; padding-bottom: 8%; }
.dm-kpis--4 { grid-template-columns: repeat(4, 1fr); }
.dm--hotel .dm-kpi { background: var(--munt); }
.dm--hotel .dm-kpi b { font-size: 1.35em; }
.dm-plus { color: var(--groen); font-weight: 700; white-space: nowrap; }
.dm-duo { display: grid; grid-template-columns: 1.6fr 1fr; gap: 0.5em; min-height: 0; }
.dm-duo .dm-kaart { position: relative; box-shadow: none; }
.dm-weken { grid-template-rows: auto 1fr; }
.dm-weken .dm-kaartkop small { display: flex; align-items: center; gap: 0.35em; }
.dm-sw { display: inline-block; width: 0.7em; height: 0.7em; border-radius: 0.15em; background: var(--donker); }
.dm-sw--open { background: transparent; box-shadow: inset 0 0 0 1px var(--donker); margin-left: 0.4em; }
.dm-staven { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0.5em; min-height: 0; }
.dm-staven > span { display: grid; grid-template-rows: 1fr auto; justify-items: center; gap: 0.25em; min-height: 0; }
.dm-staven > span > span { display: flex; align-items: end; justify-content: center; gap: 0.15em; width: 100%; height: 100%; }
.dm-staven .dm-staaf { width: 38%; background: var(--donker); }
.dm-staven .dm-staaf--open { background: transparent; box-shadow: inset 0 0 0 1px var(--donker); }
.dm-staven > span:not(.is-nu) .dm-staaf:not(.dm-staaf--open) { background: color-mix(in srgb, var(--donker) 70%, #FFFFFF); }
.dm-staven > .is-nu small { color: var(--inkt); font-weight: 700; }
.dm-forecast { gap: 0.45em; background: var(--donker); border-color: var(--donker); color: #FFFFFF; }
.dm-forecast small { color: rgba(255, 255, 255, 0.65); }
.dm-forecast .dm-groot { color: var(--accent); }
.dm-forecast .dm-voortgang i { background: var(--accent); }
.dm-boekingen { left: 5%; top: 16%; bottom: 7%; width: 56%; gap: 0.4em; }
.dm-livetekst { display: inline-flex; align-items: center; gap: 0.4em; color: var(--groen); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.dm-boeking { display: grid; grid-template-columns: 2em 1fr auto auto; align-items: center; gap: 0.55em; padding: 0.4em 0.55em; border-radius: 0.65em; border: 1px solid var(--lijn); background: #FFFFFF; font-size: 0.88em; }
.dm-boeking > span { display: grid; min-width: 0; line-height: 1.2; }
.dm-boeking > span > * { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-ini { display: grid; place-items: center; width: 2em; height: 2em; border-radius: 50%; background: var(--donker); color: #FFFFFF; font-style: normal; font-size: 0.8em; font-weight: 700; }
.dm-ini--1 { background: var(--accent); color: var(--inkt); }
.dm-ini--2 { background: var(--munt); color: var(--inkt); box-shadow: inset 0 0 0 1px var(--lijn); }
.dm-kanaal { padding: 0.15em 0.55em; border-radius: 999px; background: var(--munt); font-style: normal; font-size: 0.78em; font-weight: 700; color: var(--grijs); }
.dm-kanaal.is-direct { background: color-mix(in srgb, var(--groen) 15%, #FFFFFF); color: var(--groen); }
.dm-bedrag { font-variant-numeric: tabular-nums; }
.dm-vandaag { right: 5%; top: 16%; width: 30%; gap: 0.45em; }
.dm-vandaag .dm-label-groen { font-size: 0.75em; }
.dm-mix { right: 5%; bottom: 7%; width: 30%; gap: 0.55em; }
.dm-balk { display: flex; gap: 0.15em; height: 0.8em; }
.dm-balk i { flex: var(--p) 0 0; border-radius: 0.2em; background: var(--c); transform-origin: left; }
.dm-scene.is-speelt .dm-balk i { animation: dm-breed 0.8s var(--veer) both; animation-delay: calc(var(--d) * 1s); }
@keyframes dm-breed { from { transform: scaleX(0); } }
.dm-legenda { display: grid; grid-template-columns: 1fr 1fr; gap: 0.2em 0.6em; font-size: 0.75em; }
.dm-legenda span { display: flex; align-items: center; gap: 0.35em; white-space: nowrap; }
.dm-legenda i { width: 0.65em; height: 0.65em; border-radius: 0.15em; background: var(--c); }
.dm-inbox { left: 5%; top: 16%; bottom: 7%; width: 46%; gap: 0.4em; }
.dm-bericht { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0.5em; padding: 0.45em 0.6em; border-radius: 0.6em; border: 1px solid var(--lijn); background: #FFFFFF; font-size: 0.85em; }
.dm-bericht > span { display: grid; min-width: 0; line-height: 1.25; }
.dm-bericht > span > * { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-bericht.is-open { border-color: var(--donker); box-shadow: inset 0.25em 0 0 var(--accent); }
.dm-tag { padding: 0.15em 0.5em; border-radius: 999px; font-style: normal; font-size: 0.75em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.dm-tag--hoog { background: var(--donker); color: #FFFFFF; }
.dm-tag--midden { background: color-mix(in srgb, var(--accent) 35%, #FFFFFF); color: var(--inkt); }
.dm-tag--ruis { background: var(--munt); color: var(--grijs); }
.dm-concept { right: 5%; top: 16%; bottom: 7%; width: 40%; grid-template-rows: auto 1fr auto; gap: 0.6em; }
.dm-concept__tekst { padding: 0.7em 0.8em; border-radius: 0.8em; background: var(--munt); font-size: 0.9em; line-height: 1.4; }
.dm-concept__voet { display: flex; align-items: center; justify-content: space-between; gap: 0.5em; }
.dm-koppelingen { display: grid; gap: 0.25em; }
.dm-koppelingen i { display: flex; align-items: center; gap: 0.4em; font-style: normal; font-size: 0.72em; font-weight: 600; color: var(--grijs); white-space: nowrap; }
.dm--hotel .dm-muis { right: 9%; top: 82%; }

.case[hidden] { display: none; }

.cases[hidden] { display: none; }
.cases { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 4.5rem) clamp(1.25rem, 2.5vw, 2.5rem); }
.cases > .case.is-rechts { margin-top: clamp(0rem, 8vw, 9rem); }
.case { display: grid; gap: 1.1rem; }
.js .case { opacity: 0; transform: translateY(3rem); transition: opacity 0.9s var(--uit), transform 1.1s var(--uit); transition-delay: calc(var(--i) * 0.08s); }
.js .case.is-zichtbaar { opacity: 1; transform: none; }
.case__beeld {
  position: relative; aspect-ratio: 5 / 4; overflow: hidden;
  border-radius: 0;
  background: var(--roze-zacht);
}
.case__beeld img, .case__beeld video {
  position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover;
  transition: transform 1.2s var(--uit), opacity 0.6s var(--uit);
}
.case__beeld img { transform: translateY(var(--parallax, 0)) scale(1.02); }
.case__beeld video { opacity: 0; }
.case:hover .case__beeld img { transform: translateY(var(--parallax, 0)) scale(1.07); }
.case:hover .case__beeld video { opacity: 1; }
.case--type .case__beeld { display: grid; place-items: center; background: var(--zwart); color: var(--roze); }
.case--type:nth-child(4n) .case__beeld { background: var(--roze); color: var(--zwart); }
.case__woordmerk { font: 700 clamp(2.4rem, 1.4rem + 3.5vw, 5rem)/0.95 var(--font-kop); letter-spacing: -0.035em; text-align: center; padding: 1rem; transition: transform 1.2s var(--uit); }
.case--type:hover .case__woordmerk { transform: scale(1.06) rotate(-2deg); }
.case__tekst { display: grid; gap: 0.35rem; }
.case__naam { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.4rem); color: var(--grijs); }
.case__sector { color: var(--grijs-zacht); font-weight: 500; }
.case__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.4rem; }
.case__tags li { border: 1px solid var(--grijs); border-radius: 0.75rem; padding: 0.1rem 0.5rem; font: 500 var(--maat-xs)/1.5 var(--font-tekst); text-transform: uppercase; letter-spacing: 0.02em; }

/* ---------- Slot ---------- */
.slot { background: var(--zwart); color: var(--wit); padding: var(--ruimte) 0; text-align: center; }
.slot__kop { font-size: var(--maat-xxl); display: grid; justify-items: center; gap: 0.1em; }
.slot__kop span:last-child { color: var(--roze); }
.slot .pillen { justify-content: center; gap: clamp(0.6rem, 1.2vw, 1.25rem); margin-top: clamp(3rem, 2rem + 4vw, 6rem); }
.pil--groot {
  font: 500 clamp(1rem, 0.4rem + 3.2vw, 3.3rem)/1 var(--font-tekst);
  padding: 0.25em 0.55em 0.2em; border-width: clamp(1.5px, 0.2vw, 3px); white-space: nowrap;
}
.slot__contact { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2.5rem; margin-top: clamp(3rem, 5vw, 5rem); font: 700 var(--maat-l)/1.2 var(--font-kop); }
.slot__contact a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.5s var(--uit); }
.slot__contact a:hover { background-size: 100% 1.5px; }

/* ---------- Voet ---------- */
.voet { background: var(--zwart); color: var(--wit); border-top: 1px solid var(--lijn-licht); overflow: hidden; }
.voet__binnen { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 3rem; padding-block: clamp(3rem, 6vw, 5rem) 3rem; }
.voet__links { display: grid; gap: 2rem; justify-items: start; }
.voet__kop { font: 700 clamp(2rem, 1.4rem + 2vw, 3.2rem)/1.05 var(--font-kop); letter-spacing: -0.02em; max-width: 11ch; }
.voet__nav { display: grid; gap: 2rem; align-content: start; }
.voet__nav ul { display: grid; grid-template-columns: repeat(2, auto); gap: 0.5rem 3rem; }
.voet__nav a { text-decoration: none; font: 700 clamp(1.05rem, 0.95rem + 0.4vw, 1.3rem)/1.25 var(--font-kop); letter-spacing: -0.01em; transition: color 0.2s; }
.voet__nav a:hover { color: var(--roze); }
.voet__over { max-width: 26rem; font-size: var(--maat-s); line-height: 1.6; color: rgba(255, 255, 255, 0.7); }
.voet__info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding-block: 2.5rem; border-top: 1px solid var(--lijn-licht); font-style: normal; font-size: var(--maat-s); line-height: 1.6; }
.voet__info div { display: grid; align-content: start; justify-items: start; gap: 0.35rem; }
.voet__info a, .voet__info span { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
.voet__info a { display: inline-flex; align-items: center; gap: 0.35rem; }
.voet__info a:hover { color: var(--roze); }
.voet__label { margin-bottom: 0.4rem; font: 600 var(--maat-xs)/1 var(--font-tekst); letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); }
.voet__onder { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; padding-block: 1.5rem calc(1.5rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--lijn-licht); font-size: var(--maat-xs); color: rgba(255, 255, 255, 0.55); }
.voet__onder a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.voet__onder a:hover { color: var(--wit); }

/* ---------- Zwevend: contact en naar boven ---------- */
.zwevend {
  position: fixed; right: var(--rand); bottom: calc(1.25rem + env(safe-area-inset-bottom)); z-index: 50;
  display: flex; align-items: center; gap: 0.5rem;
  transition: opacity 0.4s var(--uit), transform 0.6s var(--uit);
}
.zwevend.is-weg { opacity: 0; transform: translateY(150%); pointer-events: none; }
.zwevend__chat { padding-left: 0.4rem; gap: 0.7rem; }
.zwevend__mensen { position: relative; display: flex; }
.zwevend__mensen img { width: 2rem; height: 2rem; border-radius: 50%; object-fit: cover; border: 2px solid var(--wit); position: relative; z-index: 1; }
.zwevend__mensen img + img { margin-left: -0.65rem; }
.zwevend__online { position: absolute; right: -0.1rem; bottom: 0; z-index: 2; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #3ddc84; border: 2px solid var(--wit); }
.zwevend .knop { --k-achter: var(--wit); --k-tekst: var(--zwart); --k-rand: var(--wit); --k-vul: var(--zwart); box-shadow: 0 0.5rem 1.5rem rgba(10, 10, 10, 0.18); }
.zwevend .knop:hover { --k-tekst: var(--wit); }
.zwevend__top {
  width: 2.75rem; height: 2.75rem; display: grid; place-items: center;
  border-radius: 50%; background: var(--wit); color: var(--zwart);
  box-shadow: 0 0.5rem 1.5rem rgba(10, 10, 10, 0.18);
  transition: transform 0.4s var(--veer);
}
.zwevend__top:hover { transform: translateY(-3px); }

/* ---------- Cursor ---------- */
.cursor { display: none; }
@media (hover: hover) and (pointer: fine) {
  .js .cursor {
    display: grid; place-items: center;
    position: fixed; left: 0; top: 0; z-index: 90; pointer-events: none;
    --punt: calc(var(--maat-xxl) * 0.21);
    width: var(--punt); height: var(--punt); margin: calc(var(--punt) / -2) 0 0 calc(var(--punt) / -2);
    border-radius: 50%; background: var(--wit);
    transition: width 0.45s var(--uit), height 0.45s var(--uit), margin 0.45s var(--uit), background-color 0.3s, opacity 0.3s;
    will-change: transform;
  }
  .js .cursor.is-uit { opacity: 0; }
  .js .cursor.is-licht { background: var(--zwart); }
  .js .cursor.is-groot { width: 6.5rem; height: 6.5rem; margin: -3.25rem 0 0 -3.25rem; background: var(--roze); }
  .cursor__label { font: 700 var(--maat-s)/1 var(--font-tekst); color: var(--zwart); opacity: 0; transition: opacity 0.3s; }
  .cursor.is-groot .cursor__label { opacity: 1; }
  .js .case { cursor: none; }
}

/* ---------- Onthullen bij scrollen ---------- */
.js [data-onthul] { opacity: 0; transform: translateY(2.5rem); transition: opacity 0.9s var(--uit), transform 1.1s var(--uit); transition-delay: calc(var(--i, 0) * 0.08s); }
.js [data-onthul].is-zichtbaar { opacity: 1; transform: none; }

/* ---------- 404 ---------- */
.fout { min-height: 100svh; display: grid; align-items: center; background: var(--zwart); color: var(--wit); padding-top: var(--kophoogte); }
.fout .breed { display: grid; gap: 1.5rem; justify-items: start; }
.fout__code { font: 700 clamp(6rem, 4rem + 14vw, 18rem)/0.85 var(--font-kop); letter-spacing: -0.05em; }
.fout__kop { font-size: var(--maat-xl); }

/* ---------- Kleinere schermen ---------- */
@media (max-width: 1023px) {
  .routes__duo, .rocket__binnen, .dienst__koppelbinnen, .waarom { grid-template-columns: 1fr; }
  .stappen, .cijfers { grid-template-columns: 1fr; }
  .menu__binnen { grid-template-columns: 1fr; }
  .menu__hoofd { order: -1; }
  .menu__kol { padding: 1.75rem var(--rand); gap: 1.75rem; }
  .menu__hoofd { padding-top: calc(var(--kophoogte) + 1rem); }
  .menu__kol:last-child { padding-bottom: 3rem; }
  .menu__kol + .menu__kol::before { left: var(--rand); right: var(--rand); top: 0; bottom: auto; width: auto; height: 1px; transform: scaleX(0); transform-origin: left; }
  .menu.is-open .menu__kol + .menu__kol::before { transform: none; }
  .menu__hoofd::before { content: none; }
  .menu__kol--info::before { content: ""; position: absolute; left: var(--rand); right: var(--rand); top: 0; height: 1px; background: rgba(255, 255, 255, 0.28); }
  .menu__typ { min-height: 0; }
}
@media (max-width: 719px) {
  :root { --kophoogte: 4.5rem; }
  .menu__typ { display: none; }
  .menu__snel { order: -1; }
  .menu__kol--info { justify-content: flex-start; gap: 2rem; }
  .menu .pillen--klein { gap: 0.4rem; }
  .menu .pillen--klein .pil { padding: 0.35rem 0.75rem; font-size: 0.7rem; }
  .kop .taal { display: none; }
  .menu .taal { display: flex; }
  .cases { grid-template-columns: 1fr; }
  .cases > .case.is-rechts { margin-top: 0; }
  .kiezer { grid-template-columns: 1fr; }
  .kiezer__preview { height: clamp(12rem, 52vw, 16rem); }
  .kiezer__tegel--ai .kiezer__preview { height: clamp(15rem, 66vw, 20rem); }
  .hero__stippen { top: auto; right: auto; left: 50%; bottom: calc(1.4rem + env(safe-area-inset-bottom)); transform: translateX(-50%); display: flex; gap: 0.25rem; }
  .hero__hint { display: none; }
  .hero__inhoud { padding-bottom: 5.5rem; }
  .reel { height: 75svh; }
  .rocket__punten { grid-template-columns: 1fr; }
  .dienst__intro { justify-content: flex-start; min-height: 70svh; }
  .waarom__item p { padding-left: 0; }
  .voet__nav ul { grid-template-columns: 1fr 1fr; gap: 0.5rem 1.5rem; }
  .voet__info { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; }
  .voet__info div:first-child { grid-column: 1 / -1; }
  .voet__onder { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
}

/* ---------- AI-agent: knop en chatvenster ---------- */
.knop__puls { position: relative; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; flex: none; }
.knop__puls::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; background: currentColor;
  animation: puls 2s var(--uit) infinite;
}
@keyframes puls { from { transform: scale(1); opacity: 0.7; } to { transform: scale(3.2); opacity: 0; } }

.agent {
  position: fixed; inset: 0; z-index: 120;
  width: min(50rem, calc(100vw - 2rem)); height: min(54rem, calc(100dvh - 3rem));
  max-width: none; max-height: none; margin: auto; padding: 0; border: 0;
  border-radius: var(--hoek); overflow: hidden;
  background: var(--wit); color: var(--zwart);
  box-shadow: 0 2rem 5rem rgba(10, 10, 10, 0.3);
  flex-direction: column;
  opacity: 0; transform: translateY(2rem) scale(0.92); transform-origin: 50% 60%;
  transition: opacity 0.35s var(--uit), transform 0.6s var(--uit);
}
.agent[open] { display: flex; }
.agent.is-open { opacity: 1; transform: none; }
.agent::backdrop { background: rgba(10, 10, 10, 0); backdrop-filter: blur(0); transition: background 0.4s, backdrop-filter 0.4s; }
.agent.is-open::backdrop { background: rgba(10, 10, 10, 0.5); backdrop-filter: blur(6px); }

.agent__kop {
  display: flex; align-items: center; gap: 0.85rem;
  padding: 1rem 1rem 1rem 1.15rem; background: var(--zwart); color: var(--wit);
}
.agent__avatar { width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; background: #1c1c1c; flex: none; }
.agent__bol {
  width: 1.9rem; height: 1.9rem; border-radius: 50%;
  background: conic-gradient(from 0deg, var(--roze-diep), var(--roze), var(--wit), var(--roze-diep));
  filter: blur(1px);
  animation: draai 6s linear infinite, adem 3s ease-in-out infinite;
}
.agent.is-denkt .agent__bol { animation-duration: 1.2s, 0.8s; }
@keyframes draai { to { rotate: 1turn; } }
@keyframes adem { 50% { scale: 0.82; } }
.agent__avatars { display: flex; align-items: center; flex: none; }
.agent__mens {
  width: 0; height: 2.75rem; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--zwart); margin-left: -0.6rem;
  opacity: 0; transform: scale(0.3);
  transition: width 0.5s var(--uit), opacity 0.3s, transform 0.6s var(--veer);
}
.agent.is-samen .agent__mens { width: 2.75rem; opacity: 1; transform: none; }
.agent__wie { flex: 1; min-width: 0; }

.bel.bel--erbij {
  align-self: center; max-width: none; display: flex; align-items: center; gap: 0.75rem;
  margin: 0.75rem 0; padding: 0.6rem 1.1rem 0.6rem 0.6rem;
  background: var(--zwart); color: var(--wit); border-radius: var(--hoek-pil);
  animation: bloop 0.7s var(--veer) both;
}
.bel--erbij img { width: 2.75rem; height: 2.75rem; border-radius: 50%; object-fit: cover; animation: bloop 0.7s var(--veer) 0.15s both; }
.bel--erbij strong { display: block; font: 700 var(--maat-s)/1.2 var(--font-kop); }
.bel--erbij small { display: block; font-size: var(--maat-xs); opacity: 0.65; }
.bel--erbij .agent__online { margin-left: 0.4rem; animation: puls-klein 1.6s ease-in-out infinite; }
.bel.bel--keuze {
  align-self: stretch; max-width: none; padding: 0; background: none;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin: 0.25rem 0 0.5rem;
  animation: none;
}
.keuze {
  display: flex; flex-direction: column; align-items: center; gap: 0.25rem;
  padding: 1.5rem 1.1rem 1.25rem; background: var(--wit); text-align: center;
  border: 2px solid transparent;
  animation: bloop 0.7s var(--veer) both; animation-delay: calc(0.1s + var(--i) * 0.15s);
  transition: border-color 0.3s, transform 0.4s var(--uit), opacity 0.4s;
}
.keuze:not(:disabled):hover { border-color: var(--zwart); transform: translateY(-3px); }
.keuze__foto { width: 5.5rem; height: 5.5rem; border-radius: 50%; object-fit: cover; margin-bottom: 0.75rem; box-shadow: 0 0 0 4px var(--roze-zacht); }
.keuze__naam { font: 700 var(--maat-l)/1 var(--font-kop); }
.keuze__rol { font-size: var(--maat-xs); font-weight: 700; color: var(--zwart); }
.keuze__voor { font-size: var(--maat-xs); color: var(--grijs-zacht); }
.keuze__tekst { margin-top: 0.75rem; font-size: var(--maat-xs); line-height: 1.55; color: var(--grijs); }
.keuze__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem; margin-top: 0.8rem; }
.keuze__tag {
  padding: 0.28rem 0.5rem; border-radius: var(--hoek-pil);
  background: var(--roze-zacht); color: var(--zwart);
  font: 500 0.5625rem/1 var(--font-tekst); text-transform: uppercase; letter-spacing: 0.05em;
}
.keuze__knop {
  margin-top: auto; padding-top: 1.1rem;
  font-size: var(--maat-xs); font-weight: 700; color: var(--zwart);
}
.keuze__knop::after { content: " \2192"; }
.bel--keuze.is-gekozen .keuze:not(.is-gekozen) { opacity: 0.35; transform: scale(0.97); }
.keuze.is-gekozen { border-color: var(--zwart); }
.keuze:disabled { cursor: default; }
@media (max-width: 519px) {
  .bel.bel--keuze { grid-template-columns: 1fr; gap: 0.5rem; }
  .keuze {
    display: grid; grid-template-columns: 3.5rem 1fr; column-gap: 0.85rem; row-gap: 0.1rem;
    align-items: start; padding: 0.9rem; text-align: left;
  }
  .keuze > * { grid-column: 2; }
  .keuze__foto { grid-column: 1; grid-row: 1 / span 3; width: 3.5rem; height: 3.5rem; margin: 0; box-shadow: 0 0 0 3px var(--roze-zacht); }
  .keuze__tekst { margin-top: 0.4rem; font-size: 0.75rem; line-height: 1.45; }
  .keuze__tags { justify-content: flex-start; margin-top: 0.5rem; }
  .keuze__knop { padding-top: 0.6rem; }
}
@keyframes bloop { 0% { opacity: 0; transform: scale(0.4); } 60% { opacity: 1; transform: scale(1.08); } 100% { transform: scale(1); } }
@keyframes puls-klein { 50% { opacity: 0.35; } }
.agent__naam { font: 700 var(--maat-m)/1.1 var(--font-kop); }
.agent__status { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.2rem; font-size: var(--maat-xs); opacity: 0.7; }
.agent__online { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #3ddc84; }
.agent__sluit { position: relative; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(255, 255, 255, 0.1); color: inherit; transition: background 0.3s; }
.agent__sluit:hover { background: rgba(255, 255, 255, 0.2); }
.agent__sluit::before, .agent__sluit span { content: ""; position: absolute; left: 50%; top: 50%; width: 1rem; height: 1.5px; margin: -0.75px 0 0 -0.5rem; background: currentColor; rotate: 45deg; }
.agent__sluit span { rotate: -45deg; }

.agent__gesprek {
  position: relative; flex: 1; overflow-y: auto; overscroll-behavior: contain;
  display: flex; flex-direction: column; gap: 0.5rem;
  padding: 1.25rem 1.15rem; background: var(--creme);
}
.bel {
  max-width: min(85%, 30rem); padding: 0.75rem 1rem; border-radius: 1.25rem;
  font-size: var(--maat-s); line-height: 1.5;
  animation: bel-in 0.5s var(--uit) both;
}
.bel--agent { align-self: flex-start; background: var(--wit); border-bottom-left-radius: 0.35rem; }
.bel--jij { align-self: flex-end; background: var(--zwart); color: var(--wit); border-bottom-right-radius: 0.35rem; }
.bel--typt { display: flex; gap: 0.3rem; padding: 1rem 1.1rem; }
.bel--typt i { width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--grijs-zacht); animation: stip 1s ease-in-out infinite; }
.bel--typt i:nth-child(2) { animation-delay: 0.15s; }
.bel--typt i:nth-child(3) { animation-delay: 0.3s; }
.bel .knop { margin-top: 0.75rem; --k-achter: var(--zwart); --k-vul: var(--roze); }
.bel .knop:hover { --k-tekst: var(--zwart); }
.bel--rapport { align-self: stretch; max-width: none; background: var(--wit); }
.bel--rapport { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; background: var(--zwart); color: var(--wit); }
.bel--rapport strong { font: 500 var(--maat-m)/1.2 var(--font-kop); color: var(--roze); }
.bel--rapport .knop { background: var(--roze); color: var(--zwart); }

.rapport { width: min(920px, 94vw); height: min(86vh, 1000px); max-width: none; max-height: none; padding: 0; border: 0; border-radius: 0.75rem; overflow: hidden; background: #E9E4E1; display: none; flex-direction: column; transition: width 0.3s, height 0.3s; }
.rapport[open] { display: flex; }
.rapport::backdrop { background: rgba(10, 10, 10, 0.7); }
.rapport.is-groot { width: 100vw; height: 100dvh; border-radius: 0; }
.rapport__balk { display: flex; align-items: center; gap: 0.5rem; padding: 0.6rem 0.75rem 0.6rem 1.1rem; background: var(--zwart); color: var(--wit); }
.rapport__balk strong { flex: 1; font: 500 1rem/1 var(--font-kop); }
.rapport__knop { background: transparent; color: var(--wit); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 999px; padding: 0.45rem 0.9rem; font: 700 0.8rem/1 var(--font-tekst, inherit); cursor: pointer; }
.rapport__knop:hover { border-color: var(--roze); color: var(--roze); }
.rapport__doc { flex: 1; width: 100%; border: 0; background: #E9E4E1; }
@media (max-width: 640px) { .rapport { width: 100vw; height: 100dvh; border-radius: 0; } }
.bel--kaart { align-self: stretch; max-width: none; display: grid; gap: 0.6rem; background: var(--wit); border-bottom-left-radius: 0.35rem; }
.bel__kop { font: 700 var(--maat-m)/1.2 var(--font-kop); }
.bel__veld { display: grid; gap: 0.25rem; font-size: var(--maat-xs); font-weight: 700; }
.bel__veld input { min-height: 2.75rem; padding: 0 0.95rem; border: 1.5px solid var(--lijn); border-radius: var(--hoek-pil); font: 500 var(--maat-s)/1 var(--font-tekst); color: var(--zwart); background: var(--creme); outline: none; transition: border-color 0.25s, background 0.25s; }
.bel__veld input:focus { border-color: var(--zwart); background: var(--wit); }
.bel__fout { color: var(--rood); font-size: var(--maat-xs); font-weight: 700; }
.bel--kaart .knop { justify-self: start; margin-top: 0.25rem; }
@keyframes bel-in { from { opacity: 0; transform: translateY(0.75rem) scale(0.96); } }
@keyframes stip { 50% { transform: translateY(-0.3rem); opacity: 0.5; } }

.agent__opties { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0 1.15rem; background: var(--creme); }
.agent__opties:not(:empty) { padding-bottom: 0.9rem; }
.agent__optie {
  padding: 0.55rem 0.9rem; border: 1.5px solid var(--zwart); border-radius: var(--hoek-pil);
  color: var(--zwart); font: 700 var(--maat-xs)/1.2 var(--font-tekst); text-align: left;
  animation: bel-in 0.5s var(--uit) both; animation-delay: calc(var(--i) * 0.06s);
  transition: background 0.25s, color 0.25s;
}
.agent__optie:hover { background: var(--zwart); color: var(--wit); }

.agent__invoer { display: flex; gap: 0.5rem; padding: 0.75rem 0.75rem 0.4rem 1.15rem; border-top: 1px solid var(--lijn); }
.agent__invoer input { flex: 1; min-width: 0; border: 0; background: none; font: 500 var(--maat-s)/1.4 var(--font-tekst); color: var(--zwart); outline: none; }
.agent__invoer input:disabled { opacity: 0.4; }
.agent__stuur { width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; background: var(--zwart); color: var(--wit); flex: none; transition: transform 0.3s var(--veer); }
.agent__stuur:hover { transform: scale(1.08); }
.agent__stuur svg { rotate: 45deg; }
.agent__stuur:disabled { opacity: 0.35; transform: none; }
.agent__privacy { padding: 0 1.15rem 0.85rem; font-size: 0.6875rem; color: var(--grijs-zacht); }

@media (max-width: 719px) {
  .agent { width: calc(100vw - 1rem); height: calc(100dvh - 1rem); }
}
/* Terugbelverzoek: dezelfde pop-up, maar compact */
.agent.terugbel { width: min(30rem, calc(100vw - 2rem)); height: fit-content; max-height: calc(100dvh - 2rem); }
.terugbel [hidden] { display: none; }
.terugbel__mensen img { width: 2.75rem; height: 2.75rem; border-color: var(--zwart); }
.terugbel__mensen img + img { margin-left: -0.8rem; }
.terugbel__mensen .zwevend__online { border-color: var(--zwart); }
.terugbel__inhoud { padding: 1.75rem 1.5rem 0.5rem; overflow-y: auto; }
.terugbel__form, .terugbel__bedankt { display: flex; flex-direction: column; gap: 0.9rem; }
.terugbel__bedankt { align-items: center; text-align: center; padding: 1rem 0 2rem; animation: bloop 0.7s var(--veer) both; }
.terugbel__kop { font: 700 var(--maat-xl)/1 var(--font-kop); letter-spacing: -0.01em; }
.terugbel__tekst { font-size: var(--maat-s); line-height: 1.55; color: var(--grijs); margin-bottom: 0.4rem; }
.terugbel__veld { display: flex; flex-direction: column; gap: 0.4rem; font-size: var(--maat-xs); font-weight: 700; }
.terugbel__veld input {
  min-height: 3.25rem; padding: 0 1.1rem; border: 1.5px solid var(--lijn); border-radius: var(--hoek-pil);
  font: 500 var(--maat-m)/1 var(--font-tekst); color: var(--zwart); background: var(--creme);
  outline: none; transition: border-color 0.25s, background 0.25s;
}
.terugbel__veld input:focus { border-color: var(--zwart); background: var(--wit); }
.terugbel__fout { color: var(--rood); font-size: var(--maat-xs); font-weight: 700; }
.terugbel__knop { --k-achter: var(--zwart); --k-vul: var(--roze); width: 100%; margin-top: 0.4rem; }
.terugbel__knop:hover { --k-tekst: var(--zwart); }
.terugbel__form .agent__privacy { padding: 0 0 0.5rem; text-align: center; }
.terugbel__vink { width: 4.5rem; height: 4.5rem; border-radius: 50%; display: grid; place-items: center; background: var(--zwart); color: var(--wit); }
@media (max-width: 719px) {
  .agent.terugbel { width: calc(100vw - 1rem); height: fit-content; margin: auto auto 0.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .agent, .bel, .agent__optie, .agent__bol, .knop__puls::after { animation: none; transition: none; }
}
