/*fern-site-stylesheet*/@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/laposta.docs.buildwithfern.com/e27e4823002bb658a294bb2e90444c6932634964e725e28a6fe90c321942508d/assets/fonts/abc-diatype-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+02C7-02DD, U+0394-03C0, U+0E3F, U+1E80-1E9E, U+1EF2-1EF3, U+2070-20BF, U+2113-2126, U+2153-215F, U+2190-2199, U+2202-2265, U+2329-232A, U+2460-2468, U+24EA-24FF, U+25A0-25CF, U+25FB-25FC, U+2661-2665, U+2776-277E, U+300A-3015, U+E000-E017, U+F8FF, U+FB01-FB02;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/_img/e27e4823002bb658a294bb2e90444c69-v1.latin.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2002-2003, U+2009-200A, U+2010, U+2013-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/laposta.docs.buildwithfern.com/de93d41b3bd3fa2607faafc8a8de4eecda1d3f04dc20ffb29adcea0eafa6726a/assets/fonts/abc-diatype-regular-italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+02C7-02DD, U+0394-03C0, U+0E3F, U+1E80-1E9E, U+1EF2-1EF3, U+2070-20BF, U+2113-2126, U+2153-215F, U+2190-2199, U+2202-2265, U+2329-232A, U+2460-2468, U+24EA-24FF, U+25A0-25CF, U+25FB-25FC, U+2661-2665, U+2776-277E, U+300A-3015, U+E000-E017, U+F8FF, U+FB01-FB02;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/_img/de93d41b3bd3fa2607faafc8a8de4eec-v1.latin.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
    unicode-range: U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2002-2003, U+2009-200A, U+2010, U+2013-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/laposta.docs.buildwithfern.com/0bfc2a37e8df475291249dc3e670d603a1d7b8d746475fd6ca6d88ec4dc59c4f/assets/fonts/abc-diatype-medium.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+02C7-02DD, U+0394-03C0, U+0E3F, U+1E80-1E9E, U+1EF2-1EF3, U+2070-20BF, U+2113-2126, U+2153-215F, U+2190-2199, U+2202-2265, U+2329-232A, U+2460-2468, U+24EA-24FF, U+25A0-25CF, U+25FB-25FC, U+2661-2665, U+2776-277E, U+300A-3015, U+E000-E017, U+F8FF, U+FB01-FB02;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/_img/0bfc2a37e8df475291249dc3e670d603-v1.latin.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2002-2003, U+2009-200A, U+2010, U+2013-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/laposta.docs.buildwithfern.com/91eb9c2cb32a3511e10889b4cdf8f74054be2c424e447b220d6a3fe40ef5024d/assets/fonts/abc-diatype-bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+02C7-02DD, U+0394-03C0, U+0E3F, U+1E80-1E9E, U+1EF2-1EF3, U+2070-20BF, U+2113-2126, U+2153-215F, U+2190-2199, U+2202-2265, U+2329-232A, U+2460-2468, U+24EA-24FF, U+25A0-25CF, U+25FB-25FC, U+2661-2665, U+2776-277E, U+300A-3015, U+E000-E017, U+F8FF, U+FB01-FB02;
}
@font-face {
    font-family: 'ABC Diatype';
    src: url('/_fern-files/_img/91eb9c2cb32a3511e10889b4cdf8f740-v1.latin.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2002-2003, U+2009-200A, U+2010, U+2013-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'Fira Sans';
    src: url('/_fern-files/laposta.docs.buildwithfern.com/f3cc7b2756c566cf8172bfd269d805c4a1eb953f6b6ce8bf2b2ddf49c5422189/assets/fonts/fira-sans-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'ABC Diatype Fallback';
    src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
    size-adjust: 99.15%;
    ascent-override: 97.63%;
    descent-override: 36.11%;
    line-gap-override: 0.00%;
}
@font-face {
    font-family: 'Fira Sans Fallback';
    src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
    size-adjust: 102.96%;
    ascent-override: 90.81%;
    descent-override: 25.74%;
    line-gap-override: 0.00%;
}

:root {
  --header-height: 80px;
  --header-height-real: 80px;
  --mobile-header-height-real: 64px;
  --content-width: 640px;
  --sidebar-width: 300px;
  --page-width: 100vw;
  --logo-height: 48px;
  --font-body: 'ABC Diatype', 'ABC Diatype Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'Fira Sans', 'Fira Sans Fallback', 'ABC Diatype', 'ABC Diatype Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
}

@media not all and (min-width: 48rem) {
  :root { --header-height: var(--mobile-header-height-real); }
}

:root {
  --typography-body-font-family: var(--font-body);
  --typography-heading-font-family: var(--font-heading);
  --typography-code-font-family: var(--font-code);
}


.light, :root {
  --accent-1: #fffcfb;
  --accent-2: #fff8f6;
  --accent-3: #ffebe7;
  --accent-4: #ffdad2;
  --accent-5: #ffcbc1;
  --accent-6: #ffbaaf;
  --accent-7: #fca598;
  --accent-8: #f4897a;
  --accent-9: #e42219;
  --accent-10: #d50000;
  --accent-11: #da0f0a;
  --accent-12: #651b14;

  --accent-a1: #ff400004;
  --accent-a2: #ff390009;
  --accent-a3: #ff2b0018;
  --accent-a4: #ff2e002d;
  --accent-a5: #ff2a003e;
  --accent-a6: #ff240050;
  --accent-a7: #f8210067;
  --accent-a8: #ea1d0085;
  --accent-a9: #e10a00e6;
  --accent-a10: #d50000;
  --accent-a11: #d90500f5;
  --accent-a12: #580800eb;

  --accent-contrast: #fff;
  --accent-surface: #fff6f4cc;
  --accent-indicator: #e42219;
  --accent-track: #e42219;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0.0036 29.1);
      --accent-2: oklch(98.4% 0.0088 29.1);
      --accent-3: oklch(95.5% 0.0247 29.1);
      --accent-4: oklch(92.7% 0.0541 29.1);
      --accent-5: oklch(89.4% 0.0716 29.1);
      --accent-6: oklch(85.5% 0.0871 29.1);
      --accent-7: oklch(80.5% 0.1057 29.1);
      --accent-8: oklch(74.3% 0.1333 29.1);
      --accent-9: oklch(58.9% 0.2254 29.1);
      --accent-10: oklch(54.5% 0.2284 29.1);
      --accent-11: oklch(56.2% 0.2254 29.1);
      --accent-12: oklch(34.3% 0.1075 29.1);

      --accent-a1: color(display-p3 0.7569 0.2667 0.0235 / 0.016);
      --accent-a2: color(display-p3 0.8941 0.2392 0.0235 / 0.036);
      --accent-a3: color(display-p3 0.8745 0.1843 0.0118 / 0.091);
      --accent-a4: color(display-p3 0.8667 0.1843 0.0039 / 0.173);
      --accent-a5: color(display-p3 0.8706 0.1725 0.0039 / 0.236);
      --accent-a6: color(display-p3 0.8706 0.1451 0.0039 / 0.302);
      --accent-a7: color(display-p3 0.851 0.1412 0.0039 / 0.393);
      --accent-a8: color(display-p3 0.8078 0.1176 0 / 0.502);
      --accent-a9: color(display-p3 0.7843 0.0706 0 / 0.836);
      --accent-a10: color(display-p3 0.7333 0.0588 0 / 0.891);
      --accent-a11: color(display-p3 0.7529 0.0627 0 / 0.871);
      --accent-a12: color(display-p3 0.298 0.0392 0 / 0.906);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9961 0.9647 0.9608 / 0.8);
      --accent-indicator: oklch(58.9% 0.2254 29.1);
      --accent-track: oklch(58.9% 0.2254 29.1);
    }
  }
}


.light, :root {
  --grayscale-1: #fdfdfc;
  --grayscale-2: #f9f9f8;
  --grayscale-3: #f1f0ef;
  --grayscale-4: #e9e8e6;
  --grayscale-5: #e2e1de;
  --grayscale-6: #dad9d6;
  --grayscale-7: #cfceca;
  --grayscale-8: #bcbbb5;
  --grayscale-9: #8d8d86;
  --grayscale-10: #82827c;
  --grayscale-11: #63635e;
  --grayscale-12: #21201c;

  --grayscale-a1: #55550003;
  --grayscale-a2: #25250007;
  --grayscale-a3: #20100010;
  --grayscale-a4: #1f150019;
  --grayscale-a5: #1f180021;
  --grayscale-a6: #19130029;
  --grayscale-a7: #19140035;
  --grayscale-a8: #1915014a;
  --grayscale-a9: #0f0f0079;
  --grayscale-a10: #0c0c0083;
  --grayscale-a11: #080800a1;
  --grayscale-a12: #060500e3;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #8d8d86;
  --grayscale-track: #8d8d86;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.992 0.992 0.989);
      --grayscale-2: color(display-p3 0.977 0.977 0.973);
      --grayscale-3: color(display-p3 0.943 0.942 0.936);
      --grayscale-4: color(display-p3 0.913 0.912 0.903);
      --grayscale-5: color(display-p3 0.885 0.883 0.873);
      --grayscale-6: color(display-p3 0.854 0.852 0.839);
      --grayscale-7: color(display-p3 0.813 0.81 0.794);
      --grayscale-8: color(display-p3 0.738 0.734 0.713);
      --grayscale-9: color(display-p3 0.553 0.553 0.528);
      --grayscale-10: color(display-p3 0.511 0.511 0.488);
      --grayscale-11: color(display-p3 0.388 0.388 0.37);
      --grayscale-12: color(display-p3 0.129 0.126 0.111);

      --grayscale-a1: #55550003;
      --grayscale-a2: #25250007;
      --grayscale-a3: #20100010;
      --grayscale-a4: #1f150019;
      --grayscale-a5: #1f180021;
      --grayscale-a6: #19130029;
      --grayscale-a7: #19140035;
      --grayscale-a8: #1915014a;
      --grayscale-a9: #0f0f0079;
      --grayscale-a10: #0c0c0083;
      --grayscale-a11: #080800a1;
      --grayscale-a12: #060500e3;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.553 0.553 0.528);
      --grayscale-track: color(display-p3 0.553 0.553 0.528);
    }
  }
}


.dark {
  --accent-1: #201919;
  --accent-2: #251b1b;
  --accent-3: #3d1d1d;
  --accent-4: #4f1d1f;
  --accent-5: #5d2426;
  --accent-6: #6c2f31;
  --accent-7: #833f40;
  --accent-8: #a95253;
  --accent-9: #f48c8c;
  --accent-10: #e88181;
  --accent-11: #ff9696;
  --accent-12: #f9d5d3;

  --accent-a1: #f0000006;
  --accent-a2: #f01c000c;
  --accent-a3: #fa291d27;
  --accent-a4: #fc24263b;
  --accent-a5: #ff3b3c4a;
  --accent-a6: #fe54555b;
  --accent-a7: #fd696975;
  --accent-a8: #ff74749f;
  --accent-a9: #ff9292f3;
  --accent-a10: #fe8c8ce6;
  --accent-a11: #ff9696;
  --accent-a12: #fed9d7f9;

  --accent-contrast: #fff;
  --accent-surface: #2f1b1a80;
  --accent-indicator: #f48c8c;
  --accent-track: #f48c8c;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(22.3% 0.0104 20.5);
      --accent-2: oklch(23.4% 0.0165 20.5);
      --accent-3: oklch(27.4% 0.0501 20.5);
      --accent-4: oklch(30.7% 0.0747 20.5);
      --accent-5: oklch(34.4% 0.0831 20.5);
      --accent-6: oklch(39.1% 0.0868 20.5);
      --accent-7: oklch(45.5% 0.0942 20.5);
      --accent-8: oklch(54.5% 0.1146 20.5);
      --accent-9: oklch(75.1% 0.1267 20.5);
      --accent-10: oklch(71.6% 0.1267 20.5);
      --accent-11: oklch(78.4% 0.1267 20.5);
      --accent-12: oklch(90.2% 0.0413 20.5);

      --accent-a1: color(display-p3 0.9765 0 0 / 0.018);
      --accent-a2: color(display-p3 0.9804 0.1098 0 / 0.036);
      --accent-a3: color(display-p3 1 0.2275 0.1451 / 0.132);
      --accent-a4: color(display-p3 0.9961 0.2 0.1725 / 0.202);
      --accent-a5: color(display-p3 1 0.2902 0.2824 / 0.259);
      --accent-a6: color(display-p3 1 0.3882 0.3843 / 0.321);
      --accent-a7: color(display-p3 1 0.4824 0.4627 / 0.417);
      --accent-a8: color(display-p3 1 0.5176 0.498 / 0.575);
      --accent-a9: color(display-p3 1 0.6235 0.6157 / 0.891);
      --accent-a10: color(display-p3 1 0.6078 0.5961 / 0.838);
      --accent-a11: color(display-p3 1 0.6392 0.6314 / 0.939);
      --accent-a12: color(display-p3 1 0.8824 0.8706 / 0.948);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1725 0.102 0.098 / 0.5);
      --accent-indicator: oklch(75.1% 0.1267 20.5);
      --accent-track: oklch(75.1% 0.1267 20.5);
    }
  }
}


.dark {
  --grayscale-1: #121113;
  --grayscale-2: #1a191b;
  --grayscale-3: #232225;
  --grayscale-4: #2b292d;
  --grayscale-5: #323035;
  --grayscale-6: #3c393f;
  --grayscale-7: #49474e;
  --grayscale-8: #625f69;
  --grayscale-9: #6f6d78;
  --grayscale-10: #7c7a85;
  --grayscale-11: #b5b2bc;
  --grayscale-12: #eeeef0;

  --grayscale-a1: #00000000;
  --grayscale-a2: #f5f4f609;
  --grayscale-a3: #ebeaf814;
  --grayscale-a4: #eee5f81d;
  --grayscale-a5: #efe6fe25;
  --grayscale-a6: #f1e6fd30;
  --grayscale-a7: #eee9ff40;
  --grayscale-a8: #eee7ff5d;
  --grayscale-a9: #eae6fd6e;
  --grayscale-a10: #ece9fd7c;
  --grayscale-a11: #f5f1ffb7;
  --grayscale-a12: #fdfdffef;

  --grayscale-contrast: #fff;
  --grayscale-surface: rgba(0, 0, 0, 0.05);
  --grayscale-indicator: #6f6d78;
  --grayscale-track: #6f6d78;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.07 0.067 0.074);
      --grayscale-2: color(display-p3 0.101 0.098 0.105);
      --grayscale-3: color(display-p3 0.138 0.134 0.144);
      --grayscale-4: color(display-p3 0.167 0.161 0.175);
      --grayscale-5: color(display-p3 0.196 0.189 0.206);
      --grayscale-6: color(display-p3 0.232 0.225 0.245);
      --grayscale-7: color(display-p3 0.286 0.277 0.302);
      --grayscale-8: color(display-p3 0.383 0.373 0.408);
      --grayscale-9: color(display-p3 0.434 0.428 0.467);
      --grayscale-10: color(display-p3 0.487 0.48 0.519);
      --grayscale-11: color(display-p3 0.707 0.7 0.735);
      --grayscale-12: color(display-p3 0.933 0.933 0.94);

      --grayscale-a1: #00000000;
      --grayscale-a2: #f5f4f609;
      --grayscale-a3: #ebeaf814;
      --grayscale-a4: #eee5f81d;
      --grayscale-a5: #efe6fe25;
      --grayscale-a6: #f1e6fd30;
      --grayscale-a7: #eee9ff40;
      --grayscale-a8: #eee7ff5d;
      --grayscale-a9: #eae6fd6e;
      --grayscale-a10: #ece9fd7c;
      --grayscale-a11: #f5f1ffb7;
      --grayscale-a12: #fdfdffef;

      --grayscale-contrast: #fff;
      --grayscale-surface: color(display-p3 0 0 0 / 5%);
      --grayscale-indicator: color(display-p3 0.434 0.428 0.467);
      --grayscale-track: color(display-p3 0.434 0.428 0.467);
    }
  }
}

.light, :root {
  color-scheme: light;
  --accent: rgba(228, 34, 25, 1);
  --background: rgba(255, 255, 255, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #fff;
}

.dark {
  color-scheme: dark;
  --accent: rgba(244, 140, 140, 1);
  --background: rgba(27, 27, 29, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #1b1b1d;
}

/* ============================================================================
   Laposta — Fern huisstijl
   ┌──────────────────────────────────────────────────────────────────────────┐
   │  ÉÉN PLEK VOOR DE HUISSTIJL                                               │
   │  Alle kleuren en vormen staan hieronder als variabelen. Pas hier één     │
   │  regel aan en het verandert overal door. De regels verderop in dit       │
   │  bestand gebruiken alleen deze variabelen — niet zelf kleuren intypen.   │
   │                                                                          │
   │  Wat NIET hier staat (dat regelt Fern zelf, in ../docs.yml):             │
   │    • Lettertype (headingsFont / bodyFont)  → docs.yml → typography       │
   │    • Logo en favicon                        → docs.yml → logo / favicon  │
   │    • Fern's eigen accent (actieve nav, knoppen, tab-streep)              │
   │        → docs.yml → colors.accent-primary  (houd gelijk aan --lp-accent) │
   └──────────────────────────────────────────────────────────────────────────┘ */
:root {
  /* — Merk-accent (Laposta-rood) ------------------------------------------- */
  --lp-accent:          #E42219;  /* hét rood: links-hover, kaart-hover, vinkjes-context */
  --lp-accent-dark:     #B81C14;  /* donkerder rood (bv. knop-hover)                     */
  --lp-accent-darkmode: #F48C8C;  /* accent in dark mode (= docs.yml accent-primary.dark)*/

  /* — Tekst & koppen ------------------------------------------------------- */
  --lp-text:    #212529;             /* bodytekst                                        */
  --lp-text-darkmode: #E4E2DF;       /* bodytekst in dark mode: gebroken wit, geen #fff  */
  --lp-bg-darkmode:   #1B1B1D;       /* achtergrond in dark mode (= docs.yml background.dark) */
  --lp-heading: var(--lp-text);      /* kop-kleur — zet hier bv. var(--lp-accent) voor rode koppen */

  /* — Links in de content -------------------------------------------------- */
  --lp-link:       var(--lp-text);   /* linkkleur (donker + underline)                   */
  --lp-link-hover: var(--lp-accent); /* linkkleur bij hover                              */

  /* — Lijnen, vlakken, statuskleuren -------------------------------------- */
  --lp-muted:   #ADB5BD;  /* grijs (bv. "nee"-kruisje in rechten-tabel)  */
  --lp-kop-zacht:          #868E96;  /* zijbalkkopjes, licht en vet (3,5:1 op wit) */
  --lp-kop-zacht-darkmode: #87837D;  /* zijbalkkopjes in dark mode       */
  /* Eén lijnkleur voor alles: kop, zijbalk, tabrij, kaarten, tabellen, zoekveld (Mees,
     29 september 2026: de lijnen hadden vier verschillende kleuren). */
  --lp-lijn:          #E6E8EB;
  --lp-lijn-darkmode: #343230;
  --lp-border:  var(--lp-lijn);  /* randen van kaarten, tabellen, afbeeldingen  */
  --lp-beige:   #f1eee9;  /* zebra-achtergrond in tabellen               */
  --lp-success: #00b400;  /* groen (bv. "ja"-vinkje in rechten-tabel)    */

  /* — Vormen --------------------------------------------------------------- */
  --lp-radius-sm: 16px;               /* kleine radii (callouts, code)               */
  --lp-radius-md: 24px;               /* grote radii (kaarten)                       */
  --lp-radius-img: 6px;               /* afbeeldingen: discrete afronding (geen tegel-look) */
  --lp-corner:    superellipse(1.5);  /* "squircle"-hoekvorm                         */

  /* — Knoppen (Jelle, 28 september 2026) -----------------------------------
     Eén knopvorm voor alles wat een knop is: de kopknoppen, de suggestieknop, de
     kaartknop en de carrouselknoppen. Squircle waar de browser corner-shape kent
     (Chrome, Edge); Safari en Firefox tonen dezelfde regel als een pil. */
  --lp-knop-radius: 999px;
  --lp-knop-lijn:   #212529;  /* rand van de secundaire (omlijnde) knop, licht thema */
  --lp-knop-lijn-dark: var(--lp-text-darkmode); /* idem in dark mode                  */

  /* ── OPTIONELE LEVERS ─────────────────────────────────────────────────────
     Deze sturen extra dingen (kop-groottes, callout-kleuren, kaart-padding,
     regelafstand). Ze doen NU niets: de bijbehorende regels onderaan dit bestand
     staan uit (in commentaar). Wil je zo'n lever gebruiken? (1) zet hier de waarde
     naar wens en (2) haal onderaan de bijbehorende regel uit commentaar.
     De waarden hieronder zijn VOORBEELDWAARDEN — pas ze aan je smaak aan. */
  --lp-h1-size: 2.1rem;       /* grootte kop h1 */
  --lp-h2-size: 1.55rem;      /* grootte kop h2 */
  --lp-h3-size: 1.2rem;       /* grootte kop h3 */
  --lp-heading-weight: 600;   /* dikte van koppen */
  --lp-body-size: 1rem;       /* grootte bodytekst */
  --lp-body-leading: 1.7;     /* regelafstand bodytekst */
  --lp-card-pad: 1.5rem;      /* ruimte (padding) binnen kaarten */
  /* callout-accent per type — ALLEEN nog voor de optionele kleur-lever onderaan.
     De standaard is kleurloos (zie "Callouts" verderop); deze waarden doen niets
     zolang die lever in commentaar staat. */
  --lp-cal-note:    #3b82f6;          /* Note = context (blauw)     */
  --lp-cal-tip:     var(--lp-success);/* Tip = advies (groen)       */
  --lp-cal-warning: #f59e0b;          /* Warning = risico (amber)   */
  --lp-cal-info:    var(--lp-muted);  /* Info = bijkomstig (grijs)  */
  --lp-cal-check:   var(--lp-success);/* Check = gelukt (groen)     */

  /* — Callouts: kleurloos & minimal (Mees, 2026-07-21) --------------------- */
  /* Jelle, 28 september 2026: met een donkere rand leek een callout op de secundaire
     knop. Nu een licht vlak zonder rand (gekozen uit #F1EEE9, #FAF8F4 en een lichte
     rand; Mees koos #FAF8F4). */
  --lp-callout-line:   transparent;    /* geen omlijning meer                     */
  --lp-callout-width:  1.5px;          /* dikte (blijft, zodat de maat niet verspringt) */
  --lp-callout-bg:     #FAF8F4;        /* licht warm vlak                         */
  --lp-callout-icon:   1rem;           /* icoongrootte                            */
}

.dark {
  --lp-callout-bg: rgba(255, 255, 255, .035);
  /* Zachter donker thema (Jelle, 28 september 2026: witte tekst op zwart is een no-go).
     Fern leidt zijn tekstkleuren af van de achtergrond en komt dan op zuiver wit uit;
     hier zetten we de twee sterkste tinten op gebroken wit. Grijzere tinten (a11 en
     lager, voor bijschriften) blijven van Fern en worden daardoor vanzelf zachter. */
  --grayscale-12: var(--lp-text-darkmode);
  --grayscale-a12: var(--lp-text-darkmode);
}
.dark body,
.dark .fern-prose,
.dark .fern-page-heading { color: var(--lp-text-darkmode); }

/* ============================================================================
   OPTIONELE OVERRIDES — staan UIT. Haal een regel uit commentaar (verwijder de
   commentaar-tekens direct ervoor en erna) om die lever te activeren; stel de
   waarde in bij de tokens hierboven. Zolang ze in commentaar staan, gebruikt
   Fern zijn eigen standaard.
   ============================================================================ */

/* Kop-kleur (bv. var(--lp-heading) = --lp-accent voor rode koppen): */
/* .fern-prose :is(h1, h2, h3, h4, h5, h6) { color: var(--lp-heading); } */

/* Kop-groottes + dikte: */
/* .fern-prose h1 { font-size: var(--lp-h1-size); font-weight: var(--lp-heading-weight); } */
/* .fern-prose h2 { font-size: var(--lp-h2-size); font-weight: var(--lp-heading-weight); } */
/* .fern-prose h3 { font-size: var(--lp-h3-size); font-weight: var(--lp-heading-weight); } */

/* Bodytekst-grootte + regelafstand: */
/* .fern-prose { font-size: var(--lp-body-size); line-height: var(--lp-body-leading); } */

/* Ruimte binnen kaarten: */
/* .fern-card { padding: var(--lp-card-pad); } */

/* Callout-accent per type (kleurt de rand; het icoon blijft Fern's standaard): */
/* .fern-callout[data-intent="note"]    { border-color: var(--lp-cal-note); } */
/* .fern-callout[data-intent="tip"]     { border-color: var(--lp-cal-tip); } */
/* .fern-callout[data-intent="warning"] { border-color: var(--lp-cal-warning); } */
/* .fern-callout[data-intent="info"]    { border-color: var(--lp-cal-info); } */
/* .fern-callout[data-intent="check"]   { border-color: var(--lp-cal-check); } */

/* ----- Links in content: donker + underline, rood op hover (Laposta-conventie) */
.fern-mdx-link {
  color: var(--lp-link);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color .2s ease;
}
.fern-mdx-link:hover { color: var(--lp-link-hover); }
.fern-mdx-link:focus-visible { color: var(--lp-link-hover); }
.dark .fern-mdx-link { color: var(--lp-text-darkmode); }
.dark .fern-mdx-link:hover { color: var(--lp-accent-darkmode); }
.dark .fern-mdx-link:focus-visible { color: var(--lp-accent-darkmode); }

/* ----- Navbar-CTA's (Jelle, 28 september 2026): squircle, vette tekst zoals op
   laposta.nl, en de omlijnde knop een donkere rand. Fern tekent die rand als een
   inset box-shadow, niet als border; daarom de box-shadow.
   In dark mode blijft de gevulde knop rood: Ferns roze accent met witte tekst haalt
   maar 2,5:1 contrast, het rood 4,6:1. */
a.fern-button.outlined, a.fern-button.filled {
  border-radius: var(--lp-knop-radius) !important;
  corner-shape: var(--lp-corner);
}
a.fern-button .fern-button-text { font-weight: 700; }  /* 700: Jelle, ronde 3 */
a.fern-button.outlined { box-shadow: inset 0 0 0 1px var(--lp-knop-lijn) !important; }
.dark a.fern-button.outlined { box-shadow: inset 0 0 0 1px var(--lp-knop-lijn-dark) !important; }
.dark a.fern-button.filled { background-color: var(--lp-accent) !important; }
.dark a.fern-button.filled:hover { background-color: var(--lp-accent-dark) !important; }
.dark a.fern-button.filled:focus-visible { background-color: var(--lp-accent-dark) !important; }
.dark a.fern-button.filled .fern-button-text { color: #fff; }
.dark a.fern-button.outlined:hover { background: var(--lp-knop-lijn-dark); color: var(--lp-bg-darkmode); }
.dark a.fern-button.outlined:focus-visible { background: var(--lp-knop-lijn-dark); color: var(--lp-bg-darkmode); }
.dark a.fern-button.outlined:hover .fern-button-text { color: var(--lp-bg-darkmode); }
.dark a.fern-button.outlined:focus-within .fern-button-text { color: var(--lp-bg-darkmode); }

/* Inloggen vult zwart met witte tekst op hover, net als op laposta.nl. */
a.fern-button.outlined { transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
a.fern-button.outlined:hover { background: #000; border-color: #000; color: #fff; }
a.fern-button.outlined:focus-visible { background: #000; border-color: #000; color: #fff; }
a.fern-button.outlined:hover .fern-button-text { color: #fff; }
a.fern-button.outlined:focus-within .fern-button-text { color: #fff; }

/* ----- Card-titels: lange woorden (bv. "Aanmeldformulieren") netjes afbreken
   i.p.v. een losse letter op een nieuwe regel. De soft-hyphen in de titel geeft
   het breekpunt (Aanmeld-formulieren); hyphens:manual honoreert die en
   overflow-wrap voorkomt dat een te lang woord uit de kaart loopt. */
.fern-card-title { hyphens: manual; overflow-wrap: break-word; }

/* ----- Externe-link-icoontje (↗, op externe links + mailto's): nette verticale
   uitlijning met de tekst + wat ademruimte rechts, zodat het niet te laag zit of
   tegen het volgende woord plakt (Fern zet standaard alleen margin-left). */
.external-link-icon { vertical-align: middle; margin-right: 0.2em; }

/* ----- Callout dat met een kop begint (bv. de Begrippenlijst): haal de bovenmarge
   van die eerste kop weg, zodat de titel omhoog komt en op één lijn staat met het
   callout-icoon — dat 'zweeft' anders hoger dan de titel. */
.fern-callout :is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }

/* ----- Cards: witte kaart, dunne rand + squircle.
   LET OP: Fern geeft de .fern-card class OOK aan Frames (afbeeldingen) en
   Accordions. De signature hover-beweging (translateX + rode rand) hoort
   alléén bij KLIKBARE kaarten — die renderen als <a>. Frames en accordions
   (niet-<a> .fern-card) blijven daardoor volledig statisch: geen reactie op
   de muis, geen beweging. (Mees, 2026-07-02: bewegen alleen bij knoppen/kaarten.) */
.fern-card {
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-radius-md);
  corner-shape: var(--lp-corner);
  transition: border-color .2s ease;
}
a.fern-card { transition: border-color .2s ease, transform .2s ease; }
a.fern-card:hover {
  border-color: var(--lp-accent);
  transform: translateX(.25rem);
}
a.fern-card:focus-visible {
  border-color: var(--lp-accent);
  transform: translateX(.25rem);
}
a.fern-card:hover :is(h1,h2,h3,h4,strong,.fern-card-title) { color: var(--lp-accent); }
a.fern-card:focus-within :is(h1,h2,h3,h4,strong,.fern-card-title) { color: var(--lp-accent); }

/* ----- Sidebar: rode hover/actief + subtiele verschuiving */
.fern-sidebar-link { transition: color .2s ease, transform .2s ease; }
.fern-sidebar-link:hover { color: var(--lp-accent); transform: translateX(.25rem); }
.fern-sidebar-link:focus-visible { color: var(--lp-accent); transform: translateX(.25rem); }

/* ----- Zoekbalk in de kop (sinds 28 september 2026): de omringende containers van
   Fern hebben min-width:auto en krimpen daardoor niet onder de breedte van de
   zoektekst. Op een telefoon duwde dat de menuknop buiten beeld (gemeten op 390
   pixels: menuknop op x 394 tot 430). Met min-width:0 krimpt het veld wel. */
div:has(> div > .fern-header-search-bar),
div:has(> .fern-header-search-bar) { min-width: 0; }

/* ----- Zijbalk: kopjes ("Introductie") lichter dan de links eronder, zodat een kopje
   niet als klikbare link leest (Jelle, 28 september 2026, tweede ronde; Mees koos
   variant A: alleen de kleur, geen kleinere letter of hoofdletters). Fern zet de
   kleur met een eigen klasse op het element zelf, vandaar !important. */
/* 29 september 2026 (Mees): nog lichter en vet, want ze leken nog op de links. */
.fern-sidebar-heading,
.fern-sidebar-heading .fern-sidebar-heading-content { color: var(--lp-kop-zacht) !important; font-weight: 600 !important; }
.dark .fern-sidebar-heading,
.dark .fern-sidebar-heading .fern-sidebar-heading-content { color: var(--lp-kop-zacht-darkmode) !important; }

/* ----- Tabrij bovenin: inactieve tabbladen in de gewone tekstkleur in plaats van
   Ferns grijs (Jelle, 28 september 2026: "mogen duidelijker"). Het actieve tabblad
   blijft rood met de streep eronder. Groter kon niet: dan past de rij niet meer. */
a[role="tab"][data-state="inactive"] { color: var(--lp-text); }
.dark a[role="tab"][data-state="inactive"] { color: var(--lp-knop-lijn-dark); }

/* ============================================================================
   CALLOUTS — kleurloos & minimal (beslist Mees, 2026-07-21)
   Fern kleurt callouts standaard per type (Note blauw, Tip/Check groen, Warning
   amber, Info grijs) met een gevuld vlak. Sem en Mees vonden dat te druk. Vandaar:
     • GEEN kleur en GEEN labelwoord — het ICOON draagt de betekenis
     • sinds 28 september 2026 (Jelle) geen omlijning meer maar een licht warm vlak,
       omdat de donkere rand op de secundaire knop leek; zie --lp-callout-bg bovenin
     • gewone donkere leestekst
     • een clean line-icoon per type: document = note, lampje = tip,
       driehoek = warning, vinkje = check, ⓘ = info
   Fern zet zijn kleuren met hoge specificiteit op [data-intent], daarom !important.
   ============================================================================ */
.fern-callout,
.fern-callout[data-intent] {
  background-color: var(--lp-callout-bg) !important;
  border-color: var(--lp-callout-line) !important;
  border-width: var(--lp-callout-width) !important;
  color: var(--lp-text) !important;
  max-width: 100% !important;   /* even breed als de tekst, net als de afbeeldingen */
}
.dark .fern-callout,
.dark .fern-callout[data-intent] { color: var(--lp-text-darkmode) !important; }

/* Het icoon: Fern's eigen svg eruit, ons line-icoon erin als mask in de tekstkleur. */
.fern-callout > div > div:first-child > svg { display: none; }
.fern-callout > div > div:first-child::before {
  content: "";
  display: block;
  width: var(--lp-callout-icon);
  height: var(--lp-callout-icon);
  background-color: currentColor;
  -webkit-mask: var(--lp-callout-glyph) center / contain no-repeat;
  mask: var(--lp-callout-glyph) center / contain no-repeat;
}
.fern-callout[data-intent="note"] { --lp-callout-glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V7Z%22%2F%3E%3Cpath%20d%3D%22M14%202v4a2%202%200%200%200%202%202h4%22%2F%3E%3Cpath%20d%3D%22M10%209H8%22%2F%3E%3Cpath%20d%3D%22M16%2013H8%22%2F%3E%3Cpath%20d%3D%22M16%2017H8%22%2F%3E%3C%2Fsvg%3E"); }
.fern-callout[data-intent="tip"] { --lp-callout-glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%2014c.2-1%20.7-1.7%201.5-2.5%201-.9%201.5-2.2%201.5-3.5A6%206%200%200%200%206%208c0%201%20.2%202.2%201.5%203.5.7.7%201.3%201.5%201.5%202.5%22%2F%3E%3Cpath%20d%3D%22M9%2018h6%22%2F%3E%3Cpath%20d%3D%22M10%2022h4%22%2F%3E%3C%2Fsvg%3E"); }
.fern-callout[data-intent="warning"] { --lp-callout-glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m21.73%2018-8-14a2%202%200%200%200-3.48%200l-8%2014A2%202%200%200%200%204%2021h16a2%202%200%200%200%201.73-3%22%2F%3E%3Cpath%20d%3D%22M12%209v4%22%2F%3E%3Cpath%20d%3D%22M12%2017h.01%22%2F%3E%3C%2Fsvg%3E"); }
.fern-callout[data-intent="check"] { --lp-callout-glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%2F%3E%3C%2Fsvg%3E"); }
.fern-callout[data-intent="info"] { --lp-callout-glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M12%2016v-4%22%2F%3E%3Cpath%20d%3D%22M12%208h.01%22%2F%3E%3C%2Fsvg%3E"); }
.fern-callout[data-intent="success"],
.fern-callout[data-intent="_other"] { --lp-callout-glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M12%2016v-4%22%2F%3E%3Cpath%20d%3D%22M12%208h.01%22%2F%3E%3C%2Fsvg%3E"); }

/* OPTIONELE LEVER — Warning een héél subtiel extra zetje (Mees liet dit open):
   haal de volgende regel uit commentaar voor een iets dikkere rand bij Warning. */
/* .fern-callout[data-intent="warning"] { border-width: 2px !important; } */

/* ----- Bouwblokken: squircle-radii */
.fern-callout,
.fern-accordion,
.fern-table-root,
pre, code-block {
  border-radius: var(--lp-radius-sm);
  corner-shape: var(--lp-corner);
}

/* ----- Afbeeldingsformaten per type (P7 beeld-normalisatie).
   Mees, 2026-07-28: een horizontale afbeelding staat het mooist op EXACT de
   tekstbreedte — dus lp-img-l = 100%, niet 760px. Alleen echte mini-beelden
   (symbolen, knopjes) en staande panelen blijven kleiner en gecentreerd.
     lp-img-l = volle tekstbreedte  → elke horizontale schermafbeelding
     lp-img-m = 560px, gecentreerd  → staande/vierkante panelen en detailcrops
     lp-img-s = 220px, gecentreerd  → symbolen, knopjes, mini-details
   De class staat op de <Frame> zelf, zodat het kader meekrimpt (geen mini-beeld in
   een vol-breed kader). */
.lp-img-s, .lp-img-m, .lp-img-l { margin-inline: auto !important; }
.lp-img-s { max-width: 220px !important; }
.lp-img-m { max-width: 560px !important; }
.lp-img-l { max-width: 100% !important; }
.lp-img-s img, .lp-img-m img, .lp-img-l img { width: 100% !important; }

/* Beeldstap 2026-07-29: natuurlijke maat voor recreaties die smaller zijn dan
   hun maatklasse. width:100% hierboven zou zo'n beeld boven zijn 2x-maat
   opblazen (regel: nooit opblazen). Gebruik className="lp-img-eigen" op de
   Frame plus srcset="<pad> 2x" op de img: het beeld staat dan gecentreerd op
   zijn 1x-maat en blijft scherp op elke pixeldichtheid. */
.lp-img-eigen { max-width: fit-content !important; margin-inline: auto !important; }
/* Geen width-regel op de img: het width-attribuut uit de mdx bepaalt de maat
   (CSS width zou dat attribuut overschrijven). Alleen begrenzen op smal scherm. */
.lp-img-eigen img { max-width: 100%; height: auto; }

/* ----- Afbeeldingen: GEEN klikbare-tegel-look (Mees 2026-07-26, P7 BEELD-FRAME-STYLING).
   Randloos + héél subtiele schaduw, kleine radius (~6px, geen squircle) en GEEN hover/
   beweging. Fern rendert een <Frame> als <figure.fern-card>, en een ECHTE klikbare kaart
   als <a.fern-card interactive> — daarom scopen we de beeld-styling op figure.fern-card,
   zodat kaarten (a.fern-card) hun rand, hover en beweging houden. */
figure.fern-card {
  border: none;
  padding: 0;
  border-radius: var(--lp-radius-img);
  corner-shape: normal;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
  transition: none;                 /* geen hover-reactie op afbeeldingen */
}
.dark figure.fern-card { box-shadow: 0 1px 4px rgba(0, 0, 0, .45); }

/* Losse content-afbeeldingen (niet in een Frame): ook randloos + kleine radius. */
.fern-layout-guide img:not([class*="logo"]),
.fern-layout-overview img:not([class*="logo"]) {
  border: none;
  border-radius: var(--lp-radius-img);
  corner-shape: normal;
}

/* ----- Tabellen: nette borders, beige zebra */
.fern-table th, .fern-table td { border-color: var(--lp-border); }
.fern-table tbody tr:nth-child(odd) { background: color-mix(in srgb, var(--lp-beige) 55%, transparent); }
.dark .fern-table tbody tr:nth-child(odd) { background: rgba(255,255,255,.03); }

/* ----- Rechten-rollen-tabel */
table.rechten-rollen { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; }
table.rechten-rollen th, table.rechten-rollen td { border: 1px solid var(--lp-border); padding: .5rem .75rem; }
table.rechten-rollen tbody tr:nth-child(odd) { background: var(--lp-beige); }
table.rechten-rollen td.ja { color: var(--lp-success); font-weight: 600; }
table.rechten-rollen td.nee { color: var(--lp-muted); }
table.rechten-rollen .text-center { text-align: center; }
.dark table.rechten-rollen tbody tr:nth-child(odd) { background: rgba(255,255,255,.04); }

/* ----- Hero-golf (herzien, site-afwerking 2026-08-01) -----------------------
   Vier dingen zijn hier veranderd op aanwijzing van Mees:
     • GEEN sticky-pin meer. De golf was een plakkend doek waar de tekst
       overheen klom; dat trok de aandacht en voelde onvoorspelbaar. Nu is het
       een gewone band in de flow, die net zo scrolt als de rest. Rustig en
       voorspelbaar, zoals de hero van ElevenLabs.
     • GEEN 100vw meer. De band liep viewport-breed onder de zijbalk en de
       "On this page"-kolom door, waardoor de navigatie een rode gloed kreeg en
       doorzichtig oogde. Dat is nergens anders op de site zo. De band blijft nu
       exact binnen de contentkolom, dus alle chrome blijft overal gelijk.
     • De rechterrand vervaagde halverwege; die fade zit in de shader van het
       doek (repo laposta-docs-hero) en is daar weggehaald. Hier blijft over:
       een band die netjes de kolomrand raakt.
     • Hoogte schaalt mee met de breedte, zodat het doek op elk scherm dezelfde
       verhouding houdt en er geen uitgerekt lint ontstaat.
   De negatieve marges en z-index-lagen van de oude opzet zijn niet meer nodig. */
/* Het doek komt van achter de zijbalk vandaan en loopt door tot de rechterrand
   van het scherm (Mees, 1 augustus 2026: "clean in en uit vanaf achter de balk
   links"). Het raakt de zijbalk dus wel, maar loopt er niet meer overheen: de
   navigatie blijft overal gelijk. De contentkolom staat gecentreerd in de
   ruimte rechts van de zijbalk, dus de band groeit aan beide kanten evenveel. */
.lp-hero {
  --lp-band: calc(100vw - var(--lp-zijbalk));
  --lp-zijbalk: 300px;      /* = sidebar-width in docs.yml */
  width: var(--lp-band);
  margin: .25rem 0 2.5rem calc((100% - var(--lp-band)) / 2);
}
@media (max-width: 1023px) {

  /* Onder deze breedte klapt de zijbalk dicht: de band is het hele scherm. */
  .lp-hero { --lp-zijbalk: 0px; }

}
.lp-wave {
  display: block; border: 0;
  width: 100%; max-width: 100%;
  /* De hoogte volgt de eigen breedte (niet de viewport), zodat het doek in de
     kolom altijd dezelfde verhouding houdt. Het height-attribuut in de mdx is
     alleen de terugval voordat de css geladen is. */
  height: auto;
  aspect-ratio: 16 / 4.4;
  max-height: 300px;
}
@media (max-width: 767px) {

  .lp-hero { margin-bottom: 1.75rem; }
  .lp-wave { aspect-ratio: 16 / 6; }

}
/* Inline code niet over een regeleinde breken: het kadertje wordt dan halverwege
   afgekapt en dat leest als een fout (gezien door Mees op `artikel-2`). Alleen
   losse waarden in lopende tekst; lange stukken code staan in een codeblok. */
:not(pre) > code { white-space: nowrap; }

html, body { overflow-x: clip; }

/* ============================================================================
   Beeld-kader (beeldstap, 2026-07-29): doorklik-carrousel voor lp-stappen-
   reeksen (gekozen prototype-variant 3b: carrousel met stip-navigatie) en
   klik-om-te-vergroten voor hoge losse beelden (.lp-vergroot).
   De interactie zit in assets/beeld-kader.js; zonder JS rendert een
   lp-stappen-div als gewone opeenvolging (de bedoelde terugval) en toont
   .lp-vergroot alleen de hoogte-begrenzing hieronder.
   ============================================================================ */

/* lp-vergroot in de mdx betekent alleen nog "dit beeld mag hoog zijn"; de
   inkort-behandeling hierboven bepaalt hoe het getoond wordt. */
figure.fern-card.lp-vergroot { position: relative; }
figure.fern-card.lp-vergroot.lp-zoom-aan,
figure.fern-card.lp-inkort.lp-zoom-aan { cursor: zoom-in; }
.lp-zoom-hint {
  position: absolute; right: 10px; bottom: 10px;
  width: 30px; height: 30px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .92);
  border: 1px solid var(--lp-border);
  color: var(--lp-text);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
  pointer-events: none;
}
.dark .lp-zoom-hint { background: rgba(30, 30, 32, .92); border-color: #444; color: #eee; }

/* Een beeld staat op tweemaal zijn weergavebreedte, dus op een breed scherm is het
   al zo groot als het scherp kan. beeld-kader.js zet dan lp-zoom-uit en houdt de
   klik tegen; de vergrootcursor van Fern moet dan ook weg, anders belooft hij iets
   wat niet gebeurt. Op smallere schermen valt er wel te vergroten en blijft hij. */
[data-rmiz].lp-zoom-uit img,
[data-rmiz].lp-zoom-uit [data-rmiz-btn-zoom] { cursor: default !important; }
[data-rmiz].lp-zoom-uit [data-rmiz-btn-zoom] { pointer-events: none; }

/* Lichtbak (hangt aan <body>, dus buiten Fern's thema-container: bewust
   thema-neutraal — donkere backdrop, licht beeld, zoals een echte lightbox). */
.lp-lb {
  position: fixed; inset: 0; z-index: 2147483000;
  background: rgba(20, 20, 22, .62);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  display: flex; align-items: center; justify-content: center;
  padding: 24px; cursor: zoom-out;
  overflow: auto;
}
.lp-lb img {
  max-width: min(1400px, 94vw);
  max-height: none;          /* een lang paneel mag in de lichtbak scrollen */
  height: auto;
  border-radius: 6px; box-shadow: 0 12px 48px rgba(0, 0, 0, .5);
  background: #fff;
  margin: auto;
}
.lp-lb.lp-lb-past img { max-height: 94vh; width: auto; }
.lp-lb-sluit {
  position: fixed; top: 16px; right: 16px;
  width: 40px; height: 40px; border-radius: 50%;
  border: 0; cursor: pointer;
  background: rgba(255, 255, 255, .92); color: #212529;
  font-size: 20px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
}
.lp-lb-sluit:hover { background: #fff; }
.lp-lb-sluit:focus-visible { background: #fff; }

/* -- Doorklik-carrousel (variant 3b). beeld-kader.js zet .lp-dk-aan op de
      lp-stappen-div en hangt er een .lp-dk in; de oorspronkelijke stappen
      blijven in de DOM als terugval en worden alleen mét JS verborgen. */
.lp-stappen.lp-dk-aan > :not(.lp-dk) { display: none; }
.lp-dk {
  border: 1px solid var(--lp-border);
  border-radius: 8px;
  background: var(--white, #fff);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
  padding: 16px;
  margin: 1.5rem 0;
}
.dark .lp-dk { background: transparent; box-shadow: 0 1px 4px rgba(0, 0, 0, .45); border-color: #3e3b37; }
/* Het kader krijgt zijn hoogte van het EERSTE beeld, dat gewoon in de flow staat;
   de volgende stappen liggen er absoluut overheen. Zo sluit het kader altijd exact
   op het beeld aan. Een kader met een eigen aspect-ratio liet door afronding een
   strook achtergrond zien langs de bovenrand (gezien door Mees). Binnen een reeks
   zijn alle stappen even groot, dus die ene hoogte klopt voor allemaal. */
/* Geen eigen rand om het kader: de component heeft er al een, en veel recreaties
   tonen zelf ook een omlijnd paneel. Drie randen om elkaar heen leest als een doos
   in een doos (gezien door Mees). */
/* Het kader krijgt zijn verhouding van het eerste beeld (JS zet aspect-ratio) en
   heeft geen eigen achtergrond, zodat er nooit een strook naast of boven het beeld
   te zien is. Alle stappen liggen op elkaar en worden met `contain` getoond: nooit
   uitrekken of samenpersen, ook niet als het kader is ingekort. */
.lp-dk-frame {
  position: relative;
  border-radius: var(--lp-radius-img);
  overflow: hidden;
  line-height: 0;
}
.lp-dk-frame .lp-dk-beeld {
  position: absolute; inset: 0;
  margin: 0 !important; max-width: none !important;
  opacity: 0; pointer-events: none;
  transition: opacity .18s ease;
  box-shadow: none; border-radius: 0;
}
.lp-dk-frame .lp-dk-beeld img {
  width: 100% !important; height: 100%;
  object-fit: contain; object-position: top center;
  display: block;
}
.lp-dk-frame .lp-dk-beeld.lp-dk-actief { opacity: 1; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) {

  .lp-dk-frame .lp-dk-beeld { transition: none; }

}
.lp-dk-knoppen {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-top: 12px;
}
.lp-dk-pijl {
  border: 1px solid var(--lp-border);
  background: transparent; color: var(--lp-text);
  border-radius: var(--lp-knop-radius); corner-shape: var(--lp-corner); padding: 6px 16px;
  font-size: .9rem; white-space: nowrap; cursor: pointer;
  font-family: inherit;
}
.lp-dk-pijl:hover:not(:disabled) { background: var(--lp-beige); }
.lp-dk-pijl:focus-visible:not(:disabled) { background: var(--lp-beige); }
.dark .lp-dk-pijl { color: #eee; border-color: #3e3b37; }
.dark .lp-dk-pijl:hover:not(:disabled) { background: rgba(255, 255, 255, .06); }
.dark .lp-dk-pijl:focus-visible:not(:disabled) { background: rgba(255, 255, 255, .06); }
.lp-dk-pijl:disabled { opacity: .35; cursor: default; }
.lp-dk-stippen { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.lp-dk-stip {
  width: 22px; height: 22px; border: 0; background: none; padding: 0;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.lp-dk-stip::before {
  content: ""; width: 9px; height: 9px; border-radius: 50%;
  border: 1px solid var(--lp-muted);
}
.lp-dk-stip:hover::before { border-color: var(--lp-text); }
.lp-dk-stip:focus-visible::before { border-color: var(--lp-text); }
.dark .lp-dk-stip:hover::before { border-color: #eee; }
.dark .lp-dk-stip:focus-visible::before { border-color: #eee; }
.lp-dk-stippen li.lp-dk-gedaan .lp-dk-stip::before { background: var(--lp-muted); border-color: var(--lp-muted); }
.lp-dk-stip.lp-dk-actief::before { background: var(--lp-accent); border-color: var(--lp-accent); }
/* Reeks van staande/vierkante panelen (figures met lp-img-m): het kader
   volgt die maat, gecentreerd, in plaats van de volle tekstbreedte. */
.lp-dk.lp-dk-m { max-width: 592px; margin-inline: auto; }

/* Hoge reeks (lang instellingenpaneel): navigatie en bijschrift staan boven
   het kader, zodat je klikt waar je kijkt. beeld-kader.js zet de klasse en
   verhangt de elementen; deze regels doen de marges. */
.lp-dk-hoog .lp-dk-knoppen { margin-top: 0; margin-bottom: 10px; }
.lp-dk-hoog .lp-dk-tekst { margin: 0 2px 12px; min-height: 0; }
/* Vaste teksthoogte van twee regels: het bijschrift wisselt per stap van lengte,
   en zonder reservering schuiven de knoppen en het kader daarmee mee (gezien door
   Mees). Twee regels dekt vrijwel elk staplabel op tekstbreedte. */
.lp-dk-tekst { margin: 10px 2px 0; font-size: .95rem; min-height: 2.9em; }

.dark .lp-dk-tekst strong { font-weight: 600; }
.lp-dk :focus-visible { outline: 2px solid var(--lp-accent); outline-offset: 2px; border-radius: 4px; }

/* Smal scherm: kader volle breedte, navigatie erboven. */
@media (max-width: 699px) {

  .lp-dk { padding: 12px; }
  .lp-dk-binnen { display: flex; flex-direction: column; }
  .lp-dk-knoppen { order: -1; margin-top: 0; margin-bottom: 12px; }
  .lp-dk-pijl { padding: 5px 10px; font-size: .84rem; }
  .lp-dk-stippen { gap: 0; }

}

/* ── API-referentie in vier talen ───────────────────────────────────────────
   Fern kan endpoint-pagina's (nog) niet vertalen: een spec per taal wordt
   genegeerd. Daarom staan alle talen in een spec, elk in een eigen span, en
   tonen we hier alleen de taal van de pagina. api-taal.js zet daarvoor
   data-lp-taal op <html>, afgeleid van het taalvoorvoegsel in de URL.
   Zonder JS blijft het Nederlands staan, en dat is de bedoelde terugval. */
.lp-taal:not(.lp-nl) { display: none; }
html[data-lp-taal="en"] .lp-taal.lp-en,
html[data-lp-taal="de"] .lp-taal.lp-de,
html[data-lp-taal="es"] .lp-taal.lp-es { display: inline; }
html[data-lp-taal="en"] .lp-taal.lp-nl,
html[data-lp-taal="de"] .lp-taal.lp-nl,
html[data-lp-taal="es"] .lp-taal.lp-nl { display: none; }

/* Fern rendert een korte beschrijving als losse tekst en een langere als alinea.
   Die alinea heeft eigen marges, waardoor de witruimte tussen parameters onderling
   verschilt (gezien door Mees). Hier halen we dat verschil weg. */
.fern-prose > div[style] > p:first-child,
.fern-prose > p:first-child { margin-top: 0; }
.fern-prose > div[style] > p:last-child,
.fern-prose > p:last-child { margin-bottom: 0; }

/* Parameterbeschrijvingen in de API-referentie: Fern zet korte teksten als losse
   tekst in het blok en langere in een <p>, en die alinea heeft marge. Daardoor
   verschilt de witruimte per parameter (gezien door Mees). Deze twee regels
   halen dat verschil weg zonder aan de rest van de opmaak te komen. */
.fern-prose.text-sm > p:first-child,
.fern-prose.text-sm > div > p:first-child { margin-top: 0; }
.fern-prose.text-sm > p:last-child,
.fern-prose.text-sm > div > p:last-child { margin-bottom: 0; }

/* Zijbalk en codepaneel op hun plek bij het statuscode-menu.
   Het menu-component zet tijdens het openen `overflow: hidden` op de body en
   markeert hem met `data-scroll-locked`. Daardoor wordt de body zelf het
   scrollvenster en berekenen de sticky zijbalk en het codepaneel hun positie
   opnieuw: ze schuiven precies de scrollafstand omhoog en lijken te verdwijnen.
   Gemeten op onze eigen pagina's; Brevo heeft er geen last van omdat hun
   pagina anders scrollt. Door de body niet te laten vergrendelen blijft alles
   staan. De pagina kan dan achter het open menu meescrollen, en dat is bij een
   klein keuzemenu geen bezwaar. */
/* `html body` en niet alleen `body`: het component injecteert zijn eigen regel met
   !important later in de <head>, dus we hebben hogere specificiteit nodig. */
html body[data-scroll-locked] { overflow: visible !important; margin-right: 0 !important; }

/* De Explorer toont twee identieke knoppen "Send request": een rechtsboven en
   een midden in het lege antwoordvak. Dat is druk, en de bovenste is de knop
   die je toch al ziet staan (gezien door Mees). We laten alleen die staan. */
.fern-explorer-response-card .fern-explorer-send-request-button { display: none; }

/* Explorer: Fern zet de groepskoppen in de zijbalk van het Try it-scherm in de
   accentkleur. Bij ons is dat rood, en dan lezen die koppen als een waarschuwing
   (gezien door Mees). Hier worden ze net zo grijs als in de gewone zijbalk. */
.fern-scroll-area-viewport ul.list-none > li > div > span[class*="accent-a11"],
.fern-scroll-area-viewport ul.list-none > li > span[class*="accent-a11"] {
  color: var(--grayscale-a11) !important;
}

/* Try it: het tweede inlogveld verbergen.
   De API kent geen wachtwoord (de sleutel staat op de plek van de
   gebruikersnaam), dus dat veld hoort er niet te staan. Fern rendert het toch,
   want zo werkt basic auth in hun formulier, en hun eigen `omit`-instelling
   geldt alleen voor gegenereerde SDK's. Puur op de structuur, zonder javascript:
   een eerdere js-ingreep sloopte het hele paneel. De regel erboven noemt het
   veld nog wel; die zin bouwt Fern zelf op en is niet los aan te passen. */
li:has(input.fern-input[type="password"]) { display: none; }

/* ============================================================================
   LANDINGSPAGINA-BOUWSTENEN (site-afwerking, 2026-08-01)
   Generieke bouwstenen voor de startpagina en de landingspagina's per tab.
   Ze staan hier en niet in een pagina, zodat elke landingspagina dezelfde
   opbouw en dezelfde maten krijgt. Voorbeelden staan op /stijlgids.
   Fern heeft hier zelf geen component voor; wel voor de gewone kaartenrijen
   (Card/CardGroup), en die blijven de standaard. Deze twee bouwstenen zijn
   alleen voor het rijkere blok bovenaan een landingspagina.
     .lp-rij    horizontaal schuivende rij (css scroll-snap, werkt zonder js)
     .lp-kaart  kaart met een illustratievlak bovenin
   ============================================================================ */

/* -- Leesbreedte op landingspagina's ----------------------------------------
   De landingspagina's draaien op Ferns layout "overview": een kolom die ongeveer
   de helft breder is dan een gewone docpagina. Die extra ruimte is er voor de
   hero en de schuifrij, niet voor de lopende tekst: op ~970px worden regels van
   ruim honderd tekens en dat leest slecht. Daarom houden alleen de tekstblokken
   de gewone leesbreedte aan. Alle rijke blokken (.lp-hero, .lp-rij, kaartenrijen)
   staan hier bewust niet in en gebruiken dus wel de volle kolom.
   Alleen landingspagina's gebruiken layout: overview; gewone docs staan op
   "guide" en merken hier niets van.
   Let op: Fern zet de body van een pagina in een naamloze div binnen .fern-prose,
   dus de tekstblokken zijn kleinkinderen. Beide niveaus staan hieronder, zodat
   de regel blijft werken als die tussen-div ooit verdwijnt. */
.fern-layout-overview .fern-prose > :is(p, ul, ol, blockquote, table, h2, h3, h4),
.fern-layout-overview .fern-prose > div > :is(p, ul, ol, blockquote, table, h2, h3, h4),
/* Staat er een knop op de pagina (het zoekveld van de startpagina), dan zet Fern de body
   nog een laag dieper, in een astro-island (gezien 29 september 2026). */
.fern-layout-overview .fern-prose > astro-island > div > :is(p, ul, ol, blockquote, table, h2, h3, h4) {
  max-width: 44rem;
}

/* -- Schuifrij ---------------------------------------------------------------
   Eén rij die horizontaal doorschuift in plaats van een raster dat naar beneden
   uitdijt: tien onderwerpen naast elkaar blijven zo één rustig blok in plaats van
   een muur van kaarten. De volgende kaart steekt half in beeld; dat is de
   uitnodiging om te schuiven (geen fade, geen pijlknoppen, geen javascript).
   De 3px ruimte rondom is voor de kaartrand en de focusring: zonder die ruimte
   snijdt overflow:auto ze af. */
.lp-rij {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 15.5rem;
  gap: 1rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-left: 3px;
  padding: 3px 3px 1.1rem;
  margin: 1.25rem -3px 0;
  scrollbar-width: thin;
  scrollbar-color: var(--lp-border) transparent;
}
.lp-rij > * { scroll-snap-align: start; }
.dark .lp-rij { scrollbar-color: #3e3b37 transparent; }

/* -- Kaart met icoon en knop -------------------------------------------------
   Gelijk aan de kaart op laposta.nl (Jelle, 28 september 2026): wit, dunne lichte
   rand, klein omlijnd rood icoon, vette titel, omlijnde knop. De hoverreactie blijft
   die van een gewone Fern-kaart (rode rand), met één verschil: de kaart licht omhoog
   in plaats van naar rechts. In een rij die zelf zijwaarts schuift leest een
   zijwaartse hoverbeweging als een haperende scroll. */
a.lp-kaart {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  color: var(--lp-text);
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-kaart-radius);
  corner-shape: var(--lp-corner);
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease;
}
.dark a.lp-kaart { background: transparent; color: var(--lp-text-darkmode); border-color: #3e3b37; }
a.lp-kaart:hover { border-color: var(--lp-accent); transform: translateY(-3px); }
.dark a.lp-kaart:hover { border-color: var(--lp-accent-darkmode); }
.dark a.lp-kaart:focus-visible { border-color: var(--lp-accent-darkmode); }
a.lp-kaart:focus-visible { outline: 2px solid var(--lp-accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {

  a.lp-kaart { transition: border-color .2s ease; }
  a.lp-kaart:hover { transform: none; }

}

/* Het icoonvak. Geschiedenis: tot 28 september 2026 een zacht merkvlak met een
   kleurverloop en drie iconkleuren; daarna (Jelle, ronde 1) een klein rood omlijnd
   icoon; sinds ronde 3 (hieronder) de squircle met verlooprand van laposta.nl. De
   tintklassen in de mdx (.lp-t-rood, .lp-t-oranje, .lp-t-geel) doen niets meer. */
/* Icoonvak, ronde 3 van Jelle (29 september 2026): een squircle met een witte vulling,
   een rood-oranje verlooprand en een donker icoon, net als op laposta.nl (daar is het
   verloop 135deg van #e42219 naar #f39200). Hetzelfde vak staat om de iconen van Ferns
   eigen kaarten (Card), zodat alle kaarten er hetzelfde uitzien (punt 4).
   De verlooprand is een tweede achtergrond onder de border (border-box) met de witte
   vulling erboven (padding-box); zo volgt hij de squircle-vorm.
   Kent de browser corner-shape niet (Safari, Firefox), dan wordt radius 50% een cirkel.
   Daarom daar een afgeronde hoek van 12px, die het dichtst bij de squircle komt. */
.lp-kaart .lp-vlak,
.fern-card .card-icon {
  --lp-vlak-vul: #fff;
  box-sizing: border-box;
  width: 40px !important;
  height: 40px !important;
  display: grid;
  place-items: center;
  flex: none;
  color: var(--lp-text) !important;
  border: 1.5px solid transparent;
  border-radius: 12px;
  background:
    linear-gradient(var(--lp-vlak-vul), var(--lp-vlak-vul)) padding-box,
    linear-gradient(135deg, var(--lp-accent) 0%, #F39200 100%) border-box;
}
@supports (corner-shape: superellipse(1.5)) {

  .lp-kaart .lp-vlak,
  .fern-card .card-icon { border-radius: 50%; corner-shape: var(--lp-corner); }

}
.lp-kaart .lp-vlak { margin: 1.15rem 1.1rem 0; }
.dark .lp-kaart .lp-vlak,
.dark .fern-card .card-icon { --lp-vlak-vul: var(--lp-bg-darkmode); color: var(--lp-text-darkmode) !important; }
/* Fern zet de icoongrootte als inline style op de svg; !important is hier de
   enige manier om er met css overheen te gaan. Zo staat de maat op één plek en
   hoeft hij niet bij elke kaart in de mdx herhaald te worden. */
.lp-kaart .lp-vlak svg,
.fern-card .card-icon svg {
  color: currentColor;
  width: 18px !important;
  height: 18px !important;
}
/* Font Awesome tekent sommige iconen net buiten hun eigen tekenvak (de beugel van
   fa-unlock komt tot y = -32 bij een viewBox van 0 tot 512). Font Awesome zet daarom
   zelf overflow: visible op .svg-inline--fa; Fern doet dat niet, waardoor de bovenkant
   werd afgekapt (Mees, 2 november 2026, Account-pagina). Voor alle iconen, niet alleen
   in de kaarten. */
svg.svg-inline--fa { overflow: visible; }

.lp-kaart-tekst {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: .35rem;
  padding: .8rem 1.1rem 1.1rem;
}
.lp-kaart-titel {
  font-family: var(--font-heading, inherit);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
}
.lp-kaart-regel {
  flex: 1;
  font-size: .875rem;
  line-height: 1.5;
  color: var(--lp-text);
}
.dark .lp-kaart-regel { color: #cfccc7; }
/* De knop onderin: een omlijnde secundaire knop, net als "Lees meer" op laposta.nl.
   Het is een span in de link, dus de hele kaart blijft het klikdoel. */
.lp-kaart-cta {
  margin-top: .9rem;
  padding: .5rem .75rem;
  text-align: center;
  font-size: .85rem;
  font-weight: 700;
  color: var(--lp-text);
  box-shadow: inset 0 0 0 1px var(--lp-knop-lijn);
  border-radius: var(--lp-knop-radius);
  corner-shape: var(--lp-corner);
  transition: background-color .15s ease, color .15s ease;
}
.dark .lp-kaart-cta { color: var(--lp-knop-lijn-dark); box-shadow: inset 0 0 0 1px var(--lp-knop-lijn-dark); }
a.lp-kaart:hover .lp-kaart-cta { background: var(--lp-knop-lijn); color: #fff; }
a.lp-kaart:focus-within .lp-kaart-cta { background: var(--lp-knop-lijn); color: #fff; }
.dark a.lp-kaart:hover .lp-kaart-cta { background: var(--lp-knop-lijn-dark); color: var(--lp-bg-darkmode); }
.dark a.lp-kaart:focus-within .lp-kaart-cta { background: var(--lp-knop-lijn-dark); color: var(--lp-bg-darkmode); }

/* Smal scherm: één kaart per keer, met de volgende half in beeld. */
@media (max-width: 767px) {

  .lp-rij { grid-auto-columns: 77%; gap: .75rem; }

}

/* ----- Taalwisselaar: nooit een ring, in geen enkele toestand.
   Fern tekent rond deze knop een ring in de accentkleur. Met ons rood leest die als een
   foutmelding rond de knop. Mees meldde dat op 19 augustus; de regel die er toen kwam
   dekte alleen `:focus` zonder `:focus-visible`, dus alleen de muisklik-nasleep. De ring
   die je in de praktijk ziet hangt aan de OPEN staat van het uitklapmenu
   (`aria-expanded="true"` / `data-state="open"`), en die viel er buiten. Op 20 augustus
   gemeten met een testregel: een groene outline op die attributen verving precies de rode
   die Mees zag.
   Nu alle toestanden, op verzoek van Mees ("die moet gewoon helemaal nooit meer komen").
   Let op: daarmee heeft deze ene knop geen zichtbare focusindicator meer voor wie met Tab
   navigeert. Bewuste keuze, geen omissie. Het open menu is zelf de aanwijzing dat de knop
   actief is. Beide vormen worden gereset, want of Fern outline of box-shadow gebruikt
   verschilt per versie. */
button.fern-language-selector,
button.fern-language-selector:hover,
button.fern-language-selector:focus,
button.fern-language-selector:focus-visible,
button.fern-language-selector[aria-expanded="true"],
button.fern-language-selector[data-state="open"],
.language-dropdown-trigger,
.language-dropdown-trigger:hover,
.language-dropdown-trigger:focus,
.language-dropdown-trigger:focus-visible,
.language-dropdown-trigger[aria-expanded="true"],
.language-dropdown-trigger[data-state="open"] {
  outline: none;
  box-shadow: none;
}

/* ----- Diatype op dezelfde optische grootte als Open Sans.
   Diatype heeft een kleinere x-hoogte (0,482 tegen 0,535 van de em), dus bij dezelfde
   font-size oogt alle broodtekst zo'n tien procent kleiner. font-size-adjust schaalt
   het lettertype tot de x-hoogte weer gelijk is; koppen (Fira Sans) en code houden
   hun eigen maat. */
body { font-size-adjust: 0.535; }
h1, h2, h3, h4, h5, h6, .lp-kaart-titel,
code, pre, kbd, samp { font-size-adjust: none; }

/* ----- Zoekbalk in de kop: prominenter (Mees, 29 september 2026) ------------------
   Bezoekers komen meestal om te zoeken (Jelle, 28 september 2026). De zoekbalk staat op
   elke pagina bovenin; hier krijgt hij de knopvorm van de knoppen ernaast, een eigen
   vlak in de huisstijlkleur, een duidelijke rand en donkerdere tekst, zodat hij opvalt
   zonder te schreeuwen. */
#fern-search-button {
  height: 40px;
  border-radius: var(--lp-knop-radius); corner-shape: var(--lp-corner);
  /* Rechts 14px: dan staat het midden van het "/"-rondje even ver van de rand als het
     vergrootglas links (25,4 px, gemeten 2 november 2026; met 8px plakte het tegen de rand). */
  padding-left: 16px; padding-right: 14px; gap: 10px;
  background: #FAF8F4;
  border: 1px solid #adb5bd;
  color: #495057;
  font-size: 15px;
  transition: border-color .15s, background-color .15s;
}
#fern-search-button:hover { border-color: #212529; background: #fff; }
#fern-search-button:focus-visible { border-color: #212529; background: #fff; }
#fern-search-button svg { color: #212529; width: 17px; height: 17px; }
#fern-search-button kbd { border-radius: 999px; }
html.dark #fern-search-button { background: #242427; border-color: #5a5a5f; color: #c9c7c3; }
html.dark #fern-search-button:hover { border-color: #E4E2DF; background: #1B1B1D; }
html.dark #fern-search-button:focus-visible { border-color: #E4E2DF; background: #1B1B1D; }
html.dark #fern-search-button svg { color: #E4E2DF; }

/* Het doek onderaan: ruimte erboven in plaats van eronder. */
.lp-hero.lp-hero-onder { margin: .5rem 0 -1rem calc((100% - var(--lp-band)) / 2); }

/* Het doek in zijn iframe kiest zijn kleurschema naar de computer ("light dark"). Staat
   de site op een ander thema dan de computer, dan tekent Chrome het iframe op een dicht
   vlak van dat andere schema: een zwart blok op de witte pagina (gemeten 29 september
   2026, site licht en computer donker). Met hetzelfde schema op het iframe-element
   blijft het doorzichtig; de kleur van het doek zelf volgt de site via doek-thema.js. */
.lp-wave { color-scheme: light dark; }

/* ----- Zijbalk zonder het item "Overzicht" (Mees, 29 september 2026) ---------------
   Elke tab opent op zijn overzichtspagina; dat item bovenaan de zijbalk voegde niets
   toe. De pagina blijft bestaan en is bereikbaar via de tab, alleen het item is weg.
   Het gaat om de tien overzichtspagina's: de slugs eindigen op "overzicht", die van de
   API-tab is "api" (geen andere pagina heeft zo'n slug). Alleen binnen de zijbalk, want
   de tabs bovenin linken naar dezelfde adressen. */
#fern-sidebar-scroll-area li:has(> a:is([href$="overzicht"], [href$="/api"])) { display: none; }

/* ----- Kop rustiger (Mees, 29 september 2026) ---------------------------------------
   1. De taalknop: wereldbol en taalcode in plaats van vlag en volledige naam. De taal
      lezen we af aan de links in de tabrij en de zijbalk (/en/, /de/, /es/, anders
      Nederlands), zodat de code er meteen staat: een script draaide live pas na 2 tot 4
      seconden, en de vlag is niet te gebruiken (live een bestand, op een preview
      ingebakken). De naam blijft onzichtbaar staan, zodat een schermlezer nog
      "Nederlands" voorleest. Kent de browser :has() niet, dan blijft Ferns eigen knop
      met vlag en naam staan. */
@supports selector(:has(a)) {

  .language-dropdown-trigger { gap: 6px; }
  .language-dropdown-trigger > div:first-child { display: none; }
  .language-dropdown-trigger > span.truncate {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
  .language-dropdown-trigger::before {
    content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c2.6 2.8 3.9 6 3.9 9.5s-1.3 6.7-3.9 9.5c-2.6-2.8-3.9-6-3.9-9.5s1.3-6.7 3.9-9.5z'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c2.6 2.8 3.9 6 3.9 9.5s-1.3 6.7-3.9 9.5c-2.6-2.8-3.9-6-3.9-9.5s1.3-6.7 3.9-9.5z'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .language-dropdown-trigger::after { content: "NL"; order: 1; font-weight: 500; letter-spacing: .02em; }
  :root:has(:is(.fern-header-tabs, #fern-sidebar-scroll-area) a[href^="/en/"]) .language-dropdown-trigger::after { content: "EN"; }
  :root:has(:is(.fern-header-tabs, #fern-sidebar-scroll-area) a[href^="/de/"]) .language-dropdown-trigger::after { content: "DE"; }
  :root:has(:is(.fern-header-tabs, #fern-sidebar-scroll-area) a[href^="/es/"]) .language-dropdown-trigger::after { content: "ES"; }
  .language-dropdown-trigger > svg { order: 2; }

}

/* 2. De tabrij loopt over de volle breedte en staat in het midden. "safe center": past
      de rij niet (smal scherm), dan begint hij links en blijft hij schuifbaar, in plaats
      van aan beide kanten af te vallen. */
.fern-header-tabs { justify-content: flex-start; }
/* Fern zet soms een astro-island (display: contents) tussen de tabrij en zijn binnenste
   lagen (gezien op een preview van 29 september 2026, live nog niet). Daarom geen
   kind-selectors (>) maar :has() op de laag die de tabs zelf bevat. */
.fern-header-tabs div:has(> div > a[role="tab"]) { max-width: none; width: 100%; }
/* Punt 7 van ronde 3 (Mees, 29 september 2026): de tabrij liep als blok in het midden en
   niet over de volle breedte. Nu gespreid, van onder het logo tot onder de themaknop.
   min-width in plaats van width: past de rij niet, dan schuift hij in plaats van dat de
   tabs krimpen. */
/* Ronde 4 (Mees, 29 september 2026): toch links, onder het logo, met Inloggen rechts in
   dezelfde rij (zie "Ronde 4" onderaan). De negatieve marge is de binnenruimte van de eerste
   tab, zodat het icoon precies onder de linkerrand van het logo staat. */
.fern-header-tabs div:has(> a[role="tab"]) { justify-content: flex-start; min-width: 100%; margin-left: -12px; }
/* Fern kapt de tabnamen af als de rij niet past ("Aan de...", "Rel..."). Daarom per
   schermbreedte minder ruimte per tab en daarna de tabs zonder icoon. Gemeten grenzen: zie
   "Ronde 4". Onder 1024 px staan de tabs in het menu. */
@media (max-width: 1469px) {
 .fern-header-tabs a[role="tab"] { padding-inline: 8px; } .fern-header-tabs div:has(> a[role="tab"]) { margin-left: -8px; } 
}
@media (max-width: 1389px) {
 .fern-header-tabs a[role="tab"] > svg { display: none; } 
}

/* ----- Telefoon en tablet rustiger (Mees, 29 september 2026) ------------------------ */
@media (max-width: 1023px) {

  /* Het uitklapmenu over de volle breedte: de pagina piepte er links onder uit. */
  #fern-sidebar { width: 100% !important; max-width: none !important; left: 0 !important; margin-left: 0 !important; }
  /* De tabs in het menu: kaal icoon in plaats van een icoon in een kadertje. */
  #fern-sidebar-scroll-area a > span[class*="shadow-card"] {
    border: 0 !important; box-shadow: none !important; background: none !important;
    color: inherit !important; width: auto; margin-right: 12px;
  }
  /* Sluitknop neutraal, niet rood gevuld. */
  button[aria-label="Close menu"] { background: none !important; color: var(--grayscale-a11, #212529) !important; box-shadow: none !important; }

}
/* De suggestieknop weg op een telefoon of ander aanraakscherm: hij klapte er raar uit
   en tekst selecteren werkt daar anders. */
@media (max-width: 767px), (hover: none) and (pointer: coarse) {

  .lp-sug-fab, .lp-sug-sel { display: none !important; }

}

/* ----- Startknop op de startpagina (Mees, 29 september 2026) -------------------------
   "Start direct gratis" staat niet meer in de kop (die was te druk) maar op de
   startpagina, onder de stappen om te beginnen. Zelfde vorm als de knoppen in de kop. */
.lp-cta-rij { margin: 1.75rem 0 0; }  /* zie ook punt 11 onderaan */
a.lp-cta {
  display: inline-flex; align-items: center; height: 44px; padding: 0 22px;
  border-radius: var(--lp-knop-radius); corner-shape: var(--lp-corner);
  background: var(--lp-accent); color: #fff !important; font-weight: 700; font-size: 16px;
  text-decoration: none !important; transition: background-color .15s ease;
}
a.lp-cta:hover { background: var(--lp-accent-dark); }
a.lp-cta .external-link-icon { display: none; }  /* Ferns icoon voor externe links hoort niet op een knop */
a.lp-cta:focus-visible { outline: 2px solid var(--lp-accent); outline-offset: 3px; }

/* ===== Ronde 3 van Jelle, plus punten van Mees (29 september 2026) ====================
   Knopgewicht 700 en het icoonvak staan bij hun eigen regels hierboven. */

/* Punt 2. Kaarten als squircle, zoals op laposta.nl: daar staat een radius van 32px met
   corner-shape, en zonder corner-shape (Safari, Firefox) dezelfde radius maal 0,752, zodat
   de gewone afgeronde hoek ongeveer even rond oogt. Onze kaarten zijn kleiner, dus 24px. */
:root { --lp-hoek-factor: .752; --lp-kaart-radius: calc(24px * var(--lp-hoek-factor)); }
@supports (corner-shape: superellipse(2)) {
 :root { --lp-hoek-factor: 1; } 
}
a.fern-card {
  border-radius: var(--lp-kaart-radius) !important;
  corner-shape: var(--lp-corner);
}

/* Punt 6. De rubriek boven de paginatitel ("Introductie") in hetzelfde grijs en gewicht
   als de kopjes in de zijbalk, niet meer in het rood van een link. */
.fern-breadcrumb-item { color: var(--lp-kop-zacht) !important; font-weight: 600; }
.dark .fern-breadcrumb-item { color: var(--lp-kop-zacht-darkmode) !important; }
a.fern-breadcrumb-item:hover { color: var(--lp-accent) !important; }
a.fern-breadcrumb-item:focus-visible { color: var(--lp-accent) !important; }
.dark a.fern-breadcrumb-item:hover { color: var(--lp-accent-darkmode) !important; }
.dark a.fern-breadcrumb-item:focus-visible { color: var(--lp-accent-darkmode) !important; }

/* Punt 8. De taalknop even hoog als de themaknop ernaast (36px, Ferns size-9) en met
   dezelfde hover: Ferns accentvlak en accenttekst. Gemeten vooraf: taalknop 32px hoog,
   themaknop 36px. */
.language-dropdown-trigger {
  height: 36px !important; min-height: 36px; padding: 0 10px !important;
  border-radius: 8px; transition: background-color .15s ease, color .15s ease;
  color: var(--grayscale-a11) !important;  /* zelfde rustkleur als de themaknop */
}
.language-dropdown-trigger:hover,
.language-dropdown-trigger[data-state="open"],
.language-dropdown-trigger[aria-expanded="true"] {
  background-color: var(--accent-a3) !important; color: var(--accent-11) !important;
}

/* Punt 9. De rij kaarten loopt vanzelf rond (Mees; startrij.js zet de klasse lp-loopt en
   de twee maten). Rustig tempo (30px per seconde), eindeloos, zonder zelf te schuiven.
   Staat stil zolang de muis erop staat of een kaart toetsenbordfocus heeft, zodat
   "Bekijken" geen bewegend doel is. Links en rechts vervaagt de rij (mask), zoals op
   laposta.nl. De hoverreactie is hier alleen de rode rand: de animatie gebruikt de
   transform al, dus het optillen van de kaart valt weg. */
.lp-rij.lp-loopt {
  display: flex;
  gap: 1rem;
  overflow: hidden;
  scroll-snap-type: none;
  padding: 3px 0 1.1rem;
  margin-inline: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4rem, #000 calc(100% - 4rem), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 4rem, #000 calc(100% - 4rem), transparent 100%);
}
.lp-rij.lp-loopt > * {
  flex: 0 0 15.5rem;
  animation: lp-loop var(--lp-loop-duur, 80s) linear infinite;
}
.lp-rij.lp-loopt:hover > *,
.lp-rij.lp-loopt:focus-within > * { animation-play-state: paused; }
.lp-rij.lp-loopt:focus-within > * { animation-play-state: paused; }
.lp-rij.lp-loopt > a.lp-kaart:hover { transform: none; }
.lp-rij.lp-loopt > a.lp-kaart:focus-visible { transform: none; }
@keyframes lp-loop { to { transform: translateX(calc(-1 * var(--lp-loop-afstand, 0px))); } }
@media (max-width: 767px) {

  .lp-rij.lp-loopt {
    gap: .75rem;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 1.5rem, #000 calc(100% - 1.5rem), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 1.5rem, #000 calc(100% - 1.5rem), transparent 100%);
  }
  .lp-rij.lp-loopt > * { flex-basis: 72%; }

}

/* Verminderde beweging aan in het systeem: geen beweging maar een stilstaand raster van
   kleine kaarten (startrij.js doet dan niets). Zonder de uitleg en zonder de knop, want
   de hele kaart is de link. */
@media (prefers-reduced-motion: reduce) {

  .lp-rij {
    grid-auto-flow: row;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    overflow: visible;
  }
  .lp-rij .lp-kaart-regel, .lp-rij .lp-kaart-cta { display: none; }
  .lp-rij .lp-kaart-tekst { padding-bottom: 1rem; }

}

/* Punt 10 (Jelle, via Mees, 29 september 2026; hij bouwde het zelf na in de browser).
   De zoekbalk rustiger: smaller (25rem, gecentreerd tussen logo en Inloggen), wit in
   plaats van het beige vlak, een lichtere rand en zonder Ferns schaduwring. En een dunne
   lijn boven de tabrij, in dezelfde kleur als de lijn eronder (Ferns --grayscale-a3),
   zodat de rij met logo en zoeken los staat van de tabs. Dit overschrijft een deel van
   "Zoekbalk in de kop: prominenter" hierboven. */
div:has(> #fern-search-button) { max-width: 25rem !important; margin-inline: auto; }
#fern-search-button {
  background: #fff;
  border-color: var(--lp-border);
  box-shadow: none !important;
}
#fern-search-button:hover { border-color: #adb5bd; }
#fern-search-button:focus-visible { border-color: #adb5bd; }
html.dark #fern-search-button { background: var(--lp-bg-darkmode); border-color: #3e3b37; }
html.dark #fern-search-button:hover { border-color: #5a5a5f; }
html.dark #fern-search-button:focus-visible { border-color: #5a5a5f; }
.fern-header-tabs { border-top: 1px solid var(--grayscale-a3); }

/* Punt 11 (Jelle, ronde 3): "Start direct gratis" meteen op de startpagina, direct onder de
   introductie, met ernaast in één zin waarom (dezelfde feiten als stap 1 verderop). */
.lp-cta-rij { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin: 1.5rem 0 .25rem; }
.lp-cta-regel { color: #6C757D; font-size: .95rem; max-width: 30rem; }
.dark .lp-cta-regel { color: #9A968F; }

/* Punt 12 (Jelle): witruimte boven het eerste kopje in de zijbalk. Die kwam van het
   verborgen item "Overzicht": het binnenste item was weg, maar het buitenste bleef staan en
   kreeg van Fern 24px ondermarge. Nu verdwijnt het hele buitenste item (alleen als er geen
   kopje in zit, zodat er nooit een groep verdwijnt). */
#fern-sidebar-scroll-area .fern-sidebar-group > li:has(li > a:is([href$="overzicht"], [href$="/api"])):not(:has(.fern-sidebar-heading)) { display: none; }

/* Punt 13 (Mees): logo even groot als op laposta.nl, 48px hoog op de computer (docs.yml)
   en 40px op de telefoon. */
/* Fern zet onder 768px max-height 32px op het logo, met !important in een CSS-laag; daar
   wint geen enkele gewone regel van. zoom schaalt het beeld zelf: 32px x 1,25 = 40px. */
@media (max-width: 767px) {

  #fern-header a > img { zoom: 1.25; }

}

/* Punt 14 (Mees): alle lijnen in één kleur. Fern tekende de lijn onder de kop en naast de
   zijbalk zelf (een doorzichtig grijs), de kaarten hadden #dee2e6 (ook in donker, dus
   een lichte rand op het donkere vlak) en het zoekveld een eigen grijs. */
#fern-header { border-bottom-color: var(--lp-lijn) !important; }
#fern-sidebar { border-right-color: var(--lp-lijn) !important; }
.fern-header-tabs { border-top-color: var(--lp-lijn); }
a.fern-card, .fern-back-to-top, a.fern-footer-next { border-color: var(--lp-lijn) !important; }
#fern-search-button { border-color: var(--lp-lijn); }
html.dark #fern-header { border-bottom-color: var(--lp-lijn-darkmode) !important; }
html.dark #fern-sidebar { border-right-color: var(--lp-lijn-darkmode) !important; }
html.dark .fern-header-tabs { border-top-color: var(--lp-lijn-darkmode); }
html.dark :is(a.fern-card, .fern-back-to-top, a.fern-footer-next) { border-color: var(--lp-lijn-darkmode) !important; }
html.dark #fern-search-button, .dark a.lp-kaart { border-color: var(--lp-lijn-darkmode); }
.dark .fern-table th, .dark .fern-table td { border-color: var(--lp-lijn-darkmode); }

/* Punt 15 (Mees): op een heel breed scherm (vanaf 2400px, bv. een ver uitgezoomde browser)
   tekende het doek maar een deel van de band, of niets. Daar blijft hij 2000px breed,
   gecentreerd onder de tekst, en vervaagt hij aan beide kanten. */
@media (min-width: 2400px) {

  .lp-hero, .lp-hero.lp-hero-onder {
    width: 2000px; margin-left: calc((100% - 2000px) / 2);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  }

}

/* ===== Ronde 4 (Mees, 29 september 2026) ==================================================

   Kop. De bovenste rij is hoger (docs.yml header-height 80px, was 64) zodat er meer lucht
   boven de lijn zit, en de zoekbalk is 44px hoog. Inloggen staat niet meer naast de taalknop
   maar rechts in de tabrij, op één lijn met de tabs. Dat kan alleen waar de tabs en de knop
   samen passen (gemeten: vanaf 1180 px met tabs zonder icoon); daaronder blijft hij boven. */
#fern-search-button { height: 52px; }  /* 52px sinds 29 september 2026, 17 uur (Mees) */
/* Omgewisseld op verzoek van Mees (29 september 2026, na ronde 4): Inloggen staat weer
   rechtsboven, en de taalknop en de themaknop staan rechts in de tabrij. Die twee horen bij
   het lezen van de docs, Inloggen bij het product. */
@media (min-width: 1180px) {

  nav.fern-header-navbar-links > button {
    position: absolute;
    top: calc(var(--header-height-real, 80px) + (var(--header-height, 125px) - var(--header-height-real, 80px) - 36px) / 2);
  }
  nav.fern-header-navbar-links > button:not(.fern-language-selector) { right: 32px; }
  nav.fern-header-navbar-links > button.fern-language-selector { right: 76px; }
  .fern-header-tabs { padding-right: 180px; }

}

/* Stapnummers (Fern Steps): vet en iets kleiner, zodat het cijfer rustig in zijn vakje staat. */
.fern-step .fern-anchor-icon { font-weight: 700; font-size: 14px; }

/* De rij kaarten op de landingspagina's iets breder dan de tekstkolom (Jelle: margin-top 2rem,
   margin-inline -5rem), maar nooit tot buiten het scherm of over de zijbalk. De kolom staat
   gecentreerd in het scherm; links ligt de zijbalk (300px), dus de ruimte links is de
   beperking. Gemeten: vanaf 1440 px is er links 86px vrij, daaronder minder. */
/* Vrije ruimte naast de kolom = (schermbreedte - 1274px) / 2, met minstens 29px (gemeten op
   1024 tot 1600 px). 1282 in plaats van 1274 houdt 4px marge voor een vaste schuifbalk. */
.lp-rij, .lp-rij.lp-loopt { margin-top: 2rem; }
@media (min-width: 1024px) {

  .lp-rij.lp-loopt { margin-inline: calc(-1 * min(5rem, max(25px, (100vw - 1282px) / 2))); }

}

/* Startblok op de startpagina: een vlak met de uitleg links en de knop rechts (Mees). In de
   mdx staat de knop eerst, dus order zet de tekst ervoor; een schermlezer leest de knop
   eerst, wat hier niet uitmaakt. Op een smal scherm staat de knop onder de tekst. */
.lp-cta-rij {
  justify-content: space-between; gap: 1rem 2rem;
  margin: 1.75rem 0 .5rem; padding: 1.25rem 1.5rem;
  background: var(--lp-callout-bg); border-radius: var(--lp-kaart-radius); corner-shape: var(--lp-corner);
}
.lp-cta-regel { order: -1; flex: 1 1 18rem; color: var(--lp-text); font-size: 1rem; line-height: 1.5; max-width: none; }
.dark .lp-cta-rij { background: #242427; }
.dark .lp-cta-regel { color: var(--lp-text-darkmode); }
@media (max-width: 767px) {

  .lp-cta-rij { padding: 1rem 1.1rem; }
  .lp-cta-rij a.lp-cta { width: 100%; justify-content: center; }

}

/* De Beacon (onze helpdesk-chatbot, geladen door beacon-laden.js) staat op de docs LINKSONDER,
   zijn eigen plek, net als op laposta.nl (Mees, 2 november 2026, 's avonds). Rechtsonder (variant B,
   eerder die dag) zat hij in de weg bij de Suggestie-knop en de suggestiehulp. Links dekte hij op Fern
   de onderste menu-items van de zijbalk af, want die loopt tot onderaan het scherm. Daarom krijgt de
   zijbalk onderaan lege ruimte zo hoog als de knop plus zijn marge: het laatste item scrolt dan
   altijd boven de knop uit. Aan de Beacon zelf verandert niets. */
/* flex: none, want het scrollvlak is een flexbox en drukte de ruimte anders plat tot 0 (gemeten). */
#fern-sidebar-scroll-area::after { content: ""; display: block; flex: none; height: 104px; }

/* Fern's eigen Ask AI staat uit in het Fern-dashboard (Settings, kaart Ask AI); twee AI-knoppen
   naast elkaar verwarren. Deze regel is het vangnet voor als hij daar ooit weer aan gaat. */
#fern-ask-ai-button { display: none !important; }

/* — Aanmeldformulier op een docs-pagina (Laposta MCP-server, november 2026) ---------------
   De kale html uit de app, in de huisstijl. De spambeveiliging laadt aanmeldformulier-laden.js. */
.lp-aanmeldformulier { max-width: 420px; margin: 1.5em 0; }
.lp-aanmeldformulier label { display: block; padding: .6em 0 .25em; font-weight: 600; }
.lp-aanmeldformulier input[type=email], .lp-aanmeldformulier input[type=text] {
  width: 100%; padding: .55em .7em; border: 1px solid var(--lp-border); border-radius: 8px;
  background: transparent; color: inherit; font: inherit;
}
.lp-aanmeldformulier input[type=email]:focus, .lp-aanmeldformulier input[type=text]:focus {
  outline: 2px solid var(--lp-accent); outline-offset: 1px;
}
.lp-aanmeldformulier input[type=submit] {
  margin-top: 1.1em; padding: .6em 1.4em; border: 0; border-radius: var(--lp-knop-radius);
  background: var(--lp-accent); color: #fff; font: inherit; font-weight: 700; cursor: pointer;
}
.lp-aanmeldformulier input[type=submit]:hover { background: var(--lp-accent-dark); }
.lp-aanmeldformulier input[type=submit]:focus-visible { background: var(--lp-accent-dark); }
.dark .lp-aanmeldformulier input[type=email], .dark .lp-aanmeldformulier input[type=text] { border-color: var(--lp-lijn-darkmode); }
