/* =======================================================================
   Emigratieplan -- Salespage stylesheet v4
   Aligned with emigratieplan.nl root: Playfair Display + Source Sans 3
   ======================================================================= */

:root {
  --cream:        #f6f5f2;
  --cream-warm:   #efeae0;
  --brown:        #382c27;
  --brown-soft:   #5a4a42;
  --brown-mute:   #7a6e69;
  --orange:       #ba5229;
  --orange-deep:  #9a4322;
  --olive:        #5a6b3e;
  --border:       #dedad4;

  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans:  'Source Sans 3', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --max-width: 1240px;
  --reading-width: 720px;
  --section-pad-y: 120px;
  --header-h: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; padding: 0; }

body {
  background: var(--cream);
  color: var(--brown);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
}

/* Mobiel vangnet: voorkom horizontale overflow zonder sticky te breken.
   overflow-x: clip maakt geen scroll-container (sticky header blijft werken). */
html, body { overflow-x: clip; max-width: 100%; }
/* Anker-navigatie landt onder de sticky header i.p.v. eronder verdwijnen. */
html { scroll-padding-top: 76px; }
body { -webkit-tap-highlight-color: rgba(186, 82, 41, 0.12); }
svg, video, iframe, table { max-width: 100%; }
.ep-section, .ep-container, .ep-narrow, .ep-narrow-inline { min-width: 0; }

/* Scroll progress */
#ep-scroll-progress {
  position: fixed; top: 0; left: 0;
  height: 2px; width: 0;
  background: var(--orange);
  z-index: 100;
  transition: width 0.05s linear;
}

/* Side nav (desktop only) */
#ep-section-nav {
  position: fixed; right: 24px; top: 50%;
  transform: translateY(-50%);
  z-index: 80;
}
#ep-section-nav ul {
  list-style: none; padding: 16px 14px; margin: 0;
  background: rgba(246, 245, 242, 0.88);
  backdrop-filter: blur(6px);
  border: 1px solid var(--border);
  border-radius: 4px;
}
#ep-section-nav li { margin: 6px 0; }
#ep-section-nav a {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 500;
  color: var(--brown-mute);
  transition: color 0.15s ease;
}
#ep-section-nav a .dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--brown-mute);
  flex-shrink: 0;
  transition: background 0.15s ease, transform 0.15s ease;
}
#ep-section-nav a .lbl {
  opacity: 0; max-width: 0;
  overflow: hidden; white-space: nowrap;
  transition: opacity 0.2s ease, max-width 0.2s ease;
}
#ep-section-nav:hover a .lbl { opacity: 1; max-width: 160px; }
#ep-section-nav a:hover { color: var(--brown); }
#ep-section-nav a.is-active { color: var(--orange); }
#ep-section-nav a.is-active .dot {
  background: var(--orange); transform: scale(1.4);
}

/* Layout */
.ep-container { max-width: var(--max-width); margin: 0 auto; padding: 0 32px; }
.ep-narrow { max-width: var(--reading-width); margin: 0 auto; }
.ep-narrow-inline { max-width: var(--reading-width); }
.ep-section { padding: var(--section-pad-y) 0; border-top: 1px solid var(--border); }
.ep-section--alt { background: var(--cream-warm); }

/* Subtiele downward flow-cue tussen secties */
.ep-flow-cue {
  display: flex;
  justify-content: center;
  height: 0;
  position: relative;
  z-index: 3;
  pointer-events: none;
}
.ep-flow-cue::after {
  content: "";
  position: relative;
  top: -10px;
  width: 14px; height: 14px;
  border-right: 2.5px solid var(--orange);
  border-bottom: 2.5px solid var(--orange);
  transform: rotate(45deg);
  opacity: 0.75;
}

/* Typography */
.ep-eyebrow {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--orange);
  margin: 0 0 24px;
}
.ep-eyebrow--center { text-align: center; }

.ep-h1-display {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--brown);
  margin: 0 0 32px;
}
.ep-h1-display .ep-accent {
  color: var(--orange);
  font-style: italic;
  font-weight: 700;
}

.ep-h2 {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(28px, 3.5vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.005em;
  color: var(--brown);
  margin: 0 0 32px;
}
.ep-h2--center { text-align: center; }

.ep-h3 {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.2;
  margin: 32px 0 16px;
  color: var(--brown);
}

.ep-lead {
  font-size: 19px;
  line-height: 1.55;
  color: var(--brown-soft);
  margin: 0 0 32px;
}
.ep-lead--center { text-align: center; margin-left: auto; margin-right: auto; }
.ep-body-lg { font-size: 18px; line-height: 1.65; margin: 0 0 24px; color: var(--brown); }

/* Header */
.ep-header {
  position: sticky; top: 0;
  background: rgba(246, 245, 242, 0.94);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
  z-index: 70;
  height: var(--header-h);
}
.ep-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 32px;
  max-width: var(--max-width);
  margin: 0 auto;
  height: 100%;
}
.ep-logo {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--brown);
}
.ep-logo__mark {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 32px; height: 32px;
  background: var(--brown);
  color: var(--cream);
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 13px;
  border-radius: 2px;
}
.ep-logo__wordmark { color: var(--brown); }
.ep-logo__accent { color: var(--orange); }

.ep-nav-top {
  display: flex; align-items: center; gap: 20px;
  font-size: 14px; font-weight: 500;
}
.ep-nav-top a:not(.ep-btn) {
  color: var(--brown-soft);
  transition: color 0.15s ease;
}
.ep-nav-top a:not(.ep-btn):hover { color: var(--orange); }

/* Hamburger */
.ep-hamburger {
  display: none;
  width: 32px; height: 32px;
  position: relative;
  z-index: 75;
}
.ep-hamburger span {
  position: absolute;
  left: 4px; right: 4px;
  height: 2px;
  background: var(--brown);
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.ep-hamburger span:nth-child(1) { top: 9px; }
.ep-hamburger span:nth-child(2) { top: 15px; }
.ep-hamburger span:nth-child(3) { top: 21px; }

/* Mobile drawer */
.ep-mobile-drawer {
  position: fixed;
  top: 0; right: 0;
  height: 100vh;
  width: min(88vw, 360px);
  background: var(--cream);
  z-index: 90;
  padding: 80px 32px 32px;
  transform: translateX(100%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border);
  overflow-y: auto;
}
.ep-mobile-drawer.is-open { transform: translateX(0); }
.ep-mobile-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(56, 44, 39, 0.4);
  z-index: 85;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.ep-mobile-backdrop.is-open { opacity: 1; pointer-events: auto; }
.ep-mobile-close {
  position: absolute;
  top: 16px; right: 20px;
  font-size: 32px;
  color: var(--brown);
  line-height: 1;
  background: none;
  border: none;
  cursor: pointer;
}
.ep-mobile-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ep-mobile-link {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 700;
  color: var(--brown);
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  transition: color 0.15s ease;
}
.ep-mobile-link:hover { color: var(--orange); }
.ep-mobile-cta { margin-top: 24px; }

/* Buttons */
.ep-btn {
  display: inline-flex;
  align-items: center; justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 600;
  text-align: center;
  border-radius: 2px;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  cursor: pointer;
  border: none;
}
.ep-btn--primary { background: var(--brown); color: var(--cream); }
.ep-btn--primary:hover { background: var(--orange); color: white; }
.ep-btn--accent { background: var(--orange); color: white; }
.ep-btn--accent:hover { background: var(--orange-deep); }
.ep-btn--ghost {
  background: transparent;
  color: var(--brown);
  border: 1px solid var(--brown);
}
.ep-btn--ghost:hover { background: var(--brown); color: var(--cream); }
.ep-btn--sm { padding: 9px 16px; font-size: 13px; }
.ep-btn--full { display: flex; width: 100%; }

.ep-cta-row {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

/* Anchor link helper */
.ep-pkg-link {
  color: var(--orange);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.ep-pkg-link:hover { color: var(--orange-deep); }

/* Inline link on a claim that has its detail elsewhere on the page.
   Inherits the surrounding colour so it never shouts, but stays underlined. */
.ep-inline-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--orange);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 0.15s ease;
}
.ep-inline-link:hover { color: var(--orange-deep); text-decoration-color: var(--orange-deep); }

/* Hero */
.ep-hero { padding-top: 80px; border-top: none; }
.ep-hero__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: start;
}
.ep-hero__copy { max-width: 720px; }
.ep-hero__ctas {
  display: flex; gap: 12px;
  margin-top: 16px; flex-wrap: wrap;
}
.ep-hero__belofte {
  align-self: center;
  background: var(--cream-warm);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 34px 34px 28px;
  box-shadow: 0 26px 64px -30px rgba(56, 44, 39, 0.45), 0 2px 8px rgba(56, 44, 39, 0.06);
}
.ep-belofte__eyebrow {
  margin: 0 0 14px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orange);
}
.ep-belofte__claim {
  margin: 0 0 24px;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(24px, 2.6vw, 31px);
  line-height: 1.25;
  color: var(--brown);
}
.ep-belofte__list {
  list-style: none;
  margin: 0;
  padding: 24px 0;
  border-top: 1px solid var(--border);
  display: grid;
  gap: 13px;
}
.ep-belofte__list li {
  position: relative;
  padding-left: 28px;
  font-size: 16px;
  line-height: 1.4;
  color: var(--brown);
}
.ep-belofte__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 3px;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--orange);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E") center / 11px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.ep-belofte__guarantee {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding-top: 22px;
  border-top: 1px solid var(--border);
  font-size: 14px;
  line-height: 1.45;
  color: var(--brown-soft);
}
.ep-belofte__guarantee svg { flex: none; width: 22px; height: 22px; color: var(--orange); margin-top: 1px; }
.ep-belofte__guarantee strong { color: var(--brown); font-weight: 700; }
.ep-hero__stats {
  align-self: start;
  background: var(--cream-warm);
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
}
.ep-hero__stats-title {
  margin: 0;
  padding: 16px 26px 12px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brown-mute);
  border-bottom: 1px solid var(--border);
}
.ep-stat-row {
  display: grid;
  grid-template-columns: 28px auto 1fr;
  gap: 18px;
  align-items: center;
  padding: 20px 26px;
  border-bottom: 1px solid var(--border);
}
.ep-stat-row:last-child { border-bottom: none; }
.ep-stat-row__icon { width: 26px; height: 26px; color: var(--orange); }
.ep-stat-row__icon svg { width: 100%; height: 100%; display: block; }
.ep-stat-row__num {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 40px;
  line-height: 1;
  color: var(--brown);
  letter-spacing: -0.02em;
  white-space: nowrap;
  text-align: left;
}
.ep-stat-row__unit {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.38em;
  color: var(--brown-mute);
  margin-left: 3px;
}
.ep-stat-row__cap {
  font-size: 14px;
  line-height: 1.4;
  color: var(--brown-mute);
}
/* Generic collapsible pattern (patroon + pillar) */
.ep-collapsible {
  border: 1px solid var(--border);
  background: var(--cream);
  border-radius: 4px;
  margin: 16px 0;
  overflow: hidden;
}
.ep-collapsible summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  transition: background 0.15s ease;
}
.ep-collapsible summary::-webkit-details-marker { display: none; }
.ep-collapsible summary:hover { background: var(--cream-warm); }

/* Chevron op mobile only */
.ep-collapsible__chev {
  display: none;
  width: 10px; height: 10px;
  border-right: 2px solid var(--orange);
  border-bottom: 2px solid var(--orange);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-right: 4px;
}
.ep-collapsible[open] .ep-collapsible__chev {
  transform: rotate(-135deg);
}

.ep-collapsible__body {
  padding: 0 24px 24px;
}

/* Op desktop: alles open, geen chevron, geen cursor pointer */
@media (min-width: 981px) {
  .ep-collapsible summary { cursor: default; }
  .ep-collapsible summary:hover { background: transparent; }
  .ep-collapsible__chev { display: none !important; }
}

/* Patroon */
.ep-pattern__title {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 700;
  font-size: 24px;
  color: var(--orange);
  margin: 0;
  letter-spacing: -0.005em;
}
.ep-pattern .ep-collapsible__body p {
  margin: 0;
  font-size: 17px;
  line-height: 1.65;
  color: var(--brown);
}

/* Three col pillars */
.ep-three-col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.ep-pillar {
  background: var(--cream);
  border: 1px solid var(--border);
  border-top: 3px solid var(--orange);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  padding: 26px 24px;
}
.ep-pillar__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 22px;
  margin: 0 0 14px;
  color: var(--brown);
  letter-spacing: -0.005em;
}
.ep-pillar__body { display: flex; flex-direction: column; flex-grow: 1; }
.ep-pillar__body p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--brown-soft);
  margin: 0 0 20px;
}
.ep-pillar__body p strong { color: var(--brown); font-weight: 700; }
.ep-pillar__body .ep-btn { margin-top: auto; align-self: flex-start; }

/* Patroon-kaarten (drie simultane profielen, naast elkaar) */
.ep-pattern-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}
.ep-pattern-card {
  background: var(--cream);
  border: 1px solid var(--border);
  border-top: 3px solid var(--orange);
  border-radius: 4px;
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ep-pattern-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--brown-soft);
}
.ep-pillar__icon { width: 30px; height: 30px; color: var(--orange); margin-bottom: 14px; }
.ep-pillar__icon svg { width: 100%; height: 100%; display: block; }
.ep-pattern-card__icon { width: 30px; height: 30px; color: var(--orange); }
.ep-pattern-card__icon svg { width: 100%; height: 100%; display: block; }

/* Country accordion */
.ep-country-list {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  align-items: start;
}
.ep-country {
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--cream);
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ep-country:hover { border-color: var(--orange); }
.ep-country[open] { box-shadow: 0 2px 14px rgba(56, 44, 39, 0.06); }
.ep-country summary {
  display: grid;
  grid-template-columns: 42px 1fr 22px;
  grid-template-areas:
    "flag name chev"
    "flag meta meta";
  align-items: center;
  gap: 6px 14px;
  padding: 20px 22px;
  cursor: pointer;
  list-style: none;
  transition: background 0.15s ease;
}
.ep-country summary::-webkit-details-marker { display: none; }
.ep-country summary:hover { background: var(--cream-warm); }
.ep-country__flag { grid-area: flag; font-size: 28px; line-height: 1; align-self: center; }
.ep-country__name {
  grid-area: name;
  align-self: end;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 21px;
  color: var(--brown);
  letter-spacing: -0.005em;
}
.ep-country__tagline {
  font-size: 14px;
  color: var(--brown-mute);
  text-align: left;
}
.ep-country__chev {
  grid-area: chev;
  width: 10px; height: 10px;
  border-right: 1.5px solid var(--brown-mute);
  border-bottom: 1.5px solid var(--brown-mute);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  align-self: center;
  justify-self: end;
}
.ep-country:hover .ep-country__chev { border-color: var(--orange); }
.ep-country[open] .ep-country__chev {
  transform: rotate(-135deg);
  border-color: var(--orange);
}
.ep-country__body {
  padding: 4px 22px 22px;
  background: var(--cream-warm);
}
.ep-country__body ul {
  margin: 0; padding: 0; list-style: none;
}
.ep-country__body li {
  font-size: 15px;
  line-height: 1.55;
  color: var(--brown-soft);
  padding: 6px 0 6px 20px;
  position: relative;
}
.ep-country__body li::before {
  content: "";
  position: absolute;
  left: 0; top: 14px;
  width: 8px; height: 1px;
  background: var(--orange);
}

/* Garantie */
.ep-garantie__card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 32px;
  align-items: center;
  background: var(--cream-warm);
  border: 1px solid var(--orange);
  border-radius: 4px;
  padding: 40px;
}
.ep-garantie__badge {
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 700;
  line-height: 1;
  color: var(--orange);
  letter-spacing: -0.04em;
}
.ep-garantie__copy p {
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--brown-soft);
}
.ep-garantie__copy a {
  color: var(--orange);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Deep-Dive: zelfde kaart als de garantie, rustiger zodat de twee blokken
   niet als dubbeling lezen. */
.ep-deepdive__card {
  background: var(--cream);
  border-color: var(--border);
}
.ep-deepdive__card .ep-garantie__badge { color: var(--brown-soft); }
.ep-deepdive__card .ep-eyebrow { margin-bottom: 6px; }
.ep-deepdive__card .ep-h3 { margin: 0 0 14px; }

/* Pakketten (DESKTOP grid view) */
.ep-pkg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
  align-items: stretch;
}
.ep-pkg {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  position: relative;
}
.ep-pkg--featured {
  border: 2px solid var(--orange);
  background: var(--cream-warm);
}
.ep-pkg__summary {
  display: block;
  padding: 40px 32px 24px;
  cursor: default;
  list-style: none;
  position: relative;
}
.ep-pkg__summary::-webkit-details-marker { display: none; }
.ep-pkg__head { display: block; margin-top: 6px; }
.ep-pkg__chev { display: none; } /* only on mobile */

.ep-pkg__badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--orange);
  color: white;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 2px;
  white-space: nowrap;
}
.ep-pkg__badge--neutral { background: var(--brown); color: var(--cream); }
.ep-pkg__name {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 28px;
  margin: 0 0 4px;
  color: var(--brown);
}
.ep-pkg__subtitle {
  display: block;
  font-size: 13px;
  color: var(--brown-mute);
  margin: 0 0 20px;
}
.ep-pkg__priceblock { display: block; }
.ep-pkg__price {
  display: block;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 52px;
  line-height: 1;
  color: var(--brown);
  letter-spacing: -0.02em;
}
.ep-pkg__currency { font-size: 30px; margin-right: 2px; }
.ep-pkg__sub {
  display: block;
  font-size: 13px;
  color: var(--brown-mute);
  margin: 4px 0 0;
}
.ep-pkg__body {
  padding: 0 32px 36px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.ep-pkg__payoff {
  font-family: var(--font-sans);
  font-style: normal;
  font-weight: 600;
  font-size: 17px;
  line-height: 1.45;
  color: var(--brown);
  margin: 0 0 24px;
  padding: 16px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.ep-pkg__features {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  flex-grow: 1;
}
.ep-pkg__features li {
  font-size: 15px;
  line-height: 1.5;
  padding: 10px 0 10px 24px;
  border-bottom: 1px solid var(--border);
  position: relative;
  color: var(--brown);
}
.ep-pkg__features li::before {
  content: "+";
  position: absolute;
  /* Zelfde font-size en line-height als de li, zodat het plusje op dezelfde
     regel zit als het eerste woord ernaast in plaats van optisch te zakken. */
  left: 4px;
  top: 10px;
  width: 14px;
  font-size: inherit;
  line-height: inherit;
  text-align: center;
  color: var(--orange);
  font-weight: 700;
}
.ep-pkg__features li:last-child { border-bottom: none; }
.ep-pkg__features li strong { color: var(--brown); font-weight: 700; }
.ep-pkg__features li a {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease;
}
.ep-pkg__features li a::after {
  content: " →";
  color: var(--orange);
  font-weight: 700;
  opacity: 0;
  transition: opacity 0.15s ease;
}
@media (hover: hover) {
  .ep-pkg__features li a:hover { color: var(--orange); }
  .ep-pkg__features li a:hover::after { opacity: 1; }
}
.ep-pkg .ep-btn { margin-top: 8px; }
.ep-pkg__legal {
  text-align: center;
  font-size: 13px;
  color: var(--brown-mute);
  margin: 32px auto 0;
  max-width: 640px;
}
.ep-pkg__assure {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 7px;
  margin: 12px 0 0;
  font-size: 12.5px;
  line-height: 1.35;
  color: var(--brown-mute);
  text-align: center;
}
.ep-pkg__assure svg { width: 15px; height: 15px; color: var(--olive); flex-shrink: 0; margin-top: 1px; }

/* Vergelijkings-tabel */
.ep-compare {
  margin-top: 48px;
  overflow-x: auto;
}
.ep-compare__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  min-width: 720px;
}
.ep-compare__sticky th {
  position: sticky;
  top: var(--header-h);
  background: var(--cream-warm);
  z-index: 5;
  padding: 20px 14px;
  text-align: center;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 18px;
  border-bottom: 2px solid var(--brown);
  letter-spacing: -0.005em;
  vertical-align: top;
  color: var(--brown);
}
.ep-compare__pkg-link {
  display: block;
  text-align: center;
  transition: color 0.15s ease;
}
.ep-compare__pkg-link:hover { color: var(--orange); }
.ep-compare__pkg-name { display: block; margin-bottom: 4px; }
.ep-compare__price {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 14px;
  color: var(--brown-mute);
  display: block;
}
.ep-compare__pkg-badge {
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--orange);
  margin-top: 4px;
}
.ep-compare__feature { width: 36%; text-align: left; }
.ep-compare__featured { background: rgba(186, 82, 41, 0.05); }

.ep-compare__table th[scope="row"] {
  text-align: left;
  font-weight: 500;
  font-size: 14px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  color: var(--brown);
  display: flex;
  align-items: center;
  gap: 8px;
}
.ep-compare__table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
  color: var(--brown-soft);
  vertical-align: middle;
  text-align: center;
}
.ep-compare__group {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--orange);
  padding: 24px 14px 6px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--orange) !important;
  text-align: left !important;
}
.ep-compare__cta-row td { padding: 20px 12px; }
.ep-compare__assure-row td { text-align: center !important; padding: 16px 14px 0 !important; border: none !important; }
.ep-compare__assure {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--brown-mute);
}
.ep-compare__assure svg { width: 15px; height: 15px; color: var(--olive); flex-shrink: 0; }

.ep-yes {
  display: inline-block;
  position: relative;
  width: 18px;
  height: 18px;
  vertical-align: middle;
  line-height: 0;
  font-size: 0;
}
.ep-yes::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 1px;
  width: 5px;
  height: 10px;
  border: solid var(--olive);
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}
.ep-yes::before { content: none; }
.ep-no {
  display: inline-block;
  width: 14px;
  height: 2px;
  background: var(--brown-mute);
  border-radius: 1px;
  vertical-align: middle;
  line-height: 0;
  font-size: 0;
}
.ep-no::before,
.ep-no::after {
  content: none;
}

/* Compare-table expandable rows */
.ep-cmp__row { cursor: pointer; transition: background 0.12s ease; }
.ep-cmp__row:hover { background: rgba(186, 82, 41, 0.045); }
.ep-cmp__row.is-open { background: rgba(186, 82, 41, 0.07); }
.ep-cmp__chev {
  width: 8px; height: 8px;
  border-right: 2px solid var(--orange);
  border-bottom: 2px solid var(--orange);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  flex-shrink: 0;
  display: inline-block;
}
.ep-cmp__row.is-open .ep-cmp__chev { transform: rotate(-135deg); }
.ep-cmp__rowlabel { flex: 1; }
.ep-cmp__detail > td {
  padding: 0 14px 0 36px !important;
  text-align: left !important;
  background: rgba(56, 44, 39, 0.025);
}
.ep-cmp__detail-inner { padding: 4px 0 18px; }
.ep-cmp__detail-inner > p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--brown-soft);
  max-width: 760px;
}
.ep-cmp__detail-inner > p:last-child { margin-bottom: 0; }
.ep-cmp__sublist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 24px;
}
.ep-cmp__sublist li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--brown);
}
.ep-cmp__sublist .ep-yes { flex-shrink: 0; margin-top: 0; }

/* Info tooltip */
.ep-info {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 18px; height: 18px;
  border: 1px solid var(--brown-mute);
  border-radius: 50%;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 11px;
  font-weight: 700;
  color: var(--brown-mute);
  background: transparent;
  cursor: help;
  position: relative;
  flex-shrink: 0;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.ep-info:hover { border-color: var(--orange); color: var(--orange); }
.ep-info::after {
  content: attr(data-tip);
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--brown);
  color: var(--cream);
  font-family: var(--font-sans);
  font-style: normal;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  padding: 10px 12px;
  border-radius: 3px;
  width: 260px;
  white-space: normal;
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
  z-index: 50;
  box-shadow: 0 4px 12px rgba(56, 44, 39, 0.2);
}
.ep-info::before {
  content: "";
  position: absolute;
  top: calc(100% + 2px);
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-bottom-color: var(--brown);
  opacity: 0;
  transition: opacity 0.15s ease;
  z-index: 51;
  pointer-events: none;
}
.ep-info:hover::after, .ep-info.is-open::after,
.ep-info:hover::before, .ep-info.is-open::before { opacity: 1; }
tr:nth-last-child(-n+5) .ep-info::after { top: auto; bottom: calc(100% + 8px); }
tr:nth-last-child(-n+5) .ep-info::before {
  top: auto; bottom: calc(100% + 2px);
  border-bottom-color: transparent;
  border-top-color: var(--brown);
}
.ep-info-inline {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 18px; height: 18px;
  border: 1px solid var(--brown-mute);
  border-radius: 50%;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 11px;
  font-weight: 700;
  color: var(--brown-mute);
  vertical-align: middle;
}

/* Demo CTA */
.ep-demo-cta {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin: 24px 0 8px;
}
.ep-demo-cta__note { font-size: 14px; color: var(--brown-mute); }

/* Voorbeeld screenshots */
.ep-screenshots {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 48px;
}

/* Waitlist form */
.ep-waitlist .ep-form-row {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 12px;
  margin-top: 32px;
  margin-bottom: 12px;
}
.ep-input {
  font-family: var(--font-sans);
  font-size: 16px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 2px;
  background: var(--cream);
  color: var(--brown);
  transition: border-color 0.15s ease;
}
.ep-input:focus { outline: none; border-color: var(--orange); }
.ep-form-meta {
  font-size: 13px;
  color: var(--brown-mute);
  margin: 16px 0 0;
  text-align: center;
}
.ep-form-meta a { color: var(--orange); text-decoration: underline; }

.ep-shot {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ep-shot__img {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 2 / 1;
  background: var(--cream-warm);
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: zoom-in;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ep-shot__img:hover {
  border-color: var(--orange);
  box-shadow: 0 12px 32px -18px rgba(56, 44, 39, 0.5);
}
.ep-shot__img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: top center;
  display: block;
}
.ep-shot figcaption {
  font-size: 13px;
  color: var(--brown-mute);
  line-height: 1.5;
}
.ep-shot figcaption strong { color: var(--brown); font-weight: 600; }

/* Lightbox: screenshots vergroten in het scherm i.p.v. een nieuw tabblad */
.ep-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
  background: rgba(26, 20, 15, 0.88);
  opacity: 0;
  transition: opacity 0.18s ease;
}
.ep-lightbox.is-open { display: flex; }
.ep-lightbox.is-visible { opacity: 1; }
.ep-lightbox__frame {
  position: relative;
  max-width: min(1600px, 100%);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transform: scale(0.985);
  transition: transform 0.18s ease;
}
.ep-lightbox.is-visible .ep-lightbox__frame { transform: none; }
.ep-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 150px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 4px;
  background: var(--cream-warm);
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.8);
}
.ep-lightbox__caption {
  margin: 0;
  color: #efeae0;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
  max-width: 760px;
  margin-inline: auto;
}
.ep-lightbox__caption strong { color: #fff; font-weight: 600; }
.ep-lightbox__close {
  position: absolute;
  top: -14px;
  right: -14px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--cream);
  color: var(--brown);
  box-shadow: 0 6px 20px -6px rgba(0, 0, 0, 0.6);
  transition: background 0.15s ease, color 0.15s ease;
}
.ep-lightbox__close:hover { background: var(--orange); color: #fff; }
.ep-lightbox__close:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.ep-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(246, 245, 242, 0.9);
  color: var(--brown);
  transition: background 0.15s ease, color 0.15s ease;
}
.ep-lightbox__nav:hover { background: var(--orange); color: #fff; }
.ep-lightbox__nav:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.ep-lightbox__nav--prev { left: -60px; }
.ep-lightbox__nav--next { right: -60px; }
body.ep-lightbox-open { overflow: hidden; }

@media (max-width: 900px) {
  .ep-lightbox { padding: 20px 12px; }
  .ep-lightbox__close { top: 4px; right: 4px; width: 36px; height: 36px; }
  .ep-lightbox__nav { width: 38px; height: 38px; }
  .ep-lightbox__nav--prev { left: 2px; }
  .ep-lightbox__nav--next { right: 2px; }
  .ep-lightbox__img { max-height: calc(100vh - 170px); }
}

@media (prefers-reduced-motion: reduce) {
  .ep-lightbox,
  .ep-lightbox__frame { transition: none; }
}

/* Testimonials */
.ep-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.ep-testimonial {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 28px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 200px;
}
.ep-testimonial[data-placeholder="true"] {
  border-style: dashed;
  background: transparent;
}
.ep-testimonial blockquote {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.5;
  color: var(--brown);
  flex-grow: 1;
}
.ep-testimonial figcaption {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 13px;
}
.ep-testimonial__name { color: var(--brown); font-weight: 600; }
.ep-testimonial__meta { color: var(--brown-mute); font-size: 12px; }
.ep-placeholder { color: var(--brown-mute); font-style: italic; }

/* FAQ */
.ep-faq {
  border-bottom: 1px solid var(--border);
  padding: 22px 0;
}
.ep-faq summary {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 20px;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  letter-spacing: -0.005em;
  color: var(--brown);
}
.ep-faq summary::-webkit-details-marker { display: none; }
.ep-faq summary::after {
  content: "+";
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 24px;
  color: var(--orange);
  transition: transform 0.2s ease;
}
.ep-faq[open] summary::after { content: "−"; }
.ep-faq p {
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.65;
  color: var(--brown-soft);
}
.ep-faq a { color: var(--orange); text-decoration: underline; text-underline-offset: 3px; }

/* Footer */
.ep-footer {
  background: var(--brown);
  color: var(--cream);
  padding: 72px 0 24px;
}
.ep-footer .ep-logo__wordmark { color: var(--cream); }
.ep-footer .ep-logo__accent { color: var(--orange); }
.ep-footer .ep-logo__mark { background: var(--cream); color: var(--brown); }
.ep-footer__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 56px;
  align-items: start;
}
.ep-footer__tag {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 18px;
  margin-top: 12px;
  color: rgba(246, 245, 242, 0.75);
}
.ep-footer__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.ep-footer__col-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(246, 245, 242, 0.5);
  margin: 0 0 16px;
}
.ep-footer__cols a {
  display: block;
  font-size: 14px;
  color: rgba(246, 245, 242, 0.85);
  margin-bottom: 8px;
  transition: color 0.15s ease;
}
.ep-footer__cols a:hover { color: var(--orange); }
.ep-footer__bottom {
  max-width: var(--max-width);
  margin: 56px auto 0;
  padding: 24px 32px 0;
  border-top: 1px solid rgba(246, 245, 242, 0.15);
  font-size: 13px;
  color: rgba(246, 245, 242, 0.5);
}

/* ===== Responsive ===== */
@media (max-width: 980px) {
  :root { --section-pad-y: 64px; }

  #ep-section-nav { display: none; }
  .ep-nav-top { display: none; }
  .ep-hamburger { display: block; }

  .ep-hero__stats { display: none; }
  .ep-hero__grid { grid-template-columns: 1fr; gap: 32px; }

  .ep-three-col { grid-template-columns: 1fr; gap: 12px; }
  .ep-pattern-grid { grid-template-columns: 1fr; gap: 12px; }

  /* Chevron zichtbaar op mobile bij collapsible */
  .ep-collapsible__chev { display: inline-block !important; }

  .ep-pillar { padding: 22px 20px; }
  .ep-pattern-card { padding: 22px 20px; }
  .ep-pattern__title, .ep-pillar__title { font-size: 19px; }

  /* Pakketten als losse kaarten (stack), niet inklapbaar */
  .ep-pkg-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; }
  .ep-pkg { transform: none !important; }
  .ep-pkg__summary {
    display: block;
    padding: 40px 20px 20px;
  }
  .ep-pkg__head { margin-top: 6px; }
  .ep-pkg__name { font-size: 24px; }
  .ep-pkg__subtitle { margin-bottom: 18px; font-size: 12px; }
  .ep-pkg__price { font-size: 40px; }
  .ep-pkg__currency { font-size: 24px; }
  .ep-pkg__sub { font-size: 12px; }
  .ep-pkg__body { padding: 0 20px 28px; }
  .ep-pkg__badge {
    top: 14px;
    left: 20px;
    transform: none;
    font-size: 10px;
    padding: 4px 11px;
  }

  /* Country cards mobile: vlag + naam + chevron, toelichting links eronder */
  .ep-country summary {
    grid-template-columns: 32px 1fr 20px;
    grid-template-areas:
      "flag name chev"
      "flag meta meta";
    gap: 4px 12px;
    padding: 16px 18px;
  }
  .ep-country__name { font-size: 19px; }
  .ep-country__flag { font-size: 24px; }
  .ep-country__tagline { font-size: 13px; line-height: 1.4; }
  .ep-country__body { padding: 4px 18px 18px; }

  /* Garantie mobile */
  .ep-garantie__card {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 28px 20px;
    gap: 20px;
  }
  .ep-garantie__badge { font-size: 64px; }

  /* Vergelijking-sectie verborgen tot toggle */
  #vergelijking { display: none; }
  #vergelijking.is-mobile-shown { display: block; }
  /* R7: link naar de op mobiel verborgen vergelijkingssectie ook verbergen, zodat de klik niet als kapot leest */
  .ep-hide-mobile-vergelijking { display: none !important; }
  /* Geen scrollbalk in een scrollbalk. Op mobiel is de tabel al
     table-layout:fixed met min-width 0, dus de pagina is de enige
     scroll-container en de sticky kop plakt aan de viewport. */
  .ep-compare { overflow: visible; }
  .ep-compare__table { min-width: 0; font-size: 12px; table-layout: fixed; }
  .ep-compare__sticky th { padding: 12px 6px; font-size: 13px; }
  .ep-compare__pkg-name { font-size: 13px; }
  .ep-compare__price { font-size: 11px; }
  .ep-compare__pkg-badge { font-size: 8px; }
  .ep-compare__table th[scope="row"] {
    font-size: 12px;
    padding: 10px 6px;
    gap: 4px;
  }
  .ep-compare__table td {
    padding: 10px 4px;
    font-size: 12px;
  }
  .ep-info { width: 14px; height: 14px; font-size: 9px; }
  .ep-info::after { width: 200px; font-size: 12px; }
  .ep-compare__group {
    padding: 16px 6px 6px !important;
    font-size: 10px;
  }
  .ep-compare__cta-row td { padding: 14px 4px; }
  .ep-yes { width: 16px; height: 16px; }
  .ep-no { width: 12px; height: 2px; }

  /* Screenshots: 2 columns op mobile-tablet, 1 op echt klein */
  .ep-screenshots { grid-template-columns: 1fr 1fr; gap: 16px; }

  .ep-testimonial-grid { grid-template-columns: 1fr; }

  .ep-footer__inner { grid-template-columns: 1fr; gap: 32px; }
  .ep-footer__cols { grid-template-columns: 1fr 1fr; }

  /* Waitlist form op mobile */
  .ep-form-row { grid-template-columns: 1fr !important; }
}
@media (max-width: 980px) {
  .ep-mobile-link {
    font-size: 17px;
    padding: 11px 0;
  }
  /* Comfortabele tap-targets in het mobiele menu (min ~44px). */
  .ep-mobile-nav { gap: 0; }
}

@media (max-width: 540px) {
  .ep-container { padding: 0 18px; }
  .ep-h1-display { font-size: clamp(28px, 7.6vw, 42px); line-height: 1.12; }
  .ep-h2 { font-size: clamp(23px, 6.6vw, 32px); }
  .ep-lead { font-size: 17px; }
  .ep-screenshots { grid-template-columns: 1fr; }
  .ep-country-list { grid-template-columns: 1fr; }
  .ep-footer__cols { grid-template-columns: 1fr; gap: 24px; }
  .ep-cta-row { margin-top: 36px; }
}

/* === NEW BLOCK: readability overrides === */
/* Patroon-titels: italic Playfair op oranje was lastig leesbaar. Sans-serif, donker, behoudt accent via subtitle. */
.ep-pattern__title {
  font-family: var(--font-sans);
  font-style: normal;
  font-weight: 600;
  font-size: 20px;
  color: var(--brown);
  letter-spacing: 0;
}
@media (max-width: 980px) {
  .ep-pattern__title { font-size: 18px; }
}

/* Testimonial placeholders: italic Playfair op brown-mute was vrijwel onleesbaar. */
.ep-testimonial blockquote {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.55;
  color: var(--brown);
}
.ep-placeholder {
  font-family: var(--font-sans);
  font-style: normal;
  font-weight: 500;
  color: var(--brown-soft);
}

/* === NEW BLOCK: stats strip (motorkap) === */
.ep-stats-strip {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--cream);
  overflow: hidden;
}
.ep-stats-strip > li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 18px;
  border-right: 1px solid var(--border);
}
.ep-stats-strip > li:last-child { border-right: none; }
.ep-stats-strip__icon { width: 24px; height: 24px; color: var(--orange); margin-bottom: 2px; }
.ep-stats-strip__icon svg { width: 100%; height: 100%; display: block; }
.ep-stats-strip__num {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 36px;
  line-height: 1;
  color: var(--orange);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.ep-stats-strip__lbl {
  font-size: 13px;
  line-height: 1.35;
  color: var(--brown-mute);
}
@media (max-width: 720px) {
  .ep-stats-strip { grid-template-columns: 1fr 1fr; }
  .ep-stats-strip > li {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 16px 14px;
  }
  .ep-stats-strip > li:nth-child(2n) { border-right: none; }
  .ep-stats-strip > li:nth-child(odd):not(:last-child) { border-right: 1px solid var(--border); }
  .ep-stats-strip > li:nth-last-child(-n+2) { border-bottom: none; }
  .ep-stats-strip__num { font-size: 28px; }
}

/* === NEW BLOCK: founder + sources === */
.ep-founder {
  margin: 32px 0 0;
  padding: 28px;
  background: var(--cream-warm);
  border: 1px solid var(--border);
  border-radius: 4px;
}
.ep-founder__head {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 20px;
  align-items: center;
  margin-bottom: 20px;
}
.ep-founder__photo {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
  background: var(--brown);
}
.ep-founder__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.75);
  transform-origin: 50% 26%;
}
.ep-founder__initials {
  display: none;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, var(--brown-soft), var(--brown) 70%);
  color: var(--cream);
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 30px;
  letter-spacing: -0.01em;
}
.ep-founder__id { display: flex; flex-direction: column; gap: 2px; }
.ep-founder__name {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 24px;
  color: var(--brown);
  margin: 0;
  letter-spacing: -0.005em;
}
.ep-founder__role {
  font-size: 14px;
  color: var(--brown-mute);
  margin: 0;
}
.ep-founder__intro {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--brown);
}
.ep-cred-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 0 0 22px;
}
.ep-cred {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ep-cred__icon { width: 26px; height: 26px; color: var(--orange); }
.ep-cred__icon svg { width: 100%; height: 100%; display: block; }
.ep-cred__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 15px;
  color: var(--brown);
  letter-spacing: -0.005em;
}
.ep-cred__body {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--brown-mute);
}
@media (max-width: 720px) {
  .ep-cred-row { grid-template-columns: 1fr; }
}
.ep-awards {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.ep-award {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 110px;
}
.ep-award__year {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 26px;
  line-height: 1;
  color: var(--orange);
  letter-spacing: -0.01em;
}
.ep-award__name {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 14px;
  color: var(--brown);
  line-height: 1.3;
  margin-top: 4px;
}
.ep-award__by {
  font-size: 12px;
  color: var(--brown-mute);
  line-height: 1.35;
  margin-top: auto;
}
.ep-credential {
  margin: 0 0 20px;
  padding: 20px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-left: 3px solid var(--orange);
  border-radius: 0 4px 4px 0;
}
.ep-credential__tag {
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 8px;
}
.ep-credential__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 18px;
  color: var(--brown);
  margin: 0 0 6px;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.ep-credential__body {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--brown-soft);
}
.ep-founder__edu {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--brown-soft);
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.ep-founder__wft {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--brown-mute);
  font-style: italic;
}

.ep-sources {
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
}
.ep-sources__group-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--orange);
  margin: 28px 0 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--orange);
}
.ep-sources__grid {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.ep-src {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
}
.ep-src__flag {
  font-size: 22px;
  line-height: 1;
  text-align: center;
}
.ep-src__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.ep-src__name {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 14px;
  color: var(--brown);
  letter-spacing: -0.005em;
  line-height: 1.25;
}
.ep-src__role {
  font-size: 12px;
  color: var(--brown-mute);
  line-height: 1.35;
}

/* Per-country source chips inside dropdown summary */
.ep-country__meta {
  grid-area: meta;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  text-align: left;
  min-width: 0;
}
.ep-country__sources {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 4px;
}
.ep-src-chip {
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.02em;
  color: var(--brown-soft);
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
  line-height: 1.4;
}
@media (max-width: 980px) {
  .ep-country__sources { display: none; }
}
@media (max-width: 720px) {
  .ep-sources__grid { grid-template-columns: 1fr; }
}

/* === NEW BLOCK: beslisgids preview tiles === */
.ep-brief {
  margin-top: 56px;
  padding: 32px 0 8px;
  border-top: 1px solid var(--border);
}
.ep-brief__head { margin-bottom: 24px; }
.ep-brief__lead {
  font-size: 16px;
  line-height: 1.55;
  color: var(--brown-soft);
  margin: 8px 0 0;
}
.ep-brief-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-bottom: 24px;
}
.ep-brief-tile {
  display: flex;
  flex-direction: column;
  gap: 12px;
  color: inherit;
  text-decoration: none;
  transition: transform 0.15s ease;
}
.ep-brief-tile:hover { transform: translateY(-2px); }
.ep-brief-card {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 20px 18px;
  min-height: 210px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 10px rgba(56, 44, 39, 0.06);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.ep-brief-tile:hover .ep-brief-card {
  border-color: var(--orange);
  box-shadow: 0 6px 20px rgba(56, 44, 39, 0.12);
  transform: translateY(-2px);
}
.ep-brief-card__kicker {
  margin: 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brown-mute);
}
.ep-brief-card__rule {
  display: block;
  width: 28px;
  height: 2px;
  background: var(--brown);
  margin: 10px 0 14px;
}
.ep-brief-card__heading {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 10px;
}
.ep-brief-card__pg {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 28px;
  line-height: 1;
  color: var(--orange);
  letter-spacing: -0.02em;
}
.ep-brief-card__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.2;
  color: var(--brown);
  margin: 0;
}
.ep-brief-card__desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--brown-soft);
}
.ep-brief-card__open {
  margin-top: auto;
  padding-top: 14px;
  font-size: 12px;
  font-weight: 600;
  color: var(--orange);
}
.ep-brief-tile figcaption {
  font-size: 13px;
  line-height: 1.4;
  color: var(--brown-soft);
  font-weight: 500;
}
.ep-brief__actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.ep-brief__pdf {
  font-size: 13px;
  color: var(--brown-mute);
  font-family: var(--font-sans);
}
.ep-brief__pdf:hover { color: var(--orange); }

@media (max-width: 980px) {
  .ep-brief-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
}
@media (max-width: 540px) {
  .ep-brief-grid { grid-template-columns: 1fr; gap: 14px; }
  .ep-brief__actions { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 720px) {
  .ep-awards { grid-template-columns: 1fr 1fr; }
  .ep-sources__list { grid-template-columns: 1fr; }
  .ep-sources__list li:nth-last-child(-n+2):not(:last-child) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 480px) {
  .ep-awards { grid-template-columns: 1fr; }
  .ep-founder { padding: 20px; }
  .ep-founder__head { grid-template-columns: 72px 1fr; gap: 16px; }
  .ep-founder__photo { width: 72px; height: 72px; font-size: 22px; }
  .ep-founder__name { font-size: 20px; }
  .ep-sources__list li { grid-template-columns: 1fr; gap: 2px; }
}

/* === NEW BLOCK: impact-visual === */
.ep-impact-legend {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin: 32px 0 16px;
  font-size: 13px;
  color: var(--brown-mute);
}
.ep-impact-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.ep-impact-legend__swatch {
  display: inline-block;
  width: 14px;
  height: 8px;
  border-radius: 2px;
}
.ep-impact-legend__swatch--nl { background: var(--brown-mute); }
.ep-impact-legend__swatch--pt { background: var(--orange); }

.ep-impact {
  margin: 0 0 24px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.ep-impact__cell {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ep-impact__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
}
.ep-impact__label {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 15px;
  color: var(--brown);
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.ep-impact__delta {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.01em;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}
.ep-impact__delta--pos {
  background: rgba(90, 107, 62, 0.12);
  color: var(--olive);
}
.ep-impact__delta--neg {
  background: rgba(186, 82, 41, 0.10);
  color: var(--orange-deep);
}
.ep-impact__delta--neutral {
  background: rgba(122, 110, 105, 0.12);
  color: var(--brown-mute);
}
.ep-impact__bar {
  display: grid;
  grid-template-columns: 22px 1fr 64px;
  gap: 8px;
  align-items: center;
}
.ep-impact__legend {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--brown-mute);
  text-transform: uppercase;
}
.ep-impact__track {
  height: 6px;
  background: rgba(56, 44, 39, 0.06);
  border-radius: 3px;
  overflow: hidden;
}
.ep-impact__fill {
  height: 100%;
  width: var(--w, 0%);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.ep-impact__fill--nl { background: var(--brown-mute); }
.ep-impact__fill--pt { background: var(--orange); }
.ep-impact__score {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 12px;
  color: var(--brown);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ep-impact__desc {
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  font-size: 14px;
  line-height: 1.5;
  color: var(--brown-mute);
}

.ep-impact-case {
  margin: 24px 0 16px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.ep-impact-case summary {
  list-style: none;
  cursor: pointer;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transition: background 0.15s ease;
}
.ep-impact-case summary::-webkit-details-marker { display: none; }
.ep-impact-case summary:hover { background: var(--cream-warm); }
.ep-impact-case__title {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 14px;
  color: var(--orange);
  letter-spacing: 0.02em;
}
.ep-impact-case .ep-collapsible__chev {
  display: inline-block;
  width: 10px; height: 10px;
  border-right: 2px solid var(--orange);
  border-bottom: 2px solid var(--orange);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.ep-impact-case[open] .ep-collapsible__chev {
  transform: rotate(-135deg);
}
.ep-impact-case__body {
  padding: 0 20px 20px;
}
.ep-impact-case__body p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--brown-soft);
}
.ep-impact-case__body p:last-child { margin-bottom: 0; }
.ep-impact-case__caveat {
  font-style: italic;
  color: var(--brown-mute) !important;
}

.ep-impact-conclusion {
  margin-top: 24px;
  padding: 20px 24px;
  background: var(--cream-warm);
  border-left: 3px solid var(--orange);
  border-radius: 0 4px 4px 0;
}
.ep-impact-conclusion p {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--brown);
}

@media (max-width: 720px) {
  .ep-impact { grid-template-columns: 1fr; }
  .ep-impact__cell { padding: 14px 16px; }
  .ep-impact__label { font-size: 14px; }
  .ep-impact-conclusion { padding: 16px 18px; }
  .ep-impact-conclusion p { font-size: 15px; }
}

/* === Fold in/out op mobiel: profielen, fases en pakketten ===
   Desktop blijft ongemoeid (alles open, geen chevron). Alleen op mobiel
   wordt de body ingeklapt en verschijnt een tikbare chevron. */
.ep-fold-chev,
.ep-pkg__chev { display: none; }

@media (max-width: 980px) {
  /* Profielen + fases */
  .ep-pattern-card,
  .ep-pillar { position: relative; cursor: pointer; }
  .ep-pattern-card > h3,
  .ep-pillar > h3 { padding-right: 26px; }
  .ep-fold-chev {
    display: block;
    position: absolute;
    top: 26px;
    right: 20px;
    width: 11px;
    height: 11px;
    border-right: 2.5px solid var(--orange);
    border-bottom: 2.5px solid var(--orange);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    pointer-events: none;
  }
  .ep-pattern-card.is-open .ep-fold-chev,
  .ep-pillar.is-open .ep-fold-chev { transform: rotate(-135deg); }

  .ep-pattern-card > p { display: none; }
  .ep-pattern-card.is-open > p { display: block; }

  .ep-pillar .ep-pillar__body { display: none; }
  .ep-pillar.is-open .ep-pillar__body { display: flex; }

  /* Pakketten */
  .ep-pkg__summary { cursor: pointer; position: relative; padding-right: 46px; }
  .ep-pkg__chev {
    display: block;
    position: absolute;
    top: 50%;
    right: 20px;
    margin-top: -6px;
    width: 11px;
    height: 11px;
    border-right: 2.5px solid var(--orange);
    border-bottom: 2.5px solid var(--orange);
    transform: rotate(45deg);
    transition: transform 0.2s ease, margin-top 0.2s ease;
    pointer-events: none;
  }
  .ep-pkg.is-open .ep-pkg__chev { transform: rotate(-135deg); margin-top: -3px; }
  .ep-pkg__body { display: none; }
  .ep-pkg.is-open .ep-pkg__body { display: flex; }
}

/* ============================================================
   HERO REWORK — full-width band + tool dashboard visual (R26)
   Vervangt de 3 KPI-kaarten ("In het kort").
   ============================================================ */
.ep-hero {
  position: relative;
  padding-top: 96px;
  background:
    radial-gradient(900px 440px at 90% 6%, rgba(186, 82, 41, 0.10), transparent 62%),
    linear-gradient(180deg, var(--cream) 0%, var(--cream-warm) 100%);
  overflow: hidden;
}
.ep-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(56, 44, 39, 0.06) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.5), transparent 72%);
          mask-image: linear-gradient(180deg, rgba(0,0,0,0.5), transparent 72%);
  pointer-events: none;
}
.ep-hero__grid {
  position: relative; z-index: 1;
  grid-template-columns: 1.05fr 1fr;
  gap: 56px;
  align-items: center;
}
.ep-hero__copy { max-width: 620px; }

@media (max-width: 980px) {
  .ep-hero { padding-top: 72px; }
  .ep-hero__grid { grid-template-columns: 1fr; gap: 30px; }
  .ep-hero__copy { max-width: 100%; }
}
/* ============================================================
   MERGED SOURCES HUB (R26) — wat we vergelijken + bronnen per land
   ============================================================ */
.ep-sources__intro {
  margin: 0 0 16px;
  color: var(--brown-soft);
  font-size: 16px;
  line-height: 1.6;
  max-width: 70ch;
}
/* Bronnen per land */
.ep-srcland {
  list-style: none;
  margin: 0 0 38px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.ep-srcland__item {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 12px;
  align-items: start;
  background: var(--cream-warm);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
}
.ep-srcland__item::before { content: none; }
.ep-srcland__flag { font-size: 22px; line-height: 1.2; }
.ep-srcland__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ep-srcland__name {
  font-weight: 700;
  font-size: 15px;
  color: var(--brown);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.ep-srcland__tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--orange-deep);
  background: rgba(186, 82, 41, 0.12);
  border-radius: 4px;
  padding: 2px 7px;
}
.ep-srcland__src {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--brown-mute);
}
@media (max-width: 720px) {
  .ep-srcland { grid-template-columns: 1fr; }
}

/* Source pills inside the merged Bronnen section (R27) */
.ep-srcland__chips,
.ep-src-chips-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 4px; }
.ep-srcland__chips .ep-src-chip,
.ep-src-chips-row .ep-src-chip {
  font-size: 11.5px;
  padding: 4px 11px;
  white-space: normal;
  background: var(--cream);
}
.ep-srcland__item { align-items: start; }

/* ============================================================
   REVIEWS CAROUSEL (R27)
   ============================================================ */
.ep-reviews { margin-top: 8px; }
.ep-reviews__viewport { overflow: hidden; }
.ep-reviews__track {
  display: flex; gap: 20px; list-style: none; margin: 0; padding: 4px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; -ms-overflow-style: none;
}
.ep-reviews__track::-webkit-scrollbar { display: none; }
.ep-review {
  flex: 0 0 calc((100% - 20px) / 2);
  scroll-snap-align: start;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 24px 26px;
  display: flex; flex-direction: column; gap: 14px;
}
.ep-review::before { content: none; }
.ep-review__stars { color: var(--orange); font-size: 15px; letter-spacing: 2px; }
.ep-review__quote { font-size: 16px; line-height: 1.6; color: var(--brown); margin: 0; flex: 1; }
.ep-review__person { display: flex; align-items: center; gap: 12px; }
.ep-review__avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--brown); color: var(--cream);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px; flex: 0 0 auto;
}
.ep-review__id { display: flex; flex-direction: column; }
.ep-review__name { font-weight: 700; color: var(--brown); font-size: 15px; }
.ep-review__meta { font-size: 13px; color: var(--brown-mute); }
.ep-reviews__controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 22px; }
.ep-reviews__btn {
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid var(--border); background: var(--cream);
  color: var(--brown); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: border-color .15s, color .15s;
}
.ep-reviews__btn:hover { border-color: var(--orange); color: var(--orange); }
.ep-reviews__btn[disabled] { opacity: .35; cursor: default; }
.ep-reviews__dots { display: flex; gap: 8px; }
.ep-reviews__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border); border: none; padding: 0; cursor: pointer; }
.ep-reviews__dot.is-active { background: var(--orange); }
@media (max-width: 720px) {
  .ep-review { flex-basis: 86%; }
}

/* Keep prose readable now that #wat-erin-zit is full width (R27) */
#wat-erin-zit .ep-body-lg,
#wat-erin-zit .ep-founder__intro,
#wat-erin-zit .ep-founder__wft { max-width: var(--reading-width); }

/* ============================================================
   R28 — Bronnen polish, tooltips, lang toggle, spacing fixes
   ============================================================ */
/* Proper subheadings (were tiny uppercase eyebrows) */
.ep-sources__sub {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(21px, 2.3vw, 27px);
  line-height: 1.2;
  color: var(--brown);
  margin: 44px 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.ep-sources__intro { margin-top: 0; }

/* Flatter per-country sources: flag + name + pills on one row */
.ep-srcland { grid-template-columns: 1fr 1fr; gap: 10px; }
.ep-srcland__item {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px;
  padding: 12px 16px;
}
.ep-srcland__flag { font-size: 20px; line-height: 1; }
.ep-srcland__name {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 15px; color: var(--brown);
  flex: 0 0 auto; min-width: 120px;
}
.ep-srcland__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 0; flex: 1 1 200px; }

/* Chip hover tooltips */
.ep-src-chip[data-tip] { position: relative; cursor: help; }
.ep-src-chip[data-tip]:hover, .ep-src-chip[data-tip]:focus-visible { border-color: var(--orange); }
.ep-src-chip[data-tip]:hover::after, .ep-src-chip[data-tip]:focus-visible::after {
  content: attr(data-tip);
  position: absolute; left: 50%; bottom: calc(100% + 9px); transform: translateX(-50%);
  width: max-content; max-width: 250px; text-align: left;
  background: var(--brown); color: var(--cream);
  font-size: 12px; font-weight: 500; letter-spacing: 0; line-height: 1.45;
  padding: 9px 11px; border-radius: 7px; white-space: normal; z-index: 30;
  box-shadow: 0 8px 24px rgba(56,44,39,.28); pointer-events: none;
}
.ep-src-chip[data-tip]:hover::before, .ep-src-chip[data-tip]:focus-visible::before {
  content: ""; position: absolute; left: 50%; bottom: calc(100% + 3px); transform: translateX(-50%);
  border: 6px solid transparent; border-top-color: var(--brown); z-index: 30; pointer-events: none;
}

/* Language toggle (flags) */
.ep-lang { display: inline-flex; align-items: center; gap: 9px; }
.ep-lang__flag { font-size: 19px; line-height: 1; text-decoration: none; opacity: .4; transition: opacity .15s; padding-bottom: 2px; }
.ep-lang__flag--on { opacity: 1; box-shadow: 0 2px 0 var(--orange); }
a.ep-lang__flag:hover { opacity: .9; }
.ep-lang--mobile { justify-content: center; padding: 10px 0 4px; gap: 16px; }
.ep-lang--mobile .ep-lang__flag { font-size: 24px; }
.ep-hero__note strong { color: var(--brown); font-weight: 700; }

/* Tighter package feature rows */
.ep-pkg__features li { padding: 7px 0 7px 24px; line-height: 1.4; }

/* Center 'Onder de motorkap' / 'Wie dit bouwt' */
.ep-h3--center { text-align: center; margin-top: clamp(56px, 6vw, 88px); }
#wat-erin-zit .ep-body-lg { margin-left: auto; margin-right: auto; }

/* ============================================================
   R29 — Center the 'Onder de motorkap' section as one block
   (heading + founder content aligned, not centered-title/left-text)
   ============================================================ */
#wat-erin-zit > .ep-container { max-width: 980px; }
#wat-erin-zit .ep-body-lg {
  max-width: 720px; margin-left: auto; margin-right: auto; text-align: center;
}
#wat-erin-zit .ep-founder__head {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
  gap: 14px;
  margin-bottom: 22px;
}
#wat-erin-zit .ep-founder__id { align-items: center; }
#wat-erin-zit .ep-founder__intro {
  text-align: center; max-width: 660px; margin-left: auto; margin-right: auto;
}
#wat-erin-zit .ep-founder__wft {
  text-align: center; max-width: 660px; margin-left: auto; margin-right: auto;
}
#wat-erin-zit .ep-cred { text-align: center; align-items: center; }

/* R30 — hero investment microcopy */
.ep-hero__note { margin: 14px 0 0; font-size: 13px; color: var(--brown-mute); }

/* ============================================================
   R31 — Hero opgeschoond, belofte als eigen band, oorsprong,
   kostensectie, demo-links. NL + EN.
   ============================================================ */

/* Hero: sidebar weg, één kolom, copy iets breder */
.ep-hero__grid { grid-template-columns: 1fr; gap: 0; }
.ep-hero__copy { max-width: 880px; }
.ep-hero .ep-h1-display { max-width: 15ch; }
.ep-hero .ep-lead { max-width: 62ch; }
@media (max-width: 980px) {
  .ep-hero .ep-h1-display { max-width: 100%; }
}

/* Externe-link pijltje */
.ep-ext {
  width: 14px; height: 14px;
  flex: none;
  margin-left: 6px;
  vertical-align: -2px;
  display: inline-block;
}
.ep-btn .ep-ext { margin-left: 8px; }

/* ---------- De belofte (band onder de hero) ---------- */
.ep-belofte-band {
  background: var(--cream-warm);
  border-top: 1px solid var(--border);
}
.ep-belofte-band__head { max-width: var(--reading-width); }
.ep-belofte-band__head .ep-h2 { max-width: 20ch; }
.ep-belofte-band__foot {
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.ep-belofte-band__foot .ep-belofte__guarantee { padding-top: 0; border-top: none; }
@media (max-width: 620px) {
  .ep-belofte-band__foot { flex-direction: column; align-items: flex-start; }
}

/* ---------- Oorsprong (oprichtersquote) ---------- */
.ep-oorsprong { padding-top: 84px; padding-bottom: 84px; }
.ep-oorsprong__quote { margin: 0; }
.ep-oorsprong__quote blockquote {
  margin: 0;
  padding-left: 26px;
  border-left: 3px solid var(--orange);
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(21px, 2.3vw, 27px);
  line-height: 1.4;
  color: var(--brown);
}
.ep-oorsprong__quote blockquote em { font-style: italic; color: var(--orange-deep); }
.ep-oorsprong__quote figcaption {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 26px;
  padding-left: 29px;
}
.ep-oorsprong__photo {
  position: relative;
  width: 52px; height: 52px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cream-warm);
  border: 1px solid var(--border);
}
.ep-oorsprong__photo img { width: 100%; height: 100%; object-fit: cover; }
.ep-oorsprong__initials {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 16px;
  color: var(--brown-mute);
}
.ep-oorsprong__id { display: flex; flex-direction: column; line-height: 1.35; }
.ep-oorsprong__id strong { font-size: 16px; color: var(--brown); }
.ep-oorsprong__id span { font-size: 14px; color: var(--brown-mute); }
@media (max-width: 620px) {
  .ep-oorsprong { padding-top: 60px; padding-bottom: 60px; }
  .ep-oorsprong__quote blockquote { padding-left: 18px; }
  .ep-oorsprong__quote figcaption { padding-left: 21px; }
}

/* ---------- Wat een aanname kost ---------- */
.ep-kosten__calc {
  margin: 48px 0 56px;
  padding: 34px 34px 26px;
  background: var(--brown);
  color: var(--cream);
  border-radius: 12px;
}
.ep-kosten__calc-eyebrow {
  margin: 0 0 12px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orange);
}
.ep-kosten__calc-claim {
  margin: 0 0 28px;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(21px, 2.2vw, 27px);
  line-height: 1.3;
  color: var(--cream);
  max-width: 30ch;
}
.ep-kosten__steps {
  display: flex;
  align-items: stretch;
  gap: 18px;
  flex-wrap: wrap;
}
.ep-kosten__step {
  flex: 1 1 180px;
  padding: 18px 20px;
  border: 1px solid rgba(246, 245, 242, 0.22);
  border-radius: 8px;
}
.ep-kosten__step--accent {
  border-color: var(--orange);
  background: rgba(186, 82, 41, 0.16);
}
.ep-kosten__step-lbl {
  display: block;
  font-size: 13px;
  letter-spacing: 0.02em;
  color: rgba(246, 245, 242, 0.68);
  margin-bottom: 6px;
}
.ep-kosten__step-num {
  display: block;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.1;
  color: var(--cream);
}
.ep-kosten__step--accent .ep-kosten__step-num { color: #f0a87f; }
.ep-kosten__arrow {
  align-self: center;
  color: var(--orange);
  font-size: 22px;
  line-height: 1;
}
.ep-kosten__assump {
  margin: 24px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(246, 245, 242, 0.18);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(246, 245, 242, 0.72);
  max-width: 78ch;
}
.ep-kosten__assump strong { color: var(--cream); }
.ep-kosten__assump .ep-inline-link { color: #f0a87f; text-decoration-color: #f0a87f; }
.ep-kosten__assump .ep-inline-link:hover { color: var(--cream); }
@media (max-width: 760px) {
  .ep-kosten__calc { padding: 24px 20px 20px; }
  .ep-kosten__arrow { display: none; }
  .ep-kosten__steps { gap: 12px; }
  .ep-kosten__step { flex: 1 1 100%; }
}

.ep-kosten__analogy {
  margin: 56px 0 0;
  padding: 30px 34px;
  background: var(--cream-warm);
  border-left: 3px solid var(--orange);
  border-radius: 0 10px 10px 0;
  max-width: 82ch;
}
.ep-kosten__analogy p {
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.6;
  color: var(--brown-soft);
}
.ep-kosten__analogy p:last-child { margin-bottom: 0; }
.ep-kosten__analogy strong { color: var(--brown); }
.ep-kosten__analogy-lead {
  font-family: var(--font-serif) !important;
  font-weight: 700;
  font-size: 21px !important;
  color: var(--brown) !important;
}
.ep-kosten__analogy-note { font-size: 15px !important; color: var(--brown-mute) !important; }
@media (max-width: 620px) {
  .ep-kosten__analogy { padding: 22px 20px; }
}

.ep-kosten__kicker {
  margin: 52px 0 0;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 29px);
  line-height: 1.35;
  color: var(--brown);
}

.ep-cta-row--dual { gap: 12px; flex-wrap: wrap; }

/* ---------- Inline demo-verwijzingen ---------- */
.ep-demo-inline {
  margin: 18px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--brown-mute);
}
.ep-demo-inline--center { text-align: center; }
.ep-demo-inline a {
  color: var(--orange);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  white-space: nowrap;
}
.ep-demo-inline a:hover { color: var(--orange-deep); }
.ep-mobile-link--demo { color: var(--orange) !important; }

/* Link uit een vergelijkingsrij naar het voorbeelddocument */
.ep-cmp__link { margin: 14px 0 0; }
.ep-cmp__link .ep-btn { display: inline-flex; align-items: center; }

/* ============================================================
   R32 — Accordions (belofte + kostensectie), iconen links,
   rekenvoorbeeld zonder herbeleggingsstap.
   ============================================================ */

.ep-acc-list {
  margin: 40px 0 0;
  border-top: 1px solid var(--border);
}
.ep-acc-list--wide { margin-top: 24px; }

.ep-acc {
  border-bottom: 1px solid var(--border);
}
.ep-acc > summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 4px;
  cursor: pointer;
  list-style: none;
  transition: color 0.15s ease;
}
.ep-acc > summary::-webkit-details-marker { display: none; }
.ep-acc > summary:hover { color: var(--orange-deep); }
.ep-acc > summary:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
  border-radius: 3px;
}
.ep-acc__num {
  flex: none;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--orange);
  width: 26px;
}
.ep-acc__title {
  flex: 1 1 auto;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(18px, 1.9vw, 21px);
  line-height: 1.3;
  color: inherit;
}
.ep-acc__chev {
  flex: none;
  width: 10px; height: 10px;
  margin-right: 8px;
  border-right: 2.5px solid var(--orange);
  border-bottom: 2.5px solid var(--orange);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.ep-acc[open] > summary .ep-acc__chev { transform: rotate(-135deg); }
.ep-acc__body {
  padding: 0 42px 22px;
}
.ep-acc__body p {
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
  color: var(--brown-soft);
  max-width: 78ch;
}
@media (max-width: 620px) {
  .ep-acc > summary { gap: 12px; padding: 16px 2px; }
  .ep-acc__num { width: 22px; font-size: 11px; }
  .ep-acc__body { padding: 0 0 18px 34px; }
}

/* Rekenvoorbeeld: drie gelijke stappen, laatste als eindbedrag */

/* ---------- Iconen links van de titel op mobiel ----------
   Verlaagt de hoogte van de ingeklapte kaarten aanzienlijk. */
@media (max-width: 980px) {
  .ep-pillar,
  .ep-pattern-card {
    display: grid;
    grid-template-columns: 30px 1fr;
    column-gap: 14px;
    row-gap: 12px;
    align-items: center;
  }
  .ep-pillar__icon,
  .ep-pattern-card__icon {
    grid-column: 1; grid-row: 1;
    margin-bottom: 0;
    align-self: center;
  }
  .ep-pillar__title,
  .ep-pattern__title {
    grid-column: 2; grid-row: 1;
    margin: 0;
    padding-right: 26px;
  }
  .ep-pillar__body,
  .ep-pattern-card > p {
    grid-column: 1 / -1; grid-row: 2;
    margin: 0;
  }
  .ep-fold-chev { top: 31px; }
}

/* ============================================================
   R33 — Urgentie-ronde: tool-glimpse, mechanisme-blok,
   rekenvoorbeeld-punch, FAQ-groepen, impact met echte bedragen.
   ============================================================ */

/* ---------- Tool glimpse direct onder de hero ---------- */
.ep-glimpse {
  padding-top: 0;
  padding-bottom: 72px;
  background: linear-gradient(180deg, var(--cream-warm) 0%, var(--cream) 46%);
  border-top: none;
}
.ep-glimpse__figure { margin: 0; }
.ep-glimpse__figure .ep-shot__img {
  display: block;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 40px 90px -46px rgba(56, 44, 39, 0.6), 0 2px 10px rgba(56, 44, 39, 0.07);
  background: var(--cream);
  cursor: zoom-in;
}
.ep-glimpse__cap {
  margin: 18px auto 0;
  max-width: 78ch;
  font-size: 15px;
  line-height: 1.6;
  color: var(--brown-mute);
  text-align: center;
}
.ep-glimpse__cap strong { display: block; color: var(--brown); font-size: 17px; margin-bottom: 4px; }
.ep-glimpse .ep-stats-strip { margin-top: 44px; }
.ep-glimpse__src {
  margin: 16px 0 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--brown-mute);
  text-align: center;
}
@media (max-width: 620px) {
  .ep-glimpse { padding-bottom: 52px; }
  .ep-glimpse__cap { font-size: 14px; }
  .ep-glimpse__cap strong { font-size: 16px; }
}

/* ---------- Mechanisme-blok in de kostensectie ---------- */
.ep-kosten__mech {
  margin: 44px 0 0;
  padding: 30px 34px;
  background: var(--cream-warm);
  border: 1px solid var(--border);
  border-radius: 10px;
  max-width: 82ch;
}
.ep-kosten__mech-title {
  margin: 0 0 14px;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(21px, 2.2vw, 26px);
  line-height: 1.25;
  color: var(--brown);
}
.ep-kosten__mech p {
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--brown-soft);
}
.ep-kosten__mech p:last-child { margin-bottom: 0; }
.ep-kosten__mech strong { color: var(--brown); }
.ep-kosten__mech-close {
  padding-top: 14px;
  border-top: 1px solid var(--border);
  font-weight: 600;
  color: var(--brown) !important;
}
@media (max-width: 620px) {
  .ep-kosten__mech { padding: 22px 20px; }
}

/* ---------- Rekenvoorbeeld: punch onder de stappen ---------- */
.ep-kosten__punch {
  margin: 26px 0 0;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(20px, 2.1vw, 25px);
  line-height: 1.35;
  color: #f0a87f;
  max-width: 30ch;
}

/* ---------- Kicker met slotregel ---------- */
.ep-kosten__kicker-punch {
  display: block;
  margin-top: 14px;
  color: var(--orange-deep);
}

/* ---------- Richting-label bij de pijlers ---------- */
.ep-impact__dir {
  margin: 0 0 10px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brown-mute);
}
.ep-impact__score { font-size: 13px; }
@media (max-width: 720px) {
  .ep-impact__bar { grid-template-columns: 22px 1fr 58px; }
}

/* ---------- FAQ-groepen ---------- */
.ep-faq-group {
  margin: 44px 0 6px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--orange);
}
.ep-faq-group:first-of-type { margin-top: 30px; }

/* ============================================================
   R34 — Uitlijning: kostensectie in één kolom, pakketten
   horizontaal gelijk, hero-trustregel, menu als reis.
   ============================================================ */

/* ---------- Kostensectie: alles op één linkerlijn ---------- */
.ep-kosten__col { max-width: 900px; }
.ep-kosten__col > * { max-width: none; }
.ep-kosten .ep-h2 { max-width: 24ch; }
.ep-kosten .ep-body-lg { max-width: none; }
.ep-kosten__mech,
.ep-kosten__analogy,
.ep-kosten__assump { max-width: none; }
.ep-kosten .ep-acc__body p { max-width: none; }
.ep-kosten__sub {
  text-align: left;
  margin: 56px 0 0;
}
.ep-kosten .ep-acc-list--wide { margin-top: 20px; }
.ep-kosten__kicker { max-width: none; }
.ep-kosten .ep-cta-row { justify-content: flex-start; }
@media (max-width: 620px) {
  .ep-kosten .ep-cta-row--dual > .ep-btn { flex: 1 1 100%; justify-content: center; }
}

/* ---------- Pakketten horizontaal uitlijnen ---------- */
@media (min-width: 981px) {
  .ep-pkg-grid { align-items: stretch; }
  .ep-pkg { height: 100%; }
  /* Badge op dezelfde hoogte bij alle drie, ook bij de featured kaart
     die een dikkere rand heeft. */
  .ep-pkg__badge { top: -13px; }
  .ep-pkg--featured .ep-pkg__badge { top: -14px; }
  /* Naam, subtitel en prijs zijn per kaart even hoog; de payoff niet.
     Vaste hoogte van drie regels zodat de bullets gelijk beginnen. */
  .ep-pkg__payoff {
    min-height: 132px;
    display: flex;
    align-items: center;
  }
  /* Featurelijst duwt de knop naar de onderkant van elke kaart. */
  .ep-pkg__features { flex-grow: 1; }
  .ep-pkg__body > .ep-btn { margin-top: auto; }
  /* Gelijke bodemruimte, ook als de garantieregel verschilt in hoogte. */
  .ep-pkg__assure { min-height: 46px; margin-bottom: 0; }
}

@media (min-width: 1200px) {
  .ep-pkg__payoff { min-height: 106px; }
}

/* ============================================================
   R35 — Trust-icoontjes naast de hero, stappenplan, punch op
   twee regels, kicker over de volle kolom.
   ============================================================ */

/* ---------- Hero met stille trust-kolom rechts ---------- */
@media (min-width: 981px) {
  .ep-hero__grid { grid-template-columns: 1fr auto; gap: 64px; align-items: center; }
  .ep-hero__copy { max-width: 660px; }
}
.ep-trust {
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 250px;
}
.ep-trust a {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  align-items: start;
  font-size: 14px;
  line-height: 1.4;
  color: var(--brown-soft);
  transition: color 0.15s ease;
}
.ep-trust a:hover { color: var(--orange-deep); }
.ep-trust svg { width: 20px; height: 20px; color: var(--orange); margin-top: 1px; }
.ep-trust a:hover svg { color: var(--orange-deep); }
@media (max-width: 980px) {
  .ep-trust {
    flex-direction: row;
    flex-wrap: wrap;
    max-width: none;
    gap: 12px 26px;
    margin-top: 26px;
  }
  .ep-trust a { font-size: 13px; grid-template-columns: 17px 1fr; gap: 9px; }
  .ep-trust svg { width: 17px; height: 17px; }
}

/* ---------- Rekenvoorbeeld: punch op twee regels ---------- */
.ep-kosten__punch { max-width: 46ch; }

/* ---------- Stappenplan als eigen sectie ---------- */
.ep-stappen-sec { background: var(--cream-warm); }
.ep-stappen__list {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  counter-reset: none;
}
.ep-stappen__list > li {
  padding: 0 24px 0 0;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
}
.ep-stappen__list > li:not(:first-child) { padding-left: 24px; }
.ep-stappen__list > li:last-child { border-right: none; padding-right: 0; }
.ep-stappen__n {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  margin-bottom: 16px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--cream);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 15px;
  color: var(--brown-mute);
  flex: none;
}
.ep-stappen__list h3 {
  margin: 0 0 8px;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.25;
  color: var(--brown);
}
.ep-stappen__list p {
  margin: 0 0 18px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--brown-soft);
  flex-grow: 1;
}
.ep-stappen__who {
  display: inline-block;
  align-self: flex-start;
  padding: 5px 11px;
  border: 1px solid var(--border);
  border-radius: 100px;
  background: var(--cream);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brown-mute);
  white-space: nowrap;
}
.ep-stappen__list > li.is-here .ep-stappen__n {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}
.ep-stappen__list > li.is-here h3 { color: var(--orange-deep); }
.ep-stappen__list > li.is-here .ep-stappen__who {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}
.ep-stappen__note {
  margin: 40px 0 0;
  padding-top: 22px;
  border-top: 1px solid var(--border);
  font-size: 16px;
  line-height: 1.65;
  color: var(--brown-soft);
  max-width: 80ch;
}
@media (max-width: 860px) {
  .ep-stappen__list { grid-template-columns: 1fr 1fr; gap: 28px 0; margin-top: 36px; }
  .ep-stappen__list > li { padding: 0 20px !important; }
  .ep-stappen__list > li:nth-child(2n) { border-right: none; padding-right: 0 !important; }
  .ep-stappen__list > li:nth-child(2n+1) { padding-left: 0 !important; }
}
@media (max-width: 520px) {
  .ep-stappen__list { grid-template-columns: 1fr; gap: 26px; }
  .ep-stappen__list > li { border-right: none !important; padding: 0 !important; }
  .ep-stappen__list p { margin-bottom: 12px; }
}

/* ---------- Bedragen in het rekenvoorbeeld breken nooit ---------- */
.ep-kosten__step-num {
  white-space: nowrap;
  font-size: clamp(22px, 2.7vw, 32px);
}
.ep-kosten__step--accent .ep-kosten__step-num { font-size: clamp(24px, 3vw, 34px); }

/* De belofte-band bevat nu ook de zes pijlers; de legenda krijgt lucht
   en de voettekst blijft van de cellen gescheiden. */
.ep-belofte-band .ep-impact-legend { margin-top: 40px; }
/* Conclusieblok en case moeten oplichten tegen de warme band, niet erin
   verdwijnen. En de chevron van de case wint van de collapsible-reset. */
.ep-belofte-band .ep-impact-conclusion { background: var(--cream); }
.ep-belofte-band .ep-impact-case summary:hover { background: var(--cream-warm); }
.ep-impact-case .ep-collapsible__chev { display: inline-block !important; }

/* ===================================================================
   ARTHUR-ITERATIE: kerncijfers, genummerde onderdelen, glimpse-keys
   =================================================================== */

/* --- Kerncijfers direct onder de hero --- */
.ep-kerncijfers__claim {
  margin: 0 0 20px;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 21px;
  line-height: 1.35;
  color: var(--brown);
  letter-spacing: -0.01em;
  text-align: center;
}
.ep-kerncijfers__claim-sub {
  display: block;
  margin-top: 6px;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: var(--brown-mute);
  letter-spacing: 0;
}
.ep-stats-strip--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px) {
  .ep-stats-strip--3 { grid-template-columns: 1fr; }
  .ep-stats-strip--3 > li {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
  .ep-stats-strip--3 > li:nth-child(odd):not(:last-child) { border-right: none; }
  .ep-stats-strip--3 > li:last-child { border-bottom: none; }
  .ep-kerncijfers__claim { font-size: 18px; text-align: left; }
  .ep-kerncijfers__claim-sub { font-size: 15px; }
}

/* --- Nummers 1 t/m 6 bij de onderdelen --- */
.ep-impact__head { align-items: center; }
.ep-impact__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  margin-right: 8px;
  flex: none;
  border-radius: 50%;
  background: var(--orange);
  color: #fff;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
}
.ep-impact__head .ep-impact__label { display: inline; }
.ep-impact__head > .ep-impact__n + .ep-impact__label { margin-right: auto; }

/* --- Glimpse: kop + genummerde legenda boven de screenshot --- */
.ep-glimpse__head { text-align: center; margin-bottom: 22px; }
.ep-glimpse__head .ep-eyebrow { text-align: center; margin-bottom: 12px; }
.ep-glimpse__head .ep-h2 { text-align: center; margin: 0; }
#kerncijfers.ep-glimpse { padding-top: 0; padding-bottom: 56px; }
#kerncijfers .ep-stats-strip { margin-top: 0; }
#tool-glimpse.ep-glimpse { padding-top: 88px; background: var(--cream); border-top: 1px solid var(--border); }
.ep-glimpse__keys {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.ep-glimpse__keys > li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px 5px 6px;
  border: 1px solid var(--border);
  border-radius: 100px;
  background: var(--cream);
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 13px;
  color: var(--brown-soft);
  white-space: nowrap;
}
.ep-glimpse__key-n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: var(--orange);
  color: #fff;
  font-weight: 700;
  font-size: 11px;
  line-height: 1;
}
@media (max-width: 720px) {
  .ep-glimpse__keys { gap: 6px; }
  .ep-glimpse__keys > li { font-size: 12px; padding: 4px 10px 4px 5px; }
}

/* --- Stappenplan: "Dit levert je op" --- */
.ep-stappen__list p.ep-stappen__yield {
  flex-grow: 0;
  margin: 0 0 18px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  font-size: 14px;
  line-height: 1.5;
  color: var(--brown-mute);
}
.ep-stappen__list p.ep-stappen__yield strong { color: var(--brown); }

/* ===================================================================
   ARTHUR-ITERATIE 2: hero-breedte, stappen-uitlijning, mobiel
   =================================================================== */

/* ---------- Hero: kop op drie regels, trust naast de lead ---------- */
/* De kop krijgt de volle containerbreedte. De lead en de trust-kolom
   zitten in een eigen split-grid, zodat hun bovenkanten gelijk liggen. */
/* Alles hieronder is gescopet op .ep-hero--split, zodat de Engelse
   pagina (die dezelfde stylesheet gebruikt) ongemoeid blijft. */
.ep-hero--split .ep-hero__grid { display: block; }
.ep-hero--split .ep-hero__copy { max-width: 100%; }
.ep-hero--split .ep-h1-display { max-width: 100%; }
.ep-hero--split .ep-lead { max-width: 100%; }
.ep-hero--split .ep-hero__split { margin-top: 4px; }

@media (min-width: 981px) {
  .ep-hero--split .ep-hero__split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 64px;
    align-items: start;
  }
  .ep-hero--split .ep-hero__body { max-width: 66ch; }
  .ep-hero--split .ep-hero__body > :first-child { margin-top: 0; }
  .ep-hero--split .ep-trust { margin-top: 0; padding-top: 4px; }
  .ep-hero--split .ep-h1-display { font-size: clamp(38px, 4.4vw, 58px); }
}
@media (max-width: 980px) {
  .ep-hero--split .ep-h1-display { font-size: clamp(34px, 6vw, 56px); }
}

/* ---------- Koppen breken op maximaal twee regels ---------- */
.ep-h2, .ep-h3 { text-wrap: balance; }
.ep-h1-display { text-wrap: pretty; }
.ep-belofte-band__head .ep-h2 { max-width: 30ch; }
.ep-glimpse__head .ep-h2 { max-width: 34ch; margin-left: auto; margin-right: auto; }

/* ---------- Trust-kolom: nette rijen op tablet en mobiel ---------- */
@media (max-width: 980px) {
  .ep-trust {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 28px;
    max-width: 100%;
    margin-top: 28px;
  }
}
@media (max-width: 560px) {
  .ep-trust { grid-template-columns: 1fr; gap: 12px; }
}

/* ---------- Knoppen vullen de breedte op smalle schermen ---------- */
@media (max-width: 560px) {
  .ep-hero__ctas { flex-direction: column; align-items: stretch; gap: 10px; }
  .ep-hero__ctas .ep-btn { width: 100%; }
  .ep-cta-row { flex-direction: column; align-items: stretch; }
  .ep-cta-row .ep-btn { width: 100%; }
  .ep-cta-row--dual { gap: 10px; }
  .ep-belofte-band__foot { flex-direction: column; align-items: flex-start; gap: 14px; }
  .ep-belofte-band__foot .ep-btn { width: 100%; }
}

/* ---------- Stappenplan: rijen lijnen uit over alle kolommen ---------- */
.ep-stappen__list > li > .ep-stappen__who { justify-self: start; align-self: start; }
@supports (grid-template-rows: subgrid) {
  @media (min-width: 861px) {
    .ep-stappen__list:has(.ep-stappen__yield) { grid-template-rows: auto auto 1fr auto auto; }
    .ep-stappen__list:has(.ep-stappen__yield) > li { display: grid; grid-template-rows: subgrid; grid-row: span 5; }
  }
  @media (min-width: 521px) and (max-width: 860px) {
    .ep-stappen__list:has(.ep-stappen__yield) { grid-template-rows: repeat(2, auto auto 1fr auto auto); }
    .ep-stappen__list:has(.ep-stappen__yield) > li { display: grid; grid-template-rows: subgrid; grid-row: span 5; }
  }
}
.ep-stappen__list p.ep-stappen__yield { margin-bottom: 16px; }
@media (max-width: 520px) {
  .ep-stappen__list p.ep-stappen__yield { margin-bottom: 14px; }
}

/* ---------- Hero-kop: altijd exact drie regels ----------
   Elke regel is een eigen blok dat niet mag afbreken. De fontgrootte
   krijgt daarnaast een bovengrens op basis van de vensterbreedte, zodat
   de langste regel ("Je overweegt te emigreren.") nooit buiten beeld valt. */
.ep-h1-display--lines > span { display: block; white-space: nowrap; }
@media (min-width: 981px) {
  .ep-hero--split .ep-h1-display--lines { font-size: min(clamp(38px, 4.4vw, 58px), calc((100vw - 40px) / 11.8)); }
}
@media (max-width: 980px) {
  .ep-hero--split .ep-h1-display--lines { font-size: min(clamp(34px, 6vw, 56px), calc((100vw - 40px) / 11.8)); }
}

/* ---------- Voorbeeldcasus staat boven de zes onderdelen ---------- */
.ep-belofte-band .ep-impact-case { margin-top: 0; margin-bottom: 0; }
.ep-belofte-band .ep-impact-legend { margin-top: 32px; }

/* ---------- Mobiele correcties (7 aug) ---------- */
@media (max-width: 720px) {
  /* Reviews: sterren en naam centreren zodat de kaart aansluit op de
     gecentreerde sectiekop. De quote blijft links uitgelijnd; gecentreerde
     lopende tekst over meerdere regels leest slechter. */
  .ep-review { align-items: center; }
  .ep-review__stars { text-align: center; width: 100%; }
  .ep-review__person { justify-content: center; }
  .ep-review__id { align-items: center; text-align: center; }

  /* Bronnenkaarten: lange landennamen mogen over twee regels. Een latere
     regel zette min-width:120px met flex:0 0 auto, waardoor "Verenigde
     Arabische Emiraten" buiten de kaart viel. */
  .ep-srcland__item { grid-template-columns: 26px 1fr; }
  .ep-srcland__name {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    overflow-wrap: anywhere;
  }
  .ep-srcland__name .ep-srcland__tag { display: inline-block; margin-left: 6px; }
}

