/* ==========================================================================
   SCALE — HOMEPAGE
   Aanvullingen op design-system.css voor de editorial Bain/McKinsey vibe.
   Alle classes prefixed met .home-* zodat ze nooit conflicteren met sp-*.
   ========================================================================== */


/* ==========================================================================
   0. ANKERPUNTEN — sitewide scroll-offset
   Elke <section> met een id is een menu-ankerdoel. scroll-margin-top zorgt
   dat het sticky header-menu de sectie-titel niet afdekt bij het klikken op
   een anker (#werkwijze, #model, #waarom, #faq, ...). Sitewide gedefinieerd
   zodat het op home, over-ons, voor-partners en voor-professionals identiek
   werkt. 110px = hoogte sticky menu + wat lucht.
   ========================================================================== */

body.sp-scope section[id] {
	scroll-margin-top: 110px;
}

@media (max-width: 768px) {
	body.sp-scope section[id] {
		scroll-margin-top: 88px;
	}
}


/* ==========================================================================
   0b. SPECIFICITY OVERRIDES voor Flatsome theme
   Flatsome heeft h1-h6 styling met hoge prioriteit. Deze block forceert
   onze home-* font-sizes door body.sp-scope context + !important op
   critical declarations.
   ========================================================================== */

body.sp-scope .home-hero-headline,
body.sp-scope h1.home-hero-headline {
	font-size: clamp(2.25rem, 5vw, 4.25rem) !important;
	line-height: 1.04 !important;
	letter-spacing: -0.025em !important;
	font-weight: 600 !important;
}

body.sp-scope .home-concept-intro,
body.sp-scope h2.home-concept-intro,
body.sp-scope .home-proof-title,
body.sp-scope h2.home-proof-title,
body.sp-scope .home-split-title,
body.sp-scope h2.home-split-title {
	font-size: clamp(1.5rem, 2.6vw, 2.25rem) !important;
	line-height: 1.2 !important;
	letter-spacing: -0.015em !important;
	font-weight: 500 !important;
}

body.sp-scope .home-final-cta-title,
body.sp-scope h2.home-final-cta-title {
	font-family: var(--sp-font-display) !important;
	font-size: clamp(2rem, 4.5vw, 3.75rem) !important;
	line-height: 1.1 !important;
	letter-spacing: -0.025em !important;
	font-weight: 600 !important;
}

body.sp-scope .home-step .sp-h3,
body.sp-scope .home-step h3,
body.sp-scope .home-split-card-title,
body.sp-scope h3.home-split-card-title {
	font-size: 1.25rem !important;
	line-height: 1.25 !important;
	font-weight: 500 !important;
}

body.sp-scope .home-step-num {
	font-size: clamp(2.25rem, 3.5vw, 3.25rem) !important;
	line-height: 1 !important;
	font-weight: 300 !important;
}

body.sp-scope .home-stat-num {
	font-size: clamp(2.25rem, 4vw, 3.25rem) !important;
	line-height: 1 !important;
	font-weight: 500 !important;
}

body.sp-scope .home-quote-text {
	font-size: clamp(1.0625rem, 1.4vw, 1.375rem) !important;
	line-height: 1.4 !important;
}

body.sp-scope .home-hero-sub {
	font-size: clamp(1rem, 1.15vw, 1.125rem) !important;
	line-height: 1.55 !important;
	/* Feller dan de standaard dark-lead grijstint (--sp-ink-300) voor betere
	   leesbaarheid. Hogere specificiteit + !important wint van .sp-section-dark .sp-lead. */
	color: rgba(255, 255, 255, 0.92) !important;
}

/* Final CTA subtext — force center, beide axes */
body.sp-scope .home-final-cta-sub,
body.sp-scope p.home-final-cta-sub {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 620px !important;
}

/* Footer SVG logo — vervangt de tekst-placeholder met het echte Scale-logo */
.sp-footer-logo-link {
	display: inline-block;
	line-height: 0;
	transition: opacity 0.25s var(--sp-ease-out);
}

.sp-footer-logo-link:hover {
	opacity: 0.85;
}

.sp-footer-logo-svg {
	display: block;
	width: 130px;
	height: auto;
	margin-bottom: var(--sp-space-2);
}

@media (max-width: 768px) {
	.sp-footer-logo-svg {
		width: 110px;
	}
}


/* Final CTA body — 3 alinea's met ademruimte en typografische hiërarchie */
body.sp-scope .home-final-cta-body {
	max-width: 620px;
	margin: 0 auto;
}

body.sp-scope .home-final-cta-body > p {
	margin: 0 auto var(--sp-space-5);
	text-align: center;
}

body.sp-scope .home-final-cta-body > p:last-child {
	margin-bottom: 0;
}

/* Eerste alinea: lead (groot, statement) — al .sp-lead */
/* Tweede alinea: body-ruimte tussen */
body.sp-scope p.home-final-cta-detail {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-base) !important;
	line-height: 1.6 !important;
	color: rgba(255, 255, 255, 0.7) !important;
}

/* Derde alinea: italic kicker — voelt als afsluiter/uitnodiging */
body.sp-scope p.home-final-cta-kicker {
	font-family: var(--sp-font-display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.0625rem, 1.4vw, 1.25rem) !important;
	line-height: 1.45 !important;
	color: rgba(255, 255, 255, 0.92) !important;
	margin-top: var(--sp-space-3) !important;
}

/* Trust block met shield icon — force inline-flex center alignment.
   Reset default <p> browser margins die het block te hoog maken (43px ipv ~20px). */
body.sp-scope .home-final-trust,
body.sp-scope p.home-final-trust {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	line-height: 1 !important;
	text-align: center !important;
	margin: 40px 0 0 0 !important;
	padding: 0 !important;
	height: auto !important;
}

body.sp-scope .home-final-trust > br,
body.sp-scope p.home-final-trust > br {
	display: none !important;
}

body.sp-scope .home-final-trust [data-lucide],
body.sp-scope .home-final-trust svg {
	width: 16px !important;
	height: 16px !important;
	flex-shrink: 0 !important;
	margin: 0 !important;
	transform: none !important;
	display: inline-block !important;
	align-self: center !important;
}

/* Section paddings — overrule eventuele theme padding */
body.sp-scope .home-concept,
body.sp-scope .home-proof,
body.sp-scope .home-split,
body.sp-scope .home-final-cta {
	padding-top: clamp(3rem, 6vw, 5.5rem) !important;
	padding-bottom: clamp(3rem, 6vw, 5.5rem) !important;
}

body.sp-scope .home-logos {
	padding-top: clamp(1.5rem, 3vw, 2.5rem) !important;
	padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important;
}

/* WP wpautop wraps inline elements in <p> — voorkom dat <p> margins onze layout breken */
body.sp-scope .home-hero-content > p,
body.sp-scope .home-step > p,
body.sp-scope .home-split-card-inner > p {
	margin-top: 0;
}

/* WP wpautop voegt vaak <p>/<br>/lege paragrafen tussen siblings in HTML content toe.
   Bij grid containers veroorzaakt dat fantoom-rijen of zichtbare strepen.
   Verberg alle artefacten die geen valide grid-item zijn. */
body.sp-scope .home-steps-grid > p,
body.sp-scope .home-steps-grid > br,
body.sp-scope .home-stats-grid > p,
body.sp-scope .home-stats-grid > br,
body.sp-scope .home-quotes-grid > p,
body.sp-scope .home-quotes-grid > br,
body.sp-scope .home-split-grid > p,
body.sp-scope .home-split-grid > br,
body.sp-scope .home-logos-row > p,
body.sp-scope .home-logos-row > br,
body.sp-scope .home-hero-meta > p,
body.sp-scope .home-hero-meta > br,
body.sp-scope .home-cta-buttons > p,
body.sp-scope .home-cta-buttons > br,
body.sp-scope .home-final-cta-buttons > p,
body.sp-scope .home-final-cta-buttons > br,
body.sp-scope .home-quote-card > p:empty,
body.sp-scope .home-split-card-inner > p:empty {
	display: none !important;
}

/* Voorkom dat WP <br> in een card-inner een rare lege ruimte maakt */
body.sp-scope .home-split-card-inner > br,
body.sp-scope .home-step > br,
body.sp-scope .home-quote-card > br {
	display: none !important;
}



/* ==========================================================================
   1. HERO
   ========================================================================== */

.home-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(6rem, 12vh, 9rem) 0 clamp(3rem, 6vw, 5rem);
	min-height: 88vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.home-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 15% 20%, rgba(139, 0, 0, 0.30) 0%, transparent 55%),
		radial-gradient(ellipse at 85% 80%, rgba(192, 48, 48, 0.18) 0%, transparent 55%);
	pointer-events: none;
	z-index: 0;
}

.home-hero .sp-container {
	position: relative;
	z-index: 1;
}

.home-hero-grid {
	max-width: 1080px;
}

/* ----------------------------------------------------------
   HERO GRADIENT ANIMATION (Aceternity-style bewegende orbs)
   Wordt automatisch in de hero geinjecteerd via reveal.js.
   Levendige, traag bewegende gradient-bollen in brand-rood.
   ---------------------------------------------------------- */
.home-hero-gradient {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
}

.home-hero-gradient__orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(55px);
	opacity: 0.85;
	mix-blend-mode: screen;
	will-change: transform;
}

.home-hero-gradient__orb--1 {
	width: 40vw;
	height: 40vw;
	max-width: 540px;
	max-height: 540px;
	background: radial-gradient(circle at center, rgba(180, 10, 10, 1), rgba(180, 10, 10, 0) 70%);
	top: -5%;
	left: 0%;
	animation: home-orb-1 13s ease-in-out infinite;
}

.home-hero-gradient__orb--2 {
	width: 36vw;
	height: 36vw;
	max-width: 480px;
	max-height: 480px;
	background: radial-gradient(circle at center, rgba(210, 55, 55, 0.95), rgba(210, 55, 55, 0) 70%);
	top: 10%;
	right: -5%;
	animation: home-orb-2 16s ease-in-out infinite;
}

.home-hero-gradient__orb--3 {
	width: 34vw;
	height: 34vw;
	max-width: 440px;
	max-height: 440px;
	background: radial-gradient(circle at center, rgba(210, 95, 55, 0.8), rgba(210, 95, 55, 0) 70%);
	bottom: -10%;
	left: 25%;
	animation: home-orb-3 19s ease-in-out infinite;
}

@keyframes home-orb-1 {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33%      { transform: translate(55%, 40%) scale(1.3); }
	66%      { transform: translate(25%, 70%) scale(0.8); }
}

@keyframes home-orb-2 {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33%      { transform: translate(-50%, 30%) scale(0.85); }
	66%      { transform: translate(-20%, -35%) scale(1.3); }
}

@keyframes home-orb-3 {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50%      { transform: translate(-40%, -55%) scale(1.25); }
}

@media (prefers-reduced-motion: reduce) {
	.home-hero-gradient__orb {
		animation: none !important;
	}
}

/* ----------------------------------------------------------
   HERO GLOBE (three.js) — alleen bij .home-hero--globe
   Container voor de 3D globe canvas, geinjecteerd via globe.js.
   ---------------------------------------------------------- */
.home-hero-globe {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.home-hero-globe canvas {
	display: block;
	width: 100% !important;
	height: 100% !important;
}

/* Globe positioneren: meer naar rechts/onder zodat de tekst links ademruimte heeft */
@media (min-width: 1024px) {
	.home-hero--globe .home-hero-globe {
		left: 25%;
		top: 5%;
	}
}

/* Dark overlay zodat de witte hero-tekst leesbaar blijft over de globe.
   Sterker aan de linkerkant (waar de tekst staat), lichter rechts. */
.home-hero--globe::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(10,10,11,0.92) 0%, rgba(10,10,11,0.55) 45%, rgba(10,10,11,0.15) 100%),
		linear-gradient(0deg, rgba(10,10,11,0.6) 0%, transparent 40%);
}

/* Content boven overlay + globe */
.home-hero--globe .sp-container,
.home-hero--globe .home-hero-meta {
	position: relative;
	z-index: 2;
}

/* Op mobile geen globe (globe.js skipt < 1024px) — gradient orbs blijven */
@media (max-width: 1023px) {
	.home-hero-globe {
		display: none !important;
	}
}

/* Op desktop met globe-mode: verberg de gradient orbs (globe is het hoofdeffect).
   Op mobile blijven de orbs zichtbaar als fallback voor de globe. */
@media (min-width: 1024px) {
	.home-hero--globe .home-hero-gradient {
		display: none !important;
	}
}


/* ----------------------------------------------------------
   HERO PARTICLE WAVE (three.js, Magnific-style) — .home-hero--particles
   Golvend veld van rode dots met diepte. Geinjecteerd via particles.js.
   ---------------------------------------------------------- */
.home-hero-particles {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.home-hero-particles canvas {
	display: block;
	width: 100% !important;
	height: 100% !important;
}

/* Overlay: vignet + bodem-fade zodat de tekst leesbaar blijft en de
   onderrand mooi wegvloeit (zoals de Magnific referentie). */
.home-hero--particles::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse at 50% 45%, transparent 0%, rgba(10,10,11,0.12) 75%, rgba(10,10,11,0.45) 100%),
		linear-gradient(0deg, rgba(10,10,11,0.7) 0%, transparent 30%);
}

.home-hero--particles .sp-container,
.home-hero--particles .home-hero-meta {
	position: relative;
	z-index: 2;
}

/* Verberg de gradient orbs alleen als de particle wave DAADWERKELIJK rendert
   (particles.js voegt .home-hero--particles-active toe bij succesvolle init).
   Faalt WebGL, dan blijven de orbs als achtergrond-fallback staan. */
.home-hero--particles-active .home-hero-gradient {
	display: none !important;
}


/* ----------------------------------------------------------
   HERO CONSTELLATION / NETWERK (2D canvas) — .home-hero--constellation
   Lichtgewicht netwerk-effect, geinjecteerd via constellation.js.
   ---------------------------------------------------------- */
.home-hero-constellation {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.home-hero-constellation canvas {
	display: block;
	width: 100%;
	height: 100%;
}

/* Overlay: vignet + bodem-fade voor leesbaarheid van de tekst */
.home-hero--constellation::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse at 30% 40%, transparent 0%, rgba(10,10,11,0.35) 70%, rgba(10,10,11,0.7) 100%),
		linear-gradient(0deg, rgba(10,10,11,0.7) 0%, transparent 40%);
}

.home-hero--constellation .sp-container,
.home-hero--constellation .home-hero-meta {
	position: relative;
	z-index: 2;
}

/* Verberg de gradient orbs als de constellation rendert */
.home-hero--constellation-active .home-hero-gradient {
	display: none !important;
}

.home-hero-headline {
	font-family: var(--sp-font-display);
	font-weight: 600;
	font-size: clamp(2.25rem, 5vw, 4.25rem);
	line-height: 1.04;
	letter-spacing: -0.025em;
	margin: var(--sp-space-5) 0 var(--sp-space-5);
}

.home-hero-italic {
	font-style: italic;
	font-weight: 400;
	color: var(--sp-red-300);
}

.home-hero-sub {
	max-width: 640px;
	font-size: clamp(1rem, 1.15vw, 1.125rem);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	margin: 0 0 var(--sp-space-8);
}

.home-hero-ctas {
	gap: var(--sp-space-3);
}

/* Gedeelde button-regels voor ALLE homepage buttons (hero + final-cta + concept-cta).
   Eén regel = geen risico op subtiele verschillen tussen contexten.
   Kleur-styling per knop apart hieronder. */
body.sp-scope .home-hero-ctas .sp-btn,
body.sp-scope .home-final-cta-buttons .sp-btn,
body.sp-scope .home-concept-cta .sp-btn,
.home-hero-ctas a.sp-btn,
.home-final-cta-buttons a.sp-btn,
.home-concept-cta a.sp-btn {
	height: 44px !important;
	min-height: 0 !important;
	max-height: 44px !important;
	padding: 0 22px !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	border-radius: var(--sp-radius-sm) !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	box-sizing: border-box !important;
}

/* Hide eventuele <br> die WP wpautop tussen icon en tekst plakt */
body.sp-scope .home-hero-ctas a.sp-btn br,
body.sp-scope .home-final-cta-buttons a.sp-btn br,
body.sp-scope .home-hero-ctas a.sp-btn p,
body.sp-scope .home-final-cta-buttons a.sp-btn p {
	display: none !important;
}

/* PRIMARY button hover — lichter rood + lift + glow ipv donkerder.
   Default sp-btn-primary:hover gebruikt red-700 (#4A0000) wat te donker is. */
body.sp-scope .home-hero-ctas a.sp-btn-primary,
body.sp-scope .home-final-cta-buttons a.sp-btn-primary {
	transition: background 0.25s var(--sp-ease-out),
		transform 0.25s var(--sp-ease-out),
		box-shadow 0.25s var(--sp-ease-out) !important;
}

body.sp-scope .home-hero-ctas a.sp-btn-primary:hover,
body.sp-scope .home-final-cta-buttons a.sp-btn-primary:hover {
	background: var(--sp-red-400) !important;
	transform: translateY(-2px) !important;
	box-shadow: none !important;
}

/* GHOST/secondary button hover — subtiele lichte tint + lift */
body.sp-scope .home-hero-cta-secondary:hover {
	background: rgba(255, 255, 255, 0.08) !important;
	border-color: rgba(255, 255, 255, 0.6) !important;
	transform: translateY(-2px) !important;
}

body.sp-scope .home-hero-ctas .sp-btn [data-lucide],
body.sp-scope .home-final-cta-buttons .sp-btn [data-lucide],
body.sp-scope .home-concept-cta .sp-btn [data-lucide],
.home-hero-ctas a.sp-btn [data-lucide],
.home-final-cta-buttons a.sp-btn [data-lucide],
.home-concept-cta a.sp-btn [data-lucide],
body.sp-scope .home-hero-ctas .sp-btn svg,
body.sp-scope .home-final-cta-buttons .sp-btn svg,
body.sp-scope .home-concept-cta .sp-btn svg,
.home-hero-ctas a.sp-btn svg,
.home-final-cta-buttons a.sp-btn svg,
.home-concept-cta a.sp-btn svg {
	width: 16px !important;
	height: 16px !important;
	flex-shrink: 0 !important;
	display: inline-block !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
	stroke-width: 2 !important;
	align-self: center !important;
	vertical-align: middle !important;
}

/* Force flex centering op alle buttons in homepage zodat icon + tekst altijd vertical-aligned zijn */
body.sp-scope .home-hero-ctas a.sp-btn,
body.sp-scope .home-final-cta-buttons a.sp-btn,
body.sp-scope .home-concept-cta a.sp-btn,
body.sp-scope .home-split-card-cta {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	line-height: 1 !important;
}

.home-hero-cta-secondary {
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, 0.3) !important;
	background: transparent !important;
}

.home-hero-cta-secondary:hover {
	background: rgba(255, 255, 255, 0.06) !important;
	border-color: rgba(255, 255, 255, 0.55) !important;
}


/* ----------------------------------------------------------
   HERO IMAGE — optioneel, 2 modi
   Activeer door class op .home-hero:
     - geen class           → tekst only (default)
     - .home-hero--split    → foto rechts naast tekst
     - .home-hero--bg       → foto full-bleed met overlay
   Foto-URL via inline style: style="--home-hero-image: url('...')"
   ---------------------------------------------------------- */

.home-hero-image {
	display: none;
	background-image: var(--home-hero-image, none);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* Video / iframe binnen .home-hero-image container.
   Pattern: <div class="home-hero-image"><video|iframe ...></div>
   De container handelt positionering, video vult de container. */
.home-hero-image > video,
.home-hero-image > iframe,
.home-hero-image > .home-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	pointer-events: none;
	z-index: 0;
	border: 0;
	border-radius: inherit;
}

/* Gradient overlays op image container moeten BOVEN de video staan */
.home-hero--split .home-hero-image::before,
.home-hero--bg .home-hero-image::after {
	z-index: 1;
}

/* === MODE 1: SPLIT (foto rechts naast tekst, absolute) === */
.home-hero--split .home-hero-image {
	display: block;
	position: absolute;
	top: 50%;
	right: clamp(1.5rem, 5vw, 5rem);
	transform: translateY(-50%);
	width: clamp(280px, 38vw, 520px);
	aspect-ratio: 4 / 5;
	border-radius: var(--sp-radius-lg);
	overflow: hidden;
	box-shadow: var(--sp-shadow-xl);
	z-index: 1;
}

.home-hero--split .home-hero-image::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background:
		linear-gradient(180deg, transparent 55%, rgba(10,10,11,0.4) 100%),
		linear-gradient(135deg, rgba(139,0,0,0.10), transparent 50%);
}

.home-hero--split .home-hero-image::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	border: 1px solid rgba(255,255,255,0.10);
	pointer-events: none;
}

/* Beperk tekst-content breedte zodat hij niet onder de foto loopt */
.home-hero--split .home-hero-grid {
	max-width: clamp(360px, 55%, 720px);
}

/* Mobile: foto verbergen, tekst weer full-width */
@media (max-width: 880px) {
	.home-hero--split .home-hero-image {
		display: none;
	}
	.home-hero--split .home-hero-grid {
		max-width: 100%;
	}
}

/* === MODE 2: FULL-BLEED BACKGROUND === */
.home-hero--bg .home-hero-image {
	display: block;
	position: absolute;
	inset: 0;
	z-index: 0;
}

.home-hero--bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg,
			rgba(10,10,11,0.55) 0%,
			rgba(10,10,11,0.45) 40%,
			rgba(10,10,11,0.85) 100%
		);
	z-index: 1;
	pointer-events: none;
}

.home-hero--bg .home-hero-grid,
.home-hero--bg .home-hero-meta {
	position: relative;
	z-index: 2;
}


/* Hero meta strip onderaan */
.home-hero-meta {
	position: relative;
	z-index: 1;
	max-width: var(--sp-container-xl);
	margin: clamp(3rem, 6vh, 5rem) auto 0;
	padding: var(--sp-space-5) clamp(1rem, 3vw, 2rem) 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--sp-space-5);
	flex-wrap: wrap;
}

.home-hero-meta-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.home-meta-label {
	font-family: var(--sp-font-body);
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.4);
}

.home-meta-value {
	font-family: var(--sp-font-body);
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.92);
	display: inline-flex;
	align-items: center;
	gap: var(--sp-space-2);
}

.home-hero-meta-scroll .home-meta-value {
	color: var(--sp-red-300);
}

/* Klikbare scroll indicator — visueel duidelijk dat het werkt */
body.sp-scope .home-hero-meta-scroll {
	cursor: pointer !important;
	transition: transform 0.3s var(--sp-ease-out);
}

body.sp-scope .home-hero-meta-scroll:hover {
	transform: translateY(3px);
}

body.sp-scope .home-hero-meta-scroll:hover .home-meta-value {
	color: var(--sp-red-200) !important;
}

body.sp-scope .home-hero-meta-scroll:hover [data-lucide],
body.sp-scope .home-hero-meta-scroll:hover svg {
	color: var(--sp-red-200) !important;
}


/* ==========================================================================
   2. SECTION META (00 / Label)
   ========================================================================== */

.home-section-meta {
	display: flex;
	align-items: baseline;
	gap: var(--sp-space-3);
	margin-bottom: var(--sp-space-8);
	padding-bottom: var(--sp-space-4);
	border-bottom: 1px solid var(--sp-border);
}

.home-section-meta-light {
	border-bottom-color: rgba(255, 255, 255, 0.12);
}

.home-section-num {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: var(--sp-text-base);
	color: var(--sp-primary);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}

.home-section-meta-light .home-section-num {
	color: var(--sp-red-300);
}

.home-section-label {
	font-family: var(--sp-font-body);
	font-weight: 600;
	font-size: var(--sp-text-xs);
	letter-spacing: var(--sp-tracking-widest);
	text-transform: uppercase;
	color: var(--sp-text-muted);
}

.home-section-meta-light .home-section-label {
	color: rgba(255, 255, 255, 0.55);
}

/* Section meta zonder nummer — alleen het label, geen accent-line eronder */
.home-section-meta-nolabel {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: var(--sp-space-5);
}

.home-section-meta-nolabel .home-section-label {
	font-size: var(--sp-text-sm);
	color: var(--sp-primary);
	letter-spacing: 0.18em;
}

/* CTA-knop "Meer over onze missie" in concept-sectie */
.home-concept-cta {
	margin: var(--sp-space-8) 0 var(--sp-space-12);
}

/* ----------------------------------------------------------
   FONT-METRIC COMPENSATIE voor knop-labels
   Gilroy (live site) zet de tekst-glyph iets lager in z'n line-box
   dan de fallback-fonts (lokale preview). Daardoor hangt de label
   optisch ~4px onder het pijltje, terwijl beide flex-gecentreerd zijn.
   Deze nudge tilt het label naar optisch midden, gelijk met het icoon.

   Let op: in de lokale preview (fallback-font) lijkt dit 4px te HOOG —
   dat klopt, want daar zat de tekst al goed. Op de live site met Gilroy
   is dit precies goed. Tweak de -4px hieronder indien nodig.
   ---------------------------------------------------------- */
/* Concept-knop: normale tekst (lowercase met staartletters) zit optisch laag → omhoog */
body.sp-scope .home-concept-cta a.sp-btn .sp-btn-label {
	display: inline-block;
	transform: translateY(-1px);
}

/* Split-cta: UPPERCASE tekst (geen staartletters, caps vullen bovenkant) zit
   optisch hoog → naar beneden om gelijk te lopen met het pijltje. */
body.sp-scope .home-split-card-cta .sp-btn-label {
	display: inline-block;
	transform: translateY(1px);
}

/* Concept-cta knop = alleen KLEUR-styling (rood outline) — alignment-regels
   komen uit de gedeelde hero/final-cta/concept selector hierboven. */
body.sp-scope .home-concept-cta a.sp-btn {
	background: var(--sp-primary) !important;
	color: var(--sp-white) !important;
	border: 1px solid var(--sp-primary) !important;
	text-decoration: none !important;
	transition: background 0.25s var(--sp-ease-out),
		color 0.25s var(--sp-ease-out),
		transform 0.25s var(--sp-ease-out) !important;
}

/* Witte (invert) hover — identiek aan de doelgroep-card-knoppen */
body.sp-scope .home-concept-cta a.sp-btn:hover {
	background: var(--sp-white) !important;
	color: var(--sp-primary) !important;
	border-color: var(--sp-primary) !important;
	transform: translateY(-2px) !important;
	box-shadow: none !important;
}


/* ==========================================================================
   3. CONCEPT — 3-stappen + intro
   ========================================================================== */

.home-concept {
	background: var(--sp-paper);
	padding: clamp(3rem, 6vw, 5.5rem) 0;
}

.home-concept-intro {
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	line-height: 1.2;
	letter-spacing: -0.015em;
	max-width: 880px;
	color: var(--sp-text);
	margin: 0;
}

.home-italic {
	font-style: italic;
	color: var(--sp-text-muted);
	font-weight: 400;
}

.home-text-accent {
	color: var(--sp-primary);
}

.home-divider-accent {
	width: 40px;
	height: 2px;
	background: var(--sp-primary);
	margin: var(--sp-space-6) 0 var(--sp-space-10);
}

.home-steps-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: var(--sp-border);
	border-top: 1px solid var(--sp-border);
	border-bottom: 1px solid var(--sp-border);
}

@media (min-width: 720px) {
	.home-steps-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.home-step {
	background: var(--sp-paper);
	padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem);
	transition: background 0.4s var(--sp-ease-out);
}

.home-step:hover {
	background: var(--sp-white);
}

.home-step-num {
	font-family: var(--sp-font-display);
	font-weight: 300;
	font-size: clamp(2.25rem, 3.5vw, 3.25rem);
	line-height: 1;
	color: var(--sp-primary);
	letter-spacing: -0.025em;
	margin-bottom: var(--sp-space-4);
	display: block;
}

.home-step .sp-h3 {
	margin-bottom: var(--sp-space-3);
}

.home-step .sp-body {
	margin: 0;
	color: var(--sp-text-muted);
}


/* ==========================================================================
   4. PROOF — kerncijfers + quotes (dark)
   ========================================================================== */

.home-proof,
.home-model,
.home-split,
.home-final-cta {
	padding: clamp(3rem, 6vw, 5.5rem) 0;
}


/* ==========================================================================
   BLOK 3 — HET SCALE MODEL
   2 sub-secties (talent + partners), elk met 4 cards.
   ========================================================================== */

.home-model-title {
	font-size: clamp(1.75rem, 3vw, 2.75rem);
	letter-spacing: -0.02em;
	margin: 0 0 var(--sp-space-5);
}

.home-model-intro {
	max-width: 760px;
	margin: 0 0 var(--sp-space-16);
}

/* Header met teamfoto ernaast; blokken schuiven daardoor omlaag */
.home-model-header {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(1.75rem, 4vw, 3.75rem);
	align-items: center;
	margin-bottom: clamp(2.75rem, 5vw, 4.25rem);
}

.home-model-header .home-model-intro {
	margin-bottom: 0;
}

.home-model-photo {
	margin: 0;
	border-radius: var(--sp-radius-lg);
	overflow: hidden;
	position: relative;
	box-shadow: 0 26px 64px -26px rgba(139, 0, 0, 0.45);
}

.home-model-photo img {
	display: block;
	width: 100%;
	/* Vierkant kader. Op deze foto zitten de mensen hoog in beeld, dus de
	   uitsnede ligt hoger dan standaard: bij 45% liep het hoofd linksboven
	   tegen de rand aan. */
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center 28%;
}



.home-model-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
	pointer-events: none;
}

@media (max-width: 860px) {
	.home-model-header {
		grid-template-columns: 1fr;
		gap: clamp(1.25rem, 4vw, 2rem);
	}
	.home-model-photo img {
		aspect-ratio: 1 / 1;
	}
}

/* ==========================================================================
   Herbruikbaar: sfeer-/teamfoto naast tekst (media-split + fotolijst)
   Gebruikt op partners, contact e.d.
   ========================================================================== */
.sp-media-split {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: center;
}

.sp-media-split.sp-media-split--rev {
	grid-template-columns: 0.95fr 1.05fr;
}

.sp-photo-frame {
	margin: 0;
	border-radius: var(--sp-radius-lg);
	overflow: hidden;
	position: relative;
	box-shadow: 0 26px 64px -26px rgba(139, 0, 0, 0.45);
}

.sp-photo-frame img {
	display: block;
	width: 100%;
	/* Vrijwel alle bronfoto's zijn staand (2:3) met veel lucht boven de mensen.
	   Een vierkant kader met de uitsnede op 45% haalt die dode ruimte weg en
	   legt het beeld strak om de personen, zonder hoofden af te snijden. */
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center 45%;
}

/* Voor liggende bronfoto's (bijv. werkoverleg-beelden) zou 4/5 juist links en
   rechts wegsnijden. Deze variant houdt die in liggend formaat. */
.sp-photo-frame--wide img {
	aspect-ratio: 3 / 2;
	object-position: center 30%;
}

.sp-photo-frame::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
	pointer-events: none;
}

@media (max-width: 860px) {
	.sp-media-split,
	.sp-media-split.sp-media-split--rev {
		grid-template-columns: 1fr;
		gap: clamp(1.25rem, 4vw, 2rem);
	}
	/* Op mobiel dezelfde verhouding aanhouden: een liggende uitsnede zou hier
	   opnieuw hoofden afsnijden. */
	.sp-media-split .sp-photo-frame--wide img {
		aspect-ratio: 3 / 2;
	}
}

.home-model-block {
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.home-model-block:last-child {
	margin-bottom: 0;
}

.home-model-block-title {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: clamp(1.375rem, 2vw, 1.75rem);
	color: var(--sp-white);
	letter-spacing: -0.015em;
	margin: 0 0 var(--sp-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--sp-space-2);
}

.home-model-block-eyebrow {
	font-family: var(--sp-font-body);
	font-weight: 600;
	font-size: var(--sp-text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sp-red-300);
}

.home-model-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: var(--sp-space-5);
}

.home-model-card {
	background: linear-gradient(135deg, rgba(31, 0, 0, 0.45), rgba(20, 20, 22, 0.55));
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--sp-radius-lg);
	padding: clamp(1.5rem, 2.5vw, 2rem);
	transition: transform 0.35s var(--sp-ease-out), border-color 0.35s var(--sp-ease-out), background 0.35s var(--sp-ease-out);
}

.home-model-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255, 255, 255, 0.18);
	background: linear-gradient(135deg, rgba(70, 0, 0, 0.5), rgba(30, 30, 32, 0.6));
}

/* Highlight card (de 75% tot 80%) — feller, springt eruit */
.home-model-card-highlight {
	background: linear-gradient(135deg, rgba(139, 0, 0, 0.55), rgba(40, 0, 0, 0.6));
	border-color: rgba(232, 85, 85, 0.3);
}

.home-model-card-highlight:hover {
	background: linear-gradient(135deg, rgba(160, 5, 5, 0.65), rgba(50, 0, 0, 0.65));
	border-color: rgba(232, 85, 85, 0.5);
}

.home-model-num {
	font-family: var(--sp-font-display);
	font-weight: 600;
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	line-height: 1;
	color: #E85555;
	letter-spacing: -0.03em;
	margin-bottom: var(--sp-space-4);
	font-variant-numeric: tabular-nums;
}

.home-model-num-suffix {
	font-size: 0.5em;
	color: rgba(255, 255, 255, 0.6);
	font-weight: 400;
	margin-left: 4px;
}

.home-model-card-icon {
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--sp-radius-md);
	background: rgba(232, 85, 85, 0.12);
	color: #E85555;
	margin-bottom: var(--sp-space-4);
}

.home-model-card:hover .home-model-card-icon {
	background: rgba(232, 85, 85, 0.22);
}

.home-model-card-icon [data-lucide],
.home-model-card-icon svg {
	width: 22px;
	height: 22px;
	stroke-width: 1.75;
}

.home-model-card-title {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: 1.25rem;
	color: var(--sp-white);
	letter-spacing: -0.01em;
	margin: 0 0 var(--sp-space-3);
}

.home-model-card-body {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-sm);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.65);
	margin: 0;
}

.home-proof-title {
	max-width: 680px;
	margin: 0 0 var(--sp-space-10);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	letter-spacing: -0.015em;
}

.home-stats-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: rgba(255, 255, 255, 0.10);
	border-top: 1px solid rgba(255, 255, 255, 0.10);
	border-bottom: 1px solid rgba(255, 255, 255, 0.10);
	margin-bottom: clamp(3rem, 6vw, 4.5rem);
}

@media (min-width: 720px) {
	.home-stats-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.home-stat {
	background: var(--sp-ink-900);
	padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 2.5vw, 1.75rem);
	transition: background 0.4s var(--sp-ease-out);
}

.home-stat:hover {
	background: var(--sp-ink-800);
}

.home-stat-num {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	line-height: 1;
	letter-spacing: -0.025em;
	color: var(--sp-white);
	margin-bottom: var(--sp-space-3);
	font-variant-numeric: tabular-nums;
}

.home-stat-unit,
.home-stat-sep {
	font-size: 0.6em;
	color: var(--sp-red-300);
	font-weight: 400;
	margin-left: 4px;
}

.home-stat-sep {
	margin: 0 4px;
	color: rgba(255, 255, 255, 0.4);
}

.home-stat-label {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-sm);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.65);
	max-width: 280px;
}

.home-quotes-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: var(--sp-space-6);
}

.home-quote-card {
	background: linear-gradient(135deg, rgba(31, 0, 0, 0.55), rgba(139, 0, 0, 0.30));
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: var(--sp-radius-lg);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	margin: 0;
	position: relative;
	transition: transform 0.4s var(--sp-ease-out), border-color 0.4s var(--sp-ease-out);
}

.home-quote-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255, 255, 255, 0.20);
}

.home-quote-mark {
	width: 28px !important;
	height: 28px !important;
	color: var(--sp-red-300);
	margin-bottom: var(--sp-space-4);
	display: block;
	stroke-width: 1.25;
}

.home-quote-text {
	font-family: var(--sp-font-display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.0625rem, 1.4vw, 1.375rem);
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: var(--sp-white);
	margin: 0 0 var(--sp-space-5);
}

.home-quote-attr {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: var(--sp-space-5);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.home-quote-name {
	font-family: var(--sp-font-body);
	font-weight: 600;
	font-size: var(--sp-text-sm);
	color: var(--sp-white);
}

.home-quote-role {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-xs);
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.55);
}


/* ==========================================================================
   5. DOELGROEP SPLITS
   ========================================================================== */

.home-split-title {
	max-width: 720px;
	margin: 0 0 var(--sp-space-10);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	letter-spacing: -0.015em;
}

.home-muted {
	color: var(--sp-text-muted);
	font-weight: 400;
}

.home-split-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: var(--sp-space-6);
}

.home-split-card {
	display: block;
	text-decoration: none;
	color: inherit;
	border-radius: var(--sp-radius-xl);
	overflow: hidden;
	transition: transform 0.5s var(--sp-ease-out), box-shadow 0.5s var(--sp-ease-out);
	position: relative;
}

.home-split-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sp-shadow-xl);
}

.home-split-card-inner {
	padding: clamp(1.75rem, 3vw, 2.75rem);
	display: flex;
	flex-direction: column;
	gap: var(--sp-space-3);
	min-height: 320px;
	position: relative;
	z-index: 1;
}

/* Partner card — dark */
.home-split-partners {
	background: linear-gradient(135deg, var(--sp-ink-900) 0%, var(--sp-ink-800) 100%);
	color: var(--sp-white);
}

.home-split-partners::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 20% 0%, rgba(139, 0, 0, 0.30) 0%, transparent 60%);
	pointer-events: none;
}

.home-split-partners .home-split-card-title {
	color: var(--sp-white);
}

.home-split-partners .home-split-card-body {
	color: rgba(255, 255, 255, 0.75);
}

.home-split-partners .sp-badge {
	background: rgba(255, 255, 255, 0.10);
	color: var(--sp-white);
	border: 1px solid rgba(255, 255, 255, 0.20);
	align-self: flex-start;
}

.home-split-partners .home-split-card-cta {
	color: var(--sp-red-300);
}

/* Scaler card — light */
.home-split-scalers {
	background: linear-gradient(135deg, var(--sp-red-50) 0%, #fff 100%);
	border: 1px solid var(--sp-border);
	color: var(--sp-text);
}

.home-split-scalers .home-split-card-title {
	color: var(--sp-text);
}

.home-split-scalers .home-split-card-body {
	color: var(--sp-text-muted);
}

.home-split-scalers .sp-badge {
	align-self: flex-start;
}

.home-split-scalers .home-split-card-cta {
	color: var(--sp-primary);
}

.home-split-card-title {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: clamp(1.25rem, 1.9vw, 1.625rem);
	line-height: 1.22;
	letter-spacing: -0.015em;
	margin: var(--sp-space-2) 0 var(--sp-space-1);
}

.home-split-card-body {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-sm);
	line-height: 1.55;
	margin: 0;
	flex: 1;
}

.home-split-card-cta {
	font-family: var(--sp-font-body);
	font-weight: 600;
	font-size: var(--sp-text-sm);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: var(--sp-space-2);
	padding-top: var(--sp-space-5);
	border-top: 1px solid currentColor;
	max-width: max-content;
	transition: gap 0.3s var(--sp-ease-out);
}

.home-split-card:hover .home-split-card-cta {
	gap: var(--sp-space-3);
}

/* Doelgroep v2 — beide cards in dark stijl maar SUBTIEL anders zodat ze
   niet identiek voelen: partners = dieper donker met diepe rode accent,
   talent = iets lichter met heldere rode accent in andere positie. */
body.sp-scope .home-split-equal {
	color: var(--sp-white);
	border-radius: var(--sp-radius-xl);
	transition: transform 0.5s var(--sp-ease-out), border-color 0.5s var(--sp-ease-out);
}

body.sp-scope .home-split-equal:hover {
	transform: translateY(-4px);
}

body.sp-scope .home-split-equal::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	transition: opacity 0.5s var(--sp-ease-out);
}

/* PARTNERS card — diepere/donkerder gradient + dieprode gloed linksboven */
body.sp-scope .home-split-equal:first-child {
	background: linear-gradient(135deg, #0a0a0b 0%, #18181b 100%);
	border: 1px solid rgba(255, 255, 255, 0.07);
}

body.sp-scope .home-split-equal:first-child::before {
	background: radial-gradient(ellipse at 10% -10%, rgba(139, 0, 0, 0.45) 0%, transparent 55%);
}

body.sp-scope .home-split-equal:first-child:hover {
	border-color: rgba(139, 0, 0, 0.4);
}

/* TALENT card — iets lichter dark + helderdere rode gloed rechtsonder + warm tint */
body.sp-scope .home-split-equal:last-child {
	background: linear-gradient(135deg, #1a1316 0%, #221a1e 100%);
	border: 1px solid rgba(255, 255, 255, 0.10);
}

body.sp-scope .home-split-equal:last-child::before {
	background:
		radial-gradient(ellipse at 90% 110%, rgba(232, 85, 85, 0.35) 0%, transparent 55%),
		radial-gradient(ellipse at 60% 30%, rgba(192, 85, 48, 0.10) 0%, transparent 60%);
}

body.sp-scope .home-split-equal:last-child:hover {
	border-color: rgba(232, 85, 85, 0.35);
}

body.sp-scope .home-split-equal .home-split-card-title,
body.sp-scope .home-split-equal .sp-h2.home-split-card-title {
	color: var(--sp-white) !important;
}

body.sp-scope .home-split-equal .home-split-card-body {
	color: rgba(255, 255, 255, 0.7) !important;
}

body.sp-scope .home-split-equal .sp-badge {
	background: rgba(255, 255, 255, 0.10);
	color: var(--sp-white);
	border: 1px solid rgba(255, 255, 255, 0.20);
	align-self: flex-start;
}

/* CTA-links: partners donkerder rood, talent helderder rood (subtiel verschil) */
body.sp-scope .home-split-equal:first-child .home-split-card-cta {
	color: var(--sp-red-300);
	border-top-color: rgba(192, 48, 48, 0.3);
}

body.sp-scope .home-split-equal:last-child .home-split-card-cta {
	color: #E85555;
	border-top-color: rgba(232, 85, 85, 0.35);
}

/* CTA-link pijltjes uitlijning fix — zelfde aanpak als hero/concept buttons */
body.sp-scope .home-split-card-cta {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	line-height: 1 !important;
}

/* 1-op-1 dezelfde alignment-regels als de hero buttons. */
body.sp-scope .home-split-card-cta [data-lucide],
body.sp-scope .home-split-card-cta svg {
	width: 16px !important;
	height: 16px !important;
	flex-shrink: 0 !important;
	display: inline-block !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
	stroke-width: 2 !important;
	align-self: center !important;
	vertical-align: middle !important;
}


/* ==========================================================================
   6. LOGOBALK
   ========================================================================== */

.home-logos {
	background: var(--sp-white);
	border-top: 1px solid var(--sp-border);
	border-bottom: 1px solid var(--sp-border);
	padding: clamp(2rem, 4vw, 3rem) 0 !important;
}

.home-logos-label {
	font-family: var(--sp-font-body);
	font-weight: 500;
	font-size: var(--sp-text-xs);
	letter-spacing: var(--sp-tracking-widest);
	text-transform: uppercase;
	color: var(--sp-text-muted);
	margin: 0 0 var(--sp-space-6);
}

.home-logos-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: clamp(1.5rem, 5vw, 4rem);
}

.home-logo-placeholder {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: var(--sp-text-lg);
	letter-spacing: -0.01em;
	color: var(--sp-ink-300);
	opacity: 0.7;
	transition: opacity 0.3s, color 0.3s;
}

.home-logo-placeholder:hover {
	opacity: 1;
	color: var(--sp-ink-700);
}


/* ==========================================================================
   7. FINAL CTA
   ========================================================================== */

.home-final-cta {
	padding: clamp(4rem, 9vh, 6.5rem) 0 !important;
	position: relative;
	overflow: hidden;
}

.home-final-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 50% 0%, rgba(139, 0, 0, 0.25) 0%, transparent 60%),
		radial-gradient(ellipse at 50% 100%, rgba(192, 48, 48, 0.15) 0%, transparent 60%);
	pointer-events: none;
}

.home-final-cta .sp-container {
	position: relative;
	z-index: 1;
}

.home-final-cta-title {
	font-size: clamp(2rem, 4.5vw, 3.75rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin: var(--sp-space-5) 0 var(--sp-space-4);
}

.home-final-cta-sub {
	max-width: 580px;
	margin: 0 auto var(--sp-space-8);
	color: rgba(255, 255, 255, 0.78);
	font-size: var(--sp-text-base);
}

.home-final-cta-buttons {
	gap: var(--sp-space-3);
}

.home-final-trust {
	margin: var(--sp-space-10) 0 0;
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-sm);
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.55);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-space-2);
}

.home-final-trust [data-lucide] {
	color: var(--sp-red-300);
	width: 16px;
	height: 16px;
}


/* ==========================================================================
   8. SCROLL-TRIGGERED ANIMATIES
   IntersectionObserver triggert .is-visible op data-reveal elementen.
   Stagger via data-reveal-delay="1..6" (elke stap = +80ms).
   ========================================================================== */

[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity 0.75s var(--sp-ease-out),
		transform 0.85s var(--sp-ease-out);
	will-change: opacity, transform;
}

[data-reveal="fade"] {
	transform: none;
}

[data-reveal="scale"] {
	transform: scale(0.96);
}

[data-reveal="slide-left"] {
	transform: translateX(-32px);
}

[data-reveal="slide-right"] {
	transform: translateX(32px);
}

[data-reveal].is-visible {
	opacity: 1;
	transform: translate(0, 0) scale(1) !important;
}

[data-reveal-delay="1"] { transition-delay: 0.08s; }
[data-reveal-delay="2"] { transition-delay: 0.16s; }
[data-reveal-delay="3"] { transition-delay: 0.24s; }
[data-reveal-delay="4"] { transition-delay: 0.32s; }
[data-reveal-delay="5"] { transition-delay: 0.40s; }
[data-reveal-delay="6"] { transition-delay: 0.48s; }

/* Counter — initial state */
.home-stat-num.is-counting [data-count] {
	display: inline-block;
}


/* ==========================================================================
   9. MICRO-INTERACTIONS
   ========================================================================== */

/* Hero focuswoorden ("workforce." / "career.") visueel zwaarder maken.
   Dyson Sans Modern heeft geen echte bold variant, dus we combineren:
     - font-weight: 700 (gebruikt zwaardere variant als beschikbaar, anders
       synthetic bold)
     - -webkit-text-stroke: 2px — dikt letter-randen flink op (op display-
       tekst van 56-96px is dit een duidelijk zichtbare verzwaring,
       0.6px was te subtiel)
     - paint-order: stroke fill → stroke onder de fill, schoner resultaat
     - letter-spacing compenseert de extra breedte van de stroke
   Gebruikt currentColor zodat de stroke meeloopt met text-color (wit op
   "workforce.", rood op "career." binnen .home-hero-italic). */
.home-hero-emphasis {
	font-weight: 700;
	-webkit-text-stroke: 2px currentColor;
	paint-order: stroke fill;
	/* Stroke maakt letters breder; positieve spacing geeft ademruimte tussen
	   letters zodat ze niet aan elkaar plakken. */
	letter-spacing: 0.02em;
}

/* Mobile: iets dunnere stroke + minder spacing nodig */
@media (max-width: 768px) {
	.home-hero-emphasis {
		-webkit-text-stroke: 1.5px currentColor;
		letter-spacing: 0.015em;
	}
}

/* Hero italic accent — helderder rood + zachte glow.
   Vorige red-300 was te dof; nu een vibrant accent dat in huisstijl blijft
   maar duidelijk naar voren komt. Text-shadow geeft de "leven" zonder
   background-clip text issues. */
.home-hero-italic {
	color: #E85555;
	font-style: italic;
	font-weight: 500;
	text-shadow: 0 0 24px rgba(232, 85, 85, 0.4), 0 0 48px rgba(232, 85, 85, 0.2);
	animation: home-italic-glow 6s ease-in-out infinite;
}

@keyframes home-italic-glow {
	0%, 100% {
		color: #E85555;
		text-shadow: 0 0 24px rgba(232, 85, 85, 0.4), 0 0 48px rgba(232, 85, 85, 0.2);
	}
	50% {
		color: #FF7575;
		text-shadow: 0 0 32px rgba(232, 85, 85, 0.55), 0 0 64px rgba(232, 85, 85, 0.3);
	}
}

/* Step card: number lifts when card hovered */
.home-step {
	cursor: default;
}

.home-step-num {
	transition:
		transform 0.5s var(--sp-ease-spring),
		color 0.4s var(--sp-ease-out);
}

.home-step:hover .home-step-num {
	transform: translateY(-4px);
	color: var(--sp-red-400);
}

/* Stat number: shimmer on reveal */
.home-stat-num {
	background: linear-gradient(120deg, #fff 0%, #fff 40%, var(--sp-red-100) 50%, #fff 60%, #fff 100%);
	background-size: 250% 100%;
	background-position: 100% 0%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.home-stat.is-visible .home-stat-num {
	animation: home-stat-shimmer 1.4s var(--sp-ease-out) 0.2s both;
}

@keyframes home-stat-shimmer {
	0%   { background-position: 100% 0%; }
	100% { background-position: 0% 0%; }
}

/* Quote card subtle parallax on hover */
.home-quote-card {
	cursor: default;
}

.home-quote-card .home-quote-mark {
	transition: transform 0.6s var(--sp-ease-spring);
}

.home-quote-card:hover .home-quote-mark {
	transform: rotate(-8deg) scale(1.12);
}

/* Split card arrow slides in */
.home-split-card-cta [data-lucide] {
	transition: transform 0.4s var(--sp-ease-out);
}

.home-split-card:hover .home-split-card-cta [data-lucide] {
	transform: translateX(6px);
}

/* Section meta — accent line grows on reveal */
.home-section-meta {
	position: relative;
}

.home-section-meta::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 0;
	height: 1px;
	background: var(--sp-primary);
	transition: width 1.2s var(--sp-ease-out) 0.2s;
}

.home-section-meta.is-visible::after {
	width: 64px;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	[data-reveal] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.home-hero-italic,
	.home-stat-num {
		animation: none !important;
		background: none !important;
		-webkit-text-fill-color: currentColor !important;
		color: var(--sp-red-300);
	}
}


/* ==========================================================================
   10. RESPONSIVE TIGHTENING
   ========================================================================== */

@media (max-width: 768px) {
	body.sp-scope .home-hero {
		min-height: auto !important;
		padding-top: 140px !important;
		padding-bottom: clamp(2.5rem, 5vw, 4rem) !important;
	}

	.home-hero-headline {
		font-size: clamp(2.25rem, 9vw, 3.25rem);
	}

	.home-hero-meta {
		gap: var(--sp-space-4);
	}

	.home-hero-meta-item {
		flex: 1 1 calc(50% - 1rem);
	}

	.home-section-meta {
		margin-bottom: var(--sp-space-6);
	}

	.home-stats-grid {
		grid-template-columns: 1fr;
	}

	.home-split-card-inner {
		min-height: auto;
	}
}

/* Smaller viewports — nog iets compacter */
@media (max-width: 480px) {
	body.sp-scope .home-hero {
		padding-top: 130px !important;
	}
}


/* ==========================================================================
   GRAVITY FORMS — styling in Scale huisstijl (sitewide)
   Wrap de [gravityform] shortcode in <div class="sp-gform">.
   Werkt voor Gravity Forms 2.5+ (gravity-theme) en legacy markup.
   Staat in home.css (laadt overal) zodat forms op elke pagina gestyled zijn.
   ========================================================================== */

.sp-gform .gform_wrapper {
	margin: 0;
}

.sp-gform .gform_wrapper .gfield {
	margin-bottom: var(--sp-space-3) !important;
}

/* Gravity Forms 2.5+ legt de velden in een CSS-grid met een eigen row-gap;
   die maakt het formulier "uit elkaar". Hier strak gezet (de gfield-marge
   alleen is niet genoeg in de grid-modus). */
.sp-gform .gform_wrapper .gform_fields {
	grid-row-gap: 12px !important;
	row-gap: 12px !important;
}
.sp-gform .gform_wrapper.gravity-theme .gfield {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* "Vereist"-markering overal verbergen — in dit formulier is alles verplicht. */
.sp-gform .gfield_required,
.sp-gform .gfield_required_text,
.sp-gform .gform_required_legend {
	display: none !important;
}

.sp-gform .gform_wrapper .gfield_label,
.sp-gform .gform_wrapper .gform-field-label {
	font-family: var(--sp-font-body) !important;
	font-weight: 600 !important;
	font-size: var(--sp-text-sm) !important;
	color: var(--sp-text) !important;
	margin-bottom: 4px !important;
	display: block;
}

.sp-gform .gfield_required {
	color: var(--sp-primary) !important;
}

.sp-gform .gform_wrapper input[type="text"],
.sp-gform .gform_wrapper input[type="email"],
.sp-gform .gform_wrapper input[type="tel"],
.sp-gform .gform_wrapper input[type="url"],
.sp-gform .gform_wrapper input[type="number"],
.sp-gform .gform_wrapper input[type="password"],
.sp-gform .gform_wrapper textarea,
.sp-gform .gform_wrapper select {
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 10px 13px !important;
	font-family: var(--sp-font-body) !important;
	font-size: var(--sp-text-base) !important;
	line-height: 1.4 !important;
	color: var(--sp-text) !important;
	background: var(--sp-white) !important;
	border: 1px solid var(--sp-border) !important;
	border-radius: var(--sp-radius-md) !important;
	transition: border-color 0.25s var(--sp-ease-out), box-shadow 0.25s var(--sp-ease-out) !important;
}

.sp-gform .gform_wrapper textarea {
	min-height: 104px !important;
	resize: vertical !important;
}

.sp-gform .gform_wrapper input:focus,
.sp-gform .gform_wrapper textarea:focus,
.sp-gform .gform_wrapper select:focus {
	outline: none !important;
	border-color: var(--sp-primary) !important;
	box-shadow: 0 0 0 3px rgba(139, 0, 0, 0.15) !important;
}

.sp-gform .gform_wrapper ::placeholder {
	color: var(--sp-ink-400) !important;
	opacity: 1;
}

.sp-gform .gform_wrapper .gform_footer,
.sp-gform .gform_wrapper .gform-footer {
	margin-top: var(--sp-space-6) !important;
	padding: 0 !important;
}

.sp-gform .gform_wrapper .gform_footer input[type="submit"],
.sp-gform .gform_wrapper .gform_button,
.sp-gform .gform_wrapper button.gform_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--sp-primary) !important;
	color: var(--sp-white) !important;
	border: none !important;
	padding: 13px 30px !important;
	font-family: var(--sp-font-body) !important;
	font-weight: 600 !important;
	font-size: var(--sp-text-base) !important;
	border-radius: var(--sp-radius-sm) !important;
	cursor: pointer !important;
	width: auto !important;
	transition: background 0.25s var(--sp-ease-out), transform 0.25s var(--sp-ease-out), box-shadow 0.25s var(--sp-ease-out) !important;
}

.sp-gform .gform_wrapper .gform_footer input[type="submit"]:hover,
.sp-gform .gform_wrapper .gform_button:hover {
	background: var(--sp-red-400) !important;
	transform: translateY(-2px) !important;
	box-shadow: none !important;
}

.sp-gform .gform_wrapper .gfield_error input,
.sp-gform .gform_wrapper .gfield_error textarea,
.sp-gform .gform_wrapper .gfield_error select {
	border-color: var(--sp-alert) !important;
	box-shadow: 0 0 0 3px rgba(178, 0, 0, 0.12) !important;
}

.sp-gform .gform_wrapper .validation_message,
.sp-gform .gform_wrapper .gfield_validation_message {
	color: var(--sp-alert) !important;
	font-size: var(--sp-text-xs) !important;
	font-weight: 500 !important;
	margin-top: 4px !important;
}

.sp-gform .gform_wrapper .gform_validation_errors {
	background: var(--sp-red-50) !important;
	border: 1px solid var(--sp-red-200) !important;
	border-radius: var(--sp-radius-md) !important;
	padding: var(--sp-space-4) !important;
	margin-bottom: var(--sp-space-5) !important;
}

.sp-gform .gform_confirmation_message {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-lg);
	line-height: 1.5;
	color: var(--sp-text);
	padding: var(--sp-space-6);
	background: var(--sp-red-50);
	border: 1px solid var(--sp-red-200);
	border-radius: var(--sp-radius-lg);
}


/* ==========================================================================
   GEDEELDE COMPONENTEN (sitewide) — timeline, faq-accordion, form-card
   Herbruikbaar op elke pagina (voor-partners, voor-talent, ...).
   ========================================================================== */

/* --- Verticale proces-timeline --- */
.sp-timeline {
	max-width: 820px;
}

/* Staat er een fotoblok direct boven een tijdlijn, dan plakte die er tegenaan.
   Partners gebruikt een eigen tijdlijn-class, dus die staat er los bij. */
.sp-media-split + .sp-timeline,
.sp-media-split + .partners-timeline {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

.sp-timeline-step {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: var(--sp-space-6);
	position: relative;
	padding-bottom: var(--sp-space-8);
}

.sp-timeline-step:last-child {
	padding-bottom: 0;
}

.sp-timeline-step:not(:last-child)::before {
	content: "";
	position: absolute;
	left: 27px;
	top: 60px;
	bottom: -4px;
	width: 2px;
	background: linear-gradient(var(--sp-red-200), var(--sp-border));
}

.sp-timeline-num {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--sp-red-500), var(--sp-red-700));
	color: var(--sp-white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--sp-font-display);
	font-weight: 600;
	font-size: 1.375rem;
	position: relative;
	z-index: 1;
	box-shadow: 0 6px 18px rgba(139, 0, 0, 0.22);
}

.sp-timeline-body {
	padding-top: 4px;
}

.sp-timeline-title {
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: 1.375rem;
	letter-spacing: -0.01em;
	color: var(--sp-text);
	margin: 0 0 var(--sp-space-2);
}

.sp-timeline-text {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-base);
	line-height: 1.6;
	color: var(--sp-text-muted);
	margin: 0;
}

/* --- FAQ accordion (native details/summary) --- */
.sp-faq {
	max-width: 820px;
}

.sp-faq-item {
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius-lg);
	background: var(--sp-white);
	margin-bottom: var(--sp-space-3);
	overflow: hidden;
	transition: border-color 0.25s var(--sp-ease-out), box-shadow 0.25s var(--sp-ease-out);
}

.sp-faq-item[open] {
	border-color: var(--sp-red-200);
	box-shadow: var(--sp-shadow-sm);
}

.sp-faq-item summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-space-4);
	padding: var(--sp-space-5) var(--sp-space-6);
	font-family: var(--sp-font-display);
	font-weight: 500;
	font-size: 1.0625rem;
	color: var(--sp-text);
	transition: color 0.25s var(--sp-ease-out);
}

.sp-faq-item summary::-webkit-details-marker {
	display: none;
}

.sp-faq-item summary:hover {
	color: var(--sp-primary);
}

.sp-faq-item summary [data-lucide],
.sp-faq-item summary svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	color: var(--sp-primary);
	transition: transform 0.3s var(--sp-ease-out);
}

.sp-faq-item[open] summary [data-lucide],
.sp-faq-item[open] summary svg {
	transform: rotate(180deg);
}

.sp-faq-answer {
	padding: 0 var(--sp-space-6) var(--sp-space-6);
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-base);
	line-height: 1.6;
	color: var(--sp-text-muted);
	margin: 0;
}

.sp-faq-answer ul {
	margin: var(--sp-space-3) 0 0;
	padding-left: var(--sp-space-5);
}

.sp-faq-answer li {
	margin-bottom: var(--sp-space-2);
}

/* --- Form-card (witte card op donkere sectie) --- */
.sp-form-card {
	max-width: 760px;
	margin: 0 auto;
	background: var(--sp-white);
	border-radius: var(--sp-radius-xl);
	padding: clamp(1.75rem, 4vw, 3rem);
	box-shadow: var(--sp-shadow-xl);
}

.sp-form-intro {
	font-family: var(--sp-font-body);
	font-size: var(--sp-text-base);
	line-height: 1.55;
	color: var(--sp-text-muted);
	margin: 0 0 var(--sp-space-6);
}


/* ==========================================================================
   REDESIGN v2 — GRIJS/WIT RITME + CONSISTENTE OPMAAK (homepage)
   Wisselt lichtgrijs (--sp-ink-50) en wit af. Geen donkere content-secties
   meer: het Scale-model staat nu op grijs, de doelgroep-cards op wit en licht,
   de eind-CTA wordt een rood blok. De hero blijft donker.
   Eén consistente rode sectie-kop (.home-eyebrow) met lijntje, geen nummering.
   Dit blok staat bewust achteraan en overschrijft de oudere donkere regels.
   ========================================================================== */

/* Sectie-achtergronden — grijs <-> wit ritme */
body.sp-scope .home-section-grey  { background: var(--sp-ink-50) !important; }
body.sp-scope .home-section-white { background: var(--sp-white)   !important; }

/* Consistente sectie-kop: rood label met klein rood lijntje ONDER de tekst */
body.sp-scope .home-eyebrow {
	display: block;
	font-family: var(--sp-font-body);
	font-weight: 600;
	font-size: var(--sp-text-sm);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sp-primary);
	margin: 0 0 var(--sp-space-5);
}
body.sp-scope .home-eyebrow::after {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	background: var(--sp-primary);
	margin-top: var(--sp-space-2);
}

/* Matching-sectie (nieuw): vakgebieden als pills + de 3 stappen */
body.sp-scope .home-match {
	padding-top: clamp(3rem, 6vw, 5.5rem) !important;
	padding-bottom: clamp(3rem, 6vw, 5.5rem) !important;
}
body.sp-scope .home-match-title {
	max-width: 760px;
	margin: 0 0 var(--sp-space-8);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	line-height: 1.2;
	letter-spacing: -0.015em;
}
body.sp-scope .home-disciplines {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-space-3);
	margin: 0 0 var(--sp-space-12);
}
body.sp-scope .home-discipline {
	font-family: var(--sp-font-body);
	font-weight: 600;
	font-size: var(--sp-text-sm);
	color: var(--sp-text);
	background: var(--sp-ink-50);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius-full);
	padding: 8px 18px;
}
body.sp-scope .home-disciplines > p,
body.sp-scope .home-disciplines > br { display: none !important; }

/* Het Scale model — nu op grijs i.p.v. donker; kaarten wit met rood icoon */
body.sp-scope .home-model-title       { color: var(--sp-text) !important; }
body.sp-scope .home-model-intro       { color: var(--sp-text-muted) !important; }
body.sp-scope .home-model-block-title { color: var(--sp-text) !important; }
body.sp-scope .home-model-card {
	background: var(--sp-white) !important;
	border: 1px solid var(--sp-border) !important;
}
body.sp-scope .home-model-card:hover {
	border-color: rgba(139, 0, 0, 0.25) !important;
	background: var(--sp-white) !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
}
body.sp-scope .home-model-card-title { color: var(--sp-text) !important; }
body.sp-scope .home-model-card-body  { color: var(--sp-text-muted) !important; }
body.sp-scope .home-model-card-icon {
	background: var(--sp-red-50) !important;
	color: var(--sp-primary) !important;
}
body.sp-scope .home-model-card:hover .home-model-card-icon {
	background: var(--sp-red-100) !important;
}

/* Doelgroep — licht & fris met rode accenten, gelijke hoogte, CTA onderaan vast */
body.sp-scope .home-split-grid { align-items: stretch !important; }
body.sp-scope .home-split-light {
	display: flex !important;
	background: var(--sp-white) !important;
	border: 1px solid var(--sp-border) !important;
	border-top: 3px solid var(--sp-primary) !important;
	color: var(--sp-text) !important;
}
body.sp-scope .home-split-light::before { display: none !important; }
body.sp-scope .home-split-light .home-split-card-inner {
	flex: 1;
	padding: clamp(2rem, 3.2vw, 3rem);
	gap: var(--sp-space-4);
}
body.sp-scope .home-split-light .home-split-card-title { color: var(--sp-text) !important; }
body.sp-scope .home-split-light .home-split-card-body  { color: var(--sp-text-muted) !important; flex: 1 1 auto; }
body.sp-scope .home-split-light .sp-badge {
	align-self: flex-start;
	background: var(--sp-red-50);
	color: var(--sp-primary);
	border: 1px solid var(--sp-red-100);
}
body.sp-scope .home-split-light .home-split-card-cta {
	color: var(--sp-primary) !important;
	border-top: 1px solid var(--sp-border) !important;
	margin-top: var(--sp-space-4);
}
body.sp-scope .home-split-light:hover {
	border-color: var(--sp-primary) !important;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12) !important;
}

/* Eind-CTA — rood blok, witte titel, witte knop die popt, compacter */
body.sp-scope .home-final-cta--red {
	background: linear-gradient(135deg, var(--sp-red-700) 0%, var(--sp-red-500) 55%, var(--sp-red-400) 100%) !important;
	padding-top: clamp(4rem, 8vh, 6rem) !important;
	padding-bottom: clamp(4rem, 8vh, 6rem) !important;
}
body.sp-scope .home-final-cta--red::before { display: none !important; }
body.sp-scope .home-final-cta--red .home-final-cta-title { color: var(--sp-white) !important; }
body.sp-scope .home-final-cta--red .home-final-cta-sub,
body.sp-scope .home-final-cta--red p.home-final-cta-detail {
	color: rgba(255, 255, 255, 0.92) !important;
}
body.sp-scope .home-final-cta-btn {
	background: var(--sp-white) !important;
	color: var(--sp-primary) !important;
	border: 1px solid var(--sp-white) !important;
}
body.sp-scope .home-final-cta-btn:hover {
	background: rgba(255, 255, 255, 0.9) !important;
	color: var(--sp-primary) !important;
	transform: translateY(-2px) !important;
	box-shadow: none !important;
}


/* ==========================================================================
   FEEDBACK RONDE 2 — GLOBALE SYSTEMEN (alle pagina's, geen herplak nodig)
   1. Nummering (01/02..) overal weg; sectie-kop = rode eyebrow met lijntje
   2. Model/"Waarom Scale"-secties op subpagina's licht i.p.v. donker
   3. Hero v2: hoger, badge als witte outline-pill zonder stipje, meer lucht,
      titel-accenten wit/vet i.p.v. rood-italic, scroll-indicator onderaan
   4. Typografie: één maat voor alle sectie-titels
   Dit blok staat bewust achteraan zodat het oudere regels overschrijft.
   ========================================================================== */

/* --- 1. Sectie-koppen: nummer weg, bestaande labels in eyebrow-stijl --- */
body.sp-scope .home-section-num { display: none !important; }

body.sp-scope .home-section-meta {
	border-bottom: none !important;
	padding-bottom: 0 !important;
	margin-bottom: var(--sp-space-5) !important;
}

body.sp-scope .home-section-label {
	display: block !important;
	font-size: var(--sp-text-sm) !important;
	letter-spacing: 0.16em !important;
	color: var(--sp-primary) !important;
}

/* Lijntje ONDER de tekst (niet ervoor) */
body.sp-scope .home-section-label::after {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	background: currentColor;
	margin-top: var(--sp-space-2);
}

/* De oude groeiende accent-lijn op de meta-container is overbodig geworden
   (het label heeft nu z'n eigen lijntje) en zorgde voor een zwevend rood
   streepje naast gecentreerde koppen — weg ermee. */
body.sp-scope .home-section-meta::after {
	display: none !important;
}

/* Gecentreerde koppen (filosofie, form-secties): tekst + lijntje gecentreerd */
body.sp-scope .home-section-meta-center .home-section-label,
body.sp-scope .about-meta-center .home-section-label {
	text-align: center !important;
}
body.sp-scope .home-section-meta-center .home-section-label::after,
body.sp-scope .about-meta-center .home-section-label::after {
	margin-left: auto;
	margin-right: auto;
}

/* Op (nog) donkere secties: zelfde kop, maar in helder rood voor leesbaarheid */
body.sp-scope .sp-section-dark .home-section-label {
	color: var(--sp-red-300) !important;
}

/* Model-secties zijn licht geworden (regel hieronder), dus daar gewoon vol rood */
body.sp-scope .sp-section-dark.home-model .home-section-label {
	color: var(--sp-primary) !important;
}

/* --- 2. Model-secties op subpagina's (partners/talent "Waarom Scale")
   worden licht: zelfde grijs als home, kaarten zijn al wit via redesign v2 --- */
body.sp-scope .sp-section-dark.home-model {
	background: var(--sp-ink-50) !important;
}

/* --- 3. HERO v2 --- */
/* Hoger: bijna full-page, maar met zichtbare hint dat je kunt scrollen */
body.sp-scope section.sp-section-hero.home-hero {
	min-height: 86vh !important;
}
/* Contact blijft compacter: het formulier moet snel in beeld zijn */
/* Contact had hier een eigen, lagere hoogte staan (64vh) die met hogere
   specificiteit de pagina-CSS overruledde. Daardoor bleef deze hero korter dan
   alle andere, hoe vaak contact.css ook werd aangepast. De uitzondering is
   verwijderd: contact volgt nu gewoon de gedeelde hero-hoogte hierboven. */

/* Badge-pill: witte outline, geen glas-effect, geen stipje, meer lucht naar titel */
body.sp-scope .home-hero .sp-badge {
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.55) !important;
	color: var(--sp-white) !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	padding: 7px 16px !important;
	margin-bottom: var(--sp-space-6) !important;
}
body.sp-scope .home-hero .sp-badge-dot::before { display: none !important; }

/* Meer lucht tussen titel en subtitel */
body.sp-scope .home-hero-headline { margin-bottom: var(--sp-space-6) !important; }

/* Titel-accenten in de hero: wit + vet (zelfde stroke-techniek als home),
   niet meer rood-italic met glow */
body.sp-scope .home-hero .home-hero-italic {
	color: var(--sp-white) !important;
	font-weight: 600 !important;
	-webkit-text-stroke: 2px currentColor;
	paint-order: stroke fill;
	letter-spacing: 0.02em;
	text-shadow: none !important;
	animation: none !important;
}

/* Scroll-indicator (muis met bolletje) — door reveal.js geïnjecteerd,
   gecentreerd onderaan elke hero. Klikbaar: scrollt naar volgende sectie. */
body.sp-scope .home-scroll-indicator {
	position: absolute;
	left: 50%;
	bottom: 28px;
	transform: translateX(-50%);
	width: 26px;
	height: 42px;
	border: 2px solid rgba(255, 255, 255, 0.45);
	border-radius: 14px;
	z-index: 5;
	transition: border-color 0.3s ease;
}
body.sp-scope .home-scroll-indicator::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 8px;
	width: 4px;
	height: 8px;
	margin-left: -2px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.8);
	animation: sp-scroll-dot 2.2s ease-in-out infinite;
}
body.sp-scope .home-scroll-indicator:hover {
	border-color: rgba(255, 255, 255, 0.9);
}
@keyframes sp-scroll-dot {
	0%   { transform: translateY(0); opacity: 1; }
	65%  { transform: translateY(14px); opacity: 0; }
	100% { transform: translateY(0); opacity: 0; }
}
@media (max-width: 768px) {
	body.sp-scope .home-scroll-indicator { bottom: 18px; }
}

/* --- 4. Typografie: alle sectie-titels op alle pagina's één maat --- */
body.sp-scope .partners-section-title,
body.sp-scope .talent-section-title,
body.sp-scope .about-story-title,
body.sp-scope .about-model-title,
body.sp-scope .about-values-title,
body.sp-scope .about-team-title,
body.sp-scope .about-philosophy-title,
body.sp-scope .home-model-title {
	font-size: clamp(1.5rem, 2.6vw, 2.25rem) !important;
	line-height: 1.2 !important;
	letter-spacing: -0.015em !important;
	font-weight: 500 !important;
}


/* ==========================================================================
   FEEDBACK RONDE 2B — HOMEPAGE POLISH
   1. Scroll-indicator: centrering zonder transform (legacy hover-rule op
      .home-hero-meta-scroll zette transform om -> indicator versprong)
   2. Matching-stappen (01-03) als full-width rode balk
   3. Model-cards minder steriel: groter icoon-chip, rode accentlijn + gloed
   4. Doelgroep-cards gepimpt: gradient-topbar, rode badge, pill-CTA
   5. Eind-CTA: subtekst weg, lead groter zodat de ruimte gevuld blijft
   ========================================================================== */

/* --- 1. Scroll-indicator stabiel centreren --- */
body.sp-scope .home-scroll-indicator {
	left: 50%;
	margin-left: -13px; /* helft van 26px breed */
	transform: none !important;
}
body.sp-scope .home-scroll-indicator:hover,
body.sp-scope .home-scroll-indicator:active,
body.sp-scope .home-scroll-indicator:focus {
	transform: none !important;
}

/* --- 2. Stappen-band: full-width rood, onderbreking van het grijs/wit --- */
body.sp-scope .home-match {
	padding-bottom: 0 !important;
}
body.sp-scope .home-steps-band {
	background: linear-gradient(135deg, var(--sp-red-700) 0%, var(--sp-red-500) 55%, var(--sp-red-400) 100%);
	margin-top: clamp(2rem, 4vw, 3rem);
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}
body.sp-scope .home-steps-band .home-steps-grid {
	background: transparent !important;
	border-top: none !important;
	border-bottom: none !important;
	gap: 0 !important;
}
body.sp-scope .home-steps-band .home-step,
body.sp-scope .home-steps-band .home-step:hover {
	background: transparent !important;
}
body.sp-scope .home-steps-band .home-step {
	padding: 0 clamp(1.25rem, 2.5vw, 2.5rem) !important;
}
@media (min-width: 720px) {
	body.sp-scope .home-steps-band .home-step + .home-step {
		border-left: 1px solid rgba(255, 255, 255, 0.18);
	}
	body.sp-scope .home-steps-band .home-step:first-child {
		padding-left: 0 !important;
	}
}
@media (max-width: 719px) {
	body.sp-scope .home-steps-band .home-step {
		padding: 1.25rem 0 !important;
	}
	body.sp-scope .home-steps-band .home-step + .home-step {
		border-top: 1px solid rgba(255, 255, 255, 0.18);
	}
}
body.sp-scope .home-steps-band .home-step-num {
	color: rgba(255, 255, 255, 0.45) !important;
}
body.sp-scope .home-steps-band .home-step h3,
body.sp-scope .home-steps-band .home-step .sp-h3 {
	color: var(--sp-white) !important;
}
body.sp-scope .home-steps-band .home-step p,
body.sp-scope .home-steps-band .home-step .sp-body {
	color: rgba(255, 255, 255, 0.82) !important;
}

/* --- 3. Model-cards: minder steriel --- */
body.sp-scope .home-model-card {
	position: relative;
	overflow: hidden;
	padding: clamp(1.75rem, 2.6vw, 2.25rem) !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
/* Zachte rode gloed rechtsboven bij hover */
body.sp-scope .home-model-card::before {
	content: "";
	position: absolute;
	top: -45%;
	right: -35%;
	width: 75%;
	height: 90%;
	background: radial-gradient(circle, rgba(139, 0, 0, 0.07) 0%, transparent 68%);
	opacity: 0;
	transition: opacity 0.45s ease;
	pointer-events: none;
}
body.sp-scope .home-model-card:hover::before { opacity: 1; }
/* Rode accentlijn die bij hover van links naar rechts groeit */
body.sp-scope .home-model-card::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--sp-red-500), var(--sp-red-300));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s ease;
}
body.sp-scope .home-model-card:hover::after { transform: scaleX(1); }
/* Groter, rijker icoon-chip */
body.sp-scope .home-model-card-icon {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, var(--sp-red-50), var(--sp-white)) !important;
	border: 1px solid var(--sp-red-100) !important;
	color: var(--sp-primary) !important;
	margin-bottom: var(--sp-space-5) !important;
}
body.sp-scope .home-model-card-icon [data-lucide],
body.sp-scope .home-model-card-icon svg {
	width: 24px !important;
	height: 24px !important;
}

/* --- 4. Doelgroep-cards: gepimpt --- */
body.sp-scope .home-split-light {
	border-top: 1px solid var(--sp-border) !important; /* gradient-topbar via ::before */
}
body.sp-scope .home-split-light::before {
	content: "" !important;
	display: block !important;
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background:
		linear-gradient(90deg, var(--sp-red-500), var(--sp-red-300)) top left / 100% 3px no-repeat,
		radial-gradient(ellipse at 100% 0%, rgba(139, 0, 0, 0.05) 0%, transparent 55%);
	pointer-events: none;
}
/* Badge omgekeerd: doorzichtig met rode outline (zoals de hero-badge) */
body.sp-scope .home-split-light .sp-badge {
	background: transparent !important;
	color: var(--sp-primary) !important;
	border: 1px solid var(--sp-primary) !important;
	padding: 6px 14px;
}
/* CTA = rode knop (gevuld), witte hover (invert), net als de overige knoppen */
body.sp-scope .home-split-light .home-split-card-cta {
	background: var(--sp-primary) !important;
	color: var(--sp-white) !important;
	border: 1px solid var(--sp-primary) !important;
	border-radius: var(--sp-radius-full) !important;
	padding: 10px 20px !important;
	margin-top: var(--sp-space-5);
	transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, gap 0.3s ease;
}
body.sp-scope .home-split-light:hover .home-split-card-cta,
body.sp-scope .home-split-light .home-split-card-cta:hover {
	background: var(--sp-white) !important;
	color: var(--sp-primary) !important;
	border-color: var(--sp-primary) !important;
}

/* --- 5. Eind-CTA: lead groter nu de detail-alinea weg is --- */
body.sp-scope .home-final-cta--red .home-final-cta-sub {
	font-size: clamp(1.125rem, 1.7vw, 1.4375rem) !important;
	line-height: 1.5 !important;
	max-width: 700px !important;
	color: rgba(255, 255, 255, 0.95) !important;
	margin-bottom: var(--sp-space-8) !important;
}


/* ==========================================================================
   FEEDBACK RONDE 2C — HOMEPAGE VERDERE POLISH
   1. Doelgroep-cards: CTA-knop met normale afgeronde hoeken (geen pill)
   2. Stappen-band: echte volle paginabreedte (breekt uit Flatsome container)
   3. Model-cards: 2-koloms editorial redesign, CSS-counter achtergrondnummer,
      altijd-zichtbare rode bovenlijn ipv hover-schuifbalk
   4. CTA-titel langer (subtekst uit HTML verwijderd)
   ========================================================================== */

/* --- 1. Doelgroep-card CTA: normale radius (sp-btn stijl), geen pill --- */
body.sp-scope .home-split-light .home-split-card-cta {
	border-radius: var(--sp-radius-sm) !important;
}

/* --- 2. Stappen-band: full-bleed paginabreedte --- */
body.sp-scope section.home-match {
	overflow: visible !important;
}
body.sp-scope .home-steps-band {
	position: relative !important;
	left: 50% !important;
	margin-left: -50vw !important;
	width: 100vw !important;
	margin-top: clamp(2rem, 4vw, 3rem) !important;
}

/* --- 3. Model-cards: 2-koloms editorial redesign --- */
body.sp-scope .home-model-grid {
	grid-template-columns: repeat(2, 1fr) !important;
	gap: var(--sp-space-6) !important;
	counter-reset: model-card;
}
@media (max-width: 760px) {
	body.sp-scope .home-model-grid {
		grid-template-columns: 1fr !important;
	}
}

body.sp-scope .home-model-card {
	counter-increment: model-card;
	border: none !important;
	border-top: 3px solid var(--sp-primary) !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 4px 16px rgba(0, 0, 0, 0.04) !important;
	padding: clamp(2rem, 3vw, 2.5rem) !important;
}
body.sp-scope .home-model-card:hover {
	transform: translateY(-4px) !important;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 14px 40px rgba(0, 0, 0, 0.10) !important;
	border-top-color: var(--sp-red-400) !important;
}

/* Groot achtergrondnummer (CSS counter) — geeft visuele diepte zonder HTML-wijziging.
   Reset alle v1.14.0 glow-element stijlen en plaatst tekst-counter rechtsboven. */
body.sp-scope .home-model-card::before {
	content: "0" counter(model-card) !important;
	position: absolute !important;
	top: -0.22em !important;
	right: 0.5em !important;
	font-family: var(--sp-font-display) !important;
	font-weight: 700 !important;
	font-size: 5.5rem !important;
	line-height: 1 !important;
	color: rgba(139, 0, 0, 0.055) !important;
	pointer-events: none !important;
	background: none !important;
	background-image: none !important;
	width: auto !important;
	height: auto !important;
	border-radius: 0 !important;
	opacity: 1 !important;
	transition: color 0.4s ease !important;
}
body.sp-scope .home-model-card:hover::before {
	color: rgba(139, 0, 0, 0.10) !important;
	opacity: 1 !important;
}

/* Schuifbalk-accentlijn weg — border-top doet nu het visuele werk */
body.sp-scope .home-model-card::after {
	display: none !important;
}

/* Icoon: iets groter, meer aanwezigheid */
body.sp-scope .home-model-card-icon {
	width: 58px !important;
	height: 58px !important;
	border-radius: 16px !important;
	background: linear-gradient(145deg, var(--sp-red-50), var(--sp-white)) !important;
	border: 1px solid var(--sp-red-100) !important;
	box-shadow: 0 2px 8px rgba(139, 0, 0, 0.07) !important;
	margin-bottom: var(--sp-space-5) !important;
}
body.sp-scope .home-model-card-icon [data-lucide],
body.sp-scope .home-model-card-icon svg {
	width: 26px !important;
	height: 26px !important;
}
body.sp-scope .home-model-card:hover .home-model-card-icon {
	background: linear-gradient(145deg, var(--sp-red-100), var(--sp-red-50)) !important;
	border-color: var(--sp-red-200) !important;
}

/* Betere typografische hiërarchie */
body.sp-scope .home-model-card-title {
	font-size: 1.1875rem !important;
	font-weight: 600 !important;
	letter-spacing: -0.005em !important;
}
body.sp-scope .home-model-card-body {
	font-size: var(--sp-text-base) !important;
	line-height: 1.65 !important;
}

/* --- 4. CTA-titel: groter display nu de subtekst weg is. Normale schrijfwijze
   ("Ready to scale?"), in Dyson; alléén de knoppen zijn in hoofdletters. --- */
body.sp-scope .home-final-cta--red .home-final-cta-title {
	font-size: clamp(2.25rem, 4.8vw, 4rem) !important;
	max-width: 820px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* --- Knoppen overal in HOOFDLETTERS — consistente knopstijl op elke pagina.
   Geldt voor hero-, concept- en eind-CTA-knoppen (de doelgroep-CTA was al
   uppercase). --- */
body.sp-scope .home-hero-ctas .sp-btn,
body.sp-scope .home-final-cta-buttons .sp-btn,
body.sp-scope .home-concept-cta .sp-btn {
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
}

/* Ook de Gravity Forms verzendknoppen (partners/talent/contact) in hoofdletters */
body.sp-scope .sp-gform .gform_footer input[type="submit"],
body.sp-scope .sp-gform .gform_button,
body.sp-scope .sp-gform button.gform_button {
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
}


/* ==========================================================================
   LOGOMARK ACHTERGROND-ANIMATIE — sectie 1 home (#werkwijze)
   Het Scale-beeldmerk (3 losse chevron-polygonen) als groot watermerk
   rechts in de sectie. logomark.js injecteert de SVG; de animatie (slide
   in / slide out) zit volledig in CSS. De banden schuiven in een rustige
   loop in elkaar tot een solide vorm en weer uit naar de normale staat.
   Geen HTML-wijziging nodig: JS injecteert zichzelf in .home-concept.
   ========================================================================== */

body.sp-scope .home-concept {
	position: relative;
	overflow: hidden;
}

body.sp-scope .home-concept .sp-container {
	position: relative;
	z-index: 1;
}

body.sp-scope .home-logomark {
	position: absolute;
	top: 50%;
	right: -5%;
	transform: translateY(-50%);
	width: clamp(380px, 44vw, 760px);
	pointer-events: none;
	z-index: 0;
	/* Bloom: het hele merk dimt in rust en LICHT OP op het moment dat de
	   banden samenkomen. De "ontvlam" wanneer het merk compleet is. */
	animation: sp-lm-bloom 6s ease-in-out infinite;
}

body.sp-scope .home-logomark svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
	transform-origin: center;
	/* Warme rode gloed + minieme adempuls op het sluit-moment. */
	animation: sp-lm-glow 6s ease-in-out infinite;
}

/* Dotted vulling: de chevrons zijn gevuld met een punten-patroon (zie
   logomark.js). De stip-kleur is brand-rood; per-element opacity, bloom en
   gloed werken er gewoon overheen. */
body.sp-scope .home-logomark .lm-dot {
	fill: var(--sp-primary);
}

/* Per element een eigen tint-diepte: voorste blad het meest aanwezig.
   Basiswaarden iets hoger; de wrapper-bloom dimt ze in rust en tilt ze
   op tot vol op het sluit-moment. */
body.sp-scope .home-logomark .lm-el-1 polygon { opacity: 0.09; }
body.sp-scope .home-logomark .lm-el-2 polygon { opacity: 0.11; }
body.sp-scope .home-logomark .lm-el-3 polygon { opacity: 0.14; }

/* Bloom op de wrapper: rust ~0.6, vol op het sluit-moment (36-46%). */
@keyframes sp-lm-bloom {
	0%, 14%   { opacity: 0.6; }
	36%, 46%  { opacity: 1; }
	68%, 100% { opacity: 0.6; }
}

/* Gloed + adempuls op de svg: halo bloeit op wanneer het merk compleet is. */
@keyframes sp-lm-glow {
	0%, 14%   { filter: drop-shadow(0 0 0 rgba(160, 5, 5, 0)); transform: scale(1); }
	36%, 46%  { filter: drop-shadow(0 0 22px rgba(160, 5, 5, 0.55)); transform: scale(1.02); }
	68%, 100% { filter: drop-shadow(0 0 0 rgba(160, 5, 5, 0)); transform: scale(1); }
}

/* SLIDE IN / SLIDE OUT — de drie chevron-banden schuiven langs hun diagonale
   stapel-as in elkaar tot een solide vorm (gaps dicht) en weer uit naar de
   normale staat. Het middelste blad (lm-el-2) is het anker en beweegt niet;
   de boven- en onderband schuiven er symmetrisch naartoe en weer vanaf.
   Beide synchroon (zelfde timing) zodat ze samen "klikken". Holds op normaal
   en op samengeschoven zodat het rustig pulseert, niet constant beweegt. */
body.sp-scope .home-logomark .lm-el-1 {
	animation: sp-lm-slide-1 6s ease-in-out infinite;
}
body.sp-scope .home-logomark .lm-el-3 {
	animation: sp-lm-slide-3 6s ease-in-out infinite;
}

/* Boven-band: schuift naar het midden = diagonaal naar links-onder, en terug.
   Afstand (-8,+12) sluit de gap tot net-kussen ZONDER overlap (de banden
   raken elkaar, randen kruisen niet). */
@keyframes sp-lm-slide-1 {
	0%, 14%   { transform: translate(0, 0); }
	36%, 46%  { transform: translate(-6px, 9px); }
	68%, 100% { transform: translate(0, 0); }
}
/* Onder-band: schuift naar het midden = diagonaal naar rechts-boven, en terug. */
@keyframes sp-lm-slide-3 {
	0%, 14%   { transform: translate(0, 0); }
	36%, 46%  { transform: translate(6px, -9px); }
	68%, 100% { transform: translate(0, 0); }
}

/* Mobiel: kleiner en nog subtieler, anders zit het achter de tekst */
@media (max-width: 880px) {
	body.sp-scope .home-logomark {
		width: 340px;
		right: -18%;
		top: auto;
		bottom: -8%;
		transform: none;
	}
	body.sp-scope .home-logomark .lm-el-1 polygon { opacity: 0.05; }
	body.sp-scope .home-logomark .lm-el-2 polygon { opacity: 0.06; }
	body.sp-scope .home-logomark .lm-el-3 polygon { opacity: 0.08; }
}

/* ==========================================================================
   LOGOMARK VARIANTEN — kies er één via class op de wrapper
   (logomark.js zet hem o.b.v. data-logomark="..." op de host).
   Default (geen class) = "ignite" hierboven. Elke variant overschrijft de
   relevante animaties. Bekijk ze live in design/logomark-variants.html.
     • assemble : delen vliegen draaiend in, vormen het merk, en weer uit
     • ripple   : compleet merk, banden pulseren als een hartslag-rimpel
     • orbit    : banden wiegen traag rond het midden (mobile/wind-chime)
   ========================================================================== */

/* --- VARIANT: ASSEMBLE — delen vliegen draaiend in elkaar --- */
body.sp-scope .home-logomark--assemble { animation: none; opacity: 1; }
body.sp-scope .home-logomark--assemble svg { animation: sp-lm-asm-glow 7s ease-in-out infinite; }
body.sp-scope .home-logomark--assemble .lm-el-1,
body.sp-scope .home-logomark--assemble .lm-el-2,
body.sp-scope .home-logomark--assemble .lm-el-3 {
	transform-origin: 81px 75px;
}
body.sp-scope .home-logomark--assemble .lm-el-1 { animation: sp-lm-asm-1 7s ease-in-out infinite; }
body.sp-scope .home-logomark--assemble .lm-el-2 { animation: sp-lm-asm-2 7s ease-in-out infinite; }
body.sp-scope .home-logomark--assemble .lm-el-3 { animation: sp-lm-asm-3 7s ease-in-out infinite; }

@keyframes sp-lm-asm-1 {
	0%, 8%   { transform: translate(46px, -58px) rotate(14deg); opacity: 0; }
	34%, 66% { transform: translate(0, 0) rotate(0deg);        opacity: 1; }
	92%,100% { transform: translate(46px, -58px) rotate(14deg); opacity: 0; }
}
@keyframes sp-lm-asm-2 {
	0%, 8%   { transform: translate(-52px, 18px) rotate(-12deg); opacity: 0; }
	34%, 66% { transform: translate(0, 0) rotate(0deg);          opacity: 1; }
	92%,100% { transform: translate(-52px, 18px) rotate(-12deg); opacity: 0; }
}
@keyframes sp-lm-asm-3 {
	0%, 8%   { transform: translate(34px, 56px) rotate(20deg); opacity: 0; }
	34%, 66% { transform: translate(0, 0) rotate(0deg);        opacity: 1; }
	92%,100% { transform: translate(34px, 56px) rotate(20deg); opacity: 0; }
}
@keyframes sp-lm-asm-glow {
	0%, 20%  { filter: drop-shadow(0 0 0 rgba(160,5,5,0)); }
	40%, 60% { filter: drop-shadow(0 0 20px rgba(160,5,5,0.5)); }
	80%,100% { filter: drop-shadow(0 0 0 rgba(160,5,5,0)); }
}

/* --- VARIANT: RIPPLE — hartslag-rimpel over de drie banden --- */
body.sp-scope .home-logomark--ripple { animation: none; opacity: 0.85; }
body.sp-scope .home-logomark--ripple svg { animation: none; }
body.sp-scope .home-logomark--ripple .lm-el-1,
body.sp-scope .home-logomark--ripple .lm-el-3 { animation: none; transform: none; }
body.sp-scope .home-logomark--ripple .lm-float-1 { animation: sp-lm-pulse 2.6s ease-in-out infinite 0s; }
body.sp-scope .home-logomark--ripple .lm-float-2 { animation: sp-lm-pulse 2.6s ease-in-out infinite 0.22s; }
body.sp-scope .home-logomark--ripple .lm-float-3 { animation: sp-lm-pulse 2.6s ease-in-out infinite 0.44s; }

/* Meer motion: grotere puls (scale 1.15) + rode lichtflits die met de golf
   meeloopt. De drie banden pulseren na elkaar = duidelijke ripple vanuit
   het midden. transform-origin staat op het merk-midden (inline via JS). */
@keyframes sp-lm-pulse {
	0%, 58%, 100% { transform: scale(1);    filter: drop-shadow(0 0 0 rgba(160, 5, 5, 0)); }
	18%           { transform: scale(1.15); filter: drop-shadow(0 0 16px rgba(160, 5, 5, 0.5)); }
}

/* --- VARIANT: ORBIT — banden wiegen traag rond het midden --- */
body.sp-scope .home-logomark--orbit { animation: none; opacity: 0.8; }
body.sp-scope .home-logomark--orbit svg { animation: none; }
body.sp-scope .home-logomark--orbit .lm-el-1,
body.sp-scope .home-logomark--orbit .lm-el-3 { animation: none; transform: none; }
body.sp-scope .home-logomark--orbit .lm-float-1 { animation: sp-lm-sway-1 11s ease-in-out infinite; }
body.sp-scope .home-logomark--orbit .lm-float-2 { animation: sp-lm-sway-2 14s ease-in-out infinite; }
body.sp-scope .home-logomark--orbit .lm-float-3 { animation: sp-lm-sway-3 9s  ease-in-out infinite; }

@keyframes sp-lm-sway-1 {
	0%, 100% { transform: rotate(-7deg) translate(-4px, 0); }
	50%      { transform: rotate(7deg)  translate(4px, 0); }
}
@keyframes sp-lm-sway-2 {
	0%, 100% { transform: rotate(5deg)  translate(3px, 2px); }
	50%      { transform: rotate(-6deg) translate(-3px, -2px); }
}
@keyframes sp-lm-sway-3 {
	0%, 100% { transform: rotate(-9deg) translate(0, 3px); }
	50%      { transform: rotate(8deg)  translate(0, -3px); }
}

@media (prefers-reduced-motion: reduce) {
	body.sp-scope .home-logomark,
	body.sp-scope .home-logomark * {
		animation: none !important;
		transform: none !important;
	}
	/* Vaste, rustige eindstaat: normaal merk, halve sterkte */
	body.sp-scope .home-logomark { opacity: 0.6; }
}
