@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url(/bureau-site/fonts/outfit-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/bureau-site/fonts/geist-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body{margin:0;background:#FFF}
*{box-sizing:border-box}
.page{--pink:#D62868;--pink-d:#A81D52;--pink-s:#FDE7EF;--blue:#1A4FB5;--blue-d:#123C8E;--blue-s:#E5EDFC;--green:#15783B;--green-d:#0F5E2D;--green-s:#E3F6EA;--gold:#F2B33D;--ink:#1E2235;--navy:#272B41;--mute:#4A5072;--tint:#FDF0F4;--grad:linear-gradient(120deg,#A81D52 0%,#C4235F 48%,#D62868 100%);font-family:Geist,'Helvetica Neue',Arial,sans-serif;color:var(--ink);background:#FFF;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.wrap{max-width:1280px;margin:0 auto;padding-inline:clamp(20px,4vw,48px)}
h1,h2,h3{font-family:Outfit,Geist,Arial,sans-serif;font-weight:700;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
.sec{padding-block:clamp(72px,8vw,120px)}
.lab.g{background:var(--green-s);color:var(--green)}
.lab.b{background:var(--blue-s);color:var(--blue)}
.lab{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border-radius:999px;background:var(--tint);color:#B01C53;font:600 14px/1 Outfit,Geist,sans-serif;margin-bottom:18px}
.lab img{width:20px;height:20px;display:block}
.h2{font-size:clamp(36px,4.3vw,60px);line-height:1.06;letter-spacing:-.025em;max-width:17em}
.intro{margin-top:16px;font-size:clamp(17px,1.35vw,19px);line-height:1.55;color:var(--mute);max-width:36em}
.center{text-align:center;display:flex;flex-direction:column;align-items:center}
.center .h2,.center .intro{margin-inline:auto}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 8px 0 24px;border-radius:999px;font:600 16px/1 Outfit,Geist,sans-serif;text-decoration:none;white-space:nowrap;border:0;cursor:pointer;transition:transform .22s cubic-bezier(.2,.9,.3,1.4),box-shadow .22s ease,filter .18s ease}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 26px rgba(150,20,70,.3)}
.btn:active{transform:translateY(1px)}
.btn i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#FFF;color:var(--pink);transition:transform .25s ease}
.btn:hover i{transform:rotate(45deg)}
.btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.btn:focus-visible,.nav a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.b-grad{background:var(--pink);color:#FFF}.b-grad:hover{background:var(--pink-d)}
.b-gold{background:var(--gold);color:var(--ink)}
.b-gold i{color:var(--ink)}
.scan .btn{background:var(--pink);color:#FFF}
.scan .btn i{color:var(--pink)}
.scan .btn:hover{background:var(--pink-d)}
.b-line{background:transparent;color:var(--c,var(--ink));box-shadow:inset 0 0 0 2px var(--c,var(--ink));padding:0 24px}
.b-line:hover{background:var(--c,var(--ink));color:#FFF}

/* hero */
.hero{position:relative;background:#F5F7FC;color:var(--ink);overflow:hidden;isolation:isolate}
.rings{position:absolute;right:-160px;top:50%;width:1040px;height:1040px;transform:translateY(-46%);z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.2) 0 25%,rgba(255,255,255,.13) 25.2% 40%,rgba(255,255,255,.08) 40.2% 56%,rgba(255,255,255,.05) 56.2% 71%,transparent 71.2%);animation:pulse 8s ease-in-out infinite}
@keyframes pulse{50%{transform:translateY(-46%) scale(1.05)}}
.navbar{padding-top:20px;position:relative;z-index:5}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:70px;padding:8px 10px 8px 22px;border-radius:999px;background:#FFF;color:var(--ink);box-shadow:0 12px 30px rgba(39,43,65,.08)}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:700 20px/1 Outfit,Geist,sans-serif;letter-spacing:-.02em}
.logo img{width:34px;height:34px;display:block;flex:none;transition:transform .6s cubic-bezier(.2,.9,.3,1.3)}
.logo:hover img{transform:rotate(200deg)}
.links{display:flex;gap:30px}
.links a{text-decoration:none;font:500 16px/1 Outfit,Geist,sans-serif;transition:color .16s ease}
.links a:hover{color:var(--pink)}
.nav .btn{min-height:50px;padding-left:20px;font-size:15px}
.nav .btn i{width:34px;height:34px}
.hero-g{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:24px;align-items:center;padding-block:clamp(36px,4vw,56px) 32px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px 8px 9px;border-radius:999px;background:#FFF;font:600 15px/1 Outfit,Geist,sans-serif;margin-bottom:22px}
.pill img{width:22px;height:22px;display:block}
.hero h1{font-size:clamp(44px,5.8vw,84px);line-height:1.04;letter-spacing:-.03em;text-wrap:initial}
.hero h1 span{color:var(--pink)}
.lead{margin-top:22px;font-size:clamp(18px,1.5vw,21px);line-height:1.45;max-width:27em;color:var(--mute)}
.scan{display:flex;align-items:center;gap:8px;margin-top:30px;max-width:540px;padding:7px;border-radius:999px;background:#FFF;box-shadow:0 14px 32px rgba(39,43,65,.12)}
.scan input{flex:1;min-width:0;height:50px;border:0;background:transparent;padding:0 8px 0 20px;font:400 16px Geist,Arial,sans-serif;color:var(--ink);outline:0}
.scan input::placeholder{color:#6A6780}
.hero-note{margin-top:14px;font-size:15px;color:var(--mute)}
.vis{position:relative;min-height:clamp(380px,33vw,470px);border-radius:32px;overflow:hidden;background:#222}
.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.vis:hover .photo{transform:scale(1.04)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-bottom:clamp(36px,4vw,56px)}
.tl{border-radius:22px;padding:22px 26px;color:#FFF;font:700 clamp(21px,2vw,27px)/1.1 Outfit,Geist,sans-serif;letter-spacing:-.02em;display:flex;align-items:center;gap:14px;min-width:0;transition:transform .28s cubic-bezier(.2,.9,.3,1.3)}
.tl:hover{transform:translateY(-5px)}
.tl img{width:42px;height:42px;display:block;flex:none;transition:transform .6s cubic-bezier(.2,.9,.3,1.3)}
.tl:hover img{transform:rotate(120deg)}
.tl1{background:var(--pink)}.tl2{background:var(--green)}.tl3{background:var(--blue)}
.chip{position:absolute;z-index:2;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:16px;background:#FFF;color:var(--ink);font:600 15px/1.1 Outfit,Geist,sans-serif;white-space:nowrap;box-shadow:0 16px 34px rgba(70,5,35,.28)}
.chip i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--c,var(--green));color:#FFF;flex:none}
.c1{--c:var(--blue)}.c2{--c:var(--pink)}.c3{--c:var(--green)}
.chip svg,.ic svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chip svg{width:18px;height:18px}
.c1{top:6%;left:5%;animation:fl1 7s ease-in-out infinite}
.c2{top:42%;right:5%;animation:fl2 8s ease-in-out infinite}
.c3{bottom:7%;left:5%;animation:fl1 9s ease-in-out infinite reverse}
@keyframes fl1{50%{transform:translateY(-14px)}}
@keyframes fl2{50%{transform:translateY(14px)}}

/* banden */
.bands{position:relative;height:150px;margin-top:-20px;overflow:hidden}
.bd{position:absolute;left:-5%;width:110%;display:flex;overflow:hidden;padding-block:13px;font:700 clamp(18px,1.8vw,24px)/1 Outfit,Geist,sans-serif}
.bd1{top:40px;background:var(--blue);color:#FFF;transform:rotate(-1.8deg);z-index:2}
.bd2{top:48px;background:var(--green);color:#FFF;transform:rotate(1.6deg)}
.tr{display:flex;flex:none;align-items:center;gap:26px;padding-right:26px;white-space:nowrap;animation:slide 36s linear infinite}
.bd2 .tr{animation-direction:reverse}
.tr img{width:24px;height:24px;display:block}
@keyframes slide{to{transform:translateX(-100%)}}

/* doelen */
.acc{display:flex;gap:14px;margin-top:clamp(36px,4vw,56px);height:480px}
.p{position:relative;flex:1 1 0;min-width:0;border-radius:26px;overflow:hidden;color:#FFF;background:#111;transition:flex-grow .55s cubic-bezier(.3,.8,.3,1)}
.p:first-child{flex-grow:3.4}
.acc:hover .p{flex-grow:1}
.acc .p:hover{flex-grow:3.4}
.p>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,var(--o) 88%)}
.p:nth-child(1){--o:rgba(168,29,82,.96)}.p:nth-child(2){--o:rgba(15,94,45,.96)}.p:nth-child(3){--o:rgba(18,60,142,.96)}
.p>div{position:absolute;left:22px;right:22px;bottom:24px;z-index:1;display:flex;flex-direction:column;gap:10px}
.p h3{font-size:clamp(24px,2.1vw,30px);line-height:1.08;letter-spacing:-.02em}
.p p{font-size:17px;line-height:1.45;width:min(32em,600px);max-width:calc(100vw - 88px);display:none}
.p:first-child p{display:block}
.acc:hover .p p{display:none}
.acc .p:hover p{display:block}

/* diensten */
.dienst{position:relative;background:var(--blue) radial-gradient(rgba(255,255,255,.11) 1.5px,transparent 1.6px) 0 0/26px 26px}
.dienst .h2{color:#FFF}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(36px,4vw,56px)}
.card{--c:var(--blue);--cs:var(--blue-s);position:relative;overflow:hidden;background:#FFF;border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:12px;min-width:0;box-shadow:0 16px 36px rgba(9,30,90,.22);transition:transform .28s cubic-bezier(.2,.9,.3,1.3),color .2s ease,box-shadow .28s ease;isolation:isolate}
.cp{--c:var(--pink);--cs:var(--pink-s)}.cg{--c:var(--green);--cs:var(--green-s)}
.card::before{content:"";position:absolute;inset:0;background:var(--c);opacity:0;transition:opacity .25s ease;z-index:-1}
.card:hover{transform:translateY(-8px);color:#FFF;box-shadow:0 26px 48px rgba(9,30,90,.34)}
.card:hover::before{opacity:1}
.ic{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--cs);color:var(--c);transition:background-color .2s ease,color .2s ease,transform .4s cubic-bezier(.2,.9,.3,1.4)}
.ic svg{width:26px;height:26px}
.card:hover .ic{background:#FFF;color:var(--c)}
.tg{position:absolute;top:28px;right:28px;padding:7px 11px;border-radius:999px;background:var(--cs);color:var(--c);font:600 13px/1 Outfit,Geist,sans-serif}
.card:hover .tg{background:#FFF}
.card:hover .ic{transform:rotate(-10deg) scale(1.08)}
.card h3{font-size:clamp(21px,1.8vw,24px);line-height:1.15;letter-spacing:-.015em;margin-top:6px}
.card p{font-size:16.5px;line-height:1.5;color:var(--mute);transition:color .2s ease}
.card:hover p{color:#FFF}

/* waarom */
.why{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.blob{position:relative;padding:22px}
.blob::before{content:"";position:absolute;inset:0;background:var(--b,var(--green));border-radius:58% 42% 45% 55%/47% 56% 44% 53%;animation:morph 12s ease-in-out infinite}
@keyframes morph{50%{border-radius:44% 56% 58% 42%/56% 44% 56% 44%}}
.blob>img{position:relative;display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:54% 46% 48% 52%/46% 52% 48% 54%}
.blob .chip{animation:fl1 7s ease-in-out infinite}
.checks{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.checks span{display:inline-flex;align-items:center;gap:9px;padding:10px 16px 10px 10px;border-radius:999px;background:var(--green-s);font:500 15.5px/1.1 Outfit,Geist,sans-serif}
.checks span::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l3 3 5-6' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.why .btn{margin-top:30px}

/* grap */
.grap{position:relative;background:var(--green);color:#FFF;overflow:hidden;padding-block:clamp(56px,6vw,88px) clamp(90px,8vw,120px)}
.grap-in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 40px}
.grap p{font:700 clamp(34px,4.6vw,66px)/1.05 Outfit,Geist,sans-serif;letter-spacing:-.025em;max-width:15em}
.rol{position:absolute;bottom:10px;left:0;width:clamp(56px,6vw,84px);animation:rol 12s linear infinite;filter:drop-shadow(0 10px 8px rgba(5,50,20,.45))}
@keyframes rol{from{transform:translateX(-120px) rotate(0)}to{transform:translateX(calc(100vw + 20px)) rotate(1440deg)}}

/* werkwijze */
.proc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center;margin-top:clamp(36px,4vw,56px)}
.steps{display:flex;flex-direction:column;gap:14px}
.proc .blob{--b:var(--blue)}
.st{position:relative;overflow:hidden;display:flex;gap:18px;align-items:center;padding:20px 22px;border-radius:20px;background:#FFF;min-width:0;isolation:isolate;transition:transform .25s cubic-bezier(.2,.9,.3,1.3),color .2s ease}
.st::before{content:"";position:absolute;inset:0;background:var(--blue);opacity:0;transition:opacity .25s ease;z-index:-1}
.st:hover,.st.on{color:#FFF}
.st:hover{transform:translateX(8px)}
.st:hover::before,.st.on::before{opacity:1}
.st b{flex:none;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--blue-s);color:var(--blue);font:700 22px/1 Outfit,Geist,sans-serif}
.st:hover b,.st.on b{background:#FFF;color:var(--blue)}
.st h3{font-size:21px;line-height:1.15;letter-spacing:-.015em}
.st p{margin-top:5px;font-size:16px;line-height:1.45;color:var(--mute)}
.st:hover p,.st.on p{color:#FFF}

/* pakketten */
.pakket{background:#FFF}
.packs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(36px,4vw,56px);align-items:center}
.pk{--c:var(--ink);position:relative;border-radius:26px;background:var(--s,#FFF);padding:clamp(26px,2.6vw,36px);display:flex;flex-direction:column;gap:14px;min-width:0;transition:transform .28s cubic-bezier(.2,.9,.3,1.3)}
.pk.cb{--c:var(--blue);--s:var(--blue-s)}.pk.cg{--c:var(--green);--s:var(--green-s)}
.pk.cb .pr,.pk.cg .pr,.pk.cb h3,.pk.cg h3{color:var(--c)}
.pk:hover{transform:translateY(-8px)}
.pk.hl{background:var(--grad);color:#FFF;padding-block:clamp(38px,3.6vw,50px);box-shadow:0 26px 50px rgba(150,20,70,.3)}
.sticker{position:absolute;top:18px;right:18px;padding:8px 13px;border-radius:999px;background:var(--gold);color:var(--ink);font:600 14px/1 Outfit,Geist,sans-serif}
.pk h3{font-size:clamp(24px,2.2vw,30px);line-height:1.1;letter-spacing:-.02em}
.pk .for{font-size:16px;line-height:1.45;color:var(--mute);min-height:2.9em}
.pk.hl .for{color:#FFE9F0}
.pk .pr{font:700 clamp(44px,4.2vw,60px)/1 Outfit,Geist,sans-serif;letter-spacing:-.03em}
.pk .pr small{font:500 15px Geist,Arial,sans-serif;letter-spacing:0;margin-left:6px}
.pk ul{margin:0;padding:16px 0 0;border-top:1px solid rgba(30,34,53,.14);list-style:none;display:flex;flex-direction:column;gap:10px;font-size:16px;line-height:1.35;flex-grow:1}
.pk.hl ul{border-top-color:rgba(255,255,255,.35)}
.pk li{display:flex;gap:10px;align-items:flex-start}
.pk li::before{content:"";flex:none;width:7px;height:12px;margin:2px 4px 0 4px;border:solid var(--c);border-width:0 2.5px 2.5px 0;transform:rotate(42deg)}
.pk.hl li::before{border-color:var(--gold)}
.pk .btn{width:100%}
.note{margin-top:22px;font-size:14.5px;line-height:1.45;color:var(--mute);text-align:center}

/* vragen */
.faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:start}
.faq details{border-radius:18px;margin-bottom:12px;padding-inline:22px;background:#FFF;transition:background-color .18s ease}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:70px;font:600 18px/1.3 Outfit,Geist,sans-serif;padding-block:14px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--blue);color:#FFF;font-size:22px;font-weight:400;transition:transform .25s cubic-bezier(.2,.9,.3,1.4)}
details[open] summary::after{transform:rotate(135deg)}
details p{padding-bottom:22px;font-size:16.5px;line-height:1.55;color:var(--mute);max-width:38em}

/* slot */
.end{position:relative;background:linear-gradient(120deg,var(--blue-d),var(--blue));color:#FFF;overflow:hidden;isolation:isolate}
.end .rings{left:-300px;right:auto}
.end-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:clamp(32px,6vw,96px);align-items:center;padding-block:clamp(72px,8vw,112px)}
.end .intro{color:#FFF}
.form{background:#FFF;color:var(--ink);border-radius:24px;padding:clamp(24px,2.8vw,36px);display:flex;flex-direction:column;gap:15px;min-width:0;box-shadow:0 26px 50px rgba(9,30,90,.35)}
.form label{display:flex;flex-direction:column;gap:7px;font-size:15px;font-weight:500}
.form input{min-height:52px;border-radius:14px;border:1.5px solid #CFCBD8;padding:0 16px;font:400 16px Geist,Arial,sans-serif;color:var(--ink);background:#FFF;width:100%}
.form input:focus{border-color:var(--pink)}
.form .btn{width:100%}
.foot-w{background:var(--navy);color:#D5DAE6}
.foot{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:32px;padding-block:52px;font-size:15.5px}
.foot .logo{color:#FFF}
.foot p{margin-top:12px;max-width:26em;line-height:1.5}
.foot strong{display:block;font:600 16px Outfit,Geist,sans-serif;color:#FFF;margin-bottom:10px}
.foot a{display:block;text-decoration:none;padding-block:4px}
.foot a:hover{color:var(--gold)}
.foot a.logo{display:inline-flex;padding:0}

@supports (animation-timeline:view()){
  .rise{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
  @keyframes rise{from{transform:translateY(44px)}to{transform:none}}
}


.links a[aria-current]{color:var(--pink)}
.hero.sub .hero-g{padding-block:clamp(36px,4vw,56px) clamp(44px,5vw,72px)}
.hero.sub .vis{min-height:clamp(320px,29vw,420px)}
.hero.sub h1{font-size:clamp(38px,4.5vw,64px);line-height:1.06;text-wrap:balance}
.hero.sub h1 span{color:var(--hc,var(--pink))}
.hero.sub .cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.b-pinkbtn{background:var(--pink);color:#FFF}.b-pinkbtn:hover{background:var(--pink-d)}.b-pinkbtn i{color:var(--pink)}

.grp{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:18px;align-items:stretch;margin-bottom:18px}
.grp-k{position:relative;overflow:hidden;border-radius:26px;padding:clamp(26px,2.8vw,38px);background:var(--c);color:#FFF;display:flex;flex-direction:column;gap:12px;min-height:240px}
.grp-k h2{font-size:clamp(28px,2.8vw,40px);line-height:1.06;letter-spacing:-.025em}
.grp-k p{font-size:17px;line-height:1.45}
.grp-k img{position:absolute;right:-22px;bottom:-22px;width:120px;transition:transform .7s cubic-bezier(.2,.9,.3,1.2)}
.grp-k:hover img{transform:rotate(-70deg)}
.cb{--c:var(--blue);--cs:var(--blue-s)}.cp{--c:var(--pink);--cs:var(--pink-s)}.cg{--c:var(--green);--cs:var(--green-s)}.cn{--c:var(--navy);--cs:#EBEDF4}
.grp-c{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0}
.grp-c .card{box-shadow:0 10px 26px rgba(39,43,65,.08)}
.grp-c .card:hover{box-shadow:0 22px 40px rgba(39,43,65,.2)}
.wide{grid-column:1/-1}
.price{margin-top:auto;align-self:flex-start;padding:8px 13px;border-radius:999px;background:var(--cs);color:var(--c);font:600 14.5px/1.1 Outfit,Geist,sans-serif;transition:background-color .2s ease}
.card:hover .price{background:#FFF}
.card>p{margin-bottom:6px}
.note.left{text-align:left}

.route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(36px,4vw,56px)}
.rc{border-radius:24px;padding:28px;color:#FFF;background:var(--c);display:flex;flex-direction:column;gap:10px;min-width:0;transition:transform .28s cubic-bezier(.2,.9,.3,1.3)}
.rc:hover{transform:translateY(-6px)}
.rc b{align-self:flex-start;padding:7px 12px;border-radius:999px;background:#FFF;color:var(--c);font:600 14px/1 Outfit,Geist,sans-serif}
.rc h3{font-size:clamp(23px,2.1vw,29px);line-height:1.1;letter-spacing:-.02em;margin-top:6px}
.rc p{font-size:16.5px;line-height:1.5}
.route-n{margin-top:26px;font-size:16.5px;line-height:1.5;color:var(--mute);max-width:52em}

.tw{margin-top:clamp(32px,4vw,48px);background:#FFF;border-radius:26px;padding:clamp(14px,2vw,28px) clamp(18px,2.6vw,36px);box-shadow:0 16px 36px rgba(26,79,181,.1)}
.cmp{width:100%;border-collapse:collapse;font-size:16.5px}
.cmp th,.cmp td{padding:15px 12px;text-align:center;border-bottom:1px solid #E7EAF2;font-weight:400;width:17%}
.cmp thead th{font:700 19px/1.1 Outfit,Geist,sans-serif;padding-block:12px 16px}
.cmp th:nth-child(2){color:var(--blue)}.cmp th:nth-child(3){color:var(--pink)}.cmp th:nth-child(4){color:var(--green)}
.cmp th:first-child,.cmp td:first-child{text-align:left;width:49%;padding-left:0}
.cmp tr:last-child td{border-bottom:0;font:700 20px/1.1 Outfit,Geist,sans-serif}
.yes{display:inline-block;width:8px;height:14px;border:solid currentColor;border-width:0 3px 3px 0;transform:rotate(42deg)}
.cmp td:nth-child(2){color:var(--blue)}.cmp td:nth-child(3){color:var(--pink)}.cmp td:nth-child(4){color:var(--green)}
.no{color:#AEB3C6}

.pay{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(32px,4vw,48px)}
.pc{border-radius:24px;padding:28px;background:var(--cs);display:flex;flex-direction:column;gap:8px;min-width:0}
.pc h3{font-size:clamp(21px,1.9vw,25px);line-height:1.12;letter-spacing:-.02em;color:var(--c)}
.pc p{font-size:16.5px;line-height:1.5;color:var(--mute)}

.check{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,64px);align-items:start}
.checks2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:clamp(24px,3vw,36px)}
.checks2 .card{box-shadow:0 10px 26px rgba(39,43,65,.08)}
.checks2 .ic{width:50px;height:50px;border-radius:15px}
.checks2 .ic svg{width:23px;height:23px}
.formbox{box-shadow:0 22px 46px rgba(39,43,65,.14)}
.formbox h2{font-size:27px;letter-spacing:-.02em;line-height:1.1}
.form .opt{font-weight:400;color:var(--mute)}
.form textarea{min-height:128px;border-radius:14px;border:1.5px solid #CFCBD8;padding:12px 16px;font:400 16px/1.45 Geist,Arial,sans-serif;color:var(--ink);background:#FFF;width:100%;resize:vertical}
.form textarea:focus{outline:0;border-color:var(--pink)}
.small{font-size:14px;line-height:1.45;color:var(--mute)}

.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.story .tx{margin-top:18px;font-size:clamp(17px,1.35vw,19px);line-height:1.55;color:var(--mute);max-width:32em}
.vals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(32px,4vw,52px)}
.val{border-radius:26px;padding:clamp(26px,2.6vw,36px);color:#FFF;background:var(--c);display:flex;flex-direction:column;gap:12px;min-width:0;transition:transform .28s cubic-bezier(.2,.9,.3,1.3)}
.val:hover{transform:translateY(-6px)}
.val h3{font-size:clamp(24px,2.3vw,32px);line-height:1.08;letter-spacing:-.025em}
.val p{font-size:17px;line-height:1.5}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:clamp(32px,4vw,52px)}
.two .pc{background:#FFF}
.blue-sec{background:var(--blue) radial-gradient(rgba(255,255,255,.11) 1.5px,transparent 1.6px) 0 0/26px 26px}
.blue-sec .h2{color:#FFF}

@media (max-width:1000px){
  .links{display:none}
  .hero-g,.why,.proc,.faq,.end-g{grid-template-columns:minmax(0,1fr)}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .packs{grid-template-columns:minmax(0,1fr)}
  .pk .for{min-height:0}
  .acc{flex-direction:column;height:auto}
  .p,.p:first-child,.acc:hover .p,.acc .p:hover{flex:none;height:340px}
  .p p,.acc:hover .p p{display:block;width:auto;max-width:none}
  .blob{max-width:560px;margin-inline:auto}
}
@media (max-width:640px){
  .navbar{padding-top:12px}
  .nav{min-height:60px;padding-left:16px}
  .nav .btn{display:none}
  .logo{font-size:18px}
  .hero h1{font-size:12vw;line-height:1.06}
  .tiles{grid-template-columns:minmax(0,1fr);gap:10px}
  .tl{padding:16px 20px}
  .hero-g{padding-top:28px;padding-bottom:20px}
  .scan{flex-direction:column;border-radius:24px;padding:10px;align-items:stretch}
  .scan input{height:48px;flex:none;padding-left:12px}
  .scan .btn{width:100%}
  .vis{min-height:340px}
  .c1{left:4%;top:5%}
  .c2{right:4%;top:auto;bottom:26%}
  .c3{left:4%;bottom:5%}
  .bands{height:128px}
  .cards{grid-template-columns:minmax(0,1fr)}
  .card:hover{transform:none}
  .st{align-items:flex-start;padding:18px}
  .st b{width:46px;height:46px;font-size:18px}
  .grap-in .btn{width:100%}
  .foot{grid-template-columns:minmax(0,1fr)}
  .blob .chip{display:none}
}

@media (max-width:1000px){
  .grp,.check,.story{grid-template-columns:minmax(0,1fr)}
  .grp-k{min-height:0}
  .route,.pay,.vals,.two{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .hero.sub h1{font-size:10vw}
  .grp-c,.checks2{grid-template-columns:minmax(0,1fr)}
  .grp-k{padding-right:92px}
  .tw{padding:10px 16px}
  .cmp,.cmp thead,.cmp tbody{display:block}
  .cmp tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid #E7EAF2;padding-block:10px}
  .cmp tr:last-child{border-bottom:0}
  .cmp th,.cmp td{display:block;width:auto;border:0;padding:6px 2px}
  .cmp th:first-child,.cmp td:first-child{grid-column:1/-1;width:auto;text-align:left;color:var(--ink)}
  .cmp thead th:first-child{display:none}
  .cmp thead th{font-size:15.5px}
  .cmp tr:last-child td{font-size:18px}
}
@media (prefers-reduced-motion:reduce){
  .rings,.chip,.tr,.rol,.blob::before,.rise{animation:none}
  .btn,.tl,.card,.card::before,.ic,.p,.st,.pk,summary::after,.logo img{transition:none}
}

/* Opening: twee oliebollen rollen naar elkaar toe, daarna opent de pagina in een cirkel */
.opening{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#FFF;pointer-events:none;animation:open .75s cubic-bezier(.7,0,.3,1) 1s forwards}
.opening img{grid-area:1/1;width:clamp(90px,12vw,150px)}
.o1{animation:rolA .9s cubic-bezier(.2,.8,.2,1) both}
.o2{animation:rolB .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes rolA{from{transform:translateX(-46vw) rotate(-540deg)}to{transform:translateX(-34%) rotate(0)}}
@keyframes rolB{from{transform:translateX(46vw) rotate(540deg)}to{transform:translateX(34%) rotate(0)}}
@keyframes open{from{clip-path:circle(150vmax at 50% 50%)}to{clip-path:circle(0 at 50% 50%);visibility:hidden}}

.page{overflow-x:clip}
html{scroll-behavior:smooth;scroll-padding-top:96px;color-scheme:light}
body{background:#FFF}

/* Menubalk */
.balk{position:fixed;z-index:50;top:env(safe-area-inset-top,0px);left:0;right:0;padding-top:14px;transition:transform .35s cubic-bezier(.2,.7,.2,1),padding .3s ease;pointer-events:none}
.balk .nav{pointer-events:auto;position:relative;overflow:hidden;transition:min-height .3s ease,box-shadow .3s ease,max-width .35s cubic-bezier(.2,.7,.2,1);margin-inline:auto;max-width:100%}
.balk.klein{padding-top:8px}
.balk.klein .nav{min-height:58px;max-width:1040px;box-shadow:0 14px 34px rgba(39,43,65,.16)}
.balk.weg{transform:translateY(-120%)}
.links{position:relative}
.links a{position:relative;z-index:1;padding:10px 4px}
.schuif{position:absolute;left:0;top:50%;height:38px;width:0;margin-top:-19px;border-radius:999px;background:var(--pink-s);transition:transform .35s cubic-bezier(.2,.7,.2,1),width .35s cubic-bezier(.2,.7,.2,1),opacity .2s ease;opacity:0}
.voortgang{position:absolute;left:0;bottom:0;height:3px;width:100%;transform:scaleX(var(--p,0));transform-origin:left;background:linear-gradient(90deg,var(--pink),var(--blue),var(--green))}
.hero-g{padding-top:clamp(112px,10vw,140px);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}

/* Subpagina's */
.hero.sub .hero-g{padding-top:clamp(112px,10vw,140px)}
.hero.sub h1 span{color:inherit}
.hero.sub h1 em{font-style:normal;color:var(--hc,var(--pink))}
.links a[aria-current]{color:var(--pink)}
.blob::before{border-radius:50%;animation:none}
.blob>img{border-radius:50%}

/* Kop */
.hero h1 span{color:inherit}
.hero h1 em{font-style:normal;color:var(--pink)}
.hero h1 .w{display:inline-block}
.js .hero h1 .w{animation:woord .75s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(1.45s + var(--i)*70ms)}
@keyframes woord{from{transform:translateY(.32em) rotate(1.5deg)}to{transform:none}}

/* Getekende cirkel */
.circ{position:relative;display:inline-block;white-space:nowrap}
.circ-lijn{position:absolute;left:-7%;top:-14%;width:114%;height:128%;overflow:visible;pointer-events:none}
.circ-lijn path{fill:none;stroke:var(--gold);stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.js .circ:not(.in) .circ-lijn path{stroke-dashoffset:1}
.circ.in .circ-lijn path{transition:stroke-dashoffset 1.1s cubic-bezier(.5,0,.2,1)}

/* Ronde foto's in de banner */
.rond{position:relative;width:100%;max-width:600px;aspect-ratio:1/1;margin-inline:auto}
.foto{position:absolute;margin:0;border-radius:50%;overflow:hidden;background:#222;box-shadow:0 22px 50px rgba(39,43,65,.2);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.foto img{display:block;width:100%;height:100%;object-fit:cover;animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.18) translate(-2%,2%)}}
.foto.groot{width:66%;height:66%;left:4%;top:20%;box-shadow:0 0 0 8px #FFF,0 26px 56px rgba(39,43,65,.24)}
.foto.klein1{width:40%;height:40%;right:0;top:0;box-shadow:0 0 0 6px #FFF,0 18px 40px rgba(39,43,65,.2)}
.foto.klein2{width:31%;height:31%;right:6%;bottom:3%;box-shadow:0 0 0 6px #FFF,0 18px 40px rgba(39,43,65,.2)}
.ring{position:absolute;border-radius:50%;border:1.5px solid}
.r1{inset:12% 28% 0 -4%;border-color:rgba(26,79,181,.3)}
.r2{inset:-5% -5% 53% 55%;border-color:rgba(214,40,104,.32)}
.baan{position:absolute;inset:6% 12% 0 -8%;border-radius:50%;border:1.5px dashed rgba(21,120,59,.35);animation:draai 26s linear infinite}
.baan img{position:absolute;top:-22px;left:50%;width:44px;margin-left:-22px;filter:drop-shadow(0 6px 8px rgba(39,43,65,.3))}
@keyframes draai{to{transform:rotate(360deg)}}
.rond .chip{animation:zweef 6s ease-in-out infinite}
.rond .c1{top:15%;left:-2%}
.rond .c2{top:50%;right:-2%;left:auto;animation-delay:-2s}
.rond .c3{bottom:7%;left:6%;animation-delay:-4s}
@keyframes zweef{50%{translate:0 -12px}}

/* Bogen */
.boog{position:absolute;left:0;right:0;top:-1px;height:clamp(32px,6vw,90px);background:var(--k);border-radius:0 0 50% 50%/0 0 100% 100%;pointer-events:none}
.sec{position:relative}
.dienst,.pakket,#over{padding-top:clamp(110px,12vw,180px)}
.woordmerk{font:800 clamp(40px,10.3vw,190px)/.92 Outfit,Geist,sans-serif;letter-spacing:-.04em;text-align:center;white-space:nowrap;padding-bottom:24px;user-select:none;color:transparent;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),var(--gold),var(--pink) 34%,var(--blue) 62%,rgba(255,255,255,.1) 78%) no-repeat,rgba(255,255,255,.1);-webkit-background-clip:text;background-clip:text}

/* Doelen */
.doelen{display:flex;flex-direction:column;gap:clamp(56px,7vw,110px);margin-top:clamp(36px,4vw,56px)}
.doel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.doel.rechts .doel-beeld{order:2}
.doel-beeld{position:relative;max-width:520px;width:100%;aspect-ratio:1/1;margin-inline:auto}
.doel.rechts .doel-tekst{justify-self:end}
.ring-d{position:absolute;inset:0;border-radius:50%;border:2px dashed var(--kl);opacity:.5;animation:draai 40s linear infinite}
.dp{--kl:var(--pink);--ks:var(--pink-s)}.dg{--kl:var(--green);--ks:var(--green-s)}.db{--kl:var(--blue);--ks:var(--blue-s)}
.d-groot{inset:7%;width:86%;height:86%}
.d-klein{width:33%;height:33%;right:-1%;bottom:2%;box-shadow:0 0 0 6px #FFF,0 16px 36px rgba(39,43,65,.24)}
.stempel{position:absolute;left:0;top:8%;display:grid;place-items:center;width:clamp(96px,10vw,124px);aspect-ratio:1/1;border-radius:50%;color:#FFF;text-align:center;font:700 clamp(14px,1.25vw,17px)/1.15 Outfit,Geist,sans-serif;box-shadow:0 14px 28px rgba(39,43,65,.24);animation:zweef 7s ease-in-out infinite}
.doel h3{font-size:clamp(32px,3.6vw,50px);line-height:1.06;letter-spacing:-.025em;color:var(--kl)}
.doel-tekst p{margin-top:16px;font-size:clamp(17px,1.35vw,19px);line-height:1.55;color:var(--mute);max-width:32em}
.doel .checks span{background:var(--ks)}
.doel .checks span::before{background-color:var(--kl)}

/* Stappen */
.lijnroute{position:relative;margin-top:clamp(40px,5vw,72px)}
.route-lijn{position:absolute;left:0;right:0;top:0;width:100%;height:190px;overflow:visible}
.route-lijn path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.spoor{stroke:rgba(26,79,181,.2);stroke-width:2;stroke-dasharray:3 9}
.getekend{stroke:var(--blue);stroke-width:3;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--t,1))}
.stappen{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;text-align:center}
.stap{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.stap:nth-child(even){margin-top:34px}
.stap-foto{position:relative;display:block;width:clamp(130px,14vw,178px);aspect-ratio:1/1;border-radius:50%;box-shadow:0 0 0 7px #FFF,0 0 0 9px var(--blue),0 18px 36px rgba(18,60,142,.22);margin-bottom:14px;transition:transform .35s cubic-bezier(.2,.9,.3,1.3)}
.stap:hover .stap-foto{transform:scale(1.05)}
.stap-foto img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.stap-foto b{position:absolute;top:-4px;left:50%;margin-left:-20px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--pink);color:#FFF;font:700 18px/1 Outfit,Geist,sans-serif}
.stap h3{font-size:clamp(19px,1.6vw,22px);line-height:1.15;letter-spacing:-.015em}
.stap p{font-size:16px;line-height:1.45;color:var(--mute);max-width:17em}

/* Knoppen: vulling volgt de muis */
.btn{position:relative;overflow:hidden;isolation:isolate;translate:var(--tx,0) var(--ty,0)}
.btn::before{content:"";position:absolute;z-index:-1;left:var(--bx,50%);top:var(--by,50%);width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .45s ease,height .45s ease}
.btn:hover::before{width:340px;height:340px}
.b-line::before{background:var(--c,var(--ink))}
.pk.cb .b-line{--c:var(--blue)}.pk.cg .b-line{--c:var(--green)}
.b-line:hover{background:transparent}

/* Pakketten kantelen */
.packs{perspective:1200px}
.pk{transform:rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(var(--ly,0));transition:transform .18s ease-out;will-change:transform}
.pk:hover{--ly:-6px;transform:rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(var(--ly,0))}

@media (max-width:1000px){
  .hero-g{grid-template-columns:minmax(0,1fr)}
  .doel{grid-template-columns:minmax(0,1fr)}
  .doel.rechts .doel-beeld{order:0}
  .doel.rechts .doel-tekst{justify-self:start}
  .stappen{grid-template-columns:minmax(0,1fr);gap:30px;text-align:left;padding-left:0}
  .route-lijn{display:none}
  .lijnroute::before{content:"";position:absolute;left:44px;top:0;bottom:0;width:3px;background:var(--blue);border-radius:3px;transform:scaleY(var(--t,1));transform-origin:top}
  .stap,.stap:nth-child(even){display:grid;grid-template-columns:90px minmax(0,1fr);column-gap:18px;margin-top:0;align-items:start}
  .stap-foto{width:90px;grid-row:1/3;margin:0;box-shadow:0 0 0 5px var(--blue-s),0 0 0 7px var(--blue)}
  .stap-foto b{width:32px;height:32px;margin-left:-16px;top:-8px;font-size:15px}
  .stap h3{align-self:end}
  .stap p{max-width:none}
}
@media (max-width:640px){
  .balk{padding-top:8px}
  .hero-g,.hero.sub .hero-g{padding-top:92px}
  .rond{max-width:440px}
  .rond .chip{font-size:13px;padding:7px 11px 7px 7px}
  .rond .chip i{width:26px;height:26px}
  .rond .chip svg{width:15px;height:15px}
  .rond .c1{left:0;top:13%}
  .rond .c2{right:0;top:52%;bottom:auto}
  .rond .c3{left:2%;bottom:6%}
  .baan{display:none}
  .doel-beeld{max-width:360px}
  .stempel{width:88px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .opening{display:none}
  .foto img,.baan,.ring-d,.stempel,.rond .chip,.js .hero h1 .w{animation:none}
  .js .circ:not(.in) .circ-lijn path{stroke-dashoffset:0}
  .balk,.balk .nav,.pk,.foto{transition:none}
}

/* Ronde 1: telefoonmenu */
.hamb{display:none;position:relative;flex:none;width:48px;height:48px;border:0;border-radius:50%;background:var(--pink-s);color:var(--pink-d);cursor:pointer;padding:0;transition:background-color .25s ease}
.hamb span{position:absolute;left:14px;right:14px;top:50%;height:2.5px;margin-top:-1.25px;border-radius:2px;background:currentColor;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.hamb span:nth-child(1){transform:translateY(-4px)}
.hamb span:nth-child(2){transform:translateY(4px)}
.menu-open .hamb{background:var(--pink);color:#FFF}
.menu-open .hamb span:nth-child(1){transform:rotate(45deg)}
.menu-open .hamb span:nth-child(2){transform:rotate(-45deg)}
.hamb:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.mmenu{display:none}
.menu-open{overflow:hidden}
@media (max-width:1000px){
  .js .hamb{display:block}
  .nav .btn{margin-left:auto}
  .nav{gap:12px}
  .balk .nav{padding-right:8px}
  .js .mmenu{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:26px;padding:104px clamp(24px,7vw,56px) 40px;overflow:hidden auto;background:var(--navy);color:#FFF;visibility:hidden;clip-path:circle(0 at var(--ox,90%) var(--oy,40px));transition:clip-path .6s cubic-bezier(.65,0,.2,1),visibility 0s linear .6s}
  .js.menu-open .mmenu{visibility:visible;clip-path:circle(150vmax at var(--ox,90%) var(--oy,40px));transition:clip-path .6s cubic-bezier(.65,0,.2,1),visibility 0s}
  .mmenu nav{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;position:relative}
  .mmenu nav a{display:block;padding:7px 0;color:#FFF;text-decoration:none;font:700 clamp(38px,11.5vw,64px)/1.08 Outfit,Geist,sans-serif;letter-spacing:-.03em;transform:translateY(22px);transition:transform .55s cubic-bezier(.2,.7,.2,1),color .2s ease;transition-delay:calc(var(--n)*45ms)}
  .menu-open .mmenu nav a{transform:none;transition-delay:calc(.14s + var(--n)*45ms),0s}
  .mmenu nav a[aria-current]{color:var(--gold)}
  .mmenu nav a:focus-visible,.mmenu .btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:12px}
  .mmenu .btn{position:relative}
  .mmenu p{position:relative;color:#D5DAE6;font-size:15px}
  .mm-ring{position:absolute;border-radius:50%;border:1.5px solid rgba(255,255,255,.14);pointer-events:none}
  .mm1{width:130vmin;height:130vmin;right:-62vmin;bottom:-50vmin}
  .mm2{width:80vmin;height:80vmin;right:-37vmin;bottom:-25vmin;border-color:rgba(242,179,61,.35)}
}
@media (prefers-reduced-motion:reduce){
  .js .mmenu,.js.menu-open .mmenu,.mmenu nav a,.menu-open .mmenu nav a,.hamb span{transition:none}
}

/* Ronde 2: alles rond. Pillen, cirkels en ruimere hoeken */
.chip{border-radius:999px;padding:8px 18px 8px 8px}
.chip i{border-radius:50%}
.ic,.checks2 .ic{border-radius:50%}
.tl{border-radius:999px;padding:14px 30px 14px 14px;text-decoration:none;color:#FFF}
.tl img{width:52px;height:52px}
.tl:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.card{border-radius:32px}
.pk{border-radius:40px}
.rc,.pc,.val{border-radius:36px}
.grp-k{border-radius:40px}
.tw{border-radius:40px}
.form{border-radius:36px}
.form input{border-radius:999px;padding-inline:22px}
.form textarea{border-radius:26px;padding:14px 22px}
.faq details{border-radius:32px}
.sticker{border-radius:999px}
#doel-klanten,#doel-omzet,#doel-oliebollen{scroll-margin-top:96px}
@media (max-width:640px){
  .tl{padding:9px 24px 9px 9px}
  .tl img{width:44px;height:44px}
}

/* Ronde 3: Diensten. De groepskoppen worden grote cirkels die meelopen met de kaarten */
.grp{gap:clamp(24px,3vw,44px);margin-bottom:clamp(44px,5vw,76px);align-items:start}
.grp-c{align-self:stretch}
.grp-k{position:sticky;top:92px;aspect-ratio:1/1;border-radius:50%;overflow:visible;justify-content:center;align-items:center;text-align:center;padding:13%;gap:14px;min-height:0;box-shadow:0 26px 50px color-mix(in srgb,var(--c) 28%,transparent)}
.grp-k::before{content:"";position:absolute;inset:-14px;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--c) 45%,transparent);animation:draai 48s linear infinite;pointer-events:none}
.grp-k h2{font-size:clamp(28px,2.9vw,42px)}
.grp-k p{font-size:clamp(15.5px,1.25vw,17.5px);line-height:1.42}
.grp-k img{right:4%;bottom:3%;width:clamp(64px,7vw,96px);filter:drop-shadow(0 10px 12px rgba(39,43,65,.3))}
.grp-c .card{padding:26px 26px 24px;gap:10px}
.grp-c .card h3{margin-top:4px}
@media (min-width:1001px){
  .card.wide{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:20px;row-gap:4px;align-items:start}
  .card.wide .ic{grid-row:1/4}
  .card.wide h3{margin-top:2px}
  .card.wide{align-content:center}
  .card.wide .price{margin-top:8px;justify-self:start}
}
@media (max-width:1000px){
  .grp{gap:18px}
  .grp-k{position:relative;top:auto;aspect-ratio:auto;border-radius:40px;align-items:flex-start;text-align:left;padding:28px 96px 28px 28px;overflow:hidden}
  .grp-k::before{display:none}
  .grp-k img{right:-16px;bottom:-16px;width:104px}
}
@media (prefers-reduced-motion:reduce){.grp-k::before{animation:none}}

/* Ronde 4: vergelijkingstabel. Aanrader-kolom, ronde vinkjes, prijsrijen en kiesknoppen */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.tw{padding:clamp(10px,1.6vw,22px) clamp(14px,2.4vw,34px)}
.cmp{border-collapse:separate;border-spacing:0;font-size:16.5px}
.cmp thead th{position:sticky;top:0;z-index:2;background:#FFF;font-size:clamp(17px,1.5vw,21px);padding-block:20px 16px}
.cmp tbody th{font-weight:500;color:var(--ink);padding-block:13px}
.cmp th,.cmp td{border-bottom-color:#EDEFF6}
.cmp thead th:nth-child(3),.cmp td:nth-child(3){background:var(--pink-s)}
.cmp thead th:nth-child(3){border-radius:26px 26px 0 0}
.cmp .rij-kies td:nth-child(3){border-radius:0 0 26px 26px}
.yes{position:relative;width:28px;height:28px;border:0;border-radius:50%;background:currentColor;transform:none;vertical-align:middle}
.yes::after{content:"";position:absolute;left:10px;top:6px;width:7px;height:12px;border:solid #FFF;border-width:0 2.5px 2.5px 0;transform:rotate(42deg)}
.no{color:#6B7190;font-size:20px}
.cmp tbody tr:not(.rij-los,.rij-prijs,.rij-kies) th,.cmp tbody tr:not(.rij-los,.rij-prijs,.rij-kies) td{transition:background-color .2s ease}
.cmp .rij-los th,.cmp .rij-los td,.cmp .rij-prijs th{border-bottom:0}
.cmp .rij-los th{color:var(--mute)}
.cmp .rij-los td{font:500 16.5px/1.1 Outfit,Geist,sans-serif;text-decoration:line-through;text-decoration-thickness:1.5px;padding-top:20px}
.cmp .rij-los th{padding-top:20px}
.cmp tr.rij-prijs td{border-bottom:0;font:700 clamp(25px,2.5vw,36px)/1 Outfit,Geist,sans-serif;letter-spacing:-.025em;padding-block:4px 10px}
.cmp .rij-prijs th{font:700 19px/1.2 Outfit,Geist,sans-serif;padding-block:4px 10px}
.cmp tr.rij-kies td,.cmp .rij-kies th{border-bottom:0;padding-block:8px 18px}
.kies{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:min(112px,100%);padding:0 18px;border-radius:999px;background:var(--kc);color:#FFF;font:600 15.5px/1 Outfit,Geist,sans-serif;text-decoration:none;transition:transform .25s cubic-bezier(.2,.9,.3,1.3)}
.rij-kies td:nth-child(2){--kc:var(--blue)}.rij-kies td:nth-child(3){--kc:var(--pink)}.rij-kies td:nth-child(4){--kc:var(--green)}
.kies:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media (hover:hover) and (pointer:fine){
  .cmp tbody tr:not(.rij-los,.rij-prijs,.rij-kies):hover th,.cmp tbody tr:not(.rij-los,.rij-prijs,.rij-kies):hover td:not(:nth-child(3)){background:#F6F8FD}
  .cmp tbody tr:not(.rij-los,.rij-prijs,.rij-kies):hover td:nth-child(3){background:#FBDCE7}
  .kies:hover{transform:scale(1.06)}
}
@media (max-width:640px){
  .cmp thead{position:sticky;top:0;z-index:2;background:#FFF;border-radius:20px}
  .cmp thead th{position:static;padding:14px 2px 12px;font-size:15px}
  .cmp thead tr{border-bottom:1px solid #EDEFF6}
  .cmp thead th:nth-child(3){border-radius:18px 18px 0 0}
  .cmp tr{row-gap:2px;padding-block:8px}
  .cmp tbody th{grid-column:1/-1;padding:4px 2px;text-align:left;width:auto;border:0}
  .cmp td{display:grid;place-items:center;min-height:42px;border-radius:14px}
  .cmp tr.rij-prijs td{font-size:clamp(20px,6.2vw,24px);padding:8px 0}
  .cmp .rij-los td{padding:6px 0;font-size:15px}
  .cmp tr.rij-kies th{display:none}
  .cmp .rij-kies td,.cmp .rij-kies td:nth-child(3){padding:4px 3px;border-radius:14px}
  .kies{min-width:0;width:100%;padding:0 6px}
}

/* Ronde 5: pakketkaarten. Gelijke knoplijn, ronde aanrader-stempel, ringen op de hoofdkaart */
.packs{align-items:stretch;gap:clamp(14px,1.6vw,22px);padding-block:22px 6px}
.pk{padding:clamp(28px,2.8vw,40px)}
.pk.hl{margin-block:-22px;padding-block:clamp(44px,3.8vw,56px) clamp(32px,3vw,42px);background:radial-gradient(circle at 96% -4%,rgba(255,255,255,.14) 0 92px,transparent 93px),radial-gradient(circle at 96% -4%,rgba(255,255,255,.09) 0 190px,transparent 191px),radial-gradient(circle at 96% -4%,rgba(255,255,255,.05) 0 310px,transparent 311px),var(--grad)}
.pk h3{font-size:clamp(27px,2.5vw,34px)}
.pk .pr{margin-top:4px;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px}
.pk .pr small{margin-left:0}
.pk li:first-child:has(+ li){font-weight:400}
.sticker{top:-26px;right:clamp(14px,2vw,28px);display:grid;place-items:center;width:96px;height:96px;padding:10px;border-radius:50%;text-align:center;font:700 15px/1.1 Outfit,Geist,sans-serif;rotate:10deg;box-shadow:0 12px 24px rgba(150,20,70,.3);transition:rotate .5s cubic-bezier(.2,.9,.3,1.4)}
.pk .btn{margin-top:6px}
.pk ul{padding-top:18px;gap:12px}
.pk li{align-items:flex-start}
.pk li::before{flex:none;box-sizing:border-box;width:22px;height:22px;margin:-1px 0 0;border:0;border-radius:50%;background:var(--c) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l3 3 5-6' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;transform:none}
.pk.hl li::before{background-color:var(--gold);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l3 3 5-6' fill='none' stroke='%231E2235' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");border:0}
@media (hover:hover) and (pointer:fine){.pk.hl:hover .sticker{rotate:-8deg}}
@media (max-width:1000px){
  .packs{padding-block:30px 0;gap:18px}
  .pk.hl{margin-block:10px}
}
@media (prefers-reduced-motion:reduce){.sticker{transition:none}}

/* Ronde 6: formulieren. Focus, fout, goed en bevestiging */
.form input,.form textarea{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;outline:0}
.form input:hover,.form textarea:hover{border-color:#A9AEC4}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--pink);box-shadow:0 0 0 4px rgba(214,40,104,.18)}
.form input:focus-visible,.form textarea:focus-visible{outline:0}
.form input[aria-invalid="true"],.form textarea[aria-invalid="true"]{border-color:var(--pink-d);background:#FFF7FA}
.form input:user-valid:not(:placeholder-shown):not(:focus){padding-right:48px;background:#FFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%2315783B'/%3E%3Cpath d='M6 10.5l3 3 5-6' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 16px center/20px no-repeat}
.form input:placeholder-shown:user-valid{background-image:none}
.form label{font-weight:500}
.fout{display:flex;align-items:center;gap:7px;font-size:14.5px;font-weight:500;color:var(--pink-d);padding-left:6px}
.fout::before{content:"!";flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--pink-d);color:#FFF;font:700 12px/1 Outfit,Geist,sans-serif}
.scan{transition:box-shadow .25s ease}
.scan:focus-within{box-shadow:0 14px 32px rgba(39,43,65,.12),0 0 0 3px var(--pink)}
.scan input:focus-visible{outline:0}
.bev{display:none}
.form.klaar>:not(.bev){display:none}
.form.klaar{justify-content:center}
.form.klaar .bev{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;outline:0}
.bev-rond{display:block;width:88px;height:88px;margin-bottom:6px}
.bev-rond svg{display:block;width:100%;height:100%;overflow:visible}
.bev-rond circle{fill:var(--green-s);stroke:var(--green);stroke-width:3.5;stroke-dasharray:1;animation:bev-teken .7s cubic-bezier(.6,0,.2,1) both}
.bev-rond path{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;animation:bev-teken .45s cubic-bezier(.6,0,.2,1) .45s both}
@keyframes bev-teken{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.bev h3{font-size:clamp(24px,2.2vw,30px);line-height:1.12;letter-spacing:-.02em}
.bev p{font-size:17px;line-height:1.5;color:var(--mute);max-width:24em}
.bev-terug{margin-top:6px;min-height:46px;padding:0 20px;border:0;border-radius:999px;background:var(--pink-s);color:var(--pink-d);font:600 15.5px/1 Outfit,Geist,sans-serif;cursor:pointer;transition:background-color .2s ease}
.bev-terug:hover{background:#FBDCE7}
.bev-terug:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.bev-rond circle,.bev-rond path{animation:none}}

/* Ronde 7: Kraamcheck. Formulier loopt mee op groot scherm, ring vult zich */
@media (min-width:1001px){.formbox{position:sticky;top:92px}}
.form-kop{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.vol-ring{position:relative;display:block;flex:none;width:64px;height:64px}
.vol-ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}
.vol-ring circle{fill:none;stroke:#E7EAF2;stroke-width:5}
.vol-ring .vol{stroke:var(--green);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--vol,0));transition:stroke-dashoffset .5s cubic-bezier(.2,.7,.2,1)}
.vol-ring img{position:absolute;inset:11px;width:42px;height:42px;display:block;transition:transform .7s cubic-bezier(.2,.9,.3,1.3)}
.compleet .vol-ring img{transform:rotate(360deg)}
.formbox h2{font-size:clamp(26px,2.2vw,30px)}
.vol-tekst{margin-top:4px;font-weight:500}
.compleet .vol-tekst{color:var(--green)}
@media (prefers-reduced-motion:reduce){.vol-ring .vol,.vol-ring img{transition:none}}

/* Ronde 8: Over ons. Drie grote cirkels die elkaar raken */
@media (min-width:1101px){
  .vals{display:flex;justify-content:center;gap:0;padding-block:12px}
  .val{flex:1 1 0;max-width:444px;aspect-ratio:1/1;border-radius:50%;justify-content:center;align-items:center;text-align:center;padding:clamp(52px,4.8vw,70px);position:relative;box-shadow:0 26px 54px color-mix(in srgb,var(--c) 26%,transparent)}
  .val + .val{margin-left:-26px}
  .val:nth-child(2){z-index:1;translate:0 26px;box-shadow:0 0 0 8px var(--tint),0 26px 54px color-mix(in srgb,var(--c) 26%,transparent)}
  .val h3{font-size:clamp(26px,2.4vw,34px)}
  .val p{font-size:clamp(15.5px,1.2vw,17px);line-height:1.45}
}
@media (hover:hover) and (pointer:fine) and (min-width:1101px){
  .val{transition:transform .4s cubic-bezier(.2,.9,.3,1.25)}
  .val:hover{transform:scale(1.04);z-index:2}
}

/* Ronde 9: draaiende ronde stempels en koppen zonder losse dubbele punt */
.nb{white-space:nowrap}
.draai{display:block;position:relative;flex:none;width:clamp(120px,12vw,172px);aspect-ratio:1/1;border-radius:50%;pointer-events:none}
.draai svg{display:block;width:100%;height:100%;overflow:visible;animation:draai 22s linear infinite}
.draai text{font:700 9.4px Outfit,Geist,sans-serif;letter-spacing:.02em;fill:currentColor}
.draai img{position:absolute;inset:27%;width:46%;height:46%;display:block}
.st-grap{order:3;color:#FFF;margin-left:auto}
.grap-in .btn{order:2}
.grap-in p{order:1}
.grap-in{flex-wrap:wrap}
.st-form{position:absolute;top:-52px;right:-30px;z-index:1;width:112px;background:var(--gold);color:var(--ink);box-shadow:0 14px 28px rgba(9,30,90,.3)}
.st-form text{font-size:10px}
.form{position:relative}
@media (max-width:1100px){.st-form{right:-6px}}
@media (max-width:640px){
  .st-grap{display:none}
  .st-form{width:92px;top:-44px;right:-4px}
}
@media (prefers-reduced-motion:reduce){.draai svg{animation:none}}
.circ{margin-inline:.1em}
@media (min-width:641px){
  .grap-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px 40px;justify-items:start;align-items:center}
  .st-grap{grid-column:2;grid-row:1/3;width:clamp(130px,14vw,200px)}
  .grap-in .btn{grid-column:1;grid-row:2}
  .grap-in p{grid-column:1;grid-row:1}
}

/* Ronde 10: lichtkranten. Twee evenwijdige banden in plaats van over elkaar, oliebollen rollen mee */
.bands{height:150px;margin-top:0}
.bd{transform:rotate(-1.4deg)}
.bd1{top:26px;transform:rotate(-1.4deg)}
.bd2{top:76px;transform:rotate(-1.4deg)}
.tr img{animation:rolband 5s linear infinite}
@keyframes rolband{to{transform:rotate(360deg)}}
.bd2 .tr img{animation-direction:reverse}
@media (max-width:640px){
  .bands{height:122px}
  .bd1{top:18px}
  .bd2{top:62px}
  .bd{padding-block:11px}
}
@media (prefers-reduced-motion:reduce){.tr img{animation:none}}

/* Ronde 11: kaarten vullen zich met een cirkel vanuit het icoon; op een touchscreen geen plakkende hover */
.card::before{opacity:1;clip-path:circle(0 at 57px 57px);transition:clip-path .6s cubic-bezier(.3,.7,.2,1)}
.card:hover::before{opacity:1}
@media (hover:hover) and (pointer:fine){
  .card:hover::before{clip-path:circle(150% at 57px 57px)}
}
@media (hover:none),(pointer:coarse){
  .card:hover,.rc:hover,.val:hover,.tl:hover,.pk:hover,.btn:hover,.grp-k:hover img,.tl:hover img,.logo:hover img,.btn:hover i{transform:none}
  .card:hover{color:inherit;box-shadow:0 16px 36px rgba(9,30,90,.22)}
  .grp-c .card:hover,.checks2 .card:hover{box-shadow:0 10px 26px rgba(39,43,65,.08)}
  .card:hover p{color:var(--mute)}
  .card:hover .ic,.card:hover .tg,.card:hover .price{background:var(--cs);color:var(--c)}
  .card:hover .ic{transform:none}
  .card:hover::before{clip-path:circle(0 at 57px 57px)}
  .btn:hover{box-shadow:none}
  .btn:hover::before{width:0;height:0}
  .stap:hover .stap-foto{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .card::before{transition:none}
  .card:hover{transform:none}
}

/* Ronde 12: vragen. Open en dicht met een vloeiende hoogte, één tegelijk, kolom loopt mee */
.page{interpolate-size:allow-keywords}
.faq details{background:#FFF;box-shadow:0 8px 22px rgba(39,43,65,.05);transition:box-shadow .3s ease,background-color .2s ease;margin-bottom:14px;padding-inline:clamp(20px,2.4vw,30px)}
.faq details[open]{box-shadow:0 18px 40px rgba(168,29,82,.13)}
.faq details::details-content{block-size:0;overflow:clip;transition:block-size .42s cubic-bezier(.3,.7,.2,1),content-visibility .42s allow-discrete}
.faq details[open]::details-content{block-size:auto}
summary{border-radius:18px;transition:color .2s ease}
summary:focus-visible{outline-offset:4px}
summary::after{content:"";background:var(--blue) linear-gradient(#FFF,#FFF) center/14px 2.5px no-repeat;position:relative;transition:transform .35s cubic-bezier(.2,.9,.3,1.3),background-color .25s ease}
summary{position:relative}
summary::before{content:"";position:absolute;right:16px;top:50%;width:2.5px;height:14px;margin-top:-7px;background:#FFF;border-radius:2px;z-index:1;transition:transform .35s cubic-bezier(.2,.9,.3,1.3)}
details[open] summary::before{transform:rotate(90deg)}
details[open] summary::after{transform:rotate(180deg);background-color:var(--pink)}
@media (hover:hover) and (pointer:fine){summary:hover{color:var(--pink-d)}}
.faq-meer{margin-top:18px;font-size:17px;line-height:1.5;color:var(--mute)}
.faq-meer a{display:inline-flex;align-items:center;min-height:44px;color:var(--pink-d);font-weight:600;text-underline-offset:3px}
@media (min-width:1001px){.faq>div:first-child{position:sticky;top:104px}}
@media (prefers-reduced-motion:reduce){
  .faq details::details-content,summary::after,summary::before{transition:none}
}

/* Ronde 13: pagina-overgang. De volgende pagina opent in een cirkel, het menu blijft staan */
@view-transition{navigation:auto}
.balk{view-transition-name:balk}
::view-transition-old(root){animation:none}
::view-transition-new(root){animation:vt-open .62s cubic-bezier(.65,0,.2,1) both}
@keyframes vt-open{from{clip-path:circle(0 at 50% 42%)}to{clip-path:circle(150vmax at 50% 42%)}}
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-new(root){animation:none}
}

/* Ronde 14: banners op subpagina's groter en rustiger; tegels op home krijgen een pijl */
.hero.sub h1{font-size:clamp(42px,5.3vw,78px);line-height:1.03;letter-spacing:-.032em}
.hero.sub .lead{font-size:clamp(18px,1.55vw,22px);max-width:28em}
.hero.sub .hero-g{padding-bottom:clamp(36px,4vw,64px)}
.pill{box-shadow:0 8px 20px rgba(39,43,65,.06)}
.tl{justify-content:flex-start}
.tl::after{content:"";flex:none;margin-left:auto;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .3s cubic-bezier(.2,.9,.3,1.3),background-color .2s ease}
@media (hover:hover) and (pointer:fine){.tl:hover::after{transform:translateY(4px);background-color:rgba(255,255,255,.32)}}
.tl{padding-right:14px}
@media (max-width:640px){
  .hero.sub h1{font-size:10.4vw}
  .tl{padding-right:10px}
}

/* Ronde 15: drie doelen. Grotere koppen, ronde nummers en foto's die meebewegen met het scrollen */
.doel-nr{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border-radius:50%;background:var(--ks);color:var(--kl);font:700 22px/1 Outfit,Geist,sans-serif}
.doel h3{font-size:clamp(40px,4.8vw,72px);line-height:1.02;letter-spacing:-.032em}
.doel-tekst p{font-size:clamp(18px,1.5vw,21px);line-height:1.5;margin-top:18px}
.doel .checks{margin-top:24px}
.doel-tekst{max-width:560px}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .doel .d-groot img{animation:doel-zoom linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes doel-zoom{from{transform:scale(1.2)}to{transform:scale(1.02)}}
    .doel .d-klein{animation:doel-los linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes doel-los{from{translate:0 44px}to{translate:0 -28px}}
    .doel .stempel{animation:doel-stem linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes doel-stem{from{rotate:-14deg;translate:0 30px}to{rotate:10deg;translate:0 -24px}}
  }
}
@media (max-width:640px){
  .doel-nr{width:46px;height:46px;font-size:20px;margin-bottom:14px}
}

/* Ronde 16: telefoon. Compacte dienstkaarten en een vaste ronde knop onderin */
.vast-cta{display:none}
@media (max-width:640px){
  .js .vast-cta{display:inline-flex;position:fixed;z-index:30;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));translate:-50% 0;transform:translateY(calc(100% + 40px));box-shadow:0 14px 30px rgba(150,20,70,.38);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
  .js .vast-cta.aan{transform:none}
  .vast-cta.btn:hover{transform:translateY(calc(100% + 40px))}
  .vast-cta.btn.aan:hover{transform:none}
  .cards .card,.grp-c .card,.checks2 .card{display:grid;grid-template-columns:50px minmax(0,1fr);column-gap:14px;row-gap:8px;padding:20px;align-items:center}
  .cards .ic,.grp-c .ic,.checks2 .ic{width:50px;height:50px}
  .cards .ic svg,.grp-c .ic svg{width:23px;height:23px}
  .cards .card h3,.grp-c .card h3,.checks2 .card h3{margin:0;font-size:20px}
  .cards .card p,.grp-c .card p,.checks2 .card p{grid-column:1/-1;margin:0;font-size:16px}
  .grp-c .card .price{grid-column:1/-1;margin-top:2px;justify-self:start}
  .cards .tg{display:none}
  .card::before{clip-path:circle(0 at 45px 45px)}
  .sec{padding-block:clamp(64px,8vw,120px)}
  .dienst,.pakket,#over{padding-top:92px}
  .h2{font-size:clamp(33px,9.6vw,44px)}
  .doelen{gap:64px}
}
@media (prefers-reduced-motion:reduce){.js .vast-cta{transition:none}}

/* Ronde 17: voettekst. Ruime tikdoelen, boogje bovenaan, knop terug naar boven */
.links a{padding:14px 6px}
a.logo,.foot a.logo{min-height:44px}
.foot a:not(.logo){display:flex;align-items:center;min-height:44px;padding-block:0;width:fit-content;transition:color .2s ease,translate .25s cubic-bezier(.2,.9,.3,1.3)}
.foot strong{margin-bottom:6px;font-size:17px}
.foot{padding-block:clamp(64px,7vw,92px) 36px}
.foot p{font-size:16.5px}
.foot-w{position:relative;border-radius:clamp(36px,6vw,84px) clamp(36px,6vw,84px) 0 0;margin-top:calc(clamp(36px,6vw,84px)*-1);z-index:1;overflow:clip}
.end{padding-bottom:clamp(36px,6vw,84px)}
.foot a:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:8px}
.woordmerk{font-size:clamp(38px,10.3vw,190px);padding-bottom:clamp(14px,2vw,24px)}
@media (hover:hover) and (pointer:fine){.foot a:not(.logo):hover{translate:4px 0}}
.naar-boven{position:fixed;z-index:30;right:clamp(14px,2vw,28px);bottom:calc(14px + env(safe-area-inset-bottom,0px));display:block;width:56px;height:56px;border-radius:50%;background:#FFF;box-shadow:0 12px 26px rgba(39,43,65,.22);transform:translateY(calc(100% + 40px));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.naar-boven.aan{transform:none}
.naar-boven svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.naar-boven circle{fill:none;stroke:#E7EAF2;stroke-width:4}
.naar-boven .nb-vol{stroke:var(--pink);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,0))}
.naar-boven img{position:absolute;inset:11px;width:34px;height:34px;rotate:calc(var(--p,0)*1080deg)}
.naar-boven:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media (max-width:640px){
  .naar-boven{width:52px;height:52px;right:10px}
  .naar-boven img{inset:10px;width:32px;height:32px}
  .formbox .st-form{top:-70px;right:-2px}
  .foot{gap:22px}
}
@media (prefers-reduced-motion:reduce){.naar-boven{transition:none}.naar-boven img{rotate:none}}

/* Ronde 18: stappen en routes. Lijn kleurt de stappen in, rondjes tussen de kaarten */
.stap-foto b{transition:background-color .3s ease,scale .35s cubic-bezier(.2,.9,.3,1.5);background:var(--blue)}
.stap.bereikt .stap-foto b{background:var(--pink);scale:1.12}
.stap-foto{transition:transform .35s cubic-bezier(.2,.9,.3,1.3),box-shadow .35s ease}
.stap.bereikt .stap-foto{box-shadow:0 0 0 7px #FFF,0 0 0 10px var(--pink),0 18px 36px rgba(150,20,70,.2)}
.stap h3{font-size:clamp(20px,1.75vw,25px);margin-top:4px}
.stap p{font-size:16.5px}
.rc{position:relative;padding:32px;gap:12px;background:radial-gradient(circle at 104% -6%,rgba(255,255,255,.14) 0 76px,transparent 77px),radial-gradient(circle at 104% -6%,rgba(255,255,255,.08) 0 150px,transparent 151px),var(--c)}
.rc b{padding:9px 14px}
.rc b.num{display:grid;place-items:center;width:50px;height:50px;padding:0;border-radius:50%;font-size:22px}
.route{gap:clamp(22px,2.4vw,34px)}
.rc + .rc::before{content:"";position:absolute;z-index:1;left:calc(clamp(22px,2.4vw,34px)/-2 - 21px);top:50%;margin-top:-21px;width:42px;height:42px;border-radius:50%;background:#FFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23272B41' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat;box-shadow:0 8px 18px rgba(39,43,65,.2)}
@media (max-width:1000px){
  .stap.bereikt .stap-foto{box-shadow:0 0 0 5px var(--blue-s),0 0 0 8px var(--pink)}
  .rc + .rc::before{left:50%;margin-left:-21px;top:calc(clamp(22px,2.4vw,34px)/-2 - 21px);margin-top:0;transform:rotate(90deg)}
}
@media (prefers-reduced-motion:reduce){.stap-foto b,.stap-foto{transition:none}}

/* Ronde 19: beweging bij het laden en scrollen. Alleen transform, tekst staat altijd in beeld */
.js .hero h1 .w{animation-delay:calc(.08s + var(--i)*60ms)}
.js:has(.opening) .hero h1 .w{animation-delay:calc(1.45s + var(--i)*70ms)}
@keyframes pop{from{scale:.74}to{scale:1}}
@keyframes chip-in{from{scale:.6;translate:0 14px}to{scale:1;translate:0 0}}
@media (prefers-reduced-motion:no-preference){
  .js .rond .foto{animation:pop 1s cubic-bezier(.2,.9,.3,1.2) .05s both}
  .js .rond .klein1{animation-delay:.16s}
  .js .rond .klein2{animation-delay:.26s}
  .js:has(.opening) .rond .foto{animation-delay:1.35s}
  .js:has(.opening) .rond .klein1{animation-delay:1.47s}
  .js:has(.opening) .rond .klein2{animation-delay:1.57s}
  .grap::before,.end::before,.dienst::before,.blue-sec::before{content:"";position:absolute;left:50%;top:50%;width:min(130vw,1500px);aspect-ratio:1/1;margin:calc(min(130vw,1500px)/-2) 0 0 calc(min(130vw,1500px)/-2);border-radius:50%;pointer-events:none;z-index:0}
  .grap::before{background:rgba(15,94,45,.55)}
  .end::before{background:rgba(255,255,255,.04);left:90%;z-index:-1}
  .dienst::before,.blue-sec::before{background:rgba(255,255,255,.05);left:12%}
  .grap,.dienst,.blue-sec{overflow:clip;isolation:isolate}
  .grap-in{position:relative;z-index:1}
  .dienst>.wrap,.blue-sec>.wrap{position:relative;z-index:1}
  .boog{z-index:1}
  @supports (animation-timeline:view()){
    .grap::before,.end::before,.dienst::before,.blue-sec::before{animation:cirkel-groei linear both;animation-timeline:view();animation-range:entry 0% exit 60%}
    @keyframes cirkel-groei{from{transform:scale(.18)}to{transform:scale(1)}}
    .blob>img{animation:blob-in linear both;animation-timeline:view();animation-range:entry 0% cover 50%}
    @keyframes blob-in{from{transform:scale(.86) rotate(-5deg)}to{transform:none}}
  }
}

/* Ronde 20: beelden. Afmetingen in de HTML, hoogte volgt de breedte, animaties rusten buiten beeld */
img{height:auto}
.opening img,.rol,.baan img{height:auto}
.foto img,.stap-foto img{height:100%}
.tl img,.logo img,.lab img,.pill img,.tr img{aspect-ratio:1/1;object-fit:contain}
.foto,.stap-foto,.blob{background:#E9E4DC}
.rust .tr,.rust .tr img,.rust.draai svg,.rust .foto img,.rust .ring-d,.rust .baan,.rust .chip{animation-play-state:paused}
.grp-k.rust::before{animation-play-state:paused}
@media (max-width:640px){.cmp tr.rij-kies td,.cmp tr.rij-kies td:nth-child(3){padding:4px 3px;background:none}}
.blob{background:none}

/* Ronde 22: toetsenbord. Springlink en één focusring die op licht en donker zichtbaar is */
.skip{position:fixed;z-index:90;left:14px;top:-80px;display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:999px;background:var(--navy);color:#FFF;font:600 16px/1 Outfit,Geist,sans-serif;text-decoration:none;transition:top .2s ease}
.skip:focus{top:12px}
main:focus{outline:0}
:is(a,button,summary,[tabindex="0"]):focus-visible{outline:3px solid var(--navy) !important;outline-offset:3px !important;box-shadow:0 0 0 3px var(--gold)}
.hamb:focus-visible{box-shadow:0 0 0 3px var(--gold)}
.vast-cta:not(.aan),.naar-boven:not(.aan){visibility:hidden}
.js .vast-cta,.naar-boven{transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s linear .45s}
.js .vast-cta.aan,.naar-boven.aan{transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s}
.cmp thead th:nth-child(3),.cmp td:nth-child(3){color:var(--pink-d)}
.cmp .rij-kies td:nth-child(3){color:#FFF}
.no{color:#5A6080}
.cmp td .no{color:#5A6080}
@media (prefers-reduced-motion:reduce){.skip,.js .vast-cta,.naar-boven,.js .vast-cta.aan,.naar-boven.aan{transition:none}}

/* Ronde 23: contrast. Roze tekst op lichtroze donkerder, ringen op kaarten verdonkeren in plaats van verlichten */
.cp .tg,.cp .price{color:var(--pink-d)}
.card.cp:hover .tg,.card.cp:hover .price{color:var(--pink-d)}
.pk.hl{background:radial-gradient(circle at 96% -4%,rgba(30,34,53,.12) 0 92px,transparent 93px),radial-gradient(circle at 96% -4%,rgba(30,34,53,.08) 0 190px,transparent 191px),radial-gradient(circle at 96% -4%,rgba(30,34,53,.05) 0 310px,transparent 311px),var(--grad)}
.rc{background:radial-gradient(circle at 104% -6%,rgba(30,34,53,.14) 0 76px,transparent 77px),radial-gradient(circle at 104% -6%,rgba(30,34,53,.08) 0 150px,transparent 151px),var(--c)}
.pk.hl .for{color:#FFF}

/* Ronde 24: eenheid tussen pagina's. Elke knop dezelfde vorm met pijlrondje, knop in elke banner */
.b-line{padding:0 8px 0 24px;--c:var(--ink)}
.b-line i{background:var(--c);color:#FFF}
.b-line:hover i{background:#FFF;color:var(--c)}
.pk .b-line{justify-content:center}
.meer{display:flex;justify-content:center;margin-top:clamp(28px,3vw,44px)}
.hero.sub .cta{margin-top:clamp(24px,2.4vw,32px)}
#vergelijk{scroll-margin-top:110px}
@media (hover:none),(pointer:coarse){.b-line:hover i{background:var(--c);color:#FFF}.b-line:hover{background:transparent;color:var(--c)}}

/* Ronde 25: muis. Een rond volgrondje, alleen bij een echte muis en niet bij rustige beweging */
.volger{display:none}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .volger{display:block;position:fixed;left:0;top:0;z-index:80;width:0;height:0;pointer-events:none}
  .volger::before{content:"";position:absolute;left:-14px;top:-14px;width:28px;height:28px;border-radius:50%;border:2px solid var(--pink);opacity:0;transform:scale(.8);transition:opacity .2s ease,transform .3s cubic-bezier(.2,.9,.3,1.3),background-color .25s ease,border-color .25s ease}
  .volger.zicht::before{opacity:.85}
  .volger.groot::before{transform:scale(1.9);background:rgba(242,179,61,.18);border-color:var(--gold)}
}

/* Opening maar één keer per bezoek */
.zonder-opening .opening{display:none}
/* Privacy en 404 */
.juridisch{padding:44px 0 88px}
.juridisch p,.juridisch ul,.juridisch h2{max-width:760px}
.juridisch h2{font:700 clamp(22px,2.4vw,28px)/1.2 Outfit,Geist,sans-serif;letter-spacing:-.02em;margin:36px 0 10px}
.juridisch h2:first-child{margin-top:0}
.juridisch p,.juridisch li{line-height:1.65}
.juridisch p{margin:0 0 12px}
.juridisch ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px}
.juridisch a:not(.btn){color:var(--pink-d);font-weight:600}
.knoppen-404{display:flex;flex-wrap:wrap;gap:12px}
/* Formulieren */
.vangnet{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-privacy{margin:0;font-size:14px;line-height:1.5;color:inherit;opacity:.8}
.form-privacy a{color:inherit;text-decoration:underline}
.form-fout{margin:0;font-size:15px;font-weight:500;color:var(--pink-d)}
.form-fout[hidden]{display:none}
.btn[aria-busy=true]{opacity:.7;cursor:progress}
