/*
Theme Name: De Keurcentrale
Theme URI: https://dekeurcentrale.nl
Author: De Keurcentrale
Description: Thema voor De Keurcentrale: keuringen en inspecties (NEN 1010, NEN 3140, NEN 1078, NEN 8078) in Zaandam, Amsterdam en omgeving. Met aanvraagformulier, WhatsApp-knop en conversiemeting.
Version: 2.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: keurcentrale
*/

:root {
	--kc-bx: #5a1828;
	--kc-bx-d: #3f0f1b;
	--kc-creme: #f8f3eb;
	--kc-creme-l: #fcf9f4;
	--kc-zand: #e8dac4;
	--kc-zand-d: #d6c09f;
	--kc-goud: #c6a46c;
	--kc-goud-l: #e9d5ae;
	--kc-tekst: #2e2220;
	--kc-grijs: #6a5c55;
	--kc-rand: #e5d9c8;
	--kc-wa: #1f7a4f;
	--kc-radius: 14px;
	--kc-schaduw: 0 12px 34px rgba(63, 15, 27, .07);
	--kc-kop: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--kc-letter: Mulish, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--kc-breed: 1200px;
}

html { scroll-behavior: smooth; }
body { margin: 0; background: var(--kc-creme); color: var(--kc-tekst); font-family: var(--kc-letter); -webkit-font-smoothing: antialiased; }
[id] { scroll-margin-top: 90px; }
.wp-site-blocks > *, main.wp-block-group > * { margin-block: 0 !important; }
.wp-site-blocks { padding: 0 !important; }
h1, h2, h3, h4 { font-family: var(--kc-kop); color: var(--kc-tekst); }
a { color: var(--kc-bx); }
:focus-visible { outline: 3px solid var(--kc-goud); outline-offset: 2px; }

/* ---------- Knoppen ---------- */
.wp-block-buttons { gap: .75rem; }
.wp-block-button__link {
	display: inline-flex; align-items: center; gap: .6rem;
	background: var(--kc-bx); color: #fff !important; border: 2px solid var(--kc-bx);
	font-family: var(--kc-letter); font-weight: 700; font-size: 1rem; line-height: 1.2;
	border-radius: 6px; padding: 1rem 1.6rem; text-decoration: none;
	transition: background .15s, border-color .15s, color .15s;
}
.wp-block-button__link:hover { background: var(--kc-bx-d); border-color: var(--kc-bx-d); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--kc-bx) !important; border-color: var(--kc-bx); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--kc-bx); color: #fff !important; }
.kc-knop-whatsapp .wp-block-button__link { background: var(--kc-wa); border-color: var(--kc-wa); }
.kc-knop-whatsapp .wp-block-button__link::before {
	content: ""; width: 1.1em; height: 1.1em; flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C9 3 3.3 8.6 3.3 15.6c0 2.4.7 4.7 1.9 6.7L3 29l6.9-2.1c1.9 1 4 1.6 6.1 1.6 7 0 12.7-5.6 12.7-12.6S23 3 16 3zm5.8 15.3c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2l-1 1.2c-.2.2-.4.2-.7.1-.3-.2-1.3-.5-2.5-1.6-.9-.8-1.6-1.8-1.7-2.1-.2-.3 0-.5.1-.6l.5-.6.3-.5v-.5l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.7s1.2 3.2 1.4 3.4c.2.2 2.4 3.6 5.8 5 2.9 1.1 3.4.9 4.1.8.7-.1 1.9-.8 2.2-1.6.3-.8.3-1.4.2-1.6l-.6-.4z'/%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 32 32'%3E%3Cpath d='M16 3C9 3 3.3 8.6 3.3 15.6c0 2.4.7 4.7 1.9 6.7L3 29l6.9-2.1c1.9 1 4 1.6 6.1 1.6 7 0 12.7-5.6 12.7-12.6S23 3 16 3zm5.8 15.3c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2l-1 1.2c-.2.2-.4.2-.7.1-.3-.2-1.3-.5-2.5-1.6-.9-.8-1.6-1.8-1.7-2.1-.2-.3 0-.5.1-.6l.5-.6.3-.5v-.5l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.7s1.2 3.2 1.4 3.4c.2.2 2.4 3.6 5.8 5 2.9 1.1 3.4.9 4.1.8.7-.1 1.9-.8 2.2-1.6.3-.8.3-1.4.2-1.6l-.6-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.kc-knop-whatsapp .wp-block-button__link:hover { background: #17603e; border-color: #17603e; }

/* ---------- Topbalk + header ---------- */
.kc-topbalk {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	background: var(--kc-bx-d); color: rgba(255,255,255,.82); font-size: .88rem;
	padding: .45rem max(1.25rem, calc((100% - var(--kc-breed)) / 2));
}
.kc-topbalk > * { margin: 0 !important; }
.kc-topbalk a { color: #fff; font-weight: 700; text-decoration: none; }
.kc-topbalk-tel a::before { content: "☏"; margin-right: .4rem; color: var(--kc-goud-l); }

.kc-header { position: sticky; top: 0; z-index: 50; background: rgba(252,249,244,.97); border-bottom: 1px solid var(--kc-rand); backdrop-filter: blur(8px); }
.kc-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; max-width: var(--kc-breed); margin: 0 auto; padding: .85rem 1.25rem; }
.kc-header-inner > * { margin: 0 !important; }
.kc-logo { font-family: var(--kc-kop); font-weight: 700; font-size: 1.45rem; letter-spacing: -.01em; line-height: 1; white-space: nowrap; }
.kc-logo a { color: var(--kc-bx); text-decoration: none; display: inline-flex; align-items: center; gap: .55rem; }
.kc-logo a::before {
	content: "K"; display: inline-grid; place-items: center; width: 1.7em; height: 1.7em; border-radius: 4px;
	background: var(--kc-bx); color: var(--kc-goud-l); font-size: .82em;
	box-shadow: inset -5px 0 0 var(--kc-goud);
}
.kc-header .wp-block-navigation { gap: 2rem; font-weight: 600; font-size: .98rem; }
.kc-header .wp-block-navigation a { color: var(--kc-tekst); text-decoration: none; }
.kc-header .wp-block-navigation a:hover { color: var(--kc-bx); }
.kc-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--kc-creme); padding: 2rem; }
.kc-header .wp-block-navigation__responsive-container.is-menu-open a { font-size: 1.3rem; }
.kc-header-cta .wp-block-button__link { padding: .75rem 1.2rem; font-size: .95rem; }
@media (max-width: 960px) {
	.kc-header-inner { gap: .75rem; }
	.kc-header-inner .wp-block-navigation { margin-left: auto !important; }
}
@media (max-width: 560px) {
	.kc-topbalk-gebied { display: none; }
	.kc-topbalk { justify-content: center; }
	.kc-logo { font-size: 1.15rem; }
	.kc-header-cta .wp-block-button__link { padding: .6rem .8rem; font-size: .85rem; }
}

/* ---------- Secties ---------- */
.kc-section { padding: clamp(3.5rem, 7vw, 6.5rem) 1.25rem; }
.kc-section > * { max-width: var(--kc-breed); margin-left: auto !important; margin-right: auto !important; }
.kc-section-wit { background: var(--kc-creme-l); }
.kc-eyebrow {
	display: flex; align-items: center; gap: 1rem;
	font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	color: #9a7a45; margin: 0 0 1rem !important;
}
.kc-eyebrow::after { content: ""; width: 7rem; height: 1px; background: currentColor; opacity: .5; }
.kc-section h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1.08; letter-spacing: -.02em; margin: 0 0 1rem; }
.kc-intro { color: var(--kc-grijs); font-size: 1.12rem; max-width: 720px; }
.kc-kop > * { max-width: 780px; }

/* ---------- Hero ---------- */
.kc-hero { background: var(--kc-bx); color: #fff; }
.kc-hero-kolommen { gap: 0 !important; margin: 0 !important; align-items: stretch !important; }
.kc-hero-tekst {
	padding: clamp(3rem, 6vw, 5.5rem) clamp(1.25rem, 4vw, 4rem) clamp(3rem, 6vw, 5rem) max(1.25rem, calc((100vw - var(--kc-breed)) / 2 + 1.25rem));
	display: flex; flex-direction: column; justify-content: center;
}
.kc-hero-tekst > * { margin-top: 0; margin-bottom: 0; }
.kc-hero .kc-eyebrow { color: var(--kc-goud-l); }
.kc-hero .kc-eyebrow::after { display: none; }
.kc-hero h1 { color: #fff; font-size: clamp(2.6rem, 6vw, 5rem); line-height: 1; letter-spacing: -.03em; margin: 0 0 1.4rem; }
.kc-hero-intro { color: rgba(255,255,255,.86); font-size: 1.06rem; line-height: 1.7; max-width: 560px; }
.kc-normen { display: flex; flex-wrap: wrap; gap: .4rem 0; margin: 1.6rem 0 2rem !important; }
.kc-normen span { font-weight: 700; letter-spacing: .06em; font-size: .9rem; color: #fff; padding: 0 1.2rem; border-left: 1px solid rgba(255,255,255,.35); }
.kc-normen span:first-child { padding-left: 0; border-left: 0; }
.kc-hero .wp-block-button__link { background: var(--kc-goud-l); border-color: var(--kc-goud-l); color: var(--kc-bx-d) !important; }
.kc-hero .wp-block-button__link:hover { background: #fff; border-color: #fff; }
.kc-hero .wp-block-button__link::after { content: "→"; }
.kc-hero .is-style-outline .wp-block-button__link { background: transparent; border-color: transparent; border-bottom: 1px solid rgba(255,255,255,.6); border-radius: 0; color: #fff !important; padding: .9rem .2rem .4rem; }
.kc-hero .is-style-outline .wp-block-button__link:hover { background: transparent; border-bottom-color: var(--kc-goud-l); color: var(--kc-goud-l) !important; }
.kc-hero-beeld { position: relative; min-height: 360px; background: var(--kc-zand); }
.kc-hero-beeld > * { margin: 0 !important; }
.kc-hero-foto, .kc-hero-foto img { position: absolute !important; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }
.kc-hero-label {
	position: absolute; left: 1.5rem; bottom: 1.4rem; margin: 0 !important;
	background: rgba(63,15,27,.82); color: #fff; padding: .55rem 1rem; border-radius: 4px; font-weight: 600; font-size: .9rem;
	border-bottom: 2px solid var(--kc-goud);
}

/* ---------- Vertrouwensbalk ---------- */
.kc-balk { background: var(--kc-creme-l); border-bottom: 1px solid var(--kc-rand); padding: 1.15rem 1.25rem; }
.kc-balk-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem 2rem; max-width: var(--kc-breed); margin: 0 auto; }
.kc-balk-inner p { margin: 0; font-weight: 700; font-size: .98rem; display: flex; align-items: center; gap: .7rem; }
.kc-balk-inner p::before {
	content: ""; width: 1.7rem; height: 1.7rem; border-radius: 50%; flex: none;
	background: var(--kc-goud) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 60% no-repeat;
}
@media (max-width: 700px) { .kc-balk-inner { display: grid; grid-template-columns: 1fr 1fr; } .kc-balk-inner p { font-size: .88rem; } }

/* ---------- Rasters en kaarten ---------- */
.kc-grid { display: grid; gap: 1.25rem; margin-top: 2.5rem !important; }
.kc-grid > * { margin: 0 !important; }
.kc-grid-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.kc-grid-3 { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.kc-grid-4 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
@media (min-width: 1000px) { .kc-grid-3 { grid-template-columns: repeat(3, 1fr); } .kc-grid-4 { grid-template-columns: repeat(4, 1fr); } }
.kc-grid.kc-grid-2 { margin-top: 1.25rem !important; }

.kc-icoon { display: inline-grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; border: 1px solid var(--kc-goud); color: #9a7a45; background: var(--kc-creme-l); }

.kc-dienst {
	display: flex; flex-direction: column; background: #fff; border: 1px solid var(--kc-rand); border-radius: 8px;
	padding: 1.7rem 1.6rem 1.4rem; box-shadow: var(--kc-schaduw); transition: transform .2s, box-shadow .2s;
}
.kc-dienst:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(63,15,27,.1); }
.kc-dienst > * { margin: 0 !important; }
.kc-dienst h3 { font-size: 1.5rem; margin-top: 1.1rem !important; }
.kc-norm { color: var(--kc-grijs); font-size: 1.02rem; margin-top: .15rem !important; padding-bottom: 1rem; position: relative; }
.kc-norm::after { content: ""; position: absolute; left: 0; bottom: 0; width: 2.2rem; height: 1px; background: var(--kc-goud); }
.kc-dienst-tekst { color: var(--kc-grijs); font-size: .95rem; line-height: 1.6; margin-top: 1rem !important; flex: 1; }
.kc-prijs { margin-top: 1.2rem !important; font-size: 1.05rem; }
.kc-prijs strong { font-size: 1.3rem; color: var(--kc-tekst); }
.kc-prijs-incl { color: var(--kc-grijs); font-size: .9rem; }
.kc-kaart-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; margin-top: 1.1rem !important; padding-top: 1rem; border-top: 1px solid var(--kc-rand); font-size: .92rem; }
.kc-kaart-links a { font-weight: 700; text-decoration: none; }
.kc-link-pijl { color: var(--kc-bx); }
.kc-link-pijl::after { content: " →"; }
.kc-link-wa { color: var(--kc-wa); }

.kc-extra { display: flex; align-items: center; gap: 1.25rem; background: #fff; border: 1px solid var(--kc-rand); border-radius: 8px; padding: 1.3rem 1.5rem; }
.kc-extra > * { margin: 0 !important; }
.kc-extra .kc-icoon { flex: none; }
.kc-extra-tekst { flex: 1; }
.kc-extra-tekst > * { margin: 0 !important; }
.kc-extra-tekst h3 { font-size: 1.2rem; }
.kc-extra-tekst p { color: var(--kc-grijs); font-size: .93rem; margin-top: .3rem !important; }
.kc-extra-prijs { text-align: right; }
.kc-extra-prijs > * { margin: 0 !important; }
.kc-extra-prijs .kc-kaart-links { border: 0; padding: 0; margin-top: .3rem !important; justify-content: flex-end; }
@media (max-width: 600px) { .kc-extra { flex-wrap: wrap; } .kc-extra-prijs { text-align: left; width: 100%; } .kc-extra-prijs .kc-kaart-links { justify-content: flex-start; } }

.kc-kaart { background: #fff; border: 1px solid var(--kc-rand); border-radius: 8px; padding: 1.6rem; }
.kc-kaart > * { margin: 0 !important; }
.kc-kaart h3 { font-size: 1.3rem; margin-bottom: .5rem !important; }
.kc-kaart p { color: var(--kc-grijs); line-height: 1.6; }
#waarom .kc-kaart { border-top: 3px solid var(--kc-goud); }

/* ---------- Tarieven ---------- */
.kc-tarieven { margin-top: 2.2rem !important; overflow-x: auto; }
.kc-tarieven table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--kc-rand); border-radius: 8px; font-size: .97rem; table-layout: auto; }
.kc-tarieven th { text-align: left; background: var(--kc-bx); color: #fff; font-weight: 700; padding: .9rem 1.1rem; border: 0; }
.kc-tarieven td { padding: .9rem 1.1rem; border: 0; border-top: 1px solid var(--kc-rand); vertical-align: top; }
.kc-tarieven td:nth-child(2) { font-weight: 700; white-space: nowrap; }
.kc-tarieven td:nth-child(3) { white-space: nowrap; }
.kc-tarieven td:nth-child(4) { color: var(--kc-grijs); font-size: .9rem; }
.kc-tarieven tbody tr:nth-child(even) td { background: var(--kc-creme-l); }
@media (max-width: 760px) {
	.kc-tarieven table, .kc-tarieven tbody, .kc-tarieven tr, .kc-tarieven td { display: block; width: 100%; box-sizing: border-box; }
	.kc-tarieven thead { display: none; }
	.kc-tarieven tr { border-top: 1px solid var(--kc-rand); padding: .8rem 1rem; }
	.kc-tarieven tbody tr:nth-child(even) td { background: transparent; }
	.kc-tarieven tbody tr:nth-child(even) { background: var(--kc-creme-l); }
	.kc-tarieven td { border: 0; padding: .1rem 0; white-space: normal !important; }
	.kc-tarieven td:nth-child(1) { font-size: 1.02rem; margin-bottom: .2rem; }
	.kc-tarieven td:nth-child(2), .kc-tarieven td:nth-child(3) { display: inline-block; width: auto; margin-right: 1rem; }
}
.kc-project { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-top: 1.5rem !important; padding: 1.4rem 1.6rem; background: var(--kc-zand); border-radius: 8px; }
.kc-project > * { margin: 0 !important; }
.kc-project-tekst { flex: 1 1 360px; }

/* ---------- Aanvraag ---------- */
.kc-aanvraag { background: linear-gradient(180deg, var(--kc-zand) 0%, #dfcdb1 100%); }
.kc-aanvraag .wp-block-columns { gap: clamp(2rem, 5vw, 4.5rem); align-items: flex-start; }
.kc-aanvraag-intro { position: sticky; top: 110px; }
.kc-aanvraag-intro > * { margin-top: 0; }
.kc-aanvraag h2 { font-size: clamp(2.3rem, 5vw, 3.6rem); margin-bottom: 2rem; }
.kc-stap-rij { display: flex; gap: 1.1rem; align-items: flex-start; margin: 0 0 1.4rem !important; }
.kc-stap-rij > * { margin: 0 !important; }
.kc-stap-nr { flex: none; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 700; color: var(--kc-bx); box-shadow: 0 4px 12px rgba(63,15,27,.08); }
.kc-stap-tekst h3 { font-size: 1.35rem; margin: 0 0 .2rem; }
.kc-stap-tekst p { margin: 0; color: var(--kc-grijs); font-size: .95rem; }
.kc-direct { font-weight: 700; margin-top: 2rem !important; }
@media (max-width: 781px) { .kc-aanvraag-intro { position: static; } }

/* ---------- Formulier ---------- */
.kc-form { background: #fff; border-radius: 10px; padding: clamp(1.3rem, 3vw, 2.2rem); box-shadow: 0 24px 60px rgba(63,15,27,.12); }
.kc-form-titel { font-size: 1.7rem; margin: 0 0 1.2rem; }
.kc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kc-veld { border: 0; padding: 0; margin: 0 0 1.6rem; min-width: 0; }
.kc-veld legend { font-weight: 700; font-size: 1.02rem; margin-bottom: .75rem; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: 0; }
.kc-veld legend small { font-weight: 400; color: var(--kc-grijs); font-size: .85rem; }
.kc-stapnr { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--kc-bx); color: #fff; display: inline-grid; place-items: center; font-size: .8rem; }
.kc-opties { display: grid; gap: .6rem; }
.kc-opties-2 { grid-template-columns: 1fr 1fr; }
.kc-optie { position: relative; cursor: pointer; }
.kc-optie input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.kc-optie span { display: block; text-align: center; padding: .85rem .5rem; border: 1.5px solid var(--kc-rand); border-radius: 8px; font-weight: 700; transition: all .15s; background: var(--kc-creme-l); }
.kc-optie input:checked + span { border-color: var(--kc-bx); background: var(--kc-bx); color: #fff; }
.kc-optie input:focus-visible + span { outline: 3px solid var(--kc-goud); outline-offset: 2px; }
.kc-checks-lijst { display: grid; gap: .5rem; }
.kc-check { display: flex; gap: .8rem; align-items: flex-start; padding: .8rem .95rem; border: 1.5px solid var(--kc-rand); border-radius: 8px; cursor: pointer; transition: border-color .15s, background .15s; scroll-margin-top: 140px; }
.kc-check:hover { border-color: var(--kc-zand-d); }
.kc-check input { width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; accent-color: var(--kc-bx); flex: none; }
.kc-check:has(input:checked) { border-color: var(--kc-bx); background: #fbf4f2; }
.kc-check-tekst { display: flex; flex-direction: column; line-height: 1.35; }
.kc-check-tekst strong { font-size: .97rem; }
.kc-check-prijs { font-size: .88rem; color: var(--kc-grijs); margin-top: .15rem; }
.kc-check-prijs em { font-style: normal; opacity: .85; }
.kc-rij { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.kc-rij > [hidden] { display: none; }
@media (max-width: 560px) { .kc-rij { grid-template-columns: 1fr; } }
.kc-invoer { margin: 0 0 .9rem; }
.kc-invoer label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: .3rem; }
.kc-invoer label small { font-weight: 400; color: var(--kc-grijs); }
.kc-invoer abbr { color: var(--kc-bx); text-decoration: none; }
.kc-form input[type="text"], .kc-form input[type="email"], .kc-form input[type="tel"], .kc-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; color: var(--kc-tekst);
	padding: .8rem .9rem; border: 1.5px solid var(--kc-rand); border-radius: 8px; background: var(--kc-creme-l);
}
.kc-form input:focus, .kc-form textarea:focus { outline: none; border-color: var(--kc-bx); background: #fff; box-shadow: 0 0 0 3px rgba(90,24,40,.12); }
.kc-heeft-fout input, .kc-heeft-fout textarea { border-color: #b3261e !important; }
.kc-fout { color: #b3261e; font-size: .88rem; font-weight: 600; margin: .35rem 0 0; }
fieldset.kc-heeft-fout .kc-check { border-color: #e4b4ae; }
.kc-form-fouten { background: #fbeceb; color: #8c1d16; border-left: 4px solid #b3261e; padding: .8rem 1rem; border-radius: 6px; margin-bottom: 1.2rem; font-weight: 600; font-size: .95rem; }
.kc-meerdere { background: var(--kc-creme); border-radius: 8px; padding: 1rem 1rem .4rem; margin-bottom: 1rem; }
.kc-meerdere-uitleg { margin: 0 0 .8rem; font-size: .92rem; color: var(--kc-grijs); }
.kc-extra-veld { display: flex; gap: .5rem; }
.kc-weg { flex: none; width: 2.6rem; border: 1.5px solid var(--kc-rand); background: #fff; border-radius: 8px; font-size: 1.3rem; line-height: 1; color: var(--kc-grijs); cursor: pointer; }
.kc-weg:hover { color: #b3261e; border-color: #e4b4ae; }
.kc-knop-licht { font: inherit; font-weight: 700; color: var(--kc-bx); background: #fff; border: 1.5px dashed var(--kc-zand-d); border-radius: 8px; padding: .65rem 1rem; cursor: pointer; margin-bottom: .8rem; }
.kc-knop-licht:hover { border-color: var(--kc-bx); }
.kc-lijst-upload { font-size: .9rem; margin-bottom: .6rem; }
.kc-lijst-upload summary { cursor: pointer; color: var(--kc-grijs); font-weight: 600; }
.kc-uitleg { font-size: .9rem; color: var(--kc-grijs); margin: -.3rem 0 .8rem; }
.kc-fotos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
@media (max-width: 560px) {
	.kc-fotos { grid-template-columns: 1fr; }
	.kc-foto-knop { min-height: 0; flex-direction: row; justify-content: flex-start; padding: .85rem 1rem; }
}
.kc-foto-knop { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem; text-align: center; min-height: 92px; padding: .8rem; border: 1.5px dashed var(--kc-zand-d); border-radius: 8px; background: var(--kc-creme-l); font-size: .88rem; font-weight: 600; cursor: pointer; }
.kc-foto-knop:hover, .kc-foto-knop:focus-within { border-color: var(--kc-bx); background: #fff; }
.kc-foto-knop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.kc-foto-icoon { width: 1.6rem; height: 1.6rem; background: var(--kc-bx); -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='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%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='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.kc-foto-lijst { display: grid; gap: .35rem; margin-top: .4rem; }
.kc-foto-item { display: flex; align-items: center; gap: .5rem; font-size: .8rem; background: var(--kc-creme); border-radius: 6px; padding: .3rem; }
.kc-foto-item img, .kc-foto-geen { width: 38px; height: 38px; object-fit: cover; border-radius: 4px; flex: none; display: grid; place-items: center; background: #fff; }
.kc-foto-info { flex: 1; color: var(--kc-grijs); }
.kc-foto-info strong { color: #1f7a4f; display: block; }
.kc-foto-item .kc-weg { width: 1.8rem; height: 1.8rem; font-size: 1rem; }
.kc-foto-status { font-size: .8rem; color: var(--kc-grijs); margin: .2rem 0; }
.kc-wa-tip { font-size: .92rem; margin: .9rem 0 0; }
.kc-wa-tip a { color: var(--kc-wa); font-weight: 700; }
.kc-privacy { font-size: .85rem; color: var(--kc-grijs); }
.kc-verstuur {
	width: 100%; font: inherit; font-weight: 700; font-size: 1.08rem; color: #fff; background: var(--kc-bx);
	border: 0; border-radius: 6px; padding: 1.05rem 1.2rem; cursor: pointer; transition: background .15s;
}
.kc-verstuur::after { content: "  →"; }
.kc-verstuur:hover { background: var(--kc-bx-d); }
.kc-verstuur:disabled { opacity: .7; cursor: wait; }
.kc-voortgang { text-align: center; font-size: .9rem; color: var(--kc-grijs); margin: .6rem 0 0; }
.kc-form-bedankt p { color: var(--kc-grijs); }

/* ---------- Geen kennis nodig / verwachten ---------- */
.kc-blok { background: var(--kc-bx); color: rgba(255,255,255,.88); border-radius: 10px; padding: clamp(1.6rem, 4vw, 2.8rem); height: 100%; box-sizing: border-box; }
.kc-blok > * { margin-top: 0; }
.kc-blok h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.kc-blok .kc-eyebrow { color: var(--kc-goud-l); }
.kc-blok .wp-block-button__link { background: var(--kc-goud-l); border-color: var(--kc-goud-l); color: var(--kc-bx-d) !important; }
.kc-blok .wp-block-button__link:hover { background: #fff; border-color: #fff; }
.kc-section > .wp-block-columns { gap: clamp(1.5rem, 4vw, 3.5rem); }
.kc-verwacht { padding-top: .5rem; }
.kc-verwacht-kop { font-size: 1.9rem; margin: 0 0 1.2rem; }
.kc-checks { list-style: none; padding: 0; margin: 0; }
.kc-checks li { position: relative; padding: .7rem 0 .7rem 2.3rem; border-bottom: 1px solid var(--kc-rand); line-height: 1.5; }
.kc-checks li::before {
	content: ""; position: absolute; left: 0; top: .78rem; width: 1.4rem; height: 1.4rem; border-radius: 50%;
	background: var(--kc-goud) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 62% no-repeat;
}

/* ---------- Werkwijze ---------- */
.kc-stappen { counter-reset: stap; }
.kc-stap { counter-increment: stap; position: relative; padding-top: 4.4rem; background: transparent; border: 0; border-top: 1px solid var(--kc-zand-d); border-radius: 0; padding-left: 0; padding-right: 0; }
.kc-stap::before { content: "0" counter(stap); position: absolute; top: 1.1rem; left: 0; font-family: var(--kc-kop); font-size: 2.2rem; font-weight: 700; color: var(--kc-goud); line-height: 1; }

/* ---------- Voor wie ---------- */
.kc-doelgroep { background: #fff; border: 1px solid var(--kc-rand); border-radius: 8px; padding: 1.3rem 1.4rem; }
.kc-doelgroep > * { margin: 0 !important; }
.kc-doelgroep h3 { font-size: 1.18rem; }
.kc-doelgroep p { color: var(--kc-grijs); font-size: .92rem; margin-top: .3rem !important; }

/* ---------- Over ons ---------- */
#over-ons .wp-block-columns { align-items: center; }
#over-ons p { font-size: 1.06rem; line-height: 1.75; }
.kc-feiten { background: var(--kc-creme); border: 1px solid var(--kc-rand); border-radius: 10px; padding: 1.8rem; }
.kc-feiten h3 { margin: 0 0 .6rem; font-size: 1.4rem; }
.kc-feiten .kc-checks li { font-size: .98rem; }

/* ---------- Contact ---------- */
.kc-contact { background: var(--kc-bx-d); color: rgba(255,255,255,.86); }
.kc-contact h2 { color: #fff; }
.kc-contact .kc-eyebrow { color: var(--kc-goud-l); }
.kc-contact .kc-intro { color: rgba(255,255,255,.8); }
.kc-contact .wp-block-columns { align-items: center; }
.kc-contact .wp-block-button:not(.kc-knop-whatsapp) .wp-block-button__link { background: var(--kc-goud-l); border-color: var(--kc-goud-l); color: var(--kc-bx-d) !important; }
.kc-contact-kaart { background: var(--kc-creme-l); color: var(--kc-tekst); border-radius: 10px; padding: 2rem; border-top: 3px solid var(--kc-goud); }
.kc-contact-kaart h3 { margin: 0 0 1rem; font-size: 1.6rem; }
.kc-contact-kaart p { margin: 0; padding: .75rem 0; border-top: 1px solid var(--kc-rand); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; }
.kc-contact-kaart p span { color: var(--kc-grijs); font-size: .9rem; }
.kc-contact-kaart a { font-weight: 700; text-decoration: none; }

/* ---------- Footer ---------- */
.kc-footer { background: #2a0a12; color: rgba(255,255,255,.7); padding: 3.5rem 1.25rem 2rem; font-size: .93rem; }
.kc-footer > * { max-width: var(--kc-breed); margin-left: auto !important; margin-right: auto !important; }
.kc-footer h4 { color: #fff; font-family: var(--kc-letter); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 .9rem; }
.kc-footer p { margin: 0 0 .5rem; line-height: 1.75; }
.kc-footer a { color: rgba(255,255,255,.9); text-decoration: none; }
.kc-footer a:hover { color: var(--kc-goud-l); }
.kc-footer .wp-block-columns { gap: 2rem; }
.kc-logo-licht a { color: #fff; }
.kc-footer-onder { border-top: 1px solid rgba(255,255,255,.1); margin-top: 2.2rem !important; padding-top: 1.3rem; font-size: .82rem; color: rgba(255,255,255,.5); }

/* ---------- Zwevende WhatsApp-knop ---------- */
.kc-wa-zwevend { position: fixed; right: 18px; bottom: 18px; z-index: 90; display: flex; align-items: center; gap: .7rem; text-decoration: none; }
.kc-wa-rond { width: 60px; height: 60px; border-radius: 50%; background: #25d366; display: grid; place-items: center; box-shadow: 0 10px 26px rgba(0,0,0,.22); transition: transform .15s; }
.kc-wa-zwevend:hover .kc-wa-rond { transform: scale(1.06); }
.kc-wa-label { background: var(--kc-creme-l); color: var(--kc-tekst); border: 1px solid var(--kc-rand); border-left: 3px solid var(--kc-bx); padding: .55rem .9rem; border-radius: 6px; font-size: .9rem; box-shadow: 0 8px 22px rgba(63,15,27,.14); }
.kc-wa-label strong { color: var(--kc-bx); }
@media (max-width: 700px) { .kc-wa-label { display: none; } .kc-wa-rond { width: 56px; height: 56px; } }

/* ---------- Gewone pagina's ---------- */
.kc-pagina { padding: 3.5rem 1.25rem 5rem; background: var(--kc-creme-l); min-height: 50vh; }
.kc-pagina h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); }
.kc-pagina h2 { font-size: 1.6rem; margin-top: 2rem; }
.kc-lead { font-size: 1.2rem; }

/* ---------- Mobiel ---------- */
@media (max-width: 781px) {
	.kc-hero-beeld { min-height: 0; aspect-ratio: 16 / 11; }
	.kc-hero-tekst { padding: 2.4rem 1.25rem 3rem; }
	.kc-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.kc-hero .wp-block-button__link { justify-content: center; width: 100%; box-sizing: border-box; }
	.kc-hero .is-style-outline .wp-block-button__link { justify-content: center; }
	.kc-eyebrow::after { display: none; }
	.kc-hero .kc-eyebrow { font-size: .68rem; letter-spacing: .14em; }
	.kc-hero-intro { font-size: 1rem; line-height: 1.6; }
	.kc-normen span { font-size: .78rem; padding: 0 .7rem; letter-spacing: .03em; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
