/* ==========================================================================
   Zitcoach Pages by Adsplode – front end + editor
   Everything is scoped to .zc (the section block) so the theme is untouched.
   ========================================================================== */

.zc {
	--zc-orange: #F79A2E;
	--zc-ink: #0E2A20;
	--zc-ink-2: #16201B;
	--zc-text: #3F4A45;
	--zc-muted: #5F6A65;
	--zc-deep: #0F3127;
	--zc-deep-2: #1A4436;
	--zc-green: #2E9E45;
	--zc-green-text: #1C8A3B;
	--zc-green-dark: #136B32;
	--zc-gray: #F2F4F3;
	--zc-line: #E4E8E6;
	--zc-cream: #FDF0DA;
	--zc-mint: #E3EEE6;
	--zc-red: #B4472B;
	--zc-display: 'Bricolage Grotesque', system-ui, sans-serif;
	--zc-body: 'Figtree', system-ui, sans-serif;
	--zc-serif: 'Cormorant', Georgia, serif;

	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	font-family: var(--zc-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--zc-ink-2);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
.zc *, .zc *::before, .zc *::after { box-sizing: border-box; }
body.zc-canvas { margin: 0; background: #fff; overflow-x: hidden; }
.zc.zc-section { overflow-x: clip; }
.zc-main { display: block; }
.zc-main > .zc { margin-block: 0 !important; }
.zc.alignfull { margin-block: 0; }
:where(.wp-site-blocks, .entry-content, .wp-block-post-content) > .zc.alignfull + .zc.alignfull { margin-block-start: 0; }

/* Reset theme typography inside the blocks */
.zc.zc-section :is(h1, h2, h3, h4, p, figure, blockquote) { margin: 0; padding: 0; }
.zc.zc-section :is(h1, h2, h3, h4) {
	font-family: var(--zc-display);
	color: var(--zc-ink);
	letter-spacing: -0.02em;
	text-transform: none;
	font-style: normal;
}
.zc.zc-section h1 { font-size: clamp(34px, 3.6vw, 52px); line-height: 1.08; font-weight: 800; }
.zc.zc-section h2 { font-size: clamp(32px, 4.4vw, 46px); line-height: 1.12; font-weight: 800; }
.zc.zc-section h3 { font-size: 22px; line-height: 1.3; font-weight: 700; }
.zc.zc-section p { font-size: 16px; line-height: 1.6; color: var(--zc-text); }
.zc.zc-section :is(strong, b) { font-weight: 700; }
.zc.zc-section .is-style-zc-body { font-size: 16px; line-height: 1.65; }
.zc.zc-section .is-style-zc-large { font-size: 17px; line-height: 1.65; }
.zc.zc-section .is-style-zc-lead-sm { font-size: 17px; line-height: 1.65; font-weight: 600; color: #fff; max-width: 560px; margin-inline: auto; }
.zc.zc-section :is(p, h1, h2, h3, li) { text-wrap: wrap; }
.zc.zc-section a { color: var(--zc-green-dark); }
.zc.zc-section img { max-width: 100%; display: block; }

/* Rich-text formats (toolbar buttons in the editor) */
.zc .zc-fmt-accent { color: var(--zc-orange); }
.zc .zc-fmt-green { color: var(--zc-green-text); }
.zc .zc-fmt-muted { color: #9AA5A0; }
.zc .zc-fmt-red { color: var(--zc-red); }

/* ---------- Sections ---------- */
.zc-pad--normal { padding-block: clamp(56px, 8.5vw, 120px); }
.zc-pad--tight { padding-block: clamp(40px, 6vw, 80px); }
.zc-pad--top { padding-top: clamp(56px, 8.5vw, 120px); padding-bottom: clamp(24px, 3vw, 40px); }
.zc-pad--none { padding-block: 0; }

.zc-section--white { background: #fff; }
.zc-section--gray { background: var(--zc-gray); }
.zc-section--dark { background: var(--zc-deep); color: #fff; }
.zc-section--dark :is(h1, h2, h3) { color: #fff !important; }
.zc.zc-section--dark p { color: rgba(255, 255, 255, 0.75); }

.zc-wrap { position: relative; width: 100%; margin: 0 auto; padding-inline: 24px; }
.zc-wrap--wide { max-width: 1328px; }
.zc-wrap--medium { max-width: 1184px; }
.zc-wrap--narrow { max-width: 1048px; }

.zc-center { text-align: center; }
.zc-center :is(.zc-grid, .zc-split, .zc-compare, .zc-faq, .zc-carousel) { text-align: left; }
.zc-center .wp-block-buttons { justify-content: center; }
.zc-center > .zc-wrap > p { max-width: 640px; margin-inline: auto; }

/* Vertical rhythm */
.zc.zc-section :is(.zc-wrap, .zc-col, .zc-card, .zc-faq__a, .zc-flex--column) > * + * { margin-top: 20px; }
.zc.zc-section :is(.zc-wrap, .zc-col, .zc-card) > :is(h1, h2) + p { margin-top: 16px; }
.zc.zc-section :is(.zc-wrap, .zc-col, .zc-card) > h3 + p { margin-top: 10px; }
.zc.zc-section :is(.zc-wrap, .zc-col, .zc-card) > * + .wp-block-buttons { margin-top: 32px; }
.zc.zc-section :is(.zc-wrap, .zc-col, .zc-card) > .wp-block-buttons + p { margin-top: 12px; }
.zc.zc-section .zc-wrap > * + :is(.zc-grid, .zc-split, .zc-carousel, .zc-compare, .zc-faq-list) { margin-top: clamp(28px, 4vw, 48px); }
.zc.zc-section .zc-wrap > .zc-header + * { margin-top: 32px; }
.zc.zc-section .zc-wrap > :is(.zc-grid, .zc-split, .zc-card, .zc-carousel, .zc-compare, .zc-faq) + :is(.zc-flex, .wp-block-buttons, p) { margin-top: clamp(28px, 4vw, 48px); }
.zc.zc-section .zc-wrap > .zc-carousel + .zc-card { margin-top: clamp(32px, 4.5vw, 56px); }
/* A card after a row of stat pills (booking page): 56px like the design */
.zc.zc-section .zc-wrap > .zc-flex + .zc-card { margin-top: clamp(36px, 4.5vw, 56px); }
/* A highlighted card after a columns / grid layout (e.g. the cream Flexchair card): 64px like the design */
.zc.zc-section .zc-wrap > :is(.zc-split, .zc-grid) + .zc-card { margin-top: clamp(40px, 5vw, 64px); }
.zc.zc-section .zc-wrap > * + .zc-faq { margin-top: 18px; }
.zc.zc-section .zc-wrap > h2 + .zc-faq { margin-top: 44px; }
.zc.zc-section .zc-wrap > .zc-grid + .zc-grid,
.zc.zc-section .zc-wrap > .zc-card + .zc-grid { margin-top: 22px; }
.zc.zc-section :is(.zc-grid, .zc-split, .zc-flex) > * { margin: 0 !important; }

/* ---------- Layout blocks ---------- */
.zc-split { display: grid; gap: clamp(28px, 5vw, 72px); grid-template-columns: 1fr 1fr; }
.zc-gap--m { gap: clamp(24px, 3vw, 40px); }
.zc-gap--xl { gap: clamp(40px, 7vw, 96px); }
.zc-split--3-2 { grid-template-columns: 3fr 2fr; }
.zc-split--2-3 { grid-template-columns: 2fr 3fr; }
.zc-split--7-5 { grid-template-columns: 1.45fr 1fr; }
.zc-split--5-7 { grid-template-columns: 1fr 1.45fr; }
.zc-split--2-1 { grid-template-columns: 2fr 1fr; }
.zc-split--1-2 { grid-template-columns: 1fr 2fr; }
.zc-split--aside { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 48px; }
.zc-split--title-aside { grid-template-columns: minmax(0, 760px) minmax(0, 460px); justify-content: space-between; gap: 32px; }
.zc-align--start { align-items: start; }
.zc-align--center { align-items: center; }
.zc-align--end { align-items: end; }
.zc-align--stretch { align-items: stretch; }
.zc-col { display: flex; flex-direction: column; min-width: 0; }
.zc-justify--between.zc-col { justify-content: space-between; }
.zc-justify--center.zc-col { justify-content: center; }
.zc-justify--end.zc-col { justify-content: flex-end; }

.zc-grid { display: grid; gap: var(--zc-gap, 22px); grid-template-columns: repeat(auto-fit, minmax(min(var(--zc-min, 260px), 100%), 1fr)); }

.zc-flex { display: flex; flex-wrap: wrap; gap: var(--zc-gap, 16px); }
.zc-flex--column { flex-direction: column; flex-wrap: nowrap; }
.zc-flex--column > * + * { margin-top: 0 !important; }
.zc-flex.zc-justify--center { justify-content: center; }
.zc-flex.zc-justify--end { justify-content: flex-end; }
.zc-flex.zc-justify--between { justify-content: space-between; }
.zc-items--start { align-items: flex-start; }
.zc-items--center { align-items: center; }
.zc-items--end { align-items: flex-end; }
.zc-items--baseline { align-items: baseline; }
.zc-items--stretch { align-items: stretch; }
.zc-flex > .zc-card--pad-none { flex: 1 1 300px; min-width: 0; }
@media (max-width: 640px) {
	.zc-card--cream > .zc-flex > .zc-media { margin-inline: auto !important; }
	.zc-card--cream > .zc-flex > .zc-media { height: min(var(--zc-h, 260px), 220px); }
}

@media (max-width: 900px) {
	.zc-split, .zc-split[class*="zc-split--"] { grid-template-columns: 1fr; }
}
/* Card laid over an image (location: address card on the map) */
.zc-split--overlay { grid-template-columns: 1fr !important; }
.zc-split--overlay > .zc-col { grid-area: 1 / 1; }
.zc-split--overlay > .zc-col:first-child { position: relative; z-index: 2; align-self: stretch; width: min(380px, 100%); padding: 20px; }
.zc-split--overlay > .zc-col:first-child > .zc-card { flex: 1 1 auto; display: flex; flex-direction: column; }
.zc.zc-section .zc-split--overlay .zc-card > :is(h3, p) + .zc-icon-text { margin-top: auto; padding-top: 48px; }
.zc.zc-section .zc-split--overlay .zc-card > .zc-icon-text + .zc-icon-text { margin-top: 14px; }
.zc-split--overlay .zc-icon-text { font-size: 14px; color: var(--zc-text); }
.zc-split--overlay .zc-map { min-height: var(--zc-h, 520px); }
@media (max-width: 700px) {
	.zc-split--overlay > .zc-col { grid-area: auto; }
	.zc-split--overlay > .zc-col:first-child { width: 100%; padding: 0; }
	.zc.zc-section .zc-split--overlay .zc-card > :is(h3, p) + .zc-icon-text { padding-top: 24px; }
	.zc-split--overlay .zc-map { min-height: 0; height: min(var(--zc-h, 520px), 360px); }
}
/* Big quote gets a divider above when it follows a row */
.zc.zc-section .zc-wrap > .zc-split + .is-style-zc-bigquote { margin-top: clamp(40px, 6vw, 80px); padding-top: clamp(36px, 5.5vw, 72px); border-top: 1px solid var(--zc-line); }
/* "Onderbouwd, niet bedacht": title between two thin lines */
.zc.zc-section .zc-card--dark-2.zc-card--center > h3:first-child { display: flex; align-items: center; gap: 24px; font-family: var(--zc-display); }
.zc.zc-section .zc-card--dark-2.zc-card--center > h3:first-child::before,
.zc.zc-section .zc-card--dark-2.zc-card--center > h3:first-child::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, 0.12); }
/* Thin divider above stacked rows (e.g. "Geloof me." section), like the design */
.zc.zc-section .zc-wrap > h2 + .zc-split:has(+ .zc-split) { margin-top: clamp(28px, 4.5vw, 56px); padding-top: clamp(28px, 4.5vw, 56px); border-top: 1px solid #DCE1DE; }
.zc.zc-section .zc-wrap > .zc-split + .zc-split { margin-top: clamp(28px, 4.5vw, 56px); padding-top: clamp(28px, 4.5vw, 56px); border-top: 1px solid #DCE1DE; }

/* ---------- Cards ---------- */
.zc-card { position: relative; border-radius: 16px; min-width: 0; }
.zc-card--pad-none { padding: 0; }
.zc-card--pad-s { padding: 20px 24px; }
.zc-card--pad-m { padding: clamp(22px, 2.1vw, 30px); }
.zc-card--pad-l { padding: clamp(24px, 3vw, 40px); }
.zc-card--white { background: #fff; border: 1px solid var(--zc-line); box-shadow: 0 4px 18px rgba(14, 42, 32, 0.06); }
.zc-card--soft { background: #fff; box-shadow: 0 6px 24px rgba(14, 42, 32, 0.07); }
.zc-card--dark { background: var(--zc-deep); color: #fff; }
.zc-card--dark-2 { background: var(--zc-deep-2); color: #fff; }
.zc-card--outline-white { border: 1px solid rgba(255, 255, 255, 0.14); color: #fff; }
.zc-card--outline-white:has(> p:only-child) { display: flex; align-items: center; }
.zc.zc-section .zc-card--dark.zc-card--center > h2 { max-width: 820px; margin-inline: auto; }
.zc-card:is(.zc-card--dark, .zc-card--dark-2, .zc-card--outline-white) :is(h2, h3) { color: #fff; }
.zc.zc-section .zc-card:is(.zc-card--dark, .zc-card--dark-2, .zc-card--outline-white) p { color: rgba(255, 255, 255, 0.78); }
.zc-card--cream { background: var(--zc-cream); border: 1px solid #F1D6A6; border-radius: 18px; }
.zc-card--mint { background: var(--zc-mint); }
.zc-card--sand { background: #ECEEE9; }
.zc-card--outline-green { background: #fff; border: 1.5px solid #2E8B4F; border-radius: 18px; box-shadow: 0 6px 24px rgba(14, 42, 32, 0.06); }
.zc-card--outline-red { background: #fff; border: 1.5px solid #E58C84; border-radius: 18px; box-shadow: 0 6px 24px rgba(14, 42, 32, 0.06); }
.zc-card--plain { background: transparent; border-radius: 0; }

.zc-card--roomy { border-radius: 28px; }
.zc-card--center { text-align: center; }
.zc.zc-section .zc-card > .zc-flex + h3 { margin-top: 26px; }
.zc.zc-section .zc-col > p + .zc-card--plain { margin-top: clamp(24px, 3vw, 36px); padding-top: clamp(24px, 3vw, 36px); border-top: 1px solid #DCE1DE; }
.zc.zc-section .zc-col > p + .zc-card--plain > h3 { font-family: var(--zc-body); font-size: 22px; line-height: 1.3; font-weight: 600; letter-spacing: 0; }
.zc.zc-section .zc-col > p + .zc-card--plain > h3 + p { margin-top: 6px; }
/* "Over Han": story text is set a little tighter, like the design */
.zc.zc-section .zc-split:has(.zc-media--quote) .zc-col > .is-style-zc-body { font-size: 15px; line-height: 22px; }
.zc.zc-section .zc-split:has(.zc-media--quote) .zc-col > .is-style-zc-body + .is-style-zc-body { margin-top: 17px; }
.zc.zc-section .zc-split:has(.zc-media--quote) .zc-col > h2 + .is-style-zc-body { margin-top: 32px; }
.zc.zc-section .zc-split:has(.zc-media--quote) .zc-col > h2 { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.12; }
.zc-split:has(.zc-media--quote) { column-gap: clamp(40px, 8vw, 106px); }
.zc-media--quote .zc-media__quote { top: 40%; }
.zc-card--center .zc-icon-text--tile, .zc-card--center .zc-icon-text--big-badge { justify-content: center; }
.zc-card--center .zc-media--blob { margin-inline: auto !important; }
.zc-flex > .zc-media { flex: 0 0 min(240px, 100%); }
.zc.zc-section--dark .zc-card--dark-2.zc-card--center > h3:first-child { font-size: 28px; font-weight: 600; }
.zc.zc-section .zc-card:is(.zc-card--dark-2, .zc-card--outline-white) > h3 { font-family: var(--zc-body); font-size: 22px; font-weight: 700; letter-spacing: 0; }
.zc.zc-section .zc-card:is(.zc-card--dark-2, .zc-card--outline-white) > p { font-size: 17px; line-height: 1.65; }
.zc-card--dark-2 .zc-card--plain h3 { font-family: var(--zc-body); font-size: 17px; font-weight: 600; letter-spacing: 0; }
.zc.zc-section .zc-card--dark-2 .zc-card--plain p { font-size: 14px; line-height: 1.55; }
.zc.zc-section .zc-card--soft.zc-card--center h3 { font-family: var(--zc-body); font-size: 20px; line-height: 1.2; font-weight: 600; letter-spacing: 0; margin-top: 18px; }
.zc.zc-section .zc-card--soft.zc-card--center h3 + p { margin-top: 4px; line-height: 1.2; }
.zc-card--soft.zc-card--center .zc-media--blob { width: 200px; }
.zc-card--soft.zc-card--center.zc-card--pad-m { padding: 24px 20px; }
.zc-section--white .zc-card--dark.zc-card--pad-l { border-radius: 28px; padding-block: clamp(56px, 8vw, 96px); }

/* ---------- Icon + text ---------- */
.zc-icon { display: inline-flex; flex: none; align-items: center; justify-content: center; }
.zc-icon svg { width: 100%; height: 100%; }
.zc-icon-text { display: flex; gap: 14px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: var(--zc-ink-2); }
.zc-icon-text .zc-icon { width: 18px; height: 18px; margin-top: 3px; }
.zc-icon-text__text { min-width: 0; }
.zc-tone--green .zc-icon { color: var(--zc-green-text); }
.zc-tone--red .zc-icon { color: #C7402F; }
.zc-tone--orange .zc-icon { color: var(--zc-orange); }
.zc-tone--white .zc-icon { color: #fff; }
.zc-tone--ink .zc-icon { color: var(--zc-ink); }
.zc-section--dark .zc-icon-text, .zc-card--dark .zc-icon-text { color: #fff; }

.zc-icon-text--box { align-items: center; gap: 20px; padding: 20px 24px; background: #F4F6F5; border: 1px solid var(--zc-line); border-radius: 10px; font-weight: 500; }
.zc-icon-text--box .zc-icon { width: 34px; height: 34px; margin: 0; padding: 10px; border-radius: 50%; background: #F6D9D2; color: var(--zc-red); }

.zc-icon-text--tile .zc-icon { width: 56px; height: 56px; padding: 14px; margin: 0 auto; border-radius: 10px; background: rgba(247, 154, 46, 0.14); }
.zc-icon-text--tile { justify-content: center; }
.zc-icon-text--tile.zc-tone--green .zc-icon { width: 112px; height: 112px; padding: 30px; border-radius: 12px; margin: 0; background: #EEF2EF; color: var(--zc-green-dark); }
.zc-icon-text--tile.zc-tone--green .zc-icon svg { stroke-width: 1.6; }

.zc-icon-text--big-badge .zc-icon { width: 60px; height: 60px; padding: 15px; margin: 0; border-radius: 50%; }
.zc-icon-text--big-badge.zc-tone--orange .zc-icon { background: var(--zc-orange); color: var(--zc-deep); }
.zc-icon-text--big-badge.zc-tone--white .zc-icon { width: 48px; height: 48px; padding: 13px; background: #fff; color: var(--zc-green-dark); }
.zc-icon-text--big-badge.zc-tone--green .zc-icon { background: #E2EFE6; color: var(--zc-green-dark); }
.zc-icon-text--big-badge.zc-tone--orange .zc-icon svg { stroke-width: 3; }

.zc-icon-text--icon-lg .zc-icon { width: 34px; height: 34px; margin: 0; }
.zc-icon-text--icon-lg .zc-icon svg { stroke-width: 1.6; }

.zc-icon-text--decor { color: #C5CCD3; }
.zc-icon-text--decor .zc-icon { width: 240px; height: 150px; margin: 24px 0 0 100px; color: #C5CCD3; }

/* ---------- Stats ---------- */
.zc-stat { display: flex; align-items: center; gap: 22px; }
.zc-stat__value { display: inline-flex; align-items: center; gap: 10px; font-family: var(--zc-display); font-weight: 700; white-space: nowrap; }
.zc-stat__value { line-height: 1; }
/* Star sits on the digits' baseline and scales with them, so it lines up with any font (also the fallback while fonts load). */
.zc-stat__value:has(.zc-stat__star) { align-items: baseline; }
.zc-stat__star { display: inline-block; flex: none; position: relative; top: 0.13em; width: 0.92em; height: 0.92em; color: var(--zc-orange); }
.zc-stat__star svg { display: block; width: 100%; height: 100%; }
.zc-stat__label { font-size: 14px; line-height: 1.4; }
.zc-stat--card { padding: 24px 26px; border-radius: 12px; background: rgba(38, 72, 60, 0.88); border: 1px solid rgba(255, 255, 255, 0.06); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; }
.zc-stat--card .zc-stat__value { font-size: 38px; }
.zc-stat--card .zc-stat__label { color: rgba(255, 255, 255, 0.75); }
.zc-stat--pill { display: inline-flex; gap: 10px; padding: 12px 22px; border: 1px solid #E1E6E3; border-radius: 999px; background: #fff; }
.zc-stat--pill .zc-stat__value { font-size: 20px; color: var(--zc-ink-2); }
.zc-stat--pill .zc-stat__label { color: var(--zc-text); }

/* ---------- Media ---------- */
.zc-media { position: relative; height: var(--zc-h, 420px); margin: 0; }
.zc-media__img, .zc-media__placeholder { width: 100%; height: 100%; border-radius: var(--zc-r, 16px); }
.zc-media--fixed { width: var(--zc-w); max-width: 100%; flex: 0 0 auto !important; }
.zc-card > .zc-flex:first-child > .zc-media--fixed + .is-style-zc-stepnum { align-self: flex-start; margin-top: 8px !important; }
.zc-media__img { object-fit: cover; }
.zc-media__placeholder { display: flex; align-items: center; justify-content: center; padding: 16px; background: #DDE2E0; color: var(--zc-muted); font-size: 13px; font-weight: 500; text-align: center; }
.zc-split.zc-align--stretch > .zc-col > .zc-media:only-child { height: 100%; min-height: var(--zc-h, 420px); }
.zc-media--shadow .zc-media__img { box-shadow: 0 24px 60px rgba(14, 42, 32, 0.18); }
.zc-media--blend .zc-media__img { mix-blend-mode: multiply; }
.zc-media--contain .zc-media__img { object-fit: contain; }
.zc-tint--orange { filter: hue-rotate(170deg) saturate(1.2); }
.zc-media--blob { width: 200px; max-width: 100%; margin-inline: auto; overflow: hidden; border-radius: 0 0 8px 8px; }
.zc-media__blob { position: absolute; left: 10%; top: 10%; width: 80%; height: 80%; border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; background: var(--zc-green); }
.zc-media--blob .zc-media__img { position: relative; z-index: 1; border-radius: 0; mix-blend-mode: normal; object-position: center bottom; }
.zc-media__quote { position: absolute; right: clamp(-64px, -4vw, -16px); top: 46%; width: clamp(96px, 11vw, 150px); color: var(--zc-green); filter: drop-shadow(0 10px 24px rgba(14, 42, 32, 0.18)); animation: zc-float 5s ease-in-out infinite; }
.zc-media__quote svg { overflow: visible; stroke: #fff; stroke-width: 0.7; stroke-linejoin: round; paint-order: stroke; }
.zc-hero-media .zc-media__img, .zc-section--hero .zc-media__img { box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35); }
@media (max-width: 640px) {
	.zc-faq { padding: 14px 18px; }
	.zc-faq__a { padding-right: 0; }
	.zc .zc-wrap > .zc-faq + .zc-faq { margin-top: 12px; }
	.zc-compare__row { min-width: 0; font-size: 13px; line-height: 1.35; }
	.zc-compare__row > span { padding: 12px 12px; min-width: 0; overflow-wrap: break-word; }
	.zc-icon-text--box { padding: 16px 18px; gap: 14px; }
	.zc-icon-text--decor { display: none; }
	.zc-stat--card { padding: 18px 20px; }
	.zc-stat--card .zc-stat__value { font-size: 32px; }
}
@media (max-width: 900px) {
	.zc-media { height: min(var(--zc-h, 420px), calc(60vw + 140px)); }
	.zc-media__quote { right: 12px; }
}

.zc-embed { position: relative; min-height: var(--zc-embed-h, 680px); border-radius: 8px; overflow: hidden; }
.zc-embed :is(iframe, .calendly-inline-widget) { display: block; width: 100% !important; min-height: var(--zc-embed-h, 680px); border: 0; }
.zc-embed--fallback, .zc-embed--empty { min-height: 0; }
.zc-embed--fallback img { width: 100%; height: auto; display: block; border-radius: 8px; }
.zc-embed--empty .zc-media__placeholder { min-height: 320px; }
/* Equal-height columns: a card that is the only thing in a stretched column fills it */
.zc-split.zc-align--stretch > .zc-col > .zc-card:only-child { flex: 1 1 auto; display: flex; flex-direction: column; }
.zc-split.zc-align--stretch > .zc-col > .zc-card:only-child > .zc-embed:only-child { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; }
.zc-split.zc-align--stretch > .zc-col > .zc-card:only-child > .zc-embed:only-child > :is(iframe, .calendly-inline-widget, div) { flex: 1 1 auto; }
/* Without embed code the fallback image keeps its own height (like the design): the card hugs it */
.zc-split.zc-align--stretch > .zc-col > .zc-card:only-child:has(> .zc-embed--fallback:only-child) { flex: 0 0 auto; }

.zc-map { position: relative; height: var(--zc-h, 520px); margin: 0; overflow: hidden; border-radius: var(--zc-r, 16px); background: #E4EEE7; }
.zc-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.zc-map__preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.zc-map__load { position: absolute; left: 50%; top: 50%; translate: -50% -50%; min-height: 48px; padding: 12px 22px; border: 0; border-radius: 999px; background: #fff; color: var(--zc-ink); font: 600 15px/1.2 var(--zc-body); box-shadow: 0 8px 24px rgba(14, 42, 32, 0.18); cursor: pointer; }
@media (min-width: 701px) { .zc-split--overlay .zc-map { height: 100%; } }
@media (max-width: 700px) { .zc-map { height: min(var(--zc-h, 520px), 360px); } }

/* Play button */
.zc-play { position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 76px; height: 76px; padding: 0; border: 0; border-radius: 50%; background: var(--zc-green); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; isolation: isolate; transition: scale 0.2s; }
.zc-play::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; background: inherit; animation: zc-pulse 2.4s ease-out infinite; will-change: transform, opacity; pointer-events: none; }
.zc-play svg { width: 32px; height: 32px; }
.zc-play:hover { scale: 1.08; }
.zc-play:focus-visible { outline: 3px solid var(--zc-orange); outline-offset: 4px; }

/* ---------- Testimonials + carousel ---------- */
.zc-carousel { --zc-cgap: 22px; --zc-per: var(--zc-per-d, 3); position: relative; }
.zc-carousel__viewport { overflow: hidden; margin: -8px 0; padding: 8px 0; touch-action: pan-y; cursor: grab; }
.zc-carousel.is-jumping .zc-carousel__track { transition: none; }
.zc-carousel.is-static .zc-carousel__nav { display: none; }
.zc-carousel.is-static .zc-carousel__viewport { cursor: default; }
.zc-carousel.is-dragging .zc-carousel__viewport { cursor: grabbing; }
.zc-carousel__track { display: flex; gap: var(--zc-cgap); transition: transform 0.6s cubic-bezier(0.22, 0.7, 0.2, 1); will-change: transform; }
.zc-carousel.is-dragging .zc-carousel__track { transition: none; }
.zc-carousel__track > * { flex: 0 0 calc((100% - (var(--zc-per) - 1) * var(--zc-cgap)) / var(--zc-per)); min-width: 0; }
.zc-carousel img { -webkit-user-drag: none; user-select: none; }
@media (max-width: 1024px) { .zc-carousel { --zc-per: min(2, var(--zc-per-d, 3)); } }
@media (max-width: 640px) { .zc-carousel { --zc-per: 1.12; --zc-cgap: 14px; } }
.zc-carousel__nav { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 28px; }
.zc-carousel__dots { display: flex; align-items: center; gap: 2px; }
.zc-carousel__dots[hidden] { display: none; }
.zc-carousel__dot { position: relative; width: 24px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; }
.zc-carousel__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.35); translate: -50% -50%; transition: width 0.3s, background 0.3s; }
.zc-carousel__dot.is-active::before { width: 22px; background: var(--zc-orange); }
.zc-carousel__dot:focus-visible { outline: 2px solid var(--zc-orange); outline-offset: -8px; border-radius: 8px; }
.zc-section:not(.zc-section--dark) .zc-carousel__dot::before { background: rgba(14, 42, 32, 0.25); }
.zc-carousel__btn { width: 52px; height: 52px; padding: 13px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, 0.35); background: transparent; color: #fff; cursor: pointer; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.zc-carousel__btn:hover { background: #fff; color: var(--zc-deep); border-color: #fff; }
.zc-carousel__btn:focus-visible { outline: 2px solid var(--zc-orange); outline-offset: 3px; }
.zc-section:not(.zc-section--dark) .zc-carousel__btn { border-color: rgba(14, 42, 32, 0.25); color: var(--zc-ink); }
.zc-section:not(.zc-section--dark) .zc-carousel__btn:hover { background: var(--zc-ink); color: #fff; }

.zc-testimonial { overflow: hidden; border-radius: 16px; background: #fff; color: var(--zc-ink-2); }
.zc-testimonial__media { position: relative; height: 420px; background: #DDE2E0; }
.zc-testimonial__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.zc-testimonial__media .zc-media__placeholder { border-radius: 0; }
.zc-testimonial .zc-play { left: auto; top: auto; right: 20px; bottom: 20px; translate: none; background: var(--zc-green-dark); }
.zc-testimonial__body { padding: 24px 24px 28px; }
.zc-testimonial__mark { display: block; width: 36px; height: 30px; color: var(--zc-green-dark); }
.zc.zc-section .zc-testimonial__name { margin-top: 14px; font-family: var(--zc-body); font-size: 24px; font-weight: 600; letter-spacing: 0; color: var(--zc-ink) !important; }
.zc.zc-section .zc-testimonial__quote { margin-top: 10px; font-size: 15px; line-height: 1.55; color: var(--zc-text); }

/* ---------- Header + wordmark ---------- */
.zc-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.zc-header--center { justify-content: center; }
.zc-header__home { text-decoration: none !important; }
.zc-logo { display: inline-flex; align-items: center; gap: 6px; color: #fff; }
.zc-header--dark .zc-logo { color: var(--zc-ink); }
.zc-logo__word { font-family: var(--zc-serif); font-weight: 500; font-size: 30px; line-height: 1; letter-spacing: 0.22em; }
.zc-logo__chair { width: 34px; height: 34px; color: var(--zc-green); }
.zc-header__btn { display: inline-flex; align-items: center; min-height: 46px; padding: 12px 22px; border: 1.5px solid var(--zc-orange); border-radius: 10px; background: rgba(36, 40, 18, 0.72); color: var(--zc-orange) !important; font-weight: 600; font-size: 15px; text-decoration: none !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: background 0.2s, color 0.2s; }
.zc-header__btn:hover { background: var(--zc-orange); color: var(--zc-ink-2) !important; }
.zc-header--dark .zc-header__btn { background: transparent; }
@media (max-width: 560px) {
	.zc-header { flex-wrap: nowrap; }
	.zc-logo__word { font-size: 21px; letter-spacing: 0.18em; }
	.zc-logo__chair { width: 26px; height: 26px; }
	.zc-header__btn { min-height: 44px; padding: 10px 14px; font-size: 13px; white-space: nowrap; }
}

.zc-wordmark { padding-bottom: 56px; border-bottom: 1px solid #DCE1DE; color: var(--zc-ink); }
.zc.zc-section :is(.zc-wordmark__img, .zc-wm) { display: block; width: 100%; height: auto; }
.zc-wm { overflow: visible; }
.zc-wm-chair { cursor: default; }
@media (max-width: 640px) { .zc-wordmark { padding-bottom: 36px; } }
.zc-logo--big { display: flex; align-items: flex-end; gap: 12px; color: var(--zc-ink); }
.zc-logo--big .zc-logo__word { font-size: clamp(34px, 13vw, 190px); line-height: 0.9; letter-spacing: 0.16em; }
.zc-logo--big .zc-logo__word { flex: none; }
.zc-logo--big .zc-logo__chair { flex: 0 1 240px; width: auto; min-width: 60px; height: auto; aspect-ratio: 1; color: #36A84F; }
.zc-logo--big .zc-logo__chair svg { display: block; }
@media (max-width: 640px) { .zc-logo--big .zc-logo__word { font-size: 11vw; letter-spacing: 0.12em; } .zc-logo--big .zc-logo__chair { min-width: 34px; } }
/* Footer (section with the big wordmark) */
.zc-section:has(.zc-wordmark) .zc-wrap > .zc-grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px; }
.zc-section:has(.zc-wordmark) .zc-wrap > .zc-grid > :first-child { flex: 1 1 240px; }
.zc-section:has(.zc-wordmark) .zc-wrap > .zc-grid > :nth-child(2) { flex: 1 1 200px; }
.zc-section:has(.zc-wordmark) .zc-wrap > .zc-grid > :last-child:not(:first-child) { flex: 0 1 auto; }
.zc.zc-section:has(.zc-wordmark) :is(p, .zc-icon-text) { font-size: 15px; color: #1E2A25; }
.zc.zc-section:has(.zc-wordmark) a { color: #1E2A25; text-decoration: none; }
.zc.zc-section:has(.zc-wordmark) a:hover { color: var(--zc-green-dark); text-decoration: underline; }
.zc-section:has(.zc-wordmark) .zc-icon-text { align-items: center; }
.zc-section:has(.zc-wordmark) .zc-icon-text .zc-icon { width: 20px; height: 20px; margin-top: 0; }

/* ---------- Pricing ---------- */
.zc-price { display: flex; align-items: flex-start; gap: 6px; font-family: var(--zc-display); color: var(--zc-ink-2); }
.zc-price__value { font-weight: 700; letter-spacing: -0.045em; }
.zc-price__old { color: #8E9893; font-weight: 500; text-decoration-thickness: 2px; }
.zc-price__note { font-family: var(--zc-body); font-size: 13px; color: var(--zc-muted); align-self: center; }
.zc-price--xl .zc-price__value { font-size: clamp(96px, 11vw, 150px); line-height: 0.92; color: #0B3D1F; }
.zc-price--xl .zc-price__old { font-size: clamp(24px, 2.4vw, 30px); line-height: 1; }
.zc-price--l { align-items: baseline; gap: 12px; }
.zc-price--l .zc-price__old { order: -1; font-size: 28px; }
.zc-price--l .zc-price__value { font-size: clamp(44px, 5vw, 58px); line-height: 1; letter-spacing: -0.03em; }
.zc-price--m { align-items: baseline; gap: 8px; }
.zc-price--m .zc-price__value { font-size: 40px; line-height: 1; letter-spacing: -0.03em; }

.zc-price-row { display: flex; align-items: center; gap: 18px; padding: 17px 0; border-top: 1px solid var(--zc-line); font-size: 17px; color: var(--zc-ink-2); }
.zc-price-row .zc-icon { width: 16px; height: 16px; color: var(--zc-green-text); }
.zc-price-row__label { flex: 1; }
.zc-price-row__value { font-weight: 600; }
.zc-pill { padding: 7px 14px; border-radius: 999px; background: #E2EFE6; color: var(--zc-green-dark); font-size: 14px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; }
.zc.zc-section :is(.zc-wrap, .zc-col, .zc-card) > .zc-price-row + .zc-price-row { margin-top: 0; }

/* ---------- FAQ ---------- */
.zc-faq { background: #fff; border-radius: 10px; padding: 18px 26px; }
.zc.zc-section .zc-wrap > .zc-faq + .zc-faq { margin-top: 18px; }
.zc-faq__q { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; cursor: pointer; list-style: none; font-size: 17px; font-weight: 500; color: var(--zc-ink); }
.zc-faq__q::-webkit-details-marker { display: none; }
.zc-faq__q:focus-visible { outline: 2px solid var(--zc-green); outline-offset: 4px; border-radius: 4px; }
.zc-faq__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border: 1.5px solid var(--zc-green-dark); border-radius: 50%; color: var(--zc-green-dark); line-height: 0; transition: background 0.2s, color 0.2s; }
.zc-faq__icon > span { display: flex; align-items: center; justify-content: center; width: 14px; height: 14px; }
.zc-faq__icon svg { display: block; width: 14px; height: 14px; stroke-width: 2.4; }
.zc-faq__q:hover .zc-faq__icon { background: var(--zc-green-dark); color: #fff; }
.zc-faq:not([open]) .zc-faq__minus, .zc-faq[open] .zc-faq__plus { display: none !important; }
.zc-faq__a { padding: 10px 48px 6px 0; }
.zc.zc-section .zc-faq__a p { font-size: 16px; line-height: 1.65; }

/* ---------- Comparison ---------- */
.zc-compare { overflow: hidden; border: 1px solid #DCE1DE; border-radius: 14px; background: #fff; }
.zc-compare__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); font-size: 15px; line-height: 1.25; }
.zc-compare__row > span { padding: 19px 26px; border-top: 1px solid var(--zc-line); color: var(--zc-text); }
.zc-compare__row > span:last-child { background: #EEF6F1; border-top-color: #DCEBE1; color: var(--zc-ink); font-weight: 600; }
.zc-compare__head > span { border-top: 0; font-weight: 600; color: var(--zc-ink); background: var(--zc-gray); }
.zc-compare__head > span:last-child { background: var(--zc-deep); color: #fff; }

/* ---------- Heading styles ---------- */
.zc.zc-section .is-style-zc-display { font-size: clamp(34px, 3.6vw, 52px); line-height: 1.08; font-weight: 800; max-width: 700px; }
.zc.zc-section .is-style-zc-xl { font-size: clamp(42px, 6.4vw, 76px); line-height: 1.05; font-weight: 700; }
.zc.zc-section .is-style-zc-l { font-size: clamp(36px, 5vw, 56px); line-height: 1.1; font-weight: 800; }
.zc.zc-section .is-style-zc-bigquote { font-size: clamp(34px, 5.4vw, 62px); line-height: 1.1; font-weight: 700; text-align: center; }
.zc.zc-section .is-style-zc-card-title { font-size: clamp(21px, 2.1vw, 27px); line-height: 1.35; font-weight: 600; letter-spacing: -0.01em; color: var(--zc-ink-2); white-space: pre-wrap; }
.zc.zc-section .is-style-zc-card-title-sm { font-family: var(--zc-body); font-size: 22px; line-height: 1.35; font-weight: 600; letter-spacing: 0; color: var(--zc-ink-2); }
.zc-card--sand .zc-flex > .is-style-zc-card-title-sm { white-space: nowrap; }
/* Notice title ("Han neemt maar een paar…"): orange dot with a soft halo, centred beside the text */
.zc.zc-section .is-style-zc-notice { display: flex; align-items: center; gap: 20px; font-family: var(--zc-body); font-size: clamp(24px, 3vw, 34px); line-height: 1.25; font-weight: 600; letter-spacing: -0.01em; color: var(--zc-ink-2); }
.zc.zc-section .is-style-zc-notice::before { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--zc-orange); box-shadow: 0 0 0 7px rgba(247, 154, 46, 0.22); }
.zc-card--cream:has(.is-style-zc-notice) { border-color: transparent; padding: clamp(28px, 4vw, 48px) clamp(24px, 4.5vw, 56px); }
.zc-card--cream:has(.is-style-zc-notice) > .zc-split { gap: 40px; }
@media (max-width: 900px) { .zc-card--cream:has(.is-style-zc-notice) > .zc-split { gap: 22px; } .zc.zc-section .is-style-zc-notice { gap: 16px; } }
.zc.zc-section .zc-card--cream:has(.is-style-zc-notice) .zc-col > p { font-size: 16px; line-height: 1.7; }
.zc.zc-section .is-style-zc-small { font-family: var(--zc-body); font-size: clamp(24px, 3vw, 34px); line-height: 1.25; font-weight: 600; letter-spacing: -0.01em; color: var(--zc-ink-2); }
.zc-section--hero .is-style-zc-display { color: #fff; }

/* ---------- Paragraph styles ---------- */
.zc.zc-section .is-style-zc-lead { font-size: 19px; line-height: 1.3; font-weight: 600; color: var(--zc-ink-2); }
.zc.zc-section .zc-col > .is-style-zc-display { margin-top: 22px; }
.zc.zc-section .zc-col > .is-style-zc-display + p { margin-top: 28px; }
.zc.zc-section .zc-col > .is-style-zc-lead + p { margin-top: 14px; }
.zc-section--hero .zc-col > p:not([class*="is-style-"]) { max-width: 520px; }
.zc.zc-section .is-style-zc-note { font-size: 14px; line-height: 1.5; color: var(--zc-muted); }
.zc.zc-section .is-style-zc-eyebrow, .zc.zc-section .is-style-zc-eyebrow-green { font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--zc-orange); }
.zc.zc-section .is-style-zc-eyebrow-green { color: var(--zc-green-text); }
.zc.zc-section :is(.is-style-zc-eyebrow, .is-style-zc-eyebrow-green) { line-height: 1.2; }
.zc.zc-section .zc-wrap > :is(.is-style-zc-eyebrow, .is-style-zc-eyebrow-green) + h2 { margin-top: 12px; }
.zc.zc-section .zc-col > :is(.is-style-zc-eyebrow, .is-style-zc-eyebrow-green) + h2 { margin-top: 14px; }
.zc.zc-section .zc-wrap > h2 + p { margin-top: 14px; }
.zc.zc-section .zc-col > h2 + .is-style-zc-body { margin-top: clamp(20px, 2.5vw, 36px); }
.zc.zc-section .zc-col > .is-style-zc-body + .is-style-zc-body { margin-top: 18px; }
.zc.zc-section .zc-col > h2 + p:not([class*="is-style-"]) { margin-top: 18px; max-width: 460px; }
.zc.zc-section :is(.is-style-zc-chip, .is-style-zc-chip-dot, .is-style-zc-chip-orange) { width: fit-content; line-height: 1.4; }
.zc-center :is(.is-style-zc-chip, .is-style-zc-chip-dot) { margin-inline: auto; }
.zc.zc-section .is-style-zc-chip { display: inline-block; padding: 6px 14px; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 999px; background: rgba(255, 255, 255, 0.1); font-size: 13px; color: #fff; }
.zc.zc-section .is-style-zc-chip-dot { display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; border: 1px solid #E1E6E3; border-radius: 999px; background: #fff; font-size: 13px; font-weight: 500; color: var(--zc-ink-2); }
.zc.zc-section .is-style-zc-chip-dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--zc-green); box-shadow: 0 0 0 3px #D7EEDC; }
.zc.zc-section .is-style-zc-chip-orange { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--zc-orange); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--zc-ink-2); }
.zc.zc-section .is-style-zc-green { font-size: 17px; font-weight: 500; color: #1C7A3B; }
.zc.zc-section .is-style-zc-stepnum { font-family: var(--zc-display); font-size: 52px; line-height: 1; font-weight: 700; color: #DCE1DE; }
.zc.zc-section .is-style-zc-time { margin-top: 4px; font-size: 14px; line-height: 1.2; font-weight: 600; color: var(--zc-green-text); }
.zc.zc-section .zc-card > .is-style-zc-time + p { margin-top: 20px; }
.zc.zc-section .is-style-zc-intro { font-size: 19px; color: #4A5550; max-width: 720px; margin-inline: auto; }
.zc.zc-section .is-style-zc-link a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--zc-green-dark); text-decoration: none; }
.zc.zc-section .is-style-zc-link a::after { content: "→"; transition: translate 0.2s; }
.zc.zc-section .is-style-zc-link a:hover { text-decoration: underline; }
.zc.zc-section .is-style-zc-link a:hover::after { translate: 3px 0; }
.zc.zc-section .is-style-zc-muted { font-size: 14px; color: var(--zc-muted); }
.zc.zc-section .is-style-zc-avatar { flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #E2EFE6; color: var(--zc-green-dark); font-family: var(--zc-display); font-size: 18px; font-weight: 700; line-height: 1; }
.zc.zc-section .zc-card--plain .zc-flex h3 { font-size: 24px; }
.zc.zc-section .is-style-zc-statement { font-size: clamp(20px, 2.2vw, 26px); line-height: 1.4; font-weight: 600; color: var(--zc-ink); max-width: 560px; }
.zc-section--dark .is-style-zc-note, .zc-section--hero .is-style-zc-note { color: rgba(255, 255, 255, 0.65) !important; }
.zc-section--dark .is-style-zc-lead { color: #fff !important; }

/* ---------- Buttons ---------- */
.zc .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.zc .wp-block-button:is(.is-style-zc-cta, .is-style-zc-cta-wide) .wp-block-button__link {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 16px 30px;
	border: 0;
	border-radius: 8px;
	background: var(--zc-orange);
	color: var(--zc-ink-2);
	font-family: var(--zc-body);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	transition: translate 0.2s, box-shadow 0.2s;
}
.zc .wp-block-button:is(.is-style-zc-cta, .is-style-zc-cta-wide) .wp-block-button__link::after {
	content: "";
	width: 18px;
	height: 18px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%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' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.zc .wp-block-button:is(.is-style-zc-cta, .is-style-zc-cta-wide) .wp-block-button__link::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 45%;
	height: 100%;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 100%);
	transform: translateX(-167%) skewX(-20deg);
	animation: zc-shine 3.4s ease-in-out infinite;
	will-change: transform;
	pointer-events: none;
}
.zc .wp-block-button:is(.is-style-zc-cta, .is-style-zc-cta-wide) .wp-block-button__link:hover { translate: 0 -2px; box-shadow: 0 10px 24px rgba(247, 154, 46, 0.35); color: var(--zc-ink-2); }
.zc .wp-block-button.is-style-zc-cta-wide { width: 100%; max-width: 430px; }
.zc .wp-block-button.is-style-zc-cta-wide .wp-block-button__link { width: 100%; }

/* ---------- Hero ---------- */
.zc-section--hero { overflow: hidden; padding: 28px 0 72px; color: #fff; background: linear-gradient(115deg, #0A251C 0%, #0D3226 48%, #12493A 100%); }
.zc-section--hero > .zc-wrap { position: relative; z-index: 1; }
.zc.zc-section--hero p { color: rgba(255, 255, 255, 0.72); }
.zc.zc-section--hero :is(h1, h2, h3) { color: #fff; }
.zc.zc-section--hero .is-style-zc-lead { color: #fff; }
.zc-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 80% center; opacity: 0.75; filter: grayscale(1) contrast(1.25) brightness(1.1); mix-blend-mode: luminosity; -webkit-mask-image: linear-gradient(90deg, transparent 15%, #000 65%); mask-image: linear-gradient(90deg, transparent 15%, #000 65%); pointer-events: none; }
.zc-hero-glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 50% 60% at 90% 40%, rgba(70, 175, 125, 0.28), rgba(70, 175, 125, 0) 70%), radial-gradient(ellipse 35% 45% at 96% 96%, rgba(70, 175, 125, 0.22), rgba(70, 175, 125, 0) 70%), linear-gradient(90deg, rgba(10, 37, 28, 0.55) 0%, rgba(10, 37, 28, 0) 55%); }
.zc-section--hero .zc-split { margin-top: 28px; }
.zc-section--hero .zc-split .zc-col:first-child { padding-top: clamp(0px, 3vw, 40px); }
.zc-section--hero .zc-grid { margin-top: clamp(36px, 5vw, 64px); }
.zc-section--hero .zc-media { max-width: 500px; margin-left: auto; }
@media (max-width: 900px) {
	.zc-section--hero .zc-media { margin-inline: auto; }
	/* Stacked hero: the same breathing room between text → image and image → stats */
	.zc-section--hero { --zc-hero-gap: clamp(44px, 8vw, 64px); }
	.zc-section--hero .zc-split { row-gap: var(--zc-hero-gap); }
	.zc.zc-section--hero .zc-wrap > .zc-split + :is(.zc-grid, .zc-flex) { margin-top: var(--zc-hero-gap) !important; }
}

/* ---------- Lightbox ---------- */
.zc-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(5, 20, 14, 0.86); }
.zc-lightbox__frame { position: relative; width: min(1100px, 100%); aspect-ratio: 16 / 9; background: #000; border-radius: 12px; overflow: hidden; }
.zc-lightbox__frame :is(iframe, video) { width: 100%; height: 100%; border: 0; display: block; }
.zc-lightbox__close { position: absolute; top: 16px; right: 16px; width: 48px; height: 48px; padding: 12px; border: 0; border-radius: 50%; background: #fff; color: var(--zc-ink); cursor: pointer; }


/* ==========================================================================
   Responsive settings per device (Responsive panel in the editor).
   Blocks carry CSS variables such as --zct-fs; tablet/mobile come later so they win.
   :not(#zc) lifts specificity above the layout rules without touching markup.
   ========================================================================== */
/* Desktop (and everything below unless overridden) */
.zc-rs[style*="--zcd-fs"]:not(#zc), .zc-rs[style*="--zcd-fs"]:not(#zc) :is(.wp-block-button__link, .zc-price__value, .zc-stat__value, .zc-faq__q, .zc-compare__row, .zc-icon-text__text) { font-size: var(--zcd-fs) !important; }
.zc-rs[style*="--zcd-lh"]:not(#zc), .zc-rs[style*="--zcd-lh"]:not(#zc) :is(.zc-icon-text__text) { line-height: var(--zcd-lh) !important; }
.zc-rs[style*="--zcd-ta"]:not(#zc) { text-align: var(--zcd-ta) !important; }
:is(.wp-block-buttons, .zc-flex, .zc-icon-text, .zc-header, .zc-stat, .zc-price).zc-rs[style*="--zcd-ta"]:not(#zc) { justify-content: var(--zcd-jc) !important; }
.zc-rs[style*="--zcd-mt"]:not(#zc) { margin-top: var(--zcd-mt) !important; }
.zc-rs[style*="--zcd-mb"]:not(#zc) { margin-bottom: var(--zcd-mb) !important; }
.zc-rs[style*="--zcd-pt"]:not(#zc) { padding-top: var(--zcd-pt) !important; }
.zc-rs[style*="--zcd-pb"]:not(#zc) { padding-bottom: var(--zcd-pb) !important; }
.zc-rs[style*="--zcd-px"]:not(#zc) { padding-left: var(--zcd-px) !important; padding-right: var(--zcd-px) !important; }
.zc-rs[style*="--zcd-mw"]:not(#zc) { max-width: var(--zcd-mw) !important; }
.zc-center .zc-rs[style*="--zcd-mw"]:not(#zc), .zc-rs[style*="--zcd-mw"]:not(#zc)[style*="--zcd-ta:center"], .zc-rs[style*="--zcd-mw"]:not(#zc)[style*="--zcd-ta: center"] { margin-left: auto !important; margin-right: auto !important; }
.zc-rs[style*="--zcd-gap"]:not(#zc) { gap: var(--zcd-gap) !important; }
.zc-rs[style*="--zcd-cols"]:not(#zc) { grid-template-columns: var(--zcd-cols) !important; }
.zc-rs[style*="--zcd-dir"]:not(#zc) { flex-direction: var(--zcd-dir) !important; }
:is(.zc-media, .zc-map, .wp-block-spacer).zc-rs[style*="--zcd-hgt"]:not(#zc) { height: var(--zcd-hgt) !important; min-height: 0 !important; }
.zc-embed.zc-rs[style*="--zcd-hgt"]:not(#zc) { --zc-embed-h: var(--zcd-hgt); }
.zc-rs[style*="--zcd-wd"]:not(#zc) { width: var(--zcd-wd) !important; max-width: 100% !important; flex: 0 0 auto !important; }
.zc-carousel.zc-rs[style*="--zcd-per"]:not(#zc) { --zc-per: var(--zcd-per) !important; }
/* Tablet: up to 1024px */
@media (max-width: 1024px) {
	.zc-rs[style*="--zct-fs"]:not(#zc), .zc-rs[style*="--zct-fs"]:not(#zc) :is(.wp-block-button__link, .zc-price__value, .zc-stat__value, .zc-faq__q, .zc-compare__row, .zc-icon-text__text) { font-size: var(--zct-fs) !important; }
	.zc-rs[style*="--zct-lh"]:not(#zc), .zc-rs[style*="--zct-lh"]:not(#zc) :is(.zc-icon-text__text) { line-height: var(--zct-lh) !important; }
	.zc-rs[style*="--zct-ta"]:not(#zc) { text-align: var(--zct-ta) !important; }
	:is(.wp-block-buttons, .zc-flex, .zc-icon-text, .zc-header, .zc-stat, .zc-price).zc-rs[style*="--zct-ta"]:not(#zc) { justify-content: var(--zct-jc) !important; }
	.zc-rs[style*="--zct-mt"]:not(#zc) { margin-top: var(--zct-mt) !important; }
	.zc-rs[style*="--zct-mb"]:not(#zc) { margin-bottom: var(--zct-mb) !important; }
	.zc-rs[style*="--zct-pt"]:not(#zc) { padding-top: var(--zct-pt) !important; }
	.zc-rs[style*="--zct-pb"]:not(#zc) { padding-bottom: var(--zct-pb) !important; }
	.zc-rs[style*="--zct-px"]:not(#zc) { padding-left: var(--zct-px) !important; padding-right: var(--zct-px) !important; }
	.zc-rs[style*="--zct-mw"]:not(#zc) { max-width: var(--zct-mw) !important; }
	.zc-center .zc-rs[style*="--zct-mw"]:not(#zc), .zc-rs[style*="--zct-mw"]:not(#zc)[style*="--zct-ta:center"], .zc-rs[style*="--zct-mw"]:not(#zc)[style*="--zct-ta: center"] { margin-left: auto !important; margin-right: auto !important; }
	.zc-rs[style*="--zct-gap"]:not(#zc) { gap: var(--zct-gap) !important; }
	.zc-rs[style*="--zct-cols"]:not(#zc) { grid-template-columns: var(--zct-cols) !important; }
	.zc-rs[style*="--zct-dir"]:not(#zc) { flex-direction: var(--zct-dir) !important; }
	:is(.zc-media, .zc-map, .wp-block-spacer).zc-rs[style*="--zct-hgt"]:not(#zc) { height: var(--zct-hgt) !important; min-height: 0 !important; }
	.zc-embed.zc-rs[style*="--zct-hgt"]:not(#zc) { --zc-embed-h: var(--zct-hgt); }
	.zc-rs[style*="--zct-wd"]:not(#zc) { width: var(--zct-wd) !important; max-width: 100% !important; flex: 0 0 auto !important; }
	.zc-carousel.zc-rs[style*="--zct-per"]:not(#zc) { --zc-per: var(--zct-per) !important; }
}
/* Mobile: up to 767px */
@media (max-width: 767px) {
	.zc-rs[style*="--zcm-fs"]:not(#zc), .zc-rs[style*="--zcm-fs"]:not(#zc) :is(.wp-block-button__link, .zc-price__value, .zc-stat__value, .zc-faq__q, .zc-compare__row, .zc-icon-text__text) { font-size: var(--zcm-fs) !important; }
	.zc-rs[style*="--zcm-lh"]:not(#zc), .zc-rs[style*="--zcm-lh"]:not(#zc) :is(.zc-icon-text__text) { line-height: var(--zcm-lh) !important; }
	.zc-rs[style*="--zcm-ta"]:not(#zc) { text-align: var(--zcm-ta) !important; }
	:is(.wp-block-buttons, .zc-flex, .zc-icon-text, .zc-header, .zc-stat, .zc-price).zc-rs[style*="--zcm-ta"]:not(#zc) { justify-content: var(--zcm-jc) !important; }
	.zc-rs[style*="--zcm-mt"]:not(#zc) { margin-top: var(--zcm-mt) !important; }
	.zc-rs[style*="--zcm-mb"]:not(#zc) { margin-bottom: var(--zcm-mb) !important; }
	.zc-rs[style*="--zcm-pt"]:not(#zc) { padding-top: var(--zcm-pt) !important; }
	.zc-rs[style*="--zcm-pb"]:not(#zc) { padding-bottom: var(--zcm-pb) !important; }
	.zc-rs[style*="--zcm-px"]:not(#zc) { padding-left: var(--zcm-px) !important; padding-right: var(--zcm-px) !important; }
	.zc-rs[style*="--zcm-mw"]:not(#zc) { max-width: var(--zcm-mw) !important; }
	.zc-center .zc-rs[style*="--zcm-mw"]:not(#zc), .zc-rs[style*="--zcm-mw"]:not(#zc)[style*="--zcm-ta:center"], .zc-rs[style*="--zcm-mw"]:not(#zc)[style*="--zcm-ta: center"] { margin-left: auto !important; margin-right: auto !important; }
	.zc-rs[style*="--zcm-gap"]:not(#zc) { gap: var(--zcm-gap) !important; }
	.zc-rs[style*="--zcm-cols"]:not(#zc) { grid-template-columns: var(--zcm-cols) !important; }
	.zc-rs[style*="--zcm-dir"]:not(#zc) { flex-direction: var(--zcm-dir) !important; }
	:is(.zc-media, .zc-map, .wp-block-spacer).zc-rs[style*="--zcm-hgt"]:not(#zc) { height: var(--zcm-hgt) !important; min-height: 0 !important; }
	.zc-embed.zc-rs[style*="--zcm-hgt"]:not(#zc) { --zc-embed-h: var(--zcm-hgt); }
	.zc-rs[style*="--zcm-wd"]:not(#zc) { width: var(--zcm-wd) !important; max-width: 100% !important; flex: 0 0 auto !important; }
	.zc-carousel.zc-rs[style*="--zcm-per"]:not(#zc) { --zc-per: var(--zcm-per) !important; }
}
/* Hide per device */
@media (min-width: 1025px) { .zc-hide-d { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .zc-hide-t { display: none !important; } }
@media (max-width: 767px) { .zc-hide-m { display: none !important; } }

/* ==========================================================================
   Hover interactions (mouse / trackpad only, so nothing "sticks" on touch screens).
   Only translate / scale / shadow / colour change: cheap for the browser.
   Big container cards (holding a columns or grid layout) don't lift; their image or icons react.
   ========================================================================== */
@media (hover: hover) and (pointer: fine) {
	.zc-card, .zc-testimonial, .zc-stat, .zc-icon-text--box, .zc-faq {
		transition: translate 0.35s cubic-bezier(0.22, 0.7, 0.2, 1), box-shadow 0.35s, border-color 0.3s, background-color 0.3s;
	}
	.zc-card :is(.zc-icon-text--tile, .zc-icon-text--big-badge, .zc-icon-text--icon-lg) .zc-icon,
	.zc-icon-text--box .zc-icon,
	.zc-card .zc-media__img, .zc-card .zc-media__blob, .zc-testimonial__media img,
	.zc-card .is-style-zc-stepnum, .zc-stat__star {
		transition: scale 0.45s cubic-bezier(0.34, 1.56, 0.64, 1), rotate 0.45s cubic-bezier(0.34, 1.56, 0.64, 1), translate 0.45s cubic-bezier(0.22, 0.7, 0.2, 1), color 0.3s;
	}

	/* Lift: every card that isn't a big container */
	.zc-card:not(.zc-card--plain):not(:has(.zc-split, .zc-grid)):hover { translate: 0 -5px; }
	.zc-card:is(.zc-card--white, .zc-card--soft):not(:has(.zc-split, .zc-grid)):hover { box-shadow: 0 16px 36px rgba(14, 42, 32, 0.12); }
	.zc-card:is(.zc-card--cream, .zc-card--mint, .zc-card--sand):not(:has(.zc-split, .zc-grid)):hover { box-shadow: 0 14px 32px rgba(14, 42, 32, 0.09); }
	.zc-card--dark:not(.zc-card--pad-l):hover { box-shadow: 0 18px 40px rgba(14, 42, 32, 0.3); }
	.zc-card--dark-2:not(.zc-card--center):hover { background-color: #1F4D3E; }
	.zc-card--outline-white:hover { border-color: rgba(255, 255, 255, 0.3); background-color: rgba(255, 255, 255, 0.03); }
	.zc-card--dark-2.zc-card--center:hover { translate: none; }

	/* Outlined cards (Wel / Niet voor jou, price card): border deepens and glows */
	.zc-card--outline-green:hover { border-color: #1C8A3B; box-shadow: 0 16px 36px rgba(46, 158, 69, 0.16); }
	.zc-card--outline-red:hover { border-color: #D2665C; box-shadow: 0 16px 36px rgba(199, 64, 47, 0.12); }

	/* Icons pop a little inside a hovered card */
	.zc-card:hover :is(.zc-icon-text--tile, .zc-icon-text--big-badge) .zc-icon { scale: 1.08; rotate: -4deg; }
	.zc-card:hover .zc-icon-text--icon-lg .zc-icon { scale: 1.12; }
	.zc-card--dark-2 .zc-card--plain:hover .zc-icon-text--tile .zc-icon { scale: 1.12; rotate: -6deg; }
	.zc-card:hover .is-style-zc-stepnum { color: #B9DCC3; }

	/* Images inside cards: gentle zoom (illustrations, Flexchair, X-ray, portraits) */
	.zc-card .zc-media:not(.zc-media--quote):not(.zc-media--blob) { overflow: hidden; border-radius: var(--zc-r, 16px); }
	.zc-card:hover .zc-media:not(.zc-media--quote):not(.zc-media--blob) .zc-media__img { scale: 1.04; }
	.zc-card--cream:hover .zc-media--contain .zc-media__img { scale: 1.05; rotate: -3deg; }
	.zc-card:hover .zc-media--blob .zc-media__img { translate: 0 -6px; }
	.zc-card:hover .zc-media--blob .zc-media__blob { scale: 1.07; }

	/* Testimonials */
	.zc-testimonial__media { overflow: hidden; }
	.zc-testimonial:hover { translate: 0 -5px; box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22); }
	.zc-testimonial:hover .zc-testimonial__media img { scale: 1.05; }

	/* Stats: hero glass cards brighten, pills get a green edge */
	.zc-stat--card:hover { translate: 0 -4px; background-color: rgba(44, 84, 69, 0.92); border-color: rgba(255, 255, 255, 0.16); }
	.zc-stat--card:hover .zc-stat__star { scale: 1.15; rotate: 12deg; }
	.zc-stat--pill:hover { translate: 0 -3px; border-color: #9FD0AE; box-shadow: 0 8px 20px rgba(14, 42, 32, 0.08); }

	/* "Hoeveel heb jij al geprobeerd" items and FAQ */
	.zc-icon-text--box:hover { translate: 6px 0; border-color: #EBC3B9; background-color: #F8F2F0; }
	.zc-icon-text--box:hover .zc-icon { scale: 1.12; rotate: 90deg; }
	.zc-faq:hover { box-shadow: 0 10px 26px rgba(14, 42, 32, 0.08); }
}

/* ---------- Hero intro (pure CSS: plays at first paint, no waiting for scripts) ---------- */
@keyframes zc-rise { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: none; } }
@keyframes zc-drop { from { opacity: 0; transform: translate3d(0, -14px, 0); } to { opacity: 1; transform: none; } }
@keyframes zc-fade-in { from { opacity: 0; } to { opacity: 1; } }
.zc-section--hero .zc-header > * { animation: zc-drop 0.6s cubic-bezier(0.22, 0.7, 0.2, 1) both; }
.zc-section--hero .zc-header > :nth-child(2) { animation-delay: 0.06s; }
.zc-section--hero .zc-split > .zc-col:first-child > * { animation: zc-rise 0.7s cubic-bezier(0.22, 0.7, 0.2, 1) both; animation-delay: 0.08s; }
.zc-section--hero .zc-split > .zc-col:first-child > :nth-child(2) { animation-delay: 0.14s; }
.zc-section--hero .zc-split > .zc-col:first-child > :nth-child(3) { animation-delay: 0.2s; }
.zc-section--hero .zc-split > .zc-col:first-child > :nth-child(4) { animation-delay: 0.26s; }
.zc-section--hero .zc-split > .zc-col:first-child > :nth-child(n+5) { animation-delay: 0.32s; }
.zc-section--hero .zc-split > .zc-col:last-child { animation: zc-rise 0.8s cubic-bezier(0.22, 0.7, 0.2, 1) 0.18s both; }
.zc-section--hero .zc-wrap > :is(.zc-grid, .zc-flex) > * { animation: zc-rise 0.7s cubic-bezier(0.22, 0.7, 0.2, 1) 0.36s both; }
.zc-section--hero .zc-wrap > :is(.zc-grid, .zc-flex) > :nth-child(2) { animation-delay: 0.42s; }
.zc-section--hero .zc-wrap > :is(.zc-grid, .zc-flex) > :nth-child(n+3) { animation-delay: 0.48s; }
.zc-hero-bg { animation: zc-fade-in 0.9s ease-out both; }

/* ---------- Motion ---------- */
/* Transform/opacity only, so they run on the compositor (no layout or repaint per frame). */
@keyframes zc-shine { 0% { transform: translateX(-167%) skewX(-20deg); } 45%, 100% { transform: translateX(300%) skewX(-20deg); } }
@keyframes zc-pulse { 0% { transform: scale(1); opacity: 0.55; } 70%, 100% { transform: scale(1.58); opacity: 0; } }
@keyframes zc-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
/* ScrollSmoother (desktop only): keep it below the admin bar */
body.admin-bar #smooth-wrapper { top: 32px !important; }
@media (max-width: 782px) { body.admin-bar #smooth-wrapper { top: 46px !important; } }
/* Phones / tablets: blur behind glass elements is expensive while scrolling; use a solid tint instead. */
@media (max-width: 900px), (hover: none) {
	.zc-stat--card { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(30, 62, 50, 0.96); }
	.zc-header__btn { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(28, 34, 16, 0.9); }
	.zc-hero-bg { will-change: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.zc *, .zc *::before, .zc *::after { animation: none !important; transition: none !important; }
}
