
:root{
  --brand:#3366ff;          /* logo-blauw */
  --brand-700:#2b55d4;
  --accent:#ff6a00;         /* logo-oranje */
  --ink:#0f172a;
  --ink-700:#334155;
  --ink-500:#64748b;
  --bg:#ffffff;
  --muted:#f1f5f9;
  --radius:18px;
  --shadow:0 10px 30px rgba(2,8,23,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 ui-sans-serif, system-ui, Segoe UI, Roboto, Helvetica, Arial}
img{max-width:100%;display:block}
.container{max-width:1120px;margin:0 auto;padding:0 20px}

/* Header */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid rgba(2,8,23,.06);transition:padding .2s ease}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0; transition:padding .2s ease}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand img{height:42px;width:auto;transition:height .2s ease}
.brand span{font-weight:800;letter-spacing:.2px}
.nav .links{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.nav a{color:var(--ink-700);text-decoration:none;font-weight:600}
.btn{display:inline-block;background:linear-gradient(180deg,var(--brand),var(--brand-700));color:#fff;border:1px solid rgba(2,8,23,.05);cursor:pointer;
  padding:12px 18px;border-radius:14px;box-shadow:0 6px 16px rgba(51,102,255,.25);font-weight:700;transition:transform .15s ease, box-shadow .15s ease, background .2s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(51,102,255,.35)}
.btn.alt{background:#0f172a}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid rgba(2,8,23,.12);box-shadow:none}
.btn.ghost:hover{background:#f8fafc}
.header.shrink .nav{padding:6px 0}
.header.shrink .brand img{height:34px}

/* Sections */
section{scroll-margin-top:88px}
.hero{border-bottom:1px solid rgba(2,8,23,.06);
  background: radial-gradient(1200px 400px at 0% -20%, rgba(51,102,255,.08), transparent 60%), #fff}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:64px 0}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:24px;padding:36px 0}}
.kicker{display:inline-block;padding:6px 10px;border:1px solid rgba(2,8,23,.12);border-radius:999px;font-size:12px;color:var(--ink-700);background:#fff;font-weight:700}
h1{font-size:42px;line-height:1.1;margin:14px 0 12px;color:#0b2046}
.hero p{font-size:18px;color:var(--ink-700);margin:0 0 16px}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.badge{font-size:12px;background:var(--muted);padding:6px 10px;border-radius:999px;border:1px solid rgba(2,8,23,.06);font-weight:600}
.hero-illustration{aspect-ratio: 4/3;border-radius:22px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid rgba(2,8,23,.06);box-shadow:var(--shadow);display:grid;place-items:center;padding:14px}

.section{padding:56px 0}
.section h2{font-size:32px;line-height:1.2;margin:0 0 12px;font-weight:800;position:relative;padding-left:14px;color:#0b2046}
.section h2:before{content:"";position:absolute;left:0;top:6px;width:6px;height:22px;border-radius:3px;background:linear-gradient(180deg,var(--brand),var(--accent))}
.section p.lead{font-size:18px;color:var(--ink-700);margin:0 0 26px}

.grid{display:grid;gap:16px}
.grid.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.grid.columns-3,.grid.columns-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid.columns-3,.grid.columns-4{grid-template-columns:1fr}}

.card{border:1px solid rgba(2,8,23,.08);background:#fff;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:transform .12s ease, box-shadow .12s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 46px rgba(2,8,23,.12)}
.card h3{margin:0 0 6px;font-size:18px;color:#0b2046}
.card .tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.6px;color:var(--brand);background:rgba(51,102,255,.08);border:1px solid rgba(51,102,255,.18);padding:4px 8px;border-radius:999px;margin-bottom:8px}
.card p{margin:0;color:var(--ink-700)}
.list{display:grid;gap:10px;margin:12px 0 0}
.list li{display:flex;gap:8px;align-items:flex-start;list-style:none}
.check{width:22px;height:22px;border-radius:6px;background:#fff;display:inline-grid;place-items:center;border:1px solid rgba(2,8,23,.12)}
.check span{width:12px;height:12px;background:conic-gradient(from 90deg,var(--brand),var(--accent));display:block;border-radius:3px}

.split{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
@media (max-width:980px){.split{grid-template-columns:1fr}}

.steps{counter-reset: step}
.step{position:relative;display:flex;gap:14px;align-items:flex-start;padding:12px 0}
.step:before{content:"";position:absolute;left:14px;top:28px;bottom:-12px;width:2px;background:rgba(2,8,23,.08)}
.step:last-child:before{display:none}
.step .num{counter-increment: step;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:0 4px 10px rgba(51,102,255,.25)}
.step .content h4{margin:0 0 6px}

/* Brands horizontal scroller */
.brand-strip{overflow-x:auto;padding:4px 0}
.brand-strip::-webkit-scrollbar{height:8px}
.brand-strip::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:8px}
.brand-row{display:flex;gap:14px;min-width:max-content}
.brand-card{flex:0 0 240px;display:grid;place-items:center;background:#fff;border:1px solid rgba(2,8,23,.08);border-radius:16px;box-shadow:var(--shadow);padding:18px}

/* References cards modern */
.project-card{border:1px solid rgba(2,8,23,.08);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow);transition:transform .12s ease, box-shadow .12s ease}
.project-card:hover{transform:translateY(-2px);box-shadow:0 18px 48px rgba(2,8,23,.14)}
.project-media{aspect-ratio: 16/10; background:linear-gradient(135deg,#eef2ff,#fff); display:block}
.project-body{padding:14px}
.project-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-500)}
.project-tag{font-size:11px;font-weight:800;color:var(--accent);background:rgba(255,106,0,.08);border:1px solid rgba(255,106,0,.2);padding:4px 8px;border-radius:999px}

/* Contact */
.cta{background:linear-gradient(180deg,#fff,#f8fafc);border-top:1px solid rgba(2,8,23,.06);border-bottom:1px solid rgba(2,8,23,.06)}
.cta .box{border:1px solid rgba(2,8,23,.08);background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:grid;gap:10px;align-items:center}
.contact-split{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:stretch}
@media (max-width:900px){.contact-split{grid-template-columns:1fr}}
.contact-photo{border:1px solid rgba(2,8,23,.06);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.form-vertical .grid{grid-template-columns:1fr !important}
.form-vertical input,.form-vertical textarea{width:100%;border:1px solid rgba(2,8,23,.12);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}
.form-vertical label.card{padding:12px}
.form-vertical .small{color:var(--ink-500)}

/* Footer */
.footer{padding:28px 0;color:var(--ink-700);font-size:14px}
.footer a{color:inherit}
.footer .made{opacity:.8}
.address{display:grid;gap:4px;font-size:14px}
.footer .links{display:flex;gap:14px;flex-wrap:wrap}
.footer .links a{text-decoration:underline;text-underline-offset:3px}
.footer .wrap{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
@media (max-width:800px){.footer .wrap{grid-template-columns:1fr}}

/* Reveal */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease, transform .5s ease}
.reveal.visible{opacity:1;transform:none}
