/* ==========================================================================
   Zeldenpas – huisstijl
   Cappuccino- en strandkleuren, mobiel eerst.
   Alles is gekoppeld aan CSS-klassen (zp-…) die op de Elementor-secties staan,
   zodat je in Elementor gewoon teksten en foto's kunt aanpassen.
   ========================================================================== */

@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/newsreader-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/newsreader-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/nunito-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/nunito-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/nunito-sans-latin-700-normal.woff2") format("woff2"); }

:root {
	--zp-espresso: #3b2a21;   /* tekst, donkere vlakken */
	--zp-mocha: #6b4a36;      /* koppen accent, iconen */
	--zp-caramel: #8c5a36;    /* knoppen */
	--zp-caramel-dark: #74482a;
	--zp-latte: #d8c3a5;
	--zp-sand: #efe4d4;
	--zp-foam: #f8f3ec;
	--zp-white: #ffffff;
	--zp-sea: #5e7f86;        /* klein accent: zee */
	--zp-line: #e3d5c2;
	--zp-text: #4a382d;
	--zp-muted: #7a6656;
	--zp-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--zp-sans: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--zp-radius: 16px;
	--zp-shadow: 0 1px 2px rgba(59, 42, 33, .06), 0 8px 24px rgba(59, 42, 33, .08);
	--zp-pad-y: 56px;
	--zp-pad-x: 16px;
}
@media (min-width: 768px) { :root { --zp-pad-y: 80px; --zp-pad-x: 24px; } }
@media (min-width: 1100px) { :root { --zp-pad-y: 104px; } }

html { scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---------- Basis voor alle Zeldenpas-secties ----------------------------- */

.zp-sec, .zp-sec *, .zp-sec *::before, .zp-sec *::after,
.zp-form-wrap, .zp-form-wrap *, .zp-bar, .zp-bar * { box-sizing: border-box; }

.elementor-section.zp-sec {
	padding: var(--zp-pad-y) var(--zp-pad-x);
	font-family: var(--zp-sans);
	color: var(--zp-text);
	font-size: 17px;
	line-height: 1.65;
}
.zp-sec .elementor-container { max-width: 1200px; }
.zp-sec > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; }
@media (min-width: 768px) {
	.zp-sec > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 16px; }
}

.zp-bg-white { background-color: var(--zp-white); }
.zp-bg-foam  { background-color: var(--zp-foam); }
.zp-bg-sand  { background-color: var(--zp-sand); }

/* Koppen en tekst – sterker dan de standaardstijl van Elementor en het thema */
.zp-sec .elementor-widget-heading .elementor-heading-title {
	font-family: var(--zp-serif);
	color: var(--zp-espresso);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 0;
}
.zp-sec .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.2rem, 7.5vw, 4.25rem); }
.zp-sec .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.75rem, 5.2vw, 2.75rem); }
.zp-sec .elementor-widget-heading h3.elementor-heading-title { font-size: clamp(1.25rem, 3.6vw, 1.5rem); }

.zp-sec .elementor-widget-text-editor {
	font-family: var(--zp-sans);
	color: var(--zp-text);
	font-size: 17px;
	line-height: 1.7;
}
.zp-sec .elementor-widget-text-editor p { margin: 0 0 1em; }
.zp-sec .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.zp-sec .elementor-widget-text-editor a { color: var(--zp-caramel); text-decoration: underline; text-underline-offset: 3px; }

.zp-sec .zp-eyebrow .elementor-heading-title {
	font-family: var(--zp-sans) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase;
	color: var(--zp-sea) !important;
}
.zp-sec .elementor-widget.zp-eyebrow { margin-bottom: 10px; }

.zp-center .elementor-widget-wrap { text-align: center; justify-content: center; }
.zp-center .elementor-widget { text-align: center; }
.zp-center-h .elementor-heading-title { text-align: center; }
.zp-cards-head, .zp-steps-head, .zp-reviews-head { padding-bottom: 8px !important; }
.zp-cards-head .elementor-widget-text-editor { max-width: 560px; margin: 0 auto; }

/* ---------- Knoppen --------------------------------------------------------- */

.zp-sec .zp-btn .elementor-button {
	font-family: var(--zp-sans);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.2;
	padding: 15px 26px;
	min-height: 52px;
	border-radius: 999px;
	border: 2px solid transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s;
	box-shadow: none;
}
.zp-sec .zp-btn .elementor-button:active { transform: scale(.98); }
.zp-sec .zp-btn--primary .elementor-button { background: var(--zp-caramel); color: #fff; }
.zp-sec .zp-btn--primary .elementor-button:hover,
.zp-sec .zp-btn--primary .elementor-button:focus-visible { background: var(--zp-caramel-dark); color: #fff; }
.zp-sec .zp-btn--outline .elementor-button { background: transparent; color: var(--zp-caramel); border-color: var(--zp-caramel); }
.zp-sec .zp-btn--outline .elementor-button:hover,
.zp-sec .zp-btn--outline .elementor-button:focus-visible { background: var(--zp-caramel); color: #fff; }
.zp-sec .zp-btn--ghost .elementor-button { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.75); }
.zp-sec .zp-btn--ghost .elementor-button:hover,
.zp-sec .zp-btn--ghost .elementor-button:focus-visible { background: #fff; color: var(--zp-espresso); }
.zp-sec .zp-btn--light .elementor-button { background: var(--zp-foam); color: var(--zp-espresso); }
.zp-sec .zp-btn--light .elementor-button:hover,
.zp-sec .zp-btn--light .elementor-button:focus-visible { background: #fff; }
.zp-sec .zp-btn .elementor-button:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 3px; }
.zp-sec .elementor-widget.zp-btn { margin-right: 10px; margin-bottom: 10px; }
.zp-sec .elementor-widget.zp-btn:last-child { margin-bottom: 0; }
@media (max-width: 479px) {
	/* Op kleine telefoons: knoppen over de volle breedte, makkelijk te raken */
	.zp-sec .elementor-widget.zp-btn { width: 100%; margin-right: 0; }
	.zp-sec .zp-btn .elementor-button { width: 100%; }
}

/* ---------- Hero ------------------------------------------------------------ */

.elementor-section.zp-hero {
	position: relative;
	min-height: 88vh;
	min-height: 88svh;
	display: flex;
	align-items: flex-end;
	padding-top: 96px;
	padding-bottom: 40px;
	background-color: var(--zp-mocha);
	color: #fff;
	isolation: isolate;
}
.elementor-section.zp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(40,28,21,.35) 0%, rgba(40,28,21,0) 30%),
		linear-gradient(0deg, rgba(40,28,21,.85) 0%, rgba(40,28,21,.6) 45%, rgba(40,28,21,.15) 80%);
}
.zp-hero > .elementor-container { position: relative; z-index: 1; width: 100%; }
.elementor-section.zp-hero--small { min-height: 62vh; min-height: 62svh; }
@media (min-width: 768px) {
	.elementor-section.zp-hero { padding-bottom: 72px; }
	.elementor-section.zp-hero--small { min-height: 60vh; }
}
.zp-hero .zp-hero-col > .elementor-widget-wrap { max-width: 760px; }
.zp-sec.zp-hero .elementor-heading-title,
.zp-sec.zp-hero .elementor-widget-text-editor { color: #fff; }
.zp-sec.zp-hero .zp-eyebrow .elementor-heading-title { color: var(--zp-latte) !important; }
.zp-sec.zp-hero .zp-lead { font-size: clamp(1.05rem, 2.6vw, 1.25rem); max-width: 620px; opacity: .95; }
.zp-hero .elementor-widget.zp-hero-title { margin-bottom: 14px; }
.zp-hero .elementor-widget.zp-lead { margin-bottom: 26px; }

/* ---------- Taalkeuze ------------------------------------------------------ */

.zp-lang { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.zp-lang a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 36px; padding: 0 12px; border-radius: 999px; color: #fff; font: 700 14px/1 var(--zp-sans); letter-spacing: .06em; text-decoration: none; }
.zp-lang a.is-current { background: #fff; color: var(--zp-espresso); }
.zp-lang a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.zp-hero .elementor-widget.zp-lang-widget { margin-bottom: 22px; }
.zp-hero .elementor-widget.zp-lang-widget:empty, .zp-lang-widget .elementor-shortcode:empty { display: none; }

/* ---------- Troeven (USP's) ------------------------------------------------ */

.elementor-section.zp-usps { padding-top: 28px; padding-bottom: 28px; }
.zp-usps > .elementor-container { flex-wrap: wrap; }
.zp-usps > .elementor-container > .elementor-column { width: 50% !important; }
@media (min-width: 1025px) { .zp-usps > .elementor-container > .elementor-column { width: 25% !important; } }
.zp-usp .elementor-icon-box-wrapper { text-align: left !important; display: block; padding: 14px 8px; }
.zp-usp .elementor-icon-box-icon { margin: 0 0 10px !important; display: block; }
.zp-usp .elementor-icon { font-size: 22px !important; width: 48px; height: 48px; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 50%; background: var(--zp-sand); color: var(--zp-mocha) !important; fill: var(--zp-mocha) !important; }
.zp-usp .elementor-icon i, .zp-usp .elementor-icon svg { color: var(--zp-mocha); fill: var(--zp-mocha); width: 22px; height: 22px; font-size: 22px; }
.zp-usp .elementor-icon-box-title { font-family: var(--zp-serif) !important; font-size: 18px !important; font-weight: 600 !important; line-height: 1.25 !important; color: var(--zp-espresso) !important; margin: 0 0 4px !important; }
.zp-usp .elementor-icon-box-title a { color: inherit; }
.zp-usp .elementor-icon-box-description { font-family: var(--zp-sans) !important; font-size: 15px !important; line-height: 1.5 !important; color: var(--zp-muted) !important; margin: 0; }

/* ---------- Foto + tekst (split) ------------------------------------------- */

.zp-split > .elementor-container { flex-wrap: wrap; row-gap: 28px; }
@media (min-width: 768px) {
	.zp-split > .elementor-container { flex-wrap: nowrap; }
	.zp-split--reverse > .elementor-container { flex-direction: row-reverse; }
}
.zp-vcenter > .elementor-widget-wrap { align-content: center !important; align-items: center; }
.zp-sec .zp-img img, .zp-sec .zp-img--tall img {
	width: 100%;
	border-radius: var(--zp-radius);
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
@media (min-width: 768px) { .zp-sec .zp-img--tall img { aspect-ratio: 4 / 4.4; } }

/* ---------- Kaarten (accommodaties) --------------------------------------- */

.elementor-section.zp-cards { padding-top: 16px; }
.elementor-section.zp-cards + .elementor-section.zp-cards { padding-top: 0; margin-top: -24px; }
@media (min-width: 768px) { .elementor-section.zp-cards + .elementor-section.zp-cards { margin-top: -48px; } }
.zp-cards > .elementor-container { flex-wrap: wrap; justify-content: center; gap: 20px 0; }
.zp-cards > .elementor-container > .elementor-column.zp-card { width: 100% !important; }
@media (min-width: 640px)  { .zp-cards > .elementor-container > .elementor-column.zp-card { width: 50% !important; } }
@media (min-width: 1025px) { .zp-cards > .elementor-container > .elementor-column.zp-card { width: 33.333% !important; } }
@media (min-width: 1025px) { .zp-cards--4 > .elementor-container > .elementor-column.zp-card { width: 25% !important; } }
.zp-card > .elementor-widget-wrap {
	background: #fff;
	border-radius: var(--zp-radius);
	box-shadow: var(--zp-shadow);
	overflow: hidden;
	padding: 0 0 22px !important;
	margin: 0 0 4px;
	height: 100%;
	align-content: flex-start;
}
@media (min-width: 640px) { .zp-card > .elementor-widget-wrap { margin: 0 10px; } }
.zp-card .elementor-widget { width: 100%; }
.zp-card .elementor-widget:not(.zp-card-img) { padding: 0 22px; }
.zp-card .elementor-widget.zp-card-img { margin-bottom: 18px; }
.zp-card .zp-card-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; border-radius: 0; }
.zp-card .elementor-widget.zp-card-title { margin-bottom: 4px; }
.zp-card .zp-card-meta .elementor-heading-title { font-family: var(--zp-sans) !important; font-size: 14px !important; font-weight: 600 !important; color: var(--zp-sea) !important; letter-spacing: .01em; }
.zp-card .elementor-widget.zp-card-meta { margin-bottom: 10px; }
.zp-card .zp-card-text { font-size: 16px; color: var(--zp-muted); }
.zp-card .elementor-widget.zp-card-text { margin-bottom: 18px; }
.zp-card .zp-btn { margin: auto 0 0; }
.zp-card .zp-btn .elementor-button { width: 100%; }

/* ---------- Banner met foto ------------------------------------------------ */

.elementor-section.zp-banner {
	position: relative;
	color: #fff;
	background-color: var(--zp-mocha);
	padding-top: calc(var(--zp-pad-y) * 1.5);
	padding-bottom: calc(var(--zp-pad-y) * 1.5);
	isolation: isolate;
}
.elementor-section.zp-banner::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(90deg, rgba(40,28,21,.85) 0%, rgba(40,28,21,.55) 60%, rgba(40,28,21,.25) 100%);
}
@media (max-width: 767px) { .elementor-section.zp-banner::before { background: rgba(40,28,21,.68); } }
.zp-banner > .elementor-container { position: relative; z-index: 1; }
.zp-banner > .elementor-container > .elementor-column { width: 100% !important; }
@media (min-width: 768px) { .zp-banner > .elementor-container > .elementor-column { width: 66% !important; } }
.zp-sec.zp-banner .elementor-heading-title, .zp-sec.zp-banner .elementor-widget-text-editor { color: #fff; }
.zp-sec.zp-banner .zp-eyebrow .elementor-heading-title { color: var(--zp-latte) !important; }
.zp-banner .elementor-widget-text-editor { font-size: 18px; max-width: 560px; }

/* ---------- Stappen --------------------------------------------------------- */

.elementor-section.zp-steps { padding-top: 24px; }
.zp-steps > .elementor-container { flex-wrap: wrap; gap: 16px 0; }
.zp-steps > .elementor-container > .elementor-column { width: 100% !important; }
@media (min-width: 768px) { .zp-steps > .elementor-container > .elementor-column { width: 33.333% !important; } }
.zp-step > .elementor-widget-wrap { background: rgba(255,255,255,.7); border-radius: var(--zp-radius); padding: 24px !important; height: 100%; align-content: flex-start; }
@media (min-width: 768px) { .zp-step > .elementor-widget-wrap { margin: 0 10px; } }
.zp-bg-foam .zp-step > .elementor-widget-wrap { background: #fff; }
.zp-step .zp-step-num .elementor-heading-title {
	width: 44px; height: 44px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--zp-caramel); color: #fff !important;
	font-family: var(--zp-serif) !important; font-size: 20px !important;
}
.zp-step .elementor-widget { margin-bottom: 10px; }
.zp-step .elementor-widget-text-editor { font-size: 16px; color: var(--zp-muted); }

/* ---------- Reviews -------------------------------------------------------- */

.elementor-section.zp-reviews { padding-top: 24px; }
.zp-reviews > .elementor-container { flex-wrap: wrap; gap: 16px 0; }
.zp-reviews > .elementor-container > .elementor-column { width: 100% !important; }
@media (min-width: 768px) { .zp-reviews > .elementor-container > .elementor-column { width: 33.333% !important; } }
.zp-review > .elementor-widget-wrap { background: var(--zp-foam); border-radius: var(--zp-radius); padding: 26px !important; height: 100%; align-content: space-between; }
@media (min-width: 768px) { .zp-review > .elementor-widget-wrap { margin: 0 10px; } }
.zp-quote { font-family: var(--zp-serif) !important; font-size: 19px !important; line-height: 1.5 !important; color: var(--zp-espresso) !important; }
.zp-quote-name .elementor-heading-title { font-family: var(--zp-sans) !important; font-size: 14px !important; font-weight: 700 !important; color: var(--zp-muted) !important; }

/* ---------- Appartementpagina ---------------------------------------------- */

.zp-apt-intro > .elementor-container { flex-wrap: wrap; row-gap: 28px; }
.zp-apt-intro > .elementor-container > .elementor-column { width: 100% !important; }
@media (min-width: 900px) {
	.zp-apt-intro > .elementor-container { flex-wrap: nowrap; }
	.zp-apt-intro > .elementor-container > .zp-about { width: 58% !important; }
	.zp-apt-intro > .elementor-container > .zp-factbox { width: 42% !important; }
}
.zp-about .elementor-widget-text-editor { font-size: 18px; }
.zp-note { font-size: 15px !important; color: var(--zp-muted) !important; border-left: 3px solid var(--zp-latte); padding-left: 14px; }
.zp-factbox > .elementor-widget-wrap { background: var(--zp-foam); border-radius: var(--zp-radius); padding: 26px !important; align-content: flex-start; }
@media (min-width: 900px) { .zp-factbox > .elementor-widget-wrap { position: sticky; top: 100px; } }
.zp-facts .elementor-icon-list-item { padding: 8px 0 !important; border-bottom: 1px solid var(--zp-line); align-items: flex-start !important; }
.zp-facts .elementor-icon-list-item:last-child { border-bottom: 0; }
.zp-facts .elementor-icon-list-icon { width: 28px !important; flex: 0 0 28px; padding-top: 4px; }
.zp-facts .elementor-icon-list-icon i { color: var(--zp-mocha) !important; font-size: 17px !important; }
.zp-facts .elementor-icon-list-icon svg { fill: var(--zp-mocha) !important; width: 17px !important; height: 17px !important; }
.zp-facts .elementor-icon-list-text { font-family: var(--zp-sans); font-size: 16px; color: var(--zp-text) !important; padding-left: 4px !important; }
.zp-factbox .zp-btn .elementor-button { width: 100%; }

/* Fotogalerij: groot eerste beeld, daarna raster */
.elementor-section.zp-gallery-sec { padding-top: 0; }
.zp-gallery .gallery {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	margin: 0 !important;
}
.zp-gallery .gallery-item {
	width: auto !important; max-width: none !important;
	margin: 0 !important; padding: 0 !important;
}
.zp-gallery .gallery-item:first-child { grid-column: 1 / -1; }
.zp-gallery .gallery-icon, .zp-gallery .gallery-icon a { display: block; }
.zp-gallery .gallery-item img {
	width: 100% !important; height: 100% !important;
	aspect-ratio: 4 / 3; object-fit: cover; display: block;
	border: 0 !important; border-radius: 10px;
}
.zp-gallery .gallery-item:first-child img { aspect-ratio: 16 / 10; }
.zp-gallery br { display: none; }
@media (min-width: 768px) {
	.zp-gallery .gallery { grid-template-columns: repeat(4, 1fr); gap: 12px; }
	.zp-gallery .gallery-item:first-child { grid-column: span 2; grid-row: span 2; }
	.zp-gallery .gallery-item:first-child img { aspect-ratio: auto; }
	.zp-gallery .gallery-item img { border-radius: 14px; }
}

/* ---------- Aanvraagsectie -------------------------------------------------- */

.zp-form-sec > .elementor-container { flex-wrap: wrap; row-gap: 32px; }
.zp-form-sec > .elementor-container > .elementor-column { width: 100% !important; }
@media (min-width: 900px) {
	.zp-form-sec > .elementor-container { flex-wrap: nowrap; }
	.zp-form-sec > .elementor-container > .zp-form-intro { width: 38% !important; }
	.zp-form-sec > .elementor-container > .zp-form-col { width: 62% !important; }
}
.zp-small-h { margin-top: 18px; }
.zp-sec .zp-small-h .elementor-heading-title { font-size: 18px !important; }

.zp-form-wrap {
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--zp-shadow);
	padding: 22px 18px;
	font-family: var(--zp-sans);
	color: var(--zp-text);
}
@media (min-width: 640px) { .zp-form-wrap { padding: 32px; } }
.zp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 14px; margin: 0; }
.zp-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.zp-field--full { grid-column: 1 / -1; }
@media (max-width: 380px) { .zp-field { grid-column: 1 / -1; } }
.zp-form label { font-weight: 700; font-size: 15px; color: var(--zp-espresso); line-height: 1.3; margin: 0; }
.zp-form .zp-opt { font-weight: 400; color: var(--zp-muted); }
.zp-form input[type="text"], .zp-form input[type="email"], .zp-form input[type="tel"],
.zp-form input[type="number"], .zp-form input[type="date"], .zp-form select, .zp-form textarea {
	width: 100%;
	min-height: 52px;
	font: 400 16px/1.4 var(--zp-sans); /* 16px voorkomt inzoomen op iPhone */
	color: var(--zp-espresso);
	background: var(--zp-foam);
	border: 1.5px solid var(--zp-line);
	border-radius: 12px;
	padding: 12px 14px;
	box-shadow: none;
	margin: 0;
	-webkit-appearance: none;
	appearance: none;
}
.zp-form input[type="date"] { display: block; min-width: 0; }
.zp-form input[type="date"]::-webkit-date-and-time-value { text-align: left; }
.zp-form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b4a36' stroke-width='2' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px;
}
.zp-form textarea { min-height: 110px; resize: vertical; }
.zp-form input:focus, .zp-form select:focus, .zp-form textarea:focus {
	outline: none; border-color: var(--zp-caramel); background: #fff;
	box-shadow: 0 0 0 3px rgba(140, 90, 54, .18);
}
.zp-form [aria-invalid="true"] { border-color: #b3261e; background: #fff7f6; }
.zp-err { color: #b3261e; font-size: 14px; font-weight: 600; }
.zp-errors { grid-column: 1 / -1; background: #fdeceb; border: 1px solid #f2b8b5; color: #8c1d18; border-radius: 12px; padding: 14px 16px; font-size: 15px; }
.zp-errors p { margin: 0 0 6px; } .zp-errors ul { margin: 0; padding-left: 18px; }
.zp-cap-hint { margin: -6px 0 0; font-size: 14px; color: var(--zp-sea); font-weight: 600; min-height: 0; }
.zp-cap-hint:empty { display: none; }
.zp-check { flex-direction: row; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.zp-check input[type="checkbox"] { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--zp-caramel); flex: 0 0 22px; }
.zp-check label { font-weight: 400; font-size: 15px; flex: 1; }
.zp-check label a { color: var(--zp-caramel); }
.zp-check .zp-err { flex-basis: 100%; }
.zp-submit { display: flex; flex-direction: column; gap: 10px; }
.zp-submit-btn {
	width: 100%; min-height: 56px; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--zp-caramel); color: #fff;
	font: 700 17px/1.2 var(--zp-sans); letter-spacing: .01em;
	padding: 16px 24px; transition: background-color .2s, transform .2s;
}
.zp-submit-btn:hover, .zp-submit-btn:focus-visible { background: var(--zp-caramel-dark); color: #fff; }
.zp-submit-btn:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 3px; }
.zp-submit-btn:active { transform: scale(.99); }
.zp-submit-btn[disabled] { opacity: .7; cursor: wait; }
.zp-reassure { margin: 0; text-align: center; font-size: 14px; color: var(--zp-muted); }
.zp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.zp-success { text-align: center; padding: 24px 8px; outline: none; }
.zp-success-icon { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; align-items: center; justify-content: center; background: var(--zp-sand); color: var(--zp-caramel); font-size: 30px; font-weight: 700; margin-bottom: 14px; }
.zp-success h3 { font-family: var(--zp-serif); font-size: 26px; color: var(--zp-espresso); margin: 0 0 8px; }
.zp-success p { margin: 0 auto; max-width: 440px; }

/* Contactblok */
.zp-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.zp-contact li { margin: 0; padding: 0; }
.zp-contact a { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.75); color: var(--zp-espresso); text-decoration: none; font-weight: 700; font-size: 16px; line-height: 1.35; min-height: 56px; transition: background-color .2s; }
.zp-contact a:hover, .zp-contact a:focus-visible { background: #fff; }
.zp-contact .zp-ico { flex: 0 0 40px; width: 40px; height: 40px; padding: 9px; border-radius: 50%; background: var(--zp-sand); color: var(--zp-mocha); }
.zp-contact small { display: block; font-weight: 400; font-size: 13px; color: var(--zp-muted); }
.zp-admin-note { background: #fff8e5; border: 1px dashed #d6a400; padding: 10px 12px; border-radius: 8px; font-size: 14px; }

/* ---------- FAQ ------------------------------------------------------------- */

.zp-faq-sec > .elementor-container { justify-content: center; }
.zp-faq-sec > .elementor-container > .elementor-column { width: 100% !important; max-width: 820px; }
.zp-faq .elementor-toggle-item { border: 0 !important; border-bottom: 1px solid var(--zp-line) !important; margin: 0 !important; }
.zp-faq .elementor-tab-title { border: 0 !important; padding: 18px 0 !important; font-family: var(--zp-sans); font-weight: 700; font-size: 17px; display: flex; flex-direction: row-reverse; justify-content: space-between; gap: 12px; align-items: center; }
.zp-faq .elementor-tab-title a, .zp-faq .elementor-toggle-title { color: var(--zp-espresso) !important; text-decoration: none; }
.zp-faq .elementor-toggle-icon { color: var(--zp-caramel) !important; }
.zp-faq .elementor-toggle-icon svg { fill: var(--zp-caramel) !important; }
.zp-faq .elementor-tab-content { border: 0 !important; padding: 0 0 18px !important; color: var(--zp-text); font-size: 16px; }

/* ---------- Vaste aanvraagbalk op telefoons -------------------------------- */

.zp-bar { display: none; }
@media (max-width: 767px) {
	.zp-bar {
		position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom));
		z-index: 9990;
		display: flex; gap: 8px; padding: 8px;
		background: rgba(59, 42, 33, .94);
		backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
		border-radius: 999px;
		box-shadow: 0 10px 30px rgba(0,0,0,.25);
		transition: transform .3s ease, opacity .3s ease;
		font-family: var(--zp-sans);
	}
	.zp-bar.is-hidden { transform: translateY(140%); opacity: 0; pointer-events: none; }
	.zp-bar a { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; border-radius: 999px; min-height: 48px; }
	.zp-bar-main { flex: 1; gap: 8px; background: var(--zp-caramel); color: #fff !important; font-weight: 700; font-size: 16px; }
	.zp-bar-icon { width: 48px; flex: 0 0 48px; background: rgba(255,255,255,.12); color: #fff !important; }
	.zp-bar-lang { font-weight: 700; font-size: 13px; letter-spacing: .06em; }
	.zp-bar .zp-ico { width: 22px; height: 22px; }
	body { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .zp-bar { transition: none; } }

/* ---------- Slideshow "Bekijk ook" (wordt actief via zeldenpas.js) -------- */

.zp-slider-on > .elementor-container {
	flex-wrap: nowrap !important;
	justify-content: flex-start !important;
	gap: 0 !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 6px 0 18px;
}
.zp-slider-on > .elementor-container::-webkit-scrollbar { display: none; }
.zp-slider-on > .elementor-container:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 4px; border-radius: var(--zp-radius); }
.zp-cards.zp-slider-on > .elementor-container > .elementor-column.zp-card {
	width: 84% !important;
	flex: 0 0 84%;
	scroll-snap-align: start;
}
.zp-slider-on .zp-card > .elementor-widget-wrap { margin: 0 12px 0 0; }
@media (min-width: 640px) {
	.zp-cards.zp-slider-on > .elementor-container > .elementor-column.zp-card { width: 46% !important; flex-basis: 46%; }
	.zp-slider-on .zp-card > .elementor-widget-wrap { margin: 0 10px; }
}
@media (min-width: 1025px) {
	.zp-cards.zp-slider-on > .elementor-container > .elementor-column.zp-card { width: 33.333% !important; flex-basis: 33.333%; }
}
@media (prefers-reduced-motion: reduce) { .zp-slider-on > .elementor-container { scroll-behavior: auto; } }

.zp-slider-nav {
	position: relative; z-index: 1;
	display: flex; align-items: center; justify-content: center; gap: 12px;
	max-width: 1200px; margin: 6px auto 0;
	font-family: var(--zp-sans);
}
.zp-slider-nav button {
	-webkit-appearance: none; appearance: none;
	display: inline-flex; align-items: center; justify-content: center;
	margin: 0; padding: 0; cursor: pointer;
	background: transparent; color: var(--zp-caramel);
	border: 2px solid var(--zp-caramel); border-radius: 50%;
	width: 48px; height: 48px; min-height: 0;
	transition: background-color .2s, color .2s;
	box-shadow: none; line-height: 1;
}
.zp-slider-nav button:hover, .zp-slider-nav button:focus-visible { background: var(--zp-caramel); color: #fff; }
.zp-slider-nav button:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 3px; }
.zp-slider-nav button[disabled] { opacity: .35; cursor: default; background: transparent; color: var(--zp-caramel); }
.zp-slider-nav svg { width: 20px; height: 20px; fill: currentColor; }
.zp-slider-nav .zp-slider-pause { width: 40px; height: 40px; border-width: 0; background: var(--zp-sand); color: var(--zp-mocha); }
.zp-slider-nav .zp-slider-pause svg { width: 16px; height: 16px; }
.zp-slider-dots { display: flex; align-items: center; gap: 2px; margin: 0 4px; }
.zp-slider-nav .zp-slider-dot { width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; }
.zp-slider-nav .zp-slider-dot::before {
	content: ""; display: block; width: 9px; height: 9px; border-radius: 50%;
	background: var(--zp-latte); transition: background-color .2s, transform .2s;
}
.zp-slider-nav .zp-slider-dot:hover, .zp-slider-nav .zp-slider-dot:focus-visible { background: transparent; }
.zp-slider-nav .zp-slider-dot[aria-current="true"]::before { background: var(--zp-caramel); transform: scale(1.3); }
@media (max-width: 479px) { .zp-slider-nav .zp-slider-prev, .zp-slider-nav .zp-slider-next { width: 44px; height: 44px; } }

/* ---------- Intro, tekstkaarten, tip, citaat (Over ons / Egmond) ---------- */

.zp-intro > .elementor-container, .zp-note-sec > .elementor-container, .zp-tip-sec > .elementor-container { justify-content: center; }
.zp-intro > .elementor-container > .elementor-column,
.zp-note-sec > .elementor-container > .elementor-column,
.zp-tip-sec > .elementor-container > .elementor-column { width: 100% !important; max-width: 760px; }
.zp-intro .elementor-widget-text-editor { font-size: 18px; }
.elementor-section.zp-intro { padding-bottom: 32px; }
.elementor-section.zp-tiles-head { padding-bottom: 8px; }

.elementor-section.zp-tiles { padding-top: 24px; }
.zp-tiles > .elementor-container { flex-wrap: wrap; gap: 16px 0; }
.zp-tiles > .elementor-container > .elementor-column.zp-tile { width: 100% !important; }
@media (min-width: 640px)  { .zp-tiles > .elementor-container > .elementor-column.zp-tile { width: 50% !important; } }
@media (min-width: 1025px) { .zp-tiles > .elementor-container > .elementor-column.zp-tile { width: 33.333% !important; } }
.zp-tile > .elementor-widget-wrap {
	background: #fff; border-radius: var(--zp-radius); padding: 24px !important;
	height: 100%; align-content: flex-start; box-shadow: var(--zp-shadow);
}
@media (min-width: 640px) { .zp-tile > .elementor-widget-wrap { margin: 0 10px; } }
.zp-bg-white .zp-tile > .elementor-widget-wrap { background: var(--zp-foam); box-shadow: none; }
.zp-tile .elementor-widget { margin-bottom: 8px; }
.zp-tile .elementor-widget:last-child { margin-bottom: 0; }
.zp-tile .elementor-widget-text-editor { font-size: 16px; color: var(--zp-muted); }
.zp-sec .zp-tile-label .elementor-heading-title {
	font-family: var(--zp-sans) !important; font-size: 13px !important; font-weight: 700 !important;
	letter-spacing: .08em; text-transform: uppercase; color: var(--zp-sea) !important;
}
.zp-tiles--events .zp-tile-label .elementor-heading-title {
	display: inline-block; padding: 6px 12px; border-radius: 999px;
	background: var(--zp-sand); color: var(--zp-mocha) !important; letter-spacing: .04em;
}

.elementor-section.zp-tip-sec { padding-top: 8px; }
.zp-tip > .elementor-widget-wrap {
	background: var(--zp-espresso); border-radius: var(--zp-radius); padding: 24px 26px !important;
}
.zp-sec .zp-tip .elementor-heading-title { color: var(--zp-latte); }
.zp-sec .zp-tip .elementor-widget-text-editor { color: var(--zp-foam); font-size: 17px; }
.elementor-section.zp-note-sec { padding-top: 16px; }
.zp-note-sec .zp-note { text-align: left; }

.zp-timeline .zp-card-img img { aspect-ratio: 4 / 3; filter: sepia(.15); }

.elementor-section.zp-banner--quote { padding-top: calc(var(--zp-pad-y) * 1.7); padding-bottom: calc(var(--zp-pad-y) * 1.7); }
.zp-sec .zp-pullquote .elementor-heading-title {
	font-family: var(--zp-serif) !important; font-weight: 500 !important;
	font-size: clamp(1.6rem, 5vw, 2.6rem) !important; line-height: 1.25 !important;
	color: #fff !important; text-wrap: balance;
}
.zp-sec .zp-pullquote .elementor-heading-title::before {
	content: "“"; display: block; font-size: 3.2em; line-height: .6; color: var(--zp-latte); margin-bottom: 6px;
}
.zp-banner--quote .elementor-widget-text-editor { color: var(--zp-latte) !important; font-size: 17px; }

.elementor-section.zp-values { padding-top: 24px; }
.zp-values > .elementor-container { flex-wrap: wrap; gap: 16px 0; }
.zp-values > .elementor-container > .elementor-column { width: 100% !important; }
@media (min-width: 768px) { .zp-values > .elementor-container > .elementor-column { width: 50% !important; } }
.zp-value > .elementor-widget-wrap { background: #fff; border-radius: var(--zp-radius); padding: 28px !important; height: 100%; box-shadow: var(--zp-shadow); }
@media (min-width: 768px) { .zp-value > .elementor-widget-wrap { margin: 0 10px; } }
.zp-value .zp-usp .elementor-icon-box-wrapper { padding: 0; }
.zp-value .zp-usp .elementor-icon-box-title { font-size: 22px !important; margin-bottom: 10px !important; }
.zp-value .zp-usp .elementor-icon-box-description { font-size: 16px !important; line-height: 1.7 !important; color: var(--zp-text) !important; }

/* ---------- Kopbalk met menu (Instellingen → Zeldenpas → Kopbalk) -------- */

/* Kopbalk van het thema verbergen zolang de Zelden Pas-kopbalk aan staat */
body.zp-own-header #masthead,
body.zp-own-header #site-header,
body.zp-own-header .site-header,
body.zp-own-header header.wp-block-template-part,
body.zp-own-header .ast-mobile-header-wrap,
body.zp-own-header #header.ct-header,
body.zp-own-header header.ct-header { display: none !important; }
body.zp-own-header .zp-lang-widget { display: none !important; }
body.zp-own-header .elementor-section.zp-hero { padding-top: 56px; }
html { scroll-padding-top: 90px; }

.zp-header, .zp-header * { box-sizing: border-box; }
.zp-header {
	position: sticky; top: 0; z-index: 9980;
	background: rgba(248, 243, 236, .96);
	-webkit-backdrop-filter: saturate(1.2) blur(10px); backdrop-filter: saturate(1.2) blur(10px);
	border-bottom: 1px solid var(--zp-line);
	font-family: var(--zp-sans);
	color: var(--zp-espresso);
}
body.admin-bar .zp-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .zp-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .zp-header { top: 0; } }
.zp-header-inner {
	max-width: 1248px; margin: 0 auto; height: 64px;
	padding: 0 max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px));
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
@media (min-width: 1025px) { .zp-header-inner { height: 76px; padding: 0 24px; } }

.zp-brand { display: inline-flex; flex-direction: column; justify-content: center; text-decoration: none; color: var(--zp-espresso); line-height: 1; min-height: 44px; }
.zp-brand:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 4px; border-radius: 6px; }
.zp-brand-name { font-family: var(--zp-serif); font-weight: 600; font-size: 23px; letter-spacing: -.01em; }
.zp-brand-sub { font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--zp-sea); margin-top: 4px; }
.zp-brand-logo { display: block; height: 44px; width: auto; max-width: 60vw; }
@media (min-width: 1025px) { .zp-brand-logo { height: 54px; } }

/* Menuknop (mobiel) */
.zp-burger {
	-webkit-appearance: none; appearance: none; margin: 0; cursor: pointer;
	display: inline-flex; align-items: center; gap: 10px;
	min-height: 44px; padding: 0 16px 0 14px; border-radius: 999px;
	background: var(--zp-espresso); color: #fff; border: 0;
	font: 700 15px/1 var(--zp-sans); box-shadow: none;
}
.zp-burger:hover, .zp-burger:focus { background: var(--zp-espresso); color: #fff; }
.zp-burger:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 3px; }
.zp-burger-lines { display: inline-flex; flex-direction: column; gap: 4px; width: 18px; }
.zp-burger-lines span { display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s, opacity .2s; }
.zp-header.is-open .zp-burger-lines span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.zp-header.is-open .zp-burger-lines span:nth-child(2) { opacity: 0; }
.zp-header.is-open .zp-burger-lines span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.zp-menu, .zp-sub { list-style: none; margin: 0; padding: 0; }
.zp-menu-link {
	-webkit-appearance: none; appearance: none; margin: 0; cursor: pointer;
	display: inline-flex; align-items: center; gap: 6px;
	font: 700 16px/1.2 var(--zp-sans); color: var(--zp-espresso);
	text-decoration: none; background: transparent; border: 0; box-shadow: none;
}
.zp-menu-link:hover, .zp-menu-link:focus { color: var(--zp-caramel); background: transparent; }
.zp-menu-link:focus-visible, .zp-sub a:focus-visible { outline: 3px solid var(--zp-sea); outline-offset: 2px; }
.zp-chevron { transition: transform .2s; flex: 0 0 auto; }
.zp-menu-item.is-open > .zp-sub-toggle .zp-chevron { transform: rotate(180deg); }
.zp-sub a { display: block; text-decoration: none; color: var(--zp-espresso); border-radius: 12px; padding: 11px 14px; }
.zp-sub a:hover, .zp-sub a:focus-visible { background: var(--zp-foam); color: var(--zp-espresso); }
.zp-sub-title { display: block; font-weight: 700; font-size: 16px; }
.zp-sub-meta { display: block; font-size: 13.5px; color: var(--zp-muted); margin-top: 2px; font-weight: 400; }
.zp-sub-item.is-current a { background: var(--zp-sand); }
.zp-sub-all a { color: var(--zp-caramel); font-weight: 700; font-size: 15px; }
.zp-lang--header { background: var(--zp-sand); -webkit-backdrop-filter: none; backdrop-filter: none; }
.zp-lang--header a { color: var(--zp-espresso); }
.zp-lang--header a.is-current { background: var(--zp-espresso); color: #fff; }
.zp-lang--header a:focus-visible { outline-color: var(--zp-sea); }

/* Mobiel en tablet: uitklappanel */
@media (max-width: 1024px) {
	.zp-nav {
		display: none;
		position: fixed; left: 0; right: 0; bottom: 0; top: var(--zp-nav-top, 64px);
		background: var(--zp-foam); overflow-y: auto; overscroll-behavior: contain;
		padding: 8px max(16px, env(safe-area-inset-right, 0px)) calc(32px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
		border-top: 1px solid var(--zp-line);
	}
	.zp-header.is-open .zp-nav { display: flex; flex-direction: column; }
	.zp-menu-item { border-bottom: 1px solid var(--zp-line); }
	.zp-menu-item > .zp-menu-link { width: 100%; justify-content: space-between; min-height: 60px; font-family: var(--zp-serif); font-weight: 600; font-size: 22px; padding: 8px 4px; text-align: left; }
	.zp-sub { display: none; padding: 0 0 12px; }
	.zp-menu-item.is-open > .zp-sub { display: block; }
	.zp-menu-cta { border-bottom: 0; margin-top: 20px; }
	.zp-menu-cta > .zp-menu-link { justify-content: center; background: var(--zp-caramel); color: #fff; border-radius: 999px; font-family: var(--zp-sans); font-weight: 700; font-size: 17px; min-height: 56px; }
	.zp-menu-cta > .zp-menu-link:hover, .zp-menu-cta > .zp-menu-link:focus { color: #fff; background: var(--zp-caramel-dark); }
	.zp-header-lang { margin-top: 24px; display: flex; justify-content: center; }
	body.zp-nav-open { overflow: hidden; }
}

/* Desktop: menu naast elkaar, dropdown onder Appartementen */
@media (min-width: 1025px) {
	.zp-burger { display: none; }
	.zp-nav { display: flex; align-items: center; gap: 18px; }
	.zp-menu { display: flex; align-items: center; gap: 2px; }
	.zp-menu-item { position: relative; }
	.zp-menu-item > .zp-menu-link { padding: 10px 14px; min-height: 44px; border-radius: 999px; font-size: 15.5px; }
	.zp-menu-item > .zp-menu-link:hover, .zp-menu-item.is-open > .zp-menu-link { background: var(--zp-sand); color: var(--zp-espresso); }
	.zp-menu-item.is-current > .zp-menu-link { color: var(--zp-caramel); }
	.zp-menu-cta { margin-left: 8px; }
	.zp-menu-cta > .zp-menu-link { background: var(--zp-caramel); color: #fff !important; padding: 10px 20px; }
	.zp-menu-cta > .zp-menu-link:hover { background: var(--zp-caramel-dark) !important; color: #fff; }
	.zp-sub {
		position: absolute; top: calc(100% + 10px); left: -8px; min-width: 320px;
		background: #fff; border-radius: 18px; padding: 8px;
		box-shadow: 0 2px 6px rgba(59,42,33,.06), 0 18px 40px rgba(59,42,33,.16);
		opacity: 0; visibility: hidden; transform: translateY(6px);
		transition: opacity .18s, transform .18s, visibility .18s;
	}
	.zp-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
	.zp-menu-item.has-sub:hover > .zp-sub,
	.zp-menu-item.has-sub:focus-within > .zp-sub,
	.zp-menu-item.is-open > .zp-sub { opacity: 1; visibility: visible; transform: none; }
	.zp-menu-item.has-sub:hover > .zp-sub-toggle .zp-chevron { transform: rotate(180deg); }
	.zp-sub-all { border-top: 1px solid var(--zp-line); margin-top: 6px; padding-top: 6px; }
}
@media (prefers-reduced-motion: reduce) { .zp-sub, .zp-chevron, .zp-burger-lines span { transition: none; } }
@media (max-width: 1024px) {
	/* Blur maakt van de kopbalk het referentiepunt voor het vaste paneel; uit zolang het menu open is. */
	.zp-header.is-open { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--zp-foam); }
	body.zp-nav-open .zp-bar { display: none; }
}

/* ---------- Tijdlijn Over ons: Toen → Later → Nu ------------------------- */

.elementor-section.zp-timeline { padding-top: 28px; }
.zp-timeline > .elementor-container { flex-wrap: wrap; gap: 28px 0; }
.zp-timeline > .elementor-container > .elementor-column.zp-tl-step { width: 100% !important; position: relative; }
@media (min-width: 768px) { .zp-timeline > .elementor-container > .elementor-column.zp-tl-step { width: 33.333% !important; } }
.zp-slider-on > .elementor-container > .elementor-column.zp-tl-step { width: 84% !important; flex: 0 0 84%; scroll-snap-align: start; }
@media (min-width: 640px) { .zp-slider-on > .elementor-container > .elementor-column.zp-tl-step { width: 46% !important; flex-basis: 46%; } }
@media (min-width: 1025px) { .zp-slider-on > .elementor-container > .elementor-column.zp-tl-step { width: 33.333% !important; flex-basis: 33.333%; } }

/* De doorlopende lijn met een stip per periode */
.zp-tl-step::before {
	content: ""; position: absolute; z-index: 0;
	top: 17px; left: 0; right: 0; height: 2px;
	background: repeating-linear-gradient(90deg, var(--zp-latte) 0 10px, transparent 10px 16px);
}
.zp-tl-step:first-child::before { left: 18px; }
.zp-tl-step:last-child::before { right: auto; width: 18px; }
.zp-tl-step > .elementor-widget-wrap { background: transparent; padding: 0 18px 0 0 !important; position: relative; z-index: 1; align-content: flex-start; }
.zp-tl-step .elementor-widget { margin-bottom: 14px; }
.zp-sec .zp-tl-label .elementor-heading-title {
	display: inline-flex !important; align-items: center; gap: 12px;
	font-family: var(--zp-sans) !important; font-size: 13px !important; font-weight: 700 !important;
	letter-spacing: .14em; text-transform: uppercase; color: var(--zp-caramel) !important;
	background: var(--zp-foam); padding-right: 12px;
}
.zp-sec .zp-tl-label .elementor-heading-title::before {
	content: ""; width: 14px; height: 14px; border-radius: 50%; flex: 0 0 14px;
	background: var(--zp-foam); border: 3px solid var(--zp-caramel);
	box-shadow: 0 0 0 5px var(--zp-foam);
}
.zp-tl-step:last-child .zp-tl-label .elementor-heading-title { color: var(--zp-sea) !important; }
.zp-tl-step:last-child .zp-tl-label .elementor-heading-title::before { background: var(--zp-sea); border-color: var(--zp-sea); }
.zp-tl-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: var(--zp-radius); box-shadow: var(--zp-shadow); }
.zp-tl-step:not(:last-child) .zp-tl-img img { filter: sepia(.3) saturate(.85); }
.zp-tl-title .elementor-heading-title { font-size: 22px !important; }
.zp-tl-text { color: var(--zp-muted) !important; font-size: 16px !important; }
.zp-slider-nav[hidden] { display: none !important; }
