/*
Theme Name: Carrièremoeder
Theme URI: https://carrieremoeder.com
Author: Ferry
Description: Custom WordPress theme voor Carrièremoeder — magazine-stijl met warme aardetinten, editorial typography (Libre Caslon Display + Mulish), volledig aanpasbaar via ACF Free, contactformulier via Contact Form 7.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: carrieremoeder
Tags: custom-colors, custom-menu, editor-style, threaded-comments, translation-ready
*/

/* ============================================
   CARRIÈREMOEDER — gedeelde stylesheet
   wit · warme aardetinten als accent
   Fraunces (italic serif) + Inter (sans)
============================================ */

:root{
  --bg: #FFFFFF;
  --bg-warm: #F7F2EA;       /* zacht zandbeige, voor afwisselende secties */
  --bg-cream: #F2EEE5;      /* iets dieper zandtint */
  --surface: #FBF8F3;       /* off-white kaarten */
  --clay: #B5755E;          /* terracotta — primaire accent / CTA */
  --clay-dark: #8E5944;
  --olive: #8C9072;
  --olive-deep: #4F5644;    /* donkere groen-grijs voor highlight-blocks */
  --walnut: #1A1C13;        /* primaire tekst */
  --soft: #1A1C13;          /* secundaire tekst */
  --blush: #E5C7B7;
  --line: #E8E2D6;          /* zachte lijnen */
  --line-dark: #D4CCBE;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:var(--bg);color:var(--walnut);font-family:'Mulish',sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 32px}

/* ============================================
   HEADER / NAV
============================================ */
/* Homepage header: fixed over hero foto, transparent — wordt solid bij scroll via .scrolled */
header.site{position:sticky;top:0;left:0;right:0;z-index:50;padding:20px 0;background:#fff;box-shadow:0 2px 14px -8px rgba(0,0,0,.10);transition:padding .3s ease}

/* Subpagina header: sticky, altijd wit met blur */
header.site.solid{position:sticky;background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(10px);padding:20px 0}

/* Scroll-state: zelfde hoogte, alleen subtiele schaduw voor visuele feedback */
header.site.scrolled{}

.nav{display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center;color:var(--walnut);line-height:0}
.brand img{height:56px;width:auto;display:block;transition:opacity .2s ease,height .3s ease,filter .3s ease}
.brand:hover img{opacity:.7}

nav ul{display:flex;gap:48px;list-style:none}
nav a{font-family:'Mulish',sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;color:var(--walnut);letter-spacing:1.8px;transition:color .2s;position:relative;text-decoration:none}
nav a:hover{color:var(--clay)}
/* actieve pagina: dun olijfgroen streepje precies onder de letters */
nav a.active{text-decoration:underline;text-decoration-color:var(--olive);text-decoration-thickness:1px;text-underline-offset:8px}

/* (header is altijd wit — geen aparte over-foto state meer nodig) */

/* ============================================
   TYPO
============================================ */
.eyebrow,.section-eyebrow,.small-eyebrow{display:inline-block;font-size:22px !important;letter-spacing:1.5px !important;text-transform:lowercase;color:var(--soft);font-weight:300 !important;font-style:normal !important;margin-bottom:14px;font-family:'Mulish',sans-serif !important}
.eyebrow{margin-bottom:18px}
h1.display{font-family:'Libre Caslon Display',serif;font-weight:300;font-size:70px;line-height:1.3;color:var(--walnut);letter-spacing:-1.5px}
h1.display em{font-style:normal;color:var(--clay);font-weight:300}
h2.headline{font-family:'Libre Caslon Display',serif;font-weight:300;font-size:70px;line-height:1.3;color:var(--walnut);letter-spacing:-.8px}
h2.headline em{font-style:normal;color:var(--clay)}
h3{font-family:'Libre Caslon Display',serif;font-weight:400;font-size:24px;line-height:1.2;color:var(--walnut)}
.lead{font-size:17px;line-height:1.7;color:var(--soft);max-width:560px}

/* ============================================
   BUTTONS
============================================ */
.btn{display:inline-block;padding:16px 36px;font-weight:400;font-size:14px;letter-spacing:1px;text-transform:lowercase;transition:all .2s;cursor:pointer;border:none;border-radius:0}
.btn-primary{background:var(--clay);color:#fff}
.btn-primary:hover{background:var(--clay-dark)}
.btn-text{background:none;color:var(--walnut);padding:8px 0;border-bottom:1px solid var(--walnut)}
.btn-text:hover{color:var(--clay);border-color:var(--clay)}
.btn-arrow{display:inline-flex;align-items:center;gap:10px;color:var(--walnut);font-size:14px;letter-spacing:.5px;padding:6px 0;border-bottom:1px solid var(--walnut);transition:all .2s}
.btn-arrow:hover{color:var(--clay);border-color:var(--clay)}

/* ============================================
   FULL-WIDTH HERO IMAGE (soulworx-style)
============================================ */
.hero-photo{width:100%;height:min(96vh,1040px);min-height:700px;background-color:#E5C7B7;background-size:cover;background-position:center 15%;position:relative;overflow:hidden}
.hero-photo.placeholder{background:linear-gradient(135deg,#E5C7B7 0%,#D7C3A6 50%,#B5755E 100%)}
.hero-photo.placeholder::after{content:"foto van je vriendin · grote portret-/lifestylefoto";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-family:'Libre Caslon Display',serif;font-style:italic;font-size:18px;letter-spacing:.5px}
/* zachte donkere overlay zodat header-logo/nav leesbaar blijven over foto */
.hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 30%);pointer-events:none}

.hero-text{padding:80px 32px 60px;text-align:center;max-width:750px;margin:0 auto}
.hero-text .greet{font-family:'Mulish',sans-serif;font-style:normal;font-weight:300;text-transform:none;color:var(--soft);font-size:22px;letter-spacing:1.5px;margin-bottom:18px}
.hero-text h1.display{margin-bottom:34px}
.hero-text p{font-size:19px;color:var(--soft);max-width:750px;margin:80px auto 0}
.hero-text .scroll-cue{display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:1px;color:var(--walnut);margin-top:20px;border-bottom:1px solid var(--walnut);padding-bottom:4px}

/* Hero-text knop: gewoon tekst, geen link-gedrag */
.hero-text .btn-arrow,
.hero-text .btn-arrow:hover{font-size:22px;font-weight:500;font-family:'Mulish',sans-serif;color:var(--walnut);border:none;padding:0;text-decoration:none;letter-spacing:.2px;opacity:1;cursor:default;margin:50px 0;display:inline-flex;align-items:center;gap:14px}
.hero-text .btn-arrow .arrow-down{flex-shrink:0;display:inline-block;animation:bounce-down 2.6s ease-in-out infinite;will-change:transform}
@keyframes bounce-down{
  0%,100%{transform:translateY(-4px)}
  50%{transform:translateY(6px)}
}

/* ============================================
   STATS ROW
============================================ */
.stats{padding:80px 0;background:var(--surface)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:80px;text-align:center;max-width:1040px;margin:0 auto}
.stats-grid > div{position:relative;padding:0 12px;transition:transform .4s cubic-bezier(.2,.7,.3,1)}
.stats-grid > div:hover{transform:translateY(-6px)}
/* subtiele verticale scheidingslijntjes tussen stats */
.stats-grid > div + div::before{content:"";position:absolute;left:-40px;top:50%;transform:translateY(-50%);height:60%;width:1px;background:var(--line-dark);opacity:.55}
.stats .num{font-family:'Libre Caslon Display',serif;font-style:normal;font-weight:300;font-size:clamp(40px,5vw,58px);line-height:1;color:var(--walnut);margin-bottom:14px;display:inline-block;transition:transform .4s cubic-bezier(.2,.7,.3,1)}
.stats-grid > div:hover .num{transform:scale(1.06)}
.stats .lbl{font-size:16px;color:var(--soft);letter-spacing:.5px;line-height:1.5;transition:color .3s}
.stats-grid > div:hover .lbl{color:var(--walnut)}

/* ============================================
   SECTION (generic)
============================================ */
section.padded{padding:120px 0}
section.padded.tight{padding:80px 0}
section.warm{background:var(--bg-warm)}
section.cream{background:var(--bg-cream)}
section.dark{background:var(--olive-deep);color:#F2EEE5}
section.dark h2.headline,section.dark h3{color:#F4ECDF}
section.dark h2.headline em{color:var(--blush)}
section.dark p{color:#D7CEBE}

.section-head{text-align:center;max-width:680px;margin:0 auto 64px}
.section-head h2.headline{margin-bottom:18px}
.section-head p{margin:0 auto;color:var(--soft);font-size:19px;line-height:1.65}

/* page hero (sub-pagina's, geen foto) */
.page-hero{padding:120px 0 80px;text-align:center;border-bottom:1px solid var(--line)}
.page-hero h1.display{font-size:clamp(44px,6vw,72px);margin-bottom:24px}
.page-hero p.lead{margin:0 auto;max-width:640px}

/* ============================================
   IMAGE CARDS (gratis trainingen / blog)
============================================ */
/* Mini-trainingen sectie — warme bg met decoratieve typografie en zachte blobs */
.trainingen-section{background:var(--bg-cream);position:relative;overflow:hidden}
.trainingen-section > .wrap{position:relative;z-index:2}
.trainingen-section::before{
  content:"vandaag";
  position:absolute;
  bottom:-30px;left:-40px;
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:clamp(180px,22vw,340px);
  line-height:.85;
  color:#fff;
  opacity:.55;
  z-index:0;
  pointer-events:none;
  letter-spacing:-10px;
  white-space:nowrap;
  transform:translateX(var(--parallax-x,0));
  will-change:transform;
}
.trainingen-section::after{
  content:"";
  position:absolute;
  width:720px;height:720px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(181,117,94,.14) 0%,rgba(181,117,94,0) 60%);
  top:-300px;right:-260px;
  z-index:1;
  pointer-events:none;
}

.image-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;align-items:start}
.image-card{position:relative;display:flex;flex-direction:column;text-align:left;color:var(--walnut);transition:transform .4s cubic-bezier(.2,.7,.3,1)}
.image-card:hover{transform:translateY(-8px)}

/* Verspringende layout: middelste kaart staat lager, derde kaart iets minder laag */
.image-card:nth-child(2){margin-top:70px}
.image-card:nth-child(3){margin-top:25px}

/* Image wrapper voor zoom-on-hover */
.image-card .img-wrap{aspect-ratio:1/1.15;overflow:hidden;margin-bottom:24px;border-radius:2px;position:relative;background:var(--bg-cream)}
.image-card .img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}
.image-card:hover .img{transform:scale(1.06)}

/* zachte vignet-overlay onderaan zodat tekst op foto leesbaar blijft */
.image-card .img-wrap::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,0) 100%);
  pointer-events:none;
}

.image-card h3{margin:6px 0 10px;font-size:26px;font-weight:400;line-height:1.25}
.image-card p{font-size:16px;color:var(--soft);margin-bottom:12px;line-height:1.55}

/* "lees verder"-link met SVG-pijl die schuift op hover */
.image-card .more{
  display:inline-flex;align-items:center;gap:10px;
  font-size:16px;letter-spacing:.5px;color:var(--walnut);
  border-bottom:1px solid var(--walnut);padding:0 0 3px;
  align-self:flex-start;text-transform:lowercase;
  margin-top:auto;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
}
.image-card .more::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.image-card:hover .more{gap:16px}
.image-card:hover .more::after{transform:translateX(4px)}

/* nog gebruikte gradient-fallbacks elders (blog, etc.) — behouden */
.image-card .img.warm{background:linear-gradient(135deg,#E5C7B7 0%,#C9A088 100%)}
.image-card .img.olive{background:linear-gradient(135deg,#A8AC8E 0%,#8C9072 100%)}
.image-card .img.cream{background:linear-gradient(135deg,#EBE0CB 0%,#D7C3A6 100%)}
.image-card .img.clay{background:linear-gradient(135deg,#C9A088 0%,#B5755E 100%)}
.image-card .img.walnut{background:linear-gradient(135deg,#5A4D40 0%,#2A2520 100%)}
.image-card .img.sage{background:linear-gradient(135deg,#B0B398 0%,#7A8064 100%)}

/* ============================================
   BOT DEMO — live chat-bubbel demonstratie
============================================ */
/* Spacing in de section-head van dit blok matched met de hero-text spacing */
#zo-werkt-het .section-eyebrow{margin-bottom:18px}
#zo-werkt-het .section-head h2.headline{margin-bottom:80px}

.bot-demo{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:36px;position:relative}
.bot-row{display:flex;flex-direction:column;gap:10px;max-width:80%}
.bot-row.left{align-self:flex-start}
.bot-row.right{align-self:flex-end;align-items:flex-end}
.bot-meta{font-size:12px;letter-spacing:2.4px;text-transform:uppercase;color:var(--soft);font-weight:700;font-family:'Mulish',sans-serif}
.bubble{padding:20px 26px;font-size:17px;line-height:1.55;font-family:'Mulish',sans-serif}
.bubble-ex{background:var(--bg-cream);color:var(--walnut);border-radius:22px 22px 22px 4px}
.bubble-emotion{background:rgba(181,117,94,.06);color:#9a8378;border:1px dashed rgba(181,117,94,.4);text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(154,131,120,.55);border-radius:22px 22px 4px 22px}
.bubble-bot{background:var(--olive-deep);color:#F2EEE5;border-radius:22px 22px 22px 4px;position:relative}
.bubble-bot .char{display:inline}

/* Reveal-animatie zodra de demo in beeld komt */
.bot-row{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
.bot-demo.is-visible .bot-row{opacity:1;transform:translateY(0)}
.bot-demo.is-visible .bot-row:nth-child(2){transition-delay:.35s}
.bot-demo.is-visible .bot-row:nth-child(3){transition-delay:.8s}

/* ============================================
   EDITORIAL PULLQUOTE — groot tussenmoment
============================================ */
.editorial-break{padding:160px 0;text-align:center;position:relative;overflow:hidden;background:var(--bg-cream)}
.editorial-break::before{
  content:"inspiratie";
  position:absolute;
  bottom:-30px;left:-40px;
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:clamp(180px,22vw,340px);
  line-height:.85;
  color:#fff;
  opacity:.55;
  z-index:0;
  pointer-events:none;
  letter-spacing:-10px;
  white-space:nowrap;
  transform:translateX(var(--parallax-x,0));
  will-change:transform;
}
.editorial-break > .wrap{position:relative;z-index:1}
.editorial-break .quote{position:relative;z-index:1;font-family:'Libre Caslon Display',serif;font-style:normal;font-size:clamp(40px,5.5vw,76px);line-height:1.2;color:var(--walnut);max-width:980px;margin:0 auto;letter-spacing:-.5px}
.editorial-break .cite{position:relative;z-index:1;display:inline-block;margin-top:40px;font-family:'Mulish',sans-serif;font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--soft);font-weight:600}
.editorial-break .cite::before{content:"";display:inline-block;width:40px;height:1px;background:var(--clay);vertical-align:middle;margin-right:14px;transform:translateY(-2px)}

/* ============================================
   GLOBAL REVEAL — fade up on scroll
============================================ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.12s}
.reveal-delay-2{transition-delay:.24s}
.reveal-delay-3{transition-delay:.36s}
/* Variant: slide-from-left ipv standaard fade-from-below */
.reveal.slide-from-left{transform:translateX(-80px);transition-duration:1s}
.reveal.slide-from-left.in{transform:translateX(0)}

/* ============================================
   PULL QUOTE (testimonial in tekst)
============================================ */
.pull-quote{padding:140px 0 120px;text-align:center;background:var(--bg);position:relative}
/* avatar weg — editorial pull-quote-aanpak */
.pull-quote .avatar{display:none}
/* groot decoratief openings-aanhalingsteken */
.pull-quote .wrap-narrow{position:relative}
.pull-quote .wrap-narrow::before{
  content:"\201C";
  display:block;
  font-family:'Libre Caslon Display',serif;
  font-size:140px;line-height:.5;
  color:var(--clay);
  margin:0 auto 30px;
  font-style:normal;
  text-align:center;
}
.pull-quote blockquote{
  font-family:'Libre Caslon Display',serif;
  font-style:normal;
  font-weight:400;
  font-size:45px;
  line-height:1.35;
  color:var(--walnut);
  max-width:860px;
  margin:0 auto 44px;
  letter-spacing:-.3px;
}
.pull-quote cite{
  display:inline-flex;align-items:center;gap:16px;
  font-style:normal;
  font-family:'Mulish',sans-serif;
  font-size:12px;
  color:var(--soft);
  letter-spacing:2.4px;
  text-transform:uppercase;
  font-weight:700;
}
.pull-quote cite::before{content:"";width:36px;height:1px;background:var(--clay)}

/* ============================================
   OVER MASHA — editorial story opener
============================================ */
.masha-section{position:relative;overflow:hidden}

.masha-layout{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:80px;
  align-items:center;
}

/* Tekstkolom */
.masha-text-col{position:relative;padding-left:32px}
.masha-text-col::before{
  content:"";position:absolute;left:0;top:8px;width:2px;height:60px;background:var(--clay);
}
.masha-issue{
  display:block;
  font-family:'Mulish',sans-serif;
  font-size:12px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--soft);
  font-weight:700;
  margin-bottom:24px;
}
.masha-headline{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:clamp(36px,4.4vw,54px);
  line-height:1.2;
  color:var(--walnut);
  letter-spacing:-.3px;
  margin:0 0 48px;
  max-width:680px;
}
.masha-headline em{font-style:normal;color:var(--clay)}
.masha-body p{
  font-size:19px;
  line-height:1.75;
  color:var(--walnut);
  margin-bottom:20px;
  max-width:580px;
}
.masha-signature{margin:40px 0 28px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.masha-sig-name{
  font-family:'Libre Caslon Display',serif;
  font-size:28px;
  color:var(--walnut);
}
.masha-sig-role{
  font-family:'Mulish',sans-serif;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--soft);
  font-weight:700;
}
.masha-link{
  display:inline-flex;align-items:center;gap:10px;
  font-size:16px;letter-spacing:.5px;color:var(--walnut);
  border-bottom:1px solid var(--walnut);padding:0 0 3px;
  text-transform:lowercase;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
}
.masha-link::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.masha-link:hover{gap:16px;color:var(--walnut);border-color:var(--walnut)}
.masha-link:hover::after{transform:translateX(4px)}

/* Foto-kolom */
.masha-photo-col{position:relative}
.masha-photo{
  aspect-ratio:.78/1;
  background-size:cover;
  background-position:center;
  position:relative;
}
.masha-photo::before{
  content:"";
  position:absolute;
  inset:30px -30px -30px 30px;
  background:var(--clay);
  z-index:-1;
  opacity:.85;
}

/* Roterende stamp rechtsboven op de foto */
.masha-stamp{
  position:absolute;
  top:-70px;right:-70px;
  width:190px;height:190px;
  color:var(--clay);
  pointer-events:none;
  z-index:2;
  animation:masha-stamp-spin 28s linear infinite;
}
@keyframes masha-stamp-spin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

@media (max-width: 880px){
  .masha-layout{grid-template-columns:1fr;gap:48px}
  .masha-photo::before{display:none}
  .masha-text-col{padding-left:24px}
  .masha-headline{margin-bottom:32px}
  .masha-stamp{width:120px;height:120px;top:-30px;right:-30px}
}

/* ============================================
   SPLIT (text + photo, generieke split-layout)
============================================ */
.split{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}
.split.flip .split-text{order:2}
.split-text .small-eyebrow{margin-bottom:12px}
.split-text h2.headline{margin-bottom:28px}
.split-text p{margin-bottom:18px;color:var(--soft);max-width:520px}
.split-text .signoff{font-family:'Libre Caslon Display',serif;font-style:italic;color:var(--clay);font-size:18px;margin-top:24px;display:inline-block}
.split-photo{aspect-ratio:.92/1;position:relative;overflow:hidden;background-color:#D7C3A6;background-size:cover;background-position:center}
.split-photo.placeholder{background:linear-gradient(135deg,#E5C7B7 0%,#A8AC8E 100%)}
.split-photo.placeholder::after{content:attr(data-label);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-family:'Libre Caslon Display',serif;font-style:italic;font-size:16px}

/* ============================================
   AANBOD TRIO — drie product-kaarten naast elkaar
============================================ */
.aanbod-section{background:var(--surface)}

/* Blog teaser: gekleurde band onderdoor, cards op gelijke hoogte */
.blog-teaser-section{
  background:linear-gradient(to bottom,
    transparent 0%,transparent 38%,
    var(--bg-warm) 38%,var(--bg-warm) 100%);
}
.blog-teaser-section .image-cards{align-items:stretch}
.blog-teaser-section .image-card:nth-child(2),
.blog-teaser-section .image-card:nth-child(3){margin-top:0}

/* ============================================
   CTA INVITATION — editorial split met foto
============================================ */
.cta-invitation{background:var(--bg-warm);overflow:hidden;position:relative}
.cta-invitation-layout{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  min-height:600px;
}
.cta-invitation-text{
  padding:120px clamp(40px,5vw,80px) 120px clamp(32px,6vw,120px);
  transform:translateX(var(--text-parallax-x,0));
  will-change:transform;
}
.cta-invitation-text .section-eyebrow{margin-bottom:18px}
.cta-invitation-text h2.headline{margin-bottom:36px;max-width:560px}
.cta-invitation-text p{font-size:19px;line-height:1.65;color:var(--soft);max-width:520px;margin:0 0 44px}
.cta-invitation-photo-wrap{
  align-self:stretch;
  min-height:600px;
  overflow:hidden;
  position:relative;
}
.cta-invitation-photo{
  position:absolute;
  inset:-60px 0 -60px 0;
  background-size:cover;
  background-position:center 35%;
  will-change:transform;
  transform:translateY(var(--photo-parallax,0));
}
.cta-invitation-link{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;color:var(--walnut);
  border-bottom:1px solid var(--walnut);padding:0 0 3px;
  text-transform:lowercase;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
}
.cta-invitation-link::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.cta-invitation-link:hover{gap:16px}
.cta-invitation-link:hover::after{transform:translateX(4px)}

@media (max-width: 880px){
  .cta-invitation-layout{grid-template-columns:1fr;min-height:auto}
  .cta-invitation-text{padding:80px 32px}
  .cta-invitation-photo{min-height:420px;order:-1}
}
.product-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:40px}
.product-card{
  display:flex;flex-direction:column;
  background:#fff;
  color:var(--walnut);
  overflow:hidden;
  border:1px solid var(--line);
  transition:transform .45s cubic-bezier(.2,.7,.3,1);
  text-decoration:none;
}
.product-card:hover{transform:translateY(-10px)}

.pc-art{
  aspect-ratio:1.5/1;
  position:relative;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.pc-wijzer .pc-art{background:linear-gradient(135deg,#EBE0CB 0%,#C9A088 100%)}
.pc-bot .pc-art{background:linear-gradient(135deg,#7A8064 0%,#4F5644 100%);color:#F2EEE5}

/* "Rustgevend" watermark op podcast pull-quote — zelfde stijl als "vandaag",
   links onderhoek, standaard parallax-drift (links → rechts tijdens scroll). */
.pull-quote.has-watermark{position:relative;overflow:hidden}
.pull-quote.has-watermark > .wrap-narrow{position:relative;z-index:2}
.pull-quote.has-watermark::before{
  content:"rustgevend";
  position:absolute;
  bottom:-30px;
  left:-40px;
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:clamp(180px,22vw,340px);
  line-height:.85;
  color:#fff;
  opacity:.55;
  z-index:0;
  pointer-events:none;
  letter-spacing:-10px;
  white-space:nowrap;
  transform:translateX(var(--parallax-x,0));
  will-change:transform;
}

/* "Onmisbaar" watermark op aanbod bot-sectie — zelfde stijl als "vandaag" op
   homepage trainingen-sectie, maar gemirrord (rechts ipv links) en parallax
   schuift het van rechts (off-screen) naar links (in beeld) tijdens scroll. */
.product-feature.has-watermark{position:relative;overflow:hidden}
.product-feature.has-watermark > .wrap{position:relative;z-index:2}
.product-feature.has-watermark::before{
  content:"onmisbaar";
  position:absolute;
  bottom:-30px;
  right:-40px;
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:clamp(180px,22vw,340px);
  line-height:.85;
  color:#fff;
  opacity:.55;
  z-index:0;
  pointer-events:none;
  letter-spacing:-10px;
  white-space:nowrap;
  transform:translateX(var(--parallax-x,0));
  will-change:transform;
}
.pc-training .pc-art{background:linear-gradient(135deg,#E5C7B7 0%,#B5755E 100%);color:#fff}

.pc-watermark{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:clamp(60px,9vw,100px);
  line-height:1;
  letter-spacing:-2px;
  color:rgba(255,255,255,.7);
  text-align:center;
  white-space:nowrap;
  font-weight:300;
}

.pc-body{
  display:flex;flex-direction:column;
  flex-grow:1;
  padding:32px 32px 36px;
}
.pc-meta{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}
.pc-num{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:24px;
  color:var(--clay);
  line-height:1;
}
.pc-tag{
  font-family:'Mulish',sans-serif;
  font-size:11px;letter-spacing:2.4px;
  text-transform:uppercase;font-weight:700;
  color:var(--soft);
}
.pc-name{
  font-family:'Libre Caslon Display',serif;
  font-weight:400;
  font-size:28px;line-height:1.2;
  margin:0 0 16px;
  color:var(--walnut);
}
.pc-desc{
  font-size:17px;line-height:1.6;
  color:var(--soft);
  margin-bottom:32px;
  flex-grow:1;
}
.pc-bottom{
  display:flex;flex-direction:column;align-items:flex-start;
  gap:22px;
  padding-top:24px;border-top:1px solid var(--line);
}
.pc-price{
  display:inline-flex;flex-direction:column;line-height:1;
  color:var(--walnut);
  gap:10px;
}
.pc-amount{
  font-family:'Libre Caslon Display',serif;
  font-size:36px;
  line-height:1;
  display:inline-block;
  white-space:nowrap;
}
.pc-amount em{font-style:normal}
.pc-per{
  font-family:'Mulish',sans-serif;
  font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--soft);
  font-weight:700;
}
.pc-cta{
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;
  text-transform:lowercase;
  border-bottom:1px solid var(--walnut);
  padding:0 0 3px;
  display:inline-flex;align-items:center;gap:10px;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
  color:var(--walnut);
}
.pc-cta::after{
  content:"";display:inline-block;width:14px;height:8px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8' fill='none'><path d='M1 4 H12 M9 1 L12 4 L9 7' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8' fill='none'><path d='M1 4 H12 M9 1 L12 4 L9 7' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.product-card:hover .pc-cta{gap:12px}
.product-card:hover .pc-cta::after{transform:translateX(3px)}

@media (max-width: 880px){
  .product-trio{grid-template-columns:1fr;gap:32px}
}

/* ============================================
   AANBOD SPOTLIGHT (donkere highlight-kaart)
============================================ */
.spotlight{display:grid;grid-template-columns:1fr 1.2fr;gap:0;background:var(--olive-deep);overflow:hidden;color:#F2EEE5}
.spotlight .img{aspect-ratio:1/1.05;background:linear-gradient(135deg,#A8AC8E 0%,#5F6450 100%);position:relative;overflow:hidden}
.spotlight .img::after{content:attr(data-label);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);font-family:'Libre Caslon Display',serif;font-style:italic;font-size:15px}
.spotlight .body{padding:64px 56px;display:flex;flex-direction:column;justify-content:center}
.spotlight h3{color:#F4ECDF;font-size:32px;font-weight:300;margin-bottom:18px;line-height:1.15}
.spotlight p{color:#D7CEBE;margin-bottom:28px;font-size:15px;line-height:1.7}
.spotlight .more{color:#F4ECDF;border-color:#F4ECDF;font-size:13px;letter-spacing:.5px;border-bottom:1px solid #F4ECDF;padding-bottom:2px;align-self:flex-start;text-transform:lowercase}
.spotlight .more:hover{color:var(--blush);border-color:var(--blush)}

/* ============================================
   CTA WITH PHOTO (soulworx 'Ready for the ride')
============================================ */
.cta-photo{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;min-height:480px}
.cta-photo .body{background:var(--bg-warm);padding:80px 56px;display:flex;flex-direction:column;justify-content:center}
.cta-photo .body h2.headline{margin-bottom:24px}
.cta-photo .body p{margin-bottom:32px;color:var(--soft);max-width:380px}
.cta-photo .img{background:linear-gradient(135deg,#D7C3A6 0%,#B5755E 100%);position:relative}
.cta-photo .img::after{content:attr(data-label);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-family:'Libre Caslon Display',serif;font-style:italic;font-size:16px}

/* ============================================
   PODCAST BLOCK (lijst + foto)
============================================ */
.podcast-block{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.podcast-block .body h2.headline{margin-bottom:28px}
.podcast-block .body p{font-size:19px;line-height:1.65;color:var(--soft);max-width:480px;margin-bottom:8px}
.podcast-list{margin-top:32px;display:flex;flex-direction:column;gap:0}
.podcast-list a{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);color:var(--walnut);transition:padding-left .25s ease,color .2s}
.podcast-list a:hover{padding-left:8px;color:var(--clay)}
.podcast-list .play-icon{width:30px;height:30px;flex-shrink:0;transition:transform .25s ease;color:inherit}
.podcast-list a:hover .play-icon{animation:play-pulse 1.2s ease-in-out infinite}
@keyframes play-pulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.18)}
}
.podcast-list .ep-num{font-family:'Libre Caslon Display',serif;font-style:italic;color:inherit;font-size:18px;flex-shrink:0;width:36px}
.podcast-list .ep-title{font-size:17px;font-weight:500;line-height:1.4;font-family:'Mulish',sans-serif;color:inherit}
.podcast-block .photo{aspect-ratio:1/1;background-color:#A8AC8E;background-size:cover;background-position:center;position:relative;overflow:hidden}
.podcast-block .photo.placeholder{background:linear-gradient(160deg,#A8AC8E 0%,#5F6450 100%)}
.podcast-block .photo.placeholder::after{content:"foto met koptelefoon / podcast-opname";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-family:'Libre Caslon Display',serif;font-style:italic;font-size:15px;text-align:center;padding:30px}
.pod-platforms{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.pod-platforms a{padding:12px 22px;border:1px solid var(--line-dark);border-radius:0;font-size:16px;color:var(--walnut);transition:all .2s;letter-spacing:.5px}
.pod-platforms a:hover{background:var(--walnut);color:#fff;border-color:var(--walnut)}

/* ============================================
   NEWSLETTER FORM
============================================ */
/* Instagram-blok — donker, gecentreerd, met grote handle-link */
.instagram-block{padding:120px 0;text-align:center;background:var(--walnut);color:#F4ECDF}
.instagram-block .section-eyebrow{color:#D7CEBE !important}
.instagram-block h2.headline{margin-bottom:18px;color:#F4ECDF}
.instagram-block h2.headline em{color:var(--blush)}
.instagram-block p{color:#D7CEBE;max-width:520px;margin:0 auto 44px;font-size:19px;line-height:1.65}
.instagram-link{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;
  text-transform:lowercase;
  color:#F4ECDF;
  border-bottom:1px solid #F4ECDF;
  padding:0 0 3px;
  text-decoration:none;
  transition:gap .35s cubic-bezier(.2,.7,.3,1),color .25s ease,border-color .25s ease;
}
.instagram-link::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.instagram-link:hover{color:var(--blush);border-color:var(--blush)}
.instagram-link:hover::after{transform:translateX(6px)}

/* Photo-grid variant van het Instagram-blok — 4 vierkante thumbs bovenaan,
   tekst eronder. Kantelt het blok van "tekstcentrum" naar "beeld eerst". */
.instagram-block--with-grid{padding-top:90px}
.instagram-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  max-width:920px;
  margin:0 auto 70px;
}
.instagram-grid .ig-tile{
  position:relative;
  display:block;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:2px;
}
.instagram-grid .ig-tile img{
  width:100%;height:100%;
  object-fit:cover;
  filter:grayscale(15%) brightness(.92);
  transition:transform .5s cubic-bezier(.2,.7,.3,1), filter .3s;
}
.instagram-grid .ig-tile-overlay{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(26,28,19,.55);
  color:#F4ECDF;
  opacity:0;
  transition:opacity .3s;
}
.instagram-grid .ig-tile-overlay svg{width:28px;height:28px}
.instagram-grid .ig-tile:hover img{transform:scale(1.06);filter:none}
.instagram-grid .ig-tile:hover .ig-tile-overlay{opacity:1}
@media (max-width:680px){
  .instagram-grid{grid-template-columns:repeat(2,1fr);margin-bottom:50px}
}

/* ============================================
   INSTAGRAM GRID (footer)
============================================ */
.insta-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:40px}
.insta-tile{aspect-ratio:1/1;background:var(--bg-cream);position:relative;overflow:hidden}
.insta-tile::after{content:"foto";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(42,37,32,.4);font-family:'Libre Caslon Display',serif;font-style:italic;font-size:11px}
.insta-tile.warm{background:linear-gradient(135deg,#E5C7B7 0%,#C9A088 100%)}
.insta-tile.olive{background:linear-gradient(135deg,#A8AC8E 0%,#8C9072 100%)}
.insta-tile.cream{background:linear-gradient(135deg,#EBE0CB 0%,#D7C3A6 100%)}
.insta-tile.clay{background:linear-gradient(135deg,#C9A088 0%,#B5755E 100%)}
.insta-tile.walnut{background:linear-gradient(135deg,#7A6B5A 0%,#3D342B 100%)}
.insta-tile.sage{background:linear-gradient(135deg,#B0B398 0%,#7A8064 100%)}

/* ============================================
   FOOTER
============================================ */
/* Footer — compact en rustig */
footer.site{background:var(--bg-warm);color:var(--walnut);padding:80px 0 32px;font-size:14px}
.footer-main{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:64px;
  margin-bottom:56px;
  align-items:start;
}
.footer-brand .brand{margin-bottom:24px;display:inline-block}
.footer-brand .brand img{height:64px}
.footer-brand p{max-width:360px;color:var(--soft);font-size:15px;line-height:1.6}
.footer-contact{display:flex;flex-direction:column;gap:18px}
.footer-label{
  font-family:'Mulish',sans-serif;
  font-size:11px;letter-spacing:2.4px;
  text-transform:uppercase;font-weight:700;
  color:var(--soft);
}
.footer-email{
  font-family:'Libre Caslon Display',serif;
  font-size:24px;color:var(--walnut);
  display:inline-block;
  transition:color .2s;
}
.footer-email:hover{color:var(--clay)}
.footer-bottom{
  padding-top:28px;
  border-top:1px solid var(--line-dark);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:13px;color:var(--soft);letter-spacing:.3px;
}
.footer-bottom a{color:inherit;transition:color .2s}
.footer-bottom a:hover{color:var(--clay)}

.socials{display:flex;gap:12px;margin-top:4px}
.socials a{width:40px;height:40px;border:1px solid var(--line-dark);display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--walnut);transition:all .2s}
.socials a svg{width:18px;height:18px;transition:transform .2s}
.socials a:hover{background:var(--walnut);color:#F4ECDF;border-color:var(--walnut)}
.socials a:hover svg{transform:scale(1.06)}

@media (max-width: 880px){
  .footer-main{grid-template-columns:1fr;gap:48px}
}

/* ============================================
   PRODUCT FEATURE (aanbod page) — magazine-style productblok
============================================ */
.product-feature{padding:140px 0}
.product-feature-grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:100px;
  align-items:center;
}
.product-feature.flip .product-feature-photo-col{order:2}

.product-feature-photo-col{position:relative}
.product-feature-number{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:clamp(120px,15vw,200px);
  line-height:.9;
  color:var(--clay);
  position:absolute;
  top:-40px;left:-30px;
  z-index:2;
  pointer-events:none;
  /* drijft tegen-de-richting-in mee tijdens scroll, voor depth-illusie */
  transform:translateY(var(--number-parallax-y,0));
  will-change:transform;
}
.product-feature.flip .product-feature-number{left:auto;right:-30px}

/* Frame is het zichtbare kader met overflow:hidden — terracotta offset blok zit hierop, foto kan binnen frame parallax-en */
.product-feature-photo-frame{
  aspect-ratio:.82/1;
  position:relative;
  overflow:hidden;
}
.product-feature-photo-frame::before{
  content:"";
  position:absolute;
  inset:30px -30px -30px 30px;
  background:var(--clay);
  z-index:-1;
  opacity:.85;
}
.product-feature.flip .product-feature-photo-frame::before{
  inset:30px 30px -30px -30px;
}
/* Foto extends 110px boven en onder het frame, beweegt verticaal mee met scroll */
.product-feature-photo{
  position:absolute;
  inset:-110px 0 -110px 0;
  background-size:cover;
  background-position:center;
  transform:translateY(var(--photo-parallax-y,0));
  will-change:transform;
}

.product-feature-content .section-eyebrow{margin-bottom:18px}
.product-feature-content h2.headline{margin-bottom:32px}
.product-feature-lead{
  font-size:19px;
  line-height:1.65;
  color:var(--walnut);
  margin-bottom:36px;
  max-width:520px;
}
.product-feature-list{
  list-style:none;padding:0;
  margin:0 0 32px;
  max-width:540px;
}
.product-feature-list li{
  padding:16px 0 16px 28px;
  position:relative;
  border-bottom:1px solid var(--line);
  font-size:17px;
  color:var(--walnut);
  line-height:1.5;
}
.product-feature-list li:last-child{border-bottom:none}
.product-feature-list li::before{
  content:"";
  position:absolute;left:0;top:25px;
  width:0;height:1px;
  background:var(--clay);
  transition:width .7s cubic-bezier(.2,.7,.3,1);
}
.product-feature-list.in-view li::before{width:16px}
.product-feature-list.in-view li:nth-child(1)::before{transition-delay:.05s}
.product-feature-list.in-view li:nth-child(2)::before{transition-delay:.15s}
.product-feature-list.in-view li:nth-child(3)::before{transition-delay:.25s}
.product-feature-list.in-view li:nth-child(4)::before{transition-delay:.35s}
.product-feature-list.in-view li:nth-child(5)::before{transition-delay:.45s}
.product-feature-list.in-view li:nth-child(6)::before{transition-delay:.55s}
.product-feature-included{
  font-family:'Mulish',sans-serif;
  font-size:12px;letter-spacing:1.5px;
  text-transform:uppercase;font-weight:700;
  color:var(--soft);
  margin:0 0 32px;
}
.product-feature-price{
  display:flex;align-items:baseline;gap:16px;
  margin-bottom:40px;
}
.product-feature-price .amount{
  font-family:'Libre Caslon Display',serif;
  font-size:52px;line-height:1;color:var(--walnut);
  white-space:nowrap;
}
.product-feature-price .amount em{font-style:normal}
.product-feature-price .per{
  font-family:'Mulish',sans-serif;
  font-size:12px;letter-spacing:1.5px;
  text-transform:uppercase;font-weight:700;
  color:var(--soft);
}
.product-feature-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;color:var(--walnut);
  border-bottom:1px solid var(--walnut);padding:0 0 3px;
  text-transform:lowercase;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
}
.product-feature-cta::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.product-feature-cta:hover{gap:16px}
.product-feature-cta:hover::after{transform:translateX(4px)}

@media (max-width: 880px){
  .product-feature{padding:80px 0}
  .product-feature-grid{grid-template-columns:1fr;gap:60px}
  .product-feature.flip .product-feature-photo-col{order:0}
  .product-feature-number{font-size:120px;top:-25px;left:-10px}
  .product-feature.flip .product-feature-number{right:-10px}
  .product-feature-photo::before{display:none}
  .product-feature-price .amount{font-size:42px}
}

/* ============================================
   BUNDLE SPOTLIGHT (aanbod page) — donker CTA-blok
============================================ */
.bundle-spotlight{
  background:var(--walnut);
  color:#F4ECDF;
  padding:140px 0;
  text-align:center;
}
.bundle-spotlight .section-eyebrow{color:#D7CEBE !important}
.bundle-spotlight h2.headline{color:#F4ECDF;margin-bottom:24px}
.bundle-spotlight h2.headline em{color:var(--blush);font-style:normal}
.bundle-spotlight p{
  color:#D7CEBE;
  max-width:560px;
  margin:0 auto 48px;
  font-size:19px;line-height:1.65;
}
.bundle-price{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin:0 auto 48px;
  flex-wrap:wrap;
  justify-content:center;
}
.bundle-price .amount{
  font-family:'Libre Caslon Display',serif;
  font-size:72px;line-height:1;color:#F4ECDF;
}
.bundle-price .amount em{font-style:normal;color:var(--blush)}
.bundle-price .per{
  font-family:'Mulish',sans-serif;
  font-size:12px;letter-spacing:1.5px;
  text-transform:uppercase;font-weight:700;
  color:#D7CEBE;
}
.bundle-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;color:#F4ECDF;
  border-bottom:1px solid #F4ECDF;padding:0 0 3px;
  text-transform:lowercase;
  transition:color .25s ease,border-color .25s ease;
}
.bundle-cta::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.bundle-cta:hover{color:var(--blush);border-color:var(--blush)}
.bundle-cta:hover::after{transform:translateX(6px)}

@media (max-width: 880px){
  .bundle-spotlight{padding:80px 0}
  .bundle-price .amount{font-size:54px}
}

/* ============================================
   PRODUCT DETAIL (aanbod page)
============================================ */
.product{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:100px 0;border-bottom:1px solid var(--line)}
.product:last-child{border-bottom:none}
.product.flip .product-text{order:2}
.product-art{aspect-ratio:1/1.05;position:relative;overflow:hidden}
.product-art.bot{background:linear-gradient(135deg,#E5C7B7 0%,#B5755E 100%)}
.product-art.training{background:linear-gradient(135deg,#A8AC8E 0%,#5F6450 100%)}
.product-art.gids{background:linear-gradient(135deg,#5A4D40 0%,#2A2520 100%)}
.product-art .label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Libre Caslon Display',serif;font-style:italic;font-size:18px;text-align:center;opacity:.85;padding:20px}
.product-text .small-eyebrow{margin-bottom:10px}
.product-text h2.headline{margin-bottom:24px}
.product .features{margin:24px 0 30px;padding:0;list-style:none}
.product .features li{padding:14px 0 14px 28px;position:relative;border-bottom:1px solid var(--line);font-size:15px;color:var(--soft)}
.product .features li:last-child{border-bottom:none}
.product .features li::before{content:"—";position:absolute;left:0;color:var(--clay)}
.product .price-row{display:flex;align-items:baseline;gap:14px;margin:0 0 32px;font-family:'Libre Caslon Display',serif}
.product .price-row .num{font-size:48px;color:var(--walnut);font-weight:300;font-style:italic}
.product .price-row .num em{color:inherit}
.product .price-row .per{font-size:14px;color:var(--soft);font-family:'Mulish',sans-serif;letter-spacing:.3px}

/* ============================================
   PODCAST PAGE — specifieke componenten
============================================ */
/* Hero CTA — single Spotify arrow link */
.podcast-hero-cta{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:36px;
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;color:var(--walnut);
  border-bottom:1px solid var(--walnut);padding:0 0 3px;
  text-transform:lowercase;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
}
.podcast-hero-cta::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.podcast-hero-cta:hover{gap:16px;color:var(--clay);border-color:var(--clay)}
.podcast-hero-cta:hover::after{transform:translateX(4px)}

/* ============================================
   Featured-episode player (custom, vervangt Spotify iframe)
   ============================================ */
.padded.featured-player-section{padding:90px 0}

.player-card{
  position:relative;
  max-width:780px;
  margin:0 auto;
  background:var(--surface);
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 30px 60px -30px rgba(26,28,19,.22);
}
/* Clay accent-strip aan de bovenkant, geeft de kaart een merk-anker */
.player-card::before{
  content:"";
  position:absolute;top:0;left:0;right:0;
  height:4px;
  background:var(--clay);
}

/* --- Body (info-kolom) --- */
.player-card-body{
  padding:56px 60px;
  display:flex;
  flex-direction:column;
}
@media (max-width:820px){
  .player-card-body{padding:40px 32px}
}

/* Top-row: eyebrow links, groot drijvend nummer rechts */
.player-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  margin-bottom:8px;
}
/* Zero margin op de eyebrow binnen de top-row (had margin-bottom voor solo gebruik) */
.player-card-top .player-body-eyebrow{margin:8px 0 0 0}
.player-card-number{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:88px;
  line-height:.75;
  letter-spacing:-3px;
  color:var(--clay);
  opacity:.85;
  margin-top:-8px;
}
@media (max-width:820px){
  .player-card-number{font-size:64px;margin-top:-4px}
}

/* Actions-row: play CTA + secondary link, ruimtelijk verdeeld */
.player-card-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
  border-top:1px solid rgba(26,28,19,.08);
  padding-top:28px;
  margin-top:4px;
}
.player-card-secondary{
  font-family:'Mulish',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--walnut);
  text-decoration:none;
  border-bottom:1px solid rgba(26,28,19,.4);
  padding-bottom:2px;
  transition:color .2s,border-color .2s;
}
.player-card-secondary:hover{
  color:var(--clay);
  border-color:var(--clay);
}
.player-body-eyebrow{
  font-family:'Mulish',sans-serif;
  font-size:12px;font-weight:600;
  letter-spacing:2.2px;text-transform:uppercase;
  color:var(--clay);
  margin-bottom:16px;
}
.player-body-title{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:clamp(28px,3.6vw,40px);
  line-height:1.15;letter-spacing:-.5px;
  color:var(--walnut);
  margin:0 0 12px;
}
.player-body-meta{
  font-family:'Mulish',sans-serif;
  font-size:12px;letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--walnut);opacity:.55;
  margin-bottom:18px;
}
.player-body-meta .dot{margin:0 8px}
.player-body-desc{
  font-size:17px;line-height:1.65;
  color:var(--walnut);
  margin:0 0 26px;
  max-width:520px;
}

/* --- Waveform (decoratief) --- */
.player-waveform{
  display:block;
  width:100%;
  max-width:440px;
  height:42px;
  margin-bottom:28px;
  color:var(--clay);
  opacity:.7;
}
.player-waveform rect{
  fill:currentColor;
  transform-origin:center;
  animation:player-wave 1.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  .player-waveform rect{animation:none}
}
@keyframes player-wave{
  0%,100%{transform:scaleY(1)}
  50%{transform:scaleY(.45)}
}

/* --- Play CTA --- */
.player-play{
  display:inline-flex;
  align-items:center;
  gap:16px;
  background:var(--walnut);
  color:#F5EBDC;
  padding:14px 26px 14px 14px;
  border-radius:999px;
  align-self:flex-start;
  text-decoration:none;
  font-family:'Mulish',sans-serif;
  transition:background .25s,transform .25s;
}
.player-play-icon{
  width:46px;height:46px;
  border-radius:50%;
  background:var(--clay);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:transform .35s cubic-bezier(.2,.7,.3,1),background .25s;
}
.player-play-icon svg{width:18px;height:18px;margin-left:3px}
.player-play-text{display:flex;flex-direction:column;gap:2px;line-height:1.2;text-align:left}
.player-play-text .lbl{font-size:16px;font-weight:600;letter-spacing:.3px}
.player-play-text .sub{font-size:12px;font-weight:400;letter-spacing:.3px;opacity:.7}
.player-play-arrow{
  width:16px;height:16px;
  margin-left:6px;
  opacity:0;transform:translateX(-6px);
  transition:opacity .25s,transform .25s;
}
.player-play:hover{background:#000}
.player-play:hover .player-play-icon{transform:scale(1.08) rotate(-8deg);background:var(--clay-dark)}
.player-play:hover .player-play-arrow{opacity:.85;transform:translateX(0)}

/* Light follow CTA blok — warm beige om te onderscheiden van het donkere Instagram-blok eronder */
.podcast-follow{
  background:var(--bg-warm);
  color:var(--walnut);
  padding:120px 0;
  text-align:center;
}
.podcast-follow-inner{max-width:880px;margin:0 auto}
.podcast-follow h2.headline{margin-bottom:18px}
.podcast-follow p{color:var(--soft);max-width:520px;margin:0 auto 0;font-size:19px;line-height:1.65}

/* Stats-grid tussen tekst en CTA — geeft het blok structuur t.o.v. andere centered CTAs */
.podcast-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  max-width:720px;
  margin:56px auto 56px;
}
.podcast-stat{
  position:relative;
  padding:0 18px;
  text-align:center;
}
.podcast-stat:not(:last-child)::after{
  content:"";
  position:absolute;
  right:0;top:20%;bottom:20%;
  width:1px;
  background:rgba(26,28,19,.12);
}
.podcast-stat-num{
  display:block;
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:46px;
  line-height:1;
  color:var(--walnut);
  letter-spacing:-.5px;
  margin-bottom:10px;
}
.podcast-stat-num small{
  font-size:18px;
  margin-left:4px;
  letter-spacing:0;
  font-weight:400;
}
.podcast-stat-lbl{
  font-family:'Mulish',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--walnut);
  opacity:.55;
  display:block;
}
@media (max-width:680px){
  .podcast-stats{grid-template-columns:1fr;gap:32px;max-width:280px}
  .podcast-stat:not(:last-child)::after{
    right:20%;left:20%;top:auto;bottom:-16px;width:auto;height:1px;
  }
  .podcast-stat-num{font-size:38px}
}
.podcast-follow-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Mulish',sans-serif;
  font-size:16px;letter-spacing:.5px;color:var(--walnut);
  border-bottom:1px solid var(--walnut);padding:0 0 3px;
  text-transform:lowercase;
  transition:gap .35s cubic-bezier(.2,.7,.3,1);
}
.podcast-follow-cta::after{
  content:"";display:inline-block;width:18px;height:10px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none'><path d='M1 5 H16 M11 1 L16 5 L11 9' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.podcast-follow-cta:hover{gap:16px;color:var(--clay);border-color:var(--clay)}
.podcast-follow-cta:hover::after{transform:translateX(4px)}

/* ============================================
   EPISODE list (podcast page)
============================================ */
.episodes{display:flex;flex-direction:column;gap:0}

/* Slider met 5 paginas van 5 afleveringen — gebruikt transform ipv scroll
   zodat verticale scroll niet wordt onderschept */
.episode-slider{max-width:920px;margin:40px auto 0}
.episode-slider-viewport{
  overflow:hidden;
  width:100%;
}
.episode-slider-track{
  display:flex;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
  will-change:transform;
}
.episode-page{
  flex:0 0 100%;
  min-width:0;
}
.episode-page .episode{
  /* episode-styling blijft hetzelfde, geërfd van .episode */
}

/* Navigatie onder de slider */
.episode-slider-nav{
  display:flex;justify-content:center;align-items:center;
  gap:24px;margin-top:48px;
}
.ep-nav-btn{
  background:none;
  border:1px solid var(--line-dark);
  border-radius:50%;
  width:46px;height:46px;
  color:var(--walnut);
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;
  transition:all .25s ease;
}
.ep-nav-btn svg{width:18px;height:18px}
.ep-nav-btn:hover{background:var(--walnut);color:#fff;border-color:var(--walnut)}
.ep-nav-btn:disabled{opacity:.3;cursor:not-allowed}
.ep-nav-btn:disabled:hover{background:none;color:var(--walnut);border-color:var(--line-dark)}

.episode-pagination{
  display:flex;gap:10px;align-items:center;
}
.ep-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--line-dark);
  border:none;cursor:pointer;padding:0;
  transition:all .25s ease;
}
.ep-dot.active{
  background:var(--clay);
  width:28px;border-radius:99px;
}
.ep-dot:hover:not(.active){background:var(--soft)}
.episode{padding:24px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:80px 1fr auto;gap:32px;align-items:center;transition:padding-left .2s;color:var(--walnut)}
.episode:hover{padding-left:8px;color:var(--clay)}
.episode .num{font-family:'Libre Caslon Display',serif;font-style:italic;font-size:36px;color:var(--clay);font-weight:300}
.episode h3{font-family:'Mulish',sans-serif;font-size:17px;margin-bottom:6px;font-weight:500;line-height:1.4}
.episode .meta{font-size:12px;color:var(--soft);letter-spacing:.5px}
.episode .play{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  letter-spacing:1px;
  text-transform:lowercase;
}
.episode .play::before{
  content:"";
  width:28px;height:28px;
  border-radius:50%;
  background-color:var(--clay);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 5 L19 12 L7 19 Z' fill='%23fff'/></svg>");
  background-repeat:no-repeat;
  background-position:58% center;
  background-size:16px 16px;
  flex-shrink:0;
  transition:transform .25s cubic-bezier(.2,.7,.3,1), background-color .2s;
}
.episode:hover .play::before{transform:scale(1.08);background-color:var(--clay-dark)}

/* ============================================
   TIMELINE (over mij)
============================================ */
.timeline{max-width:760px;margin:60px auto 0;position:relative;padding-left:32px;border-left:1px solid var(--line-dark)}
.timeline-item{padding:0 0 48px 32px;position:relative}
.timeline-item::before{content:"";position:absolute;left:-37px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--clay);border:3px solid var(--bg)}
.timeline-item h4{font-family:'Libre Caslon Display',serif;font-weight:400;font-size:22px;color:var(--walnut);margin-bottom:8px}
.timeline-item .year{font-family:'Libre Caslon Display',serif;font-style:italic;font-size:14px;color:var(--clay);margin-bottom:6px;display:block}
.timeline-item p{color:var(--soft);font-size:15px}

/* ============================================
   TESTIMONIAL CARDS (klanten)
============================================ */
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.test{padding:0}
.test .avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--blush) 0%,var(--clay) 100%);margin-bottom:24px}
.test p{font-family:'Libre Caslon Display',serif;font-style:italic;font-weight:300;font-size:19px;line-height:1.5;color:var(--walnut);margin-bottom:18px}
.test .who{font-size:13px;color:var(--soft);letter-spacing:.5px}

/* ============================================
   BIG CTA (centered)
============================================ */
.bigcta{padding:140px 0;text-align:center}
.bigcta h2.headline{max-width:720px;margin:0 auto 24px}
.bigcta p{max-width:520px;margin:0 auto 40px;color:var(--soft)}

/* ============================================
   FAQ
============================================ */
.faq details{border-bottom:1px solid var(--line);padding:24px 0}
.faq summary{cursor:pointer;font-family:'Libre Caslon Display',serif;font-weight:400;font-size:23px;color:var(--walnut);list-style:none;padding-right:30px;position:relative;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);color:var(--clay);font-size:22px;font-weight:300;transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq summary:hover{color:var(--clay)}
.faq details p{margin-top:14px;color:var(--soft);font-size:19px;line-height:1.65}

/* ============================================
   CONTACT — modern split-screen met floating labels
============================================ */
.contact-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:min(820px, 92vh);
  width:100%;
}

/* --- Linker helft: foto edge-to-edge --- */
.contact-split-visual{
  position:relative;
  background-image:url('assets/images/foto-masha-1.jpg');
  background-size:cover;
  background-position:center 20%;
  min-height:520px;
  overflow:hidden;
}
.contact-split-visual::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(26,28,19,.6) 0%, rgba(26,28,19,.1) 40%, transparent 70%);
}
.contact-split-overlay{
  position:absolute;
  bottom:48px;left:48px;right:48px;
  z-index:2;
  color:#F5EBDC;
  display:flex;flex-direction:column;gap:6px;
}
.cs-tag-eyebrow{
  font-family:'Mulish',sans-serif;
  font-size:11px;font-weight:600;
  letter-spacing:2.4px;text-transform:uppercase;
  color:rgba(245,235,220,.7);
}
.cs-tag-name{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:38px;
  line-height:1;
  letter-spacing:-.8px;
  margin-top:4px;
}
.cs-tag-role{
  font-family:'Mulish',sans-serif;
  font-size:13px;
  letter-spacing:.5px;
  color:rgba(245,235,220,.8);
  margin-top:8px;
}

/* --- Rechter helft: formulier op warm beige --- */
.contact-split-form-wrap{
  background:var(--bg-warm);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:80px 64px;
}
/* Form-element styling — werkt voor mijn .contact-split-form én voor CF7's auto-generated
   <form class="wpcf7-form"> (CF7 zet zelf de form-tag, je kunt geen custom class meegeven) */
.contact-split-form,
.contact-split-form-wrap .wpcf7-form,
.contact-split-form-wrap form{
  width:100%;
  max-width:480px;
  display:flex;
  flex-direction:column;
  gap:48px;
  margin:0 auto;
}

/* --- Header van formulier --- */
.cs-header{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.cs-eyebrow{
  font-family:'Mulish',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--clay);
}
.cs-title{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:46px;
  line-height:1.1;
  letter-spacing:-1px;
  color:var(--walnut);
  margin:0;
}
.cs-title em{font-style:normal;color:var(--clay)}

/* --- Field-stack met floating labels --- */
.cs-fields{
  display:flex;
  flex-direction:column;
  gap:28px;
}
.cs-field{
  position:relative;
  border:none;
  padding:0;
  margin:0;
  min-width:0;
}
/* CF7 wrapt elke input in <span class="wpcf7-form-control-wrap"> — block maken zodat hij
   volledige breedte pakt en de input zich correct gedraagt */
.cs-field .wpcf7-form-control-wrap{display:block}

.cs-field input,
.cs-field textarea{
  font-family:'Mulish',sans-serif;
  font-size:17px;
  color:var(--walnut);
  background:transparent;
  border:none;
  border-bottom:1px solid rgba(26,28,19,.22);
  padding:24px 0 10px;
  width:100%;
  border-radius:0;
  transition:border-color .25s;
  -webkit-appearance:none;
  appearance:none;
  line-height:1.4;
}
.cs-field textarea{
  resize:vertical;
  min-height:80px;
}
/* Floating label — alleen voor direct child labels van .cs-field (NIET de topic-tags) */
.cs-field > label{
  position:absolute;
  left:0;
  top:24px;
  font-family:'Mulish',sans-serif;
  font-size:17px;
  color:rgba(26,28,19,.5);
  pointer-events:none;
  transition:all .25s cubic-bezier(.2,.7,.3,1);
  transform-origin:left top;
}
.cs-field input:focus,
.cs-field textarea:focus{
  outline:none;
  border-bottom-color:var(--clay);
}
/* Floating label: omhoog bewegen bij focus of als veld gevuld is
   :has() laat het werken of de input nu direct kind is óf in een CF7 wrapper-span zit */
.cs-field:has(> input:focus, > .wpcf7-form-control-wrap input:focus,
              > textarea:focus, > .wpcf7-form-control-wrap textarea:focus) > label,
.cs-field:has(> input:not(:placeholder-shown), > .wpcf7-form-control-wrap input:not(:placeholder-shown),
              > textarea:not(:placeholder-shown), > .wpcf7-form-control-wrap textarea:not(:placeholder-shown)) > label{
  top:0;
  font-size:11px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--clay);
  font-weight:600;
}

/* --- Tags fieldset --- */
.cs-field--tags{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.cs-field--tags legend{
  font-family:'Mulish',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--clay);
  padding:0;
}
/* Onderwerp-tags — inline magazine category-nav
   Structuur: <label><input type="radio"><span>text</span></label>
   Werkt ook met CF7's <span class="wpcf7-list-item"><label>...<span class="wpcf7-list-item-label">...</span></label></span> */
.topic-tags{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 26px;
}
/* CF7 wrappers transparant maken — display:contents haalt ze uit de layout */
.topic-tags .wpcf7-form-control-wrap,
.topic-tags .wpcf7-form-control{display:contents}
.topic-tags .wpcf7-list-item{display:inline-block;margin:0}

.topic-tags label{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding:2px 0 6px;
  cursor:pointer;
}
.topic-tags input[type="radio"]{
  position:absolute;
  width:1px;height:1px;
  opacity:0;
  pointer-events:none;
}
/* De tekst — eigen <span> of CF7's .wpcf7-list-item-label */
.topic-tags label > span,
.topic-tags .wpcf7-list-item-label{
  font-family:'Mulish',sans-serif;
  font-size:16px;
  font-weight:400;
  letter-spacing:.2px;
  color:rgba(26,28,19,.4);
  transition:color .2s;
}
.topic-tags label:hover > span,
.topic-tags label:hover .wpcf7-list-item-label{color:var(--walnut)}
.topic-tags input[type="radio"]:checked + span,
.topic-tags input[type="radio"]:checked + .wpcf7-list-item-label{
  color:var(--walnut);
  font-weight:600;
}
/* Clay onderlijntje onder de geselecteerde tag — via :has() op de label */
.topic-tags label:has(input:checked)::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:1px;
  background:var(--clay);
}
.topic-tags label:has(input:focus-visible){
  outline:2px solid var(--clay);
  outline-offset:3px;
  border-radius:2px;
}
.cs-field--tags .topic-tags{padding:0}

/* --- Footer: submit + note inline --- */
.cs-footer{
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
  padding-top:12px;
}
/* Submit-knop — werkt voor zowel <button class="cs-submit"> als CF7's
   <input type="submit" class="cs-submit"> (CF7 input kan geen pseudo-elements/SVG hebben,
   dus de pijl zit als background-image) */
.cs-submit,
.contact-split .wpcf7-submit{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--walnut) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M6 12 H18 M13 7 L18 12 L13 17' stroke='%23F5EBDC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 22px center;
  background-size:16px 16px;
  color:#F5EBDC;
  font-family:'Mulish',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  border:none;
  padding:18px 50px 18px 28px;
  border-radius:999px;
  cursor:pointer;
  transition:background-color .25s, background-position .25s, transform .12s;
  flex-shrink:0;
  -webkit-appearance:none;
  appearance:none;
  line-height:1;
}
/* SVG inside button (huidige HTML) — verberg, gebruik background-image als source of truth */
.cs-submit svg{display:none}
.cs-submit:hover,
.contact-split .wpcf7-submit:hover{background-color:#000;background-position:right 16px center}
.cs-submit:active,
.contact-split .wpcf7-submit:active{transform:scale(.97)}

.cs-note{
  font-family:'Mulish',sans-serif;
  font-size:13px;
  line-height:1.55;
  color:var(--soft);
  margin:0;
  max-width:280px;
}
.cs-note a{
  color:var(--walnut);
  text-decoration:none;
  border-bottom:1px solid rgba(26,28,19,.35);
  transition:color .2s,border-color .2s;
}
.cs-note a:hover{color:var(--clay);border-color:var(--clay)}

/* ============================================
   KLANTEN — featured stories (magazine profiles) + voices wall + cta trio
============================================ */

/* Body-tekst op klanten van 17 naar 19px (page-hero lead, story body,
   product-card desc, hero photo caption). Scoped via .page-klanten body class
   zodat andere pagina's hun originele 17px houden. */
.page-klanten .lead,
.page-klanten .client-story-body p,
.page-klanten .pc-desc,
.page-klanten .khp-cap-role{
  font-size:19px;
}

/* --- Hero photo strip (Masha als visuele anchor onder de page-hero, met parallax) --- */
.klanten-hero-photo{
  position:relative;
  width:100%;
  height:80vh;
  min-height:600px;
  overflow:hidden;
  margin-bottom:0;
  background:var(--bg-cream); /* fallback achter het beeld */
}
/* Beeld vult container exact. Parallax via background-position-y shift
   (visueel sterker effect dan transform, en we kunnen de range strak controleren
   zodat de top van Masha's hoofd altijd in beeld blijft). */
.khp-image{
  position:absolute;
  inset:0;
  background-image:url('assets/images/masha-cover.jpg');
  background-size:cover;
  background-position-x:center;
  background-position-y:var(--khp-bgy, 0%);
  will-change:background-position;
}
.klanten-hero-photo::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(26,28,19,.45) 0%, transparent 50%);
  z-index:1;
}
.khp-caption{z-index:2}
.khp-caption{
  position:absolute;
  left:48px;bottom:36px;
  color:#F5EBDC;
  z-index:2;
  display:flex;flex-direction:column;gap:4px;
}
.khp-cap-eyebrow{
  font-family:'Mulish',sans-serif;
  font-size:11px;font-weight:600;
  letter-spacing:2.2px;text-transform:uppercase;
  color:rgba(245,235,220,.7);
}
.khp-cap-name{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:52px;
  line-height:1;
  letter-spacing:-1px;
  margin-top:4px;
}
.khp-cap-role{
  font-family:'Mulish',sans-serif;
  font-size:17px;
  letter-spacing:.6px;
  color:rgba(245,235,220,.85);
  margin-top:10px;
}

/* --- Story-block: 2-koloms foto + body, alternerend gespiegeld --- */
.client-story-section{padding:100px 0}
.client-story{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:72px;
  align-items:center;
  max-width:1140px;
  margin:0 auto;
}
.client-story--flip{
  grid-template-columns:7fr 5fr;
}
.client-story--flip .client-story-photo{order:2}
.client-story--flip .client-story-body{order:1}

/* Quote-tile (vervangt de foto): grote italic Caslon pull-quote in gevuld vlak.
   Geen foto's nodig → privacy-vriendelijk. Drie kleurvarianten voor visueel ritme. */
.client-story-quote-tile{
  position:relative;
  aspect-ratio:4/5;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:56px 48px;
  border-radius:2px;
  overflow:hidden;
}
.client-story-quote-tile--cream{
  background:var(--bg-cream);
  color:var(--walnut);
}
.client-story-quote-tile--white{
  background:#fff;
  color:var(--walnut);
  box-shadow:0 30px 60px -36px rgba(26,28,19,.18);
}
.client-story-quote-tile--walnut{
  background:var(--walnut);
  color:#F5EBDC;
}

/* Typewriter-effect op Irene's quote-tile: chars fade in + blinkende cursor.
   .qt-text wordt relative-anchor voor de absoluut gepositioneerde cursor. */
.client-story-quote-tile--typed .qt-text{
  position:relative;
}
.client-story-quote-tile--typed .qt-text .char{
  transition:opacity .12s ease;
}
/* .word wikkelt elk woord met white-space:nowrap zodat punctuatie nooit op een
   nieuwe regel kan vallen (browser kan alleen breken op de spaces tussen .word's) */
.client-story-quote-tile--typed .qt-text .word{
  white-space:nowrap;
}
.typewriter-cursor{
  position:absolute;
  width:3px;
  height:1.05em;
  background:var(--clay);
  pointer-events:none;
  animation:typewriter-blink .65s steps(2) infinite;
}
@keyframes typewriter-blink{
  0%, 49%{opacity:1}
  50%, 100%{opacity:0}
}
.typewriter-cursor--done{
  animation:none;
  opacity:0;
  transition:opacity .6s ease;
}

/* Mini-variant: kleinere quote-tile voor de 2-koloms mini-stories sectie */
.client-story-quote-tile--mini{
  aspect-ratio:1/1;
  padding:34px 30px;
}
.client-story-quote-tile--mini .qt-mark{
  font-size:96px;
  margin-bottom:-22px;
}
.client-story-quote-tile--mini .qt-text{
  font-size:20px;
  line-height:1.35;
  margin:0 0 22px;
}

/* Mini-section: 2 compacte cards naast elkaar (Tim + Lieke) */
.client-mini-section{padding:80px 0}
.client-mini-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  max-width:1140px;
  margin:0 auto;
}
.client-mini{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.client-mini-body{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.client-mini-body p{
  font-size:16px;
  line-height:1.65;
  color:var(--walnut);
  margin:0;
}
.client-mini-body .client-story-tools{
  margin-top:4px;
  padding-top:18px;
}

/* Decoratief openings-aanhalingsteken, groot, drijvend linksboven */
.client-story-quote-tile .qt-mark{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:140px;
  line-height:.6;
  color:var(--clay);
  display:block;
  margin-bottom:-30px;
  margin-left:-8px;
  user-select:none;
}
.client-story-quote-tile--walnut .qt-mark{color:var(--blush)}

.client-story-quote-tile .qt-text{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-style:italic;
  font-size:28px;
  line-height:1.3;
  letter-spacing:-.3px;
  margin:0 0 32px;
}
.client-story-quote-tile .qt-cite{
  font-family:'Mulish',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:currentColor;
  opacity:.6;
}

.client-story-body{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.client-story-eyebrow{
  font-family:'Mulish',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2.2px;
  text-transform:uppercase;
  color:var(--clay);
}
.client-story-body p{
  font-size:17px;
  line-height:1.7;
  color:var(--walnut);
  margin:0;
}
.client-story-body p + p{margin-top:0}

/* Inline mid-quote tussen paragraven — kernzin als pull-quote met clay accent */
.client-story-body .story-mid-quote{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-weight:300;
  font-size:26px;
  line-height:1.4;
  letter-spacing:-.2px;
  color:var(--walnut);
  margin:14px 0 14px 24px;
  padding:6px 0 6px 22px;
  border-left:2px solid var(--clay);
}

/* Tools-strip onderaan: wat hielp + product-tags */
.client-story-tools{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px 18px;
  margin-top:18px;
  padding-top:24px;
  border-top:1px solid rgba(26,28,19,.1);
}
.client-story-tools .tools-label{
  font-family:'Mulish',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--soft);
}
.client-story-tools .tool-tag{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-size:18px;
  color:var(--clay);
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:1px;
  transition:border-color .2s, color .2s;
}
.client-story-tools .tool-tag:hover{
  color:var(--clay-dark);
  border-bottom-color:var(--clay);
}

/* --- Voices wall: uniforme 2-koloms grid, alle quotes zelfde typografie --- */
.voices-wall-section{background:var(--surface)}
.voices-wall{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px 80px;
  margin-top:48px;
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
}
.voice{display:flex;flex-direction:column;gap:18px}
.voice p{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-style:italic;
  font-size:22px;
  line-height:1.5;
  letter-spacing:-.2px;
  color:var(--walnut);
  margin:0;
}
.voice-who{
  font-family:'Mulish',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--soft);
  display:block;
}

/* --- Producten-blok krijgt cream bg (de product-trio markup zelf is generiek
       in styles.css gedefinieerd, hergebruikt van homepage en podcast) --- */
.klanten-cta-section{background:var(--bg-cream)}

/* ============================================
   OVER MIJ — editorial profile in drie hoofdstukken
============================================ */

/* --- Hero photo strip (zelfde patroon als klanten, eigen selectors) --- */
.over-hero-photo{
  position:relative;
  width:100%;
  height:80vh;
  min-height:600px;
  overflow:hidden;
  background:var(--bg-cream);
}
.ohp-image{
  position:absolute;
  inset:0;
  background-image:url('assets/images/foto-masha-1.jpg');
  background-size:cover;
  background-position-x:65%;
  background-position-y:var(--ohp-bgy, 5%);
  will-change:background-position;
}
.over-hero-photo::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(26,28,19,.55) 0%, rgba(26,28,19,.1) 40%, transparent 70%);
  z-index:1;
}
.ohp-caption{
  position:absolute;
  bottom:48px;left:48px;right:48px;
  z-index:2;
  color:#F5EBDC;
  display:flex;flex-direction:column;gap:4px;
}
.ohp-cap-name{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:52px;
  line-height:1;
  letter-spacing:-1px;
}
.ohp-cap-role{
  font-family:'Mulish',sans-serif;
  font-size:17px;
  letter-spacing:.6px;
  color:rgba(245,235,220,.85);
  margin-top:10px;
}

/* --- Chapter sections — 2-koloms quote-tile + body, gespiegeld varieert --- */
.over-chapter-section{padding:100px 0}
.over-chapter{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:72px;
  align-items:center;
  max-width:1140px;
  margin:0 auto;
}
.over-chapter--flip{
  grid-template-columns:7fr 5fr;
}
.over-chapter--flip .client-story-quote-tile{order:2}
.over-chapter--flip .over-chapter-body{order:1}

.over-chapter-body{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.over-chapter-title{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:54px;
  line-height:1.15;
  letter-spacing:-1px;
  color:var(--walnut);
  margin:0;
}
.over-chapter-title em{font-style:normal;color:var(--clay)}
.over-chapter-body p{
  font-size:19px;
  line-height:1.7;
  color:var(--walnut);
  margin:0;
}
.over-chapter-body .story-mid-quote{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-style:italic;
  font-size:26px;
  line-height:1.4;
  letter-spacing:-.2px;
  color:var(--walnut);
  margin:14px 0 14px 24px;
  padding:6px 0 6px 22px;
  border-left:2px solid var(--clay);
}

/* --- Timeline herontworpen: grote Caslon italic jaartallen, clay accent-lijn --- */
.over-timeline-section{padding:100px 0}
.over-timeline{
  display:flex;
  flex-direction:column;
  gap:60px;
  max-width:900px;
  margin:60px auto 0;
  position:relative;
}
.over-timeline::before{
  content:"";
  position:absolute;
  left:160px;
  top:20px;
  bottom:20px;
  width:1px;
  background:rgba(26,28,19,.15);
}
.ot-item{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:56px;
  position:relative;
  align-items:start;
}
.ot-item::before{
  content:"";
  position:absolute;
  left:153px;
  top:18px;
  width:15px;
  height:15px;
  border-radius:50%;
  background:var(--clay);
  z-index:1;
  box-shadow:0 0 0 6px var(--bg-cream);
}
.ot-year{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-weight:300;
  font-size:50px;
  line-height:1;
  letter-spacing:-1.5px;
  color:var(--walnut);
  text-align:right;
  padding-right:36px;
  margin-top:-4px;
}
.ot-body h4{
  font-family:'Libre Caslon Display',serif;
  font-weight:400;
  font-size:24px;
  line-height:1.2;
  color:var(--walnut);
  margin:0 0 10px;
  letter-spacing:-.3px;
}
.ot-body p{
  font-size:17px;
  line-height:1.65;
  color:var(--walnut);
  margin:0;
  max-width:540px;
}

/* --- Manifest sectie — drie genummerde statements --- */
.over-manifest-section{padding:120px 0 80px}
.over-chapter-title--big{
  font-size:64px;
  letter-spacing:-1.4px;
  margin-bottom:8px;
}
.over-manifest{
  display:flex;
  flex-direction:column;
  gap:56px;
  margin-top:64px;
}
.om-item{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:28px;
  align-items:start;
}
.om-num{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-weight:300;
  font-size:64px;
  line-height:.8;
  color:var(--clay);
  letter-spacing:-2px;
}
.om-content h3{
  font-family:'Libre Caslon Display',serif;
  font-weight:300;
  font-size:34px;
  line-height:1.1;
  color:var(--walnut);
  margin:0 0 14px;
  letter-spacing:-.4px;
}
.om-content p{
  font-size:18px;
  line-height:1.65;
  color:var(--walnut);
  margin:0;
}

/* --- Photo-duo blok: twee portretten naast elkaar als visueel rustpunt.
   Slide-in vanaf buiten naar de rust-positie tijdens scroll. --- */
.over-photo-duo{
  padding:40px 0 80px;
  overflow:hidden; /* voorkomt horizontale scroll terwijl foto's nog buiten beeld staan */
}
.opd-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  max-width:1140px;
  margin:0 auto;
}
.opd-photo{
  aspect-ratio:3/4;
  background-size:cover;
  background-position:center;
  border-radius:2px;
  will-change:transform;
  /* Initiële positie: ver naar buiten geschoven. JS overruled dit tijdens scroll;
     als JS uit staat (no-JS / reduced motion) staan ze gewoon op hun plek. */
}
.opd-photo-a{transform:translateX(var(--opd-slide-a, 0))}
.opd-photo-b{transform:translateX(var(--opd-slide-b, 0))}
.opd-photo-a{background-image:url('assets/images/masha-home-1.jpg')}
.opd-photo-b{background-image:url('assets/images/masha-home-3.jpg')}

/* --- Credentials / "Mijn achtergrond" blok: foto links + bullet list rechts --- */
.over-credentials-section{padding:100px 0}
.ocred-grid{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:72px;
  align-items:center;
  max-width:1140px;
  margin:0 auto;
}
.ocred-photo{
  aspect-ratio:4/5;
  background-image:url('assets/images/masha-home-2.jpg');
  background-size:cover;
  background-position:center;
  border-radius:2px;
}
.ocred-body{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.ocred-body p{
  font-size:19px;
  line-height:1.7;
  color:var(--walnut);
  margin:0;
}
.ocred-list{
  list-style:none;
  padding:0;
  margin:8px 0 0;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.ocred-list li{
  position:relative;
  padding-left:36px;
  font-size:17px;
  line-height:1.55;
  color:var(--walnut);
}
.ocred-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.7em;
  width:0;
  height:1px;
  background:var(--clay);
  transition:width .7s cubic-bezier(.2,.7,.3,1);
}
.ocred-list.in-view li::before{width:22px}
.ocred-list.in-view li:nth-child(1)::before{transition-delay:.05s}
.ocred-list.in-view li:nth-child(2)::before{transition-delay:.15s}
.ocred-list.in-view li:nth-child(3)::before{transition-delay:.25s}
.ocred-list.in-view li:nth-child(4)::before{transition-delay:.35s}
.ocred-list.in-view li:nth-child(5)::before{transition-delay:.45s}
.ocred-list.in-view li:nth-child(6)::before{transition-delay:.55s}

/* --- Masha buiten kantoor: persoonlijke unplugged sectie, foto rechts --- */
.over-unplugged-section{padding:100px 0}
.ounp-grid{
  display:grid;
  grid-template-columns:7fr 5fr;
  gap:72px;
  align-items:center;
  max-width:1140px;
  margin:0 auto;
}
.ounp-body{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.ounp-body p{
  font-size:19px;
  line-height:1.7;
  color:var(--walnut);
  margin:0;
}
.ounp-photo{
  aspect-ratio:4/5;
  background-image:url('assets/images/masha-home-4.jpg');
  background-size:cover;
  background-position:center;
  border-radius:2px;
}

/* --- Persoonlijke afsluiting (letter signature) — gecentreerd met clay anchor --- */
.over-signature-section{
  padding:80px 0 120px;
  text-align:center;
}
.over-signature-section::before{
  content:"";
  display:block;
  width:60px;
  height:1px;
  background:var(--clay);
  margin:0 auto 40px;
}
.over-sig-closer{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-weight:300;
  font-size:22px;
  color:var(--soft);
  margin:0 0 18px;
}
.over-sig-name{
  font-family:'Libre Caslon Display',serif;
  font-style:italic;
  font-weight:300;
  font-size:52px;
  letter-spacing:-1px;
  color:var(--walnut);
  margin:0;
  line-height:1.05;
}
.over-sig-role{
  font-family:'Mulish',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--soft);
  margin:16px 0 0;
}

/* ============================================
   RESPONSIVE
============================================ */
@media (max-width: 880px){
  nav ul{display:none}
  .stats-grid{grid-template-columns:1fr;gap:40px}
  .image-cards{grid-template-columns:1fr;gap:40px}
  .image-card:nth-child(2),.image-card:nth-child(3){margin-top:0}
  .split{grid-template-columns:1fr;gap:40px}
  .split.flip .split-text{order:0}
  .spotlight{grid-template-columns:1fr}
  .cta-photo{grid-template-columns:1fr}
  .cta-photo .img{min-height:300px}
  .podcast-block{grid-template-columns:1fr;gap:40px}
  .product{grid-template-columns:1fr;gap:32px;padding:60px 0}
  .product.flip .product-text{order:0}
  .test-grid{grid-template-columns:1fr;gap:32px}
  .insta-grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
  .hero-photo{height:75vh;min-height:560px}
  .hero-text{padding:60px 24px 40px}
  .brand img{height:42px}
  footer.site .brand img{height:52px}
  .episode{grid-template-columns:50px 1fr;gap:18px}
  .episode .play{grid-column:1/-1;justify-self:start;margin-top:6px}
  .spotlight .body{padding:48px 32px}
  .cta-photo .body{padding:48px 32px}
  /* Contact split — stack visual boven form op mobiel */
  .contact-split{grid-template-columns:1fr;min-height:auto}
  .contact-split-visual{min-height:340px;aspect-ratio:4/3}
  .contact-split-overlay{bottom:28px;left:28px;right:28px}
  .cs-tag-name{font-size:30px}
  .contact-split-form-wrap{padding:60px 28px}
  .cs-title{font-size:36px}
  .cs-title br{display:none}
  /* Klanten — stack op mobiel */
  .klanten-hero-photo{height:38vh;min-height:280px}
  .khp-caption{left:24px;bottom:24px}
  .khp-cap-name{font-size:38px}
  .khp-cap-role{font-size:15px}
  .client-story{grid-template-columns:1fr;gap:36px}
  .client-story--flip{grid-template-columns:1fr}
  .client-story--flip .client-story-quote-tile{order:0}
  .client-story--flip .client-story-body{order:1}
  .client-story-quote-tile{aspect-ratio:auto;padding:40px 32px}
  .client-story-quote-tile .qt-mark{font-size:100px;margin-bottom:-20px}
  .client-story-quote-tile .qt-text{font-size:24px}
  .client-story-tools{gap:12px 14px}
  .client-story-body .story-mid-quote{font-size:22px;margin-left:0;padding-left:18px}
  /* Mini-grid stackt op mobiel */
  .client-mini-grid{grid-template-columns:1fr;gap:48px}
  .client-story-quote-tile--mini{padding:32px 28px}
  .client-story-quote-tile--mini .qt-text{font-size:21px}
  .voices-wall{grid-template-columns:1fr;gap:48px}
  .voice p{font-size:20px}
  /* Over-mij — stack chapter blocks, timeline en manifest op mobiel */
  .over-hero-photo{height:60vh;min-height:440px}
  .ohp-caption{left:24px;right:24px;bottom:28px}
  .ohp-cap-name{font-size:38px}
  .over-chapter{grid-template-columns:1fr;gap:40px}
  .over-chapter--flip{grid-template-columns:1fr}
  .over-chapter--flip .client-story-quote-tile{order:0}
  .over-chapter--flip .over-chapter-body{order:1}
  .over-chapter-title{font-size:34px}
  .over-chapter-title--big{font-size:38px}
  .over-timeline{margin-top:44px;gap:44px}
  .over-timeline::before{display:none}
  .ot-item{grid-template-columns:1fr;gap:8px}
  .ot-item::before{display:none}
  .ot-year{text-align:left;padding-right:0;font-size:38px}
  .over-manifest{gap:44px;margin-top:48px}
  .om-item{grid-template-columns:64px 1fr;gap:18px}
  .om-num{font-size:48px}
  .om-content h3{font-size:26px}
  .over-signature-section{padding:40px 0 100px}
  .over-sig-name{font-size:42px}
  /* Over-mij nieuwe blokken op mobiel */
  .opd-grid{grid-template-columns:1fr;gap:16px}
  .opd-photo{aspect-ratio:4/3;max-height:480px}
  .ocred-grid{grid-template-columns:1fr;gap:40px}
  .ocred-photo{aspect-ratio:4/3;max-height:480px}
  .ounp-grid{grid-template-columns:1fr;gap:40px}
  .ounp-photo{aspect-ratio:4/3;max-height:480px;order:0}
  .ounp-body{order:1}
}
