  :root {
    --navy:        #0E2A47;
    --navy-deep:   #08182a;
    --trust:       #147A52;
    --trust-deep:  #0F6342;
    --trust-soft:  #E4F2EC;
    --blue:        #2E7AB8;
    --blue-bright: #3FA0DB;
    --blue-soft:   #E8F1F9;
    --blue-bg:     #F2F8FC;
    --ivory:       #FFF8EE;
    --paper:       #FFFFFF;
    --cream:       #FAF6EE;
    --ink:         #0E2A47;
    --ink-2:       #2A3F58;
    --muted:       #6B7A8E;
    --line:        #E5EAF0;
    --line-2:      #D6DEE8;
    --green:       #2F7D5B;
    --yellow:      #F6C453;
    --coral:       #E89A7A;
    --serif: "Instrument Serif", "Times New Roman", serif;
    --sans:  "Geist", ui-sans-serif, system-ui, sans-serif;
    --mono:  "JetBrains Mono", ui-monospace, monospace;
  }
  *, *::before, *::after { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  body {
    font-family: var(--sans);
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-size: 17px;
    line-height: 1.55;
  }
  img { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
  ::selection { background: var(--navy); color: #fff; }

  .wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 28px; }

  h1, h2, h3, h4 { font-weight: 600; letter-spacing: -0.018em; margin: 0; color: var(--ink); }
  h1 { font-size: clamp(40px, 5.6vw, 68px); line-height: 1.04; letter-spacing: -0.025em; font-weight: 700; }
  h2 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -0.02em; font-weight: 700; }
  h3 { font-size: 22px; line-height: 1.25; }
  .accent-italic { font-family: var(--serif); font-weight: 400; font-style: italic; color: var(--blue); letter-spacing: 0; }
  .lede { font-size: 18px; line-height: 1.6; color: var(--ink-2); max-width: 56ch; }
  p { margin: 0; }
  .eyebrow {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 500;
  }

  /* Buttons */
  .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 15px 24px;
    border-radius: 999px;
    font-size: 15.5px; font-weight: 600;
    transition: transform .15s, background .2s, color .2s, box-shadow .2s;
    white-space: nowrap;
    border: 1px solid transparent;
  }
  .btn-primary {
    background: var(--trust); color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 6px 16px -6px rgba(20,122,82,.4);
  }
  .btn-primary:hover { background: var(--trust-deep); transform: translateY(-1px); box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 12px 26px -10px rgba(20,122,82,.55);}
  .btn-navy { background: var(--navy); color: #fff; }
  .btn-navy:hover { background: var(--navy-deep); transform: translateY(-1px); }
  .btn-light { background: #fff; color: var(--navy); border-color: var(--line-2); }
  .btn-light:hover { background: var(--blue-soft); border-color: var(--blue); }
  .btn-blue { background: var(--blue); color: #fff; }
  .btn-blue:hover { background: var(--navy); }
  .btn-ghost { background: transparent; color: var(--ink); }
  .btn-ghost:hover { background: rgba(14,42,71,.06); }
  .btn-arrow::after { content: "→"; transition: transform .2s; }
  .btn-arrow:hover::after { transform: translateX(3px); }
  .btn-square { border-radius: 6px; }
  .link-arrow {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--blue); font-weight: 600; font-size: 15px;
  }
  .link-arrow::after { content: "→"; transition: transform .2s; }
  .link-arrow:hover::after { transform: translateX(4px); }

  /* Nav */
  .nav {
    position: sticky; top: 0; z-index: 50;
    background: rgba(255,255,255,0.85);
    backdrop-filter: saturate(140%) blur(14px);
    border-bottom: 1px solid transparent;
    transition: border-color .2s, background .2s;
  }
  .nav.scrolled { border-bottom-color: var(--line); background: rgba(255,255,255,.95);}
  .nav-inner { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; gap: 24px; }
  .logo img { height: 30px; width: auto; }
  .nav-menu { display: flex; align-items: center; gap: 4px; }
  .nav-menu > .item { position: relative; }
  .nav-menu a, .nav-menu .item-toggle {
    padding: 9px 14px; border-radius: 10px;
    font-size: 14.5px; font-weight: 500; color: var(--ink-2);
    transition: background .2s, color .2s;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
  .nav-menu a:hover, .nav-menu .item-toggle:hover, .nav-menu .item:hover .item-toggle { background: var(--blue-soft); color: var(--navy); }
  .nav-menu .item-toggle .chev { font-size: 9px; opacity: .6; transition: transform .25s; }
  .nav-menu .item:hover .item-toggle .chev { transform: rotate(180deg); }
  .nav-cta { display: flex; align-items: center; gap: 8px; }
  .nav-cta .btn { padding: 11px 20px; font-size: 14.5px; }
  @media (max-width: 920px) { .nav-menu { display: none; } .nav-cta .btn-ghost { display: none; } }

  /* Megamenu */
  .mega-wrap {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    width: min(960px, 90vw);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .25s ease;
    z-index: 60;
  }
  .nav-menu .item:hover .mega-wrap,
  .nav-menu .item:focus-within .mega-wrap { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
  .mega {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: 0 28px 60px -20px rgba(14,42,71,.22);
    padding: 28px;
    display: grid;
    grid-template-columns: repeat(3, 1fr) 1.1fr;
    gap: 28px;
  }
  .mega-col h5 {
    font-family: var(--mono); font-size: 11px; font-weight: 500;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--muted); margin: 0 0 14px;
  }
  .mega-col .m-link {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 10px 10px; border-radius: 10px;
    color: var(--ink); margin: 0 -10px;
    transition: background .15s;
  }
  .mega-col .m-link:hover { background: var(--blue-soft); color: var(--navy); }
  .mega-col .m-link .ic {
    width: 32px; height: 32px; border-radius: 9px;
    background: var(--trust-soft); color: var(--trust);
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .mega-col .m-link .t strong { display: block; font-size: 14.5px; font-weight: 600; color: var(--ink); }
  .mega-col .m-link .t span { font-size: 12.5px; color: var(--muted); line-height: 1.45; display: block; margin-top: 2px;}
  .mega-featured {
    background: linear-gradient(155deg, #0E2A47, #1A3F66);
    border-radius: 16px;
    padding: 22px;
    color: #fff;
    display: flex; flex-direction: column; justify-content: space-between;
    position: relative; overflow: hidden;
  }
  .mega-featured::after {
    content: "";
    position: absolute; right: -40px; top: -40px;
    width: 160px; height: 160px;
    background: radial-gradient(circle, rgba(63,160,219,.45), transparent 70%);
  }
  .mega-featured .lab { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-bright); position: relative; z-index: 1; }
  .mega-featured h4 { color: #fff; font-size: 18px; margin-top: 6px; line-height: 1.25; position: relative; z-index: 1; }
  .mega-featured p { font-size: 13.5px; color: rgba(255,255,255,.78); margin-top: 8px; line-height: 1.5; position: relative; z-index: 1; }
  .mega-featured .m-cta {
    display: inline-flex; align-items: center; gap: 8px;
    margin-top: 18px; padding: 10px 16px;
    background: var(--trust); color: #fff;
    border-radius: 999px; font-size: 13.5px; font-weight: 600;
    align-self: flex-start;
    position: relative; z-index: 1;
    transition: background .2s;
  }
  .mega-featured .m-cta:hover { background: var(--trust-deep); }
  .mega-featured .m-cta::after { content: "→"; }

  /* Hero */
  .hero { padding: 48px 0 24px; position: relative; overflow: hidden; }
  .hero::before {
    content: "";
    position: absolute; inset: 0;
    background:
      radial-gradient(circle at 90% 0%, rgba(63,160,219,.16), transparent 45%),
      radial-gradient(circle at 0% 100%, rgba(63,160,219,.07), transparent 50%);
    pointer-events: none; z-index: 0;
  }
  .hero .wrap { position: relative; z-index: 1; }
  .hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
  .hero h1 { margin-top: 18px; }
  .hero .sub-line { font-family: var(--serif); font-style: italic; font-size: clamp(28px, 3.6vw, 44px); color: var(--blue); line-height: 1; margin-top: 4px; display: block; letter-spacing: -.01em; }
  .hero-lede { margin-top: 22px; }
  .hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
  .hero-bullets { margin-top: 26px; display: flex; flex-direction: column; gap: 10px; }
  .hero-bullets li { display: flex; align-items: flex-start; gap: 14px; list-style: none; color: var(--ink-2); font-size: 15px; padding-top: 4px; }
  .hero-bullets { padding: 0; margin: 26px 0 0; }
  .hero-bullets li { align-items: flex-start; padding-top: 2px; }
  .hero-bullets .ch {
    width: 24px; height: 24px; border-radius: 3px;
    background: transparent;
    border: 3px solid var(--trust);
    display: inline-block; flex-shrink: 0;
    position: relative;
    overflow: visible;
    font-size: 0;
    margin-top: 0;
  }
  .hero-bullets .ch::before {
    content: "";
    position: absolute;
    left: -7px;
    top: -14px;
    width: 36px;
    height: 36px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%23147A52' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'><path d='M9 22 L15 28 L31 6'/></svg>");
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
  }
  @media (max-width: 920px) { .hero-grid { grid-template-columns: 1fr; gap: 32px; } }

  /* Hero illustration */
  .hero-illo {
    position: relative;
    aspect-ratio: 1 / 1;
    background:
      radial-gradient(circle at 78% 18%, rgba(255,255,255,.55), transparent 55%),
      radial-gradient(circle at 20% 90%, rgba(14,42,71,.05), transparent 50%),
      #EFE5D0;
    border-radius: 28px;
    border: 1px solid rgba(217, 201, 165, .6);
    padding: 30px;
    overflow: hidden;
    transition: aspect-ratio .55s cubic-bezier(.4,.0,.2,1);
  }
  .hero-illo.form-active { aspect-ratio: auto; min-height: 600px; }
  /* Default illustration (browser + stamp) fades out when form is active */
  .hero-illo .illo-stack { position: absolute; inset: 30px; transition: opacity .5s ease, transform .6s cubic-bezier(.4,.0,.2,1); }
  .hero-illo.form-active .illo-stack { opacity: 0; transform: scale(.94) translateY(-12px); pointer-events: none; }

  /* Inline contact form */
  .hero-form {
    position: absolute; inset: 22px;
    background: #fff;
    border-radius: 22px;
    border: 1px solid var(--line);
    box-shadow: 0 24px 60px -28px rgba(14,42,71,.28);
    padding: 28px 30px 26px;
    display: flex; flex-direction: column;
    opacity: 0; transform: scale(.96) translateY(14px);
    pointer-events: none;
    transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.2,1);
    overflow: visible;
  }
  .hero-illo.form-active .hero-form { opacity: 1; transform: none; pointer-events: auto; transition-delay: .12s; }
  .hero-form .hf-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
  .hero-form .hf-head .lab { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; color: var(--blue); text-transform: uppercase; font-weight: 500; }
  .hero-form .hf-head h3 { font-size: 22px; font-weight: 600; color: var(--navy); margin-top: 4px; letter-spacing: -.01em; line-height: 1.2; }
  .hero-form .hf-close {
    width: 28px; height: 28px; border-radius: 50%;
    border: 1px solid var(--line-2); background: #fff; color: var(--ink-2);
    cursor: pointer; font-size: 14px; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: background .2s, color .2s;
  }
  .hero-form .hf-close:hover { background: var(--cream); color: var(--navy); }
  .hero-form .hf-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; margin-top: 18px; }
  .hero-form .hf-fields .span-2 { grid-column: 1 / -1; }
  .hero-form label { display: block; font-size: 11px; font-weight: 600; color: var(--ink-2); margin-bottom: 5px; letter-spacing: .02em; }
  .hero-form input, .hero-form select, .hero-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line-2);
    border-radius: 8px;
    background: #fff;
    font: inherit;
    font-size: 14px;
    color: var(--ink);
    transition: border-color .2s, box-shadow .2s;
  }
  .hero-form select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7A8E' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat: no-repeat; background-position: right 10px center; background-size: 14px; padding-right: 32px; }
  .hero-form input:focus, .hero-form select:focus, .hero-form textarea:focus {
    outline: none;
    border-color: var(--trust);
    box-shadow: 0 0 0 3px rgba(20,122,82,.12);
  }
  .hero-form textarea { resize: none; min-height: 60px; font-family: inherit; }
  .hero-form .hf-cta { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .hero-form .hf-cta .priv { font-size: 11.5px; color: var(--muted); line-height: 1.35; max-width: 56%; }
  .hero-form .hf-cta .btn { padding: 12px 20px; font-size: 14px; }
  /* Success state */
  .hero-form .hf-success {
    display: none;
    flex-direction: column; align-items: center; justify-content: center; text-align: center;
    flex: 1; gap: 14px;
  }
  .hero-form.sent .hf-head, .hero-form.sent .hf-fields, .hero-form.sent .hf-cta { display: none; }
  .hero-form.sent .hf-success { display: flex; }
  .hero-form .hf-success .badge-ok {
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--trust-soft); color: var(--trust);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 28px;
  }
  .hero-form .hf-success h4 { font-size: 20px; color: var(--navy); font-weight: 600; }
  .hero-form .hf-success p { color: var(--ink-2); font-size: 14.5px; line-height: 1.5; max-width: 36ch; }
  @media (max-width: 920px) {
    .hero-form { inset: 12px; padding: 22px 22px 20px; }
    .hero-form .hf-fields { grid-template-columns: 1fr; }
    .hero-form .hf-cta { flex-direction: column; align-items: stretch; }
    .hero-form .hf-cta .priv { max-width: none; order: 2; }
  }

  /* === Mobile: hide decorative visuals, form becomes full-screen modal === */
  @media (max-width: 720px) {
    /* Hero illustration: hide the decorative stack, collapse the container */
    .hero-illo {
      aspect-ratio: auto;
      min-height: 0;
      padding: 0;
      border: none;
      background: transparent;
      overflow: visible;
    }
    .hero-illo .illo-stack { display: none; }
    .hero-illo.form-active { min-height: 0; }
    .hero-grid { gap: 0; }

    /* Form becomes a fixed full-screen modal sheet */
    .hero-form {
      position: fixed;
      inset: 0;
      z-index: 200;
      border-radius: 0;
      border: none;
      padding: 24px 20px;
      box-shadow: none;
      max-width: none;
      transform: translateY(20px);
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    .hero-illo.form-active .hero-form { transform: none; }
    .hero-form .hf-head { padding-top: 4px; }
    .hero-form .hf-head h3 { font-size: 19px; }
    /* Backdrop body lock */
    body.form-open { overflow: hidden; }

    /* Hide decorative feature visuals */
    .vis, .vis-trust { display: none; }
    .feature { gap: 0; padding: 40px 0; }
    .feature h2 { max-width: none; }
  }
  /* Note scene: handwritten note from your accountant + business card peeking out */
  .note-scene {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 24px;
  }
  .note-paper {
    position: relative;
    width: 100%;
    max-width: 380px;
    background: #FBF6EC;
    padding: 24px 28px 22px;
    border-radius: 3px;
    box-shadow:
      0 1px 0 rgba(255,255,255,.85) inset,
      0 28px 50px -22px rgba(14,42,71,.32),
      0 8px 18px -10px rgba(14,42,71,.18),
      0 0 0 1px rgba(217, 201, 165, .45);
    transform: rotate(-1.6deg);
    z-index: 2;
  }
  .note-paper::after {
    /* subtle ruled-paper lines */
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(transparent 0, transparent 26px, rgba(14,42,71,.045) 26px, rgba(14,42,71,.045) 27px);
    pointer-events: none;
    border-radius: inherit;
  }
  .note-paper::before {
    /* torn/perforated top edge accent */
    content: "";
    position: absolute;
    left: 0; right: 0; top: 0; height: 6px;
    background:
      radial-gradient(circle 3px at 6px 0, #FBF6EC 99%, transparent 100%) repeat-x 0 0/12px 6px,
      transparent;
    transform: translateY(-3px);
    opacity: .9;
  }
  .note-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(14,42,71,.16);
    position: relative;
    z-index: 1;
    gap: 16px;
  }
  .note-head .brand {
    font-family: var(--serif);
    font-style: italic;
    font-size: 24px;
    color: var(--navy);
    line-height: 1;
    letter-spacing: -.01em;
  }
  .note-head .brand::after { content: "."; color: var(--trust); }
  .note-head .date {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--muted);
    letter-spacing: .08em;
    text-transform: uppercase;
    text-align: right;
    line-height: 1.45;
  }
  .note-body {
    margin-top: 14px;
    color: var(--ink);
    font-size: 14.5px;
    line-height: 1.6;
    position: relative;
    z-index: 1;
  }
  .note-body .greet {
    font-family: var(--serif);
    font-style: italic;
    font-size: 22px;
    color: var(--navy);
    line-height: 1.15;
    margin-bottom: 10px;
  }
  .note-body p { margin: 0 0 8px; }
  .note-body p:last-child { margin-bottom: 0; }
  .note-body strong { color: var(--navy); font-weight: 600; }
  .note-body .mark {
    background: linear-gradient(transparent 65%, rgba(20,122,82,.25) 65%, rgba(20,122,82,.25) 95%, transparent 95%);
    padding: 0 2px;
  }
  .note-sign {
    margin-top: 16px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    position: relative;
    z-index: 1;
  }
  .note-sign .sig {
    font-family: var(--serif);
    font-style: italic;
    font-size: 30px;
    color: var(--navy);
    line-height: 1;
    transform: rotate(-3deg) translateY(2px);
    flex-shrink: 0;
  }
  .note-sign .who {
    text-align: right;
    font-size: 11.5px;
    color: var(--ink-2);
    line-height: 1.5;
  }
  .note-sign .who strong {
    display: block;
    color: var(--ink);
    font-weight: 600;
    font-size: 12.5px;
    margin-bottom: 1px;
  }
  .note-sign .who span {
    display: block;
    font-family: var(--mono);
    font-size: 9.5px;
    color: var(--muted);
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-top: 2px;
  }

  /* Business card peeking out behind */
  .note-vcard {
    position: absolute;
    width: 220px;
    background: var(--navy);
    color: #fff;
    padding: 14px 16px;
    border-radius: 6px;
    box-shadow:
      0 22px 36px -16px rgba(14,42,71,.72),
      0 4px 10px rgba(14,42,71,.18);
    transform: rotate(7deg);
    bottom: 6%;
    right: 4%;
    z-index: 1;
  }
  .note-vcard::after {
    content: "";
    position: absolute;
    right: -38px; top: -38px;
    width: 96px; height: 96px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(63,160,219,.35), transparent 70%);
  }
  .note-vcard .vc-brand {
    font-family: var(--serif);
    font-style: italic;
    font-size: 19px;
    color: #fff;
    letter-spacing: -.01em;
    line-height: 1;
    position: relative; z-index: 1;
  }
  .note-vcard .vc-brand::after { content: "."; color: var(--blue-bright); }
  .note-vcard .vc-rule {
    width: 22px; height: 1.5px;
    background: var(--blue-bright);
    margin: 9px 0;
    position: relative; z-index: 1;
  }
  .note-vcard .vc-name {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    letter-spacing: -.005em;
    position: relative; z-index: 1;
  }
  .note-vcard .vc-title {
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--blue-bright);
    margin-top: 3px;
    position: relative; z-index: 1;
  }
  .note-vcard .vc-meta {
    margin-top: 10px;
    font-size: 10.5px;
    color: rgba(255,255,255,.78);
    line-height: 1.6;
    font-variant-numeric: tabular-nums;
    position: relative; z-index: 1;
  }
  @media (max-width: 1100px) {
    .note-vcard { width: 190px; bottom: 4%; right: 2%; }
    .note-paper { padding: 20px 22px 18px; max-width: 340px; }
    .note-body { font-size: 13.5px; line-height: 1.55; }
    .note-body .greet { font-size: 19px; margin-bottom: 8px; }
    .note-body p { margin-bottom: 7px; }
    .note-sign { margin-top: 12px; }
    .note-sign .sig { font-size: 26px; }
    .note-head { padding-bottom: 10px; }
    .note-head .brand { font-size: 21px; }
  }

  /* Trust strip (was reviews row) */
  .reviews-row {
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    padding: 28px 0;
    margin-top: 28px;
  }
  .reviews-grid {
    display: grid;
    grid-template-columns: 1.6fr auto;
    gap: 36px;
    align-items: center;
  }
  .reviews-grid .label {
    font-family: var(--mono);
    font-size: 16px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    max-width: 28ch;
    line-height: 1.55;
  }
  .trust-slot {
    display: flex; align-items: center; justify-content: center;
    min-height: 80px;
    padding-left: 32px;
    border-left: 1px solid var(--line);
  }
  .trust-slot img { height: 64px; width: auto; display: block; }
  @media (max-width: 920px) {
    .reviews-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
    .reviews-grid .label { grid-column: 1 / -1; }
    .trust-slot { padding-left: 0; border-left: none; }
  }

  /* Section helpers */
  section { padding: 72px 0; }
  .sec-cream { background: var(--cream); }
  .sec-blue-bg { background: var(--blue-bg); }
  .sec-navy { background: var(--navy); color: #fff; }
  .sec-navy h1, .sec-navy h2, .sec-navy h3 { color: #fff; }
  .sec-navy .lede { color: rgba(255,255,255,.78); }
  .sec-navy .eyebrow { color: var(--blue-bright); }
  .sec-navy .accent-italic { color: var(--blue-bright); }
  .section-header { max-width: 720px; margin: 0 auto 40px; text-align: center; }
  .section-header .eyebrow { display: block; }
  .section-header h2 { margin-top: 16px; }
  .section-header .lede { margin: 18px auto 0; }

  /* Compleet kantoor (intro) */
  .pillars {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
  .pillar {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 22px;
    transition: transform .25s, box-shadow .25s, border-color .25s;
  }
  .pillar:hover { transform: translateY(-2px); box-shadow: 0 14px 32px -18px rgba(14,42,71,.18); border-color: var(--blue); }
  .pillar .ic {
    width: 44px; height: 44px; border-radius: 12px;
    background: var(--blue-soft); color: var(--blue);
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 16px;
  }
  .pillar h3 { font-size: 17px; }
  .pillar p { margin-top: 8px; font-size: 14.5px; color: var(--ink-2); line-height: 1.5; }
  .pillar a { margin-top: 14px; display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-size: 14px; font-weight: 600; }
  .pillar a::after { content: "→"; transition: transform .2s; }
  .pillar:hover a::after { transform: translateX(3px); }
  @media (max-width: 920px) { .pillars { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) { .pillars { grid-template-columns: 1fr; } }

  /* Feature block (alternating big sections) */
  .feature {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 60px;
    align-items: center;
    padding: 56px 0;
    border-top: 1px solid var(--line);
  }
  .feature.first { border-top: none; padding-top: 16px; }
  .feature.reverse > div:first-child { order: 2; }
  .feature h2 { margin-top: 18px; max-width: 14ch; }
  .feature .lede { margin-top: 18px; }
  .feature .links { margin-top: 24px; display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--line-2); }
  .feature .links details {
    border-bottom: 1px solid var(--line-2);
  }
  .feature .links summary {
    list-style: none;
    cursor: pointer;
    padding: 14px 4px 14px 0;
    display: flex; align-items: center; gap: 12px;
    color: var(--ink); font-size: 15.5px; font-weight: 500;
    transition: color .2s;
  }
  .feature .links summary::-webkit-details-marker { display: none; }
  .feature .links summary::before {
    content: "›";
    color: var(--blue); font-weight: 700;
    transition: transform .25s;
    display: inline-block;
    width: 14px;
    flex-shrink: 0;
  }
  .feature .links details[open] summary::before { transform: rotate(90deg); }
  .feature .links summary::after {
    content: "+";
    margin-left: auto;
    color: var(--muted); font-size: 22px; font-weight: 400;
    transition: transform .25s, color .2s;
    line-height: 1;
  }
  .feature .links details[open] summary::after { transform: rotate(45deg); color: var(--trust); }
  .feature .links summary:hover { color: var(--blue); }
  .feature .links summary:hover::after { color: var(--blue); }
  .feature .links .link-body {
    padding: 0 4px 18px 26px;
    color: var(--ink-2); font-size: 14.5px; line-height: 1.6;
    max-width: 56ch;
  }
  /* sec-blue-bg variant: lighter dividers */
  .sec-blue-bg .feature .links { border-top-color: rgba(14,42,71,.12); }
  .sec-blue-bg .feature .links details { border-bottom-color: rgba(14,42,71,.12); }
  .feature .cta-row { margin-top: 32px; }
  @media (max-width: 920px) {
    .feature { grid-template-columns: 1fr; gap: 32px; padding: 56px 0; }
    .feature.reverse > div:first-child { order: 0; }
  }

  /* Feature visuals */
  .vis {
    aspect-ratio: 1 / 0.85;
    background: linear-gradient(160deg, #EAF3FB 0%, #F8EFE0 100%);
    border-radius: 28px;
    padding: 32px;
    border: 1px solid var(--line);
    position: relative;
    overflow: hidden;
  }
  .vis.cream-bg { background: linear-gradient(160deg, #FFF8EE 0%, #F0E5D2 100%); }
  .vis.blue-bg { background: linear-gradient(160deg, #E8F1F9 0%, #D0E4F2 100%); }
  .vis.navy-bg { background: linear-gradient(160deg, #1A3A5F 0%, #08182a 100%); }
  .vis.tall { aspect-ratio: 1 / 1.4; }

  /* Verklaringen visual: 3 stacked cards */
  .vis-verk { display: flex; flex-direction: column; gap: 12px; justify-content: center; height: 100%; }
  .vis-verk .card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 20px;
    display: flex; align-items: center; gap: 16px;
    box-shadow: 0 6px 18px -10px rgba(14,42,71,.12);
  }
  .vis-verk .card .badge {
    width: 44px; height: 44px; border-radius: 12px;
    background: var(--blue-soft); color: var(--blue);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--serif); font-style: italic; font-size: 22px;
    flex-shrink: 0;
  }
  .vis-verk .card.high .badge { background: var(--navy); color: var(--blue-bright); }
  .vis-verk .card .t { flex: 1; }
  .vis-verk .card .t strong { display: block; color: var(--ink); font-size: 15px; font-weight: 600; }
  .vis-verk .card .t span { color: var(--muted); font-size: 13px; }
  .vis-verk .card .lvl { display: flex; gap: 3px; }
  .vis-verk .card .lvl span { width: 8px; height: 8px; border-radius: 50%; background: var(--line-2); }
  .vis-verk .card .lvl span.on { background: var(--blue); }
  .vis-verk .card.high .lvl span.on { background: var(--blue-bright); }

  /* Admin visual */
  .vis-admin .panel { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; box-shadow: 0 4px 18px -10px rgba(14,42,71,.15); }
  .vis-admin .panel + .panel { margin-top: 12px; }
  .vis-admin .head { font-size: 14px; color: var(--ink); font-weight: 600; }
  .vis-admin .sub { font-size: 12px; color: var(--muted); font-family: var(--mono); }
  .vis-admin .top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
  .vis-admin .tx { display: flex; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13.5px; }
  .vis-admin .tx:first-of-type { border-top: none; padding-top: 0; }
  .vis-admin .tx .desc { color: var(--ink-2); }
  .vis-admin .tx .amt { font-variant-numeric: tabular-nums; font-weight: 500; }
  .vis-admin .tx .amt.neg { color: #B85F4D; }
  .vis-admin .tx .amt.pos { color: var(--green); }
  .vis-admin .floating {
    position: absolute; right: 18px; bottom: 18px;
    background: var(--navy); color: #fff;
    border-radius: 14px; padding: 14px 16px;
    box-shadow: 0 14px 28px -10px rgba(14,42,71,.72);
    width: 200px; z-index: 2;
  }
  .vis-admin .floating .lab { font-family: var(--mono); font-size: 10.5px; color: var(--blue-bright); letter-spacing: .1em; text-transform: uppercase; }
  .vis-admin .floating .v { font-size: 22px; font-weight: 600; margin-top: 2px; letter-spacing: -.01em;}

  /* Fiscaal visual */
  .vis-fisc { display: flex; flex-direction: column; gap: 10px; justify-content: center; height: 100%; }
  .vis-fisc .strip { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; font-size: 14px; }
  .vis-fisc .strip .label { color: var(--ink-2); }
  .vis-fisc .strip .v { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--navy); }
  .vis-fisc .strip.total { background: var(--navy); color: #fff; border-color: var(--navy); }
  .vis-fisc .strip.total .label { color: rgba(255,255,255,.75); }
  .vis-fisc .strip.total .v { color: #fff; font-size: 19px; }
  .vis-fisc .savings { align-self: flex-end; background: var(--blue-bright); color: #fff; padding: 9px 16px; border-radius: 999px; font-size: 13px; font-weight: 600; box-shadow: 0 8px 20px -8px rgba(63,160,219,.5); }

  /* Portaal visual: phone mockup */
  .vis-port { display: flex; justify-content: center; align-items: center; height: 100%; }
  .phone {
    width: 250px;
    aspect-ratio: 9 / 18.5;
    background: #0a0a0a;
    border-radius: 36px;
    padding: 8px;
    box-shadow:
      0 30px 60px -20px rgba(14,42,71,.72),
      0 0 0 1px rgba(255,255,255,.08) inset,
      0 2px 4px rgba(0,0,0,.25) inset;
    position: relative;
  }
  .phone .screen {
    width: 100%; height: 100%;
    background: #F5F4F0;
    border-radius: 28px;
    overflow: hidden;
    display: flex; flex-direction: column;
    position: relative;
  }
  .phone .notch {
    position: absolute;
    top: 8px; left: 50%; transform: translateX(-50%);
    width: 80px; height: 22px;
    background: #0a0a0a; border-radius: 12px;
    z-index: 10;
  }
  .ph-status {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px 22px 6px;
    font-size: 11px; font-weight: 600; color: var(--navy);
    font-variant-numeric: tabular-nums;
  }
  .ph-status .right { display: inline-flex; gap: 4px; align-items: center; }
  .ph-status .right .bars { display: inline-flex; gap: 2px; align-items: flex-end; height: 10px; }
  .ph-status .right .bars span { width: 3px; background: var(--navy); border-radius: 1px; }
  .ph-status .right .bars span:nth-child(1){height:30%;} .ph-status .right .bars span:nth-child(2){height:55%;}
  .ph-status .right .bars span:nth-child(3){height:80%;} .ph-status .right .bars span:nth-child(4){height:100%;}
  .ph-status .right .bat { width: 18px; height: 9px; border: 1px solid var(--navy); border-radius: 2px; position: relative; padding: 1px; }
  .ph-status .right .bat::after { content: ""; display: block; height: 100%; width: 70%; background: var(--navy); border-radius: 1px; }
  .ph-head { padding: 14px 22px 4px; }
  .ph-head .greet { font-size: 12px; color: var(--muted); }
  .ph-head .name { font-size: 17px; font-weight: 700; color: var(--navy); letter-spacing: -.01em; margin-top: 2px; }
  .ph-card {
    margin: 12px 16px 0;
    background: var(--navy);
    color: #fff;
    border-radius: 18px;
    padding: 16px 18px 14px;
    position: relative;
    overflow: hidden;
  }
  .ph-card::after {
    content: "";
    position: absolute; right: -30px; top: -30px;
    width: 120px; height: 120px;
    background: radial-gradient(circle, rgba(63,160,219,.4), transparent 70%);
  }
  .ph-card .lab { font-family: var(--mono); font-size: 9.5px; letter-spacing: .12em; color: var(--blue-bright); text-transform: uppercase; position: relative; z-index: 1; }
  .ph-card .amt { font-size: 26px; font-weight: 700; letter-spacing: -.02em; margin-top: 4px; position: relative; z-index: 1; }
  .ph-card .delta { font-size: 11px; color: rgba(255,255,255,.7); margin-top: 2px; position: relative; z-index: 1; }
  .ph-card .delta .up { color: #6BD49A; font-weight: 600; }
  .ph-chart { height: 34px; margin-top: 10px; position: relative; z-index: 1; }
  .ph-chart svg { width: 100%; height: 100%; display: block; }
  .ph-tabs {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 10px 16px 0;
  }
  .ph-tab {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 9px 11px;
  }
  .ph-tab .lab { font-family: var(--mono); font-size: 8.5px; letter-spacing: .1em; color: var(--muted); text-transform: uppercase; }
  .ph-tab .v { font-size: 13.5px; font-weight: 600; color: var(--navy); margin-top: 2px; letter-spacing: -.01em; }
  .ph-tab .v.green { color: var(--trust); }
  .ph-section {
    margin: 14px 16px 0;
    display: flex; justify-content: space-between; align-items: center;
  }
  .ph-section .t { font-size: 11.5px; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: .04em; }
  .ph-section .a { font-size: 10.5px; color: var(--blue); font-weight: 600; }
  .ph-list { margin: 8px 16px 0; display: flex; flex-direction: column; gap: 6px; }
  .ph-list .row {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 10px;
    background: #fff; border: 1px solid var(--line); border-radius: 10px;
  }
  .ph-list .row .av {
    width: 22px; height: 22px; border-radius: 6px;
    background: var(--trust-soft); color: var(--trust);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 700; flex-shrink: 0;
    font-family: var(--mono);
  }
  .ph-list .row .av.alt { background: #F4EAD8; color: #8B6D3F; }
  .ph-list .row .desc { flex: 1; font-size: 11.5px; color: var(--ink); font-weight: 500; }
  .ph-list .row .desc small { display: block; color: var(--muted); font-weight: 400; font-size: 10px; margin-top: 1px; }
  .ph-list .row .amt { font-size: 11.5px; font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; }
  .ph-list .row .amt.pos { color: var(--trust); }
  .ph-list .row .amt.neg { color: #B85F4D; }
  .ph-nav {
    margin-top: auto;
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    padding: 10px 12px 14px;
    background: #fff;
    border-top: 1px solid var(--line);
  }
  .ph-nav .n {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    font-size: 9px; color: var(--muted);
    padding: 4px 0;
  }
  .ph-nav .n.active { color: var(--trust); }
  .ph-nav .n .ic { width: 18px; height: 18px; }

  /* Tip card (mascotte) */
  .tip {
    background: linear-gradient(135deg, var(--blue-soft) 0%, var(--cream) 100%);
    border-radius: 28px;
    padding: 48px;
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 40px;
    align-items: center;
    border: 1px solid var(--line);
  }
  .tip-portrait {
    width: 200px; height: 200px;
    border-radius: 50%;
    background: linear-gradient(160deg, #C5D9EA, #88B4D6);
    display: flex; align-items: flex-end; justify-content: center;
    overflow: hidden;
    position: relative;
    border: 4px solid #fff;
    box-shadow: 0 12px 32px -12px rgba(14,42,71,.3);
  }
  /* friendly avatar shapes */
  .tip-portrait::before {
    content: "";
    position: absolute;
    width: 90px; height: 90px;
    background: #F4D6BC;
    border-radius: 50%;
    top: 38px;
  }
  .tip-portrait::after {
    content: "";
    position: absolute;
    width: 150px; height: 110px;
    background: var(--navy);
    border-radius: 80px 80px 0 0;
    bottom: 0;
  }
  .tip-portrait .face {
    position: absolute;
    width: 90px; height: 90px;
    top: 38px;
    z-index: 2;
  }
  .tip-portrait .face::before, .tip-portrait .face::after {
    content: "";
    position: absolute;
    width: 5px; height: 7px;
    background: var(--ink);
    border-radius: 3px;
    top: 38px;
  }
  .tip-portrait .face::before { left: 28px; }
  .tip-portrait .face::after { right: 28px; }
  .tip-portrait .smile {
    position: absolute;
    width: 22px; height: 11px;
    border: 2px solid var(--ink);
    border-top: none;
    border-radius: 0 0 22px 22px;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
  }
  .tip-portrait .hair {
    position: absolute;
    width: 100px; height: 50px;
    background: #4A3525;
    border-radius: 60px 60px 20px 20px;
    top: 30px;
    z-index: 1;
  }

  .tip-body { display: flex; flex-direction: column; gap: 14px; }
  .tip-body .small { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
  .tip-body .quote { font-family: var(--serif); font-style: italic; font-size: 28px; line-height: 1.3; color: var(--ink); }
  .tip-body .who { font-size: 14px; color: var(--muted); margin-top: 8px; }
  .tip-body .who strong { color: var(--ink); font-weight: 600; }
  @media (max-width: 920px) {
    .tip { grid-template-columns: 1fr; text-align: center; padding: 36px 24px; gap: 24px; }
    .tip-portrait { margin: 0 auto; }
  }

  /* Pricing */
  .price-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .price-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 32px 28px;
    display: flex; flex-direction: column;
    transition: transform .2s, box-shadow .2s, border-color .2s;
  }
  .price-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px -16px rgba(14,42,71,.18); }
  .price-card.featured {
    background: var(--navy); color: #fff; border-color: var(--navy);
    box-shadow: 0 20px 50px -22px rgba(14,42,71,.72);
    position: relative;
  }
  .price-card.featured h3, .price-card.featured .price-num { color: #fff; }
  .price-card.featured .feat-line { color: rgba(255,255,255,.85); }
  .price-card.featured .feat-line .ch { background: var(--blue-bright); }
  .price-card.featured .price-sub { color: rgba(255,255,255,.6); }
  .price-card.featured .badge {
    position: absolute; top: -12px; right: 24px;
    background: var(--blue-bright); color: #fff;
    font-size: 11px; font-weight: 600;
    padding: 5px 12px; border-radius: 999px;
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .price-card .tier { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; color: var(--blue); text-transform: uppercase; }
  .price-card.featured .tier { color: var(--blue-bright); }
  .price-card h3 { font-size: 26px; margin-top: 6px; font-weight: 700; }
  .price-card .price-row { margin-top: 18px; display: flex; align-items: baseline; gap: 6px; }
  .price-card .price-num { font-size: 44px; font-weight: 700; color: var(--navy); letter-spacing: -.02em; }
  .price-card .price-sub { font-size: 13.5px; color: var(--muted); }
  .price-card .desc { margin-top: 12px; font-size: 14.5px; color: var(--ink-2); line-height: 1.55; }
  .price-card.featured .desc { color: rgba(255,255,255,.78); }
  .price-card .feats { margin: 24px 0 28px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; flex-grow: 1; border-top: 1px solid var(--line); padding-top: 20px; }
  .price-card.featured .feats { border-top-color: rgba(255,255,255,.18); }
  .price-card .feat-line { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; color: var(--ink-2); }
  .price-card .feat-line .ch {
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--blue); color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 10px; flex-shrink: 0; margin-top: 2px;
  }
  .price-card .price-cta { margin-top: auto; }
  @media (max-width: 920px) { .price-grid { grid-template-columns: 1fr; } }

  /* Verklaringen accordion + trust visual */
  .verk-acc { margin-top: 22px; border-top: 1px solid var(--line-2); }
  .verk-acc .item { border-bottom: 1px solid var(--line-2); }
  .verk-acc .q {
    width: 100%; text-align: left;
    padding: 18px 0;
    display: flex; align-items: center; gap: 14px;
    font-size: 16.5px; font-weight: 600; color: var(--ink);
    cursor: pointer;
  }
  .verk-acc .q:hover { color: var(--trust); }
  .verk-acc .q .badge {
    width: 32px; height: 32px; border-radius: 8px;
    background: var(--trust-soft); color: var(--trust);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--serif); font-style: italic; font-size: 16px;
    flex-shrink: 0;
  }
  .verk-acc .q .lvl { display: flex; gap: 3px; margin-left: auto; }
  .verk-acc .q .lvl span { width: 7px; height: 7px; border-radius: 50%; background: var(--line-2); }
  .verk-acc .q .lvl span.on { background: var(--trust); }
  .verk-acc .q .pl { font-size: 22px; color: var(--muted); transition: transform .25s; flex-shrink: 0; font-weight: 400; margin-left: 12px; }
  .verk-acc .item.open .q .pl { transform: rotate(45deg); color: var(--trust); }
  .verk-acc .a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
  .verk-acc .a-in { padding: 0 0 20px 46px; color: var(--ink-2); font-size: 15px; line-height: 1.6; }
  .verk-acc .a-in .meta {
    margin-top: 14px;
    display: flex; gap: 28px; flex-wrap: wrap;
    font-size: 12.5px; color: var(--muted);
    padding-top: 14px;
    border-top: 1px dashed var(--line);
  }
  .verk-acc .a-in .meta strong { display: block; color: var(--ink); font-weight: 600; font-size: 13px; margin-bottom: 2px; }
  .verk-acc .item.open .a { max-height: 360px; }

  /* Trust illustration (verklaring certificate) */
  .vis-trust {
    aspect-ratio: 1 / 1;
    background: linear-gradient(160deg, #F4EAD8 0%, #E8D7B6 100%);
    border-radius: 28px;
    padding: 38px;
    border: 1px solid var(--line);
    position: relative;
    overflow: hidden;
  }
  .vis-trust::after {
    content: "";
    position: absolute;
    width: 220px; height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.7), transparent 70%);
    top: -50px; right: -50px;
  }
  .cert {
    background: #FBF6EC;
    border: 1px solid #D9C9A5;
    border-radius: 8px;
    padding: 26px 26px 22px;
    position: relative;
    box-shadow:
      0 1px 0 rgba(255,255,255,.6) inset,
      0 24px 50px -18px rgba(14,42,71,.28),
      0 4px 10px -4px rgba(14,42,71,.15);
    transform: rotate(-1.8deg);
    z-index: 1;
  }
  .cert .cert-head {
    display: flex; align-items: center; justify-content: space-between;
    border-bottom: 1px solid rgba(14,42,71,.14);
    padding-bottom: 14px;
  }
  .cert .nba { display: inline-flex; flex-direction: column; color: var(--navy); line-height: 1; }
  .cert .nba .big { font-family: var(--serif); font-style: italic; font-size: 22px; font-weight: 400; letter-spacing: -.01em; }
  .cert .nba .sub { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-top: 5px; font-weight: 600; }
  .cert .cert-no { font-family: var(--mono); font-size: 10.5px; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; }
  .cert h4 {
    font-family: var(--serif); font-style: italic; font-weight: 400;
    font-size: 24px; line-height: 1.2; color: var(--navy);
    margin-top: 16px;
    letter-spacing: -.01em;
    max-width: 80%;
  }
  .cert .lines { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
  .cert .lines span { height: 5px; background: rgba(14,42,71,.09); border-radius: 2px; }
  .cert .lines span:nth-child(1) { width: 100%; }
  .cert .lines span:nth-child(2) { width: 96%; }
  .cert .lines span:nth-child(3) { width: 88%; }
  .cert .lines span:nth-child(4) { width: 64%; }
  .cert .cert-foot {
    margin-top: 20px;
    display: flex; justify-content: space-between; align-items: flex-end;
  }
  .cert .sig {
    font-family: var(--serif);
    font-style: italic;
    color: var(--navy);
    font-size: 22px;
    line-height: 1;
    transform: rotate(-3deg);
    padding-bottom: 4px;
    border-bottom: 1.5px solid var(--navy);
    padding-right: 6px;
  }
  .cert .date {
    font-family: var(--mono); font-size: 10px;
    color: var(--muted); letter-spacing: .08em; text-transform: uppercase;
    text-align: right;
  }
  .cert .date strong { display: block; color: var(--ink); font-size: 12px; margin-top: 3px; font-family: var(--sans); font-weight: 600; letter-spacing: 0; text-transform: none; }
  .seal {
    position: absolute;
    right: -14px; top: 96px;
    width: 102px; height: 102px;
    border-radius: 50%;
    background: radial-gradient(circle at 40% 35%, #1E8A5E, #0F6342 70%);
    color: #fff;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center;
    transform: rotate(10deg);
    box-shadow: 0 14px 30px -8px rgba(15,99,66,.55), 0 0 0 4px rgba(255,255,255,.5);
    z-index: 2;
  }
  .seal::before {
    content: "";
    position: absolute; inset: 7px;
    border: 1.5px dashed rgba(255,255,255,.45);
    border-radius: 50%;
  }
  .seal .check { font-size: 24px; line-height: 1; font-weight: 700; }
  .seal .lbl { font-size: 8px; letter-spacing: .14em; text-transform: uppercase; margin-top: 5px; font-weight: 600; opacity: .95; line-height: 1.2; }
  .trust-badges {
    position: absolute;
    left: 24px; bottom: 24px; right: 24px;
    display: flex; gap: 10px;
    z-index: 3;
  }
  .t-badge {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px 12px;
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; color: var(--ink-2);
    box-shadow: 0 6px 14px -8px rgba(14,42,71,.18);
    flex: 1;
  }
  .t-badge .ic {
    width: 26px; height: 26px; border-radius: 7px;
    background: var(--trust-soft); color: var(--trust);
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .t-badge strong { display: block; color: var(--ink); font-weight: 600; font-size: 12.5px; line-height: 1.2; }
  .t-badge span { font-size: 11px; color: var(--muted); }

  /* Blog */
  .blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .blog-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform .2s, box-shadow .2s, border-color .2s;
  }
  .blog-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px -20px rgba(14,42,71,.2); border-color: var(--line-2); }
  .blog-img {
    aspect-ratio: 16/10;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #E8F1F9 0%, #B5D0E4 100%);
  }
  .blog-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
  }
  .blog-card:hover .blog-img img { transform: scale(1.03); }
  .blog-body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex-grow: 1; }
  .blog-meta {
    display: flex; align-items: center; gap: 10px;
    font-size: 11.5px; color: var(--muted);
    font-family: var(--mono); letter-spacing: .06em; text-transform: uppercase;
  }
  .blog-meta .cat {
    color: var(--trust); font-weight: 600;
    background: var(--trust-soft);
    padding: 3px 9px; border-radius: 999px;
    letter-spacing: .04em;
  }
  .blog-card h3 {
    font-size: 19px; line-height: 1.3; margin-top: 14px;
    letter-spacing: -.01em; font-weight: 600;
  }
  .blog-card p { margin-top: 8px; font-size: 14.5px; color: var(--ink-2); line-height: 1.55; flex-grow: 1; }
  .blog-card .author {
    margin-top: 18px; padding-top: 16px;
    border-top: 1px solid var(--line);
    display: flex; align-items: center; gap: 10px;
  }
  .blog-card .author .av {
    width: 28px; height: 28px; border-radius: 50%;
    background: linear-gradient(135deg, var(--navy), var(--blue));
    color: #fff; display: inline-flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 600;
  }
  .blog-card .author .who { font-size: 13px; color: var(--ink-2); }
  .blog-card .author .who strong { color: var(--ink); font-weight: 600; }
  @media (max-width: 920px) { .blog-grid { grid-template-columns: 1fr; } }
  .blog-foot { margin-top: 36px; text-align: center; }

  /* Testimonials */
  .tm-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .tm-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 28px;
    display: flex; flex-direction: column;
  }
  .tm-photo {
    aspect-ratio: 4/3;
    border-radius: 14px;
    margin-bottom: 22px;
    background: linear-gradient(135deg, #D4E2EE, #B5CDDF);
    position: relative; overflow: hidden;
  }
  .tm-photo.p2 { background: linear-gradient(135deg, #E8DECC, #D4C4A8); }
  .tm-photo.p3 { background: linear-gradient(135deg, #C5D9EA, #88B4D6); }
  .tm-photo.tm-logo { background: #fff; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; }
  .tm-photo.tm-logo::before, .tm-photo.tm-logo::after { display: none; }
  .tm-photo.tm-logo .slot-img { width: 100%; height: 100%; padding: 14px; box-sizing: border-box; }
  .tm-photo::after {
    content: "";
    position: absolute;
    width: 60%; height: 70%;
    background: rgba(14,42,71,.18);
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50% 50% 0 0;
  }
  .tm-photo::before {
    content: "";
    position: absolute;
    width: 28%; height: 28%;
    background: rgba(14,42,71,.18);
    top: 18%;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%;
  }
  .tm-quote { font-family: var(--serif); font-style: italic; font-size: 21px; line-height: 1.35; color: var(--ink); flex-grow: 1; }
  .tm-author { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 14px;}
  .tm-author strong { display: block; color: var(--ink); font-weight: 600; }
  .tm-author span { color: var(--muted); font-size: 13px; }
  @media (max-width: 920px) { .tm-grid { grid-template-columns: 1fr; } }

  /* FAQ */
  .faq-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 64px; align-items: flex-start; }
  .faq-list { border-top: 1px solid var(--line); }
  .faq-item { border-bottom: 1px solid var(--line); }
  .faq-q { width: 100%; text-align: left; padding: 22px 0; font-size: 17px; font-weight: 600; color: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 24px; transition: color .2s; }
  .faq-q:hover { color: var(--blue); }
  .faq-q .pl { font-size: 22px; color: var(--muted); transition: transform .25s; flex-shrink: 0; }
  .faq-item.open .faq-q .pl { transform: rotate(45deg); }
  .faq-a { max-height: 0; overflow: hidden; transition: max-height .35s; }
  .faq-a-inner { padding: 0 0 22px; color: var(--ink-2); font-size: 15.5px; line-height: 1.6; max-width: 60ch; }
  .faq-item.open .faq-a { max-height: 360px; }
  @media (max-width: 920px) { .faq-grid { grid-template-columns: 1fr; gap: 32px; } }

  /* Help/contact block */
  .help-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
  .help-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .help-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px;
    display: flex; flex-direction: column; gap: 10px;
  }
  .help-card .ic {
    width: 38px; height: 38px; border-radius: 10px;
    background: var(--blue-soft); color: var(--blue);
    display: inline-flex; align-items: center; justify-content: center;
  }
  .help-card .lab { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: var(--muted); text-transform: uppercase; }
  .help-card .val { font-size: 16px; font-weight: 600; color: var(--ink); }
  .help-card .sub { font-size: 13px; color: var(--muted); }
  @media (max-width: 920px) { .help-grid { grid-template-columns: 1fr; gap: 32px; } }

  /* Footer (navy) */
  footer {
    background: var(--navy);
    color: #fff;
    padding: 72px 0 28px;
    border-top: none;
  }
  footer .wrap { color: rgba(255,255,255,.78); }
  .foot-top {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 0.8fr;
    gap: 36px;
    padding-bottom: 48px;
  }
  .foot-brand img { height: 28px; width: auto; filter: brightness(0) invert(1); opacity: .95; }
  .foot-brand p {
    margin-top: 18px;
    color: rgba(255,255,255,.65);
    font-size: 14px;
    line-height: 1.6;
    max-width: 36ch;
  }
  .foot-col h4 {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255,255,255,.5);
    text-transform: uppercase;
    letter-spacing: .12em;
  }
  .foot-col ul {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
    color: rgba(255,255,255,.78);
    font-size: 14.5px;
  }
  .foot-col li { line-height: 1.5; }
  .foot-col a { color: rgba(255,255,255,.78); font-size: 14.5px; transition: color .2s; }
  .foot-col a:hover { color: #fff; }
  .foot-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    margin-top: 16px;
    transition: background .2s, transform .2s;
  }
  .foot-social:hover { background: var(--blue-bright); transform: translateY(-1px); }
  .foot-bot {
    border-top: 1px solid rgba(255,255,255,.12);
    padding-top: 26px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: rgba(255,255,255,.55);
    flex-wrap: wrap;
    gap: 12px;
  }
  .foot-bot .links { display: flex; gap: 22px; }
  .foot-bot a { color: rgba(255,255,255,.55); transition: color .2s; }
  .foot-bot a:hover { color: #fff; }
  @media (max-width: 920px) {
    .foot-top { grid-template-columns: 1fr 1fr; }
  }
  /* === NEW: vis-verkl (verklaring zekerheid + processtatus) === */
  .vis-verkl {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-self: stretch;
  }
  .vstack {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 22px 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-shadow: 0 8px 24px -14px rgba(14,42,71,.18);
  }
  .vline {
    display: grid;
    grid-template-columns: 1.05fr 1.2fr auto;
    gap: 14px;
    align-items: center;
    font-size: 13.5px;
  }
  .vline .vtype { color: var(--navy); font-weight: 600; letter-spacing: -.005em; }
  .vline .vbar {
    position: relative;
    height: 8px;
    background: #EFF2F6;
    border-radius: 999px;
    overflow: hidden;
  }
  .vline .vfill {
    display: block;
    height: 100%;
    border-radius: 999px;
  }
  .vline .vlabel {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .04em;
    color: var(--muted);
    white-space: nowrap;
  }
  .vproc {
    background: var(--navy);
    color: #fff;
    border-radius: 18px;
    padding: 20px 22px 18px;
    box-shadow: 0 18px 36px -18px rgba(8,24,42,.45);
    position: relative;
    overflow: hidden;
  }
  .vproc::after {
    content: "";
    position: absolute; right: -50px; top: -50px;
    width: 180px; height: 180px;
    background: radial-gradient(circle, rgba(63,160,219,.32), transparent 70%);
  }
  .vproc-head {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 14px;
    position: relative; z-index: 1;
  }
  .vproc-brand {
    font-family: var(--serif);
    font-style: italic;
    font-size: 22px;
    color: #fff;
    letter-spacing: -.01em;
    line-height: 1;
  }
  .vproc-brand span { color: var(--blue-bright); }
  .vproc-no {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
  }
  .vproc-steps { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 10px; }
  .vstep {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 12px;
    align-items: center;
  }
  .vstep .vdot {
    position: relative;
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.35);
    background: transparent;
    margin-left: 2px;
  }
  .vstep.done .vdot { background: var(--blue-bright); border-color: var(--blue-bright); }
  .vstep.done .vdot::after {
    content: "";
    position: absolute;
    left: 2px; top: 4px;
    width: 6px; height: 3px;
    border: solid var(--navy);
    border-width: 0 0 1.5px 1.5px;
    transform: rotate(-45deg);
  }
  .vstep.active .vdot { border-color: #fff; background: #fff; box-shadow: 0 0 0 4px rgba(255,255,255,.18); }
  .vstep strong { display: block; color: #fff; font-size: 13.5px; font-weight: 600; letter-spacing: -.005em; }
  .vstep span:not(.vdot) { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .06em; color: rgba(255,255,255,.58); margin-top: 2px; }
  .vstep.active span:not(.vdot) { color: var(--blue-bright); }
  @media (max-width: 920px) {
    .vline { grid-template-columns: 1fr 1fr; row-gap: 8px; }
    .vline .vlabel { grid-column: 2 / 3; text-align: right; }
    .vline .vbar { grid-column: 1 / -1; }
  }



  /* === Login modal === */
  .login-overlay {
    position: fixed; inset: 0;
    background: rgba(8, 24, 42, 0);
    backdrop-filter: blur(0px);
    z-index: 200;
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease, backdrop-filter .25s ease, background .25s ease;
  }
  .login-overlay.open {
    opacity: 1;
    pointer-events: auto;
    background: rgba(8, 24, 42, .55);
    backdrop-filter: blur(6px);
  }
  .login-card {
    width: 100%; max-width: 420px;
    background: #fff;
    border-radius: 22px;
    box-shadow: 0 32px 60px -20px rgba(8,24,42,.55), 0 0 0 1px rgba(255,255,255,.08);
    padding: 36px 36px 30px;
    transform: translateY(16px) scale(.98);
    transition: transform .35s cubic-bezier(.2,.7,.2,1);
  }
  .login-overlay.open .login-card { transform: none; }
  .login-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 12px;
    margin-bottom: 22px;
  }
  .login-brand {
    font-family: var(--serif);
    font-style: italic;
    font-size: 26px;
    color: var(--navy);
    line-height: 1;
    letter-spacing: -.01em;
  }
  .login-brand::after { content: "."; color: var(--trust); }
  .login-brand small {
    display: block;
    font-family: var(--mono);
    font-style: normal;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 8px;
    font-weight: 500;
  }
  .login-close {
    width: 30px; height: 30px;
    border-radius: 50%;
    border: 1px solid var(--line-2);
    background: #fff;
    color: var(--ink-2);
    cursor: pointer;
    font-size: 15px; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .15s, color .15s;
    flex-shrink: 0;
  }
  .login-close:hover { background: var(--cream); color: var(--navy); }
  .login-field { display: block; margin-bottom: 14px; }
  .login-field label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--ink-2);
    margin-bottom: 6px;
    letter-spacing: .02em;
    text-transform: uppercase;
    font-family: var(--mono);
  }
  .login-field input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: #fff;
    font: inherit;
    font-size: 14.5px;
    color: var(--ink);
    transition: border-color .2s, box-shadow .2s;
  }
  .login-field input:focus {
    outline: none;
    border-color: var(--trust);
    box-shadow: 0 0 0 3px rgba(20,122,82,.12);
  }
  .login-submit {
    width: 100%;
    padding: 13px 18px;
    margin-top: 8px;
    background: var(--navy);
    color: #fff;
    border-radius: 999px;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    transition: background .15s, transform .1s;
  }
  .login-submit:hover { background: var(--navy-deep); }
  .login-submit:active { transform: translateY(1px); }
  .login-foot {
    margin-top: 16px;
    display: flex; justify-content: space-between; align-items: center;
    font-size: 12.5px;
    color: var(--muted);
  }
  .login-foot a { color: var(--blue); font-weight: 500; }
  .login-foot a:hover { text-decoration: underline; }
  .login-msg {
    margin-top: 14px;
    padding: 12px 14px;
    background: #FBE2DA;
    color: #8E3A28;
    border: 1px solid #F0C6B7;
    border-radius: 10px;
    font-size: 13.5px;
    line-height: 1.4;
    display: none;
    align-items: center;
    gap: 10px;
  }
  .login-msg.show { display: flex; }
  .login-msg::before {
    content: "!";
    width: 20px; height: 20px;
    border-radius: 50%;
    background: #B85F4D;
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700;
    font-size: 12px;
    flex-shrink: 0;
  }
  @media (max-width: 540px) { .login-card { padding: 28px 24px 24px; } }

  /* ============================================================
     NEW COMPONENTS for audit-focused landing (controleverklaring)
     ============================================================ */

  /* .slot-img defaults inside our cards (transparent + small caption) */
  .slot-img {
    display: block; width: 100%; height: 100%; object-fit: cover;
    border: 0;
    background: transparent;
    color: rgba(14,42,71,.72);
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  /* Quality assessment card (in hero scene) */
  .qcard {
    position: relative;
    width: 100%;
    max-width: 380px;
    background: #fff;
    color: var(--ink);
    padding: 22px 22px 20px;
    border-radius: 16px;
    box-shadow:
      0 36px 60px -22px rgba(14,42,71,.42),
      0 12px 22px -12px rgba(14,42,71,.22),
      0 0 0 1px rgba(217,201,165,.45);
    transform: rotate(-1deg);
    z-index: 3;
  }
  .qcard-head {
    display: flex; justify-content: space-between; align-items: baseline;
    border-bottom: 1px solid var(--line);
    padding-bottom: 10px;
  }
  .qcard-brand {
    font-family: var(--serif);
    font-style: italic;
    font-size: 22px;
    color: var(--navy);
    letter-spacing: -.01em;
    line-height: 1;
  }
  .qcard-brand span { color: var(--trust); }
  .qcard-mono {
    font-family: var(--mono);
    font-size: 9.5px;
    color: var(--muted);
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  /* dashboard stat tiles */
  .qstats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-top: 14px;
  }
  .qstat {
    background: #F8FAFC;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 8px 8px 8px;
    display: flex; flex-direction: column; gap: 1px;
    min-width: 0;
  }
  .qstat-num {
    font-size: 19px;
    font-weight: 700;
    color: var(--navy);
    letter-spacing: -.02em;
    line-height: 1.1;
  }
  .qstat-lab {
    font-family: var(--mono);
    font-size: 8px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .qstat-sub {
    font-size: 10px;
    color: var(--muted);
    margin-top: 1px;
    font-weight: 500;
  }
  .qstat-sub.pos { color: var(--trust); }
  .qstat-sub.warn { color: #A56F18; }
  .qstat-sub.neg { color: #B85F4D; }

  /* process list */
  .qproc { margin-top: 16px; }
  .qproc-head {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ink);
    margin-bottom: 8px;
  }
  .qproc-list { display: flex; flex-direction: column; gap: 4px; }
  .qproc-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 10px;
    align-items: center;
    padding: 7px 10px;
    background: #F8FAFC;
    border-radius: 7px;
    font-size: 11.5px;
  }
  .qp-name { color: var(--navy); font-weight: 600; letter-spacing: -.005em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .qp-meta { color: var(--muted); font-family: var(--mono); font-size: 9.5px; letter-spacing: .04em; }
  .qp-badge {
    font-family: var(--mono); font-size: 8.5px;
    padding: 3px 7px; border-radius: 999px;
    letter-spacing: .06em; text-transform: uppercase; font-weight: 600;
    white-space: nowrap;
  }
  .qp-badge.ok { background: var(--trust-soft); color: var(--trust); }
  .qp-badge.todo { background: #FFF1D9; color: #A56F18; }
  .qp-badge.risk { background: #FBE2DA; color: #B85F4D; }

  @media (max-width: 1100px) {
    .qcard { max-width: 320px; padding: 18px 18px 16px; }
    .qstat-num { font-size: 17px; }
    .qproc-row { font-size: 11px; padding: 6px 8px; }
  }

  /* Hero partner polaroid */
  .partner-polaroid {
    position: absolute;
    width: 150px;
    top: 4%;
    left: 6%;
    background: #fff;
    padding: 10px 10px 12px;
    border-radius: 4px;
    box-shadow:
      0 22px 36px -16px rgba(14,42,71,.72),
      0 4px 10px -4px rgba(14,42,71,.18),
      0 1px 0 rgba(255,255,255,.85) inset,
      0 0 0 1px rgba(217, 201, 165, .35);
    transform: rotate(-4.5deg);
    z-index: 2;
  }
  .partner-polaroid .photo {
    aspect-ratio: 1 / 1;
    background: linear-gradient(160deg, #C5D9EA 0%, #6E8A9F 100%);
    border-radius: 2px;
    overflow: hidden;
    position: relative;
  }
  .partner-polaroid .photo::after {
    /* soft silhouette to suggest portrait */
    content: "";
    position: absolute; inset: 0;
    background:
      radial-gradient(ellipse 36% 28% at 50% 32%, rgba(14,42,71,.32), transparent 60%),
      radial-gradient(ellipse 60% 40% at 50% 85%, rgba(14,42,71,.72), transparent 65%);
    pointer-events: none;
  }
  .partner-polaroid .photo .slot-img { position: relative; z-index: 1; }
  .partner-polaroid .cap {
    margin-top: 6px;
    text-align: center;
    display: flex; flex-direction: column; gap: 1px;
  }
  .partner-polaroid .cap .name {
    font-family: var(--serif);
    font-style: italic;
    font-size: 14px;
    color: var(--navy);
    line-height: 1.1;
    letter-spacing: -.005em;
  }
  .partner-polaroid .cap .title {
    font-family: var(--mono);
    font-size: 8px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 3px;
  }
  @media (max-width: 1100px) {
    .partner-polaroid { width: 120px; top: 3%; left: 4%; padding: 8px 8px 10px; }
    .partner-polaroid .cap .name { font-size: 12px; }
    .partner-polaroid .cap .title { font-size: 7.5px; }
  }

  /* Team section */
  .team-grid {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    overflow-y: visible;
    padding: 6px 4px 22px;
    margin: 0 -4px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.35) transparent;
  }
  .team-grid::-webkit-scrollbar { height: 8px; }
  .team-grid::-webkit-scrollbar-track { background: rgba(255,255,255,.06); border-radius: 999px; }
  .team-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); border-radius: 999px; }
  .team-grid::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.45); }
  .team-card {
    flex: 0 0 260px;
    scroll-snap-align: start;
    background: #fff;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s, box-shadow .25s;
    position: relative;
  }
  .team-card::before {
    content: "";
    display: block;
    height: 4px;
    background: linear-gradient(90deg, var(--blue-bright), var(--trust));
  }
  .team-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -18px rgba(0,0,0,.4); }
  .team-body {
    padding: 22px 22px 24px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
  }
  .team-body .name {
    font-size: 18px;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -.01em;
  }
  .team-body .role {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--trust);
    min-height: 14px;
  }
  .team-body .role:empty { display: none; }
  .team-body .focus {
    margin-top: 4px;
    font-size: 13.5px;
    color: var(--ink-2);
    line-height: 1.55;
  }
  .team-hint {
    margin-top: 14px;
    color: rgba(255,255,255,.55);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .team-hint::after { content: "→"; transition: transform .25s; }
  @media (max-width: 920px) { .team-card { flex-basis: 220px; } }

  /* Process timeline */
  .proc-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    position: relative;
    margin-top: 36px;
  }
  .proc-grid::before {
    content: "";
    position: absolute;
    top: 32px; left: 10%; right: 10%;
    height: 0;
    border-top: 2px dashed rgba(20,122,82,.35);
    z-index: 0;
  }
  .proc-step {
    position: relative;
    text-align: center;
    padding: 0 14px;
  }
  .proc-step .num {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--trust);
    color: var(--trust);
    font-family: var(--serif);
    font-style: italic;
    font-size: 30px;
    display: inline-flex; align-items: center; justify-content: center;
    margin: 0 auto 16px;
    position: relative;
    z-index: 1;
    line-height: 1;
    padding-bottom: 2px;
  }
  .proc-step h4 {
    font-size: 16px;
    color: var(--ink);
    font-weight: 600;
    letter-spacing: -.005em;
  }
  .proc-step .week {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--muted);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 5px;
  }
  .proc-step p {
    margin-top: 12px;
    font-size: 13px;
    color: var(--ink-2);
    line-height: 1.55;
  }
  @media (max-width: 920px) {
    .proc-grid { grid-template-columns: 1fr; gap: 24px; }
    .proc-grid::before { display: none; }
    .proc-step { display: grid; grid-template-columns: 64px 1fr; text-align: left; gap: 18px; padding: 0; align-items: center; }
    .proc-step .num { margin: 0; }
    .proc-step .week { margin-top: 2px; }
    .proc-step p { grid-column: 2; margin-top: 8px; }
    .proc-step h4, .proc-step .week { grid-column: 2; }
  }

  /* Service cards (overige diensten) */
  .svc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }
  .svc-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    transition: transform .2s, box-shadow .2s, border-color .2s;
  }
  .svc-card:hover { transform: translateY(-2px); box-shadow: 0 14px 32px -18px rgba(14,42,71,.18); border-color: var(--line-2); }
  .svc-card .ic {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: var(--blue-soft);
    color: var(--blue);
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 16px;
  }
  .svc-card h3 { font-size: 19px; }
  .svc-card .lead { margin-top: 8px; font-size: 14.5px; color: var(--ink-2); line-height: 1.55; }
  .svc-card ul {
    margin: 18px 0 22px; padding: 0; list-style: none;
    display: flex; flex-direction: column; gap: 8px;
    border-top: 1px solid var(--line); padding-top: 18px;
  }
  .svc-card li {
    display: flex; align-items: flex-start; gap: 10px;
    font-size: 13.5px; color: var(--ink-2);
  }
  .svc-card li::before {
    content: "›";
    color: var(--blue);
    font-weight: 700;
    flex-shrink: 0;
    width: 10px;
    line-height: 1.45;
  }
  .svc-card .svc-link {
    margin-top: auto;
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--blue); font-weight: 600; font-size: 14px;
  }
  .svc-card .svc-link::after { content: "→"; transition: transform .2s; }
  .svc-card .svc-link:hover::after { transform: translateX(3px); }
  @media (max-width: 920px) { .svc-grid { grid-template-columns: 1fr; } }

  /* Primary (navy) pillar */
  .pillar.primary {
    background: var(--navy);
    color: #fff;
    border-color: var(--navy);
    box-shadow: 0 18px 40px -22px rgba(14,42,71,.72);
  }
  .pillar.primary:hover { border-color: var(--blue-bright); }
  .pillar.primary h3 { color: #fff; }
  .pillar.primary p { color: rgba(255,255,255,.78); }
  .pillar.primary .ic {
    background: rgba(63,160,219,.18);
    color: var(--blue-bright);
  }
  .pillar.primary a { color: var(--blue-bright); }

  /* Risk-control matrix visual (interne beheersing) */
  .vis.has-rcm { aspect-ratio: auto; height: auto; padding: 26px; }
  .vis-rcm { display: flex; flex-direction: column; gap: 9px; }
  .vis-rcm .head {
    display: flex; justify-content: space-between; align-items: center;
    font-family: var(--mono); font-size: 10.5px;
    color: var(--muted); letter-spacing: .08em; text-transform: uppercase;
    margin-bottom: 4px;
  }
  .vis-rcm .head .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--trust); display: inline-block; margin-right: 6px; }
  .rcm-row {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 12px;
    align-items: center;
    font-size: 12.5px;
    box-shadow: 0 4px 12px -8px rgba(14,42,71,.15);
  }
  .rcm-row .proc { color: var(--navy); font-weight: 600; line-height: 1.3; }
  .rcm-row .proc small { display: block; color: var(--muted); font-weight: 400; font-size: 9.5px; font-family: var(--mono); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 2px; }
  .rcm-row .ctrl { color: var(--ink-2); line-height: 1.3; }
  .rcm-row .ctrl small { display: block; color: var(--muted); font-weight: 400; font-size: 9.5px; font-family: var(--mono); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 2px; }
  .rcm-row .status {
    font-family: var(--mono); font-size: 9.5px;
    padding: 3px 8px; border-radius: 999px;
    letter-spacing: .06em; text-transform: uppercase; font-weight: 600;
    white-space: nowrap;
  }
  .rcm-row .status.ok { background: var(--trust-soft); color: var(--trust); }
  .rcm-row .status.todo { background: #FFF1D9; color: #A56F18; }
  .rcm-row .status.risk { background: #FBE2DA; color: #B85F4D; }

  /* Tip section overrides for .slot-img photo */
  .tip-photo {
    width: 200px; height: 200px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid #fff;
    box-shadow: 0 14px 32px -12px rgba(14,42,71,.3);
    background: linear-gradient(160deg, #C5D9EA, #6E8A9F);
    position: relative;
  }
  .tip-photo::after {
    content: "";
    position: absolute; inset: 0;
    background:
      radial-gradient(ellipse 34% 28% at 50% 30%, rgba(14,42,71,.32), transparent 60%),
      radial-gradient(ellipse 60% 42% at 50% 86%, rgba(14,42,71,.72), transparent 65%);
    pointer-events: none;
  }
  .tip-photo .slot-img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; font-size: 9px; color: rgba(14,42,71,.72); }

  /* Testimonial photo uses .slot-img */
  .tm-photo {
    overflow: hidden;
    background: linear-gradient(160deg, #C5D9EA, #6E8A9F);
    position: relative;
  }
  .tm-photo::after,
  .tm-photo::before { content: none; }
  .tm-photo .silh::after {
    content: "";
    position: absolute; inset: 0;
    background:
      radial-gradient(ellipse 30% 26% at 50% 32%, rgba(14,42,71,.32), transparent 60%),
      radial-gradient(ellipse 56% 38% at 50% 88%, rgba(14,42,71,.72), transparent 65%);
    pointer-events: none;
  }
  .tm-photo .slot-img { position: relative; z-index: 1; font-size: 10px; color: rgba(14,42,71,.72); }
  .tm-photo.p2 { background: linear-gradient(160deg, #D6CFB8, #8E8466); }
  .tm-photo.p3 { background: linear-gradient(160deg, #BEC9CF, #6E7A86); }

/* === Homepage: service index (editorial list) === */
.svc-index {
  margin-top: 44px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 64px;
}
.svc-index-row {
  display: grid;
  grid-template-columns: 36px 1fr 22px;
  gap: 18px;
  align-items: baseline;
  padding: 22px 6px 22px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
  transition: padding-left .25s ease, color .2s ease, border-color .2s ease;
}
.svc-index-row:first-child,
.svc-index-row:nth-child(2) {
  border-top: 1px solid var(--line);
}
.svc-index-row .num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--muted);
  text-transform: uppercase;
  align-self: center;
  transition: color .2s ease;
}
.svc-index-row .name {
  font-size: 24px;
  font-weight: 500;
  letter-spacing: -.015em;
  color: var(--navy);
  line-height: 1.2;
  align-self: center;
}
.svc-index-row .name em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--trust);
  margin-left: 8px;
  font-size: 18px;
  letter-spacing: 0;
}
.svc-index-row .chev {
  align-self: center;
  width: 22px;
  height: 22px;
  color: var(--line-2);
  opacity: 1;
  transform: translateX(0);
  transition: transform .25s ease, color .2s ease;
}
.svc-index-row:hover {
  padding-left: 10px;
  border-bottom-color: var(--navy);
}
.svc-index-row:hover .num { color: var(--trust); }
.svc-index-row:hover .name { color: var(--navy); }
.svc-index-row:hover .name em { color: var(--trust-deep); }
.svc-index-row:hover .chev {
  transform: translateX(4px);
  color: var(--navy);
}

/* contact note below the list */
.svc-after {
  margin-top: 36px;
  font-size: 18px;
  line-height: 1.5;
  color: var(--ink-2);
  letter-spacing: -.005em;
}
.svc-after .ital {
  color: var(--navy);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -.015em;
}
.svc-after a {
  color: var(--navy);
  font-weight: 600;
  border-bottom: 1px solid rgba(14,42,71,.28);
  padding-bottom: 1px;
  transition: border-color .2s, color .2s;
  font-variant-numeric: tabular-nums;
}
.svc-after a:hover {
  color: var(--trust);
  border-bottom-color: var(--trust);
}

@media (max-width: 920px) {
  .svc-index { grid-template-columns: 1fr; column-gap: 0; }
  .svc-index-row:nth-child(2) { border-top: none; }
}


/* === Diensten page: layout variants === */
.dn-svc .photo.portrait { aspect-ratio: 4 / 5; }
.dn-svc .photo.wide { aspect-ratio: 16 / 9; }
.dn-svc .pullquote {
  margin-top: 24px;
  padding: 18px 22px 16px;
  border-left: 3px solid var(--blue);
  background: rgba(63,160,219,.06);
  border-radius: 0 10px 10px 0;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  color: var(--navy);
  line-height: 1.4;
}
.dn-svc .copy .bullets {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 18px;
}
.dn-svc .copy .bullets li {
  font-size: 14.5px;
  color: var(--ink-2);
  display: flex; gap: 8px;
  line-height: 1.4;
}
.dn-svc .copy .bullets li::before {
  content: "✓";
  color: var(--trust);
  font-weight: 700;
}
.dn-svc.banner { padding: 0; }
.dn-svc.banner .dn-banner-img {
  width: 100%; aspect-ratio: 16/6;
  background: var(--navy);
  position: relative;
  overflow: hidden;
}
.dn-svc.banner .dn-banner-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.dn-svc.banner .dn-banner-body { padding: 60px 0 80px; }
.dn-svc.banner .dn-banner-body .grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 56px;
  align-items: start;
}
.dn-svc.banner .dn-banner-body .grid > .copy { max-width: none; }
@media (max-width: 920px) {
  .dn-svc.banner .dn-banner-body .grid { grid-template-columns: 1fr; gap: 24px; }
}


/* === Shared closing "Maak kennis" CTA block === */
.dn-end {
  background: var(--navy);
  color: #fff;
  padding: 72px 0 80px;
}
.dn-end h2 {
  color: #fff;
  max-width: 22ch;
  font-size: clamp(28px, 3vw, 36px);
  line-height: 1.15;
  letter-spacing: -.02em;
  font-weight: 700;
}
.dn-end h2 em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--blue-bright); }
.dn-end .lede {
  color: rgba(255,255,255,.78);
  margin-top: 18px;
  max-width: 50ch;
}
.dn-end .end-cta {
  margin-top: 28px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.dn-end .end-cta a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 24px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 15px;
  transition: transform .15s, background .2s;
}
.dn-end .end-cta .primary {
  background: var(--blue-bright);
  color: var(--navy);
}
.dn-end .end-cta .primary:hover { background: #fff; transform: translateY(-1px); }
.dn-end .end-cta .ghost {
  color: #fff;
  border: 1px solid rgba(255,255,255,.32);
}
.dn-end .end-cta .ghost:hover { background: rgba(255,255,255,.08); }


/* === Skip-to-content (a11y) === */
.skip-link {
  position: absolute;
  top: -40px;
  left: 8px;
  z-index: 9999;
  background: var(--navy);
  color: #fff;
  padding: 10px 16px;
  border-radius: 0 0 8px 8px;
  font-size: 14px;
  font-weight: 600;
  transition: top .15s;
}
.skip-link:focus { top: 0; outline: 3px solid var(--blue-bright); }

/* === Hamburger toggle (mobile) === */
.nav-toggle {
  display: none;
  width: 40px; height: 40px;
  border-radius: 10px;
  border: 1px solid var(--line-2);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-shrink: 0;
}
.nav-toggle .bars { position: relative; width: 18px; height: 12px; display: block; }
.nav-toggle .bars span {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform .25s, opacity .2s, top .25s;
}
.nav-toggle .bars span:nth-child(1) { top: 0; }
.nav-toggle .bars span:nth-child(2) { top: 5px; }
.nav-toggle .bars span:nth-child(3) { top: 10px; }
.nav-toggle[aria-expanded="true"] .bars span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bars span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .bars span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

/* Sticky nav scroll-state polish */
.nav.scrolled { box-shadow: 0 4px 12px -6px rgba(14,42,71,.18); }
.nav.scrolled .logo img { height: 26px; }
.logo img { transition: height .2s; }

/* Mobile menu open state */
@media (max-width: 920px) {
  .nav-toggle { display: inline-flex; }
  .nav-cta .btn-ghost { display: none; }
  .nav-menu {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    position: fixed;
    top: 64px;
    left: 0; right: 0;
    background: #fff;
    padding: 14px 20px 22px;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 14px 28px -16px rgba(14,42,71,.22);
    z-index: 49;
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
    transition: transform .25s ease, opacity .2s ease;
  }
  .nav.menu-open .nav-menu {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .nav-menu > a {
    padding: 12px 14px;
    font-size: 15px;
    border-radius: 8px;
  }
  .nav.menu-open ~ * { /* avoid scroll under menu */ }
  body.nav-open { overflow: hidden; }
}


/* === Cookie banner === */
.cookie-banner {
  position: fixed;
  left: 16px; right: 16px;
  bottom: 16px;
  z-index: 9000;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 24px 50px -22px rgba(14,42,71,.32);
  padding: 0;
  transform: translateY(120%);
  opacity: 0;
  transition: transform .3s ease, opacity .25s ease;
  max-width: 720px;
  margin: 0 auto;
}
.cookie-banner.show { transform: translateY(0); opacity: 1; }
.cookie-banner.hide { transform: translateY(120%); opacity: 0; }
.cookie-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  flex-wrap: wrap;
}
.cookie-text {
  font-size: 14px;
  color: var(--ink-2);
  line-height: 1.5;
  flex: 1;
  min-width: 260px;
}
.cookie-text strong { color: var(--ink); font-weight: 600; }
.cookie-text a { color: var(--blue); font-weight: 500; border-bottom: 1px solid rgba(46,122,184,.32); padding-bottom: 1px; }
.cookie-text a:hover { border-bottom-color: var(--blue); }
.cookie-btn.primary {
  background: var(--navy);
  color: #fff;
  border: none;
  padding: 11px 22px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: background .15s;
  font-family: inherit;
}
.cookie-btn.primary:hover { background: var(--navy-deep); }
@media (max-width: 540px) {
  .cookie-banner { left: 8px; right: 8px; bottom: 8px; }
  .cookie-inner { padding: 14px 16px; }
  .cookie-actions { width: 100%; }
  .cookie-btn { width: 100%; }
}


/* === Image skeleton / loading state === */
.kb-img, .blog-img, .loc-img, .photo, .ct-office-photo .frame, .partner-polaroid .photo {
  background: linear-gradient(135deg, #EFF2F6 0%, #DDE5EF 100%);
}
.kb-feature .feat-img .slot-img, .kb-card .kb-img .slot-img { display: block; width: 100%; height: 100%; }
.blog-img .slot-img, .related-card .img .slot-img { display: block; width: 100%; height: 100%; }
.related-card .img { background: linear-gradient(135deg, #E8F1F9 0%, #B5D0E4 100%); }
.kb-img img, .blog-img img, .loc-img img, .photo img, .ct-office-photo .frame img {
  opacity: 0;
  transition: opacity .4s ease;
}
.kb-img img.loaded, .blog-img img.loaded, .loc-img img.loaded, .photo img.loaded, .ct-office-photo .frame img.loaded {
  opacity: 1;
}
.kb-img.loading::before, .blog-img.loading::before, .loc-img.loading::before, .photo.loading::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.4) 50%, transparent 100%);
  animation: shimmer 1.4s linear infinite;
}
@keyframes shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* === Breadcrumbs === */
.crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-size: 13px;
  color: var(--ink-2);
  margin-bottom: 18px;
}
.crumbs a {
  color: var(--ink-2);
  border-bottom: 1px solid transparent;
  transition: border-color .15s, color .15s;
}
.crumbs a:hover { color: var(--navy); border-bottom-color: var(--blue); }
.crumbs .sep {
  color: var(--line-2);
}
.crumbs .current {
  color: var(--navy);
  font-weight: 600;
}

/* === Kennisbank search === */
.kb-search {
  margin: 16px 0 0;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 4px 8px 4px 18px;
  max-width: 540px;
  transition: border-color .2s, box-shadow .2s;
}
.kb-search:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(63,160,219,.12);
}
.kb-search svg { width: 18px; height: 18px; color: var(--muted); flex-shrink: 0; }
.kb-search input {
  flex: 1;
  padding: 12px 0;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 15px;
  color: var(--ink);
  outline: none;
}
.kb-search input::placeholder { color: var(--muted); }
.kb-search .kb-clear {
  background: var(--line-2);
  color: var(--ink-2);
  border: none;
  width: 28px; height: 28px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
  display: none;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.kb-search .kb-clear:hover { background: var(--ink-2); color: #fff; }
.kb-search.has-value .kb-clear { display: inline-flex; }

/* === Print stylesheet === */
@media print {
  .nav, footer, .login-overlay, .cookie-banner, .skip-link, .nav-toggle,
  .dn-end, .careers, .kb-newsletter, .hero-cta, .cta-row, .end-cta,
  .art-author, .art-cta-card, .related, video, audio { display: none !important; }
  body { background: #fff; color: #000; }
  a { color: #000; text-decoration: underline; }
  .wrap { max-width: none; padding: 0 16pt; }
  .art-header, .dn-hero, .kb-hero, .ct-hero, .about-hero, .legal-hero, .wbf-hero, .nf-hero {
    background: #fff !important;
    color: #000 !important;
    padding: 8pt 0 !important;
  }
  .art-header h1, .dn-hero h1, .kb-hero h1, .ct-hero h1, .about-hero h1, .legal-hero h1, .wbf-hero h1, .nf-hero h1 {
    color: #000 !important;
  }
  .art-body, .legal-prose, .dn-body, .kb-grid { max-width: none !important; }
  h1, h2, h3 { page-break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
}


/* === Consistent focus styles (a11y) === */
*:focus-visible {
  outline: 2px solid var(--blue-bright);
  outline-offset: 2px;
  border-radius: 4px;
}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--blue-bright);
  outline-offset: 2px;
}

/* === Reduced motion === */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .live-strip .live-dot::after { animation: none !important; }
}

/* === Consistent hover lift (one value) === */
.svc-tile:hover, .pillar:hover, .blog-card:hover, .channel-card:hover,
.loc-tile:hover, .team-card:hover, .partner-card:hover, .price-card:hover,
.kb-card:hover, .related-card:hover, .wbf-pillar:hover, .wbf-vac:hover,
.value-card:hover, .nf-tile:hover {
  transform: translateY(-2px);
}

/* === Contrast tweaks: bump muted slightly === */
:root {
  --muted: #5C6B82;
}

/* === Dark mode === */
:root[data-theme="dark"] {
  --paper: #0E1A2A;
  --cream: #15233A;
  --ivory: #15233A;
  --ink: #ECF1F8;
  --ink-2: #B6C2D2;
  --muted: #8492A6;
  --line: #243149;
  --line-2: #2E3D58;
  --navy: #6A95C6;
  --navy-deep: #87A8D2;
  --blue-soft: #1A2A42;
  --blue-bg: #122036;
  --trust-soft: #163828;
}
:root[data-theme="dark"] body { background: var(--paper); color: var(--ink); }
:root[data-theme="dark"] .nav {
  background: rgba(14, 26, 42, .85);
}
:root[data-theme="dark"] .nav.scrolled {
  background: rgba(14, 26, 42, .96);
  border-bottom-color: var(--line);
}
:root[data-theme="dark"] .nav-menu a {
  color: var(--ink-2);
}
:root[data-theme="dark"] .nav-menu a:hover {
  background: var(--blue-soft);
  color: var(--ink);
}
:root[data-theme="dark"] .btn-light {
  background: var(--cream);
  color: var(--ink);
  border-color: var(--line-2);
}
:root[data-theme="dark"] footer { background: #050E1A; }
:root[data-theme="dark"] .ct-hero,
:root[data-theme="dark"] .dn-hero,
:root[data-theme="dark"] .kb-hero,
:root[data-theme="dark"] .legal-hero,
:root[data-theme="dark"] .nf-hero {
  background: linear-gradient(180deg, var(--paper) 0%, var(--cream) 100%);
}
:root[data-theme="dark"] .sec-cream { background: var(--cream); }
:root[data-theme="dark"] .sec-blue-bg { background: #122036; }
:root[data-theme="dark"] .legal-prose p,
:root[data-theme="dark"] .legal-prose li { color: var(--ink-2); }
:root[data-theme="dark"] .kb-card,
:root[data-theme="dark"] .channel-card,
:root[data-theme="dark"] .wbf-pillar,
:root[data-theme="dark"] .nf-tile,
:root[data-theme="dark"] .svc-tile,
:root[data-theme="dark"] .related-card,
:root[data-theme="dark"] .loc-tile,
:root[data-theme="dark"] .team-card,
:root[data-theme="dark"] .partner-card,
:root[data-theme="dark"] .value-card,
:root[data-theme="dark"] .wbf-vac {
  background: var(--cream);
  border-color: var(--line-2);
  color: var(--ink);
}
:root[data-theme="dark"] .logo img { filter: brightness(0) invert(1); }

/* === Theme toggle button === */
.theme-toggle {
  width: 38px; height: 38px;
  border-radius: 10px;
  border: 1px solid var(--line-2);
  background: transparent;
  color: var(--ink-2);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s, border-color .15s;
  font-family: inherit;
  flex-shrink: 0;
}
.theme-toggle:hover { background: var(--blue-soft); color: var(--navy); border-color: var(--blue); }
.theme-toggle svg { width: 18px; height: 18px; }
.theme-toggle .sun, .theme-toggle .moon { display: none; }
:root:not([data-theme="dark"]) .theme-toggle .moon { display: block; }
:root[data-theme="dark"] .theme-toggle .sun { display: block; }

/* Gewone afbeeldingen in plaats van het vroegere image-slot element */
.slot-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.slot-img.slot-contain { object-fit: contain; }
