@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;700&family=Barlow+Condensed:wght@400;600&display=swap');
:root {
--color-bg: #f2f2f3;
--color-surface: #e9e9ea;
--color-text: #1d1f20;
--color-accent: #5980a6;
--color-accent-2: #728fab;
--color-divider: color-mix(in srgb, #1d1f20 16%, transparent);
--color-neutral-100: #f5f5f8;
--color-neutral-200: #e7e7ea;
--color-neutral-300: #d4d4d7;
--color-neutral-400: #b7b7ba;
--color-neutral-500: #98989b;
--color-neutral-600: #7a7a7d;
--color-neutral-700: #5d5d60;
--color-neutral-800: #424244;
--color-neutral-900: #2b2b2d;
--color-accent-100: #eef6ff;
--color-accent-200: #d6ebff;
--color-accent-300: #b5d9fd;
--color-accent-400: #94bce3;
--color-accent-500: #749dc4;
--color-accent-600: #597ea3;
--color-accent-700: #416180;
--color-accent-800: #2c455d;
--color-accent-900: #1d2d3d;
--color-accent-2-100: #eef6ff;
--color-accent-2-200: #d6ebff;
--color-accent-2-300: #bdd8f2;
--color-accent-2-400: #9ebbd8;
--color-accent-2-500: #7e9cb8;
--color-accent-2-600: #627d98;
--color-accent-2-700: #486077;
--color-accent-2-800: #314457;
--color-accent-2-900: #1f2d3a;
--font-heading: "Barlow Condensed", system-ui, sans-serif;
--font-heading-weight: 600;
--font-body: "Barlow", system-ui, sans-serif;
--space-1: 3.4px;
--space-2: 6.8px;
--space-3: 10.2px;
--space-4: 13.6px;
--space-6: 20.4px;
--space-8: 27.2px;
--radius-sm: 2px;
--radius-md: 4px;
--radius-lg: 7px;
--shadow-sm: 0 1px 2px color-mix(in srgb, #2b2b2d 14%, transparent);
--shadow-md: 0 3px 10px color-mix(in srgb, #2b2b2d 16%, transparent);
--shadow-lg: 0 12px 32px color-mix(in srgb, #2b2b2d 22%, transparent);
}
body {
background: var(--color-bg);
color: var(--color-text);
font-family: var(--font-body);
}
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: var(--font-heading-weight); }
.blueprint {
position: relative;
border: 1px solid var(--color-divider);
border-radius: 0;
}
.blueprint.halftone, .blueprint.plate, .blueprint.duotone { overflow: visible; }
.blueprint > .corner {
position: absolute; width: 11px; height: 11px;
color: color-mix(in srgb, var(--color-text) 55%, transparent);
}
.blueprint > .corner::before, .blueprint > .corner::after {
content: ""; position: absolute; background: currentColor;
}
.blueprint > .corner::before { left: 5px; top: 0; width: 1px; height: 100%; }
.blueprint > .corner::after  { top: 5px; left: 0; width: 100%; height: 1px; }
.blueprint > .corner.tl { top: -6px; left: -6px; }
.blueprint > .corner.tr { top: -6px; right: -6px; }
.blueprint > .corner.bl { bottom: -6px; left: -6px; }
.blueprint > .corner.br { bottom: -6px; right: -6px; }
.duotone{position:relative;overflow:hidden}
.duotone::after{content:"";position:absolute;inset:0;pointer-events:none;
background:var(--color-accent);mix-blend-mode:color}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-size: 15px; line-height: 1.55; font-weight: 400; }
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-heading); font-weight: var(--font-heading-weight);
line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2);
}
h1 { font-size: 42px; }
h2 { font-size: 32px; }
h3 { font-size: 25px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; }
h6 { letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent); text-underline-offset: 3px; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
figcaption {
font-size: 11px; margin-top: var(--space-1);
color: color-mix(in srgb, var(--color-text) 55%, transparent);
}
.text-muted { color: color-mix(in srgb, var(--color-text) 55%, transparent); }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--color-accent) 30%, transparent); }
.hr {
height: 1px; border: 0; margin: var(--space-4) 0;
background: var(--color-divider);
}
.btn {
display: inline-flex; align-items: center; justify-content: center; gap: 6px;
cursor: pointer; text-decoration: none;
font-family: var(--font-heading); font-weight: var(--font-heading-weight);
font-size: 14px; line-height: 1.2; color: var(--color-text); 
background: transparent; border: 1px solid transparent;
padding: var(--space-2) calc(var(--space-3) * 1.2);
border-radius: var(--radius-md);
}
.btn svg { display: block; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { background: var(--color-accent); color: var(--color-bg); }
.btn-primary:hover { background: var(--color-accent-600); }
.btn-primary:active { background: var(--color-accent-700); }
.btn-secondary { border-color: var(--color-divider); }
.btn-secondary:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.btn-secondary:active { background: color-mix(in srgb, var(--color-text) 14%, transparent); }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { background: color-mix(in srgb, var(--color-accent) 10%, transparent); }
.btn-ghost:active { background: color-mix(in srgb, var(--color-accent) 18%, transparent); }
.btn-icon { width: 36px; height: 36px; padding: 0; }
.btn-block { width: 100%; margin-top: var(--space-2); }
.field > label {
display: block; font-size: 12px; margin-bottom: 5px;
color: color-mix(in srgb, var(--color-text) 70%, transparent);
}
.input {
width: 100%; min-height: 36px; padding: 6px 10px; font: inherit;
font-size: 14px; color: var(--color-text); caret-color: var(--color-accent);
background: var(--color-surface);
border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.input:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); }
.input:focus-visible { border-color: var(--color-accent); outline-offset: 0; }
textarea.input { min-height: 90px; resize: vertical; }
.radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; }
.radio input, .seg-opt input {
position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.radio .dot {
width: 16px; height: 16px; flex: none; border-radius: 50%;
border: 1.5px solid var(--color-divider);
}
.radio:hover .dot { border-color: var(--color-accent); }
.radio input:checked + .dot {
border-color: var(--color-accent); background: var(--color-accent);
box-shadow: inset 0 0 0 4px var(--color-bg);
}
.radio input:focus-visible + .dot { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.seg {
display: inline-flex; overflow: hidden;
border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.seg-opt {
display: inline-flex; align-items: center; gap: 6px;
padding: 7px 12px; font-size: 13px; cursor: pointer;
}
.seg-opt + .seg-opt { border-left: 1px solid var(--color-divider); }
.seg-opt:has(input:checked) { background: var(--color-accent); color: var(--color-bg); }
.seg-opt:not(:has(input:checked)):hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.seg-opt:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.card {
display: flex; flex-direction: column; gap: var(--space-2);
padding: var(--space-3); border-radius: var(--radius-md); background: var(--color-surface);
}
.card-kicker { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }
.card-title {
font-family: var(--font-heading); font-weight: var(--font-heading-weight);
font-size: 17px; line-height: 1.2;
}
.card-body { margin: 0; font-size: 13px; opacity: 0.8; flex: 1; }
.card-meta {
display: flex; align-items: center; gap: 6px; font-size: 11px;
color: color-mix(in srgb, var(--color-text) 50%, transparent);
}
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }
.tag {
display: inline-flex; align-items: center; font-size: 11px;
letter-spacing: 0.02em; padding: 3px 10px;
border-radius: calc(var(--radius-md) * 0.75);
}
.tag-accent { background: var(--color-accent-100); color: var(--color-accent-800); }
.tag-accent-2 { background: var(--color-accent-2-100); color: var(--color-accent-2-800); }
.tag-neutral { background: var(--color-neutral-100); color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); }
.nav {
display: flex; align-items: center; gap: var(--space-4);
padding: var(--space-3) var(--space-4);
border-bottom: none;
}
.nav-brand {
font-family: var(--font-heading); font-weight: var(--font-heading-weight);
font-size: 18px; margin-right: auto;
}
.nav a { color: inherit; text-decoration: none; font-size: 14px; }
.nav a:hover, .nav a[aria-current='page'] { color: var(--color-accent); }
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th {
text-align: left; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
color: color-mix(in srgb, var(--color-text) 60%, transparent);
padding: var(--space-2); border-bottom: 1px solid var(--color-divider);
}
.table td {
padding: var(--space-2);
border-bottom: 1px solid color-mix(in srgb, var(--color-text) 8%, transparent);
}
.table tbody tr:hover { background: color-mix(in srgb, var(--color-text) 4%, transparent); }
.dialog-backdrop {
position: fixed; inset: 0; display: grid; place-items: center;
padding: var(--space-4);
background: color-mix(in srgb, var(--color-neutral-900) 50%, transparent);
}
.dialog {
width: min(440px, 100%); display: flex; flex-direction: column; gap: var(--space-3);
padding: var(--space-4); border-radius: var(--radius-lg);
background: var(--color-surface); box-shadow: var(--shadow-lg);
}
.dialog-title {
font-family: var(--font-heading); font-weight: var(--font-heading-weight);
font-size: 20px;
}
.dialog-body { font-size: 14px; opacity: 0.85; }
.dialog-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-2); }
.card, .btn, .input, .tag, .seg, .dialog { border-radius: 0; }
.card, .dialog { background: transparent; border: 1px solid var(--color-divider); }
.btn { border: 1px solid var(--color-divider); }
.btn-primary { border-color: var(--color-accent); }
.btn-ghost { border-color: transparent; }
:root {
--color-accent: #1580c8; --color-accent-100: #e8f3fc; --color-accent-200: #b8dcf5;
--color-accent-300: #7ec2ec; --color-accent-400: #4aa2dd; --color-accent-500: #1580c8;
--color-accent-600: #1a6bab; --color-accent-700: #123f8c; --color-accent-800: #0d2668;
--color-accent-900: #081a4f;
}
body { margin: 0; background: var(--color-bg); color: var(--color-text); }
a { color: var(--color-accent-700); text-decoration: none; }
a:hover { color: var(--color-accent-900); }
*:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
@keyframes v4t-ticker { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }
@keyframes v4t-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes v4t-wipe { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.v4t-wrap { max-width: 1440px; margin: 0 auto; padding: 0 40px; }
.v4t-head { position: sticky; top: 0; z-index: 40; background: #fff; border-bottom: 1px solid var(--color-neutral-400); }
.v4t-head-row { display: flex; align-items: center; gap: 24px; padding: 12px 40px; min-height: 68px; max-width: 1440px; margin: 0 auto; }
.v4t-nav { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; row-gap: 4px; gap: 2px; justify-content: center;
font-family: var(--font-heading); font-weight: 500; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; }
.v4t-nav a { color: var(--color-accent-800); padding: 8px 12px; border: 1px solid transparent; }
.v4t-nav a:hover { color: var(--color-accent); border-color: var(--color-accent-300); }
.v4t-dark { background: var(--color-accent-900); color: #fff; position: relative; overflow: hidden; }
.v4t-grid-bg { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 80px 80px; }
.v4t-reveal { animation: v4t-rise 620ms cubic-bezier(0.2,0.7,0.2,1) both; }
.v4t-kicker { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--color-accent-700); margin-bottom: 18px; }
.v4t-h2 { font-size: clamp(36px, 4.6vw, 68px); line-height: 0.94; letter-spacing: -0.02em; text-transform: uppercase; margin: 0; }
.v4t-service { border-top: 1px solid var(--color-neutral-400); display: grid; grid-template-columns: 90px minmax(0,1fr) minmax(0,1.2fr) minmax(0,0.7fr);
gap: 32px; padding: 34px 20px; transition: background 180ms ease, color 180ms ease; }
.v4t-service:hover { background: var(--color-accent-900); color: #fff; }
.v4t-opt { cursor: pointer; font-family: var(--font-heading); font-size: 14px; letter-spacing: 0.06em; padding: 10px 16px;
border: 1px solid var(--color-neutral-400); background: transparent; color: var(--color-neutral-900); text-align: left;
transition: background 150ms ease, color 150ms ease, border-color 150ms ease; }
.v4t-opt:hover { border-color: var(--color-accent-500); }
.btn, .v4t-opt { white-space: nowrap; }
.btn { height: auto !important; min-height: 44px; padding-top: 10px; padding-bottom: 10px; }
.v4t-caption { white-space: nowrap; }
.v4t-opt[aria-pressed="true"] { background: var(--color-accent-700); border-color: var(--color-accent-700); color: #fff; }
.v4t-faq summary { display: grid; grid-template-columns: 1fr 32px; gap: 20px; align-items: center; cursor: pointer; padding: 24px 8px; list-style: none; }
.v4t-faq summary::-webkit-details-marker { display: none; }
.v4t-faq details[open] summary h3 { color: var(--color-accent-800); }
.v4t-faq details[open] .v4t-plus { transform: rotate(45deg); }
.v4t-plus { font-family: var(--font-heading); font-size: 26px; line-height: 1; color: var(--color-accent); justify-self: end; transition: transform 220ms cubic-bezier(0.2,0.7,0.2,1); display: inline-block; }
.v4t-faq details p { animation: v4t-rise 320ms cubic-bezier(0.2,0.7,0.2,1) both; }
@media (max-width: 1040px) {
.v4t-hero, .v4t-two, .v4t-calc, .v4t-faq-grid { grid-template-columns: 1fr !important; }
.v4t-cols, .v4t-plans { grid-template-columns: 1fr !important; }
.v4t-hero > div:first-child { padding-right: 0 !important; }
.v4t-service { grid-template-columns: 60px 1fr; row-gap: 12px; }
.v4t-service > *:nth-child(3), .v4t-service > *:nth-child(4) { grid-column: 2; }
.v4t-calc > div:first-child { border-right: 0 !important; border-bottom: 1px solid var(--color-neutral-400); }
}
@media (max-width: 720px) {
.v4t-wrap, .v4t-head-row { padding-left: 20px; padding-right: 20px; }
.v4t-nav { display: none; }
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
@keyframes v4t-line{from{clip-path:inset(0 0 100% 0);transform:translateY(14px)}to{clip-path:inset(0 0 -12% 0);transform:none}}
@keyframes v4t-sheen{0%{background-position:120% 0}100%{background-position:-40% 0}}
#v4t-page{
--color-bg:#f2f2f3;--color-surface:#ffffff;--color-text:#1d1f20;--color-divider:#c9c9cc;
--color-neutral-100:#e9e9ea;--color-neutral-400:#c9c9cc;--color-neutral-700:#5d5d60;--color-neutral-800:#424244;--color-neutral-900:#2b2b2d;
--color-accent:#1580c8;--color-accent-100:#e8f3fc;--color-accent-200:#b8dcf5;--color-accent-300:#7ec2ec;--color-accent-400:#4aa2dd;
--color-accent-500:#1580c8;--color-accent-600:#1a6bab;--color-accent-700:#123f8c;--color-accent-800:#0d2668;--color-accent-900:#081a4f;
--font-heading:"Roboto Condensed","Roboto",system-ui,sans-serif;--font-body:"Roboto",system-ui,sans-serif;
background:#f2f2f3 !important;color:#1d1f20 !important;text-align:left !important;font-family:"Roboto",system-ui,sans-serif !important;font-size:15px;line-height:1.55}
#v4t-page *,#v4t-page *:before,#v4t-page *:after{box-sizing:border-box}
#v4t-page p,#v4t-page li,#v4t-page span,#v4t-page div,#v4t-page a,#v4t-page button,#v4t-page label,#v4t-page summary{font-family:"Roboto",system-ui,sans-serif}
#v4t-page h1,#v4t-page h2,#v4t-page h3,#v4t-page h4,#v4t-page .v4t-price,#v4t-page .v4t-plus{font-family:"Roboto Condensed","Roboto",system-ui,sans-serif !important;font-weight:700 !important}
#v4t-page h1,#v4t-page h2,#v4t-page h3,#v4t-page h4,#v4t-page p,#v4t-page li,#v4t-page summary{text-align:inherit !important;color:inherit !important;margin-top:0;text-shadow:none !important}
#v4t-page ul{list-style:none;margin:0;padding:0}
#v4t-page img{max-width:100%;height:auto;filter:none !important}
#v4t-page section,#v4t-page header,#v4t-page footer,#v4t-page div{opacity:1 !important;filter:none !important;mix-blend-mode:normal !important}
#v4t-page .v4t-dark,#v4t-page footer,#v4t-page .v4t-calc-out{background-color:#081a4f !important;background-image:none !important;color:#ffffff !important}
#v4t-page .v4t-dark h1,#v4t-page .v4t-dark h2,#v4t-page .v4t-dark h3,#v4t-page .v4t-dark p,#v4t-page .v4t-dark strong{color:inherit !important}
#v4t-page .v4t-dark a,#v4t-page footer a{color:#ffffff !important}
#v4t-page .v4t-dark a:hover{color:#b8dcf5 !important}
#v4t-page .v4t-grid-bg{background-image:linear-gradient(rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.05) 1px,transparent 1px) !important;background-size:80px 80px !important}
#v4t-page .btn{text-decoration:none !important;border-radius:0 !important;text-shadow:none !important}
#v4t-page .btn-primary,#v4t-page .btn-primary:link,#v4t-page .btn-primary:visited{background:#1580c8 !important;border-color:#1580c8 !important;color:#ffffff !important}
#v4t-page .btn-primary:hover{background:#1a6bab !important;border-color:#1a6bab !important}
#v4t-page .v4t-head{background:#ffffff !important}
#v4t-page .v4t-service:hover,#v4t-page .v4t-service:hover h3,#v4t-page .v4t-service:hover p,#v4t-page .v4t-service:hover span{color:#ffffff !important}
#v4t-page .blueprint[style*="accent-900"],#v4t-page .blueprint[style*="accent-900"] *{color:#ffffff}
#v4t-h1{overflow:visible}
#v4t-h1 .ln{display:block;animation:v4t-line .9s cubic-bezier(.16,.84,.28,1) both}
#v4t-h1 .ln1,#v4t-h1 .ln2{background:linear-gradient(100deg,#fff 0%,#fff 34%,#7ec2ec 50%,#fff 66%,#fff 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent !important;animation:v4t-line .9s cubic-bezier(.16,.84,.28,1) both,v4t-sheen 7s 1.1s linear infinite}
#v4t-h1 .ln2{animation-delay:.14s,1.1s}
#v4t-h1 .ln3{background:linear-gradient(100deg,#7ec2ec 0%,#7ec2ec 34%,#fff 50%,#7ec2ec 66%,#7ec2ec 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent !important;animation:v4t-line .9s .28s cubic-bezier(.16,.84,.28,1) both,v4t-sheen 7s 1.4s linear infinite}
@media(prefers-reduced-motion:reduce){#v4t-page *{animation-duration:.001ms !important;transition-duration:.001ms !important}}
/* Navigatie met uitklapmenu */
.v4t-nav .drop{position:relative}
.v4t-nav .dropmenu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--color-neutral-400);min-width:280px;z-index:60;flex-direction:column;text-transform:none;letter-spacing:0.02em}
.v4t-nav .drop:hover .dropmenu,.v4t-nav .drop:focus-within .dropmenu{display:flex}
.v4t-nav .dropmenu a{padding:13px 16px;border:0;border-bottom:1px solid var(--color-neutral-100);font-size:13px}
.v4t-nav .dropmenu a:last-child{border-bottom:0}
.v4t-nav a[aria-current="page"]{color:var(--color-accent);border-color:var(--color-accent-300)}
/* Paginakop voor subpagina's */
.bs-pagehero{position:relative;padding:64px 0 56px}
.bs-pagehero h1{font-size:clamp(40px,5.5vw,84px);line-height:0.9;letter-spacing:-0.025em;text-transform:uppercase;margin:0 0 22px;font-family:var(--font-heading)}
.bs-pagehero p{font-size:19px;line-height:1.6;color:var(--color-accent-100);max-width:52ch;margin:0}
/* Tekstsecties */
.bs-prose{max-width:66ch}
.bs-prose p{font-size:16.5px;line-height:1.65;color:var(--color-neutral-800);margin:0 0 16px}
.bs-prose h2{font-size:clamp(26px,3vw,40px);text-transform:uppercase;margin:34px 0 14px}
.bs-check{display:grid;grid-template-columns:16px 1fr;gap:12px;font-size:15.5px;line-height:1.55;margin-bottom:11px}
.bs-check span:first-child{font-family:var(--font-heading);color:var(--color-accent);font-weight:700}
.bs-cards2{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--color-neutral-400)}
@media(max-width:1040px){.bs-cards2{grid-template-columns:1fr}}

/* ===== Animatielaag (hover en micro-interacties) ===== */
:root{--ease-uit:cubic-bezier(0.23,1,0.32,1);--ease-beweeg:cubic-bezier(0.77,0,0.175,1)}

/* Knoppen: reactie op zweven en indrukken */
.btn{transition:transform 160ms var(--ease-uit),box-shadow 160ms var(--ease-uit),background-color 160ms ease}
.btn:active{transform:translateY(0) scale(0.97)}
.blueprint .corner{transition:border-color 160ms ease,width 180ms var(--ease-uit),height 180ms var(--ease-uit)}

/* Navigatie: onderstreping die uitschuift */
.v4t-nav>a,.v4t-nav .drop>a{position:relative}
.v4t-nav>a::after,.v4t-nav .drop>a::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:var(--color-accent);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease-uit)}

/* Mega-menu onder Administratie */
.v4t-nav .drop{position:relative}
.v4t-nav .mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px) scale(0.97);transform-origin:top center;opacity:0;visibility:hidden;pointer-events:none;background:#fff;border:1px solid var(--color-neutral-400);box-shadow:0 30px 60px -18px rgba(8,26,79,0.28);width:640px;max-width:90vw;display:grid;grid-template-columns:1fr 1fr;z-index:80;text-transform:none;letter-spacing:0.01em;transition:opacity 160ms var(--ease-uit),transform 200ms var(--ease-uit),visibility 0s linear 160ms}
.v4t-nav .mega::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.v4t-nav .mega::after{content:"";position:absolute;top:-6px;left:50%;width:10px;height:10px;background:#fff;border-left:1px solid var(--color-neutral-400);border-top:1px solid var(--color-neutral-400);transform:translateX(-50%) rotate(45deg)}
.mega .mi{display:grid;grid-template-columns:44px 1fr;gap:0 14px;align-items:start;padding:20px 20px 18px;border-bottom:1px solid var(--color-neutral-100);color:var(--color-text);opacity:0;transform:translateY(6px);transition:opacity 180ms var(--ease-uit),transform 180ms var(--ease-uit),background-color 140ms ease}
.mega .mi:first-child{border-right:1px solid var(--color-neutral-100)}
.mega .mi svg{grid-row:span 2;width:34px;height:34px;color:var(--color-accent);margin-top:3px;transition:transform 200ms var(--ease-uit)}
.mega .mi b{font-family:var(--font-heading);font-size:15px;letter-spacing:0.04em;text-transform:uppercase;line-height:1.2}
.mega .mi i{font-style:normal;font-size:12.5px;line-height:1.5;color:var(--color-neutral-800);margin-top:4px;display:block}
.mega .mi-all{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:0;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--color-accent);background:#f6fafd}
.mega .mi-all span{transition:transform 180ms var(--ease-uit)}

/* Kaarten en opties */
.bs-cards2>div,.v4t-plans>div,.v4t-faq details,.v4t-calc{transition:transform 200ms var(--ease-uit),box-shadow 200ms var(--ease-uit),border-color 160ms ease}
.v4t-opt{transition:transform 140ms var(--ease-uit),border-color 140ms ease,background-color 140ms ease}
.v4t-opt:active{transform:scale(0.98)}
.v4t-faq summary{transition:color 140ms ease}
.v4t-faq .v4t-plus{transition:transform 200ms var(--ease-uit)}
.v4t-faq details[open] .v4t-plus{transform:rotate(45deg)}

/* Alleen op apparaten met een echte muis */
@media (hover:hover) and (pointer:fine){
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(8,26,79,0.45)}
.blueprint:hover>.corner{border-color:var(--color-accent)}
.v4t-nav>a:hover::after,.v4t-nav .drop>a:hover::after,.v4t-nav .drop:focus-within>a::after{transform:scaleX(1)}
.v4t-nav .drop:hover .mega,.v4t-nav .drop:focus-within .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1);transition-delay:0s}
.v4t-nav .drop:hover .mi,.v4t-nav .drop:focus-within .mi{opacity:1;transform:translateY(0)}
.v4t-nav .drop:hover .mi:nth-child(2),.v4t-nav .drop:focus-within .mi:nth-child(2){transition-delay:45ms}
.v4t-nav .drop:hover .mi:nth-child(3),.v4t-nav .drop:focus-within .mi:nth-child(3){transition-delay:90ms}
.mega .mi:hover{background:#f2f8fd}
.mega .mi:hover svg{transform:translateY(-2px) scale(1.06)}
.mega .mi-all:hover span{transform:translateX(4px)}
.bs-cards2>div:hover,.v4t-plans>div:hover{transform:translateY(-4px);box-shadow:0 22px 44px -18px rgba(8,26,79,0.30);border-color:var(--color-accent)}
.v4t-opt:hover{border-color:var(--color-accent);transform:translateY(-1px)}
.v4t-faq summary:hover h3{color:var(--color-accent)}
}

/* Minder beweging voor wie dat heeft ingesteld */
@media (prefers-reduced-motion:reduce){
.btn,.v4t-opt,.bs-cards2>div,.v4t-plans>div,.mega .mi,.v4t-nav .mega{transition:opacity 150ms ease,background-color 150ms ease;transform:none!important}
}

/* Foto's in mega-menu en paginakoppen */
.mega .mi{grid-template-columns:96px 1fr}
.mega .mi .fo{grid-row:span 2;width:96px;height:64px;overflow:hidden;border:1px solid var(--color-neutral-400);margin-top:2px}
.mega .mi .fo img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);transition:transform 260ms var(--ease-uit)}
.bs-pagehero .v4t-wrap{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:64px;align-items:center}
.bs-kopfoto{position:relative;border:1px solid rgba(255,255,255,0.35)}
.bs-kopfoto img{display:block;width:100%;height:auto}
.bs-kopfoto .corner{border-color:var(--color-accent-300)}
@media(max-width:1040px){.bs-pagehero .v4t-wrap{grid-template-columns:1fr}.bs-kopfoto{max-width:520px}}
@media (hover:hover) and (pointer:fine){.mega .mi:hover .fo img{transform:scale(1.07)}}

/* Onthulling bij scrollen (klasse wordt door script gezet, dus zonder JS blijft alles zichtbaar) */
.onthul{opacity:0;transform:translateY(14px);transition:opacity 420ms var(--ease-uit),transform 520ms var(--ease-uit)}
.onthul.zichtbaar{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.onthul{opacity:1;transform:none;transition:none}}

/* ============================================================
   VERFIJNING v2 - foto's vervloeien, menu strakker, animatie merkbaar
   ============================================================ */

/* ---------- 1. FOTO'S: geen harde kaders, vervloeien in het blauw ---------- */

.bs-kopfoto{
  border:0 !important;
  position:relative;
  overflow:visible;
  isolation:isolate;
}
/* blauwdruk-hoekjes weg bij foto's: die maakten het hokkerig */
.bs-kopfoto>.corner{display:none}

.bs-kopfoto img{
  display:block;
  width:100%;
  height:auto;
  /* de foto dooft uit naar links en onder, zodat hij opgaat in het blauw */
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.35) 12%, #000 42%),
    linear-gradient(to top, transparent 0%, rgba(0,0,0,0.45) 14%, #000 46%),
    linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.55) 8%, #000 30%);
  -webkit-mask-composite:source-in;
          mask-image:
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.35) 12%, #000 42%),
    linear-gradient(to top, transparent 0%, rgba(0,0,0,0.45) 14%, #000 46%),
    linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.55) 8%, #000 30%);
          mask-composite:intersect;
  filter:saturate(0.82) contrast(1.04) brightness(0.95);
  transform:scale(1.06);
  transition:transform 1400ms var(--ease-uit), filter 600ms ease;
}
/* blauwe waas eroverheen zodat de foto bij de huisstijl hoort */
.bs-kopfoto::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, var(--color-accent-900) 0%, rgba(8,26,79,0.55) 32%, rgba(8,26,79,0) 68%),
    linear-gradient(0deg, rgba(8,26,79,0.85) 0%, rgba(8,26,79,0) 42%);
  pointer-events:none;
  z-index:2;
}
.bs-kopfoto.zichtbaar img{transform:scale(1)}

/* de kop krijgt lucht: foto loopt door tot de rand van de sectie */
.bs-pagehero{padding:76px 0 68px;overflow:hidden}
.bs-pagehero .v4t-wrap{
  grid-template-columns:minmax(0,1fr) minmax(0,0.86fr);
  gap:72px;
  align-items:center;
}
@media(min-width:1041px){
  .bs-pagehero .bs-kopfoto{
    margin-right:calc((100vw - min(100vw, 1440px)) / -2 - 40px);
    margin-top:-40px;
    margin-bottom:-40px;
  }
}
@media(max-width:1040px){
  .bs-pagehero .v4t-wrap{grid-template-columns:1fr;gap:40px}
  .bs-kopfoto{max-width:100%;margin:0}
}

/* ---------- 2. HERO-FOTO OP DE HOMEPAGE ---------- */

.bs-herofoto{
  position:relative;
  flex:1;
  min-height:340px;
  overflow:hidden;
}
.bs-herofoto img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%;
  filter:saturate(0.7) contrast(1.05) brightness(0.82);
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.3) 18%, #000 58%),
    linear-gradient(to top, transparent 0%, rgba(0,0,0,0.4) 12%, #000 40%);
  -webkit-mask-composite:source-in;
          mask-image:
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.3) 18%, #000 58%),
    linear-gradient(to top, transparent 0%, rgba(0,0,0,0.4) 12%, #000 40%);
          mask-composite:intersect;
  transform:scale(1.12);
  animation:bs-herozoom 2600ms 120ms cubic-bezier(0.23,1,0.32,1) both;
}
@keyframes bs-herozoom{from{transform:scale(1.12);opacity:0}to{transform:scale(1);opacity:1}}
.bs-herofoto::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(100deg, var(--color-accent-900) 4%, rgba(8,26,79,0.72) 34%, rgba(8,26,79,0.18) 74%),
    linear-gradient(to top, var(--color-accent-900) 0%, rgba(8,26,79,0) 38%);
}
.v4t-hero .bs-cijfers{position:relative;z-index:2}
@media (prefers-reduced-motion:reduce){
  .bs-herofoto img{animation:none;transform:none}
}

/* ---------- 3. MENUBALK: rustiger, beter uitgelijnd ---------- */

.v4t-head-row{align-items:center;gap:48px}
.v4t-nav{
  display:flex;
  align-items:center;
  gap:38px;
  flex:1;
  justify-content:center;
}
.v4t-nav>a,
.v4t-nav .drop>a{
  display:inline-flex;
  align-items:center;
  height:34px;
  font-size:12.5px;
  letter-spacing:0.13em;
  text-transform:uppercase;
  white-space:nowrap;
  border:0;
  padding:0;
}
.v4t-nav>a::after,
.v4t-nav .drop>a::after{
  bottom:2px;
  height:1.5px;
  background:var(--color-accent);
}
.v4t-nav a[aria-current="page"]{color:var(--color-accent)}
.v4t-nav a[aria-current="page"]::after{transform:scaleX(1)}
/* pijltje bij het menu-item met een submenu */
.v4t-nav .drop>a::before{
  content:"";
  position:absolute;
  right:-14px;
  top:calc(50% - 1px);
  width:5px;
  height:5px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
  opacity:0.55;
  transition:transform 220ms var(--ease-uit), opacity 200ms ease;
}
.v4t-nav .drop{margin-right:14px}
.v4t-nav .drop:hover>a::before,
.v4t-nav .drop:focus-within>a::before{
  transform:translateY(-50%) rotate(225deg);
  opacity:1;
}

/* ---------- 4. MEGA-MENU: van goedkoop naar verzorgd ---------- */

.v4t-nav .mega{
  width:760px;
  top:calc(100% + 18px);
  border:0;
  box-shadow:0 2px 0 var(--color-accent) inset, 0 40px 90px -28px rgba(8,26,79,0.42), 0 4px 14px -6px rgba(8,26,79,0.16);
  grid-template-columns:1fr 1fr;
  padding:10px;
  gap:6px;
  background:#fff;
  transform:translateX(-50%) translateY(10px) scale(0.985);
  transition:opacity 200ms var(--ease-uit), transform 300ms var(--ease-uit), visibility 0s linear 200ms;
}
.v4t-nav .mega::after{
  top:-7px;
  width:12px;
  height:12px;
  border:0;
  background:var(--color-accent);
  clip-path:polygon(50% 0, 100% 100%, 0 100%);
  transform:translateX(-50%);
}
.mega .mi{
  grid-template-columns:1fr;
  gap:0;
  padding:0 0 20px;
  border:0;
  border-radius:2px;
  overflow:hidden;
  transform:translateY(10px);
  transition:opacity 220ms var(--ease-uit), transform 260ms var(--ease-uit), background-color 200ms ease;
}
.mega .mi:first-child{border-right:0}
.mega .mi .fo{
  grid-row:auto;
  width:100%;
  height:158px;
  margin:0 0 16px;
  border:0;
  overflow:hidden;
  position:relative;
  background:var(--color-accent-900);
}
.mega .mi .fo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(8,26,79,0.42) 0%, rgba(8,26,79,0) 55%);
  opacity:0;
  transition:opacity 260ms ease;
}
.mega .mi:hover .fo::after{opacity:1}
.mega .mi .fo img{
  filter:saturate(0.85) contrast(1.03);
  transition:transform 620ms var(--ease-uit);
}
.mega .mi:hover .fo img{transform:scale(1.06)}
.mega .mi b{
  font-size:16px;
  letter-spacing:0.05em;
  padding:0 18px;
  display:block;
  transition:color 180ms ease;
}
.mega .mi i{
  font-size:13px;
  line-height:1.55;
  padding:6px 18px 0;
  color:var(--color-neutral-800);
  max-width:34ch;
}
.mega .mi:hover{background:#f4f9fd}
.mega .mi:hover b{color:var(--color-accent)}
.mega .mi-all{
  grid-column:1/-1;
  margin:4px 0 0;
  padding:16px 18px;
  background:var(--color-accent-900);
  color:#fff;
  border-radius:2px;
  font-size:11.5px;
  letter-spacing:0.16em;
  transform:translateY(10px);
}
.mega .mi-all:hover{background:var(--color-accent)}
.v4t-nav .drop:hover .mi-all,
.v4t-nav .drop:focus-within .mi-all{transform:translateY(0)}
@media (hover:hover) and (pointer:fine){
  .v4t-nav .drop:hover .mi:nth-child(3),
  .v4t-nav .drop:focus-within .mi:nth-child(3){transition-delay:110ms}
}

/* ---------- 5. ANIMATIE: duidelijk merkbaar ---------- */

.onthul{
  opacity:0;
  transform:translateY(28px) scale(0.985);
  transition:opacity 620ms var(--ease-uit), transform 780ms var(--ease-uit);
  will-change:transform, opacity;
}
.onthul.zichtbaar{opacity:1;transform:translateY(0) scale(1)}

/* koppen komen regel voor regel binnen */
.bs-pagehero h1{overflow:hidden}
.bs-pagehero h1,
.bs-pagehero .v4t-kicker,
.bs-pagehero p{
  animation:bs-omhoog 900ms cubic-bezier(0.23,1,0.32,1) both;
}
.bs-pagehero .v4t-kicker{animation-delay:60ms}
.bs-pagehero h1{animation-delay:140ms}
.bs-pagehero p{animation-delay:260ms}
@keyframes bs-omhoog{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:translateY(0)}}

/* kaarten en plannen reageren duidelijker */
@media (hover:hover) and (pointer:fine){
  .bs-cards2>div:hover,
  .v4t-plans>div:hover{
    transform:translateY(-6px);
    box-shadow:0 30px 60px -22px rgba(8,26,79,0.34);
  }
  .btn:hover{transform:translateY(-3px)}
  .v4t-cols>div{transition:background-color 300ms ease, transform 300ms var(--ease-uit)}
  .v4t-cols>div:hover{background:rgba(255,255,255,0.04);transform:translateY(-3px)}
}
/* de grote nummers in de stappen krijgen leven */
.v4t-cols>div>div:first-child{transition:color 300ms ease, transform 400ms var(--ease-uit)}
.v4t-cols>div:hover>div:first-child{color:var(--color-accent);transform:translateX(4px)}

/* vragenlijst opent vloeiender */
.v4t-faq details{transition:background-color 240ms ease}
.v4t-faq details[open]{background:rgba(21,128,200,0.035)}
.v4t-faq summary{padding-top:22px;padding-bottom:22px}

@media (prefers-reduced-motion:reduce){
  .onthul,
  .bs-pagehero h1,
  .bs-pagehero .v4t-kicker,
  .bs-pagehero p{opacity:1 !important;transform:none !important;animation:none !important}
}

/* ============================================================
   VERFIJNING v3 - hero-foto als op de subpaginas, meer leven
   ============================================================ */

/* ---------- 1. HERO-FOTO: doorlopen tot de schermrand, lichter ---------- */

.v4t-hero{grid-template-columns:minmax(0,1fr) 520px !important}
@media(max-width:1040px){
  .v4t-hero{grid-template-columns:1fr !important}
}

.bs-herofoto{
  min-height:420px;
  margin-top:-1px;
}
@media(min-width:1041px){
  .bs-herofoto{
    margin-right:calc((100vw - min(100vw, 1440px)) / -2 - 40px);
  }
}
.bs-herofoto img{
  object-position:center 42%;
  /* lichter dan eerst: de foto mag gezien worden */
  filter:saturate(0.78) contrast(1.06) brightness(0.94);
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.28) 14%, #000 52%),
    linear-gradient(to top, transparent 0%, rgba(0,0,0,0.35) 10%, #000 38%),
    linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.6) 5%, #000 20%);
  -webkit-mask-composite:source-in;
          mask-image:
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.28) 14%, #000 52%),
    linear-gradient(to top, transparent 0%, rgba(0,0,0,0.35) 10%, #000 38%),
    linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.6) 5%, #000 20%);
          mask-composite:intersect;
}
/* veel lichtere waas: alleen links aanzetten, rechts de foto vrijlaten */
.bs-herofoto::after{
  background:
    linear-gradient(100deg, var(--color-accent-900) 0%, rgba(8,26,79,0.58) 26%, rgba(8,26,79,0.08) 62%, rgba(8,26,79,0) 100%),
    linear-gradient(to top, rgba(8,26,79,0.9) 0%, rgba(8,26,79,0) 30%);
}

/* ---------- 2. DIENSTENBLOKKEN OP DE HOMEPAGE: beweging bij hover ---------- */

.v4t-service{
  position:relative;
  transition:background-color 340ms ease, transform 420ms var(--ease-uit);
}
.v4t-service::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:var(--color-accent);
  transform:scaleY(0);
  transform-origin:top;
  transition:transform 420ms var(--ease-uit);
}
.v4t-service>*{transition:transform 420ms var(--ease-uit), color 260ms ease}
@media (hover:hover) and (pointer:fine){
  .v4t-service:hover{background:rgba(21,128,200,0.045)}
  .v4t-service:hover::before{transform:scaleY(1)}
  .v4t-service:hover>*{transform:translateX(10px)}
  .v4t-service:hover h3{color:var(--color-accent)}
  .v4t-service:hover>div:first-child{transform:translateX(10px) scale(1.15)}
}

/* de stappenblokken (Kennismaking, Inrichten, Doorlopend) */
.v4t-cols>div{position:relative;overflow:hidden}
.v4t-cols>div::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--color-accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 520ms var(--ease-uit);
}
@media (hover:hover) and (pointer:fine){
  .v4t-cols>div:hover::after{transform:scaleX(1)}
  .v4t-cols>div:hover h3{color:var(--color-accent-300)}
}
.v4t-cols>div h3{transition:color 260ms ease}

/* de abonnementskaarten */
@media (hover:hover) and (pointer:fine){
  .v4t-plans>div{position:relative}
  .v4t-plans>div .v4t-price{transition:transform 420ms var(--ease-uit)}
  .v4t-plans>div:hover .v4t-price{transform:translateX(6px)}
}

/* ---------- 3. LETTERS DIE MEEKOMEN BIJ HET SCROLLEN ---------- */

.wrd{
  display:inline-block;
  overflow:hidden;
  vertical-align:top;
  line-height:inherit;
  padding-bottom:0.08em;
  margin-bottom:-0.08em;
}
.wrd>i{
  display:inline-block;
  font-style:inherit;
  transform:translateY(108%);
  transition:transform 760ms cubic-bezier(0.23,1,0.32,1);
}
.zichtbaar .wrd>i,
.wrd.zichtbaar>i{transform:translateY(0)}

/* een gesplitste kop hoeft zelf niet meer te schuiven */
.onthul.gesplitst{opacity:1;transform:none;transition:none}

@media (prefers-reduced-motion:reduce){
  .wrd>i{transform:none !important;transition:none}
}

/* ---------- LOGO variant B ---------- */
.bs-logo{position:relative;display:inline-block;padding-top:13px}
.bs-logo::before{content:"";position:absolute;top:0;left:0;width:34px;height:4px;background:#081a4f;transition:width 340ms var(--ease-uit)}
.bs-logo-om::before{background:#7ec2ec}
@media (hover:hover) and (pointer:fine){
  a:hover .bs-logo::before{width:62px}
}

/* ---------- Kennismaken-knop: komt aanvliegen en valt op ---------- */
@keyframes bs-invlieg{
  0%{opacity:0;transform:translateX(30px) scale(0.94)}
  60%{opacity:1;transform:translateX(-3px) scale(1.01)}
  100%{opacity:1;transform:translateX(0) scale(1)}
}
@keyframes bs-knopkleur{
  0%,100%{background-color:var(--color-accent);box-shadow:0 0 0 0 rgba(21,128,200,0)}
  45%{background-color:#0b3f8f;box-shadow:0 12px 30px -12px rgba(21,128,200,0.85)}
}
@keyframes bs-glans{
  0%{transform:translateX(-140%) skewX(-18deg)}
  100%{transform:translateX(240%) skewX(-18deg)}
}
.v4t-head .btn-primary{
  position:relative;
  overflow:hidden;
  animation:bs-invlieg 780ms 520ms cubic-bezier(0.23,1,0.32,1) both, bs-knopkleur 2400ms 1400ms ease-in-out 3;
}
.v4t-head .btn-primary::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:38%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.34) 50%, rgba(255,255,255,0) 100%);
  transform:translateX(-140%) skewX(-18deg);
  animation:bs-glans 1500ms 1700ms ease-out 2;
  pointer-events:none;
}
.v4t-head .btn-primary>.corner{z-index:2}
@media (prefers-reduced-motion:reduce){
  .v4t-head .btn-primary{animation:none}
  .v4t-head .btn-primary::after{display:none}
}

/* ============================================================
   VERFIJNING v4 - mobiel menu, cijfers die meetellen, afwerking
   ============================================================ */

/* ---------- Vloeiend naar ankers ---------- */
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- Menubalk reageert op scrollen ---------- */
.v4t-head{transition:box-shadow 320ms ease, background-color 320ms ease}
.v4t-head.gescrold{box-shadow:0 10px 30px -18px rgba(8,26,79,0.42)}

/* ---------- Mobiel menu ---------- */
.bs-menuknop{
  display:none;
  width:44px;
  height:44px;
  border:1px solid var(--color-neutral-400);
  background:transparent;
  padding:0;
  cursor:pointer;
  position:relative;
  flex:none;
}
.bs-menuknop span{
  position:absolute;
  left:12px;
  width:20px;
  height:2px;
  background:var(--color-accent-900);
  transition:transform 300ms var(--ease-uit), opacity 200ms ease;
}
.bs-menuknop span:nth-child(1){top:15px}
.bs-menuknop span:nth-child(2){top:21px}
.bs-menuknop span:nth-child(3){top:27px}
.bs-menuknop[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.bs-menuknop[aria-expanded="true"] span:nth-child(2){opacity:0}
.bs-menuknop[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.bs-paneel{
  position:fixed;
  inset:0;
  z-index:300;
  background:var(--color-accent-900);
  transform:translateX(100%);
  transition:transform 420ms var(--ease-uit);
  display:flex;
  flex-direction:column;
  padding:26px 24px 40px;
  overflow-y:auto;
  visibility:hidden;
}
.bs-paneel.open{transform:translateX(0);visibility:visible}
.bs-paneel-kop{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}
.bs-paneel-sluit{
  width:44px;height:44px;border:1px solid var(--color-accent-600);background:transparent;
  color:#fff;font-size:22px;line-height:1;cursor:pointer;flex:none;
}
.bs-paneel a{
  display:block;
  color:#fff;
  font-family:var(--font-heading);
  font-size:26px;
  letter-spacing:0.02em;
  text-transform:uppercase;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,0.14);
  opacity:0;
  transform:translateY(14px);
  transition:opacity 320ms var(--ease-uit), transform 320ms var(--ease-uit), color 200ms ease;
}
.bs-paneel.open a{opacity:1;transform:none}
.bs-paneel a.sub{font-size:17px;padding-left:20px;color:var(--color-accent-200);text-transform:none;letter-spacing:0.01em}
.bs-paneel a:active{color:var(--color-accent-300)}
.bs-paneel .bs-paneel-cta{
  margin-top:32px;
  border:0;
  background:var(--color-accent);
  text-align:center;
  font-size:16px;
  padding:18px 0;
  letter-spacing:0.08em;
}
body.bs-vast{overflow:hidden}

@media (max-width:720px){
  .bs-menuknop{display:block}
  .v4t-head-row>div:last-child .btn-primary{display:none}
  .v4t-head-row{gap:16px}
}
@media (min-width:721px){
  .bs-paneel{display:none}
}

/* ---------- Cijfers die meetellen ---------- */
.bs-telt{font-variant-numeric:tabular-nums}

/* mega-menu: grote fotos, netjes bijgesneden */
.mega .mi .fo img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}

/* ---------- Ritme in de lichte vlakken (zonder blauw) ---------- */
/* de calculator wordt helder wit: die springt eruit als gereedschap */
#kosten{background:#ffffff !important;border-top:1px solid var(--color-divider)}
/* de vragen krijgen een warmere, iets donkerdere zandtoon met fijne ruitjes */
#vragen,
section:has(> .v4t-wrap .v4t-faq){
  background:#e8e7e3 !important;
  position:relative;
}
#vragen::before,
section:has(> .v4t-wrap .v4t-faq)::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(8,26,79,0.05) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(90deg, rgba(8,26,79,0.05) 0 1px, transparent 1px 64px);
  pointer-events:none;
}
#vragen>*,
section:has(> .v4t-wrap .v4t-faq)>*{position:relative;z-index:1}
/* de scheidslijnen in de vragenlijst mogen daar wat steviger op */
#vragen .v4t-faq details,
section:has(> .v4t-wrap .v4t-faq) .v4t-faq details{border-bottom-color:rgba(8,26,79,0.18)}
#vragen .v4t-faq,
section:has(> .v4t-wrap .v4t-faq) .v4t-faq{border-top-color:rgba(8,26,79,0.18)}
#vragen .v4t-faq details[open],
section:has(> .v4t-wrap .v4t-faq) .v4t-faq details[open]{background:rgba(255,255,255,0.5)}

/* ---------- Dienstenblokken: tekst leesbaar houden bij hover ---------- */
@media (hover:hover) and (pointer:fine){
  .v4t-service:hover{background:rgba(21,128,200,0.055)}
  .v4t-service:hover,
  .v4t-service:hover p,
  .v4t-service:hover span,
  .v4t-service:hover div{color:var(--color-text)}
  .v4t-service:hover h3{color:var(--color-accent)}
  .v4t-service:hover>div:first-child{color:var(--color-accent)}
  .v4t-service:hover p{opacity:0.9}
  .v4t-service:hover span[style*="--font-heading"]{color:var(--color-accent)}
  .v4t-service:hover div[style*="grid-template-columns:14px"]{opacity:1}
}

/* ---------- Uitgebreide navigatie ---------- */
.v4t-nav{gap:30px}
.mega.mega-4{width:820px;grid-template-columns:1fr 1fr}
.mega.mega-4 .mi .fo{height:124px}
.mega.mega-4 .mi{padding-bottom:16px}
.mega .mi-tweede{margin-top:0;background:transparent;color:var(--color-accent);border-top:1px solid var(--color-neutral-100)}
.mega .mi-tweede:hover{background:#f2f8fd;color:var(--color-accent)}
.mega.mega-lijst{width:380px;grid-template-columns:1fr;padding:8px}
.mega.mega-lijst .ml{display:block;padding:15px 16px;color:var(--color-text);border-radius:2px;opacity:0;transform:translateY(8px);transition:opacity 200ms var(--ease-uit),transform 240ms var(--ease-uit),background-color 180ms ease}
.mega.mega-lijst .ml b{display:block;font-family:var(--font-heading);font-size:14.5px;letter-spacing:0.04em;text-transform:uppercase;transition:color 180ms ease}
.mega.mega-lijst .ml i{display:block;font-style:normal;font-size:12.5px;line-height:1.5;color:var(--color-neutral-800);margin-top:3px}
@media (hover:hover) and (pointer:fine){
  .v4t-nav .drop:hover .ml,.v4t-nav .drop:focus-within .ml{opacity:1;transform:none}
  .v4t-nav .drop:hover .ml:nth-child(2){transition-delay:40ms}
  .v4t-nav .drop:hover .ml:nth-child(3){transition-delay:80ms}
  .v4t-nav .drop:hover .ml:nth-child(4){transition-delay:120ms}
  .mega.mega-lijst .ml:hover{background:#f2f8fd}
  .mega.mega-lijst .ml:hover b{color:var(--color-accent)}
  .v4t-nav .drop:hover .mi:nth-child(4),.v4t-nav .drop:focus-within .mi:nth-child(4){transition-delay:135ms}
}
/* tegels met de overige diensten op de homepage */
.bs-tegels{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--color-neutral-400);border-left:1px solid var(--color-neutral-400)}
@media(max-width:900px){.bs-tegels{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.bs-tegels{grid-template-columns:1fr}}
.bs-tegel{position:relative;display:block;padding:30px 28px 34px;border-right:1px solid var(--color-neutral-400);border-bottom:1px solid var(--color-neutral-400);color:var(--color-text);transition:background-color 300ms ease}
.bs-tegel b{display:block;font-family:var(--font-heading);font-size:21px;letter-spacing:0.03em;text-transform:uppercase;margin-bottom:9px;transition:color 220ms ease}
.bs-tegel i{display:block;font-style:normal;font-size:14.5px;line-height:1.55;color:var(--color-neutral-800);max-width:34ch}
.bs-tegel span.pijl{display:inline-block;margin-top:16px;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-accent);transition:transform 300ms var(--ease-uit)}
@media (hover:hover) and (pointer:fine){
  .bs-tegel:hover{background:rgba(21,128,200,0.05)}
  .bs-tegel:hover b{color:var(--color-accent)}
  .bs-tegel:hover span.pijl{transform:translateX(6px)}
}

/* ---------- Administratie-menu: een sfeerfoto met een lijst ernaast ---------- */
.mega.mega-admin{width:840px;grid-template-columns:296px minmax(0,1fr);padding:10px;gap:12px;align-items:stretch}
.mega.mega-admin .mf{
  position:relative;display:block;overflow:hidden;border-radius:2px;background:var(--color-accent-900);
  min-height:296px;color:#fff;opacity:0;transform:translateY(10px);
  transition:opacity 240ms var(--ease-uit),transform 280ms var(--ease-uit);
}
.mega.mega-admin .mf .fo{position:absolute;inset:0;width:auto;height:auto;margin:0;border:0}
.mega.mega-admin .mf .fo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(0.8) contrast(1.04);transition:transform 900ms var(--ease-uit)}
.mega.mega-admin .mf::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(8,26,79,0.94) 12%, rgba(8,26,79,0.55) 46%, rgba(8,26,79,0.08) 100%)}
.mega.mega-admin .mf-tekst{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px 20px 20px;display:block}
.mega.mega-admin .mf-tekst b{display:block;font-family:var(--font-heading);font-size:22px;letter-spacing:0.04em;text-transform:uppercase;color:#fff}
.mega.mega-admin .mf-tekst i{display:block;font-style:normal;font-size:12.5px;line-height:1.55;color:var(--color-accent-100);margin-top:7px}
.mega.mega-admin .mf-tekst .pijl{display:block;margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--color-accent-300);transition:transform 260ms var(--ease-uit)}
.mega.mega-admin .mk{display:grid;align-content:start;gap:2px}
.mega .ml{display:block;padding:15px 16px;color:var(--color-text);border-radius:2px;opacity:0;transform:translateY(8px);transition:opacity 200ms var(--ease-uit),transform 240ms var(--ease-uit),background-color 180ms ease}
.mega .ml b{display:block;font-family:var(--font-heading);font-size:14.5px;letter-spacing:0.04em;text-transform:uppercase;transition:color 180ms ease}
.mega .ml i{display:block;font-style:normal;font-size:12.5px;line-height:1.5;color:var(--color-neutral-800);margin-top:3px}
.mega .ml-balk{margin-top:6px;padding:14px 16px;background:#f4f9fd;color:var(--color-accent);font-size:11.5px;letter-spacing:0.15em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between}
.mega .ml-balk span{transition:transform 220ms var(--ease-uit)}
@media (hover:hover) and (pointer:fine){
  .v4t-nav .drop:hover .mf,.v4t-nav .drop:focus-within .mf{opacity:1;transform:none}
  .v4t-nav .drop:hover .ml,.v4t-nav .drop:focus-within .ml{opacity:1;transform:none}
  .v4t-nav .drop:hover .ml:nth-child(2){transition-delay:45ms}
  .v4t-nav .drop:hover .ml:nth-child(3){transition-delay:90ms}
  .v4t-nav .drop:hover .ml:nth-child(4){transition-delay:135ms}
  .v4t-nav .drop:hover .ml:nth-child(5){transition-delay:180ms}
  .mega .ml:hover{background:#f2f8fd}
  .mega .ml:hover b{color:var(--color-accent)}
  .mega .ml-balk:hover{background:var(--color-accent);color:#fff}
  .mega .ml-balk:hover span{transform:translateX(5px)}
  .mega.mega-admin .mf:hover .fo img{transform:scale(1.06)}
  .mega.mega-admin .mf:hover .pijl{transform:translateX(5px)}
}

/* ---------- Dienstenpaginas: kruimelpad, usp, uitlijning, slot ---------- */
.bs-kruimel{display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--color-accent-300);margin-bottom:22px;flex-wrap:wrap}
.bs-kruimel a{color:var(--color-accent-200);transition:color 180ms ease}
.bs-kruimel a:hover{color:#fff}
.bs-kruimel em{font-style:normal;color:#fff}
.bs-kruimel span{opacity:0.45}
.bs-usp{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px}
.bs-usp li{position:relative;padding-left:20px;font-size:14px;letter-spacing:0.02em;color:var(--color-accent-100)}
.bs-usp li::before{content:"+";position:absolute;left:0;top:-1px;font-family:var(--font-heading);color:var(--color-accent-300)}
.bs-heroknoppen{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.bs-knop2{color:#fff;border:1px solid var(--color-accent-500);background:transparent}
.bs-knop2:hover{border-color:var(--color-accent-300)}
.bs-checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 56px;max-width:940px}
@media(max-width:760px){.bs-checkgrid{grid-template-columns:1fr}}
.bs-prose h2:first-child{margin-top:0}
.bs-prose{max-width:68ch}
.bs-slot-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);gap:64px;align-items:center}
@media(max-width:1040px){.bs-slot-in{grid-template-columns:1fr;gap:44px}}
.bs-slot-punten{display:grid;gap:2px;border:1px solid var(--color-accent-600)}
.bs-slot-punten>div{padding:22px 24px;border-bottom:1px solid var(--color-accent-600)}
.bs-slot-punten>div:last-child{border-bottom:0}
.bs-slot-punten b{display:block;font-family:var(--font-heading);font-size:17px;letter-spacing:0.04em;text-transform:uppercase;color:#fff;margin-bottom:5px}
.bs-slot-punten span{display:block;font-size:14.5px;line-height:1.55;color:var(--color-accent-100)}

/* ---------- Eigen blokken per pagina ---------- */
.bs-tabelwrap{overflow-x:auto;border:1px solid var(--color-neutral-400)}
.bs-tabel{width:100%;border-collapse:collapse;font-size:15px;background:#fff;min-width:620px}
.bs-tabel th,.bs-tabel td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--color-neutral-100)}
.bs-tabel thead th{background:var(--color-accent-900);color:#fff;font-family:var(--font-heading);font-size:13px;letter-spacing:0.12em;text-transform:uppercase;font-weight:700;border-bottom:0}
.bs-tabel td.eerste,.bs-tabel th.eerste{font-weight:500;color:var(--color-text);min-width:210px}
.bs-tabel tbody tr:last-child td{border-bottom:0}
.bs-tabel tbody tr{transition:background-color 200ms ease}
.bs-tabel tbody tr:hover{background:#f4f9fd}
.bs-tabel .vink{display:inline-block;font-family:var(--font-heading);font-weight:700;color:var(--color-accent);font-size:17px}
.bs-tabel .streep{color:var(--color-neutral-400)}
.bs-tabelvoet{font-size:13.5px;line-height:1.6;color:var(--color-neutral-700);margin:16px 0 0;max-width:70ch}
.bs-tijdlijn{display:grid;gap:0;border-top:1px solid var(--color-neutral-400)}
.bs-moment{display:grid;grid-template-columns:180px minmax(0,300px) minmax(0,1fr);gap:24px;align-items:start;padding:26px 0;border-bottom:1px solid var(--color-neutral-400);position:relative;transition:background-color 260ms ease,padding-left 320ms var(--ease-uit)}
@media(max-width:900px){.bs-moment{grid-template-columns:1fr;gap:8px}}
.bs-moment .bs-periode{font-size:11.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-accent);padding-top:5px}
.bs-moment b{font-family:var(--font-heading);font-size:22px;letter-spacing:0.03em;text-transform:uppercase;transition:color 220ms ease}
.bs-moment i{font-style:normal;font-size:15.5px;line-height:1.6;color:var(--color-neutral-800)}
@media (hover:hover) and (pointer:fine){.bs-moment:hover{background:rgba(21,128,200,0.045);padding-left:16px}.bs-moment:hover b{color:var(--color-accent)}}
.bs-kaarten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--color-neutral-400);border-left:1px solid var(--color-neutral-400)}
@media(max-width:760px){.bs-kaarten{grid-template-columns:1fr}}
.bs-kaart{padding:28px 30px 30px;border-right:1px solid var(--color-neutral-400);border-bottom:1px solid var(--color-neutral-400);transition:background-color 260ms ease}
.bs-kaart b{display:block;font-family:var(--font-heading);font-size:19px;letter-spacing:0.03em;text-transform:uppercase;margin-bottom:10px;transition:color 220ms ease}
.bs-kaart span{display:block;font-size:15.5px;line-height:1.6;color:var(--color-neutral-800);max-width:44ch}
@media (hover:hover) and (pointer:fine){.bs-kaart:hover{background:rgba(21,128,200,0.045)}.bs-kaart:hover b{color:var(--color-accent)}}
.bs-casus{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,0.6fr);gap:56px;align-items:start}
@media(max-width:1040px){.bs-casus{grid-template-columns:1fr;gap:36px}}
.bs-casus-tekst p{font-size:16.5px;line-height:1.68;color:var(--color-neutral-800);margin:0 0 16px;max-width:66ch}
.bs-casus-punten{display:grid;gap:2px;border:1px solid var(--color-neutral-400)}
.bs-casus-punten>div{padding:20px 22px;border-bottom:1px solid var(--color-neutral-400)}
.bs-casus-punten>div:last-child{border-bottom:0}
.bs-casus-punten b{display:block;font-family:var(--font-heading);font-size:27px;line-height:1;color:var(--color-accent);margin-bottom:5px}
.bs-casus-punten span{display:block;font-size:13.5px;line-height:1.5;color:var(--color-neutral-800)}
.bs-form{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,0.65fr);gap:48px;align-items:start}
@media(max-width:1040px){.bs-form{grid-template-columns:1fr;gap:36px}}
.bs-form-velden{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:700px){.bs-form-velden{grid-template-columns:1fr}}
.bs-form-velden label{display:block;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--color-neutral-700)}
.bs-form-velden label.breed{grid-column:1/-1}
.bs-form-velden input,.bs-form-velden select,.bs-form-velden textarea{display:block;width:100%;margin-top:8px;padding:13px 15px;font-family:inherit;font-size:15.5px;color:var(--color-text);background:#fff;border:1px solid var(--color-neutral-400);border-radius:0;transition:border-color 200ms ease,box-shadow 200ms ease;letter-spacing:normal;text-transform:none}
.bs-form-velden textarea{resize:vertical;line-height:1.6}
.bs-form-velden input:focus,.bs-form-velden select:focus,.bs-form-velden textarea:focus{outline:0;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(21,128,200,0.16)}
.bs-form-zij{display:grid;gap:16px}
.bs-form-blok{border:1px solid var(--color-neutral-400);padding:22px 24px;background:#fff}
.bs-form-blok b{display:block;font-family:var(--font-heading);font-size:16px;letter-spacing:0.05em;text-transform:uppercase;margin-bottom:10px}
.bs-form-blok span{display:block;font-size:14.5px;line-height:1.6;color:var(--color-neutral-800);margin-bottom:8px}
.bs-form-blok a{display:inline-block;margin-top:4px;font-family:var(--font-heading);font-size:21px;color:var(--color-accent)}
.bs-form-uitleg{font-size:13px;line-height:1.55;color:var(--color-neutral-700);margin:2px 0 0}

/* ---------- Loonstroken invullen ---------- */
.v4t-loonveld{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.v4t-stap{width:46px;height:46px;flex:none;border:1px solid var(--color-neutral-400);background:#fff;font-size:20px;line-height:1;color:var(--color-accent-900);cursor:pointer;transition:border-color 160ms ease,background-color 160ms ease,transform 140ms var(--ease-uit)}
.v4t-stap:hover{border-color:var(--color-accent);background:#f2f8fd}
.v4t-stap:active{transform:scale(0.95)}
#v4t-loonaantal{width:96px;height:46px;text-align:center;font-family:var(--font-heading);font-size:20px;color:var(--color-text);background:#fff;border:1px solid var(--color-neutral-400);padding:0 8px}
#v4t-loonaantal:focus{outline:0;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(21,128,200,0.16)}
.v4t-loonbedrag{font-size:14px;letter-spacing:0.02em;color:var(--color-neutral-700);text-transform:none}

/* ---------- Uitgebreide voettekst ---------- */
.bs-voet{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:44px 32px;align-items:start;font-size:13px}
@media(max-width:1040px){.bs-voet{grid-template-columns:1fr 1fr;gap:36px 28px}}
@media(max-width:600px){.bs-voet{grid-template-columns:1fr}}
.bs-voet-merk{display:grid;gap:14px;align-content:start}
.bs-voet-slogan{font-size:11.5px;letter-spacing:0.13em;text-transform:uppercase;color:var(--color-accent-300);line-height:1.4}
.bs-voet-adres{font-size:13.5px;line-height:1.7;color:var(--color-accent-200)}
.bs-voet-adres a{color:var(--color-accent-300);transition:color 180ms ease}
.bs-voet-adres a:hover{color:#fff}
.bs-voet-kolom{display:grid;gap:9px;align-content:start}
.bs-voet-kolom b{font-family:var(--font-heading);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:#fff;margin-bottom:4px}
.bs-voet-kolom a{font-size:13.5px;line-height:1.4;color:var(--color-accent-200);transition:color 180ms ease,transform 220ms var(--ease-uit)}
@media (hover:hover) and (pointer:fine){.bs-voet-kolom a:hover{color:#fff;transform:translateX(3px)}}
.bs-voet-onder{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;border-top:1px solid rgba(255,255,255,0.12)}
.bs-voet-klein{display:flex;gap:22px}
.bs-voet-klein a{color:var(--color-accent-200);transition:color 180ms ease}
.bs-voet-klein a:hover{color:#fff}
.v4t-nav{gap:26px}
@media(max-width:1180px){.v4t-nav{gap:18px}.v4t-nav>a,.v4t-nav .drop>a{font-size:11.5px;letter-spacing:0.1em}}

/* ---------- Homepage: overzicht en doelgroepen ---------- */
.bs-hub-kop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);gap:64px;align-items:end;margin-bottom:52px}
@media(max-width:900px){.bs-hub-kop{grid-template-columns:1fr;gap:22px}}
.bs-hub-kop p{font-size:17.5px;line-height:1.6;color:var(--color-neutral-800);margin:0 0 6px;max-width:48ch}
.bs-hub{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--color-neutral-400)}
@media(max-width:900px){.bs-hub{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.bs-hub{grid-template-columns:1fr}}
.bs-hub-kolom{position:relative;display:grid;gap:11px;align-content:start;padding:30px 30px 36px 0;border-right:1px solid var(--color-neutral-400)}
.bs-hub-kolom:last-child{border-right:0}
@media(max-width:900px){.bs-hub-kolom{border-bottom:1px solid var(--color-neutral-400);padding-right:24px}.bs-hub-kolom:nth-child(2n){border-right:0}}
.bs-hub-nr{font-family:var(--font-heading);font-size:12px;letter-spacing:0.2em;color:var(--color-accent);margin-bottom:2px}
.bs-hub-kolom b{font-family:var(--font-heading);font-size:24px;letter-spacing:0.03em;text-transform:uppercase;margin-bottom:10px;line-height:1}
.bs-hub-kolom a{position:relative;font-size:15.5px;line-height:1.45;color:var(--color-neutral-800);padding-left:0;transition:color 200ms ease,padding-left 260ms var(--ease-uit)}
.bs-hub-kolom a::before{content:"";position:absolute;left:0;top:0.62em;width:0;height:1px;background:var(--color-accent);transition:width 260ms var(--ease-uit)}
@media (hover:hover) and (pointer:fine){.bs-hub-kolom a:hover{color:var(--color-accent);padding-left:20px}.bs-hub-kolom a:hover::before{width:13px}}
.bs-doelgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--color-accent-600)}
@media(max-width:1040px){.bs-doelgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.bs-doelgrid{grid-template-columns:1fr}}
.bs-doel{position:relative;display:flex;flex-direction:column;padding:32px 28px 30px;border-left:1px solid var(--color-accent-600);color:#fff;overflow:hidden;transition:background-color 320ms ease}
.bs-doel:first-child{border-left:0}
@media(max-width:1040px){.bs-doel{border-top:1px solid var(--color-accent-600)}.bs-doel:nth-child(-n+2){border-top:0}.bs-doel:nth-child(2n+1){border-left:0}}
@media(max-width:600px){.bs-doel{border-left:0;border-top:1px solid var(--color-accent-600)}.bs-doel:first-child{border-top:0}}
.bs-doel-nr{font-family:var(--font-heading);font-size:12px;letter-spacing:0.2em;color:var(--color-accent-300);margin-bottom:20px}
.bs-doel b{font-family:var(--font-heading);font-size:23px;line-height:1.05;letter-spacing:0.02em;text-transform:uppercase;margin-bottom:11px}
.bs-doel i{font-style:normal;font-size:15px;line-height:1.55;color:var(--color-accent-100);margin-bottom:22px}
.bs-doel .pijl{margin-top:auto;font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--color-accent-300);transition:transform 280ms var(--ease-uit),color 200ms ease}
@media (hover:hover) and (pointer:fine){.bs-doel:hover{background:rgba(255,255,255,0.05)}.bs-doel:hover .pijl{transform:translateX(6px);color:#fff}}

/* ============================================================
   MOBIEL: rasters die in de html vastliggen alsnog laten stapelen
   ============================================================ */
@media (max-width:1040px){
  .v4t-hero,.v4t-two,.v4t-faq-grid,.v4t-calc,.bs-pagehero .v4t-wrap{grid-template-columns:1fr !important}
  .v4t-calc>div:first-child{border-right:0 !important;border-bottom:1px solid var(--color-neutral-400)}
  .v4t-hero>div:last-child{border-left:0 !important}
  .v4t-cols,.v4t-plans{grid-template-columns:1fr 1fr !important}
}
@media (max-width:820px){
  .v4t-cols,.v4t-plans,.bs-cards2{grid-template-columns:1fr !important}
  .v4t-cols>div,.v4t-plans>div{border-left:0 !important;border-top:1px solid var(--color-neutral-400)}
  .v4t-dark .v4t-cols>div{border-top:1px solid var(--color-accent-600)}
  .v4t-cols>div:first-child,.v4t-plans>div:first-child{border-top:0}
}
@media (max-width:720px){
  .v4t-wrap,.v4t-head-row{padding-left:20px !important;padding-right:20px !important}
  section .v4t-wrap{padding-top:52px !important;padding-bottom:52px !important}
  .v4t-hero{min-height:0 !important}
  .v4t-hero>div:first-child{padding:44px 0 40px !important}
  .bs-herofoto{min-height:230px;margin-right:-20px !important}
  .bs-pagehero{padding:44px 0 40px}
  .v4t-calc>div{padding:28px !important}
  .v4t-calc [style*="grid-template-columns:repeat(4,1fr)"],.v4t-calc [style*="grid-template-columns:repeat(2,1fr)"]{grid-template-columns:1fr 1fr !important}
  .v4t-plans>div>div,.v4t-plans>div>div[style*="padding"]{padding-left:24px !important;padding-right:24px !important}
  .bs-checkgrid,.bs-kaarten,.bs-tegels,.bs-doelgrid,.bs-hub{grid-template-columns:1fr !important}
  .bs-hub-kolom{border-right:0 !important;padding-right:0 !important}
  .v4t-faq summary{padding-right:44px}
  .v4t-faq p{padding-right:20px !important}
  .bs-usp{gap:8px 18px}
  .bs-heroknoppen .btn{width:100%;justify-content:center}
  footer .v4t-wrap{padding-top:44px !important}
  .bs-voet-onder{flex-direction:column;align-items:flex-start;gap:12px}
  h1{font-size:clamp(32px,9vw,46px) !important}
  .v4t-h2{font-size:clamp(26px,7.5vw,38px) !important}
}
@media (max-width:480px){
  .bs-tabelwrap{margin-left:-20px;margin-right:-20px;border-left:0;border-right:0}
  .bs-form-velden{gap:14px}
  .v4t-loonveld{gap:8px}
}
/* tikvlakken nooit kleiner dan 44px */
.v4t-opt,.btn,.bs-menuknop,.v4t-stap{min-height:44px}

/* ---------- Clusterbalk onder de kop ---------- */
.bs-cluster{background:var(--color-accent-900);border-bottom:1px solid rgba(255,255,255,0.12)}
.bs-cluster .v4t-wrap{display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap;padding-top:15px;padding-bottom:15px;font-size:12.5px}
.bs-cluster-label{font-size:10.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--color-accent-400)}
.bs-cluster a{color:var(--color-accent-100);letter-spacing:0.02em;transition:color 180ms ease}
.bs-cluster a.hoofd{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:0.1em;color:#fff}
.bs-cluster a:hover{color:var(--color-accent-300)}
.bs-cluster span.punt{color:var(--color-accent-600)}
@media(max-width:720px){.bs-cluster .v4t-wrap{gap:8px 16px;font-size:12px}}

/* ============================================================
   MOBIELE MENUBALK v2 - eerder omschakelen, meer ruimte
   ============================================================ */
@media (max-width:980px){
  .v4t-nav{display:none !important}
  .bs-menuknop{display:block !important}
  .v4t-head-row{gap:14px;justify-content:space-between}
  .v4t-head-row>div:last-child{gap:10px}
  .v4t-head-row>div:last-child .btn-primary{display:none !important}
  .bs-paneel{display:flex !important}
}
@media (min-width:981px){
  .bs-paneel{display:none !important}
  .bs-menuknop{display:none !important}
}
@media (max-width:600px){
  .v4t-head-row{padding-top:12px;padding-bottom:12px}
  .bs-logo{padding-top:10px}
  .bs-logo::before{width:26px;height:3px}
  .v4t-head-row .bs-logo{font-size:23px !important}
}
/* het uitschuifpaneel zelf */
.bs-paneel{padding:22px 22px 40px}
.bs-paneel a{font-size:23px;padding:15px 0}
.bs-paneel a.sub{font-size:15.5px;padding:11px 0 11px 18px;border-bottom:1px solid rgba(255,255,255,0.07);position:relative}
.bs-paneel a.sub::before{content:"";position:absolute;left:0;top:calc(50% - 1px);width:8px;height:1px;background:var(--color-accent-500)}
.bs-paneel a.bs-paneel-cta{font-size:16px;padding:18px 0;text-align:center}
.bs-paneel-kop{margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,0.14)}

/* ---------- Links in de lopende tekst ---------- */
.bs-inline,.bs-extern{color:var(--color-accent);text-decoration:none;background-image:linear-gradient(var(--color-accent-300),var(--color-accent-300));background-repeat:no-repeat;background-position:0 100%;background-size:100% 1px;padding-bottom:1px;transition:background-size 260ms var(--ease-uit),color 200ms ease}
@media (hover:hover) and (pointer:fine){
  .bs-inline:hover,.bs-extern:hover{color:var(--color-accent-900);background-size:100% 2px}
}
.v4t-dark .bs-inline,.v4t-dark .bs-extern{color:var(--color-accent-300)}
.v4t-dark .bs-inline:hover,.v4t-dark .bs-extern:hover{color:#fff}
.bs-extern::after{content:"\2197";display:inline-block;margin-left:2px;font-size:0.82em;line-height:1;vertical-align:baseline;opacity:0.7}

/* ---------- Doelgroepenblok nu licht, breekt het blauw ---------- */
.bs-doelen{background:#ffffff !important;border-bottom:1px solid var(--color-divider)}
.bs-doelen .v4t-grid-bg{display:none}
.bs-doelen .v4t-kicker{color:var(--color-accent) !important}
.bs-doelen .v4t-h2{color:var(--color-text) !important}
.bs-doelgrid{border:1px solid var(--color-neutral-400)}
.bs-doel{border-left:1px solid var(--color-neutral-400);color:var(--color-text)}
@media(max-width:1040px){.bs-doel{border-top:1px solid var(--color-neutral-400)}}
@media(max-width:600px){.bs-doel{border-top:1px solid var(--color-neutral-400)}}
.bs-doel-nr{color:var(--color-accent) !important}
.bs-doel b{color:var(--color-accent-900)}
.bs-doel i{color:var(--color-neutral-800) !important}
.bs-doel .pijl{color:var(--color-accent) !important}
@media (hover:hover) and (pointer:fine){
  .bs-doelen .bs-doel:hover{background:rgba(21,128,200,0.05) !important}
  .bs-doelen .bs-doel:hover b{color:var(--color-accent)}
  .bs-doelen .bs-doel:hover .pijl{color:var(--color-accent-900) !important;transform:translateX(6px)}
}
/* wat meer lucht tussen het overzicht en de doelgroepen */
.bs-doelen .v4t-wrap{padding-top:78px !important;padding-bottom:82px !important}

/* ---------- Overzichtsblok krijgt dezelfde zandtint als de vragen ---------- */
#alles{background:#e8e7e3 !important;position:relative;border-top:1px solid var(--color-divider)}
#alles::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(8,26,79,0.05) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(90deg, rgba(8,26,79,0.05) 0 1px, transparent 1px 64px);
  pointer-events:none;
}
#alles>*{position:relative;z-index:1}
#alles .bs-hub{border-top-color:rgba(8,26,79,0.18)}
#alles .bs-hub-kolom{border-right-color:rgba(8,26,79,0.16)}
@media(max-width:900px){#alles .bs-hub-kolom{border-bottom-color:rgba(8,26,79,0.16)}}
#alles .bs-hub-kolom a{color:var(--color-neutral-800)}
@media (hover:hover) and (pointer:fine){
  #alles .bs-hub-kolom a:hover{color:var(--color-accent)}
}

/* ---------- Juridische pagina: artikelen en leden ---------- */
.bs-juridisch{max-width:74ch}
.bs-juridisch h2{font-size:clamp(20px,2.2vw,27px);margin:44px 0 16px;letter-spacing:0.01em}
.bs-juridisch h2:first-child{margin-top:0}
.bs-juridisch p{font-size:15.5px;line-height:1.7;position:relative;padding-left:32px;margin-bottom:14px}
.bs-lid{position:absolute;left:0;top:0;font-family:var(--font-heading);font-size:13px;color:var(--color-accent);letter-spacing:0.04em}
@media(max-width:600px){.bs-juridisch p{padding-left:26px;font-size:15px}}

/* ---------- Verzendknop in het formulier ---------- */
.bs-form-actie{grid-column:1/-1;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:6px;padding-top:24px;border-top:1px solid var(--color-neutral-400)}
.bs-form-actie .btn{height:54px;padding:0 34px;font-size:15.5px;flex:none}
.bs-form-actie .bs-form-uitleg{margin:0;max-width:46ch;font-size:13px;line-height:1.55;color:var(--color-neutral-700)}
@media(max-width:700px){
  .bs-form-actie{flex-direction:column;align-items:stretch;gap:14px}
  .bs-form-actie .btn{width:100%;justify-content:center}
}
.bs-formfout{grid-column:1/-1}
