/* Apple-opbouw voor de middelste secties van de homepage (index.html) en de subpagina's.
   Hero, crème slide en footer blijven de originele site.css. */
.ap { --ink:#040205; --ink-2:#6e6e73; --grijs:#f5f5f7; --grijs-2:#e8e8ed; --lijn:#d2d2d7; --teal:#3E7F94; --teal-licht:#E3EEF1; --amber:#FFB441; --r:28px;
  position: relative; z-index: 1; background: #fff; transition: background-color 0.6s ease; color: var(--ink); font-family: var(--font-sans); letter-spacing: -0.01em; line-height: 1.47; padding-bottom: 120px; }
.ap * { box-sizing: border-box; }
.ap :where(h2, h3, p) { margin: 0; }
.ap-sec { max-width: 1260px; margin: 0 auto; padding: 120px clamp(22px, 4.4vw, 64px) 0; }
.ap-titel { font-size: clamp(44px, 5vw, 80px); line-height: 1.04; font-weight: 600; letter-spacing: -0.025em; }
.ap-h2 { font-size: clamp(34px, 3.8vw, 56px); line-height: 1.06; font-weight: 600; letter-spacing: -0.02em; margin-bottom: 40px; max-width: 16em; }
.ap-intro { font-size: 19px; color: var(--ink-2); max-width: 32em; margin: -24px 0 40px; }
.ap-kop-rij { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.ap-cta { display: flex; align-items: center; gap: 20px; }
.ap-pil { display: inline-flex; align-items: center; border-radius: 980px; background: var(--amber); color: var(--ink); font-size: 17px; font-weight: 500; padding: 11px 21px; text-decoration: none; transition: transform 160ms cubic-bezier(0.2,0,0,1), background-color 200ms; }
.ap-pil:hover { background: #F5A623; }
.ap-pil:active { transform: scale(0.97); transition-duration: 80ms; }
.ap-link { color: var(--teal); font-size: 17px; text-decoration: none; }
.ap-link::after { content: " \203A"; }
.ap-link:hover { text-decoration: underline; }

/* uitgelichte zwarte kaart met drie iPhones */
.ap-dia { position: relative; margin-top: 40px; height: clamp(460px, 44vw, 620px); border-radius: var(--r); background: #f5f5f7; overflow: hidden; }
.ap-dia__beeld { position: absolute; left: 0; right: 0; bottom: -22%; display: flex; justify-content: center; align-items: flex-end; gap: 28px; }

/* toestellen */
.ap-iphone { position: relative; flex: none; aspect-ratio: 71.5 / 147.6; border-radius: 17% / 8.3%; padding: 1.3%; background: linear-gradient(135deg, #8a8a8f 0%, #2a2a2c 18%, #3a3a3c 50%, #1c1c1e 82%, #7a7a80 100%); box-shadow: 0 30px 60px -20px rgba(0,0,0,0.45); }
.ap-iphone__bezel { width: 100%; height: 100%; border-radius: 15.8% / 7.6%; background: #000; padding: 3.2%; }
.ap-scherm { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 13% / 6.2%; background: linear-gradient(160deg, #2b2b30 0%, #121214 100%); display: flex; align-items: center; justify-content: center; text-align: center; }
.ap-scherm--licht { background: linear-gradient(160deg, #fbfbfd 0%, #e8e8ed 100%); }
.ap-scherm::after { content: attr(data-plek); padding: 0 10%; font-size: 11px; font-weight: 600; line-height: 1.4; color: rgba(255,255,255,0.45); }
.ap-scherm--licht::after { color: rgba(0,0,0,0.35); }
.ap-eiland { position: absolute; z-index: 3; top: 2.4%; left: 50%; transform: translateX(-50%); width: 32%; height: 3.6%; border-radius: 999px; background: #000; }
.ap-mac__deksel { aspect-ratio: 16 / 10.4; border-radius: 3.2% 3.2% 0 0 / 5% 5% 0 0; background: #0b0b0d; padding: 2% 2% 2.6%; box-shadow: 0 0 0 1.5px #b9b9be inset, 0 30px 60px -24px rgba(0,0,0,0.35); }
.ap-mac .ap-scherm { border-radius: 0.6%; }
.ap-mac__voet { width: 112%; margin-left: -6%; height: clamp(10px, 1.1vw, 16px); background: linear-gradient(180deg, #e6e6e9 0%, #c7c7cc 55%, #8e8e93 100%); border-radius: 0 0 40% 40% / 0 0 100% 100%; }

/* zes diensten */
.ap-diensten { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ap-kaart { position: relative; display: flex; flex-direction: column; min-height: 300px; padding: 30px 32px; border-radius: var(--r); text-decoration: none; color: var(--ink); background: var(--grijs); transition: transform 300ms cubic-bezier(0.2,0,0,1); }
.ap-kaart:hover { transform: scale(1.01); }
.ap-kaart:active { transform: scale(0.99); }
.ap-kaart--zwart { background: #000; color: #f5f5f7; }
.ap-kaart__label { font-size: 17px; font-weight: 600; }
.ap-kaart h3 { font-size: 28px; line-height: 1.14; font-weight: 600; letter-spacing: -0.012em; margin-top: 10px; max-width: 11em; }
.ap-pijl { position: absolute; right: 22px; bottom: 22px; width: 36px; height: 36px; border-radius: 50%; background: var(--ink); display: flex; align-items: center; justify-content: center; }
.ap-pijl svg { width: 14px; height: 14px; fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.ap-kaart--zwart .ap-pijl { background: #fff; }
.ap-kaart--zwart .ap-pijl svg { stroke: var(--ink); }

/* accordeon met MacBook en iPhone */
.ap-acc details { border-bottom: 1px solid var(--lijn); }
.ap-acc details:last-child { border-bottom: 0; }
.ap-acc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 26px 0; font-size: clamp(21px, 1.9vw, 27px); line-height: 1.16; font-weight: 600; letter-spacing: -0.012em; }
.ap-acc summary::-webkit-details-marker { display: none; }
.ap-acc summary::after { content: ""; width: 11px; height: 11px; border-right: 2.5px solid var(--ink-2); border-bottom: 2.5px solid var(--ink-2); transform: rotate(45deg) translate(-3px,-3px); transition: transform 0.3s; flex: none; }
.ap-acc details[open] summary::after { transform: rotate(-135deg) translate(-3px,-3px); }
.ap-acc details p { padding: 0 0 28px; max-width: 26em; font-size: 17px; color: var(--ink-2); }
.ap-apparaten { position: relative; height: 480px; }
.ap-apparaten .ap-mac { position: absolute; left: 14%; top: 4%; width: 118%; }
.ap-iphone--voor { position: absolute !important; left: 0; bottom: 0; z-index: 4; }

/* partners */

/* team */
.ap-team { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ap-persoon { border-radius: var(--r); background: var(--grijs); overflow: hidden; display: grid; grid-template-columns: 180px 1fr; align-items: center; }
.ap-persoon__foto { height: 100%; min-height: 225px; background: #e4e5e0; overflow: hidden; }
.ap-persoon__tekst { min-width: 0; }
@media (max-width: 600px) { .ap-persoon { grid-template-columns: 110px 1fr; } .ap-persoon__foto { min-height: 160px; } .ap-persoon__tekst { padding: 20px; } .ap-persoon h3 { font-size: 24px; } }
.ap-persoon__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; display: block; }
.ap-persoon__tekst { padding: 28px 32px 32px; }
.ap-persoon__rol { font-size: 17px; font-weight: 600; color: var(--teal); }
.ap-persoon h3 { font-size: 32px; font-weight: 600; letter-spacing: -0.015em; margin-top: 6px; }
.ap-persoon__tekst > p:not(.ap-persoon__rol) { margin-top: 10px; color: var(--ink-2); font-size: 17px; }
.ap-persoon .ap-link { display: inline-block; margin-top: 14px; }

:focus-visible { outline: 3px solid rgba(62,127,148,0.55); outline-offset: 3px; }
@media (max-width: 1000px) {
  .ap-diensten { grid-template-columns: 1fr 1fr; }
  .ap-team { grid-template-columns: 1fr; }
  .ap-apparaten { height: 360px; }
}
@media (max-width: 600px) { .ap-diensten { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ap * { transition: none !important; } }

/* licht veld zoals de propositie: alleen doorzichtig als het veld echt draait (WebGL2, geen 'minder beweging') */
html.licht-veld .ap { background: transparent; }
/* zachte overloop van de donkere hero naar het lichte deel */
html.licht-veld .ap::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 160px; pointer-events: none;
  background: linear-gradient(rgba(4,2,5,0.22), rgba(4,2,5,0)); }
.ap-kaart, .ap-persoon { box-shadow: 0 1px 2px rgba(0,0,0,0.04); }

/* crème slide: zelfde typografie als de Apple-secties, en het lichte veld in plaats van crème */
#cultuur { background: #fff; color: #040205; font-family: var(--font-sans); transition: background-color 0.6s ease; }
html.licht-veld #cultuur { background: transparent; }
#cultuur h2 { font-weight: 600; letter-spacing: -0.02em; line-height: 1.06; }
#cultuur h3 { font-weight: 600; letter-spacing: -0.015em; line-height: 1.12; }
#cultuur .body { font-size: 17px; line-height: 1.47; letter-spacing: -0.01em; color: #6e6e73; }
#cultuur em { font-family: inherit; font-style: normal; font-weight: 600; color: #040205; background: #E3EEF1; padding: 0 0.06em; }
#cultuur .cult__link { color: #3E7F94; font-weight: 500; }
#cultuur .marquee__img { border-radius: 22px; overflow: hidden; }

/* vier kanalen, genummerd (uit de propositie) */
.ap-vinken { list-style: none; padding: 0; margin: 24px 0 0; }
.ap-vinken li { position: relative; padding: 7px 0 7px 32px; font-size: 17px; }
.ap-vinken li::before { content: ""; position: absolute; left: 4px; top: 13px; width: 12px; height: 7px; border-left: 2px solid var(--teal); border-bottom: 2px solid var(--teal); transform: rotate(-45deg); }
.ap-stappen { display: flex; gap: 8px; margin-top: 16px; }
.ap-stappen span { flex: 1; text-align: center; font-size: 13px; font-weight: 600; background: var(--grijs); border-radius: 10px; padding: 10px 6px; }
.ap-bord { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.ap-kolom > p { font-size: 13px; font-weight: 600; color: var(--ink-2); padding: 4px 4px 10px; }
.ap-lead { background: #fff; border: 1px solid var(--grijs-2); border-radius: 14px; padding: 12px; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.ap-lead span { width: 48px; height: 7px; border-radius: 4px; background: var(--grijs-2); }
.ap-lead i { font-style: normal; font-weight: 600; font-size: 13px; color: #fff; background: var(--teal); border-radius: 980px; padding: 2px 9px; }
.ap-lead i.hoog { background: #000; color: var(--amber); }

/* rekenmodel en vergelijking (uit de propositie) */
.ap-veld { margin-bottom: 30px; }
.ap-veld__kop { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 17px; color: var(--ink-2); }
.ap-veld__waarde { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); }
.ap-veld__waarde input { width: 112px; text-align: right; font: inherit; font-weight: 600; color: var(--ink); border: 1px solid var(--lijn); border-radius: 10px; padding: 8px 12px; background: #fff; }
.ap-veld__schaal--stappen { font-size: 17px; font-weight: 600; color: var(--ink); }
.ap-veld__kop label small { display: block; font-size: 13px; margin-top: 2px; opacity: .8; }
.ap-veld input[type=range] { width: 100%; margin: 16px 0 8px; accent-color: var(--teal); }
.ap-veld__schaal { display: flex; justify-content: space-between; font-size: 14px; color: var(--ink-2); }
.ap-aanname { background: var(--grijs); border-radius: 14px; padding: 14px 16px; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.ap-aanname b { display: block; color: var(--ink); font-weight: 600; margin-bottom: 2px; }
.ap-pil--klein { font-size: 14px; padding: 7px 15px; }

/* taalkeuze in de header */
.hdr__taal { display: inline-flex; border: 1px solid var(--border-strong); border-radius: 980px; padding: 3px; gap: 2px; }
.hdr__taal a { font-size: 13px; letter-spacing: 0.06em; padding: 4px 10px; border-radius: 980px; color: inherit; text-decoration: none; opacity: 0.7; transition: opacity 0.2s, background-color 0.2s; }
.hdr__taal a:hover { opacity: 1; }
.hdr__taal a[aria-current="page"] { opacity: 1; background: var(--hdr-fg, currentColor); color: var(--hdr-pill-fg, #040205); }
.mob__taal { display: flex; gap: 16px; margin-top: 24px; }


/* voorbeeldschermen (fictief bedrijf) */
.ap-scherm__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.ap-scherm:has(.ap-scherm__img)::after { content: none; }

/* tweede slide: Mac + iPhone */
.ap-dia__beeld--duo { bottom: 7%; }
.ap-dia__duo { position: relative; width: min(64%, 780px); margin: 0 auto; }
.ap-dia__duo .ap-mac { width: 100%; }
.ap-dia__voor { position: absolute !important; left: -9%; bottom: -3%; width: 21%; z-index: 4; }
@media (max-width: 700px) { .ap-dia__duo { width: 80%; } .ap-dia__voor { width: 26%; left: -6%; } }

/* compliance-scan in MacBook en iPhone (naar de claimcheck uit de A.Vogel-deck) */
.ap-cs { container-type: inline-size; display: block; text-align: left; background: #f5f5f7; color: #1d1d1f; }
.ap-cs::after { content: none !important; }
.cs-vb { position: absolute; right: 1.2cqw; bottom: 1cqw; font-size: 1.1cqw; color: #a1a1a6; }
.cs-mac { display: flex; height: 100%; font-size: 1.45cqw; }
.cs-zij { width: 15%; background: #fff; border-right: 1px solid #e5e5ea; padding: 2.2cqw 1.2cqw; display: flex; flex-direction: column; gap: .5cqw; }
.cs-zij b { font-size: 1.15cqw; font-weight: 800; margin-bottom: 1.4cqw; padding-left: .8cqw; }
.cs-zij span { padding: .7cqw .8cqw; border-radius: .7cqw; color: #3a3a3c; }
.cs-zij span.aan { background: #E3EEF1; color: #3E7F94; font-weight: 600; }
.cs-hoofd { flex: 1; padding: 2.6cqw 3cqw; min-width: 0; }
.cs-kop { display: flex; justify-content: space-between; align-items: flex-start; gap: 2cqw; width: 62%; height: 5.6cqw; }
.cs-kop b { display: block; white-space: nowrap; font-size: 2.6cqw; font-weight: 700; letter-spacing: -.02em; }
.cs-kop i { display: block; font-style: normal; color: #6e6e73; font-size: 1.3cqw; margin-top: .3cqw; }
.cs-live { display: inline-flex; align-items: center; gap: .6cqw; font-size: 1.15cqw; font-weight: 600; color: #3E7F94; background: #E3EEF1; border-radius: 99px; padding: .5cqw 1.1cqw; white-space: nowrap; }
.cs-live span { width: .8cqw; height: .8cqw; border-radius: 50%; background: #3E7F94; }
.cs--bezig .cs-live span { animation: cs-puls 1.2s infinite; }
@keyframes cs-puls { 50% { opacity: .3; } }
.cs-tabel { margin-top: 2cqw; width: 62%; background: #fff; border: 1px solid #e5e5ea; border-radius: 1.2cqw; overflow: hidden; }
.cs-th, .cs-rij { display: grid; grid-template-columns: 2.6cqw 1.25fr 1.2fr .8fr; align-items: center; gap: 1cqw; padding: 0 1.4cqw; }
.cs-th { grid-template-columns: 1.25fr 1.2fr .8fr; padding: 1.1cqw 1.4cqw 1.1cqw 5cqw; font-size: 1.1cqw; font-weight: 600; color: #6e6e73; }
.cs-rijen { position: relative; }
.cs-rij { height: 5.4cqw; border-top: 1px solid #f0f0f2; position: relative; z-index: 1; }
.cs-av { width: 2.6cqw; height: 2.6cqw; border-radius: 50%; background: linear-gradient(135deg,#8FCFDF,#3E7F94); color: #fff; font-size: 1cqw; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.cs-naam b { display: block; font-size: 1.35cqw; font-weight: 600; white-space: nowrap; }
.cs-naam i { display: block; font-style: normal; font-size: 1.1cqw; color: #6e6e73; white-space: nowrap; }
.cs-mail { font-size: 1.15cqw; color: #3a3a3c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cs-chip { justify-self: start; font-size: 1.05cqw; font-weight: 600; padding: .4cqw 1cqw; border-radius: 99px; background: #f0f0f2; color: #8e8e93; transition: background-color .35s, color .35s; white-space: nowrap; }
.cs-rij.klaar.g .cs-chip { background: #E3F4EA; color: #1e7b45; }
.cs-rij.klaar.o .cs-chip { background: #FFF1D6; color: #9a5b00; }
.cs-rij.klaar.r .cs-chip { background: #FDE8E8; color: #b42318; }
.cs-rij.klaar.r .cs-naam, .cs-rij.klaar.r .cs-mail { opacity: .45; }
.cs-box { position: absolute; left: .4cqw; right: .4cqw; top: 0; border: 2px solid #3E7F94; border-radius: .9cqw; background: rgba(62,127,148,.07); opacity: 0; transition: top .45s cubic-bezier(.2,.8,.2,1), opacity .3s, border-color .3s, background .3s; z-index: 0; }
.cs-box.o { border-color: #FFB441; background: rgba(255,180,65,.10); }
.cs-box.r { border-color: #e5484d; background: rgba(229,72,77,.07); }
.cs-scanlijn { position: absolute; left: 0; right: 0; top: -12%; height: 14%; background: linear-gradient(180deg, rgba(143,207,223,0), rgba(143,207,223,.35) 85%, rgba(62,127,148,.75) 100%); opacity: 0; pointer-events: none; z-index: 2; }
.cs--bezig .cs-scanlijn { opacity: 1; animation: cs-scan 2.2s ease-in-out infinite; }
@keyframes cs-scan { 0% { top: -14%; } 100% { top: 100%; } }
.cs-tel { padding: 17cqw 5.5cqw 0; font-size: 4.2cqw; zoom: 1.08; }
.cs-lbl { display: block; font-size: 3.2cqw; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #6e6e73; }
.cs-wie { display: flex; align-items: center; gap: 3cqw; margin-top: 3cqw; background: #fff; border: 1px solid #e5e5ea; border-radius: 4.5cqw; padding: 3.5cqw; min-height: 17cqw; }
.cs-wie .cs-av { width: 10cqw; height: 10cqw; font-size: 3.6cqw; flex: none; }
.cs-wie b { display: block; font-size: 4.4cqw; font-weight: 600; }
.cs-wie i { display: block; font-style: normal; font-size: 3.4cqw; color: #6e6e73; }
.cs-checks { list-style: none; margin: 3cqw 0 0; padding: 1cqw 4cqw; background: #fff; border: 1px solid #e5e5ea; border-radius: 4.5cqw; }
.cs-checks li { display: grid; grid-template-columns: 6.5cqw 1fr; column-gap: 2.5cqw; align-items: center; padding: 2.6cqw 0; border-top: 1px solid #f0f0f2; opacity: .3; transition: opacity .3s; }
.cs-checks li:first-child { border-top: 0; }
.cs-checks li.aan { opacity: 1; }
.cs-checks b { font-size: 3.7cqw; font-weight: 600; }
.cs-checks i { grid-column: 2; font-style: normal; font-size: 3.2cqw; font-weight: 600; }
.cs-v { width: 6.5cqw; height: 6.5cqw; border-radius: 50%; background: #e8e8ed; display: flex; align-items: center; justify-content: center; font-size: 3.6cqw; font-weight: 800; }
.cs-checks li.aan.g .cs-v { background: #E3F4EA; color: #1e7b45; } .cs-checks li.aan.g .cs-v::before { content: "\2713"; }
.cs-checks li.aan.o .cs-v { background: #FFB441; color: #1d1d1f; } .cs-checks li.aan.o .cs-v::before { content: "!"; } .cs-checks li.aan.o i { color: #9a5b00; }
.cs-checks li.aan.r .cs-v { background: #e5484d; color: #fff; } .cs-checks li.aan.r .cs-v::before { content: "\00d7"; } .cs-checks li.aan.r i { color: #b42318; }
.cs-uit { display: flex; align-items: center; gap: 3cqw; margin-top: 3cqw; background: #e8e8ed; border-radius: 4.5cqw; padding: 3.5cqw; }
.cs-uit b { font-size: 3.6cqw; font-weight: 600; line-height: 1.3; }
.cs-licht { display: flex; flex-direction: column; gap: 1.2cqw; padding: 1.6cqw 1.3cqw; background: #d2d2d7; border-radius: 99px; flex: none; }
.cs-licht i { width: 3.4cqw; height: 3.4cqw; border-radius: 50%; background: #f5f5f7; transition: background-color .3s, box-shadow .3s; }
.cs-uit.klaar .cs-licht i:nth-child(3) { background: #34c759; box-shadow: 0 0 2.4cqw #34c759; }

/* ---------- subpagina's (bouw/bouw.py) ---------- */
.sec--paginakop { min-height: 74vh; min-height: 74dvh; display: flex; flex-direction: column; justify-content: flex-end; gap: 0; padding: 160px clamp(22px, 4.4vw, 64px) clamp(56px, 7vw, 96px); max-width: 1260px; margin: 0 auto; box-sizing: border-box; }
.pk__kicker { font-family: Inter, system-ui, sans-serif; font-size: 17px; font-weight: 600; color: var(--accent-warm, #FFB441); margin: 0 0 18px; }
.pk__titel { font-family: Inter, system-ui, sans-serif; font-size: clamp(44px, 6.4vw, 96px); line-height: 1.02; font-weight: 600; letter-spacing: -0.035em; max-width: 13em; margin: 0; color: #f5f5f7; }
.pk__sub { font-family: Inter, system-ui, sans-serif; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.45; color: rgba(245,245,247,0.72); max-width: 34em; margin: 26px 0 0; }
.ap-raster { display: grid; gap: 20px; }
.ap-raster--3 { grid-template-columns: repeat(3, 1fr); }
.ap-raster--2 { grid-template-columns: repeat(2, 1fr); }
.ap-kaart--tekst { min-height: 260px; }
.ap-kaart--tekst:hover, .ap-kaart--tekst:active { transform: none; }
.ap-kaart__zin { margin-top: auto !important; padding-top: 28px; font-size: 17px; line-height: 1.45; color: var(--ink-2); max-width: 26em; }
.ap-stappen { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: stap; }
.ap-stappen li { position: relative; padding: 28px 0 0; border-top: 2px solid var(--lijn); }
.ap-stappen li:first-child { border-top-color: var(--teal); }
.ap-stap__nr { display: inline-block; font-size: 14px; font-weight: 600; color: var(--teal); background: var(--teal-licht); border-radius: 980px; padding: 4px 12px; }
.ap-stappen h3 { font-size: 24px; font-weight: 600; letter-spacing: -0.012em; margin-top: 18px !important; }
.ap-stappen p { margin-top: 10px !important; font-size: 17px; line-height: 1.45; color: var(--ink-2); }
.ap-paneel { background: var(--grijs); border-radius: var(--r); padding: clamp(28px, 4vw, 56px) clamp(24px, 5vw, 72px); box-shadow: 0 1px 2px rgba(0,0,0,0.04); }
.ap-paneel .ap-acc details p { max-width: 40em; }
.ap-twee { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.ap-groot { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.2; font-weight: 600; letter-spacing: -0.015em; }
.ap-tekst { font-size: 19px; line-height: 1.55; color: var(--ink-2); }
.ap-twee .ap-vinken { margin-top: 0; }
.ap-slot { text-align: center; background: var(--grijs); border-radius: var(--r); padding: clamp(56px, 7vw, 100px) 24px; box-shadow: 0 1px 2px rgba(0,0,0,0.04); }
.ap-slot .ap-h2 { margin: 0 auto 18px; }
.ap-slot p { font-size: 19px; color: var(--ink-2); max-width: 30em; margin: 0 auto 30px !important; }
.ap-contact { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 20px; align-items: start; }
.ap-form { display: grid; gap: 18px; background: #fff; border: 1px solid var(--lijn); border-radius: var(--r); padding: clamp(26px, 4vw, 48px); }
.ap-form label { display: grid; gap: 8px; font-size: 15px; font-weight: 600; color: var(--ink); }
.ap-form input, .ap-form textarea { font: inherit; font-size: 17px; font-weight: 400; color: var(--ink); border: 1px solid var(--lijn); border-radius: 12px; padding: 13px 15px; background: #fff; outline: none; transition: border-color .2s, box-shadow .2s; }
.ap-form input:focus, .ap-form textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 4px var(--teal-licht); }
.ap-form textarea { resize: vertical; min-height: 130px; }
.ap-form .ap-pil { justify-self: start; border: 0; cursor: pointer; font: inherit; font-size: 17px; font-weight: 500; }
.ap-form__status { min-height: 1.4em; font-size: 15px; color: var(--teal); }
.ap-contact__info h3 { font-size: 24px; font-weight: 600; letter-spacing: -0.012em; }
.ap-lijstje { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 20px; }
.ap-lijstje li { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; }
.ap-lijstje .ap-stap__nr { padding: 4px 0; text-align: center; }
.ap-lijstje b { display: block; font-size: 17px; }
.ap-lijstje p { margin-top: 4px !important; font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.ap-contact__mail { margin-top: 30px !important; padding-top: 22px; border-top: 1px solid var(--lijn); font-size: 17px; color: var(--ink-2); }
.ap-artikel { max-width: 46em; }
.ap-artikel h2 { font-size: 24px; font-weight: 600; letter-spacing: -0.012em; margin: 40px 0 10px; }
.ap-artikel p { font-size: 17px; line-height: 1.6; color: var(--ink-2); }
.ap-concept { display: inline-block; background: #FFF1D6; color: #9a5b00 !important; font-weight: 600; border-radius: 12px; padding: 10px 16px; }
@media (max-width: 1000px) { .ap-raster--3, .ap-stappen { grid-template-columns: 1fr 1fr; } .ap-twee, .ap-contact { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .ap-raster--3, .ap-raster--2, .ap-stappen { grid-template-columns: 1fr; } .ap-kaart--tekst { min-height: 0; } .sec--paginakop { min-height: 64vh; padding-top: 130px; } }
@media (max-width: 700px) { .hdr__taal { display: none; } }

/* slider in de MacBook op de tweede slide */

/* ---------- builders-slide direct na de hero: kop in Archivo Expanded (gratis stand-in voor Favorit Expanded) ---------- */
@font-face { font-family: "Archivo Expanded"; src: url("assets/fonts/Archivo-Expanded-ExtraBold-latin.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
.ap-builders { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-builders__kop { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(32px, 4.6vw, 72px); line-height: 1; letter-spacing: -0.01em; max-width: 13em; }
.ap-builders__lead { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; color: #3a3a3c; max-width: 31em; margin-top: 40px; }
.ap-builders__noot { font-size: 17px; line-height: 1.65; color: var(--ink-2); max-width: 31em; margin-top: 24px; }

/* ---------- header als zwevende glazen pil, opbouw van builders.studio ---------- */
/* Alleen CSS: markup en site.js blijven gelijk. Volgorde logo · links · taal · knop via `order`. */
@property --hdr-o { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --hdr-a { syntax: "<angle>"; inherits: true; initial-value: 0deg; }
.hdr, .hdr.is-light { --hdr-fg: #fff; --hdr-pill-bg: transparent; --hdr-pill-fg: #fff; color: #fff; }
.hdr {
  inset: 16px 0 auto 0; margin: 0 auto; width: fit-content; max-width: calc(100% - 32px);
  justify-content: flex-start; gap: 10px; padding: 10px; border-radius: 980px;
  background: linear-gradient(rgba(255,255,255,0.05), rgba(255,255,255,0.02) 50%, rgba(255,255,255,0.03)), rgba(9,9,11,0.68);
  -webkit-backdrop-filter: blur(12px) saturate(1.5); backdrop-filter: blur(12px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 6px 20px -12px rgba(0,0,0,0.45);
}
@supports not ((-webkit-backdrop-filter: blur(4px)) or (backdrop-filter: blur(4px))) { .hdr { background: rgba(9,9,11,0.94); } }
/* glasrand: licht op de hoeken, bijna weg in het midden */
.hdr::after { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.15) 16%, rgba(255,255,255,0.02) 38%, rgba(255,255,255,0.02) 62%, rgba(255,255,255,0.2) 84%, rgba(255,255,255,0.5) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }

/* logo links */
.hdr__logo { order: 0; position: static; transform: none; height: 40px; align-items: center; padding: 0 14px; margin-right: 8px; border-radius: 980px; transition: background-color 0.25s; }
.hdr__logo:hover, .hdr__logo:focus-visible { background: rgba(255,255,255,0.1); }
.hdr__logo img { height: 15px; }

/* links: kapitalen, breed, met een sterretje */
.hdr__links { order: 1; gap: 2px; }
.hdr__link { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 13px; border-radius: 980px; color: rgba(255,255,255,0.8);
  font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; white-space: nowrap; transition: color 0.25s, background-color 0.25s; }
.hdr__link::before { content: ""; width: 10px; height: 10px; flex: none; background: currentColor; transition: rotate 0.45s cubic-bezier(0.2,0,0,1), scale 0.45s cubic-bezier(0.2,0,0,1), background-color 0.25s;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.hdr__link:nth-child(1) { --pil: #8FCFDF; }
.hdr__link:nth-child(2) { --pil: #FFB441; }
.hdr__link:nth-child(2)::before { rotate: 45deg; }
.hdr__link:hover, .hdr__link:focus-visible, .hdr__link.is-current { color: #fff; background: color-mix(in srgb, var(--pil) 16%, transparent); }
.hdr__link:hover::before, .hdr__link:focus-visible::before, .hdr__link.is-current::before { background: var(--pil); }
.hdr__link:hover::before { rotate: 90deg; scale: 1.22; }
.hdr__link:nth-child(2):hover::before { rotate: 135deg; }

/* rechts: taalschakelaar en de knop */
.hdr__right { order: 2; gap: 6px; margin-left: 56px; }
.hdr__taal { border-color: rgba(255,255,255,0.18); }
.hdr__taal a { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9px; letter-spacing: 0.16em; color: rgba(255,255,255,0.7); }
.hdr__taal a[aria-current="page"] { background: rgba(255,255,255,0.14); color: #fff; }

/* de knop: glas met een draaiende lichtrand, gloed volgt de muis niet maar licht op bij hover */
.hdr .btn--pill, .ap-pil { position: relative; isolation: isolate; display: inline-flex; align-items: center; height: 40px; margin-left: 6px; padding: 0 18px; border-radius: 980px; color: #fff;
  font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap;
  background: radial-gradient(90px circle at 50% 50%, rgba(255,255,255,calc(0.2 * var(--hdr-o))), transparent 70%), rgba(255,255,255,0.08);
  animation: hdr-draai 4.8s linear infinite; transition: --hdr-o 0.45s ease, background-color 0.35s ease, translate 0.45s cubic-bezier(0.2,0,0,1), box-shadow 0.45s ease; }
.hdr .btn--pill .btn__bg { display: none; }
/* de entree-animatie in site.js laat een rechthoekige clip-path staan die de gloed afsnijdt */
.hdr .btn--pill { clip-path: none !important; }
.hdr .btn--pill::before, .ap-pil::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: conic-gradient(from var(--hdr-a), transparent 0deg, color-mix(in srgb, #8FCFDF calc((1 - var(--hdr-o)) * 100%), transparent) 55deg, rgba(255,255,255,calc(1 - var(--hdr-o))) 90deg, color-mix(in srgb, #FFB441 calc((1 - var(--hdr-o)) * 100%), transparent) 125deg, transparent 185deg),
              radial-gradient(70px circle at 50% 50%, rgba(255,255,255,calc(0.95 * var(--hdr-o))), color-mix(in srgb, #8FCFDF calc(90% * var(--hdr-o)), transparent) 45%, color-mix(in srgb, #FFB441 calc(70% * var(--hdr-o)), transparent) 75%, transparent 100%), rgba(255,255,255,0.18);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.hdr .btn--pill::after, .ap-pil::after { content: ""; position: absolute; inset: -6px; z-index: -1; border-radius: inherit; pointer-events: none; filter: blur(10px); transition: inset 0.45s, filter 0.45s;
  background: conic-gradient(from var(--hdr-a), transparent 0deg, color-mix(in srgb, #8FCFDF calc((1 - var(--hdr-o)) * 30%), transparent) 70deg, color-mix(in srgb, #FFB441 calc((1 - var(--hdr-o)) * 25%), transparent) 125deg, transparent 200deg),
              radial-gradient(80px circle at 60% 60%, color-mix(in srgb, #8FCFDF calc(65% * var(--hdr-o)), transparent), color-mix(in srgb, #FFB441 calc(40% * var(--hdr-o)), transparent) 55%, transparent 80%); }
.hdr .btn--pill:hover, .ap-pil:hover { --hdr-o: 1; background-color: rgba(255,255,255,0.12); translate: 0 -2px; box-shadow: 0 14px 34px -16px rgba(143,207,223,0.7); }
.hdr .btn--pill:hover::after, .ap-pil:hover::after { inset: -10px; filter: blur(14px); }
@keyframes hdr-draai { to { --hdr-a: 360deg; } }

/* tablet en mobiel: alleen logo, taal en hamburger, zoals bij builders */
@media (max-width: 999px) {
  .hdr { padding: 8px; width: calc(100% - 32px); }
  .hdr__logo { margin-right: 0; padding: 0 8px; }
  .hdr__right { margin-left: auto; }
  .hdr .btn--pill { display: none; }
  .burger { width: 40px; height: 40px; }
  .burger i:nth-child(1) { top: 16px; }
  .burger i:nth-child(2) { top: 22px; }
  .burger[aria-expanded="true"] i:nth-child(1) { transform: translateY(3px) rotate(45deg); }
}
@media (prefers-reduced-motion: reduce) { .hdr .btn--pill, .ap-pil { animation: none; } .hdr .btn--pill:hover, .ap-pil:hover { translate: none; } }

/* ---------- inklappen: alleen het logo blijft staan, uitklappen bij omhoog scrollen of hover ---------- */
@media (min-width: 1181px) {
  .hdr { transition: gap 0.9s cubic-bezier(0.22, 1, 0.36, 1); }
  .hdr__logo { transition: background-color 0.25s, margin 0.9s cubic-bezier(0.22, 1, 0.36, 1); }
  .hdr__links, .hdr__right { overflow: clip visible; transition: max-width 0.9s cubic-bezier(0.22, 1, 0.36, 1), margin 0.9s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.5s ease 0.12s; }
  .hdr__links { max-width: 680px; }
  .hdr__right { max-width: 420px; }
  .hdr.is-compact:not(:hover):not(:focus-within) { gap: 0; }
  .hdr.is-compact:not(:hover):not(:focus-within) .hdr__logo { margin-right: 0; }
  .hdr.is-compact:not(:hover):not(:focus-within) .hdr__links,
  .hdr.is-compact:not(:hover):not(:focus-within) .hdr__right { max-width: 0; margin-left: 0; opacity: 0; pointer-events: none; }
}
@media (min-width: 1181px) and (prefers-reduced-motion: reduce) {
  .hdr, .hdr__logo, .hdr__links, .hdr__right { transition: none; }
}

/* ---------- macbook + iphone in de builders-sectie; iphone toont een live CRM per klant ---------- */
.ap-builders__dia { width: 100%; margin-top: 0; background: none; border-radius: 0; overflow: visible; }
/* schaal: 1cqw = 1/100 van de schermbreedte, maten afgeleid van de screenshot van 780 px breed */

/* ---------- vier kanalen als vier schuine kaarten, opbouw van builders.studio, elk met een live animatie ---------- */
.ap-k4 { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-k4__kop { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(30px, 4vw, 60px); line-height: 1; letter-spacing: -0.01em; max-width: 14em; }
.ap-k4__sub { margin-top: 24px; font-size: clamp(18px, 1.5vw, 21px); color: #3a3a3c; }
.ap-k4 > .ap-pil { margin-top: 28px; }
.ap-k4__rij { width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 24px); margin-top: 72px; align-items: start; text-align: left; }

.ap-k4__kaart { --kl: #3E7F94; position: relative; display: flex; flex-direction: column; min-height: 480px; border-radius: 16px; overflow: hidden; color: #fff; background: #0d0d10;
  box-shadow: 0 22px 50px -18px rgba(0,0,0,0.38); transition: rotate 0.6s cubic-bezier(0.22,1,0.36,1), translate 0.6s cubic-bezier(0.22,1,0.36,1), scale 0.6s cubic-bezier(0.22,1,0.36,1), box-shadow 0.6s; }
.ap-k4__kaart--1 { --kl: #3E7F94; rotate: -2.2deg; }
.ap-k4__kaart--2 { --kl: #8FCFDF; rotate: 1.4deg; margin-top: 36px; }
.ap-k4__kaart--3 { --kl: #FFB441; rotate: -1.2deg; margin-top: 8px; }
.ap-k4__kaart--4 { --kl: #F2F1E5; rotate: 2deg; margin-top: 44px; }
.ap-k4__kaart:hover { rotate: 0deg; translate: 0 -8px; scale: 1.03; box-shadow: 0 34px 70px -22px rgba(0,0,0,0.45); z-index: 2; }
/* kleurgloed van boven, kleurverloop onder de tekst, zoals de fotokaarten van builders */
.ap-k4__kaart::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--kl) 32%, transparent), transparent 70%); }
.ap-k4__kaart::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 42%, color-mix(in srgb, var(--kl) 34%, #0d0d10) 100%); }
.ap-k4__ster { position: absolute; z-index: 3; top: 16px; right: 16px; width: 20px; height: 20px; fill: #fff; transition: rotate 0.6s cubic-bezier(0.22,1,0.36,1); }
.ap-k4__kaart:hover .ap-k4__ster { rotate: 90deg; }

.ap-k4__beeld { position: relative; z-index: 1; height: 210px; margin: 46px 16px 0; display: flex; justify-content: center; overflow: hidden; padding-bottom: 20px;
  -webkit-mask-image: linear-gradient(#000 78%, transparent); mask-image: linear-gradient(#000 78%, transparent); }
.ap-k4__tekst { position: relative; z-index: 2; margin-top: auto; padding: 10px 20px 18px; }
.ap-k4__kicker { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9px; letter-spacing: 0.17em; text-transform: uppercase; color: color-mix(in srgb, var(--kl) 80%, #fff); }
.ap-k4__tekst h3 { margin-top: 8px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(14px, 1.2vw, 17px); line-height: 1.08; letter-spacing: -0.005em; overflow-wrap: anywhere; }
.ap-k4__zin { margin-top: 8px; font-size: 13.5px; line-height: 1.45; color: rgba(255,255,255,0.78); }
.ap-k4__vink { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 5px; }
.ap-k4__vink li { font-size: 10.5px; line-height: 1.2; padding: 4px 8px; border-radius: 99px; background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.82); }
.ap-k4__noot { margin-top: 10px; font-size: 9.5px; color: rgba(255,255,255,0.42); }

/* de kleine schermen in de kaart */
.ap-k4__ui { width: 100%; border-radius: 12px; background: #fff; color: #1d1d1f; padding: 12px; font-size: 10.5px; line-height: 1.35; box-shadow: 0 14px 30px -14px rgba(0,0,0,0.6); align-self: flex-start; }
.ap-k4__ui p { margin: 0; }
.ap-k4__veld { display: flex; gap: 8px; padding: 4px 0; border-bottom: 1px solid #e8e8ed; }
.ap-k4__veld span { width: 52px; flex: none; color: #6e6e73; }
.ap-k4__veld b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-k4__ber { margin-top: 8px !important; padding: 8px 10px; border-radius: 10px; background: #f5f5f7; }
.ap-k4__ber mark { color: inherit; border-radius: 3px; padding: 0 2px; background: linear-gradient(#E3EEF1, #E3EEF1) 0 0 / 100% 100% no-repeat; }
.ap-k4__bron { margin-top: 6px !important; font-size: 9px; color: #6e6e73; }
.ap-k4__poort { position: relative; overflow: hidden; margin-top: 8px !important; padding: 7px 10px; border-radius: 8px; background: #000; color: #fff; font-weight: 600; display: flex; justify-content: space-between; }
.ap-k4__poort span { position: relative; z-index: 1; color: #8FCFDF; }
.ap-k4__poort i { position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: #8FCFDF; transform-origin: left; }

.ap-k4__wie { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid #e8e8ed; }
.ap-k4__wie i { width: 22px; height: 22px; border-radius: 50%; flex: none; background: linear-gradient(160deg, #c7c7cc, #8e8e93); }
.ap-k4__wie span { display: flex; flex-direction: column; color: #6e6e73; font-size: 9.5px; min-width: 0; }
.ap-k4__wie b { color: #1d1d1f; font-size: 10.5px; }
.ap-k4__wie em { margin-left: auto; font-style: normal; font-size: 9px; font-weight: 600; padding: 3px 7px; border-radius: 99px; background: #E3EEF1; color: #3E7F94; }
.ap-k4__bel { margin-top: 7px !important; max-width: 88%; padding: 6px 9px; border-radius: 12px 12px 12px 4px; background: #f5f5f7; transform-origin: 0 100%; }
.ap-k4__bel--terug { margin-left: auto !important; border-radius: 12px 12px 4px 12px; background: #E3EEF1; transform-origin: 100% 100%; }
.ap-k4__dots { display: none; gap: 3px; width: max-content; margin-top: 8px !important; padding: 7px 9px; border-radius: 12px; background: #f5f5f7; }
.ap-k4__dots i { width: 5px; height: 5px; border-radius: 50%; background: #8e8e93; }

.ap-k4__tel { width: 46%; aspect-ratio: 71.5 / 147.6; padding: 3px; border-radius: 18px; background: linear-gradient(135deg, #8a8a8f, #2a2a2c 20%, #1c1c1e 80%, #7a7a80); box-shadow: 0 16px 30px -12px rgba(0,0,0,0.7); }
.ap-k4__tel-in { height: 100%; border-radius: 15px; overflow: hidden; background: #fff; border: 3px solid #000; }
.ap-k4__tel-in img { display: block; width: 100%; }

.ap-k4__crm-kop { font-weight: 700; font-size: 12px; margin-bottom: 4px !important; }
.ap-k4__crm ul { list-style: none; margin: 0; padding: 0; }
.ap-k4__crm li { display: flex; align-items: center; gap: 7px; padding: 5px 0; border-top: 1px solid #e8e8ed; }
.ap-k4__crm li > i { width: 20px; height: 20px; flex: none; display: grid; place-items: center; border-radius: 50%; font-style: normal; font-size: 7.5px; font-weight: 700; color: #fff; background: linear-gradient(160deg, #6fb1c4, #3E7F94); }
.ap-k4__crm span { display: flex; flex-direction: column; min-width: 0; color: #6e6e73; font-size: 9px; }
.ap-k4__crm b { color: #1d1d1f; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-k4__crm em { margin-left: auto; font-style: normal; font-size: 9px; font-weight: 600; padding: 2px 6px; border-radius: 99px; background: #E3EEF1; color: #3E7F94; }
.ap-k4__crm em.warm { background: #e8e8ed; color: #1d1d1f; }

/* animaties: 7 s per ronde, oneindig. Zonder animatie (minder beweging) staat alles in de eindstand. */
@media (prefers-reduced-motion: no-preference) {
  .ap-k4__ber { animation: k4-in 7s infinite both; }
  .ap-k4__ber mark { animation: k4-markeer 7s infinite both; }
  .ap-k4__bron { animation: k4-bron 7s infinite both; }
  .ap-k4__poort i { animation: k4-balk 7s infinite both; }
  .ap-k4__poort span { animation: k4-vink 7s infinite both; }
  .ap-k4__li .ap-k4__bel:not(.ap-k4__bel--terug) { animation: k4-plop1 7s infinite both; }
  .ap-k4__dots { display: flex; animation: k4-dots 7s infinite both; }
  .ap-k4__dots i { animation: k4-stip 0.9s infinite; }
  .ap-k4__dots i:nth-child(2) { animation-delay: 0.15s; } .ap-k4__dots i:nth-child(3) { animation-delay: 0.3s; }
  .ap-k4__bel--terug { animation: k4-plop2 7s infinite both; }
  .ap-k4__tel-in img { animation: k4-scroll 7s infinite cubic-bezier(0.65,0,0.35,1) both; }
  .ap-k4__crm li { animation: k4-rij 7s infinite both; }
  .ap-k4__crm li:nth-child(2) { animation-name: k4-rij2; } .ap-k4__crm li:nth-child(3) { animation-name: k4-rij3; } .ap-k4__crm li:nth-child(4) { animation-name: k4-rij4; }
  .ap-k4__crm li:first-child em { animation: k4-puls 7s infinite; }
}
@keyframes k4-in { 0%, 6% { opacity: 0; translate: 0 6px; } 14%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes k4-markeer { 0%, 20% { background-size: 0% 100%; } 32%, 92% { background-size: 100% 100%; } 100% { background-size: 100% 100%; } }
@keyframes k4-bron { 0%, 32% { opacity: 0; } 40%, 92% { opacity: 1; } 100% { opacity: 0; } }
@keyframes k4-balk { 0%, 42% { transform: scaleX(0); } 68%, 92% { transform: scaleX(1); } 100% { transform: scaleX(1); opacity: 0; } }
@keyframes k4-vink { 0%, 66% { opacity: 0.25; } 72%, 92% { opacity: 1; } 100% { opacity: 0.25; } }
@keyframes k4-plop1 { 0%, 6% { opacity: 0; scale: 0.6; } 14% { opacity: 1; scale: 1.04; } 18%, 92% { opacity: 1; scale: 1; } 100% { opacity: 0; } }
@keyframes k4-dots { 0%, 24% { opacity: 0; } 30%, 50% { opacity: 1; } 54%, 100% { opacity: 0; height: 0; padding-block: 0; margin-top: 0; } }
@keyframes k4-stip { 0%, 100% { opacity: 0.3; translate: 0 0; } 50% { opacity: 1; translate: 0 -2px; } }
@keyframes k4-plop2 { 0%, 52% { opacity: 0; scale: 0.6; } 60% { opacity: 1; scale: 1.04; } 64%, 92% { opacity: 1; scale: 1; } 100% { opacity: 0; } }
@keyframes k4-scroll { 0%, 14% { translate: 0 0; } 46%, 60% { translate: 0 -38%; } 88%, 100% { translate: 0 0; } }
@keyframes k4-rij  { 0%, 4%  { opacity: 0; translate: 16px 0; } 10%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes k4-rij2 { 0%, 12% { opacity: 0; translate: 16px 0; } 18%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes k4-rij3 { 0%, 20% { opacity: 0; translate: 16px 0; } 26%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes k4-rij4 { 0%, 28% { opacity: 0; translate: 16px 0; } 34%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes k4-puls { 0%, 40%, 100% { box-shadow: 0 0 0 0 rgba(62,127,148,0); } 48% { box-shadow: 0 0 0 5px rgba(62,127,148,0.25); } 56% { box-shadow: 0 0 0 0 rgba(62,127,148,0); } }

@media (max-width: 1100px) { .ap-k4__rij { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 680px; margin-inline: auto; row-gap: 36px; } .ap-k4__kaart--2, .ap-k4__kaart--4 { margin-top: 28px; } .ap-k4__kaart--3 { margin-top: 0; } }
@media (max-width: 560px) { .ap-k4__rij { grid-template-columns: 1fr; max-width: 340px; } .ap-k4__kaart { margin-top: 0 !important; } }

/* ---------- rekenmodel als donker paneel met live trechter (builders-opbouw) ---------- */
.ap-r2__paneel { position: relative; overflow: hidden; border-radius: 28px; padding: clamp(48px, 6vw, 88px) clamp(20px, 4.4vw, 64px); color: #fff; background: #0d0d10; }
.ap-r2__paneel::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 50% at 15% 0%, rgba(62,127,148,0.35), transparent 70%), radial-gradient(50% 45% at 95% 100%, rgba(255,180,65,0.18), transparent 70%); }
.ap-r2__paneel > * { position: relative; }
.ap-r2__kop { text-align: center; margin: 0 auto; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(30px, 4vw, 60px); line-height: 1; letter-spacing: -0.01em; max-width: 14em; }
.ap-r2__intro { text-align: center; margin: 24px auto 0; max-width: 36em; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55; color: rgba(255,255,255,0.68); }
.ap-r2__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(28px, 4vw, 64px); margin-top: 64px; align-items: start; }
.ap-r2 h3 { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.17em; text-transform: uppercase; color: #8FCFDF; margin-bottom: 28px; }

/* invoer op donker */
.ap-r2 .ap-veld__kop { color: rgba(255,255,255,0.72); font-size: 16px; }
.ap-r2 .ap-veld__waarde { color: #fff; }
.ap-r2 .ap-veld__waarde input { color: #fff; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.18); }
.ap-r2 .ap-veld__schaal { color: rgba(255,255,255,0.45); font-size: 13px; }
.ap-r2 .ap-veld__schaal--stappen { color: rgba(255,255,255,0.8); font-size: 14px; }
.ap-r2 input[type=range] { -webkit-appearance: none; appearance: none; height: 22px; background: transparent; cursor: pointer; }
.ap-r2 input[type=range]::-webkit-slider-runnable-track { height: 4px; border-radius: 99px; background: rgba(255,255,255,0.16); }
.ap-r2 input[type=range]::-moz-range-track { height: 4px; border-radius: 99px; background: rgba(255,255,255,0.16); }
.ap-r2 input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; margin-top: -8px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(143,207,223,0.35), 0 4px 14px rgba(0,0,0,0.5); transition: box-shadow 0.25s; }
.ap-r2 input[type=range]::-moz-range-thumb { width: 20px; height: 20px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(143,207,223,0.35); }
.ap-r2 input[type=range]:hover::-webkit-slider-thumb, .ap-r2 input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 8px rgba(143,207,223,0.3), 0 4px 14px rgba(0,0,0,0.5); }
.ap-r2 .ap-aanname { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); color: rgba(255,255,255,0.55); font-size: 13px; }
.ap-r2 .ap-aanname b { color: rgba(255,255,255,0.85); }

/* de trechter: vier balken die meebewegen met de schuifjes */
.ap-r2__trechter { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.ap-r2__stap { --w: 100%; display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 12px; }
.ap-r2__label { font-size: 15px; color: rgba(255,255,255,0.72); }
.ap-r2__stap > b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(22px, 2vw, 30px); font-variant-numeric: tabular-nums; }
.ap-r2__spoor { grid-column: 1 / -1; display: block; height: 10px; margin-top: 8px; border-radius: 99px; background: rgba(255,255,255,0.07); overflow: hidden; }
.ap-r2__balk { display: block; height: 100%; width: var(--w); border-radius: inherit; background: linear-gradient(90deg, #3E7F94, #8FCFDF); transition: width 0.8s cubic-bezier(0.22,1,0.36,1); }
.ap-r2__stap--4 .ap-r2__balk { background: linear-gradient(90deg, #d9902a, #FFB441); }
.ap-r2__stap--4 > b { color: #FFB441; }
.ap-r2__stap small { grid-column: 1 / -1; margin-top: 6px; font-size: 12.5px; color: rgba(255,255,255,0.42); }
.ap-r2__totaal { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-top: 32px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.12); font-size: 15px; color: rgba(255,255,255,0.72); }
.ap-r2__totaal small { display: block; margin-top: 4px; font-size: 12.5px; color: rgba(255,255,255,0.42); }
.ap-r2__totaal b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(30px, 3.4vw, 50px); line-height: 1; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ap-r2__roi { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 16px; font-size: 14px; color: rgba(255,255,255,0.62); }
.ap-r2__roi b { flex: none; padding: 6px 14px; border-radius: 99px; background: rgba(143,207,223,0.14); color: #8FCFDF; font-size: 17px; font-weight: 700; }
.ap-r2__noot { margin-top: 16px; font-size: 13px; line-height: 1.5; color: rgba(255,255,255,0.45); }
.ap-r2 .ap-pil { display: flex; justify-content: center; margin-top: 22px; padding: 15px; }
@media (max-width: 1000px) { .ap-r2__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ap-r2__balk { transition: none; } }

/* ---------- vergelijking: gestapelde kostenbalk + twee kanten zonder kaders ---------- */
.ap-v2 { display: flex; flex-direction: column; align-items: center; }
.ap-v2__kop { text-align: center; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(28px, 3.6vw, 54px); line-height: 1.02; letter-spacing: -0.01em; max-width: 16em; }
.ap-v2__intro { text-align: center; margin-top: 24px; max-width: 34em; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55; color: #3a3a3c; }
.ap-v2__balk { width: 100%; margin-top: 64px; }
.ap-v2__balk-kop { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 14px; }
.ap-v2__balk-kop span { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; color: var(--ink-2); }
.ap-v2__balk-kop b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(26px, 3vw, 44px); line-height: 1; }
.ap-v2__segs { display: flex; gap: 4px; height: 92px; }
.ap-v2__seg { --w: 33%; position: relative; flex: 0 0 auto; width: 0; min-width: 0; overflow: hidden; border-radius: 12px; padding: 14px 12px; display: flex; flex-direction: column; justify-content: space-between; color: #fff; transition: width 1.1s cubic-bezier(0.22,1,0.36,1); }
.ap-v2__seg b { font-size: clamp(12px, 1.2vw, 18px); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.ap-v2__seg small { font-size: 12px; opacity: 0.8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-v2__seg--1 { background: #040205; }
.ap-v2__seg--2 { background: #3E7F94; transition-delay: 0.25s; }
.ap-v2__seg--3 { background: #FFB441; color: #040205; transition-delay: 0.5s; }
.ap-v2__balk.is-zichtbaar .ap-v2__seg { width: calc(var(--w) - 3px); }

.ap-v2__duo { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); margin-top: 72px; }
.ap-v2__label { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; padding-bottom: 16px; border-bottom: 2px solid currentColor; }
.ap-v2__kant--oud .ap-v2__label { color: var(--ink-2); }
.ap-v2__kant--wij .ap-v2__label { color: #3E7F94; }
.ap-v2__kant ul { list-style: none; margin: 0; padding: 0; }
.ap-v2__kant li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--grijs-2); }
.ap-v2__kant li > span { display: flex; flex-direction: column; min-width: 0; }
.ap-v2__kant li b { font-size: 16px; font-weight: 600; }
.ap-v2__kant li small { margin-top: 2px; font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.ap-v2__kant li > em { flex: none; font-style: normal; color: var(--ink); font-size: 16px; font-weight: 600; text-align: right; white-space: nowrap; }
.ap-v2__kant .ap-v2__min > em { color: #b42318; }
.ap-v2__vink { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #E3EEF1; color: #3E7F94; }
.ap-v2__vink svg { width: 16px; height: 16px; }
.ap-v2__som { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 22px; font-size: 18px; font-weight: 600; }
.ap-v2__som > span { display: flex; flex-direction: column; align-items: flex-start; }
.ap-v2__som span small { display: block; font-size: 14px; font-weight: 400; color: var(--ink-2); }
.ap-v2__som span .ap-pil { margin-top: 10px; }
.ap-v2__som > b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(22px, 2.2vw, 32px); white-space: nowrap; }
.ap-v2__som > b.ap-v2__vraag { color: #3E7F94; }
/* bij inscrollen: de oude kosten schuiven gestaffeld in, bij ons ploppen de vinkjes erbij */
@media (prefers-reduced-motion: no-preference) {
  .ap-v2__duo li { opacity: 0; translate: 0 12px; transition: opacity 0.6s ease, translate 0.6s cubic-bezier(0.22,1,0.36,1); }
  .ap-v2__duo .ap-v2__vink { scale: 0; transition: scale 0.5s cubic-bezier(0.34,1.56,0.64,1); }
  .ap-v2__duo.is-zichtbaar li { opacity: 1; translate: 0 0; }
  .ap-v2__duo.is-zichtbaar .ap-v2__vink { scale: 1; }
  .ap-v2__duo li:nth-child(2) { transition-delay: 0.08s; } .ap-v2__duo li:nth-child(3) { transition-delay: 0.16s; } .ap-v2__duo li:nth-child(4) { transition-delay: 0.24s; }
  .ap-v2__duo li:nth-child(5) { transition-delay: 0.32s; } .ap-v2__duo li:nth-child(6) { transition-delay: 0.4s; } .ap-v2__duo li:nth-child(7) { transition-delay: 0.48s; }
  .ap-v2__duo li .ap-v2__vink { transition-delay: inherit; }
}
@media (prefers-reduced-motion: reduce) { .ap-v2__seg { width: calc(var(--w) - 3px); transition: none; } }
@media (max-width: 800px) {
  .ap-v2__duo { grid-template-columns: 1fr; }
  .ap-v2__segs { height: 78px; }
  .ap-v2__seg { padding: 10px; }
  .ap-v2__seg small { display: none; }
}


/* ---------- alle oranje knoppen nu als de header-knop: donker glas met draaiende lichtrand ---------- */
/* de rand, gloed en hover komen uit de header-regels hierboven; hier alleen wat op een lichte pagina anders moet */
.ap-pil, .ap-form .ap-pil { height: 48px; margin-left: 0; padding: 0 26px; border: 0; cursor: pointer; justify-content: center; text-decoration: none;
  font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  background: radial-gradient(90px circle at 50% 50%, rgba(255,255,255,calc(0.2 * var(--hdr-o))), transparent 70%), #0d0d10; color: #fff; }
.ap-pil:hover, .ap-form .ap-pil:hover { background-color: #1c1c20; }
.ap-pil:active { transform: scale(0.97); }
.ap-pil.ap-pil--klein { height: 38px; padding: 0 16px; font-size: 10px; }
.ap-r2 .ap-pil { height: 54px; }
/* ---------- vergelijking: twee blokken met kleurverloop, even hoog, rijen naast elkaar uitgelijnd ---------- */
.ap-v2__duo { grid-template-rows: auto repeat(6, auto) auto; row-gap: 0; }
.ap-v2__kant { position: relative; overflow: hidden; display: grid; grid-template-rows: subgrid; grid-row: span 8; padding: 32px clamp(20px, 2.6vw, 36px) 30px; border-radius: 26px; }
.ap-v2__kant ul { display: contents; }
.ap-v2__kant > * { position: relative; }
.ap-v2__kant::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.ap-v2__kant--oud { background: linear-gradient(160deg, #fbfbfc 0%, #f1f0ee 55%, #e8e4df 100%); }
.ap-v2__kant--oud::before { background: radial-gradient(70% 45% at 100% 100%, rgba(180,35,24,0.07), transparent 70%); }
.ap-v2__kant--wij { color: #fff; background: linear-gradient(155deg, #0c242c 0%, #174a58 50%, #3E7F94 100%); box-shadow: 0 30px 60px -30px rgba(23,74,88,0.6); }
.ap-v2__kant--wij::before { background: radial-gradient(60% 40% at 90% 0%, rgba(143,207,223,0.35), transparent 70%), radial-gradient(50% 35% at 0% 100%, rgba(255,180,65,0.14), transparent 70%); }
.ap-v2__kant--oud .ap-v2__label { color: var(--ink-2); border-color: rgba(0,0,0,0.18); }
.ap-v2__kant--wij .ap-v2__label { color: #8FCFDF; border-color: rgba(143,207,223,0.5); }
.ap-v2__kant--oud li { border-color: rgba(0,0,0,0.08); }
.ap-v2__kant--wij li { border-color: rgba(255,255,255,0.14); }
.ap-v2__kant--wij li small { color: rgba(255,255,255,0.68); }
.ap-v2__kant--wij .ap-v2__vink { background: rgba(143,207,223,0.18); color: #8FCFDF; }
.ap-v2__kant--wij .ap-v2__som > b.ap-v2__vraag { color: #8FCFDF; }
.ap-v2__som { align-self: end; }
@media (max-width: 800px) {
  .ap-v2__duo { grid-template-rows: none; row-gap: 20px; }
  .ap-v2__kant { display: flex; flex-direction: column; }
  .ap-v2__kant ul { display: block; }
}

/* ---------- partners als donker paneel met de blauwe vloeistof (assets/field-sectie.js), opbouw van builders.studio ---------- */
.ap-p2__paneel { position: relative; isolation: isolate; overflow: hidden; border-radius: 28px; min-height: 580px; display: flex; flex-direction: column; justify-content: space-between; gap: 64px; padding: clamp(56px, 7vw, 104px) 0 clamp(40px, 5vw, 64px); color: #fff; background: #040205; }
/* leesbaarheid: links iets donkerder, onder een zachte vloer voor de logo's */
.ap-p2__paneel::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(4,2,5,0.5) 0%, rgba(4,2,5,0) 55%), linear-gradient(0deg, rgba(4,2,5,0.4) 0%, rgba(4,2,5,0) 35%); }
.ap-p2__tekst, .ap-p2__band { position: relative; z-index: 2; }
.ap-p2__tekst { padding: 0 clamp(24px, 6vw, 96px); max-width: 780px; }
.ap-p2__kicker { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.ap-p2__kop { margin-top: 18px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(32px, 4.4vw, 64px); line-height: 1; letter-spacing: -0.01em; }
.ap-p2__intro { margin-top: 26px; max-width: 34em; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.6; color: rgba(255,255,255,0.72); }
.ap-p2__band { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.ap-p2__rij { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; width: max-content; animation: p2-loop 36s linear infinite; }
@keyframes p2-loop { to { transform: translateX(-50%); } }
.ap-p2__band:hover .ap-p2__rij { animation-play-state: paused; }
.ap-p2__rij li { flex: none; display: flex; align-items: center; justify-content: center; width: clamp(150px, 15vw, 220px); height: 64px; padding: 0 clamp(18px, 2.4vw, 36px); }
.ap-p2__rij img { max-width: 100%; max-height: 40px; object-fit: contain; opacity: 0.62; transition: opacity 0.3s; }
.ap-p2__rij img[alt="Vitesse"], .ap-p2__rij li:last-child img { max-height: 56px; }
.ap-p2__rij li:hover img { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .ap-p2__rij { animation: none; flex-wrap: wrap; justify-content: center; width: auto; } .ap-p2__rij li[aria-hidden] { display: none; } }
@media (max-width: 700px) { .ap-p2__paneel { min-height: 520px; } }

/* ---------- partners schermvullend: van rand tot rand, minstens één scherm hoog, geen witte rand eromheen ---------- */
.ap-sec.ap-p2 { max-width: none; padding: 0; margin-top: 120px; }
.ap-p2__paneel { border-radius: 0; min-height: 100vh; min-height: 100svh; justify-content: center; gap: clamp(72px, 10vh, 120px); padding: 120px 0 64px; }
/* tekst lijnt uit met de rest van de pagina (1260 px breed) */
.ap-p2__tekst { box-sizing: content-box; max-width: 780px; padding-left: max(clamp(22px, 4.4vw, 64px), calc((100vw - 1260px) / 2 + clamp(22px, 4.4vw, 64px))); }
.ap-p2__uitnodiging { margin-top: 28px; font-size: clamp(18px, 1.5vw, 22px); font-weight: 600; color: #fff; }
.ap-p2__knop { margin-top: 20px; gap: 10px; }

/* ---------- partnertekst uitlijnen met de letters van het hero-logo (de andere blokken houden hun 1260 px) ----------
   Gemeten: de letters beginnen op 4,4vw (1440 breed: 63 px) en zodra het logo zijn maximum
   van 1600 px haalt op (100vw - 1600px) / 2 + 19px (1920 breed: 179 px). Zelfde marge rechts. */
:root { --ap-rand: max(20px, 4.4vw, calc((100vw - 1600px) / 2 + 19px)); }
.ap-p2__tekst { padding-left: var(--ap-rand); padding-right: var(--ap-rand); max-width: 780px; }

/* ---------- teamkaarten als builders-blok: foto vult de kaart, kleurverloop onder, naam in brede kapitalen ---------- */
.ap-team { grid-template-columns: repeat(2, minmax(0, 400px)); gap: clamp(20px, 3vw, 40px); justify-content: start; }
.ap-team .ap-persoon { --kl: #3E7F94; position: relative; display: block; aspect-ratio: 4 / 5.2; border-radius: 16px; overflow: hidden; background: #0d0d10; color: #fff;
  box-shadow: 0 26px 56px -22px rgba(0,0,0,0.42); rotate: -1.6deg; transition: rotate 0.6s cubic-bezier(0.22,1,0.36,1), translate 0.6s cubic-bezier(0.22,1,0.36,1), box-shadow 0.6s; }
.ap-team .ap-persoon:nth-child(2) { --kl: #FFB441; rotate: 1.4deg; margin-top: 36px; }
.ap-team .ap-persoon:hover { rotate: 0deg; translate: 0 -8px; box-shadow: 0 36px 70px -24px rgba(0,0,0,0.5); }
.ap-team .ap-persoon__foto { position: absolute; inset: 0; height: auto; min-height: 0; background: #0d0d10; }
.ap-team .ap-persoon__foto img { object-position: 50% 12%; filter: saturate(0.92) contrast(1.04); transition: scale 0.9s cubic-bezier(0.22,1,0.36,1); }
.ap-team .ap-persoon:hover .ap-persoon__foto img { scale: 1.04; }
/* bovenaan een zachte schaduw zodat de twee achtergronden bij elkaar passen, onderaan het kleurverloop voor de tekst */
.ap-team .ap-persoon__foto::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(4,2,5,0.28) 0%, rgba(4,2,5,0) 22%, rgba(4,2,5,0) 48%, color-mix(in srgb, var(--kl) 38%, #0d0d10) 100%); }
.ap-team .ap-persoon::after { content: ""; position: absolute; z-index: 2; top: 18px; right: 18px; width: 22px; height: 22px; background: #fff; transition: rotate 0.6s cubic-bezier(0.22,1,0.36,1);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.ap-team .ap-persoon:nth-child(2)::after { rotate: 45deg; }
.ap-team .ap-persoon:hover::after { rotate: 90deg; }
.ap-team .ap-persoon__tekst { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 0 26px 26px; }
.ap-team .ap-persoon__rol { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; color: color-mix(in srgb, var(--kl) 45%, #fff); text-shadow: 0 1px 8px rgba(0,0,0,0.35); }
.ap-team .ap-persoon h3 { margin-top: 10px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.02; letter-spacing: -0.005em; color: #fff; }
@media (max-width: 700px) {
  .ap-team { grid-template-columns: minmax(0, 360px); justify-content: center; }
  .ap-team .ap-persoon, .ap-team .ap-persoon:nth-child(2) { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) { .ap-team .ap-persoon, .ap-team .ap-persoon__foto img { transition: none; } }

/* ---------- met wie je werkt: kaarten recht, allebei dezelfde kleur, kop gecentreerd in brede kapitalen ---------- */
#team { text-align: center; }
#team .ap-h2 { margin-left: auto; margin-right: auto; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(30px, 4vw, 60px); line-height: 1; letter-spacing: -0.01em; }
#team .ap-intro { margin-left: auto; margin-right: auto; }
#team .ap-team { justify-content: center; text-align: left; }
.ap-team .ap-persoon, .ap-team .ap-persoon:nth-child(2) { --kl: #3E7F94; rotate: 0deg; margin-top: 0; }
.ap-team .ap-persoon:nth-child(2)::after { rotate: 0deg; }

/* ---------- leonardo's foto op dezelfde lichte achtergrond als die van sam ---------- */
.ap-team .ap-persoon__foto { background: rgb(228, 229, 224); }

/* ---------- na het team: 'life at builders'-slide met een bewegende fotomuur ---------- */
.ap-life { position: relative; background: #fff; color: #040205; padding: clamp(96px, 10vw, 150px) 0 0; overflow: hidden; }
html.licht-veld .ap-life { background: transparent; }
.ap-life__kop-blok { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 1260px; margin: 0 auto; padding: 0 clamp(22px, 4.4vw, 64px); }
.ap-life__kicker { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #6e6e73; }
.ap-life__kop { margin-top: 20px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(30px, 4.4vw, 66px); line-height: 1; letter-spacing: -0.01em; max-width: 14em; }
.ap-life__tekst { margin-top: 28px; max-width: 38em; font-size: clamp(16px, 1.25vw, 18px); line-height: 1.65; color: #6e6e73; }
.ap-life__kop-blok .ap-pil { margin-top: 28px; gap: 10px; }
/* de muur: vier kolommen die elk in hun eigen tempo omhoog schuiven, zacht vervagend aan boven- en onderkant */
.ap-life__muur { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; height: clamp(560px, 62vw, 860px); margin-top: clamp(56px, 6vw, 88px); padding: 0 12px;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 82%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 82%, transparent 100%); }
.ap-life__kolom { overflow: hidden; }
.ap-life__kolom--2 { padding-top: 0; } .ap-life__kolom--1 { padding-top: 90px; } .ap-life__kolom--3 { padding-top: 110px; } .ap-life__kolom--4 { padding-top: 30px; }
.ap-life__spoor { display: flex; flex-direction: column; gap: 12px; animation: life-omhoog 60s linear infinite; }
.ap-life__kolom--2 .ap-life__spoor { animation-duration: 75s; }
.ap-life__kolom--3 .ap-life__spoor { animation-duration: 52s; }
.ap-life__kolom--4 .ap-life__spoor { animation-duration: 68s; }
.ap-life__muur:hover .ap-life__spoor { animation-play-state: paused; }
.ap-life__spoor figure { margin: 0; border-radius: 12px; overflow: hidden; background: #e8e8ed; }
.ap-life__spoor img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.9) contrast(1.03); transition: scale 0.8s cubic-bezier(0.22,1,0.36,1); }
.ap-life__spoor figure:hover img { scale: 1.04; }
/* de foto's staan er twee keer in; een halve verschuiving (min de halve tussenruimte) loopt naadloos rond */
@keyframes life-omhoog { to { transform: translateY(calc(-50% - 6px)); } }
@media (max-width: 800px) { .ap-life__muur { grid-template-columns: repeat(2, minmax(0, 1fr)); height: 640px; } .ap-life__kolom--3, .ap-life__kolom--4 { display: none; } }
@media (prefers-reduced-motion: reduce) { .ap-life__spoor { animation: none; } }

/* ---------- markering in koppen: loopt van links naar rechts aan zodra de kop in beeld komt (data-v2 → is-zichtbaar) ---------- */
.ap-mark { padding: 0 0.06em; color: #040205; background: linear-gradient(#8FCFDF, #8FCFDF) 0 0 / 100% 100% no-repeat; }
@media (prefers-reduced-motion: no-preference) {
  [data-v2] .ap-mark { background-size: 0% 100%; transition: background-size 1.1s cubic-bezier(0.65, 0, 0.35, 1) 0.25s; }
  [data-v2].is-zichtbaar .ap-mark { background-size: 100% 100%; }
}

/* ---------- kostenbalk: kleurverlopen in plaats van effen, zoals de andere blokken ---------- */
.ap-v2__seg { isolation: isolate; }
.ap-v2__seg::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.ap-v2__seg--1 { background: linear-gradient(150deg, #040205 0%, #101d22 55%, #1d3a44 100%); }
.ap-v2__seg--1::before { background: radial-gradient(60% 90% at 100% 0%, rgba(143,207,223,0.22), transparent 70%); }
.ap-v2__seg--2 { background: linear-gradient(150deg, #0c242c 0%, #174a58 45%, #3E7F94 100%); }
.ap-v2__seg--2::before { background: radial-gradient(70% 100% at 90% 0%, rgba(143,207,223,0.38), transparent 70%), radial-gradient(60% 80% at 0% 100%, rgba(255,180,65,0.12), transparent 70%); }
.ap-v2__seg--3 { background: linear-gradient(150deg, #c97a17 0%, #FFB441 60%, #ffd590 100%); }
.ap-v2__seg--3::before { background: radial-gradient(70% 100% at 100% 0%, rgba(255,255,255,0.35), transparent 70%); }

/* ---------- compliance als controlekamer: scan in het midden, regels eromheen die live oplichten, tellers eronder ---------- */
.ap-cc { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-cc__kop { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(28px, 3.8vw, 56px); line-height: 1.02; letter-spacing: -0.01em; max-width: 15em; }
.ap-cc__intro { margin-top: 22px; max-width: 34em; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55; color: #3a3a3c; }
.ap-cc__podium { position: relative; overflow: hidden; width: 100%; margin-top: 56px; display: grid; grid-template-columns: minmax(0, 270px) minmax(0, 1fr) minmax(0, 270px); gap: 36px; align-items: center; text-align: left;
  padding: 48px 32px; border-radius: 28px; border: 1px solid var(--lijn);
  background: radial-gradient(circle, rgba(62,127,148,0.16) 1px, transparent 1.4px) 0 0 / 22px 22px, radial-gradient(70% 60% at 50% 40%, #ffffff 0%, #f3f6f7 70%, #eaf0f2 100%); }
/* lichtstraal die over het podium scant */
.ap-cc__podium::before { content: ""; position: absolute; top: 0; bottom: 0; left: -30%; width: 30%; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(143,207,223,0.28), transparent); animation: cc-straal 6.5s cubic-bezier(0.45,0,0.55,1) infinite; }
@keyframes cc-straal { to { left: 100%; } }
.ap-cc__kant { position: relative; z-index: 1; display: grid; gap: 18px; }
.ap-cc__midden { position: relative; z-index: 1; }
.ap-cc__apparaten { height: 400px; }
.ap-cc__apparaten .ap-mac { left: 16%; top: 4%; width: 84%; }
.ap-cc__apparaten .ap-iphone--voor { width: 26% !important; }

/* de regelkaarten */
.ap-cc__regel { position: relative; padding: 18px 18px 16px; border-radius: 18px; background: rgba(255,255,255,0.86); border: 1px solid var(--lijn); box-shadow: 0 10px 30px -18px rgba(0,0,0,0.25);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: border-color 0.35s, box-shadow 0.35s, translate 0.35s cubic-bezier(0.22,1,0.36,1); }
.ap-cc__icoon { float: right; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #f5f5f7; color: #6e6e73; transition: background-color 0.35s, color 0.35s; }
.ap-cc__icoon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ap-cc__nr { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; color: #6e6e73; }
.ap-cc__regel h3 { margin-top: 8px; font-size: 16px; font-weight: 650; line-height: 1.25; }
.ap-cc__tekst { margin-top: 6px; font-size: 13px; line-height: 1.45; color: #6e6e73; }
.ap-cc__status { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 4px 10px; border-radius: 99px; background: #f5f5f7; color: #6e6e73; font-size: 11.5px; font-weight: 600; transition: background-color 0.35s, color 0.35s; }
.ap-cc__status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
/* lijntje naar het apparaat, met een lichtpuls als de regel actief is */
.ap-cc__regel::after { content: ""; position: absolute; top: 50%; width: 36px; height: 2px; background: linear-gradient(90deg, var(--lijn), var(--lijn)); }
.ap-cc__kant--l .ap-cc__regel::after { right: -37px; }
.ap-cc__kant--r .ap-cc__regel::after { left: -37px; }
.ap-cc__regel.bezig .ap-cc__status { color: #3E7F94; background: #E3EEF1; }
.ap-cc__regel.ok { border-color: #3E7F94; box-shadow: 0 0 0 3px rgba(62,127,148,0.14), 0 14px 34px -18px rgba(62,127,148,0.6); translate: 0 -2px; }
.ap-cc__regel.ok .ap-cc__icoon { background: #3E7F94; color: #fff; }
.ap-cc__regel.ok .ap-cc__status { background: #3E7F94; color: #fff; }
.ap-cc__regel.ok::after { background: linear-gradient(90deg, #3E7F94, #8FCFDF, #3E7F94) 0 0 / 200% 100%; animation: cc-puls 0.9s linear infinite; }
.ap-cc__regel.fout--o { border-color: #FFB441; box-shadow: 0 0 0 3px rgba(255,180,65,0.18), 0 14px 34px -18px rgba(217,144,42,0.6); }
.ap-cc__regel.fout--o .ap-cc__icoon, .ap-cc__regel.fout--o .ap-cc__status { background: #FFB441; color: #1d1d1f; }
.ap-cc__regel.fout--r { border-color: #b42318; box-shadow: 0 0 0 3px rgba(180,35,24,0.12), 0 14px 34px -18px rgba(180,35,24,0.5); }
.ap-cc__regel.fout--r .ap-cc__icoon, .ap-cc__regel.fout--r .ap-cc__status { background: #b42318; color: #fff; }
.ap-cc__regel.fout::after { background: currentColor; }
@keyframes cc-puls { to { background-position: -200% 0; } }

/* live tellers */
.ap-cc__tellers { display: flex; justify-content: center; gap: clamp(16px, 4vw, 64px); margin-top: 36px; }
.ap-cc__teller { display: flex; align-items: baseline; gap: 12px; }
.ap-cc__teller b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(30px, 3.2vw, 48px); line-height: 1; font-variant-numeric: tabular-nums; }
.ap-cc__teller span { display: inline-flex; align-items: center; gap: 8px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; color: #6e6e73; }
.ap-cc__teller span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
.ap-cc__teller--g b { color: #3E7F94; } .ap-cc__teller--g span::before { background: #3E7F94; }
.ap-cc__teller--o b { color: #d9902a; } .ap-cc__teller--o span::before { background: #FFB441; }
.ap-cc__teller--r b { color: #b42318; } .ap-cc__teller--r span::before { background: #b42318; }
.ap-cc__teller b.plop { animation: cc-plop 0.5s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes cc-plop { 0% { scale: 1; } 40% { scale: 1.25; } 100% { scale: 1; } }

@media (max-width: 1100px) {
  .ap-cc__podium { grid-template-columns: 1fr 1fr; padding: 32px 20px; }
  .ap-cc__midden { grid-column: 1 / -1; order: -1; }
  .ap-cc__regel::after { display: none; }
}
@media (max-width: 640px) {
  .ap-cc__podium { grid-template-columns: 1fr; }
  .ap-cc__apparaten { height: 300px; }
  .ap-cc__tellers { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .ap-cc__podium::before, .ap-cc__regel.ok::after { animation: none; } }

/* ---------- tellers als donkere glazen statusbalk onderin het podium, in de stijl van header en knoppen ---------- */
.ap-cc__tellers { grid-column: 1 / -1; position: relative; z-index: 1; justify-self: center; display: inline-flex; align-items: center; gap: 0; margin-top: 4px; padding: 6px; border-radius: 980px;
  background: linear-gradient(rgba(255,255,255,0.05), rgba(255,255,255,0.02)), rgba(9,9,11,0.88); box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 10px 26px -14px rgba(0,0,0,0.5); }
.ap-cc__teller { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px; }
.ap-cc__teller + .ap-cc__teller { border-left: 1px solid rgba(255,255,255,0.12); }
.ap-cc__teller b { order: 2; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 15px; line-height: 1; color: #fff !important; font-variant-numeric: tabular-nums; }
.ap-cc__teller span { order: 1; font-size: 9px; color: rgba(255,255,255,0.7); }
.ap-cc__teller--g span::before { background: #8FCFDF; box-shadow: 0 0 8px #8FCFDF; }
.ap-cc__teller--o span::before { background: #FFB441; box-shadow: 0 0 8px #FFB441; }
.ap-cc__teller--r span::before { background: #ff6b5e; box-shadow: 0 0 8px #ff6b5e; }
@media (max-width: 640px) { .ap-cc__tellers { flex-direction: column; border-radius: 22px; } .ap-cc__teller + .ap-cc__teller { border-left: 0; border-top: 1px solid rgba(255,255,255,0.12); } }

/* ---------- footer in de typografie van de header: brede kapitalen, sterretje bij hover, kolommen bovenaan uitgelijnd ---------- */
.footer__grid > div { align-content: start; gap: 14px; }
.footer .label.footer__label--amber { margin-bottom: 10px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; }
.footer__link { position: relative; display: inline-flex; align-items: center; gap: 10px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(13px, 1.05vw, 16px); letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.86); transition: color 0.25s; }
.footer__link[href^="mailto:"] { text-transform: none; letter-spacing: 0.02em; }
.footer__link::before { content: ""; width: 0; height: 10px; flex: none; margin-right: -10px; background: #FFB441; opacity: 0; transition: width 0.4s cubic-bezier(0.22,1,0.36,1), margin 0.4s cubic-bezier(0.22,1,0.36,1), opacity 0.3s, rotate 0.5s cubic-bezier(0.22,1,0.36,1);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.footer__link:hover, .footer__link:focus-visible { color: #fff; }
.footer__link:hover::before, .footer__link:focus-visible::before { width: 10px; margin-right: 0; opacity: 1; rotate: 90deg; }
.footer__legal { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9.5px; letter-spacing: 0.2em; color: rgba(255,255,255,0.5); }
.footer__legal .legal { font-size: inherit; letter-spacing: inherit; color: rgba(255,255,255,0.62); transition: color 0.25s; }
.footer__legal .legal:hover { color: #fff; }
@media (prefers-reduced-motion: reduce) { .footer__link::before { transition: none; } }

/* ---------- header met vier links: kleuren voor de sterretjes 3 en 4, hamburger al onder 1340 px (langere knop "Plan een kennismaking") ---------- */
.hdr__link:nth-child(3) { --pil: #3E7F94; }
.hdr__link:nth-child(4) { --pil: #F2F1E5; }
.hdr__link:nth-child(4)::before { rotate: 45deg; }
.hdr__link:nth-child(4):hover::before { rotate: 135deg; }
@media (min-width: 1000px) and (max-width: 1340px) {
  .hdr__links, .hdr .btn--pill { display: none !important; }
  .burger { display: block; width: 40px; height: 40px; }
  .hdr { width: calc(100% - 32px); }
  .hdr__right { margin-left: auto; }
}

/* =====================================================================
   MARKETING-PAGINA
   ===================================================================== */
.ap-k4--drie .ap-k4__rij { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1020px; margin-inline: auto; }
.ap-mk__rij { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 8px; margin-top: 10px !important; font-size: 10.5px; font-weight: 600; }
.ap-mk__rij i { display: block; height: 14px; border-radius: 99px; background: #f0f0f3; overflow: hidden; }
.ap-mk__rij b { display: block; height: 100%; border-radius: inherit; }
.ap-mk__b1 { width: 64%; background: linear-gradient(90deg, #3E7F94, #8FCFDF); }
.ap-mk__b2 { width: 36%; background: linear-gradient(90deg, #d9902a, #FFB441); }
.ap-mk__chip { display: inline-block; margin-top: 14px !important; padding: 4px 9px; border-radius: 99px; background: #E3EEF1; color: #3E7F94; font-size: 9.5px; font-weight: 700; }
.ap-mk__var { position: relative; display: grid; grid-template-columns: 58px 1fr 34px; align-items: center; gap: 8px; padding: 9px 0; font-size: 10.5px; font-weight: 600; border-bottom: 1px solid #e8e8ed; }
.ap-mk__var i { display: block; height: 10px; border-radius: 99px; background: #f0f0f3; overflow: hidden; }
.ap-mk__var i b { display: block; height: 100%; width: 30%; border-radius: inherit; background: #c7c7cc; }
.ap-mk__var--b i b { width: 82%; background: linear-gradient(90deg, #3E7F94, #8FCFDF); }
.ap-mk__var em { font-style: normal; text-align: right; color: #6e6e73; }
.ap-mk__var strong { position: absolute; right: 0; top: -9px; padding: 2px 7px; border-radius: 99px; background: #FFB441; color: #040205; font-size: 8.5px; letter-spacing: 0.04em; }
.ap-mk__kpi { display: flex; align-items: baseline; gap: 8px; font-size: 10px; color: #6e6e73; }
.ap-mk__kpi b { font-size: 20px; color: #1d1d1f; }
.ap-mk__kpi em { margin-left: auto; font-style: normal; color: #3E7F94; font-weight: 600; }
.ap-mk__rap svg { display: block; width: 100%; height: 70px; margin-top: 10px; }
.ap-mk__lijn { fill: none; stroke: #3E7F94; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; stroke-dasharray: 320; stroke-dashoffset: 0; }
.ap-mk__trigger { display: inline-block; padding: 4px 9px; border-radius: 99px; background: #FFF4E0; color: #a86512; font-size: 9.5px; }
.ap-mk__van { margin-top: 10px !important; font-size: 9.5px; color: #6e6e73; }
.ap-mk__onderwerp { margin-top: 4px !important; font-size: 11.5px; font-weight: 700; line-height: 1.3; }
.ap-mk__regels { display: grid; gap: 5px; margin-top: 10px !important; }
.ap-mk__regels i { display: block; height: 6px; border-radius: 99px; background: #ececf0; }
.ap-mk__regels i:nth-child(2) { width: 86%; } .ap-mk__regels i:nth-child(3) { width: 58%; }
.ap-mk__punten { list-style: none; margin: 56px auto 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 28px; max-width: 980px; }
.ap-mk__punten li { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 500; }
@media (prefers-reduced-motion: no-preference) {
  .ap-mk__b1 { animation: mk-b1 6s ease-in-out infinite; } .ap-mk__b2 { animation: mk-b2 6s ease-in-out infinite; }
  .ap-mk__chip { animation: mk-chip 6s ease-in-out infinite; }
  .ap-mk__var--a i b { animation: mk-a 6s ease-in-out infinite; } .ap-mk__var--b i b { animation: mk-b 6s ease-in-out infinite; }
  .ap-mk__var strong { animation: mk-win 6s ease-in-out infinite; }
  .ap-mk__lijn { animation: mk-lijn 6s ease-in-out infinite; }
  .ap-k4__kaart .ap-mk__mail { animation: mk-mail 6s cubic-bezier(0.22,1,0.36,1) infinite; }
  .ap-k4__kaart--2 .ap-mk__mail { animation-delay: 0.6s; } .ap-k4__kaart--3 .ap-mk__mail { animation-delay: 1.2s; }
}
@keyframes mk-b1 { 0%, 15% { width: 44%; } 45%, 90% { width: 72%; } 100% { width: 44%; } }
@keyframes mk-b2 { 0%, 15% { width: 56%; } 45%, 90% { width: 28%; } 100% { width: 56%; } }
@keyframes mk-chip { 0%, 40% { opacity: 0; translate: 0 4px; } 50%, 90% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes mk-a { 0%, 10% { width: 8%; } 40%, 90% { width: 30%; } 100% { width: 8%; } }
@keyframes mk-b { 0%, 10% { width: 8%; } 50%, 90% { width: 82%; } 100% { width: 8%; } }
@keyframes mk-win { 0%, 52% { opacity: 0; scale: 0.6; } 60% { opacity: 1; scale: 1.08; } 66%, 90% { opacity: 1; scale: 1; } 100% { opacity: 0; } }
@keyframes mk-lijn { 0%, 6% { stroke-dashoffset: 320; } 60%, 90% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 320; } }
@keyframes mk-mail { 0%, 8% { opacity: 0; translate: 26px 0; } 20%, 88% { opacity: 1; translate: 0 0; } 100% { opacity: 0; translate: -10px 0; } }

/* vergelijking: twee staven, bureau tegen wij */
.ap-mk__staven { width: 100%; margin-top: 64px; display: grid; gap: 10px; }
.ap-mk__staaf { width: 0; min-width: 0; height: 84px; border-radius: 14px; overflow: hidden; display: flex; align-items: center; padding: 0 20px; color: #fff; transition: width 1.2s cubic-bezier(0.22,1,0.36,1); }
.ap-mk__staaf span { display: flex; flex-direction: column; white-space: nowrap; }
.ap-mk__staaf b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(16px, 1.8vw, 24px); }
.ap-mk__staaf small { margin-top: 2px; font-size: 12px; opacity: 0.8; }
.ap-mk__staaf--bureau { background: linear-gradient(150deg, #040205 0%, #101d22 55%, #1d3a44 100%); }
.ap-mk__staaf--wij { background: linear-gradient(150deg, #0c242c 0%, #174a58 45%, #3E7F94 100%); transition-delay: 0.3s; }
.ap-mk__staven.is-zichtbaar .ap-mk__staaf--bureau { width: 100%; }
.ap-mk__staven.is-zichtbaar .ap-mk__staaf--wij { width: max(36%, 220px); }
.ap-mk__noot { margin-top: 6px; font-size: 13px; color: #6e6e73; text-align: left; }
.ap-v2__duo--4 { grid-template-rows: auto repeat(4, auto) auto; }
.ap-v2__duo--4 .ap-v2__kant { grid-row: span 6; }
@media (prefers-reduced-motion: reduce) { .ap-mk__staaf--bureau { width: 100%; } .ap-mk__staaf--wij { width: max(36%, 220px); } .ap-mk__staaf { transition: none; } }
@media (max-width: 900px) { .ap-k4--drie .ap-k4__rij { grid-template-columns: 1fr; max-width: 360px; } .ap-k4--drie .ap-k4__kaart { margin-top: 0 !important; } }

/* =====================================================================
   CONTENT STUDIO-PAGINA
   ===================================================================== */
.ap-st-sec { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-st__podium { width: 100%; max-width: 940px; margin-top: 56px; }
.ap-st__mac { width: 100%; }
.ap-st__scherm { container-type: inline-size; display: block; text-align: left; background: #f5f5f7; }
.ap-st { position: absolute; inset: 0; display: grid; grid-template-columns: 21% 1fr; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", var(--font-sans); color: #1d1d1f; }
.ap-st p { margin: 0; }
.ap-st__zij { padding: 3cqw 2.2cqw; background: #fff; border-right: 0.12cqw solid #e8e8ed; font-size: 1.3cqw; }
.ap-st__zij > b { display: block; font-size: 1.3cqw; letter-spacing: 0.04em; margin-bottom: 2.4cqw; }
.ap-st__titel { margin-top: 1.6cqw !important; font-size: 1cqw; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #6e6e73; }
.ap-st__kleuren { display: flex; gap: 0.6cqw; margin-top: 0.9cqw !important; }
.ap-st__kleuren i { width: 2.4cqw; height: 2.4cqw; border-radius: 0.6cqw; }
.ap-st__font { margin-top: 0.9cqw !important; font-size: 2cqw; font-weight: 800; }
.ap-st__font span { font-size: 1cqw; font-weight: 500; color: #6e6e73; }
.ap-st__tpl { margin-top: 0.7cqw !important; padding: 0.7cqw 1cqw; border-radius: 0.8cqw; font-size: 1.2cqw; color: #3a3a3c; }
.ap-st__tpl.aan { background: #E3EEF1; color: #3E7F94; font-weight: 600; }
.ap-st__hoofd { padding: 3cqw 3cqw; }
.ap-st__prompt { display: flex; align-items: center; gap: 1.2cqw; padding: 1cqw 1cqw 1cqw 1.8cqw; border-radius: 1.4cqw; background: #fff; border: 0.12cqw solid #d2d2d7; box-shadow: 0 0.6cqw 2cqw rgba(0,0,0,0.06); font-size: 1.5cqw; }
.ap-st__typ { flex: 1; white-space: nowrap; overflow: hidden; }
.ap-st__prompt em { font-style: normal; padding: 0.8cqw 1.6cqw; border-radius: 99px; background: #040205; color: #fff; font-size: 1.2cqw; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.ap-st__sub { margin-top: 1.8cqw !important; font-size: 1.15cqw; color: #6e6e73; }
.ap-st__posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6cqw; margin-top: 1.2cqw; }
.ap-st__post { position: relative; padding: 0.9cqw; border-radius: 1.2cqw; background: #fff; border: 0.12cqw solid #e8e8ed; box-shadow: 0 0.8cqw 2cqw rgba(0,0,0,0.06); }
.ap-st__beeld { position: relative; aspect-ratio: 1 / 1; border-radius: 0.8cqw; overflow: hidden; display: flex; align-items: flex-end; padding: 1.2cqw; }
.ap-st__post--1 .ap-st__beeld { background: linear-gradient(150deg, #040205, #1d3a44); }
.ap-st__post--2 .ap-st__beeld { background: linear-gradient(150deg, #0c242c, #3E7F94 70%, #8FCFDF); }
.ap-st__post--3 .ap-st__beeld { background: linear-gradient(150deg, #c97a17, #FFB441 60%, #ffd590); }
.ap-st__beeld span { position: relative; z-index: 1; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: 1.9cqw; line-height: 1.02; color: #fff; }
.ap-st__post--3 .ap-st__beeld span { color: #040205; }
.ap-st__beeld i { position: absolute; top: 1.2cqw; right: 1.2cqw; width: 2.2cqw; height: 2.2cqw; background: currentColor; color: rgba(255,255,255,0.9);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.1 5.9 11.4 12 12-6.1.6-11.4 5.9-12 12-.6-6.1-5.9-11.4-12-12C6.1 11.4 11.4 6.1 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.1 5.9 11.4 12 12-6.1.6-11.4 5.9-12 12-.6-6.1-5.9-11.4-12-12C6.1 11.4 11.4 6.1 12 0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.ap-st__balk { display: grid; gap: 0.5cqw; margin-top: 0.9cqw !important; }
.ap-st__balk i { display: block; height: 0.6cqw; border-radius: 99px; background: #ececf0; }
.ap-st__balk i:last-child { width: 60%; }
.ap-st__ok { position: absolute; left: 50%; top: -1.4cqw; translate: -50% 0; display: inline-flex; align-items: center; gap: 0.5cqw; padding: 0.5cqw 1.2cqw; border-radius: 99px; background: #3E7F94; color: #fff; font-style: normal; font-size: 1.1cqw; font-weight: 700; white-space: nowrap; box-shadow: 0 0.6cqw 1.6cqw rgba(62,127,148,0.4); }
.ap-st__ok svg { width: 1.3cqw; height: 1.3cqw; }
.ap-st__post--2 { outline: 0.25cqw solid #3E7F94; outline-offset: 0.3cqw; }
@media (prefers-reduced-motion: no-preference) {
  .ap-st__typ { animation: st-typ 10s steps(46) infinite; }
  .ap-st__prompt em { animation: st-knop 10s ease-in-out infinite; }
  .ap-st__sub { animation: st-in 10s ease-in-out infinite both; animation-name: st-sub; }
  .ap-st__post { animation: st-post 10s cubic-bezier(0.22,1,0.36,1) infinite both; }
  .ap-st__post--2 { animation-name: st-post2; } .ap-st__post--3 { animation-name: st-post3; }
  .ap-st__ok { animation: st-ok 10s cubic-bezier(0.34,1.56,0.64,1) infinite both; }
}
@keyframes st-typ { 0%, 4% { clip-path: inset(0 100% 0 0); } 30%, 94% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(0 100% 0 0); } }
@keyframes st-knop { 0%, 31% { scale: 1; } 34% { scale: 0.9; } 37%, 100% { scale: 1; } }
@keyframes st-sub { 0%, 38% { opacity: 0; } 44%, 92% { opacity: 1; } 100% { opacity: 0; } }
@keyframes st-post { 0%, 40% { opacity: 0; translate: 0 2cqw; } 48%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes st-post2 { 0%, 44% { opacity: 0; translate: 0 2cqw; outline-color: transparent; } 52%, 64% { opacity: 1; translate: 0 0; outline-color: transparent; } 68%, 92% { opacity: 1; outline-color: #3E7F94; } 100% { opacity: 0; } }
@keyframes st-post3 { 0%, 48% { opacity: 0; translate: 0 2cqw; } 56%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes st-ok { 0%, 66% { opacity: 0; scale: 0.5; } 72%, 92% { opacity: 1; scale: 1; } 100% { opacity: 0; } }
.ap-st__stappen { list-style: none; margin: 56px 0 0; padding: 0; width: 100%; max-width: 1020px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; text-align: left; }
.ap-st__stappen li { padding-top: 18px; border-top: 2px solid #040205; }
.ap-st__nr { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; color: #3E7F94; }
.ap-st__stappen b { display: block; margin-top: 10px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: 15px; line-height: 1.15; }
.ap-st__stappen p { margin-top: 8px; font-size: 15px; line-height: 1.5; color: #6e6e73; }
.ap-st__kaarten .ap-k4__kaart { min-height: 400px; }
.ap-st__kaarten .ap-k4__beeld { height: 170px; align-items: center; -webkit-mask-image: none; mask-image: none; }
.ap-st__icoon svg { width: 84px; height: 84px; fill: none; stroke: #fff; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 8px 24px rgba(143,207,223,0.35)); }
@media (prefers-reduced-motion: no-preference) {
  .ap-st__icoon--1 svg { animation: st-slot 3.2s ease-in-out infinite; }
  .ap-st__icoon--2 svg rect:last-child { animation: st-stapel 3.2s ease-in-out infinite; }
  .ap-st__icoon--3 svg path { stroke-dasharray: 30; animation: st-vink 3.2s ease-in-out infinite; }
  .ap-st__icoon--4 svg rect:first-child { transform-origin: 8px 12px; animation: st-formaat 3.2s ease-in-out infinite; }
}
@keyframes st-slot { 0%, 100% { translate: 0 0; } 50% { translate: 0 -5px; } }
@keyframes st-stapel { 0%, 100% { translate: 0 0; } 50% { translate: -3px -3px; } }
@keyframes st-vink { 0%, 10% { stroke-dashoffset: 30; } 50%, 90% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 30; } }
@keyframes st-formaat { 0%, 100% { scale: 1 1; } 50% { scale: 0.8 1.1; } }
@media (max-width: 800px) { .ap-st__stappen { grid-template-columns: 1fr; gap: 20px; } }

/* =====================================================================
   MARKETING: META & GOOGLE-SHOWCASE (donker paneel, twee podia, één budgetbalk)
   ===================================================================== */
.ap-mg { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-mg__intro { max-width: 40em; }
.ap-mg__paneel { position: relative; overflow: hidden; width: 100%; margin-top: 56px; padding: clamp(32px, 4vw, 56px); border-radius: 28px; color: #fff; text-align: left; background: #0d0d10;
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 48px); }
.ap-mg__paneel::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(50% 50% at 10% 10%, rgba(24,119,242,0.22), transparent 70%), radial-gradient(50% 50% at 90% 10%, rgba(66,133,244,0.16), transparent 70%), radial-gradient(60% 40% at 50% 100%, rgba(62,127,148,0.35), transparent 70%); }
.ap-mg__paneel > * { position: relative; }
.ap-mg__label { display: flex; align-items: center; gap: 12px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(20px, 2vw, 28px); text-transform: uppercase; letter-spacing: -0.005em; }
.ap-mg__label span { margin-left: auto; font-family: var(--font-sans); font-weight: 500; font-size: 13px; text-transform: none; color: rgba(255,255,255,0.55); }
.ap-mg__dot { flex: none; width: 14px; height: 14px; border-radius: 50%; }
.ap-mg__dot--meta { background: linear-gradient(135deg, #0064e0, #00c6ff); box-shadow: 0 0 14px rgba(0,140,255,0.7); }
.ap-mg__dot--google { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; width: 14px; height: 14px; border-radius: 0; }
.ap-mg__dot--google b { border-radius: 50%; }
.ap-mg__dot--google b:nth-child(1) { background: #4285F4; } .ap-mg__dot--google b:nth-child(2) { background: #EA4335; } .ap-mg__dot--google b:nth-child(3) { background: #FBBC05; } .ap-mg__dot--google b:nth-child(4) { background: #34A853; }
.ap-mg__toneel { position: relative; height: 360px; margin-top: 24px; border-radius: 20px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center; overflow: hidden; }

/* meta: telefoon met een feed die scrolt, de advertentie schuift erin */
.ap-mg__tel { width: 178px; height: 330px; margin-top: 60px; padding: 5px; border-radius: 30px; background: linear-gradient(135deg, #8a8a8f, #2a2a2c 20%, #1c1c1e 80%, #7a7a80); box-shadow: 0 30px 60px -20px rgba(0,0,0,0.7); }
.ap-mg__tel-in { height: 100%; border-radius: 26px; overflow: hidden; background: #fff; border: 4px solid #000; color: #1d1d1f; }
.ap-mg__feedkop { margin: 0; padding: 22px 12px 8px; font-size: 13px; font-weight: 700; border-bottom: 1px solid #ececf0; }
.ap-mg__scroll { padding: 8px; display: grid; gap: 8px; }
.ap-mg__post { border-radius: 10px; }
.ap-mg__post--grijs { display: grid; gap: 5px; padding: 8px; background: #f5f5f7; }
.ap-mg__post--grijs i { display: block; height: 7px; border-radius: 99px; background: #e2e2e7; } .ap-mg__post--grijs i:first-child { height: 46px; border-radius: 6px; } .ap-mg__post--grijs i:last-child { width: 60%; }
.ap-mg__post--ad { border: 1px solid #ececf0; overflow: hidden; }
.ap-mg__ad-wie { display: flex; align-items: center; gap: 6px; margin: 0; padding: 7px 8px; font-size: 8.5px; color: #6e6e73; }
.ap-mg__ad-wie i { width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(150deg, #0c242c, #3E7F94); }
.ap-mg__ad-wie span { display: flex; flex-direction: column; } .ap-mg__ad-wie b { color: #1d1d1f; font-size: 9.5px; }
.ap-mg__ad-beeld { aspect-ratio: 1 / 1; display: flex; align-items: flex-end; padding: 10px; background: linear-gradient(150deg, #0c242c, #3E7F94 70%, #8FCFDF); }
.ap-mg__ad-beeld span { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: 15px; line-height: 1; color: #fff; }
.ap-mg__ad-cta { display: flex; justify-content: space-between; margin: 0; padding: 7px 8px; font-size: 9.5px; font-weight: 700; background: #f5f5f7; }
.ap-mg__ad-cta em { font-style: normal; color: #6e6e73; }

/* google: browser met zoekopdracht, de gesponsorde advertentie licht op */
.ap-mg__browser { width: min(92%, 420px); border-radius: 14px; overflow: hidden; background: #fff; color: #1d1d1f; box-shadow: 0 30px 60px -20px rgba(0,0,0,0.7); }
.ap-mg__balk { display: flex; gap: 5px; margin: 0; padding: 9px 12px; background: #ececf0; }
.ap-mg__balk i { width: 8px; height: 8px; border-radius: 50%; background: #c7c7cc; }
.ap-mg__zoek { margin: 14px 14px 6px; padding: 9px 14px; border-radius: 99px; border: 1px solid #dfe1e5; font-size: 12px; box-shadow: 0 1px 6px rgba(32,33,36,0.12); }
.ap-mg__typ { display: inline-block; white-space: nowrap; }
.ap-mg__resultaat { margin: 10px 14px; padding: 10px 12px; border-radius: 10px; text-align: left; }
.ap-mg__resultaat--ad { border: 1px solid transparent; }
.ap-mg__r-top { margin: 0; font-size: 10px; color: #4d5156; } .ap-mg__r-top b { color: #1d1d1f; }
.ap-mg__r-titel { margin: 3px 0 0; font-size: 13.5px; line-height: 1.25; color: #1a0dab; font-weight: 500; }
.ap-mg__r-tekst { margin: 3px 0 0; font-size: 10.5px; line-height: 1.4; color: #4d5156; }
.ap-mg__resultaat--grijs { display: grid; gap: 5px; } .ap-mg__resultaat--grijs i { display: block; height: 7px; border-radius: 99px; background: #ececf0; } .ap-mg__resultaat--grijs i:first-child { width: 40%; } .ap-mg__resultaat--grijs i:nth-child(2) { width: 85%; height: 9px; } .ap-mg__resultaat--grijs i:last-child { width: 70%; }

/* statistieken als glazen chips rond het toestel */
.ap-mg__stat { position: absolute; display: flex; flex-direction: column; gap: 2px; padding: 9px 14px; border-radius: 14px; margin: 0;
  background: linear-gradient(rgba(255,255,255,0.08), rgba(255,255,255,0.03)), rgba(9,9,11,0.82); box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 12px 30px -12px rgba(0,0,0,0.6); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.ap-mg__stat span { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 8.5px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.ap-mg__stat b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 17px; }
.ap-mg__stat--1 { left: 6%; top: 18%; } .ap-mg__stat--2 { right: 6%; top: 34%; } .ap-mg__stat--3 { left: 8%; bottom: 14%; }
.ap-mg__kant--meta .ap-mg__stat--3 b { color: #8FCFDF; }
.ap-mg__kant--google .ap-mg__stat--1 { left: 4%; top: 6%; } .ap-mg__kant--google .ap-mg__stat--2 { right: 4%; top: auto; bottom: 30%; } .ap-mg__kant--google .ap-mg__stat--3 { left: 6%; bottom: 6%; }
.ap-mg__kant--google .ap-mg__stat--3 b { color: #8FCFDF; }

.ap-mg__punten { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.ap-mg__punten li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(255,255,255,0.86); }
.ap-mg__punten li i { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(143,207,223,0.16); color: #8FCFDF; }
.ap-mg__punten li i svg { width: 14px; height: 14px; }

/* één budgetbalk over de volle breedte, verschuift live */
@property --mg-p { syntax: "<integer>"; inherits: true; initial-value: 64; }
.ap-mg__budget { grid-column: 1 / -1; --mg-p: 64; }
.ap-mg__budget-kop { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0 0 12px; }
.ap-mg__budget-kop span { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.ap-mg__budget-kop em { font-style: normal; font-size: 13px; color: #8FCFDF; }
.ap-mg__budget-balk { display: flex; gap: 4px; height: 56px; }
.ap-mg__budget-balk > span { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 18px; border-radius: 12px; overflow: hidden; white-space: nowrap; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; }
.ap-mg__bm { width: calc(var(--mg-p) * 1%); background: linear-gradient(90deg, #0050c8, #1877F2 60%, #00b2ff); counter-reset: pm var(--mg-p); }
.ap-mg__bg { flex: 1; background: linear-gradient(90deg, #174a58, #3E7F94 60%, #8FCFDF); color: #fff; counter-reset: pg calc(100 - var(--mg-p)); }
.ap-mg__pm::after { content: counter(pm) "%"; } .ap-mg__pg::after { content: counter(pg) "%"; }
.ap-mg__noot { grid-column: 1 / -1; margin: -8px 0 0; font-size: 11px; color: rgba(255,255,255,0.4); text-align: right; }

@media (prefers-reduced-motion: no-preference) {
  .ap-mg__scroll { animation: mg-scroll 8s cubic-bezier(0.65,0,0.35,1) infinite; }
  .ap-mg__stat { animation: mg-stat 8s cubic-bezier(0.34,1.56,0.64,1) infinite both; }
  .ap-mg__stat--2 { animation-delay: 0.35s; } .ap-mg__stat--3 { animation-delay: 0.7s; }
  .ap-mg__typ { animation: mg-typ 8s steps(34) infinite; }
  .ap-mg__resultaat--ad { animation: mg-ad 8s ease-in-out infinite; }
  .ap-mg__kant--google .ap-mg__stat { animation-name: mg-stat-g; }
  .ap-mg__budget { animation: mg-budget 9s ease-in-out infinite; }
}
@keyframes mg-scroll { 0%, 12% { translate: 0 0; } 32%, 88% { translate: 0 -62px; } 100% { translate: 0 0; } }
@keyframes mg-stat { 0%, 30% { opacity: 0; scale: 0.7; } 38%, 88% { opacity: 1; scale: 1; } 96%, 100% { opacity: 0; scale: 0.9; } }
@keyframes mg-typ { 0%, 4% { clip-path: inset(0 100% 0 0); } 34%, 92% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(0 100% 0 0); } }
@keyframes mg-ad { 0%, 36% { opacity: 0.15; border-color: transparent; box-shadow: none; } 44%, 90% { opacity: 1; border-color: #8FCFDF; box-shadow: 0 0 0 4px rgba(143,207,223,0.25); } 100% { opacity: 0.15; border-color: transparent; box-shadow: none; } }
@keyframes mg-stat-g { 0%, 44% { opacity: 0; scale: 0.7; } 52%, 88% { opacity: 1; scale: 1; } 96%, 100% { opacity: 0; scale: 0.9; } }
@keyframes mg-budget { 0%, 10% { --mg-p: 64; } 30%, 45% { --mg-p: 48; } 65%, 80% { --mg-p: 71; } 100% { --mg-p: 64; } }
@media (max-width: 900px) { .ap-mg__paneel { grid-template-columns: 1fr; } .ap-mg__toneel { height: 330px; } }
/* meta: telefoon iets hoger zodat de advertentie in beeld staat; eindstand = gescrold */
.ap-mg__tel { margin-top: 36px; }
.ap-mg__scroll { translate: 0 -62px; }
/* google: chips weg van de zoekbalk */
.ap-mg__kant--google .ap-mg__stat--1 { left: auto; right: 3%; top: 4%; }
.ap-mg__kant--google .ap-mg__stat--2 { right: 3%; bottom: 32%; }
.ap-mg__kant--google .ap-mg__stat--3 { left: 4%; bottom: 5%; }
.ap-mg__browser { margin-top: 26px; }

/* ---------- overgang donkere kop → licht deel: wit blad met ronde hoeken dat over de kop schuift (zoals builders) ---------- */
.ap { position: relative; z-index: 1; margin-top: -32px; border-radius: 32px 32px 0 0; }
/* het eerste schermdeel is echt wit (dekt de donkere vloeistof af), daarna vloeit het over in het lichte veld */
html.licht-veld .ap { background: linear-gradient(180deg, #fff 0, #fff 60vh, rgba(255,255,255,0) 100vh); }
html.licht-veld .ap::before { content: none; }
.ap-v2__duo--3 { grid-template-rows: auto repeat(3, auto) auto; }
.ap-v2__duo--3 .ap-v2__kant { grid-row: span 5; }

/* =====================================================================
   CONTENT STUDIO: 'Eén ontwerp. Elk formaat.' (donker paneel, merkkit + vijf formaten)
   ===================================================================== */
.ap-fm { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-fm__paneel { position: relative; overflow: hidden; width: 100%; margin-top: 56px; padding: clamp(28px, 4vw, 52px); border-radius: 28px; background: #0d0d10; color: #fff; text-align: left;
  display: grid; grid-template-columns: minmax(0, 290px) minmax(0, 1fr); gap: clamp(24px, 3.4vw, 52px); align-items: center; }
.ap-fm__paneel::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(45% 60% at 0% 0%, rgba(62,127,148,0.35), transparent 70%), radial-gradient(50% 55% at 100% 100%, rgba(255,180,65,0.18), transparent 70%); }
.ap-fm__paneel > * { position: relative; }
/* merkkit */
.ap-fm__kit { padding: 22px; border-radius: 20px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); }
.ap-fm__kit p { margin: 0; }
.ap-fm__kit-kop { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #8FCFDF; margin-bottom: 10px !important; }
.ap-fm__kit-rij { display: grid; grid-template-columns: 1fr auto 18px; align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,0.08); font-size: 13px; color: rgba(255,255,255,0.65); }
.ap-fm__kit-rij em { font-style: normal; display: flex; gap: 4px; color: #fff; }
.ap-fm__kit-rij em i { width: 16px; height: 16px; border-radius: 5px; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.15); }
.ap-fm__aa { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 16px; }
.ap-fm__logo { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9px; letter-spacing: 0.04em; }
.ap-fm__tone { font-size: 12px; }
.ap-fm__kit-rij b { display: grid; place-items: center; color: #FFB441; }
.ap-fm__kit-rij b svg { width: 15px; height: 15px; }
.ap-fm__kit-status { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px !important; padding: 6px 12px; border-radius: 99px; background: rgba(255,180,65,0.14); color: #FFB441; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; }
.ap-fm__kit-status svg { width: 13px; height: 13px; }
/* het doek met vijf formaten, elk in zijn eigen verhouding */
.ap-fm__doek { display: grid; grid-template-columns: 1.15fr 0.72fr 1fr; grid-template-areas: "li ig dp" "li ig mh" "lb lb lb"; gap: 16px 18px; align-items: start; }
.ap-fm__fmt { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ap-fm__fmt--li { grid-area: li; } .ap-fm__fmt--ig { grid-area: ig; } .ap-fm__fmt--dp { grid-area: dp; } .ap-fm__fmt--mh { grid-area: mh; } .ap-fm__fmt--lb { grid-area: lb; }
.ap-fm__ontwerp { container-type: inline-size; position: relative; overflow: hidden; border-radius: 10px; display: flex; align-items: flex-end; padding: 7%; box-shadow: 0 16px 34px -18px rgba(0,0,0,0.8);
  background: radial-gradient(70% 70% at 85% 10%, rgba(143,207,223,0.55), transparent 70%), linear-gradient(150deg, #0c242c 0%, #174a58 50%, #3E7F94 100%); }
.ap-fm__fmt--li .ap-fm__ontwerp { aspect-ratio: 1 / 1; }
.ap-fm__fmt--ig .ap-fm__ontwerp { aspect-ratio: 9 / 16; }
.ap-fm__fmt--dp .ap-fm__ontwerp { aspect-ratio: 300 / 250; }
.ap-fm__fmt--mh .ap-fm__ontwerp { aspect-ratio: 600 / 200; padding: 4% 6%; align-items: center; }
.ap-fm__fmt--lb .ap-fm__ontwerp { aspect-ratio: 728 / 90; padding: 0 3%; align-items: center; }
.ap-fm__ontwerp span { position: relative; z-index: 1; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; line-height: 1; color: #fff; font-size: 13cqw; }
.ap-fm__fmt--mh .ap-fm__ontwerp span { font-size: 7.5cqw; }
.ap-fm__fmt--lb .ap-fm__ontwerp span { font-size: 3.4cqw; }
.ap-fm__ontwerp i { position: absolute; z-index: 1; top: 7%; right: 7%; width: 11cqw; height: 11cqw; background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.1 5.9 11.4 12 12-6.1.6-11.4 5.9-12 12-.6-6.1-5.9-11.4-12-12C6.1 11.4 11.4 6.1 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.1 5.9 11.4 12 12-6.1.6-11.4 5.9-12 12-.6-6.1-5.9-11.4-12-12C6.1 11.4 11.4 6.1 12 0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.ap-fm__fmt--mh .ap-fm__ontwerp i { width: 6cqw; height: 6cqw; top: 50%; translate: 0 -50%; right: 5%; }
.ap-fm__fmt--lb .ap-fm__ontwerp i { width: 2.6cqw; height: 2.6cqw; top: 50%; translate: 0 -50%; right: 2.4%; }
.ap-fm__fmt figcaption { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; color: rgba(255,255,255,0.5); }
.ap-fm__fmt figcaption b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.85); }
.ap-fm__noot { grid-column: 1 / -1; margin: -8px 0 0; font-size: 11px; color: rgba(255,255,255,0.4); text-align: right; }
@media (prefers-reduced-motion: no-preference) {
  .ap-fm__fmt { animation: fm-uit 9s cubic-bezier(0.22,1,0.36,1) infinite both; }
  .ap-fm__fmt--ig { animation-delay: 0.35s; } .ap-fm__fmt--dp { animation-delay: 0.7s; } .ap-fm__fmt--mh { animation-delay: 1.05s; } .ap-fm__fmt--lb { animation-delay: 1.4s; }
  .ap-fm__ontwerp { animation: fm-flits 9s ease-out infinite both; }
  .ap-fm__fmt--ig .ap-fm__ontwerp { animation-delay: 0.35s; } .ap-fm__fmt--dp .ap-fm__ontwerp { animation-delay: 0.7s; } .ap-fm__fmt--mh .ap-fm__ontwerp { animation-delay: 1.05s; } .ap-fm__fmt--lb .ap-fm__ontwerp { animation-delay: 1.4s; }
  .ap-fm__kit-rij b { animation: fm-slot 9s ease-in-out infinite; }
  .ap-fm__kit-rij:nth-of-type(3) b { animation-delay: 0.2s; } .ap-fm__kit-rij:nth-of-type(4) b { animation-delay: 0.4s; } .ap-fm__kit-rij:nth-of-type(5) b { animation-delay: 0.6s; }
}
@keyframes fm-uit { 0%, 8% { opacity: 0; translate: 0 14px; scale: 0.94; } 18%, 86% { opacity: 1; translate: 0 0; scale: 1; } 96%, 100% { opacity: 0; translate: 0 -6px; scale: 1; } }
@keyframes fm-flits { 0%, 14% { box-shadow: 0 0 0 0 rgba(143,207,223,0); } 18% { box-shadow: 0 0 0 3px rgba(143,207,223,0.9), 0 16px 34px -18px rgba(0,0,0,0.8); } 30%, 100% { box-shadow: 0 0 0 0 rgba(143,207,223,0), 0 16px 34px -18px rgba(0,0,0,0.8); } }
@keyframes fm-slot { 0%, 4% { scale: 1; } 8% { scale: 1.35; } 12%, 100% { scale: 1; } }
@media (max-width: 900px) {
  .ap-fm__paneel { grid-template-columns: 1fr; }
  .ap-fm__doek { grid-template-columns: 1fr 0.8fr; grid-template-areas: "li ig" "dp ig" "mh mh" "lb lb"; }
}
.ap-fm__fmt--mh .ap-fm__ontwerp span { padding-right: 10cqw; }
.ap-fm__fmt figcaption { white-space: nowrap; }

/* =====================================================================
   CONTACT: keuzeknop zoals builders.studio/contact (donker, onderwerp kiezen, kaart met wie je spreekt + formulier)
   ===================================================================== */
.sec.ct { display: flex; align-items: center; justify-content: center; min-height: 100vh; min-height: 100svh; padding: 120px var(--ap-rand) 96px; color: #fff; }
.ct__grid { width: 100%; max-width: 1180px; display: flex; flex-direction: column; gap: 32px; align-items: stretch; }
@media (min-width: 900px) { .ct__grid { flex-direction: row; align-items: center; justify-content: center; gap: 0; } }
.ct__zij { flex: none; width: 100%; max-width: 30rem; display: flex; flex-direction: column; transition: max-width 0.75s cubic-bezier(0.22,1,0.36,1), width 0.75s cubic-bezier(0.22,1,0.36,1); }
@media (min-width: 900px) { .ct__zij { width: 30rem; } .ct__grid.gekozen .ct__zij { width: 24rem; max-width: 24rem; } }
.ct__vraag { margin: 0 0 clamp(20px, 3vw, 34px); font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; white-space: nowrap; font-size: clamp(30px, 5.4vw, 70px); line-height: 0.92; letter-spacing: -0.02em;
  transition: font-size 0.7s cubic-bezier(0.22,1,0.36,1), letter-spacing 0.7s, color 0.7s, margin 0.7s; }
.ct__grid.gekozen .ct__vraag { font-size: 11px; letter-spacing: 0.2em; color: rgba(255,255,255,0.45); margin-bottom: 14px; }
/* het uitklapmenu */
.ct__kies { position: relative; z-index: 5; }
.ct__knop { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.05); color: #fff; font: inherit; font-size: clamp(16px, 1.25vw, 18px); text-align: left; cursor: pointer; transition: border-color 0.28s, background-color 0.28s; }
.ct__knop:hover, .ct__knop[aria-expanded="true"] { border-color: rgba(255,255,255,0.45); }
.ct__knop:focus-visible { outline: none; border-color: #8FCFDF; box-shadow: 0 0 0 3px rgba(143,207,223,0.25); }
.ct__waarde { min-width: 0; white-space: normal; line-height: 1.3; overflow-wrap: anywhere; }
.ct__waarde.is-leeg { color: rgba(255,255,255,0.45); }
.ct__knop svg { flex: none; width: 18px; height: 18px; opacity: 0.6; transition: rotate 0.34s cubic-bezier(0.22,1,0.36,1), opacity 0.28s; }
.ct__knop[aria-expanded="true"] svg { rotate: 180deg; opacity: 1; }
.ct__menu { position: absolute; top: calc(100% + 8px); left: 0; right: 0; max-height: 0; overflow: hidden; opacity: 0; pointer-events: none; translate: 0 -6px; border-radius: 14px; border: 0 solid rgba(255,255,255,0.15);
  background: linear-gradient(#1b1b1d, #101012); box-shadow: 0 34px 64px -26px rgba(0,0,0,0.95); transition: max-height 0.4s cubic-bezier(0.22,1,0.36,1), opacity 0.24s, translate 0.4s cubic-bezier(0.22,1,0.36,1); }
.ct__menu.open { max-height: 380px; opacity: 1; pointer-events: auto; translate: 0 0; border-width: 1px; }
.ct__optie { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 18px; border: 0; background: none; color: rgba(255,255,255,0.65); font: inherit; font-size: 16px; text-align: left; cursor: pointer; transition: color 0.2s, background-color 0.2s; }
.ct__optie::before { content: ""; width: 9px; height: 9px; flex: none; background: currentColor; opacity: 0; transition: opacity 0.2s, rotate 0.4s;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M21.64 9.98C16.13 9.98 11.66 5.51 11.66 0H9.98C9.98 5.51 5.51 9.98 0 9.98V11.66C5.51 11.66 9.98 16.13 9.98 21.64H11.66C11.66 16.13 16.13 11.66 21.64 11.66V9.98Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.ct__optie.cursor { background: rgba(255,255,255,0.08); color: #fff; }
.ct__optie.cursor::before, .ct__optie[aria-selected="true"]::before { opacity: 1; color: #FFB441; rotate: 90deg; }
/* de kaart: wie je spreekt + het formulier */
.ct__kaart { position: relative; overflow: hidden; border-radius: 22px; border: 1px solid rgba(255,255,255,0.1); padding: clamp(24px, 3vw, 36px);
  background: linear-gradient(rgba(255,255,255,0.06), rgba(255,255,255,0.02)), rgba(9,9,11,0.55); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 40px 90px -40px rgba(0,0,0,0.9); }
@media (min-width: 900px) {
  .ct__grid.js .ct__kaart { flex: 1 1 0; max-width: 0; margin-left: 0; opacity: 0; pointer-events: none; padding-left: 0; padding-right: 0; border-width: 0;
    transition: max-width 0.75s cubic-bezier(0.22,1,0.36,1), margin 0.75s cubic-bezier(0.22,1,0.36,1), opacity 0.5s 0.15s, padding 0.75s cubic-bezier(0.22,1,0.36,1); }
  .ct__grid.js.gekozen .ct__kaart { max-width: 640px; margin-left: clamp(32px, 4vw, 64px); opacity: 1; pointer-events: auto; padding-left: clamp(24px, 3vw, 36px); padding-right: clamp(24px, 3vw, 36px); border-width: 1px; }
}
@media (max-width: 899px) { .ct__grid.js:not(.gekozen) .ct__kaart { display: none; } }
.ct__kaart.wissel .ct__wie { animation: ct-in 0.6s cubic-bezier(0.22,1,0.36,1) both; }
@keyframes ct-in { from { opacity: 0; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }
.ct__wie p { margin: 0; }
.ct__gezichten { display: flex; }
.ct__gezichten img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: 50% 15%; background: rgb(228,229,224); border: 3px solid #141416; }
.ct__gezichten img + img { margin-left: -14px; }
.ct__rol { margin-top: 18px !important; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #8FCFDF; }
.ct__namen { margin-top: 8px !important; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(20px, 2vw, 28px); line-height: 1.05; }
.ct__over { margin-top: 10px !important; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.68); max-width: 34em; }
.ct__mail { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px !important; }
.ct__kopieer { display: inline-flex; align-items: center; gap: 10px; padding: 7px 8px 7px 14px; border-radius: 99px; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.05); color: #fff; font: inherit; font-size: 13px; cursor: pointer; transition: border-color 0.25s; }
.ct__kopieer:hover { border-color: rgba(255,255,255,0.45); }
.ct__kopieer em { font-style: normal; padding: 4px 10px; border-radius: 99px; background: rgba(143,207,223,0.16); color: #8FCFDF; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase; }
/* het formulier op donker */
.ct__kaart .ap-form { margin-top: 24px; padding: 22px 0 0; border: 0; border-top: 1px solid rgba(255,255,255,0.1); border-radius: 0; background: none; box-shadow: none; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.ct__kaart .ap-form label { display: flex; flex-direction: column; gap: 6px; color: rgba(255,255,255,0.6); font-size: 12px; }
.ct__kaart .ap-form label:has(textarea), .ct__kaart .ap-form label:nth-of-type(4) { grid-column: 1 / -1; }
.ct__kaart .ap-form input, .ct__kaart .ap-form textarea { width: 100%; padding: 11px 13px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.15); background: rgba(255,255,255,0.05); color: #fff; font: inherit; font-size: 15px; }
.ct__kaart .ap-form textarea { min-height: 96px; resize: vertical; }
.ct__kaart .ap-form input:focus, .ct__kaart .ap-form textarea:focus { outline: none; border-color: #8FCFDF; box-shadow: 0 0 0 3px rgba(143,207,223,0.2); }
.ct__kaart .ap-form .ap-pil { justify-self: start; }
.ct__kaart .ap-form__status { grid-column: 1 / -1; margin: 0; font-size: 14px; color: #8FCFDF; }
.ct__kaart .ap-form__val { display: none; }
@media (max-width: 560px) { .ct__kaart .ap-form { grid-template-columns: 1fr; } .ct__vraag { white-space: normal; } }
@media (prefers-reduced-motion: reduce) { .ct__zij, .ct__vraag, .ct__kaart, .ct__menu { transition: none !important; } .ct__kaart.wissel .ct__wie { animation: none; } }
/* beginstand: de kaart telt niet mee (anders zakt de keuzeknop naar beneden); na de keuze schuift hij in */
@media (min-width: 900px) {
  .ct__grid.js .ct__kaart { max-width: none !important; transition: none !important; }
  .ct__grid.js:not(.gekozen) .ct__kaart { display: none; }
  .ct__grid.js.gekozen .ct__kaart { flex: 1 1 0; max-width: 640px !important; animation: ct-kaart 0.7s cubic-bezier(0.22,1,0.36,1) both; }
}
@keyframes ct-kaart { from { opacity: 0; translate: 40px 0; } to { opacity: 1; translate: 0 0; } }
@media (prefers-reduced-motion: reduce) { .ct__grid.js.gekozen .ct__kaart { animation: none; } }
/* beginstand: de kolom groeit mee met de grote kop, het menu blijft 30rem breed */
@media (min-width: 900px) {
  .ct__grid:not(.gekozen) .ct__zij { width: auto; max-width: none; }
  .ct__grid:not(.gekozen) .ct__kies { width: 30rem; max-width: 100%; }
}

/* ---------- headerknop: doet niet mee met het inschuiven (anders hangt hij bij herladen onder de pil), maar komt in beeld met een fade ---------- */
.hdr .btn--pill { transform: none !important; animation: hdr-draai 4.8s linear infinite, hdr-knop-in 0.8s ease 0.6s both; }
@keyframes hdr-knop-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hdr .btn--pill { animation: none; } }

/* =====================================================================
   HOME-PODIUM: MacBook met live CRM per klant, iPhone met vergrendelscherm-meldingen (wisselen samen, 8 s per klant)
   ===================================================================== */
@property --n { syntax: "<integer>"; inherits: false; initial-value: 0; }
.ap-mac .ap-scherm:has(.dc) { container-type: inline-size; display: block; text-align: left; background: #f5f5f7; }
.dc { position: absolute; inset: 0; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", var(--font-sans); color: #1d1d1f; letter-spacing: -0.01em; }
.dc p { margin: 0; }
.dc__klant { position: absolute; inset: 0; display: grid; grid-template-columns: 17% 1fr; opacity: 0; transition: opacity 0.6s ease; }
.dc__klant.actief { opacity: 1; }
.dc__zij { padding: 2.4cqw 1.6cqw; background: #fff; border-right: 0.12cqw solid #e8e8ed; }
.dc__logo { height: 5.4cqw; margin-bottom: 2.4cqw; display: flex; align-items: center; }
.dc__logo img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0.6cqw; }
.dc__nav { padding: 0.9cqw 1.1cqw; border-radius: 0.8cqw; font-size: 1.25cqw; color: #6e6e73; margin-top: 0.3cqw !important; }
.dc__nav.aan { background: color-mix(in srgb, var(--kl) 18%, #fff); color: #1d1d1f; font-weight: 650; box-shadow: inset 0.25cqw 0 0 var(--kl); }
.dc__hoofd { position: relative; padding: 2.2cqw 2.4cqw; overflow: hidden; }
.dc__kop { display: flex; justify-content: space-between; align-items: center; }
.dc__kop p { display: flex; align-items: baseline; gap: 1cqw; }
.dc__kop b { font-size: 2.4cqw; font-weight: 750; letter-spacing: -0.02em; }
.dc__kop p span { font-size: 1.3cqw; color: #6e6e73; }
.dc__kop em { display: inline-flex; align-items: center; gap: 0.6cqw; font-style: normal; font-size: 1.05cqw; font-weight: 700; padding: 0.4cqw 1cqw; border-radius: 99px; background: #E3EEF1; color: #3E7F94; }
.dc__kop em i { width: 0.8cqw; height: 0.8cqw; border-radius: 50%; background: #34c759; box-shadow: 0 0 0.8cqw #34c759; }
.dc__kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2cqw; margin-top: 1.8cqw; }
.dc__kpi { padding: 1.2cqw 1.4cqw; border-radius: 1.2cqw; background: #fff; border: 0.12cqw solid #e8e8ed; }
.dc__kpi span { display: block; font-size: 1cqw; color: #6e6e73; }
.dc__kpi b { display: block; margin-top: 0.3cqw; font-size: 2.5cqw; font-weight: 750; font-variant-numeric: tabular-nums; --n: var(--doel); counter-reset: n var(--n); }
.dc__kpi b::after { content: counter(n); }
.dc__kpi:last-child { background: var(--kl); border-color: transparent; }
.dc__kpi:last-child span, .dc__kpi:last-child b { color: var(--kl-ink); }
.dc__bord { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2cqw; margin-top: 1.8cqw; }
.dc__kol { padding: 1cqw; border-radius: 1.2cqw; background: #ececf0; min-height: 23cqw; }
.dc__kolkop { display: flex; justify-content: space-between; font-size: 1cqw; font-weight: 700; color: #6e6e73; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.8cqw !important; }
.dc__kolkop b { color: #1d1d1f; }
.dc__card { display: flex; align-items: center; gap: 0.8cqw; padding: 0.9cqw; margin-top: 0.7cqw; border-radius: 0.9cqw; background: #fff; box-shadow: 0 0.2cqw 0.6cqw rgba(0,0,0,0.06); font-size: 1.05cqw; }
.dc__card i { flex: none; display: grid; place-items: center; width: 2.4cqw; height: 2.4cqw; border-radius: 50%; font-style: normal; font-size: 0.85cqw; font-weight: 700; color: #fff; background: linear-gradient(160deg, #6fb1c4, #3E7F94); }
.dc__card span { flex: 1; min-width: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dc__card em { font-style: normal; font-size: 0.9cqw; font-weight: 700; padding: 0.2cqw 0.6cqw; border-radius: 99px; background: #E3EEF1; color: #3E7F94; }
.dc__card--won { box-shadow: 0 0 0 0.2cqw var(--kl), 0 0.6cqw 1.6cqw color-mix(in srgb, var(--kl) 40%, transparent); }
.dc__card--won em { background: var(--kl); color: var(--kl-ink); }
.dc__card--plek { visibility: hidden; }
/* de lead die van 'Reactie' naar 'Gesprek' vliegt (eindstand: in Gesprek) */
.dc__card--vlieg { position: absolute; width: calc((100% - 3.6cqw) / 4 - 2cqw); left: calc(50% + 0.6cqw + 1cqw); top: 9.9cqw; margin: 0; z-index: 2; box-shadow: 0 0 0 0.2cqw #3E7F94, 0 1cqw 2.4cqw rgba(0,0,0,0.18); }
.dc__toast { position: absolute; right: 2.4cqw; bottom: 2.2cqw; display: flex; align-items: center; gap: 1cqw; padding: 1cqw 1.6cqw 1cqw 1.2cqw; border-radius: 1.4cqw; background: #0d0d10; color: #fff; font-size: 1.1cqw; box-shadow: 0 1.2cqw 3cqw rgba(0,0,0,0.3); }
.dc__toast i { width: 2.2cqw; height: 2.2cqw; border-radius: 50%; background: #3E7F94 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 60% no-repeat; }
.dc__toast span { display: flex; flex-direction: column; } .dc__toast b { font-size: 1.2cqw; }
.dc__noot { position: absolute; right: 1.6cqw; bottom: 0.6cqw; font-size: 0.85cqw; color: #a1a1a6; z-index: 3; }
@media (prefers-reduced-motion: no-preference) {
  .dc__klant.actief .dc__kpi b { animation: dc-tel 1.6s cubic-bezier(0.22,1,0.36,1) 0.3s both; }
  .dc__klant.actief .dc__card--vlieg { animation: dc-vlieg 8s cubic-bezier(0.65,0,0.35,1) both; }
  .dc__klant.actief .dc__toast { animation: dc-toast 8s cubic-bezier(0.34,1.56,0.64,1) both; }
  .dc__klant.actief .dc__card--won { animation: dc-won 8s ease both; }
  .dc__klant.actief .dc__kol:nth-child(3) .dc__kolkop b::after { content: ""; }
}
@keyframes dc-tel { from { --n: 0; } to { --n: var(--doel); } }
@keyframes dc-vlieg { 0%, 28% { left: calc(25% + 0.3cqw + 1cqw); top: 5.6cqw; box-shadow: 0 0.2cqw 0.6cqw rgba(0,0,0,0.06); scale: 1; }
  34% { scale: 1.06; box-shadow: 0 0 0 0.2cqw #3E7F94, 0 2cqw 4cqw rgba(0,0,0,0.25); }
  46%, 100% { left: calc(50% + 0.6cqw + 1cqw); top: 9.9cqw; scale: 1; box-shadow: 0 0 0 0.2cqw #3E7F94, 0 1cqw 2.4cqw rgba(0,0,0,0.18); } }
@keyframes dc-toast { 0%, 48% { opacity: 0; translate: 0 3cqw; scale: 0.9; } 54%, 90% { opacity: 1; translate: 0 0; scale: 1; } 98%, 100% { opacity: 0; translate: 0 1cqw; } }
@keyframes dc-won { 0%, 62% { box-shadow: 0 0.2cqw 0.6cqw rgba(0,0,0,0.06); } 68% { box-shadow: 0 0 0 0.35cqw var(--kl), 0 0 3cqw var(--kl); } 76%, 100% { box-shadow: 0 0 0 0.2cqw var(--kl), 0 0.6cqw 1.6cqw color-mix(in srgb, var(--kl) 40%, transparent); } }

/* iPhone: vergrendelscherm met meldingen */
.ap-iphone .ap-scherm:has(.ls) { container-type: inline-size; display: block; background: #0b1418; }
.ls { position: absolute; inset: 0; color: #fff; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--font-sans); text-align: center; overflow: hidden;
  background: radial-gradient(90% 60% at 30% 20%, #2a6a7e 0%, transparent 70%), radial-gradient(80% 60% at 90% 90%, rgba(255,180,65,0.45), transparent 70%), linear-gradient(170deg, #10313b, #070b0d); }
.ls p { margin: 0; }
.ls__datum { margin-top: 20cqw !important; font-size: 5cqw; font-weight: 600; opacity: 0.85; }
.ls__tijd { font-size: 24cqw; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
.ls__stapel { position: absolute; left: 4.5cqw; right: 4.5cqw; bottom: 9cqw; }
.ls__set { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column-reverse; gap: 2.6cqw; opacity: 0; transition: opacity 0.5s; }
.ls__set.actief { opacity: 1; }
.ls__melding { padding: 3.4cqw 4cqw; border-radius: 6cqw; text-align: left; background: rgba(255,255,255,0.22); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); box-shadow: inset 0 0 0 0.3cqw rgba(255,255,255,0.12); }
.ls__app { display: flex; align-items: center; gap: 2cqw; font-size: 3.4cqw; font-weight: 600; opacity: 0.8; letter-spacing: 0.02em; }
.ls__app i { display: grid; place-items: center; width: 6cqw; height: 6cqw; border-radius: 1.6cqw; background: #040205; font-style: normal; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 3.6cqw; color: #F2F1E5; }
.ls__app span { margin-left: auto; font-weight: 500; }
.ls__titel { margin-top: 1.6cqw !important; font-size: 4.2cqw; font-weight: 700; }
.ls__tekst { margin-top: 0.6cqw !important; font-size: 3.8cqw; line-height: 1.3; opacity: 0.9; }
.ls__melding--nk { box-shadow: inset 0 0 0 0.4cqw var(--kl); }
@media (prefers-reduced-motion: no-preference) {
  .ls__set.actief .ls__melding { animation: ls-in 8s cubic-bezier(0.34,1.56,0.64,1) both; }
  .ls__set.actief .ls__melding--ng { animation-delay: 0.2s; animation-name: ls-in2; }
  .ls__set.actief .ls__melding--nk { animation-name: ls-in3; }
}
@keyframes ls-in  { 0%, 6%  { opacity: 0; translate: 0 -14cqw; scale: 0.9; } 12%, 94% { opacity: 1; translate: 0 0; scale: 1; } 100% { opacity: 0; } }
@keyframes ls-in2 { 0%, 50% { opacity: 0; translate: 0 -14cqw; scale: 0.9; } 56%, 94% { opacity: 1; translate: 0 0; scale: 1; } 100% { opacity: 0; } }
@keyframes ls-in3 { 0%, 68% { opacity: 0; translate: 0 -14cqw; scale: 0.9; } 74%, 94% { opacity: 1; translate: 0 0; scale: 1; } 100% { opacity: 0; } }
.dc__kpis, .dc__bord { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dc__kol, .dc__kpi, .dc__hoofd { min-width: 0; }
.dc__card--vlieg { --kolb: calc((100% - 3.6cqw) / 4); width: calc(var(--kolb) - 2cqw); left: calc(2 * (var(--kolb) + 1.2cqw) + 1cqw); }
@keyframes dc-vlieg { 0%, 28% { left: calc(1 * (var(--kolb) + 1.2cqw) + 1cqw); top: 5.6cqw; scale: 1; box-shadow: 0 0.2cqw 0.6cqw rgba(0,0,0,0.06); }
  34% { scale: 1.06; box-shadow: 0 0 0 0.2cqw #3E7F94, 0 2cqw 4cqw rgba(0,0,0,0.25); }
  46%, 100% { left: calc(2 * (var(--kolb) + 1.2cqw) + 1cqw); top: 9.9cqw; scale: 1; box-shadow: 0 0 0 0.2cqw #3E7F94, 0 1cqw 2.4cqw rgba(0,0,0,0.18); } }
.ls__app { white-space: nowrap; min-width: 0; } .ls__app { overflow: hidden; text-overflow: ellipsis; } .ls__app span { flex: none; padding-left: 2cqw; }

/* ---------- Vitesse in eigen huisstijl: geel-zwart, shirtstrepen, zwarte zijbalk ---------- */
.dc__klant--vitesse .dc__zij { background: #0b0b0b; border-right: 0; }
.dc__klant--vitesse .dc__logo { height: 9cqw; justify-content: center; margin-bottom: 2cqw; }
.dc__klant--vitesse .dc__nav { color: rgba(255,255,255,0.6); }
.dc__klant--vitesse .dc__nav.aan { background: #FFD200; color: #0b0b0b; box-shadow: none; }
.dc__klant--vitesse .dc__zij::after { content: ""; position: absolute; left: 0; bottom: 0; width: 17%; height: 12cqw;
  background: repeating-linear-gradient(90deg, #FFD200 0 1.6cqw, #0b0b0b 1.6cqw 3.2cqw); opacity: 0.9;
  -webkit-mask-image: linear-gradient(transparent, #000 70%); mask-image: linear-gradient(transparent, #000 70%); }
.dc__klant--vitesse .dc__hoofd { background: linear-gradient(180deg, #fffbe6 0%, #f5f5f7 32%); }
.dc__klant--vitesse .dc__hoofd::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 0.9cqw;
  background: repeating-linear-gradient(90deg, #FFD200 0 2.4cqw, #0b0b0b 2.4cqw 4.8cqw); }
.dc__klant--vitesse .dc__kpi:last-child { background: #0b0b0b; }
.dc__klant--vitesse .dc__kpi:last-child span { color: rgba(255,255,255,0.7); }
.dc__klant--vitesse .dc__kpi:last-child b { color: #FFD200; }
.dc__klant--vitesse .dc__card i { background: #0b0b0b; color: #FFD200; }
.dc__klant--vitesse .dc__card em { background: #FFF3B0; color: #0b0b0b; }
.dc__klant--vitesse .dc__kol { background: #efeee6; }
.dc__klant--vitesse .dc__card--won { box-shadow: 0 0 0 0.2cqw #FFD200, 0 0.6cqw 1.6cqw rgba(255,210,0,0.45); }
.dc__klant--vitesse .dc__card--won em { background: #FFD200; }
.dc__klant--vitesse .dc__toast { background: #0b0b0b; box-shadow: inset 0 0.3cqw 0 #FFD200, 0 1.2cqw 3cqw rgba(0,0,0,0.3); }
.dc__klant--vitesse .dc__toast i { background-color: #FFD200; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.dc__klant--vitesse .dc__card--vlieg { box-shadow: 0 0 0 0.2cqw #0b0b0b, 0 1cqw 2.4cqw rgba(0,0,0,0.18); }
/* iPhone: vergrendelscherm in Vitesse-geel/zwart zolang Vitesse in beeld is */
.ls:has(.ls__set--vitesse.actief) { background: radial-gradient(90% 55% at 30% 18%, rgba(255,210,0,0.55), transparent 70%), repeating-linear-gradient(90deg, rgba(255,210,0,0.10) 0 9cqw, transparent 9cqw 18cqw), linear-gradient(170deg, #1a1700, #050505); }
.ls { transition: background 0.6s; }

/* ---------- HeadFirst in eigen huisstijl: navy balk, rood-roze, pruimpaars, lila verloop, pilvormen ---------- */
.dc__klant--headfirst .dc__zij { background: #fff; }
.dc__klant--headfirst .dc__nav { color: #4a1046; }
.dc__klant--headfirst .dc__nav.aan { background: #E8365D; color: #fff; border-radius: 99px; box-shadow: none; }
.dc__klant--headfirst .dc__hoofd { padding-top: 4cqw; background: radial-gradient(60% 45% at 85% 0%, rgba(232,54,93,0.22), transparent 70%), radial-gradient(55% 45% at 30% 0%, rgba(200,182,232,0.45), transparent 70%), #fbf8fc; }
.dc__klant--headfirst .dc__hoofd::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1.8cqw; background: #16133a; }
.dc__klant--headfirst .dc__kop b, .dc__klant--headfirst .dc__kpi b, .dc__klant--headfirst .dc__card span, .dc__klant--headfirst .dc__kolkop b { color: #4a1046; }
.dc__klant--headfirst .dc__kpi { border-color: #eadff0; border-radius: 1.8cqw; }
.dc__klant--headfirst .dc__kpi:last-child { background: #E8365D; }
.dc__klant--headfirst .dc__kpi:last-child b, .dc__klant--headfirst .dc__kpi:last-child span { color: #fff; }
.dc__klant--headfirst .dc__kol { background: #f1e9f4; }
.dc__klant--headfirst .dc__card { border-radius: 99px; }
.dc__klant--headfirst .dc__card i { background: linear-gradient(150deg, #E8365D, #a8205e); }
.dc__klant--headfirst .dc__card em { background: #fde3ea; color: #c4204a; }
.dc__klant--headfirst .dc__card--vlieg { box-shadow: 0 0 0 0.2cqw #E8365D, 0 1cqw 2.4cqw rgba(232,54,93,0.25); }
.dc__klant--headfirst .dc__card--won { box-shadow: 0 0 0 0.2cqw #4a1046, 0 0.6cqw 1.6cqw rgba(74,16,70,0.3); }
.dc__klant--headfirst .dc__card--won em { background: #4a1046; color: #fff; }
.dc__klant--headfirst .dc__toast { background: #16133a; border-radius: 99px; }
.dc__klant--headfirst .dc__toast i { background-color: #E8365D; }
.dc__klant--headfirst .dc__kop em { background: #fde3ea; color: #c4204a; }

/* ---------- No Ordinary Offices in eigen huisstijl: zwart, wit, messing, ketting-icoon ---------- */
.dc__klant--noo .dc__zij { background: #121212; border-right: 0; }
.dc__klant--noo .dc__logo { height: 7cqw; }
.dc__klant--noo .dc__nav { color: rgba(255,255,255,0.55); }
.dc__klant--noo .dc__nav.aan { background: transparent; color: #fff; box-shadow: inset 0.25cqw 0 0 #C9A46A; border-radius: 0; }
.dc__klant--noo .dc__zij::after { content: ""; position: absolute; left: calc(17% / 2 - 1.6cqw); bottom: 2.4cqw; width: 3.2cqw; height: 8.4cqw; opacity: 0.9;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 52' fill='none' stroke='%23C9A46A' stroke-width='3.2'%3E%3Ccircle cx='10' cy='9' r='6.5'/%3E%3Ccircle cx='10' cy='26' r='6.5'/%3E%3Ccircle cx='10' cy='43' r='6.5'/%3E%3Cpath d='M10 15.5v4M10 32.5v4'/%3E%3C/svg%3E") center / contain no-repeat; }
.dc__klant--noo .dc__hoofd { background: linear-gradient(180deg, #f4efe7 0%, #f5f5f7 40%); }
.dc__klant--noo .dc__hoofd::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 0.5cqw; background: linear-gradient(90deg, #8a6a2f, #C9A46A, #e6cf9c, #C9A46A); }
.dc__klant--noo .dc__kop b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: 2cqw; letter-spacing: 0; }
.dc__klant--noo .dc__kpi { border-radius: 0.4cqw; }
.dc__klant--noo .dc__kpi:last-child { background: #121212; }
.dc__klant--noo .dc__kpi:last-child span { color: rgba(255,255,255,0.65); }
.dc__klant--noo .dc__kpi:last-child b { color: #C9A46A; }
.dc__klant--noo .dc__kol { background: #ebe6de; border-radius: 0.4cqw; }
.dc__klant--noo .dc__card { border-radius: 0.3cqw; }
.dc__klant--noo .dc__card i { background: #121212; color: #fff; border-radius: 0.3cqw; }
.dc__klant--noo .dc__card em { background: #f1e7d2; color: #6e5320; }
.dc__klant--noo .dc__card--vlieg { box-shadow: 0 0 0 0.2cqw #121212, 0 1cqw 2.4cqw rgba(0,0,0,0.2); }
.dc__klant--noo .dc__card--won { box-shadow: 0 0 0 0.2cqw #C9A46A, 0 0.6cqw 1.6cqw rgba(201,164,106,0.45); }
.dc__klant--noo .dc__card--won em { background: #C9A46A; color: #121212; }
.dc__klant--noo .dc__toast { background: #121212; border-radius: 0.4cqw; box-shadow: inset 0 0.3cqw 0 #C9A46A, 0 1.2cqw 3cqw rgba(0,0,0,0.3); }
.dc__klant--noo .dc__toast i { background-color: #C9A46A; }

/* iPhone-achtergronden per klant */
.ls:has(.ls__set--headfirst.actief) { background: radial-gradient(80% 50% at 80% 15%, rgba(232,54,93,0.75), transparent 70%), radial-gradient(70% 50% at 15% 35%, rgba(200,182,232,0.6), transparent 70%), linear-gradient(170deg, #2a0f3a, #16133a); }
.ls:has(.ls__set--noo.actief) { background: radial-gradient(70% 45% at 70% 20%, rgba(201,164,106,0.55), transparent 70%), repeating-linear-gradient(0deg, rgba(201,164,106,0.07) 0 0.6cqw, transparent 0.6cqw 3cqw), linear-gradient(170deg, #2b2016, #0b0b0b); }
/* contact: onderwerp 'proces laten doorrekenen' verwijst naar het aanvraagportaal in plaats van het formulier */
.ct__portaal { display: none; margin-top: 22px; gap: 10px; }
.ct__kaart.is-portaal .ct__portaal { display: inline-flex; }
.ct__kaart.is-portaal .ap-form { display: none; }

/* ---------- interne links: 'meer over' onder secties, en een band met de andere diensten ---------- */
.ap-meer { display: inline-flex; margin-top: 36px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #040205; text-decoration: none; border-bottom: 2px solid #8FCFDF; padding-bottom: 4px; transition: border-color 0.25s; }
.ap-meer:hover { border-color: #040205; }
.ap-meer--licht { margin-top: 18px; color: #fff; }
.ap-meer--licht:hover { border-color: #fff; }
.ap-dienstband__kop { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #6e6e73; margin-bottom: 18px; }
.ap-dienstband__rij { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ap-dienstband__item { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 26px 64px 26px 28px; border-radius: 20px; background: #f5f5f7; color: #040205; text-decoration: none; transition: background-color 0.3s, translate 0.4s cubic-bezier(0.22,1,0.36,1); }
.ap-dienstband__item b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(16px, 1.6vw, 22px); }
.ap-dienstband__item span { font-size: 15px; color: #6e6e73; }
.ap-dienstband__item i { position: absolute; right: 26px; top: 50%; translate: 0 -50%; font-style: normal; font-size: 22px; transition: translate 0.3s; }
.ap-dienstband__item:hover { background: #E3EEF1; translate: 0 -3px; }
.ap-dienstband__item:hover i { translate: 6px -50%; }
@media (max-width: 700px) { .ap-dienstband__rij { grid-template-columns: 1fr; } }
.ap-404 { max-width: 760px; text-align: center; margin: 0 auto; }
.ap-404__code { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(90px, 16vw, 220px); line-height: 0.9; background: linear-gradient(150deg, #8FCFDF, #3E7F94 60%, #FFB441); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ap-404__kop { margin-top: 18px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(20px, 2.4vw, 32px); line-height: 1.1; }
.ap-404__kop span { display: block; margin-top: 8px; font-size: 0.5em; letter-spacing: 0.12em; color: rgba(255,255,255,0.5); }
.ap-404__tekst { margin-top: 18px; color: rgba(255,255,255,0.7); }
.ap-404__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }

/* =====================================================================
   CONTENT STUDIO in de opbouw van banny.io
   ===================================================================== */
.ap-cs-hero__knoppen { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 30px; }
.ap-cs-hero__link { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #fff; text-decoration: none; border-bottom: 2px solid #8FCFDF; padding-bottom: 4px; }
.ap-cs-hero__pijlers { list-style: none; margin: 34px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ap-cs-hero__pijlers li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 8px; border-radius: 99px; background: rgba(255,255,255,0.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12); color: #fff; font-size: 14px; font-weight: 500; }
.ap-cs-hero__pijlers i { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(143,207,223,0.2); color: #8FCFDF; }
.ap-cs-hero__pijlers svg { width: 13px; height: 13px; }
.ap-cs-hero .pk__titel .ap-mark { color: #040205; }
/* kanalenband op het donkere veld, zoals de logoband bij banny */
.ap-cs-kanalen { position: relative; z-index: 1; padding: 0 0 72px; text-align: center; color: #fff; }
.ap-cs-kanalen > p { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 18px; }
.ap-cs-kanalen__band { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.ap-cs-kanalen ul { list-style: none; margin: 0; padding: 0; display: flex; width: max-content; animation: p2-loop 30s linear infinite; }
.ap-cs-kanalen li { display: inline-flex; align-items: center; gap: 36px; padding-right: 36px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(18px, 2vw, 28px); text-transform: uppercase; color: rgba(255,255,255,0.88); white-space: nowrap; }
.ap-cs-kanalen li::after { content: ""; width: 12px; height: 12px; background: #8FCFDF;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.1 5.9 11.4 12 12-6.1.6-11.4 5.9-12 12-.6-6.1-5.9-11.4-12-12C6.1 11.4 11.4 6.1 12 0z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.1 5.9 11.4 12 12-6.1.6-11.4 5.9-12 12-.6-6.1-5.9-11.4-12-12C6.1 11.4 11.4 6.1 12 0z'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (prefers-reduced-motion: reduce) { .ap-cs-kanalen ul { animation: none; flex-wrap: wrap; justify-content: center; width: auto; } .ap-cs-kanalen li[aria-hidden] { display: none; } }
/* drie kolommen: bureau · studio · zelf doen */
.ap-cs3 { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-cs3__rij { width: 100%; display: grid; grid-template-columns: 1fr 1.12fr 1fr; gap: 18px; align-items: center; margin-top: 56px; text-align: left; }
.ap-cs3__kol { position: relative; padding: 30px 28px; border-radius: 24px; background: #f5f5f7; }
.ap-cs3__kol--wij { padding: 44px 34px; color: #fff; overflow: hidden; background: linear-gradient(155deg, #0c242c 0%, #174a58 50%, #3E7F94 100%); box-shadow: 0 34px 70px -30px rgba(23,74,88,0.65); }
.ap-cs3__kol--wij::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 40% at 90% 0%, rgba(143,207,223,0.4), transparent 70%), radial-gradient(50% 35% at 0% 100%, rgba(255,180,65,0.16), transparent 70%); }
.ap-cs3__kol--wij > * { position: relative; }
.ap-cs3__ster { position: absolute !important; top: 22px; right: 22px; width: 22px; height: 22px; fill: #fff; }
.ap-cs3__naam { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(15px, 1.4vw, 20px); padding-bottom: 16px; border-bottom: 2px solid currentColor; }
.ap-cs3__kol:not(.ap-cs3__kol--wij) .ap-cs3__naam { color: #6e6e73; }
.ap-cs3__kol--wij .ap-cs3__naam { font-size: clamp(18px, 1.8vw, 26px); color: #fff; border-color: rgba(143,207,223,0.5); }
.ap-cs3__kol ul { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 14px; }
.ap-cs3__kol li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.4; }
.ap-cs3__kol li i { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; margin-top: -1px; }
.ap-cs3__kol li svg { width: 12px; height: 12px; }
.ap-cs3__kol li.plus i { background: #E3EEF1; color: #3E7F94; }
.ap-cs3__kol li.min { color: #6e6e73; }
.ap-cs3__kol li.min i { background: #ececf0; color: #8e8e93; }
.ap-cs3__kol--wij li { font-size: 16px; font-weight: 500; }
.ap-cs3__kol--wij li.plus i { background: rgba(143,207,223,0.2); color: #8FCFDF; }
.ap-cs3__kol .ap-pil { margin-top: 26px; gap: 10px; }
@media (prefers-reduced-motion: no-preference) {
  .ap-cs3__rij .ap-cs3__kol { opacity: 0; translate: 0 18px; transition: opacity 0.7s, translate 0.7s cubic-bezier(0.22,1,0.36,1); }
  .ap-cs3__rij .ap-cs3__kol--wij { transition-delay: 0.15s; } .ap-cs3__rij .ap-cs3__kol:last-child { transition-delay: 0.3s; }
  .ap-cs3__rij.is-zichtbaar .ap-cs3__kol { opacity: 1; translate: 0 0; }
}
@media (max-width: 960px) { .ap-cs3__rij { grid-template-columns: 1fr; } .ap-cs3__kol--wij { order: -1; } }
/* cijfers */
.ap-cs-cijfers { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ap-cs-cijfers__rij { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; border-top: 1px solid #d2d2d7; }
.ap-cs-cijfer { padding: 34px 20px 10px; }
.ap-cs-cijfer + .ap-cs-cijfer { border-left: 1px solid #d2d2d7; }
.ap-cs-cijfer b { display: block; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(64px, 8vw, 120px); line-height: 0.9; background: linear-gradient(150deg, #040205 30%, #3E7F94); -webkit-background-clip: text; background-clip: text; color: transparent; --n: var(--doel); counter-reset: n var(--n); }
.ap-cs-cijfer b::after { content: counter(n); }
.ap-cs-cijfer p { margin-top: 14px; font-size: 15px; color: #6e6e73; }
.ap-cs-cijfer strong { display: block; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: 13px; letter-spacing: 0.14em; color: #040205; margin-bottom: 4px; }
@media (prefers-reduced-motion: no-preference) { .ap-cs-cijfers__rij.is-zichtbaar .ap-cs-cijfer b { animation: dc-tel 1.4s cubic-bezier(0.22,1,0.36,1) both; } }
@media (max-width: 700px) { .ap-cs-cijfers__rij { grid-template-columns: 1fr; } .ap-cs-cijfer + .ap-cs-cijfer { border-left: 0; border-top: 1px solid #d2d2d7; } }
/* voor wie */
.ap-cs-wie { display: flex; flex-direction: column; align-items: center; }
.ap-cs-wie__rij { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 48px; }
.ap-cs-wie__kaart { position: relative; overflow: hidden; min-height: 260px; padding: 34px; border-radius: 24px; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; }
.ap-cs-wie__kaart--1 { background: radial-gradient(70% 70% at 90% 0%, rgba(143,207,223,0.45), transparent 70%), linear-gradient(150deg, #040205, #1d3a44); }
.ap-cs-wie__kaart--2 { background: radial-gradient(70% 70% at 90% 0%, rgba(255,213,144,0.55), transparent 70%), linear-gradient(150deg, #2b1a05, #c97a17); }
.ap-cs-wie__nr { position: absolute; top: 30px; left: 34px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.2em; color: rgba(255,255,255,0.6); }
.ap-cs-wie__kaart h3 { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(20px, 2.2vw, 30px); line-height: 1.02; }
.ap-cs-wie__kaart p:last-child { margin-top: 12px; max-width: 30em; font-size: 16px; line-height: 1.5; color: rgba(255,255,255,0.8); }
@media (max-width: 760px) { .ap-cs-wie__rij { grid-template-columns: 1fr; } }
/* kennismaken */
.ap-cs-km { display: flex; flex-direction: column; align-items: center; }
.ap-cs-km__rij { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 48px; }
.ap-cs-km__kaart { padding: 34px; border-radius: 24px; background: #f5f5f7; display: flex; flex-direction: column; align-items: flex-start; }
.ap-cs-km__kaart img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: 50% 15%; background: rgb(228,229,224); }
.ap-cs-km__kaart h3 { margin-top: 20px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(18px, 1.8vw, 24px); }
.ap-cs-km__kaart p { margin-top: 10px; font-size: 16px; line-height: 1.5; color: #6e6e73; }
.ap-cs-km__kaart .ap-pil { margin-top: auto; gap: 10px; }
.ap-cs-km__kaart p + .ap-pil { margin-top: 26px; }
@media (max-width: 760px) { .ap-cs-km__rij { grid-template-columns: 1fr; } }
.ap-cs-km, .ap-cs-wie { text-align: center; } .ap-cs-km__rij, .ap-cs-wie__rij { text-align: left; }

/* =====================================================================
   HOME V2: intro · outline-marquee · stapelende dienstkaarten · werkwijze
   ===================================================================== */
.hv-intro { display: flex; flex-direction: column; align-items: center; text-align: center; padding-bottom: 40px; }
.hv-kicker { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: #6e6e73; }
.hv-kop { margin-top: 20px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(38px, 6.6vw, 104px); line-height: 0.95; letter-spacing: -0.015em; max-width: 12em; }
.hv-lead { margin-top: 30px; max-width: 36em; font-size: clamp(17px, 1.4vw, 21px); line-height: 1.55; color: #3a3a3c; }
/* werkwijze: drie stappen met een lijn die zichzelf tekent */
.hv-werk { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: clamp(96px, 10vw, 150px); }
.hv-werk__rij { position: relative; list-style: none; margin: 64px 0 40px; padding: 0; width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); text-align: left; }
.hv-werk__rij::before { content: ""; position: absolute; left: 0; right: 0; top: 27px; height: 2px; background: linear-gradient(90deg, #3E7F94, #8FCFDF, #FFB441); transform-origin: left; transform: scaleX(1); }
.hv-werk__rij li { position: relative; }
.hv-werk__nr { position: relative; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #040205; color: #fff; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 14px; box-shadow: 0 0 0 8px #fff; }
.hv-werk__rij b { display: block; margin-top: 22px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(16px, 1.5vw, 21px); }
.hv-werk__rij p { margin-top: 10px; font-size: 15.5px; line-height: 1.55; color: #6e6e73; }
@media (prefers-reduced-motion: no-preference) {
  .hv-werk__rij::before { transform: scaleX(0); transition: transform 1.6s cubic-bezier(0.65,0,0.35,1) 0.2s; }
  .hv-werk__rij.is-zichtbaar::before { transform: scaleX(1); }
  .hv-werk__rij li { opacity: 0; translate: 0 16px; transition: opacity 0.6s, translate 0.6s cubic-bezier(0.22,1,0.36,1); }
  .hv-werk__rij.is-zichtbaar li { opacity: 1; translate: 0 0; }
  .hv-werk__rij li:nth-child(2) { transition-delay: 0.55s; } .hv-werk__rij li:nth-child(3) { transition-delay: 1.1s; }
}
@media (max-width: 800px) { .hv-werk__rij { grid-template-columns: 1fr; } .hv-werk__rij::before { display: none; } }

/* alle oude ap-h2-koppen in de nieuwe typografie, zodat de site één stijl heeft */
.ap .ap-h2 { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(26px, 3.4vw, 50px); line-height: 1.02; letter-spacing: -0.01em; }
.hv-werk .ap-pil { gap: 10px; }

.hv2__label { display: flex; align-items: center; gap: 12px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,0.65); }
.hv2__label span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.4); color: #fff; letter-spacing: 0.04em; }
/* =====================================================================
   HOME v2: diensten-podium, vastgepind bij scrollen met overgangen
   ===================================================================== */
.hv3 { position: relative; height: calc(3 * 100vh + 10vh); }
.hv3__pin { position: sticky; top: 0; height: 100vh; padding: 88px clamp(10px, 1.6vw, 22px) 14px; }
.hv3__vlak { position: relative; height: 100%; border-radius: 34px; overflow: hidden; color: #fff; background: #040205; }
.hv3__bg { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; }
.hv3__bg.is-actief { opacity: 1; }
.hv3__bg--lead { background: radial-gradient(45% 50% at 85% 10%, rgba(143,207,223,0.30), transparent 70%), linear-gradient(160deg, #040205 0%, #0c242c 55%, #174a58 100%); }
.hv3__bg--ads { background: radial-gradient(45% 50% at 85% 10%, rgba(0,178,255,0.30), transparent 70%), radial-gradient(40% 35% at 0% 100%, rgba(255,180,65,0.14), transparent 70%), linear-gradient(160deg, #040205 0%, #071a3d 55%, #0b3a8a 100%); }
.hv3__bg--studio { background: radial-gradient(45% 50% at 85% 10%, rgba(238,39,80,0.38), transparent 70%), radial-gradient(40% 40% at 0% 100%, rgba(203,179,227,0.16), transparent 70%), linear-gradient(160deg, #040205 0%, #2a0716 55%, #7a0f33 100%); }
.hv3__grid { position: relative; height: 100%; display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); gap: clamp(20px, 3vw, 48px); padding: clamp(24px, 3.4vw, 52px); }
.hv3__links { position: relative; display: flex; flex-direction: column; min-width: 0; }
/* tabs met voortgangsbalk */
.hv3__tabs { display: grid; gap: 6px; }
.hv3__tab { --p: 0; position: relative; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 10px; padding: 10px 14px 12px; border: 0; border-radius: 14px; background: transparent; color: rgba(255,255,255,0.5); text-align: left; cursor: pointer;
  font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; transition: color 0.3s, background-color 0.3s; }
.hv3__tab span { font-size: 10px; letter-spacing: 0.06em; opacity: 0.7; }
.hv3__tab:hover { color: rgba(255,255,255,0.85); }
.hv3__tab.is-actief { color: #fff; background: rgba(255,255,255,0.07); }
.hv3__tab i { position: absolute; left: 14px; right: 14px; bottom: 5px; height: 2px; border-radius: 2px; background: rgba(255,255,255,0.12); overflow: hidden; }
.hv3__tab b { display: block; height: 100%; width: calc(var(--p) * 100%); background: linear-gradient(90deg, #8FCFDF, #FFB441); }
/* teksten: wisselen met schuif + blur */
.hv3__teksten { position: relative; flex: 1; margin-top: clamp(16px, 3vh, 36px); container-type: inline-size; }
.hv3__tekst { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; opacity: 0; translate: 0 50px; filter: blur(8px); pointer-events: none;
  transition: opacity 0.6s ease, translate 0.8s cubic-bezier(0.22,1,0.36,1), filter 0.6s ease; }
.hv3__tekst.is-voorbij { translate: 0 -50px; }
.hv3__tekst.is-actief { opacity: 1; translate: 0 0; filter: blur(0); pointer-events: auto; transition-delay: 0.15s; }
.hv3__tekst .hv2__label { display: flex; }
.hv3__tekst h3 { margin-top: 14px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: min(82px, 11.4cqw); line-height: 0.94; letter-spacing: -0.015em; white-space: nowrap; }
.hv3__tekst .hv2__zin { margin-top: 16px; font-size: clamp(15px, 1.2vw, 17.5px); line-height: 1.55; color: rgba(255,255,255,0.78); }
.hv3__tekst ul { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 9px; }
.hv3__tekst li { display: flex; align-items: center; gap: 11px; font-size: 14.5px; font-weight: 500; }
.hv3__tekst li i { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.14); }
.hv3__tekst li svg { width: 12px; height: 12px; }
.hv3__tekst .ap-pil { margin-top: 22px; align-self: flex-start; gap: 10px; }
/* podium: elementen wisselen met diepte */
.hv3__podium { position: relative; min-width: 0; }
.hv3__el { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; translate: 0 80px; scale: 0.92; filter: blur(12px); pointer-events: none;
  transition: opacity 0.7s ease, translate 1s cubic-bezier(0.22,1,0.36,1), scale 1s cubic-bezier(0.22,1,0.36,1), filter 0.7s ease; }
.hv3__el.is-voorbij { translate: 0 -60px; scale: 1.04; }
.hv3__el.is-actief { opacity: 1; translate: 0 0; scale: 1; filter: blur(0); pointer-events: auto; transition-delay: 0.1s; }
.hv3__el.hv2-el--lead .ap-builders__dia { width: 100%; height: 100%; margin: 0; }
.hv3__el.hv2-el--lead .ap-dia__duo { width: 86%; }
.hv3__el.hv2-el--lead .ap-dia__beeld--duo { bottom: 12%; }
.hv3__el.hv2-el--ads { display: grid; grid-template-columns: 1fr 1fr; align-content: center; gap: 14px 16px; }
.hv3__el.hv2-el--ads .ap-mg__label { font-size: clamp(14px, 1.3vw, 19px); }
.hv3__el.hv2-el--ads .ap-mg__label span { display: none; }
.hv3__el.hv2-el--ads .ap-mg__toneel { height: clamp(300px, 46vh, 400px); margin-top: 12px; }
.hv3__el.hv2-el--ads .ap-mg__budget { grid-column: 1 / -1; margin-top: 8px; }
.hv3__el.hv2-el--studio { display: flex; align-items: center; justify-content: center; }
.hv3__el.hv2-el--studio .ap-st__mac { width: 100%; }
.hv3__el.hv2-el--studio .ap-fm__kit { padding: 16px; }
.hv3__el.hv2-el--studio .ap-fm__kit-rij { font-size: 12px; }
@media (prefers-reduced-motion: reduce) { .hv3__tekst, .hv3__el, .hv3__bg { transition: none; } }
/* mobiel: geen vastpinnen, wel een klikbare tab-wissel */
@media (max-width: 899px) {
  .hv3 { height: auto; }
  .hv3__pin { position: relative; height: auto; padding: 0 12px; }
  .hv3__grid { grid-template-columns: 1fr; height: auto; }
  .hv3__tabs { grid-auto-flow: column; overflow-x: auto; }
  .hv3__teksten { min-height: 380px; }
  .hv3__podium { min-height: 460px; }
  .hv3__el.hv2-el--ads { grid-template-columns: 1fr; overflow: auto; }
  .hv3__el.hv2-el--ads .ap-mg__kant--google { display: none; }
  .hv3__el.hv2-el--studio { grid-template-columns: 1fr; } .hv3__el.hv2-el--studio .ap-fm__kit { display: none; }
}
.hv3__tekst h3 { font-size: min(76px, 7.6cqw); }

/* ---------- paginakop met foto en een fade in de blauwe vloeistofkleuren (zoals builders), eerst op leadgeneratie ---------- */
.sec--paginakop.pk-foto { position: relative; max-width: none; min-height: 100vh; min-height: 100svh; margin: 0; padding: 140px clamp(22px, 6vw, 96px) 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow: hidden; isolation: isolate; }
.pk-foto__beeld { position: absolute; inset: 0; z-index: -2; background: url("assets/img/hero-leadgeneratie.webp") center 40% / cover no-repeat; filter: saturate(0.8) contrast(1.05); }
.pk-foto::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60% 55% at 15% 25%, rgba(62,127,148,0.55), transparent 70%),
    radial-gradient(55% 50% at 85% 70%, rgba(143,207,223,0.30), transparent 70%),
    radial-gradient(40% 35% at 90% 15%, rgba(255,180,65,0.16), transparent 70%),
    linear-gradient(180deg, rgba(4,2,5,0.55) 0%, rgba(4,2,5,0.35) 35%, rgba(12,36,44,0.55) 70%, #040205 100%); }
.pk-foto .pk__kicker { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #8FCFDF; }
.pk-foto .pk__titel { margin-top: 18px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(34px, 5.6vw, 84px); line-height: 0.96; letter-spacing: -0.015em; max-width: 14em; color: #fff; }
.pk-foto .pk__sub { margin: 26px auto 0; max-width: 34em; color: rgba(255,255,255,0.82); }
.pk-foto__knop { margin-top: 34px; gap: 10px; }
@media (prefers-reduced-motion: no-preference) {
  .pk-foto__beeld { animation: pk-zoom 22s ease-in-out infinite alternate; }
  .pk-foto::before { animation: pk-gloed 14s ease-in-out infinite alternate; }
}
@keyframes pk-zoom { from { scale: 1.02; translate: 0 0; } to { scale: 1.12; translate: -1.5% -1%; } }
@keyframes pk-gloed { from { opacity: 0.9; } to { opacity: 1; filter: hue-rotate(-8deg); } }

/* ---------- werkcase (zoals banny.io/werk): vaste infokolom links, groot raster met echte ads rechts ---------- */
.ws .hv-kicker { margin-bottom: 18px; }
.ws__case { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: clamp(22px, 3vw, 40px); margin-top: 64px; align-items: start; }
.ws__info { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 10px; }
.ws__klant { display: flex; align-items: center; gap: 16px; padding-bottom: 18px; margin-bottom: 8px; border-bottom: 1px solid rgba(4,2,5,0.1); }
.ws__klant img { width: 54px; height: auto; flex: none; }
.ws__klant p { font-size: 15px; color: #6e6e73; line-height: 1.35; }
.ws__klant b { display: block; font-size: 19px; color: #040205; font-weight: 600; }
.ws__kaart { background: #fff; border-radius: 18px; padding: 18px 20px; box-shadow: 0 1px 0 rgba(4,2,5,0.04), 0 8px 24px rgba(4,2,5,0.05); }
.ws__kaart h3, .ws__kaart summary { font-size: 13px; font-weight: 600; color: #8e8e93; letter-spacing: 0.02em; }
.ws__kaart p { margin-top: 10px; font-size: 15px; line-height: 1.5; color: #1d1d1f; }
.ws__kaart summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.ws__kaart summary::-webkit-details-marker { display: none; }
.ws__kaart summary::after { content: "+"; font-size: 22px; font-weight: 400; color: #3E7F94; line-height: 1; transition: rotate .3s; }
.ws__kaart[open] summary::after { rotate: 45deg; }
.ws__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.ws__chips li { font-size: 13px; padding: 6px 12px; border-radius: 999px; background: #F2F1E5; color: #1d1d1f; }
.ws__wie { margin-top: 12px; display: grid; gap: 8px; }
.ws__wie li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: #3a3a3c; padding-bottom: 8px; border-bottom: 1px dashed rgba(4,2,5,0.1); }
.ws__wie li:last-child { border-bottom: 0; padding-bottom: 0; }
.ws__wie b { color: #040205; font-weight: 600; }
.ws__label { margin-top: 6px; font-size: 12px; color: #8e8e93; display: flex; align-items: center; gap: 8px; }
.ws__label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #FFB441; }
.ws__raster { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ws__beeld { margin: 0; border-radius: 22px; overflow: hidden; background: #e9e8df; }
.ws__beeld--breed { grid-column: 1 / -1; }
.ws__beeld img { display: block; width: 100%; height: auto; transition: scale .8s cubic-bezier(.2,.7,.2,1); }
.ws__beeld:hover img { scale: 1.025; }
.ws__tussen { grid-column: 1 / -1; padding: clamp(48px, 7vw, 100px) 0 clamp(40px, 6vw, 80px) clamp(0px, 4vw, 60px); font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; text-transform: uppercase; font-size: clamp(28px, 3.6vw, 54px); line-height: 1; letter-spacing: -0.01em; }
@media (prefers-reduced-motion: no-preference) {
  .ws__beeld[data-v2] { opacity: 0; translate: 0 40px; transition: opacity .9s ease, translate .9s cubic-bezier(.2,.7,.2,1); }
  .ws__beeld[data-v2].is-zichtbaar { opacity: 1; translate: 0 0; }
}
@media (max-width: 899px) {
  .ws__case { grid-template-columns: 1fr; }
  .ws__info { position: static; }
  .ws__raster { gap: 8px; }
  .ws__beeld { border-radius: 16px; }
}

/* formaten en merkkit tonen de Vitesse-campagne in plaats van abstracte vlakken */
.ap-fm__ontwerp--foto { padding: 0; background: #0b0b0b !important; }
.ap-fm__ontwerp--foto::before, .ap-fm__ontwerp--foto::after { display: none !important; }
.ap-fm__ontwerp--foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-fm__aa--serif { font-family: "Didot", "Bodoni 72", Georgia, serif !important; font-weight: 500 !important; letter-spacing: 0 !important; }
.ap-fm__logo img { display: block; height: 26px; width: auto; }
.ws > .hv-kicker, .ws > .ap-k4__kop, .ws > .ap-k4__sub { text-align: center; margin-left: auto; margin-right: auto; }
.ws ul { list-style: none; padding: 0; margin-left: 0; }
.ws ul li::before, .ws ul li::after { content: none !important; display: none !important; }

/* werkcases: logo-tabs om tussen klanten te wisselen */
.ws__tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 44px; }
.ws__tab { display: inline-flex; align-items: center; justify-content: center; height: 52px; min-width: 120px; padding: 0 22px; border-radius: 999px; border: 1px solid rgba(4,2,5,0.12); background: #fff; font: 600 14px/1 var(--font-sans); color: #3a3a3c; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.ws__tab img { height: 24px; width: auto; max-width: 120px; object-fit: contain; }
.ws__tab:not([aria-selected="true"]) img { opacity: 0.55; filter: grayscale(1); transition: opacity .25s, filter .25s; }
.ws__tab:hover img { opacity: 1; filter: none; }
.ws__klant img { width: auto !important; max-width: 120px; max-height: 54px; }
.ws__tab:hover { border-color: rgba(4,2,5,0.3); }
.ws__tab[aria-selected="true"] { border-color: #040205; box-shadow: 0 0 0 1px #040205, 0 8px 20px rgba(4,2,5,0.12); }
.ws__tabs + .ws__case { margin-top: 40px; }
.ws__case[hidden] { display: none; }

/* ---------- studio-mockup: volledig ingerichte studio voor Vitesse, met formaten, feedback en download ---------- */
.st2 { grid-template-columns: 19% 1fr; }
.st2__zij { padding: 2.4cqw 1.8cqw; background: #fff; border-right: 0.12cqw solid #e8e8ed; font-size: 1.1cqw; display: flex; flex-direction: column; }
.st2__merk { display: flex; align-items: center; gap: 0.9cqw; padding-bottom: 1.4cqw; border-bottom: 0.12cqw solid #efeff2; }
.st2__merk img { width: auto; max-width: 7cqw; height: 2.6cqw; object-fit: contain; }
.st2__merk p { font-size: 0.95cqw; color: #6e6e73; line-height: 1.25; } .st2__merk b { display: block; font-size: 1.3cqw; color: #1d1d1f; }
.st2__titel { margin-top: 1.5cqw !important; font-size: 0.85cqw; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #8e8e93; }
.st2__kleuren { display: flex; gap: 0.5cqw; margin-top: 0.7cqw !important; }
.st2__kleuren i { width: 2cqw; height: 2cqw; border-radius: 0.5cqw; box-shadow: inset 0 0 0 0.1cqw rgba(0,0,0,0.12); }
.st2__font { margin-top: 0.7cqw !important; font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 1.9cqw; font-weight: 500; }
.st2__font span { font-family: -apple-system, var(--font-sans); font-size: 0.9cqw; color: #6e6e73; }
.st2__lijst { list-style: none; margin: 0.5cqw 0 0; padding: 0; display: grid; gap: 0.25cqw; }
.st2__lijst li { display: flex; align-items: center; gap: 0.6cqw; padding: 0.45cqw 0.6cqw; border-radius: 0.6cqw; font-size: 1.05cqw; color: #3a3a3c; }
.st2__lijst li:first-child { background: var(--st2-tint, #fff8d6); color: #1d1d1f; font-weight: 600; }
.st2__lijst svg { width: 1.1cqw; height: 1.1cqw; color: #2a9d55; flex: none; }
.st2__team { display: flex; margin-top: 0.7cqw !important; }
.st2__team i { width: 2.4cqw; height: 2.4cqw; border-radius: 50%; background: #ddd center/cover; border: 0.2cqw solid #fff; margin-right: -0.6cqw; }
.st2__font--sans { font-family: -apple-system, var(--font-sans) !important; font-weight: 800 !important; }
.st2__hoofd { padding: 2cqw 2.2cqw 1.6cqw; display: flex; flex-direction: column; min-width: 0; }
.st2__prompt { display: flex; align-items: center; gap: 1cqw; padding: 0.7cqw 0.7cqw 0.7cqw 1.4cqw; border-radius: 1.2cqw; background: #fff; border: 0.12cqw solid #d2d2d7; box-shadow: 0 0.5cqw 1.6cqw rgba(0,0,0,0.06); font-size: 1.25cqw; }
.st2__prompt span { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st2__prompt em { font-style: normal; padding: 0.65cqw 1.4cqw; border-radius: 99px; background: #040205; color: #fff; font-size: 1cqw; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.st2__sub { margin-top: 1.1cqw !important; font-size: 1cqw; color: #6e6e73; }
.st2__raster { margin-top: 0.9cqw; display: grid; grid-template-columns: 27fr 15.2fr 32.4fr; gap: 1cqw; align-items: start; }
.st2__rij2 { grid-column: 1 / -1; display: grid; grid-template-columns: 3fr 8.09fr; gap: 1cqw; align-items: start; }
.st2__tegel { position: relative; background: #fff; border-radius: 0.9cqw; padding: 0.6cqw; border: 0.12cqw solid #e8e8ed; box-shadow: 0 0.5cqw 1.4cqw rgba(0,0,0,0.05); }
.st2__ad { border-radius: 0.5cqw; overflow: hidden; background: #0b0b0b; }
.st2__ad img { display: block; width: 100%; height: auto; }
.st2__tegel--story .st2__ad { aspect-ratio: 9 / 16; } .st2__tegel--story .st2__ad img { height: 100%; object-fit: cover; }
.st2__voet { display: flex; align-items: center; gap: 0.4cqw; margin-top: 0.5cqw; font-size: 0.85cqw; color: #8e8e93; }
.st2__voet span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st2__voet b { color: #1d1d1f; font-weight: 600; margin-right: 0.4cqw; }
.st2__knop { flex: none; width: 1.9cqw; height: 1.9cqw; border-radius: 0.5cqw; background: #f2f2f5; color: #3a3a3c; display: flex; align-items: center; justify-content: center; font-style: normal; }
.st2__knop svg { width: 1.1cqw; height: 1.1cqw; }
.st2__tegel--li { outline: 0.22cqw solid #2a9d55; outline-offset: 0.2cqw; }
.st2__ok { position: absolute; z-index: 2; left: 1.2cqw; top: 1.2cqw; display: inline-flex; align-items: center; gap: 0.4cqw; padding: 0.4cqw 0.9cqw; border-radius: 99px; background: #2a9d55; color: #fff; font-size: 0.9cqw; font-weight: 700; box-shadow: 0 0.4cqw 1.2cqw rgba(42,157,85,0.4); }
.st2__ok svg { width: 1cqw; height: 1cqw; }
.st2__opm { position: absolute; z-index: 3; left: 34%; top: 58%; width: 17cqw; display: grid; grid-template-columns: auto 1fr; gap: 0.3cqw 0.7cqw; padding: 0.9cqw 1cqw; background: #fff; border-radius: 1cqw 1cqw 1cqw 0.2cqw; box-shadow: 0 0.8cqw 2.4cqw rgba(0,0,0,0.18); font-size: 0.95cqw; line-height: 1.35; }
.st2__opm i { grid-row: span 2; width: 2cqw; height: 2cqw; border-radius: 50%; background: #FFD200; color: #0b0b0b; font-style: normal; font-weight: 800; font-size: 1cqw; display: flex; align-items: center; justify-content: center; }
.st2__opm b { display: block; font-size: 0.85cqw; color: #8e8e93; font-weight: 600; }
.st2__opm small { font-size: 0.8cqw; color: #2a9d55; font-weight: 600; }
.st2__balk { margin-top: auto; padding-top: 1cqw; display: flex; align-items: center; gap: 0.8cqw; }
.st2__status { flex: 1; display: inline-flex; align-items: center; gap: 0.6cqw; font-size: 1cqw; color: #3a3a3c; font-weight: 600; }
.st2__status i { width: 0.8cqw; height: 0.8cqw; border-radius: 50%; background: #2a9d55; box-shadow: 0 0 0 0.3cqw rgba(42,157,85,0.18); }
.st2__knop2 { display: inline-flex; align-items: center; gap: 0.5cqw; padding: 0.7cqw 1.3cqw; border-radius: 99px; border: 0.12cqw solid #d2d2d7; background: #fff; font-style: normal; font-size: 1cqw; font-weight: 700; color: #1d1d1f; }
.st2__knop2--zwart { background: #040205; border-color: #040205; color: #fff; }
.st2__knop2 svg { width: 1.1cqw; height: 1.1cqw; }
@media (prefers-reduced-motion: no-preference) {
  .st2__tegel { animation: st2-in 9s cubic-bezier(.2,.7,.2,1) infinite both; }
  .st2__tegel--story { animation-delay: .25s; } .st2__tegel--display { animation-delay: .5s; } .st2__tegel--mailheader { animation-delay: .75s; } .st2__tegel--leaderboard { animation-delay: 1s; }
  .st2__ok { animation: st2-pop 9s cubic-bezier(.34,1.56,.64,1) infinite both; animation-delay: 0s; }
  .st2__opm { animation: st2-opm 9s cubic-bezier(.34,1.56,.64,1) infinite both; }
  .st2__knop2--zwart { animation: st2-puls 9s ease-in-out infinite; }
}
@keyframes st2-in { 0% { opacity: 0; translate: 0 1.5cqw; } 8%, 92% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes st2-pop { 0%, 22% { opacity: 0; scale: 0.6; } 28%, 92% { opacity: 1; scale: 1; } 100% { opacity: 0; } }
@keyframes st2-opm { 0%, 38% { opacity: 0; scale: 0.7; translate: 0 1cqw; } 45%, 92% { opacity: 1; scale: 1; translate: 0 0; } 100% { opacity: 0; } }
@keyframes st2-puls { 0%, 62% { box-shadow: 0 0 0 0 rgba(4,2,5,0); } 70% { box-shadow: 0 0 0 0.8cqw rgba(4,2,5,0.12); } 78%, 100% { box-shadow: 0 0 0 0 rgba(4,2,5,0); } }

/* werkcases: gloed en actieve tab in de merkkleur van de gekozen klant, vloeiend overgaand */
@property --ws-kleur { syntax: "<color>"; inherits: true; initial-value: #FFD200; }
.ws { position: relative; isolation: isolate; transition: --ws-kleur 0.9s ease; }
.ws::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 260px; bottom: -80px; pointer-events: none;
  background: radial-gradient(42% 32% at 72% 22%, color-mix(in srgb, var(--ws-kleur) 46%, transparent), transparent 72%),
              radial-gradient(36% 30% at 12% 62%, color-mix(in srgb, var(--ws-kleur) 30%, transparent), transparent 72%),
              radial-gradient(40% 26% at 80% 88%, color-mix(in srgb, var(--ws-kleur) 28%, transparent), transparent 72%);
  filter: blur(10px); }
.ws__tab[aria-selected="true"] { border-color: var(--ws-kleur); box-shadow: 0 0 0 1px var(--ws-kleur), 0 8px 24px color-mix(in srgb, var(--ws-kleur) 35%, transparent); }
.ws__label::before { background: var(--ws-kleur); }

/* studio in de laptop wisselt mee met de gekozen klant */
.st2[hidden] { display: none !important; }
.ap-st-sec { position: relative; isolation: isolate; transition: --ws-kleur 0.9s ease; }
.ap-st-sec::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 180px; bottom: 120px; pointer-events: none; transition: --ws-kleur 0.9s ease;
  background: radial-gradient(45% 40% at 50% 45%, color-mix(in srgb, var(--ws-kleur, #FFD200) 30%, transparent), transparent 72%); filter: blur(12px); }

/* ---------- marketing: echte klant-ads in plaats van fictieve voorbeelden ---------- */
.ap-mg__post--echt .ap-mg__ad-beeld--foto { padding: 0; background: #16226B; }
.ap-mg__ad-beeld--foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-mg__av-afs { background: #16226B url(assets/img/partner-afs-schiphol.webp) center/90% no-repeat !important; }
.ap-mg__fav-hf { display: inline-block; width: 14px; height: 14px; margin-right: 6px; vertical-align: -2px; border-radius: 50%; background: #fff url(assets/img/partner-headfirst.webp) 4% 50%/560% no-repeat; box-shadow: 0 0 0 1px #e5e5ea; }
.ap-mg__stat--tekst b { font-size: 15px; letter-spacing: 0; white-space: nowrap; }
.ap-mk__ab2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px; }
.ap-mk__ab2 figure { margin: 0; position: relative; border-radius: 10px; overflow: hidden; background: #fff; opacity: 0.55; transition: opacity .4s; }
.ap-mk__ab2 img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.ap-mk__ab2 figcaption { font-size: 11px; font-weight: 600; color: #3a3a3c; padding: 6px 8px; display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.ap-mk__ab2 strong { font-size: 10px; background: #FFB441; color: #040205; padding: 2px 7px; border-radius: 99px; }
.ap-mk__ab2 .ap-mk__win { opacity: 1; box-shadow: 0 0 0 2px #FFB441, 0 10px 24px rgba(0,0,0,0.3); }
.mk-strook { text-align: center; padding-bottom: 0; }
.mk-strook .hv-kicker { margin-bottom: 18px; }
.mk-strook .ap-k4__kop, .mk-strook .ap-k4__sub { margin-left: auto; margin-right: auto; }
.mk-strook__band { overflow: hidden; margin-top: 56px; padding: 10px 0 20px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.mk-strook__spoor { display: flex; gap: 18px; width: max-content; animation: mk-strook 70s linear infinite; }
.mk-strook__band:hover .mk-strook__spoor { animation-play-state: paused; }
.mk-strook__ad { margin: 0; width: clamp(220px, 22vw, 300px); flex: none; }
.mk-strook__ad img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; box-shadow: 0 14px 34px rgba(4,2,5,0.14); transition: translate .4s cubic-bezier(.2,.7,.2,1); }
.mk-strook__ad:hover img { translate: 0 -6px; }
.mk-strook__ad figcaption { margin-top: 10px; display: flex; justify-content: space-between; gap: 8px; font-size: 13px; color: #6e6e73; }
.mk-strook__ad figcaption b { color: #1d1d1f; font-weight: 600; }
.mk-strook__voet { max-width: 1260px; margin: 8px auto 0; padding: 0 clamp(22px, 4.4vw, 64px); display: flex; justify-content: space-between; gap: 16px; font-size: 13px; color: #8e8e93; }
.mk-strook__voet a { color: #040205; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; }
@keyframes mk-strook { to { translate: -50% 0; } }
@media (prefers-reduced-motion: reduce) { .mk-strook__spoor { animation: none; } .mk-strook__band { overflow-x: auto; } }
.mk-leo { display: grid; grid-template-columns: minmax(240px, 400px) 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; padding: clamp(28px, 4vw, 56px); border-radius: 32px; background: linear-gradient(140deg, #f4f3ee 0%, #e9f2f4 100%); }
.mk-leo__foto { position: relative; }
.mk-leo__foto img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: 24px; background: #fff; }
.mk-leo__foto p { position: absolute; left: 16px; bottom: 16px; margin: 0; padding: 8px 14px; border-radius: 99px; background: rgba(255,255,255,0.92); font-size: 13px; font-weight: 600; color: #1d1d1f; box-shadow: 0 6px 18px rgba(0,0,0,0.12); }
.mk-leo__tekst .hv-kicker { margin-bottom: 16px; }
.mk-leo__tekst .ap-k4__kop { font-size: clamp(26px, 3.2vw, 46px); }
.mk-leo__zin { margin-top: 22px; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.5; color: #3a3a3c; max-width: 32em; }
.mk-leo ul { list-style: none; padding: 0; margin: 24px 0 30px; display: grid; gap: 10px; }
.mk-leo li { display: flex; align-items: center; gap: 10px; font-size: 16px; color: #1d1d1f; }
.mk-leo li i { width: 24px; height: 24px; border-radius: 50%; background: #040205; color: #fff; display: flex; align-items: center; justify-content: center; flex: none; }
.mk-leo li svg { width: 14px; height: 14px; }
@media (max-width: 799px) { .mk-leo { grid-template-columns: 1fr; } .mk-leo__foto img { aspect-ratio: 1; } }

/* Content Studio als dienst: taakverdeling jij/wij (2 kolommen) en FAQ */
.ap-cs-taak .ap-cs3__rij { grid-template-columns: 1fr 1fr; align-items: stretch; max-width: 980px; }
.ap-cs-taak .ap-cs3__kol--wij { padding: 30px 28px; }
@media (max-width: 960px) { .ap-cs-taak .ap-cs3__rij { grid-template-columns: 1fr; } .ap-cs-taak .ap-cs3__kol--wij { order: 0; } }

/* studio-mockup als ons eigen dashboard: The D Company bovenaan, klantenlijst, merkkit van de actieve klant */
.st2__dc { padding-bottom: 1.3cqw; border-bottom: 0.12cqw solid #efeff2; line-height: 1.2; }
.st2__dc b { display: block; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 1.15cqw; letter-spacing: -0.01em; text-transform: uppercase; color: #040205; }
.st2__dc span { font-size: 0.9cqw; color: #6e6e73; }
.st2__klanten { list-style: none; margin: 0.5cqw 0 0; padding: 0; display: grid; gap: 0.2cqw; }
.st2__klant { display: flex; align-items: center; gap: 0.7cqw; padding: 0.4cqw 0.5cqw; border-radius: 0.6cqw; font-size: 1cqw; color: #3a3a3c; cursor: pointer; white-space: nowrap; overflow: hidden; }
.st2__klant:hover { background: #f5f5f7; }
.st2__klant.is-actief { background: var(--st2-tint, #fff8d6); color: #1d1d1f; font-weight: 600; }
.st2__klant > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.st2__logo { flex: none; display: grid; place-items: center; width: 3.2cqw; height: 2cqw; border-radius: 0.4cqw; background: #fff; box-shadow: inset 0 0 0 0.1cqw #e5e5ea; overflow: hidden; }
.st2__logo img { max-width: 88%; max-height: 80%; width: auto; height: auto; object-fit: contain; }
.st2__prompt em.st2__in { background: #E5F5EC; color: #1f7d48; }

/* ---------- v3: Diensten-menu in de header (uitklappaneel met de drie diensten en hun onderdelen) ---------- */
.hdr__link--menu { cursor: pointer; border: 0; background: none; font: inherit; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; }
.hdr__pijl { width: 11px; height: 11px; margin-left: -2px; transition: rotate 0.35s cubic-bezier(0.2,0,0,1); }
.hdr__link--menu[aria-expanded="true"] { color: #fff; background: color-mix(in srgb, var(--pil) 16%, transparent); }
.hdr__link--menu[aria-expanded="true"]::before { background: var(--pil); }
.hdr__link--menu[aria-expanded="true"] .hdr__pijl { rotate: 180deg; }
.hdr__mega { position: absolute; top: calc(100% + 10px); left: 50%; translate: -50% 0; width: min(1120px, calc(100vw - 32px)); pointer-events: auto; padding: 14px; border-radius: 28px; color: #fff;
  background: linear-gradient(rgba(255,255,255,0.05), rgba(255,255,255,0.02)), rgba(9,9,11,0.9); -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 30px 60px -24px rgba(0,0,0,0.6); animation: mega-in 0.35s cubic-bezier(0.22,1,0.36,1); }
.hdr__mega[hidden] { display: none; }
@keyframes mega-in { from { opacity: 0; transform: translateY(-8px); } }
.hdr__mega-rij { display: grid; grid-template-columns: repeat(3, 1fr) 0.95fr; gap: 10px; }
.hdr__dienst { display: flex; flex-direction: column; gap: 6px; padding: 22px 22px 20px; border-radius: 20px; color: #fff; text-decoration: none; background: rgba(255,255,255,0.04); transition: background-color 0.25s, translate 0.35s cubic-bezier(0.2,0,0,1); }
.hdr__dienst:hover, .hdr__dienst:focus-visible { background: rgba(255,255,255,0.09); translate: 0 -2px; }
.hdr__dienst-ster svg { width: 14px; height: 14px; fill: var(--ster, #8FCFDF); }
.hdr__dienst--2 { --ster: #FFB441; } .hdr__dienst--3 { --ster: #3E7F94; }
.hdr__dienst b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 15px; text-transform: uppercase; letter-spacing: -0.005em; margin-top: 8px; }
.hdr__dienst-sub { font-size: 14px; line-height: 1.4; color: rgba(255,255,255,0.65); }
.hdr__dienst ul { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(255,255,255,0.1); display: grid; gap: 7px; }
.hdr__dienst li { font-size: 13.5px; color: rgba(255,255,255,0.85); display: flex; gap: 8px; align-items: center; }
.hdr__dienst li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--ster, #8FCFDF); flex: none; }
.hdr__mega-cta { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 22px; border-radius: 20px; background: radial-gradient(80% 70% at 100% 0%, rgba(143,207,223,0.28), transparent 70%), radial-gradient(70% 60% at 0% 100%, rgba(255,180,65,0.18), transparent 70%), rgba(255,255,255,0.04); }
.hdr__mega-cta p { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 15px; text-transform: uppercase; line-height: 1.2; }
.hdr__mega-cta span { font-size: 14px; color: rgba(255,255,255,0.65); }
.hdr__mega-cta .ap-pil { align-self: flex-start; margin: 8px 0 0; }
@media (max-width: 1340px) { .hdr__mega { display: none !important; } }
/* mobiel menu: tussenkop Diensten */
.mob__kop { margin-top: 10px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.55; }

/* ---------- v3: klein uitklapmenu 'Over ons' (naar banny.io): pil-label en grote links ---------- */
.hdr__mega--klein { width: 340px; left: var(--mega-x, 50%); translate: none; padding: 24px 26px 26px; }
.hdr__mega-pil { display: inline-block; padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,0.1); font-size: 13px; color: rgba(255,255,255,0.85); }
.hdr__mega-links { display: grid; gap: 4px; margin-top: 16px; }
.hdr__mega-links a { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 17px; letter-spacing: -0.01em; color: #fff; text-decoration: none; padding: 8px 0; transition: color 0.2s, translate 0.3s cubic-bezier(0.2,0,0,1); }
.hdr__mega-links a:hover, .hdr__mega-links a:focus-visible { color: #8FCFDF; translate: 4px 0; }

/* ---------- v3: platformpagina ---------- */
.ap-plat { text-align: center; }
.ap-plat__beeld { margin: 48px auto 0; max-width: 1100px; border-radius: 22px; overflow: hidden; border: 1px solid #e5e5ea; box-shadow: 0 40px 80px -40px rgba(4,2,5,0.35); }
.ap-plat__beeld img { display: block; width: 100%; height: auto; }
.ap-plat__raster { margin-top: 48px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; text-align: left; }
.ap-plat__kaart { padding: 22px 22px 26px; border-radius: 24px; background: #f5f5f7; }
.ap-plat__tel { margin: 0 auto 20px; width: 62%; aspect-ratio: 780 / 1100; overflow: hidden; border-radius: 18px; border: 4px solid #040205; background: #fff; }
.ap-plat__tel img { display: block; width: 100%; height: auto; }
.ap-plat__kaart h3 { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 15px; text-transform: uppercase; color: #040205; margin-bottom: 8px; }
.ap-plat__kaart p { font-size: 15px; line-height: 1.45; color: #55585b; }
.ap-plat__ruis { list-style: none; padding: 0; margin: 40px auto 0; max-width: 980px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; text-align: left; }
.ap-plat__ruis li { padding: 22px 24px; border-radius: 20px; background: #f5f5f7; display: grid; gap: 4px; }
.ap-plat__ruis b { font-size: 17px; color: #040205; } .ap-plat__ruis span { font-size: 15px; color: #55585b; }
@media (max-width: 1000px) { .ap-plat__raster { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .ap-plat__raster, .ap-plat__ruis { grid-template-columns: 1fr; } }
.ap-slot2 { text-align: center; display: flex; flex-direction: column; align-items: center; padding-bottom: 120px; }
.ap-slot2 .ap-pil { margin-top: 28px; }
.ap-over-visie, .ap-cs3, .ap-cs-hl { text-align: center; }

/* v3 marketing: 4 stappen, voordelen in 3 kolommen, lijst met vet + toelichting */
.hv-werk__rij--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .hv-werk__rij--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .hv-werk__rij--4 { grid-template-columns: 1fr; } }
.ap-plat__ruis--3 { grid-template-columns: repeat(3, 1fr); max-width: 1100px; }
@media (max-width: 900px) { .ap-plat__ruis--3 { grid-template-columns: 1fr; } }
.ap-mk-beheer .ap-cs3__kol li b { font-weight: 700; }
.ap-mk-stappen { display: flex; flex-direction: column; align-items: center; text-align: center; }

/* v3 marketing-hero: zwevende advertentiekaart met platformlogo's (naar banny.io) */
.mk-hero { position: relative; }
.mk-held { position: absolute; right: clamp(40px, 6vw, 110px); bottom: clamp(56px, 7vw, 96px); width: clamp(280px, 23vw, 350px); }
.mk-held__kaart { position: relative; rotate: 5deg; border-radius: 26px; overflow: hidden; background: #fff; color: #1d1d1f; box-shadow: 0 50px 90px -30px rgba(0,0,0,0.75), 0 0 0 1px rgba(255,255,255,0.08); animation: mk-zweef 7s ease-in-out infinite; }
.mk-held__kop { display: flex; align-items: center; gap: 10px; padding: 12px 14px; font-size: 12px; color: #6e6e73; }
.mk-held__kop i { width: 30px; height: 30px; border-radius: 50%; background: #040205 url(assets/img/wordmark.svg) center/70% no-repeat; flex: none; }
.mk-held__kop b { display: block; font-size: 13px; color: #1d1d1f; }
.mk-held__ads { position: relative; aspect-ratio: 1; background: #0b0b0b; }
.mk-held__ads img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.9s ease; }
.mk-held__ads img.is-aan { opacity: 1; }
.mk-held__voet { display: flex; align-items: baseline; gap: 8px; padding: 12px 14px 14px; font-size: 12px; color: #6e6e73; }
.mk-held__voet b { font-size: 18px; color: #1d1d1f; } .mk-held__voet small { font-size: 11px; font-weight: 500; color: #2a9d55; }
.mk-held__voet em { margin-left: auto; font-style: normal; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: #aeaeb2; }
.mk-held__bol { position: absolute; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,0.92); box-shadow: 0 20px 40px -14px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(255,255,255,0.6); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); animation: mk-zweef 6s ease-in-out infinite; }
.mk-held__bol svg { width: 52%; height: 52%; }
.mk-held__bol--meta { width: 78px; height: 78px; left: -52px; top: 46%; animation-delay: -1.5s; }
.mk-held__bol--google { width: 92px; height: 92px; right: -40px; top: 10%; animation-delay: -3s; }
.mk-held__bol--insta { width: 64px; height: 64px; left: -18px; top: -26px; animation-delay: -4.5s; }
.mk-held__bol--yt { width: 70px; height: 70px; right: -26px; bottom: -22px; animation-delay: -2.2s; }
@keyframes mk-zweef { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }
.mk-hero .pk__titel, .mk-hero .pk__sub { max-width: min(760px, 56%); }
@media (max-width: 1100px) { .mk-held { display: none; } .mk-hero .pk__titel, .mk-hero .pk__sub { max-width: none; } }
@media (prefers-reduced-motion: reduce) { .mk-held__kaart, .mk-held__bol { animation: none; } }

/* v3 Diensten-menu: kolommen op dezelfde lijn (subgrid), bolletjes bij de eerste regel, paneel dekkend */
.hdr__mega { background: linear-gradient(rgba(255,255,255,0.04), rgba(255,255,255,0.02)), #0b0b0e; }
.hdr__mega-rij { grid-template-rows: auto auto auto 1fr; }
.hdr__dienst { display: grid; grid-row: span 4; grid-template-rows: subgrid; gap: 6px; align-content: start; }
.hdr__dienst b { margin-top: 8px; align-self: end; }
.hdr__dienst-sub { align-self: start; }
.hdr__dienst ul { align-self: start; }
.hdr__dienst li { align-items: flex-start; }
.hdr__dienst li::before { margin-top: 0.55em; }
.hdr__mega-cta { grid-row: span 4; }

/* v3: koppen met max-width netjes centreren in blok-secties (platform, marketing-voordelen) */
.ap-plat .ap-k4__kop, .ap-plat .ap-k4__sub { margin-left: auto; margin-right: auto; }
.ap-plat .hv-kicker, .ap-cs3 .hv-kicker, .ap-cs-wie .hv-kicker, .hv-werk .hv-kicker { margin-bottom: 16px; }
.ap-plat .ap-k4__sub { max-width: 46em; margin-top: 18px; }

/* sterretje in de donkere kolom mag nooit over de titel vallen; in de jij/wij-blokken beide titels even groot */
.ap-cs3__kol--wij .ap-cs3__naam { padding-right: 36px; }
.ap-cs-taak .ap-cs3__kol--wij .ap-cs3__naam { font-size: clamp(15px, 1.4vw, 20px); }

/* v3: vierde dienst (SEO & GEO) in het Diensten-menu, en Expertise-pagina's */
.hdr__mega-rij { grid-template-columns: repeat(4, 1fr) 0.9fr; }
.hdr__dienst--4 { --ster: #8FCFDF; }
.hdr__dienst { padding: 20px 18px 18px; }
.ap-exp__wat { max-width: 760px; margin-left: auto; margin-right: auto; text-align: center; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; }
.ap-dienstband__rij.ap-exp__raster { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.ap-exp__prijs { max-width: 620px; margin: 0 auto; }
body[data-page^="expertise-"] .ap-plat__ruis, body[data-page="seo-geo"] .ap-plat__ruis { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1100px; }
@media (max-width: 820px) { body[data-page^="expertise-"] .ap-plat__ruis, body[data-page="seo-geo"] .ap-plat__ruis { grid-template-columns: 1fr; } }


/* v3: tweede rij ads, alleen op mobiel, loopt de andere kant op */
.mk-strook__band--2 { display: none; }
@media (max-width: 760px) {
  .mk-strook__band--2 { display: block; margin-top: 0; padding-top: 0; }
  .mk-strook__spoor--terug { animation-name: mk-strook-terug; animation-duration: 80s; }
}
@keyframes mk-strook-terug { from { translate: -50% 0; } to { translate: 0 0; } }
@media (prefers-reduced-motion: reduce) { .mk-strook__spoor--terug { animation: none; } }

/* v3: groot merk in de hero nooit breder dan zijn vak (werd op mobiel afgesneden) */
.herologo__mark img { max-width: 100%; }

/* v3: sterkere prijsvergelijking (balk voor ons + besparing) */
.ap-v2__balk--wij { margin-top: 18px; }
.ap-v2__seg--wij { background: linear-gradient(150deg, #0c242c 0%, #174a58 45%, #3E7F94 100%); color: #fff; }
.ap-v2__besparing { margin: 14px 0 0; font-size: clamp(17px, 1.6vw, 22px); color: #040205; }
.ap-v2__besparing b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; background: #8FCFDF; padding: 0 6px; }
.ap-v2__bron { max-width: 1100px; margin: 18px auto 0; font-size: 12.5px; color: #8e8e93; text-align: center; }

/* v3: prijzenpagina met offerte-calculator */
.pz .ap-k4__kop { margin-left: auto; margin-right: auto; text-align: center; }
.pz__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; max-width: 1180px; margin: 48px auto 0; align-items: start; }
.pz-groep { border: 0; margin: 0 0 22px; padding: 0; }
.pz-groep legend { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 15px; text-transform: uppercase; margin-bottom: 10px; }
.pz-rij { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.pz-opt { position: relative; cursor: pointer; }
.pz-opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pz-opt span { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 14px 16px; border-radius: 16px; background: #f3f3f5; border: 2px solid transparent; transition: border-color .2s, background .2s; }
.pz-opt b { font-size: 15px; color: #1d1d1f; }
.pz-opt em { font-style: normal; font-weight: 700; font-size: 17px; color: #040205; }
.pz-opt em small, .pz-opt span > small { font-weight: 400; font-size: 12.5px; color: #6e6e73; }
.pz-opt input:checked + span { border-color: #3E7F94; background: #eaf5f8; }
.pz-opt input:focus-visible + span { outline: 2px solid #3E7F94; outline-offset: 2px; }
.pz-opt input:disabled + span { opacity: .45; cursor: not-allowed; }
.pz__uit { position: sticky; top: 110px; padding: 26px; border-radius: 24px; color: #fff; background: linear-gradient(150deg, #040205 0%, #101d22 55%, #1d3a44 100%); }
.pz__label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8FCFDF; margin: 0 0 12px; }
.pz__regels { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 14px; }
.pz__regels li { display: flex; justify-content: space-between; gap: 12px; color: rgba(255,255,255,.8); }
.pz__leeg { font-size: 14px; color: rgba(255,255,255,.6); margin: 0; }
.pz__som { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 8px; }
.pz__som div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: rgba(255,255,255,.75); }
.pz__som dd { margin: 0; font-weight: 600; color: #fff; }
.pz__som .pz__maand dt { font-weight: 700; color: #fff; }
.pz__som .pz__maand dd { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 26px; color: #8FCFDF; }
.pz__roi { margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); }
.pz__klant { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; color: rgba(255,255,255,.8); }
.pz__klant input { width: 110px; padding: 6px 8px; border-radius: 10px; border: 0; font: inherit; color: #040205; }
.pz__roizin { margin: 12px 0 0; font-size: 16px; }
.pz__roizin b { font-family: "Archivo Expanded", var(--font-sans); font-size: 22px; color: #FFB441; }
.pz__uit .ap-pil { margin-top: 20px; }
.pz__noot { margin: 14px 0 0; font-size: 12px; line-height: 1.5; color: rgba(255,255,255,.55); }
@media (max-width: 900px) { .pz__grid { grid-template-columns: 1fr; } .pz__uit { position: static; } }
.pz__som div[hidden] { display: none; }
.pz__klant input { background: #fff; }
.pz__roi .pz__label .ap-mark { background: none; color: inherit; padding: 0; }

/* v3: vergelijking als twee balken met de kernfeiten (geen herhaling van de lijst eronder) */
.ap-vs { max-width: 1180px; margin: 56px auto 0; display: grid; gap: 22px; }
.ap-vs__rij { display: grid; grid-template-columns: 240px 1fr; column-gap: 24px; row-gap: 8px; align-items: center; }
.ap-vs__wie { margin: 0; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 14px; text-transform: uppercase; letter-spacing: .02em; color: #040205; }
.ap-vs__spoor { width: 100%; }
.ap-vs__balk { width: 0; min-width: 190px; display: flex; align-items: baseline; gap: 8px; padding: 18px 20px; border-radius: 16px; color: #fff; background: linear-gradient(150deg, #040205 0%, #101d22 55%, #1d3a44 100%); transition: width 1.1s cubic-bezier(.2,.7,.2,1); box-sizing: border-box; }
.ap-vs.is-zichtbaar .ap-vs__balk { width: var(--w); }
.ap-vs__rij--wij .ap-vs__balk { background: linear-gradient(150deg, #0c242c 0%, #174a58 45%, #3E7F94 100%); transition-delay: .3s; }
.ap-vs__balk b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: clamp(22px, 2.4vw, 32px); }
.ap-vs__balk span { font-size: 14px; color: rgba(255,255,255,.7); }
.ap-vs__feit { grid-column: 2; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: #6e6e73; }
.ap-vs__feit li::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: currentColor; margin: 0 8px 2px 0; vertical-align: middle; }
.ap-vs__rij--wij .ap-vs__feit { color: #1d4f5c; font-weight: 600; }
.ap-vs .ap-v2__besparing { margin: 6px 0 0 264px; }
@media (max-width: 760px) { .ap-vs__rij { grid-template-columns: 1fr; } .ap-vs__feit { grid-column: 1; } .ap-vs .ap-v2__besparing { margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .ap-vs__balk { transition: none; width: var(--w); } }
.ap-vs__balk { min-width: max-content; white-space: nowrap; }

/* ---------- nieuw logo: monogram met COMPANY (test 12-10) ---------- */
.hdr__logo--td img { height: 32px; }
#hv-kop { max-width: none; font-size: clamp(20px, 4vw, 64px); }
#hv-kop .ap-mark { white-space: nowrap; }

/* ---------- prijzenpagina: witte keuzekaarten met haarlijn in plaats van grijze blokken ---------- */
.pz__intro { max-width: 640px; margin: 18px auto 0 !important; text-align: center; font-size: 17px; line-height: 1.55; color: #6e6e73; }
.pz__intro b { color: #040205; font-weight: 600; }
.ap--licht .pz-groep legend { font-size: 13px; letter-spacing: .06em; }
.ap--licht .pz-opt span { background: #fff; border: 1px solid rgba(4,2,5,.12); padding: 16px 18px; box-shadow: 0 1px 2px rgba(4,2,5,.04); }
.ap--licht .pz-opt:hover span { border-color: rgba(4,2,5,.3); }
.ap--licht .pz-opt b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #040205; }
.ap--licht .pz-opt em { font-size: 19px; margin-top: 6px; }
.ap--licht .pz-opt em small { display: block; margin-top: 2px; }
.ap--licht .pz-opt input:checked + span { border-color: #3E7F94; background: #fff; box-shadow: inset 0 0 0 1px #3E7F94, 0 10px 24px -14px rgba(62,127,148,.5); }
/* "Geen" is een rustige keuze, geen grote lege kaart */
.ap--licht .pz-opt:first-child:not(.pz-opt--check) span { justify-content: center; background: transparent; box-shadow: none; border-style: dashed; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) b { color: #6e6e73; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) input:checked + span { background: transparent; border-style: solid; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) input:checked + span b { color: #040205; }
/* calculator en offerte in dezelfde vlakken als de vergelijkingskaarten (ap-v2__kant) */
.ap--licht .pz__in, .ap--licht .pz__uit { position: relative; overflow: hidden; isolation: isolate; border-radius: 26px; padding: 32px clamp(20px, 2.6vw, 36px) 30px; }
.ap--licht .pz__in::before, .ap--licht .pz__uit::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.ap--licht .pz__in { background: linear-gradient(160deg, #fbfbfc 0%, #f1f0ee 55%, #e8e4df 100%); }
.ap--licht .pz__in::before { background: radial-gradient(70% 45% at 100% 100%, rgba(180,35,24,0.07), transparent 70%); }
.ap--licht .pz__uit { color: #fff; background: linear-gradient(155deg, #0c242c 0%, #174a58 50%, #3E7F94 100%); box-shadow: 0 30px 60px -30px rgba(23,74,88,0.6); }
.ap--licht .pz__uit::before { background: radial-gradient(60% 40% at 90% 0%, rgba(143,207,223,0.35), transparent 70%), radial-gradient(50% 35% at 0% 100%, rgba(255,180,65,0.14), transparent 70%); }
.ap--licht .pz__uit .pz__label { color: #8FCFDF; }
.ap--licht .pz__uit .pz__som, .ap--licht .pz__uit .pz__roi { border-color: rgba(255,255,255,0.14); }
.ap--licht .pz-groep legend { width: 100%; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 2px solid rgba(0,0,0,0.18); font-size: 10px; letter-spacing: 0.17em; color: #6e6e73; }
.ap--licht .pz-groep { margin-bottom: 26px; }
.ap--licht .pz-groep:last-child { margin-bottom: 0; }
.ap--licht .pz-rij { grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
#vergelijking[hidden] { display: none; }

/* symmetrie: twee even brede, even hoge vlakken, bovenaan gelijk, zoals de vergelijkingskaarten */
.pz__grid { grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: stretch; }
.ap--licht .pz__uit { position: relative; top: auto; display: flex; flex-direction: column; }
.ap--licht .pz__uit .ap-pil { align-self: flex-start; }
.ap--licht .pz__uit .pz__noot { margin-top: auto; padding-top: 14px; }
.ap--licht .pz__in .pz-groep legend, .ap--licht .pz__uit > .pz__label:first-child { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 10px; letter-spacing: 0.17em; text-transform: uppercase; }
.ap--licht .pz__uit > .pz__label:first-child { padding-bottom: 12px; margin-bottom: 14px; border-bottom: 2px solid rgba(143,207,223,0.5); }
@media (max-width: 900px) { .pz__grid { grid-template-columns: 1fr; } }
.ap--licht .pz-rij { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; }
.ap--licht .pz-opt span { padding: 14px 12px; }
.ap--licht .pz-opt b { font-size: 11px; }
.ap--licht .pz-opt em { font-size: 17px; }
@media (max-width: 560px) { .ap--licht .pz-rij { grid-auto-flow: row; grid-template-columns: 1fr 1fr; } }

/* keuzekaarten: "Geen" als klein knopje naast de groepsnaam, gekozen pakket kleurt vol teal */
.ap--licht .pz-groep { position: relative; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) { position: absolute; top: -49px; right: 0; z-index: 1; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) span { flex-direction: row; padding: 6px 14px; border-radius: 99px; border: 1px solid rgba(0,0,0,0.14); background: rgba(255,255,255,0.6); box-shadow: none; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) b { font-size: 9px; color: #6e6e73; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) input:checked + span { background: #040205; border-color: #040205; box-shadow: none; }
.ap--licht .pz-opt:first-child:not(.pz-opt--check) input:checked + span b { color: #fff; }
.ap--licht .pz-opt span { padding: 18px 16px; border-radius: 18px; transition: translate .35s cubic-bezier(.22,1,.36,1), box-shadow .35s, background .35s, border-color .35s; }
.ap--licht .pz-opt:hover span { translate: 0 -3px; box-shadow: 0 16px 30px -18px rgba(4,2,5,.35); }
.ap--licht .pz-opt input:checked + span { color: #fff; border-color: transparent; background: linear-gradient(155deg, #0c242c 0%, #174a58 50%, #3E7F94 100%); box-shadow: 0 18px 36px -18px rgba(23,74,88,.7); }
.ap--licht .pz-opt input:checked + span b, .ap--licht .pz-opt input:checked + span em { color: #fff; }
.ap--licht .pz-opt input:checked + span b { color: #8FCFDF; }
.ap--licht .pz-opt input:checked + span em small, .ap--licht .pz-opt input:checked + span > small { color: rgba(255,255,255,.72); }
.ap--licht .pz-opt--check input:checked + span { background: linear-gradient(155deg, #0c242c 0%, #174a58 50%, #3E7F94 100%); }

/* zelf aannemen tegenover The D Company, in het offerteblok (balken zoals ap-vs) */
.pz__mens { margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); }
.pz__mens[hidden] { display: none; }
.pz__mens .pz__label .ap-mark { background: none; color: inherit; padding: 0; }
.pz__mens-rij { margin-top: 12px; }
.pz__mens-rij p { margin: 0; display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: rgba(255,255,255,.8); }
.pz__mens-rij p > b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 16px; color: #fff; white-space: nowrap; }
.pz__mens-rij p span b { font-weight: 600; color: #fff; }
.pz__mens-balk { display: block; height: 10px; margin-top: 8px; border-radius: 99px; }
.pz__mens-balk--zelf { width: 100%; background: rgba(4,2,5,.45); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.pz__mens-balk--wij { background: #8FCFDF; transition: width .6s cubic-bezier(.22,1,.36,1); }
.pz__mens-bespaar { margin: 14px 0 0; font-size: 16px; }
.pz__mens-bespaar b { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 24px; color: #FFB441; }

/* ---------- v3: rustmodus (zwevend TD-logo bij niets doen) en de regelaar linksonder ---------- */
.rust { --rust: 0.6; position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: 0; overflow: hidden; transition: opacity 1.2s ease; background: rgba(4,2,5, calc(0.25 + var(--rust) * 0.6)); }
.rust.is-aan { opacity: 1; }
.rust__logo { --rust-kleur: #8FCFDF; --rust-tint: 0deg; position: absolute; top: 0; left: 0; width: clamp(110px, 11vw, 180px); aspect-ratio: 256 / 204.7; will-change: transform;
  filter: drop-shadow(0 0 calc(6px + var(--rust) * 22px) var(--rust-kleur)) drop-shadow(0 0 calc(2px + var(--rust) * 6px) var(--rust-kleur)); transition: filter 0.8s ease; }
.rust__logo span { display: block; width: 100%; height: 100%; background: var(--rust-kleur); transition: background-color 0.8s ease;
  -webkit-mask: url(assets/img/logo-td-company.svg) center / contain no-repeat; mask: url(assets/img/logo-td-company.svg) center / contain no-repeat; }
/* Fix met AI: één logo, kleuren wisselen continu, felle gloed */
.rust.is-ai .rust__logo { filter: hue-rotate(var(--rust-tint)) saturate(1.6) drop-shadow(0 0 calc(10px + var(--rust) * 34px) var(--rust-kleur)); transition: none; }
.rust.is-ai .rust__logo span { transition: none; }
.rust.is-ai { background: radial-gradient(60% 60% at 50% 50%, rgba(62,127,148, calc(var(--rust) * 0.25)), transparent 70%), rgba(4,2,5, calc(0.3 + var(--rust) * 0.6)); }

/* regelaar linksonder (20% kleiner dan v1) */
.rust-regel { position: fixed; left: 14px; bottom: 14px; z-index: 95; display: flex; align-items: center; gap: 6px; font-family: var(--font-sans); }
.rust-regel__knop { width: 30px; height: 30px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center;
  background: rgba(9,9,11,0.72); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.16), 0 6px 16px -8px rgba(0,0,0,0.5); }
.rust-regel__knop span { width: 13px; height: 10px; background: #F2F1E6; -webkit-mask: url(assets/img/logo-td-company.svg) center / contain no-repeat; mask: url(assets/img/logo-td-company.svg) center / contain no-repeat; }
.rust-regel__paneel { display: none; align-items: center; gap: 12px; height: 30px; padding: 0 11px; border-radius: 999px; color: #fff; font-size: 10px;
  background: rgba(9,9,11,0.78); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.16); }
.rust-regel__rij, .rust-regel__ai { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.rust-regel__paneel span { font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 7.5px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.75); white-space: nowrap; }
.rust-regel__rij input { width: 88px; accent-color: #8FCFDF; }
.rust-regel__paneel b { min-width: 28px; font-weight: 600; font-size: 10px; font-variant-numeric: tabular-nums; }
.rust-regel__ai { padding-left: 12px; border-left: 1px solid rgba(255,255,255,0.14); }
.rust-regel__ai input { position: absolute; opacity: 0; width: 0; height: 0; }
.rust-regel__ai i { position: relative; width: 26px; height: 15px; border-radius: 999px; background: rgba(255,255,255,0.18); transition: background-color 0.25s; }
.rust-regel__ai i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 11px; height: 11px; border-radius: 50%; background: #fff; transition: translate 0.25s cubic-bezier(0.2,0,0,1); }
.rust-regel__ai input:checked + i { background: linear-gradient(90deg, #8FCFDF, #FFB441); }
.rust-regel__ai input:checked + i::after { translate: 11px 0; }
.rust-regel__ai input:focus-visible + i { outline: 2px solid #8FCFDF; outline-offset: 2px; }
.rust-regel:hover .rust-regel__paneel, .rust-regel.is-open .rust-regel__paneel, .rust-regel:focus-within .rust-regel__paneel { display: inline-flex; }
@media (max-width: 700px) { .rust-regel { display: none; } }

/* rustmodus: klein 'try me'-label met pijltje naar het TD-knopje; verdwijnt na de eerste klik of als het paneel openstaat */
.rust-regel__probeer { position: absolute; left: 6px; bottom: 30px; display: flex; align-items: flex-start; gap: 3px; font-family: "Archivo Expanded", var(--font-sans); font-weight: 800; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: #FFB441; white-space: nowrap; pointer-events: none; animation: rust-probeer 2.4s ease-in-out infinite; }
.rust-regel__probeer svg { width: 22px; height: 17px; margin-top: 2px; }
@keyframes rust-probeer { 0%, 100% { translate: 0 0; } 50% { translate: 0 -3px; } }
.rust-regel.is-geprobeerd .rust-regel__probeer, .rust-regel:hover .rust-regel__probeer, .rust-regel:focus-within .rust-regel__probeer { opacity: 0; transition: opacity 0.3s; }
.loader__mark--td { width: min(150px, 32vw); }
@media (prefers-reduced-motion: reduce) { .rust-regel__probeer { animation: none; } }

/* laadscherm zonder klein logo: alleen de donkere vlakte die wegvaagt (het grote logo staat al in de hero) */
.loader__mark { display: none !important; }
