/* ═══════════════════════════════════════════════════════════
   NDS · NDigital Design System — implementation stylesheet
   Ported from the NDS design bundle (tokens.css + nds-builder).
   Target: WordPress child theme (ndigital-nl). Tokens + components.
   ═══════════════════════════════════════════════════════════ */

:root {
  /* Ink / navy */
  --nds-ink-950:#0a0f2c; --nds-ink-900:#0f1640; --nds-ink-800:#1c2561;
  --nds-ink-700:#2a3688; --nds-ink-600:#3b47b0; --nds-ink-500:#5a64d4;
  /* Coral */
  --nds-coral-700:#c8432f; --nds-coral-600:#e55240; --nds-coral-500:#f0685a;
  --nds-coral-400:#f9a699; --nds-coral-100:#fde7e3;
  /* Warm neutrals */
  --nds-paper:#faf8f5; --nds-surface:#ffffff;
  --nds-n-50:#f4f1ec; --nds-n-100:#e8e3db; --nds-n-200:#d4cec2; --nds-n-300:#b5ad9e;
  --nds-n-400:#8a8474; --nds-n-500:#5f5b50; --nds-n-600:#3f3d36; --nds-n-700:#2a2924; --nds-n-800:#1a1916;
  /* Semantic */
  --nds-success:#2d7a4f; --nds-warning:#c48a2b; --nds-error:#c8432f; --nds-info:#2a3688;
  /* Type */
  --nds-font-display:"Instrument Sans","Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --nds-font-sans:"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --nds-font-serif:"Instrument Serif","Times New Roman",Georgia,serif;
  --nds-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --nds-lh-tight:1.05; --nds-lh-snug:1.2; --nds-lh-body:1.55;
  /* Space (4px grid) */
  --nds-s-1:4px; --nds-s-2:8px; --nds-s-3:12px; --nds-s-4:16px; --nds-s-5:24px;
  --nds-s-6:32px; --nds-s-7:48px; --nds-s-8:64px; --nds-s-9:96px; --nds-s-10:128px;
  --nds-pad:80px;              /* horizontal page padding (desktop) */
  --nds-section:96px;          /* vertical section rhythm */
  --nds-max:1440px;
  /* Radius / shadow / motion */
  --nds-r-sm:4px; --nds-r-md:8px; --nds-r-lg:12px; --nds-r-full:999px;
  --nds-sh-sm:0 2px 6px rgba(15,22,64,.06), 0 1px 2px rgba(15,22,64,.04);
  --nds-sh-md:0 8px 24px rgba(15,22,64,.08), 0 2px 6px rgba(15,22,64,.04);
  --nds-ease:cubic-bezier(.2,.7,.3,1); --nds-ease-out:cubic-bezier(.16,1,.3,1);
  --nds-d-fast:120ms; --nds-d-med:220ms; --nds-d-slow:420ms;
}

/* ── Base ── */
.nds, .nds *, .nds *::before, .nds *::after { box-sizing:border-box; }
.nds {
  background:var(--nds-paper); color:var(--nds-n-800);
  font-family:var(--nds-font-sans); font-size:16px; line-height:var(--nds-lh-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.nds ::selection { background:var(--nds-coral-400); color:var(--nds-ink-950); }
.nds img { max-width:100%; height:auto; display:block; }
.nds a { color:inherit; }

/* ── Type ── */
.nds-display { font-family:var(--nds-font-display); font-weight:500; letter-spacing:-.03em; line-height:var(--nds-lh-tight); color:var(--nds-ink-900); margin:0; }
.nds-display em, .nds h1 em, .nds h2 em {
  font-family:var(--nds-font-serif); font-style:italic; font-weight:400;
  letter-spacing:-.01em; color:var(--nds-coral-600);
}
.nds-eyebrow {
  font-family:var(--nds-font-mono); font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:.14em; color:var(--nds-coral-700);
}
.nds-eyebrow--dark { color:var(--nds-coral-500); }
.nds-mono { font-family:var(--nds-font-mono); letter-spacing:.04em; }
.nds-lead { font-size:19px; color:var(--nds-n-600); line-height:1.55; }
.nds-micro { font-family:var(--nds-font-mono); font-size:12px; letter-spacing:.04em; color:var(--nds-n-500); }

/* ── Layout ── */
.nds-wrap { max-width:var(--nds-max); margin:0 auto; }
.nds-section { padding:var(--nds-section) var(--nds-pad); }
.nds-section--surface { background:var(--nds-surface); border-top:1px solid var(--nds-n-100); border-bottom:1px solid var(--nds-n-100); }
.nds-section--ink { background:var(--nds-ink-950); color:#fff; }
.nds-grid { display:grid; gap:80px; }
.nds-grid--hero { grid-template-columns:1.35fr 1fr; align-items:end; }
.nds-grid--situation { grid-template-columns:1fr 1.6fr; align-items:start; }
.nds-grid--faq { grid-template-columns:1fr 2fr; align-items:start; }
.nds-grid--founder { grid-template-columns:.9fr 1.4fr; align-items:center; }
.nds-grid--cta { grid-template-columns:1.4fr 1fr; align-items:center; gap:64px; }

/* ── Buttons ── */
.nds-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--nds-font-sans); font-weight:500; letter-spacing:-.005em;
  border-radius:var(--nds-r-sm); cursor:pointer; text-decoration:none;
  border:1px solid transparent; padding:12px 20px; font-size:15px; min-height:44px;
  transition:transform var(--nds-d-fast) var(--nds-ease), background var(--nds-d-fast) var(--nds-ease), box-shadow var(--nds-d-fast) var(--nds-ease);
}
.nds-btn:hover { transform:translateY(-1px); }
.nds-btn:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(229,82,64,.25); }
.nds-btn--sm { padding:8px 14px; font-size:13px; min-height:34px; }
.nds-btn--lg { padding:16px 28px; font-size:16px; min-height:54px; }
.nds-btn--primary { background:var(--nds-coral-600); border-color:var(--nds-coral-600); color:#fff; }
.nds-btn--primary:hover { background:var(--nds-coral-700); border-color:var(--nds-coral-700); }
.nds-btn--secondary { background:var(--nds-ink-900); border-color:var(--nds-ink-900); color:#fff; }
.nds-btn--outline { background:transparent; border-color:var(--nds-ink-900); color:var(--nds-ink-900); }
.nds-btn--outline:hover { background:var(--nds-ink-900); color:#fff; }
.nds-btn--link { background:none; border:none; padding:0; min-height:0; color:var(--nds-coral-700); text-decoration:underline; text-underline-offset:4px; }
.nds-btn svg { flex:0 0 auto; }

/* ── Chip ── */
.nds-chip {
  display:inline-flex; align-items:center; gap:6px; padding:4px 10px;
  border-radius:var(--nds-r-full); font-size:12px; font-weight:500; letter-spacing:.02em;
  background:var(--nds-n-100); color:var(--nds-n-700);
}
.nds-chip--accent { background:var(--nds-coral-100); color:var(--nds-coral-700); }
.nds-chip--brand { background:var(--nds-ink-900); color:#fff; }

/* ── Header ── */
.nds-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--nds-pad); border-bottom:1px solid var(--nds-n-100);
  background:var(--nds-paper);
}
.nds-header__nav { display:flex; align-items:center; gap:36px; font-size:15px; font-weight:500; color:var(--nds-n-700); }
.nds-header__nav a { text-decoration:none; }
.nds-header__nav a:hover { color:var(--nds-coral-700); }
.nds-logo { height:22px; display:block; }

/* ── Hero ── */
.nds-hero { padding:88px var(--nds-pad) 72px; }
.nds-hero h1 { font-size:88px; line-height:.98; letter-spacing:-.03em; margin:20px 0 0; }
.nds-hero__actions { margin-top:32px; display:flex; gap:12px; flex-wrap:wrap; }
.nds-hero__micro { margin-top:16px; }

/* ── Image placeholder (hatched) ── */
.nds-imgph {
  display:flex; align-items:center; justify-content:center;
  font-family:var(--nds-font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  border-radius:var(--nds-r-sm); background:var(--nds-ink-900); color:#8e96c7;
  background-image:repeating-linear-gradient(135deg, transparent 0 14px, rgba(255,255,255,.04) 14px 15px);
  text-align:center; padding:16px;
}
.nds-imgph--paper { background:var(--nds-n-100); color:var(--nds-n-500);
  background-image:repeating-linear-gradient(135deg, transparent 0 14px, rgba(255,255,255,.3) 14px 15px); }
.nds-imgph--coral { background:var(--nds-coral-600); color:#fff;
  background-image:repeating-linear-gradient(135deg, transparent 0 14px, rgba(255,255,255,.12) 14px 15px); }

/* ── Section heads ── */
.nds-sechead { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:32px; }
.nds-sechead h2, .nds-h2 { font-family:var(--nds-font-display); font-weight:500; font-size:52px; line-height:1.02; letter-spacing:-.03em; color:var(--nds-ink-900); margin:16px 0 0; }
.nds-h2--sm { font-size:44px; line-height:1.05; }

/* ── Numbered situation rows ── */
.nds-numrow { display:grid; grid-template-columns:auto 1fr; gap:24px; padding:28px 0; border-top:1px solid var(--nds-n-100); align-items:center; }
.nds-numrow__n { font-family:var(--nds-font-mono); font-size:13px; color:var(--nds-coral-700); padding-top:2px; }
.nds-numrow__t { font-size:22px; color:var(--nds-ink-900); line-height:1.35; letter-spacing:-.01em; }

/* ── Steps (bordered 4-up) ── */
.nds-steps { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--nds-n-100); border-radius:var(--nds-r-md); overflow:hidden; }
.nds-step { padding:32px; background:var(--nds-surface); border-right:1px solid var(--nds-n-100); min-height:320px; display:flex; flex-direction:column; }
.nds-step:last-child { border-right:none; }
.nds-step__n { font-family:var(--nds-font-mono); font-size:13px; color:var(--nds-coral-700); }
.nds-step__t { font-family:var(--nds-font-display); font-weight:500; font-size:26px; color:var(--nds-ink-900); margin-top:40px; line-height:1.1; letter-spacing:-.01em; }
.nds-step__d { font-size:15px; color:var(--nds-n-600); margin-top:16px; line-height:1.55; }

/* ── Nee-teller ── */
.nds-teller { background:var(--nds-ink-900); color:#fff; border:1px solid var(--nds-ink-700); border-radius:var(--nds-r-md); overflow:hidden; }
.nds-teller__in { padding:40px 48px; display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:center; }
.nds-teller__dot { width:8px; height:8px; border-radius:50%; background:var(--nds-coral-500); display:inline-block; }
.nds-teller__hd { display:flex; align-items:center; gap:10px; }
.nds-teller__t { font-family:var(--nds-font-display); font-weight:500; font-size:38px; margin-top:14px; line-height:1.05; color:#fff; }
.nds-teller__d { font-size:15px; color:rgba(255,255,255,.68); margin-top:14px; line-height:1.55; max-width:460px; }
.nds-teller__stats { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.nds-stat { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:var(--nds-r-sm); padding:24px 20px; }
.nds-stat__n { font-family:var(--nds-font-display); font-weight:500; font-size:64px; line-height:1; color:#fff; font-variant-numeric:tabular-nums; }
.nds-stat__n--accent { color:var(--nds-coral-500); }
.nds-stat__l { font-family:var(--nds-font-mono); font-size:12px; color:rgba(255,255,255,.6); margin-top:10px; letter-spacing:.04em; }

/* ── Case cards ── */
.nds-cases { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.nds-case { background:var(--nds-surface); border:1px solid var(--nds-n-100); border-radius:var(--nds-r-md); padding:32px; display:flex; flex-direction:column; min-height:280px; text-decoration:none; transition:box-shadow var(--nds-d-med) var(--nds-ease), transform var(--nds-d-med) var(--nds-ease); }
.nds-case:hover { box-shadow:var(--nds-sh-md); transform:translateY(-2px); }
.nds-case__metric { font-family:var(--nds-font-display); font-weight:500; font-size:72px; color:var(--nds-ink-900); margin-top:24px; line-height:.95; letter-spacing:-.03em; }
.nds-case__unit { font-family:var(--nds-font-mono); font-size:13px; color:var(--nds-coral-700); margin-top:8px; letter-spacing:.04em; }
.nds-case__d { font-size:15px; color:var(--nds-n-600); margin-top:16px; line-height:1.55; flex:1; }
.nds-case__cta { margin-top:24px; display:flex; align-items:center; gap:8px; color:var(--nds-coral-700); font-size:14px; font-weight:500; }

/* ── FAQ ── */
.nds-faq__item { border-top:1px solid var(--nds-n-100); }
.nds-faq__q { width:100%; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 0; background:none; border:none; cursor:pointer; text-align:left; font-family:var(--nds-font-sans); font-size:22px; font-weight:600; color:var(--nds-ink-900); letter-spacing:-.01em; }
.nds-faq__sign { font-size:24px; color:var(--nds-coral-600); flex-shrink:0; line-height:1; }
.nds-faq__a { font-size:17px; color:var(--nds-n-600); line-height:1.6; padding-bottom:28px; max-width:760px; }

/* ── Form ── */
.nds-form { background:var(--nds-surface); border:1px solid var(--nds-n-100); border-radius:var(--nds-r-md); padding:40px; box-shadow:var(--nds-sh-md); }
.nds-form__row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.nds-label { display:block; font-size:13px; font-weight:500; color:var(--nds-n-700); margin-bottom:6px; }
.nds-input, .nds-textarea {
  width:100%; padding:0 14px; height:44px; background:var(--nds-surface);
  border:1px solid var(--nds-n-200); border-radius:var(--nds-r-sm);
  font-size:15px; font-family:var(--nds-font-sans); color:var(--nds-n-800); outline:none;
  transition:border-color var(--nds-d-fast), box-shadow var(--nds-d-fast);
}
.nds-textarea { min-height:120px; padding:12px 14px; height:auto; resize:vertical; line-height:1.5; }
.nds-input:focus, .nds-textarea:focus { border-color:var(--nds-coral-600); box-shadow:0 0 0 3px rgba(229,82,64,.15); }

/* ── Footer ── */
.nds-footer { background:var(--nds-ink-950); color:#fff; padding:80px var(--nds-pad) 40px; }
.nds-footer__grid { display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:40px; }
.nds-footer__blurb { font-size:16px; color:rgba(255,255,255,.72); margin-top:24px; max-width:320px; line-height:1.55; }
.nds-footer__meta { font-family:var(--nds-font-mono); font-size:12px; color:rgba(255,255,255,.5); margin-top:24px; line-height:1.8; }
.nds-footer__col a { display:block; margin-top:10px; font-size:15px; color:rgba(255,255,255,.85); text-decoration:none; }
.nds-footer__col a:hover { color:var(--nds-coral-500); }
.nds-footer__bar { margin-top:56px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:16px; font-size:12px; color:rgba(255,255,255,.5); font-family:var(--nds-font-mono); flex-wrap:wrap; }

/* ═══ Responsive ═══ */
@media (max-width:1100px){
  :root { --nds-pad:48px; --nds-section:72px; }
  .nds-hero h1 { font-size:64px; }
  .nds-grid { gap:48px; }
  .nds-grid--hero, .nds-grid--situation, .nds-grid--faq, .nds-grid--founder, .nds-grid--cta { grid-template-columns:1fr; }
  .nds-grid--hero { align-items:start; }
  .nds-steps { grid-template-columns:repeat(2,1fr); }
  .nds-step:nth-child(2) { border-right:none; }
  .nds-step:nth-child(-n+2) { border-bottom:1px solid var(--nds-n-100); }
  .nds-cases { grid-template-columns:1fr; }
  .nds-footer__grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  :root { --nds-pad:20px; --nds-section:56px; }
  .nds-hero { padding:56px var(--nds-pad) 48px; }
  .nds-hero h1 { font-size:42px; line-height:1.03; }
  .nds-sechead h2, .nds-h2 { font-size:34px; }
  .nds-h2--sm { font-size:30px; }
  .nds-teller__in { grid-template-columns:1fr; padding:28px 24px; gap:24px; }
  .nds-teller__t { font-size:28px; }
  .nds-stat__n { font-size:48px; }
  .nds-steps { grid-template-columns:1fr; }
  .nds-step { border-right:none; border-bottom:1px solid var(--nds-n-100); min-height:0; }
  .nds-step:last-child { border-bottom:none; }
  .nds-step__t { font-size:22px; margin-top:24px; }
  .nds-case__metric { font-size:56px; }
  .nds-numrow__t { font-size:18px; }
  .nds-faq__q { font-size:18px; }
  .nds-form { padding:24px; }
  .nds-form__row { grid-template-columns:1fr; }
  .nds-header__nav { display:none; }
  .nds-footer__grid { grid-template-columns:1fr; }
  .nds-sechead { flex-direction:column; align-items:flex-start; }
}

/* ═══ Inner-page components ═══ */

/* H1 size scale per screen */
.nds-h1 { font-family:var(--nds-font-display); font-weight:500; color:var(--nds-ink-900); letter-spacing:-.03em; line-height:1; margin:16px 0 0; }
.nds-h1--xl { font-size:88px; line-height:.98; }
.nds-h1--lg { font-size:80px; line-height:.98; }
.nds-h1--md { font-size:76px; line-height:.98; }
.nds-h1--sm { font-size:72px; line-height:1; }

/* Definition rows (Wat je hoort / Voor wie) */
.nds-defrow { padding:24px 0; border-top:1px solid var(--nds-n-100); }
.nds-defrow__h { font-family:var(--nds-font-mono); font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.14em; color:var(--nds-ink-900); }
.nds-defrow__t { font-size:16px; color:var(--nds-n-600); margin-top:10px; line-height:1.6; max-width:520px; }

/* Proof blocks (Bewijs) */
.nds-proofs { display:grid; gap:16px; }
.nds-proof { background:var(--nds-surface); border:1px solid var(--nds-n-100); border-radius:var(--nds-r-md); padding:40px; display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:center; text-decoration:none; }
.nds-proof__num { font-family:var(--nds-font-mono); font-size:14px; color:var(--nds-coral-700); }
.nds-proof__t { font-family:var(--nds-font-display); font-weight:500; font-size:32px; color:var(--nds-ink-900); margin-top:16px; line-height:1.1; letter-spacing:-.02em; }
.nds-proof__d { font-size:16px; color:var(--nds-n-600); margin-top:14px; line-height:1.6; max-width:720px; }
.nds-proof__link { margin-top:20px; color:var(--nds-coral-700); font-size:15px; font-weight:500; font-family:var(--nds-font-mono); }
.nds-proof__art { width:200px; aspect-ratio:4/3; }
.nds-chip--outline { background:transparent; color:var(--nds-n-700); border:1px solid var(--nds-n-200); }

/* Principles (Over Edwin, on ink) */
.nds-principles { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:40px; }
.nds-principle { border-top:2px solid var(--nds-coral-500); padding-top:24px; }
.nds-principle__n { font-family:var(--nds-font-mono); font-size:13px; color:var(--nds-coral-500); }
.nds-principle__t { font-family:var(--nds-font-display); font-weight:500; font-size:28px; margin-top:16px; line-height:1.1; color:#fff; }
.nds-principle__d { font-size:16px; color:rgba(255,255,255,.68); margin-top:14px; line-height:1.6; }

/* Pillar cards (Diensten) */
.nds-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.nds-pillar { background:var(--nds-surface); border:1px solid var(--nds-n-100); border-radius:var(--nds-r-md); padding:32px; min-height:220px; text-decoration:none; display:block; }
.nds-pillar__n { font-family:var(--nds-font-mono); font-size:13px; color:var(--nds-coral-700); }
.nds-pillar__t { font-family:var(--nds-font-display); font-weight:500; font-size:24px; color:var(--nds-ink-900); margin-top:24px; line-height:1.15; letter-spacing:-.01em; }
.nds-pillar__d { font-size:15px; color:var(--nds-n-600); margin-top:14px; line-height:1.55; }

/* LP mini-FAQ */
.nds-miniq { padding:20px 0; border-top:1px solid var(--nds-n-100); }
.nds-miniq__q { font-size:17px; color:var(--nds-ink-900); font-weight:600; }
.nds-miniq__a { font-size:15px; color:var(--nds-n-600); margin-top:6px; line-height:1.55; }

/* Sticky form column */
.nds-sticky { position:sticky; top:24px; }
.nds-formlabel { font-family:var(--nds-font-mono); font-size:12px; color:var(--nds-coral-700); margin-bottom:12px; letter-spacing:.08em; }

/* grids used by inner pages */
.nds-grid--split { grid-template-columns:1fr 1fr; align-items:start; }
.nds-grid--story { grid-template-columns:1fr 1fr; gap:64px; max-width:1180px; }
.nds-grid--oe { grid-template-columns:1.3fr 1fr; align-items:end; }
.nds-grid--lp { grid-template-columns:1.2fr 1fr; gap:72px; align-items:start; }

@media (max-width:1100px){
  .nds-h1--xl { font-size:64px; } .nds-h1--lg { font-size:58px; }
  .nds-h1--md { font-size:56px; } .nds-h1--sm { font-size:52px; }
  .nds-principles, .nds-pillars { grid-template-columns:1fr; gap:32px; }
  .nds-grid--split, .nds-grid--story, .nds-grid--oe, .nds-grid--lp { grid-template-columns:1fr; }
  .nds-proof { grid-template-columns:auto 1fr; }
  .nds-proof__art { display:none; }
  .nds-sticky { position:static; }
}
@media (max-width:680px){
  .nds-h1--xl,.nds-h1--lg,.nds-h1--md,.nds-h1--sm { font-size:38px; line-height:1.05; }
  .nds-proof { padding:24px; grid-template-columns:1fr; gap:16px; }
  .nds-proof__t { font-size:24px; }
}

/* ═══ WP chrome integration (nav from wp_nav_menu, burger, mobile panel) ═══ */
.nds-menu { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:36px; }
.nds-menu li { margin:0; }
.nds-menu a { text-decoration:none; color:var(--nds-n-700); font-size:15px; font-weight:500; }
.nds-menu a:hover { color:var(--nds-coral-700); }
/* the "Plan een eerlijk gesprek" menu item renders as the coral CTA button */
.nds-menu a[href*="eerlijk-gesprek"] {
  background:var(--nds-coral-600); color:#fff; border:1px solid var(--nds-coral-600);
  border-radius:var(--nds-r-sm); padding:8px 14px; font-size:13px;
  display:inline-flex; align-items:center; min-height:34px;
  transition:background var(--nds-d-fast) var(--nds-ease);
}
.nds-menu a[href*="eerlijk-gesprek"]:hover { background:var(--nds-coral-700); color:#fff; }

/* Burger */
.nds-burger { display:none; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; background:none; border:none; cursor:pointer; padding:0; }
.nds-burger span { display:block; height:2px; width:22px; background:var(--nds-ink-900); transition:transform var(--nds-d-med) var(--nds-ease), opacity var(--nds-d-fast); }
.nds-burger.is-open span:first-child { transform:translateY(3.5px) rotate(45deg); }
.nds-burger.is-open span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
.nds-mobile-nav { display:none; background:var(--nds-surface); border-bottom:1px solid var(--nds-n-100); padding:8px var(--nds-pad) 24px; }
.nds-mobile-nav .nds-menu { flex-direction:column; align-items:stretch; gap:0; }
.nds-mobile-nav .nds-menu li { border-top:1px solid var(--nds-n-100); }
.nds-mobile-nav .nds-menu a { display:block; padding:16px 0; font-size:18px; color:var(--nds-ink-900); }
.nds-mobile-nav .nds-menu a[href*="eerlijk-gesprek"] { margin:16px 0 0; justify-content:center; font-size:15px; min-height:48px; }

/* Elementor/Astra reset inside NDS pages */
.nds .nds-sec-wrap { max-width:none !important; padding:0 !important; }
.nds .elementor-widget-html, .nds .elementor-widget-container { margin:0; }
.nds .ast-container, .nds .site-content .ast-container { max-width:none; padding:0; }
.nds .entry-content > * { margin-block:0; }

@media (max-width:900px){
  .nds-header__nav { display:none; }
  .nds-burger { display:flex; }
  .nds-mobile-nav:not([hidden]) { display:block; }
}
/* keep the 88px hero from wrapping badly between 1100 and the 1440 design width */
@media (min-width:1101px) and (max-width:1439px){
  .nds-hero h1, .nds-h1--xl { font-size:72px; }
  .nds-h1--lg { font-size:66px; } .nds-h1--md { font-size:62px; } .nds-h1--sm { font-size:58px; }
  .nds-sechead h2, .nds-h2 { font-size:44px; }
}

/* ═══ Elementor Pro form styled as the NDS form card ═══
   The live form keeps its email routing / honeypot / reCAPTCHA / umami hook;
   only its appearance is mapped onto NDS. */
.nds-formcard {
  background:var(--nds-surface); border:1px solid var(--nds-n-100);
  border-radius:var(--nds-r-md); padding:40px; box-shadow:var(--nds-sh-md);
}
/* textarea + honeypot/recaptcha + submit span the full width */
.nds-formcard .elementor-field-label {
  font-family:var(--nds-font-sans); font-size:13px; font-weight:500;
  color:var(--nds-n-700); margin-bottom:6px; padding:0;
}
.nds-formcard .elementor-field-textual {
  width:100%; height:44px; padding:0 14px; background:var(--nds-surface);
  border:1px solid var(--nds-n-200); border-radius:var(--nds-r-sm);
  font-size:15px; font-family:var(--nds-font-sans); color:var(--nds-n-800);
  box-shadow:none; line-height:1.5;
}
.nds-formcard textarea.elementor-field-textual { height:auto; min-height:120px; padding:12px 14px; resize:vertical; }
.nds-formcard .elementor-field-textual:focus {
  border-color:var(--nds-coral-600); box-shadow:0 0 0 3px rgba(229,82,64,.15); outline:none;
}
.nds-formcard .elementor-field-textual::placeholder { color:var(--nds-n-400); }
.nds-formcard .elementor-button, .nds-formcard button[type="submit"] {
  width:100%; min-height:54px; padding:16px 28px; border-radius:var(--nds-r-sm);
  background:var(--nds-coral-600); border:1px solid var(--nds-coral-600); color:#fff;
  font-family:var(--nds-font-sans); font-size:16px; font-weight:500; letter-spacing:-.005em;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  transition:background var(--nds-d-fast) var(--nds-ease), transform var(--nds-d-fast) var(--nds-ease);
}
.nds-formcard .elementor-button:hover { background:var(--nds-coral-700); border-color:var(--nds-coral-700); transform:translateY(-1px); }
.nds-formcard .elementor-message { font-family:var(--nds-font-sans); font-size:15px; margin-top:12px; }
.nds-formcard .elementor-message-success { color:var(--nds-success); }
.nds-formcard .elementor-message-danger { color:var(--nds-error); }
.nds-formcard .elementor-field-required .elementor-field-label:after { color:var(--nds-coral-600); }
.nds-formnote { font-size:13px; color:var(--nds-n-500); margin-top:16px; line-height:1.5; text-align:center; }
@media (max-width:680px){
  .nds-formcard { padding:24px; }
  }

/* column helper used by the split / LP containers */
.nds-col { min-width:0; }
.nds .nds-grid > .e-con, .nds .nds-grid > .elementor-element { min-width:0; }

/* ═══════════════════════════════════════════════════════════════
   LEGACY BRIDGE — pages the NDS bundle does not design
   (case details, blog listing, single post). Their existing `nd-*`
   markup is re-tokenised onto NDS so the site reads as one system
   instead of two. No new patterns invented.
   ═══════════════════════════════════════════════════════════════ */
.nds .nd-case-head, .nds .nd-sec-prose, .nds .nd-results, .nds .nd-sec-quote { background:var(--nds-paper); }
.nds .nd-eyebrow {
  font-family:var(--nds-font-mono) !important; font-size:11px !important; font-weight:500 !important;
  text-transform:uppercase; letter-spacing:.14em !important; color:var(--nds-coral-700) !important;
}
.nds .nd-crumbs { font-family:var(--nds-font-mono); font-size:12px; letter-spacing:.04em; color:var(--nds-n-500); }
.nds .nd-case-head h1, .nds .nd-sec-prose h2, .nds .nd-results h2 {
  font-family:var(--nds-font-display) !important; font-weight:500 !important;
  color:var(--nds-ink-900) !important; letter-spacing:-.03em !important; line-height:1.05 !important;
}
.nds .nd-prose, .nds .nd-body { font-family:var(--nds-font-sans); color:var(--nds-n-600); line-height:1.65; }
.nds .nd-card, .nds .nd-prose-col.nd-card, .nds .nd-metric-card {
  background:var(--nds-surface) !important; border:1px solid var(--nds-n-100) !important;
  border-radius:var(--nds-r-md) !important; box-shadow:none !important;
}
.nds .nd-meta-k { font-family:var(--nds-font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--nds-coral-700); }
.nds .nd-meta-v { font-family:var(--nds-font-sans); color:var(--nds-ink-900); font-weight:500; }
.nds .nd-metric-num {
  font-family:var(--nds-font-display) !important; font-weight:500 !important;
  color:var(--nds-ink-900) !important; letter-spacing:-.03em !important; line-height:.95 !important;
}
.nds .nd-metric-cap { font-family:var(--nds-font-mono); font-size:13px; color:var(--nds-coral-700); letter-spacing:.04em; }
.nds .nd-hero-band, .nds .nd-band-a { background:var(--nds-ink-900) !important; }
.nds .nd-band-label { font-family:var(--nds-font-mono); letter-spacing:.14em; text-transform:uppercase; font-size:11px; color:rgba(255,255,255,.7); }
.nds .nd-pullquote { border-left:2px solid var(--nds-coral-500); background:transparent; }
.nds .nd-quote-text { font-family:var(--nds-font-display); font-weight:500; font-size:28px; line-height:1.25; color:var(--nds-ink-900); letter-spacing:-.02em; }
.nds .nd-quote-who { font-family:var(--nds-font-mono); font-size:12px; letter-spacing:.04em; color:var(--nds-n-500); }
.nds .nd-cta-band { background:var(--nds-ink-950) !important; color:#fff !important; }
.nds .nd-cta-band h2, .nds .nd-cta-band h3 { font-family:var(--nds-font-display) !important; font-weight:500 !important; color:#fff !important; letter-spacing:-.02em !important; }
/* legacy buttons → NDS buttons */
.nds .nd-btn-primary, .nds .nd-cta-btn {
  background:var(--nds-coral-600) !important; border:1px solid var(--nds-coral-600) !important; color:#fff !important;
  border-radius:var(--nds-r-sm) !important; font-family:var(--nds-font-sans) !important; font-weight:500 !important;
}
.nds .nd-btn-primary:hover, .nds .nd-cta-btn:hover { background:var(--nds-coral-700) !important; border-color:var(--nds-coral-700) !important; }
.nds .nd-btn-secondary, .nds .nd-case-link, .nds .nd-link-btn {
  color:var(--nds-coral-700) !important; font-family:var(--nds-font-sans) !important; font-weight:500 !important;
  background:transparent !important; border-radius:var(--nds-r-sm) !important;
}
.nds .nd-btn-ghost-light { border:1px solid var(--nds-ink-900) !important; color:var(--nds-ink-900) !important; background:transparent !important; }
/* blog listing + single post */
.nds .nd-blog-grid article, .nds .nd-blog-grid .elementor-post {
  background:var(--nds-surface); border:1px solid var(--nds-n-100); border-radius:var(--nds-r-md);
}
.nds .nd-blog-grid .elementor-post__title a { font-family:var(--nds-font-display); font-weight:500; color:var(--nds-ink-900); letter-spacing:-.02em; }
.nds .nd-blog-grid .elementor-post__excerpt p { font-family:var(--nds-font-sans); color:var(--nds-n-600); }
.nds .nd-blog-grid .elementor-post__read-more { color:var(--nds-coral-700); font-family:var(--nds-font-sans); font-weight:500; }
.nds .entry-title, .nds .entry-content h1, .nds .entry-content h2, .nds .entry-content h3 {
  font-family:var(--nds-font-display); font-weight:500; color:var(--nds-ink-900); letter-spacing:-.02em;
}
.nds .entry-content { font-family:var(--nds-font-sans); color:var(--nds-n-600); line-height:1.7; }
.nds .entry-content a { color:var(--nds-coral-700); }

/* ═══ Elementor container overrides (form pages) ═══
   Elementor sets .e-con{display:flex} + per-field width classes, which fight the
   NDS grid. These are scoped to .nds and intentionally !important. */
.nds .nds-grid--split, .nds .nds-grid--lp {
  display:grid !important; align-items:start !important;
}
.nds .nds-grid--split { grid-template-columns:1fr 1fr !important; gap:80px !important; }
.nds .nds-grid--lp    { grid-template-columns:1.2fr 1fr !important; gap:72px !important; }
.nds .nds-grid--split > .e-con, .nds .nds-grid--lp > .e-con,
.nds .nds-grid--split > .elementor-element, .nds .nds-grid--lp > .elementor-element {
  width:auto !important; max-width:none !important; flex:none !important; min-width:0 !important;
}
.nds .nds-formcard { width:auto !important; max-width:none !important; }

/* Elementor Pro form field grid — beat Elementor's own column widths */
.nds .nds .nds .nds-formcard .elementor-field-group > .elementor-field-label {
  width:100% !important; text-align:left !important; margin:0 0 6px !important; flex:none !important;
}
.nds .nds-formcard .elementor-field-group > .elementor-field,
.nds .nds-formcard .elementor-field-group > .elementor-field-textual { width:100% !important; max-width:100% !important; }
.nds .nds-formcard .elementor-field-type-submit .elementor-field-label { display:none !important; }
@media (max-width:900px){
  .nds .nds-grid--split, .nds .nds-grid--lp { grid-template-columns:1fr !important; gap:48px !important; }
  .nds }
