/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://tomusborne.com
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the new block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS and is translated into over 25 languages by our amazing community of users. A few of our many features include microdata integration, 9 widget areas, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover) and navigation color presets. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.0.2.1624259470
Updated: 2021-06-21 07:11:10

*/

/* -------------------------------------------------------------------------
   Tekstpagina's die van de live site zijn overgezet
   Deze pagina's hebben geen Elementor-opbouw maar gewone inhoud. Zonder deze
   regels loopt de tekst van rand tot rand over het scherm.
   ------------------------------------------------------------------------- */
.vts-tekstpagina{
	max-width: 880px;
	margin: 0 auto;
	padding: 64px 22px 96px;
	color: #1D3557;
	font-size: 16.5px;
	line-height: 1.75;
}
.vts-tekstpagina h1{
	margin: 0 0 28px;
	font-size: 44px;
	line-height: 1.12;
	font-weight: 800;
	color: #0F1E31;
	text-wrap: balance;
}
.vts-tekstpagina h2{
	margin: 48px 0 14px;
	font-size: 28px;
	line-height: 1.22;
	font-weight: 700;
	color: #0F1E31;
}
.vts-tekstpagina h3{
	margin: 34px 0 10px;
	font-size: 21px;
	line-height: 1.3;
	font-weight: 700;
	color: #0F1E31;
}
.vts-tekstpagina p{ margin: 0 0 18px; }
.vts-tekstpagina ul,
.vts-tekstpagina ol{ margin: 0 0 20px; padding-left: 24px; }
.vts-tekstpagina li{ margin-bottom: 7px; }
.vts-tekstpagina a{ color: #22A56E; }
.vts-tekstpagina img{
	max-width: 100%;
	height: auto;
	display: block;
	margin: 26px 0;
	border-radius: 10px;
}
.vts-tekstpagina > *:first-child{ margin-top: 0; }

@media (max-width: 767px){
	.vts-tekstpagina{ padding: 40px 18px 64px; font-size: 16px; }
	.vts-tekstpagina h1{ font-size: 31px; margin-bottom: 20px; }
	.vts-tekstpagina h2{ font-size: 23px; margin-top: 36px; }
	.vts-tekstpagina h3{ font-size: 19px; margin-top: 26px; }
}

/* Tabellen uit de overgezette pagina's. Op een telefoon zijn ze breder dan
   het scherm; daar mogen ze binnen hun eigen kader horizontaal schuiven. */
.vts-tekstpagina table{
	width: 100%;
	margin: 0 0 24px;
	border-collapse: collapse;
	font-size: .96em;
}
.vts-tekstpagina th,
.vts-tekstpagina td{
	padding: 10px 14px;
	border: 1px solid #E1E8EF;
	text-align: left;
	vertical-align: top;
}
.vts-tekstpagina thead th{ background: #F3F7FA; font-weight: 700; }
.vts-tekstpagina tbody tr:nth-child(even){ background: #FAFCFD; }

@media (max-width: 767px){
	.vts-tekstpagina table{
		display: block;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.vts-tekstpagina td,
	.vts-tekstpagina th{ padding: 9px 11px; }
}

/* ------------------------------------------------------------------
   Paginakop voor de tekstpagina's

   De header van de site is doorzichtig en gaat ervan uit dat er iets
   donkers achter staat. Zonder kop valt het witte menu weg tegen een
   witte pagina. Deze kop is dezelfde als die van /projecten/: een
   donkere strook van 128px achter de header, met daaronder een lichte
   band waarin de titel staat. De maten komen een op een uit dat
   Elementor-sjabloon.
   ------------------------------------------------------------------ */
.vts-paginakop {
	position: relative;
	margin-top: -120px;
	padding: 178px 20px 50px;
	background: rgba(168, 206, 220, .2);
	border-radius: 0 0 0 15px;
}
/* de donkere strook achter de header */
.vts-paginakop::before {
	content: "";
	position: absolute;
	top: 0;
	left: calc(100% - 1750px);
	width: 100%;
	max-width: 1750px;
	height: 128px;
	background: #0F1E31;
	border-radius: 0 0 0 69px;
	pointer-events: none;
}
.vts-paginakop-binnen {
	max-width: 1280px;
	margin: 0 auto;
}
.vts-paginakop h1 {
	margin: 0;
	font-family: 'Mulish', sans-serif;
	font-size: 60px;
	line-height: 1.08;
	font-weight: 700;
	color: #1D3557;
	text-align: center;
	text-wrap: balance;
}
/* de kop staat er al, dus de tekst eronder hoeft minder lucht */
.vts-paginakop + .vts-tekstpagina { padding-top: 56px; }

@media (max-width: 1750px) {
	.vts-paginakop::before { max-width: 1550px; left: calc(100% - 1550px); }
}
@media (max-width: 1550px) {
	.vts-paginakop::before { max-width: none; left: 0; right: 0; width: auto; }
}
@media (max-width: 1024px) {
	.vts-paginakop h1 { font-size: 46px; }
}
@media (max-width: 767px) {
	.vts-paginakop { padding: 158px 20px 30px; border-radius: 0 0 0 10px; }
	.vts-paginakop::before { border-radius: 0 0 0 34px; }
	.vts-paginakop h1 { font-size: 33px; line-height: 1.15; }
	.vts-paginakop + .vts-tekstpagina { padding-top: 40px; }
}

/* ------------------------------------------------------------------
   Tekst-met-beeld rijen om en om

   Elke rij staat in de data als [tekstkolom, fotokolom], dus met de foto
   rechts. De regels hieronder zetten de foto van de oneven rijen links,
   zodat de kanten elkaar afwisselen.

   Het tellen gebeurt met "of .vts-beeldrij", zodat alleen de rijen
   meetellen die op die pagina daadwerkelijk in de pagina staan. Dat is
   nodig omdat JetEngine op de landingspagina's per pagina andere blokken
   weglaat: een vaste kant per blok in het sjabloon klopt dan voor de ene
   pagina wel en voor de andere niet.

   Alleen op desktop; op tablet en mobiel staan de kolommen onder elkaar.
   ------------------------------------------------------------------ */
@media (min-width: 1025px) {
	/* De klasse vts-beeldrij staat op de sectie (daarmee wordt geteld), de
	   klasse vts-beeldrij-rij op de rij zelf. Meestal is dat dezelfde
	   container, maar bij de cta-blokken zit de rij er nog een niveau in.

	   .e-con.e-flex erbij: Elementor's eigen regel voor .e-con-inner weegt
	   even zwaar en staat later in de reeks, dus die wint anders. */
	.e-con.e-flex.vts-beeldrij-rij > .e-con-inner,
	.e-con-full.e-flex.vts-beeldrij-rij { flex-direction: row-reverse; }
	.vts-beeldrij:nth-child(even of .vts-beeldrij) .e-con.e-flex.vts-beeldrij-rij > .e-con-inner,
	.e-con.e-flex.vts-beeldrij-rij:nth-child(even of .vts-beeldrij) > .e-con-inner,
	.vts-beeldrij:nth-child(even of .vts-beeldrij) .e-con-full.e-flex.vts-beeldrij-rij,
	.e-con-full.e-flex.vts-beeldrij-rij:nth-child(even of .vts-beeldrij) { flex-direction: row; }

	/* Het samenstelblok is geen container met twee kolommen maar een eigen
	   raster in een html-widget. Die telt wel mee in de afwisseling, dus
	   verplaatsen we hier zijn beeldkolom. */
	.vts-beeldrij .vts-grid { grid-template-columns: 1fr 1.05fr; }
	.vts-beeldrij .vts-media { order: 0; }
	.vts-beeldrij:nth-child(even of .vts-beeldrij) .vts-grid { grid-template-columns: 1.05fr 1fr; }
	.vts-beeldrij:nth-child(even of .vts-beeldrij) .vts-media { order: 2; }

	/* Het V-watermerk in deze rijen staat in de data rechts (x=744, bij foto
	   links). Als de zigzag de rij spiegelt (foto rechts) valt de V anders
	   achter de foto; deze regels zetten hem dan links, gespiegeld. */
	.vts-beeldrij:nth-child(even of .vts-beeldrij) .e-con.e-flex.vts-beeldrij-rij::before,
	.e-con.e-flex.vts-beeldrij-rij:nth-child(even of .vts-beeldrij)::before,
	.vts-beeldrij:nth-child(even of .vts-beeldrij) .e-con-full.e-flex.vts-beeldrij-rij::before,
	.e-con-full.e-flex.vts-beeldrij-rij:nth-child(even of .vts-beeldrij)::before { background-position-x: 0; }

	/* Het subsidieblok volgt de zigzag niet: de doorsnede-afbeelding staat
	   altijd links, zoals in het klantdesign. */
	.e-con.e-flex.vts-beeldrij-rij.vts-subsidieblok,
	.e-con-full.e-flex.vts-beeldrij-rij.vts-subsidieblok { flex-direction: row-reverse !important; }
	.vts-beeldrij-rij.vts-subsidieblok::before { background-position-x: -60px !important; }
}

/* ============ offertewizard (schuifpui / deur / dakkapel) ============ */

/* kopband: lichte band met de donkere balk achter het doorzichtige menu */
.vts-offerte-kopband { background: #EEF5F8; height: 189px; border-bottom-left-radius: 20px; }
.vts-offerte-kopband-donker { background: #0F1E31; height: 129px; margin-left: max(0px, calc(50vw - 755px)); border-bottom-left-radius: 75px 60px; }
@media (max-width: 1024px) {
	.vts-offerte-kopband { height: 130px; }
	.vts-offerte-kopband-donker { margin-left: 0; height: 110px; border-bottom-left-radius: 40px 30px; }
}

/* stappenlijst in de donkere kolom */
.vts-wiz-stappen { list-style: none; margin: 0; padding: 0; }
.vts-wiz-stappen li { display: flex; align-items: center; gap: 14px; color: #80AFC1; font-size: 16px; margin: 0 0 27px; }
.vts-wiz-stappen li span { width: 28.5px; height: 28.5px; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1.5px solid rgba(168,206,220,.4); font-size: 14px; }
.vts-wiz-stappen li.actief { color: #fff; font-weight: 600; }
.vts-wiz-stappen li.actief span, .vts-wiz-stappen li.gedaan span { background: #A8CEDC; border-color: #A8CEDC; color: #0F1E31; font-weight: 700; }
.vts-wiz-lijn { border: 0; border-top: 1px solid rgba(168,206,220,.25); margin: 18px 0 27px; }

/* Sinds 18-09 staat die stappenlijst boven het formulier, op wit en naast elkaar.
   De donkere kolom is van de offertepagina's verdwenen, dus dit overschrijft het blok hierboven. */
.vts-wiz-stappen { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; }
.vts-wiz-stappen li { margin: 0; color: #5C7A96; }
.vts-wiz-stappen li span { border-color: rgba(15,30,49,.18); }
.vts-wiz-stappen li.actief { color: #0F1E31; }
.vts-wiz-stappen li.actief span,
.vts-wiz-stappen li.gedaan span { background: #0F1E31; border-color: #0F1E31; color: #fff; }
.vts-wiz-lijn { display: none; }
@media (max-width: 767px) {
	.vts-wiz-stappen { gap: 8px 16px; }
	.vts-wiz-stappen li { font-size: 14px; gap: 8px; }
	.vts-wiz-stappen li span { width: 24px; height: 24px; font-size: 13px; }
}

/* voortgang boven het formulier */
.vts-wiz-voortgang { margin-bottom: 26px; }
.vts-wiz-staplabel { display: block; font-size: 13px; letter-spacing: .5em; text-transform: uppercase; color: #80AFC1; margin-bottom: 12px; }
.vts-wiz-balk { height: 4px; border-radius: 2px; background: #D7E6EC; overflow: hidden; }
.vts-wiz-balk i { display: block; height: 100%; background: #22A56E; border-radius: 2px; transition: width .25s; }

/* de keuzevragen als pills */
.vts-wizard-form .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 12px; }
.vts-wizard-form .elementor-field-subgroup .elementor-field-option { display: inline-flex; align-items: center; gap: 10px; background: #fff; border: 1px solid rgba(15,30,49,.06); border-radius: 100px; height: 40px; padding: 0 17px; width: auto; }
/* Elementor zet op inline-subgroepen padding-inline-end: 10px op de optie; rechts hoort evenveel lucht als links */
.vts-wizard-form .elementor-field-subgroup .elementor-field-option { padding-inline-end: 17px !important; padding-right: 17px !important; }
.vts-wizard-form .elementor-field-option label { margin: 0; font-weight: 600; font-size: 16px; line-height: 1; color: #0F1E31; cursor: pointer; letter-spacing: 0; text-transform: none; }
.vts-wizard-form .elementor-field-option input { width: 17px; height: 17px; accent-color: #22A56E; margin: 0; flex: none; }
/* de losse adviescheckbox is geen pill en heeft geen groepslabel */
.vts-wizard-form .elementor-field-group-advies > label { display: none; }
.vts-wizard-form .elementor-field-group-advies .elementor-field-option { background: none; border: 0; padding: 0; height: auto; }
.vts-wizard-form .elementor-field-group-advies .elementor-field-option label { font-weight: 400; }
/* /offerte-aanvragen/: de productkeuze staat vanaf 768 px als 4 + 3 (klant 25-09, image1). Een lege regel-breker na de
   vierde pil (::after over de volle breedte, order 1) zet de laatste drie op rij 2; pillen houden hun eigen breedte.
   Niet op mobiel: daar is de subgroep een raster van 2 en zou ::after een lege cel worden. */
@media (min-width: 768px) {
	.vts-wizard-form .elementor-field-group-product .elementor-field-subgroup::after { content: ""; flex-basis: 100%; height: 0; order: 1; }
	/* de lege regel telt ook als rij, dus de rij-afstand valt twee keer: 6 + 6 = de gewone 12 */
	.vts-wizard-form .elementor-field-group-product .elementor-field-subgroup { row-gap: 6px; }
	.vts-wizard-form .elementor-field-group-product .elementor-field-subgroup .elementor-field-option:nth-child(n+5) { order: 2; }
}

/* faq-categoriefilter (/veelgestelde-vragen/) */
.vts-faq-filter { display: flex; gap: 24px; justify-content: space-between; border-bottom: 1px solid #D8E2EA; overflow-x: auto; scrollbar-width: none; }
/* vraaggroepen: kolommen strak tegen beide randen (Elementor-defaultpadding uit) */
.vts-faq-rij, .vts-faq-kolom { padding: 0 !important; }
.vts-faq-kolom { width: calc(50% - 8px) !important; }
@media (max-width: 1024px) { .vts-faq-kolom { width: 100% !important; } }
.vts-faq-filter::-webkit-scrollbar { display: none; }
.vts-faq-filter button { background: none; border: 0; padding: 4px 2px 15px; font-family: Mulish, sans-serif; font-size: 15px; font-weight: 600; line-height: 1; color: #8AA3B5; cursor: pointer; white-space: nowrap; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .15s; }
.vts-faq-filter button:hover { color: #0F1E31; }
.vts-faq-filter button.actief { color: #0F1E31; border-bottom-color: #0F1E31; }

/* contactkaarten */
.vts-contactkaarten { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1024px) { .vts-contactkaarten { grid-template-columns: 1fr; } }
.vts-contactkaart { background: #DCEAF0; border-radius: 15px 15px 75px 15px; padding: 40px 45px; height: 100%; display: flex; flex-direction: column; align-items: flex-start; }
.vts-contactkaart-kop { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; color: #0F1E31; }
.vts-contactkaart-kop svg { flex: none; }
.vts-contactkaart-kop h3 { margin: 0; font-size: 20px; font-weight: 700; color: #0F1E31; }
.vts-contactkaart p { margin: 0 0 22px; font-size: 16px; line-height: 27px; color: #1D3557; }
a.vts-contactkaart-actie, .vts-contactkaart a.vts-contactkaart-actie { margin-top: auto; font-weight: 700; font-size: 18px; color: #0F1E31; text-decoration: none; }
a.vts-contactkaart-actie:hover, .vts-contactkaart a.vts-contactkaart-actie:hover { color: #22A56E; }
.vts-contactkaart-sub { margin-top: 10px; font-size: 14px; line-height: 20px; color: #1D3557; }

/* ============ projectdetail v2 (Figma 'Project vervolg') ============ */

/* fotoband: banner + detailfoto, stekend onder de lichte kopband uit.
   Hoogtes zijn 16-09 verlaagd (430 -> 340) zodat de titel en de tekst eronder
   ook op een laag scherm meteen in beeld staan; de marges horen erbij en staan
   in template 9015. */
.vts-projectband { display: flex; gap: 20px; margin-bottom: -70px; }
.elementor .vts-projectband img { object-fit: cover; height: 340px; border-radius: 15px; min-width: 0; flex: 1 1 62%; width: 62%; }
.elementor .vts-projectband img:last-child:not(:only-child) { flex: 1 1 38%; width: 38%; border-radius: 15px 15px 75px 15px; }
.elementor .vts-projectband img:only-child { flex: 1 1 100%; width: 100%; border-radius: 15px 15px 75px 15px; }
/* kleine laptop (<= 1366px; klantscherm 1280x600): band korter en minder uitloop,
   zodat de foto's en de titel samen in beeld passen */
@media (max-width: 1366px) {
	.vts-projectband { margin-bottom: -60px; }
	.elementor .vts-projectband img,
	.elementor .vts-projectband img:last-child:not(:only-child),
	.elementor .vts-projectband img:only-child { height: 280px; }
}
/* tablet: naast elkaar, lager */
@media (max-width: 1024px) {
	.vts-projectband { margin-bottom: -60px; }
	.elementor .vts-projectband img,
	.elementor .vts-projectband img:last-child:not(:only-child),
	.elementor .vts-projectband img:only-child { height: 260px; }
}
/* mobiel: onder elkaar, volle breedte (16-09 lager: 240 -> 190) */
@media (max-width: 767px) {
	.vts-projectband { flex-direction: column; gap: 12px; margin-bottom: -60px; }
	.elementor .vts-projectband img,
	.elementor .vts-projectband img:last-child:not(:only-child),
	.elementor .vts-projectband img:only-child { flex: 0 0 auto; width: 100%; height: 190px; }
}

/* gecentreerde intro (categorie-kicker + h1 + tekst) */
.vts-project-kicker { font-family: Mulish, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 3.9px; text-transform: uppercase; color: #80AFC1; line-height: 16px; }
.e-con.vts-project-intro { text-align: center; font-family: Mulish, sans-serif; }
.vts-project-intro .e-con-inner { max-width: 780px; }
.vts-project-intro .vts-project-kicker { margin-bottom: 16px; }
.vts-project-intro .vts-projectveld--content_boven_de_vouw h1 { font-family: Mulish, sans-serif; font-size: 46px; line-height: 52px; font-weight: 700; color: #0F1E31; margin: 0 0 18px; }
.vts-project-intro .vts-projectveld--content_boven_de_vouw p { font-family: Mulish, sans-serif; font-size: 16px; line-height: 27px; color: #1D3557; max-width: none; margin: 0 0 14px; }
@media (max-width: 1366px) { .vts-project-intro .vts-projectveld--content_boven_de_vouw h1 { font-size: 42px; line-height: 48px; } }
@media (max-width: 768px) { .vts-project-intro .vts-projectveld--content_boven_de_vouw h1 { font-size: 32px; line-height: 38px; margin-bottom: 14px; } }
.vts-project-intro .vts-projectveld--content_boven_de_vouw a { color: #80AFC1; }

/* impressiegalerij: rijen van breed + smal; het geheel rond op 75px,
   elke foto zelf op 15px */
.vts-impressie { display: flex; flex-wrap: wrap; gap: 20px; border-radius: 75px; overflow: hidden; }
.elementor .vts-impressie img { object-fit: cover; height: 360px; border-radius: 15px; min-width: 0; }
.vts-impressie img:nth-child(odd) { width: calc(57% - 10px); }
.vts-impressie img:nth-child(even) { width: calc(43% - 10px); }
.vts-impressie img:last-child:nth-child(odd):not(:first-child) { width: 100%; }
@media (max-width: 1366px) { .elementor .vts-impressie img { height: 320px; } }
@media (max-width: 768px) {
	.vts-impressie { gap: 12px; }
	.vts-impressie img, .vts-impressie img:nth-child(odd), .vts-impressie img:nth-child(even) { width: 100%; height: 200px; }
}

/* carousel met andere projecten */
.vts-projectcarousel-kop { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 34px; }
.vts-projectcarousel-titel { font-size: 40px; line-height: 46px; font-weight: 700; color: #0F1E31; margin: 12px 0 0; }
.vts-projectcarousel-titel span { color: #A8CEDC; }
.vts-projectcarousel-pijlen { display: flex; gap: 10px; flex: none; }
.vts-projectcarousel-pijlen button { width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid rgba(15, 30, 49, .25); background: none; color: #0F1E31; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all .15s; }
.vts-projectcarousel-pijlen button:hover { background: #0F1E31; border-color: #0F1E31; color: #fff; }
.vts-projectcarousel-pijlen button[data-richting="terug"] svg { transform: scaleX(-1); }
.vts-projectcarousel-baan { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.vts-projectcarousel-baan::-webkit-scrollbar { display: none; }
.vts-projectkaart { position: relative; flex: 0 0 calc(33.333% - 16px); scroll-snap-align: start; border-radius: 15px 15px 15px 75px; overflow: hidden; display: block; }
.vts-projectkaart img { width: 100%; height: 340px; object-fit: cover; display: block; transition: transform .3s; }
.vts-projectkaart:hover img { transform: scale(1.04); }
.vts-projectkaart::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 30, 49, 0) 40%, rgba(15, 30, 49, .82) 100%); }
.vts-projectkaart-info { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 26px 26px 34px; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.vts-projectkaart-badge { border: 1px solid rgba(255, 255, 255, .55); border-radius: 100px; padding: 3px 13px; font-size: 12px; font-weight: 600; color: #fff; text-transform: lowercase; }
.vts-projectkaart-titel { font-size: 20px; line-height: 26px; font-weight: 700; color: #fff; }
.vts-projectkaart-sub { font-size: 13px; color: rgba(255, 255, 255, .75); }
.vts-projectcarousel-balk { height: 4px; border-radius: 2px; background: #D7E6EC; margin-top: 30px; overflow: hidden; }
.vts-projectcarousel-balk i { display: block; height: 100%; border-radius: 2px; background: #5C7A96; transition: width .2s; }
@media (max-width: 1024px) { .vts-projectkaart { flex-basis: calc(50% - 12px); } }
@media (max-width: 640px) {
	.vts-projectkaart { flex-basis: 86%; }
	.vts-projectcarousel-titel { font-size: 30px; line-height: 36px; }
}

/* ============ projectdetail (single-projecten) ============ */
.vts-projectveld--content_boven_de_vouw h1 { font-size: 50px; line-height: 55px; font-weight: 700; color: #0F1E31; margin: 0 0 18px; }
.vts-projectveld--content_boven_de_vouw p { font-size: 16px; line-height: 25px; color: #1D3557; max-width: 640px; margin: 0; }
@media (max-width: 768px) {
	.vts-projectveld--content_boven_de_vouw h1 { font-size: 34px; line-height: 40px; }
}
.vts-projectveld--tekstveld_1 h2 { font-size: 40px; line-height: 46px; font-weight: 700; color: #0F1E31; margin: 0 0 22px; }
.vts-projectveld--tekstveld_1 p { font-size: 16px; line-height: 25px; color: #1D3557; margin: 0 0 12px; }
.vts-projectbeeld { position: relative; padding: 0 0 26px 26px; }
.vts-projectbeeld::before { content: ""; position: absolute; left: 0; bottom: 0; top: 90px; right: 90px; background: #D8E9EF; border-radius: 15px 15px 15px 75px; }
.vts-projectbeeld img { position: relative; width: 100%; height: auto; aspect-ratio: 627 / 508; object-fit: cover; border-radius: 15px 75px 15px 15px; }
@media (max-width: 768px) { .vts-projectbeeld { padding: 0 0 18px 18px; } .vts-projectbeeld::before { top: 60px; right: 60px; } }
.vts-projectgalerij { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.vts-projectgalerij img { width: 100%; height: 280px; object-fit: cover; border-radius: 15px; }
.vts-projectgalerij img:first-child { border-radius: 15px 15px 15px 75px; }
@media (max-width: 1024px) { .vts-projectgalerij { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .vts-projectgalerij { grid-template-columns: 1fr; } .vts-projectgalerij img { height: 220px; } }

/* ============ showcase-carousel ([vts_showcase]) ============ */
.vts-showcase { position: relative; }
.vts-showcase-baan { display: flex; gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 10px calc(50% - 21%); scrollbar-width: none; }
.vts-showcase-baan::-webkit-scrollbar { display: none; }
.vts-showcase-item { flex: 0 0 42%; min-width: 0; scroll-snap-align: center; cursor: pointer; }
.vts-showcase-item img { width: 100%; height: auto; border-radius: 15px; display: block; }
.vts-showcase-pijl { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; background: none; border: 0; padding: 0; cursor: pointer; line-height: 0; border-radius: 50%; box-shadow: 0 6px 18px rgba(15, 30, 49, .22); }
.vts-showcase-pijl svg { display: block; }
.vts-showcase-pijl--terug { left: 3%; }
.vts-showcase-pijl--terug svg { transform: scaleX(-1); }
.vts-showcase-pijl--verder { right: 3%; }
.vts-showcase-pijl:hover svg circle { fill: #0F1E31; }
@media (max-width: 768px) {
	.vts-showcase-baan { gap: 16px; padding: 6px calc(50% - 37%); }
	.vts-showcase-item { flex-basis: 74%; }
	.vts-showcase-pijl svg { width: 36px; height: 36px; }
	.vts-showcase-pijl--terug { left: 8px; }
	.vts-showcase-pijl--verder { right: 8px; }
}
.vts-showcase-kop { font-size: 40px; line-height: 46px; font-weight: 700; color: #ACD0DD; margin: 0 0 34px; text-align: center; }
.vts-showcase-kop span { color: #1D3557; }
@media (max-width: 768px) { .vts-showcase-kop { font-size: 30px; line-height: 36px; } }

/* showcase-verfraaiing: lichte band, signatuurhoek en diepte op het actieve
   beeld, vervagende randen en voortgangsstippen */
.vts-showcase { background: #EEF5F8; border-radius: 15px 75px 15px 15px; padding: 50px 0 28px; overflow: hidden; }
.vts-showcase-kop { margin-bottom: 20px; }
.vts-showcase-baan { padding: 18px calc(50% - 21%) 58px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.vts-showcase-item img { transition: border-radius .35s ease, box-shadow .35s ease; }
.vts-showcase-item.actief img { border-radius: 15px 75px 15px 15px; box-shadow: 0 20px 42px rgba(15, 30, 49, .16); }
.vts-showcase-pijl { box-shadow: 0 8px 22px rgba(15, 30, 49, .28); }
.vts-showcase-stippen { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: -26px 20px 0; position: relative; z-index: 2; }
.vts-showcase-stip { width: 8px; height: 8px; border-radius: 99px; border: 0; padding: 0; background: rgba(15, 30, 49, .18); cursor: pointer; transition: width .3s ease, background .3s ease; }
.vts-showcase-stip:hover { background: rgba(15, 30, 49, .4); }
.vts-showcase-stip.actief { width: 26px; background: #22A56E; }
@media (max-width: 768px) {
	.vts-showcase { border-radius: 15px 40px 15px 15px; padding: 32px 0 20px; }
	.vts-showcase-baan { padding: 12px calc(50% - 37%) 42px; }
	.vts-showcase-stippen { margin-top: -16px; }
}

/* ============ klantervaringen: reviewkaarten (live-look) ============ */
.vts-reviews-band { background: #F5F8FA; padding: 70px 20px 90px; }
.vts-reviews { columns: 3; column-gap: 30px; max-width: 1240px; margin: 0 auto; }
.vts-reviewkaart { break-inside: avoid; background: #fff; border-radius: 15px; box-shadow: 0 12px 34px rgba(15,30,49,.07); padding: 28px 30px 24px; margin: 0 0 30px; font-family: 'Mulish', sans-serif; }
.vts-review-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.vts-sterren { color: #F6B93B; font-size: 17px; letter-spacing: 3px; line-height: 1; }
.vts-review-badge { background: #EEF2F5; color: #5B6B7E; font-size: 12px; font-weight: 600; border-radius: 99px; padding: 5px 14px; white-space: nowrap; }
.vts-review-naam { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin: 12px 0 0; font-size: 20px; line-height: 1.25; font-weight: 700; color: #0F1E31; }
.vts-review-naam .vts-review-g { flex: none; margin-top: 3px; }
.vts-review-quote { display: block; margin: 18px 0 12px; }
.vts-reviewkaart p { margin: 0 0 10px; font-size: 14.5px; line-height: 1.65; color: #33475C; }
.vts-reviewkaart p:last-child { margin-bottom: 0; }
@media (max-width: 1024px) { .vts-reviews { columns: 2; } }
@media (max-width: 700px) { .vts-reviews-band { padding: 40px 16px 60px; } .vts-reviews { columns: 1; } }

/* ============ werkwijze: intro + tijdlijn (/werkwijze/) ============
   De pagina is gewone inhoud (geen Elementor); alle opmaak zit hier.
   Opbouw: intro met kicker en drie feiten -> lichtblauw paneel met een
   tijdlijn van kaarten links en rechts van een rail -> donkere afsluiter.
   Mulish is de sitefont en wordt geerfd; bij losse elementen buiten de
   tekststroom staat hij er expliciet bij. */
.vts-werkwijze { max-width: 1120px; }

/* --- intro --- */
/* De intro zelf loopt over de volle breedte, alleen kop en tekst blijven smal;
   zo passen de drie feiten eronder op een rij. */
.vts-werkwijze-intro { text-align: center; margin: 0 0 46px; }
.vts-tekstpagina .vts-werkwijze-kicker {
	display: inline-flex; align-items: center; gap: 9px; margin: 0 0 20px; padding: 7px 17px 7px 13px;
	background: #E4F3EC; color: #14624A; border-radius: 100px;
	font-family: 'Mulish', sans-serif; font-weight: 700; font-size: 12.5px; line-height: 1;
	letter-spacing: .06em; text-transform: uppercase;
}
.vts-werkwijze-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #22A56E; }
.vts-werkwijze-intro h2 { max-width: 730px; margin: 0 auto 16px; font-size: 42px; line-height: 48px; color: #0F1E31; text-wrap: balance; }
.vts-werkwijze-intro p { max-width: 730px; margin: 0 auto; font-size: 16.5px; line-height: 28px; color: #33475C; }

/* drie feiten onder de intro */
.vts-tekstpagina .vts-werkwijze-punten {
	list-style: none; margin: 28px 0 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}
.vts-tekstpagina .vts-werkwijze-punten li {
	margin: 0; display: inline-flex; align-items: center; gap: 9px; padding: 8px 18px 8px 13px;
	background: #fff; border: 1px solid #D7E6EC; border-radius: 100px;
	font-size: 14.5px; font-weight: 600; line-height: 1.35; color: #0F1E31;
}
.vts-tekstpagina .vts-werkwijze-punten li::before {
	content: ""; flex: none; width: 17px; height: 17px; border-radius: 50%; background: #22A56E
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.9 6.3l2.6 2.6L10.1 3.3' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
		center / 11px no-repeat;
}

/* --- tijdlijn: paneel met rail --- */
.vts-tekstpagina .vts-tijdlijn {
	list-style: none; max-width: none; margin: 0; padding: 54px 44px 56px;
	position: relative; background: #EEF5F8; border-radius: 24px;
}
.vts-tijdlijn::before {                       /* de rail: begint bij het eerste rondje en dooft onderaan uit */
	content: ""; position: absolute; left: 50%; transform: translateX(-50%);
	top: 78px; bottom: 60px; width: 2px;
	background: linear-gradient(180deg, #22A56E 0%, #22A56E 62%, rgba(34, 165, 110, 0) 100%);
}

/* --- de stappen als kaarten, om en om links en rechts --- */
.vts-tekstpagina .vts-tijdlijn-stap {
	position: relative; width: calc(50% - 52px); margin: 0 0 24px; padding: 24px 26px 26px;
	background: #fff; border-radius: 16px; box-shadow: 0 10px 26px rgba(15, 30, 49, .06);
	transition: transform .18s ease, box-shadow .18s ease;
}
/* om en om links en rechts, en iets in elkaar geschoven zodat de zigzag als een geheel leest */
.vts-tekstpagina .vts-tijdlijn-stap + .vts-tijdlijn-stap { margin-top: -70px; }
.vts-tekstpagina .vts-tijdlijn-stap:nth-child(even) { margin-left: auto; }
.vts-tekstpagina .vts-tijdlijn-stap:last-child { margin-bottom: 0; background: #F2FAF6; }
.vts-tekstpagina .vts-tijdlijn-stap:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(15, 30, 49, .10); }

/* het streepje van de kaart naar de rail */
.vts-tijdlijn-stap::after {
	content: ""; position: absolute; top: 48px; width: 29px; height: 2px; background: #C3DCE7;
}
.vts-tijdlijn-stap:nth-child(odd)::after { right: -29px; }
.vts-tijdlijn-stap:nth-child(even)::after { left: -29px; }

/* het genummerde rondje op de rail */
.vts-tijdlijn-nr {
	position: absolute; top: 26px; width: 46px; height: 46px; border-radius: 50%;
	background: #0F1E31; color: #fff; font-family: 'Mulish', sans-serif; font-weight: 700; font-size: 16px;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 7px #EEF5F8;
}
.vts-tijdlijn-stap:nth-child(odd) .vts-tijdlijn-nr { left: auto; right: -75px; }
.vts-tijdlijn-stap:nth-child(even) .vts-tijdlijn-nr { left: -75px; right: auto; }
.vts-tijdlijn-stap:last-child .vts-tijdlijn-nr { background: #22A56E; }

.vts-werkwijze .vts-tijdlijn h3 { margin: 0 0 8px; font-size: 20px; line-height: 27px; color: #0F1E31; }
.vts-werkwijze .vts-tijdlijn p { margin: 0; max-width: 70ch; font-size: 15.5px; line-height: 26px; color: #33475C; }

/* --- afsluiter --- */
.vts-werkwijze-cta {
	position: relative; overflow: hidden; margin: 56px 0 0; padding: 52px 48px 54px;
	background: #0F1E31; border-radius: 24px; text-align: center;
}
.vts-werkwijze-cta::before {                  /* zachte groene gloed rechtsboven */
	content: ""; position: absolute; top: -140px; right: -90px; width: 320px; height: 320px;
	background: radial-gradient(circle, rgba(34, 165, 110, .30) 0%, rgba(34, 165, 110, 0) 70%);
	pointer-events: none;
}
.vts-tekstpagina .vts-werkwijze-cta h2 { position: relative; margin: 0 0 12px; font-size: 32px; line-height: 40px; color: #fff; }
.vts-tekstpagina .vts-werkwijze-cta p { position: relative; margin: 0 auto; max-width: 560px; font-size: 16px; line-height: 27px; color: #B9C8D6; }
.vts-tekstpagina .vts-werkwijze-cta .vts-werkwijze-cta-knoppen {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 28px 0 0; max-width: none;
}
.vts-knop {
	display: inline-flex; align-items: center; gap: 10px; background: #22A56E; color: #fff !important;
	border: 2px solid #22A56E; border-radius: 100px; padding: 12px 28px;
	font-family: 'Mulish', sans-serif; font-weight: 700; font-size: 16px; line-height: 1.4;
	text-decoration: none; transition: background .15s, border-color .15s, color .15s;
}
.vts-knop:hover { background: #1B8659; border-color: #1B8659; }
.vts-knop-licht { background: transparent; border-color: rgba(255, 255, 255, .28); }
.vts-knop-licht:hover { background: rgba(255, 255, 255, .10); border-color: rgba(255, 255, 255, .55); }

/* --- tablet: alles onder elkaar, rail links --- */
@media (max-width: 1024px) {
	.vts-werkwijze-intro h2 { font-size: 36px; line-height: 43px; }
	.vts-tekstpagina .vts-tijdlijn { padding: 40px 28px 44px; }
	.vts-tijdlijn::before { left: 22px; transform: none; top: 60px; bottom: 60px; }
	.vts-tekstpagina .vts-tijdlijn-stap,
	.vts-tekstpagina .vts-tijdlijn-stap + .vts-tijdlijn-stap { width: auto; margin: 0 0 22px 52px; }
	.vts-tekstpagina .vts-tijdlijn-stap:nth-child(even) { margin-left: 52px; }
	.vts-tijdlijn-stap:nth-child(odd)::after,
	.vts-tijdlijn-stap:nth-child(even)::after { right: auto; left: -29px; }
	.vts-tijdlijn-stap:nth-child(odd) .vts-tijdlijn-nr,
	.vts-tijdlijn-stap:nth-child(even) .vts-tijdlijn-nr { left: -75px; right: auto; }
	.vts-werkwijze-cta { padding: 44px 32px 46px; }
}

/* --- mobiel --- */
@media (max-width: 767px) {
	.vts-werkwijze-intro { margin-bottom: 34px; }
	.vts-werkwijze-intro h2 { font-size: 29px; line-height: 36px; }
	.vts-werkwijze-intro p { font-size: 16px; line-height: 27px; }
	.vts-tekstpagina .vts-werkwijze-punten { gap: 8px; margin-top: 22px; flex-direction: column; align-items: stretch; }
	.vts-tekstpagina .vts-werkwijze-punten li { justify-content: flex-start; text-align: left; font-size: 13.5px; padding: 8px 15px 8px 11px; }
	.vts-tekstpagina .vts-tijdlijn { padding: 28px 16px 32px; border-radius: 18px; }
	.vts-tijdlijn::before { left: 26px; top: 46px; bottom: 46px; }
	.vts-tekstpagina .vts-tijdlijn-stap,
	.vts-tekstpagina .vts-tijdlijn-stap + .vts-tijdlijn-stap,
	.vts-tekstpagina .vts-tijdlijn-stap:nth-child(even) { margin: 0 0 16px 40px; padding: 18px 18px 20px; border-radius: 14px; }
	.vts-tekstpagina .vts-tijdlijn-stap:last-child { margin-bottom: 0; }
	.vts-tijdlijn-stap::after { top: 37px; width: 12px; left: -12px; }
	.vts-tijdlijn-nr,
	.vts-tijdlijn-stap:nth-child(odd) .vts-tijdlijn-nr,
	.vts-tijdlijn-stap:nth-child(even) .vts-tijdlijn-nr {
		top: 20px; left: -48px; right: auto; width: 36px; height: 36px; font-size: 14px; box-shadow: 0 0 0 6px #EEF5F8;
	}
	.vts-werkwijze .vts-tijdlijn h3 { font-size: 18px; line-height: 25px; }
	.vts-werkwijze .vts-tijdlijn p { font-size: 15px; line-height: 25px; }
	.vts-werkwijze-cta { margin-top: 40px; padding: 34px 20px 36px; border-radius: 18px; }
	.vts-tekstpagina .vts-werkwijze-cta h2 { font-size: 25px; line-height: 32px; }
	.vts-tekstpagina .vts-werkwijze-cta .vts-werkwijze-cta-knoppen { flex-direction: column; align-items: stretch; }
	.vts-knop { justify-content: center; }
}

/* ============ deuren: overzichtspagina (/deuren/) ============
   Post 8937 is geen Elementor-pagina maar gewone inhoud met het sjabloon
   elementor_header_footer; alle opmaak staat daarom hier.

   Opbouw: intro met kicker, lead en drie feiten -> vijf deurkaarten met foto ->
   tekst-naast-beeld -> lichtblauw paneel met de zeven vinkjes -> drie
   materiaalkaarten -> tekst-naast-beeld -> FAQ -> donkere afsluiter.

   De brede onderdelen (kaarten, paneel, rijen, afsluiter) breken uit de
   tekstkolom: de pagina is 1120 breed, de lopende tekst blijft 820.
   Let op de specificiteit: `.vts-tekstpagina h2` heeft een klasse EN een type,
   dus de uitlijnregel hieronder heeft twee klassen nodig om te winnen.
   Mulish is de sitefont en wordt geerfd; losse elementen buiten de tekststroom
   krijgen hem expliciet mee. */
.vts-tekstpagina.vts-deuren { max-width: 1120px; }
.vts-tekstpagina.vts-deuren > * { max-width: 820px; margin-left: auto; margin-right: auto; }
.vts-tekstpagina.vts-deuren > .vts-breed { max-width: none; }
/* de FAQ-uitklappers hebben verderop in style.css `margin: 26px 0 30px` staan (even sterk,
   maar later), dus die moeten hier expliciet weer gecentreerd worden */
.vts-tekstpagina.vts-deuren > .faq-items-accordion { margin-left: auto; margin-right: auto; }

/* --- intro --- */
.vts-deuren-intro { text-align: center; margin-bottom: 46px; }
.vts-tekstpagina .vts-kicker {
	display: inline-flex; align-items: center; gap: 9px; margin: 0 0 18px; padding: 7px 17px 7px 13px;
	background: #E4F3EC; color: #14624A; border-radius: 100px;
	font-family: 'Mulish', sans-serif; font-weight: 700; font-size: 12.5px; line-height: 1;
	letter-spacing: .06em; text-transform: uppercase;
}
.vts-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #22A56E; }
.vts-tekstpagina .vts-lead { max-width: 730px; margin: 0 auto; font-size: 18.5px; line-height: 31px; color: #33475C; }

/* drie feiten onder de intro */
.vts-tekstpagina .vts-pillen {
	list-style: none; margin: 26px 0 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}
.vts-tekstpagina .vts-pillen li {
	margin: 0; display: inline-flex; align-items: center; gap: 9px; padding: 8px 18px 8px 13px;
	background: #fff; border: 1px solid #D7E6EC; border-radius: 100px;
	font-size: 14.5px; font-weight: 600; line-height: 1.35; color: #0F1E31;
}
.vts-tekstpagina .vts-pillen li::before {
	content: ""; flex: none; width: 17px; height: 17px; border-radius: 50%; background: #22A56E
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.9 6.3l2.6 2.6L10.1 3.3' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
		center / 11px no-repeat;
}

/* --- de vijf deurkaarten ---
   Een <ul> met <li>: wpautop laat blokelementen met rust, een losse <a> niet.
   Flex in plaats van grid: bij 3 per rij blijft de laatste rij (2 kaarten)
   dan gecentreerd onder de eerste staan. */
.vts-tekstpagina .vts-deurkaarten {
	list-style: none; margin: 0 0 8px; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 24px;
}
.vts-tekstpagina .vts-deurkaarten li { margin: 0; display: flex; width: calc(33.333% - 16px); }
.vts-tekstpagina .vts-deurkaart {
	display: flex; flex-direction: column; width: 100%;
	background: #fff; border: 1px solid #E1EAF0; border-radius: 16px; overflow: hidden;
	color: #0F1E31; text-decoration: none; box-shadow: 0 10px 26px rgba(15, 30, 49, .06);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.vts-tekstpagina .vts-deurkaart:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(15, 30, 49, .10); border-color: #C3DCE7; }
.vts-tekstpagina .vts-deurkaart img {
	display: block; width: 100%; height: 188px; object-fit: cover; object-position: center;
	margin: 0; border-radius: 0;
}
.vts-deurkaart-tekst { display: block; padding: 18px 22px 22px; }
.vts-deurkaart-titel {
	display: flex; align-items: center; gap: 8px;
	font-family: 'Mulish', sans-serif; font-weight: 700; font-size: 18px; line-height: 26px; color: #0F1E31;
}
.vts-deurkaart-titel::after {
	content: ""; width: 15px; height: 15px; flex: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 7h9M7.5 3l4 4-4 4' fill='none' stroke='%2322A56E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
		center / contain no-repeat;
	transition: transform .18s ease;
}
.vts-deurkaart:hover .vts-deurkaart-titel::after { transform: translateX(3px); }
.vts-deurkaart-omschrijving { display: block; margin: 6px 0 0; font-size: 14.5px; line-height: 23px; color: #33475C; }

/* --- tekst naast beeld --- */
.vts-tekstpagina .vts-split {
	display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center; margin: 48px auto 0;
}
.vts-split-beeld { align-self: stretch; }
.vts-tekstpagina .vts-split-beeld img {
	width: 100%; height: 100%; min-height: 300px; max-height: 400px; object-fit: cover;
	margin: 0; border-radius: 16px;
}
.vts-split-foto-links .vts-split-beeld { order: -1; }
.vts-tekstpagina .vts-split h2 { margin-top: 0; }
.vts-tekstpagina .vts-split p:last-child { margin-bottom: 0; }

/* --- lichtblauw paneel met de zeven vinkjes --- */
.vts-tekstpagina .vts-paneel { background: #EEF5F8; border-radius: 24px; padding: 38px 42px 40px; margin: 48px auto 0; }
.vts-tekstpagina .vts-paneel h2 { margin-top: 0; }
.vts-tekstpagina .vts-checklist {
	list-style: none; margin: 22px 0; padding: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px 38px;
}
.vts-tekstpagina .vts-checklist li {
	margin: 0; padding-left: 32px; position: relative;
	font-size: 15.5px; line-height: 25px; color: #33475C;
}
.vts-tekstpagina .vts-checklist li::before {
	content: ""; position: absolute; left: 0; top: 4px; width: 19px; height: 19px; border-radius: 50%;
	background: #22A56E
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.9 6.3l2.6 2.6L10.1 3.3' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
		center / 12px no-repeat;
}
.vts-checklist strong { color: #0F1E31; }
.vts-tekstpagina .vts-paneel p:last-child { margin-bottom: 0; }

/* --- drie materialen naast elkaar ---
   Deze blijven in de tekstkolom (geen .vts-breed), zodat ze links uitlijnen met de kop
   erboven en de alinea's eronder. */
.vts-tekstpagina .vts-materialen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0 auto 26px; }
.vts-materiaal {
	position: relative; overflow: hidden; background: #fff; border: 1px solid #E1EAF0; border-radius: 16px;
	padding: 22px 22px 24px;
}
.vts-materiaal::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: #A8CEDC; }
.vts-materiaal:nth-child(2)::before { background: #22A56E; }
.vts-materiaal:nth-child(3)::before { background: #0F1E31; }
.vts-tekstpagina .vts-materiaal h3 { margin: 0 0 8px; font-size: 19px; line-height: 26px; }
.vts-tekstpagina .vts-materiaal p { margin: 0; font-size: 15px; line-height: 25px; color: #33475C; }

/* --- afsluiter --- */
.vts-tekstpagina .vts-cta {
	position: relative; overflow: hidden; margin: 56px auto 0; padding: 52px 48px 54px;
	background: #0F1E31; border-radius: 24px; text-align: center;
}
.vts-cta::before {                            /* zachte groene gloed rechtsboven */
	content: ""; position: absolute; top: -140px; right: -90px; width: 320px; height: 320px;
	background: radial-gradient(circle, rgba(34, 165, 110, .30) 0%, rgba(34, 165, 110, 0) 70%);
	pointer-events: none;
}
.vts-tekstpagina .vts-cta h2 { position: relative; margin: 0 0 14px; font-size: 32px; line-height: 40px; color: #fff; }
/* de kop en de knoppen staan gecentreerd, de lopende tekst niet: twee alinea's van vijf
   regels met een rafelrand links lezen slecht */
.vts-tekstpagina .vts-cta p { position: relative; margin: 0 auto 14px; max-width: 620px; font-size: 16px; line-height: 27px; color: #B9C8D6; text-align: left; }
.vts-tekstpagina .vts-cta .vts-cta-knoppen {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 26px 0 0; max-width: none;
}

/* --- laptop en tablet_extra: kaarten twee per rij --- */
@media (max-width: 1210px) {
	.vts-tekstpagina .vts-deurkaarten li { width: calc(50% - 12px); }
	.vts-tekstpagina .vts-paneel { padding: 34px 32px 36px; }
	.vts-tekstpagina .vts-split { gap: 30px; }
}

/* --- tablet --- */
@media (max-width: 1024px) {
	.vts-deuren-intro { margin-bottom: 36px; }
	.vts-tekstpagina .vts-split { grid-template-columns: 1fr; gap: 24px; margin-top: 40px; }
	.vts-split-foto-links .vts-split-beeld { order: 0; }
	.vts-tekstpagina .vts-split-beeld img { min-height: 0; height: 320px; max-height: none; }
	.vts-tekstpagina .vts-cta { padding: 44px 32px 46px; }
}

/* --- mobiel --- */
@media (max-width: 767px) {
	.vts-tekstpagina .vts-lead { font-size: 17px; line-height: 29px; }
	.vts-tekstpagina .vts-pillen { gap: 8px; margin-top: 22px; flex-direction: column; align-items: stretch; }
	.vts-tekstpagina .vts-pillen li { justify-content: flex-start; text-align: left; font-size: 13.5px; padding: 8px 15px 8px 11px; }
	/* twee naast elkaar, zoals de fotokaartrasters elders op de site (R12 van de checklist):
	   vijf kaarten onder elkaar maakt de pagina 1100px langer. De regel eronder past niet
	   in een kaart van 160px breed en gaat daarom weg; de titel blijft. */
	.vts-tekstpagina .vts-deurkaarten { gap: 16px; }
	.vts-tekstpagina .vts-deurkaarten li { width: calc(50% - 8px); }
	.vts-tekstpagina .vts-deurkaart img { height: 112px; }
	.vts-deurkaart-tekst { padding: 13px 15px 15px; }
	.vts-deurkaart-titel { gap: 6px; font-size: 15px; line-height: 21px; }
	.vts-deurkaart-titel::after { width: 13px; height: 13px; }
	.vts-deurkaart-omschrijving { display: none; }
	.vts-tekstpagina .vts-split-beeld img { height: 240px; border-radius: 14px; }
	.vts-tekstpagina .vts-paneel { padding: 24px 20px 26px; border-radius: 18px; }
	.vts-tekstpagina .vts-checklist { grid-template-columns: 1fr; gap: 12px; }
	.vts-tekstpagina .vts-materialen { grid-template-columns: 1fr; gap: 14px; }
	.vts-materiaal { padding: 20px 18px 22px; border-radius: 14px; }
	.vts-tekstpagina .vts-cta { margin-top: 40px; padding: 34px 20px 36px; border-radius: 18px; }
	.vts-tekstpagina .vts-cta h2 { font-size: 25px; line-height: 32px; }
	.vts-tekstpagina .vts-cta .vts-cta-knoppen { flex-direction: column; align-items: stretch; }
}
/* ============ einde deuren ============ */

/* ============ winactie (/winactie/, Elementor canvas) ============ */
/* Elementors svg-regel (.elementor-widget-image a img[src$=".svg"]{width:100%}) weegt zwaarder dan een kale klasse */
.elementor-widget-image.vts-win-logo a img[src$=".svg"], .elementor-widget-image.vts-win-logo img { width: 230px !important; max-width: 70vw !important; height: auto; }
/* de aangeleverde deurcompositie (een transparante png), stekend onder het lichte vlak uit */
.vts-win-deuren { position: relative; margin: 6px 0 0; }
.vts-win-deuren img { display: block; width: 100%; max-width: 560px; height: auto; margin: 0 auto -40px; }
.vts-win-links { position: relative; }
.vts-win-links::before { content: ""; position: absolute; left: -40px; right: 10px; top: -30px; bottom: 110px; background: #E3EDF2; border-radius: 30px; z-index: -1; }
@media (max-width: 1024px) {
	.vts-win-links::before { left: -16px; right: -16px; bottom: 70px; }
	.vts-win-deuren img { margin-bottom: -20px; }
}


/* ==================================================================
   Werken bij (vacatures) & Klantenservice - design-handoff 16-09-2026
   Klassen worden gezet op Elementor-containers/widgets; kleuren, radii
   en maten komen letterlijk uit het design. Achtergrond en radius van
   kaarten staan in Elementor zelf; hier alleen wat Elementor niet kan.
   ================================================================== */

/* Alles wat niet via een Elementor-widget loopt (html-widgets en shortcodes) erft het themafont; hier expliciet Mulish */
.vts-vacfilter, .vts-vac-resultaat, .vts-vac-tags, .vts-vac-meta, .vts-vac-kernfeiten, .vts-pijllink, .vts-pijlcirkel,
.vts-vac-quote, .vts-proces, .vts-contactpersoon-wie, .vts-contactpersoon-links, .vts-accordeon, .vts-status,
.vts-reactietijd, .vts-cijfers, .vts-kanaalrijen, .vts-kanaalrij, .vts-tijden, .vts-avatars, .vts-sollicitatie-form,
.vts-sollicitatie-form .elementor-field, .vts-sollicitatie-form .elementor-field-label, .vts-sollicitatie-form .elementor-field-type-html,
.vts-vacfilter button, .vts-vac-weergave button, .vts-accordeon summary { font-family: 'Mulish', sans-serif; }

/* Kopband: donkere strook achter de doorzichtige header (zelfde maat als .vts-paginakop::before) */
.e-con.vts-kopband-donker { width: 100%; }
@media (min-width: 1751px) { .e-con.vts-kopband-donker { max-width: 1750px; margin-left: auto; margin-right: 0; } }
@media (min-width: 1551px) and (max-width: 1750px) { .e-con.vts-kopband-donker { max-width: 1550px; margin-left: auto; margin-right: 0; } }

/* Hero-variant (vacaturedetail): de band is een achtergrondlaag, de tekst staat als gewone
   boxed container op het paginaraster - net als .vts-paginakop met zijn ::before */
.e-con.vts-kopband--hero { --position: relative; position: relative; }
.e-con.vts-kopband--hero > .e-con.vts-kopband-donker--hero { position: absolute; top: 0; right: 0; bottom: 50px; left: 0; width: auto; min-height: 0; margin: 0; z-index: 0; }
@media (min-width: 1551px) { .e-con.vts-kopband--hero > .e-con.vts-kopband-donker--hero { left: auto; width: 100%; } }
@media (max-width: 767px) { .e-con.vts-kopband--hero > .e-con.vts-kopband-donker--hero { bottom: 30px; } }
.e-con.vts-kopband--hero > .e-con.vts-hero-inhoud { position: relative; z-index: 1; }

/* Koppen: tweede (of eerste) regel in lichtblauw via <span> */
.vts-kop-licht .elementor-heading-title span { display: block; color: #ACD0DD; }
.vts-kop-navy .elementor-heading-title span { display: block; color: #0F1E31; }
.vts-kicker .elementor-heading-title { letter-spacing: .3em; text-transform: uppercase; }

/* Tekstbreedtes uit het design */
.vts-max-440 { max-width: 440px; }
.vts-max-520 { max-width: 520px; }
.vts-max-540 { max-width: 540px; }
.vts-max-600 { max-width: 600px; }
.vts-max-620 { max-width: 620px; }
.vts-max-720 { max-width: 720px; }
.e-con.vts-max-900 { max-width: 900px; }
/* Elementor zet op widgets in containers max-width:100% met hoge specificiteit; deze wint daarvan */
.elementor.elementor .e-con > .elementor-widget.vts-max-484, .e-con.e-con > .e-con-inner > .elementor-widget.vts-max-484 { max-width: 484px; }

/* Vacaturekaart (listing) */
.vts-vac-grid .jet-listing-grid__item,
.vts-vac-grid .jet-listing-grid__item > .jet-engine-listing-overlay-wrap,
.vts-vac-grid .jet-listing-grid__item .elementor { display: flex; width: 100%; }
.vts-vac-grid .jet-listing-grid__item .elementor > .e-con { width: 100%; }
.vts-vac-kaart .elementor-heading-title, .vts-vac-kaart-compact .elementor-heading-title { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
.vts-vac-tags { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.vts-vac-tag { display: inline-block; border: 1px solid #A8C6D4; border-radius: 999px; padding: 4px 13px; font-size: 12px; line-height: 1.4; color: #3D5B72; }
.vts-vac-badge { display: inline-block; background: #22A56E; border-radius: 999px; padding: 5px 13px; font-size: 12px; line-height: 1.4; font-weight: 700; color: #fff; }
.vts-vac-meta { display: flex; flex-direction: column; gap: 12px; font-size: 14px; color: #3D5B72; }
.vts-vac-meta--rij { flex-direction: row; flex-wrap: wrap; gap: 8px 20px; }
.vts-vac-metaitem { display: flex; align-items: center; gap: 8px; }
.vts-vac-metaitem svg { flex: 0 0 auto; }
.vts-pijlcirkel { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; flex: 0 0 auto; }
.vts-pijllink { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: #ACD0DD; transition: color .15s; }
.e-con:hover > .elementor-widget-shortcode .vts-pijllink { color: #22A56E; }
/* lijstweergave */
.vts-vac-lijst .jet-listing-grid__items { --columns: 1 !important; grid-template-columns: 1fr !important; }
.vts-vac-lijst .jet-listing-grid__item { width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important; }
.vts-vac-lijst .e-con.vts-vac-kaart { --flex-direction: row; --align-items: flex-start; --justify-content: space-between; }
.vts-vac-lijst .vts-vac-meta { flex-direction: row; flex-wrap: wrap; gap: 12px 26px; }

/* Filterbalk */
.vts-vacfilter { position: relative; z-index: 5; background: #fff; border-radius: 12px 34px 12px 12px; box-shadow: 0 1px 3px rgba(15,30,49,.05), 0 8px 24px rgba(15,30,49,.06); padding: 0 26px; }
.vts-vacfilter-rij { display: flex; align-items: center; flex-wrap: wrap; min-height: 66px; }
.vts-vacfilter-groep { position: relative; display: flex; align-items: center; }
.vts-vacfilter-knop { display: flex; align-items: center; gap: 10px; background: none; border: 0; padding: 14px 26px 14px 0; font-family: 'Mulish', sans-serif; font-size: 15px; font-weight: 700; line-height: 1.2; color: #0F1E31; white-space: nowrap; cursor: pointer; transition: color .15s; }
.vts-vacfilter-knop:hover, .vts-vacfilter-groep.is-open .vts-vacfilter-knop, .vts-vacfilter-groep.heeft-keuze .vts-vacfilter-knop { color: #22A56E; }
.vts-vacfilter-knop .vts-icoon { display: flex; color: #22A56E; }
.vts-vacfilter-knop .vts-chevron { display: flex; transition: transform .2s; }
.vts-vacfilter-groep.is-open .vts-chevron { transform: rotate(180deg); }
.vts-vacfilter-lijn { width: 1px; height: 24px; background: #E4EEF2; margin-right: 26px; }
.vts-vacfilter-menu { position: absolute; top: 56px; left: 0; min-width: 250px; background: #fff; border-radius: 12px; box-shadow: 0 2px 6px rgba(15,30,49,.08), 0 14px 34px rgba(15,30,49,.12); padding: 14px; z-index: 10; display: none; }
.vts-vacfilter-groep.is-open .vts-vacfilter-menu { display: block; }
.vts-vacfilter-optie { width: 100%; display: flex; align-items: center; gap: 12px; background: none; border: 0; border-radius: 8px; padding: 10px 12px; font-family: 'Mulish', sans-serif; font-size: 14.5px; font-weight: 600; line-height: 1.3; color: #1D3557; text-align: left; cursor: pointer; }
.vts-vacfilter-optie:hover { background: #EEF5F8; }
.vts-vacfilter-optie .vts-check { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid #C4D8E1; background: #fff; display: flex; align-items: center; justify-content: center; transition: background .15s, border-color .15s; }
.vts-vacfilter-optie .vts-check svg { opacity: 0; }
.vts-vacfilter-optie.is-aan { color: #14624A; }
.vts-vacfilter-optie.is-aan .vts-check { background: #22A56E; border-color: #22A56E; }
.vts-vacfilter-optie.is-aan .vts-check svg { opacity: 1; }
.vts-vacfilter-aantal { margin-left: auto; font-size: 13px; font-weight: 400; color: #7B93A8; }
.vts-vacfilter-wis { display: flex; align-items: center; gap: 10px; margin-left: auto; background: none; border: 0; padding: 14px 0; font-family: 'Mulish', sans-serif; font-size: 15px; font-weight: 700; line-height: 1.2; color: #ACD0DD; white-space: nowrap; cursor: pointer; transition: color .15s; }
.vts-vacfilter-wis:hover { color: #22A56E; }
/* thema-knopstijlen (GeneratePress button/button:hover) uitschakelen op de filterknoppen */
.vts-vacfilter button, .vts-vac-weergave button { -webkit-appearance: none; appearance: none; box-shadow: none; text-transform: none; letter-spacing: 0; line-height: 1.2; }
.vts-vacfilter-knop:hover, .vts-vacfilter-knop:focus, .vts-vacfilter-knop:active { background: none; color: #22A56E; }
.vts-vacfilter-optie:hover, .vts-vacfilter-optie:focus, .vts-vacfilter-optie:active { background: #EEF5F8; color: #1D3557; }
.vts-vacfilter-optie.is-aan:hover, .vts-vacfilter-optie.is-aan:focus { color: #14624A; }
.vts-vacfilter-wis:hover, .vts-vacfilter-wis:focus, .vts-vacfilter-wis:active { background: none; color: #22A56E; }
.vts-vac-weergave button:hover, .vts-vac-weergave button:focus, .vts-vac-weergave button:active { background: transparent; color: #0F1E31; }
.vts-vac-weergave button.is-actief, .vts-vac-weergave button.is-actief:hover, .vts-vac-weergave button.is-actief:focus { background: #fff; color: #0F1E31; }
.vts-vacfilter button:focus-visible, .vts-vac-weergave button:focus-visible { outline: 2px solid #22A56E; outline-offset: 2px; }
/* weggefilterde kaarten: het hidden-attribuut moet winnen van de flex-keten hierboven */
.vts-vac-grid .jet-listing-grid__item[hidden] { display: none !important; }
/* Resultaatregel */
.vts-vac-resultaat { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-top: 26px; padding-bottom: 18px; border-bottom: 1px solid #E4EEF2; font-size: 15px; color: #5C7A96; }
.vts-vac-resultaat strong { font-weight: 700; color: #0F1E31; }
.vts-vac-resultaat-rechts { display: flex; align-items: center; gap: 16px; }
.vts-vac-weergave { display: flex; gap: 4px; background: #EEF5F8; border-radius: 999px; padding: 4px; }
.vts-vac-weergave button { display: flex; align-items: center; gap: 8px; background: transparent; border: 0; border-radius: 999px; padding: 8px 16px; font-family: 'Mulish', sans-serif; font-size: 14px; font-weight: 600; line-height: 1.2; color: #5C7A96; cursor: pointer; }
.vts-vac-weergave button.is-actief { background: #fff; color: #0F1E31; }
.e-con.vts-vac-leeg { display: none; }
.e-con.vts-vac-leeg.is-zichtbaar { display: flex; }
@media (max-width: 1024px) {
	.vts-vacfilter { padding: 8px 20px; }
	.vts-vacfilter-knop { padding-right: 18px; }
	.vts-vacfilter-lijn { margin-right: 18px; }
}
@media (max-width: 767px) {
	.vts-vacfilter-rij { flex-direction: column; align-items: stretch; padding: 6px 0; }
	.vts-vacfilter-groep { flex-direction: column; align-items: stretch; }
	.vts-vacfilter-knop { justify-content: space-between; padding: 12px 0; }
	.vts-vacfilter-knop .vts-chevron { margin-left: auto; }
	.vts-vacfilter-lijn { display: none; }
	.vts-vacfilter-menu { position: static; box-shadow: none; padding: 0 0 10px; min-width: 0; }
	.vts-vacfilter-wis { margin-left: 0; padding: 12px 0 14px; }
	.vts-vac-resultaat { flex-wrap: wrap; }
	.vts-vac-weergave, .vts-vac-sortering { display: none; }
}

/* Detailpagina: hero, tabbalk, tekst */
.vts-vac-kernfeiten { display: flex; flex-wrap: wrap; gap: 14px 40px; font-size: 15px; color: #fff; }
.vts-vac-kernfeit { display: flex; align-items: center; gap: 11px; }
.vts-vac-kernfeit svg { flex: 0 0 auto; }
.vts-tab-details .elementor-heading-title { display: inline-block; padding: 10px 0; border-bottom: 2px solid transparent; cursor: pointer; transition: color .15s, border-color .15s; }
.vts-tab-details .elementor-heading-title:hover { color: #22A56E; }
.vts-tabs-actief .vts-tab-details.is-actief .elementor-heading-title { color: #0F1E31; border-bottom-color: #0F1E31; }
.vts-tabs-actief .vts-tab-details:not(.is-actief) .elementor-heading-title { color: #5C7A96; font-weight: 600; }
.vts-tabs-actief .e-con.vts-paneel { display: none; }
.vts-tabs-actief .e-con.vts-paneel.is-actief { display: flex; }
.e-con.vts-sticky { --position: sticky; position: sticky; top: 110px; }
@media (max-width: 1024px) { .e-con.vts-sticky { --position: relative; position: relative; top: auto; } }
/* opsommingen met groene pijl, alinea-afstanden */
.vts-vac-tekst p { margin: 0; }
.vts-vac-tekst p + p { margin-top: 20px; }
.vts-vac-tekst ul { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.vts-vac-tekst ul + p { margin-top: 28px; }
.vts-vac-tekst ul li { position: relative; margin: 0; padding-left: 31px; }
.vts-vac-tekst ul li::before { content: ""; position: absolute; left: 0; top: .45em; width: 17px; height: 17px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322A56E' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; }
.vts-vac-quote { background: #EEF5F8; border-radius: 16px 16px 16px 34px; padding: 30px 32px 32px; }
.vts-vac-quote p { margin: 0; font-size: 16.5px; line-height: 1.7; color: #0F1E31; }
.vts-vac-quote-wie { display: flex; gap: 14px; align-items: center; margin-top: 22px; }
.elementor .vts-vac-avatar, .vts-vac-avatar { width: 50px; height: 50px; border-radius: 999px !important; object-fit: cover; flex: 0 0 auto; }
.vts-vac-quote-wie strong { display: block; font-size: 15.5px; font-weight: 700; color: #0F1E31; }
.vts-vac-quote-wie span { display: block; margin-top: 3px; font-size: 14px; color: #5C7A96; }
/* sollicitatieproces */
.vts-proces { display: flex; flex-direction: column; }
.vts-proces-rij { display: grid; grid-template-columns: 46px 1fr auto; gap: 20px; align-items: baseline; padding: 20px 0; border-top: 1px solid #E4EEF2; }
.vts-proces-nr { font-size: 15px; font-weight: 700; color: #ACD0DD; }
.vts-proces-titel { font-size: 17px; font-weight: 700; color: #0F1E31; }
.vts-proces-rij p { margin: 8px 0 0; font-size: 15.5px; line-height: 1.7; color: #1D3557; }
.vts-proces-termijn { font-size: 14px; font-weight: 700; color: #22A56E; white-space: nowrap; }
@media (max-width: 767px) { .vts-proces-rij { grid-template-columns: 36px 1fr; gap: 12px 16px; } .vts-proces-termijn { grid-column: 2; white-space: normal; } }
/* contactpersoon-kaart (de kit zet .elementor-kit-9 a op groen, dus specifieker) */
.vts-contactpersoon-wie { display: flex; align-items: center; gap: 14px; }
.vts-contactpersoon-wie img, .elementor .vts-contactpersoon-wie img { width: 56px; height: 56px; border-radius: 999px !important; object-fit: cover; flex: 0 0 auto; display: block; }
.vts-contactpersoon-naam { font-size: 15.5px; font-weight: 700; line-height: 1.3; color: #0F1E31; }
.vts-contactpersoon-functie { margin-top: 3px; font-size: 14px; line-height: 1.3; color: #5C7A96; }
.vts-contactpersoon-links { display: flex; flex-direction: column; gap: 9px; }
.e-con .vts-contactpersoon-links a, .elementor-kit-9 .vts-contactpersoon-links a { display: block; font-size: 15px; line-height: 1.3; font-weight: 700; color: #ACD0DD; text-decoration: none; transition: color .15s; }
.e-con .vts-contactpersoon-links a:hover, .elementor-kit-9 .vts-contactpersoon-links a:hover { color: #22A56E; }
/* accordeon (repeater-FAQ) */
.vts-accordeon { display: flex; flex-direction: column; gap: 14px; }
.vts-accordeon-item { background: #EEF5F8; border-radius: 10px; overflow: hidden; }
.vts-accordeon-item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 22px 28px; font-size: 16px; font-weight: 600; line-height: 1.4; color: #0F1E31; cursor: pointer; }
.vts-accordeon-item summary::-webkit-details-marker { display: none; }
.vts-accordeon-item summary svg { flex: 0 0 auto; transition: transform .2s; }
.vts-accordeon-item[open] summary svg { transform: rotate(180deg); }
.vts-accordeon-tekst { padding: 0 28px 26px; font-size: 15.5px; line-height: 1.75; color: #1D3557; }
.vts-accordeon-tekst p { margin: 0; }
.vts-accordeon-tekst p + p { margin-top: 12px; }
@media (max-width: 767px) { .vts-accordeon-item summary { padding: 18px 20px; font-size: 15px; } .vts-accordeon-tekst { padding: 0 20px 20px; } }
/* sollicitatieformulier: pills zoals de offertewizards, velden uit het design */
.vts-sollicitatie-form .elementor-field-label { font-size: 13.5px; font-weight: 400; color: #1D3557; }
.vts-sollicitatie-form .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 10px; }
.vts-sollicitatie-form .elementor-field-subgroup .elementor-field-option { display: inline-flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid #D7E6EC; border-radius: 999px; padding: 0 22px !important; height: 46px; width: auto; transition: border-color .15s, background .15s; }
.vts-sollicitatie-form .elementor-field-subgroup .elementor-field-option:hover { border-color: #22A56E; }
.vts-sollicitatie-form .elementor-field-subgroup .elementor-field-option:has(input:checked) { border-color: #22A56E; background: #E4F3EC; }
.vts-sollicitatie-form .elementor-field-subgroup .elementor-field-option:has(input:checked) label { color: #14624A; }
.vts-sollicitatie-form .elementor-field-option label { margin: 0; font-size: 15px; font-weight: 600; line-height: 1; color: #1D3557; cursor: pointer; text-transform: none; letter-spacing: 0; }
.vts-sollicitatie-form .elementor-field-option input { width: 16px; height: 16px; margin: 0; flex: none; accent-color: #22A56E; }
.vts-sollicitatie-form .elementor-field-type-html { font-size: 13.5px; line-height: 1.6; color: #5C7A96; }
.vts-sollicitatie-form .e-form__buttons { align-items: center; gap: 18px; }
.vts-sollicitatie-form .vts-form-maillink a { font-size: 14.5px; font-weight: 600; color: #5C7A96; text-decoration: none; }
.vts-sollicitatie-form .vts-form-maillink a:hover { color: #22A56E; }
.vts-sollicitatie-form .elementor-message { font-size: 14px; }

/* Klantenservice */
.vts-status { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: #5C7A96; }
.vts-status-stip { width: var(--vts-stip, 9px); height: var(--vts-stip, 9px); border-radius: 999px; background: #7B93A8; flex: 0 0 auto; }
.vts-status.is-open { color: #22A56E; }
.vts-status.is-open .vts-status-stip { background: #22A56E; }
.vts-status.is-dicht { color: #7B93A8; }
.vts-icoonrond { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 999px; background: #fff; color: #22A56E; flex: 0 0 auto; }
.vts-reactietijd { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #3D5B72; }
.vts-reactietijd svg { flex: 0 0 auto; }
.vts-cijfers { display: flex; flex-wrap: wrap; gap: 36px; }
.vts-cijfer strong { display: block; font-size: 34px; line-height: 1.1; font-weight: 700; color: #fff; }
.vts-cijfer span { display: block; margin-top: 6px; font-size: 14.5px; color: #D6E6EC; }
/* contactpaneel (Elementor popup) */
.vts-paneel .dialog-widget-content { border-radius: 75px 0 0 0 !important; box-shadow: -24px 0 60px rgba(15,30,49,.2) !important; }
.vts-avatars { display: flex; align-items: center; }
/* Elementor zet .elementor img op border-radius 0 en wint anders op volgorde, daarom specifieker + !important */
.vts-avatars img, .elementor .vts-avatars img { width: 62px; height: 62px; border-radius: 999px !important; border: 0; object-fit: cover; display: block; }
.vts-avatars img + img { margin-left: -16px; }
.vts-avatars img.groot, .elementor .vts-avatars img.groot { width: 78px; height: 78px; border: 2px solid #fff; position: relative; z-index: 2; }
.vts-kanaalrijen { display: flex; flex-direction: column; gap: 10px; }
.vts-kanaalrij { display: flex; align-items: center; gap: 16px; background: #EEF5F8; border-radius: 12px; padding: 16px 18px; text-decoration: none; transition: background .15s; }
.vts-kanaalrij:hover { background: #DCEAF0; }
.vts-kanaalrij .vts-icoonrond { width: 42px; height: 42px; }
.vts-kanaalrij strong { display: block; font-size: 16px; font-weight: 700; color: #0F1E31; }
.vts-kanaalrij span.vts-kanaal-sub { display: block; margin-top: 3px; font-size: 14px; color: #5C7A96; }
.vts-kanaalrij .vts-kanaal-pijl { margin-left: auto; display: flex; color: #ACD0DD; }
.vts-tijden { display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.vts-tijden div { display: flex; justify-content: space-between; gap: 16px; }
.vts-tijden div span:first-child { color: #1D3557; }
.vts-tijden div span:last-child { color: #5C7A96; }
.vts-tijden div.vast span:first-child { font-weight: 700; }
@media (max-width: 767px) { .vts-paneel .dialog-widget-content { border-radius: 40px 0 0 0 !important; } }


/* ==================================================================
   Jet-sliders "rechts doorlopend" (.sectie-rechts-doorlopend)
   Deze regels stonden identiek als custom css op 25 sliders (home,
   diensten, showroom, LP design, projectdetail). Hier één keer; de kopieën
   in de widgets worden per pagina opgeruimd. Widget-specifiek blijft in de
   widget: margin-right van .swiper (-70 / -160), afwijkende bolletjes.
   ================================================================== */
.sectie-rechts-doorlopend { width: calc(50vw + 620px); }
.sectie-rechts-doorlopend .jet-listing-grid__slider-icon.swiper-arrow { background: #ffffff00; border: 1px solid #0F1E31; border-radius: 99px; }
.jet-listing-grid__slider-icon svg { display: none !important; }
.jet-listing-grid__slider-icon::before { content: ""; display: block; width: 15px; height: 13px; background-repeat: no-repeat; background-position: center; background-size: contain; }
.jet-listing-grid__slider-icon.prev-arrow::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14.393' height='12.906' viewBox='0 0 14.393 12.906'%3E%3Cpath d='M17.582,11.392H5m0,0L10.392,6M5,11.392l5.392,5.392' transform='translate(-3.939 -4.939)' fill='%23fff' stroke='%230f1e31' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E"); }
.jet-listing-grid__slider-icon.next-arrow::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14.393' height='12.906' viewBox='0 0 14.393 12.906'%3E%3Cpath d='M5,11.392H17.582m0,0L12.19,6m5.392,5.392L12.19,16.785' transform='translate(-4.25 -4.939)' fill='%23fff' stroke='%230f1e31' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E"); }
.jet-listing-grid__slider-icon.next-arrow { transform: none !important; }
.jet-engine-swiper-pagination-wrapper.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal { display: flex; justify-content: space-between; align-items: center; max-width: 1280px; margin-left: 10px; }
span.swiper-pagination-bullet { width: 100% !important; margin: 0 !important; border-radius: 1px !important; height: 2px !important; }
@media (max-width: 1024px) {
	/* de margin-right-reset van de .swiper staat per widget in de custom css (specificiteit) */
	.sectie-rechts-doorlopend .jet-listing-grid__slider-icon.swiper-arrow { display: none; }
	.jet-engine-swiper-pagination-wrapper.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal { margin-left: 0px; }
}

/* Samenstelblok ("Zo stellen we jouw kozijnen samen"): tabbalk alleen horizontaal ----
   .vts-sam .vts-tabs heeft overflow-x:auto zonder overflow-y. CSS maakt de verticale
   as dan ook scrollbaar, en de knoppen steken er 1px uit door margin-bottom:-1px.
   Op Android/Windows merk je die 1px niet, op iOS is het genoeg om het blok in alle
   richtingen te kunnen slepen (de klant kon er "rondjes" mee draaien).
   padding-bottom vult die 1px op, overflow-y sluit de verticale as af en
   overscroll-behavior houdt een zwieper binnen het blok in plaats van in de pagina.
   Staat hier en niet in de widget, want het blok staat op 19 dienstpagina's + LP design. */
.vts-sam .vts-tabs,
.vts-faq-filter {
	padding-bottom: 1px;          /* vangt de margin-bottom:-1px van de knoppen op */
}
.vts-sam .vts-tabs,
.vts-faq-filter,
.vts-projectcarousel-baan,
.vts-showcase-baan {
	overflow-y: hidden;           /* alleen horizontaal schuiven, nooit verticaal */
	overscroll-behavior-x: contain;
}

/* -------------------------------------------------------------------------
   FAQ-uitklappers op de tekstpagina's ([dynamic_faq] uit functions.php).
   De shortcode levert witte vakjes met een dun randje; op de rest van de site
   zijn het lichtblauwe balken met een plus- en minteken links. Deze regels
   trekken dat gelijk, alleen binnen .vts-tekstpagina.
   ------------------------------------------------------------------------- */
.vts-tekstpagina .faq-items-accordion{
	row-gap: 14px;
	margin: 26px 0 30px;
}
.vts-tekstpagina .faq-question{
	margin: 0;                    /* anders pakt hij de h3-marge van de tekstpagina */
	background: #DCEBF180;
	border: 0;
	border-radius: 10px;
	padding: 22px 28px 22px 68px;
	font-size: 16px !important;
	font-weight: 600;
	line-height: 25px;
	color: #0F1E31;
	text-align: left;
}
.vts-tekstpagina .faq-question.faq-question-open{ border-radius: 10px 10px 0 0; }
.vts-tekstpagina .faq-question:after{ display: none; }   /* chevron rechts weg */
.vts-tekstpagina .faq-question:before{
	content: '';
	position: absolute;
	left: 28px;
	top: calc(50% - 9px);
	width: 18px;
	height: 18px;
	background: url('/wp-content/uploads/2026/08/faq-plus.svg') no-repeat center / contain;
}
.vts-tekstpagina .faq-question.faq-question-open:before{
	background-image: url('/wp-content/uploads/2026/08/faq-min.svg');
}
.vts-tekstpagina .faq-answer-inner{
	background: #DCEBF180;
	border: 0;
	border-radius: 0 0 10px 10px;
	padding: 0 28px 26px 68px;
}
.vts-tekstpagina .faq-answer-inner p{ margin: 0 0 12px; }
.vts-tekstpagina .faq-answer-inner p:last-child{ margin-bottom: 0; }

@media (max-width: 767px){
	.vts-tekstpagina .faq-question{ padding: 18px 20px 18px 54px; font-size: 15px !important; line-height: 22px; }
	.vts-tekstpagina .faq-question:before{ left: 18px; }
	.vts-tekstpagina .faq-answer-inner{ padding: 0 20px 22px 54px; }
}


/* ============ projectdetail v3 (klantfeedback 24-09, voorbeeld belisol) ============
   Grote foto met titel, daaronder de specificaties, dan een fotoslider. Shortcodes
   vts_project_hero / vts_project_specs / vts_project_slider (functions.php), template 9015. */

/* grote foto: loopt onder de header door (sectie heeft marge -120), titel linksonder */
.vts-phero { position: relative; height: 640px; border-radius: 0 0 0 75px; overflow: hidden; background: #0F1E31; }
.elementor .vts-phero img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.vts-phero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 30, 49, .85) 0, rgba(15, 30, 49, 0) 200px, rgba(15, 30, 49, 0) 42%, rgba(15, 30, 49, .88) 100%); }
.vts-phero-inhoud { position: absolute; z-index: 1; left: 0; right: 0; bottom: 64px; max-width: 1280px; margin: 0 auto; padding: 0 20px; font-family: Mulish, sans-serif; }
.vts-phero-kruimel { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .78); margin-bottom: 22px; }
.vts-phero .vts-phero-kruimel a { color: #fff !important; text-decoration: none; }
.vts-phero .vts-phero-kruimel a:hover { color: #fff !important; text-decoration: underline; }
.vts-phero .vts-project-kicker { color: #A8CEDC; margin-bottom: 12px; }
.vts-phero h1 { font-family: Mulish, sans-serif; font-size: 50px; line-height: 56px; font-weight: 700; color: #fff; margin: 0; max-width: 860px; }
@media (max-width: 1366px) {
	.vts-phero { height: 540px; }
	.vts-phero-inhoud { bottom: 52px; }
	.vts-phero h1 { font-size: 42px; line-height: 48px; }
}
@media (max-width: 1024px) {
	.vts-phero { height: 480px; }
	.vts-phero h1 { font-size: 38px; line-height: 44px; }
}
@media (max-width: 767px) {
	.vts-phero { height: 440px; border-radius: 0 0 0 40px; }
	.vts-phero-inhoud { bottom: 34px; }
	.vts-phero-kruimel { font-size: 13px; line-height: 18px; gap: 6px; margin-bottom: 14px; }
	.vts-phero h1 { font-size: 30px; line-height: 36px; }
}

/* specificaties: beschrijving links, kaart rechts; vanaf tablet onder elkaar met de kaart eerst */
.vts-pspecs { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 70px; align-items: start; max-width: 1240px; width: 100%; margin: 0 auto; font-family: Mulish, sans-serif; }
.vts-pspecs--alleen { grid-template-columns: minmax(0, 560px); justify-content: center; }
.vts-pspecs-tekst h2 { font-family: Mulish, sans-serif; font-size: 40px; line-height: 46px; font-weight: 700; color: #ACD0DD; margin: 0 0 22px; }
.vts-pspecs-tekst h2 span { color: #1D3557; }
.vts-pspecs-tekst p { font-size: 16px; line-height: 27px; color: #1D3557; margin: 0 0 16px; }
.vts-pspecs-tekst p:last-child { margin-bottom: 0; }
.vts-pspecs-kaart { background: #A8CEDC33; border-radius: 15px 15px 69px 15px; padding: 34px 36px 42px; }
.vts-pspecs-kaart .vts-project-kicker { margin-bottom: 10px; }
.vts-pspecs-kaart dl { margin: 0; }
.vts-pspecs-kaart dl > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 15px 0; border-bottom: 1px solid rgba(15, 30, 49, .1); }
.vts-pspecs-kaart dl > div:last-child { border-bottom: 0; padding-bottom: 0; }
.vts-pspecs-kaart dt { font-size: 14px; line-height: 22px; color: #5F6C80; }
.vts-pspecs-kaart dd { font-size: 16px; line-height: 22px; font-weight: 700; color: #0F1E31; margin: 0; }
@media (max-width: 1024px) {
	.vts-pspecs { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.vts-pspecs-kaart { order: -1; }
	.vts-pspecs-tekst h2 { font-size: 34px; line-height: 40px; }
}
@media (max-width: 767px) {
	.vts-pspecs { gap: 32px; }
	.vts-pspecs-kaart { padding: 26px 24px 32px; border-radius: 15px 15px 40px 15px; }
	.vts-pspecs-kaart dl > div { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 13px 0; }
	.vts-pspecs-tekst h2 { font-size: 28px; line-height: 32px; margin-bottom: 16px; }
	.vts-pspecs-tekst p { font-size: 15px; line-height: 25px; }
}

/* fotoslider: de showcase, met grotere beelden en overal dezelfde verhouding */
.vts-projectslider { max-width: 1240px; width: 100%; margin: 0 auto; }
.vts-projectslider .vts-showcase-baan { padding-left: calc(50% - 26%); padding-right: calc(50% - 26%); }
.vts-projectslider .vts-showcase-item { flex-basis: 100%; } /* % van de binnenmaat: beeld = 52% van de slider */
.elementor .vts-projectslider .vts-showcase-item img { aspect-ratio: 3 / 2; height: auto; object-fit: cover; }
.vts-projectslider--een .vts-showcase-pijl, .vts-projectslider--een .vts-showcase-stippen { display: none; }
@media (max-width: 767px) {
	.vts-projectslider .vts-showcase-baan { padding-left: calc(50% - 42%); padding-right: calc(50% - 42%); }
	.vts-projectslider .vts-showcase-item { flex-basis: 100%; }
	.vts-phero-kruimel span:last-child, .vts-phero-kruimel span:nth-last-child(2) { display: none; }
}

/* ============ vacaturefilter mobiel: achter een knop met filtericoon (klant 24-09) ============
   Resultaatregel bovenaan met rechts de knop "Filter"; die klapt de bestaande filter uit als klein paneel
   over de vacatures heen. Tablet en desktop ongewijzigd. Script: assets/vacatures.js (paneel()). */
.vts-vacfilter-toggle, .vts-vacfilter-klaar { display: none; }
@media (max-width: 767px) {
	.vts-vacfilter-wrap { position: relative; z-index: 20; display: flex; flex-direction: column; }
	.vts-vac-resultaat { order: -1; margin-top: 0; align-items: center; flex-wrap: nowrap; }
	.vts-vacfilter-wrap .vts-vacfilter { display: none; position: absolute; top: 100%; left: 0; right: 0; margin-top: 10px; max-height: 70vh; overflow-y: auto; padding: 6px 20px 18px; }
	.vts-vacfilter-wrap.is-filter-open .vts-vacfilter { display: block; }
	.vts-vac-resultaat .vts-vacfilter-toggle,
	.vts-vac-resultaat .vts-vacfilter-toggle:hover,
	.vts-vac-resultaat .vts-vacfilter-toggle:focus,
	.vts-vac-resultaat .vts-vacfilter-toggle:active { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1.5px solid #C4D8E1; border-radius: 999px; background: #fff; color: #0F1E31; font-family: 'Mulish', sans-serif; font-size: 14px; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none; box-shadow: none; cursor: pointer; }
	.vts-vac-resultaat .vts-vacfilter-toggle svg { color: #22A56E; }
	.vts-vacfilter-wrap.is-filter-open .vts-vac-resultaat .vts-vacfilter-toggle,
	.vts-vac-resultaat .vts-vacfilter-toggle.heeft-keuze { border-color: #22A56E; }
	.vts-vacfilter-teller { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: #22A56E; color: #fff; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
	.vts-vacfilter-teller[hidden] { display: none; }
	.vts-vacfilter .vts-vacfilter-klaar,
	.vts-vacfilter .vts-vacfilter-klaar:hover,
	.vts-vacfilter .vts-vacfilter-klaar:focus { display: block; width: 100%; margin-top: 4px; padding: 12px 16px; border: 0; border-radius: 999px; background: #22A56E; color: #fff; font-family: 'Mulish', sans-serif; font-size: 15px; font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; }
	.vts-vacfilter .vts-vacfilter-klaar:hover { background: #1C8A5C; }
}

/* menu-items die alleen een kop zijn (klasse vts-geen-link, zie functions.php) - klant 24-09 */
.menu-item.vts-geen-link > a { cursor: default; }
.menu-item.vts-geen-link > a:hover { color: inherit; }

/* ============ offerteformulieren in 2 stappen (klant 24-09) ============
   8583 en de trechters 8913-8919 (.vts-wizard-form). Zie scripts/patch-offertes-2-stappen.php. */
/* "Vorige" is een tekstlink met pijltje; de groene knop is de enige die opvalt */
.vts-wizard-form .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous,
.vts-wizard-form .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous:hover,
.vts-wizard-form .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous:focus {
	background: transparent !important; border: 0 !important; box-shadow: none !important;
	color: #1D3557 !important; padding: 0 4px !important; font-weight: 600;
}
.vts-wizard-form .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous::before { content: "\2190"; margin-right: 8px; font-size: 18px; line-height: 1; }
.vts-wizard-form .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous:hover { color: #22A56E !important; }
.vts-wizard-form .e-form__buttons { column-gap: 24px !important; }
/* het gevonden adres (straat + plaats) direct onder postcode/huisnr.; leeg neemt het geen ruimte in */
.vts-wizard-form .elementor-field-group-adresweergave { margin-bottom: 0 !important; }
.vts-wizard-form #address-field { margin: -14px 0 26px; font-size: 14px; line-height: 20px; color: #1D3557; }
.vts-wizard-form #address-field:empty { display: none !important; }

@media (max-width: 767px) {
	/* keuzes 2 per rij, even breed en even hoog. Het rondje/vinkje zou in een tegel van ~138 px de tekst
	   laten breken, dus op mobiel is de hele tegel de keuze: de gekozen tegel wordt groen. */
	.vts-wizard-form .elementor-field-subgroup { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.vts-wizard-form .elementor-field-subgroup .elementor-field-option { position: relative; width: 100%; height: auto; min-height: 48px; padding: 8px 10px !important; border-radius: 14px; margin: 0; justify-content: center; text-align: center; transition: background-color .15s, border-color .15s; }
	.vts-wizard-form .elementor-field-subgroup .elementor-field-option input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
	.vts-wizard-form .elementor-field-option label { font-size: 14px; line-height: 1.25; }
	.vts-wizard-form .elementor-field-option label::before { content: ""; position: absolute; inset: 0; border-radius: 14px; }
	.vts-wizard-form .elementor-field-subgroup .elementor-field-option:has(input:checked) { background: #E3F4EC; border-color: #22A56E; }
	.vts-wizard-form .elementor-field-subgroup .elementor-field-option:has(input:checked) label { color: #14624A; }
	.vts-wizard-form .elementor-field-subgroup .elementor-field-option:has(input:focus-visible) { outline: 2px solid #22A56E; outline-offset: 2px; }
	/* groene knop over de volle breedte, Vorige eronder */
	.vts-wizard-form .e-form__buttons .elementor-button:not(.e-form__buttons__wrapper__button-previous) { width: 100% !important; }
	.vts-wizard-form .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous { order: 2; width: 100% !important; }
	/* pijlrondje helemaal rechts in de brede knop, tekst in het midden (klant 24-09) */
	.vts-wizard-form .e-form__buttons .elementor-button:not(.e-form__buttons__wrapper__button-previous) { position: relative; justify-content: center; padding-left: 52px !important; padding-right: 52px !important; }
	.vts-wizard-form .e-form__buttons .e-form__buttons__wrapper__button-next::after { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); margin: 0 !important; }
	.vts-wizard-form .e-form__buttons button[type="submit"] .elementor-button-content-wrapper { width: 100%; justify-content: center; }
	.vts-wizard-form .e-form__buttons button[type="submit"] .elementor-button-icon { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); margin: 0 !important; line-height: 0; }
	.vts-wizard-form .e-form__buttons button[type="submit"] .elementor-button-icon svg { margin: 0 !important; }
}
@media (max-width: 1024px) {
	/* de Elementor-knoppenrij steekt uit zijn vak; op tablet/mobiel (paneelpadding 28) anders tegen de onderrand */
	.vts-wizard-form .e-form__buttons { margin-bottom: 22px; }
}

/* ============ mobiel: koppen zonder handmatige afbreking (klant 24-09) ============
   De <br> in de koppen is voor desktop (twee regels); op mobiel gaf hij losse woorden op een regel
   ("Wat kunststof kozijnen doen / met / een gevel..."). text-wrap: balance verdeelt de regels gelijkmatig. */
@media (max-width: 767px) {
	.elementor-widget-heading h2.elementor-heading-title br { display: none; }
	.elementor-widget-heading h2.elementor-heading-title { text-wrap: balance; }
}

/* ============ "Ons aanbod" op mobiel swipen zoals de home (klant 24-09) ============
   Tegelrij met klasse vts-aanbod-swipe (scripts/patch-gedeelde-blokken-2409.php): op mobiel één tegel met een
   stukje van de volgende, horizontaal te vegen tot de schermrand. iOS-regels zoals bij de andere schuifbalken (§4f). */
@media (max-width: 767px) {
	.e-con.vts-aanbod-swipe { flex-direction: row !important; flex-wrap: nowrap !important; justify-content: flex-start !important; gap: 12px !important;
		overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
		width: calc(100% + 20px) !important; max-width: none !important; margin-right: -20px !important; padding-left: 0 !important; padding-right: 20px !important; padding-bottom: 1px !important; }
	.e-con.vts-aanbod-swipe::-webkit-scrollbar { display: none; }
	.e-con.vts-aanbod-swipe > .e-con { flex: 0 0 84% !important; width: 84% !important; max-width: 320px; min-height: 400px !important; scroll-snap-align: start; }
	.e-con.vts-aanbod-swipe .elementor-heading-title { font-size: 24px !important; line-height: 28px !important; }
}

/* ------------------------------------------------------------------
   Bedankpagina's (klant 25-09, ontwerp image6) - markup uit de
   shortcode [vts_bedankt] in inc/bedankt.php.
   Foto: op desktop rechts met zachte overgang; de uitsnede staat op
   --vts-bedankt-pos (standaard 30% 20%: de adviseur staat in 9168 op
   30% van de breedte, zo blijft zijn gezicht op elke breedte buiten
   de overgang). Vanaf 1210 staat de foto als band bovenaan.
   ------------------------------------------------------------------ */
.vts-bedankt {
	position: relative;
	margin-top: -120px;
	padding: 178px 20px 80px;
	background: #F5F9FB;
	overflow: hidden;
	font-family: 'Mulish', sans-serif;
	color: #3A4A5C;
}
/* donkere strook achter de doorzichtige header, zelfde maat als .vts-paginakop */
.vts-bedankt::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 128px;
	background: #0F1E31;
	border-radius: 0 0 0 69px;
	z-index: 2;
	pointer-events: none;
}
.vts-bedankt-foto {
	position: absolute;
	top: 128px;
	right: 0;
	bottom: 190px;
	width: 46%;
	background-size: cover;
	background-position: var(--vts-bedankt-pos, 30% 20%);
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 20%);
	mask-image: linear-gradient(to right, transparent 0, #000 20%);
	border-bottom-left-radius: 69px;
}
/* zonder usp-balk (sollicitatie) loopt de foto tot onder de kaarten */
.vts-bedankt-sollicitatie .vts-bedankt-foto { bottom: 80px; }
.vts-bedankt-binnen {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
}
.vts-bedankt-kop {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	column-gap: 22px;
	align-items: start;
	max-width: 900px;
	padding-bottom: 36px;
	border-bottom: 1px solid #D8E4EA;
}
.vts-bedankt-vink {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	margin-top: 34px;
	border-radius: 50%;
	background: #DDF1E7;
	color: #22A56E;
}
.vts-bedankt-vink svg { width: 44px; height: 44px; stroke-width: 2.6; }
.vts-bedankt-kicker {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 16px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #6E93AE;
}
.vts-bedankt h1 {
	margin: 0;
	font-size: 48px;
	line-height: 1.08;
	font-weight: 700;
	color: #1D3557;
}
.vts-bedankt h1 span { display: block; color: #8DB5CB; }
.vts-bedankt-intro { margin: 22px 0 0; font-size: 17px; line-height: 28px; max-width: 620px; }
.vts-bedankt .vts-bedankt-intro a { color: #1D3557; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.vts-bedankt h2 {
	margin: 36px 0 20px;
	font-size: 28px;
	line-height: 34px;
	font-weight: 700;
	color: #1D3557;
}
.vts-bedankt-stappen {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px;
	max-width: 900px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.vts-bedankt-stappen li {
	position: relative;
	margin: 0;
	padding: 24px 26px 28px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(15, 30, 49, .07);
}
/* pijltje tussen de stapkaarten (niet bij linkkaarten) */
.vts-bedankt-stappen:not(.vts-bedankt-links) li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -22px;
	width: 9px;
	height: 9px;
	border-top: 2px solid #6E93AE;
	border-right: 2px solid #6E93AE;
	transform: translateY(-50%) rotate(45deg);
}
/* linkkaarten: de hele kaart is klikbaar */
.vts-bedankt-links li { padding: 0; transition: box-shadow .2s, transform .2s; }
.vts-bedankt-links li:hover { box-shadow: 0 14px 34px rgba(15, 30, 49, .13); transform: translateY(-2px); }
.vts-bedankt .vts-bedankt-links a { display: block; height: 100%; padding: 24px 26px 28px; color: #3A4A5C; text-decoration: none; }
.vts-bedankt .vts-bedankt-links a p { color: #3A4A5C; }
.vts-bedankt-icoon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #E3EEF4;
	color: #1D3557;
}
.vts-bedankt-icoon svg { width: 26px; height: 26px; }
.vts-bedankt-stappen h3 { margin: 18px 0 8px; font-size: 17px; line-height: 22px; font-weight: 700; color: #1D3557; }
.vts-bedankt-stappen p { margin: 0; font-size: 15px; line-height: 24px; }
.vts-bedankt-usps {
	margin-top: 34px;
	padding: 24px 28px 26px;
	background: #EAF2F6;
	border-radius: 16px;
}
.vts-bedankt-usps h2 { margin: 0 0 18px; font-size: 24px; line-height: 30px; }
.vts-bedankt-usps ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.vts-bedankt-usps li {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0;
	padding: 0 24px;
	border-left: 1px solid #CFDDE4;
}
.vts-bedankt-usps li:first-child { padding-left: 0; border-left: 0; }
.vts-bedankt-usps .vts-bedankt-icoon { background: #DDF1E7; color: #22A56E; }
.vts-bedankt-usps strong { display: block; font-size: 16px; line-height: 22px; color: #1D3557; }
.vts-bedankt-usps li span:last-child { font-size: 15px; line-height: 22px; }

@media (max-width: 1366px) {
	.vts-bedankt h1 { font-size: 44px; }
}
@media (max-width: 1210px) {
	.vts-bedankt { padding: 128px 0 60px; }
	/* de foto sluit direct aan op de donkere strook: geen ronde hoek, anders ontstaat er een licht boogje */
	.vts-bedankt::before { border-radius: 0; }
	/* foto als band direct onder de header, tekst eronder over de volle breedte;
	   verticaal op 18% zodat de gezichten niet onder de kopbalk wegvallen */
	.vts-bedankt-foto,
	.vts-bedankt-sollicitatie .vts-bedankt-foto {
		position: relative;
		top: auto; right: auto; bottom: auto;
		width: auto;
		height: 320px;
		background-position: center 18%;
		-webkit-mask-image: linear-gradient(to bottom, #000 65%, transparent 100%);
		mask-image: linear-gradient(to bottom, #000 65%, transparent 100%);
		border-radius: 0;
	}
	.vts-bedankt-binnen { padding: 0 20px; margin-top: 10px; }
	.vts-bedankt-kop { max-width: none; }
	.vts-bedankt-stappen { max-width: none; gap: 28px; }
	.vts-bedankt-stappen li { padding: 20px 20px 24px; }
	.vts-bedankt-links li { padding: 0; }
	.vts-bedankt .vts-bedankt-links a { padding: 20px 20px 24px; }
}
@media (max-width: 1024px) {
	.vts-bedankt-foto,
	.vts-bedankt-sollicitatie .vts-bedankt-foto { height: 280px; }
	.vts-bedankt-usps ul { grid-template-columns: 1fr; row-gap: 16px; }
	.vts-bedankt-usps li, .vts-bedankt-usps li:first-child { padding: 0; border-left: 0; }
}
@media (max-width: 900px) {
	.vts-bedankt h1 { font-size: 40px; }
}
@media (max-width: 767px) {
	.vts-bedankt-foto,
	.vts-bedankt-sollicitatie .vts-bedankt-foto { height: 220px; }
	/* vinkje boven de kop, alles over de volle breedte */
	.vts-bedankt-kop { display: block; padding-bottom: 28px; }
	.vts-bedankt-vink { width: 56px; height: 56px; margin: 0 0 18px; }
	.vts-bedankt-vink svg { width: 28px; height: 28px; }
	.vts-bedankt-kicker { font-size: 13px; letter-spacing: 3px; margin-bottom: 10px; }
	.vts-bedankt h1 { font-size: 32px; line-height: 1.12; }
	.vts-bedankt-intro { font-size: 15px; line-height: 24px; margin-top: 16px; }
	.vts-bedankt h2 { font-size: 24px; line-height: 30px; margin: 30px 0 16px; }
	.vts-bedankt-stappen { grid-template-columns: 1fr; gap: 14px; }
	.vts-bedankt-stappen:not(.vts-bedankt-links) li:not(:last-child)::after { display: none; }
	.vts-bedankt-stappen li,
	.vts-bedankt .vts-bedankt-links a { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; padding: 18px; }
	.vts-bedankt-links li { display: block; padding: 0; }
	.vts-bedankt-stappen .vts-bedankt-icoon { width: 48px; height: 48px; grid-row: 1 / 3; }
	.vts-bedankt-stappen h3 { margin: 2px 0 4px; }
	.vts-bedankt-usps { padding: 22px 20px; }
	.vts-bedankt-usps h2 { font-size: 20px; line-height: 26px; margin: 0 0 16px; }
	.vts-bedankt-usps .vts-bedankt-icoon { width: 48px; height: 48px; }
}
