/* Aircobrabant – site.css
   Eén stylesheet. Huisstijl als tokens bovenaan; daaronder basis, onderdelen, pagina's. */

/* ---------- Lettertypes (lokaal, variabel, alleen latin) ---------- */
@font-face { font-family: "Sora"; src: url("../fonts/sora.woff2") format("woff2"); font-weight: 600 800; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("../fonts/manrope.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
	--blauw: #00558e;
	--blauw-licht: #3093d6;
	--blauw-zacht: #e8f2fa;
	--tekst: #0b1220;
	--tekst-licht: #4a5366;
	--rood: #eb302d;
	--rood-donker: #c9221f;
	--groen: #16a34a;
	--geel: #f8cb4f;
	--wit: #fff;
	--achtergrond: #f8f9fc;
	--lijn: #e3e7ef;
	--donker: #0b1220;

	--font-kop: "Sora", system-ui, sans-serif;
	--font-tekst: "Manrope", system-ui, sans-serif;

	--breedte: 1270px;
	--rand: clamp(16px, 4vw, 32px);
	--kop-hoogte: 84px;
	--radius: 16px;
	--radius-knop: 100px;
	--schaduw: 0 10px 30px rgba(11, 18, 32, .08);
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--kop-hoogte) + 16px); }
body { margin: 0; font-family: var(--font-tekst); font-size: 17px; line-height: 1.55; color: var(--tekst); background: var(--wit); -webkit-font-smoothing: antialiased; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--blauw); }
.icoon { flex: none; vertical-align: middle; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skiplink { position: absolute; left: 8px; top: -60px; z-index: 1000; padding: 10px 16px; background: var(--tekst); color: var(--wit); border-radius: 8px; }
.skiplink:focus { top: 8px; }
:focus-visible { outline: 3px solid var(--blauw-licht); outline-offset: 2px; }
.wrap { width: 100%; max-width: calc(var(--breedte) + 2 * var(--rand)); margin-inline: auto; padding-inline: var(--rand); }

/* ---------- Knoppen ---------- */
.knop[class] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 22px; border-radius: var(--radius-knop); border: 2px solid transparent; font: 600 15px/1.2 var(--font-tekst); text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.knop .icoon { width: 18px; height: 18px; }
.knop.knop--blauw { background: var(--blauw); color: var(--wit); }
.knop.knop--blauw:hover { background: #00466f; }
.knop.knop--rood { background: var(--rood); color: var(--wit); }
.knop.knop--rood:hover { background: var(--rood-donker); }
.knop.knop--rand { border-color: var(--lijn); color: var(--tekst); background: var(--wit); }
.knop.knop--rand:hover { border-color: var(--blauw); color: var(--blauw); }

/* ---------- Header ---------- */
.kop { position: sticky; top: 0; z-index: 100; background: var(--wit); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.admin-bar .kop { top: var(--wp-admin--admin-bar--height, 0px); }
.kop.is-gescrold { border-bottom-color: var(--lijn); box-shadow: 0 4px 20px rgba(11, 18, 32, .06); }
.kop__binnen { display: flex; align-items: center; gap: 24px; min-height: var(--kop-hoogte); }
.kop__logo { display: block; flex: none; }
.kop__logo img { display: block; width: 180px; height: auto; }
.kop__acties { display: flex; align-items: center; gap: 16px; margin-left: auto; }
.kop__tel { display: inline-flex; align-items: center; gap: 6px; color: var(--tekst); font-weight: 600; font-size: 15px; text-decoration: none; white-space: nowrap; }
.kop__tel .icoon { width: 16px; height: 16px; color: var(--blauw); }
.kop .kop__burger { display: none; width: 44px; height: 44px; padding: 0; align-items: center; justify-content: center; border: 0; border-radius: 12px; background: var(--achtergrond); color: var(--tekst); cursor: pointer; }
.kop__burger > span { display: inline-flex; }
.kop__burger[aria-expanded="true"] .kop__burger-open, .kop__burger[aria-expanded="false"] .kop__burger-dicht { display: none; }

.hoofdmenu { margin-left: auto; }
.hoofdmenu__lijst { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.hoofdmenu__item { position: static; display: flex; align-items: center; }
.hoofdmenu__link { display: block; padding: 10px 12px; color: var(--tekst); font-weight: 500; font-size: 16px; text-decoration: none; border-radius: 10px; }
.hoofdmenu__link:hover, .hoofdmenu__link[aria-current] { color: var(--blauw); }
/* .kop-prefix: wint van de globale button-stijl van Elementor zolang die nog draait. */
.kop .hoofdmenu__open { display: inline-flex; margin-left: -10px; padding: 6px; border: 0; border-radius: 8px; background: none; color: var(--tekst); cursor: pointer; }
.kop .hoofdmenu__open:hover { background: var(--achtergrond); color: var(--blauw); }
.hoofdmenu__open .icoon { width: 16px; height: 16px; transition: transform .2s; }
.heeft-mega.is-open .hoofdmenu__open .icoon { transform: rotate(180deg); }

/* Mega-menu */
.mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--wit); border-top: 1px solid var(--lijn); box-shadow: 0 24px 40px rgba(11, 18, 32, .10); visibility: hidden; opacity: 0; transform: translateY(-6px); transition: opacity .15s, transform .15s, visibility 0s .15s; }
.heeft-mega.is-open .mega { visibility: visible; opacity: 1; transform: none; transition: opacity .15s, transform .15s; }
@media (hover: hover) and (min-width: 1101px) {
	.heeft-mega:hover .mega { visibility: visible; opacity: 1; transform: none; transition: opacity .15s .08s, transform .15s .08s; }
}
.mega__binnen { display: grid; grid-template-columns: repeat(4, 1fr) 1.6fr; gap: 32px; padding-block: 32px 28px; }
.mega__kop { margin: 0 0 10px; font: 700 13px/1.4 var(--font-kop); text-transform: uppercase; letter-spacing: 1px; color: var(--tekst-licht); }
.mega ul { margin: 0; padding: 0; list-style: none; }
.mega__groep--breed ul { display: grid; grid-template-columns: repeat(var(--kol, 1), 1fr); column-gap: 16px; }
.mega li a { display: block; padding: 5px 0; color: var(--tekst); text-decoration: none; font-size: 15px; }
.mega li a:hover { color: var(--blauw); }
.mega__alles { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding-top: 16px; border-top: 1px solid var(--lijn); width: 100%; font-weight: 600; text-decoration: none; }

/* Mobiel menu */
.mobielmenu { position: absolute; left: 0; right: 0; top: 100%; height: calc(100dvh - var(--kop-hoogte)); border-top: 1px solid var(--lijn); background: var(--wit); overflow-y: auto; overscroll-behavior: contain; }
.mobielmenu nav { padding: 8px var(--rand) 24px; }
.mobielmenu__lijst { margin: 0; padding: 0; list-style: none; }
.mobielmenu__lijst > li { border-bottom: 1px solid var(--lijn); }
.mobielmenu__lijst > li > a, .mobielmenu summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; color: var(--tekst); font: 600 18px/1.3 var(--font-kop); text-decoration: none; cursor: pointer; list-style: none; }
.mobielmenu summary::-webkit-details-marker { display: none; }
.mobielmenu details[open] summary .icoon { transform: rotate(180deg); }
.mobielmenu__alles { display: block; margin-bottom: 8px; font-weight: 600; }
.mobielmenu__kop { margin: 14px 0 4px; font: 700 12px/1.4 var(--font-kop); text-transform: uppercase; letter-spacing: 1px; color: var(--tekst-licht); }
.mobielmenu__sub { margin: 0 0 8px; padding: 0; list-style: none; }
.mobielmenu__sub--kort { display: grid; grid-template-columns: repeat(3, 1fr); }
.mobielmenu__sub a { display: block; padding: 7px 0; color: var(--tekst); text-decoration: none; }
.mobielmenu__acties { display: grid; gap: 10px; margin-top: 20px; }

@media (max-width: 1100px) {
	.hoofdmenu, .kop__tel span { display: none; }
	.kop .kop__burger { display: inline-flex; }
	.kop__tel { width: 44px; height: 44px; justify-content: center; border-radius: 12px; background: var(--achtergrond); }
}
@media (max-width: 560px) {
	:root { --kop-hoogte: 68px; }
	.kop__binnen { gap: 12px; }
	.kop__logo img { width: 150px; }
	.kop .kop__offerte { display: none; }
}
body.menu-open { overflow: hidden; }

/* ---------- Footer ---------- */
.voet { margin-top: 0; background: var(--donker); color: #c4cad6; font-size: 15px; }
.voet a { color: #c4cad6; text-decoration: none; }
.voet a:hover { color: var(--wit); }
.voet__binnen { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 40px; padding-block: 64px 48px; }
.voet__merk img { display: block; width: 180px; height: auto; margin-bottom: 16px; }
.voet__merk p { margin: 0 0 16px; max-width: 34ch; }
.voet__reviews { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.voet__reviews strong { color: var(--wit); }
.sterren { display: inline-flex; color: var(--geel); }
.sterren .icoon { width: 16px; height: 16px; }
.voet__kop { margin: 0 0 14px; color: var(--wit); font: 700 13px/1.4 var(--font-kop); text-transform: uppercase; letter-spacing: 1px; }
.voet ul { margin: 0; padding: 0; list-style: none; }
.voet li a { display: inline-block; padding: 5px 0; }
.voet address { display: grid; gap: 8px; margin-bottom: 20px; font-style: normal; }
.voet address a { display: inline-flex; align-items: center; gap: 8px; }
.voet address .icoon { width: 16px; height: 16px; }
.voet__onder { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-block: 20px 28px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 14px; }
.voet__onder ul { display: flex; flex-wrap: wrap; gap: 0 20px; }
@media (max-width: 900px) {
	.voet__binnen { grid-template-columns: 1fr 1fr; }
	.voet__merk { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
	.voet__binnen { grid-template-columns: 1fr; gap: 32px; padding-block: 48px 32px; }
}

/* ---------- Tekstpagina's (niet-Elementor) ---------- */
.tekst { padding-block: 48px 72px; max-width: calc(820px + 2 * var(--rand)); }
.tekst h1, .tekst h2, .tekst h3 { font-family: var(--font-kop); line-height: 1.15; letter-spacing: -.02em; }
.tekst h1 { font-size: clamp(32px, 5vw, 48px); font-weight: 800; margin: 0 0 24px; }
.tekst h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 700; margin: 40px 0 12px; }
.tekst h3 { font-size: 20px; font-weight: 700; margin: 28px 0 8px; }
.lijst { padding-left: 20px; }
.lijst li { margin: 6px 0; }

/* ---------- Gedeelde bouwstenen ---------- */
.wrap--smal { max-width: calc(880px + 2 * var(--rand)); }
.bovenkop { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; font: 600 13px/1.4 var(--font-tekst); text-transform: uppercase; letter-spacing: 1px; color: var(--tekst-licht); }
.bovenkop::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rood); }
.knop.knop--klein { padding: 10px 16px; font-size: 14px; }
.knop.knop--groot { padding: 16px 26px; font-size: 16px; width: 100%; }
.knoppen { display: flex; flex-wrap: wrap; gap: 12px; }
.vinkjes { margin: 16px 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.vinkjes li { position: relative; padding-left: 28px; }
.vinkjes li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; background: var(--groen); -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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; }
h1, h2, h3 { font-family: var(--font-kop); color: var(--tekst); letter-spacing: -.02em; }
.opmaak h3 { font-size: 20px; margin: 0 0 8px; }
.opmaak p, .opmaak ul, .opmaak ol { margin: 0 0 14px; color: var(--tekst-licht); }
.opmaak ul { padding-left: 20px; }
.opmaak li { margin: 4px 0; }
.opmaak strong { color: var(--tekst); }
.sectiekop { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.sectiekop h2 { margin: 0; font-size: clamp(26px, 3.4vw, 40px); }

.kruimelpad ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; padding: 0; list-style: none; font-size: 14px; color: var(--tekst-licht); }
.kruimelpad li + li::before { content: "›"; margin-right: 6px; }
.kruimelpad a { color: var(--tekst-licht); text-decoration: none; }
.kruimelpad a:hover { color: var(--blauw); }

.reviewbadge { display: inline-flex; align-items: center; gap: 12px; padding: 12px 18px; border: 1px solid var(--lijn); border-radius: var(--radius); background: var(--wit); }
.reviewbadge p { margin: 0; }
.reviewbadge__score { display: flex; align-items: center; gap: 6px; font-size: 18px; }
.reviewbadge__tekst { font-size: 13px; color: var(--tekst-licht); }

/* ---------- Catalogus ---------- */
.cat-kop { padding-block: 28px 32px; }
.cat-kop__grid { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; }
.cat-kop h1 { margin: 0 0 12px; font-size: clamp(32px, 4.6vw, 52px); font-weight: 800; line-height: 1.08; }
.cat-kop__intro { margin: 0; max-width: 70ch; color: var(--tekst-licht); }
@media (max-width: 800px) { .cat-kop__grid { grid-template-columns: 1fr; gap: 16px; } .cat-kop .reviewbadge { justify-self: start; } }

.catalogus { padding-block: 32px 64px; background: var(--achtergrond); }
.catalogus__grid { display: grid; grid-template-columns: 270px 1fr; gap: 32px; align-items: start; }
.catalogus.is-laden .resultaten { opacity: .5; transition: opacity .15s; }

.filters { position: sticky; top: calc(var(--kop-hoogte) + 16px); max-height: calc(100vh - var(--kop-hoogte) - 32px); overflow-y: auto; padding: 20px; border-radius: var(--radius); background: var(--wit); }
.filters__kop { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.filters__titel { margin: 0; font: 700 18px/1.2 var(--font-kop); }
.filters__wis { margin-left: auto; font-size: 14px; }
.filters .filters__sluit, .filters .filters__toon { display: none; }
.filter { margin: 0; padding: 14px 0; border: 0; border-top: 1px solid var(--lijn); }
.filter legend { padding: 0 0 8px; font-weight: 700; font-size: 15px; float: left; width: 100%; }
.filter__opties { clear: both; display: grid; gap: 2px; }
.filter__optie { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 15px; cursor: pointer; }
.filter__optie input { width: 18px; height: 18px; margin: 0; accent-color: var(--blauw); }
.filter__optie small { margin-left: auto; color: var(--tekst-licht); font-size: 13px; }
.filter__optie.is-leeg { opacity: .45; }
.filter__opties--chips { display: flex; flex-wrap: wrap; gap: 6px; }
.filter__opties--chips .filter__optie { padding: 0; }
.filter__opties--chips input { position: absolute; opacity: 0; pointer-events: none; }
.filter__opties--chips span { display: inline-block; padding: 6px 10px; border: 1px solid var(--lijn); border-radius: 100px; font-size: 14px; }
.filter__opties--chips input:checked + span { background: var(--blauw); border-color: var(--blauw); color: var(--wit); }
.filter__opties--chips input:focus-visible + span { outline: 3px solid var(--blauw-licht); outline-offset: 2px; }
.filters__hulp { margin-top: 12px; padding: 14px; border-radius: 12px; background: var(--blauw-zacht); font-size: 14px; }
.filters__hulp p { margin: 0 0 8px; }
.filters__hulp a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; }
.filters__hulp .icoon { width: 16px; height: 16px; }

.resultaten__balk { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.resultaten__aantal { margin: 0; }
.resultaten__sorteer { display: flex; align-items: center; gap: 8px; margin-left: auto; font-size: 14px; color: var(--tekst-licht); }
.resultaten__sorteer select { padding: 9px 32px 9px 12px; border: 1px solid var(--lijn); border-radius: 10px; background: var(--wit); font: inherit; color: var(--tekst); }
.resultaten__filterknop { display: none; }
.resultaten__actief { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.resultaten__actief a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px 6px 14px; border-radius: 100px; background: var(--blauw); color: var(--wit); font-size: 14px; text-decoration: none; }
.resultaten__actief .icoon { width: 14px; height: 14px; }
.resultaten__leeg { padding: 32px; border-radius: var(--radius); background: var(--wit); }

.kaarten { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kaarten--4 { grid-template-columns: repeat(4, 1fr); }
.kaart { display: flex; flex-direction: column; border-radius: var(--radius); background: var(--wit); overflow: hidden; border: 1px solid var(--lijn); transition: box-shadow .2s, transform .2s; }
.kaart:hover { box-shadow: var(--schaduw); transform: translateY(-2px); }
.kaart__foto { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--wit); }
.kaart__foto img { width: 100%; height: 100%; object-fit: contain; padding: 16px; }
.kaart__labels { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: 100px; background: var(--groen); color: var(--wit); font-size: 12px; font-weight: 700; }
.kaart__badge { position: absolute; right: 12px; top: 12px; padding: 4px 10px; border-radius: 100px; background: var(--geel); color: var(--tekst); font-size: 12px; font-weight: 700; }
.kaart__tekst { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 16px 18px 20px; border-top: 1px solid var(--lijn); }
.kaart__titel { margin: 0; font-size: 16px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; }
.kaart__titel a { color: var(--tekst); text-decoration: none; }
.kaart__titel a::after { content: ""; position: absolute; inset: 0; }
.kaart { position: relative; }
.kaart__specs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.kaart__specs li { padding: 3px 8px; border-radius: 6px; background: var(--achtergrond); font-size: 13px; color: var(--tekst-licht); }
.kaart__prijs { margin: auto 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.kaart__prijs strong { font: 800 22px/1 var(--font-kop); color: var(--tekst); }
.kaart__prijs span { font-size: 13px; color: var(--tekst-licht); }
.kaart .knop { position: relative; z-index: 1; align-self: flex-start; }

.paginering { display: flex; justify-content: center; gap: 6px; margin-top: 32px; }
.paginering a, .paginering span { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 8px; border-radius: 10px; background: var(--wit); border: 1px solid var(--lijn); color: var(--tekst); text-decoration: none; font-weight: 600; }
.paginering span[aria-current] { background: var(--blauw); border-color: var(--blauw); color: var(--wit); }

@media (max-width: 1100px) { .kaarten, .kaarten--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
	.catalogus__grid { grid-template-columns: 1fr; }
	.resultaten__filterknop { display: inline-flex; }
	.filters { position: fixed; inset: 0; z-index: 200; max-height: none; border-radius: 0; padding: 20px var(--rand) 100px; transform: translateX(-100%); transition: transform .25s; }
	.filters.is-open { transform: none; }
	.filters button.filters__sluit { display: inline-flex; margin-left: 8px; padding: 8px; border: 0; background: var(--achtergrond); border-radius: 10px; color: var(--tekst); }
	.filters.is-open .filters__toon { display: flex; position: fixed; left: var(--rand); right: var(--rand); bottom: 16px; z-index: 2; }
}
@media (max-width: 560px) {
	.kaarten, .kaarten--4 { grid-template-columns: 1fr; }
	.resultaten__balk { flex-wrap: wrap; }
	.resultaten__sorteer span { display: none; }
}

/* Uitleg + FAQ */
.uitleg { padding-block: 64px 24px; }
.uitleg__kop { max-width: 760px; margin-bottom: 32px; }
.uitleg__kop h2 { margin: 0 0 12px; font-size: clamp(26px, 3.4vw, 40px); }
.uitleg__kop p { margin: 0; color: var(--tekst-licht); }
.uitleg__blokken { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.uitleg__blok { padding: 28px; border-radius: var(--radius); background: var(--achtergrond); }
@media (max-width: 800px) { .uitleg__blokken { grid-template-columns: 1fr; } }

.faq { padding-block: 48px 64px; }
.faq h2 { margin: 0 0 20px; font-size: clamp(26px, 3.4vw, 40px); }
.faq__lijst { display: grid; gap: 10px; }
.faq__item { border: 1px solid var(--lijn); border-radius: 14px; background: var(--wit); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; font-weight: 700; cursor: pointer; list-style: none; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary .icoon { transition: transform .2s; }
.faq__item[open] summary .icoon { transform: rotate(180deg); }
.faq__antwoord { padding: 0 20px 18px; color: var(--tekst-licht); }
.faq__antwoord p { margin: 0 0 10px; }

/* Showroom-blok */
.showroom { padding-block: 32px 80px; }
.showroom__kaart { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 40px; border-radius: 24px; background: var(--achtergrond); }
.showroom h2 { margin: 0 0 12px; font-size: clamp(28px, 3.6vw, 44px); line-height: 1.1; }
.showroom__tekst > p { color: var(--tekst-licht); }
.showroom__foto img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 900px) { .showroom__kaart { grid-template-columns: 1fr; padding: 24px; } }

/* ---------- Airco-pagina ---------- */
.airco { padding-top: 24px; }
.airco__boven { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: start; padding-bottom: 48px; }
.airco__fotos { position: sticky; top: calc(var(--kop-hoogte) + 16px); }
.airco__foto { display: none; margin: 0; aspect-ratio: 1 / 1; border-radius: var(--radius); border: 1px solid var(--lijn); background: var(--wit); }
.airco__foto.is-actief { display: block; }
.airco__foto img { width: 100%; height: 100%; object-fit: contain; padding: 24px; }
.airco__duimen { display: flex; gap: 10px; margin-top: 12px; }
.airco .airco__duimen button { width: 80px; height: 80px; padding: 6px; border: 2px solid var(--lijn); border-radius: 12px; background: var(--wit); cursor: pointer; }
.airco .airco__duimen button[aria-current] { border-color: var(--blauw); }
.airco__duimen img { width: 100%; height: 100%; object-fit: contain; }
.airco__info h1 { margin: 0 0 8px; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.15; font-weight: 800; }
.airco__ondertitel { margin: 0 0 16px; color: var(--tekst-licht); font-size: 18px; }
.airco__kenmerken { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 20px 0; padding: 0; list-style: none; }
.airco__kenmerken li { padding: 12px 14px; border-radius: 12px; background: var(--achtergrond); }
.airco__kenmerken span { display: block; font-size: 13px; color: var(--tekst-licht); }
.airco__kenmerken strong { font-family: var(--font-kop); }
.airco__prijsblok { padding: 24px; border: 1px solid var(--lijn); border-radius: var(--radius); box-shadow: var(--schaduw); }
.airco__prijs { margin: 0; display: flex; align-items: baseline; gap: 8px; }
.airco__prijs strong { font: 800 40px/1 var(--font-kop); }
.airco__prijs span { color: var(--tekst-licht); }
.airco__montage { display: flex; align-items: center; gap: 6px; margin: 8px 0 18px; color: var(--groen); font-weight: 600; font-size: 15px; }
.airco__montage .icoon { width: 18px; height: 18px; }
.airco__contact { display: flex; align-items: center; gap: 12px; margin-top: 16px; font-size: 14px; }
.airco__contact a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 16px; color: var(--tekst); text-decoration: none; }
.airco__contact span { display: block; color: var(--tekst-licht); }
.airco__contactfoto { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: top; }
.airco__klein { margin: 12px 0 0; font-size: 13px; color: var(--tekst-licht); text-align: center; }
.airco__stappen { margin: 24px 0 0; padding: 0; list-style: none; counter-reset: stap; display: grid; gap: 8px; font-size: 15px; }
.airco__stappen li { counter-increment: stap; display: flex; align-items: center; gap: 10px; }
.airco__stappen li::before { content: counter(stap); display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--blauw-zacht); color: var(--blauw); font-weight: 700; font-size: 13px; }
.airco__details { padding-block: 56px; background: var(--achtergrond); }
.airco__details-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; align-items: start; margin-bottom: 40px; }
.airco__details h2 { font-size: clamp(24px, 3vw, 32px); margin: 0 0 16px; }
.airco__inbegrepen { padding: 24px; border-radius: var(--radius); background: var(--wit); }
.airco__inbegrepen h2 { font-size: 20px; }
.specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: start; margin-bottom: 20px; }
.specs__tabel { width: 100%; border-collapse: collapse; background: var(--wit); border-radius: var(--radius); overflow: hidden; font-size: 15px; }
.specs__tabel caption { padding: 0 0 8px; text-align: left; font-weight: 700; font-family: var(--font-kop); }
.specs__tabel th, .specs__tabel td { padding: 10px 16px; text-align: left; border-bottom: 1px solid var(--lijn); }
.specs__tabel th { font-weight: 500; color: var(--tekst-licht); }
.vergelijkbaar { padding-block: 64px 16px; }
@media (max-width: 1000px) {
	.airco__boven, .airco__details-grid { grid-template-columns: 1fr; gap: 28px; }
	.airco__fotos { position: static; }
	.specs { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .airco__kenmerken { grid-template-columns: 1fr 1fr; } .sectiekop { flex-direction: column; align-items: start; } }

/* ---------- Paginakop, inhoud, waarom ---------- */
.paginakop { padding-block: 28px 48px; background: linear-gradient(180deg, var(--blauw-zacht), var(--wit)); }
.paginakop__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
.paginakop--foto .paginakop__grid { grid-template-columns: 1.1fr 1fr; }
.paginakop h1 { margin: 0 0 16px; font-size: clamp(32px, 5vw, 56px); font-weight: 800; line-height: 1.06; max-width: 20ch; }
.paginakop__intro { margin: 0 0 24px; max-width: 64ch; font-size: 18px; color: var(--tekst-licht); }
.paginakop__foto img { width: 100%; border-radius: 20px; object-fit: cover; aspect-ratio: 4 / 3; }
@media (max-width: 900px) { .paginakop--foto .paginakop__grid { grid-template-columns: 1fr; } }

.inhoud { padding-block: 40px 16px; }
.inhoud__tekst h2 { font-size: clamp(24px, 3vw, 32px); margin: 36px 0 12px; line-height: 1.2; }
.inhoud__tekst h3 { margin-top: 24px; }
.inhoud__tekst p, .inhoud__tekst li { font-size: 17px; }
.inhoud__tekst img { border-radius: 12px; }
.inhoud__tekst table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 15px; }
.inhoud__tekst th, .inhoud__tekst td { padding: 10px 12px; border-bottom: 1px solid var(--lijn); text-align: left; }

.waarom { padding-block: 56px; }
.waarom__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.waarom__foto img { width: 100%; border-radius: 20px; object-fit: cover; aspect-ratio: 4 / 3; }
.waarom h2 { margin: 0 0 12px; font-size: clamp(28px, 3.6vw, 44px); }
.waarom__tekst > p { color: var(--tekst-licht); }
@media (max-width: 900px) { .waarom__grid { grid-template-columns: 1fr; gap: 24px; } }

.werkgebieden { padding-block: 32px 24px; }
.werkgebieden h2 { margin: 0 0 16px; font-size: 24px; }
.werkgebieden__lijst { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.werkgebieden__lijst a { display: inline-block; padding: 7px 14px; border: 1px solid var(--lijn); border-radius: 100px; color: var(--tekst); text-decoration: none; font-size: 15px; }
.werkgebieden__lijst a:hover, .werkgebieden__lijst a[aria-current] { border-color: var(--blauw); color: var(--blauw); }

/* Tekstpagina, blog, project, vacature */
.tekstpagina, .blogbericht { padding-block: 28px 32px; }
.tekstpagina h1, .blogbericht h1, .projectpagina h1, .vacaturepagina h1 { margin: 0 0 16px; font-size: clamp(30px, 4.4vw, 48px); font-weight: 800; line-height: 1.1; }
.blogbericht__intro { font-size: 20px; color: var(--tekst-licht); margin: 0 0 8px; }
.blogbericht__meta { font-size: 14px; color: var(--tekst-licht); }
.blogbericht__foto { margin-block: 24px 8px; }
.blogbericht__foto img { width: 100%; max-height: 520px; object-fit: cover; border-radius: 20px; }
.overzicht { padding-block: 40px 24px; }
.kaart--bericht .kaart__beeld { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.kaart--bericht .kaart__beeld img { width: 100%; height: 100%; object-fit: cover; }
.kaart__samenvatting { margin: 0; color: var(--tekst-licht); font-size: 15px; }
.kaart__lees { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; color: var(--blauw); font-weight: 600; font-size: 15px; }
.kaart__lees .icoon { width: 16px; height: 16px; }
.overzicht .nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 32px; }
.overzicht .page-numbers { padding: 8px 14px; border: 1px solid var(--lijn); border-radius: 10px; text-decoration: none; color: var(--tekst); }
.overzicht .page-numbers.current { background: var(--blauw); color: var(--wit); border-color: var(--blauw); }

.projectpagina, .vacaturepagina { padding-block: 28px 48px; }
.projectpagina__grid, .vacaturepagina__grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 48px; align-items: start; }
.feiten { margin: 0; padding: 24px; border-radius: var(--radius); background: var(--achtergrond); display: grid; gap: 14px; }
.feiten dt { font-size: 13px; color: var(--tekst-licht); }
.feiten dd { margin: 0; font-weight: 700; }
.fotoraster { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 32px; }
.fotoraster figure { margin: 0; }
.fotoraster img { width: 100%; height: 100%; object-fit: cover; border-radius: 14px; aspect-ratio: 4 / 3; }
.vacaturepagina__zij { display: grid; gap: 20px; }
.vacaturepagina__contact { padding: 24px; border-radius: var(--radius); background: var(--achtergrond); }
.vacaturepagina__contact img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: top; }
.vacaturepagina__form { padding: 24px; border-radius: var(--radius); border: 1px solid var(--lijn); }
.vacaturepagina__form h2 { margin: 0 0 12px; }
@media (max-width: 900px) { .projectpagina__grid, .vacaturepagina__grid { grid-template-columns: 1fr; } .fotoraster { grid-template-columns: 1fr; } }

/* ---------- Secties (home en eenmalige pagina's) ---------- */
.sectie-intro { max-width: 760px; margin-bottom: 32px; }
.sectie-intro p { color: var(--tekst-licht); margin: 0; }
.sectie-titel { margin: 0 0 12px; font-size: clamp(28px, 3.6vw, 44px); line-height: 1.1; }
.bovenkop--licht { color: rgba(255, 255, 255, .85); }
.h3 { font-size: 20px; }

.held { padding-block: 48px 64px; background: linear-gradient(135deg, var(--blauw) 0%, var(--blauw-licht) 100%); color: var(--wit); }
.held__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.held h1 { margin: 0 0 20px; color: var(--wit); font-size: clamp(40px, 6vw, 68px); font-weight: 800; line-height: 1.02; letter-spacing: -.03em; }
.held__intro { margin: 0 0 20px; max-width: 52ch; font-size: 18px; color: rgba(255, 255, 255, .9); }
.held__usps { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 28px; padding: 0; list-style: none; font-weight: 600; }
.held__usps li { display: inline-flex; align-items: center; gap: 6px; }
.held__usps .icoon { width: 18px; height: 18px; color: #7ee2a0; }
.held__form { padding: 24px; border-radius: 20px; background: var(--wit); color: var(--tekst); box-shadow: 0 20px 50px rgba(0, 0, 0, .15); }
.held__form h2 { margin: 0 0 6px; font-size: 22px; }
.held__form > p { margin: 0 0 16px; color: var(--tekst-licht); font-size: 15px; }
.held__foto img { width: 100%; border-radius: 24px; object-fit: cover; aspect-ratio: 5 / 4; }
@media (max-width: 900px) { .held__grid { grid-template-columns: 1fr; } .held__foto { display: none; } }

.postcodeform__velden { display: grid; grid-template-columns: 1.4fr 1fr .8fr; gap: 10px; margin-bottom: 14px; }
.veld { display: grid; gap: 4px; font-size: 14px; font-weight: 600; }
.veld abbr { color: var(--rood); text-decoration: none; }
.veld input, .veld select, .veld textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--lijn); border-radius: 10px; font: 500 16px/1.3 var(--font-tekst); color: var(--tekst); background: var(--wit); }
.veld input:focus, .veld select:focus, .veld textarea:focus { outline: 2px solid var(--blauw-licht); border-color: var(--blauw-licht); }
.veld input:user-invalid { border-color: var(--rood); }
@media (max-width: 420px) { .postcodeform__velden { grid-template-columns: 1fr 1fr; } .veld--postcode { grid-column: 1 / -1; } }

.usps { padding-block: 72px; }
.usps__raster { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.usps__raster li { padding: 28px; border-radius: var(--radius); background: var(--achtergrond); }
.usps__raster h3 { margin: 12px 0 6px; font-size: 20px; }
.usps__raster p { margin: 0; color: var(--tekst-licht); }
.stap__nr { font: 800 14px/1 var(--font-kop); color: var(--blauw); letter-spacing: .5px; }
@media (max-width: 900px) { .usps__raster { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .usps__raster { grid-template-columns: 1fr; } }

.stappen { padding-block: 72px; background: var(--achtergrond); }
.stappen__lijst { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.stap { padding: 24px; border-radius: var(--radius); background: var(--wit); }
.stap h3 { margin: 10px 0 6px; font-size: 19px; }
.stap p { margin: 0; color: var(--tekst-licht); font-size: 15px; }
.stap__foto { margin: -24px -24px 16px; }
.stap__foto img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius) var(--radius) 0 0; }
.stappen__start { padding-block: 0 32px; margin-top: -40px; text-align: center; background: var(--achtergrond); max-width: none; }
@media (max-width: 900px) { .stappen__lijst { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .stappen__lijst { grid-template-columns: 1fr; } }

.tegels { padding-block: 64px 24px; }
.tegels__raster { display: grid; grid-template-columns: repeat(var(--kol, 3), 1fr); gap: 20px; }
.tegel { position: relative; display: block; overflow: hidden; border-radius: 20px; color: var(--wit); text-decoration: none; aspect-ratio: 4 / 3; background: var(--donker); }
.tegel img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.tegel:hover img { transform: scale(1.04); }
.tegel__tekst { position: absolute; inset: auto 0 0 0; display: grid; gap: 6px; padding: 60px 22px 20px; background: linear-gradient(transparent, rgba(11, 18, 32, .85)); }
.tegel__tekst strong { display: inline-flex; align-items: center; gap: 8px; font: 700 21px/1.2 var(--font-kop); }
.tegel__tekst span { font-size: 14px; color: rgba(255, 255, 255, .85); }
@media (max-width: 900px) { .tegels__raster { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .tegels__raster { grid-template-columns: 1fr; } }

.voordelen { padding-block: 48px; }
.voordelen__intro { max-width: 820px; margin-bottom: 28px; }
.voordelen__lijst { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.voordelen__lijst li { padding: 24px; border: 1px solid var(--lijn); border-radius: var(--radius); }
.voordelen__icoon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--blauw-zacht); color: var(--blauw); }
.voordelen__icoon img { width: 28px; height: 28px; object-fit: contain; }
.voordelen__lijst h3 { margin: 14px 0 6px; font-size: 19px; }
.voordelen__lijst p { margin: 0; color: var(--tekst-licht); font-size: 15px; }
@media (max-width: 800px) { .voordelen__lijst { grid-template-columns: 1fr; } }

.prijzen { padding-block: 64px; }
.prijzen__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.prijzen__grid > div > p { color: var(--tekst-licht); }
.prijstabel { width: 100%; border-collapse: collapse; border-radius: var(--radius); overflow: hidden; background: var(--achtergrond); }
.prijstabel th, .prijstabel td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--lijn); }
.prijstabel th { font-size: 13px; text-transform: uppercase; letter-spacing: .5px; color: var(--tekst-licht); }
.prijstabel td:last-child { text-align: right; white-space: nowrap; }
.prijzen__voetnoot { font-size: 14px; color: var(--tekst-licht); }
@media (max-width: 900px) { .prijzen__grid { grid-template-columns: 1fr; gap: 24px; } }

.eigenaar { padding-block: 72px; }
.eigenaar__grid { display: grid; grid-template-columns: 420px 1fr; gap: 56px; align-items: center; }
.eigenaar__foto { position: relative; }
.eigenaar__foto img { width: 100%; border-radius: 24px; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; background: var(--blauw-zacht); }
.eigenaar__naam { position: absolute; left: 16px; bottom: 16px; margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--wit); font-size: 14px; }
.cijfers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0; }
.cijfers div { padding: 16px; border-radius: 14px; background: var(--achtergrond); }
.cijfers dt { font: 800 28px/1 var(--font-kop); color: var(--blauw); }
.cijfers dd { margin: 6px 0 0; font-size: 14px; color: var(--tekst-licht); }
@media (max-width: 900px) { .eigenaar__grid { grid-template-columns: 1fr; gap: 28px; } .eigenaar__foto { max-width: 360px; } }

.adviesblok { padding-block: 72px; background: var(--blauw-zacht); scroll-margin-top: var(--kop-hoogte); }
.adviesblok__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.adviesblok h2 { margin: 0 0 12px; font-size: clamp(28px, 3.6vw, 40px); }
.adviesblok__tekst > p { color: var(--tekst-licht); }
.adviesblok__reviews { display: flex; align-items: center; gap: 6px; }
.adviesblok__kaart { padding: 28px; border-radius: 20px; background: var(--wit); box-shadow: var(--schaduw); }
.adviesblok__kaart h3, .adviesblok__kaart .h3 { margin: 0 0 12px; }
.adviesblok__bel { margin: 14px 0 0; font-size: 14px; color: var(--tekst-licht); text-align: center; }
.ministappen { margin: 0 0 20px; padding: 0; list-style: none; counter-reset: mini; display: grid; gap: 14px; }
.ministappen li { counter-increment: mini; display: grid; grid-template-columns: 32px 1fr; column-gap: 12px; }
.ministappen li::before { content: counter(mini); grid-row: span 2; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--blauw); color: var(--wit); font-weight: 700; }
.ministappen span { color: var(--tekst-licht); font-size: 14px; }
@media (max-width: 900px) { .adviesblok__grid { grid-template-columns: 1fr; gap: 28px; } }

.reviewsblok { padding-block: 56px; }
.reviewsblok__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; }
.reviewsblok h2 { margin: 0 0 8px; font-size: clamp(26px, 3.2vw, 36px); }
.reviewsblok p { color: var(--tekst-licht); }
.reviewsblok__score { display: grid; justify-items: start; gap: 6px; padding: 28px; border-radius: 20px; border: 1px solid var(--lijn); color: var(--tekst); text-decoration: none; }
.reviewsblok__score:hover { border-color: var(--blauw); }
.reviewsblok__getal { font: 800 56px/1 var(--font-kop); }
.reviewsblok__score .sterren .icoon { width: 22px; height: 22px; }
.reviewsblok__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--blauw); font-weight: 600; }
@media (max-width: 800px) { .reviewsblok__grid { grid-template-columns: 1fr; } }

.team { padding-block: 64px 32px; }
.team__raster { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 24px 0 0; padding: 0; list-style: none; }
.teamlid__foto { position: relative; overflow: hidden; border-radius: 18px; aspect-ratio: 4 / 5; background: var(--achtergrond); }
.teamlid__foto img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.teamlid__hover { position: absolute; inset: 0; opacity: 0; transition: opacity .25s; }
.teamlid:hover .teamlid__hover { opacity: 1; }
.teamlid h3 { margin: 12px 0 2px; font-size: 18px; }
.teamlid p { margin: 0; color: var(--tekst-licht); font-size: 15px; }
@media (max-width: 900px) { .team__raster { grid-template-columns: repeat(2, 1fr); } }
.missie { padding-block: 32px; }
.missie__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.missie__grid > div { padding: 28px; border-radius: var(--radius); background: var(--achtergrond); }
.missie h2 { margin: 0 0 10px; font-size: 24px; }
.missie p { margin: 0; color: var(--tekst-licht); }
@media (max-width: 800px) { .missie__grid { grid-template-columns: 1fr; } }

.contact { padding-block: 16px 72px; }
.contact__tegels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0 0 40px; padding: 0; list-style: none; }
.contact__tegels a { display: grid; gap: 4px; padding: 22px; border: 1px solid var(--lijn); border-radius: var(--radius); color: var(--tekst); text-decoration: none; }
.contact__tegels a:hover { border-color: var(--blauw); }
.contact__tegels .icoon { color: var(--blauw); margin-bottom: 6px; }
.contact__tegels span { color: var(--tekst-licht); font-size: 14px; }
.contact__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; }
.contact__form { padding: 28px; border-radius: 20px; background: var(--achtergrond); }
.contact__form h2, .contact__info h2 { margin: 0 0 16px; font-size: 26px; }
.contact__info img { width: 100%; max-height: 320px; object-fit: cover; object-position: top; border-radius: 20px; margin-bottom: 20px; }
.contact__info > p { color: var(--tekst-licht); }
.contact__gegevens { display: grid; gap: 12px; margin: 20px 0 0; }
.contact__gegevens dt { font-size: 13px; color: var(--tekst-licht); }
.contact__gegevens dd { margin: 0; font-weight: 600; }
@media (max-width: 900px) { .contact__tegels, .contact__grid { grid-template-columns: 1fr; } }

.offertekop { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.offertekop h1 { margin: 0 0 16px; font-size: clamp(32px, 5vw, 52px); font-weight: 800; line-height: 1.06; }
.offertekop__model { padding: 12px 16px; border-radius: 12px; background: var(--wit); border: 1px solid var(--lijn); }
.actieblok { margin-top: 20px; padding: 20px 22px; border-radius: 16px; background: var(--wit); border: 2px dashed var(--blauw-licht); }
.actieblok h2 { margin: 0 0 6px; font-size: 20px; }
.actieblok p { margin: 0; color: var(--tekst-licht); }
@media (max-width: 900px) { .offertekop { grid-template-columns: 1fr; } }

/* ---------- Formulieren (plugin airco-formulieren) ---------- */
.formulier__velden { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
.formulier__velden .veld { grid-column: 1 / -1; }
.formulier__velden .veld--half { grid-column: auto; }
.veld--vink { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 15px; }
.veld--vink input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--blauw); flex: none; }
.veld input[type="file"] { padding: 10px; background: var(--wit); }
.formulier__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.formulier__fout { padding: 12px 16px; border-radius: 10px; background: #fdecec; color: #8a1c1a; font-weight: 600; }
.formulier__klaar { padding: 20px; border-radius: 14px; background: #e8f7ee; color: #14532d; }
.formulier__klaar:focus { outline: none; }
.contact__tip { margin-top: 20px; padding: 14px 16px; border-radius: 12px; background: var(--blauw-zacht); font-size: 15px; }
@media (max-width: 560px) { .formulier__velden .veld--half { grid-column: 1 / -1; } }

/* ---------- Lijstweergave (W24) + keuzehulp-knop (W25) ---------- */
.keuzehulp-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding: 18px 20px; border-radius: var(--radius); background: var(--blauw); color: var(--wit); text-decoration: none; }
.keuzehulp-cta__tekst { font-size: 16px; }
.keuzehulp-cta__tekst strong { display: block; font: 700 19px/1.3 var(--font-kop); }
.keuzehulp-cta .knop { flex: none; }
@media (max-width: 640px) { .keuzehulp-cta { flex-direction: column; align-items: stretch; } }
.weergave { display: inline-flex; padding: 3px; border-radius: 10px; background: var(--wit); border: 1px solid var(--lijn); }
.weergave a { padding: 7px 14px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--tekst-licht); text-decoration: none; }
.weergave a[aria-current] { background: var(--blauw); color: var(--wit); }
.resultaten__balk .weergave { margin-left: auto; }
.resultaten__balk .weergave + .resultaten__sorteer { margin-left: 0; }

.prijslijst { display: grid; gap: 20px; }
.serie { display: grid; grid-template-columns: minmax(260px, 1fr) 1.5fr; gap: 24px; padding: 24px; border-radius: var(--radius); background: var(--wit); border: 1px solid var(--lijn); }
.serie__info { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-content: start; }
.serie__foto img { width: 110px; height: 110px; object-fit: contain; }
.serie__label { display: inline-block; margin: 0 0 6px; padding: 3px 10px; border-radius: 100px; background: var(--blauw-zacht); color: var(--blauw); font-size: 12px; font-weight: 700; }
.serie__titel { margin: 0 0 6px; font-size: 22px; line-height: 1.2; }
.serie__tekst { margin: 0 0 8px; color: var(--tekst-licht); font-size: 15px; }
.serie__klein { margin: 0; font-size: 13px; color: var(--tekst-licht); }
.serie__modellen { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lijn); }
.serie__modellen li { border-bottom: 1px solid var(--lijn); }
.model { display: grid; grid-template-columns: 1fr auto 18px; align-items: center; gap: 16px; padding: 12px 6px; color: var(--tekst); text-decoration: none; }
.model:hover { background: var(--achtergrond); }
.model__naam strong { display: block; font-size: 15px; color: var(--blauw); }
.model__specs { font-size: 13px; color: var(--tekst-licht); }
.model__prijs { font: 800 18px/1 var(--font-kop); white-space: nowrap; }
.model .icoon { width: 16px; height: 16px; color: var(--tekst-licht); }
@media (max-width: 900px) { .serie { grid-template-columns: 1fr; padding: 18px; } }
@media (max-width: 480px) { .serie__info { grid-template-columns: 72px 1fr; } .serie__foto img { width: 72px; height: 72px; } .model { grid-template-columns: 1fr auto; } .model .icoon { display: none; } }

/* ---------- Catalogus in lijstweergave: geen filterkolom ---------- */
.catalogus--lijst .catalogus__grid { grid-template-columns: 1fr; }

/* ---------- Keuzehulp (blauw blok, W25) + vergelijker (W13–W15) ---------- */
.kh-sectie { padding-block: 8px 32px; }
.kh { padding: 32px; border-radius: 24px; background: linear-gradient(120deg, #1f5f9c, #3d86c9 60%, #5aa3de); color: var(--wit); }
.kh__kop { display: flex; align-items: center; gap: 20px; margin-bottom: 22px; }
.kh__kop img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; object-position: top; border: 3px solid rgba(255, 255, 255, .4); flex: none; }
.kh h2 { margin: 0 0 4px; color: var(--wit); font-size: clamp(22px, 3vw, 28px); }
.kh__sub { margin: 0; color: #cfe3f6; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
.kh__tekst { margin: 0 0 18px; max-width: 60ch; color: rgba(255, 255, 255, .9); }
.knop.knop--wit { background: var(--wit); color: var(--blauw); }
.knop.knop--wit:hover { background: var(--blauw-zacht); }
.kh__vraag { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.kh__vraag h3 { margin: 0; color: var(--wit); font-size: 20px; }
.kh__nr { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 10px; font: 700 14px var(--font-kop); }
.kh__waarom { margin: 0 0 14px 54px; font-size: 14px; opacity: .85; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.kh__opties { margin-left: 54px; }
.chip { padding: 10px 16px; border: 1.5px solid var(--lijn); border-radius: 100px; background: var(--wit); color: var(--tekst); font: 600 15px/1.2 var(--font-tekst); cursor: pointer; }
.kh .chip { border-color: transparent; }
.chip.is-aan, .chip:hover { background: var(--rood); border-color: var(--rood); color: var(--wit); }
.kh__voet { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 22px; font-size: 14px; }
.kh .kh__link { border: 0; background: none; color: var(--wit); font: 600 14px var(--font-tekst); cursor: pointer; padding: 0; }
.kh__balk { height: 4px; margin-top: 18px; border-radius: 4px; background: rgba(255, 255, 255, .25); overflow: hidden; }
.kh__balk i { display: block; width: 0; height: 100%; background: var(--wit); transition: width .3s; }
.kh__advieskop { margin: 0 0 14px; color: var(--wit); }
.kh__melding { padding: 16px; border-radius: 14px; background: var(--wit); color: var(--tekst); }
.kh__resultaat { display: grid; grid-template-columns: 1.25fr 1fr; gap: 16px; color: var(--tekst); }
.rkaart { display: grid; grid-template-columns: 140px 1fr; gap: 18px; align-items: start; padding: 22px; border-radius: 18px; background: var(--wit); }
.rkaart img { width: 140px; height: 105px; object-fit: contain; }
.rkaart--alt { grid-template-columns: 96px 1fr; }
.rkaart--alt img { width: 96px; height: 76px; }
.rkaart h3 { margin: 2px 0 4px; font-size: 20px; }
.rkaart__merk { margin: 8px 0 0; font-size: 13px; color: var(--tekst-licht); }
.rkaart__code { margin: 0; font-size: 14px; color: var(--tekst-licht); }
.rkaart__prijs { margin: 8px 0 0; font: 800 26px/1 var(--font-kop); }
.rkaart__klein, .rkaart__kies { margin: 4px 0 12px; font-size: 13px; color: var(--tekst-licht); }
.kh__badge { display: inline-block; padding: 4px 10px; border-radius: 100px; background: var(--blauw-zacht); color: var(--blauw); font-size: 12px; font-weight: 700; }
.kh__badge--groen { background: #e3f6ea; color: var(--groen); }
@media (max-width: 820px) { .kh__resultaat { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
	.kh { padding: 20px 16px; border-radius: 18px; }
	.kh__kop img { width: 52px; height: 52px; }
	.kh__opties, .kh__waarom { margin-left: 0; }
	.kh__opties { display: grid; grid-template-columns: 1fr 1fr; }
	.kh__opties .chip { border-radius: 12px; min-height: 48px; text-align: center; }
	.rkaart, .rkaart--alt { grid-template-columns: 1fr; }
}

.vergelijk { padding-block: 64px 24px; }
.vergelijk__intro { max-width: 720px; color: var(--tekst-licht); }
.vergelijk__filter { position: sticky; top: var(--kop-hoogte); z-index: 20; padding: 12px 0; background: var(--wit); border-block: 1px solid var(--lijn); }
.vergelijk__filter .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.vergelijk__filter .chip { padding: 7px 14px; font-size: 14px; }
.cmp { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 28px; }
.vmodel { display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--lijn); border-radius: 20px; background: var(--wit); }
.vmodel.is-uitgelicht { border-color: var(--blauw); box-shadow: 0 0 0 2px var(--blauw), var(--schaduw); }
.vmodel__top { display: flex; justify-content: space-between; gap: 8px; }
.vmodel__foto { display: grid; place-items: center; height: 150px; margin: 8px 0 12px; }
.vmodel__foto img { max-height: 150px; object-fit: contain; }
.vmodel__merk { margin: 0; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--tekst-licht); }
.vmodel h3 { margin: 2px 0 8px; }
.vmodel__pitch { font-size: 15px; color: var(--tekst-licht); }
.vmodel__let { color: #8a6400; font-size: 14px; }
.vmodel__kies { margin: 4px 0 14px; padding: 12px 14px; border-radius: 12px; background: var(--achtergrond); font-size: 14px; }
.vmodel__kies strong { color: var(--blauw); }
.vmodel__feat { margin: 0 0 16px; padding: 0; list-style: none; font-size: 14px; }
.vmodel__feat li { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px dashed var(--lijn); }
.vmodel__feat .ja { color: var(--groen); font-weight: 800; }
.vmodel__feat .nee { color: #b6becc; }
.swatches { display: flex; gap: 8px; }
.vmodel .sw { width: 22px; height: 22px; padding: 0; border: 2px solid var(--wit); border-radius: 50%; box-shadow: 0 0 0 1.5px #c9d1dd; cursor: pointer; }
.vmodel .sw.is-aan { box-shadow: 0 0 0 2px var(--blauw); }
.vmodel__nu { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--lijn); }
.vmodel__klein, .vmodel__code { margin: 0; font-size: 13px; color: var(--tekst-licht); }
.vmodel__prijs { margin: 4px 0; font: 800 30px/1 var(--font-kop); }
.vmodel__na { color: #b91c1c; font-weight: 600; }
.vmodel__lijst { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; margin: 10px 0 14px; font-size: 13px; color: var(--tekst-licht); }
.vmodel__lijst .is-aan { color: var(--tekst); font-weight: 700; }
.vmodel .knop { width: 100%; }
.vergelijk__kop { margin-top: 56px; }
.scroll-x { overflow-x: auto; border: 1px solid var(--lijn); border-radius: 16px; }
.matrix { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--wit); }
.matrix th, .matrix td { padding: 12px 14px; text-align: right; border-bottom: 1px solid var(--lijn); white-space: nowrap; }
.matrix th:first-child, .matrix td:first-child { text-align: left; }
.matrix thead th { background: var(--blauw); color: var(--wit); font-size: 13px; font-weight: 600; vertical-align: bottom; }
.matrix tr.is-aan td { background: #eef5fb; font-weight: 700; }
.matrix .best { color: var(--groen); font-weight: 800; }
.matrix .leeg { color: #c3cad6; }
.matrix small { font-weight: 400; color: var(--tekst-licht); }
.merken { padding-block: 64px; background: var(--achtergrond); }
.merken__raster { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.merk { padding: 24px; border-radius: var(--radius); background: var(--wit); }
.merk h3 { margin: 0 0 6px; }
.merk p { color: var(--tekst-licht); }
@media (max-width: 960px) { .cmp, .merken__raster { grid-template-columns: 1fr; } }

/* ---------- App-pagina's (aanvraagflow, opvolging, onderhoud, winkelwagen) ---------- */
.app { min-height: 50vh; }
.app--winkel { padding-block: 32px 64px; }
.app__titel { margin: 0 0 24px; font-size: clamp(28px, 4vw, 40px); }
.kh--compact { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 24px; border-radius: 18px; }
.kh--compact .kh__kop { margin: 0; gap: 14px; }
.kh--compact .kh__kop img { width: 52px; height: 52px; border-width: 2px; }
.kh--compact h2 { font-size: 20px; }
.kh__knoppen { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.kh__lijstlink { color: var(--wit); font-weight: 600; font-size: 15px; }
.kh-sectie { padding-block: 0 24px; }
@media (max-width: 760px) { .kh--compact { flex-direction: column; align-items: stretch; } .kh__knoppen .knop { flex: 1; } }
/* Lijst/tegels: beide in de pagina, de klasse bepaalt wat zichtbaar is. */
.catalogus:not(.catalogus--lijst) .prijslijst { display: none; }
.catalogus--lijst .kaarten, .catalogus--lijst .filters, .catalogus--lijst .resultaten__sorteer, .catalogus--lijst .resultaten__filterknop { display: none; }
.resultaten .resultaten__filterknop { display: none; }
@media (max-width: 900px) { .catalogus:not(.catalogus--lijst) .resultaten .resultaten__filterknop { display: inline-flex; } }

/* USP-balk onder de header (zoals bij Pim) */
.uspbalk { border-top: 1px solid var(--lijn); background: var(--achtergrond); }
.uspbalk ul { display: flex; justify-content: space-between; gap: 16px; margin: 0 auto; padding-block: 9px; list-style: none; font-size: 13px; font-weight: 600; color: var(--tekst-licht); }
.uspbalk li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.uspbalk .icoon { width: 15px; height: 15px; padding: 2px; border-radius: 50%; background: var(--blauw); color: var(--wit); }
@media (max-width: 900px) { .uspbalk ul { overflow-x: auto; justify-content: flex-start; scrollbar-width: none; } }

/* Uitleg in twee kolommen (bv. "Een airco kopen in regio Eindhoven") */
.uitleg__duo { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: start; }
.uitleg__duo h2 { margin: 0 0 12px; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.12; }
.uitleg__duo .knoppen { margin-top: 20px; }
.uitleg__kaart { padding: 28px 32px; border-radius: 20px; background: var(--achtergrond); }
.uitleg__kaart p:last-child { margin-bottom: 0; }
@media (max-width: 900px) { .uitleg__duo { grid-template-columns: 1fr; gap: 20px; } .uitleg__kaart { padding: 22px; } }

/* ---------- Homepage in de stijl van Pim ---------- */
/* Airco-kaart zoals bij Pim: lichte kaart, groen vinkje montage, knop over de volle breedte */
.kaart { border: 0; background: var(--achtergrond); }
.kaart__foto { margin: 10px 10px 0; border-radius: 12px; background: var(--wit); }
.kaart__tekst { border-top: 0; gap: 6px; padding: 14px 16px 18px; }
.kaart__titel { font-size: 15px; }
p.kaart__specs { margin: 0; font-size: 13px; color: var(--tekst-licht); }
.kaart__prijs strong { font-size: 22px; }
.kaart__montage { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--groen); }
.kaart__montage .icoon { width: 15px; height: 15px; }
.kaart .knop.kaart__knop { align-self: stretch; padding: 11px 16px; font-size: 14px; }
.catalogus .kaart, .vergelijkbaar .kaart { background: var(--wit); }

/* Voor wie: foto boven, tekst eronder */
.tegels__raster--kaart .tegel { aspect-ratio: auto; background: var(--wit); color: var(--tekst); border-radius: 20px; }
.tegels__raster--kaart .tegel img { aspect-ratio: 16 / 10; border-radius: 20px; }
.tegels__raster--kaart .tegel__tekst { position: static; padding: 18px 4px 4px; background: none; }
.tegels__raster--kaart .tegel__tekst strong { font-size: 24px; }
.tegels__raster--kaart .tegel__tekst span { color: var(--tekst-licht); font-size: 15px; }
.tegels__raster--kaart .tegel:hover img { transform: none; opacity: .92; }

/* USP's: witte kaarten met icoon en nummer */
.usps { background: var(--achtergrond); }
.usps__raster li { position: relative; background: var(--wit); border-radius: 18px; }
.usp__icoon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--blauw-zacht); color: var(--blauw); }
.usp__nr { position: absolute; top: 24px; right: 24px; font: 700 13px var(--font-kop); color: #b6becc; }
.usps__raster h3 { margin-top: 18px; }

/* Stappenslider */
.stapslider { padding-block: 72px; background: linear-gradient(135deg, var(--blauw), var(--blauw-licht)); color: var(--wit); overflow: hidden; }
.stapslider__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
.stapslider h2 { margin: 0 0 14px; color: var(--wit); font-size: clamp(30px, 4vw, 46px); line-height: 1.08; }
.stapslider__intro { margin: 0 0 28px; max-width: 52ch; color: rgba(255, 255, 255, .88); }
.stapslider__rij { display: flex; gap: 14px; margin: 0; padding: 4px 0 8px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.stapkaart { flex: 0 0 230px; scroll-snap-align: start; padding: 20px; border-radius: 16px; background: rgba(255, 255, 255, .14); color: var(--wit); cursor: pointer; transition: background .2s, color .2s; }
.stapkaart.is-actief { background: var(--wit); color: var(--tekst); }
.stapkaart__nr { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: 100px; background: rgba(255, 255, 255, .2); font: 700 12px var(--font-kop); }
.stapkaart.is-actief .stapkaart__nr { background: var(--blauw-zacht); color: var(--blauw); }
.stapkaart h3 { margin: 0 0 6px; color: inherit; font-size: 18px; }
.stapkaart p { margin: 0; font-size: 14px; opacity: .85; }
.stapslider__nav { display: flex; gap: 10px; margin-top: 16px; }
.stapslider .stapslider__nav button { width: 44px; height: 44px; padding: 0; border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 50%; background: none; color: var(--wit); font-size: 18px; cursor: pointer; }
.stapslider__foto { position: relative; aspect-ratio: 4 / 3.4; border-radius: 24px; overflow: hidden; background: rgba(255, 255, 255, .1); }
.stapslider__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s; }
.stapslider__foto img.is-actief { opacity: 1; }
@media (max-width: 900px) { .stapslider__grid { grid-template-columns: 1fr; } .stapslider__foto { order: -1; aspect-ratio: 16 / 10; } }

/* Adviesblok blauw (homepage) */
.adviesblok--blauw { background: none; }
.adviesblok--blauw .adviesblok__grid { padding: 48px; border-radius: 28px; background: var(--blauw); color: var(--wit); }
.adviesblok--blauw h2, .adviesblok--blauw .adviesblok__tekst > p { color: var(--wit); }
.adviesblok--blauw .bovenkop { color: rgba(255, 255, 255, .8); }
.adviesblok--blauw .vinkjes li::before { background: #7ee2a0; }
@media (max-width: 700px) { .adviesblok--blauw .adviesblok__grid { padding: 24px; border-radius: 20px; } }

/* FAQ in twee kolommen (homepage) */
.faq-duo { padding-block: 72px 32px; }
.faq-duo__grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: start; }
.faq-duo__grid > div:first-child p { color: var(--tekst-licht); }
.faq-duo .faq { padding: 0; }
@media (max-width: 900px) { .faq-duo__grid { grid-template-columns: 1fr; gap: 20px; } }

/* Plakbalk met postcodeformulier (homepage, na de eerste sectie) */
.plakbalk { position: fixed; left: 0; right: 0; bottom: 16px; z-index: 90; opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .3s, transform .3s; }
.plakbalk.is-zichtbaar { opacity: 1; pointer-events: auto; transform: none; }
.plakbalk__binnen { display: flex; align-items: center; gap: 20px; padding: 14px 18px; border-radius: 18px; background: var(--wit); box-shadow: 0 20px 50px rgba(11, 18, 32, .22); max-width: calc(var(--breedte) - 40px); }
.plakbalk__tekst { display: grid; flex: 0 0 300px; font-size: 14px; color: var(--tekst-licht); }
.plakbalk__tekst strong { color: var(--tekst); font: 700 17px var(--font-kop); }
.plakbalk .postcodeform { display: flex; align-items: end; gap: 10px; flex: 1; }
.plakbalk .postcodeform__velden { flex: 1; margin: 0; }
.plakbalk .knop.knop--groot { width: auto; padding: 12px 20px; white-space: nowrap; }
@media (max-width: 900px) { .plakbalk { display: none; } }
.tegels__raster--kaart .tegel { overflow: visible; }
.tegels__raster--kaart .tegel img { height: auto; }
.stapslider__links { min-width: 0; }

/* Contact: blauw blok met Guido (zoals bij Pim) */
.contact__blauw { position: relative; overflow: hidden; padding: 40px; border-radius: 28px; background: var(--blauw); color: var(--wit); min-height: 100%; }
.contact__blauw-tekst { position: relative; z-index: 1; max-width: 62%; }
.contact__blauw h2 { margin: 0 0 14px; color: var(--wit); font-size: clamp(30px, 3.6vw, 44px); }
.contact__blauw-tekst > p { color: rgba(255, 255, 255, .9); }
.contact__blauw .vinkjes li::before { background: #7ee2a0; }
.contact__lijst { display: grid; gap: 12px; margin: 24px 0; padding: 0; list-style: none; font-size: 17px; }
.contact__lijst li { display: flex; align-items: center; gap: 12px; }
.contact__lijst a { color: var(--wit); text-decoration: none; }
.contact__werkgebied { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 15px; }
.contact__werkgebied a { color: var(--wit); }
.contact__guido { position: absolute; right: -10px; bottom: 0; width: 46%; max-width: 360px; height: auto; object-fit: contain; }
@media (max-width: 1100px) { .contact__blauw-tekst { max-width: 100%; } .contact__guido { position: static; display: block; width: 70%; margin: 16px auto -40px; } }

/* Hero homepage, nieuwe indeling: tekst + foto naast elkaar, formulier als brede balk eronder */
.held { padding-block: 40px 0; background: linear-gradient(135deg, var(--blauw) 0%, var(--blauw-licht) 100%); }
.held__grid { align-items: stretch; gap: 48px; }
.held__tekst { align-self: center; padding-block: 16px; }
.held__usps { margin-bottom: 0; }
.held__usps .icoon { color: #7ee2a0; }
.held__usps li:last-child .icoon { color: var(--geel); }
.held__foto { align-self: stretch; }
.held__foto img { height: 100%; min-height: 360px; max-height: 460px; aspect-ratio: auto; }
.held__form { position: relative; display: grid; grid-template-columns: 300px 1fr; align-items: center; gap: 28px; margin-top: 40px; transform: translateY(50%); margin-bottom: 0; padding: 24px 28px; border-radius: 20px; background: var(--wit); color: var(--tekst); box-shadow: 0 20px 50px rgba(11, 18, 32, .15); }
.held__form h2 { margin: 0 0 4px; font-size: 21px; }
.held__formtekst p { margin: 0; color: var(--tekst-licht); font-size: 14px; }
.held__form .postcodeform { display: flex; align-items: end; gap: 12px; }
.held__form .postcodeform__velden { flex: 1; margin: 0; }
.held__form .knop.knop--groot { width: auto; padding: 13px 22px; white-space: nowrap; }
.held + .tegels, .held + * { padding-top: 120px; }
@media (max-width: 1000px) {
	.held__form { grid-template-columns: 1fr; gap: 14px; transform: none; margin-block: 28px 0; }
	.held { padding-bottom: 32px; }
	.held + .tegels, .held + * { padding-top: 56px; }
}
@media (max-width: 900px) {
	.held { padding-top: 24px; }
	.held h1 { font-size: 38px; margin-bottom: 14px; }
	.held__intro { font-size: 16px; margin-bottom: 14px; }
	.held__usps { gap: 6px 14px; font-size: 14px; }
	.held__form { padding: 18px; }
	.held__form .postcodeform { display: block; }
	.held__form .knop.knop--groot { width: 100%; margin-top: 12px; }
}

/* Contact: blauwe kolom breder */
.contact__grid { grid-template-columns: 1fr 1.15fr; }
.contact__blauw-tekst { max-width: 58%; }

/* Hero: linkerkolom rustiger */
.held h1 { font-size: clamp(38px, 4.3vw, 60px); line-height: 1.04; }
.held h1 span { display: block; white-space: nowrap; }
.held__intro { max-width: 46ch; font-size: 18px; line-height: 1.6; margin-bottom: 22px; }
.held__usps { gap: 8px; }
.held__usps li { padding: 7px 12px; border-radius: 100px; background: rgba(255, 255, 255, .14); font-size: 14px; }
.held .bovenkop { margin-bottom: 16px; }
@media (max-width: 420px) { .held h1 span { white-space: normal; } }
.held__form { grid-template-columns: 360px 1fr; }

/* Hero-formulier dat meeschuift (desktop) */
.held__form.is-vast { position: fixed; left: 50%; bottom: 16px; z-index: 90; width: min(calc(100% - 40px), var(--breedte)); transform: translateX(-50%); margin: 0; padding: 14px 20px; animation: inschuif .25s ease-out; }
.held__form.is-vast h2 { font-size: 17px; }
.held__form.is-vast .held__formtekst p { font-size: 13px; }
@keyframes inschuif { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Producttegels (modellen), zoals bij Pim: lichte kaart, product heel in beeld, titel eronder */
.tegels__raster--product .tegel { aspect-ratio: auto; display: grid; justify-items: center; gap: 12px; padding: 28px 24px 24px; border-radius: 20px; background: var(--achtergrond); color: var(--tekst); }
.tegels__raster--product .tegel img { width: 100%; height: 170px; object-fit: contain; transition: transform .3s; }
.tegels__raster--product .tegel:hover img { transform: scale(1.04); }
.tegels__raster--product .tegel__tekst { position: static; padding: 0; background: none; text-align: center; }
.tegels__raster--product .tegel__tekst strong { font-size: 20px; justify-content: center; }
.tegels__raster--product .tegel__tekst .icoon { display: none; }

/* Nieuwsbrief in de footer (W28) */
.voet__nieuwsbrief { margin-top: 24px; }
.voet__nieuwsbrief > p { margin: 0 0 10px; }
.formulier--compact .formulier__velden { display: flex; gap: 8px; margin-bottom: 8px; }
.formulier--compact .formulier__velden .veld:first-child { flex: 1; }
.formulier--compact .veld > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.formulier--compact .veld input[type="email"] { padding: 10px 12px; font-size: 15px; }
.formulier--compact .veld--vink { position: static; width: 100%; font-size: 12px; color: inherit; }
.formulier--compact .veld--vink > span { position: static; width: auto; height: auto; clip: auto; }
.formulier--compact .formulier__velden { flex-wrap: wrap; }
.formulier--compact .formulier__velden .veld--vink { order: 3; }
.formulier--compact .knop { padding: 10px 16px; font-size: 14px; }
.voet .formulier__klaar { background: rgba(255, 255, 255, .1); color: var(--wit); }
.voet .formulier--compact a { text-decoration: underline; }
.levering { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 16px; padding: 10px 12px; border-radius: 10px; background: #fff7e6; color: #7a5200; font-size: 13px; line-height: 1.45; }
.levering .icoon { width: 16px; height: 16px; flex: none; margin-top: 1px; }

/* Nieuwsbrief in de footer: minder contrast */
.voet .formulier--compact { position: relative; }
.voet .formulier--compact .veld input[type="email"] { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); color: var(--wit); border-radius: 100px; padding: 11px 130px 11px 16px; }
.voet .formulier--compact .veld input[type="email"]::placeholder { color: rgba(255, 255, 255, .5); }
.voet .formulier--compact .knop { position: absolute; top: 4px; right: 4px; padding: 8px 16px; }
.voet .formulier--compact .veld--vink { font-size: 12px; color: rgba(255, 255, 255, .6); gap: 8px; }
.voet .formulier--compact .veld--vink input { width: 14px; height: 14px; }
.voet .formulier--compact .veld--vink abbr { display: none; }
