/* OpenSein ontwerpstelsel. Alleen geladen buiten het beheerpaneel. */
@font-face{font-family:'OpenSein Bricolage';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/bricolage-variable.ttf') format('truetype')}
html[data-ervaring]{
 --tekst:'OpenSein DM Sans',Arial,sans-serif;--kop:'OpenSein Bricolage','OpenSein DM Sans',Arial,sans-serif;
 --tik:80ms;--stap:220ms;--komst:280ms;--flikker:320ms;--radius:16px;--radius-groot:22px;
 --ux-hover:100ms;--ux-druk:80ms;--ux-binnen:240ms;--ux-succesduur:320ms;
 --ux-signaal:#08776c;--ux-signaal-nacht:#00d8ba;--ux-succes:#1b7a54;--ux-risico:#7f5a1a;--ux-fout:#a33417;
 --ux-tekst:var(--ink);--ux-hulp:var(--ink-3);--ux-lijn:var(--lijn-sterk);--ux-vlak:var(--wit);--ux-grond:var(--kalk);
 scroll-padding-top:90px;
}
html[data-ervaring] body{font-family:var(--tekst);font-size:17px;font-variant-numeric:tabular-nums;line-height:1.6}
html[data-ervaring] :is(input,select,textarea,button){font-family:var(--tekst);font-variant-numeric:tabular-nums}
html[data-ervaring] :is(h1,h2,h3,h4){font-family:var(--kop);text-wrap:balance}
html[data-ervaring] :is(h1,h2,h3,p,li,label,button,summary){overflow-wrap:break-word}
html[data-ervaring] :is(.help,.klein,.muted){font-size:max(14px,.85em);line-height:1.55}
html[data-ervaring] :is(button,.ac-link,.hulp-knop,.sein-ga){min-height:44px;min-width:44px;touch-action:manipulation}
html[data-ervaring] :is(.hulp-knop,.sein-ga){display:inline-flex;align-items:center;justify-content:center}
html[data-ervaring] :is(.btn,.ac-knop,.mn-primary,.mn-secondary,.mn-toggle,.mn-close,.mn-row,.mn-text-button){min-height:48px;min-width:44px;transition:background-color var(--ux-hover) ease,border-color var(--ux-hover) ease,transform var(--ux-druk) ease;touch-action:manipulation}
html[data-ervaring] :is(.btn,.ac-knop){font-size:16px;line-height:1.35;white-space:normal;text-align:center;padding:13px 22px}
html[data-ervaring] :is(.btn-klein,.ac-knop-klein){font-size:14px;padding:10px 15px}
html[data-ervaring] :is(button,.btn,.ac-knop):not(:disabled):not([aria-disabled=true]):active{transform:scale(.97)}
html[data-ervaring] :is(.btn-kaal,.ac-knop-kaal){box-shadow:none}
html[data-ervaring] :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--kade-licht);outline-offset:3px}
html[data-ervaring] :is(.vlak-wit,.vlak-kalk,.pagina-kop,#portaal-root) :is(button,a,input,select,textarea,summary):focus-visible{outline-color:var(--kade)}
html[data-ervaring] :is(.btn,.ac-knop):disabled{opacity:1;filter:none;box-shadow:none;background:var(--kalk-diep);border-color:var(--lijn-sterk);color:var(--ink-3);cursor:not-allowed}
html[data-ervaring] :is(.ac-body,.vlak-nacht,.ac-blad) :is(.btn,.ac-knop):disabled{background:var(--maas-2);color:var(--kalk-2);border-color:#75929c}
html[data-ervaring][data-thema=dag] .ac-body :is(.btn,.ac-knop):disabled{background:var(--kalk-diep);color:var(--ink-3);border-color:var(--lijn-sterk)}
html[data-ervaring] [aria-busy=true]{cursor:progress}
html[data-ervaring] :is(.price,.prijs,.duurkaart-prijs,.muur-bedrag,.waarde,.ac-groot){font-variant-numeric:tabular-nums}
html[data-ervaring] :is(.price,.prijs,.duurkaart-prijs,.muur-bedrag){white-space:nowrap}
html[data-ervaring] :is(a.paneel,a.kaart,.card,.aanbod-kaart){transition:border-color var(--ux-hover) ease,transform var(--ux-druk) ease;box-shadow:none}
html[data-ervaring] :is(a.paneel,a.kaart,.card):hover{transform:translateY(-2px);border-color:var(--kade)}
html[data-ervaring] :is(.kaart,.paneel,.paneel-kaart){border-radius:var(--radius);box-shadow:none}
html[data-ervaring] :is(.stip,.kchip-puls,.merk-teken .raam,.raamlicht,.sm-puls-1,.sm-puls-2,.mn-lid-stip){animation:none!important}
html[data-ervaring] :is(.ob-aura,.ob-spiegeling,.ob-raam .is-aan){animation:none!important}
html[data-ervaring] [data-ux-prompt] svg{flex-shrink:0}
html[data-ervaring] :is(.vlak-nacht,.ac-body,.ac-blad){--ux-signaal:var(--ux-signaal-nacht);--ux-succes:#69d4a6;--ux-risico:#e8be78;--ux-fout:#ffb3aa}
html[data-ervaring][data-thema=dag] :is(.ac-body,.ac-blad){--ux-signaal:#08776c;--ux-succes:#1b7a54;--ux-risico:#7f5a1a;--ux-fout:#a33417}
html[data-ervaring] .ux-feedback{min-height:1.4em;margin:8px 0 0;font-size:14px;line-height:1.5}
html[data-ervaring] :is(.ux-feedback.is-error,.help.is-error,.help.fout,.co-note.is-error){color:var(--ux-fout);font-weight:600}
html[data-ervaring] .ux-fouticoon{display:inline-block;margin-right:6px;font-weight:700}
html[data-ervaring] .ux-skeleton{display:grid;gap:16px}
html[data-ervaring] .ux-skeleton i{display:block;height:18px;border-radius:8px;background:var(--kalk-diep)}
html[data-ervaring] .ux-skeleton i:first-child{height:42px;width:60%}
html[data-ervaring] .ux-skeleton i:last-child{height:110px}
html[data-ervaring] .ux-klaar{border:1px solid var(--lijn-sterk);border-radius:16px;padding:18px 20px;line-height:1.6}
html[data-ervaring] .ux-klaar p:last-child{margin-bottom:0}
/* Het zichtbare symbool mag klein zijn; het tikdoel blijft bereikbaar. */
html[data-ervaring] :is(.panda-knop,.ac-schak,.ac-raam-titel,.zo-knop,.zo-chipknop){min-width:44px;min-height:48px;touch-action:manipulation}
html[data-ervaring] .ac-raam-titel{display:flex;align-items:center;text-align:left}
html[data-ervaring] .ac-schak::after{top:calc(50% - 13px)}
html[data-ervaring] .ac-schak.klein::after{top:calc(50% - 10px)}
/* Een vaste landingsplek voor taak en opbrengst; de tekst blijft de inhoud. */
html[data-ervaring] .pagina-kop{padding-block:clamp(30px,5vw,58px)}
html[data-ervaring] .pagina-kop h1{font-size:clamp(34px,4.2vw,58px);line-height:1.08;max-width:20ch}
html[data-ervaring] .pagina-kop .lede{font-size:18px;line-height:1.6;max-width:60ch}
html[data-ervaring] .sectie-kop h2{font-size:clamp(26px,3vw,38px)}
html[data-ervaring] :is(.sectie-kop,.pagina-kop) .eyebrow{font-size:12px;letter-spacing:.1em}
html[data-ervaring] .wrap-smal{max-width:760px}
html[data-ervaring] :is(.artikel,.brief,.pro-faq,.faq) p{max-width:68ch}
html[data-ervaring] :is(details>summary,.mn-on-page summary){min-height:48px;align-content:center}
html[data-ervaring] :is(.tabel-omhulsel,.tabel-wrap){overscroll-behavior-x:contain}
html[data-ervaring] .tabel{font-size:15px;line-height:1.5}
html[data-ervaring] :is(.tabel th,.tabel td){padding:13px 14px}
html[data-ervaring] :is(.hero-acties,.pro-hero-acties){display:flex;flex-wrap:wrap;gap:12px;align-items:center}
html[data-ervaring] .hero-acties .btn-kaal{background:transparent;border-color:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:4px;color:var(--kalk-tekst)}
html[data-ervaring] .hero .hero-raster{padding-block:clamp(36px,5vw,68px);gap:32px}
html[data-ervaring] .hero .hero-kop{font-size:clamp(42px,5.1vw,76px);line-height:1.05;max-width:15ch}
html[data-ervaring] .hero .lede{font-size:18px;line-height:1.65;max-width:52ch}
html[data-ervaring] .hero-belofte{font-size:14px;line-height:1.5;max-width:55ch}
html[data-ervaring] .hero .toneel{opacity:.22;pointer-events:none}
html[data-ervaring] .content-stappen{gap:18px}
html[data-ervaring] .content-stappen li{padding:22px;border:1px solid var(--lijn);border-radius:16px;background:var(--wit)}
html[data-ervaring] .content-stappen li b{font-family:var(--kop);font-size:22px;line-height:1.25}
html[data-ervaring] .content-stappen li p{font-size:15px;line-height:1.6}
/* Zoekpas: eerst een heldere keuze, daarna verdieping; alle betaalvelden blijven. */
html[data-ervaring] .pro-hero h1{max-width:19ch;font-size:clamp(36px,4.5vw,60px)}
html[data-ervaring] .pro-plannen{padding-block:32px}
html[data-ervaring] .plan{box-shadow:none;border-radius:18px}
html[data-ervaring] .duurkaart{min-height:82px;border-radius:14px}
html[data-ervaring] .duurkaart-prijs{font-size:28px}
html[data-ervaring] .co-strook{backdrop-filter:blur(14px)}
html[data-ervaring] .pro-hero-acties .btn-kaal{border:0;background:transparent;color:var(--kalk-2)}
/* Partners heeft dezelfde bouwstenen, met zijn eigen gegevens en bestaande tabs. */
html[data-ervaring=partner]{--ux-grond:var(--kalk)}
html[data-ervaring=partner] body{background:var(--ux-grond)}
html[data-ervaring=partner] .inlog{width:min(460px,calc(100% - 32px));padding:28px;border-radius:22px;border:1px solid var(--lijn);background:var(--wit);box-shadow:none;margin:clamp(24px,7vh,72px) auto}
html[data-ervaring=partner] .inlog h1{font-size:32px}
html[data-ervaring=partner] .inlog p{font-size:16px}
html[data-ervaring=partner] .inlog .tekst{min-height:50px;border-radius:12px;font-size:16px}
html[data-ervaring=partner] .paneel-hoofd{position:sticky;top:0;z-index:5;box-shadow:none}
html[data-ervaring=partner] .paneel-hoofd>.wrap{max-width:1280px}
html[data-ervaring=partner] .paneel-tabs{gap:6px;scroll-padding-inline:12px}
html[data-ervaring=partner] .paneel-tabs button{min-height:48px;padding:11px 16px;font-size:15px;flex:none;white-space:nowrap;border-radius:10px}
html[data-ervaring=partner] .paneel-tabs button[aria-selected=true]{background:var(--maas-2);color:var(--kalk-tekst);box-shadow:inset 0 -3px var(--steen-licht)}
html[data-ervaring=partner] .paneel-tabs.licht button[aria-selected=true]{background:var(--kalk-diep);color:var(--ink);box-shadow:inset 0 -3px var(--steen)}
html[data-ervaring=partner] .paneel-vlak{padding-block:28px}
html[data-ervaring=partner] .paneel-kaart{padding:24px;border:1px solid var(--lijn);margin-bottom:20px;min-width:0}
html[data-ervaring=partner] .paneel-kaart>h2{font-size:25px;line-height:1.2;margin-bottom:10px}
html[data-ervaring=partner] .paneel-kaart>.uitleg{font-size:16px;line-height:1.6;color:var(--ink-2)}
html[data-ervaring=partner] :is(.portaal-balk-onder,.portaal-stap .naam,.help){font-size:14px}
html[data-ervaring=partner] .code-toon{gap:10px;flex-wrap:wrap}
html[data-ervaring=partner] .code-toon code{font-size:26px;overflow-wrap:anywhere}
html[data-ervaring=partner] .portaal-kop{margin-bottom:20px}
html[data-ervaring=partner] .portaal-kop h1{font-size:36px;margin:0 0 8px}
html[data-ervaring=partner] .portaal-kop p{color:var(--ink-2);margin:0;max-width:65ch}
html[data-ervaring=partner] .portaal-taal{display:flex;gap:6px;font-size:14px;margin-left:auto}
html[data-ervaring=partner] .portaal-taal a{padding:10px 12px;min-height:44px;border-radius:8px;color:inherit;text-decoration:none}
html[data-ervaring=partner] .portaal-taal a[aria-current]{background:var(--maas-2);color:var(--kalk-tekst);text-decoration:underline;text-underline-offset:4px}
html[data-ervaring=partner] .paneel-melding{max-width:min(540px,calc(100vw - 32px));line-height:1.55}
@media(max-width:600px){
 html[data-ervaring] body{font-size:16px}
 html[data-ervaring] :is(.btn,.ac-knop){padding:13px 16px;font-size:16px;min-height:50px}
 html[data-ervaring] :is(.btn-klein,.ac-knop-klein){font-size:14px}
 html[data-ervaring] .hero .hero-raster{padding-block:30px 36px;gap:24px}
 html[data-ervaring] .hero .hero-kop{font-size:42px;max-width:12ch}
 html[data-ervaring] .hero .lede{font-size:17px;line-height:1.6}
 html[data-ervaring] .hero-acties{display:grid;grid-template-columns:1fr;gap:8px}
 html[data-ervaring] .hero-acties .btn{width:100%}
 html[data-ervaring] .hero .kb-home{width:min(295px,100%);margin-inline:auto}
 html[data-ervaring] .pagina-kop{padding-block:28px 30px}
 html[data-ervaring] .pagina-kop h1{font-size:34px}
 html[data-ervaring] .pagina-kop .lede{font-size:17px}
 html[data-ervaring] .content-stappen{display:grid;grid-template-columns:1fr}
 html[data-ervaring] .content-stappen li{padding:20px}
 html[data-ervaring] .mn-toggle{font-size:16px}
 html[data-ervaring] .pro-hero-raster{gap:24px}
 html[data-ervaring] .pro-hero .kb-collage{max-width:260px;margin-inline:auto}
 html[data-ervaring] .pro-hero-onder{flex-wrap:wrap;gap:10px 16px}
 html[data-ervaring] .duurkaart{padding:13px;gap:10px}
 html[data-ervaring] .duurkaart-prijs{font-size:25px}
 html[data-ervaring] .co-strook .btn{font-size:15px}
 html[data-ervaring=partner] .paneel-hoofd .wrap{gap:12px}
 html[data-ervaring=partner] .paneel-vlak>.wrap{padding-inline:16px}
 html[data-ervaring=partner] .paneel-kaart{padding:20px}
 html[data-ervaring=partner] .portaal-kop h1{font-size:32px}
 html[data-ervaring=partner] .code-toon .btn{flex:1}
 html[data-ervaring=partner] .code-toon code{flex-basis:100%}
 html[data-ervaring=partner] .paneel-hoofd .wie{margin-left:0;flex:1;justify-content:flex-end}
}
@media(prefers-reduced-motion:reduce){
 html[data-ervaring]{scroll-behavior:auto}
 html[data-ervaring] *,html[data-ervaring] *::before,html[data-ervaring] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 html[data-ervaring] :is(button,.btn,.ac-knop):active{transform:none}
 html[data-ervaring] :is(a.paneel,a.kaart,.card):hover{transform:none}
}
