/*
Theme Name: In-Betrekking
Theme URI: https://inbetrekking.nl
Author: In-Betrekking
Author URI: https://inbetrekking.nl
Description: Rustig, redactioneel WordPress-thema voor In-Betrekking — Werkrelatiegezondheid. Donkere petrol-hero's, veel witruimte, Spectral + Hanken Grotesk. Eenvoudig aan te passen via de paginatemplates, het menu en de CSS-tokens bovenin deze stylesheet.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: in-betrekking
*/


/* ===== tokens/colors.css ===== */
/* ============================================================
   In-Betrekking — Color tokens
   Two voices that meet: PETROL (werk, structuur, klinisch vertrouwen)
   and KLEI/clay (mens, warmte, erkenning). The relationship between
   them is the brand. Warm-neutral paper keeps everything calm.
   ============================================================ */

:root {
  /* ---- Petrol — primary. Trustworthy, clinical, calm. ---- */
  --petrol-50:  #EDF4F4;
  --petrol-100: #D5E6E6;
  --petrol-200: #ABCDCE;
  --petrol-300: #7BACAE;
  --petrol-400: #4E898C;
  --petrol-500: #2E6B6F;
  --petrol-600: #235458;  /* core brand / primary actions */
  --petrol-700: #1B4347;
  --petrol-800: #143337;
  --petrol-900: #0E2528;
  --petrol-950: #081719;

  /* ---- Klei (clay) — warm accent. The human side. Used sparingly. ---- */
  --klei-50:  #FAF2EC;
  --klei-100: #F2DECF;
  --klei-200: #E6C2AB;
  --klei-300: #D8A283;
  --klei-400: #CA8460;
  --klei-500: #BC6B47;  /* accent */
  --klei-600: #A1583A;
  --klei-700: #82472F;
  --klei-800: #5E3422;
  --klei-900: #3F2418;

  /* ---- Warm neutral — paper, ink, hairlines ---- */
  --neutral-0:   #FFFFFF;
  --neutral-50:  #F8F6F2;  /* page paper */
  --neutral-100: #F1EEE8;
  --neutral-200: #E5E1D8;  /* hairline / borders */
  --neutral-300: #D3CDC1;
  --neutral-400: #B2AB9D;
  --neutral-500: #8A8376;
  --neutral-600: #655F54;
  --neutral-700: #4A453C;  /* secondary text */
  --neutral-800: #2E2A24;
  --neutral-900: #1C1915;  /* ink — warm near-black */

  /* ---- Semantic states ---- */
  --green-50:  #EAF2EC;
  --green-500: #3E7C59;
  --green-600: #316348;
  --amber-50:  #FBF1DD;
  --amber-500: #C0892E;
  --amber-600: #9E6F21;
  --red-50:    #F8ECE9;
  --red-500:   #A8443A;
  --red-600:   #8C362E;
  --info-50:   var(--petrol-50);
  --info-500:  var(--petrol-500);

  /* ---- Vijfdomeinenmodel — categorical, muted, harmonious ----
     Five domains of Werkrelatiegezondheid. */
  --domein-mentaal:      #2E6B6F; /* mentale gezondheid  — petrol   */
  --domein-identiteit:   #BC6B47; /* werkidentiteit      — klei     */
  --domein-relaties:     #6E8E6A; /* werkrelaties        — sage     */
  --domein-participatie: #C0892E; /* participatie        — amber    */
  --domein-context:      #5E6E84; /* organisatiecontext  — leisteen */

  /* ============================================================
     SEMANTIC ALIASES — reference these in components, not raw scales
     ============================================================ */

  /* Surfaces & background */
  --bg-page:        var(--neutral-50);
  --bg-page-deep:   var(--petrol-900);   /* inverted / hero sections */
  --surface-card:   var(--neutral-0);
  --surface-sunken: var(--neutral-100);
  --surface-raised: var(--neutral-0);
  --surface-accent: var(--petrol-50);    /* tinted callouts */
  --surface-warm:   var(--klei-50);

  /* Text */
  --text-strong:    var(--neutral-900);
  --text-body:      var(--neutral-800);
  --text-muted:     var(--neutral-600);
  --text-subtle:    var(--neutral-500);
  --text-on-petrol: #EAF1F1;
  --text-on-petrol-muted: #A9C4C5;
  --text-on-klei:   #FBF2EC;
  --text-link:      var(--petrol-600);

  /* Borders & lines */
  --border-subtle:  var(--neutral-200);
  --border-default: var(--neutral-300);
  --border-strong:  var(--neutral-400);
  --border-petrol:  var(--petrol-200);

  /* Brand & actions */
  --brand:              var(--petrol-600);
  --brand-hover:        var(--petrol-700);
  --brand-active:       var(--petrol-800);
  --brand-subtle:       var(--petrol-50);
  --accent:             var(--klei-500);
  --accent-hover:       var(--klei-600);
  --accent-subtle:      var(--klei-50);

  /* Focus */
  --focus-ring:     color-mix(in srgb, var(--petrol-500) 45%, transparent);

  /* States */
  --success:        var(--green-500);
  --success-subtle: var(--green-50);
  --warning:        var(--amber-500);
  --warning-subtle: var(--amber-50);
  --danger:         var(--red-500);
  --danger-subtle:  var(--red-50);
}


/* ===== tokens/typography.css ===== */
/* ============================================================
   In-Betrekking — Typography tokens
   Spectral (serif) carries thought and authority — used for headings,
   pull-quotes and the long, considered prose the brand writes in.
   Hanken Grotesk (sans) is the calm, humanist workhorse for UI & body.
   IBM Plex Mono labels technical artefacts (WRGA, WRGI, domeincodes).

   NOTE: No brand fonts were supplied. These are Google Fonts stand-ins
   chosen to match the intended voice. See readme.md → "Font substitution".
   ============================================================ */


:root {
  /* ---- Families ---- */
  --font-serif: 'Spectral', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --font-sans:  'Hanken Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono:  'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* ---- Weights ---- */
  --fw-light:    300; /* @kind font */
  --fw-regular:  400; /* @kind font */
  --fw-medium:   500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold:     700; /* @kind font */

  /* ---- Type scale (1.250 major-third-ish, tuned) ---- */
  --text-2xs:  0.6875rem;  /* 11 — mono micro-labels */
  --text-xs:   0.75rem;    /* 12 */
  --text-sm:   0.875rem;   /* 14 */
  --text-base: 1rem;       /* 16 — body */
  --text-md:   1.125rem;   /* 18 — lead body */
  --text-lg:   1.375rem;   /* 22 */
  --text-xl:   1.75rem;    /* 28 */
  --text-2xl:  2.25rem;    /* 36 */
  --text-3xl:  2.875rem;   /* 46 */
  --text-4xl:  3.625rem;   /* 58 */
  --text-5xl:  4.5rem;     /* 72 — hero display */

  /* ---- Line heights ---- */
  --leading-tight:   1.12;
  --leading-snug:    1.25;
  --leading-normal:  1.45;
  --leading-relaxed: 1.65;  /* long-form Dutch prose */

  /* ---- Letter spacing ---- */
  --tracking-tighter: -0.022em;  /* large serif display */
  --tracking-tight:   -0.012em;
  --tracking-normal:  0;
  --tracking-wide:    0.04em;
  --tracking-eyebrow: 0.14em;    /* mono eyebrows / kickers */

  /* ============================================================
     SEMANTIC TYPE ROLES
     ============================================================ */

  /* Display & headings — serif */
  --type-display:      var(--fw-light)   var(--text-5xl)/var(--leading-tight) var(--font-serif);
  --type-h1:           var(--fw-regular) var(--text-4xl)/var(--leading-tight) var(--font-serif);
  --type-h2:           var(--fw-regular) var(--text-3xl)/var(--leading-snug)  var(--font-serif);
  --type-h3:           var(--fw-medium)  var(--text-2xl)/var(--leading-snug)  var(--font-serif);
  --type-h4:           var(--fw-medium)  var(--text-xl)/var(--leading-snug)   var(--font-serif);
  --type-quote:        var(--fw-light)   var(--text-2xl)/var(--leading-normal) var(--font-serif);

  /* UI headings — sans (apps, dashboards) */
  --type-ui-title:     var(--fw-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --type-ui-heading:   var(--fw-semibold) var(--text-md)/var(--leading-snug) var(--font-sans);

  /* Body — sans */
  --type-lead:         var(--fw-regular) var(--text-md)/var(--leading-relaxed) var(--font-sans);
  --type-md:           var(--fw-regular) var(--text-md)/var(--leading-normal) var(--font-sans);
  --type-body:         var(--fw-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --type-body-sm:      var(--fw-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);

  /* Functional */
  --type-label:        var(--fw-medium)  var(--text-sm)/1.2 var(--font-sans);
  --type-button:       var(--fw-semibold) var(--text-sm)/1 var(--font-sans);
  --type-caption:      var(--fw-regular) var(--text-xs)/1.35 var(--font-sans);
  --type-eyebrow:      var(--fw-medium)  var(--text-xs)/1.2 var(--font-mono);
}


/* ===== tokens/spacing.css ===== */
/* ============================================================
   In-Betrekking — Spacing & layout tokens
   4px base grid. Generous whitespace; the brand breathes.
   ============================================================ */

:root {
  --space-0:   0;
  --space-1:   0.25rem;  /* 4  */
  --space-2:   0.5rem;   /* 8  */
  --space-3:   0.75rem;  /* 12 */
  --space-4:   1rem;     /* 16 */
  --space-5:   1.25rem;  /* 20 */
  --space-6:   1.5rem;   /* 24 */
  --space-7:   1.75rem;  /* 28 */
  --space-8:   2rem;     /* 32 */
  --space-9:   2.25rem;  /* 36 */
  --space-10:  2.5rem;   /* 40 */
  --space-12:  3rem;     /* 48 */
  --space-16:  4rem;     /* 64 */
  --space-20:  5rem;     /* 80 */
  --space-24:  6rem;     /* 96 */
  --space-32:  8rem;     /* 128 */

  /* Layout */
  --container-sm:   640px;
  --container-md:   860px;   /* readable prose measure */
  --container-lg:   1100px;
  --container-xl:   1320px;
  --gutter:         var(--space-6);
  --section-y:      var(--space-24); /* vertical rhythm between page sections */

  /* Content measures */
  --measure-prose:  68ch;
  --measure-narrow: 46ch;
}


/* ===== tokens/elevation.css ===== */
/* ============================================================
   In-Betrekking — Radius, elevation & motion
   Restrained corners and low, soft shadows keep the system clinical
   and calm. Borders do most of the structural work; shadow is a
   whisper, never a drop. Motion fades and glides — never bounces.
   ============================================================ */

:root {
  /* ---- Radius ---- */
  --radius-xs:   3px;
  --radius-sm:   6px;
  --radius-md:   10px;   /* default control / input */
  --radius-lg:   14px;   /* cards */
  --radius-xl:   20px;   /* feature panels */
  --radius-2xl:  28px;
  --radius-pill: 999px;  /* tags, status, avatars */

  /* ---- Elevation — tinted with petrol shadow, low + soft ---- */
  /* hsl base for petrol-tinted shadow */
  --shadow-color: 200 30% 14%; /* @kind other */
  --shadow-xs: 0 1px 2px hsl(var(--shadow-color) / 0.06);
  --shadow-sm: 0 1px 2px hsl(var(--shadow-color) / 0.06),
               0 2px 6px hsl(var(--shadow-color) / 0.07);
  --shadow-md: 0 2px 4px hsl(var(--shadow-color) / 0.05),
               0 8px 18px -4px hsl(var(--shadow-color) / 0.12);
  --shadow-lg: 0 4px 8px hsl(var(--shadow-color) / 0.06),
               0 18px 40px -10px hsl(var(--shadow-color) / 0.18);
  --shadow-focus: 0 0 0 3px var(--focus-ring);

  /* ---- Motion ---- */
  --ease-standard: cubic-bezier(0.2, 0.6, 0.2, 1); /* @kind other */
  --ease-out:      cubic-bezier(0.16, 0.84, 0.36, 1); /* @kind other */
  --ease-in:       cubic-bezier(0.5, 0, 0.85, 0.4); /* @kind other */

  --dur-fast:   140ms; /* @kind other */
  --dur-base:   240ms; /* @kind other */
  --dur-slow:   420ms; /* @kind other */

  --transition-control: color var(--dur-fast) var(--ease-standard),
                        background-color var(--dur-fast) var(--ease-standard),
                        border-color var(--dur-fast) var(--ease-standard),
                        box-shadow var(--dur-fast) var(--ease-standard); /* @kind other */
}


/* ===== tokens/base.css ===== */
/* ============================================================
   In-Betrekking — Base reset & element defaults
   Light, opinionated reset. Sets the warm-paper canvas and the
   default reading voice (Hanken Grotesk body, Spectral headings).
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg-page);
  color: var(--text-body);
  font: var(--type-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  margin: 0;
  color: var(--text-strong);
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
}

p { margin: 0; text-wrap: pretty; }

a {
  color: var(--text-link);
  text-decoration: none;
  text-underline-offset: 2px;
}
a:hover { text-decoration: underline; }

strong, b { font-weight: var(--fw-semibold); color: var(--text-strong); }

::selection {
  background: var(--klei-100);
  color: var(--petrol-900);
}

:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-xs);
}

/* Utility: mono eyebrow / kicker used across brand surfaces */
.ic-eyebrow {
  font: var(--type-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--klei-600);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}


/* ===== ui_kits/website/site.css ===== */
/* ============================================================
   In-Betrekking — website styles (built on the design-system tokens)
   Calm, editorial, lots of whitespace. Dark petrol heroes.
   ============================================================ */


/* ---------- Layout primitives ---------- */
.container { max-width: var(--container-xl); margin: 0 auto; padding: 0 var(--space-8); }
.container--prose { max-width: var(--container-md); }
.container--lg { max-width: var(--container-lg); }

.section { padding: var(--space-32) 0; }
.section--tight { padding: var(--space-20) 0; }
.section + .section { padding-top: 0; }

.eyebrow {
  font: var(--type-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--klei-600);
  display: inline-block;
}
.eyebrow--on-dark { color: var(--klei-300); }

.lede { font: var(--type-lead); color: var(--text-muted); max-width: 58ch; }
.measure { max-width: var(--measure-prose); }

/* Stacked statement lines — the brand cadence */
.cadence p { font: var(--type-h3); color: var(--text-strong); margin: 0; }
.cadence p + p { margin-top: var(--space-3); }
.cadence .accent { color: var(--klei-600); font-style: italic; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font: var(--type-button); letter-spacing: 0.01em;
  padding: 13px 22px; border-radius: var(--radius-md);
  border: 1px solid transparent; cursor: pointer;
  transition: var(--transition-control); text-decoration: none;
}
.btn:hover { text-decoration: none; }
.btn .ic { width: 17px; height: 17px; stroke-width: 1.9; }
.btn--primary { background: var(--brand); color: #fff; }
.btn--primary:hover { background: var(--brand-hover); box-shadow: var(--shadow-sm); }
.btn--primary:active { background: var(--brand-active); }
.btn--ghost { background: transparent; color: var(--petrol-700); border-color: var(--border-default); }
.btn--ghost:hover { border-color: var(--petrol-400); background: var(--petrol-50); }
.btn--on-dark { background: #fff; color: var(--petrol-800); }
.btn--on-dark:hover { background: var(--klei-50); }
.btn--ghost-dark { background: transparent; color: var(--text-on-petrol); border-color: color-mix(in srgb, #fff 28%, transparent); }
.btn--ghost-dark:hover { border-color: #fff; background: color-mix(in srgb, #fff 8%, transparent); }

/* Quiet text link with arrow */
.tlink {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font: var(--type-label); color: var(--text-link);
  border-bottom: 1px solid transparent; padding-bottom: 2px;
  transition: var(--transition-control);
}
.tlink:hover { text-decoration: none; border-color: var(--petrol-300); gap: var(--space-3); }
.tlink .ic { width: 16px; height: 16px; stroke-width: 2; }
.tlink--on-dark { color: var(--klei-200); }
.tlink--on-dark:hover { border-color: var(--klei-300); }

/* ---------- Top navigation ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  transition: background-color var(--dur-base) var(--ease-standard),
              border-color var(--dur-base) var(--ease-standard),
              backdrop-filter var(--dur-base) var(--ease-standard);
  border-bottom: 1px solid transparent;
}
.nav.is-stuck {
  background: color-mix(in srgb, var(--neutral-50) 82%, transparent);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom-color: var(--border-subtle);
}
.nav__inner { display: flex; align-items: center; justify-content: space-between; height: 78px; }
.brand { display: flex; align-items: center; gap: var(--space-3); text-decoration: none; flex-shrink: 0; }
.brand img { height: 34px; display: block; }
.brand__wm { font-family: var(--font-serif); font-size: 25px; color: var(--petrol-800); letter-spacing: -0.02em; white-space: nowrap; }
.brand__wm .hy { color: var(--klei-500); }
.nav__links { display: flex; align-items: center; gap: var(--space-8); }
.nav__link { font: var(--type-label); color: var(--text-body); transition: var(--transition-control); white-space: nowrap; }
.nav__link:hover { color: var(--petrol-700); text-decoration: none; }
.nav__link.is-active { color: var(--petrol-700); }
.nav__cta { display: flex; align-items: center; gap: var(--space-4); }
.nav__burger { display: none; }

/* nav variant for dark hero pages: links light until stuck */
.nav--over-dark .brand__wm { color: #fff; }
.nav--over-dark .nav__link { color: var(--text-on-petrol-muted); }
.nav--over-dark .nav__link:hover, .nav--over-dark .nav__link.is-active { color: #fff; }
.nav--over-dark.is-stuck .brand__wm { color: var(--petrol-800); }
.nav--over-dark.is-stuck .nav__link { color: var(--text-body); }
.nav--over-dark.is-stuck .nav__link:hover { color: var(--petrol-700); }

/* ---------- Hero (dark petrol) ---------- */
.hero {
  position: relative; overflow: clip;
  background: var(--petrol-900); color: var(--text-on-petrol);
  margin-top: -78px; padding-top: 78px; /* slide under sticky nav */
}
.hero__inner { padding: var(--space-24) 0 var(--space-32); position: relative; z-index: 2; }
.hero h1 {
  font-family: var(--font-serif); font-weight: var(--fw-light);
  font-size: clamp(2.8rem, 6.2vw, 4.6rem); line-height: 1.07;
  letter-spacing: var(--tracking-tighter); color: #fff;
  max-width: 17ch; margin: var(--space-6) 0 var(--space-8);
}
.hero h1 em { font-style: italic; color: var(--klei-300); }
.hero__lede { font: var(--type-lead); font-size: var(--text-lg); color: var(--text-on-petrol-muted); max-width: 50ch; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-10); }
.hero__motif {
  position: absolute; z-index: 1; right: -8%; top: 50%;
  transform: translateY(-50%); width: min(680px, 58%);
  opacity: 0.12; pointer-events: none;
}
.hero--center .hero__inner { text-align: center; }
.hero--center h1, .hero--center .hero__lede { margin-left: auto; margin-right: auto; }
.hero--center .hero__actions { justify-content: center; }

/* ---------- Generic dark band ---------- */
.band-dark { background: var(--petrol-900); color: var(--text-on-petrol); position: relative; overflow: clip; }
.band-dark h2 { color: #fff; }
.band-dark .lede { color: var(--text-on-petrol-muted); }

/* ---------- Section heading block ---------- */
.shead { max-width: 62ch; margin-bottom: var(--space-16); }
.shead h2 { font: var(--type-h2); color: var(--text-strong); margin: var(--space-4) 0 var(--space-5); }
.shead--center { margin-left: auto; margin-right: auto; text-align: center; }
.band-dark .shead h2 { color: #fff; }

/* ---------- Perspective comparison ---------- */
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); overflow: hidden; background: var(--surface-card); }
.compare__col { padding: var(--space-10); }
.compare__col--them { background: var(--surface-sunken); }
.compare__col--us { background: var(--petrol-800); color: var(--text-on-petrol); }
.compare__h { font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; margin-bottom: var(--space-6); display: block; }
.compare__col--them .compare__h { color: var(--text-subtle); }
.compare__col--us .compare__h { color: var(--klei-300); }
.compare__row { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) 0; font: var(--type-md)/1.4 var(--font-sans); }
.compare__col--them .compare__row { color: var(--text-muted); border-bottom: 1px solid var(--neutral-200); }
.compare__col--us .compare__row { color: #fff; border-bottom: 1px solid color-mix(in srgb,#fff 12%, transparent); }
.compare__row:last-child { border-bottom: 0; }
.compare__row .ic { width: 18px; height: 18px; flex: 0 0 auto; }
.compare__col--them .ic { color: var(--neutral-400); }
.compare__col--us .ic { color: var(--klei-300); }

/* ---------- Five-domain diagram ---------- */
.domains { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-5); }
.domain { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); box-shadow: var(--shadow-xs); transition: var(--transition-control), transform var(--dur-base) var(--ease-standard); }
.domain:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.domain__dot { width: 30px; height: 30px; border-radius: var(--radius-pill); display: grid; place-items: center; }
.domain__dot .ic { width: 17px; height: 17px; color: #fff; stroke-width: 2; }
.domain__n { font-family: var(--font-mono); font-size: 11px; color: var(--text-subtle); }
.domain h3 { font: var(--type-ui-heading); color: var(--text-strong); }
.domain p { font: var(--type-body-sm); color: var(--text-muted); }

/* ---------- Steps (counselor volgorde) ---------- */
.steps { display: flex; flex-direction: column; }
.step { display: grid; grid-template-columns: 64px 1fr; gap: var(--space-6); padding: var(--space-6) 0; border-top: 1px solid var(--border-subtle); }
.step:last-child { border-bottom: 1px solid var(--border-subtle); }
.step__n { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--klei-500); padding-top: 4px; }
.step h3 { font: var(--type-h4); color: var(--text-strong); margin-bottom: var(--space-2); }
.step p { font: var(--type-body); color: var(--text-muted); max-width: 60ch; }

/* ---------- Pull quote ---------- */
.pquote { text-align: center; max-width: 26ch; margin: 0 auto; }
.pquote p { font-family: var(--font-serif); font-weight: var(--fw-light); font-size: clamp(1.9rem, 4vw, 2.9rem); line-height: 1.28; letter-spacing: -0.01em; color: #fff; }
.pquote em { font-style: italic; color: var(--klei-300); }
.pquote cite { display: block; font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--petrol-300); font-style: normal; margin-top: var(--space-8); }

/* ---------- Wide image band ---------- */
.imageband { position: relative; height: clamp(280px, 38vw, 460px); background: var(--petrol-900); overflow: hidden; }
.imageband image-slot { position: absolute; inset: 0; width: 100%; height: 100%; }
.imageband__veil { position: absolute; inset: 0; z-index: 2; background:
   linear-gradient(180deg, color-mix(in srgb,var(--petrol-950) 55%, transparent), color-mix(in srgb,var(--petrol-900) 72%, transparent)); }
.imageband__cap { position: absolute; z-index: 3; inset: auto auto var(--space-10) 0; }

/* ---------- Audience cards (HR / bedrijfsarts) ---------- */
.aud { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.aud__card { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); padding: var(--space-10); box-shadow: var(--shadow-xs); }
.aud__icon { width: 46px; height: 46px; border-radius: var(--radius-md); background: var(--petrol-50); display: grid; place-items: center; margin-bottom: var(--space-5); }
.aud__icon .ic { width: 23px; height: 23px; color: var(--petrol-600); stroke-width: 1.8; }
.aud__card h3 { font: var(--type-h4); color: var(--text-strong); margin-bottom: var(--space-3); }
.aud__card p { font: var(--type-body); color: var(--text-muted); margin-bottom: var(--space-5); }
.aud__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.aud__list li { display: flex; gap: var(--space-3); font: var(--type-body-sm); color: var(--text-body); }
.aud__list .ic { width: 17px; height: 17px; color: var(--klei-500); flex: 0 0 auto; margin-top: 2px; stroke-width: 2; }

/* ---------- Ecosystem ---------- */
.eco { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.eco__node { border: 1px solid color-mix(in srgb,#fff 14%, transparent); border-radius: var(--radius-lg); padding: var(--space-8); background: color-mix(in srgb,#fff 4%, transparent); }
.eco__node.is-self { border-color: var(--klei-400); background: color-mix(in srgb,var(--klei-500) 12%, transparent); }
.eco__node h3 { font: var(--type-ui-title); color: #fff; margin-bottom: var(--space-2); }
.eco__node p { font: var(--type-body-sm); color: var(--text-on-petrol-muted); }
.eco__tag { font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--klei-300); display: block; margin-bottom: var(--space-4); }

/* ---------- CTA band ---------- */
.cta { text-align: center; }
.cta h2 { font: var(--type-h2); color: #fff; max-width: 20ch; margin: var(--space-4) auto var(--space-8); }
.cta__actions { display: flex; gap: var(--space-4); justify-content: center; flex-wrap: wrap; }

/* ---------- Footer ---------- */
.foot { background: var(--petrol-950); color: var(--text-on-petrol-muted); padding: var(--space-20) 0 var(--space-10); }
.foot__top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--space-8); padding-bottom: var(--space-12); border-bottom: 1px solid color-mix(in srgb,#fff 10%, transparent); }
.foot__brand img { height: 34px; margin-bottom: var(--space-5); }
.foot__brand p { font: var(--type-body-sm); color: var(--text-on-petrol-muted); max-width: 34ch; }
.foot__col h4 { font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--petrol-300); margin-bottom: var(--space-4); }
.foot__col a { display: block; font: var(--type-body-sm); color: var(--text-on-petrol-muted); padding: var(--space-1) 0; }
.foot__col a:hover { color: #fff; text-decoration: none; }
.foot__bot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-4); padding-top: var(--space-8); }
.foot__bot span { font: var(--type-caption); color: var(--petrol-400); }
.foot__wm { font-family: var(--font-serif); font-size: 20px; color: #fff; }
.foot__wm .hy { color: var(--klei-400); }

/* ---------- Situation grid ---------- */
.sit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.sit { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-7); box-shadow: var(--shadow-xs); }
.sit__icon { width: 40px; height: 40px; border-radius: var(--radius-md); background: var(--klei-50); display: grid; place-items: center; margin-bottom: var(--space-4); }
.sit__icon .ic { width: 21px; height: 21px; color: var(--klei-600); stroke-width: 1.8; }
.sit h3 { font: var(--type-ui-heading); color: var(--text-strong); margin-bottom: var(--space-2); }
.sit p { font: var(--type-body-sm); color: var(--text-muted); }

/* ---------- Continuum ---------- */
.continuum { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface-card); }
.continuum__step { padding: var(--space-7) var(--space-5); border-right: 1px solid var(--border-subtle); position: relative; }
.continuum__step:last-child { border-right: 0; }
.continuum__bar { height: 4px; border-radius: var(--radius-pill); margin-bottom: var(--space-4); }
.continuum__step h3 { font: var(--type-label); color: var(--text-strong); margin-bottom: var(--space-2); }
.continuum__step p { font: var(--type-caption); color: var(--text-muted); }

/* ---------- 3-way comparison ---------- */
.compare3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.compare3__col { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; }
.compare3__head { padding: var(--space-5) var(--space-6); font: var(--type-ui-heading); }
.compare3__col--muted .compare3__head { background: var(--surface-sunken); color: var(--text-muted); }
.compare3__col--us .compare3__head { background: var(--petrol-700); color: #fff; }
.compare3__row { padding: var(--space-3) var(--space-6); font: var(--type-body-sm); color: var(--text-body); border-top: 1px solid var(--neutral-100); }
.compare3__col--us .compare3__row { color: var(--text-body); }
.compare3__col--us { box-shadow: var(--shadow-md); }

/* ---------- Contact form ---------- */
.contact { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--space-16); align-items: start; }
.form { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); padding: var(--space-10); box-shadow: var(--shadow-sm); }
.field { margin-bottom: var(--space-5); }
.field label { display: block; font: var(--type-label); color: var(--text-strong); margin-bottom: var(--space-2); }
.field input, .field select, .field textarea {
  width: 100%; font: var(--type-body); color: var(--text-body);
  background: var(--neutral-50); border: 1px solid var(--border-default);
  border-radius: var(--radius-md); padding: 12px 14px; transition: var(--transition-control);
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--petrol-400); background: #fff; box-shadow: var(--shadow-focus);
}
.field textarea { resize: vertical; min-height: 110px; }
.field--row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.contact__aside .ic { width: 20px; height: 20px; color: var(--petrol-600); stroke-width: 1.8; }
.contact__detail { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) 0; font: var(--type-body); color: var(--text-body); }

/* ---------- Page intro (light hero for inner pages) ---------- */
.subhero { background: var(--petrol-900); color: var(--text-on-petrol); position: relative; overflow: clip; margin-top: -78px; padding-top: 78px; }
.subhero__inner { padding: var(--space-20) 0 var(--space-24); position: relative; z-index: 2; }
.subhero h1 { font-family: var(--font-serif); font-weight: var(--fw-light); font-size: clamp(2.4rem, 5vw, 3.8rem); line-height: 1.08; letter-spacing: var(--tracking-tighter); color: #fff; max-width: 18ch; margin: var(--space-5) 0 var(--space-6); }
.subhero h1 em { font-style: italic; color: var(--klei-300); }
.subhero__lede { font: var(--type-lead); font-size: var(--text-lg); color: var(--text-on-petrol-muted); max-width: 54ch; }
.subhero__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-9); }
.subhero__motif { position: absolute; z-index: 1; right: -6%; top: 50%; transform: translateY(-50%); width: min(540px, 50%); opacity: 0.10; pointer-events: none; }

/* ---------- Mobile nav: burger + drawer ---------- */
.nav__burger { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 11px; flex-direction: column; justify-content: center; gap: 5px; }
.nav__burger span { display: block; height: 2px; width: 22px; background: var(--petrol-800); border-radius: 2px; transition: transform var(--dur-base) var(--ease-standard), opacity var(--dur-fast) var(--ease-standard); }
.nav--over-dark .nav__burger span { background: #fff; }
.nav--over-dark.is-stuck .nav__burger span { background: var(--petrol-800); }
.nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2) { opacity: 0; }
.nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.navdrawer { position: fixed; inset: 0; z-index: 60; background: color-mix(in srgb, var(--petrol-950) 50%, transparent); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; transition: opacity var(--dur-base) var(--ease-standard); }
.navdrawer.is-open { opacity: 1; }
.navdrawer__panel { position: absolute; top: 0; right: 0; height: 100%; width: min(86vw, 360px); background: var(--neutral-50); box-shadow: var(--shadow-lg); padding: calc(78px + var(--space-6)) var(--space-8) var(--space-8); display: flex; flex-direction: column; gap: var(--space-6); transform: translateX(100%); transition: transform var(--dur-base) var(--ease-out); }
.navdrawer.is-open .navdrawer__panel { transform: none; }
.navdrawer__links { display: flex; flex-direction: column; gap: var(--space-1); }
.navdrawer__links a { font: var(--type-h4); color: var(--text-strong); padding: var(--space-3) 0; border-bottom: 1px solid var(--border-subtle); }
.navdrawer__links a:hover, .navdrawer__links a.is-active { color: var(--petrol-700); text-decoration: none; }
.navdrawer__cta { justify-content: center; margin-top: var(--space-2); }

/* ---------- Back to top ---------- */
.totop { position: fixed; right: var(--space-6); bottom: var(--space-6); z-index: 40; width: 46px; height: 46px; border-radius: var(--radius-pill); border: 1px solid var(--border-subtle); background: var(--surface-card); color: var(--petrol-700); box-shadow: var(--shadow-md); cursor: pointer; display: grid; place-items: center; opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard); }
.totop.is-vis { opacity: 1; transform: none; pointer-events: auto; }
.totop:hover { background: var(--petrol-50); }

/* ---------- Footer legal / secondary row ---------- */
.foot__legal { border-top: 1px solid color-mix(in srgb,#fff 10%, transparent); }
.foot__legal-inner { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); padding: var(--space-6) 0 0; }
.foot__legal-inner a { font: var(--type-caption); color: var(--petrol-400); }
.foot__legal-inner a:hover { color: #fff; text-decoration: none; }

/* ---------- Skip link ---------- */
.skiplink { position: fixed; top: -60px; left: var(--space-4); z-index: 100; background: var(--petrol-700); color: #fff; padding: 10px 16px; border-radius: var(--radius-md); font: var(--type-button); transition: top var(--dur-fast) var(--ease-standard); }
.skiplink:focus { top: var(--space-4); text-decoration: none; }

/* ---------- Reveal-on-scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(16px); transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
  .reveal.is-in { opacity: 1; transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .compare, .aud, .eco, .foot__top, .contact { grid-template-columns: 1fr; }
  .domains, .sit-grid, .compare3 { grid-template-columns: repeat(2, 1fr); }
  .continuum { grid-template-columns: 1fr 1fr; }
  .continuum__step { border-bottom: 1px solid var(--border-subtle); }
  .hero__motif { opacity: 0.08; }
  .contact { gap: var(--space-10); }
}
@media (max-width: 940px) {
  .nav__links { display: none; }
  .nav__burger { display: flex; }
  .nav__cta .btn { display: none; }
  .section { padding: var(--space-20) 0; }
  .domains { grid-template-columns: 1fr; }
  .sit-grid, .compare3 { grid-template-columns: 1fr; }
  .continuum { grid-template-columns: 1fr; }
  .totop { right: var(--space-4); bottom: var(--space-4); }
}


/* ===== WordPress-specifieke aanpassingen ===== */
/* wp_nav_menu rendert een <ul class="nav__links"> met <li><a>; deze regels
   geven die structuur dezelfde uitstraling als de statische .nav__link. */
.nav__links { list-style: none; margin: 0; padding: 0; }
.nav__links li { list-style: none; }
.nav__links a { font: var(--type-label); color: var(--text-body); white-space: nowrap; transition: var(--transition-control); }
.nav__links a:hover { color: var(--petrol-700); text-decoration: none; }
.nav__links .current-menu-item > a, .nav__links .current_page_item > a { color: var(--petrol-700); }
.nav--over-dark .nav__links a { color: var(--text-on-petrol-muted); }
.nav--over-dark .nav__links a:hover,
.nav--over-dark .nav__links .current-menu-item > a { color: #fff; }
.nav--over-dark.is-stuck .nav__links a { color: var(--text-body); }
.nav--over-dark.is-stuck .nav__links a:hover,
.nav--over-dark.is-stuck .nav__links .current-menu-item > a { color: var(--petrol-700); }

/* Sfeerbeeld-placeholder in de imageband (vervang met een echte afbeelding,
   zie README). De donkere band + sluier zorgen dat de tekst leesbaar blijft. */
.imageband__ph { position: absolute; inset: 0; background:
   radial-gradient(120% 90% at 78% 30%, var(--petrol-700), var(--petrol-900) 70%); }

/* WordPress core/admin nette details */
.admin-bar .nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .nav { top: 46px; } }
.alignwide { max-width: var(--container-lg); }
.alignfull { max-width: none; }
img { max-width: 100%; height: auto; }


/* ---------- Formulier-meldingen + contactdetails ---------- */
.formnotice { display: flex; align-items: flex-start; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); font: var(--type-body-sm); margin-bottom: var(--space-5); }
.formnotice .ic { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; }
.formnotice--ok { background: var(--success-subtle); color: var(--green-600); }
.formnotice--err { background: var(--danger-subtle); color: var(--red-600); }
.contact__detail a { color: inherit; text-decoration: none; }
.contact__detail a:hover { color: var(--petrol-700); }
