/* Van den Hoek Administraties, demo-homepage
   Lettertypes: Archivo (breed en schuin, lijkt op het logo) en IBM Plex Sans. Hoekradius overal 0. */

@font-face { font-family: "Archivo"; src: url("../fonts/archivo-var.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap; }
@font-face { font-family: "Archivo"; src: url("../fonts/archivo-var-italic.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-style: italic; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/plex-sans-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/plex-sans-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/plex-sans-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

:root {
  color-scheme: light dark;
  --papier: #F2F4F8;
  --papier-2: #E4E9F2;
  --inkt: #0A0D14;
  --inkt-2: #454E60;
  --blauw: #0049E5;
  --blauw-hover: #0038B8;
  --knop-tekst: #FFFFFF;
  --lijn: rgba(10, 13, 20, .16);
  --lijn-sterk: rgba(10, 13, 20, .55);
  --blok-bg: #0A0D14;
  --blok-tekst: #F2F4F8;
  --blok-dim: #A9B2C3;
  --blok-blauw: #7BA3FF;
  --blok-lijn: rgba(242, 244, 248, .22);
  --veld-lijn: #6B7488;
  --veld-bg: #121722;

  --kop: "Archivo", "Arial Black", system-ui, sans-serif;
  --tekst: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rand: clamp(1rem, 4vw, 2.5rem);
  --max: 1240px;
  --kop-hoogte: 4.5rem;
  --uit: cubic-bezier(.22, 1, .36, 1);
}

@media (prefers-color-scheme: dark) {
  :root {
    --papier: #0B0F17;
    --papier-2: #141B28;
    --inkt: #EEF1F7;
    --inkt-2: #A9B2C3;
    --blauw: #6F9BFF;
    --blauw-hover: #8FB1FF;
    --knop-tekst: #0A0D14;
    --lijn: rgba(238, 241, 247, .16);
    --lijn-sterk: rgba(238, 241, 247, .55);
    --blok-bg: #05070B;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--kop-hoogte) + 1rem); scroll-padding-bottom: 5.5rem; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--papier);
  color: var(--inkt);
  font: 400 1.0625rem/1.62 var(--tekst);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
html { scrollbar-color: color-mix(in srgb, var(--inkt) 38%, transparent) transparent; accent-color: var(--blauw); }
::selection { background: var(--blauw); color: var(--knop-tekst); }
input, textarea { caret-color: var(--blok-blauw); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
ul, ol { margin: 0; padding: 0; list-style: none; }
p, h1, h2, h3, dl, dd { margin: 0; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a, button, label, summary { touch-action: manipulation; -webkit-tap-highlight-color: color-mix(in srgb, var(--blauw) 18%, transparent); }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
:focus-visible { outline: 3px solid var(--blauw); outline-offset: 3px; }
.blok :focus-visible { outline-color: var(--blok-blauw); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sla-over { position: absolute; left: .5rem; top: -4rem; z-index: 60; background: var(--inkt); color: var(--papier); padding: .7rem 1rem; text-decoration: none; }
.sla-over:focus { top: .5rem; }

.houder { width: min(100% - 2 * var(--rand), var(--max)); margin-inline: auto; }

/* Het schuine streepje uit het logo, als terugkerend merkelement */
.streep { display: inline-block; width: .55rem; height: 1.15rem; background: var(--blauw); transform: skewX(-18deg); vertical-align: -.2rem; margin-right: .7rem; }

/* ---------- Koptekst ---------- */
.kop {
  position: sticky; top: 0; z-index: 40;
  height: var(--kop-hoogte);
  background: color-mix(in srgb, var(--papier) 86%, transparent);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid var(--lijn);
}
.kop-in { height: 100%; display: flex; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); }
.logo { display: block; flex: none; width: clamp(9rem, 17vw, 13rem); }
.logo img { width: 100%; }
.nav { display: flex; gap: clamp(1rem, 2.2vw, 2rem); margin-left: auto; }
.nav a { text-decoration: none; font-weight: 500; font-size: .98rem; padding: .5rem 0; background: linear-gradient(var(--blauw), var(--blauw)) 0 100% / 0 2px no-repeat; transition: background-size .35s var(--uit); }
.nav a:hover { background-size: 100% 2px; }
.kop-acties { display: flex; align-items: center; gap: 1.25rem; }
.tel { text-decoration: none; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tel:hover { color: var(--blauw); }
.menu-knop { display: none; width: 2.75rem; height: 2.75rem; background: none; border: 1px solid var(--lijn-sterk); padding: 0; position: relative; }
.menu-knop i, .menu-knop i::before { content: ""; position: absolute; left: .8rem; right: .8rem; height: 2px; background: currentColor; transition: transform .3s var(--uit); }
.menu-knop i { top: 1.25rem; }
.menu-knop i::before { left: 0; right: 0; top: -.35rem; }
.kop.open .menu-knop i { transform: rotate(45deg); }
.kop.open .menu-knop i::before { transform: translateY(.35rem) rotate(-90deg); }

/* ---------- Knoppen ---------- */
.knop {
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3rem; padding: 0 1.5rem;
  background: var(--blauw); color: var(--knop-tekst);
  border: 0; border-radius: 0;
  font: 600 1rem/1 var(--tekst); text-decoration: none; white-space: nowrap;
  transition: transform .12s ease-out;
}
.knop::before {
  content: ""; position: absolute; inset: 0 -25%; z-index: -1;
  background: rgba(255, 255, 255, .18);
  transform: translateX(-115%) skewX(-18deg);
  transition: transform .5s var(--uit);
}
.knop:hover::before { transform: translateX(0) skewX(-18deg); }
.knop:active { transform: translateY(1px) scale(.985); transition-duration: 60ms; }
.knop-lijn { font-weight: 600; text-decoration: none; padding: .5rem 0; background: linear-gradient(var(--blauw), var(--blauw)) 0 100% / 100% 2px no-repeat; transition: background-size .25s var(--uit), color .2s; font-variant-numeric: tabular-nums; }
.knop-lijn:hover { background-size: 100% 100%; color: var(--knop-tekst); }
.knop-lijn:active { opacity: .85; }

/* ---------- Hero ---------- */
.hero { position: relative; min-height: calc(100dvh - var(--kop-hoogte)); display: flex; flex-direction: column; justify-content: space-between; overflow: clip; }
.hero-in { position: relative; padding-top: clamp(2.5rem, 9vh, 5.5rem); padding-bottom: clamp(1.5rem, 4vh, 3rem); }
.hero h1 {
  font: 800 clamp(1.85rem, 7vw, 5.6rem)/1.04 var(--kop);
  font-stretch: 125%;
  letter-spacing: -.022em;
  max-width: 14em;
}
.regel { display: block; overflow: hidden; padding-bottom: .16em; margin-bottom: -.16em; }
.regel-in { display: block; }
.hero h1 em, .h-accent em { font-style: italic; color: var(--blauw); padding-right: .06em; }
.hero-tekst { max-width: 36rem; margin-top: clamp(1.1rem, 2.8vh, 2rem); font-size: clamp(1.05rem, 1.2vw + .7rem, 1.3rem); line-height: 1.5; color: var(--inkt-2); }
.hero-acties { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.75rem; margin-top: clamp(1.4rem, 3.4vh, 2.25rem); }

.stempel {
  position: absolute; right: 0; bottom: clamp(1.5rem, 5vh, 3.5rem);
  transform: rotate(-7deg); transform-origin: 50% 50%;
  border: .22rem solid var(--blauw); color: var(--blauw);
  padding: .65rem 1.1rem .6rem; text-align: center; line-height: 1;
  font-family: var(--kop); font-weight: 800; font-stretch: 125%; text-transform: uppercase; letter-spacing: .08em;
  pointer-events: none; user-select: none;
}
.stempel::before { content: ""; position: absolute; inset: .3rem; border: .07rem solid currentColor; }
.stempel span { display: block; font-size: clamp(1.5rem, 2.8vw, 2.6rem); }
.stempel small { display: block; margin-top: .5rem; font: 600 .7rem/1.2 var(--tekst); letter-spacing: .14em; font-stretch: 100%; }

/* Veld van schuine streepjes met euroteken (grootboektextuur, geen tekst) */
.streepjes {
  position: relative; height: clamp(6.5rem, 27vh, 16rem); overflow: hidden;
  font: 400 .95rem/1.5rem ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color: color-mix(in srgb, var(--blauw) 26%, transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 55%);
  mask-image: linear-gradient(to bottom, transparent, #000 55%);
  user-select: none;
}
.sr-rij { display: block; white-space: pre; height: 1.5rem; letter-spacing: .12em; }
.sr-rij b { font-weight: 400; color: var(--blauw); }

/* ---------- Secties ---------- */
.sectie { padding-block: clamp(4rem, 9vw, 7.5rem); }
.sectie h2 { font: 700 clamp(1.9rem, 3.4vw + .4rem, 3.4rem)/1.08 var(--kop); font-stretch: 112%; letter-spacing: -.018em; max-width: 18em; }
.intro { margin-top: 1rem; max-width: 34rem; color: var(--inkt-2); font-size: 1.15rem; line-height: 1.5; }

/* Diensten: genummerde haarlijnrijen die openklappen */
.diensten { margin-top: clamp(2rem, 5vw, 3.5rem); border-top: 1px solid var(--lijn-sterk); }
.dienst { border-bottom: 1px solid var(--lijn); }
.dienst h3 { font: inherit; }
.dienst-kop {
  width: 100%; display: grid; grid-template-columns: clamp(2.8rem, 6vw, 4.5rem) minmax(0, 1fr) 2.5rem; column-gap: 1rem; align-items: start;
  background: none; border: 0; border-radius: 0; text-align: left; padding: 1.6rem 0;
  transition: background-color .2s;
}
.dienst-kop:hover { background: color-mix(in srgb, var(--blauw) 6%, transparent); }
.dienst-kop:active { background: color-mix(in srgb, var(--blauw) 12%, transparent); transition-duration: 40ms; }
.nr { font: italic 700 1.15rem/1.9 var(--kop); font-stretch: 112%; color: var(--blauw); font-variant-numeric: tabular-nums; }
.dienst-titel { display: block; font: 700 clamp(1.3rem, 1.6vw + .8rem, 1.9rem)/1.2 var(--kop); font-stretch: 112%; letter-spacing: -.012em; }
.dienst-samen { display: block; margin-top: .45rem; color: var(--inkt-2); font: 400 1.0625rem/1.5 var(--tekst); max-width: 40rem; }
.plus { position: relative; width: 1.5rem; height: 1.5rem; justify-self: end; margin-top: .3rem; transition: transform .45s var(--uit); }
.plus::before, .plus::after { content: ""; position: absolute; background: currentColor; left: 0; right: 0; top: calc(50% - 1px); height: 2px; }
.plus::after { transform: rotate(90deg); }
.dienst.open .plus { transform: rotate(45deg); color: var(--blauw); }
.dienst-body { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .55s var(--uit), visibility 0s .55s; }
.dienst.open .dienst-body { grid-template-rows: 1fr; visibility: visible; transition-delay: 0s; }
.dienst-binnen { overflow: hidden; min-height: 0; }
.dienst-tekst { padding: 0 0 2rem calc(clamp(2.8rem, 6vw, 4.5rem) + 1rem); max-width: 46rem; margin-left: 0; }
.dienst-tekst p + ul { margin-top: 1rem; }
.dienst-tekst li { position: relative; padding-left: 1.4rem; margin-top: .35rem; }
.dienst-tekst li::before { content: ""; position: absolute; left: .15rem; top: .55em; width: .28rem; height: .8em; background: var(--blauw); transform: skewX(-18deg); }

/* Werkwijze: tijdlijn die zich vult bij scrollen */
.sectie-ritme { background: var(--papier-2); }
.ritme { position: relative; margin-top: clamp(2.5rem, 6vw, 4.25rem); }
.ritme-stops { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 clamp(1rem, 2.2vw, 2.25rem); }
.ritme-lijn { position: absolute; left: 0; right: 0; top: .6rem; height: 2px; background: color-mix(in srgb, var(--inkt) 24%, transparent); }
.ritme-lijn i { display: block; height: 100%; background: var(--blauw); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); }
.stop { position: relative; padding-top: 2.6rem; opacity: .62; transition: opacity .45s var(--uit); }
.stop.aan { opacity: 1; }
.knoop { position: absolute; left: 0; top: 0; width: .75rem; height: 1.3rem; background: var(--lijn-sterk); transform: skewX(-18deg); transition: background-color .3s, transform .45s var(--uit); }
.stop.aan .knoop { background: var(--blauw); transform: skewX(-18deg) scaleY(1.2); }
.stop-tijd { font-weight: 600; font-size: .95rem; color: var(--blauw); }
.stop h3 { margin-top: .35rem; font: 700 1.2rem/1.25 var(--kop); font-stretch: 112%; letter-spacing: -.01em; }
.stop > p:not(.stop-tijd) { margin-top: .6rem; color: var(--inkt-2); font-size: 1rem; line-height: 1.55; }
.stop-eind .stempel { position: static; display: inline-block; margin-top: 1.1rem; transform: rotate(-5deg); }
.stop-eind .stempel span { font-size: 1.35rem; }

/* Over mij: stelling en feitenblad */
.over-grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2.5rem, 6vw, 5.5rem); align-items: start; }
.sectie-over h2 { font-size: clamp(1.6rem, 2.3vw + .6rem, 2.7rem); line-height: 1.16; max-width: 20em; }
.over-tekst p { margin-top: 1.75rem; max-width: 34rem; color: var(--inkt-2); }
.feiten { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--lijn-sterk); border-left: 1px solid var(--lijn); }
.feit { padding: 1.4rem 1.4rem 1.6rem; border-right: 1px solid var(--lijn); border-bottom: 1px solid var(--lijn); }
.feit dt { font-size: .92rem; color: var(--inkt-2); }
.feit dd { margin-top: .5rem; font: 700 1.2rem/1.25 var(--kop); font-stretch: 108%; letter-spacing: -.01em; }

/* Pakketten */
.sectie-pakketten { padding-block: clamp(3rem, 6vw, 5rem); border-top: 1px solid var(--lijn); }
.pakketten { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.pakketten li { border: 1px solid var(--lijn-sterk); padding: .5rem .95rem; font-weight: 500; }
.pak-extra { margin-top: 1.4rem; color: var(--inkt-2); max-width: 40rem; }

/* Belastingweetjes */
.sectie-weetjes { border-top: 1px solid var(--lijn); }
.weetjes { margin-top: clamp(2rem, 5vw, 3.25rem); display: grid; grid-template-columns: 7fr 5fr; gap: 0 clamp(2rem, 5vw, 4.5rem); }
.weetje { border-top: 1px solid var(--lijn-sterk); padding: 1.25rem 0 2.2rem; }
.weetje-groot { grid-row: span 2; }
.weetje time { font-size: .95rem; color: var(--inkt-2); font-variant-numeric: tabular-nums; }
.weetje h3 { margin-top: .5rem; font: 700 clamp(1.2rem, 1.1vw + .85rem, 1.55rem)/1.25 var(--kop); font-stretch: 110%; letter-spacing: -.012em; }
.weetje-groot h3 { font-size: clamp(1.5rem, 2.2vw + .6rem, 2.4rem); line-height: 1.15; }
.weetje h3 a { text-decoration: none; background: linear-gradient(var(--blauw), var(--blauw)) 0 100% / 0 2px no-repeat; transition: background-size .4s var(--uit); }
.weetje h3 a:hover { background-size: 100% 2px; }
.weetje p { margin-top: .8rem; color: var(--inkt-2); max-width: 36rem; }
.link-pijl { display: inline-block; margin-top: 1.5rem; font-weight: 600; text-decoration: none; background: linear-gradient(var(--blauw), var(--blauw)) 0 100% / 100% 2px no-repeat; padding: .4rem 0; }
.link-pijl:hover { color: var(--blauw); }

/* Contact: de ene donkere sectie van de pagina */
.blok { background: var(--blok-bg); color: var(--blok-tekst); color-scheme: dark; padding-block: clamp(4rem, 9vw, 7rem) clamp(3rem, 6vw, 5rem); }
.reus { font: 800 clamp(3rem, 10vw, 8.5rem)/.95 var(--kop); font-stretch: 125%; letter-spacing: -.03em; }
.contact-grid { margin-top: clamp(2.5rem, 6vw, 4.5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--blok-lijn); display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2.5rem, 6vw, 5.5rem); align-items: start; }
.tel-groot { display: grid; gap: .25rem; }
.tel-groot a { font: 700 clamp(1.7rem, 3vw + .5rem, 2.8rem)/1.15 var(--kop); font-stretch: 112%; letter-spacing: -.015em; text-decoration: none; font-variant-numeric: tabular-nums; width: fit-content; background: linear-gradient(var(--blok-blauw), var(--blok-blauw)) 0 100% / 0 3px no-repeat; transition: background-size .4s var(--uit); }
.tel-groot a:hover { background-size: 100% 3px; }
.contact-lijst { margin-top: 2.25rem; display: grid; gap: 1.5rem; }
.contact-lijst dt { font-size: .92rem; color: var(--blok-dim); }
.contact-lijst dd { margin-top: .2rem; font-size: 1.15rem; line-height: 1.5; }
.contact-lijst a { text-decoration-color: var(--blok-blauw); text-underline-offset: .25em; }
.contact-lijst a:hover { color: var(--blok-blauw); }

.offerte h3 { font: 700 1.6rem/1.2 var(--kop); font-stretch: 112%; letter-spacing: -.012em; }
.offerte .velden { margin-top: 1.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1.25rem; }
.veld { display: grid; gap: .45rem; align-content: start; }
.veld-breed { grid-column: 1 / -1; }
.veld label, .groep legend { font-size: .98rem; font-weight: 500; }
.veld input, .veld textarea {
  width: 100%; min-height: 3.1rem; padding: .7rem .9rem; background: var(--veld-bg); color: var(--blok-tekst);
  border: 1px solid var(--veld-lijn); border-radius: 0;
}
.veld textarea { min-height: 7rem; resize: vertical; }
.veld input::placeholder, .veld textarea::placeholder { color: var(--blok-dim); opacity: 1; }
.veld input[aria-invalid="true"] { border-color: #FF9C8F; }
.fout { min-height: 1.2em; font-size: .92rem; color: #FFB4A9; }
.fout:empty { min-height: 0; }
.groep { grid-column: 1 / -1; border: 0; padding: 0; margin: 0; min-width: 0; }
.groep legend { padding: 0; margin-bottom: .7rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.chip span { display: block; padding: .5rem .9rem; border: 1px solid var(--veld-lijn); background: transparent; font-size: .98rem; transition: background-color .2s, color .2s, border-color .2s; }
.chip:hover span { border-color: var(--blok-tekst); }
.chip input:checked + span { background: var(--blok-tekst); color: var(--blok-bg); border-color: var(--blok-tekst); }
.chip input:focus-visible + span { outline: 3px solid var(--blok-blauw); outline-offset: 2px; }
.verstuur { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: .5rem; grid-column: 1 / -1; }
.blok .knop { background: var(--blok-tekst); color: var(--blok-bg); }
.blok .knop::before { background: rgba(10, 13, 20, .12); }
.klein { font-size: .95rem; color: var(--blok-dim); }
.form-melding { grid-column: 1 / -1; padding: 1rem 1.1rem; border: 1px solid var(--blok-blauw); color: var(--blok-tekst); }
.form-melding[hidden] { display: none; }

.voetblok { background: var(--blok-bg); color: var(--blok-tekst); color-scheme: dark; }
.voet { display: grid; grid-template-columns: auto 1fr auto; gap: 1.5rem 2.5rem; align-items: center; border-top: 1px solid var(--blok-lijn); padding-block: 2rem calc(2rem + env(safe-area-inset-bottom)); }
.voet .logo { width: 10rem; }
.voet p, .voet a { font-size: .95rem; color: var(--blok-dim); }
.voet a { text-underline-offset: .25em; }
.voet a:hover { color: var(--blok-tekst); }
.voet nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.voet-regel { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--blok-lijn); }

/* Mobiele actiebalk en melding */
.mobiel-balk { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: none; gap: .6rem; padding: .7rem var(--rand) calc(.7rem + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--papier) 92%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--lijn); transform: translateY(110%); transition: transform .5s var(--uit); }
.mobiel-balk.toon { transform: none; }
.mobiel-balk .knop { flex: 1; }
.mobiel-balk .knop-bel { background: transparent; color: var(--inkt); border: 1.5px solid var(--inkt); flex: 0 0 auto; }
.toast { position: fixed; left: 50%; bottom: 1.25rem; z-index: 70; transform: translate(-50%, 150%); visibility: hidden; background: var(--inkt); color: var(--papier); padding: .85rem 1.25rem; max-width: calc(100% - 2rem); transition: transform .45s var(--uit), visibility 0s .45s; }
.toast.toon { transform: translate(-50%, 0); visibility: visible; transition-delay: 0s; }

/* ---------- Responsief ---------- */
@media (max-width: 1060px) {
  .nav { display: none; }
  .menu-knop { display: block; }
  .kop-acties { margin-left: auto; }
  .kop.open .nav {
    display: grid; position: absolute; left: 0; right: 0; top: 100%; gap: 0; margin: 0;
    background: var(--papier); border-bottom: 1px solid var(--lijn-sterk); padding: .5rem var(--rand) 1rem;
  }
  .kop.open .nav a { padding: .9rem 0; font-size: 1.1rem; border-bottom: 1px solid var(--lijn); background: none; }
}
@media (max-width: 900px) {
  .tel, .kop-acties .knop { display: none; }
  .mobiel-balk { display: flex; }
  .stempel { position: relative; top: auto; right: auto; bottom: auto; display: inline-block; margin-top: 1.75rem; transform: rotate(-5deg); }
  .hero-in { padding-bottom: 1.25rem; }
  .ritme-stops { grid-template-columns: 1fr; gap: 0; }
  .ritme-lijn { left: .33rem; right: auto; top: .6rem; bottom: 2.5rem; width: 2px; height: auto; }
  .ritme-lijn i { height: 100%; width: 100%; transform-origin: 50% 0; transform: scaleY(var(--p, 0)); }
  .stop { padding: 0 0 2.2rem 2.4rem; }
  .knoop { top: .15rem; }
  .over-grid, .contact-grid, .weetjes { grid-template-columns: 1fr; }
  .weetje-groot { grid-row: auto; }
  .voet { grid-template-columns: 1fr; }
  .voet-regel { grid-column: auto; }
}
@media (max-width: 600px) {
  .offerte .velden { grid-template-columns: 1fr; }
  .dienst-kop { grid-template-columns: 2.6rem minmax(0, 1fr) 1.75rem; column-gap: .6rem; }
  .dienst-tekst { padding-left: 3.2rem; }
  .feiten { grid-template-columns: 1fr; }
  .sr-rij { letter-spacing: .06em; }
}

/* ---------- Beweging ---------- */
.js .regel-in { transform: translateY(112%); animation: tonen-regel 0s 5s forwards; }
.js .verberg { opacity: 0; animation: tonen-deel 0s 5s forwards; }
@keyframes tonen-regel { to { transform: none; } }
@keyframes tonen-deel { to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .js .regel-in, .js .verberg { transform: none; opacity: 1; animation: none; }
  .stop { opacity: 1; }
  .stop .knoop { background: var(--blauw); }
  .ritme-lijn i { transform: none; }
  .dienst-body, .plus, .knop::before, .mobiel-balk, .toast { transition-duration: .01ms; }
  * { scroll-behavior: auto !important; }
}
