@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/pjs-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/pjs-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}
:root{--bg:#f3f2ef;--card:#fff;--ink:#1c1c1c;--mute:#6d6a63;--line:#e4e1db;--red:#d4132f;--red-d:#b80f28;--dark:#252525;--r:20px;--font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--sh:0 1px 2px rgba(28,28,28,.04),0 10px 30px -12px rgba(28,28,28,.12)}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}img,svg{max-width:100%}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}.narrow{max-width:820px}
h1,h2,h3{font-weight:800;letter-spacing:-.03em;line-height:1.1}
h1{font-size:clamp(2.4rem,5.4vw,4.4rem)}h2{font-size:clamp(1.8rem,3.4vw,2.7rem);margin-bottom:1.6rem}h3{font-size:1.25rem;letter-spacing:-.02em;line-height:1.25}
p+p{margin-top:1rem}.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--mute);max-width:60ch;margin-top:1.3rem}
.label{font-weight:700;font-size:.9rem;color:var(--red);margin-bottom:1rem}.muted{color:var(--mute);font-size:.95rem}.small{font-size:.84rem;color:var(--mute);margin-top:.8rem}
.red{color:var(--red)}.hp{position:absolute;left:-9999px}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(243,242,239,.88);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .2s}
.nav.on{border-color:var(--line)}
.nav-in{display:flex;align-items:center;gap:28px;height:76px}
.logo{display:inline-flex}.logo img{height:28px;width:auto;display:block}
.menu{display:flex;gap:6px;margin-left:12px;flex:1}
.menu>a,.has-dd>a{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;font-weight:600;font-size:.95rem;text-decoration:none;color:#3b3935;transition:background .15s}
.menu>a:hover,.has-dd>a:hover,.menu [aria-current=page]{background:rgba(28,28,28,.06)}
.has-dd{position:relative}.dd{position:absolute;top:100%;left:0;min-width:270px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s}
.has-dd:hover .dd,.has-dd:focus-within .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:600;font-size:.95rem}.dd a:hover{background:var(--bg)}
.dico{width:34px;height:34px;border-radius:9px;background:rgba(238,30,62,.09);color:var(--red);display:grid;place-items:center;padding:7px}
.dd-all{color:var(--red);justify-content:space-between;border-top:1px solid var(--line);border-radius:0 0 10px 10px!important;margin-top:4px}
.nav-r{display:flex;align-items:center;gap:12px}
.langs{display:flex;background:rgba(28,28,28,.06);border-radius:10px;padding:3px}
.langs a{font-size:.74rem;font-weight:700;padding:6px 9px;border-radius:7px;text-decoration:none;color:var(--mute)}.langs a[aria-current]{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.burger{display:none;background:none;border:0;width:42px;height:42px;position:relative;cursor:pointer}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}.burger span:first-child{top:16px}.burger span:last-child{top:24px}
.burger[aria-expanded=true] span:first-child{top:20px;transform:rotate(45deg)}.burger[aria-expanded=true] span:last-child{top:20px;transform:rotate(-45deg)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--red);color:#fff;font:700 .95rem var(--font);padding:13px 22px;border-radius:12px;text-decoration:none;border:0;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;white-space:nowrap}
.btn:hover{background:var(--red-d);transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(238,30,62,.7)}.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(3px)}
.btn-sm{padding:10px 16px;font-size:.88rem}.btn-lg{padding:16px 28px;font-size:1rem}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px #cfccc5}.btn-ghost:hover{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-light{background:#fff;color:var(--ink)}.btn-light:hover{background:#fff;box-shadow:0 10px 30px -10px rgba(0,0,0,.4)}
.link{display:inline-flex;gap:8px;align-items:center;font-weight:700;font-size:.95rem;text-decoration:none;color:var(--red)}.link .arr{transition:transform .2s}a:hover>.link .arr,.link:hover .arr{transform:translateX(3px)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid rgba(238,30,62,.4);outline-offset:3px;border-radius:8px}
/* hero */
.hero{padding:64px 0 40px}.hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.hero h1{margin-bottom:0}.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:2rem}
.facts{list-style:none;padding:0;display:flex;gap:34px;flex-wrap:wrap;margin-top:2.6rem}.facts li{display:grid;gap:2px}.facts b{font-size:1.55rem;font-weight:800;letter-spacing:-.03em}.facts span{font-size:.85rem;color:var(--mute)}
.hero-vis{position:relative;aspect-ratio:1/1.02}
.red-panel{position:absolute;inset:0;background:var(--red);border-radius:32px}
.frame{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 24px 50px -20px rgba(0,0,0,.45);border:1px solid rgba(0,0,0,.06)}
.fbar{display:flex;gap:5px;padding:8px 11px;background:#f1efeb}.fbar i{width:7px;height:7px;border-radius:50%;background:#d6d2ca}
.frame img{display:block;width:100%;height:auto}
.hero-vis .frame{position:absolute;width:76%}
.hero-vis .f1{left:-6%;top:9%;transform:rotate(-4deg)}.hero-vis .f2{right:-5%;top:30%;z-index:2;transform:rotate(2deg)}.hero-vis .f3{left:6%;bottom:6%;z-index:3;transform:rotate(-1.5deg);width:68%}
.trust{padding:34px 0 10px}.trust .wrap{display:flex;flex-wrap:wrap;gap:12px 34px;align-items:center;color:#a5a29a;font-size:.95rem}.trust span{font-weight:600;color:var(--ink)}.trust b{font-weight:700}
/* sections */
.sec{padding:100px 0}.sec.tight{padding:48px 0 70px}.alt{background:#fff;border-block:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:1.6rem}.sec-head h2{margin:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.split.top{align-items:start}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px;box-shadow:var(--sh)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
a.card{text-decoration:none;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}a.card:hover{transform:translateY(-4px);border-color:#cfccc5}
.svc h3,.svc h2{margin:22px 0 10px}.svc h2{font-size:1.7rem}.svc p{color:var(--mute);font-size:.98rem;flex:1}.svc .link{margin-top:20px}
.ico{width:52px;height:52px;border-radius:14px;background:rgba(238,30,62,.09);color:var(--red);display:grid;place-items:center;padding:12px}.ico.sm{width:40px;height:40px;padding:9px;border-radius:11px}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding:0}.chips li{font-size:.8rem;font-weight:600;background:var(--bg);border-radius:99px;padding:5px 12px;color:#55524b}
.big{padding:36px}
.feat .chk{color:var(--red);margin-bottom:14px}.feat p{color:var(--mute);margin-top:8px;font-size:.98rem}
.dark{background:var(--dark);color:#f3f2ef}.dark h2{color:#fff}.dark p{color:#b9b5ac}
.dark .label{color:#ff7d8f}.ticks{list-style:none;padding:0;margin:1.6rem 0 2.2rem;display:grid;gap:12px}.ticks li{display:flex;gap:12px;align-items:center;color:#f3f2ef}.ticks .chk{color:#ff7d8f;flex:none}
.mock{background:#1a1a1a;border:1px solid #3a3a3a;border-radius:16px;overflow:hidden;box-shadow:0 40px 80px -30px #000}
.mock-bar{display:flex;align-items:center;gap:6px;padding:12px 14px;border-bottom:1px solid #333}.mock-bar i{width:9px;height:9px;border-radius:50%;background:#444}.mock-bar span{margin-left:12px;font-size:.72rem;color:#8a8a8a}
.kan{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px}.col h4{font:700 .72rem var(--font);color:#9a9a9a;display:flex;justify-content:space-between;margin-bottom:10px}.col h4 em{font-style:normal;color:#ff7d8f}
.kcard{background:#252525;border:1px solid #333;border-radius:9px;padding:10px;margin-bottom:8px;display:grid;gap:6px}.kcard b{width:26px;height:6px;border-radius:3px;background:var(--red)}.kcard u{display:block;height:5px;border-radius:3px;background:#3a3a3a}.col:nth-child(4) .kcard b{background:#4cd48a}
/* cases */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;box-shadow:var(--sh);transition:transform .2s,border-color .2s}
.case:hover{transform:translateY(-4px);border-color:#cfccc5}
.case-art{position:relative;background:#e9e6e0;padding:22px 22px 0;overflow:hidden}.case-art .frame{border-radius:10px 10px 0 0;box-shadow:0 12px 30px -14px rgba(0,0,0,.4);transform:translateY(6px);transition:transform .3s}.case:hover .case-art .frame{transform:none}
.case-art img{aspect-ratio:16/10;object-fit:cover;object-position:top}
.stat{position:absolute;right:14px;top:14px;background:#fff;border-radius:99px;padding:4px 12px;font-size:.74rem;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.case-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.case-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.case-meta b{font-size:.74rem;background:rgba(238,30,62,.09);color:var(--red);padding:3px 10px;border-radius:99px}.case-meta span{font-size:.74rem;background:var(--bg);color:#55524b;padding:3px 10px;border-radius:99px;font-weight:600}
.case h3{font-size:1.35rem;margin-bottom:8px}.case p{color:var(--mute);font-size:.95rem;flex:1}.case .link{margin-top:16px}
/* steps / faq / misc */
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:2rem}.step{background:var(--bg);box-shadow:none}.step-n{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ink);color:#fff;font-weight:800;font-size:.9rem;margin-bottom:56px}.step p{color:var(--mute);font-size:.96rem;margin-top:8px}
.alt h2{margin-bottom:1.6rem}
.portrait{margin:0;position:relative;border-radius:28px;overflow:hidden;background:var(--dark)}.portrait img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 20%}
.portrait figcaption{position:absolute;left:16px;bottom:16px;background:#fff;border-radius:14px;padding:12px 18px;font-weight:800;line-height:1.3}.portrait figcaption span{display:block;font-weight:500;font-size:.82rem;color:var(--mute)}
.prose p{color:#3b3935;font-size:1.08rem}.facts.light{margin-top:2.2rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.cta-band{background:var(--red);color:#fff;border-radius:32px;padding:clamp(32px,5vw,64px);display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}.cta-band h2{margin:0 0 .6rem;color:#fff;max-width:18ch}.cta-band p{opacity:.9;max-width:46ch}
.phead{padding:70px 0 30px}.phead h1{max-width:20ch;font-size:clamp(2.2rem,4.6vw,3.6rem)}.crumb{display:inline-block;margin-bottom:1.4rem;font-weight:600;font-size:.92rem;color:var(--mute);text-decoration:none}.crumb:hover{color:var(--red)}
.small-h{margin-bottom:1rem}.row-links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.row-links a.card{flex-direction:row;align-items:center;gap:14px;padding:18px 22px}.row-links b{flex:1}.row-links .arr{color:var(--red)}
.faq{display:grid;gap:12px}.faq details{padding:0;overflow:hidden}.faq summary{cursor:pointer;list-style:none;padding:22px 28px;font-weight:700;display:flex;justify-content:space-between;gap:16px;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';font-size:1.5rem;font-weight:500;color:var(--red);line-height:1}.faq details[open] summary::after{content:'–'}.faq p{padding:0 28px 24px;color:var(--mute);margin:0}
/* contact + booking */
.contact-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:start}.side{display:grid;gap:16px}.side h3{margin-bottom:10px}.side a{color:var(--red);font-weight:600;text-decoration:none}
.info{list-style:none;display:grid;gap:12px;padding:24px 28px}.info li{display:flex;gap:12px;align-items:center;font-weight:600}.info .chk{color:var(--red)}
.book{padding:30px}.tabs{display:inline-flex;background:var(--bg);border-radius:12px;padding:4px;margin-bottom:26px}.tabs button{border:0;background:none;font:700 .9rem var(--font);padding:10px 18px;border-radius:9px;cursor:pointer;color:var(--mute)}.tabs [aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.steps-l{font-weight:700;font-size:.9rem;margin:20px 0 12px}.steps-l:first-child{margin-top:0}
.days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}.day{flex:none;min-width:74px;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:10px 8px;text-align:center;cursor:pointer;font:600 .8rem var(--font);color:var(--mute);transition:.15s}.day b{display:block;font-size:1.35rem;color:var(--ink);letter-spacing:-.02em;line-height:1.2}.day:hover{border-color:var(--ink)}.day[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#c9c6bf}.day[aria-pressed=true] b{color:#fff}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.time{border:1.5px solid var(--line);background:#fff;border-radius:11px;padding:11px 6px;font:700 .92rem var(--font);cursor:pointer;transition:.15s}.time:hover{border-color:var(--red);color:var(--red)}.time[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
#bookform,.form{display:grid;gap:16px;margin-top:6px}#bookform[hidden]{display:none}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:7px;font-size:.84rem;font-weight:600;color:#55524b}
input,select,textarea{font:inherit;font-size:1rem;font-weight:400;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;width:100%;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 4px rgba(238,30,62,.12)}
.status{font-weight:600;min-height:1.2em}.status.ok{color:#14864b}.status.bad{color:var(--red)}
/* footer */
.foot{background:var(--dark);color:#cfcbc2;padding:72px 0 28px;margin-top:20px}
.foot-in{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:40px}.foot h3{font-size:.85rem;font-weight:700;color:#fff;margin-bottom:14px}
.foot a,.foot span{display:block;color:#cfcbc2;text-decoration:none;font-size:.92rem;margin-bottom:9px}.foot a:hover{color:#fff}.foot-brand p{margin-top:14px;font-size:.92rem;color:#a29e95;max-width:26ch}
.foot-b{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:52px;padding-top:24px;border-top:1px solid #3a3a3a;font-size:.8rem;color:#a5a29a}.foot-b span,.foot-b a{display:inline;margin:0;font-size:.8rem;color:#a5a29a}
/* motion */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
@media(max-width:1020px){
  .menu{position:fixed;inset:76px 0 auto;background:var(--bg);flex-direction:column;gap:0;margin:0;padding:10px 24px 24px;border-bottom:1px solid var(--line);display:none;max-height:calc(100vh - 76px);overflow:auto}.menu.open{display:flex}
  .menu>a,.has-dd>a{padding:15px 4px;border-radius:0;border-bottom:1px solid var(--line);font-size:1.05rem;width:100%}.has-dd{width:100%}.has-dd>a svg{display:none}
  .dd{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:none;padding:0 0 0 10px;min-width:0}.dd a{padding:12px 4px;border-bottom:1px solid var(--line);border-radius:0}.dd-all{display:none!important}.dico{display:none}
  .burger{display:block}.nav-r .btn{display:none}.nav-in{justify-content:space-between}
  .hero-in,.split,.contact-grid{grid-template-columns:1fr;gap:44px}.hero-vis{max-width:560px}
  .grid4{grid-template-columns:repeat(2,1fr)}.grid3,.cases{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.foot-in{grid-template-columns:1fr 1fr}.row-links{grid-template-columns:1fr}.sec{padding:76px 0}
}
@media(max-width:640px){
  body{font-size:16px}.wrap{width:calc(100% - 32px)}.hero{padding:36px 0 20px}.grid4,.grid3,.grid2,.cases,.steps,.row,.foot-in{grid-template-columns:1fr}
  .facts{gap:22px}.kan{grid-template-columns:repeat(2,1fr)}.card{padding:24px}.cta-band{border-radius:24px}.sec-head{flex-direction:column;align-items:flex-start}.step-n{margin-bottom:28px}
  .nav-in{height:68px}.menu{inset:68px 0 auto}.langs a{padding:6px 7px}.book{padding:20px}
}

.tech{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}.tech span{font-weight:700;margin-right:6px}.tech b{font-size:.82rem;font-weight:600;background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 14px;color:#55524b}
.stat{letter-spacing:-.01em}
/* fix: grid-kolommen mogen krimpen, scrollbare rijen blijven binnen hun kaart */
.contact-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.hero-in,.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.contact-grid>*,.hero-in>*,.split>*,.grid4>*,.grid3>*,.grid2>*,.cases>*{min-width:0}
.days{max-width:100%}.book{overflow:hidden}
html,body{overflow-x:clip}
@media(max-width:1020px){.contact-grid,.hero-in,.split{grid-template-columns:minmax(0,1fr)}}

.mock-in{padding:16px}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.tile{background:#252525;border:1px solid #333;border-radius:12px;padding:14px}.tile b{display:block;font-size:1.35rem;color:#fff;letter-spacing:-.03em;line-height:1.2}.tile span{font-size:.72rem;color:#9a9a9a}
.mrows{list-style:none;padding:0;display:grid;gap:8px}.mrows li{display:flex;align-items:center;gap:12px;background:#252525;border:1px solid #333;border-radius:11px;padding:12px 14px;font-size:.88rem;color:#e8e6e1}.mrows span{flex:1}.mrows em{font-style:normal;font-size:.74rem;color:#9a9a9a}
.mrows i{width:9px;height:9px;border-radius:50%;background:var(--red)}.mrows .d1{background:#4cd48a}.mrows .d2{background:#f0b429}.mrows .d3{background:#6aa7ff}
.tech.ex{margin-top:40px}
@media(max-width:640px){.tiles{grid-template-columns:1fr 1fr 1fr}.tile{padding:10px}.tile b{font-size:1.05rem}}
.sec>.wrap>h2,.sec .wrap>h2{margin-bottom:2.2rem}.sec-head h2{margin-bottom:0}.cta-band h2{margin-bottom:.6rem}.svc.big h2{margin-bottom:10px}

/* proces-tijdlijn */
.process{position:relative;overflow:hidden}
.process::before{content:'';position:absolute;right:-180px;top:-180px;width:520px;height:520px;border-radius:50%;background:var(--red);opacity:.16;filter:blur(2px)}
.process .wrap{position:relative}.process h2{margin-bottom:3.6rem!important}
.tl{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;position:relative}
.tl::before,.tl::after{content:'';position:absolute;left:0;top:10px;height:2px}
.tl::before{right:0;background:#3b3b3b}
.tl::after{width:0;background:var(--red);transition:width 1.6s cubic-bezier(.6,.1,.2,1) .3s}.tl.in::after{width:100%}
.tl li{position:relative;padding:0 28px 0 0}
.dot{display:block;width:22px;height:22px;border-radius:50%;background:var(--dark);border:2px solid var(--red);position:relative;z-index:1;margin-bottom:26px;box-shadow:0 0 0 6px var(--dark)}
.tl li:first-child .dot{background:var(--red)}
.big-n{display:block;font-size:clamp(3.4rem,6vw,5.2rem);font-weight:800;letter-spacing:-.05em;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.28);transition:color .3s,-webkit-text-stroke-color .3s;margin-bottom:18px}
.tl li:hover .big-n{color:var(--red);-webkit-text-stroke-color:var(--red)}
.tl h3{color:#fff;font-size:1.35rem;margin-bottom:10px}.tl p{color:#b9b5ac;font-size:.97rem;margin-bottom:22px}
.out{border-top:1px solid #3b3b3b;padding-top:14px;display:grid;gap:3px}.out small{font-size:.74rem;color:#a5a29a;font-weight:600}.out em{font-style:normal;font-weight:700;color:#fff}
@media(max-width:1020px){.tl{grid-template-columns:1fr 1fr;row-gap:48px}.tl::before,.tl::after{display:none}.tl li{padding-right:20px}}
@media(max-width:640px){.tl{grid-template-columns:1fr;row-gap:36px}.tl li{padding:0 0 0 38px;border-left:2px solid #3b3b3b;margin-left:10px}.dot{position:absolute;left:-12px;top:0;margin:0}.big-n{font-size:3rem}.process::before{width:300px;height:300px}}

.legal{padding:clamp(24px,4vw,48px)}.legal h2{font-size:1.35rem;margin:2rem 0 .7rem;letter-spacing:-.02em}.legal h2:first-child{margin-top:0}.legal p,.legal li{color:#3b3935;font-size:1rem}.legal ul,.legal ol{margin:.8rem 0 .8rem 1.3rem;display:grid;gap:.4rem}.legal a{color:var(--red);font-weight:600}
/* proces: onderste blokken op één lijn */
.tl li{display:flex;flex-direction:column}.tl li p{flex:1}.tl .out{margin-top:auto}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.filters button{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:9px 18px;font:700 .9rem var(--font);cursor:pointer;color:#55524b;transition:.15s}.filters button:hover{border-color:var(--ink)}.filters .on{background:var(--ink);border-color:var(--ink);color:#fff}
.case[hidden]{display:none}

/* hero v2: geen rood vlak, zwevende schermen */
.hero{padding:56px 0 30px}.hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px}
.hero h1{font-size:clamp(2rem,3.9vw,3.3rem);line-height:1.08;max-width:19ch}
.hero .lead{font-size:clamp(1rem,1.3vw,1.15rem);max-width:50ch}.facts{margin-top:2.2rem}
.hero-vis{position:relative;aspect-ratio:1/.86;min-height:360px}
.hero-vis::before{content:'';position:absolute;inset:-4% -2%;background-image:radial-gradient(#cfccc5 1.4px,transparent 1.6px);background-size:22px 22px;-webkit-mask-image:radial-gradient(closest-side,#000 40%,transparent 100%);mask-image:radial-gradient(closest-side,#000 40%,transparent 100%);opacity:.8}
.fw{position:absolute;transition:transform .25s ease-out;will-change:transform;transform:translate3d(calc(var(--mx,0)*var(--d,10)*1px),calc(var(--my,0)*var(--d,10)*1px),0) rotate(var(--r,0deg))}
.fw .frame{box-shadow:0 30px 60px -25px rgba(28,28,28,.45),0 4px 14px rgba(28,28,28,.08);animation:float 7s ease-in-out infinite}
.w1{left:0;top:4%;width:62%;--r:-4deg;animation:rise .9s cubic-bezier(.2,.8,.2,1) .1s both}.w1 .frame{animation-delay:-1s}
.w2{right:0;top:20%;width:66%;z-index:2;--r:2.5deg;animation:rise .9s cubic-bezier(.2,.8,.2,1) .25s both}.w2 .frame{animation-delay:-3.5s;animation-duration:8s}
.w3{left:10%;bottom:0;width:58%;z-index:3;--r:-1.5deg;animation:rise .9s cubic-bezier(.2,.8,.2,1) .4s both}.w3 .frame{animation-delay:-5s;animation-duration:6.5s}
.hero-vis .frame{position:static;width:100%;transform:none}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes rise{from{opacity:0;translate:0 36px}to{opacity:1;translate:0 0}}
.chip{position:absolute;z-index:5;background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 16px;font-weight:700;font-size:.82rem;box-shadow:0 10px 26px -10px rgba(28,28,28,.3);animation:float 6s ease-in-out infinite}
.chip::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);margin-right:8px}
.c1{left:-2%;bottom:30%;animation-delay:-2s}.c2{right:2%;top:4%;animation-delay:-4s}.c3{right:6%;bottom:6%;animation-delay:-1s}
@media(prefers-reduced-motion:reduce){.fw,.fw .frame,.chip{animation:none}}
@media(max-width:1020px){.hero-vis{max-width:600px;margin-inline:auto;width:100%}}
@media(max-width:640px){.hero-vis{min-height:260px}.chip{font-size:.72rem;padding:6px 12px}.c1{display:none}}
/* taalswitcher: vast, verticaal, rechts */
.langs.side{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:60;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:5px;box-shadow:0 10px 30px -10px rgba(28,28,28,.25)}
.langs.side a{width:38px;text-align:center;padding:9px 0;border-radius:9px}
.langs.side a:hover{background:var(--bg)}.langs.side a[aria-current]{background:var(--ink);color:#fff;box-shadow:none}
@media(max-width:640px){.langs.side{right:8px;padding:3px}.langs.side a{width:34px;padding:8px 0}}

.shot{margin:0}.shot .frame{box-shadow:0 40px 80px -40px rgba(28,28,28,.5),0 4px 14px rgba(28,28,28,.08);border-radius:16px}.shot-sec{padding-bottom:20px}
.shot figcaption{text-align:center;color:var(--mute);font-size:.95rem;margin-top:18px}

.c1{left:-3%;top:1%;bottom:auto}.c2{right:1%;top:5%}.c3{left:1%;bottom:2%;right:auto}
@media(max-width:640px){.c1{display:block}.c3{left:0}}

/* labels hangen aan hun eigen scherm, op de buitenhoek */
.fw .chip{position:absolute;z-index:6;white-space:nowrap;animation:float 6s ease-in-out infinite}
.w1 .chip{left:-18px;top:-16px;animation-delay:-1s}
.w2 .chip{right:-14px;top:-18px;animation-delay:-3s}
.w3 .chip{left:-16px;bottom:-16px;animation-delay:-2s}
@media(max-width:640px){.fw .chip{font-size:.68rem;padding:5px 10px}.w1 .chip{left:-6px}.w2 .chip{right:-4px}.w3 .chip{left:-4px}}
/* submenu: 5px ruimte onder de knop, met onzichtbare brug zodat hover niet wegvalt */
.dd{margin-top:5px}.dd::before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px}
@media(max-width:1020px){.dd{margin-top:0}.dd::before{display:none}}

/* pagina-overgang: zachte dissolve (View Transitions), fallback = fade-in */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .28s ease both}::view-transition-new(root){animation:vt-in .38s ease both}
@keyframes vt-out{to{opacity:0}}@keyframes vt-in{from{opacity:0}}
.nav{view-transition-name:site-nav}.langs.side{view-transition-name:site-langs}
::view-transition-group(site-nav),::view-transition-group(site-langs){animation-duration:0s}
@supports not (view-transition-name:x){body{animation:pagein .4s ease both}@keyframes pagein{from{opacity:0}}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}body{animation:none!important}}
/* cookiebalk */
.cookie{position:fixed;left:20px;bottom:20px;z-index:80;width:min(440px,calc(100% - 40px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px -20px rgba(28,28,28,.4);padding:20px 22px}
.cookie[hidden]{display:none}.cookie p{font-size:.9rem;color:#3b3935;line-height:1.55}.cookie a{color:var(--red);font-weight:600}.cookie-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
/* AI-assistent */
.ai[hidden]{display:none}.ai{position:fixed;right:20px;bottom:20px;z-index:70}
.ai-fab{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border:0;border-radius:99px;padding:13px 20px;font:700 .9rem var(--font);cursor:pointer;box-shadow:0 14px 30px -12px rgba(28,28,28,.55);transition:transform .2s,background .2s}.ai-fab:hover{transform:translateY(-2px);background:#000}
.ai-fab svg{color:#ff8a9b}
.ai-panel{position:absolute;right:0;bottom:62px;width:min(390px,calc(100vw - 40px));height:min(560px,calc(100vh - 130px));background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 70px -25px rgba(28,28,28,.5);display:flex;flex-direction:column;overflow:hidden;animation:aiin .25s ease both}
@keyframes aiin{from{opacity:0;transform:translateY(10px) scale(.98)}}.ai-panel[hidden]{display:none}
.ai-panel header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:var(--ink);color:#fff}.ai-x{background:none;border:0;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}
.ai-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.ai-m{max-width:88%;padding:11px 14px;border-radius:14px;font-size:.93rem;line-height:1.5;word-wrap:break-word}.ai-m a{color:var(--red);font-weight:600}
.ai-m.bot{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}.ai-m.me{background:var(--red);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.ai-m.typing{color:var(--mute)}.ai-m.typing::after{content:'…';animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px;background:var(--bg)}.ai-chips button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 12px;font:600 .78rem var(--font);cursor:pointer;color:#3b3935}.ai-chips button:hover{border-color:var(--ink)}
.ai-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.ai-form input{flex:1;padding:11px 13px;font-size:.92rem}
.ai-note{font-size:.7rem;color:var(--mute);padding:0 14px 12px;line-height:1.4}.ai-note a{color:var(--mute);text-decoration:underline}
@media(max-width:640px){.cookie{left:10px;bottom:10px;width:calc(100% - 20px)}.ai{right:10px;bottom:10px}.ai-fab span{display:none}.ai-fab{padding:14px}.ai-panel{right:-0px;bottom:56px}.langs.side{top:42%}}

/* onderhoud: pakketten */
.packs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.pack{display:flex;flex-direction:column}.pack h3{font-size:1.1rem;margin-bottom:14px;min-height:2.6em}
.price{display:flex;align-items:baseline;gap:6px;margin-bottom:18px}.price b{font-size:2.4rem;font-weight:800;letter-spacing:-.04em}.price span{color:var(--mute);font-weight:600}
.plist{list-style:none;padding:0;display:grid;gap:10px;margin-bottom:22px;flex:1}.plist li{display:flex;gap:10px;font-size:.9rem;color:#3b3935;line-height:1.5}.plist .chk{flex:none;color:var(--red);margin-top:1px}.pack .btn{justify-content:center}
.terms{max-width:760px}.terms li{font-size:1rem}
@media(max-width:1020px){.packs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.packs{grid-template-columns:1fr}.pack h3{min-height:0}}
/* blog */
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.post{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;box-shadow:var(--sh);transition:transform .2s,border-color .2s}.post:hover{transform:translateY(-4px);border-color:#cfccc5}
.post-img{background:#e9e6e0;aspect-ratio:16/9;overflow:hidden;display:grid;place-items:center}.post-img img{width:100%;height:100%;object-fit:cover}
.post-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}.post-body time{font-size:.8rem;font-weight:700;color:var(--red);margin-bottom:8px}.post-body h3{font-size:1.35rem;margin-bottom:8px}.post-body p{color:var(--mute);font-size:.95rem;flex:1}.post-body .link{margin-top:16px}
.legal img{display:block;max-width:100%;height:auto;border-radius:12px;margin:20px 0}.legal figure{margin:0}.legal h4{font-size:1.1rem;margin:1.6rem 0 .5rem}.legal blockquote{border-left:3px solid var(--red);padding-left:16px;color:#3b3935;margin:1rem 0}
@media(max-width:760px){.posts{grid-template-columns:1fr}}
.plist{align-content:start}
/* mobiel: hero onder elkaar (overschrijft hero v2 kolommen) */
@media(max-width:1020px){.hero-in{grid-template-columns:minmax(0,1fr)!important;gap:32px}.hero h1{max-width:none}}
@media(max-width:640px){.hero h1{font-size:clamp(1.9rem,8.4vw,2.4rem)}.hero-vis{min-height:300px;margin-top:8px}}
@media(max-width:640px){.langs.side{right:4px;padding:2px;border-radius:11px}.langs.side a{width:28px;padding:7px 0;font-size:.68rem}.hero .lead,.hero h1{padding-right:34px}}
/* mobiel: schermen tussen tekst en knoppen */
@media(max-width:1020px){.hero-copy{display:contents}.hero-copy h1{order:1}.hero-copy .lead{order:2}.hero-vis{order:0}.hero-copy .cta{order:4;margin-top:0}.hero-copy .facts{order:5;margin-top:0}.hero-in{gap:26px}}
/* 404 */
.e404{text-align:center}.e404 .cta{justify-content:center}.e404 .lead{margin-inline:auto}
.big404{display:flex;justify-content:center;align-items:center;gap:clamp(6px,2vw,18px);font-weight:800;font-size:clamp(6rem,24vw,12rem);line-height:1;letter-spacing:-.06em;margin-bottom:10px}
.big404 span{color:var(--ink)}.big404 i{width:.78em;height:.78em;border-radius:50%;background:#ee1e3e;display:block;animation:wob404 3.2s ease-in-out infinite;position:relative}
.big404 i::after{content:'?';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-style:normal;font-size:.5em;letter-spacing:0}
@keyframes wob404{0%,100%{transform:translateX(-.18em) rotate(-20deg)}50%{transform:translateX(.18em) rotate(20deg)}}
@media(prefers-reduced-motion:reduce){.big404 i{animation:none}}
.e404-l a{color:var(--mute)}
@media(max-width:640px){.langs.side{top:26%;transition:opacity .25s,transform .25s}.langs.side.away{opacity:0;pointer-events:none;transform:translateY(-50%) translateX(14px)}}
/* casepagina: schermafbeeldingen */
.shots{display:grid;grid-template-columns:minmax(0,1fr);gap:44px}
.shots figure{margin:0}.shots img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--line);box-shadow:0 24px 50px -30px rgba(28,28,28,.4)}
.shots figcaption{font-size:.9rem;color:var(--mute);margin-top:12px;line-height:1.5}


.case-xl{max-width:none;margin:0}.case-xl .frame{width:100%}
.shots.phones{display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:8px}
.shots.phones figure{flex:0 0 20%;min-width:0;text-align:center;scroll-snap-align:center}.shots.phones img{border:0;box-shadow:none;border-radius:0}
.shots.phones figcaption{font-size:.82rem;padding:0 8px}
@media(max-width:900px){.shots.phones{margin-inline:-24px;padding-inline:24px;scroll-padding-inline:24px}.shots.phones figure{flex:0 0 64%}.shots.phones figcaption{font-size:.9rem}}
