/* ==========================================================================
   bijMonique: site-CSS voor Elementor (Fluent Snippet, type css, wp_head)
   Bron: css/site.css van de statische site, sectie voor sectie vertaald naar
   de Elementor-markup. De klassenamen zijn dezelfde; ze staan in Elementor bij
   Geavanceerd > CSS-klassen. Kleuren komen uit de kit (--e-global-color-*),
   lettertypes staan op de widgets zelf (kit-typografie).
   Specificiteit: "body" voor elke regel, zodat Elementors basis-CSS (0,1,0 /
   0,2,0) altijd verliest en de per-element CSS van Elementor (0,3,0+) wint.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Tokens (tokens.css). Kleuren verwijzen naar de kit.
   -------------------------------------------------------------------------- */
body {
  --kleur-basis: var(--e-global-color-basis);
  --kleur-vlak: var(--e-global-color-vlak);
  --kleur-vlak-2: var(--e-global-color-vlak2);
  --kleur-petrol: var(--e-global-color-petrol);
  --kleur-petrol-licht: var(--e-global-color-petrollicht);
  --kleur-amber: var(--e-global-color-secondary);
  --kleur-amber-licht: var(--e-global-color-amberlicht);
  --kleur-terracotta: var(--e-global-color-accent);
  --kleur-terracotta-d: var(--e-global-color-terrad);
  --kleur-bordeaux: var(--e-global-color-bordeaux);
  --tekst: var(--e-global-color-primary);
  --tekst-gedempt: var(--e-global-color-text);
  --tekst-zacht: var(--e-global-color-zacht);
  --rand: var(--e-global-color-rand);
  --rand-sterk: var(--e-global-color-randsterk);
  --label-vlak: var(--e-global-color-labelvlak);

  --overlay-hero: linear-gradient(180deg, rgba(30,20,16,.15) 0%, rgba(30,20,16,.55) 55%, rgba(30,20,16,.92) 100%);
  --overlay-kaart: linear-gradient(180deg, rgba(30,20,16,0) 35%, rgba(30,20,16,.92) 100%);

  --tekst-groot: 1.125rem;
  --tekst-klein: 0.875rem;
  --label: 0.75rem;
  --spatie-label: 0.08em;

  --container: 1440px;
  --marge: clamp(1.25rem, 3vw, 2.5rem);
  --sectie: clamp(4rem, 8vw, 7.5rem);
  --sectie-kop: clamp(2.5rem, 5vw, 4rem);
  --gat: 2rem;
  --radius-pil: 100px;
  --radius: 4px;

  --soepel: cubic-bezier(0.22, 1, 0.36, 1);
  --stagger: 60ms;
  --veer-kop: linear(0, 0.0765, 0.1871, 0.2888, 0.3771, 0.4555, 0.524, 0.5839, 0.6356, 0.6815, 0.7215, 0.7566, 0.7868, 0.8137, 0.8371, 0.8576, 0.8753, 0.891, 0.9047, 0.9167, 0.927, 0.9362, 0.9443, 0.9513, 0.9573, 0.9627, 0.9674, 0.9715, 0.975, 0.9782, 0.9809, 0.9833, 0.9854, 0.9872, 0.9888, 0.9902, 0.9915, 0.9925, 0.9935, 0.9943, 1);
  --veer-kop-duur: 1.5s;
  --veer-tekst: linear(0, 0.0613, 0.1648, 0.2655, 0.3579, 0.4391, 0.5092, 0.5715, 0.6251, 0.6726, 0.7142, 0.7499, 0.7817, 0.8094, 0.8332, 0.8544, 0.8726, 0.8888, 0.9029, 0.915, 0.9258, 0.9352, 0.9433, 0.9505, 0.9567, 0.9622, 0.967, 0.9711, 0.9748, 0.978, 0.9807, 0.9832, 0.9853, 0.9872, 0.9888, 0.9902, 0.9914, 0.9925, 0.9935, 0.9943, 1);
  --veer-tekst-duur: 1.2s;
  --veer-tegel: linear(0, 0.0339, 0.1058, 0.1919, 0.2818, 0.3656, 0.4426, 0.5119, 0.5746, 0.6288, 0.6763, 0.7187, 0.7549, 0.7865, 0.814, 0.8385, 0.8594, 0.8775, 0.8934, 0.9074, 0.9194, 0.9298, 0.939, 0.9469, 0.9538, 0.9598, 0.9651, 0.9696, 0.9735, 0.9769, 0.98, 0.9826, 0.9848, 0.9868, 0.9885, 0.99, 0.9913, 0.9924, 0.9934, 0.9943, 1);
  --veer-tegel-duur: 1s;
  --hero-delay-kop: 0.6s;
  --hero-delay-rest: 0.8s;
}

/* --------------------------------------------------------------------------
   0. Basis (Hello's reset.css en theme.css staan uit via de PHP-snippet)
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.no-scroll { overflow: hidden; }
body img { max-width: 100%; height: auto; display: block; }
body a { color: inherit; text-decoration: none; transition: color .2s ease; }
body a:hover { color: var(--kleur-amber-licht); }
body h1, body h2, body h3, body h4 { margin: 0; }
body p { margin: 0; }
body :focus-visible { outline: 2px solid var(--kleur-amber); outline-offset: 3px; border-radius: 2px; }
.skip-link.screen-reader-text:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

/* --------------------------------------------------------------------------
   1. Kader en secties
   -------------------------------------------------------------------------- */
body .e-con.kader {
  display: block;
  max-width: var(--container);
  width: 100%;
  margin: 0 auto;
  border-left: 1px solid var(--rand);
  border-right: 1px solid var(--rand);
}
body .e-con.sectie { display: block; padding: var(--sectie) var(--marge); border-bottom: 1px solid var(--rand); }
body .e-con.sectie--strak { padding: 0; }
body .e-con.sectie--vlak { background: var(--kleur-vlak); }

/* --------------------------------------------------------------------------
   2. Tekstcomponenten
   -------------------------------------------------------------------------- */
body .elementor-widget.label .elementor-heading-title { display: inline-flex; align-items: center; gap: .5rem; }
body .label--pil .elementor-heading-title { background: var(--label-vlak); padding: .5rem .75rem; border-radius: var(--radius); }

body .hero-inhoud .elementor-widget.kop-hero .elementor-heading-title { max-width: 12ch; }

body .e-con.sectiekop { display: block; text-align: center; max-width: 44rem; margin: 0 auto var(--sectie-kop); }
body .sectiekop .elementor-widget.label .elementor-heading-title { margin-bottom: 1.5rem; }
body .sectiekop .elementor-widget.kop-1 { margin-bottom: 1.25rem; }
body .sectiekop .elementor-widget-text-editor p { max-width: 30rem; margin-inline: auto; }

body .e-con.sectiekop--links { flex-wrap: nowrap; text-align: left; max-width: none; margin-inline: 0; display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between; gap: var(--gat); }
body .e-con.sectiekop-tekst { display: block; }
body .sectiekop--links .elementor-widget-text-editor p { margin-inline: 0; }
body .sectiekop--links .elementor-widget.knop { flex-shrink: 0; margin-bottom: .25rem; }

/* --------------------------------------------------------------------------
   3. Knoppen (kleuren en typografie staan op het widget, de vorm in de kit)
   -------------------------------------------------------------------------- */
body .elementor-widget.knop .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  white-space: nowrap;
  transition: background .4s var(--veer-tekst), color .4s var(--veer-tekst), transform .5s var(--veer-tekst), border-color .4s var(--veer-tekst);
}
body .elementor-widget.knop .elementor-button:hover { transform: translateY(-1px); }
body .elementor-widget.knop .elementor-button:active { transform: translateY(0) scale(.98); }
body .elementor-widget.knop--klein .elementor-button { padding: .6rem 1.1rem; }

/* --------------------------------------------------------------------------
   4. Header
   -------------------------------------------------------------------------- */
body .e-con.site-header {
  display: block;
  position: fixed;
  inset: 1rem 0 auto 0;
  z-index: 50;
  padding: 0 var(--marge);
  pointer-events: none;
}
body .e-con.nav {
  pointer-events: auto;
  max-width: var(--container);
  margin: 0 auto;
  padding: .75rem 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  background: rgba(30,20,16,0);
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  border: 1px solid transparent;
  border-radius: 100px;
  box-shadow: 0 10px 30px rgba(0,0,0,0);
  transition:
    max-width .8s var(--veer-tekst), padding .8s var(--veer-tekst),
    background .6s var(--veer-tekst), border-color .6s var(--veer-tekst),
    box-shadow .8s var(--veer-tekst), border-radius .5s var(--veer-tekst),
    -webkit-backdrop-filter .6s ease, backdrop-filter .6s ease;
}
body .is-scrolled .e-con.nav, body .is-open .e-con.nav {
  max-width: 1200px;
  padding: .5rem 1.25rem .5rem 1.75rem;
  background: rgba(30,20,16,.78);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-color: var(--rand);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

body .e-con.nav-links { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 1.5rem; font-size: var(--tekst-klein); font-weight: 500; color: var(--tekst-gedempt); }
body .e-con.nav-links-inner { display: contents; }
body .elementor-widget.nav-links-cta { display: none; }
body .elementor-widget.nav-menu .elementor-icon-list-items { display: flex; gap: 1.5rem; }
body .elementor-widget.nav-menu .elementor-icon-list-item, body .elementor-widget.nav-menu .elementor-icon-list-item a { display: block; }
body .elementor-widget.nav-menu .elementor-icon-list-item > a, body .elementor-widget.nav-menu .elementor-icon-list-item .elementor-icon-list-text { font: inherit; color: inherit; letter-spacing: inherit; }
body .elementor-widget.nav-menu a { position: relative; padding: .25rem 0; }
body .elementor-widget.nav-menu a:hover { color: var(--tekst); }
body .elementor-widget.nav-menu a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--kleur-amber);
  transform: scaleX(0); transform-origin: left;
  transition: transform .6s var(--veer-tekst);
}
body .elementor-widget.nav-menu a:hover::after, body .elementor-widget.nav-menu a.is-active::after { transform: scaleX(1); }
body .elementor-widget.nav-menu a.is-active { color: var(--tekst); }

body .elementor-widget.nav-cta { justify-self: end; }

body .elementor-widget.logo { display: flex; align-items: center; }
body .elementor-widget.logo a { display: inline-flex; align-items: center; }
body .elementor-widget.logo img { height: 34px; width: auto; display: block; transition: opacity .3s ease; }
body .elementor-widget.logo a:hover img { opacity: .85; }

/* Hamburger: het Elementor-knopwidget, drie lijnen via ::before, de binnenste span en ::after */
body .elementor-widget.nav-toggle { display: none; justify-self: end; width: 44px; height: 44px; }
body .elementor-widget.nav-toggle .elementor-button,
body .elementor-widget.nav-toggle .elementor-button:hover,
body .elementor-widget.nav-toggle .elementor-button:focus {
  display: block; position: relative; width: 44px; height: 44px; padding: 0;
  background: none; border-radius: 0; font-size: 0; color: transparent; cursor: pointer;
}
body .elementor-widget.nav-toggle .elementor-button::before,
body .elementor-widget.nav-toggle .elementor-button::after,
body .elementor-widget.nav-toggle .elementor-button-content-wrapper {
  content: ""; position: absolute; left: 12px; right: 12px; height: 1.5px;
  background: var(--tekst);
  transition: transform .5s var(--veer-tekst), opacity .25s;
}
body .elementor-widget.nav-toggle .elementor-button::before { top: 16px; }
body .elementor-widget.nav-toggle .elementor-button-content-wrapper { top: 22px; overflow: hidden; }
body .elementor-widget.nav-toggle .elementor-button::after { top: 28px; }
body .is-open .elementor-widget.nav-toggle .elementor-button::before { transform: translateY(6px) rotate(45deg); }
body .is-open .elementor-widget.nav-toggle .elementor-button-content-wrapper { opacity: 0; }
body .is-open .elementor-widget.nav-toggle .elementor-button::after { transform: translateY(-6px) rotate(-45deg); }

/* --------------------------------------------------------------------------
   5. Hero
   -------------------------------------------------------------------------- */
body .e-con.hero {
  display: flex;
  flex-wrap: nowrap;
  position: relative;
  min-height: 100svh;
  flex-direction: column;
  justify-content: flex-end;
  color: var(--tekst);
  overflow: hidden;
}
body .e-con.hero-beeld { display: block; position: absolute; inset: 0; will-change: transform; }
/* Elementor geeft containers transition: transform .4s; de parallax-transform moet direct volgen */
body .e-con[data-parallax] { transition: none; }
body .e-con.hero-beeld-foto {
  display: block;
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center 30%;
  animation: hero-open 1.8s var(--veer-kop) both;
}
body .e-con.hero-beeld-foto--links { background-position: 15% 30%; }
body .e-con.hero-beeld::after { content: ""; position: absolute; inset: 0; background: var(--overlay-hero); }
@keyframes hero-open { from { transform: scale(1.06); } to { transform: scale(1); } }

body .e-con.hero-inhoud {
  position: relative;
  max-width: var(--container);
  width: 100%;
  margin: 0 auto;
  padding: 8rem var(--marge) 4rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--gat);
}
body .e-con.hero-tekst { display: block; }
body .hero-inhoud .elementor-widget.label .elementor-heading-title { margin-bottom: 1.5rem; }
body .hero-inhoud .elementor-widget.kop-hero { margin-bottom: 1.5rem; }
body .hero-inhoud .elementor-widget.tekst-groot p { max-width: 34rem; }
body .hero-inhoud .elementor-widget.knop { margin-bottom: .35rem; }
/* Origineel: de knop is zelf het grid-item, dus op mobiel (1 kolom) volle breedte */
body .hero-inhoud .elementor-widget.knop .elementor-button, body .sfeer-inhoud .elementor-widget.knop .elementor-button { display: flex; }

/* Subpagina's: lagere hero */
body .e-con.hero--dienst { min-height: 82svh; }
body .hero--dienst .elementor-widget.kop-hero .elementor-heading-title { max-width: 18ch; }

/* Terug-link boven de titel van een dienstpagina (heading-widget met link; pijl als masker) */
body .e-con .elementor-widget.terug { margin-bottom: 1.25rem; }
body .elementor-widget.terug a { display: flex; width: max-content; align-items: center; gap: .4rem; color: var(--tekst-gedempt); }
body .elementor-widget.terug a:hover { color: var(--tekst); }
body .elementor-widget.terug a::before {
  content: ""; width: 14px; height: 14px; flex-shrink: 0; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5'/%3E%3Cpath d='M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5'/%3E%3Cpath d='M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .4s var(--veer-tekst);
}
body .elementor-widget.terug a:hover::before { transform: translateX(-3px); }

/* Tekst-hero (contact, blog): gecentreerde sectiekop zonder beeld */
body .e-con.hero--tekst { display: block; padding: calc(var(--sectie) + 5rem) var(--marge) var(--sectie); border-bottom: 1px solid var(--rand); }
body .hero--tekst .e-con.sectiekop { margin-bottom: 0; max-width: 52rem; }
body .hero--tekst .elementor-widget.kop-hero { margin-bottom: 1.5rem; }

/* Tekstlink met pijl (in lopende tekst) */
body .elementor-widget a.link-pijl { color: var(--kleur-amber); font-weight: 600; font-size: var(--tekst-klein); display: inline-flex; gap: .4rem; align-items: center; }
body .elementor-widget a.link-pijl:hover { color: var(--kleur-amber-licht); }

/* --------------------------------------------------------------------------
   6. Drie kolommen
   -------------------------------------------------------------------------- */
body .e-con.kolommen { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rand); }
body .e-con.kolom { display: block; padding: 2.5rem var(--marge) 0; border-right: 1px solid var(--rand); }
body .e-con.kolom:last-child { border-right: 0; }
body .kolom .elementor-widget.kop-3 { margin-bottom: 1rem; }
body .kolom .elementor-widget.kop-3 .elementor-heading-title { max-width: 16ch; }
body .kolom .elementor-widget-text-editor p { max-width: 28rem; }

/* --------------------------------------------------------------------------
   7. Over Monique
   -------------------------------------------------------------------------- */
body .e-con.over { display: grid; grid-template-columns: 1fr 1fr; }
body .e-con.over-beeld { display: block; position: relative; min-height: 560px; border-right: 1px solid var(--rand); overflow: hidden; }
body .elementor-widget.over-foto { position: absolute; inset: 0; }
body .elementor-widget.over-foto img { width: 100%; height: 100%; object-fit: cover; }

body .e-con.over-tekst { display: block; padding: var(--sectie) var(--marge); }
body .over-tekst .elementor-widget.kop-1 { margin-bottom: .5rem; }
body .over-tekst .elementor-widget.ondertitel .elementor-heading-title { padding-left: 1rem; border-left: 1px solid var(--kleur-amber); }
body .over-tekst .elementor-widget.ondertitel { margin-bottom: 2rem; }
/* Origineel: .over-tekst .label geldt ook voor de cijferlabels (marge binnen de regel) */
body .over-tekst .elementor-widget.label .elementor-heading-title { margin-bottom: 1.5rem; }
body .over-tekst .elementor-widget.alinea p { max-width: 34rem; }
body .over-tekst .elementor-widget.alinea p { margin-bottom: 1.25rem; }

body .e-con.cijfers { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--rand); margin-top: 2.5rem; }
body .e-con.cijfer { display: block; padding: 1.5rem; border-right: 1px solid var(--rand); border-bottom: 1px solid var(--rand); }
body .e-con.cijfer:nth-child(2n) { border-right: 0; }
body .e-con.cijfer:nth-last-child(-n+2) { border-bottom: 0; }
body .cijfer .elementor-widget.cijfer-groot { margin-bottom: .5rem; }

/* --------------------------------------------------------------------------
   8. Fotokaarten
   -------------------------------------------------------------------------- */
body .e-con.kaarten { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--rand); border: 1px solid var(--rand); }
body .e-con.kaarten--2 { grid-template-columns: repeat(2, 1fr); }
body .kaarten--2 .e-con.kaart-beeld { aspect-ratio: 16 / 10; }

body .e-con.kaart-beeld { display: block; position: relative; background: var(--kleur-vlak); aspect-ratio: 4 / 5; overflow: hidden; color: var(--tekst); }
body .elementor-widget.kaart-foto { position: absolute; inset: 0; }
body .elementor-widget.kaart-foto img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--veer-tegel), filter 1.2s var(--veer-tegel);
}
body .kaart-beeld:hover .elementor-widget.kaart-foto img { transform: scale(1.04); filter: brightness(.88); }
body .e-con.kaart-beeld::after { content: ""; position: absolute; inset: 0; background: var(--overlay-kaart); }

body .e-con.kaart-icoon {
  display: grid; place-items: center;
  position: absolute; top: 1.25rem; left: 1.25rem; z-index: 2;
  width: 40px; height: 40px;
  border: 1px solid rgba(243,233,218,.3);
  border-radius: 50%;
  color: var(--kleur-amber-licht);
  background: rgba(30,20,16,.35);
}
/* De iconen van de statische site, als masker zodat de kleur uit de kit komt */
body .e-con.kaart-icoon::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--icoon) center / contain no-repeat; mask: var(--icoon) center / contain no-repeat; }
body .kaart-icoon--golf { --icoon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 14c3-3 5-3 8 0s5 3 8 0'/%3E%3Cpath d='M4 9c3-3 5-3 8 0s5 3 8 0'/%3E%3C/svg%3E"); }
body .kaart-icoon--cirkel { --icoon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8' stroke-dasharray='2 3'/%3E%3C/svg%3E"); }
body .kaart-icoon--lijn { --icoon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M12 3v18'/%3E%3Cpath d='M5 12h14' opacity='.4'/%3E%3C/svg%3E"); }

body .e-con.kaart-tekst {
  display: block;
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 1.5rem;
  transition: transform .9s var(--veer-tegel);
}
body .kaart-beeld:hover .kaart-tekst { transform: translateY(-4px); }
body .kaart-tekst .elementor-widget.kop-3 { margin-bottom: .5rem; }
body .kaart-tekst .elementor-widget-text-editor p { max-width: 26rem; }
body .kaart-beeld:hover { color: var(--tekst); }

/* --------------------------------------------------------------------------
   9. Accordion (Elementor nested-accordion)
   -------------------------------------------------------------------------- */
body .elementor-widget.accordion { border-top: 1px solid var(--rand); }
body .elementor-widget.accordion .e-n-accordion-item { border-bottom: 1px solid var(--rand); }
body .elementor-widget.accordion .e-n-accordion-item-title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 0;
  border: 0;
  border-radius: 0;
  text-align: left;
  font-family: var(--e-global-typography-secondary-font-family), Georgia, serif;
  font-size: var(--e-global-typography-secondary-font-size);
  letter-spacing: normal;
  line-height: 1.3;
  color: var(--tekst);
  transition: color .2s;
}
body .elementor-widget.accordion .e-n-accordion-item-title:hover,
body .elementor-widget.accordion .e-n-accordion-item[open] > .e-n-accordion-item-title:hover { color: var(--kleur-amber-licht); }
body .elementor-widget.accordion .e-n-accordion-item[open] > .e-n-accordion-item-title { margin: 0; color: var(--tekst); }
body .elementor-widget.accordion .e-n-accordion-item-title-header,
body .elementor-widget.accordion .e-n-accordion-item-title-text { display: contents; font-size: inherit; }
body .elementor-widget.accordion .e-n-accordion-item-title .label {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: inherit;
  font-size: var(--label); font-weight: 600; letter-spacing: var(--spatie-label);
  text-transform: uppercase; line-height: 1.2; color: var(--kleur-amber);
  margin-right: auto; margin-left: 1rem;
}
/* Plus: horizontale lijn op de header-span, verticale lijn (draait) op de summary */
body .elementor-widget.accordion .e-n-accordion-item-title-header::after,
body .elementor-widget.accordion .e-n-accordion-item-title::after {
  content: ""; flex-shrink: 0; width: 28px; height: 28px; color: var(--tekst-gedempt);
  background: linear-gradient(currentColor, currentColor) center / 14px 1.5px no-repeat;
}
body .elementor-widget.accordion .e-n-accordion-item-title-header::after { margin-left: auto; }
body .elementor-widget.accordion .e-n-accordion-item-title::after {
  margin-left: calc(-28px - 1rem);
  background-size: 1.5px 14px;
  transition: transform .6s var(--veer-tekst);
}
body .elementor-widget.accordion .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: rotate(90deg); }

body .elementor-widget.accordion .e-n-accordion-item > .e-con.acc-panel { display: block; border: 0; padding: 0; }
body .elementor-widget.accordion .e-n-accordion-item:not([open]) > .e-con.acc-panel { display: none; }
body .acc-panel .elementor-widget-text-editor p { max-width: 40rem; padding-bottom: 1.75rem; }
body .acc-panel p { opacity: 1; transform: none; transition: opacity .6s var(--veer-tekst) .08s, transform .6s var(--veer-tekst) .08s; }
@starting-style { body .acc-panel p { opacity: 0; transform: translateY(8px); } }
body .is-sluiten > .acc-panel p { opacity: 0; transform: translateY(8px); transition-delay: 0s; }
body .acc-panel.is-animeren { overflow: hidden; }

/* --------------------------------------------------------------------------
   10. Testimonial
   -------------------------------------------------------------------------- */
body .e-con.testimonial { display: grid; grid-template-columns: 1fr 1fr; }
body .e-con.testimonial-tekst { padding: var(--sectie) var(--marge); border-right: 1px solid var(--rand); display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: center; }
/* In een flex-kolom is het label geen inline-box maar een flex-item (zoals in het origineel) */
body .testimonial-tekst .elementor-widget.label { align-self: flex-start; margin-bottom: 1.5rem; }
body .testimonial-tekst .elementor-widget.label .elementor-heading-title { display: flex; }
body .testimonial-tekst .elementor-widget.kop-2 { margin-bottom: 1.5rem; }
body .testimonial-tekst .elementor-widget.kop-2 .elementor-heading-title { max-width: 20ch; }
body .testimonial-tekst .elementor-widget.alinea { margin-bottom: 2rem; }
body .testimonial-tekst .elementor-widget.alinea p { max-width: 32rem; }
body .elementor-widget.testimonial-bron { padding-left: 1rem; border-left: 2px solid var(--kleur-bordeaux); }
body .elementor-widget.testimonial-bron strong { display: block; font-weight: 600; }
body .elementor-widget.testimonial-bron span { color: var(--tekst-zacht); font-size: var(--tekst-klein); }
body .e-con.testimonial-beeld { display: block; position: relative; min-height: 520px; overflow: hidden; }
body .elementor-widget.testimonial-foto { position: absolute; inset: 0; }
body .elementor-widget.testimonial-foto img { width: 100%; height: 100%; object-fit: cover; }

/* --------------------------------------------------------------------------
   11. Sfeerbeeld
   -------------------------------------------------------------------------- */
body .e-con.sfeer { display: flex; flex-direction: row; flex-wrap: nowrap; position: relative; min-height: 80vh; align-items: flex-end; overflow: hidden; }
body .e-con.sfeer-beeld { display: block; position: absolute; inset: -40% 0; background-size: cover; background-position: center; will-change: transform; }
body .e-con.sfeer-beeld::after { content: ""; position: absolute; inset: 0; background: var(--overlay-hero); }
body .e-con.sfeer-inhoud {
  position: relative;
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 6rem var(--marge) 4rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--gat);
}
body .e-con.sfeer-tekst { display: block; }
body .sfeer-inhoud .elementor-widget.label .elementor-heading-title { margin-bottom: 1.5rem; }
body .sfeer-inhoud .elementor-widget.kop-1 { margin-bottom: 1.25rem; }
body .sfeer-inhoud .elementor-widget.kop-1 .elementor-heading-title { max-width: 14ch; }
body .sfeer-inhoud .elementor-widget.tekst-groot p { max-width: 32rem; }

/* --------------------------------------------------------------------------
   12. Stappen
   -------------------------------------------------------------------------- */
body .e-con.stappen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--rand); border: 1px solid var(--rand); }
body .e-con.stap { background: var(--kleur-vlak); padding: 2.5rem; display: flex; flex-direction: column; flex-wrap: nowrap; min-height: 300px; }
body .e-con.stap--petrol { background: var(--kleur-petrol); }
body .stap--petrol .elementor-widget.stap-tekst { color: rgba(243,233,218,.8); }
body .stap .elementor-widget.kop-3 { margin-bottom: 1rem; }
body .stap .elementor-widget.kop-3 .elementor-heading-title { max-width: 14ch; }
body .stap .elementor-widget.stap-tekst { flex: 1; }
body .stap .elementor-widget.stap-tekst p { max-width: 24rem; }
body .e-con.stap-acties { display: flex; flex-direction: row; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }

/* --------------------------------------------------------------------------
   13. Blogkaarten
   -------------------------------------------------------------------------- */
/* Blog als loop grid op de berichten: .blog is het widget, elke kaart zit in een .e-loop-item.
   In de container staat eerst een <style>, dus tellen met :nth-of-type in plaats van :nth-child. */
body .elementor-widget.blog { border-top: 1px solid var(--rand); border-bottom: 1px solid var(--rand); }
body .blog .elementor-loop-container { gap: 0; }
body .blog .e-loop-item > .e-con.artikel { display: block; height: 100%; border-right: 1px solid var(--rand); color: var(--tekst); }
body .blog .e-loop-item:nth-of-type(3n) > .e-con.artikel { border-right: 0; }
body .e-con.artikel:hover { color: var(--tekst); }
body .e-con.artikel-beeld { display: block; aspect-ratio: 16 / 11; overflow: hidden; background: var(--kleur-vlak); }
body .elementor-widget.artikel-foto { height: 100%; }
body .elementor-widget.artikel-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--veer-tegel); }
body .artikel:hover .elementor-widget.artikel-foto img { transform: scale(1.04); }
body .e-con.artikel-tekst { display: block; padding: 1.5rem var(--marge) 2rem; border-top: 1px solid var(--rand); }
body .artikel-tekst .elementor-widget.label .elementor-heading-title { margin-bottom: 1rem; }
body .artikel-tekst .elementor-widget.kop-4 .elementor-heading-title { max-width: 18ch; transition: color .2s; }
body .artikel:hover .elementor-widget.kop-4 .elementor-heading-title { color: var(--kleur-amber-licht); }
body .elementor-widget.blog--raster { border-bottom: 0; }
body .blog--raster .e-loop-item > .e-con.artikel { border-bottom: 1px solid var(--rand); }
body .reveal-groep .e-loop-item:nth-of-type(2) > .reveal { transition-delay: calc(var(--stagger) * 1); }
body .reveal-groep .e-loop-item:nth-of-type(3) > .reveal { transition-delay: calc(var(--stagger) * 2); }
body .reveal-groep .e-loop-item:nth-of-type(4) > .reveal { transition-delay: calc(var(--stagger) * 3); }
body .reveal-groep .e-loop-item:nth-of-type(5) > .reveal { transition-delay: calc(var(--stagger) * 4); }
body .reveal-groep .e-loop-item:nth-of-type(6) > .reveal { transition-delay: calc(var(--stagger) * 5); }

/* Artikelpagina (single-sjabloon): kop, beeld 1,9:1, leeskolom 600 px */
body .e-con.artikel-bericht { display: block; }
body .e-con.artikel-kop {
  display: flex; flex-direction: row; flex-wrap: nowrap; align-items: flex-end; justify-content: space-between; gap: var(--gat);
  padding: 8.5rem var(--marge) 3rem;
  border-bottom: 1px solid var(--rand);
}
body .e-con.artikel-kop-tekst { display: block; }
body .artikel-kop .elementor-widget.kop-1 { margin-bottom: 1.25rem; }
body .artikel-kop .elementor-widget.kop-1 .elementor-heading-title { max-width: 20ch; }
body .artikel-kop .elementor-widget.label--pil { align-self: flex-end; flex-shrink: 0; margin-bottom: .25rem; }
body .e-con.artikel-meta { display: flex; flex-direction: row; flex-wrap: wrap; gap: .5rem 1rem; }

body .e-con.artikel-hero { display: block; aspect-ratio: 1.9; overflow: hidden; background: var(--kleur-vlak); border-bottom: 1px solid var(--rand); }
body .elementor-widget.artikel-hero-foto { height: 100%; }
body .elementor-widget.artikel-hero-foto img { width: 100%; height: 100%; object-fit: cover; }

body .e-con.artikel-body { display: block; max-width: calc(37.5rem + 2 * var(--marge)); margin: 0 auto; padding: var(--sectie) var(--marge); }
/* Artikeltekst uit de berichteditor (theme-post-content) */
body .artikel-inhoud p + p, body .artikel-inhoud ul + p, body .artikel-inhoud figure + p { margin-top: 1.25rem; }
body .artikel-inhoud .intro { font-size: var(--tekst-groot); line-height: 1.7; color: var(--tekst); margin-bottom: 2rem; }
body .artikel-inhoud h2, body .artikel-inhoud h3 {
  font-family: var(--e-global-typography-primary-font-family), Georgia, serif; font-weight: 400;
  letter-spacing: var(--e-global-typography-primary-letter-spacing); color: var(--tekst);
}
body .artikel-inhoud h2 { font-size: var(--e-global-typography-kop3-font-size); line-height: 1.3; margin: 2.5rem 0 1rem; }
body .artikel-inhoud h3 { font-size: var(--e-global-typography-secondary-font-size); line-height: 1.35; margin: 2rem 0 .75rem; }
body .artikel-inhoud h2:first-child { margin-top: 0; }
body .artikel-inhoud ul { list-style: none; margin: 1.25rem 0; padding: 0; }
body .artikel-inhoud li { position: relative; padding: .6rem 0 .6rem 1.25rem; border-top: 1px solid var(--rand); }
body .artikel-inhoud li:last-child { border-bottom: 1px solid var(--rand); }
body .artikel-inhoud li::before { content: ""; position: absolute; left: 0; top: 1.35rem; width: .5rem; height: 1px; background: var(--kleur-amber); }
body .artikel-inhoud p a, body .artikel-inhoud li a { color: var(--kleur-amber); }
body .artikel-inhoud p a:hover, body .artikel-inhoud li a:hover { color: var(--kleur-amber-licht); }
body .artikel-inhoud .gedicht { font-family: var(--e-global-typography-primary-font-family), Georgia, serif; font-size: var(--tekst-groot); line-height: 1.75; color: var(--tekst); }
body .artikel-inhoud .bron { font-size: var(--tekst-klein); color: var(--tekst-zacht); }
body .artikel-inhoud figure { margin: 2.5rem 0; }
body .artikel-inhoud figure img { width: 100%; height: auto; display: block; border-radius: var(--radius); }
body .artikel-inhoud figcaption { margin-top: .75rem; font-size: var(--tekst-klein); color: var(--tekst-zacht); }

body .e-con.artikel-cta {
  display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: var(--gat); flex-wrap: wrap;
  margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid var(--rand);
}
body .artikel-cta .elementor-widget-text-editor p { max-width: 22rem; }

/* --------------------------------------------------------------------------
   14. Footer
   -------------------------------------------------------------------------- */
body .e-con.site-footer { display: block; border-top: 1px solid var(--rand); }
body .e-con.footer-boven { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--gat); padding: 4rem var(--marge) 3rem; }
body .e-con.footer-merk, body .e-con.footer-kolom { display: block; }
body .footer-boven .elementor-widget.logo { display: block; text-align: left; }
body .footer-boven .elementor-widget.logo a { margin-bottom: 1.25rem; }
body .footer-boven .elementor-widget.logo img { height: 40px; }
body .footer-boven .elementor-widget.tagline { margin-bottom: 1.5rem; }
body .footer-boven .elementor-widget.tagline p { max-width: 22rem; }

body .footer-kolom .elementor-widget.elementor-widget-heading { margin-bottom: 1rem; }
body .elementor-widget.footer-links .elementor-icon-list-items { display: grid; gap: .6rem; }
body .elementor-widget.footer-links .elementor-icon-list-item, body .elementor-widget.footer-links .elementor-icon-list-item a { display: block; }
body .elementor-widget.footer-links .elementor-icon-list-item > a, body .elementor-widget.footer-links .elementor-icon-list-item .elementor-icon-list-text { font: inherit; letter-spacing: inherit; }
body .elementor-widget.footer-links .elementor-icon-list-item .elementor-icon-list-text { color: inherit; }
body .elementor-widget.footer-links a { color: var(--tekst-gedempt); }
body .elementor-widget.footer-links a:hover { color: var(--tekst); }

body .e-con.socials { display: flex; flex-direction: row; flex-wrap: nowrap; gap: .75rem; }
body .e-con.social {
  width: 36px; height: 36px; display: grid; place-items: center;
  border: 1px solid var(--rand-sterk); border-radius: 50%;
  color: var(--tekst-gedempt);
  transition: border-color .2s, color .2s;
}
body .e-con.social:hover { border-color: var(--kleur-amber); color: var(--kleur-amber-licht); }
body .e-con.social::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--icoon) center / contain no-repeat; mask: var(--icoon) center / contain no-repeat; }
body .social--whatsapp { --icoon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.3-3.8A8 8 0 1 1 8 19.2L4 20z'/%3E%3Cpath d='M9 9.5c0 3 2.5 5.5 5.5 5.5l1-1.5-2-1-1 1a4 4 0 0 1-2-2l1-1-1-2L9 9.5z'/%3E%3C/svg%3E"); }

body .e-con.footer-onder {
  display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
  padding: 1.25rem var(--marge);
  border-top: 1px solid var(--rand);
}
body .footer-onder a { color: var(--tekst-gedempt); white-space: nowrap; }

/* --------------------------------------------------------------------------
   15. Reveal-animatie (de springs van Zenna)
   -------------------------------------------------------------------------- */
body .reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--veer-tegel-duur) var(--veer-tegel), transform var(--veer-tegel-duur) var(--veer-tegel);
}
body .reveal--kop {
  transform: translateY(-40px);
  transition: opacity var(--veer-kop-duur) var(--veer-kop), transform var(--veer-kop-duur) var(--veer-kop);
}
body .reveal--tekst {
  transform: translateY(10px);
  transition: opacity var(--veer-tekst-duur) var(--veer-tekst), transform var(--veer-tekst-duur) var(--veer-tekst);
}
body .reveal.is-visible { opacity: 1; transform: none; }

body .reveal-groep > .reveal:nth-child(2) { transition-delay: calc(var(--stagger) * 1); }
body .reveal-groep > .reveal:nth-child(3) { transition-delay: calc(var(--stagger) * 2); }
body .reveal-groep > .reveal:nth-child(4) { transition-delay: calc(var(--stagger) * 3); }
body .reveal-groep > .reveal:nth-child(5) { transition-delay: calc(var(--stagger) * 4); }
body .reveal-groep > .reveal:nth-child(6) { transition-delay: calc(var(--stagger) * 5); }

body .hero .reveal--kop   { transition-delay: var(--hero-delay-kop); }
body .hero .reveal--tekst { transition-delay: var(--hero-delay-rest); }

@supports not (transition-timing-function: linear(0, 1)) {
  body .reveal, body .reveal--kop, body .reveal--tekst { transition-timing-function: var(--soepel); transition-duration: .8s; }
  body .elementor-widget.knop .elementor-button, body .elementor-widget.accordion .e-n-accordion-item-title::after, body .acc-panel p, body .elementor-widget.kaart-foto img, body .kaart-tekst, body .elementor-widget.artikel-foto img, body .elementor-widget.nav-menu a::after { transition-timing-function: var(--soepel); }
  body .e-con.hero-beeld-foto { animation-timing-function: var(--soepel); }
}

@media (prefers-reduced-motion: reduce) {
  body .reveal, body .reveal--kop, body .reveal--tekst { opacity: 1; transform: none; transition: none; }
  body .e-con.hero-beeld-foto { animation: none; }
  body .elementor-widget.kaart-foto img, body .elementor-widget.artikel-foto img, body .kaart-tekst, body .acc-panel p, body .elementor-widget.nav-menu a::after, body .e-con.nav-links, body .elementor-widget.nav-menu a, body .elementor-widget.nav-links-cta, body .elementor-widget.nav-toggle .elementor-button::before, body .elementor-widget.nav-toggle .elementor-button::after, body .elementor-widget.nav-toggle .elementor-button-content-wrapper { transition: none; }
}

/* In de Elementor-editor is alles direct zichtbaar */
body.elementor-editor-active .reveal { opacity: 1; transform: none; }
body.elementor-editor-active .e-con.site-header { position: relative; inset: auto; }

/* Full-page screenshots (?screenshot) */
html.screenshot body .e-con.hero  { min-height: 900px; }
html.screenshot body .e-con.sfeer { min-height: 680px; }
html.screenshot body .e-con.hero--dienst { min-height: 740px; }
html.screenshot body .e-con.hero-beeld-foto { animation: none; }
html.screenshot body .e-con.nav, html.screenshot body .e-con.nav-links, html.screenshot body .elementor-widget.nav-menu a { transition: none; }

/* --------------------------------------------------------------------------
   16. Responsive: 1199 en 809 (gelijk aan de Elementor-breakpoints)
   -------------------------------------------------------------------------- */
@media (max-width: 1199px) {
  body .e-con.stap { padding: 2rem; min-height: 320px; }
  body .e-con.over-beeld { min-height: 480px; }
}

@media (max-width: 809px) {
  body .e-con.site-header { inset: .75rem 0 auto 0; padding: 0 .75rem; }
  body .e-con.nav { grid-template-columns: auto 1fr auto; padding: .5rem 0; border-radius: 32px; }
  body .is-scrolled .e-con.nav, body .is-open .e-con.nav { padding: .5rem .5rem .5rem 1.25rem; }
  body .elementor-widget.nav-toggle { display: block; order: 3; }
  body .elementor-widget.logo { order: 1; }
  body .elementor-widget.logo img { height: 28px; }
  body .elementor-widget.nav-cta { display: none; }

  body .e-con.nav-links {
    order: 4;
    grid-column: 1 / -1;
    padding: 0 .75rem;
    display: grid;
    grid-template-rows: 0fr;
    font-size: 1.5rem;
    font-family: var(--e-global-typography-primary-font-family), Georgia, serif;
    color: var(--tekst);
    transition: grid-template-rows .45s var(--veer-tekst);
  }
  body .e-con.nav-links-inner { display: flex; flex-direction: column; flex-wrap: nowrap; overflow: hidden; min-height: 0; }
  body .elementor-widget.nav-menu .elementor-icon-list-items { display: flex; flex-direction: column; gap: 0; }
  body .elementor-widget.nav-menu a {
    padding: .9rem 0;
    border-top: 1px solid var(--rand);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .35s ease, transform .35s ease;
  }
  body .elementor-widget.nav-menu a::after { display: none; }
  body .elementor-widget.nav-menu .elementor-icon-list-item:first-child a { margin-top: .5rem; }
  body .nav-links-inner .elementor-widget.nav-links-cta {
    display: block;
    align-self: flex-start;
    margin: 1rem 0 .75rem;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .35s ease, transform .35s ease;
  }
  body .site-header.is-open .e-con.nav { background: rgba(30,20,16,.96); border-radius: 24px; transition-duration: .5s; }
  body .site-header.is-open .e-con.nav-links { grid-template-rows: 1fr; transition-duration: .7s; }
  body .site-header.is-open .elementor-widget.nav-menu a,
  body .site-header.is-open .elementor-widget.nav-links-cta {
    opacity: 1;
    transform: none;
    transition: opacity var(--veer-tekst-duur) var(--veer-tekst), transform var(--veer-tekst-duur) var(--veer-tekst);
  }
  body .site-header.is-open .elementor-widget.nav-menu .elementor-icon-list-item:nth-child(1) a { transition-delay: .10s; }
  body .site-header.is-open .elementor-widget.nav-menu .elementor-icon-list-item:nth-child(2) a { transition-delay: .16s; }
  body .site-header.is-open .elementor-widget.nav-menu .elementor-icon-list-item:nth-child(3) a { transition-delay: .22s; }
  body .site-header.is-open .elementor-widget.nav-menu .elementor-icon-list-item:nth-child(4) a { transition-delay: .28s; }
  body .site-header.is-open .elementor-widget.nav-links-cta { transition-delay: .36s; }

  body .e-con.hero-inhoud { grid-template-columns: 1fr; padding-top: 7rem; padding-bottom: 2.5rem; }
  body .hero-inhoud .elementor-widget.kop-hero .elementor-heading-title { max-width: none; }

  body .e-con.sectiekop--links { flex-direction: column; align-items: flex-start; }
  body .e-con.kolommen, body .e-con.kaarten, body .e-con.kaarten--2, body .e-con.stappen { grid-template-columns: 1fr; }
  body .e-con.kolom { border-right: 0; border-bottom: 1px solid var(--rand); padding-bottom: 2.5rem; }
  body .e-con.kolom:last-child { border-bottom: 0; }
  body .e-con.over, body .e-con.testimonial { grid-template-columns: 1fr; }
  body .e-con.over-beeld { min-height: 0; aspect-ratio: 4 / 5; border-right: 0; border-bottom: 1px solid var(--rand); }
  body .e-con.testimonial-tekst { border-right: 0; }
  body .e-con.testimonial-beeld { order: -1; min-height: 0; aspect-ratio: 4 / 5; border-bottom: 1px solid var(--rand); }
  body .e-con.sfeer-beeld { background-position: 25% center; }
  body .e-con.sfeer-inhoud { grid-template-columns: 1fr; padding-top: 5rem; }
  body .e-con.stap { min-height: 0; }
  body .e-con.stap-acties { flex-wrap: nowrap; }
  body .stap-acties .elementor-widget.knop:not(:only-child) { flex: 1 1 0; min-width: 0; }
  body .stap-acties .elementor-widget.knop:not(:only-child) .elementor-button { display: flex; width: 100%; padding-left: .5rem; padding-right: .5rem; }
  body .blog .e-loop-item > .e-con.artikel { border-right: 0; border-bottom: 1px solid var(--rand); }
  body .blog .e-loop-item:last-child > .e-con.artikel { border-bottom: 0; }
  body .e-con.artikel-kop { flex-direction: column; align-items: flex-start; padding-top: 6.5rem; padding-bottom: 2rem; }
  body .artikel-kop .elementor-widget.label--pil { align-self: flex-start; margin-bottom: 0; }
  body .e-con.artikel-hero { aspect-ratio: 4 / 3; }
  body .e-con.cijfers { margin-top: 2rem; }
  body .e-con.hero--tekst { padding-top: 7rem; }
  body .e-con.cijfer { padding: 1.25rem; }
  body .e-con.footer-boven { grid-template-columns: 1fr; gap: 2.5rem; padding-top: 3rem; }
  body .e-con.footer-onder { flex-direction: column; }
}

/* --------------------------------------------------------------------------
   18. Privacypagina en cookiemelding
   Leestekst: opmaak uit .artikel-inhoud, hier alleen de leeskolom.
   Cookiemelding: markup en gedrag in snippet bijmonique-cookies.php.
   -------------------------------------------------------------------------- */
body .e-con.sectie .elementor-widget.leestekst { max-width: 37.5rem; margin: 0 auto; }
body .leestekst strong { color: var(--tekst); font-weight: 600; }
body .leestekst .bron { margin-top: 2.5rem; }

body .cookiemelding {
  position: fixed; left: 1.5rem; bottom: 1.5rem; z-index: 9990;
  width: min(25rem, calc(100vw - 3rem));
  padding: 1.5rem;
  background: rgba(30,20,16,.92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border: 1px solid var(--rand-sterk);
  border-radius: 1rem;
  box-shadow: 0 20px 50px rgba(0,0,0,.4);
  color: var(--tekst-gedempt);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s var(--veer-tekst), transform .8s var(--veer-tekst);
}
body .cookiemelding[hidden] { display: none; }
body .cookiemelding.is-zichtbaar { opacity: 1; transform: none; }
body .cookiemelding-kop {
  margin: 0 0 .5rem;
  font-family: var(--e-global-typography-primary-font-family), Georgia, serif;
  font-size: 1.375rem; line-height: 1.25; color: var(--tekst);
}
body .cookiemelding-tekst { margin: 0; font-size: var(--tekst-klein); line-height: 1.6; }
body .cookiemelding-tekst a { color: var(--kleur-amber); text-decoration: underline; text-underline-offset: 2px; }
body .cookiemelding-tekst a:hover { color: var(--kleur-amber-licht); }
body .cookiemelding-knoppen { display: flex; gap: .75rem; margin-top: 1.25rem; }
/* .cookiemelding ervoor: de kit en Hello stylen elke <button> (achtergrond, hover, focus) */
body .cookiemelding .cookieknop {
  flex: 1 1 0; min-width: 0;
  padding: .75rem 1rem;
  font: inherit; font-size: var(--tekst-klein); font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: none;
  color: var(--tekst); cursor: pointer;
  border-radius: var(--radius-pil);
  border: 1px solid var(--rand-sterk);
  background: transparent;
  box-shadow: none;
  transition: background .4s var(--veer-tekst), border-color .4s var(--veer-tekst), transform .5s var(--veer-tekst);
}
body .cookiemelding .cookieknop--nee:hover, body .cookiemelding .cookieknop--nee:focus { background: rgba(243,233,220,.06); border-color: var(--tekst-gedempt); color: var(--tekst); }
body .cookiemelding .cookieknop:hover { transform: translateY(-1px); }
body .cookiemelding .cookieknop:active { transform: scale(.98); }
body .cookiemelding .cookieknop:focus { outline: none; }
body .cookiemelding .cookieknop:focus-visible { outline: 2px solid var(--kleur-amber); outline-offset: 2px; }
body .cookiemelding .cookieknop--ja, body .cookiemelding .cookieknop--ja:focus { background: var(--kleur-terracotta); border-color: var(--kleur-terracotta); color: var(--tekst); }
body .cookiemelding .cookieknop--ja:hover { background: var(--kleur-terracotta-d); border-color: var(--kleur-terracotta-d); color: var(--tekst); }

@media (max-width: 809px) {
  body .cookiemelding { left: 1rem; right: 1rem; bottom: 1rem; width: auto; padding: 1.25rem; }
  body .cookiemelding-kop { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  body .cookiemelding { transition: none; transform: none; }
}
