/* ==========================================================================
   Digitale Menuborden
   Motion graphics · CSS 3D · WebGL
   ========================================================================== */

:root {
	--bg: #06060c;
	--bg-2: #0b0b17;
	--panel: rgba(255, 255, 255, .035);
	--panel-2: rgba(255, 255, 255, .065);
	--line: rgba(255, 255, 255, .09);
	--line-2: rgba(255, 255, 255, .18);
	--text: #f4f4fb;
	--muted: #a7a7c2;
	--violet: #7c5cff;
	--cyan: #22d3ee;
	--pink: #ff3d8b;
	--amber: #ffb547;
	--lime: #b9ff66;
	--grad: linear-gradient(100deg, var(--cyan) 0%, var(--violet) 50%, var(--pink) 100%);
	--font-d: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-b: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--r: 18px;
	--r-lg: 28px;
	--container: 1240px;
	--header-h: 76px;
	--ease: cubic-bezier(.22, 1, .36, 1);
	--ease-io: cubic-bezier(.76, 0, .24, 1);
	color-scheme: dark;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font: 400 1.0625rem/1.65 var(--font-b);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
	text-rendering: optimizeLegibility;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-d); font-weight: 600; line-height: 1.05; letter-spacing: -.025em; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
::selection { background: var(--violet); color: #fff; }
:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; border-radius: 6px; }

.screen-reader-text, .sr-only {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
	position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 10px 16px;
	background: #fff; color: #000; border-radius: 10px; transform: translateY(-200%);
	transition: transform .3s var(--ease);
}
.skip-link:focus { transform: none; }

.container { width: min(100% - 32px, var(--container)); margin-inline: auto; }
.container--narrow { width: min(100% - 32px, 780px); }
.section { position: relative; padding: clamp(84px, 11vw, 160px) 0; }
.section--tight { padding: clamp(48px, 6vw, 80px) 0; }
section[id], [id="contact"] { scroll-margin-top: calc(var(--header-h) - 10px); }

/* Grain + cursor */
.grain {
	position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: .06;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: grain 1s steps(6) infinite;
}
@keyframes grain {
	0% { transform: translate(0, 0); } 20% { transform: translate(-5%, 3%); } 40% { transform: translate(3%, -6%); }
	60% { transform: translate(-7%, 2%); } 80% { transform: translate(5%, 6%); } 100% { transform: translate(0, 0); }
}
.cursor { display: none; }
.has-cursor .cursor {
	display: block; position: fixed; top: 0; left: 0; z-index: 999; pointer-events: none;
	width: 0; height: 0; mix-blend-mode: difference;
}
.has-cursor .cursor span {
	position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%;
	background: #fff; transition: transform .35s var(--ease), opacity .3s;
}
.has-cursor .cursor.is-hover span { transform: scale(3.4); }
.has-cursor .cursor.is-hidden span { opacity: 0; }

/* ---------- Typografie & helpers ---------- */
.eyebrow {
	display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px;
	font: 500 .78rem/1 var(--font-d); letter-spacing: .18em; text-transform: uppercase; color: var(--cyan);
}
.eyebrow::before { content: ""; width: 26px; height: 1px; background: currentColor; }
.hero .eyebrow::before { display: none; }
.eyebrow { padding: 9px 14px 9px 12px; border: 1px solid var(--line); border-radius: 99px; background: var(--panel); }
.section-title { font-size: clamp(2.3rem, 5.4vw, 4.6rem); letter-spacing: -.035em; max-width: 14ch; }
.section-title em, .hero-title em, .page-title em { font-style: normal; }
.section-lead { color: var(--muted); font-size: clamp(1.05rem, 1.4vw, 1.22rem); max-width: 58ch; }
.section-head { margin-bottom: clamp(44px, 6vw, 80px); }
.section-head--center { text-align: center; }
.section-head--center .section-title, .section-head--center .section-lead { margin-inline: auto; }
.grad-text {
	background: var(--grad); background-size: 200% auto; -webkit-background-clip: text; background-clip: text;
	color: transparent; animation: gradShift 6s linear infinite; font-style: normal;
}
@keyframes gradShift { to { background-position: 200% center; } }

.live-dot {
	position: relative; display: inline-block; width: 8px; height: 8px; border-radius: 50%;
	background: var(--lime); box-shadow: 0 0 12px var(--lime); flex: none;
}
.live-dot::after {
	content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid var(--lime);
	animation: ping 1.8s var(--ease) infinite;
}
@keyframes ping { from { transform: scale(.6); opacity: 1; } to { transform: scale(2.2); opacity: 0; } }

.icon { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Knoppen ---------- */
.btn {
	--bx: 0px; --by: 0px;
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 14px 22px; border-radius: 99px; border: 1px solid transparent; cursor: pointer;
	font: 600 .98rem/1 var(--font-d); letter-spacing: -.01em; text-decoration: none; white-space: nowrap;
	transform: translate(var(--bx), var(--by));
	transition: transform .4s var(--ease), background .3s, border-color .3s, box-shadow .4s var(--ease), color .3s;
	isolation: isolate; overflow: hidden;
}
.btn .icon { transition: transform .4s var(--ease); }
.btn:hover .icon { transform: translateX(4px); }
.btn-primary {
	color: #fff; background: linear-gradient(100deg, var(--violet), var(--pink));
	box-shadow: 0 10px 40px -10px rgba(124, 92, 255, .8), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.btn-primary::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, var(--cyan), var(--violet));
	opacity: 0; transition: opacity .4s;
}
.btn-primary:hover::before { opacity: 1; }
.btn-primary::after {
	content: ""; position: absolute; top: 0; bottom: 0; width: 40%; left: -60%; z-index: -1;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent);
	transform: skewX(-20deg); animation: sheen 4.5s var(--ease) infinite;
}
@keyframes sheen { 0%, 60% { left: -60%; } 100% { left: 130%; } }
.btn-ghost { background: var(--panel); border-color: var(--line-2); color: var(--text); backdrop-filter: blur(10px); }
.btn-ghost:hover { border-color: var(--text); background: var(--panel-2); }
.btn-sm { padding: 11px 16px; font-size: .9rem; }
.btn-lg { padding: 18px 28px; font-size: 1.04rem; }
.btn-block { width: 100%; }

.link-arrow {
	display: inline-flex; align-items: center; gap: 8px; font: 600 .95rem/1.3 var(--font-d); color: var(--cyan);
	text-decoration: none;
}
.link-arrow .icon { transition: transform .4s var(--ease); }
.link-arrow:hover .icon { transform: translateX(5px); }

/* ---------- Header ---------- */
.site-header {
	position: fixed; inset: 0 0 auto; z-index: 100; height: var(--header-h);
	transition: background .4s, border-color .4s, backdrop-filter .4s, transform .5s var(--ease);
	border-bottom: 1px solid transparent;
}
.site-header.is-scrolled {
	background: rgba(6, 6, 12, .72); backdrop-filter: blur(18px) saturate(1.4); border-color: var(--line);
}
.site-header.is-hidden { transform: translateY(-100%); }
.header-inner { height: 100%; display: flex; align-items: center; gap: 28px; }
.brand, .custom-logo-link { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.custom-logo { max-height: 44px; width: auto; }
.brand-name { font: 700 1.18rem/1 var(--font-d); letter-spacing: -.03em; }
.brand-mark { display: inline-flex; align-items: flex-end; gap: 3px; height: 22px; }
.brand-mark i { width: 5px; border-radius: 3px; background: var(--grad); animation: eq 1.4s var(--ease-io) infinite alternate; }
.brand-mark i:nth-child(1) { height: 60%; }
.brand-mark i:nth-child(2) { height: 100%; animation-delay: -.4s; }
.brand-mark i:nth-child(3) { height: 40%; animation-delay: -.8s; }
@keyframes eq { 0% { transform: scaleY(.45); } 100% { transform: scaleY(1); } }
.brand-mark i { transform-origin: bottom; }

.primary-nav .menu { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; }
.primary-nav .menu a {
	position: relative; display: block; padding: 10px 14px; border-radius: 99px; text-decoration: none;
	font: 500 .95rem/1 var(--font-d); color: var(--muted); transition: color .3s, background .3s;
}
.primary-nav .menu a:hover, .primary-nav .menu .current-menu-item > a { color: var(--text); background: var(--panel-2); }
.primary-nav .sub-menu { display: none; }
.nav-cta { display: none; }
.nav-toggle {
	display: none; position: relative; width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid var(--line-2); background: var(--panel); cursor: pointer;
}
.nav-toggle i {
	position: absolute; left: 14px; right: 14px; height: 2px; border-radius: 2px; background: var(--text);
	transition: transform .5s var(--ease), top .5s var(--ease);
}
.nav-toggle i:nth-of-type(1) { top: 18px; }
.nav-toggle i:nth-of-type(2) { top: 26px; }
.nav-open .nav-toggle i:nth-of-type(1) { top: 22px; transform: rotate(45deg); }
.nav-open .nav-toggle i:nth-of-type(2) { top: 22px; transform: rotate(-45deg); }

@media (max-width: 1080px) {
	.nav-toggle { display: block; }
	.header-cta { display: none; }
	.primary-nav {
		position: fixed; inset: 0; z-index: -1; display: flex; flex-direction: column; justify-content: center;
		gap: 28px; padding: 100px 24px 40px; background: rgba(6, 6, 12, .96); backdrop-filter: blur(20px);
		clip-path: circle(0 at calc(100% - 40px) 38px); transition: clip-path .8s var(--ease-io); visibility: hidden;
	}
	.nav-open .primary-nav { clip-path: circle(150% at calc(100% - 40px) 38px); visibility: visible; }
	.primary-nav .menu { flex-direction: column; gap: 0; }
	.primary-nav .menu a { font-size: clamp(1.8rem, 7vw, 2.6rem); color: var(--text); padding: 12px 0; background: none !important; }
	.primary-nav .menu li { opacity: 0; transform: translateY(30px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
	.nav-open .primary-nav .menu li { opacity: 1; transform: none; }
	.nav-open .primary-nav .menu li:nth-child(2) { transition-delay: .05s; }
	.nav-open .primary-nav .menu li:nth-child(3) { transition-delay: .1s; }
	.nav-open .primary-nav .menu li:nth-child(4) { transition-delay: .15s; }
	.nav-open .primary-nav .menu li:nth-child(5) { transition-delay: .2s; }
	.nav-open .primary-nav .menu li:nth-child(6) { transition-delay: .25s; }
	.nav-open .primary-nav .menu li:nth-child(7) { transition-delay: .3s; }
	.nav-cta { display: inline-flex; align-self: flex-start; }
	.nav-open { overflow: hidden; }
}

/* ---------- Animatie-states (alleen met JS) ---------- */
.js .reveal {
	opacity: 0; transform: translateY(40px); filter: blur(8px);
	transition: opacity 1.1s var(--ease), transform 1.1s var(--ease), filter 1.1s var(--ease);
	transition-delay: var(--d, 0s);
}
.js .reveal.is-in { opacity: 1; transform: none; filter: none; }

[data-split] .w { display: inline-block; white-space: nowrap; perspective: 700px; }
[data-split] .c { display: inline-block; }
.js [data-split] .c {
	opacity: 0; transform: translateY(.7em) rotateX(-90deg); transform-origin: 50% 100%;
	transition: transform 1s var(--ease), opacity .8s var(--ease);
	transition-delay: calc(var(--ci) * 24ms + var(--d, 0s));
}
.js [data-split].is-in .c { opacity: 1; transform: none; }
[data-split] em .c, [data-split] em {
	color: var(--violet);
	color: color-mix(in oklab, var(--cyan), var(--pink) calc(var(--k, .5) * 100%));
}
[data-split] em .c { text-shadow: 0 0 40px color-mix(in oklab, var(--violet) 50%, transparent); }

.js [data-stagger] > * {
	opacity: 0; transform: translateY(50px) scale(.97);
	transition: opacity 1s var(--ease), transform 1s var(--ease);
	transition-delay: var(--d, 0s);
}
.js [data-stagger].is-in > * { opacity: 1; transform: none; }

/* ---------- Hero ---------- */
.hero {
	position: relative; isolation: isolate; overflow: hidden; min-height: 100vh; min-height: 100svh;
	display: grid; align-items: center; padding: calc(var(--header-h) + 40px) 0 100px;
}
.hero-canvas { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
.hero::after {
	content: ""; position: absolute; inset: auto 0 0; height: 30%; z-index: -1; pointer-events: none;
	background: linear-gradient(transparent, var(--bg));
}
.hero-grid-lines {
	position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
	background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%);
}
.hero-blobs { position: absolute; inset: 0; z-index: -1; pointer-events: none; filter: blur(70px); opacity: .55; }
.hero-blobs span { position: absolute; border-radius: 50%; mix-blend-mode: screen; animation: blob 18s var(--ease-io) infinite alternate; }
.hero-blobs span:nth-child(1) { width: 42vw; height: 42vw; left: -10vw; top: -8vw; background: radial-gradient(circle, var(--violet), transparent 65%); }
.hero-blobs span:nth-child(2) { width: 36vw; height: 36vw; right: -8vw; top: 10vh; background: radial-gradient(circle, var(--pink), transparent 65%); animation-delay: -6s; }
.hero-blobs span:nth-child(3) { width: 30vw; height: 30vw; left: 30vw; bottom: -12vw; background: radial-gradient(circle, var(--cyan), transparent 65%); animation-delay: -12s; opacity: .7; }
@keyframes blob {
	0% { transform: translate(0, 0) scale(1); }
	50% { transform: translate(8vw, 6vh) scale(1.15); }
	100% { transform: translate(-4vw, -4vh) scale(.9); }
}

.hero-layout { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 60px); align-items: center; }
.hero-copy { transform: translateY(calc(var(--hp, 0) * -60px)); opacity: calc(1 - var(--hp, 0) * 1.1); }
.hero-title { font-size: clamp(2.9rem, 6.6vw, 6.2rem); line-height: .95; letter-spacing: -.045em; margin-bottom: 26px; }
.hero-title em { display: block; }
.hero-lead { color: var(--muted); font-size: clamp(1.05rem, 1.35vw, 1.2rem); max-width: 52ch; margin-bottom: 34px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 44px; }
.hero-specs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, auto); justify-content: start; gap: 12px 34px; }
.hero-specs li { display: flex; flex-direction: column; padding-left: 14px; border-left: 1px solid var(--line-2); }
.hero-specs strong { font: 600 1.6rem/1.1 var(--font-d); letter-spacing: -.03em; }
.hero-specs span { font-size: .82rem; color: var(--muted); }

.scroll-cue {
	position: absolute; left: 50%; bottom: 28px; width: 26px; height: 42px; margin-left: -13px;
	border: 1.5px solid var(--line-2); border-radius: 20px;
}
.scroll-cue span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--text); animation: cue 2s var(--ease) infinite; }
@keyframes cue { 0% { transform: translateY(0); opacity: 1; } 80%, 100% { transform: translateY(16px); opacity: 0; } }

/* ---------- Hero 3D-scène ---------- */
.hero-visual { position: relative; height: clamp(380px, 46vw, 620px); perspective: 1500px; perspective-origin: 50% 40%; }
.scene {
	--mx: 0; --my: 0;
	position: absolute; inset: 0; transform-style: preserve-3d;
	transform: rotateX(calc(9deg + var(--my) * -10deg)) rotateY(calc(-22deg + var(--mx) * 18deg));
	transition: transform 1.2s var(--ease);
}
.js .scene { opacity: 0; transform: rotateX(30deg) rotateY(-60deg) translateZ(-300px); transition: transform 2s var(--ease), opacity 1.4s var(--ease); }
.js .is-ready .scene { opacity: 1; transform: rotateX(calc(9deg + var(--my) * -10deg)) rotateY(calc(-22deg + var(--mx) * 18deg)); }
.js .is-ready.is-settled .scene { transition: transform 1.2s var(--ease); }

.device { position: absolute; left: 50%; top: 50%; transform-style: preserve-3d; --d: 22px; }
.device-body { position: relative; width: var(--w); height: var(--h); transform-style: preserve-3d; }
.device--landscape {
	--w: min(560px, 78vw); --h: calc(var(--w) * .5625);
	margin: calc(var(--h) / -2) 0 0 calc(var(--w) / -2);
	transform: translate3d(-14%, -6%, 0);
}
.device--landscape .device-body { animation: floatA 8s var(--ease-io) infinite alternate; }
.device--portrait {
	--w: min(190px, 26vw); --h: calc(var(--w) * 1.7778); --d: 18px;
	margin: calc(var(--h) / -2) 0 0 calc(var(--w) / -2);
	transform: translate3d(calc(min(560px, 78vw) * .5), 16%, 120px) rotateY(-14deg);
}
.device--portrait .device-body { animation: floatB 7s var(--ease-io) infinite alternate; }
@keyframes floatA { from { transform: translate3d(0, -10px, 0) rotateZ(-.6deg); } to { transform: translate3d(0, 14px, 20px) rotateZ(.6deg); } }
@keyframes floatB { from { transform: translate3d(0, 12px, 0) rotateY(4deg); } to { transform: translate3d(0, -16px, 30px) rotateY(-4deg); } }

.face { position: absolute; background: linear-gradient(180deg, #23233a, #0d0d18); }
.face--front {
	inset: 0; transform: translateZ(calc(var(--d) / 2)); border-radius: 8px; padding: 9px; background: #07070d;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12), 0 0 80px -10px rgba(124, 92, 255, .55);
}
.face--back { inset: 0; transform: rotateY(180deg) translateZ(calc(var(--d) / 2)); border-radius: 8px; background: linear-gradient(135deg, #1e1e30, #09090f); }
.face--right, .face--left { top: 0; width: var(--d); height: 100%; left: calc(50% - var(--d) / 2); }
.face--right { transform: rotateY(90deg) translateZ(calc(var(--w) / 2)); background: linear-gradient(90deg, #2a2a44, #12121f); }
.face--left { transform: rotateY(-90deg) translateZ(calc(var(--w) / 2)); }
.face--top, .face--bottom { left: 0; height: var(--d); width: 100%; top: calc(50% - var(--d) / 2); }
.face--top { transform: rotateX(90deg) translateZ(calc(var(--h) / 2)); background: linear-gradient(#3a3a5a, #1a1a2c); }
.face--bottom { transform: rotateX(-90deg) translateZ(calc(var(--h) / 2)); background: #08080e; }
.device-shadow {
	position: absolute; left: 10%; right: 10%; top: 100%; height: 80px;
	background: radial-gradient(ellipse at center, rgba(124, 92, 255, .45), transparent 70%);
	transform: translateY(40px) rotateX(90deg); filter: blur(14px);
}

.screen {
	position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 3px;
	container-type: inline-size; background: #0b0814;
}
.screen-glare {
	position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(115deg, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, .02) 32%, transparent 33%, transparent 100%);
	mix-blend-mode: screen;
}

/* Menubord-inhoud */
.menu-screen {
	display: grid; grid-template-rows: auto 1fr auto; color: #fff;
	background: radial-gradient(120% 90% at 85% 30%, #3b1a5c 0%, #140b22 45%, #0a0712 100%);
	font-family: var(--font-d);
}
.ms-head { display: flex; justify-content: space-between; align-items: center; padding: 3.2cqw 4.4cqw 1.4cqw; }
.ms-logo { font-weight: 700; font-size: 3.6cqw; letter-spacing: .02em; }
.ms-logo b { color: var(--amber); }
.ms-time { display: inline-flex; align-items: center; gap: 1.2cqw; font-size: 2.1cqw; padding: .9cqw 1.8cqw; border-radius: 99px; background: rgba(255, 255, 255, .1); }
.ms-time i { width: 1.3cqw; height: 1.3cqw; border-radius: 50%; background: var(--lime); box-shadow: 0 0 8px var(--lime); }
.ms-slides { position: relative; }
.ms-slide {
	position: absolute; inset: 0; display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; padding: 0 4.4cqw;
	clip-path: inset(0 100% 0 0); transition: clip-path 1s var(--ease-io);
}
.ms-slide.is-active { clip-path: inset(0 0 0 0); }
.ms-slide.is-leaving { clip-path: inset(0 0 0 100%); }
.ms-cat { display: block; font-size: 5.2cqw; font-weight: 700; letter-spacing: -.03em; margin-bottom: 1.8cqw; color: var(--amber); }
.ms-list { list-style: none; margin: 0; padding: 0; font-size: 2.6cqw; }
.ms-list li {
	display: flex; align-items: baseline; gap: 1.2cqw; padding: .9cqw 0;
	opacity: 0; transform: translateX(-4cqw); transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.ms-slide.is-active .ms-list li { opacity: 1; transform: none; }
.ms-slide.is-active .ms-list li:nth-child(1) { transition-delay: .35s; }
.ms-slide.is-active .ms-list li:nth-child(2) { transition-delay: .45s; }
.ms-slide.is-active .ms-list li:nth-child(3) { transition-delay: .55s; }
.ms-slide.is-active .ms-list li:nth-child(4) { transition-delay: .65s; }
.ms-list i { flex: 1; border-bottom: .3cqw dotted rgba(255, 255, 255, .3); }
.ms-list b { font-weight: 700; display: inline-block; }
.ms-list b.is-flip { animation: flip .7s var(--ease); color: var(--lime); }
@keyframes flip { 0% { transform: rotateX(0); } 50% { transform: rotateX(90deg); } 100% { transform: rotateX(0); } }
.ms-list .is-soldout span { text-decoration: line-through; opacity: .5; }
.ms-list .is-soldout b { color: var(--pink); font-size: 2cqw; text-transform: uppercase; letter-spacing: .08em; }
.ms-food { position: relative; display: grid; place-items: center; height: 100%; }

/* CSS-burger */
.burger { position: relative; width: 26cqw; height: 22cqw; animation: bob 3s var(--ease-io) infinite alternate; filter: drop-shadow(0 3cqw 3cqw rgba(0, 0, 0, .5)); }
.burger i { position: absolute; left: 0; right: 0; display: block; }
.bun-top { top: 0; height: 9cqw; border-radius: 13cqw 13cqw 2cqw 2cqw; background: radial-gradient(circle at 30% 30%, #ffd08a, #e08a2b 60%, #b45f13); }
.bun-top::after { content: ""; position: absolute; inset: 20% 20% auto; height: 1cqw; background: radial-gradient(circle, #fff6 30%, transparent 32%) 0 0 / 3cqw 1cqw; }
.lettuce { top: 8.4cqw; height: 2.6cqw; left: -1cqw !important; right: -1cqw !important; background: radial-gradient(circle at 50% 0, #7ddf54 60%, transparent 62%) 0 0 / 3.4cqw 2.6cqw; }
.cheese { top: 10.2cqw; height: 2.6cqw; background: linear-gradient(#ffd23f, #f5b400); clip-path: polygon(0 0, 100% 0, 100% 40%, 80% 100%, 62% 40%, 40% 100%, 22% 40%, 0 60%); }
.patty { top: 12cqw; height: 4.6cqw; border-radius: 2cqw; background: linear-gradient(#6b3a1f, #3d1f0f); }
.bun-bottom { top: 16.2cqw; height: 4.6cqw; border-radius: 1cqw 1cqw 4cqw 4cqw; background: linear-gradient(#e9a14b, #b8691f); }
@keyframes bob { from { transform: translateY(-1cqw) rotate(-4deg); } to { transform: translateY(1cqw) rotate(3deg); } }
.burst {
	position: absolute; top: 6%; right: 6%; display: grid; place-items: center; width: 11cqw; height: 11cqw;
	font-size: 2cqw; font-weight: 700; color: #1a0b00; background: var(--amber);
	clip-path: polygon(50% 0, 61% 18%, 82% 10%, 80% 32%, 100% 40%, 85% 56%, 96% 76%, 74% 78%, 68% 100%, 50% 87%, 32% 100%, 26% 78%, 4% 76%, 15% 56%, 0 40%, 20% 32%, 18% 10%, 39% 18%);
	animation: spin 8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.drink { position: relative; width: 16cqw; height: 24cqw; animation: bob 3s var(--ease-io) infinite alternate; }
.drink .cup { position: absolute; inset: 4cqw 0 0; background: linear-gradient(90deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .05)), linear-gradient(#ff7ab0, #ff3d8b 60%, #b3105a); clip-path: polygon(0 0, 100% 0, 86% 100%, 14% 100%); border-radius: 1cqw; }
.drink .straw { position: absolute; left: 55%; top: 0; width: 1.4cqw; height: 12cqw; background: repeating-linear-gradient(#fff 0 1.4cqw, var(--cyan) 1.4cqw 2.8cqw); transform: rotate(12deg); border-radius: 1cqw; }
.drink .bubble { position: absolute; bottom: 4cqw; width: 1.4cqw; height: 1.4cqw; border-radius: 50%; background: rgba(255, 255, 255, .7); animation: bubble 2.4s ease-in infinite; }
.drink .b1 { left: 35%; } .drink .b2 { left: 55%; animation-delay: .8s; } .drink .b3 { left: 45%; animation-delay: 1.6s; }
@keyframes bubble { from { transform: translateY(0); opacity: 0; } 20% { opacity: 1; } to { transform: translateY(-14cqw); opacity: 0; } }

.ms-promo { grid-template-columns: 1fr; justify-items: center; text-align: center; align-content: center; background: radial-gradient(circle at 50% 55%, #ff3d8b55, transparent 60%); }
.promo-kicker { font-size: 2.6cqw; letter-spacing: .2em; text-transform: uppercase; color: var(--amber); }
.promo-big { font-size: 20cqw; font-weight: 700; line-height: .9; letter-spacing: -.06em; background: linear-gradient(100deg, #fff, var(--amber)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.promo-big small { font-size: .5em; }
.ms-promo.is-active .promo-big { animation: punch 1s var(--ease) both .3s; }
@keyframes punch { 0% { transform: scale(2.4) rotate(-8deg); opacity: 0; filter: blur(10px); } 100% { transform: none; opacity: 1; filter: none; } }
.promo-sub { font-size: 3cqw; }
.promo-rays {
	position: absolute; inset: -50%; z-index: -1;
	background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .06) 0 8deg, transparent 8deg 20deg);
	animation: spin 30s linear infinite;
}
.ms-ticker { overflow: hidden; white-space: nowrap; font-size: 2.1cqw; font-weight: 500; padding: 1.4cqw 0; background: var(--amber); color: #1b0d00; }
.ms-ticker span { display: inline-block; animation: ticker 18s linear infinite; }
@keyframes ticker { to { transform: translateX(-50%); } }

/* Totem-inhoud */
.totem-screen {
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4cqw;
	font-family: var(--font-d); color: #fff;
	background: linear-gradient(160deg, #0b2a4a, #10103a 50%, #3a0d33);
}
.ts-ring { position: absolute; width: 120cqw; aspect-ratio: 1; border-radius: 50%; border: 1.2cqw solid transparent; border-top-color: var(--cyan); border-right-color: var(--violet); animation: spin 6s linear infinite; opacity: .6; }
.ts-ring--2 { width: 80cqw; border-top-color: var(--pink); border-left-color: var(--amber); animation-duration: 4s; animation-direction: reverse; }
.ts-kicker { position: relative; font-size: 7cqw; letter-spacing: .3em; text-transform: uppercase; color: var(--cyan); }
.ts-big { position: relative; font-size: 30cqw; font-weight: 700; line-height: .85; letter-spacing: -.05em; animation: pulseText 2.4s var(--ease-io) infinite; }
@keyframes pulseText { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); text-shadow: 0 0 6cqw var(--pink); } }
.ts-pct { position: relative; font-size: 22cqw; font-weight: 700; color: var(--amber); }
.ts-cta { position: relative; font-size: 7cqw; padding: 3cqw 6cqw; border-radius: 99px; background: #fff; color: #000; font-weight: 600; }

/* Orbits & 3D-chips */
.orbit { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 1px solid var(--line-2); transform-style: preserve-3d; pointer-events: none; }
.orbit--1 { width: 120%; aspect-ratio: 1; margin: -60% 0 0 -60%; transform: rotateX(78deg) translateZ(-60px); animation: orbit 24s linear infinite; border-style: dashed; }
.orbit--2 { width: 90%; aspect-ratio: 1; margin: -45% 0 0 -45%; transform: rotateX(78deg) rotateY(10deg); animation: orbit 16s linear infinite reverse; border-color: rgba(34, 211, 238, .35); }
.orbit::after { content: ""; position: absolute; top: -5px; left: 50%; width: 10px; height: 10px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 20px var(--cyan); }
.orbit--1::after { background: var(--pink); box-shadow: 0 0 20px var(--pink); }
@keyframes orbit { to { rotate: z 360deg; } }

.chip3d {
	position: absolute; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 16px;
	background: rgba(18, 18, 32, .72); border: 1px solid var(--line-2); backdrop-filter: blur(12px);
	box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .8); font: 600 .9rem/1.2 var(--font-d); white-space: nowrap;
}
.chip3d small { display: block; font: 500 .7rem/1.3 var(--font-b); color: var(--muted); }
.chip3d .icon { color: var(--amber); }
.chip3d--1 { left: -2%; top: 8%; transform: translateZ(180px); animation: chipA 6s var(--ease-io) infinite alternate; }
.chip3d--2 { right: 4%; bottom: 4%; transform: translateZ(220px); animation: chipB 7s var(--ease-io) infinite alternate; }
@keyframes chipA { to { transform: translateZ(180px) translateY(-18px); } }
@keyframes chipB { to { transform: translateZ(220px) translateY(14px) translateX(-10px); } }

/* ---------- Marquee ---------- */
.marquee {
	position: relative; z-index: 2; overflow: hidden; padding: 22px 0; margin: -20px 0 0;
	background: var(--grad); transform: rotate(-2.2deg) scale(1.04);
	box-shadow: 0 30px 80px -30px rgba(124, 92, 255, .8);
}
.marquee-track { display: flex; width: max-content; align-items: center; gap: 34px; animation: ticker 28s linear infinite; }
.marquee span { font: 700 clamp(1.6rem, 3.4vw, 2.8rem)/1 var(--font-d); letter-spacing: -.03em; text-transform: uppercase; color: #07070d; }
.marquee .outline { color: transparent; -webkit-text-stroke: 1.5px #07070d; }
.marquee i { font-style: normal; font-size: 1.5rem; color: #07070d; }

/* ---------- Kaarten (3D-tilt) ---------- */
.card {
	--rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 50%;
	position: relative; overflow: hidden; border-radius: var(--r-lg); border: 1px solid var(--line);
	background: linear-gradient(160deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .015));
	transform: perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry));
	transition: transform .6s var(--ease), border-color .4s, box-shadow .6s var(--ease);
	transform-style: preserve-3d;
}
.card:hover { border-color: var(--line-2); box-shadow: 0 30px 80px -40px rgba(124, 92, 255, .7); }
.card.is-tilting { transition: transform .12s linear, border-color .4s, box-shadow .6s var(--ease); }
.card-shine {
	position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s;
	background: radial-gradient(500px circle at var(--gx) var(--gy), rgba(124, 92, 255, .22), transparent 45%);
}
.card:hover .card-shine { opacity: 1; }
.card-icon {
	display: inline-grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; margin-bottom: 22px;
	color: #fff; background: linear-gradient(135deg, rgba(124, 92, 255, .35), rgba(34, 211, 238, .18));
	border: 1px solid var(--line-2); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15);
}
.card-icon .icon { width: 26px; height: 26px; }
.card-icon--sm { width: 42px; height: 42px; border-radius: 12px; margin: 0; }
.card-icon--sm .icon { width: 20px; height: 20px; }
.check-list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 10px; }
.check-list li { display: flex; gap: 10px; align-items: flex-start; font-size: .96rem; color: var(--text); }
.check-list .icon { color: var(--lime); margin-top: 3px; width: 18px; height: 18px; }

/* ---------- Voordelen ---------- */
.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.benefit { padding: 34px 30px 30px; }
.benefit h3 { font-size: 1.4rem; margin-bottom: 10px; }
.benefit p { color: var(--muted); margin: 0; }
.benefit > * { transform: translateZ(30px); }

/* ---------- Producten ---------- */
.products { overflow: hidden; }
.section-bg-text {
	position: absolute; top: 6%; left: 0; right: 0; z-index: -1; overflow: hidden; pointer-events: none; white-space: nowrap;
}
.section-bg-text span {
	display: inline-block; font: 700 clamp(8rem, 24vw, 22rem)/1 var(--font-d); letter-spacing: -.06em;
	color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .06);
	transform: translateX(calc(10% - var(--p, 0) * 40%));
}
.product-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.product { display: grid; grid-template-rows: auto 1fr; }
.product-body { padding: 8px 32px 32px; transform: translateZ(20px); }
.product h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 12px; }
.product-body > p { color: var(--muted); }
.product-tag { font: 500 .78rem/1 var(--font-d); letter-spacing: .14em; text-transform: uppercase; color: var(--cyan); margin-bottom: 14px; }

/* Product-visuals (mini 3D-schermen) */
.pv {
	position: relative; height: 240px; display: grid; place-items: center; perspective: 900px; overflow: hidden;
	background: radial-gradient(70% 90% at 50% 100%, rgba(124, 92, 255, .25), transparent 70%);
}
.pv::before {
	content: ""; position: absolute; inset: 0;
	background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
	background-size: 32px 32px; transform: perspective(500px) rotateX(60deg) translateY(30%); transform-origin: bottom; opacity: .7;
	mask-image: linear-gradient(transparent, #000); -webkit-mask-image: linear-gradient(transparent, #000);
}
.pv-device {
	position: relative; padding: 6px; border-radius: 8px; background: #08080e;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .14), 0 30px 60px -20px rgba(0, 0, 0, .9), 0 0 60px -10px rgba(124, 92, 255, .6);
	transform: rotateY(-18deg) rotateX(6deg); transition: transform .8s var(--ease);
}
.product:hover .pv-device { transform: rotateY(-4deg) rotateX(2deg) translateZ(30px); }
.pv-screen { position: relative; width: 260px; height: 146px; overflow: hidden; border-radius: 3px; background: #120a20; }
.pv-screen i { position: absolute; display: block; border-radius: 3px; }

.pv--menu .pv-screen { background: linear-gradient(135deg, #2b1247, #0d0818); }
.pv--menu .pv-screen i { left: 10%; height: 8px; width: 42%; background: rgba(255, 255, 255, .75); animation: bar 3s var(--ease-io) infinite alternate; }
.pv--menu .pv-screen i:nth-child(1) { top: 16%; width: 30%; height: 12px; background: var(--amber); }
.pv--menu .pv-screen i:nth-child(2) { top: 40%; animation-delay: -.6s; }
.pv--menu .pv-screen i:nth-child(3) { top: 58%; animation-delay: -1.2s; }
.pv--menu .pv-screen i:nth-child(4) { top: 22%; left: 62%; width: 28%; height: 60%; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffd08a, #e0842b 55%, #6b3a1f); animation: bob 3s var(--ease-io) infinite alternate; }
@keyframes bar { from { transform: scaleX(.6); transform-origin: left; } to { transform: scaleX(1); transform-origin: left; } }

.pv--window .pv-screen { background: linear-gradient(135deg, #fff3c4, #ffb547 45%, #ff3d8b); }
.pv--window .pv-screen i:nth-child(1) { inset: -60%; border-radius: 0; background: repeating-conic-gradient(rgba(255, 255, 255, .35) 0 10deg, transparent 10deg 24deg); animation: spin 14s linear infinite; }
.pv--window .pv-screen i:nth-child(2) { left: 10%; top: 26%; width: 56%; height: 26px; background: #1a0d00; }
.pv--window .pv-screen i:nth-child(3) { left: 10%; top: 54%; width: 34%; height: 14px; background: rgba(26, 13, 0, .6); }
.pv--window .pv-screen i:nth-child(4) { right: 8%; top: 18%; width: 56px; height: 56px; border-radius: 50%; background: #fff; box-shadow: 0 0 40px #fff, 0 0 80px #fff8; animation: pulseText 2.4s var(--ease-io) infinite; }

.pv--totem .pv-device { transform: rotateY(-22deg) rotateX(4deg); }
.pv--totem .pv-screen { width: 100px; height: 178px; background: linear-gradient(160deg, #0b2a4a, #10103a 50%, #3a0d33); }
.pv--totem .pv-screen i:nth-child(1) { left: 15%; right: 15%; top: 18%; height: 34%; border-radius: 50%; border: 4px solid transparent; border-top-color: var(--cyan); border-right-color: var(--pink); animation: spin 3s linear infinite; }
.pv--totem .pv-screen i:nth-child(2) { left: 20%; right: 20%; top: 62%; height: 12px; background: var(--amber); }
.pv--totem .pv-screen i:nth-child(3) { left: 30%; right: 30%; top: 76%; height: 10px; background: #fff; border-radius: 99px; }
.pv--totem .pv-device::after { content: ""; position: absolute; left: 30%; right: 30%; top: 100%; height: 30px; background: linear-gradient(#1c1c2c, #0a0a12); }

.pv--wall .pv-screen { width: 280px; height: 158px; background: none; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.pv--wall .pv-screen i { position: static; border-radius: 1px; background: linear-gradient(120deg, var(--cyan), var(--violet), var(--pink), var(--amber)); background-size: 200% 200%; animation: wall 6s var(--ease-io) infinite alternate; }
.pv--wall .pv-screen i:nth-child(1) { background-position: 0 0; }
.pv--wall .pv-screen i:nth-child(2) { background-position: 100% 0; animation-delay: -1s; }
.pv--wall .pv-screen i:nth-child(3) { background-position: 0 100%; animation-delay: -2s; }
.pv--wall .pv-screen i:nth-child(4) { background-position: 100% 100%; animation-delay: -3s; }
@keyframes wall { to { background-position: 50% 50%; filter: hue-rotate(60deg); } }

/* ---------- Werkwijze ---------- */
.steps-track { position: relative; }
.steps-line { position: absolute; left: 0; right: 0; top: 34px; width: 100%; height: 40px; overflow: visible; }
.steps-line path {
	fill: none; stroke: var(--violet); stroke-width: 2; stroke-dasharray: 1; vector-effect: non-scaling-stroke;
	stroke-dashoffset: calc(1 - var(--p, 0)); filter: drop-shadow(0 0 6px var(--violet));
}
.step-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; position: relative; }
.step { padding-top: 0; }
.step-num {
	position: relative; display: grid; place-items: center; width: 76px; height: 76px; margin-bottom: 26px; border-radius: 50%;
	font: 600 1.3rem/1 var(--font-d); background: var(--bg); border: 1px solid var(--line-2);
	box-shadow: 0 0 0 8px var(--bg), inset 0 0 30px rgba(124, 92, 255, .25);
}
.step-num::after {
	content: ""; position: absolute; inset: -1px; border-radius: 50%; padding: 1px;
	background: conic-gradient(var(--cyan), var(--violet), var(--pink), var(--cyan));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
	animation: spin 5s linear infinite;
}
.step h3 { font-size: 1.35rem; margin-bottom: 10px; }
.step p { color: var(--muted); margin: 0; }

/* ---------- Software ---------- */
.software { overflow: hidden; }
.software-layout { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 6vw, 90px); align-items: center; }
.feature-grid { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px 26px; }
.feature-grid li { display: flex; gap: 14px; align-items: flex-start; }
.feature-grid h3 { font-size: 1.04rem; margin: 4px 0 4px; letter-spacing: -.01em; }
.feature-grid p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.5; }

.software-visual { position: relative; height: clamp(380px, 40vw, 520px); perspective: 1400px; }
.dash-scene {
	position: absolute; inset: 0; transform-style: preserve-3d; border: 0; background: none; overflow: visible; border-radius: 0;
	transform: perspective(1400px) rotateX(calc(14deg + var(--rx))) rotateY(calc(-20deg + var(--ry))) rotateZ(2deg);
}
.dash-scene:hover { box-shadow: none; }
.dash {
	position: absolute; left: 4%; top: 8%; width: 82%; border-radius: 16px; overflow: hidden;
	background: #0e0e1b; border: 1px solid var(--line-2);
	box-shadow: 0 60px 120px -40px rgba(0, 0, 0, .9), 0 0 100px -30px rgba(124, 92, 255, .6);
	transform: translateZ(0);
}
.dash-bar { display: flex; align-items: center; gap: 6px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .03); }
.dash-bar i { width: 10px; height: 10px; border-radius: 50%; background: #ff5f57; }
.dash-bar i:nth-child(2) { background: #febc2e; } .dash-bar i:nth-child(3) { background: #28c840; }
.dash-bar span { margin-left: 12px; font: 500 .72rem/1 var(--font-b); color: var(--muted); padding: 5px 12px; border-radius: 6px; background: rgba(255, 255, 255, .05); }
.dash-body { display: grid; grid-template-columns: 52px 1fr; min-height: 300px; }
.dash-side { display: flex; flex-direction: column; gap: 14px; align-items: center; padding: 18px 0; border-right: 1px solid var(--line); }
.dash-side b { width: 24px; height: 24px; border-radius: 8px; background: var(--grad); margin-bottom: 8px; }
.dash-side span { width: 22px; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .15); }
.dash-side span.on { background: var(--cyan); }
.dash-main { padding: 20px; display: grid; gap: 14px; font: 500 .82rem/1.2 var(--font-d); }
.dash-row { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .04); border: 1px solid var(--line); }
.dash-label { color: var(--muted); }
.dash-row .dash-label { color: var(--text); }
.dash-price { position: relative; display: grid; overflow: hidden; height: 1.3em; min-width: 64px; text-align: right; }
.dash-price em { font-style: normal; grid-area: 1 / 1; }
.dash-price em:nth-child(2) { color: var(--lime); }
.dash-price em:only-child { position: static; }
.dash-row:first-child .dash-price em:nth-child(1) { animation: priceOut 8s var(--ease-io) infinite; }
.dash-row:first-child .dash-price em:nth-child(2) { animation: priceIn 8s var(--ease-io) infinite; }
@keyframes priceOut { 0%, 30% { transform: translateY(0); } 36%, 90% { transform: translateY(-120%); } 96%, 100% { transform: translateY(0); } }
@keyframes priceIn { 0%, 30% { transform: translateY(120%); } 36%, 90% { transform: translateY(0); } 96%, 100% { transform: translateY(120%); } }
.dash-toggle { position: relative; width: 36px; height: 20px; border-radius: 99px; background: var(--lime); }
.dash-toggle i { position: absolute; top: 2px; left: 18px; width: 16px; height: 16px; border-radius: 50%; background: #fff; }
.dash-toggle--sold { animation: toggleBg 8s var(--ease-io) infinite; }
.dash-toggle--sold i { animation: toggleKnob 8s var(--ease-io) infinite; }
@keyframes toggleBg { 0%, 58% { background: var(--lime); } 62%, 94% { background: var(--pink); } 98%, 100% { background: var(--lime); } }
@keyframes toggleKnob { 0%, 58% { left: 18px; } 62%, 94% { left: 2px; } 98%, 100% { left: 18px; } }
.dash-schedule { position: relative; padding: 14px; border-radius: 12px; background: rgba(255, 255, 255, .04); border: 1px solid var(--line); }
.sched { position: relative; height: 26px; margin-top: 12px; }
.sched i {
	position: absolute; top: 0; bottom: 0; left: calc(var(--s) * 100%); width: calc((var(--e) - var(--s)) * 100% - 4px);
	display: grid; place-items: center; border-radius: 6px; font-style: normal; font-size: .7rem; color: #fff;
	background: linear-gradient(90deg, rgba(124, 92, 255, .7), rgba(34, 211, 238, .5));
}
.sched i:nth-child(2) { background: linear-gradient(90deg, rgba(255, 61, 139, .7), rgba(255, 181, 71, .6)); }
.sched-now { position: absolute; top: 34px; bottom: 8px; left: 14px; width: 2px; background: #fff; box-shadow: 0 0 8px #fff; animation: now 8s linear infinite; }
@keyframes now { from { left: 14px; } to { left: calc(100% - 16px); } }
.dash-publish { display: inline-flex; align-items: center; gap: 10px; justify-self: start; padding: 10px 14px; border-radius: 99px; background: rgba(185, 255, 102, .1); color: var(--lime); }
.dash-cursor {
	position: absolute; left: 0; top: 0; width: 18px; height: 18px; pointer-events: none;
	background: #fff; clip-path: polygon(0 0, 100% 62%, 58% 66%, 78% 100%, 62% 100%, 44% 70%, 0 100%);
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .6)); animation: cursorPath 8s var(--ease-io) infinite;
}
@keyframes cursorPath {
	0% { transform: translate(260px, 260px); }
	22% { transform: translate(360px, 96px); }
	30% { transform: translate(360px, 96px) scale(.85); }
	34% { transform: translate(360px, 96px); }
	52% { transform: translate(430px, 160px); }
	58% { transform: translate(430px, 160px) scale(.85); }
	62% { transform: translate(430px, 160px); }
	85% { transform: translate(200px, 300px); }
	100% { transform: translate(260px, 260px); }
}
.phone {
	position: absolute; right: 2%; bottom: 2%; width: 150px; height: 300px; padding: 8px; border-radius: 30px;
	background: linear-gradient(145deg, #2a2a40, #0b0b14); border: 1px solid var(--line-2);
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, .9); transform: translateZ(120px) rotateY(10deg);
	animation: chipA 6s var(--ease-io) infinite alternate;
}
@keyframes phoneFloat { to { transform: translateZ(120px) rotateY(10deg) translateY(-16px); } }
.phone { animation-name: phoneFloat; }
.phone-screen { position: relative; height: 100%; border-radius: 23px; background: #0e0e1b; padding: 30px 12px 14px; display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.phone-notch { position: absolute; top: 8px; left: 50%; width: 50px; height: 14px; margin-left: -25px; border-radius: 10px; background: #000; }
.phone-title { font: 600 .9rem/1 var(--font-d); }
.phone-item { height: 34px; border-radius: 10px; background: rgba(255, 255, 255, .06); }
.phone-item--hl { background: rgba(124, 92, 255, .35); border: 1px solid var(--violet); animation: hl 8s var(--ease-io) infinite; }
@keyframes hl { 0%, 25% { box-shadow: none; } 30%, 40% { box-shadow: 0 0 20px var(--violet); } 100% { box-shadow: none; } }
.phone-btn { margin-top: auto; padding: 10px; border-radius: 12px; text-align: center; font: 600 .78rem/1 var(--font-d); background: var(--grad); }
.sync-line { position: absolute; right: 18%; bottom: 46%; width: 30%; overflow: visible; transform: translateZ(60px); }
.sync-line path { fill: none; stroke: var(--cyan); stroke-width: 2; stroke-dasharray: .06 .04; animation: dash 1.6s linear infinite; filter: drop-shadow(0 0 4px var(--cyan)); }
@keyframes dash { to { stroke-dashoffset: -.2; } }

/* ---------- Sectoren-ring (3D) ---------- */
.sectors { overflow: hidden; padding-bottom: clamp(40px, 6vw, 80px); }
.ring-stage { position: relative; height: clamp(380px, 42vw, 480px); perspective: 1600px; perspective-origin: 50% 30%; }
.ring {
	--r: clamp(260px, 34vw, 440px); --cw: clamp(170px, 18vw, 230px);
	list-style: none; margin: 0; padding: 0;
	position: absolute; left: 50%; top: 42%; width: var(--cw); height: calc(var(--cw) * 1.15);
	margin-left: calc(var(--cw) / -2); margin-top: calc(var(--cw) * -.575);
	transform-style: preserve-3d;
	transform: translateZ(calc(var(--r) * -1)) rotateX(-6deg) rotateY(calc(var(--p, 0) * -450deg + var(--drag, 0deg)));
}
.ring-item {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 22px;
	border-radius: 22px; border: 1px solid var(--line-2);
	background: linear-gradient(160deg, rgba(40, 30, 80, .85), rgba(10, 10, 22, .9));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 0 60px -20px rgba(124, 92, 255, .5);
	transform: rotateY(calc(var(--i) * 360deg / var(--n))) translateZ(var(--r));
	backface-visibility: hidden;
}
.ring-item .card-icon { margin-bottom: auto; }
.ring-item h3 { font-size: 1.3rem; margin-bottom: 4px; }
.ring-item p { margin: 0; color: var(--muted); font-size: .9rem; }
.ring-floor {
	position: absolute; left: 50%; bottom: 0; width: 90%; height: 160px; transform: translateX(-50%);
	background: radial-gradient(ellipse at center, rgba(124, 92, 255, .35), transparent 65%); filter: blur(20px);
}

/* ---------- Pakketten ---------- */
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.price { display: flex; flex-direction: column; padding: 36px 30px 30px; }
.price h3 { font-size: 1.6rem; margin-bottom: 8px; }
.price-text { color: var(--muted); min-height: 3.2em; }
.price-amount { font: 600 clamp(2rem, 3.4vw, 2.8rem)/1 var(--font-d); letter-spacing: -.04em; margin: 8px 0 26px; }
.price .check-list { margin-bottom: 30px; flex: 1; }
.price--featured { border-color: transparent; background: linear-gradient(var(--bg-2), var(--bg-2)) padding-box, var(--grad) border-box; border: 1.5px solid transparent; box-shadow: 0 40px 100px -40px rgba(124, 92, 255, .8); }
.price-badge { position: absolute; top: 22px; right: 22px; padding: 7px 12px; border-radius: 99px; font: 600 .74rem/1 var(--font-d); background: var(--grad); color: #fff; }

/* ---------- FAQ ---------- */
.faq-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 6vw, 90px); align-items: start; }
.faq-layout .section-head { position: sticky; top: calc(var(--header-h) + 30px); }
.faq-list { display: grid; gap: 12px; }
.faq-item { border-radius: var(--r); border: 1px solid var(--line); background: var(--panel); transition: border-color .4s, background .4s; }
.faq-item[open] { border-color: var(--line-2); background: var(--panel-2); }
.faq-item summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 24px; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item h3 { font-size: 1.12rem; margin: 0; letter-spacing: -.01em; }
.faq-icon { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line-2); transition: transform .5s var(--ease), background .3s; }
.faq-item[open] .faq-icon { transform: rotate(135deg); background: var(--violet); border-color: var(--violet); }
.faq-answer { padding: 0 24px 22px; color: var(--muted); }
.faq-answer p { margin: 0; }
.faq-item[open] .faq-answer { animation: faqIn .6s var(--ease); }
@keyframes faqIn { from { opacity: 0; transform: translateY(-8px); } }

/* ---------- Contact ---------- */
.contact { overflow: hidden; }
.contact-bg {
	position: absolute; inset: 10% -20% auto; height: 80%; z-index: -1; pointer-events: none; filter: blur(80px); opacity: .45;
	background: conic-gradient(from 180deg at 50% 50%, var(--violet), var(--cyan), var(--pink), var(--violet));
	border-radius: 50%; animation: spin 30s linear infinite;
}
.contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 6vw, 80px); align-items: start; }
.next-steps { list-style: none; padding: 0; margin: 30px 0; display: grid; gap: 14px; }
.next-steps li { display: flex; align-items: center; gap: 14px; }
.next-steps span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font: 600 .9rem/1 var(--font-d); background: var(--panel-2); border: 1px solid var(--line-2); }
.contact-direct { display: grid; gap: 12px; }
.contact-direct a {
	display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: var(--r); text-decoration: none;
	border: 1px solid var(--line); background: var(--panel); transition: border-color .3s, transform .4s var(--ease);
}
.contact-direct a:hover { border-color: var(--cyan); transform: translateX(6px); }
.contact-direct .icon { color: var(--cyan); width: 22px; height: 22px; }
.contact-direct small { display: block; color: var(--muted); font-size: .78rem; }
.contact-direct span { font: 600 1.05rem/1.3 var(--font-d); }

.contact-card {
	position: relative; padding: clamp(24px, 3.5vw, 44px); border-radius: var(--r-lg);
	background: rgba(14, 14, 27, .75); border: 1px solid var(--line-2); backdrop-filter: blur(20px);
	box-shadow: 0 50px 120px -50px rgba(124, 92, 255, .8);
}
.contact-card::before {
	content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none;
	background: linear-gradient(140deg, var(--cyan), transparent 30%, transparent 70%, var(--pink));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}

/* Formulier */
.mw-form { display: grid; gap: 22px; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.chips { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips legend { font: 500 .9rem/1.4 var(--font-d); color: var(--muted); margin-bottom: 12px; padding: 0; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip span {
	display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 99px; cursor: pointer;
	font: 500 .88rem/1 var(--font-d); border: 1px solid var(--line-2); background: var(--panel);
	transition: background .3s, border-color .3s, transform .3s var(--ease);
}
.chip span .icon { width: 16px; height: 16px; }
.chip span:hover { border-color: var(--text); }
.chip input:checked + span { background: linear-gradient(100deg, rgba(124, 92, 255, .5), rgba(255, 61, 139, .4)); border-color: var(--violet); }
.chip input:focus-visible + span { outline: 2px solid var(--cyan); outline-offset: 2px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { position: relative; }
.field--full { grid-column: 1 / -1; }
.field input, .field select, .field textarea {
	width: 100%; padding: 24px 16px 10px; border-radius: 14px; border: 1px solid var(--line-2);
	background: rgba(255, 255, 255, .04); outline: none; transition: border-color .3s, background .3s, box-shadow .3s;
	font-size: 1rem;
}
.field textarea { resize: vertical; min-height: 130px; }
.field select { appearance: none; padding-right: 40px; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 22px) 55%, calc(100% - 16px) 55%; background-size: 6px 6px; background-repeat: no-repeat; }
.field select option { background: var(--bg-2); color: var(--text); }
.field label {
	position: absolute; left: 17px; top: 18px; color: var(--muted); pointer-events: none; font-size: 1rem;
	transform-origin: left top; transition: transform .3s var(--ease), color .3s;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--violet); background: rgba(124, 92, 255, .07); box-shadow: 0 0 0 4px rgba(124, 92, 255, .18); }
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label,
.field--select label { transform: translateY(-10px) scale(.76); color: var(--cyan); }
.field.has-error input, .field.has-error textarea { border-color: var(--pink); }
.field-error { display: block; min-height: 0; font-size: .82rem; color: var(--pink); margin-top: 6px; }
.field-error:empty { display: none; }
.consent label { display: flex; gap: 12px; align-items: flex-start; font-size: .9rem; color: var(--muted); cursor: pointer; }
.consent input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--violet); }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px; }
.form-note { margin: 0; color: var(--muted); font-size: .86rem; }
.btn-spinner { display: none; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .35); border-top-color: #fff; animation: spin .8s linear infinite; }
.is-loading .btn-spinner { display: inline-block; }
.is-loading .icon { display: none; }
.is-loading { pointer-events: none; opacity: .85; }
.form-status:empty { display: none; }
.form-status { padding: 16px 18px; border-radius: 14px; font-weight: 500; border: 1px solid var(--line-2); }
.form-status.is-ok { border-color: var(--lime); background: rgba(185, 255, 102, .08); color: var(--lime); }
.form-status.is-error { border-color: var(--pink); background: rgba(255, 61, 139, .08); color: #ff9ac0; }
.mw-form.is-sent .form-grid, .mw-form.is-sent .chips, .mw-form.is-sent .consent, .mw-form.is-sent .form-actions { display: none; }
.mw-form.is-sent .form-status { font-size: 1.1rem; padding: 30px; text-align: center; animation: punch .9s var(--ease); }

/* ---------- Footer ---------- */
.site-footer { position: relative; overflow: hidden; padding: clamp(60px, 8vw, 110px) 0 0; border-top: 1px solid var(--line); background: linear-gradient(var(--bg), #05050a); }
.footer-glow { position: absolute; left: 50%; top: -200px; width: 900px; height: 400px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(124, 92, 255, .35), transparent 70%); filter: blur(40px); pointer-events: none; }
.footer-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: clamp(50px, 6vw, 80px); border-bottom: 1px solid var(--line); }
.footer-cta-title { font: 600 clamp(1.8rem, 4vw, 3.2rem)/1.05 var(--font-d); letter-spacing: -.035em; margin: 0; max-width: 18ch; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding: 60px 0; }
.footer-about p { color: var(--muted); margin-top: 18px; max-width: 38ch; font-size: .95rem; }
.footer-title { font: 600 .8rem/1 var(--font-d); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 18px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-col ul a, .nap a { text-decoration: none; color: var(--text); opacity: .85; transition: opacity .3s, color .3s; }
.footer-col ul a:hover, .nap a:hover { opacity: 1; color: var(--cyan); }
.nap { font-style: normal; display: grid; gap: 10px; font-size: .95rem; }
.nap span, .nap a { display: flex; gap: 10px; align-items: flex-start; }
.nap .icon { width: 18px; height: 18px; margin-top: 3px; color: var(--cyan); }
.vat { color: var(--muted); }
.socials { margin-top: 18px !important; display: flex !important; gap: 14px !important; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 24px 0; border-top: 1px solid var(--line); font-size: .85rem; color: var(--muted); }
.footer-bottom p { margin: 0; }
.footer-giant {
	margin: 0; text-align: center; white-space: nowrap; font: 700 clamp(4rem, 15.5vw, 15rem)/.8 var(--font-d); letter-spacing: -.06em;
	background: linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 85%); -webkit-background-clip: text; background-clip: text; color: transparent;
	transform: translateY(12%); user-select: none;
}

/* ---------- Binnenpagina's & blog ---------- */
.page-hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--header-h) + clamp(60px, 9vw, 120px)) 0 clamp(40px, 6vw, 70px); }
.page-hero .hero-blobs { opacity: .35; }
.page-title { font-size: clamp(2.4rem, 6vw, 5rem); letter-spacing: -.04em; max-width: 20ch; }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; font-size: .86rem; color: var(--muted); }
.breadcrumbs li + li::before { content: "/"; margin-right: 8px; opacity: .5; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { color: var(--cyan); }
.entry-content { font-size: 1.1rem; }
.entry-content > * + * { margin-top: 1.2em; }
.entry-content h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin-top: 1.8em; }
.entry-content h3 { font-size: 1.4rem; margin-top: 1.5em; }
.entry-content a { color: var(--cyan); }
.entry-content img { border-radius: var(--r); }
.entry-content blockquote { margin: 1.6em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--violet); font: 500 1.3rem/1.4 var(--font-d); }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content .wp-block-button__link { border-radius: 99px; background: var(--grad); }
.alignwide { width: min(100vw - 32px, 1100px); margin-left: 50%; transform: translateX(-50%); }
.alignfull { width: 100vw; margin-left: 50%; transform: translateX(-50%); }
.post-hero-img img { width: 100%; border-radius: var(--r-lg); }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.post-thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card-body { padding: 26px; }
.post-card h2 { font-size: 1.35rem; }
.post-card h2 a { text-decoration: none; }
.post-card p { color: var(--muted); }
.post-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding: 34px; margin-bottom: 40px; }
.post-cta .footer-cta-title { font-size: 1.6rem; }
.post-nav .nav-links, .pagination .nav-links { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 30px 0 60px; }
.post-nav a { text-decoration: none; font: 600 1.05rem/1.3 var(--font-d); }
.post-nav small { display: block; color: var(--muted); font: 500 .8rem/1.6 var(--font-b); }
.pagination .page-numbers { padding: 10px 16px; border-radius: 99px; border: 1px solid var(--line); text-decoration: none; }
.pagination .current { background: var(--violet); border-color: var(--violet); }
.search-form { display: flex; gap: 10px; }
.search-form input[type="search"] { flex: 1; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line-2); background: var(--panel); }
.search-form .search-submit { padding: 14px 20px; border-radius: 99px; border: 0; background: var(--grad); color: #fff; font-weight: 600; cursor: pointer; }
.page-extra .entry-content { max-width: 820px; }

/* 404-glitch */
.glitch { position: relative; display: inline-block; margin: 0 0 10px; font: 700 clamp(6rem, 20vw, 14rem)/.9 var(--font-d); letter-spacing: -.06em; }
.glitch::before, .glitch::after { content: attr(data-text); position: absolute; inset: 0; }
.glitch::before { color: var(--cyan); animation: glitch 2.2s steps(2) infinite; clip-path: inset(0 0 55% 0); transform: translate(-4px, 0); mix-blend-mode: screen; }
.glitch::after { color: var(--pink); animation: glitch 1.7s steps(2) infinite reverse; clip-path: inset(50% 0 0 0); transform: translate(4px, 0); mix-blend-mode: screen; }
@keyframes glitch { 0% { transform: translate(0); } 20% { transform: translate(-6px, 3px); } 40% { transform: translate(5px, -2px); } 60% { transform: translate(-3px, -4px); } 80% { transform: translate(4px, 2px); } 100% { transform: translate(0); } }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.benefit-grid, .price-grid, .post-grid { grid-template-columns: repeat(2, 1fr); }
	.price-grid > :last-child { grid-column: 1 / -1; }
	.step-list { grid-template-columns: repeat(2, 1fr); row-gap: 50px; }
	.steps-line { display: none; }
	.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
	.hero { padding-top: calc(var(--header-h) + 24px); }
	.hero-layout, .software-layout, .faq-layout, .contact-layout { grid-template-columns: 1fr; }
	.hero-visual { order: -1; height: clamp(300px, 70vw, 460px); margin: 0 -16px; }
	.hero-specs { grid-template-columns: repeat(2, auto); }
	.faq-layout .section-head { position: static; }
	.software-visual { order: -1; }
}
@media (max-width: 680px) {
	body { font-size: 1rem; }
	.benefit-grid, .product-grid, .price-grid, .post-grid, .form-grid, .feature-grid { grid-template-columns: 1fr; }
	.step-list { grid-template-columns: 1fr; }
	.product-body { padding: 4px 22px 26px; }
	.pv { height: 200px; }
	.pv-screen { width: 220px; height: 124px; }
	.pv--wall .pv-screen { width: 230px; height: 130px; }
	.footer-grid { grid-template-columns: 1fr; gap: 30px; }
	.chip3d { font-size: .78rem; padding: 9px 12px; }
	.chip3d--1 { left: 2%; top: 0; }
	.hero-actions .btn { width: 100%; }
	.device--landscape { --w: 74vw; transform: translate3d(-12%, -4%, 0); }
	.device--portrait { --w: 22vw; transform: translate3d(calc(74vw * .34), 18%, 110px) rotateY(-14deg); }
	.chip3d--2 { display: none; }
	.chip3d--1 { left: 16%; top: 6%; }
	.phone { width: 120px; height: 240px; }
	.dash { width: 92%; left: 0; }
	@keyframes cursorPath { 0%, 100% { transform: translate(120px, 200px); } 40% { transform: translate(240px, 90px); } 60% { transform: translate(260px, 150px); } }
}

/* ---------- Minder beweging ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
	.grain { display: none; }
	.marquee-track, .ms-ticker span { animation: none; }
	.ring { transform: none; position: static; width: auto; height: auto; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; max-width: var(--container); padding: 0 16px; }
	.ring-item { position: relative; transform: none; min-height: 200px; }
	.ring-stage { height: auto; }
}

/* ==========================================================================
   Productlandingspagina's
   ========================================================================== */
.hero--product { min-height: auto; padding-bottom: clamp(60px, 8vw, 110px); }
.hero--product .breadcrumbs ol { margin-bottom: 18px; }
.hero-title--product { font-size: clamp(2.6rem, 5.6vw, 5.2rem); }
.section-title--sm { font-size: clamp(1.9rem, 3.6vw, 3rem); }

/* Groot 3D-productvisual */
.product-visual .scene { display: grid; place-items: center; }
.pv--xl { position: absolute; inset: 0; height: auto; background: none; overflow: visible; transform-style: preserve-3d; animation: floatA 8s var(--ease-io) infinite alternate; }
.pv--xl::before { inset: 30% -20% -20%; }
.pv--xl .pv-device {
	--s: 1.55;
	transform: rotateY(-10deg) rotateX(4deg) translateZ(40px) scale(var(--s));
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .16), 0 40px 80px -30px rgba(0, 0, 0, .9), 0 0 80px -10px rgba(124, 92, 255, .7);
}
.product:hover .pv--xl .pv-device, .pv--xl:hover .pv-device { transform: rotateY(-10deg) rotateX(4deg) translateZ(40px) scale(var(--s)); }
.pv--xl.pv--totem .pv-device { --s: 1.6; }
.pv--xl.pv--wall .pv-device { --s: 1.45; }
.pv--menu .pv-screen i:nth-child(4) { aspect-ratio: 1; height: auto; width: 26%; top: 24%; }
@media (max-width: 1080px) { .pv--xl .pv-device { --s: 1.3; } .pv--xl.pv--totem .pv-device { --s: 1.35; } }
@media (max-width: 680px) { .pv--xl .pv-device, .pv--xl.pv--wall .pv-device { --s: 1.1; } .pv--xl.pv--totem .pv-device { --s: 1.05; } }

/* Kerncijfers */
.spec-strip { position: relative; z-index: 2; border-block: 1px solid var(--line); background: rgba(255, 255, 255, .02); backdrop-filter: blur(10px); }
.spec-strip-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.spec-strip-list li { display: flex; flex-direction: column; gap: 4px; padding: clamp(24px, 3vw, 40px) clamp(14px, 2vw, 30px); border-left: 1px solid var(--line); }
.spec-strip-list li:first-child { border-left: 0; }
.spec-strip-list strong {
	font: 600 clamp(1.8rem, 3.6vw, 3rem)/1 var(--font-d); letter-spacing: -.04em;
	background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.spec-strip-list span { color: var(--muted); font-size: .92rem; }

.benefit-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* Toepassingen + specificaties */
.details-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px, 6vw, 90px); align-items: start; }
.uses-list { list-style: none; margin: 10px 0 32px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.uses-list li {
	display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 14px;
	border: 1px solid var(--line); background: var(--panel); font: 500 .96rem/1.3 var(--font-d);
}
.uses-list .icon { color: var(--lime); width: 18px; height: 18px; }
.uses .check-list .icon { color: var(--amber); }
.spec-card { padding: clamp(24px, 3vw, 40px); }
.spec-title { font-size: 1.5rem; margin-bottom: 18px; }
.spec-table { width: 100%; border-collapse: collapse; font-size: .97rem; }
.spec-table th, .spec-table td { padding: 15px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.spec-table th { width: 38%; padding-right: 20px; font: 500 .9rem/1.5 var(--font-d); color: var(--muted); }
.spec-table tr { transition: background .3s; }
.spec-table tr:hover td { color: var(--cyan); }
.spec-note { margin: 18px 0 0; color: var(--muted); font-size: .84rem; }

/* Andere producten */
.related .section-title { margin-bottom: 34px; max-width: none; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.related-card { display: flex; align-items: center; gap: 16px; padding: 22px; text-decoration: none; }
.related-body { flex: 1; display: grid; gap: 2px; }
.related-body strong { font: 600 1.1rem/1.2 var(--font-d); }
.related-body small { color: var(--muted); }
.related-card > .icon { color: var(--cyan); transition: transform .4s var(--ease); }
.related-card:hover > .icon { transform: translateX(5px); }

/* Productkaart op homepage */
.product-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }

@media (max-width: 1080px) {
	.benefit-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.related-grid { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
	.details-layout { grid-template-columns: 1fr; }
	.spec-strip-list { grid-template-columns: repeat(2, 1fr); }
	.spec-strip-list li:nth-child(3) { border-left: 0; }
	.spec-strip-list li:nth-child(n+3) { border-top: 1px solid var(--line); }
	.hero--product .hero-visual { height: clamp(280px, 62vw, 420px); }
}
@media (max-width: 680px) {
	.benefit-grid--4, .uses-list { grid-template-columns: 1fr; }
	.spec-table th { width: 44%; }
}

/* Credit */
.credit a { color: var(--text); text-decoration: none; opacity: .85; transition: color .3s, opacity .3s; }
.credit a:hover { color: var(--cyan); opacity: 1; }
