/**
 * Expert Zorg — webshop styling (archief, productpagina, header, blokken).
 * Huisstijl: groen #1f9d3f, donkergroen #14351f, crème #f7f6f0.
 * Typografie: Futura PT (koppen) + Myriad Pro (lopende tekst) — Adobe Fonts.
 */

:root {
	--ezorg-groen: #1f9d3f;
	--ezorg-groen-hover: #187f32;
	--ezorg-groen-donker: #14351f;
	--ezorg-groen-licht: #e9f1e4;
	--ezorg-creme: #f7f6f0;
	--ezorg-inkt: #1b2b1e;
	--ezorg-grijs: #6b7267;
	--ezorg-lijn: #e3e2da;
	--ezorg-wit: #fff;

	--ezorg-font-head: "futura-pt", "Futura PT", Futura, "Century Gothic", "Trebuchet MS", sans-serif;
	--ezorg-font-body: "myriad-pro", "Myriad Pro", "Segoe UI", system-ui, -apple-system, sans-serif;

	--ezorg-radius: 12px;
	--ezorg-radius-sm: 10px;
	--ezorg-wrap: 1100px;
}

/* =====================================================================
 * Basis / scoping
 * ================================================================== */
.ezorg-shop,
.ezorg-single,
.ezorg-header-wrap,
.ezorg-topbar,
.ezorg-header,
.ezorg-nav {
	font-family: var(--ezorg-font-body);
	color: var(--ezorg-inkt);
	font-size: 15px;
	line-height: 1.55;
	box-sizing: border-box;
}

.ezorg-shop *,
.ezorg-single *,
.ezorg-header-wrap *,
.ezorg-topbar *,
.ezorg-header *,
.ezorg-nav * { box-sizing: border-box; }

.ezorg-shop,
.ezorg-single { background: var(--ezorg-creme); padding: 24px 0 56px; }

.ezorg-wrap {
	max-width: var(--ezorg-wrap);
	margin: 0 auto;
	padding: 0 24px;
}

.ezorg-shop img,
.ezorg-single img { max-width: 100%; height: auto; }

.ezorg-shop a,
.ezorg-single a { color: inherit; text-decoration: none; }

.ezorg-shop h1, .ezorg-shop h2, .ezorg-shop h3,
.ezorg-single h1, .ezorg-single h2, .ezorg-single h3,
.ezorg-header-wrap h1, .ezorg-header-wrap h2, .ezorg-header-wrap h3 {
	font-family: var(--ezorg-font-head);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0;
}

.ezorg-icon { display: block; flex: 0 0 auto; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

/* =====================================================================
 * Knoppen
 * ================================================================== */
.ezorg-btn,
a.ezorg-btn,
.ezorg-shop .button,
.ezorg-single .button,
.ezorg-single button[type="submit"].single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--ezorg-groen);
	color: #fff;
	font-family: var(--ezorg-font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.ezorg-btn:hover,
.ezorg-shop .button:hover,
.ezorg-single .button:hover { background: var(--ezorg-groen-hover); color: #fff; }

.ezorg-btn--sm { padding: 8px 16px; font-size: 13px; }
.ezorg-btn--block { display: flex; width: 100%; }

.ezorg-btn--line {
	background: transparent;
	border: 1.5px solid var(--ezorg-inkt);
	color: var(--ezorg-inkt);
}
.ezorg-btn--line:hover { background: var(--ezorg-inkt); color: #fff; }

.ezorg-btn--dark { background: var(--ezorg-groen-donker); }
.ezorg-btn--dark:hover { background: #0d2415; }

/* =====================================================================
 * Header — USP-balk
 * ================================================================== */
.ezorg-topbar { background: var(--ezorg-groen-donker); color: #dfe8d9; font-size: 12px; }

.ezorg-topbar__in {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	padding-top: 7px;
	padding-bottom: 7px;
}

.ezorg-topbar__usps {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ezorg-topbar__usps li { display: flex; align-items: center; gap: 7px; }

.ezorg-dot {
	width: 5px; height: 5px;
	border-radius: 999px;
	background: var(--ezorg-groen);
}

.ezorg-topbar__note { margin: 0; }
.ezorg-topbar__note a { color: #fff; font-weight: 700; text-decoration: none; }

/* =====================================================================
 * Header — hoofdbalk
 * ================================================================== */
.ezorg-header { background: #fff; border-bottom: 1px solid var(--ezorg-lijn); }

.ezorg-header__in {
	display: flex;
	align-items: center;
	gap: 26px;
	padding-top: 16px;
	padding-bottom: 16px;
}

.ezorg-logo { flex: 0 0 auto; text-decoration: none; color: inherit; }
.ezorg-logo__img { display: block; max-height: 46px; width: auto; }

.ezorg-logo__text {
	font-family: var(--ezorg-font-head);
	font-size: 24px;
	font-weight: 400;
	letter-spacing: -0.5px;
	white-space: nowrap;
	color: var(--ezorg-inkt);
}
.ezorg-logo__text b { font-weight: 800; }

.ezorg-logo__plus {
	display: inline-block;
	margin: 0 3px;
	padding: 1px 6px;
	border-radius: 6px;
	background: var(--ezorg-groen);
	color: #fff;
	font-size: 16px;
	line-height: 1.3;
	vertical-align: 2px;
}

.ezorg-search {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
	padding: 4px 4px 4px 18px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: var(--ezorg-creme);
}

.ezorg-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 14px;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}

.ezorg-header__icons { display: flex; align-items: center; gap: 18px; flex: 0 0 auto; }

.ezorg-hicon {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	color: var(--ezorg-inkt);
	text-decoration: none;
}
.ezorg-hicon small { font-size: 10.5px; color: var(--ezorg-grijs); }
.ezorg-hicon:hover { color: var(--ezorg-groen-hover); }

.ezorg-cart-count {
	position: absolute;
	top: -5px; right: -7px;
	min-width: 17px;
	padding: 1px 5px;
	border-radius: 999px;
	background: var(--ezorg-groen);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}
.ezorg-cart-count:not(.has-items) { display: none; }

.ezorg-tel-btn {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 7px 14px;
	border: 1.5px solid var(--ezorg-groen);
	border-radius: 12px;
	background: var(--ezorg-groen-licht);
	color: var(--ezorg-groen-donker);
	text-decoration: none;
}
.ezorg-tel-btn__icon { color: var(--ezorg-groen); }
.ezorg-tel-btn__txt { display: flex; flex-direction: column; line-height: 1.25; }
.ezorg-tel-btn__txt small { font-size: 10.5px; color: var(--ezorg-grijs); }
.ezorg-tel-btn__txt b { font-size: 14.5px; }

/* =====================================================================
 * Header — navigatie
 * ================================================================== */
.ezorg-nav { background: #fff; border-bottom: 1px solid var(--ezorg-lijn); }

.ezorg-nav__in { display: flex; align-items: center; gap: 4px; }

.ezorg-nav__menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ezorg-nav__menu li { margin: 0; }

.ezorg-nav__menu a {
	display: block;
	padding: 11px 12px;
	border-bottom: 3px solid transparent;
	color: var(--ezorg-inkt);
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
}
.ezorg-nav__menu a:hover { color: var(--ezorg-groen-hover); }

.ezorg-nav__menu .current-menu-item > a,
.ezorg-nav__menu .current-menu-ancestor > a,
.ezorg-nav__menu .current-product-ancestor > a {
	color: var(--ezorg-groen-hover);
	border-bottom-color: var(--ezorg-groen);
}

/* Uitklapmenu — subcategorieën horen niet plat in de balk */
.ezorg-nav__menu > li { position: relative; }

.ezorg-nav__menu > li.menu-item-has-children > a { padding-right: 26px; }

.ezorg-nav__menu > li.menu-item-has-children > a::after {
	content: "";
	position: absolute;
	right: 11px;
	top: 50%;
	width: 6px; height: 6px;
	margin-top: -4px;
	border: solid currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
	opacity: .55;
	transition: transform .15s ease;
}
.ezorg-nav__menu > li.menu-item-has-children.is-open > a::after { transform: rotate(-135deg); margin-top: -1px; }

.ezorg-nav__menu .sub-menu {
	position: absolute;
	left: 0;
	top: 100%;
	z-index: 95;
	display: block;
	min-width: 220px;
	margin: 0;
	padding: 6px 0;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #fff;
	box-shadow: 0 12px 28px rgba(20, 53, 31, .12);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity .14s ease, transform .14s ease, visibility .14s;
}

.ezorg-nav__menu > li:hover > .sub-menu,
.ezorg-nav__menu > li:focus-within > .sub-menu,
.ezorg-nav__menu > li.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.ezorg-nav__menu .sub-menu a {
	padding: 8px 16px;
	border-bottom: 0;
	font-size: 13.5px;
	font-weight: 500;
	white-space: nowrap;
}
.ezorg-nav__menu .sub-menu a:hover { background: var(--ezorg-groen-licht); color: var(--ezorg-groen-donker); }
.ezorg-nav__menu .sub-menu .current-menu-item > a { border-bottom: 0; font-weight: 700; }

/* Derde niveau vouwen we in de tweede kolom, niet nog een laag diep */
.ezorg-nav__menu .sub-menu .sub-menu {
	position: static;
	display: block;
	min-width: 0;
	padding: 0 0 0 12px;
	border: 0;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: none;
}

.ezorg-nav__pill {
	margin-left: auto;
	padding: 7px 16px;
	border-radius: 999px;
	background: var(--ezorg-groen-licht);
	color: var(--ezorg-groen-donker);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.ezorg-nav__pill:hover { background: var(--ezorg-groen); color: #fff; }

.ezorg-header-wrap.is-sticky { position: sticky; top: 0; z-index: 90; }

/* =====================================================================
 * Kruimelpad + archiefkop
 * ================================================================== */
.ezorg-breadcrumb {
	margin-bottom: 18px;
	color: var(--ezorg-grijs);
	font-size: 12.5px;
}
.ezorg-breadcrumb a { color: var(--ezorg-grijs); }
.ezorg-breadcrumb a:hover { color: var(--ezorg-groen-hover); }
.ezorg-breadcrumb__sep { margin: 0 7px; color: #b9bdb4; }

.ezorg-shop__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 14px;
	margin-bottom: 8px;
}

.ezorg-shop__title {
	font-size: 34px;
	text-transform: uppercase;
	color: var(--ezorg-groen-donker);
	letter-spacing: -0.015em;
}

.ezorg-shop__count { color: var(--ezorg-grijs); font-size: 13.5px; }

.ezorg-shop__lead {
	max-width: 62ch;
	margin-bottom: 20px;
	color: var(--ezorg-grijs);
	font-size: 14.5px;
}
.ezorg-shop__lead p { margin: 0 0 8px; }
.ezorg-shop__lead p:last-child { margin-bottom: 0; }

/* Subcategorie-knoppen */
.ezorg-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }

.ezorg-pill {
	padding: 8px 16px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: #fff;
	color: var(--ezorg-inkt);
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.ezorg-pill:hover,
.ezorg-pill.is-active { border-color: var(--ezorg-groen); background: var(--ezorg-groen-licht); color: var(--ezorg-groen-donker); }

/* =====================================================================
 * Layout: zijbalk + hoofdkolom
 * ================================================================== */
.ezorg-shop__body {
	display: grid;
	grid-template-columns: 258px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.ezorg-shop__main { min-width: 0; }

/* =====================================================================
 * Filters
 * ================================================================== */
.ezorg-filters { display: flex; flex-direction: column; gap: 14px; }

.ezorg-filters__head { display: none; }

.ezorg-filter-group {
	padding: 6px 16px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
}

.ezorg-filter-group__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 12px 0;
	border: 0;
	background: none;
	color: var(--ezorg-inkt);
	font-family: var(--ezorg-font-head);
	font-size: 15px;
	font-weight: 800;
	text-align: left;
	cursor: pointer;
}
.ezorg-filter-group__title svg { color: var(--ezorg-grijs); transition: transform .15s ease; }
.ezorg-filter-group.is-open .ezorg-filter-group__title svg { transform: rotate(180deg); }

.ezorg-filter-group__body { padding-bottom: 14px; display: flex; flex-direction: column; gap: 9px; }
.ezorg-filter-group:not(.is-open) .ezorg-filter-group__body { display: none; }

.ezorg-filter-group--pills .ezorg-filter-group__body,
.ezorg-filter-group--swatch .ezorg-filter-group__body { flex-direction: row; flex-wrap: wrap; gap: 8px; }

.ezorg-filter-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	color: var(--ezorg-grijs);
	font-size: 14px;
	text-decoration: none;
	cursor: pointer;
}
.ezorg-filter-item:hover { color: var(--ezorg-inkt); }
.ezorg-filter-item.is-active { color: var(--ezorg-inkt); font-weight: 600; }

.ezorg-filter-item__main { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ezorg-filter-item__count { color: #9aa295; font-size: 12.5px; flex: 0 0 auto; }

/* Subcategorie één niveau ingesprongen */
.ezorg-filter-item--sub { padding-left: 17px; font-size: 13.5px; }
.ezorg-filter-item--sub .ezorg-check { width: 15px; height: 15px; }
.ezorg-filter-item--sub.is-active .ezorg-check::after { left: 4px; top: 1px; height: 8px; }

/* Sterren in het beoordelingsfilter */
.ezorg-filter-stars { display: inline-flex; gap: 1px; color: #e8a300; }
.ezorg-filter-group--rating .ezorg-filter-item__main > span:last-child { color: var(--ezorg-grijs); font-size: 13px; }

/* Zoekveld binnen een lange filtergroep */
.ezorg-filter-search {
	width: 100%;
	margin-bottom: 4px;
	padding: 7px 10px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #fff;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 13.5px;
}
.ezorg-filter-search:focus { outline: 2px solid var(--ezorg-groen-licht); border-color: var(--ezorg-groen); }

/* "Toon alle …" */
.ezorg-filter-more {
	align-self: flex-start;
	margin-top: 2px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ezorg-groen-hover);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.ezorg-filter-more:hover { color: var(--ezorg-groen-donker); }

.ezorg-filter-group:not(.is-expanded):not(.is-searching) .ezorg-is-extra { display: none; }
.ezorg-filter-group .is-filtered-out { display: none !important; }

.ezorg-filter-group__empty { color: var(--ezorg-grijs); font-size: 13px; font-style: italic; }

.ezorg-check {
	position: relative;
	flex: 0 0 auto;
	width: 17px; height: 17px;
	border: 1.5px solid #c8ccc3;
	border-radius: 4px;
	background: #fff;
	transition: background-color .12s ease, border-color .12s ease;
}
.ezorg-filter-item.is-active .ezorg-check { background: var(--ezorg-groen); border-color: var(--ezorg-groen); }
.ezorg-filter-item.is-active .ezorg-check::after {
	content: "";
	position: absolute;
	left: 5px; top: 1.5px;
	width: 4px; height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.ezorg-filter-pill {
	padding: 6px 14px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ezorg-grijs);
	text-decoration: none;
}
.ezorg-filter-pill:hover,
.ezorg-filter-pill.is-active { border-color: var(--ezorg-groen); background: var(--ezorg-groen-licht); color: var(--ezorg-groen-donker); }

.ezorg-swatch-item {
	display: inline-flex;
	padding: 3px;
	border: 2px solid transparent;
	border-radius: 999px;
	line-height: 0;
}
.ezorg-swatch-item.is-active { border-color: var(--ezorg-groen); }
.ezorg-swatch-item__dot {
	display: block;
	width: 22px; height: 22px;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 999px;
}

/* Prijsschuif */
.ezorg-pricefilter { padding-top: 4px; }

.ezorg-pricefilter__track { position: relative; height: 26px; }

.ezorg-pricefilter__rail,
.ezorg-pricefilter__fill {
	position: absolute;
	top: 11px;
	height: 4px;
	border-radius: 999px;
}
.ezorg-pricefilter__rail { left: 0; right: 0; background: #e6e8e2; }
.ezorg-pricefilter__fill { background: var(--ezorg-groen); left: 0; right: 0; }

.ezorg-pricefilter__input {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 26px;
	margin: 0;
	background: none;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}
.ezorg-pricefilter__input:focus { outline: none; }

/* Beide bereiken liggen op elkaar; expliciete stapeling zodat je allebei de
   handvatten kunt pakken. De JS tilt het minimum erboven als het tegen het
   maximum aan ligt. */
.ezorg-pricefilter__input--min { z-index: 3; }
.ezorg-pricefilter__input--max { z-index: 4; }

.ezorg-pricefilter__input::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	pointer-events: auto;
	width: 16px; height: 16px;
	border: 3px solid var(--ezorg-groen);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
}
.ezorg-pricefilter__input::-moz-range-thumb {
	pointer-events: auto;
	width: 16px; height: 16px;
	border: 3px solid var(--ezorg-groen);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
}
.ezorg-pricefilter__input::-moz-range-track { background: none; }

/* Van/tot-velden: deze dragen de waarden, de schuiven zijn alleen bediening. */
.ezorg-pricefilter__fields {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	margin-top: 10px;
}

.ezorg-pricefilter__field { flex: 1 1 0; min-width: 0; }

.ezorg-pricefilter__label {
	display: block;
	margin-bottom: 4px;
	color: var(--ezorg-grijs);
	font-size: 12px;
	font-weight: 600;
}

.ezorg-pricefilter__box {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 0 8px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #fff;
}
.ezorg-pricefilter__box:focus-within { border-color: var(--ezorg-groen); box-shadow: 0 0 0 2px var(--ezorg-groen-licht); }

.ezorg-pricefilter__symbol { color: var(--ezorg-grijs); font-size: 13px; }

.ezorg-pricefilter__number {
	width: 100%;
	min-width: 0;
	padding: 7px 0;
	border: 0;
	background: none;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	-moz-appearance: textfield;
}
.ezorg-pricefilter__number:focus { outline: none; }
.ezorg-pricefilter__number::-webkit-outer-spin-button,
.ezorg-pricefilter__number::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ezorg-pricefilter__dash { padding-bottom: 9px; color: var(--ezorg-grijs); }

.ezorg-pricefilter__apply { margin-top: 12px; width: 100%; }
.ezorg-pricefilter.is-live .ezorg-pricefilter__apply { display: none; }

/* Hulpblok */
.ezorg-help {
	padding: 18px;
	border: 1px solid #d7e5cf;
	border-radius: var(--ezorg-radius);
	background: var(--ezorg-groen-licht);
}
.ezorg-help__title { font-size: 15.5px; margin-bottom: 6px; color: var(--ezorg-groen-donker); }
.ezorg-help__text { margin: 0 0 14px; color: var(--ezorg-grijs); font-size: 13.5px; }

/* =====================================================================
 * Toolbar
 * ================================================================== */
.ezorg-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 18px;
}

.ezorg-toolbar__left { min-width: 0; }
.ezorg-toolbar__right { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-left: auto; }

.ezorg-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.ezorg-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--ezorg-groen-licht);
	color: var(--ezorg-groen-donker);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}
.ezorg-chip:hover { background: #dcead4; }
.ezorg-chip svg { opacity: .65; }

.ezorg-chips__clear { color: var(--ezorg-grijs); font-size: 13px; text-decoration: underline; }
.ezorg-chips__clear:hover { color: var(--ezorg-groen-hover); }

.ezorg-sort { display: flex; align-items: center; gap: 8px; }
.ezorg-sort__label { color: var(--ezorg-grijs); font-size: 13.5px; }

.ezorg-sort form,
.ezorg-toolbar .woocommerce-ordering { margin: 0; }

.ezorg-toolbar select,
.ezorg-sort select {
	padding: 8px 34px 8px 14px;
	border: 1px solid var(--ezorg-lijn) !important;
	border-radius: 999px !important;
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7267' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.ezorg-view { display: inline-flex; gap: 4px; }

.ezorg-view__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 9px;
	background: #fff;
	color: var(--ezorg-grijs);
	cursor: pointer;
}
.ezorg-view__btn.is-active { background: var(--ezorg-groen); border-color: var(--ezorg-groen); color: #fff; }

.ezorg-filter-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: #fff;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 700;
	cursor: pointer;
}

/* =====================================================================
 * Productgrid + kaart
 * ================================================================== */
.ezorg-grid ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ezorg-grid ul.products::before,
.ezorg-grid ul.products::after { content: none !important; display: none !important; }

.ezorg-grid ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0;
	clear: none !important;
}

.ezorg-grid--1 ul.products { grid-template-columns: minmax(0, 1fr); }
.ezorg-grid--2 ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ezorg-grid--3 ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ezorg-grid--4 ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ezorg-grid--5 ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ezorg-grid--6 ul.products { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ezorg-grid--list ul.products { grid-template-columns: minmax(0, 1fr); gap: 12px; }

/* Losse productrasters (shortcode) hebben de scoping van .ezorg-shop niet */
.ezorg-block--producten .ezorg-card { font-family: var(--ezorg-font-body); }

.ezorg-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ezorg-card:hover { border-color: #cddcc5; box-shadow: 0 6px 18px rgba(20, 53, 31, .06); }

.ezorg-card__media { position: relative; background: #f1f0ea; }

.ezorg-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.ezorg-card__image img {
	width: 100%; height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform .25s ease;
}
.ezorg-card:hover .ezorg-card__image img { transform: scale(1.03); }

.ezorg-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 16px;
}

.ezorg-brand {
	display: block;
	margin-bottom: 4px;
	color: var(--ezorg-grijs);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ezorg-card__title {
	display: block;
	margin-bottom: 8px;
	color: var(--ezorg-inkt);
	font-family: var(--ezorg-font-head);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}
.ezorg-card__title:hover { color: var(--ezorg-groen-hover); }

.ezorg-card__usps { margin: 0 0 8px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.ezorg-card__usps li { display: flex; align-items: center; gap: 7px; color: var(--ezorg-grijs); font-size: 12.5px; }
.ezorg-card__usps svg { color: var(--ezorg-groen); width: 14px; height: 14px; }

.ezorg-card__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 12px;
}

.ezorg-card__price { font-family: var(--ezorg-font-head); font-size: 19px; font-weight: 800; line-height: 1.1; }
.ezorg-card__price del { color: #9aa295; font-size: 14px; font-weight: 400; margin-right: 5px; }
.ezorg-card__price ins { text-decoration: none; }
.ezorg-card__price .woocommerce-Price-currencySymbol { margin-right: 1px; }

.ezorg-card .added_to_cart { display: none; }

/* Voorraad */
.ezorg-stock {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ezorg-groen);
}
.ezorg-stock--limited { color: #b07d18; }
.ezorg-stock--backorder { color: #b07d18; }
.ezorg-stock--outofstock { color: var(--ezorg-grijs); }

/* Badge */
.ezorg-badge {
	position: absolute;
	top: 12px; left: 12px;
	z-index: 2;
	padding: 5px 11px;
	border-radius: 999px;
	background: var(--ezorg-groen);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.4;
	text-transform: uppercase;
}
.ezorg-badge--bestseller { background: var(--ezorg-groen-donker); }
.ezorg-badge--populair { background: var(--ezorg-groen); }
.ezorg-badge--nieuw { background: #2f7fb8; }
.ezorg-badge--tip { background: #b06a17; }
.ezorg-badge--actie { background: var(--ezorg-groen); }

/* Lijstweergave */
.ezorg-grid--list .ezorg-card { flex-direction: row; align-items: stretch; }
.ezorg-grid--list .ezorg-card__media { flex: 0 0 190px; }
.ezorg-grid--list .ezorg-card__image { aspect-ratio: auto; height: 100%; min-height: 170px; }
.ezorg-grid--list .ezorg-card__body { padding: 18px 20px; }
.ezorg-grid--list .ezorg-card__title { font-size: 18px; }
.ezorg-grid--list .ezorg-card__foot { justify-content: flex-start; gap: 18px; }

/* Lege staat */
.ezorg-empty {
	padding: 40px 24px;
	border: 1px dashed var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
	text-align: center;
	color: var(--ezorg-grijs);
}
.ezorg-empty p { margin: 0 0 14px; }

/* =====================================================================
 * Paginering
 * ================================================================== */
.ezorg-shop .woocommerce-pagination { margin-top: 32px; }
.ezorg-shop .woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.ezorg-shop .woocommerce-pagination ul li { border: 0; margin: 0; }

.ezorg-shop .woocommerce-pagination ul li a,
.ezorg-shop .woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: #fff;
	color: var(--ezorg-inkt);
	font-size: 13.5px;
	font-weight: 600;
}
.ezorg-shop .woocommerce-pagination ul li a:hover { border-color: var(--ezorg-groen); color: var(--ezorg-groen-hover); }
.ezorg-shop .woocommerce-pagination ul li span.current {
	background: var(--ezorg-groen);
	border-color: var(--ezorg-groen);
	color: #fff;
}

/* =====================================================================
 * SEO-blok + CTA-balk
 * ================================================================== */
.ezorg-seo {
	margin-top: 44px;
	padding: 28px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
}
.ezorg-seo__title { font-size: 22px; margin-bottom: 10px; color: var(--ezorg-groen-donker); }
.ezorg-seo__text { max-width: 78ch; color: var(--ezorg-grijs); font-size: 14.5px; }
.ezorg-seo__text p { margin: 0 0 10px; }
.ezorg-seo__text p:last-child { margin-bottom: 0; }
.ezorg-seo__text a { color: var(--ezorg-groen-hover); font-weight: 600; text-decoration: underline; }

.ezorg-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 24px;
	padding: 28px 32px;
	border-radius: var(--ezorg-radius);
	background: var(--ezorg-groen-licht);
}
.ezorg-cta__content { flex: 1 1 420px; }
.ezorg-cta__title { font-size: 22px; margin-bottom: 6px; color: var(--ezorg-groen-donker); }
.ezorg-cta__text { margin: 0; max-width: 68ch; color: var(--ezorg-grijs); font-size: 14.5px; }

/* =====================================================================
 * Productpagina
 * ================================================================== */
.ezorg-single__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

.ezorg-single__gallery { min-width: 0; }

.ezorg-single__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #f1f0ea;
}
.ezorg-single__stage img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }

/* Miniaturen op één spoor in plaats van gestapeld. Bij veel foto's schuif je
   ze opzij; de vervaging rechts laat zien dat er meer is. */
.ezorg-single__thumbs-wrap { position: relative; margin-top: 12px; }

.ezorg-single__thumbs {
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 2px;
}
.ezorg-single__thumbs::-webkit-scrollbar { display: none; }

.ezorg-single__thumbs-wrap::before,
.ezorg-single__thumbs-wrap::after {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	width: 46px;
	pointer-events: none;
	opacity: 0;
	transition: opacity .18s ease;
}
.ezorg-single__thumbs-wrap::before {
	left: 0;
	background: linear-gradient(to right, var(--ezorg-creme), rgba(247, 246, 240, 0));
}
.ezorg-single__thumbs-wrap::after {
	right: 0;
	background: linear-gradient(to left, var(--ezorg-creme), rgba(247, 246, 240, 0));
}
.ezorg-single__thumbs-wrap.has-before::before { opacity: 1; }
.ezorg-single__thumbs-wrap.has-more::after { opacity: 1; }

.ezorg-single__thumb {
	flex: 0 0 auto;
	width: 78px; height: 78px;
	padding: 4px;
	border: 1.5px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #f1f0ea;
	cursor: pointer;
	overflow: hidden;
}
.ezorg-single__thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.ezorg-single__thumb.is-active { border-color: var(--ezorg-groen); }

.ezorg-single__summary { min-width: 0; width: 100% !important; float: none !important; }

.ezorg-single__eyebrow {
	margin: 0 0 6px;
	color: var(--ezorg-grijs);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ezorg-single__title {
	margin-bottom: 10px;
	font-size: 30px;
	text-transform: uppercase;
	color: var(--ezorg-groen-donker);
}
.ezorg-single__title-lead { font-weight: 800; }
.ezorg-single__title-rest { font-weight: 400; }

.ezorg-single__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ezorg-lijn);
}
.ezorg-single__meta .ezorg-stock { margin: 0; }

.ezorg-rating { display: flex; align-items: center; gap: 8px; }
.ezorg-rating__stars { display: inline-flex; gap: 2px; color: #f0a500; }
.ezorg-rating__stars svg { display: block; }
.ezorg-rating__text { color: var(--ezorg-grijs); font-size: 13px; }

.ezorg-single__excerpt { margin-bottom: 18px; color: var(--ezorg-grijs); font-size: 14.5px; }
.ezorg-single__excerpt p { margin: 0 0 8px; }
.ezorg-single__excerpt p:last-child { margin-bottom: 0; }

/* Buybox */
.ezorg-buybox { }

.ezorg-modes {
	display: inline-flex;
	gap: 4px;
	margin-bottom: 16px;
	padding: 4px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: #fff;
}
.ezorg-modes__btn {
	padding: 8px 20px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--ezorg-grijs);
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 700;
	cursor: pointer;
}
.ezorg-modes__btn.is-active { background: var(--ezorg-groen); color: #fff; }

.ezorg-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 10px;
	font-family: var(--ezorg-font-head);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.1;
	color: var(--ezorg-inkt);
}
.ezorg-price .price { font-size: inherit; font-weight: inherit; color: inherit; margin: 0; }
.ezorg-price del { color: #9aa295; font-size: 18px; font-weight: 400; }
.ezorg-price ins { text-decoration: none; }
.ezorg-price__from { color: var(--ezorg-grijs); font-family: var(--ezorg-font-body); font-size: 15px; font-weight: 600; }
.ezorg-price__note { margin: 4px 0 18px; color: var(--ezorg-grijs); font-size: 13px; }

/* Kleurstalen */
.ezorg-swatches { margin-bottom: 14px; }
.ezorg-swatches__label { display: block; margin-bottom: 8px; color: var(--ezorg-grijs); font-size: 13px; }
.ezorg-swatches__label strong { color: var(--ezorg-inkt); font-weight: 700; }
.ezorg-swatches__items { display: flex; flex-wrap: wrap; gap: 8px; }

.ezorg-swatch {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 3px;
	border: 2px solid transparent;
	border-radius: 999px;
	background: none;
	cursor: pointer;
	line-height: 0;
}
.ezorg-swatch--label {
	padding: 7px 15px;
	border: 1.5px solid var(--ezorg-lijn);
	border-radius: 999px;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
}
.ezorg-swatch__dot {
	display: block;
	width: 26px; height: 26px;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 999px;
}
.ezorg-swatch.is-active { border-color: var(--ezorg-groen); }
.ezorg-swatch--label.is-active { border-color: var(--ezorg-groen); background: var(--ezorg-groen-licht); }

/* De originele select blijft aanwezig maar verborgen zodra de stalen er staan. */
.ezorg-swatches + .ezorg-hidden-select,
.ezorg-swatches ~ select { display: none; }

.ezorg-single table.variations { width: 100%; margin: 0 0 8px; border: 0; }
.ezorg-single table.variations th,
.ezorg-single table.variations td { padding: 0; border: 0; background: none; text-align: left; }
.ezorg-single table.variations th.label { display: none; }
.ezorg-single .reset_variations { display: inline-block; margin-bottom: 10px; color: var(--ezorg-grijs); font-size: 13px; }
.ezorg-single .woocommerce-variation-price { margin-bottom: 12px; }
.ezorg-single .woocommerce-variation-price .price { font-family: var(--ezorg-font-head); font-size: 28px; font-weight: 800; color: var(--ezorg-inkt); }
.ezorg-single .woocommerce-variation-availability { margin-bottom: 10px; color: var(--ezorg-groen); font-size: 13.5px; font-weight: 600; }

/* Winkelwagenregel */
.ezorg-buybox__cart form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
}
.ezorg-buybox__cart form.variations_form { display: block; }
.ezorg-buybox__cart form.variations_form .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.ezorg-single .quantity {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: #fff;
}
.ezorg-single .quantity .qty {
	width: 46px;
	padding: 12px 0;
	border: 0 !important;
	background: none;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	-moz-appearance: textfield;
}
.ezorg-single .quantity .qty::-webkit-outer-spin-button,
.ezorg-single .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ezorg-qty-btn {
	width: 38px; height: 44px;
	border: 0;
	background: none;
	color: var(--ezorg-grijs);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}
.ezorg-qty-btn:hover { color: var(--ezorg-groen-hover); }

.ezorg-single .single_add_to_cart_button { flex: 1 1 200px; padding: 14px 30px; font-size: 15px; }

/* Huurpaneel */
.ezorg-rent {
	margin-bottom: 18px;
	padding: 18px 20px;
	border: 1px solid #d7e5cf;
	border-radius: var(--ezorg-radius);
	background: var(--ezorg-groen-licht);
}
.ezorg-rent__price { margin: 0; font-family: var(--ezorg-font-head); font-size: 26px; font-weight: 800; color: var(--ezorg-groen-donker); }
.ezorg-rent__unit { font-family: var(--ezorg-font-body); font-size: 14px; font-weight: 600; color: var(--ezorg-grijs); }
.ezorg-rent__note { margin: 4px 0 14px; color: var(--ezorg-grijs); font-size: 13.5px; }

/* Vinkjes */
.ezorg-usps {
	margin: 0 0 18px;
	padding: 16px 18px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 9px;
}
.ezorg-usps__item { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--ezorg-inkt); }
.ezorg-usps__item svg { margin-top: 2px; color: var(--ezorg-groen); }

/* Adviseursblok */
.ezorg-advies { display: flex; align-items: center; gap: 12px; }

.ezorg-advies__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px; height: 44px;
	overflow: hidden;
	border-radius: 999px;
	background: var(--ezorg-groen-licht);
	color: var(--ezorg-groen);
}
.ezorg-advies__avatar img { width: 100%; height: 100%; object-fit: cover; }

.ezorg-advies__text { margin: 0; color: var(--ezorg-grijs); font-size: 13.5px; }
.ezorg-advies__link { color: var(--ezorg-groen-hover); font-weight: 700; text-decoration: none; }
.ezorg-advies__link:hover { text-decoration: underline; }

/* =====================================================================
 * Tabs
 * ================================================================== */
.ezorg-single__tabs { margin-top: 48px; }

.ezorg-single .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 24px;
	padding: 0;
	border-bottom: 1px solid var(--ezorg-lijn);
	list-style: none;
}
.ezorg-single .woocommerce-tabs ul.tabs::before,
.ezorg-single .woocommerce-tabs ul.tabs::after { content: none !important; display: none !important; }

.ezorg-single .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}
.ezorg-single .woocommerce-tabs ul.tabs li::before,
.ezorg-single .woocommerce-tabs ul.tabs li::after { content: none !important; display: none !important; }

.ezorg-single .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px;
	border-bottom: 3px solid transparent;
	color: var(--ezorg-grijs);
	font-family: var(--ezorg-font-head);
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
}
.ezorg-single .woocommerce-tabs ul.tabs li.active a {
	color: var(--ezorg-groen-donker);
	border-bottom-color: var(--ezorg-groen);
}

.ezorg-single .woocommerce-Tabs-panel { max-width: 78ch; color: var(--ezorg-grijs); font-size: 14.5px; }
.ezorg-single .woocommerce-Tabs-panel h2 { display: none; }
.ezorg-single .woocommerce-Tabs-panel p { margin: 0 0 12px; }

.ezorg-specs { width: 100%; border-collapse: collapse; }
.ezorg-specs tr { border-bottom: 1px solid var(--ezorg-lijn); }
.ezorg-specs th,
.ezorg-specs td { padding: 11px 0; text-align: left; font-size: 14px; }
.ezorg-specs th { width: 240px; color: var(--ezorg-inkt); font-weight: 700; }
.ezorg-specs td { color: var(--ezorg-grijs); }

/* =====================================================================
 * Vaak samen bekeken
 * ================================================================== */
.ezorg-related { margin-top: 52px; }
.ezorg-related__title {
	margin-bottom: 20px;
	font-size: 22px;
	text-transform: uppercase;
	color: var(--ezorg-groen-donker);
}

/* =====================================================================
 * Responsive
 * ================================================================== */
@media (max-width: 1024px) {
	.ezorg-shop__body { grid-template-columns: 220px minmax(0, 1fr); gap: 22px; }
	.ezorg-single__grid { gap: 28px; }
	.ezorg-single__title { font-size: 26px; }
	.ezorg-header__in { gap: 16px; }
	.ezorg-tel-btn__txt { display: none; }
	.ezorg-tel-btn { padding: 10px; }
}

@media (max-width: 900px) {
	.ezorg-grid ul.products,
	.ezorg-grid--3 ul.products,
	.ezorg-grid--4 ul.products,
	.ezorg-grid--5 ul.products,
	.ezorg-grid--6 ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ezorg-single__grid { grid-template-columns: minmax(0, 1fr); }
	.ezorg-shop__title { font-size: 28px; }
}

@media (max-width: 782px) {
	/* Filters worden een uitschuifpaneel. */
	.ezorg-shop__body { grid-template-columns: minmax(0, 1fr); }
	.ezorg-filter-toggle { display: inline-flex; }

	.ezorg-shop__sidebar {
		position: fixed;
		top: 0; left: 0; bottom: 0;
		z-index: 1000;
		width: min(340px, 88vw);
		padding: 20px;
		overflow-y: auto;
		background: var(--ezorg-creme);
		box-shadow: 0 0 40px rgba(0, 0, 0, .18);
		transform: translateX(-102%);
		transition: transform .25s ease;
	}
	.ezorg-shop__sidebar.is-open { transform: translateX(0); }

	.ezorg-filters__head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 4px;
	}
	.ezorg-filters__title { font-size: 20px; }
	.ezorg-filters__close {
		display: inline-flex;
		padding: 8px;
		border: 0;
		background: none;
		color: var(--ezorg-inkt);
		cursor: pointer;
	}

	.ezorg-filter-backdrop {
		position: fixed;
		inset: 0;
		z-index: 999;
		background: rgba(20, 53, 31, .4);
	}

	.ezorg-toolbar__right { width: 100%; justify-content: space-between; }
	.ezorg-sort__label { display: none; }

	/* De header zelf staat verderop bij "Header — mobiel"; daar neemt de
	   hamburger het van de menubalk over. */
}

/* =====================================================================
 * Thema-overrides (Kadence e.d.)
 *
 * Kadence stylet WooCommerce stevig: knoppen, kaarten, prijzen, tabs en
 * formulieren. Binnen onze eigen blokken zetten we die regels uit. Alles is
 * gescoped op .ezorg-shop / .ezorg-single / .ezorg-header-wrap, dus buiten
 * onze templates blijft het thema volledig intact.
 * ================================================================== */
.ezorg-shop .button,
.ezorg-single .button,
.ezorg-shop .ezorg-btn,
.ezorg-single .ezorg-btn,
.ezorg-header-wrap .ezorg-btn,
.ezorg-single .single_add_to_cart_button,
.ezorg-shop a.button.add_to_cart_button,
.ezorg-shop .wp-block-button__link {
	border-radius: 999px !important;
	background-color: var(--ezorg-groen) !important;
	background-image: none !important;
	border: 0 !important;
	color: #fff !important;
	font-family: var(--ezorg-font-body) !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	min-height: 0 !important;
	line-height: 1.1 !important;
}

.ezorg-shop .button:hover,
.ezorg-single .button:hover,
.ezorg-shop .ezorg-btn:hover,
.ezorg-single .ezorg-btn:hover,
.ezorg-single .single_add_to_cart_button:hover,
.ezorg-shop a.button.add_to_cart_button:hover { background-color: var(--ezorg-groen-hover) !important; color: #fff !important; }

.ezorg-shop .ezorg-btn--sm,
.ezorg-single .ezorg-btn--sm { padding: 8px 16px !important; font-size: 13px !important; }

/* Onze eigen bediening is géén themaknop.
 *
 * Kadence stylet elke <button> als een gevulde knop — inclusief hover. Zonder
 * deze reset kleurt de kop van een filtergroep bij hover als een blauw blok.
 * Alleen de eigenschappen die het thema kaapt; vorm en maat blijven van ons. */
.ezorg-shop .ezorg-filter-group__title,
.ezorg-shop .ezorg-filter-more,
.ezorg-shop .ezorg-filters__close,
.ezorg-shop .ezorg-view__btn,
.ezorg-shop .ezorg-filter-toggle,
.ezorg-single .ezorg-modes__btn,
.ezorg-single .ezorg-single__thumb,
.ezorg-single .ezorg-qty-btn,
.ezorg-sidecart button {
	background-image: none !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-decoration: none !important;
	min-height: 0 !important;
	outline: none;
}

.ezorg-shop .ezorg-filter-group__title,
.ezorg-shop .ezorg-filter-more,
.ezorg-shop .ezorg-filters__close,
.ezorg-single .ezorg-qty-btn,
.ezorg-sidecart .ezorg-sidecart__step,
.ezorg-sidecart .ezorg-sidecart__remove {
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.ezorg-shop .ezorg-filter-group__title:hover,
.ezorg-shop .ezorg-filter-group__title:focus,
.ezorg-shop .ezorg-filter-more:hover,
.ezorg-shop .ezorg-filters__close:hover,
.ezorg-single .ezorg-qty-btn:hover {
	background-color: transparent !important;
	box-shadow: none !important;
}

.ezorg-shop .ezorg-filter-group__title { color: var(--ezorg-inkt) !important; }
.ezorg-shop .ezorg-filter-more { color: var(--ezorg-groen-hover) !important; text-decoration: underline !important; }
.ezorg-shop .ezorg-filter-more:hover { color: var(--ezorg-groen-donker) !important; }

.ezorg-sidecart .ezorg-sidecart__step:hover { background-color: var(--ezorg-groen-licht) !important; }
.ezorg-sidecart .ezorg-sidecart__remove:hover { background-color: var(--ezorg-creme) !important; color: #b32d2e !important; }

.ezorg-shop .ezorg-view__btn,
.ezorg-shop .ezorg-filter-toggle {
	background-color: #fff !important;
	border: 1px solid var(--ezorg-lijn) !important;
	color: var(--ezorg-inkt) !important;
}
.ezorg-shop .ezorg-view__btn.is-active {
	background-color: var(--ezorg-groen-licht) !important;
	border-color: var(--ezorg-groen) !important;
	color: var(--ezorg-groen-donker) !important;
}

.ezorg-single .ezorg-modes__btn {
	background-color: transparent !important;
	border: 0 !important;
	color: var(--ezorg-grijs) !important;
}
.ezorg-single .ezorg-modes__btn.is-active {
	background-color: #fff !important;
	color: var(--ezorg-inkt) !important;
}

/* Prijsschuif: het thema mag deze twee velden niet aanraken, anders dekt het
 * bovenste bereik het onderste handvat af en zie je er nog maar één. */
.ezorg-shop .ezorg-pricefilter__input,
.ezorg-shop .ezorg-pricefilter__input:focus,
.ezorg-shop .ezorg-pricefilter__input:hover {
	-webkit-appearance: none !important;
	appearance: none !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	padding: 0 !important;
	min-height: 0 !important;
}
.ezorg-shop .ezorg-pricefilter__input::-webkit-slider-runnable-track { background: transparent !important; border: 0 !important; }
.ezorg-shop .ezorg-pricefilter__input::-moz-range-track { background: transparent !important; border: 0 !important; }
.ezorg-shop .ezorg-pricefilter__input::-moz-range-progress { background: transparent !important; }

.ezorg-shop .ezorg-btn--line,
.ezorg-single .ezorg-btn--line {
	background-color: transparent !important;
	border: 1.5px solid var(--ezorg-inkt) !important;
	color: var(--ezorg-inkt) !important;
}

/* Kaarten en grid: thema-floats, -breedtes en -clearfixes uitschakelen. */
.ezorg-shop ul.products,
.ezorg-single ul.products { display: grid !important; }

.ezorg-shop ul.products li.product,
.ezorg-single ul.products li.product {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
	text-align: left !important;
}

.ezorg-shop ul.products li.product::before,
.ezorg-shop ul.products li.product::after,
.ezorg-single ul.products li.product::before,
.ezorg-single ul.products li.product::after { content: none !important; display: none !important; }

.ezorg-shop li.product .woocommerce-loop-product__title,
.ezorg-shop li.product .product-details,
.ezorg-shop li.product .price,
.ezorg-single li.product .price {
	padding: 0 !important;
	margin: 0 !important;
	background: none !important;
	font-size: inherit !important;
	color: inherit !important;
}

.ezorg-shop li.product .star-rating,
.ezorg-shop li.product .kadence-woo-product-details-align,
.ezorg-shop li.product .woocommerce-loop-product__link { display: block; }

/* Prijzen: thema-kleur en -grootte binnen onze eigen prijsblokken negeren. */
.ezorg-card__price .price,
.ezorg-card__price .amount,
.ezorg-price .price,
.ezorg-price .amount {
	color: inherit !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
}

.ezorg-card__price del,
.ezorg-price del { opacity: 1 !important; }

/* Samenvattingskolom mag geen thema-breedte krijgen. */
.ezorg-single .summary,
.ezorg-single .entry-summary {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Formulierelementen binnen filters/buybox. */
.ezorg-shop input[type="search"],
.ezorg-shop input[type="number"],
.ezorg-shop select,
.ezorg-single input[type="number"],
.ezorg-header-wrap input[type="search"] {
	box-shadow: none !important;
	outline: none !important;
	min-height: 0 !important;
}

.ezorg-single .quantity input.qty {
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	max-width: none !important;
}

/* Tabs. */
.ezorg-single .woocommerce-tabs ul.tabs li,
.ezorg-single .woocommerce-tabs ul.tabs li.active {
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
}

.ezorg-single .woocommerce-tabs ul.tabs li a { background: none !important; }

/* Paginering. */
.ezorg-shop .woocommerce-pagination ul li a,
.ezorg-shop .woocommerce-pagination ul li span {
	border-radius: 999px !important;
	box-shadow: none !important;
}

/* Kadence-specifiek: eigen kaartschaduw/hoveranimatie uitzetten. */
.ezorg-shop .product-action-wrap,
.ezorg-shop .kadence-woo-loop-action-wrap,
.ezorg-shop .woocommerce-loop-product__link .product-details { display: block; }

/* Optioneel: crème vlak van rand tot rand (klasse via de instellingen). */
.ezorg-shop--bleed,
.ezorg-single--bleed {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

@media (max-width: 560px) {
	.ezorg-wrap { padding: 0 16px; }
	.ezorg-shop, .ezorg-single { padding-top: 16px; }
	.ezorg-shop__title { font-size: 24px; }
	.ezorg-single__title { font-size: 22px; }
	.ezorg-price { font-size: 26px; }
	.ezorg-grid ul.products,
	.ezorg-grid--2 ul.products,
	.ezorg-grid--3 ul.products,
	.ezorg-grid--4 ul.products,
	.ezorg-grid--5 ul.products,
	.ezorg-grid--6 ul.products { grid-template-columns: minmax(0, 1fr); }

	.ezorg-grid--list .ezorg-card { flex-direction: column; }
	.ezorg-grid--list .ezorg-card__media { flex-basis: auto; }
	.ezorg-grid--list .ezorg-card__image { aspect-ratio: 1 / 1; min-height: 0; }

	.ezorg-cta { padding: 22px; }
	.ezorg-seo { padding: 20px; }
	.ezorg-single .single_add_to_cart_button { flex-basis: 100%; }
	.ezorg-specs th { width: 45%; }
	.ezorg-topbar__note { display: none; }
	.ezorg-view { display: none; }
}

/* =====================================================================
 * Zijwinkelwagen
 * ================================================================== */
.ezorg-sidecart {
	position: fixed;
	inset: 0;
	z-index: 100000;
	visibility: hidden;
	pointer-events: none;
	font-family: var(--ezorg-font-body);
	color: var(--ezorg-inkt);
	font-size: 15px;
	line-height: 1.55;
}
.ezorg-sidecart.is-open { visibility: visible; pointer-events: auto; }
.ezorg-sidecart * { box-sizing: border-box; }

body.ezorg-sidecart-open { overflow: hidden; }

.ezorg-sidecart__overlay {
	position: absolute;
	inset: 0;
	background: rgba(20, 53, 31, 0);
	transition: background .3s ease;
}
.ezorg-sidecart.is-open .ezorg-sidecart__overlay { background: rgba(20, 53, 31, .42); }

.ezorg-sidecart__panel {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	display: flex;
	flex-direction: column;
	width: 410px;
	max-width: 92vw;
	background: #fff;
	box-shadow: -6px 0 32px rgba(20, 53, 31, .16);
	transform: translateX(100%);
	transition: transform .34s cubic-bezier(.4, 0, .2, 1);
}
.ezorg-sidecart.is-open .ezorg-sidecart__panel { transform: none; }

@media (prefers-reduced-motion: reduce) {
	.ezorg-sidecart__panel { transition: none; }
	.ezorg-sidecart__overlay { transition: none; }
}

.ezorg-sidecart.is-busy .ezorg-sidecart__panel { cursor: progress; }
.ezorg-sidecart.is-busy .ezorg-sidecart__body { opacity: .55; pointer-events: none; }

/* Kop */
.ezorg-sidecart__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex: 0 0 auto;
	padding: 18px 20px;
	border-bottom: 1px solid var(--ezorg-lijn);
}

.ezorg-sidecart__title {
	margin: 0;
	font-family: var(--ezorg-font-head);
	font-size: 19px;
	font-weight: 800;
	color: var(--ezorg-inkt);
}

.ezorg-sidecart__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--ezorg-creme);
	color: var(--ezorg-inkt);
	cursor: pointer;
	transition: background-color .15s ease;
}
.ezorg-sidecart__close:hover { background: var(--ezorg-groen-licht); }

/* Regels */
.ezorg-sidecart__body {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transition: opacity .15s ease;
}

.ezorg-sidecart__item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) 28px;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--ezorg-lijn);
	transition: opacity .2s ease;
}
.ezorg-sidecart__item.is-removing { opacity: .4; }

.ezorg-sidecart__thumb {
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: var(--ezorg-creme);
}
.ezorg-sidecart__thumb a { display: block; }
.ezorg-sidecart__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.ezorg-sidecart__info { min-width: 0; display: flex; flex-direction: column; gap: 3px; }

.ezorg-sidecart__brand {
	color: var(--ezorg-grijs);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ezorg-sidecart__name {
	color: var(--ezorg-inkt);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
}
a.ezorg-sidecart__name:hover { color: var(--ezorg-groen-hover); }

.ezorg-sidecart__meta { color: var(--ezorg-grijs); font-size: 12.5px; }
.ezorg-sidecart__meta p { margin: 0; }
.ezorg-sidecart__meta dl { margin: 0; }
.ezorg-sidecart__meta dt,
.ezorg-sidecart__meta dd { display: inline; margin: 0; }
.ezorg-sidecart__meta dd::after { content: ""; display: block; }

.ezorg-sidecart__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 6px;
}

.ezorg-sidecart__price { font-weight: 800; white-space: nowrap; }
.ezorg-sidecart__qty-fixed { color: var(--ezorg-grijs); font-size: 13px; }

/* Aantal */
.ezorg-sidecart__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	overflow: hidden;
}

.ezorg-sidecart__step {
	width: 28px; height: 28px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ezorg-inkt);
	font-size: 15px;
	font-family: inherit;
	line-height: 1;
	cursor: pointer;
	transition: background-color .12s ease;
}
.ezorg-sidecart__step:hover { background: var(--ezorg-groen-licht); }

.ezorg-sidecart__qty-input {
	width: 34px;
	height: 28px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 700;
	text-align: center;
	-moz-appearance: textfield;
}
.ezorg-sidecart__qty-input::-webkit-outer-spin-button,
.ezorg-sidecart__qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ezorg-sidecart__qty-input:focus { outline: none; }

.ezorg-sidecart__remove {
	align-self: start;
	width: 26px; height: 26px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	color: #9aa295;
	cursor: pointer;
	transition: background-color .12s ease, color .12s ease;
}
.ezorg-sidecart__remove:hover { background: var(--ezorg-creme); color: #b32d2e; }

/* Leeg */
.ezorg-sidecart__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 64px 24px;
	color: var(--ezorg-grijs);
	text-align: center;
}
.ezorg-sidecart__empty svg { color: #c8ccc3; }
.ezorg-sidecart__empty p { margin: 0; }

/* Voet */
.ezorg-sidecart__foot {
	flex: 0 0 auto;
	padding: 16px 20px 20px;
	border-top: 1px solid var(--ezorg-lijn);
	background: var(--ezorg-creme);
}
.ezorg-sidecart__foot:empty { display: none; }

/* Gratis verzending */
.ezorg-sidecart__ship { margin-bottom: 14px; }

.ezorg-sidecart__ship-text {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 7px;
	color: var(--ezorg-grijs);
	font-size: 13px;
}
.ezorg-sidecart__ship-text strong { color: var(--ezorg-inkt); }
.ezorg-sidecart__ship.is-reached .ezorg-sidecart__ship-text,
.ezorg-sidecart__ship.is-reached .ezorg-sidecart__ship-text strong { color: var(--ezorg-groen-hover); }

.ezorg-sidecart__ship-bar {
	display: block;
	height: 5px;
	border-radius: 999px;
	background: #e0e4dc;
	overflow: hidden;
}
.ezorg-sidecart__ship-fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--ezorg-groen);
	transition: width .3s ease;
}

.ezorg-sidecart__totals { display: flex; flex-direction: column; gap: 5px; }

.ezorg-sidecart__total-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	font-size: 15px;
	font-weight: 800;
}
.ezorg-sidecart__total-row--discount { color: var(--ezorg-groen-hover); font-weight: 700; font-size: 14px; }

.ezorg-sidecart__note { margin: 4px 0 12px; color: var(--ezorg-grijs); font-size: 12.5px; }

.ezorg-sidecart__checkout {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.ezorg-sidecart__checkout-total { opacity: .85; font-weight: 700; }
.ezorg-sidecart__checkout-total .woocommerce-Price-amount,
.ezorg-sidecart__checkout-total bdi { color: inherit; }

.ezorg-sidecart__link {
	display: block;
	margin-top: 10px;
	color: var(--ezorg-grijs);
	font-size: 13.5px;
	text-align: center;
	text-decoration: underline;
}
.ezorg-sidecart__link:hover { color: var(--ezorg-groen-hover); }

.ezorg-sidecart__usps {
	margin: 14px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--ezorg-lijn);
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 7px;
}
.ezorg-sidecart__usps li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	color: var(--ezorg-grijs);
	font-size: 12.5px;
	line-height: 1.4;
}
.ezorg-sidecart__usps svg { flex: 0 0 auto; margin-top: 1px; color: var(--ezorg-groen); }

@media (max-width: 480px) {
	.ezorg-sidecart__panel { width: 100%; max-width: 100%; }
	.ezorg-sidecart__item { grid-template-columns: 60px minmax(0, 1fr) 26px; padding: 14px 16px; }
	.ezorg-sidecart__head,
	.ezorg-sidecart__foot { padding-left: 16px; padding-right: 16px; }
}

/* Laadstatus tijdens het filteren zonder herladen */
[data-ezorg-shop-inner] { position: relative; }

[data-ezorg-shop-inner].is-loading .ezorg-shop__main,
[data-ezorg-shop-inner].is-loading .ezorg-filters {
	opacity: .5;
	pointer-events: none;
	transition: opacity .15s ease;
}

[data-ezorg-shop-inner].is-loading::after {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, var(--ezorg-groen), transparent);
	animation: ezorg-loading 1s linear infinite;
}

@keyframes ezorg-loading {
	0%   { transform: translateX(-100%); }
	100% { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
	[data-ezorg-shop-inner].is-loading::after { animation: none; opacity: .6; }
}

/* Diagnosepaneel (?ezorg_debug=1, alleen voor beheerders) */
.ezorg-debug {
	margin-bottom: 14px;
	padding: 12px 14px;
	border: 1px solid #e0b341;
	border-radius: var(--ezorg-radius-sm);
	background: #fdf6e3;
	color: #5c4813;
	font-size: 12px;
	line-height: 1.5;
}
.ezorg-debug ul { margin: 6px 0 0; padding-left: 16px; }
.ezorg-debug code { background: rgba(0, 0, 0, .06); padding: 1px 4px; border-radius: 3px; }

/* =====================================================================
 * "In winkelwagen" — één icoon, niet drie
 *
 * WooCommerce hangt een spinner (.loading) en een vinkje (.added) als
 * ::after aan de knop, en Kadence zet er zijn eigen pijl bij. Die verschijnen
 * los van elkaar en blijven daarna staan, dus je houdt drie tekens over.
 * Binnen onze kaart tonen we alleen een subtiele laadstatus; de bevestiging
 * geeft de zijwinkelwagen al.
 * ================================================================== */
.ezorg-shop .ezorg-card .ezorg-btn::before,
.ezorg-shop .ezorg-card .ezorg-btn::after,
.ezorg-shop .ezorg-card .ezorg-btn .kadence-svg-icon,
.ezorg-shop .ezorg-card .ezorg-btn svg,
.ezorg-shop .ezorg-card a.button::before,
.ezorg-shop .ezorg-card a.button::after,
.ezorg-shop .ezorg-card a.button svg,
.ezorg-shop .ezorg-card .added_to_cart {
	display: none !important;
}

.ezorg-shop .ezorg-card .ezorg-btn.loading {
	opacity: .7;
	pointer-events: none;
}

.ezorg-shop .ezorg-card .ezorg-btn.loading::after {
	display: inline-block !important;
	content: "";
	width: 12px; height: 12px;
	margin-left: 8px;
	border: 2px solid rgba(255, 255, 255, .45);
	border-top-color: #fff;
	border-radius: 50%;
	vertical-align: -1px;
	animation: ezorg-spin .6s linear infinite;
}

@keyframes ezorg-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
	.ezorg-shop .ezorg-card .ezorg-btn.loading::after { animation: none; }
}

/* "Vanaf" bij een prijsvork op de productkaart */
.ezorg-card__price .ezorg-price__from {
	display: inline;
	margin-right: 2px;
	color: var(--ezorg-grijs);
	font-family: var(--ezorg-font-body);
	font-size: 13px;
	font-weight: 600;
}

/* =====================================================================
 * Korte omschrijving inkorten met "Meer lezen"
 *
 * De volledige tekst staat altijd in de HTML — we tonen er alleen minder van,
 * zodat de bestelknop in beeld blijft. Met max-height in plaats van
 * line-clamp, want die laatste gaat mank zodra er meerdere alinea's staan.
 * ================================================================== */
.ezorg-single__excerpt { position: relative; margin-bottom: 20px; }

.ezorg-single__excerpt-text { color: var(--ezorg-grijs); }
.ezorg-single__excerpt-text p { margin: 0 0 10px; }
.ezorg-single__excerpt-text p:last-child { margin-bottom: 0; }
.ezorg-single__excerpt-text ul,
.ezorg-single__excerpt-text ol { margin: 0 0 10px 18px; }

.ezorg-single__excerpt.is-clamped .ezorg-single__excerpt-text {
	max-height: calc(var(--ezorg-clamp, 4) * 1.55em);
	overflow: hidden;
}

/* Zachte overgang zodat je ziet dat er meer staat */
.ezorg-single__excerpt.is-clamped::after {
	content: "";
	position: absolute;
	left: 0; right: 0;
	top: calc(var(--ezorg-clamp, 4) * 1.55em - 28px);
	height: 28px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--ezorg-creme));
	pointer-events: none;
}

.ezorg-single__excerpt-more {
	margin-top: 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ezorg-groen-hover);
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}
.ezorg-single__excerpt-more:hover { color: var(--ezorg-groen-donker); }

/* Kadence mag hier geen knop van maken */
.ezorg-single .ezorg-single__excerpt-more,
.ezorg-single .ezorg-single__excerpt-more:hover {
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	min-height: 0 !important;
	color: var(--ezorg-groen-hover) !important;
}

/* =====================================================================
 * Homepage-blokken (shortcodes)
 * ================================================================== */
.ezorg-block {
	font-family: var(--ezorg-font-body);
	color: var(--ezorg-inkt);
	font-size: 15px;
	line-height: 1.55;
	box-sizing: border-box;
}
.ezorg-block * { box-sizing: border-box; }
.ezorg-block img { max-width: 100%; height: auto; }

.ezorg-block__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
}

.ezorg-block__title {
	margin: 0;
	font-family: var(--ezorg-font-head);
	font-size: 26px;
	font-weight: 800;
	color: var(--ezorg-inkt);
}

.ezorg-block__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	flex: 0 0 auto;
	color: var(--ezorg-groen-hover);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}
.ezorg-block__link:hover { color: var(--ezorg-groen-donker); }

/* Situatieblokken */
.ezorg-situaties {
	display: grid;
	grid-template-columns: repeat(var(--ezorg-cols, 3), minmax(0, 1fr));
	gap: 18px;
}

.ezorg-situatie {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 22px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
}

.ezorg-situatie__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	margin-bottom: 4px;
	border-radius: 10px;
	background: var(--ezorg-groen-licht);
	color: var(--ezorg-groen-donker);
}

.ezorg-situatie__title {
	margin: 0;
	font-family: var(--ezorg-font-head);
	font-size: 18px;
	font-weight: 800;
}

.ezorg-situatie__text { margin: 0; color: var(--ezorg-grijs); font-size: 14px; }

.ezorg-situatie__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 4px;
	color: var(--ezorg-groen-hover);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}
.ezorg-situatie__link:hover { color: var(--ezorg-groen-donker); }

/* Categorieraster */
.ezorg-catgrid {
	display: grid;
	grid-template-columns: repeat(var(--ezorg-cols, 4), minmax(0, 1fr));
	gap: 18px;
}

.ezorg-catcard {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
	color: var(--ezorg-inkt);
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.ezorg-catcard:hover {
	border-color: var(--ezorg-groen);
	box-shadow: 0 10px 24px rgba(20, 53, 31, .08);
	transform: translateY(-2px);
}

.ezorg-catcard__media { display: block; overflow: hidden; background: var(--ezorg-creme); }

/* Vullend: deze kaarten krijgen een sfeerfoto, geen uitgeknipt product. Dus
   geen contain en geen multiply, want dat laat een foto grijs en zwevend
   ogen. De verhouding stel je per blok in met verhouding="16/9". */
.ezorg-catcard__media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: var(--ezorg-ratio, 4 / 3);
	object-fit: cover;
	object-position: center;
	transition: transform .35s ease;
}
.ezorg-catcard:hover .ezorg-catcard__media img { transform: scale(1.04); }

@media (prefers-reduced-motion: reduce) {
	.ezorg-catcard__media img { transition: none; }
	.ezorg-catcard:hover .ezorg-catcard__media img { transform: none; }
}

.ezorg-catcard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 14px 16px;
	border-top: 1px solid var(--ezorg-lijn);
}

.ezorg-catcard__name { font-weight: 700; font-size: 15px; }
.ezorg-catcard__foot svg { flex: 0 0 auto; color: var(--ezorg-groen); transition: transform .15s ease; }
.ezorg-catcard:hover .ezorg-catcard__foot svg { transform: translateX(3px); }

@media (max-width: 900px) {
	.ezorg-situaties,
	.ezorg-catgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ezorg-block__title { font-size: 22px; }
}

@media (max-width: 560px) {
	.ezorg-situaties { grid-template-columns: minmax(0, 1fr); }
	.ezorg-catgrid { gap: 12px; }
}

/* =====================================================================
 * Live zoeken — suggestiepaneel onder de zoekbalk
 * ================================================================== */
.ezorg-search.has-live { position: relative; }

.ezorg-search__panel {
	position: absolute;
	left: 0; right: 0;
	top: calc(100% + 8px);
	z-index: 120;
	max-height: min(70vh, 460px);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 6px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
	box-shadow: 0 14px 34px rgba(20, 53, 31, .14);
	text-align: left;
}

.ezorg-search__group + .ezorg-search__group { margin-top: 4px; padding-top: 6px; border-top: 1px solid var(--ezorg-lijn); }

.ezorg-search__label {
	display: block;
	padding: 6px 10px 4px;
	color: var(--ezorg-grijs);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ezorg-search__item,
.ezorg-search__cat,
.ezorg-search__all {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: var(--ezorg-radius-sm);
	color: var(--ezorg-inkt);
	text-decoration: none;
	outline: none;
}
.ezorg-search__item:hover,
.ezorg-search__item:focus,
.ezorg-search__cat:hover,
.ezorg-search__cat:focus,
.ezorg-search__all:hover,
.ezorg-search__all:focus { background: var(--ezorg-groen-licht); }

.ezorg-search__thumb {
	flex: 0 0 auto;
	width: 44px; height: 44px;
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 8px;
	background: var(--ezorg-creme);
}
.ezorg-search__thumb img {
	display: block;
	width: 100%; height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.ezorg-search__info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }

.ezorg-search__brand {
	color: var(--ezorg-grijs);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ezorg-search__name {
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.ezorg-search__price { flex: 0 0 auto; font-size: 13.5px; font-weight: 800; white-space: nowrap; }
.ezorg-search__price .woocommerce-Price-amount { color: inherit; }
.ezorg-search__price del { display: none; }

.ezorg-search__cat { font-size: 13.5px; font-weight: 600; }
.ezorg-search__cat svg { flex: 0 0 auto; color: var(--ezorg-groen); }

.ezorg-search__all {
	justify-content: center;
	margin-top: 4px;
	border-top: 1px solid var(--ezorg-lijn);
	border-radius: 0 0 var(--ezorg-radius-sm) var(--ezorg-radius-sm);
	color: var(--ezorg-groen-hover);
	font-size: 13.5px;
	font-weight: 700;
}

.ezorg-search__busy,
.ezorg-search__empty {
	margin: 0;
	padding: 16px 12px;
	color: var(--ezorg-grijs);
	font-size: 13.5px;
	text-align: center;
}

@media (max-width: 900px) {
	/* De zoekbalk staat op eigen regel; het paneel mag de volle breedte pakken. */
	.ezorg-search__panel { max-height: min(60vh, 380px); }
}

/* =====================================================================
 * Header — mobiel
 *
 * De menubalk schuift op een telefoon horizontaal weg: je ziet niet wat er
 * verderop staat en de subcategorieën zijn onbereikbaar. Op mobiel vervangen
 * we hem daarom door een hamburger met een uitschuifpaneel.
 * ================================================================== */
.ezorg-burger {
	display: none;
	flex: 0 0 auto;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 42px; height: 42px;
	padding: 0 10px;
	border: 0;
	border-radius: 10px;
	background: none;
	cursor: pointer;
}
.ezorg-burger span {
	display: block;
	height: 2px;
	border-radius: 2px;
	background: var(--ezorg-inkt);
	transition: transform .2s ease, opacity .2s ease;
}
.ezorg-burger:hover { background: var(--ezorg-creme); }

/* Paneel */
.ezorg-mobilenav {
	position: fixed;
	inset: 0;
	z-index: 99000;
	visibility: hidden;
	pointer-events: none;
	font-family: var(--ezorg-font-body);
	color: var(--ezorg-inkt);
}
.ezorg-mobilenav.is-open { visibility: visible; pointer-events: auto; }
.ezorg-mobilenav * { box-sizing: border-box; }

.ezorg-mobilenav__overlay {
	position: absolute;
	inset: 0;
	background: rgba(20, 53, 31, 0);
	transition: background .3s ease;
}
.ezorg-mobilenav.is-open .ezorg-mobilenav__overlay { background: rgba(20, 53, 31, .42); }

.ezorg-mobilenav__panel {
	position: absolute;
	top: 0; left: 0; bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(340px, 86vw);
	background: #fff;
	box-shadow: 6px 0 32px rgba(20, 53, 31, .16);
	transform: translateX(-100%);
	transition: transform .3s cubic-bezier(.4, 0, .2, 1);
}
.ezorg-mobilenav.is-open .ezorg-mobilenav__panel { transform: none; }

@media (prefers-reduced-motion: reduce) {
	.ezorg-mobilenav__panel,
	.ezorg-mobilenav__overlay { transition: none; }
}

.ezorg-mobilenav__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex: 0 0 auto;
	padding: 16px 18px;
	border-bottom: 1px solid var(--ezorg-lijn);
}

.ezorg-mobilenav__title { font-family: var(--ezorg-font-head); font-size: 17px; font-weight: 800; }

.ezorg-mobilenav__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--ezorg-creme);
	color: var(--ezorg-inkt);
	cursor: pointer;
}

.ezorg-mobilenav__body { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; }

.ezorg-mobilenav__menu,
.ezorg-mobilenav__menu ul { margin: 0; padding: 0; list-style: none; }

.ezorg-mobilenav__menu > li {
	position: relative;
	border-bottom: 1px solid var(--ezorg-lijn);
}

.ezorg-mobilenav__menu a {
	display: block;
	padding: 14px 52px 14px 18px;
	color: var(--ezorg-inkt);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}
.ezorg-mobilenav__menu a:hover { background: var(--ezorg-groen-licht); color: var(--ezorg-groen-donker); }
.ezorg-mobilenav__menu .current-menu-item > a { color: var(--ezorg-groen-hover); }

/* Uitklapknop náást de link, zodat de categorie zelf aanklikbaar blijft */
.ezorg-mobilenav__toggle {
	position: absolute;
	top: 0; right: 0;
	width: 52px; height: 49px;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--ezorg-lijn);
	background: none;
	cursor: pointer;
}
.ezorg-mobilenav__toggle::after {
	content: "";
	display: block;
	width: 8px; height: 8px;
	margin: 0 auto;
	border: solid var(--ezorg-grijs);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform .18s ease;
}
.ezorg-mobilenav__menu > li.is-open > .ezorg-mobilenav__toggle::after { transform: rotate(-135deg) translate(-2px, -2px); }

.ezorg-mobilenav__menu .sub-menu { display: none; background: var(--ezorg-creme); }
.ezorg-mobilenav__menu > li.is-open > .sub-menu { display: block; }
.ezorg-mobilenav__menu .sub-menu a { padding-left: 32px; font-size: 14px; font-weight: 500; }

.ezorg-mobilenav__foot {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 18px;
	border-top: 1px solid var(--ezorg-lijn);
	background: var(--ezorg-creme);
}

.ezorg-mobilenav__tel {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--ezorg-inkt);
	font-weight: 700;
	text-decoration: none;
}
.ezorg-mobilenav__tel svg { color: var(--ezorg-groen); }

/* Thema mag hier geen knoppen van maken */
.ezorg-mobilenav button,
.ezorg-burger {
	background-image: none !important;
	box-shadow: none !important;
	text-transform: none !important;
	min-height: 0 !important;
}

/* ---------------------------------------------------- Omschakelpunt mobiel */
@media (max-width: 900px) {
	.ezorg-burger { display: flex; }

	/* De horizontale menubalk verdwijnt; de hamburger neemt het over. */
	.ezorg-nav { display: none; }

	.ezorg-header__in { flex-wrap: wrap; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
	.ezorg-logo { margin-right: auto; }
	.ezorg-logo__img { max-height: 38px; }
	.ezorg-logo__text { font-size: 21px; }

	.ezorg-search { order: 3; flex-basis: 100%; }

	.ezorg-header__icons { gap: 14px; }

	/* Eén USP is genoeg op een smal scherm; de rest kost alleen hoogte. */
	.ezorg-topbar__usps li:nth-child(n+2) { display: none; }
}

@media (max-width: 560px) {
	.ezorg-topbar__in { justify-content: center; }
	.ezorg-topbar__usps { justify-content: center; }
	.ezorg-topbar__note { display: none; }

	.ezorg-hicon small { display: none; }
	.ezorg-header__icons { gap: 10px; }
	.ezorg-logo__img { max-height: 34px; }

	.ezorg-search { padding-left: 14px; }
	.ezorg-search input[type="search"] { font-size: 16px; } /* voorkomt inzoomen op iOS */
}

/* =====================================================================
 * Thuiswooncheck
 *
 * Zonder JS staan alle vragen onder elkaar en werkt de pagina gewoon. Pas
 * wanneer de JS draait krijgt hij de klasse .is-stepped en tonen we er een
 * per keer.
 * ================================================================== */
.ezorg-wooncheck {
	font-family: var(--ezorg-font-body);
	color: var(--ezorg-inkt);
	font-size: 15px;
	line-height: 1.55;
	box-sizing: border-box;
}
.ezorg-wooncheck * { box-sizing: border-box; }

.ezorg-wooncheck__title {
	margin: 0 0 18px;
	font-family: var(--ezorg-font-head);
	font-size: 26px;
	font-weight: 800;
}

.ezorg-wooncheck__progress {
	display: none;
	height: 5px;
	margin-bottom: 10px;
	border-radius: 999px;
	background: #e0e4dc;
	overflow: hidden;
}
.ezorg-wooncheck.is-stepped .ezorg-wooncheck__progress { display: block; }

.ezorg-wooncheck__bar {
	display: block;
	height: 100%;
	width: 0;
	border-radius: 999px;
	background: var(--ezorg-groen);
	transition: width .3s ease;
}

.ezorg-wooncheck__count { display: none; margin: 0 0 16px; color: var(--ezorg-grijs); font-size: 13px; }
.ezorg-wooncheck.is-stepped .ezorg-wooncheck__count { display: block; }
.ezorg-wooncheck.is-done .ezorg-wooncheck__progress,
.ezorg-wooncheck.is-done .ezorg-wooncheck__count,
.ezorg-wooncheck.is-done .ezorg-wooncheck__steps { display: none; }

.ezorg-wooncheck__step {
	margin: 0 0 24px;
	padding: 24px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: #fff;
}
.ezorg-wooncheck.is-stepped .ezorg-wooncheck__step { display: none; margin-bottom: 0; }
.ezorg-wooncheck.is-stepped .ezorg-wooncheck__step.is-active { display: block; }

.ezorg-wooncheck__question {
	display: block;
	float: none;
	width: 100%;
	margin: 0 0 4px;
	padding: 0;
	font-family: var(--ezorg-font-head);
	font-size: 21px;
	font-weight: 800;
	color: var(--ezorg-inkt);
}

.ezorg-wooncheck__hint { margin: 0 0 16px; color: var(--ezorg-grijs); font-size: 13.5px; }

.ezorg-wooncheck__options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 20px;
}

.ezorg-wooncheck__option {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 14px 16px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #fff;
	cursor: pointer;
	transition: border-color .12s ease, background-color .12s ease;
}
.ezorg-wooncheck__option:hover { border-color: var(--ezorg-groen); background: var(--ezorg-groen-licht); }
.ezorg-wooncheck__option input { position: absolute; opacity: 0; width: 0; height: 0; }

.ezorg-wooncheck__mark {
	position: relative;
	flex: 0 0 auto;
	width: 20px; height: 20px;
	border: 1.5px solid #c8ccc3;
	border-radius: 6px;
	background: #fff;
	transition: background-color .12s ease, border-color .12s ease;
}
.ezorg-wooncheck__option input[type="radio"] + .ezorg-wooncheck__mark { border-radius: 999px; }

.ezorg-wooncheck__option input:checked + .ezorg-wooncheck__mark {
	background: var(--ezorg-groen);
	border-color: var(--ezorg-groen);
}
.ezorg-wooncheck__option input:checked + .ezorg-wooncheck__mark::after {
	content: "";
	position: absolute;
	left: 6px; top: 2px;
	width: 5px; height: 10px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.ezorg-wooncheck__option input:focus-visible + .ezorg-wooncheck__mark { outline: 2px solid var(--ezorg-groen); outline-offset: 2px; }

.ezorg-wooncheck__option:has(input:checked) { border-color: var(--ezorg-groen); background: var(--ezorg-groen-licht); }

.ezorg-wooncheck__label { font-size: 14.5px; font-weight: 600; }

.ezorg-wooncheck__nav { display: flex; align-items: center; gap: 14px; }
.ezorg-wooncheck:not(.is-stepped) .ezorg-wooncheck__nav { display: none; }
.ezorg-wooncheck.is-stepped .ezorg-wooncheck__step[data-step="0"] .ezorg-wooncheck__back { display: none; }

.ezorg-wooncheck__back {
	padding: 0;
	border: 0;
	background: none;
	color: var(--ezorg-grijs);
	font-family: inherit;
	font-size: 14px;
	text-decoration: underline;
	cursor: pointer;
}
.ezorg-wooncheck__back:hover { color: var(--ezorg-inkt); }

/* Uitkomst */
.ezorg-wooncheck__result {
	padding: 26px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: var(--ezorg-creme);
}

.ezorg-wooncheck__restart {
	display: block;
	margin: 18px auto 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ezorg-grijs);
	font-family: inherit;
	font-size: 13.5px;
	text-decoration: underline;
	cursor: pointer;
}
.ezorg-wooncheck__restart:hover { color: var(--ezorg-inkt); }

@media (max-width: 700px) {
	.ezorg-wooncheck__options { grid-template-columns: minmax(0, 1fr); }
	.ezorg-wooncheck__step { padding: 18px; }
	.ezorg-wooncheck__question { font-size: 18px; }
	.ezorg-wooncheck__result { padding: 18px; }
	.ezorg-wooncheck__expert { flex-direction: column; align-items: flex-start; }
	.ezorg-wooncheck__expert .ezorg-btn { width: 100%; text-align: center; }
}

/* =====================================================================
 * Thema-override voor de losse blokken
 *
 * De override hierboven is gescoped op .ezorg-shop / .ezorg-single / de
 * header. De shortcode-blokken en de thuiswooncheck staan op gewone pagina's
 * en vielen daar dus buiten: Kadence maakte er weer zijn eigen knoppen van.
 *
 * .ezorg-btn is uitsluitend van ons, dus die mag zonder scoping. Verder
 * alleen de eigenschappen die het thema daadwerkelijk kaapt.
 * ================================================================== */
.ezorg-btn,
a.ezorg-btn,
button.ezorg-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 999px !important;
	background-color: var(--ezorg-groen) !important;
	background-image: none !important;
	border: 0 !important;
	color: #fff !important;
	font-family: var(--ezorg-font-body) !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	min-height: 0 !important;
	line-height: 1.1 !important;
}

.ezorg-btn:hover,
a.ezorg-btn:hover,
button.ezorg-btn:hover { background-color: var(--ezorg-groen-hover) !important; color: #fff !important; }

.ezorg-btn--block { width: 100% !important; }

.ezorg-btn::before,
.ezorg-btn::after,
.ezorg-btn .kadence-svg-icon { display: none !important; }

/* Fieldset en legend: daar doen thema's van alles mee (randen, floats,
   negatieve marges). De vragen van de check zijn erop gebouwd. */
.ezorg-wooncheck fieldset {
	width: 100%;
	min-width: 0;
	max-width: none;
	float: none;
	clear: none;
}

.ezorg-wooncheck legend {
	float: none;
	width: 100%;
	max-width: none;
	margin-bottom: 4px;
	padding: 0;
	border: 0;
	background: none;
	line-height: 1.25;
}

/* De blokken staan buiten onze scoping, dus hier zelf de basis zetten.
 *
 * Belangrijk: ze belanden in een Elementor-container, een themakolom of een
 * gewone contentregel, en die is vaak flex of grid. Onze <section> krimpt dan
 * mee tot de inhoud, waarna de tekst per letter afbreekt. Vandaar dat we hier
 * expliciet de volle breedte opeisen, in welke context hij ook staat. */
.ezorg-block,
.ezorg-wooncheck {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	flex: 1 1 100%;
}

.ezorg-wooncheck__steps,
.ezorg-wooncheck__step,
.ezorg-wooncheck__result,
.ezorg-block__head { width: 100%; min-width: 0; }

.ezorg-block a,
.ezorg-wooncheck a { text-decoration: none; }

.ezorg-block h2,
.ezorg-block h3,
.ezorg-block h4,
.ezorg-wooncheck h2,
.ezorg-wooncheck h3,
.ezorg-wooncheck h4 { text-transform: none; letter-spacing: normal; }

/* Kadence zet ul's in de content vaak op een eigen marge. */
.ezorg-block ul,
.ezorg-wooncheck ul { margin: 0; padding: 0; }

/* Situatiekaart als geheel klikbaar */
a.ezorg-situatie,
.ezorg-situatie.is-linked {
	color: var(--ezorg-inkt);
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
a.ezorg-situatie:hover,
.ezorg-situatie.is-linked:hover {
	border-color: var(--ezorg-groen);
	box-shadow: 0 10px 24px rgba(20, 53, 31, .08);
	transform: translateY(-2px);
}
a.ezorg-situatie:focus-visible {
	outline: 2px solid var(--ezorg-groen);
	outline-offset: 3px;
}

/* Het pijltje is nu een span binnen de kaartlink, geen tweede link. */
.ezorg-situatie__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 4px;
	color: var(--ezorg-groen-hover);
	font-size: 14px;
	font-weight: 700;
}
.ezorg-situatie__link svg { transition: transform .15s ease; }
a.ezorg-situatie:hover .ezorg-situatie__link svg { transform: translateX(3px); }

/* Uitkomst van de thuiswooncheck: score plus terugbelverzoek */
.ezorg-wooncheck__score {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 10px;
	margin-bottom: 6px;
	text-align: center;
}

.ezorg-wooncheck__score-number {
	font-family: var(--ezorg-font-head);
	font-size: 56px;
	font-weight: 800;
	line-height: 1;
	color: var(--ezorg-groen);
}

.ezorg-wooncheck__score-label { color: var(--ezorg-grijs); font-size: 14px; }

.ezorg-wooncheck__verdict {
	margin: 0 0 22px;
	font-family: var(--ezorg-font-head);
	font-size: 20px;
	font-weight: 800;
	text-align: center;
}

.ezorg-wooncheck__lead {
	padding: 24px;
	border-radius: var(--ezorg-radius);
	background: #fff;
	border: 1px solid var(--ezorg-lijn);
}

.ezorg-wooncheck__lead h3 {
	margin: 0 0 4px;
	font-family: var(--ezorg-font-head);
	font-size: 20px;
	font-weight: 800;
}

.ezorg-wooncheck__lead > p { margin: 0 0 16px; color: var(--ezorg-grijs); font-size: 14.5px; }

.ezorg-wooncheck__fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 14px;
}

.ezorg-wooncheck__field { display: flex; flex-direction: column; gap: 5px; }
.ezorg-wooncheck__field span { font-size: 13.5px; font-weight: 700; }

.ezorg-wooncheck__field input {
	width: 100%;
	padding: 11px 13px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #fff;
	color: var(--ezorg-inkt);
	font-family: inherit;
	font-size: 16px; /* 16px voorkomt inzoomen op iOS */
}
.ezorg-wooncheck__field input:focus {
	outline: none;
	border-color: var(--ezorg-groen);
	box-shadow: 0 0 0 3px var(--ezorg-groen-licht);
}

/* Alleen bots vullen dit in. Niet display:none, want dat slaan sommige in. */
.ezorg-wooncheck__hp {
	position: absolute;
	left: -9999px;
	width: 1px; height: 1px;
	overflow: hidden;
}

.ezorg-wooncheck__small { margin: 10px 0 0; color: var(--ezorg-grijs); font-size: 12.5px; text-align: center; }

/* Bedankt */
.ezorg-wooncheck__thanks {
	padding: 40px 26px;
	border-radius: var(--ezorg-radius);
	background: #fff;
	border: 1px solid var(--ezorg-lijn);
	text-align: center;
}
.ezorg-wooncheck__thanks svg { color: var(--ezorg-groen); margin-bottom: 8px; }
.ezorg-wooncheck__thanks h3 {
	margin: 0 0 6px;
	font-family: var(--ezorg-font-head);
	font-size: 22px;
	font-weight: 800;
}
.ezorg-wooncheck__thanks p { margin: 0 0 6px; color: var(--ezorg-grijs); }
.ezorg-wooncheck__thanks a { color: var(--ezorg-groen-hover); }

@media (max-width: 700px) {
	.ezorg-wooncheck__fields { grid-template-columns: minmax(0, 1fr); }
	.ezorg-wooncheck__score-number { font-size: 44px; }
	.ezorg-wooncheck__lead { padding: 18px; }
}

/* Statuslabels in het beheeroverzicht staan in admin.css */

/* =====================================================================
 * Header op mobiel: alles op één regel houden
 *
 * De logo-afbeelding werd alleen op hoogte begrensd. Bij een breed woordmerk
 * eet die de hele regel op, waarna de iconen naar een eigen rij zakken en je
 * vier rijen header hebt voordat de pagina begint. Vandaar hier een grens op
 * de breedte, en het account-icoon verhuist naar het menupaneel.
 * ================================================================== */
@media (max-width: 900px) {
	.ezorg-header__in { gap: 10px; }
	.ezorg-logo { min-width: 0; }
	.ezorg-logo__img { max-height: 34px; max-width: 165px; }
	.ezorg-logo__text { font-size: 19px; }

	.ezorg-header__icons { gap: 12px; flex-wrap: nowrap; }
	.ezorg-tel-btn { padding: 8px; }
	.ezorg-hicon small { display: none; }
}

@media (max-width: 560px) {
	.ezorg-logo__img { max-height: 30px; max-width: 140px; }
	.ezorg-logo__text { font-size: 18px; }

	.ezorg-burger { width: 36px; padding: 0 7px; }

	/* Account zit in het menupaneel; hier is de ruimte te kostbaar. */
	.ezorg-hicon--account { display: none; }

	.ezorg-header__icons { gap: 10px; }
	.ezorg-tel-btn { padding: 7px; border-radius: 10px; }
	.ezorg-tel-btn svg { display: block; }

	.ezorg-search { padding: 3px 3px 3px 14px; }
	.ezorg-search .ezorg-btn { padding: 8px 15px !important; font-size: 12.5px !important; }
}

@media (max-width: 380px) {
	.ezorg-logo__img { max-width: 120px; }
	.ezorg-header__icons { gap: 8px; }
}

/* Account onderin het menupaneel */
.ezorg-mobilenav__account {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: #fff;
	color: var(--ezorg-inkt);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
}
.ezorg-mobilenav__account:hover { border-color: var(--ezorg-groen); color: var(--ezorg-groen-donker); }
.ezorg-mobilenav__account svg { color: var(--ezorg-groen); }

/* Pijltjes over de productfoto */
.ezorg-single__stage { position: relative; }
.ezorg-single__stage:focus-visible { outline: 2px solid var(--ezorg-groen); outline-offset: 3px; }

.ezorg-single__nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	margin-top: -21px;
	padding: 0;
	border: 1px solid var(--ezorg-lijn);
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: var(--ezorg-inkt);
	cursor: pointer;
	opacity: 0;
	transition: opacity .18s ease, background-color .15s ease;
	box-shadow: 0 2px 8px rgba(20, 53, 31, .12);
}
.ezorg-single__nav--prev { left: 12px; }
.ezorg-single__nav--next { right: 12px; }

.ezorg-single__stage:hover .ezorg-single__nav,
.ezorg-single__stage:focus-within .ezorg-single__nav { opacity: 1; }
.ezorg-single__nav:hover { background: #fff; border-color: var(--ezorg-groen); color: var(--ezorg-groen-donker); }
.ezorg-single__nav:focus-visible { opacity: 1; outline: 2px solid var(--ezorg-groen); outline-offset: 2px; }

/* Op touch is er geen hover, dus daar staan ze gewoon aan. */
@media (hover: none) {
	.ezorg-single__nav { opacity: 1; }
}

.ezorg-single__counter {
	position: absolute;
	right: 12px; bottom: 12px;
	z-index: 3;
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(20, 53, 31, .72);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
}

/* Het thema mag deze knoppen niet overnemen */
.ezorg-single .ezorg-single__nav,
.ezorg-single .ezorg-single__nav:hover {
	background-image: none !important;
	box-shadow: 0 2px 8px rgba(20, 53, 31, .12) !important;
	text-transform: none !important;
	min-height: 0 !important;
}

@media (max-width: 560px) {
	.ezorg-single__nav { width: 36px; height: 36px; margin-top: -18px; }
	.ezorg-single__nav--prev { left: 8px; }
	.ezorg-single__nav--next { right: 8px; }
	.ezorg-single__thumb { width: 64px; height: 64px; }
}

/* Melding wanneer een vraag nog openstaat */
.ezorg-wooncheck__error {
	margin: 0 0 12px;
	padding: 10px 13px;
	border: 1px solid #e6b8b8;
	border-radius: var(--ezorg-radius-sm);
	background: #fdf3f3;
	color: #8a2b2b;
	font-size: 13.5px;
	font-weight: 600;
}

.ezorg-wooncheck__step.is-invalid .ezorg-wooncheck__option { border-color: #e6b8b8; }
.ezorg-wooncheck__step.is-invalid .ezorg-wooncheck__option:hover { border-color: var(--ezorg-groen); }

/* Melding bij een afgekeurde inzending */
.ezorg-wooncheck__problem {
	margin: 0 0 18px;
	padding: 13px 16px;
	border: 1px solid #e6b8b8;
	border-radius: var(--ezorg-radius-sm);
	background: #fdf3f3;
	color: #8a2b2b;
	font-size: 14px;
	font-weight: 600;
}

/* Directe terugkoppeling per veld */
.ezorg-wooncheck__field-error {
	margin-top: 5px;
	color: #8a2b2b;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.35;
}

.ezorg-wooncheck__field input.is-invalid {
	border-color: #d98b8b;
	background: #fdf7f7;
}
.ezorg-wooncheck__field input.is-invalid:focus {
	border-color: #c25555;
	box-shadow: 0 0 0 3px rgba(194, 85, 85, .12);
}

/* =====================================================================
 * Huuraanbod ([ezorg_verhuur])
 * ================================================================== */
.ezorg-huur {
	font-family: var(--ezorg-font-body);
	color: var(--ezorg-inkt);
	font-size: 15px;
	line-height: 1.55;
}
.ezorg-huur * { box-sizing: border-box; }

.ezorg-huur__titel {
	margin: 0 0 20px;
	font-family: var(--ezorg-font-head);
	font-size: 26px;
	font-weight: 700;
	color: var(--ezorg-groen-donker);
}

.ezorg-huur__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ezorg-huur__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ezorg-huur__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ezorg-huur__item {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: var(--ezorg-wit);
}

.ezorg-huur__foto {
	display: block;
	background: var(--ezorg-creme);
	line-height: 0;
	text-decoration: none;
}
.ezorg-huur__foto img {
	width: 100%;
	height: 210px;
	max-width: 100%;
	object-fit: contain;
	padding: 14px;
	mix-blend-mode: multiply;
}
.ezorg-huur__foto-leeg { display: block; height: 210px; }

.ezorg-huur__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 18px;
}

.ezorg-huur__naam {
	margin: 0 0 6px;
	font-family: var(--ezorg-font-head);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}
.ezorg-huur__naam a { color: var(--ezorg-groen-donker); text-decoration: none; }
.ezorg-huur__naam a:hover { color: var(--ezorg-groen); }

.ezorg-huur__tekst {
	margin: 0 0 14px;
	color: var(--ezorg-grijs);
	font-size: 13.5px;
	line-height: 1.5;
}

.ezorg-huur__prijzen {
	margin: 0 0 12px;
	padding: 12px 14px;
	border-radius: var(--ezorg-radius-sm);
	background: var(--ezorg-groen-licht);
	list-style: none;
}
.ezorg-huur__prijzen li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 3px 0;
	font-size: 14px;
}
.ezorg-huur__prijzen strong {
	font-family: var(--ezorg-font-head);
	font-size: 16px;
	font-weight: 700;
	color: var(--ezorg-groen-donker);
	white-space: nowrap;
}
.ezorg-huur__prijzen .woocommerce-Price-amount { font-weight: 700; }

.ezorg-huur__meta {
	margin: 0 0 14px;
	color: var(--ezorg-grijs);
	font-size: 12.5px;
}

/* De knop onderaan uitlijnen, ook als de kaarten verschillend lang zijn */
.ezorg-huur__knop { margin-top: auto; align-self: flex-start; }

.ezorg-huur__leeg {
	padding: 16px 18px;
	border: 1px dashed var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: var(--ezorg-creme);
	color: var(--ezorg-grijs);
	font-size: 14px;
}

@media (max-width: 900px) {
	.ezorg-huur__grid,
	.ezorg-huur__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.ezorg-huur__grid,
	.ezorg-huur__grid--2,
	.ezorg-huur__grid--4 { grid-template-columns: minmax(0, 1fr); }
	.ezorg-huur__foto img,
	.ezorg-huur__foto-leeg { height: 180px; }
}

/* Huurblok op de productpagina */
.ezorg-rentbox {
	margin: 16px 0 0;
	padding: 16px 18px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius);
	background: var(--ezorg-wit);
}

.ezorg-rentbox__kop {
	margin: 0 0 10px;
	font-family: var(--ezorg-font-head);
	font-size: 16px;
	font-weight: 700;
	color: var(--ezorg-groen-donker);
}

.ezorg-rentbox .ezorg-huur__prijzen { margin-bottom: 10px; }

.ezorg-rentbox__meta {
	margin: 0 0 8px;
	color: var(--ezorg-inkt);
	font-size: 13px;
	font-weight: 600;
}

.ezorg-rentbox__note {
	margin: 0 0 12px;
	color: var(--ezorg-grijs);
	font-size: 13px;
}

.ezorg-rentbox__acties {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ezorg-rentbox__uitleg {
	margin: 12px 0 0;
	color: var(--ezorg-grijs);
	font-size: 12.5px;
	line-height: 1.5;
}

/* Huurprijs op de productkaart, daar waar anders de verkoopprijs staat */
.ezorg-card__price--huur {
	font-family: var(--ezorg-font-body);
	font-size: 14px;
	font-weight: 700;
	color: var(--ezorg-groen-donker);
}
.ezorg-card__price--huur .ezorg-card__huur-label {
	color: var(--ezorg-grijs);
	font-weight: 600;
}
.ezorg-card__price--huur .ezorg-card__huur-unit {
	color: var(--ezorg-grijs);
	font-size: 12.5px;
	font-weight: 600;
}

/* Reserveringsformulier in het huurblok */
.ezorg-rentform { margin: 14px 0 0; }

.ezorg-rentform__kop {
	margin: 0 0 10px;
	font-family: var(--ezorg-font-head);
	font-size: 15px;
	font-weight: 700;
	color: var(--ezorg-groen-donker);
}

.ezorg-rentform__rij {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}
.ezorg-rentform__rij label {
	flex: 0 0 112px;
	color: var(--ezorg-inkt);
	font-size: 13.5px;
	font-weight: 600;
}
.ezorg-rentform__rij--vol { display: block; }
.ezorg-rentform__rij--vol label { display: block; margin-bottom: 4px; }

.ezorg-rentform input,
.ezorg-rentform select {
	width: 100%;
	min-width: 0;
	padding: 9px 12px;
	border: 1px solid var(--ezorg-lijn);
	border-radius: var(--ezorg-radius-sm);
	background: var(--ezorg-wit);
	color: var(--ezorg-inkt);
	font-family: var(--ezorg-font-body);
	font-size: 14px;
	line-height: 1.3;
}
.ezorg-rentform input:focus,
.ezorg-rentform select:focus {
	outline: 0;
	border-color: var(--ezorg-groen);
	box-shadow: 0 0 0 3px rgba(31, 157, 63, .14);
}

.ezorg-rentform__telling {
	margin: 4px 0 12px;
	padding: 10px 12px;
	border-radius: var(--ezorg-radius-sm);
	background: var(--ezorg-creme);
	color: var(--ezorg-groen-donker);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
}

.ezorg-rentform button[type="submit"] { margin-top: 4px; }

.ezorg-rentform__uitleg {
	margin: 10px 0 0;
	color: var(--ezorg-grijs);
	font-size: 12.5px;
	line-height: 1.5;
}

.ezorg-rentform__fout {
	margin: 0 0 12px;
	padding: 10px 12px;
	border: 1px solid #d98b8b;
	border-radius: var(--ezorg-radius-sm);
	background: #fdf7f7;
	color: #8a2b2b;
	font-size: 13px;
	font-weight: 600;
}

.ezorg-rentform__ok {
	margin: 14px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--ezorg-groen);
	border-radius: var(--ezorg-radius-sm);
	background: var(--ezorg-groen-licht);
	color: var(--ezorg-groen-donker);
	font-size: 13.5px;
	line-height: 1.5;
}
.ezorg-rentform__ok p { margin: 0; }
.ezorg-rentform__ok-kop {
	margin-bottom: 4px !important;
	font-family: var(--ezorg-font-head);
	font-size: 15px;
	font-weight: 700;
}

.ezorg-rentbox__bellen {
	margin: 10px 0 0;
	color: var(--ezorg-grijs);
	font-size: 13px;
}
.ezorg-rentbox__bellen a { color: var(--ezorg-groen-donker); font-weight: 700; }

/* Honeypot: uit beeld, maar niet display:none — dat vullen bots juist wel in */
.ezorg-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
