@charset "utf-8";
/* Ensar Yufka - richting 7, Vier.
   Diepgroen, aftellend van vier naar een. Plantaardig is hier een feit en
   geen claim, dus het groen hoeft nergens over gezondheid te beweren.

   Wat hier bewust anders is dan in de andere richtingen:
   - de taalwissel is een verticale strook langs de linkerrand, omdat de
     pagina zelf verticaal aftelt;
   - de enige herhaalde beweging is een staafje dat met scaleY vanaf de
     basislijn omhoog schaalt. Geen hoogte-animatie, dus CLS blijft nul;
   - er is precies een 3D-moment: het pak dat om de y-as draait.

   Alle contrastwaarden in het commentaar zijn nagerekend door _contrast.py,
   tegen de combinaties die dit bestand werkelijk maakt.
*/

/* ── lettertypen ─────────────────────────────────────────────────────────── */
@font-face {
  font-family: 'Faustina';
  src: url('/assets/fonts/faustina.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Epilogue';
  src: url('/assets/fonts/epilogue.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

/* ── tokens ──────────────────────────────────────────────────────────────── */
:root {
  --grond:      #1E2A18;
  --vlak:       #27351F;
  --tekst:      #EDF1E3;   /* 13,07:1 op grond, 11,32:1 op vlak */
  --gedempt:    #A9B992;   /*  7,17:1 op grond,  6,22:1 op vlak */
  --goud:       #D2AC33;   /*  6,92:1 op grond,  6,00:1 op vlak */
  --goud-lijn:  #D2AC33;
  --goud-tekst: #D2AC33;
  --accent:     #C3D6A1;   /*  9,61:1 op grond,  8,33:1 op vlak */
  --knop-vlak:  #D2AC33;
  --knop-tekst: #1E2A18;   /*  6,92:1 op de knop */
  --focus:      #C3D6A1;
  --fout:       #F0A9A0;   /*  7,86:1 op grond, alleen voor formuliermeldingen */
  --lijn:       #3A4A2E;   /* decoratief, draagt geen betekenis */

  --kop: 'Faustina', Georgia, 'Times New Roman', serif;
  --tekst-font: 'Epilogue', system-ui, -apple-system, sans-serif;
  --kop-gewicht: 700;

  --radius: 6px;
  --trede: 100svh;                          /* svh, anders springt het op iOS */
  --cijfer: clamp(6rem, 22vw, 15rem);
  --staaf-breed: clamp(10px, 2vw, 22px);
  --veer: cubic-bezier(.16, 1, .3, 1);
  --duur: 1.4s;
  --perspectief: 1000px;
  --duim-knop: 56px;
  --nav-ruimte: 22ch;                       /* "Toptan siparis verin" is 20 tekens */

  --breed: 72rem;
  --lucht: clamp(3.5rem, 8vw, 7rem);
  --strook: 0px;                            /* breedte van de taalstrook */
}

/* ── grondslag ───────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
  background: var(--grond);
  color-scheme: dark;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.rm html, html.rm { scroll-behavior: auto; }

/* De vier vellen waaieren uit met een 3D-rotatie en steken daarbij tot 12 px
   buiten het scherm op 375 px breed. Dat hoort bij de beweging, maar mag geen
   horizontale schuifbalk geven. 'clip' en niet 'hidden', want hidden maakt hier
   een scroll-container van en breekt position: sticky verderop. */
html, body { overflow-x: clip; }
body {
  margin: 0;
  padding-left: var(--strook);
  background: var(--grond);
  color: var(--tekst);
  font-family: var(--tekst-font);
  font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);
  line-height: 1.62;
  font-weight: 400;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
  font-family: var(--kop);
  font-weight: var(--kop-gewicht);
  line-height: 1.08;
  margin: 0;
  letter-spacing: -.012em;
  text-wrap: balance;
  /* "Geschaeftsbedingungen" en "Datenschutzerklaerung" zijn allebei 20 tekens en
     passen op 320 pixels niet in een kop. Zonder dit duwden ze de pagina 25
     pixels breder dan het scherm. De afbreekregels komen uit het lang-attribuut
     op <html>; hyphenate-limit-chars houdt korte woorden heel.
     Firefox kent hyphenate-limit-chars nog niet en valt terug op hyphens: auto. */
  hyphens: auto;
  hyphenate-limit-chars: 12 6 4;
  overflow-wrap: break-word;
}
h1 { font-size: clamp(2.1rem, 1.2rem + 4.2vw, 4.4rem); }
h2 { font-size: clamp(1.6rem, 1.1rem + 2.1vw, 2.7rem); }
h3 { font-size: clamp(1.15rem, 1rem + .7vw, 1.5rem); }
p  { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; }
img, picture, svg, video { max-width: 100%; }
img { height: auto; display: block; }

/* Een tekstkolom nooit smaller dan 24 tekens: "conserveringsmiddelen" is er 21
   en "Konservierungsstoffe" 20. Zonder een juist lang-attribuut breekt de
   browser bovendien op de verkeerde plek, dus dat staat op <html>. */
/* Minstens tien tekens voordat er iets wordt afgebroken. Zonder die grens brak
   de browser 'sevgi' en 'Ensar' af met Nederlandse regels, en dat is voor een
   Turks woord en een eigennaam allebei fout. */
.loop, .vlak-onder, .lead, .trede-zin {
  hyphens: auto;
  hyphenate-limit-chars: 10 5 4;
}

.cijfer { font-variant-numeric: tabular-nums; font-feature-settings: 'tnum' 1; }

.vw {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 2px;
}

.overslaan {
  position: absolute; left: .5rem; top: -4rem; z-index: 60;
  background: var(--goud); color: var(--knop-tekst);
  padding: .7rem 1.1rem; border-radius: var(--radius); font-weight: 600;
  transition: top .18s var(--veer);
}
.overslaan:focus { top: .5rem; }

/* ── knoppen ─────────────────────────────────────────────────────────────── */
.knop {
  display: inline-flex; align-items: center; gap: .55rem;
  min-height: 48px; padding: .75rem 1.35rem;
  border-radius: var(--radius); border: 1px solid transparent;
  /* background moet hier expliciet staan. Een <button> zonder achtergrond krijgt
     van de browser ButtonFace, en met color-scheme: dark is dat grijs. De
     draaiknop bij het pak stond daardoor in een grijs blok; geen enkele meting
     zag dat, alleen de schermafdruk. */
  background: transparent;
  font: inherit; font-weight: 600; text-decoration: none; cursor: pointer;
  transition: background-color .3s var(--veer), border-color .3s var(--veer),
              color .3s var(--veer), transform .3s var(--veer);
}
.knop .ico { width: 1.1em; height: 1.1em; flex: none; }
.knop-vol { background: var(--knop-vlak); color: var(--knop-tekst); }
.knop-vol:hover { background: #E0BC4B; }
.knop-lijn { border-color: var(--goud-lijn); color: var(--goud-tekst); }
.knop-lijn:hover { background: rgba(210, 172, 51, .12); }
.knoppen { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.knoppen .knop { min-width: min(var(--nav-ruimte), 100%); justify-content: center; }

/* ── mededeling ──────────────────────────────────────────────────────────── */
/* In de gewone stroom, niet zwevend en niet vast. In demo 1 lag zo'n balk
   precies over de twee heroknoppen heen. */
.melding { background: var(--vlak); border-bottom: 1px solid var(--lijn); }
.melding-binnen {
  max-width: var(--breed); margin: 0 auto;
  padding: .6rem clamp(1rem, 4vw, 2.5rem);
  display: flex; gap: 1rem; align-items: center; justify-content: space-between;
}
.melding p { margin: 0; font-size: .875rem; color: var(--gedempt); }
.melding button {
  flex: none; width: 40px; height: 40px; display: grid; place-items: center;
  background: none; border: 1px solid var(--lijn); border-radius: var(--radius);
  color: var(--gedempt); cursor: pointer;
}
.melding button:hover { color: var(--tekst); border-color: var(--goud-lijn); }
.melding button .ico { width: 18px; height: 18px; }
.melding-weg .melding { display: none; }

/* ── taalstrook ──────────────────────────────────────────────────────────── */
/* Vijf echte links, geen vlaggen. Een vlag is een land en Turks wordt ook in
   Duitsland gesproken. Op smal verdwijnt de strook en zit de wissel in het
   uitklapmenu, met de volledige namen. */
.taalstrook { display: none; }

@media (min-width: 1180px) {
  :root { --strook: 56px; }
  .taalstrook {
    display: block; position: fixed; left: 0; top: 0; bottom: 0; width: 56px;
    z-index: 40; background: var(--vlak); border-right: 1px solid var(--lijn);
  }
  .taalstrook ul {
    list-style: none; margin: 0; padding: 0;
    position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%);
    display: grid; gap: .25rem; justify-items: center;
  }
  .taalstrook a {
    display: grid; place-items: center; width: 40px; height: 40px;
    border-radius: var(--radius); text-decoration: none;
    color: var(--gedempt); font-size: .8125rem; font-weight: 600;
    letter-spacing: .06em;
    transition: color .25s var(--veer), background-color .25s var(--veer);
  }
  .taalstrook a:hover { color: var(--tekst); background: rgba(210, 172, 51, .14); }
  .taalstrook a[aria-current] { background: var(--goud); color: var(--knop-tekst); }
}

/* ── kopbalk ─────────────────────────────────────────────────────────────── */
.kopbalk {
  position: sticky; top: 0; z-index: 35;
  background: rgba(30, 42, 24, .94);
  border-bottom: 1px solid var(--lijn);
}
@supports (backdrop-filter: blur(8px)) {
  .kopbalk { background: rgba(30, 42, 24, .82); backdrop-filter: blur(10px); }
}
.kop-binnen {
  max-width: var(--breed); margin: 0 auto;
  padding: .6rem clamp(1rem, 4vw, 2.5rem);
  display: flex; align-items: center; gap: clamp(.75rem, 2vw, 1.75rem);
}
/* Het logo is 400x169 en er bestaat geen SVG. Nooit breder dan 240 CSS-pixels,
   anders wordt het zichtbaar zacht op een scherm met dubbele pixeldichtheid. */
.merk { flex: none; display: block; line-height: 0; }
.merk img { width: clamp(112px, 14vw, 168px); }
.voet-merk img { width: 168px; }

.hoofdnav { margin-left: auto; }
.hoofdnav-lijst { list-style: none; display: flex; gap: clamp(.5rem, 1.6vw, 1.5rem); margin: 0; padding: 0; }
.hoofdnav-lijst a {
  display: block; padding: .55rem .25rem; text-decoration: none;
  color: var(--gedempt); font-weight: 500; font-size: .9375rem;
  border-bottom: 2px solid transparent;
  transition: color .25s var(--veer), border-color .25s var(--veer);
}
.hoofdnav-lijst a:hover { color: var(--tekst); }
.hoofdnav-lijst a[aria-current] { color: var(--tekst); border-bottom-color: var(--goud-lijn); }
.alleen-mobiel { display: none; }
.menu-talen { display: none; }
.kop-knop { flex: none; padding: .55rem 1rem; min-height: 44px; font-size: .9375rem; }
.menuknop { display: none; background: transparent; }

@media (max-width: 900px) {
  /* Het menu staat dicht in de server-HTML. Het dichtklappen gebeurt hier,
     achter de klasse .js die al in de <head> gezet wordt, en niet pas door
     vier.js. In demo 4 sprong <main> daardoor 292 pixels omhoog bij een tweede
     bezoek: CLS 0,34. Zonder JavaScript staat het menu gewoon open. */
  .js .hoofdnav {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    background: var(--vlak); border-bottom: 1px solid var(--lijn);
    padding: 1rem clamp(1rem, 4vw, 2.5rem) 1.5rem;
  }
  .js .hoofdnav.open { display: block; }
  .hoofdnav-lijst { flex-direction: column; gap: 0; }
  .hoofdnav-lijst a { padding: .85rem 0; min-height: 48px; border-bottom: 1px solid var(--lijn); }
  .hoofdnav-lijst a[aria-current] { border-bottom-color: var(--goud-lijn); }
  .alleen-mobiel { display: block; }
  .menu-talen { display: block; margin-top: 1.25rem; }
  .menu-talen-kop {
    font-family: var(--tekst-font); font-size: .75rem; font-weight: 600;
    letter-spacing: .1em; text-transform: uppercase; color: var(--gedempt);
    margin: 0 0 .5rem;
  }
  .menu-talen ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
  .menu-talen a {
    display: flex; align-items: center; min-height: 48px; padding: .5rem .75rem;
    border-radius: var(--radius); text-decoration: none; color: var(--gedempt);
  }
  .menu-talen a[aria-current] { background: var(--goud); color: var(--knop-tekst); font-weight: 600; }
  .kop-knop { display: none; }
  .menuknop {
    display: grid; place-items: center; margin-left: auto;
    width: 48px; height: 48px; flex: none;
    background: none; border: 1px solid var(--lijn); border-radius: var(--radius);
    color: var(--tekst); cursor: pointer;
  }
  .menuknop .ico { width: 22px; height: 22px; }
  .menuknop .ico-kruis, .menuknop[aria-expanded="true"] .ico-menu { display: none; }
  .menuknop[aria-expanded="true"] .ico-kruis { display: block; }
  .kopbalk { position: sticky; }
  .kop-binnen { position: relative; }
}

/* ── duimknop ────────────────────────────────────────────────────────────── */
/* Deze richting zet vier volle schermen voor het eerste product. De uitweg
   staat daarom vast in de duimzone. Hij ligt rechtsonder; de voettekst en de
   laatste knoppenrij houden daar ruimte voor vrij, en op de productenpagina
   zelf verdwijnt hij, want daar zou hij naar zichzelf wijzen. */
.duimknop {
  position: fixed; right: clamp(.75rem, 3vw, 1.75rem); bottom: clamp(.75rem, 3vw, 1.75rem);
  z-index: 38; display: inline-flex; align-items: center; gap: .5rem;
  min-height: var(--duim-knop); padding: 0 1.15rem;
  background: var(--knop-vlak); color: var(--knop-tekst);
  border-radius: 999px; text-decoration: none; font-weight: 600;
  box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .8);
  transition: transform .3s var(--veer), background-color .3s var(--veer);
}
.duimknop:hover { background: #E0BC4B; }
.duimknop .ico { width: 20px; height: 20px; flex: none; }
body[data-pagina="producten"] .duimknop { display: none; }
.voet { padding-bottom: calc(var(--duim-knop) + 2.5rem); }

/* ── hero ────────────────────────────────────────────────────────────────── */
.hoofd {
  max-width: var(--breed); margin: 0 auto;
  padding: clamp(2.5rem, 7vw, 5.5rem) clamp(1rem, 4vw, 2.5rem) clamp(2rem, 5vw, 4rem);
  display: grid; gap: clamp(2rem, 5vw, 4rem);
  grid-template-columns: 1fr;
  align-items: center;
}
@media (min-width: 900px) { .hoofd { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); } }

.tag {
  font-size: .75rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent); margin: 0 0 1rem;
}
.hoofd h1 { font-size: clamp(2.4rem, 1rem + 6.4vw, 5.2rem); display: grid; gap: .5rem; }
.h1-uit {
  font-family: var(--tekst-font); font-size: .8125rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--accent);
  line-height: 1.4;
}
.lead {
  margin-top: 1.15rem; font-size: clamp(1.0625rem, 1rem + .45vw, 1.3125rem);
  color: var(--gedempt); max-width: 46ch;
}
.overslaanlink {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.5rem;
  color: var(--gedempt); font-size: .9375rem; text-decoration: none;
  border-bottom: 1px solid var(--lijn); padding-bottom: .2rem;
  transition: color .25s var(--veer), border-color .25s var(--veer);
}
.overslaanlink:hover { color: var(--tekst); border-color: var(--goud-lijn); }
.overslaanlink .ico { width: 1em; height: 1em; }

/* Vier gestapelde vellen als vier lagen op een perspectief. Geen foto onder
   tekst: de echte productfoto's hebben het product centraal en een onrustige
   ondergrond, en tekst daaroverheen is niet te lezen. Hier staat de tekst er
   dus naast. */
.hoofd-beeld { display: grid; justify-items: center; gap: 1.25rem; }
.stapel {
  position: relative; width: min(82vw, 380px); aspect-ratio: 1;
  perspective: var(--perspectief);
}
.stapel-vel {
  position: absolute; inset: 0; width: 100%; height: auto;
  transform-style: preserve-3d;
  transition: transform 1.3s var(--veer), opacity 1s var(--veer);
  filter: drop-shadow(0 14px 26px rgba(0, 0, 0, .45));
}
.stapel-vel--4 { transform: translate3d(0, 0, -54px) rotate(6deg)  scale(.88); opacity: .5; }
.stapel-vel--3 { transform: translate3d(0, 0, -36px) rotate(-2deg) scale(.92); opacity: .68; }
.stapel-vel--2 { transform: translate3d(0, 0, -18px) rotate(3deg)  scale(.96); opacity: .84; }
.stapel-vel--1 { transform: translate3d(0, 0, 0)     rotate(-6deg); }
.stapel.in .stapel-vel--4 { opacity: .55; transform: translate3d(11%, 13%, -70px) rotate(29deg) scale(.86); }
.stapel.in .stapel-vel--3 { opacity: .72; transform: translate3d(6%, -9%, -34px) rotate(15deg) scale(.91); }
.stapel.in .stapel-vel--2 { opacity: .88; transform: translate3d(-8%, 7%, -6px) rotate(-15deg) scale(.95); }
.stapel.in .stapel-vel--1 { opacity: 1;   transform: translate3d(-6%, -9%, 40px) rotate(-27deg); }
.rm .stapel-vel { transition: none; }

.hoofd-tel { display: flex; align-items: baseline; gap: .6rem; margin: 0; color: var(--goud-tekst); }
.hoofd-tel .cijfer { font-family: var(--kop); font-size: 2.6rem; line-height: 1; }
.hoofd-tel-uit {
  font-size: .75rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gedempt);
}

/* ── pagina-kop ──────────────────────────────────────────────────────────── */
.pagina-kop {
  max-width: var(--breed); margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1rem, 4vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem);
}
.pagina-kop .lead { max-width: 60ch; }

/* ── de ladder ───────────────────────────────────────────────────────────── */
.ladder { border-top: 1px solid var(--lijn); }
.ladder-kop {
  max-width: var(--breed); margin: 0 auto;
  padding: var(--lucht) clamp(1rem, 4vw, 2.5rem) 0;
}
.ladder-kop .vlak-onder { margin-top: 1rem; color: var(--gedempt); max-width: 62ch; }

.trede {
  max-width: var(--breed); margin: 0 auto;
  min-height: var(--trede);
  padding: clamp(2rem, 6vw, 4rem) clamp(1rem, 4vw, 2.5rem);
  display: grid; align-items: center;
  grid-template-columns: auto var(--staaf-breed) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: clamp(1rem, 4vw, 3rem); row-gap: 1.5rem;
  border-bottom: 1px solid var(--lijn);
}
.trede:last-child { border-bottom: 0; }
.trede-cijfer { grid-column: 1; grid-row: 1 / -1; }
.trede-staaf  { grid-column: 2; grid-row: 1 / -1; }
.trede-tekst  { grid-column: 3; grid-row: 1; align-self: center; }
.trede-beeld  { grid-column: 3; grid-row: 2; align-self: center; }

.trede-cijfer {
  font-family: var(--kop); font-weight: var(--kop-gewicht);
  font-size: var(--cijfer); line-height: .82; color: #2B3A22;
  -webkit-text-stroke: 1px #46592F;
  align-self: center;
  transition: color 1s var(--veer);
}
.js .trede.in .trede-cijfer { color: #33452A; }

/* Het groeiende staafje: scaleY vanaf de basislijn. Geen hoogte-animatie,
   dus geen layout shift. Wat de staaf toont is hoeveel woorden er nog te gaan
   zijn (4/4, 3/4, 2/4, 1/4) en niet hoeveel van het ingredient erin zit:
   die verhoudingen kennen wij niet en verzinnen wij niet. */
.trede-staaf {
  position: relative; align-self: stretch; min-height: 160px;
  border-radius: 999px; background: rgba(58, 74, 46, .55);
  display: grid;
}
.staaf {
  position: absolute; left: 0; right: 0; bottom: 0; top: 0;
  border-radius: 999px; background: var(--goud);
  transform: scaleY(var(--deel)); transform-origin: bottom;
  transition: transform var(--duur) var(--veer);
}
.js .staaf { transform: scaleY(0); }
.js .trede.in .staaf { transform: scaleY(var(--deel)); }
.rm .staaf { transform: scaleY(var(--deel)); transition: none; }
.staaf-tekst {
  position: absolute; left: calc(100% + .75rem); bottom: 0;
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-size: .75rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--gedempt); white-space: nowrap;
}
.staaf-tekst b { color: var(--goud-tekst); }
@media (max-width: 720px) { .staaf-tekst { display: none; } }

.trede-label {
  font-size: .75rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gedempt); margin: 0 0 .9rem;
}
.trede-label .cijfer { color: var(--goud-tekst); font-weight: 700; }
.trede h3 { display: grid; gap: .25rem; }
.trede-tr { font-size: clamp(2.4rem, 1.2rem + 5vw, 4.2rem); line-height: 1; }
.trede-nl {
  font-family: var(--tekst-font); font-size: .8125rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--accent);
}
.trede-zin { margin-top: 1.15rem; max-width: 46ch; color: var(--gedempt); }
.trede-beeld { grid-column: 3; justify-self: end; margin-top: 1.5rem; }
.trede-beeld .vel {
  width: min(58vw, 210px); height: auto; opacity: .9;
  transform: rotate(-4deg);
  transition: transform 1.6s var(--veer), opacity 1s var(--veer);
}
.trede-beeld .vel { opacity: .55; transform: rotate(-13deg) scale(.94); }
.trede.in .trede-beeld .vel { opacity: .9; transform: rotate(-4deg) scale(1); }
.rm .trede-beeld .vel { opacity: .9; transform: rotate(-4deg); transition: none; }

@media (max-width: 720px) {
  .trede {
    grid-template-columns: var(--staaf-breed) minmax(0, 1fr);
    grid-template-rows: auto auto auto; align-items: start;
  }
  .trede-cijfer { grid-column: 1 / -1; grid-row: 1; font-size: clamp(5rem, 26vw, 9rem); }
  .trede-staaf { grid-column: 1; grid-row: 2 / -1; }
  .trede-tekst { grid-column: 2; grid-row: 2; }
  .trede-beeld { grid-column: 2; grid-row: 3; justify-self: start; }
}

/* ── vlak ────────────────────────────────────────────────────────────────── */
.vlak {
  max-width: var(--breed); margin: 0 auto;
  padding: var(--lucht) clamp(1rem, 4vw, 2.5rem);
  border-top: 1px solid var(--lijn);
}
.vlak-titel { max-width: 62ch; margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.vlak-onder { margin: 1rem 0 0; color: var(--gedempt); }
.vlak--bron .vlak-inhoud, .vlak--eerlijk .vlak-inhoud { max-width: 66ch; }
.loop { max-width: 66ch; }
.loop p { margin-bottom: 1.1em; }
.loop .knop { margin-top: .5rem; }
.voetnoot { font-size: .875rem; color: var(--gedempt); max-width: 72ch; margin-top: 1.25rem; }

.citaat {
  margin: 0 0 2rem; padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--vlak); border-left: 3px solid var(--goud-lijn);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.citaat blockquote { margin: 0; }
.citaat blockquote p {
  font-family: var(--kop); font-size: clamp(1.3rem, 1rem + 1.4vw, 2rem);
  line-height: 1.24; margin: 0; color: var(--tekst);
}
.citaat figcaption { margin-top: .9rem; font-size: .875rem; color: var(--gedempt); }

/* ── drie tegenover veertien ─────────────────────────────────────────────── */
.tegenover { display: grid; gap: clamp(1rem, 3vw, 2rem); grid-template-columns: 1fr; }
@media (min-width: 760px) { .tegenover { grid-template-columns: 1fr 1fr; } }
.teg::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0;
  width: var(--staaf-breed); background: #36462C;
}
.teg {
  position: relative; background: var(--vlak); border: 1px solid var(--lijn);
  border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2rem);
  padding-left: clamp(2.25rem, 5vw, 3.25rem);
  overflow: hidden;
}
.teg-staaf {
  position: absolute; left: 0; top: 0; bottom: 0; width: var(--staaf-breed);
  background: var(--goud); transform: scaleY(var(--deel)); transform-origin: bottom;
  transition: transform var(--duur) var(--veer);
}
.js .teg-staaf { transform: scaleY(0); }
.teg--lang .teg-staaf { background: var(--accent); }
.js .teg.in .teg-staaf { transform: scaleY(var(--deel)); }
.rm .teg-staaf { transform: scaleY(var(--deel)); transition: none; }
.teg-getal {
  font-family: var(--kop); font-size: clamp(3rem, 1.5rem + 6vw, 5.5rem);
  line-height: .9; margin: 0 0 .35rem; color: var(--goud-tekst);
}
.teg--lang .teg-getal { color: var(--accent); }
.teg h3 { margin-bottom: .6rem; }
.teg p:not(.teg-getal) { color: var(--gedempt); }
.teg-uit { margin-top: 1rem; }
.teg-uit summary {
  display: flex; align-items: center; gap: .4rem; cursor: pointer;
  list-style: none; min-height: 44px;
  font-weight: 600; font-size: .9375rem; color: var(--accent);
}
.teg-uit summary::-webkit-details-marker { display: none; }
.teg-uit .ico { width: 1.1em; height: 1.1em; transition: transform .3s var(--veer); }
.teg-uit[open] .ico { transform: rotate(180deg); }
.teg-lijst {
  margin: .75rem 0 0; padding-left: 1.5rem;
  font-size: .9375rem; color: var(--gedempt); columns: 2; column-gap: 1.5rem;
}
.teg-lijst li { margin-bottom: .2rem; break-inside: avoid; }
@media (max-width: 560px) { .teg-lijst { columns: 1; } }

/* ── productkaarten ──────────────────────────────────────────────────────── */
.pklijst { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(1rem, 2.5vw, 1.75rem); }
@media (min-width: 720px) { .pklijst { grid-template-columns: repeat(3, 1fr); } }
.pk-link {
  display: flex; flex-direction: column; height: 100%;
  background: var(--vlak); border: 1px solid var(--lijn); border-radius: var(--radius);
  overflow: hidden; text-decoration: none;
  transition: border-color .35s var(--veer), transform .35s var(--veer);
}
.pk-link:hover { border-color: var(--goud-lijn); transform: translateY(-3px); }
.rm .pk-link:hover { transform: none; }
.pk-beeld { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--grond); }
.pk-beeld img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--veer); }
.pk-link:hover .pk-beeld img { transform: scale(1.04); }
.rm .pk-link:hover .pk-beeld img { transform: none; }
.pk-tekst { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem; flex: 1; }
.pk-label {
  font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent);
}
.pk-naam { font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem); }
.pk-kort { color: var(--gedempt); font-size: .9375rem; }
.pk-voet {
  display: flex; align-items: center; gap: .5rem; margin-top: auto; padding-top: .75rem;
  border-top: 1px solid var(--lijn); color: var(--goud-tekst); font-weight: 600;
}
.pk-per { color: var(--gedempt); font-weight: 400; font-size: .875rem; }
.pk-voet .ico { width: 1.1em; height: 1.1em; margin-left: auto; }

/* ── de zakelijke band ───────────────────────────────────────────────────── */
/* Volle breedte, in het vlak. Niet gesplitst naar koper maar naar motief:
   de korte lijst is voor een schapmanager net zo goed een verkoopargument. */
.band { background: var(--vlak); border-top: 1px solid var(--lijn); border-bottom: 1px solid var(--lijn); }
.band-binnen {
  max-width: var(--breed); margin: 0 auto;
  padding: var(--lucht) clamp(1rem, 4vw, 2.5rem);
  display: grid; gap: clamp(1.75rem, 4vw, 3.5rem);
}
@media (min-width: 860px) { .band-binnen { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); } }
.band-tekst .vlak-onder { max-width: 52ch; }
.band-lijst h3 {
  font-family: var(--tekst-font); font-size: .75rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--accent);
  margin-bottom: 1rem;
}
.openlijst { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.openlijst li {
  display: flex; gap: .6rem; align-items: flex-start;
  font-size: .9375rem; color: var(--gedempt);
}
.openlijst .ico { width: 18px; height: 18px; flex: none; margin-top: .2rem; color: var(--goud-tekst); }

/* ── recepten kort ───────────────────────────────────────────────────────── */
.rklijst { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
@media (min-width: 760px) { .rklijst { grid-template-columns: 1fr 1fr; column-gap: clamp(1.5rem, 4vw, 3rem); } }
.rklijst a {
  display: flex; align-items: center; gap: 1rem; padding: 1rem 0;
  border-bottom: 1px solid var(--lijn); text-decoration: none;
  transition: color .25s var(--veer);
}
.rklijst a:hover { color: var(--goud-tekst); }
.rk-naam { flex: 1; }
.rk-tijd { color: var(--gedempt); font-size: .875rem; }
.rklijst .ico { width: 1.1em; height: 1.1em; flex: none; color: var(--goud-tekst); }

/* ── slot ────────────────────────────────────────────────────────────────── */
.vlak--slot .slot {
  display: grid; gap: 1.5rem; align-items: center;
  background: var(--vlak); border: 1px solid var(--lijn); border-radius: var(--radius);
  padding: clamp(1.75rem, 4vw, 3rem);
}
@media (min-width: 800px) { .vlak--slot .slot { grid-template-columns: minmax(0, 1fr) auto; } }
.vlak--slot p { color: var(--gedempt); margin-top: .75rem; }
.vlak--slot .knoppen { margin-top: 0; }

/* ── tabellen ────────────────────────────────────────────────────────────── */
/* position: relative is hier geen sier. De <caption class="vw"> en de verborgen
   kolomkop staan op position: absolute; zonder een gepositioneerde ouder hangen
   ze aan het document en duwen ze de pagina 17 tot 23 pixels breder dan het
   scherm, alleen in het Duits en het Frans, waar de tabel het breedst is. */
.tabel-raam { overflow-x: auto; position: relative; }
.blad-tabel { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.blad-tabel th, .blad-tabel td {
  text-align: left; padding: .8rem .9rem; border-bottom: 1px solid var(--lijn);
  vertical-align: top;
}
.blad-tabel thead th {
  font-family: var(--tekst-font); font-size: .6875rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--accent);
  border-bottom: 1px solid var(--goud-lijn); white-space: nowrap;
}
.blad-tabel tbody th { font-weight: 600; }
.blad-tabel tbody th a { color: var(--tekst); text-decoration: none; }
.blad-tabel tbody th a:hover { color: var(--goud-tekst); }
.rij-label { display: block; font-weight: 400; font-size: .8125rem; color: var(--gedempt); }
.bladlink { display: inline-flex; align-items: center; gap: .35rem; color: var(--goud-tekst); text-decoration: none; white-space: nowrap; }
.bladlink .ico { width: 1em; height: 1em; }
.open-punt { color: var(--gedempt); font-style: italic; font-size: .875rem; }
.open-noot { display: block; font-size: .8125rem; color: var(--gedempt); margin-top: .3rem; opacity: .85; }
.sp-groep th {
  font-family: var(--tekst-font); font-size: .6875rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--accent);
  background: var(--vlak); border-bottom: 1px solid var(--goud-lijn);
}
.og--vast th .ico, .og--open th .ico { width: 16px; height: 16px; margin-right: .5rem; vertical-align: -2px; }
.og--vast th .ico { color: var(--accent); }
.og--open th .ico { color: var(--gedempt); }

@media (max-width: 720px) {
  .blad-tabel, .blad-tabel tbody, .blad-tabel tr, .blad-tabel td, .blad-tabel th { display: block; }
  .blad-tabel thead { display: none; }
  .blad-tabel tr { border-bottom: 1px solid var(--goud-lijn); padding: .75rem 0; }
  .blad-tabel th, .blad-tabel td { border-bottom: 0; padding: .3rem 0; }
  .blad-tabel td[data-kop]::before {
    content: attr(data-kop) ": "; font-size: .75rem; letter-spacing: .08em;
    text-transform: uppercase; color: var(--accent); display: block;
  }
  .blad-tabel--spec tr, .blad-tabel--og tr { display: grid; grid-template-columns: 1fr; }
  .sp-groep { border-bottom: 0; }
}

/* ── het pak dat omdraait: het enige 3D-moment ───────────────────────────── */
.pakblok { display: grid; gap: 1.5rem; justify-items: start; align-items: center; }
@media (min-width: 900px) {
  .pakblok { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); column-gap: 3rem; }
}
.pak { perspective: var(--perspectief); width: min(100%, 420px); }
.pak-draaier {
  position: relative; transform-style: preserve-3d;
  transition: transform 1s var(--veer);
  min-height: 260px;
}
.pak.om .pak-draaier { transform: rotateY(180deg); }
.pak-zij {
  border: 1px solid var(--lijn); border-radius: var(--radius);
  background: var(--vlak); padding: clamp(1.25rem, 3vw, 1.75rem);
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
  min-height: 260px;
}
.pak-achter {
  position: absolute; inset: 0; transform: rotateY(180deg);
  border-color: var(--goud-lijn);
}
.pak-zij-label {
  font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1rem;
}
.pak-naam { font-family: var(--kop); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.1; margin-bottom: .5rem; }
.pak-onder { color: var(--gedempt); font-size: .9375rem; }
.pak-prijs { font-family: var(--kop); font-size: 2rem; color: var(--goud-tekst); margin: 0; }
.pak-veld {
  font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--gedempt); margin-bottom: .35rem;
}
.pak-wat { font-size: .875rem; color: var(--gedempt); margin-bottom: .5rem; }
.pak-citaat { font-family: var(--kop); font-size: 1.35rem; color: var(--tekst); margin-bottom: 1rem; }
.pak-uitleg { font-size: .8125rem; color: var(--gedempt); margin: 0; }

/* Zonder JavaScript en bij beperkte beweging staat de achterkant er gewoon
   onder. Een 3D-element dat op de verkeerde plek blijft hangen is erger dan
   geen 3D. */
.pak-achter { display: none; }
.js .pak-achter { display: block; }
.rm .pak-draaier { transform: none !important; transition: none; }
.rm .pak-achter { position: static; inset: auto; transform: none; margin-top: 1rem; }
.rm .pak-knop { display: none; }
html:not(.js) .pak-achter { display: block; position: static; transform: none; margin-top: 1rem; }
html:not(.js) .pak-knop { display: none; }

/* ── kader (stilstaand beeld) ────────────────────────────────────────────── */
.kaderblok { display: grid; gap: clamp(1.5rem, 4vw, 2.5rem); }
@media (min-width: 800px) { .kaderblok { grid-template-columns: minmax(0, .55fr) minmax(0, 1fr); align-items: start; } }
.kaderraam { margin: 0; }
.kaderraam img { border-radius: var(--radius); border: 1px solid var(--lijn); width: 100%; }
.kaderraam figcaption { margin-top: .75rem; font-size: .875rem; color: var(--gedempt); }
.kadertekst p { color: var(--gedempt); max-width: 60ch; }
.kadertekst .knop { margin-top: .75rem; }

/* ── productpagina ───────────────────────────────────────────────────────── */
.kruimels {
  max-width: var(--breed); margin: 0 auto;
  padding: 1.25rem clamp(1rem, 4vw, 2.5rem) 0;
  font-size: .875rem; color: var(--gedempt);
}
.kruimels ol { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; }
.kruimels li + li::before { content: "/"; margin-right: .5rem; color: var(--lijn); }
.kruimels a { color: var(--gedempt); text-decoration: none; }
.kruimels a:hover { color: var(--tekst); }

.prodkop {
  max-width: var(--breed); margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 4vw, 2.5rem) clamp(2rem, 5vw, 3.5rem);
  display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center;
}
@media (min-width: 860px) { .prodkop { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); } }
.prodkop-beeld { margin: 0; }
.prodkop-beeld img { border-radius: var(--radius); border: 1px solid var(--lijn); width: 100%; }
.prijsregel { margin-top: 1.25rem; font-size: 1.5rem; color: var(--goud-tekst); font-family: var(--kop); }
.prijsregel span:last-child { font-family: var(--tekst-font); font-size: .875rem; color: var(--gedempt); }
.prodkop .voetnoot { margin-top: 1rem; }

.geglijst { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.geglijst a {
  display: flex; align-items: center; gap: 1rem; padding: 1rem 0;
  border-bottom: 1px solid var(--lijn); text-decoration: none;
  transition: color .25s var(--veer);
}
.geglijst a:hover { color: var(--goud-tekst); }
.geglijst .ico { width: 20px; height: 20px; flex: none; color: var(--goud-tekst); }
.geglijst a > span:not(.geg-kop):not(.geg-onder) { flex: 1; display: grid; gap: .15rem; }
.geg-kop { font-weight: 600; }
.geg-onder { font-size: .875rem; color: var(--gedempt); }
.geglijst .ico:last-child { margin-left: auto; }

/* ── cijfers, klanten ────────────────────────────────────────────────────── */
.cijferlijst, .klantlijst { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
@media (min-width: 720px) { .cijferlijst { grid-template-columns: repeat(4, 1fr); } .klantlijst { grid-template-columns: repeat(2, 1fr); } }
.cijferlijst li, .klantlijst li {
  border-top: 2px solid var(--goud-lijn); padding-top: 1rem; display: grid; gap: .35rem;
}
.cijfer-getal { font-family: var(--kop); font-size: clamp(2rem, 1.4rem + 2vw, 3rem); line-height: 1; color: var(--tekst); }
.cijfer-uitleg, .klant-soort { font-size: .875rem; color: var(--gedempt); }
.klant-naam { font-family: var(--kop); font-size: 1.5rem; }

/* ── recepten ────────────────────────────────────────────────────────────── */
.receptlijst { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.recept summary {
  display: flex; align-items: center; gap: 1rem; cursor: pointer; list-style: none;
  padding: 1.1rem 0; border-bottom: 1px solid var(--lijn); min-height: 48px;
}
.recept summary::-webkit-details-marker { display: none; }
.recept-naam { flex: 1; font-family: var(--kop); font-size: 1.25rem; }
.recept-meta { font-size: .875rem; color: var(--gedempt); }
.recept .ico { width: 1.2em; height: 1.2em; color: var(--goud-tekst); transition: transform .3s var(--veer); }
.recept[open] .ico { transform: rotate(180deg); }
.recept-uit {
  padding: 1.25rem 0 1.75rem; display: grid; gap: 1.5rem;
  border-bottom: 1px solid var(--lijn);
}
@media (min-width: 760px) { .recept-uit { grid-template-columns: 1fr 1fr 1fr; } .recept-kort { grid-column: 1 / -1; } }
.recept-uit h3 {
  font-family: var(--tekst-font); font-size: .6875rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; color: var(--accent);
  margin-bottom: .6rem;
}
.recept-ing, .recept-stap { margin: 0; padding-left: 1.25rem; color: var(--gedempt); font-size: .9375rem; }
.recept-ing { list-style: none; padding-left: 0; }
.recept-ing li { padding-left: 1rem; position: relative; margin-bottom: .3rem; }
.recept-ing li::before { content: ""; position: absolute; left: 0; top: .65em; width: 6px; height: 1px; background: var(--goud-lijn); }
.recept-stap li { margin-bottom: .5rem; }
.recept-kort { color: var(--gedempt); }

/* ── formulier ───────────────────────────────────────────────────────────── */
.demo-noot {
  padding: .9rem 1.1rem; background: var(--vlak); border-left: 3px solid var(--goud-lijn);
  border-radius: 0 var(--radius) var(--radius) 0; font-size: .9375rem; color: var(--gedempt);
  max-width: 66ch;
}
.formulier { display: grid; gap: 1.25rem; max-width: 44rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .formulier { grid-template-columns: 1fr 1fr; } .veld--breed { grid-column: 1 / -1; } }
.veld { display: grid; gap: .4rem; }
.veld label, .veld legend { font-size: .875rem; font-weight: 600; }
.hint { font-weight: 400; color: var(--gedempt); }
.veld input, .veld select, .veld textarea {
  font: inherit; font-size: 1rem; color: var(--tekst);
  background: var(--vlak); border: 1px solid var(--lijn); border-radius: var(--radius);
  padding: .7rem .85rem; min-height: 48px; width: 100%;
  transition: border-color .25s var(--veer);
}
.veld textarea { min-height: 8rem; resize: vertical; }
.veld input:hover, .veld select:hover, .veld textarea:hover { border-color: var(--gedempt); }
.veld input:focus, .veld select:focus, .veld textarea:focus { border-color: var(--goud-lijn); }
.veld fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: .4rem; }
.radio, .akkoord { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; font-size: .9375rem; min-height: 44px; }
.radio input, .akkoord input { width: 20px; height: 20px; min-height: 20px; margin-top: .35rem; accent-color: var(--goud); flex: none; }
.akkoord a { color: var(--goud-tekst); }
.fout { color: var(--fout); font-size: .875rem; margin: 0; }
.status { margin: 0; font-size: .9375rem; color: var(--gedempt); }
.veld--knop { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

/* ── voettekst ───────────────────────────────────────────────────────────── */
/* Geen margin-top: het laatste vlak heeft al een ruime onderrand, en twee
   keer --lucht achter elkaar gaf een gat van veertien rem voor de voettekst. */
.voet { background: var(--vlak); border-top: 1px solid var(--lijn); }
.voet-binnen {
  max-width: var(--breed); margin: 0 auto;
  padding: var(--lucht) clamp(1rem, 4vw, 2.5rem) 2rem;
  display: grid; gap: 2.5rem;
}
@media (min-width: 860px) { .voet-binnen { grid-template-columns: 1.3fr 1fr 1fr 1.2fr; } }
.spreuk { font-family: var(--kop); color: var(--goud-tekst); margin-top: 1rem; }
.voet-sociaal { display: flex; gap: .5rem; margin-top: 1rem; }
.voet-sociaal a {
  width: 44px; height: 44px; display: grid; place-items: center;
  border: 1px solid var(--lijn); border-radius: var(--radius); color: var(--gedempt);
  transition: color .25s var(--veer), border-color .25s var(--veer);
}
.voet-sociaal a:hover { color: var(--tekst); border-color: var(--goud-lijn); }
.voet-sociaal .ico { width: 20px; height: 20px; }
.voet-kolom h2 {
  font-family: var(--tekst-font); font-size: .6875rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--accent);
  margin-bottom: .9rem;
}
.voet-kolom ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.voet-kolom a { display: inline-flex; align-items: center; gap: .5rem; min-height: 40px; color: var(--gedempt); text-decoration: none; font-size: .9375rem; }
.voet-kolom a:hover { color: var(--tekst); }
.voet-kolom a[aria-current] { color: var(--goud-tekst); font-weight: 600; }
.voet-adres p { margin: 0; }
.voet-adres .ico { width: 18px; height: 18px; flex: none; color: var(--goud-tekst); }
.rustknop {
  display: inline-flex; align-items: center; gap: .5rem; margin-top: .75rem;
  min-height: 44px; padding: .5rem .85rem; font: inherit; font-size: .9375rem;
  background: none; border: 1px solid var(--lijn); border-radius: var(--radius);
  color: var(--gedempt); cursor: pointer;
}
.rustknop:hover { color: var(--tekst); border-color: var(--goud-lijn); }
.rustknop[aria-pressed="true"] { color: var(--goud-tekst); border-color: var(--goud-lijn); }
.rustknop .ico { width: 18px; height: 18px; }
.voet-regel {
  max-width: var(--breed); margin: 0 auto;
  padding: 1.25rem clamp(1rem, 4vw, 2.5rem) 0;
  border-top: 1px solid var(--lijn);
  font-size: .8125rem; color: var(--gedempt);
}
.voet-regel a { color: var(--goud-tekst); }

/* ── onthullen bij het scrollen ──────────────────────────────────────────── */
/* data-rv wordt door vier.js gezet en staat niet in de HTML. Valt het script
   weg, dan staat er niets op opacity 0. En nooit clip-path op het element dat
   je observeert: een weggeknipt element heeft geen oppervlak, de observer
   vuurt nooit en het blijft eeuwig onzichtbaar. */
[data-rv] { opacity: 0; transform: translate3d(0, 26px, 0); }
[data-rv].in {
  opacity: 1; transform: none;
  transition: opacity .7s var(--veer), transform .7s var(--veer);
  transition-delay: var(--rv-vertraging, 0ms);
}
.rm [data-rv], .rm [data-rv].in { opacity: 1; transform: none; transition: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
}

@media print {
  .kopbalk, .taalstrook, .duimknop, .melding, .voet-sociaal, .rustknop, .overslaan { display: none !important; }
  body { background: #fff; color: #000; padding-left: 0; }
  .vlak, .trede { min-height: 0; page-break-inside: avoid; }
}
