/* ==========================================================================
   Zonnehemel Friesland – vormgeving (ZHF Core)
   Kleuren en lettertypes staan ook als globals in de Elementor Kit; deze
   variabelen zijn voor de elementen die via shortcodes of WooCommerce komen.
   ========================================================================== */

:root {
	--zhf-dark: #2A1730;
	--zhf-ink: #1D1320;
	--zhf-night: #150C18;
	--zhf-accent: #0FA793;      /* turquoise uit het logo: lijnen, iconen, accenten */
	--zhf-accent-dark: #0B7E6F; /* donkerder turquoise: knoppen en tekstlinks (leesbaar) */
	--zhf-accent-soft: #E3F4F1;
	--zhf-gold: #F2B544;
	--zhf-muted: #6E5A70;
	--zhf-surface: #F5F2F6;
	--zhf-line: #E6E0E8;
	--zhf-line-strong: #D9D0DC;
	--zhf-on-dark: #D8CCDA;
	--zhf-on-night: #CFC3D2;
	--zhf-radius: 6px;
	--zhf-radius-sm: 4px;
	--zhf-font-head: "Sora", system-ui, sans-serif;
	--zhf-font-body: "Figtree", system-ui, sans-serif;
	--zhf-gutter: 64px;
}

@media (max-width: 1024px) { :root { --zhf-gutter: 32px; } }
@media (max-width: 767px)  { :root { --zhf-gutter: 20px; } }

/* ---------- Maximale contentbreedte ----------
   Achtergronden lopen over de volle breedte; de inhoud wordt maximaal
   --zhf-max breed en gecentreerd (belangrijk op brede en ultrawide schermen). */
:root {
	--zhf-max: 1312px;
	--zhf-pad-x: max(var(--zhf-gutter), calc((100vw - var(--zhf-max)) / 2));
}
.elementor > .e-con.e-parent:not(.zhf-hero):not(.zhf-site-header):not(:has(.zhf-section)),
.zhf-topbar-wrap,
.zhf-mainbar,
.zhf-mega__grid,
.zhf-mega__bar {
	padding-left: var(--zhf-pad-x) !important;
	padding-right: var(--zhf-pad-x) !important;
}
/* Elementor stuurt breedte en flex van containers aan via CSS-variabelen
   (--width, --flex-grow, …) met hoge specificiteit; daarom hier variabelen + !important. */
@media (min-width: 1025px) {
	.zhf-hero__panel {
		padding-left: var(--zhf-pad-x) !important;
		--width: max(44.5%, calc(var(--zhf-pad-x) + 620px)) !important;
		--flex-shrink: 0 !important;
	}
	.zhf-hero__media {
		--width: auto !important;
		--flex-grow: 1 !important;
		--flex-basis: 0 !important;
	}
}

body {
	font-family: var(--zhf-font-body);
	color: var(--zhf-ink);
	-webkit-font-smoothing: antialiased;
}

/* ---------- Typografie ---------- */
.zhf-h1, .zhf-h1 .elementor-heading-title,
.zhf-h2, .zhf-h2 .elementor-heading-title,
.zhf-h3, .zhf-h3 .elementor-heading-title {
	font-family: var(--zhf-font-head);
	font-weight: 600;
	color: var(--zhf-ink);
	margin: 0;
}
.zhf-h1, .zhf-h1 .elementor-heading-title { font-size: clamp(34px, 4vw, 52px); line-height: 1.08; letter-spacing: -1.4px; }
.zhf-h1--hero .elementor-heading-title { font-size: clamp(34px, 4.1vw, 58px); color: #fff; letter-spacing: -1.8px; line-height: 1.06; }
.zhf-h2, .zhf-h2 .elementor-heading-title { font-size: clamp(26px, 2.8vw, 40px); line-height: 1.12; letter-spacing: -1.2px; }
.zhf-h3, .zhf-h3 .elementor-heading-title { font-size: 20px; line-height: 1.25; letter-spacing: -0.3px; }
.zhf-on-dark-title .elementor-heading-title { color: #fff; }

.zhf-text p:last-child { margin-bottom: 0; }
.zhf-lead, .zhf-lead p { font-size: 17px; line-height: 1.65; color: var(--zhf-muted); }
.zhf-on-dark, .zhf-on-dark p { color: var(--zhf-on-dark); }
.zhf-muted, .zhf-muted p { color: var(--zhf-muted); }
.zhf-accent-text { color: var(--zhf-accent-dark); }
.zhf-gold-text { color: var(--zhf-gold); font-weight: 600; }

.zhf-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--zhf-accent-dark);
}
.zhf-eyebrow::before {
	content: "";
	width: 28px;
	height: 2px;
	background: var(--zhf-accent);
}
.zhf-eyebrow--gold { color: var(--zhf-gold); }
.zhf-eyebrow--gold::before { background: var(--zhf-gold); }

.zhf-underline {
	font-weight: 600;
	color: var(--zhf-ink);
	text-decoration: none;
	border-bottom: 2px solid var(--zhf-accent);
	padding-bottom: 2px;
}
.zhf-arrowlink { font-weight: 700; color: var(--zhf-ink); }
.zhf-arrowlink::after { content: " →"; }
.zhf-stars { color: var(--zhf-gold); letter-spacing: 1px; }
.zhf-icon { flex-shrink: 0; }

.zhf-tag {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1;
	color: var(--zhf-accent-dark);
	background: var(--zhf-accent-soft);
	padding: 4px 8px;
	border-radius: 3px;
	margin-left: 6px;
	vertical-align: middle;
}

/* ---------- Secties ---------- */
.zhf-surface { background: var(--zhf-surface); }
.zhf-dark { background: var(--zhf-dark); }
.zhf-section { padding: 80px var(--zhf-pad-x); display: flex; flex-direction: column; gap: 32px; }
.zhf-section--surface { background: var(--zhf-surface); }
.zhf-section__head { display: flex; flex-direction: column; gap: 10px; }

/* ---------- Knoppen ---------- */
.zhf-btn,
.zhf-ebtn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 24px;
	border-radius: var(--zhf-radius-sm);
	font-family: var(--zhf-font-body);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	border: 1.5px solid transparent;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.zhf-btn--sm { min-height: 44px; padding: 0 18px; font-size: 15px; }
.zhf-btn--accent, .zhf-ebtn--accent .elementor-button { background: var(--zhf-accent-dark); color: #fff; }
.zhf-btn--accent:hover, .zhf-ebtn--accent .elementor-button:hover { background: var(--zhf-dark); color: #fff; }
.zhf-ebtn--dark .elementor-button { background: var(--zhf-dark); color: #fff; }
.zhf-ebtn--dark .elementor-button:hover { background: var(--zhf-accent-dark); color: #fff; }
.zhf-btn--outline, .zhf-ebtn--outline .elementor-button { background: transparent; color: var(--zhf-dark); border-color: var(--zhf-dark); }
.zhf-btn--outline:hover, .zhf-ebtn--outline .elementor-button:hover { background: var(--zhf-dark); color: #fff; }
.zhf-btn--outline-light, .zhf-ebtn--outline-light .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.zhf-btn--outline-light:hover, .zhf-ebtn--outline-light .elementor-button:hover { background: #fff; color: var(--zhf-dark); }
.zhf-btnrow { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Header: topbalk ---------- */
.zhf-topbar-wrap { background: var(--zhf-dark); }
.zhf-topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 38px;
	font-size: 13px;
	color: #EFE7F0;
}
.zhf-topbar ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 36px; }
.zhf-topbar li { display: inline-flex; align-items: center; gap: 8px; }
.zhf-topbar .zhf-icon { color: var(--zhf-gold); }
.zhf-topbar__meta { display: flex; gap: 28px; align-items: center; }
.zhf-topbar a { color: #EFE7F0; text-decoration: none; }
.zhf-topbar a:hover { color: #fff; text-decoration: underline; }

/* ---------- Header: hoofdbalk ---------- */
.zhf-mainbar { background: #fff; border-bottom: 1px solid var(--zhf-line); position: relative; z-index: 50; }
.zhf-logo img { height: 68px; width: auto; display: block; }
@media (max-width: 767px) { .zhf-logo img { height: 44px; } }
.zhf-mainbar > .e-con-inner, .zhf-mainbar { align-items: center; }

/* Mega menu (Elementor Pro "Mega Menu"-widget) */
.zhf-nav .e-n-menu-title { font-family: var(--zhf-font-body); }
.zhf-nav .e-n-menu-title-text,
.zhf-nav .e-n-menu-title-container { font-size: 15.5px; font-weight: 600; color: var(--zhf-ink); }
.zhf-nav .e-n-menu-title:hover .e-n-menu-title-text,
.zhf-nav .e-n-menu-title.e-current .e-n-menu-title-text { color: var(--zhf-accent-dark); }
.zhf-nav .e-n-menu-title { border-bottom: 3px solid transparent; }
.zhf-nav .e-n-menu-title:hover,
.zhf-nav .e-n-menu-title[aria-expanded="true"],
.zhf-nav .e-n-menu-title.e-current { border-bottom-color: var(--zhf-accent); }
.zhf-nav .e-n-menu-content { box-shadow: 0 24px 48px rgba(21,12,24,.16); }
/* Menu-items even hoog als de headerbalk, zodat het uitklappaneel pas onder
   de balk begint (en niet over het logo valt). */
@media (min-width: 1025px) {
	.zhf-mainbar .zhf-nav { flex: 1 1 auto !important; min-width: 0; }
	.zhf-nav .e-n-menu-heading { flex-wrap: nowrap !important; justify-content: flex-start; column-gap: 0 !important; }
	.zhf-nav .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title {
		min-height: 100px;
		box-sizing: border-box;
		padding: 0 13px !important;
		white-space: nowrap;
	}
}
@media (min-width: 1025px) and (max-width: 1280px) {
	.zhf-nav .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title { padding: 0 9px !important; }
	.zhf-nav .e-n-menu-title-text { font-size: 14.5px !important; }
	.zhf-logo img { height: 56px; }
}

.zhf-mega { background: #fff; border-top: 3px solid var(--zhf-accent); }
.zhf-mega__grid { grid-template-columns: 1fr 1fr 1fr 420px; }
@media (max-width: 1200px) { .zhf-mega__grid { grid-template-columns: 1fr 1fr 1fr; } .zhf-mega__tile { display: none !important; } }
.zhf-mega__title .elementor-heading-title {
	font-family: var(--zhf-font-head);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--zhf-muted);
	padding-bottom: 12px;
	border-bottom: 1px solid var(--zhf-line);
}
.zhf-mega__list { list-style: none; margin: 4px 0 0; padding: 0; }
.zhf-mega__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 40px;
	font-size: 15.5px;
	font-weight: 500;
	color: var(--zhf-ink);
	text-decoration: none;
}
.zhf-mega__list a:hover { color: var(--zhf-accent-dark); }
.zhf-mega__tile { border-radius: var(--zhf-radius); overflow: hidden; text-decoration: none; }
.zhf-mega__tile-card {
	background: #fff;
	border-radius: var(--zhf-radius-sm);
	padding: 18px 20px;
	box-shadow: 0 8px 24px rgba(21,12,24,.12);
}
.zhf-mega__tile-card .elementor-widget-container { display: flex; flex-direction: column; gap: 6px; }
.zhf-mega__tile-eyebrow { display: block; font-size: 12px; font-weight: 700; letter-spacing: 1.2px; color: var(--zhf-accent-dark); }
.zhf-mega__tile-title { display: block; font-family: var(--zhf-font-head); font-size: 19px; font-weight: 600; line-height: 1.25; color: var(--zhf-ink); margin: 4px 0; }
.zhf-mega__tile-sub { display: flex; justify-content: space-between; font-size: 14.5px; color: var(--zhf-muted); }
.zhf-mega__tile-cta { font-weight: 700; color: var(--zhf-accent-dark); }
.zhf-mega__bar { background: var(--zhf-surface); font-size: 15px; }
.zhf-mega__bar a { color: var(--zhf-ink); text-decoration: none; }

/* Header-acties: zoeken, account, winkelwagen */
.zhf-hactions { display: flex; align-items: center; gap: 6px; }
.zhf-hactions__search { width: 220px; }
.zhf-hactions-wrap { flex-shrink: 0; }
@media (max-width: 1280px) { .zhf-hactions__search { width: 180px; } }
.zhf-hactions__search input[type="search"],
.zhf-hactions__search .dgwt-wcas-search-input {
	height: 44px;
	border: 1px solid var(--zhf-line-strong) !important;
	border-radius: var(--zhf-radius-sm) !important;
	font-size: 14px;
}
.zhf-hactions__icon {
	position: relative;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--zhf-ink);
}
.zhf-hactions__icon:hover { color: var(--zhf-accent-dark); }
.zhf-cart-count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	border-radius: 9px;
	background: var(--zhf-accent-dark);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
}
.zhf-cart-count[data-count="0"] { display: none; }
@media (max-width: 1024px) { .zhf-hactions__search { display: none; } }

/* ---------- Homepage ---------- */
.zhf-hero__media { position: relative; }
.zhf-badge {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	background: var(--zhf-gold);
	color: var(--zhf-dark);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.zhf-badge__value { font-family: var(--zhf-font-head); font-size: 44px; font-weight: 700; line-height: 1; }
.zhf-badge__meta { font-size: 12.5px; font-weight: 600; line-height: 1.3; margin-top: 4px; }
@media (max-width: 767px) {
	.zhf-badge { width: 92px; height: 92px; }
	.zhf-badge__value { font-size: 28px; }
	.zhf-badge__meta { font-size: 10.5px; }
}

.zhf-uspbar { border-bottom: 1px solid var(--zhf-line); }
.zhf-usps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px 24px;
}
.zhf-usps__item { display: flex; align-items: center; gap: 14px; font-size: 14.5px; line-height: 1.35; }
.zhf-usps__item .zhf-icon { color: var(--zhf-accent); }
@media (max-width: 1024px) { .zhf-usps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.zhf-cattile { border-radius: var(--zhf-radius); overflow: hidden; text-decoration: none; transition: transform .2s ease; }
.zhf-cattile:hover { transform: translateY(-2px); }
.zhf-cattile__card { background: #fff; border-radius: var(--zhf-radius-sm); padding: 20px; }
.zhf-cattile__title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--zhf-font-head);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.4px;
	color: var(--zhf-ink);
}
.zhf-cattile__title .zhf-icon { color: var(--zhf-accent); }
.zhf-cattile__text { display: block; margin-top: 6px; font-size: 14.5px; line-height: 1.5; color: var(--zhf-muted); }

.zhf-quicklinks { display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 15px; }
.zhf-quicklinks a {
	font-weight: 600;
	color: var(--zhf-ink);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: var(--zhf-line-strong);
}
.zhf-quicklinks a:hover { text-decoration-color: var(--zhf-accent); }

.zhf-split__media { border-radius: var(--zhf-radius); overflow: hidden; }

.zhf-check { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 16px; }
.zhf-check li { position: relative; padding-left: 28px; }
.zhf-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 16px;
	height: 9px;
	border-left: 2.2px solid var(--zhf-accent);
	border-bottom: 2.2px solid var(--zhf-accent);
	transform: rotate(-45deg);
}

.zhf-darkcard {
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.16);
	border-radius: var(--zhf-radius);
	text-decoration: none;
	transition: background-color .15s ease;
}
.zhf-darkcard:hover { background: rgba(255,255,255,.12); }

.zhf-score { display: flex; align-items: center; gap: 16px; }
.zhf-score__value { font-family: var(--zhf-font-head); font-size: 72px; font-weight: 700; line-height: 1; letter-spacing: -2px; color: var(--zhf-accent-dark); }
.zhf-score__meta { font-size: 15px; line-height: 1.45; color: var(--zhf-muted); }

.zhf-infocard {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	background: #fff;
	border-radius: var(--zhf-radius);
	padding: 22px;
	font-size: 15px;
	line-height: 1.55;
}
@media (max-width: 767px) { .zhf-infocard { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.zhf-footer { background: var(--zhf-night); color: var(--zhf-on-night); }
.zhf-footer a { color: var(--zhf-on-night); text-decoration: none; }
.zhf-footer a:hover { color: #fff; }
.zhf-footer__top { padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.12); }
.zhf-footer__nl-title .elementor-heading-title { font-family: var(--zhf-font-head); font-size: 28px; font-weight: 600; color: #fff; letter-spacing: -0.6px; }
.zhf-footer__brand .elementor-heading-title { font-family: var(--zhf-font-head); font-size: 18px; font-weight: 700; letter-spacing: .4px; color: #fff; }
.zhf-footer__title .elementor-heading-title { font-size: 15px; font-weight: 700; color: #fff; }
.zhf-footer__cols { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
@media (max-width: 1024px) { .zhf-footer__cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .zhf-footer__cols { grid-template-columns: 1fr; } }
.zhf-footer__list { list-style: none; margin: 0; padding: 0; line-height: 2; font-size: 15px; }
.zhf-footer__bottom { padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; }
.zhf-paylogos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.zhf-paylogos li { height: 30px; padding: 0 12px; border-radius: 3px; background: rgba(255,255,255,.1); display: flex; align-items: center; }
.zhf-footer__nl-form input[type="email"], .zhf-footer__nl-form input[type="text"] {
	height: 52px;
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255,255,255,.22);
	border-radius: var(--zhf-radius-sm);
	padding: 0 16px;
}

/* ---------- Productkaarten (WooCommerce-lijsten) ---------- */
.woocommerce ul.products, .zhf-products-wrap ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
@media (max-width: 1024px) { .woocommerce ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px)  { .woocommerce ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: 1fr; } }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	background: #fff;
	border: 1px solid var(--zhf-line);
	border-radius: var(--zhf-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	padding: 0 0 20px;
	position: relative;
}
.zhf-surface .woocommerce ul.products li.product { border-color: transparent; }
.woocommerce ul.products li.product a img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	padding: 20px;
	margin: 0 0 16px;
	border-bottom: 1px solid var(--zhf-line);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--zhf-font-head);
	font-size: 17px !important;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.2px;
	color: var(--zhf-ink);
	padding: 0 20px !important;
	min-height: 44px;
}
.woocommerce ul.products li.product .star-rating { margin: 6px 20px; color: var(--zhf-gold); }
.woocommerce ul.products li.product .price {
	font-family: var(--zhf-font-head);
	font-size: 22px !important;
	font-weight: 700;
	color: var(--zhf-accent-dark) !important;
	padding: 6px 20px 0;
	margin-top: auto;
}
.woocommerce ul.products li.product .price del { font-family: var(--zhf-font-body); font-size: 15px; font-weight: 400; color: var(--zhf-muted); opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button {
	margin: 14px 20px 0 !important;
	min-height: 48px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: #fff !important;
	color: var(--zhf-dark) !important;
	border: 1.5px solid var(--zhf-dark) !important;
	border-radius: var(--zhf-radius-sm) !important;
	font-weight: 700;
}
.woocommerce ul.products li.product .button:hover { background: var(--zhf-dark) !important; color: #fff !important; }
.woocommerce span.onsale {
	position: absolute;
	top: 0 !important;
	left: 0 !important;
	right: auto !important;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	margin: 0 !important;
	padding: 9px 12px;
	border-radius: 0 0 var(--zhf-radius) 0;
	background: var(--zhf-accent-dark);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
}

/* ---------- Categoriepagina ---------- */
.zhf-archive-head { display: grid; grid-template-columns: 1fr 400px; gap: 64px; align-items: end; }
@media (max-width: 1024px) { .zhf-archive-head { grid-template-columns: 1fr; gap: 24px; } }
.zhf-archive-head .woocommerce-breadcrumb, .zhf-crumbs .woocommerce-breadcrumb { font-size: 14px; color: var(--zhf-muted); margin: 0 0 14px; }
.zhf-archive-head .woocommerce-breadcrumb a, .zhf-crumbs .woocommerce-breadcrumb a { color: var(--zhf-muted); }
.zhf-archive-head__desc { font-size: 17px; line-height: 1.6; color: var(--zhf-muted); max-width: 720px; margin-top: 14px; }
.zhf-helpcard {
	border: 1px solid var(--zhf-line);
	border-radius: var(--zhf-radius);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: var(--zhf-muted);
}
.zhf-helpcard strong { color: var(--zhf-ink); font-size: 16px; }
.zhf-helpcard a { font-weight: 600; color: var(--zhf-accent-dark); }
.zhf-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.zhf-chip {
	height: 44px;
	padding: 0 18px;
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--zhf-line);
	border-radius: var(--zhf-radius-sm);
	background: #fff;
	color: var(--zhf-ink);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}
.zhf-chip:hover { border-color: var(--zhf-dark); }
.zhf-chip.is-active { background: var(--zhf-dark); border-color: var(--zhf-dark); color: #fff; }
.zhf-archive-products .woocommerce-result-count { color: var(--zhf-muted); }
.zhf-archive-products .woocommerce-ordering select {
	height: 44px;
	border: 1px solid var(--zhf-line-strong);
	border-radius: var(--zhf-radius-sm);
	padding: 0 14px;
}

/* ---------- Productpagina ---------- */
.zhf-pgallery .woocommerce-product-gallery__wrapper,
.zhf-pgallery .flex-viewport { border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); background: #fff; }
/* Thumbnails op één regel; meer dan 5 = horizontaal scrollen (pijlen via assets/js/zhf-gallery.js) */
.zhf-pgallery .flex-control-thumbs {
	--zhf-thumb-gap: 12px;
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: var(--zhf-thumb-gap);
	margin: 12px 0 0 !important;
	padding: 0 !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.zhf-pgallery .flex-control-thumbs::-webkit-scrollbar { display: none; }
.zhf-pgallery .flex-control-thumbs li {
	flex: 0 0 calc((100% - 4 * var(--zhf-thumb-gap)) / 5) !important;
	width: auto !important;
	margin: 0 !important;
	scroll-snap-align: start;
	float: none !important;
}
.zhf-pgallery .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; background: #fff; cursor: pointer; }
.zhf-thumbs { position: relative; }
.zhf-thumbs .zhf-thumbs__nav,
.zhf-thumbs button.zhf-thumbs__nav {
	position: absolute !important;
	top: 0 !important;
	bottom: 0 !important;
	z-index: 2;
	width: 44px !important;
	height: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	border: 0 !important;
	border-radius: 0 !important;
	background: rgba(42, 23, 48, .55) !important;
	color: #fff !important;
	box-shadow: none !important;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	line-height: 0 !important;
	cursor: pointer;
	transition: background-color .15s ease;
}
.zhf-thumbs button.zhf-thumbs__nav:hover,
.zhf-thumbs button.zhf-thumbs__nav:focus-visible { background: rgba(42, 23, 48, .85) !important; color: #fff !important; }
.zhf-thumbs button.zhf-thumbs__nav:focus-visible { outline: 2px solid var(--zhf-accent); outline-offset: 2px; }
.zhf-thumbs button.zhf-thumbs__nav[hidden] { display: none !important; }
.zhf-thumbs button.zhf-thumbs__nav--prev { left: 0 !important; right: auto !important; border-radius: var(--zhf-radius-sm) 0 0 var(--zhf-radius-sm) !important; }
.zhf-thumbs button.zhf-thumbs__nav--next { right: 0 !important; left: auto !important; border-radius: 0 var(--zhf-radius-sm) var(--zhf-radius-sm) 0 !important; }
@media (max-width: 767px) {
	.zhf-pgallery .flex-control-thumbs { --zhf-thumb-gap: 8px; }
	.zhf-thumbs button.zhf-thumbs__nav { width: 32px !important; }
	.zhf-thumbs button.zhf-thumbs__nav svg { width: 15px; height: 15px; }
}
.zhf-pgallery .flex-control-thumbs img { border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius-sm); opacity: 1 !important; }
.zhf-pgallery .flex-control-thumbs img.flex-active { border: 2px solid var(--zhf-dark); }

.zhf-ptitle .product_title, .zhf-ptitle .elementor-heading-title {
	font-family: var(--zhf-font-head);
	font-size: clamp(28px, 2.6vw, 38px);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -1px;
	margin: 0;
}
.zhf-prating .star-rating { color: var(--zhf-gold); }
.zhf-buybox { border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); }
.zhf-pprice .price { font-family: var(--zhf-font-head); font-size: 36px !important; font-weight: 700; color: var(--zhf-ink) !important; margin: 0; }
.zhf-pprice .price del { font-family: var(--zhf-font-body); font-size: 17px; font-weight: 400; color: var(--zhf-muted); }
.zhf-pprice .price ins { text-decoration: none; }
.zhf-pstock .stock { font-size: 14px; font-weight: 600; color: var(--zhf-accent-dark) !important; margin: 0; }
.zhf-pstock .stock.out-of-stock { color: #A1301C !important; }
.zhf-patc form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 !important; }
.zhf-patc .quantity .qty { height: 54px; width: 80px; border: 1px solid var(--zhf-line-strong); border-radius: var(--zhf-radius-sm); }
.zhf-patc .single_add_to_cart_button {
	flex: 1 1 200px;
	min-height: 54px;
	background: var(--zhf-accent-dark) !important;
	color: #fff !important;
	border-radius: var(--zhf-radius-sm) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
}
.zhf-patc .single_add_to_cart_button:hover { background: var(--zhf-dark) !important; }

.zhf-gift {
	display: flex;
	gap: 14px;
	align-items: center;
	background: #FBF3E1;
	border-radius: var(--zhf-radius);
	padding: 16px 18px;
	font-size: 14px;
	line-height: 1.5;
	color: #4A3410;
	margin-bottom: 4px;
}
.zhf-gift .zhf-icon { color: #8A5A10; }
.zhf-promises { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; font-size: 14px; }
.zhf-promises li { display: flex; gap: 8px; align-items: center; }
.zhf-promises .zhf-icon { color: var(--zhf-accent); }
.zhf-advice { border-top: 1px solid var(--zhf-line); padding-top: 18px; margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: var(--zhf-muted); }
.zhf-advice strong { color: var(--zhf-ink); }
.zhf-advice a { font-weight: 600; color: var(--zhf-accent-dark); }

/* Meescrollende productnavigatie */
.zhf-pnav-wrap {
	position: sticky;
	top: 0;
	z-index: 40;
	background: #fff;
	border-top: 1px solid var(--zhf-line);
	border-bottom: 1px solid var(--zhf-line);
	box-shadow: 0 6px 16px rgba(29,19,32,.05);
}
.admin-bar .zhf-pnav-wrap { top: 32px; }
.zhf-pnav { display: flex; justify-content: space-between; align-items: center; min-height: 68px; gap: 24px; }
.zhf-pnav__links { list-style: none; margin: 0; padding: 0; display: flex; gap: 36px; overflow-x: auto; scrollbar-width: none; }
.zhf-pnav__links a {
	display: flex;
	align-items: center;
	height: 68px;
	font-size: 15.5px;
	font-weight: 500;
	color: var(--zhf-muted);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	white-space: nowrap;
}
.zhf-pnav__links a:hover, .zhf-pnav__links a:focus-visible { color: var(--zhf-ink); border-bottom-color: var(--zhf-accent); }
.zhf-pnav__buy { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.zhf-pnav__name { font-size: 14px; color: var(--zhf-muted); }
.zhf-pnav__price { font-family: var(--zhf-font-head); font-size: 18px; font-weight: 700; }
.zhf-pnav__price del { font-size: 14px; font-weight: 400; color: var(--zhf-muted); }
@media (max-width: 1024px) { .zhf-pnav__buy { display: none; } .zhf-pnav__links { gap: 24px; } }
html { scroll-padding-top: 90px; }

.zhf-inshort { background: var(--zhf-surface); border-radius: var(--zhf-radius); align-self: flex-start; }
.zhf-pshort ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.zhf-pshort li { position: relative; padding-left: 28px; font-size: 15px; line-height: 1.45; }
.zhf-pshort li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 5px;
	width: 14px;
	height: 8px;
	border-left: 2.2px solid var(--zhf-accent-dark);
	border-bottom: 2.2px solid var(--zhf-accent-dark);
	transform: rotate(-45deg);
}
.zhf-pcontent { font-size: 17px; line-height: 1.7; color: #4D3F50; }

/* Features */
.zhf-features__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1024px) { .zhf-features__grid { grid-template-columns: 1fr; } }
.zhf-feature { background: #fff; border-radius: var(--zhf-radius); overflow: hidden; display: grid; grid-template-columns: 280px 1fr; }
@media (max-width: 767px) { .zhf-feature { grid-template-columns: 1fr; } }
.zhf-feature__media { background: var(--zhf-line); min-height: 250px; }
.zhf-feature__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zhf-feature__body { padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.zhf-feature__nr { font-size: 13px; font-weight: 700; color: var(--zhf-accent-dark); }
.zhf-feature__title { font-family: var(--zhf-font-head); font-size: 21px; font-weight: 600; letter-spacing: -0.4px; margin: 0; }
.zhf-feature__text { font-size: 15px; line-height: 1.65; color: #4D3F50; }
.zhf-feature__text p { margin: 0 0 8px; }

/* Specificaties */
.zhf-specs__table table.woocommerce-product-attributes, .zhf-specs__table table.shop_attributes {
	width: 100%;
	max-width: 900px;
	border: 0 !important;
	border-collapse: collapse;
	font-size: 15px;
}
.zhf-specs__table th, .zhf-specs__table td {
	border: 0 !important;
	border-bottom: 1px solid var(--zhf-line) !important;
	padding: 13px 0 !important;
	background: transparent !important;
	text-align: left;
	font-style: normal !important;
}
.zhf-specs__table th { width: 260px; font-weight: 400; color: var(--zhf-muted); }
.zhf-specs__table td p { margin: 0; }

/* Kaartjes (bezorging) */
.zhf-card { background: #fff; border-radius: var(--zhf-radius); padding: 26px; display: flex; flex-direction: column; gap: 10px; height: 100%; }
.zhf-card .zhf-icon { color: var(--zhf-accent-dark); }
.zhf-card h3 { font-family: var(--zhf-font-body); font-size: 17px; font-weight: 700; margin: 0; }
.zhf-card p { font-size: 15px; line-height: 1.55; color: var(--zhf-muted); margin: 0; }

/* Reviews */
.zhf-reviews #reviews .commentlist { padding: 0; }
.zhf-reviews .star-rating { color: var(--zhf-gold); }
.zhf-reviews #review_form #respond .form-submit input { background: var(--zhf-accent-dark); color: #fff; border-radius: var(--zhf-radius-sm); }

/* Gerelateerde producten */
.zhf-related > .elementor-widget-container > .related > h2,
.zhf-related .related.products > h2 { font-family: var(--zhf-font-head); font-size: 28px; font-weight: 600; letter-spacing: -0.8px; margin: 0 0 24px; }

/* ---------- Hulpklassen ---------- */
@media (max-width: 767px) { .zhf-hide-mobile { display: none !important; } }

/* ---------- Correcties na eerste test (v1.0.1) ---------- */
/* De Elementor Kit kleurt alle links turquoise (.elementor-kit-x a); onze knoppen en
   gestileerde links krijgen daarom hier een hogere specificiteit. */
body a.zhf-btn--accent, body a.zhf-btn--accent:hover,
body .zhf-ebtn--accent .elementor-button, body .zhf-ebtn--dark .elementor-button { color: #fff; }
body a.zhf-btn--outline, body .zhf-ebtn--outline .elementor-button { color: var(--zhf-dark); }
body a.zhf-btn--outline:hover, body .zhf-ebtn--outline .elementor-button:hover { color: #fff; }
body a.zhf-btn--outline-light, body .zhf-ebtn--outline-light .elementor-button { color: #fff; }
body a.zhf-btn--outline-light:hover, body .zhf-ebtn--outline-light .elementor-button:hover { color: var(--zhf-dark); }
body a.zhf-chip { color: var(--zhf-ink); }
body a.zhf-chip.is-active { color: #fff; }
body .zhf-pnav__links a { color: var(--zhf-muted); }
body .zhf-pnav__links a:hover { color: var(--zhf-ink); }
body a.zhf-cattile, body a.zhf-darkcard, body a.zhf-mega__tile { color: inherit; }
body .zhf-quicklinks a, body .zhf-underline, body .zhf-arrowlink { color: var(--zhf-ink); }

/* Footer: Elementor geeft tekstwidgets standaard de globale tekstkleur (donker). */
.zhf-footer .elementor-widget-text-editor,
.zhf-footer .elementor-widget-text-editor p,
.zhf-footer .elementor-widget-text-editor li,
.zhf-footer label { color: var(--zhf-on-night); }
.zhf-footer .elementor-widget-text-editor a { color: var(--zhf-on-night); }
.zhf-footer .elementor-widget-text-editor a:hover { color: #fff; }

/* Categorietegels met witte productfoto netjes omlijnen */
.zhf-cattile { border: 1px solid var(--zhf-line); }

/* Productnavigatie: naam weglaten, alleen prijs + knop */
.zhf-pnav__name { display: none; }

/* Specificatietabel */
.zhf-specs__table table th { width: 260px !important; font-weight: 400 !important; color: var(--zhf-muted) !important; }

/* Producttitel (shortcode) */
.zhf-ptitle-h1 {
	font-family: var(--zhf-font-head);
	font-size: clamp(28px, 2.6vw, 38px);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -1px;
	margin: 0;
}

/* SEO-tekst onder de producten op categoriepagina's */
.zhf-archive-text {
	max-width: 820px;
	margin-top: 32px;
	padding-top: 40px;
	border-top: 1px solid var(--zhf-line);
	font-size: 16px;
	line-height: 1.7;
	color: #4D3F50;
}
.zhf-archive-text h2, .zhf-archive-text h3 { font-family: var(--zhf-font-head); font-weight: 600; letter-spacing: -0.4px; }

/* ---------- Correcties v1.0.2 ---------- */
/* Turquoise knop op donkere achtergrond: hover naar het lichte logoturquoise
   i.p.v. aubergine (viel weg tegen de aubergine hero). */
.zhf-hero .zhf-ebtn--accent .elementor-button:hover,
.zhf-dark .zhf-ebtn--accent .elementor-button:hover,
.zhf-footer .zhf-ebtn--accent .elementor-button:hover,
.zhf-hero a.zhf-btn--accent:hover,
.zhf-dark a.zhf-btn--accent:hover { background: var(--zhf-accent); color: #fff; }

/* Productkaarten: knop altijd onderaan, prijs + sterren direct erboven.
   Alleen de titel groeit mee met zijn lengte. */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: flex !important;
	flex-direction: column;
	flex: 1 1 auto;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title { flex: 1 0 auto !important; min-height: 0; margin-bottom: 4px; }
.woocommerce ul.products li.product .price { margin-top: 0; }
.woocommerce ul.products li.product .button { margin-top: 14px !important; }

/* Nieuwsbrief (Mailster) in de footer: rode rand weg, knop even hoog als het veld */
.zhf-footer .mailster-form .submit-button,
.zhf-footer .mailster-form input[type="submit"] {
	border: 0 !important;
	box-shadow: none !important;
	height: 52px;
	padding: 0 26px;
	background: var(--zhf-accent-dark);
	color: #fff;
	cursor: pointer;
}
.zhf-footer .mailster-form .submit-button:hover,
.zhf-footer .mailster-form input[type="submit"]:hover { background: var(--zhf-accent); }

/* Elementor's archiefwidget zet li.product op display:block; kaart altijd als kolom */
.woocommerce ul.products li.product,
.elementor-widget-wc-archive-products ul.products li.product,
.elementor-widget-woocommerce-products ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
	height: 100%;
}
.elementor-widget-wc-archive-products ul.products,
.elementor-widget-woocommerce-products ul.products { align-items: stretch; }
.woocommerce ul.products li.product .button { margin-top: auto; }
.woocommerce ul.products li.product .woocommerce-loop-product__link + .button { margin-top: 14px !important; }
/* Aanbieding-label: Elementor's archiefwidget overschrijft padding en lettergrootte */
.woocommerce ul.products li.product span.onsale {
	padding: 9px 12px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	border-radius: 0 0 var(--zhf-radius) 0 !important;
	z-index: 2;
}

/* ---------- Productfilters (categoriepagina) ---------- */
.zhf-filters { clear: both; margin: 0 0 20px; }
.zhf-filters__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.zhf-filters__label { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--zhf-muted); margin-right: 4px; }
.zhf-filter { position: relative; }
.zhf-filter > summary {
	list-style: none;
	display: inline-flex; align-items: center; gap: 8px;
	height: 42px; padding: 0 14px 0 16px;
	border: 1px solid var(--zhf-line); border-radius: 999px;
	background: #fff; color: var(--zhf-ink);
	font-size: 14px; font-weight: 600; cursor: pointer; user-select: none;
	transition: border-color .15s;
}
.zhf-filter > summary::-webkit-details-marker { display: none; }
.zhf-filter > summary::after {
	content: ""; width: 7px; height: 7px; margin-top: -3px;
	border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor;
	transform: rotate(45deg); transition: transform .15s;
}
.zhf-filter[open] > summary::after { transform: rotate(225deg); margin-top: 3px; }
.zhf-filter > summary:hover, .zhf-filter[open] > summary { border-color: var(--zhf-dark); }
.zhf-filter.is-active > summary { border-color: var(--zhf-accent-dark); background: var(--zhf-accent-soft); }
.zhf-filter__n {
	/* line-height 1: anders wordt de tekstregel hoger dan het bolletje en zakt het cijfer naar beneden. */
	display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 1px 6px 0;
	border-radius: 999px; background: var(--zhf-accent-dark); color: #fff; font-size: 11px; font-weight: 700; line-height: 1;
}
.zhf-filter__panel {
	position: absolute; z-index: 30; top: calc(100% + 8px); left: 0;
	width: 300px; max-width: calc(100vw - 40px);
	background: #fff; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius);
	box-shadow: 0 18px 40px rgba(42, 23, 48, .14);
	padding: 16px;
	display: flex; flex-direction: column; gap: 14px;
}
.zhf-filter__options { display: flex; flex-direction: column; gap: 2px; max-height: 300px; overflow-y: auto; margin: 0 -6px; }
.zhf-filter__opt { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-radius: 6px; cursor: pointer; font-size: 15px; color: var(--zhf-ink); }
.zhf-filter__opt:hover { background: var(--zhf-surface, #F7F4F8); }
.zhf-filter__opt input { width: 18px; height: 18px; margin: 0; accent-color: var(--zhf-accent-dark); flex: none; }
.zhf-filter__name { flex: 1; line-height: 1.3; }
.zhf-filter__count { font-size: 13px; color: var(--zhf-muted); }
.zhf-filter__panel--price { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.zhf-filter__panel--price label { flex: 1 1 110px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--zhf-muted); }
.zhf-filter__euro { display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius-sm); color: var(--zhf-ink); font-weight: 600; }
.zhf-filter__euro input { border: 0 !important; padding: 0 !important; height: 100%; width: 100%; background: transparent; font: inherit; box-shadow: none !important; outline: none; }
.zhf-filter__apply { width: 100%; justify-content: center; min-height: 44px; border: 0; cursor: pointer; font-size: 15px; }
.js .zhf-filter:not(.zhf-filter--price) .zhf-filter__apply { display: inline-flex; }
.zhf-filters__active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
body a.zhf-filters__chip {
	display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px;
	border-radius: 999px; background: var(--zhf-dark); color: #fff; font-size: 13px; font-weight: 600; text-decoration: none;
}
body a.zhf-filters__chip:hover { background: var(--zhf-accent-dark); color: #fff; }
body a.zhf-filters__clear { font-size: 13px; font-weight: 600; color: var(--zhf-ink); text-decoration: underline; text-underline-offset: 3px; margin-left: 4px; }
@media (max-width: 767px) {
	.zhf-filters__bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; margin: 0 -20px; padding-left: 20px; padding-right: 20px; scrollbar-width: none; }
	.zhf-filters__bar::-webkit-scrollbar { display: none; }
	.zhf-filter { position: static; flex: none; }
	.zhf-filter__panel { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; width: auto; max-width: none; max-height: 70vh; }
	.zhf-filter__options { max-height: 50vh; }
	.zhf-filters__label { flex: none; }
}

/* ---------- Mobiel & tablet (v1.0.3) ---------- */
.zhf-hactions__searchtoggle { display: none; border: 0; background: none; padding: 0; cursor: pointer; }
.zhf-mainbar { position: relative; }

@media (max-width: 1024px) {
	/* Zoeken: icoon in de header, zoekveld als volle balk onder de header */
	.zhf-hactions__searchtoggle { display: inline-flex; }
	.zhf-hactions-wrap, .zhf-hactions-wrap > .elementor-widget-container { position: static !important; }
	.zhf-hactions__search {
		display: none;
		position: absolute; z-index: 40; left: 0; right: 0; top: 100%;
		width: auto !important;
		padding: 12px var(--zhf-gutter) 14px;
		background: #fff;
		border-top: 1px solid var(--zhf-line);
		box-shadow: 0 12px 24px rgba(42, 23, 48, .10);
	}
	.zhf-search-open .zhf-hactions__search { display: block; }
	.zhf-search-open .zhf-hactions__searchtoggle { color: var(--zhf-accent-dark); }

	/* Menu: uitklappen direct onder de header, over de volle breedte */
	.zhf-nav, .zhf-nav > .elementor-widget-container, .zhf-nav .e-n-menu { position: static !important; }
	.zhf-nav { order: 3; flex: 0 0 auto !important; }
	.zhf-nav .e-n-menu-toggle { background: none !important; border: 0 !important; padding: 10px !important; color: var(--zhf-ink); }
	.zhf-nav .e-n-menu-toggle svg { width: 24px; height: 24px; fill: currentColor; }
	.zhf-nav .e-n-menu-wrapper {
		position: absolute !important;
		top: 100% !important;
		left: 0 !important; right: 0 !important;
		inset-inline-start: 0 !important;
		width: 100% !important;
		max-width: none !important;
		max-height: calc(100vh - 140px);
		overflow-y: auto;
		background: #fff !important;
		border-top: 1px solid var(--zhf-line);
		box-shadow: 0 18px 32px rgba(42, 23, 48, .14);
		z-index: 50;
	}
	.zhf-nav .e-n-menu-heading { flex-direction: column; gap: 0 !important; }
	.zhf-nav .e-n-menu-item { border-bottom: 1px solid var(--zhf-line); }
	.zhf-nav .e-n-menu-title {
		min-height: 56px !important;
		padding: 0 var(--zhf-gutter) !important;
		justify-content: space-between;
		width: 100%;
		border-bottom: 0 !important;
	}
	.zhf-nav .e-n-menu-title-text { font-size: 17px !important; }
	.zhf-nav .e-n-menu-content { position: static !important; width: 100% !important; }
	.zhf-mega { border-top: 0; background: var(--zhf-surface, #F7F4F8); }
	.zhf-mega__grid { grid-template-columns: 1fr !important; gap: 20px !important; padding: 20px var(--zhf-gutter) !important; }
	.zhf-mega__tile { display: none !important; }
	.zhf-mega__bar { padding: 14px var(--zhf-gutter) !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px; }
	.zhf-mega__list li { padding: 2px 0; }
	.zhf-mega__list a { font-size: 16px; padding: 6px 0; display: inline-block; }
}

@media (max-width: 767px) {
	/* Sectiekoppen met link: kop links, link eronder */
	.zhf-sechead, .zhf-section-head { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }

	/* Productlijsten: twee kolommen, compacte kaarten */
	.woocommerce ul.products, .woocommerce ul.products.columns-3, .woocommerce ul.products.columns-4,
	.zhf-products-wrap ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
	.woocommerce ul.products li.product { padding-bottom: 12px; }
	.woocommerce ul.products li.product a img { padding: 10px; margin-bottom: 10px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px !important; padding: 0 12px !important; line-height: 1.3; }
	.woocommerce ul.products li.product .star-rating { margin: 4px 12px; font-size: 11px; }
	.woocommerce ul.products li.product .price { font-size: 17px !important; padding: 4px 12px 0; }
	.woocommerce ul.products li.product .price del { font-size: 12px; display: block; }
	.woocommerce ul.products li.product .woocommerce-loop-product__link + .button,
	.woocommerce ul.products li.product .button {
		margin: 10px 12px 0 !important;
		min-height: 40px;
		padding: 6px 8px !important;
		font-size: 13px !important;
		line-height: 1.2;
		text-align: center;
	}
	.woocommerce span.onsale, .woocommerce ul.products li.product span.onsale { font-size: 10px !important; padding: 6px 8px !important; }

	/* Footer: merkblok volle breedte, linkkolommen naast elkaar */
	.zhf-footer__cols { grid-template-columns: 1fr 1fr !important; row-gap: 32px !important; }
	.zhf-footer__cols > :first-child { grid-column: 1 / -1; }
	.zhf-footer__nl-form, .zhf-footer__nl-form .mailster-form { width: 100% !important; max-width: none !important; margin-left: 0 !important; }
}
@media (max-width: 767px) {
	/* Ook voor de huidige (nog niet opnieuw geïnstalleerde) homepage */
	.e-con:has(> .zhf-h2):has(> .elementor-widget-text-editor .zhf-underline) { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
}
body .zhf-hactions__searchtoggle, body .zhf-hactions__searchtoggle:hover, body .zhf-hactions__searchtoggle:focus { background: transparent !important; color: var(--zhf-ink) !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
.zhf-search-open body .zhf-hactions__searchtoggle, html.zhf-search-open .zhf-hactions__searchtoggle { color: var(--zhf-accent-dark) !important; }
@media (max-width: 767px) {
	/* Categoriepagina: subcategorieën als horizontale scrollrij, hulpkaart weg zodat producten eerder in beeld zijn */
	.zhf-chips ul { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px; padding: 0 20px 4px; scrollbar-width: none; }
	.zhf-chips ul::-webkit-scrollbar { display: none; }
	.zhf-chips li { flex: none; }
	.zhf-helpcard { display: none; }
	.zhf-archive-head h1, .zhf-archive-head .zhf-archive-head__title { font-size: 34px !important; }
}

/* Mobiel: vaste koopbalk onderin zodra de koopbox uit beeld is */
.zhf-mbuy { display: none; }
@media (max-width: 767px) {
	.zhf-mbuy {
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		position: fixed; z-index: 60; left: 0; right: 0; bottom: 0;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: #fff; border-top: 1px solid var(--zhf-line);
		box-shadow: 0 -8px 24px rgba(42, 23, 48, .10);
		transform: translateY(110%); transition: transform .2s ease;
	}
	.zhf-mbuy.is-visible { transform: none; }
	.zhf-mbuy__price { font-family: var(--zhf-font-head); font-size: 19px; font-weight: 700; color: var(--zhf-ink); line-height: 1.1; }
	.zhf-mbuy__price del { display: block; font-size: 12px; font-weight: 400; color: var(--zhf-muted); }
	.zhf-mbuy__price ins { text-decoration: none; }
	.zhf-mbuy__price .screen-reader-text { position: absolute; clip: rect(0 0 0 0); width: 1px; height: 1px; overflow: hidden; }
	.zhf-mbuy .zhf-btn { min-height: 48px; padding: 0 20px; flex: none; }
}

/* =========================================================
   Winkelwagen, afrekenen en Mijn account (v1.0.3)
   ========================================================= */
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main {
	max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)) !important;
	width: 100%;
	margin: 0 auto;
	padding: 40px var(--zhf-gutter) 88px;
}
body.woocommerce-cart .page-header .entry-title,
body.woocommerce-checkout .page-header .entry-title,
body.woocommerce-account .page-header .entry-title {
	font-family: var(--zhf-font-head);
	font-size: clamp(32px, 3vw, 44px);
	font-weight: 600;
	letter-spacing: -1px;
	line-height: 1.1;
	margin: 0 0 28px;
	color: var(--zhf-ink);
}
/* Oude Avada-inhoud (banners, openingstijden) rond winkelwagen en afrekenen verbergen */
.zhf-clean-checkout .page-content > :not(.woocommerce) { display: none !important; }

/* Meldingen */
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message, .woocommerce-page .woocommerce-info, .woocommerce-page .woocommerce-error {
	border: 0 !important;
	border-left: 4px solid var(--zhf-accent) !important;
	background: var(--zhf-surface) !important;
	color: var(--zhf-ink) !important;
	border-radius: var(--zhf-radius-sm);
	padding: 16px 20px 16px 52px !important;
	font-size: 15px;
	line-height: 1.5;
	margin: 0 0 20px !important;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px;
}
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before { color: var(--zhf-accent-dark) !important; top: 50%; transform: translateY(-50%); left: 20px; }
.woocommerce .woocommerce-error { border-left-color: #C0392B !important; flex-direction: column; align-items: flex-start; }
.woocommerce .woocommerce-error::before { color: #C0392B !important; top: 18px; left: 20px; }
.woocommerce .woocommerce-message::after, .woocommerce .woocommerce-info::after { display: none; }
body .woocommerce-message a:not(.button), body .woocommerce-info a:not(.button) { color: var(--zhf-accent-dark); font-weight: 600; }
.woocommerce .woocommerce-message .button, .woocommerce .woocommerce-info .button { order: 2; float: none !important; }

/* Knoppen */
.woocommerce-page .woocommerce .button, .woocommerce-page .woocommerce button.button, .woocommerce-page .woocommerce input.button,
.woocommerce-page .woocommerce a.button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 0 18px !important;
	background: #fff !important; color: var(--zhf-dark) !important;
	border: 1.5px solid var(--zhf-dark) !important; border-radius: var(--zhf-radius-sm) !important;
	font-family: var(--zhf-font-body); font-size: 14px !important; font-weight: 700 !important; line-height: 1.2;
	text-decoration: none; box-shadow: none; transition: background .15s, color .15s;
}
.woocommerce-page .woocommerce .button:hover, .woocommerce-page .woocommerce button.button:hover, .woocommerce-page .woocommerce a.button:hover { background: var(--zhf-dark) !important; color: #fff !important; }
.woocommerce-page .woocommerce .button.alt, .woocommerce-page .woocommerce button.button.alt, .woocommerce-page .woocommerce a.button.alt,
.woocommerce-page .woocommerce .checkout-button, .woocommerce-page .woocommerce #place_order {
	background: var(--zhf-accent-dark) !important; border-color: var(--zhf-accent-dark) !important; color: #fff !important;
	min-height: 56px; width: 100%; font-size: 16px !important;
}
.woocommerce-page .woocommerce .button.alt:hover, .woocommerce-page .woocommerce .checkout-button:hover, .woocommerce-page .woocommerce #place_order:hover { background: var(--zhf-dark) !important; border-color: var(--zhf-dark) !important; }
.woocommerce-page .woocommerce button.button:disabled, .woocommerce-page .woocommerce button.button:disabled[disabled] { opacity: .45; padding: 0 18px !important; }

/* Formuliervelden */
.woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.woocommerce form .form-row label { font-size: 14px; font-weight: 600; color: var(--zhf-ink); margin-bottom: 6px; line-height: 1.3; }
.woocommerce form .form-row label .required { color: #C0392B; text-decoration: none; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select,
.woocommerce-page form .form-row textarea, .woocommerce .quantity .qty, .woocommerce #coupon_code,
.woocommerce .select2-container .select2-selection--single {
	height: 48px; padding: 0 14px;
	border: 1px solid var(--zhf-line-strong) !important; border-radius: var(--zhf-radius-sm) !important;
	background: #fff; color: var(--zhf-ink); font-size: 16px; box-shadow: none;
}
.woocommerce-page form .form-row textarea { min-height: 110px; padding: 12px 14px; line-height: 1.5; }
.woocommerce form .form-row .input-text:focus, .woocommerce form .form-row select:focus, .woocommerce-page form .form-row textarea:focus,
.woocommerce .quantity .qty:focus, .woocommerce #coupon_code:focus, .woocommerce .select2-container--focus .select2-selection--single {
	border-color: var(--zhf-accent-dark) !important; outline: 3px solid rgba(15, 167, 147, .18); outline-offset: 0;
}
.woocommerce form .form-row.woocommerce-validated .input-text, .woocommerce form .form-row.woocommerce-validated select,
.woocommerce form .form-row.woocommerce-validated .select2-selection { border-color: var(--zhf-line-strong) !important; }
.woocommerce form .form-row.woocommerce-invalid .input-text, .woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid .select2-selection { border-color: #C0392B !important; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 0; color: var(--zhf-ink); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.woocommerce form .form-row input[type="checkbox"], #payment input[type="radio"] { accent-color: var(--zhf-accent-dark); width: 18px; height: 18px; vertical-align: -3px; margin-right: 8px; }
.woocommerce form .form-row .woocommerce-form__label-for-checkbox { font-weight: 500; display: inline-flex; align-items: center; }

/* ---- Winkelwagen ---- */
.woocommerce-cart .page-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 0 48px; align-items: start; }
.woocommerce-cart .page-content > .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-cart .page-content > .woocommerce > .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .page-content > .woocommerce > .cart-collaterals { grid-column: 2; grid-row: span 3; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none !important; width: 100% !important; }
.woocommerce-cart .cart-collaterals .cross-sells { display: none; }
@media (max-width: 1024px) {
	.woocommerce-cart .page-content > .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart .page-content > .woocommerce > .cart-collaterals { grid-column: 1; grid-row: auto; margin-top: 32px; }
}
.woocommerce table.shop_table { border: 0 !important; border-radius: 0 !important; border-collapse: collapse !important; margin: 0 0 24px; }
.woocommerce table.shop_table th {
	font-size: 13px; font-weight: 600; color: var(--zhf-muted); text-transform: none;
	padding: 12px 10px !important; border: 0 !important; border-bottom: 1px solid var(--zhf-line) !important; background: none !important;
}
.woocommerce table.shop_table td { padding: 18px 10px !important; border: 0 !important; border-bottom: 1px solid var(--zhf-line) !important; background: none !important; vertical-align: middle; }
.woocommerce-cart table.cart img { width: 88px !important; height: 88px; object-fit: contain; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius-sm); padding: 6px; background: #fff; }
.woocommerce-cart table.cart td.product-thumbnail { width: 108px; }
body.woocommerce-cart table.cart .product-name a { color: var(--zhf-ink); font-weight: 600; font-size: 16px; text-decoration: none; line-height: 1.35; }
body.woocommerce-cart table.cart .product-name a:hover { color: var(--zhf-accent-dark); }
.woocommerce-cart table.cart .product-price, .woocommerce-cart table.cart .product-subtotal { font-weight: 600; white-space: nowrap; }
.woocommerce-cart table.cart .product-subtotal { font-family: var(--zhf-font-head); font-size: 17px; }
.woocommerce a.remove {
	width: 32px; height: 32px; line-height: 30px !important; font-size: 22px !important; font-weight: 400 !important;
	color: var(--zhf-muted) !important; border-radius: 50%; text-decoration: none;
}
.woocommerce a.remove:hover { background: var(--zhf-surface) !important; color: var(--zhf-ink) !important; }
.woocommerce .quantity .qty { width: 76px; padding: 0 8px; text-align: center; }
.woocommerce-cart table.cart td.actions { padding-top: 20px !important; border-bottom: 0 !important; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; align-items: center; }
.woocommerce-cart table.cart td.actions .coupon #coupon_code { width: 220px !important; margin: 0 !important; }
.woocommerce-cart .cart_totals {
	background: var(--zhf-surface); border-radius: var(--zhf-radius); padding: 28px;
}
.woocommerce-cart .cart_totals h2 { font-family: var(--zhf-font-head); font-size: 22px; font-weight: 600; letter-spacing: -.4px; margin: 0 0 8px; }
.woocommerce-cart .cart_totals table.shop_table th { color: var(--zhf-ink); font-size: 15px; padding: 14px 0 !important; width: 40%; vertical-align: top; }
.woocommerce-cart .cart_totals table.shop_table td { padding: 14px 0 !important; text-align: right; font-size: 15px; }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination, .woocommerce-cart .cart_totals .woocommerce-shipping-calculator { font-size: 13px; color: var(--zhf-muted); }
.woocommerce-cart .cart_totals ul#shipping_method { margin: 0; }
.woocommerce-cart .cart_totals ul#shipping_method li { text-align: right; }
.woocommerce .order-total th, .woocommerce .order-total td { border-bottom: 0 !important; }
.woocommerce .order-total .amount { font-family: var(--zhf-font-head); font-size: 24px; font-weight: 700; color: var(--zhf-ink); }
.woocommerce .order-total .includes_tax, .woocommerce .order-total small { display: block; font-size: 12px; color: var(--zhf-muted); font-weight: 400; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 16px 0 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { margin-bottom: 12px !important; }
.woocommerce-cart .cart-empty { font-size: 18px; }
.woocommerce-cart .return-to-shop .button { margin-top: 8px; }

/* Vertrouwensblok */
.zhf-trust { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: var(--zhf-ink); }
.zhf-trust li { display: flex; align-items: flex-start; gap: 10px; line-height: 1.4; }
.zhf-trust .zhf-icon { color: var(--zhf-accent-dark); flex: none; margin-top: 1px; }
body .zhf-trust a { color: var(--zhf-ink); font-weight: 700; }

/* ---- Afrekenen ---- */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 0 56px; align-items: start; }
.woocommerce-checkout form.checkout > * { grid-column: 1; }
.woocommerce-checkout form.checkout > #customer_details { grid-row: 1 / span 3; }
.woocommerce-checkout form.checkout > .mailster-signup { grid-row: 4; margin: 0 0 16px; }
.woocommerce-checkout form.checkout > #order_review_heading {
	grid-column: 2; grid-row: 1;
	background: var(--zhf-surface); border-radius: var(--zhf-radius) var(--zhf-radius) 0 0;
	padding: 28px 28px 4px; margin: 0;
}
.woocommerce-checkout form.checkout > #order_review {
	grid-column: 2; grid-row: 2 / span 4;
	background: var(--zhf-surface); border-radius: 0 0 var(--zhf-radius) var(--zhf-radius);
	padding: 8px 28px 28px;
}
.woocommerce-checkout #customer_details.col2-set .col-1, .woocommerce-checkout #customer_details.col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout #customer_details .col-2 { margin-top: 16px; }
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading {
	font-family: var(--zhf-font-head); font-size: 22px; font-weight: 600; letter-spacing: -.4px; color: var(--zhf-ink); margin: 0 0 16px;
}
.woocommerce-checkout #ship-to-different-address { font-size: 17px; }
.woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; font-weight: 600; cursor: pointer; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display: flex; flex-wrap: wrap; gap: 0 16px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row { float: none; }
.woocommerce-checkout .form-row-wide { width: 100%; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { width: calc(50% - 8px) !important; }
.woocommerce-checkout-review-order-table { font-size: 15px; }
.woocommerce-checkout-review-order-table th { color: var(--zhf-ink) !important; }
.woocommerce-checkout-review-order-table .product-name { line-height: 1.4; }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; }
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0 !important; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 !important; border: 0 !important; margin: 0 0 8px !important; display: flex; flex-direction: column; gap: 8px; }
.woocommerce-checkout #payment ul.payment_methods li {
	list-style: none; background: #fff; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius-sm);
	padding: 14px 16px !important; margin: 0 !important; line-height: 1.4;
}
.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) { border-color: var(--zhf-accent-dark); box-shadow: 0 0 0 1px var(--zhf-accent-dark); }
.woocommerce-checkout #payment ul.payment_methods li > label { font-weight: 600; cursor: pointer; display: inline; }
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 22px !important; width: auto !important; margin: 0 0 0 8px !important; vertical-align: middle; display: inline-block !important; float: none !important; position: static !important; }
.woocommerce-checkout #payment div.payment_box {
	background: var(--zhf-accent-soft) !important; color: var(--zhf-ink) !important;
	font-size: 14px; border-radius: var(--zhf-radius-sm); margin: 12px 0 0 !important; padding: 12px 14px !important;
}
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 16px 0 0 !important; margin: 0; }
.woocommerce-checkout .woocommerce-privacy-policy-text, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 14px; color: var(--zhf-ink); }
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text { font-weight: 500; }
.woocommerce-checkout #place_order { float: none !important; margin-top: 8px; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { padding-top: 14px !important; padding-bottom: 14px !important; }
.woocommerce-checkout form.checkout_coupon, .woocommerce-checkout form.woocommerce-form-login {
	border: 1px solid var(--zhf-line) !important; border-radius: var(--zhf-radius) !important; padding: 20px !important; margin: 0 0 20px !important;
}
.woocommerce-checkout cvb-button { display: block; margin: 0 0 24px; }
@media (max-width: 1024px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout form.checkout > * { grid-column: 1 !important; grid-row: auto !important; }
	.woocommerce-checkout form.checkout > #order_review_heading { margin-top: 24px; }
}
@media (max-width: 520px) {
	.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { width: 100% !important; }
	.woocommerce-checkout form.checkout > #order_review_heading { padding: 20px 20px 4px; }
	.woocommerce-checkout form.checkout > #order_review { padding: 8px 20px 20px; }
	.woocommerce-cart .cart_totals { padding: 20px; }
}

/* ---- Mijn account ---- */
.woocommerce-account .page-content > .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: auto !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--zhf-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 14px 18px; color: var(--zhf-ink); font-weight: 600; text-decoration: none; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--zhf-surface); }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--zhf-surface); color: var(--zhf-accent-dark); box-shadow: inset 3px 0 0 var(--zhf-accent); }
.woocommerce-account .woocommerce-MyAccount-content { font-size: 16px; line-height: 1.6; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.woocommerce-account .u-columns.col2-set::before, .woocommerce-account .u-columns.col2-set::after { display: none; }
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 {
	float: none; width: auto; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); padding: 32px;
}
.woocommerce-account .u-columns h2, .woocommerce-account .woocommerce > h2 { font-family: var(--zhf-font-head); font-size: 24px; font-weight: 600; letter-spacing: -.4px; margin: 0 0 20px; }
.woocommerce-account form.login, .woocommerce-account form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-account form.login > .woocommerce-form-login__submit, .woocommerce-account form .woocommerce-form-login__submit { margin-left: 12px !important; }
body.woocommerce-account .lost_password a { color: var(--zhf-accent-dark); font-weight: 600; }
.woocommerce-account table.shop_table.my_account_orders .button { min-height: 36px; padding: 0 12px !important; margin: 2px; }
@media (max-width: 1024px) {
	.woocommerce-account .page-content > .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 1fr; gap: 24px; }
	.woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}
.woocommerce-cart table.cart th.product-subtotal { font-family: var(--zhf-font-body); font-size: 13px; }
.woocommerce .order-total .includes_tax .amount, .woocommerce .order-total small .amount { font-family: var(--zhf-font-body); font-size: 12px; font-weight: 400; color: var(--zhf-muted); }
.woocommerce-checkout #payment .zhf-trust { margin-top: 20px; }
.woocommerce-checkout #ship-to-different-address input { width: 18px; height: 18px; margin-right: 10px; accent-color: var(--zhf-accent-dark); }
.woocommerce-page .woocommerce .woocommerce-form-login__submit, .woocommerce-page .woocommerce .woocommerce-form-register__submit,
.woocommerce-page .woocommerce .woocommerce-Button[name="save_account_details"], .woocommerce-page .woocommerce button[name="save_address"] {
	background: var(--zhf-accent-dark) !important; border-color: var(--zhf-accent-dark) !important; color: #fff !important; min-width: 140px;
}
.woocommerce-account .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.woocommerce-account .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) .woocommerce-form-login__submit { order: 2; margin-left: 0 !important; }

/* ---------- Veelgestelde vragen (v1.0.4) ---------- */
.zhf-faq { max-width: 860px; margin: 8px 0 48px; scroll-margin-top: 120px; }
.zhf-faq__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
body .zhf-faq__tab, body .zhf-faq__tab:focus {
	height: 40px; padding: 0 16px !important; border-radius: 999px !important;
	border: 1px solid var(--zhf-line) !important; background: #fff !important; color: var(--zhf-ink) !important;
	font-family: var(--zhf-font-body); font-size: 14px !important; font-weight: 600 !important; cursor: pointer; box-shadow: none !important;
}
body .zhf-faq__tab:hover { border-color: var(--zhf-dark) !important; background: #fff !important; color: var(--zhf-ink) !important; }
body .zhf-faq__tab.is-active, body .zhf-faq__tab.is-active:hover { background: var(--zhf-dark) !important; border-color: var(--zhf-dark) !important; color: #fff !important; }
.zhf-faq__list { border-top: 1px solid var(--zhf-line); }
.zhf-faq__item { border-bottom: 1px solid var(--zhf-line); }
.zhf-faq__item > summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 20px 4px; font-family: var(--zhf-font-head); font-size: 18px; font-weight: 600; letter-spacing: -.2px; color: var(--zhf-ink); line-height: 1.35;
}
.zhf-faq__item > summary::-webkit-details-marker { display: none; }
.zhf-faq__item > summary::after {
	content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%;
	background: var(--zhf-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232A1730' stroke-width='2.2'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat;
	transition: transform .2s;
}
.zhf-faq__item[open] > summary::after { transform: rotate(45deg); }
.zhf-faq__item > summary:hover { color: var(--zhf-accent-dark); }
.zhf-faq__answer { padding: 0 48px 22px 4px; font-size: 16px; line-height: 1.7; color: #4D3F50; }
.zhf-faq__answer p { margin: 0 0 12px; }
.zhf-faq__answer a { color: var(--zhf-accent-dark); font-weight: 600; }
@media (max-width: 767px) {
	.zhf-faq__tabs { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px 20px; padding: 0 20px 4px; scrollbar-width: none; }
	.zhf-faq__tabs::-webkit-scrollbar { display: none; }
	body .zhf-faq__tab { flex: none; }
	.zhf-faq__item > summary { font-size: 16px; padding: 16px 2px; }
	.zhf-faq__answer { padding-right: 8px; }
}
/* FAQ-antwoorden uit Avada hebben soms eigen kleuren in de tekst */
.zhf-faq__answer a, .zhf-faq__answer a[style] { color: var(--zhf-accent-dark) !important; }
.zhf-faq__answer [style*="color"]:not(a) { color: inherit !important; }

/* =========================================================
   Tekstpagina's (child theme template-parts/single.php) – v1.0.5
   ========================================================= */
body.zhf-has-textpage .site-main.zhf-textpage { max-width: none !important; width: 100%; margin: 0; padding: 0; }
.zhf-textpage__head { background: var(--zhf-surface); border-bottom: 1px solid var(--zhf-line); }
.zhf-textpage__inner, .zhf-textpage__body {
	max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)); margin: 0 auto; padding-left: var(--zhf-gutter); padding-right: var(--zhf-gutter);
}
.zhf-textpage__inner { padding-top: 36px; padding-bottom: 44px; }
.zhf-textpage__crumbs { font-size: 13px; color: var(--zhf-muted); margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 6px; }
body .zhf-textpage__crumbs a { color: var(--zhf-muted); text-decoration: none; }
body .zhf-textpage__crumbs a:hover { color: var(--zhf-ink); text-decoration: underline; }
.zhf-textpage__title {
	font-family: var(--zhf-font-head); font-size: clamp(32px, 3.6vw, 52px); font-weight: 600; letter-spacing: -1.2px; line-height: 1.08;
	color: var(--zhf-ink); margin: 0; max-width: 900px;
}
.zhf-textpage__meta { margin: 12px 0 0; color: var(--zhf-muted); font-size: 14px; }
.zhf-textpage__body { display: grid; grid-template-columns: minmax(0, 760px) 300px; justify-content: space-between; gap: 64px; padding-top: 56px; padding-bottom: 96px; align-items: start; }
.zhf-textpage__aside { position: sticky; top: 24px; }
.admin-bar .zhf-textpage__aside { top: 56px; }
@media (max-width: 1024px) {
	.zhf-textpage__body { grid-template-columns: 1fr; gap: 48px; padding-top: 40px; padding-bottom: 72px; }
	.zhf-textpage__aside { position: static; max-width: 520px; }
}

/* Hulpblok */
.zhf-helpbox { background: var(--zhf-surface); border-radius: var(--zhf-radius); padding: 24px; font-size: 15px; line-height: 1.55; color: var(--zhf-ink); }
.zhf-helpbox__title { font-family: var(--zhf-font-head); font-size: 19px; font-weight: 600; letter-spacing: -.3px; margin: 0 0 6px; }
.zhf-helpbox p { margin: 0 0 14px; }
body a.zhf-helpbox__phone { display: inline-flex; align-items: center; gap: 8px; font-family: var(--zhf-font-head); font-size: 20px; font-weight: 700; color: var(--zhf-ink); text-decoration: none; margin-bottom: 4px; }
body a.zhf-helpbox__phone .zhf-icon { color: var(--zhf-accent-dark); }
.zhf-helpbox__hours { font-size: 13px; color: var(--zhf-muted); }
.zhf-helpbox__links { list-style: none; margin: 16px 0 0; padding: 16px 0 0; border-top: 1px solid var(--zhf-line-strong); display: flex; flex-direction: column; gap: 8px; }
body .zhf-helpbox__links a { color: var(--zhf-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--zhf-accent); }

/* Typografie van de inhoud */
.zhf-textpage__content { font-size: 17px; line-height: 1.75; color: #3D3040; overflow-wrap: anywhere; }
.zhf-textpage__content > :first-child { margin-top: 0 !important; }
.zhf-textpage__content p { margin: 0 0 18px; }
.zhf-textpage__content h1, .zhf-textpage__content h2, .zhf-textpage__content h3, .zhf-textpage__content h4, .zhf-textpage__content h5, .zhf-textpage__content h6 {
	font-family: var(--zhf-font-head) !important; color: var(--zhf-ink) !important; font-weight: 600 !important; letter-spacing: -.4px; line-height: 1.25; text-align: left !important; text-transform: none !important;
}
.zhf-textpage__content h1, .zhf-textpage__content h2 { font-size: 28px !important; margin: 44px 0 14px; }
.zhf-textpage__content h3 { font-size: 21px !important; margin: 32px 0 10px; }
.zhf-textpage__content h4, .zhf-textpage__content h5, .zhf-textpage__content h6 { font-size: 17px !important; margin: 24px 0 8px; letter-spacing: 0; }
.zhf-textpage__content ul, .zhf-textpage__content ol { margin: 0 0 20px; padding-left: 22px; }
.zhf-textpage__content li { margin: 0 0 6px; padding-left: 4px; }
.zhf-textpage__content ul li::marker { color: var(--zhf-accent); }
.zhf-textpage__content a { color: var(--zhf-accent-dark) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.zhf-textpage__content strong, .zhf-textpage__content b { color: var(--zhf-ink); }
.zhf-textpage__content img { max-width: 100%; height: auto; border-radius: var(--zhf-radius); }
.zhf-textpage__content img.alignleft, .zhf-textpage__content .alignleft { float: left; margin: 6px 24px 16px 0; max-width: 45%; }
.zhf-textpage__content img.alignright, .zhf-textpage__content .alignright { float: right; margin: 6px 0 16px 24px; max-width: 45%; }
.zhf-textpage__content .aligncenter { display: block; margin: 24px auto; }
.zhf-textpage__content::after { content: ""; display: table; clear: both; }
.zhf-textpage__content blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--zhf-accent); font-style: italic; color: var(--zhf-ink); }
.zhf-textpage__content table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 15px; display: block; overflow-x: auto; }
.zhf-textpage__content th, .zhf-textpage__content td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--zhf-line); vertical-align: top; }
.zhf-textpage__content th { color: var(--zhf-ink); font-weight: 600; background: var(--zhf-surface); }
.zhf-textpage__content hr { border: 0; border-top: 1px solid var(--zhf-line); margin: 36px 0; }
.zhf-textpage__content iframe { max-width: 100%; border-radius: var(--zhf-radius); }
/* Oude Avada-opmaak in de tekst neutraliseren (kleuren, lettergroottes, centreren) */
.zhf-textpage__content [style*="text-align"] { text-align: inherit !important; }
.zhf-textpage__content [style*="font-size"] { font-size: inherit !important; }
.zhf-textpage__content [style*="color"]:not(a) { color: inherit !important; }
.zhf-textpage__content [style*="font-family"] { font-family: inherit !important; }
.zhf-textpage__content br + br { display: none; }

/* Formulieren (Contact Form 7) in tekstpagina's */
.zhf-textpage__content .wpcf7 { margin: 24px 0; padding: 28px; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); background: #fff; }
.zhf-textpage__content .wpcf7 p { margin: 0 0 14px; }
.zhf-textpage__content .wpcf7 label { display: block; font-size: 14px; font-weight: 600; color: var(--zhf-ink); line-height: 1.4; }
.zhf-textpage__content .wpcf7 input[type="text"], .zhf-textpage__content .wpcf7 input[type="email"], .zhf-textpage__content .wpcf7 input[type="tel"],
.zhf-textpage__content .wpcf7 input[type="number"], .zhf-textpage__content .wpcf7 input[type="date"], .zhf-textpage__content .wpcf7 select, .zhf-textpage__content .wpcf7 textarea {
	width: 100%; height: 48px; margin-top: 6px; padding: 0 14px; border: 1px solid var(--zhf-line-strong); border-radius: var(--zhf-radius-sm);
	background: #fff; font: inherit; font-size: 16px; color: var(--zhf-ink); box-shadow: none;
}
.zhf-textpage__content .wpcf7 textarea { height: auto; min-height: 130px; padding: 12px 14px; }
.zhf-textpage__content .wpcf7 input:focus, .zhf-textpage__content .wpcf7 select:focus, .zhf-textpage__content .wpcf7 textarea:focus { border-color: var(--zhf-accent-dark); outline: 3px solid rgba(15, 167, 147, .18); }
.zhf-textpage__content .wpcf7 input[type="submit"] {
	height: 52px; padding: 0 28px; border: 0; border-radius: var(--zhf-radius-sm); background: var(--zhf-accent-dark); color: #fff; font-weight: 700; font-size: 16px; cursor: pointer;
}
.zhf-textpage__content .wpcf7 input[type="submit"]:hover { background: var(--zhf-dark); }
.zhf-textpage__content .wpcf7 input[type="checkbox"], .zhf-textpage__content .wpcf7 input[type="radio"] { accent-color: var(--zhf-accent-dark); width: 18px; height: 18px; vertical-align: -3px; margin-right: 6px; }
.zhf-textpage__content .wpcf7-response-output { border-radius: var(--zhf-radius-sm); margin: 16px 0 0 !important; padding: 12px 16px !important; font-size: 15px; }
.zhf-textpage__content .wpcf7-not-valid-tip { font-size: 13px; color: #C0392B; }
.zhf-textpage .zhf-faq { margin-top: 0; }
@media (max-width: 767px) {
	.zhf-textpage__inner { padding-top: 24px; padding-bottom: 28px; }
	.zhf-textpage__content { font-size: 16px; }
	.zhf-textpage__content h1, .zhf-textpage__content h2 { font-size: 23px !important; }
	.zhf-textpage__content img.alignleft, .zhf-textpage__content img.alignright, .zhf-textpage__content .alignleft, .zhf-textpage__content .alignright { float: none; margin: 16px 0; max-width: 100%; }
	.zhf-textpage__content .wpcf7 { padding: 20px; }
}
.zhf-faq__answer h1, .zhf-faq__answer h2, .zhf-faq__answer h3, .zhf-faq__answer h4 { font-size: 17px !important; margin: 16px 0 6px !important; letter-spacing: 0; }

/* =========================================================
   Huurpagina's (v1.0.6)
   ========================================================= */
.zhf-renthero { background: var(--zhf-surface); border-bottom: 1px solid var(--zhf-line); }
.zhf-renthero__inner {
	max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)); margin: 0 auto; padding: 36px var(--zhf-gutter) 48px;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center;
}
.zhf-renthero .zhf-eyebrow { margin: 18px 0 10px; }
.zhf-renthero__title { font-family: var(--zhf-font-head); font-size: clamp(34px, 3.8vw, 56px); font-weight: 600; letter-spacing: -1.4px; line-height: 1.05; color: var(--zhf-ink); margin: 0 0 16px; }
.zhf-renthero__intro { font-size: 18px; line-height: 1.6; color: #4D3F50; margin: 0 0 24px; max-width: 560px; }
.zhf-renthero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.zhf-renthero__cta .zhf-btn { min-height: 52px; padding: 0 22px; gap: 8px; }
.zhf-renthero__media { border-radius: var(--zhf-radius); overflow: hidden; background: #fff; box-shadow: 0 24px 48px rgba(42, 23, 48, .12); }
.zhf-renthero__img { display: block; width: 100%; height: auto; aspect-ratio: 994 / 623; object-fit: cover; }
.zhf-renthero__usps { border-top: 1px solid var(--zhf-line); background: #fff; }
.zhf-rentusps {
	list-style: none; margin: 0 auto; max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)); padding: 16px var(--zhf-gutter);
	display: flex; flex-wrap: wrap; gap: 10px 32px; font-size: 14px; font-weight: 600; color: var(--zhf-ink);
}
.zhf-rentusps li { display: inline-flex; align-items: center; gap: 8px; }
.zhf-rentusps .zhf-icon { color: var(--zhf-accent-dark); }

/* Prijsblok */
.zhf-rentprice { background: #fff; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); padding: 6px 20px; max-width: 460px; }
.zhf-rentprice__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--zhf-line); font-size: 15px; color: var(--zhf-ink); }
.zhf-rentprice__row:last-of-type { border-bottom: 0; }
.zhf-rentprice__row strong { font-family: var(--zhf-font-head); font-size: 24px; font-weight: 700; white-space: nowrap; }
.zhf-rentprice__row:first-child strong { color: var(--zhf-accent-dark); }
.zhf-rentprice__note { margin: 0 -20px; padding: 10px 20px; border-top: 1px solid var(--zhf-line); background: var(--zhf-accent-soft); font-size: 13px; line-height: 1.45; color: var(--zhf-ink); border-radius: 0 0 var(--zhf-radius) var(--zhf-radius); }
.zhf-helpbox .zhf-rentprice { margin: 8px 0 16px; padding: 4px 16px; }
.zhf-helpbox .zhf-rentprice__row strong { font-size: 20px; }
.zhf-helpbox .zhf-rentprice__note { margin: 0 -16px; padding: 10px 16px; }
.zhf-helpbox__cta { width: 100%; justify-content: center; min-height: 48px; }
.zhf-helpbox__or { margin: 12px 0 0 !important; font-size: 14px; text-align: center; }
body .zhf-helpbox__or a { color: var(--zhf-ink); }

/* Secties */
.zhf-rentsection { padding: 64px 0; }
.zhf-rentsection--surface { background: var(--zhf-surface); }
.zhf-rentsection__inner { max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)); margin: 0 auto; padding: 0 var(--zhf-gutter); }
.zhf-rentsection__title { font-family: var(--zhf-font-head); font-size: clamp(26px, 2.4vw, 34px); font-weight: 600; letter-spacing: -.8px; color: var(--zhf-ink); margin: 0 0 28px; }
.zhf-rentpage .zhf-rentbody { padding-top: 64px; }

/* Stappen */
.zhf-rentsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; counter-reset: none; }
.zhf-rentsteps li { background: #fff; border-radius: var(--zhf-radius); padding: 24px; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.55; color: #4D3F50; }
.zhf-rentsteps strong { font-family: var(--zhf-font-head); font-size: 18px; font-weight: 600; color: var(--zhf-ink); }
.zhf-rentsteps__nr { width: 36px; height: 36px; border-radius: 50%; background: var(--zhf-dark); color: #fff; display: grid; place-items: center; font-weight: 700; margin-bottom: 6px; }
body .zhf-rentsteps a { color: var(--zhf-accent-dark); font-weight: 700; }

/* Modelkaarten */
.zhf-rentcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
body a.zhf-rentcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); overflow: hidden; color: var(--zhf-ink); text-decoration: none; transition: box-shadow .2s, transform .2s; }
body a.zhf-rentcard:hover { box-shadow: 0 16px 32px rgba(42, 23, 48, .12); transform: translateY(-2px); color: var(--zhf-ink); }
.zhf-rentcard__media { display: block; aspect-ratio: 994 / 623; background: var(--zhf-surface); overflow: hidden; }
.zhf-rentcard__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zhf-rentcard__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 20px; flex: 1; }
.zhf-rentcard__title { font-family: var(--zhf-font-head); font-size: 19px; font-weight: 600; letter-spacing: -.3px; }
.zhf-rentcard__text { font-size: 14px; line-height: 1.5; color: var(--zhf-muted); flex: 1; }
.zhf-rentcard__price { margin-top: 8px; font-family: var(--zhf-font-head); font-size: 22px; font-weight: 700; color: var(--zhf-accent-dark); }
.zhf-rentcard__price small { display: block; font-family: var(--zhf-font-body); font-size: 12px; font-weight: 600; color: var(--zhf-muted); }
.zhf-rentform-anchor { scroll-margin-top: 100px; }
.zhf-rentpage .wpcf7 { scroll-margin-top: 100px; }

@media (max-width: 1024px) {
	.zhf-renthero__inner { grid-template-columns: 1fr; gap: 32px; }
	.zhf-renthero__media { order: -1; }
	.zhf-rentsteps, .zhf-rentcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.zhf-renthero__inner { padding-top: 20px; padding-bottom: 32px; }
	.zhf-renthero__intro { font-size: 16px; }
	.zhf-rentusps { flex-direction: column; gap: 8px; }
	.zhf-rentsection { padding: 44px 0; }
	.zhf-rentsteps, .zhf-rentcards { grid-template-columns: 1fr; }
	.zhf-renthero__cta .zhf-btn { flex: 1 1 100%; justify-content: center; }
}

/* =========================================================
   Contact en Reviews (v1.0.7)
   ========================================================= */
.zhf-special__head .zhf-eyebrow { margin: 18px 0 10px; }
.zhf-special__intro { font-size: 18px; line-height: 1.6; color: #4D3F50; margin: 14px 0 0; max-width: 640px; }
.zhf-special__headgrid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; }
.zhf-special__inner { max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)); margin: 0 auto; padding: 0 var(--zhf-gutter); }
.zhf-special__section { padding: 56px 0 0; }
.zhf-special__section--tight { padding: 56px 0 72px; }
.zhf-special__section--surface { background: var(--zhf-surface); padding: 56px 0; }
.zhf-special__h2 { font-family: var(--zhf-font-head); font-size: clamp(24px, 2.2vw, 30px); font-weight: 600; letter-spacing: -.6px; color: var(--zhf-ink); margin: 0 0 8px; }
.zhf-special__lead { font-size: 16px; color: var(--zhf-muted); margin: 0 0 24px; }

/* Contactkaarten */
.zhf-contactcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.zhf-contactcard { border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); padding: 28px; display: flex; flex-direction: column; gap: 6px; background: #fff; }
.zhf-contactcard__icon { width: 48px; height: 48px; border-radius: 50%; background: var(--zhf-accent-soft); color: var(--zhf-accent-dark); display: grid; place-items: center; margin-bottom: 10px; }
.zhf-contactcard__label { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--zhf-muted); }
body .zhf-contactcard__value { font-family: var(--zhf-font-head); font-size: 22px; font-weight: 700; color: var(--zhf-ink); text-decoration: none; overflow-wrap: anywhere; }
body a.zhf-contactcard__value:hover { color: var(--zhf-accent-dark); }
.zhf-contactcard__text { margin: 4px 0 0; font-size: 14px; line-height: 1.5; color: var(--zhf-muted); }
body .zhf-contactcard__text a { color: var(--zhf-accent-dark); font-weight: 600; }

/* Formulier + openingstijden */
.zhf-contactgrid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; }
.zhf-contactform .wpcf7 { padding: 28px; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); background: #fff; }
.zhf-contactform .wpcf7 form > p, .zhf-contactform .wpcf7 p { margin: 0 0 14px; }
.zhf-contactform .wpcf7 label { display: block; font-size: 14px; font-weight: 600; color: var(--zhf-ink); }
.zhf-contactform .wpcf7 input[type="text"], .zhf-contactform .wpcf7 input[type="email"], .zhf-contactform .wpcf7 input[type="tel"], .zhf-contactform .wpcf7 textarea, .zhf-contactform .wpcf7 select {
	width: 100%; height: 48px; margin-top: 6px; padding: 0 14px; border: 1px solid var(--zhf-line-strong); border-radius: var(--zhf-radius-sm); font: inherit; font-size: 16px; color: var(--zhf-ink); background: #fff;
}
.zhf-contactform .wpcf7 textarea { height: auto; min-height: 140px; padding: 12px 14px; }
.zhf-contactform .wpcf7 input:focus, .zhf-contactform .wpcf7 textarea:focus { border-color: var(--zhf-accent-dark); outline: 3px solid rgba(15, 167, 147, .18); }
.zhf-contactform .wpcf7 input[type="submit"] { height: 52px; padding: 0 28px; border: 0; border-radius: var(--zhf-radius-sm); background: var(--zhf-accent-dark); color: #fff; font-weight: 700; font-size: 16px; cursor: pointer; }
.zhf-contactform .wpcf7 input[type="submit"]:hover { background: var(--zhf-dark); }
.zhf-contactform .wpcf7-response-output { border-radius: var(--zhf-radius-sm); margin: 16px 0 0 !important; padding: 12px 16px !important; }
.zhf-contactaside { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 24px; }
.zhf-hours { width: 100%; border-collapse: collapse; font-size: 14px; margin: 6px 0 12px; }
.zhf-hours th, .zhf-hours td { text-align: left; padding: 8px 0; border-bottom: 1px solid var(--zhf-line-strong); vertical-align: top; font-weight: 400; color: var(--zhf-ink); background: none; }
.zhf-hours th { width: 40%; font-weight: 600; }
.zhf-hours tr.is-today th, .zhf-hours tr.is-today td { color: var(--zhf-accent-dark); font-weight: 700; }
.zhf-hours__note { font-size: 13px !important; line-height: 1.5; color: var(--zhf-muted); margin: 0 !important; }
.zhf-legal { border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); padding: 20px 24px; font-size: 13px; color: var(--zhf-muted); }
.zhf-legal__title { margin: 0 0 8px; font-weight: 700; color: var(--zhf-ink); font-size: 14px; }
.zhf-legal dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; margin: 0; }
.zhf-legal dt { font-weight: 600; }
.zhf-legal dd { margin: 0; color: var(--zhf-ink); }
.zhf-contactfaq { display: flex; justify-content: space-between; align-items: center; gap: 24px 40px; flex-wrap: wrap; }
.zhf-contactfaq .zhf-special__lead { margin: 0; }
.zhf-contactfaq__links { display: flex; flex-wrap: wrap; gap: 10px; }

/* Reviews */
.zhf-special__score { display: grid; justify-items: end; gap: 4px; text-align: right; }
.zhf-special__scorevalue { font-family: var(--zhf-font-head); font-size: 72px; font-weight: 700; line-height: 1; letter-spacing: -2px; color: var(--zhf-accent-dark); }
.zhf-special__stars { color: var(--zhf-gold); font-size: 22px; letter-spacing: 2px; }
.zhf-special__scoretext { font-size: 14px; color: var(--zhf-muted); }
.zhf-reviewsbody { padding-top: 48px; padding-bottom: 88px; }
.zhf-reviewsbody .zhf-textpage__content { max-width: 860px; }
.zhf-reviewsbody iframe.wwk-widget-iframe { width: 100% !important; max-width: 860px; border: 1px solid var(--zhf-line) !important; border-radius: var(--zhf-radius); }

@media (max-width: 1024px) {
	.zhf-contactcards { grid-template-columns: 1fr; }
	.zhf-contactgrid { grid-template-columns: 1fr; gap: 40px; }
	.zhf-contactaside { position: static; }
	.zhf-special__headgrid { grid-template-columns: 1fr; gap: 20px; }
	.zhf-special__score { justify-items: start; text-align: left; }
}
@media (max-width: 767px) {
	.zhf-special__intro { font-size: 16px; }
	.zhf-contactform .wpcf7 { padding: 20px; }
	.zhf-special__scorevalue { font-size: 56px; }
}

/* Over ons (v1.0.8) */
.zhf-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.zhf-stats li { border-left: 3px solid var(--zhf-accent); padding: 4px 0 4px 18px; display: flex; flex-direction: column; gap: 4px; }
.zhf-stats strong { font-family: var(--zhf-font-head); font-size: 40px; font-weight: 700; letter-spacing: -1px; line-height: 1; color: var(--zhf-ink); }
.zhf-stats span { font-size: 14px; color: var(--zhf-muted); }
.zhf-whatcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.zhf-whatcard { border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); padding: 24px; display: flex; flex-direction: column; gap: 10px; background: #fff; }
.zhf-whatcard h3 { font-family: var(--zhf-font-head); font-size: 20px; font-weight: 600; letter-spacing: -.3px; margin: 0; color: var(--zhf-ink); }
.zhf-whatcard p { margin: 0; font-size: 15px; line-height: 1.55; color: #4D3F50; flex: 1; }
.zhf-about__vision { max-width: 860px; }
.zhf-about__vision blockquote { margin: 8px 0 20px; padding: 0; border: 0; font-family: var(--zhf-font-head); font-size: clamp(24px, 2.6vw, 36px); font-weight: 600; letter-spacing: -.8px; line-height: 1.25; color: var(--zhf-ink); }
.zhf-about__vision p:last-child { font-size: 17px; line-height: 1.7; color: #4D3F50; margin: 0; }
.zhf-checklist { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 16px; color: var(--zhf-ink); }
.zhf-checklist li { position: relative; padding-left: 30px; line-height: 1.5; }
.zhf-checklist li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 12px; height: 7px; border-left: 2.2px solid var(--zhf-accent-dark); border-bottom: 2.2px solid var(--zhf-accent-dark); transform: rotate(-45deg); }
@media (max-width: 1024px) {
	.zhf-stats, .zhf-whatcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.zhf-whatcards { grid-template-columns: 1fr; }
	.zhf-stats strong { font-size: 32px; }
}
body .zhf-hours th, body .zhf-hours td { border: 0 !important; border-bottom: 1px solid var(--zhf-line-strong) !important; background: transparent !important; padding: 8px 0 !important; }
body .zhf-hours tr:last-child th, body .zhf-hours tr:last-child td { border-bottom: 0 !important; }

/* =========================================================
   Zoeken, 404 en berichtenoverzicht (v1.0.9)
   ========================================================= */
.zhf-textpage__lead { font-size: 18px; line-height: 1.6; color: #4D3F50; margin: 14px 0 0; max-width: 640px; }
.zhf-404 .zhf-eyebrow { margin: 0 0 12px; }
.zhf-bigsearch { margin-top: 24px; max-width: 640px; }
.zhf-bigsearch form { display: flex; gap: 8px; }
.zhf-bigsearch input[type="search"], .zhf-bigsearch .dgwt-wcas-search-input {
	flex: 1; height: 54px !important; padding: 0 18px !important; border: 1px solid var(--zhf-line-strong) !important; border-radius: var(--zhf-radius-sm) !important;
	background: #fff !important; font-size: 16px !important; color: var(--zhf-ink);
}
.zhf-bigsearch button[type="submit"] { height: 54px; padding: 0 24px; border: 0; border-radius: var(--zhf-radius-sm); background: var(--zhf-accent-dark); color: #fff; font-weight: 700; cursor: pointer; }
.zhf-bigsearch .dgwt-wcas-search-wrapp { max-width: none !important; }
.zhf-searchpage__body { max-width: calc(var(--zhf-max) + 2 * var(--zhf-gutter)); margin: 0 auto; padding: 48px var(--zhf-gutter) 96px; }
.zhf-searchpage__section + .zhf-searchpage__section { margin-top: 56px; }
.zhf-searchpage__headrow { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.zhf-searchpage__headrow h2 { font-family: var(--zhf-font-head); font-size: 26px; font-weight: 600; letter-spacing: -.5px; margin: 0; color: var(--zhf-ink); }
.zhf-resultlist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--zhf-line); max-width: 860px; }
.zhf-resultlist li { border-bottom: 1px solid var(--zhf-line); }
body .zhf-resultlist a { display: flex; flex-direction: column; gap: 4px; padding: 18px 4px; color: var(--zhf-ink); text-decoration: none; }
body .zhf-resultlist a:hover .zhf-resultlist__title { color: var(--zhf-accent-dark); }
.zhf-resultlist__type { font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--zhf-muted); }
.zhf-resultlist__title { font-family: var(--zhf-font-head); font-size: 19px; font-weight: 600; letter-spacing: -.2px; }
.zhf-resultlist__text { font-size: 15px; line-height: 1.55; color: #4D3F50; }
.zhf-nothing { max-width: 760px; }
.zhf-nothing h2 { font-family: var(--zhf-font-head); font-size: 26px; font-weight: 600; letter-spacing: -.5px; margin: 0 0 8px; color: var(--zhf-ink); }
.zhf-nothing p { font-size: 16px; color: #4D3F50; margin: 0 0 20px; }
.zhf-nothing__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.zhf-nothing__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.zhf-nothing__cta .zhf-btn { min-height: 50px; padding: 0 22px; }

/* Berichtenkaarten */
.zhf-postcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body a.zhf-postcard { display: flex; flex-direction: column; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius); overflow: hidden; background: #fff; color: var(--zhf-ink); text-decoration: none; transition: box-shadow .2s, transform .2s; }
body a.zhf-postcard:hover { box-shadow: 0 16px 32px rgba(42, 23, 48, .12); transform: translateY(-2px); color: var(--zhf-ink); }
.zhf-postcard__media { display: block; aspect-ratio: 16 / 10; background: var(--zhf-surface); overflow: hidden; }
.zhf-postcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zhf-postcard__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 22px; }
.zhf-postcard__date { font-size: 13px; color: var(--zhf-muted); }
.zhf-postcard__title { font-family: var(--zhf-font-head); font-size: 19px; font-weight: 600; letter-spacing: -.3px; line-height: 1.3; }
.zhf-postcard__text { font-size: 14px; line-height: 1.55; color: #4D3F50; }
.zhf-pagination { margin-top: 40px; }
.zhf-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.zhf-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--zhf-line); border-radius: var(--zhf-radius-sm); color: var(--zhf-ink) !important; text-decoration: none; font-weight: 600; }
.zhf-pagination .page-numbers.current { background: var(--zhf-dark); border-color: var(--zhf-dark); color: #fff !important; }
@media (max-width: 1024px) { .zhf-postcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.zhf-postcards { grid-template-columns: 1fr; }
	.zhf-bigsearch form { flex-direction: column; }
	.zhf-searchpage__body { padding-top: 32px; padding-bottom: 72px; }
}
body .site-main.zhf-textpage { max-width: none !important; width: 100%; margin: 0; padding: 0; }
.zhf-bigsearch .dgwt-wcas-search-input { padding-left: 46px !important; }
.zhf-bigsearch .dgwt-wcas-ico-magnifier { left: 16px !important; }

/* Cookiebanner (CookieYes) in de huisstijl. Kleuren staan inline, vandaar !important. */
.cky-consent-container .cky-consent-bar, .cky-modal { border-radius: var(--zhf-radius) !important; border: 1px solid var(--zhf-line) !important; box-shadow: 0 24px 48px rgba(42, 23, 48, .18) !important; font-family: var(--zhf-font-body) !important; }
.cky-consent-container .cky-title, .cky-modal .cky-preference-title { font-family: var(--zhf-font-head) !important; font-weight: 600 !important; letter-spacing: -.3px; color: var(--zhf-ink) !important; }
.cky-consent-container .cky-notice-des, .cky-consent-container .cky-notice-des p, .cky-modal .cky-preference-content-wrapper, .cky-modal .cky-accordion-header-des { color: #4D3F50 !important; }
.cky-consent-container .cky-btn, .cky-modal .cky-btn { border-radius: var(--zhf-radius-sm) !important; font-family: var(--zhf-font-body) !important; font-weight: 700 !important; min-height: 46px; }
.cky-consent-container .cky-btn-customize, .cky-consent-container .cky-btn-reject, .cky-modal .cky-btn-reject, .cky-modal .cky-btn-preferences {
	background: #fff !important; color: var(--zhf-dark) !important; border: 1.5px solid var(--zhf-dark) !important;
}
.cky-consent-container .cky-btn-customize:hover, .cky-consent-container .cky-btn-reject:hover, .cky-modal .cky-btn-reject:hover, .cky-modal .cky-btn-preferences:hover { background: var(--zhf-dark) !important; color: #fff !important; opacity: 1 !important; }
.cky-consent-container .cky-btn-accept, .cky-modal .cky-btn-accept { background: var(--zhf-accent-dark) !important; color: #fff !important; border: 1.5px solid var(--zhf-accent-dark) !important; }
.cky-consent-container .cky-btn-accept:hover, .cky-modal .cky-btn-accept:hover { background: var(--zhf-dark) !important; border-color: var(--zhf-dark) !important; opacity: 1 !important; }
.cky-modal .cky-switch input[type="checkbox"]:checked { background: var(--zhf-accent-dark) !important; }
.cky-modal .cky-show-desc-btn, .cky-modal .cky-accordion-btn, .cky-consent-container .cky-policy { color: var(--zhf-accent-dark) !important; }
.cky-btn-revisit-wrapper { background: var(--zhf-dark) !important; }
.zhf-bigsearch input.dgwt-wcas-search-input[type="search"] { padding-left: 46px !important; }

/* Kernpunten (v1.0.10) */
.zhf-highlights { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.zhf-highlights li {
	display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px 0 12px;
	background: var(--zhf-surface); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--zhf-ink);
}
.zhf-highlights li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--zhf-accent); flex: none; }
.zhf-cardhighlights {
	display: block; padding: 0 20px; margin: -4px 0 8px; font-size: 13px; font-weight: 600; color: var(--zhf-muted);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (max-width: 767px) { .zhf-cardhighlights { padding: 0 12px; font-size: 12px; white-space: normal; } }

/* Aanbieding-label op de productpagina (Elementor overschrijft de opmaak) */
.zhf-pgallery { position: relative; }
.zhf-pgallery span.onsale {
	top: 1px !important; left: 1px !important; padding: 10px 14px !important; font-size: 13px !important; font-weight: 700 !important; line-height: 1 !important;
	background: var(--zhf-accent-dark) !important; color: #fff !important; border-radius: var(--zhf-radius) 0 var(--zhf-radius) 0 !important; min-height: 0 !important; min-width: 0 !important;
}

/* Gegroepeerde specificaties (v1.0.11) */
.zhf-specgroups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 48px; align-items: start; }
.zhf-specgroups--single { grid-template-columns: minmax(0, 860px); }
.zhf-specgroup__title { font-family: var(--zhf-font-head); font-size: 18px; font-weight: 600; letter-spacing: -.2px; color: var(--zhf-ink); margin: 0 0 10px; }
.zhf-spectable { width: 100%; border-collapse: collapse; border: 0; margin: 0; font-size: 15px; }
body .zhf-spectable th, body .zhf-spectable td { padding: 11px 14px !important; border: 0 !important; text-align: left; vertical-align: top; background: transparent; line-height: 1.5; }
body .zhf-spectable tr:nth-child(odd) th, body .zhf-spectable tr:nth-child(odd) td { background: var(--zhf-surface) !important; }
body .zhf-spectable tr:nth-child(even) th, body .zhf-spectable tr:nth-child(even) td { background: #fff !important; }
.zhf-spectable th { width: 42%; font-weight: 400; color: var(--zhf-muted); border-radius: var(--zhf-radius-sm) 0 0 var(--zhf-radius-sm); }
.zhf-spectable td { color: var(--zhf-ink); border-radius: 0 var(--zhf-radius-sm) var(--zhf-radius-sm) 0; }
.zhf-spectable td p { margin: 0; }
.zhf-spectable td a { color: var(--zhf-ink); }
@media (max-width: 900px) { .zhf-specgroups { grid-template-columns: 1fr; } }

/* Productstaat-label: zelfde vorm als het Aanbieding-label, maar gespiegeld rechtsboven (strak tegen de rand) */
.zhf-condition {
	position: absolute; z-index: 3; top: 0; right: 0; left: auto;
	padding: 9px 12px; border-radius: 0 var(--zhf-radius) 0 var(--zhf-radius); font-size: 12px; font-weight: 700; line-height: 1; letter-spacing: .1px;
	background: var(--zhf-dark); color: #fff; pointer-events: none;
}
.zhf-condition--nieuw { background: var(--zhf-gold); color: var(--zhf-dark); }
/* Productpagina: tegen de rand van de foto (net als Aanbieding); het vergrootglas schuift eronder */
.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery .zhf-condition { top: 1px; right: 1px; padding: 10px 14px; font-size: 13px; }
.woocommerce-product-gallery:has(> .zhf-condition) .woocommerce-product-gallery__trigger { top: 52px !important; }
@media (max-width: 767px) {
	.zhf-condition { font-size: 10px; padding: 6px 8px; }
	.woocommerce-product-gallery .zhf-condition { font-size: 11px; padding: 8px 10px; }
	.woocommerce-product-gallery:has(> .zhf-condition) .woocommerce-product-gallery__trigger { top: 44px !important; }
}

/* =========================================================
   Filters: sticky op desktop, uitschuifpaneel op mobiel (v1.0.13)
   ========================================================= */
.zhf-filters__open, .zhf-filters__overlay, .zhf-filters__head, .zhf-filters__foot { display: none; }
.zhf-filters__panel { display: contents; }
.zhf-filters__sentinel { height: 1px; margin-bottom: -1px; }

@media (min-width: 768px) {
	.zhf-filters {
		position: sticky; top: 0; z-index: 25;
		background: #fff; padding: 12px 0;
		/* Witte achtergrond over de volle breedte, zonder horizontale scroll of afgesneden uitklappanelen */
		box-shadow: -50vmax 0 #fff, 50vmax 0 #fff, -100vmax 0 #fff, 100vmax 0 #fff;
	}
	.admin-bar .zhf-filters { top: 32px; }
	.zhf-filters.is-stuck { border-bottom: 1px solid var(--zhf-line); box-shadow: -50vmax 0 #fff, 50vmax 0 #fff, -100vmax 0 #fff, 100vmax 0 #fff, 0 1px 0 var(--zhf-line), -50vmax 1px 0 var(--zhf-line), 50vmax 1px 0 var(--zhf-line), -100vmax 1px 0 var(--zhf-line), 100vmax 1px 0 var(--zhf-line); }
	.zhf-filters.is-stuck .zhf-filters__active { margin-top: 8px; }
}

@media (max-width: 767px) {
	html.zhf-noscroll, html.zhf-noscroll body { overflow: hidden; }
	.zhf-filters__open {
		display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px;
		border: 1px solid var(--zhf-dark) !important; border-radius: 999px !important; background: #fff !important; color: var(--zhf-ink) !important;
		font-family: var(--zhf-font-body); font-size: 15px !important; font-weight: 600 !important; cursor: pointer;
	}
	.zhf-filters__open .zhf-icon { color: var(--zhf-accent-dark); }
	.zhf-filters__overlay:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 2147483000; background: rgba(21, 12, 24, .5); }
	.zhf-filters__panel {
		display: flex; flex-direction: column;
		position: fixed; z-index: 2147483001; top: 0; right: 0; bottom: 0; width: min(420px, 90vw);
		background: #fff; box-shadow: -16px 0 40px rgba(21, 12, 24, .25);
		transform: translateX(105%); transition: transform .25s ease; visibility: hidden;
	}
	.zhf-filters.is-open .zhf-filters__panel { transform: none; visibility: visible; }
	.zhf-filters__head { display: flex; align-items: center; justify-content: space-between; padding: 14px 12px 14px 20px; border-bottom: 1px solid var(--zhf-line); }
	.zhf-filters__title { margin: 0; font-family: var(--zhf-font-head); font-size: 20px; font-weight: 600; color: var(--zhf-ink); }
	body .zhf-filters__close { width: 44px; height: 44px; border: 0 !important; background: none !important; color: var(--zhf-ink) !important; font-size: 30px !important; line-height: 1; cursor: pointer; padding: 0 !important; }
	.zhf-filters .zhf-filters__bar { display: block !important; flex: 1; overflow-y: auto; margin: 0 !important; padding: 0 20px !important; }
	.zhf-filters .zhf-filters__label { display: none; }
	.zhf-filters .zhf-filter { position: static; border-bottom: 1px solid var(--zhf-line); }
	.zhf-filters .zhf-filter > summary { display: flex; width: 100%; height: 56px; padding: 0; border: 0 !important; border-radius: 0; background: transparent !important; justify-content: space-between; font-size: 16px; }
	.zhf-filters .zhf-filter > summary::after { margin-left: auto; }
	.zhf-filters .zhf-filter > summary .zhf-filter__n { margin-left: 8px; }
	.zhf-filters .zhf-filter__panel { position: static !important; width: auto !important; max-width: none !important; max-height: none !important; padding: 0 0 16px !important; border: 0 !important; box-shadow: none !important; }
	.zhf-filters .zhf-filter__options { max-height: none; margin: 0 -6px; }
	.zhf-filters .zhf-filter__apply { display: none !important; }
	.zhf-filters__foot { display: flex; align-items: center; gap: 16px; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--zhf-line); }
	.zhf-filters__foot .zhf-btn { flex: 1; justify-content: center; min-height: 50px; border: 0; font-size: 16px; cursor: pointer; }
	body .zhf-filters__reset { font-size: 14px; font-weight: 600; color: var(--zhf-ink); text-decoration: underline; }
}
/* WebwinkelKeur-badge verbergen zolang het filterpaneel open is */
html.zhf-noscroll [class*="wwk-sidebar"], html.zhf-noscroll [id^="wwkSidebar"] { display: none !important; }

/* Nieuwsbrief in de footer: velden naast elkaar vanaf tablet (mobiel blijft onder elkaar) */
@media (min-width: 768px) {
	.zhf-footer__top { flex-wrap: wrap; }
	.zhf-footer__top > .e-con:first-child { flex: 1 1 280px !important; width: auto !important; min-width: 0; }
	.zhf-footer__nl-form { flex: 0 1 660px !important; width: auto !important; max-width: 100%; }
	.zhf-footer__nl-form .mailster-form { max-width: none !important; width: 100%; margin: 0; }
	.zhf-footer__nl-form .mailster-form-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; column-gap: 12px; row-gap: 12px; align-items: end; }
	.zhf-footer__nl-form .mailster-form-fields > * { margin: 0 !important; padding: 0 !important; width: auto !important; }
	.zhf-footer__nl-form .mailster-form-fields input[type="text"],
	.zhf-footer__nl-form .mailster-form-fields input[type="email"] { width: 100% !important; }
	.zhf-footer__nl-form .mailster-form-fields > .mailster-wrapper:not(.mailster-submit-wrapper):not(.mailster-_gdpr-wrapper) { grid-row: 1; }
	.zhf-footer__nl-form .mailster-submit-wrapper { grid-row: 1; grid-column: 3; }
	.zhf-footer__nl-form .mailster-submit-wrapper input[type="submit"],
	.zhf-footer__nl-form .mailster-submit-wrapper .submit-button { white-space: nowrap; }
	.zhf-footer__nl-form .mailster-_gdpr-wrapper { grid-row: 2; grid-column: 1 / -1; font-size: 13px; opacity: .85; }
	.zhf-footer__nl-form .mailster-form-fields > :not(.mailster-wrapper) { grid-column: 1 / -1; grid-row: 3; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.zhf-footer__nl-form { flex-basis: 100% !important; }
}

/* Productpagina: bovenste deel (kruimelpad, foto's, koopblok) op lichtgrijs, zoals in het ontwerp */
.e-con:has(> .zhf-crumbs),
.zhf-pcrumbs,
.zhf-pmain { background-color: var(--zhf-surface); }
.zhf-pmain .zhf-buybox { background: #fff; }
.zhf-pmain .zhf-highlights li { background: #fff; border: 1px solid var(--zhf-line); }
.zhf-pmain .zhf-promises,
.zhf-pmain .zhf-advice { background: transparent; }

/* Kruimelpad: huidige pagina donkerder en iets vetter */
.woocommerce-breadcrumb .zhf-crumb:last-child { color: var(--zhf-ink); font-weight: 600; }

/* Ondertitel onder de producttitel */
.zhf-psubtitle { margin: 10px 0 0; font-size: 18px; line-height: 1.45; color: var(--zhf-muted); }
@media (max-width: 767px) { .zhf-psubtitle { font-size: 16px; } }

/* Hoofdfoto in een wit kader */
/* Padding op de link binnen de slide: flexslider rekent padding op de slide zelf van de breedte af */
.zhf-pgallery .woocommerce-product-gallery__image { background: #fff; }
.zhf-pgallery .woocommerce-product-gallery__image > a { display: block; padding: 56px; background: #fff; }
@media (max-width: 1024px) { .zhf-pgallery .woocommerce-product-gallery__image > a { padding: 36px; } }
@media (max-width: 767px) { .zhf-pgallery .woocommerce-product-gallery__image > a { padding: 20px; } }

/* bol.checkout-label onder de koopknop */
.zhf-bollabel { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--zhf-line); }

/* Productnavigatie: actief onderdeel onderstreept (assets/js/zhf-pnav.js) */
body .zhf-pnav__links a.is-active { color: var(--zhf-ink); border-bottom-color: var(--zhf-accent); }

/* Primaire knoppen (turquoise en donker) altijd met een pijltje */
.zhf-ebtn--accent .elementor-button::after,
.zhf-ebtn--dark .elementor-button::after,
a.zhf-btn--arrow::after {
	content: "";
	width: 18px;
	height: 18px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .15s ease;
}
.zhf-ebtn--accent .elementor-button:hover::after,
.zhf-ebtn--dark .elementor-button:hover::after,
a.zhf-btn--arrow:hover::after { transform: translateX(3px); }

/* Gereserveerde plek (alleen zichtbaar voor beheerders) */
.zhf-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 180px; padding: 24px; border: 2px dashed var(--zhf-line-strong); border-radius: var(--zhf-radius); background: rgba(255,255,255,.6); color: var(--zhf-muted); font-weight: 600; text-align: center; }
.zhf-placeholder small { font-weight: 400; font-size: 13px; }
.zhf-reviews-slot { width: 100%; }

/* Showroomfoto op de homepage */
.zhf-showroom-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--zhf-radius); }

/* Reviews op de homepage ("Klanten over ons"): smalle kolom links, drie reviews rechts.
   Gericht op .zhf-reviews-slot, zodat het ook werkt op een homepage die al met de hand is aangepast. */
.e-con:has(> .zhf-reviews-slot) .wsr-reviews-container { margin: 0; }
@media (min-width: 1025px) {
	.e-con:has(> .e-con > .zhf-reviews-slot) { --gap: 48px 48px !important; }
	.e-con:has(> .e-con > .zhf-reviews-slot) > .e-con:not(:has(> .zhf-reviews-slot)) { --width: 28% !important; }
	.e-con:has(> .zhf-reviews-slot) { --width: 72% !important; }
}
@media (max-width: 1024px) {
	.e-con:has(> .e-con > .zhf-reviews-slot) { --flex-direction: column !important; --align-items: flex-start !important; flex-direction: column !important; }
	.e-con:has(> .e-con > .zhf-reviews-slot) > .e-con { --width: 100% !important; }
}
@media (min-width: 768px) {
	.zhf-reviews-slot .wsr-service-reviews .wsr-reviews-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
.zhf-reviews-slot .wsr-review-item { border-color: var(--zhf-line); border-radius: var(--zhf-radius); padding: 18px; }
.zhf-reviews-slot .wsr-review-title { color: var(--zhf-ink); }
.zhf-reviews-slot .wsr-review-verified { color: var(--zhf-accent-dark); }
