/* =========================================================================
   Macrolux WooCommerce — de winkel in homepagina-stijl.
   Puur CSS op de standaard WooCommerce/ProStore-markup: productarchief,
   productpagina, winkelwagen en checkout. Geen pagina's omgebouwd.
   Kleuren/tokens komen uit macrolux-global.css.
   ========================================================================= */

/* ---------- Knoppen ----------------------------------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce .checkout-button {
	background: var(--ml-orange);
	color: #fff;
	border: 0;
	border-radius: 5px;
	padding: 12px 22px;
	font-weight: 600;
	font-family: inherit;
	line-height: 1.2;
	text-shadow: none;
	transition: filter 0.15s ease, transform 0.05s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .checkout-button:hover {
	background: var(--ml-orange-dark);
	color: #fff;
	filter: none;
}

.woocommerce a.button:active,
.woocommerce button.button:active {
	transform: translateY(1px);
}

/* Sale-badge */
.woocommerce span.onsale {
	background: var(--ml-orange);
	color: #fff;
	border-radius: 99px;
	min-height: auto;
	min-width: auto;
	line-height: 1.2;
	padding: 5px 12px;
	font-weight: 600;
}

/* ---------- Productarchief (kaarten) ----------------------------------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	text-align: left;
}

.woocommerce ul.products li.product .product-content {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	padding: 14px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.woocommerce ul.products li.product .product-content:hover {
	box-shadow: var(--ml-shadow-hover);
	transform: translateY(-2px);
}

.woocommerce ul.products li.product img {
	border-radius: var(--ml-radius-sm);
	margin-bottom: 14px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ml-ink);
}

.woocommerce ul.products li.product .price {
	margin: 6px 0 0;
	color: var(--ml-ink);
	font-weight: 700;
}

.woocommerce ul.products li.product .price del {
	color: var(--ml-muted);
	font-weight: 400;
}

.woocommerce ul.products li.product .price ins {
	color: var(--ml-orange);
	text-decoration: none;
}

/* Actie-knop als rond icoon rechtsonder — net als de homepage-tegels.
   Het pijl-icoon staat als ACHTERGROND op de knop zelf; álle icoon-pseudo's
   van thema/WooCommerce (cart-glyph + AJAX-spinner) en inner-elementen worden
   uitgeschakeld, zodat er gegarandeerd maar één icoon zichtbaar is. De
   aria-label op de knop blijft voor toegankelijkheid. */
.woocommerce.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .button {
	align-self: flex-end;
	margin-top: 14px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 46px !important;
	min-width: 0 !important;
	height: 46px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	background-color: var(--ml-orange) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='17' x2='17' y2='7'/%3E%3Cpolyline points='7 7 17 7 17 17'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 20px 20px !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	box-shadow: none !important;
	text-indent: 0 !important;
}

/* Alle icoon-pseudo's (cart-glyph, spinner, checkmark) + inner-elementen uit. */
.woocommerce.woocommerce-page ul.products li.product .button::before,
.woocommerce.woocommerce-page ul.products li.product .button::after,
.woocommerce ul.products li.product .button::before,
.woocommerce ul.products li.product .button::after {
	display: none !important;
	content: none !important;
	animation: none !important;
}

.woocommerce ul.products li.product .button > * {
	display: none !important;
}

.woocommerce.woocommerce-page ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:hover {
	background-color: var(--ml-orange-dark) !important;
	transform: translateY(-1px);
}

/* Na AJAX-toevoegen verschijnt een "Bekijk winkelwagen"-link ná de knop —
   die tonen we als nette tekstlink i.p.v. verminkte knop. */
.woocommerce ul.products li.product a.added_to_cart {
	display: inline-block;
	width: auto !important;
	height: auto !important;
	margin-top: 8px;
	padding: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	color: var(--ml-orange) !important;
	font-size: 13px !important;
	font-weight: 600;
}

/* ---------- Toolbar: resultaten + sortering ---------------------------- */
.woocommerce .woocommerce-result-count {
	color: var(--ml-muted);
}

.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	padding: 8px 12px;
	background: #fff;
}

/* ---------- Enkele productpagina -------------------------------------- */
/* Het thema rendert galerij + summary in een Bootstrap-grid
   (.row > .col-*) met sidebar-breedtes (col-md-6 / col-md-3 + push/pull),
   waardoor de summary maar ~25% breed werd. We negeren die kolom-breedtes
   en push/pull en forceren een nette 2-koloms layout: galerij links,
   samenvatting rechts. Tabs/gerelateerd staan buiten .row (al full-width). */
@media (min-width: 769px) {
	.single-product div.product .row {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		margin-left: 0;
		margin-right: 0;
		column-gap: 56px;
		row-gap: 40px;
	}
	.single-product div.product .row > [class*="col-"] {
		float: none !important;
		left: auto !important;
		right: auto !important;
		width: auto !important;
		max-width: none !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin: 0 !important;
	}
	/* 1e kolom = galerij (vaste breedte), 2e kolom = summary (vult de rest) */
	.single-product div.product .row > [class*="col-"]:first-child {
		flex: 0 0 46%;
	}
	.single-product div.product .row > [class*="col-"]:last-child {
		flex: 1 1 0;
		min-width: 0;
	}
}

/* Onder 769px staan galerij en samenvatting onder elkaar. Kava zet ze via
   col-sm-* (breakpoint 640px) al vanaf 640px naast elkaar, met push/pull en
   zonder tussenruimte; die kolombreedtes gelden hier dus niet. */
@media (max-width: 768px) {
	.single-product div.product .row > [class*="col-"] {
		float: none !important;
		left: auto !important;
		right: auto !important;
		/* .row is in Kava altijd een flexcontainer, dus ook de flex-basis
		   op volle breedte zetten; anders krimpen de kolommen alsnog. */
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	.single-product div.product .row > [class*="col-"] + [class*="col-"] {
		margin-top: 20px !important;
	}
	/* De galerij is hier breder dan de foto zelf; laat hem meeschalen,
	   anders blijft er ruimte naast de foto open staan. */
	.single-product div.product .woocommerce-product-gallery__image img {
		width: 100% !important;
	}
}

/* Kruimelpad */
.woocommerce .woocommerce-breadcrumb {
	color: var(--ml-muted);
	font-size: 14px;
	margin-bottom: 22px;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--ml-ink);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--ml-orange);
}

/* Galerij — afgeronde afbeelding met zachte schaduw op licht paneel */
.single-product div.product .woocommerce-product-gallery {
	background: var(--ml-panel);
	border-radius: var(--ml-radius);
	padding: 22px;
	margin: 0;
}

.woocommerce div.product .woocommerce-product-gallery__image img {
	border-radius: var(--ml-radius-sm);
	box-shadow: var(--ml-shadow);
}

.woocommerce div.product .flex-control-thumbs {
	margin-top: 12px;
}

.woocommerce div.product .flex-control-thumbs li img {
	border-radius: var(--ml-radius-sm);
	border: 2px solid transparent;
}

.woocommerce div.product .flex-control-thumbs li img.flex-active,
.woocommerce div.product .flex-control-thumbs li img:hover {
	border-color: var(--ml-orange);
}

/* Samenvatting als merk-kaart (wit, afgerond, zachte schaduw) */
.woocommerce div.product .summary.entry-summary {
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	box-shadow: var(--ml-shadow);
	padding: 34px;
}

/* Titel + prijs */
.single-product div.product .product_title {
	margin: 0 0 14px;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 700;
	line-height: 1.2;
	color: var(--ml-ink);
}

.single-product div.product .summary .star-rating {
	margin: 0 0 14px;
	color: var(--ml-orange);
}

.single-product div.product p.price,
.single-product div.product .summary .price {
	margin: 0 0 20px;
	font-size: 32px;
	font-weight: 700;
	color: var(--ml-orange);
	line-height: 1;
}

.single-product div.product p.price ins {
	color: var(--ml-orange);
	text-decoration: none;
}

.single-product div.product p.price del {
	color: var(--ml-muted);
	font-weight: 400;
	font-size: 20px;
	margin-right: 8px;
}

/* Korte omschrijving */
.single-product div.product .woocommerce-product-details__short-description {
	color: var(--ml-muted);
	line-height: 1.65;
	margin-bottom: 22px;
}

.single-product div.product .woocommerce-product-details__short-description p {
	margin: 0 0 10px;
}

/* Voorraad als badge-pil */
.single-product div.product .summary .stock {
	display: inline-block;
	padding: 5px 14px;
	border-radius: 30px;
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 18px;
}

.single-product div.product .summary .stock.in-stock {
	background: rgba(46, 158, 91, 0.12);
	color: #2e9e5b;
}

.single-product div.product .summary .stock.out-of-stock {
	background: rgba(192, 57, 43, 0.1);
	color: #c0392b;
}

/* Toevoegen aan winkelwagen — grote oranje pil naast het aantal */
.single-product div.product form.cart {
	margin: 6px 0 24px;
}

.single-product div.product form.cart .quantity {
	margin-right: 12px;
}

.single-product div.product form.cart .quantity .qty {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	padding: 0 10px;
	height: 54px;
	width: 80px;
	text-align: center;
	font-weight: 600;
	font-size: 16px;
}

.woocommerce div.product .single_add_to_cart_button {
	min-height: 54px;
	padding: 15px 38px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	border-radius: var(--ml-radius-sm) !important;
	background: var(--ml-orange) !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(255, 102, 0, 0.28);
	transition: transform 0.06s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.woocommerce div.product .single_add_to_cart_button:hover {
	background: var(--ml-orange-dark) !important;
	box-shadow: 0 12px 26px rgba(255, 102, 0, 0.34);
}

.woocommerce div.product .single_add_to_cart_button:active {
	transform: translateY(1px);
}

/* Meta (SKU, categorie) */
.single-product div.product .product_meta {
	margin-top: 8px;
	padding-top: 18px;
	border-top: 1px solid var(--ml-line);
	font-size: 14px;
	color: var(--ml-muted);
}

.single-product div.product .product_meta a {
	color: var(--ml-ink);
}

.single-product div.product .product_meta a:hover {
	color: var(--ml-orange);
}

/* Tabs — platte tabbladen met oranje actieve onderlijn */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--ml-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 16px;
	font-weight: 600;
	color: var(--ml-muted);
	border-bottom: 2px solid transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--ml-ink);
	border-bottom-color: var(--ml-orange);
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding-top: 22px;
	color: var(--ml-ink);
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	font-weight: 700;
	color: var(--ml-ink);
}

/* Gerelateerde / up-sell producten */
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	margin-bottom: 24px;
	font-size: clamp(22px, 2.5vw, 30px);
	font-weight: 700;
	color: var(--ml-ink);
}

/* ---------- Winkelwagen ------------------------------------------------ */
/* Geen kruimelpad in de funnel (winkelwagen + checkout). */
.woocommerce-cart .site-breadcrumbs,
.woocommerce-checkout .site-breadcrumbs {
	display: none;
}

/* Lege winkelwagen: nette lege-staat met icoon, kop, tekst en knop. */
.woocommerce .ml-empty-cart {
	max-width: 540px;
	margin: 20px auto 44px;
	padding: 48px 34px;
	text-align: center;
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
}

.ml-empty-cart__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	height: 74px;
	margin-bottom: 22px;
	border-radius: 50%;
	background: var(--ml-panel);
	color: var(--ml-orange);
}

.ml-empty-cart__icon svg {
	width: 34px;
	height: 34px;
}

.ml-empty-cart__title {
	margin: 0 0 12px;
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 800;
	line-height: 1.2;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: -0.01em;
}

.ml-empty-cart__text {
	margin: 0 auto 26px;
	max-width: 400px;
	font-size: 15px;
	line-height: 1.7;
	color: var(--ml-muted);
}

/* Geen automatische woordafbreking (zoals "poly-carbonaat"). */
.ml-empty-cart,
.ml-empty-cart__title,
.ml-empty-cart__text,
.ml-empty-cart__btn {
	hyphens: none !important;
	-webkit-hyphens: none !important;
	overflow-wrap: normal;
	word-break: normal;
}

.woocommerce .ml-empty-cart .ml-empty-cart__btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	height: 50px;
	padding: 0 26px;
	border-radius: 5px;
	background: var(--ml-orange) !important;
	color: #fff !important;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: filter 0.15s ease;
}

.woocommerce .ml-empty-cart .ml-empty-cart__btn:hover {
	filter: brightness(0.93);
	color: #fff !important;
}

.ml-empty-cart__btn svg {
	width: 17px;
	height: 17px;
}

/* Bredere verdeling: winkelwagen 60% / totalen 40% (Kava geeft 65/35). */
@media (min-width: 769px) {
	.woocommerce-cart .woocommerce .woocommerce-cart-form {
		width: 60% !important;
	}
	.woocommerce-cart .woocommerce .cart-collaterals {
		width: calc(40% - 28px) !important;
		margin-left: 28px !important;
	}
}

/* Algemene shop_table (checkout-overzicht) blijft nette tabel. */
.woocommerce table.shop_table {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.woocommerce table.shop_table th {
	color: var(--ml-ink);
	font-weight: 700;
}

/* --- Winkelwagen-tabel omgezet naar item-kaarten --- */
.woocommerce-cart table.cart.shop_table {
	border: 0;
	border-radius: 0;
	overflow: visible;
	width: 100%;
	display: block;
}

.woocommerce-cart table.cart thead {
	display: none;
}

.woocommerce-cart table.cart tbody {
	display: block;
}

.woocommerce-cart table.cart tbody tr {
	display: block;
}

/* Elke productrij = vast grid, alles op één lijn uitgelijnd */
.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
	position: relative;
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) auto auto auto auto;
	align-items: center;
	column-gap: 20px;
	row-gap: 6px;
	padding: 20px;
	border: 0;
	border-bottom: 1px solid var(--ml-line);
	border-radius: 0;
	margin: 0;
	background: transparent;
}

.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item td {
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

/* Volgorde: thumbnail | naam | prijs | subtotaal | aantal (× staat absoluut) */
.woocommerce-cart table.cart td.product-thumbnail { order: 1; }
.woocommerce-cart table.cart td.product-name      { order: 2; min-width: 0; }
.woocommerce-cart table.cart td.product-price     { order: 3; }
.woocommerce-cart table.cart td.product-subtotal  { order: 4; }
.woocommerce-cart table.cart td.product-quantity  { order: 5; }

/* Geen WooCommerce-mobiel-labels op thumbnail/naam/aantal/verwijder */
.woocommerce-cart table.cart td.product-thumbnail::before,
.woocommerce-cart table.cart td.product-name::before,
.woocommerce-cart table.cart td.product-quantity::before,
.woocommerce-cart table.cart td.product-remove::before {
	content: none !important;
	display: none !important;
}

/* Thumbnail */
.woocommerce-cart table.cart td.product-thumbnail img {
	width: 76px;
	height: 76px;
	object-fit: cover;
	border-radius: var(--ml-radius-sm);
	border: 1px solid var(--ml-line);
	display: block;
}

/* Productnaam + variatie */
.woocommerce-cart table.cart td.product-name > a {
	color: var(--ml-ink);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-cart table.cart td.product-name > a:hover {
	color: var(--ml-orange);
}

/* Variatie-details in de winkelwagen verbergen: lange waarden
   (bv. "Op maat zagen: Ja (...)") verstoorden de uitlijning.
   De klant ziet de volledige variatie nog wel op de checkout. */
.woocommerce-cart table.cart td.product-name dl.variation {
	display: none;
}

/* Kleine labels (Prijs/Subtotaal/Aantal) via data-title */
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal,
.woocommerce-cart table.cart td.product-quantity {
	text-align: left;
	min-width: 66px;
}

.woocommerce-cart table.cart td.product-price::before,
.woocommerce-cart table.cart td.product-subtotal::before,
.woocommerce-cart table.cart td.product-quantity::before {
	content: attr(data-title);
	display: block;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--ml-muted);
	margin-bottom: 5px;
	white-space: nowrap;
}

.woocommerce-cart table.cart td.product-price {
	color: var(--ml-ink);
	white-space: nowrap;
}

.woocommerce-cart table.cart td.product-subtotal {
	font-weight: 700;
	color: var(--ml-ink);
	white-space: nowrap;
}

/* Aantal-veld */
.woocommerce-cart table.cart td.product-quantity .qty {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	padding: 8px 6px;
	width: 70px;
	text-align: center;
}

/* Verwijder-× (enkel, rechtsboven in de kaart) */
.woocommerce-cart table.cart td.product-remove {
	order: 6;
	justify-self: end;
}

.woocommerce-cart table.cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid var(--ml-line);
	border-radius: 50%;
	color: var(--ml-muted) !important;
	font-size: 18px;
	line-height: 1;
	text-align: center;
}

/* Kava zet hier een FontAwesome-icoon vóór; die uit → geen dubbel kruis */
.woocommerce-cart table.cart td.product-remove a.remove::before {
	content: none !important;
	display: none !important;
}

.woocommerce-cart table.cart td.product-remove a.remove:hover {
	background: var(--ml-orange) !important;
	color: #fff !important;
	border-color: var(--ml-orange);
}

/* Coupon- + bijwerken-rij als nette balk */
.woocommerce-cart table.cart td.actions {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border: 0 !important;
	background: transparent !important;
	padding: 14px 0 0 !important;
}

.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	gap: 12px;
	margin: 8px 0 8px 28px;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	margin: 4px 0;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	padding: 12px 16px;
	min-width: 200px;
}

.woocommerce-cart table.cart td.actions .button {
	border-radius: var(--ml-radius-sm) !important;
	padding: 12px 22px !important;
	font-weight: 600 !important;
}

/* "Coupon toepassen": oranje outline-knop in de stijl van de keuzehulp-CTA. */
.woocommerce-cart table.cart td.actions .coupon .button {
	background: transparent !important;
	color: var(--ml-orange) !important;
	border: 1px solid var(--ml-orange) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.woocommerce-cart table.cart td.actions .coupon .button:hover {
	background: var(--ml-orange) !important;
	color: #fff !important;
}

/* "Verwijderen" bij een toegepaste coupon: net, klein linkje. */
.woocommerce-remove-coupon {
	display: inline-block;
	margin-left: 8px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--ml-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.15s ease;
}

.woocommerce-remove-coupon:hover {
	color: #c0392b;
}

/* Couponformulier op de checkout ("Heb je een kortingscode?"). */
.woocommerce-checkout .woocommerce-form-coupon-toggle {
	margin-bottom: 16px;
}

.woocommerce-checkout .checkout_coupon.woocommerce-form-coupon {
	margin: 0 0 26px;
	padding: 20px 22px;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	background: #fff;
}

.woocommerce-checkout .checkout_coupon .form-row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	width: 100%;
	margin: 10px 0 0;
	padding: 0;
}

.woocommerce-checkout .checkout_coupon #coupon_code.input-text {
	flex: 1 1 220px;
	height: 50px;
	margin: 0;
}

/* Oranje outline-knop in de stijl van de keuzehulp-CTA. */
.woocommerce-checkout .checkout_coupon .button[name="apply_coupon"] {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	padding: 0 26px !important;
	border-radius: var(--ml-radius-sm) !important;
	background: transparent !important;
	color: var(--ml-orange) !important;
	border: 1px solid var(--ml-orange) !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.woocommerce-checkout .checkout_coupon .button[name="apply_coupon"]:hover {
	background: var(--ml-orange) !important;
	color: #fff !important;
}

/* Op mobiel alleen "Toepassen" in de knop. */
@media (max-width: 600px) {
	.woocommerce-checkout .checkout_coupon .button[name="apply_coupon"] {
		font-size: 0 !important;
		padding: 0 20px !important;
	}
	.woocommerce-checkout .checkout_coupon .button[name="apply_coupon"]::after {
		content: "Toepassen";
		font-size: 15px;
		font-weight: 600;
	}
}

/* "Winkelwagen bijwerken" secundair (licht met rand) */
.woocommerce-cart table.cart td.actions button[name="update_cart"],
.woocommerce-cart table.cart td.actions .button[name="update_cart"] {
	background: #fff !important;
	color: var(--ml-ink) !important;
	border: 1px solid var(--ml-line) !important;
}

/* Kava zet een border/padding om de hele collaterals-wrapper; die weg —
   onze eigen totalen-kaart hieronder levert het kader. */
.woocommerce-cart .cart-collaterals {
	border: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
}

/* Totalen-blok als merk-kaart */
.woocommerce-cart .cart-collaterals .cart_totals {
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	box-shadow: var(--ml-shadow);
	padding: 24px 26px;
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
	margin-top: 0;
	font-size: 22px;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 0;
	overflow: visible;
	margin: 0;
}

.woocommerce-cart .cart_totals table.shop_table tbody {
	display: block;
}

/* Elke regel: label links, bedrag rechts */
.woocommerce-cart .cart_totals table.shop_table tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 12px 0;
	border-top: 1px solid var(--ml-line);
}

.woocommerce-cart .cart_totals table.shop_table tr:first-child {
	border-top: 0;
}

.woocommerce-cart .cart_totals table.shop_table th {
	padding: 0;
	border: 0;
	text-align: left;
	font-weight: 600;
	font-size: 15px;
	white-space: nowrap;
}

.woocommerce-cart .cart_totals table.shop_table td {
	padding: 0;
	border: 0;
	text-align: right;
	font-size: 15px;
}

.woocommerce-cart .cart_totals table.shop_table td .amount,
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-Price-amount {
	font-size: 15px;
}

/* Geen WooCommerce-mobiel-labels in de totalen */
.woocommerce-cart .cart_totals table.shop_table td::before {
	content: none !important;
	display: none !important;
}

/* (incl. btw)/(inclusief … BTW) subtiel op een eigen regel */
.woocommerce-cart .cart_totals table.shop_table small {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--ml-muted);
	margin-top: 2px;
}

/* Verzendrij: label boven, methodes eronder links (niet rechts geperst) */
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals {
	flex-direction: column;
	align-items: stretch;
}

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th {
	margin-bottom: 10px;
}

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td {
	text-align: left;
}

.woocommerce-cart .cart_totals ul#shipping_method,
.woocommerce-cart .cart_totals .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.woocommerce-cart .cart_totals ul#shipping_method li,
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin: 0;
	padding: 0;
}

.woocommerce-cart .cart_totals ul#shipping_method li input {
	margin: 3px 0 0;
	flex: 0 0 auto;
	accent-color: var(--ml-ink);
}

.woocommerce-cart .cart_totals ul#shipping_method li label {
	margin: 0;
	line-height: 1.4;
	font-weight: 400;
	color: var(--ml-ink);
}

.woocommerce-cart .cart_totals ul#shipping_method li label small {
	display: inline;
	margin: 0;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--ml-muted);
}

/* Totaalregel: groot, vet en oranje; BTW-notitie subtiel eronder */
.woocommerce-cart .cart_totals tr.order-total th {
	font-size: 15px;
	font-weight: 700;
}

.woocommerce-cart .cart_totals tr.order-total td {
	font-size: 16px;
	font-weight: 700;
}

.woocommerce-cart .cart_totals tr.order-total td strong .amount,
.woocommerce-cart .cart_totals tr.order-total td strong .woocommerce-Price-amount {
	font-size: 24px;
	font-weight: 700;
	color: var(--ml-orange);
}

/* "(inclusief € x BTW)" als eigen regel onder de totaalprijs, en het
   geneste btw-bedrag erft niet de grote oranje prijs-styling. */
.woocommerce-cart .cart_totals tr.order-total td small.includes_tax {
	display: block;
	margin-top: 4px;
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.4;
	color: rgba(29, 29, 27, 0.5);
}

.woocommerce-cart .cart_totals tr.order-total td small .amount,
.woocommerce-cart .cart_totals tr.order-total td small .woocommerce-Price-amount {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	color: var(--ml-ink);
	font-weight: 700;
}

/* Afrekenknop — Kava maakt deze groen (#27d18b); wij in .ml-btn--primary stijl */
.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button,
.woocommerce a.checkout-button {
	background-color: var(--ml-primary, var(--ml-orange)) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 5px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	padding: 0 25px !important;
	box-shadow: none !important;
	transition: filter 0.15s ease, transform 0.05s ease;
}

.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce a.checkout-button:hover {
	background-color: var(--ml-primary, var(--ml-orange)) !important;
	filter: brightness(0.93);
}

.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button:active,
.woocommerce a.checkout-button:active {
	transform: translateY(1px);
}

.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button::before {
	display: none !important;
}

/* Kruisverkoop-titel */
.woocommerce-cart .cross-sells > h2 {
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 700;
	color: var(--ml-ink);
}

/* Onder 1200px: foto + titel (met voorraadlabel) op een eigen volle regel,
   daaronder prijs, subtotaal, aantal en het verwijderkruisje. */
@media (max-width: 1199px) {
	.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 76px minmax(0, 1fr) auto auto auto;
		row-gap: 14px;
	}
	.woocommerce-cart table.cart td.product-thumbnail {
		grid-row: 1;
		grid-column: 1;
	}
	.woocommerce-cart table.cart td.product-name {
		grid-row: 1;
		grid-column: 2 / -1;
		align-self: center;
	}
	.woocommerce-cart table.cart td.product-price {
		grid-row: 2;
		grid-column: 1 / 3;
		justify-self: start;
	}
	.woocommerce-cart table.cart td.product-subtotal {
		grid-row: 2;
		grid-column: 3;
	}
	.woocommerce-cart table.cart td.product-quantity {
		grid-row: 2;
		grid-column: 4;
	}
	.woocommerce-cart table.cart td.product-remove {
		grid-row: 2;
		grid-column: 5;
		justify-self: end;
		align-self: center;
	}
}

/* Op klein scherm zetten WooCommerce/Kava de responsive-tabelcellen rechts
   uitgelijnd; de titel blijft gewoon links. */
@media (max-width: 640px) {
	.woocommerce-cart table.cart td.product-name {
		text-align: left !important;
	}
}

/* Onder 450px: drie regels. Foto + titel, dan prijs (subtotaal rechts),
   dan het aantal met het verwijderkruisje ernaast. Prijs, aantal en kruisje
   beginnen in de tweede kolom, dus gelijk met de titel naast de foto. */
@media (max-width: 450px) {
	.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
		grid-template-columns: auto auto minmax(0, 1fr);
		column-gap: 14px;
	}
	.woocommerce-cart table.cart td.product-thumbnail {
		grid-row: 1;
		grid-column: 1;
	}
	.woocommerce-cart table.cart td.product-name {
		grid-row: 1;
		grid-column: 2 / -1;
	}
	.woocommerce-cart table.cart td.product-price {
		grid-row: 2;
		grid-column: 2;
		justify-self: start;
		text-align: left !important;
	}
	.woocommerce-cart table.cart td.product-subtotal {
		grid-row: 3;
		grid-column: 2;
		justify-self: start;
		text-align: left !important;
	}
	.woocommerce-cart table.cart tr td.product-price,
	.woocommerce-cart table.cart tr td.product-subtotal {
		margin: 0 0 15px 0 !important;
	}
	.woocommerce-cart table.cart td.product-quantity {
		grid-row: 4;
		grid-column: 2;
		justify-self: start;
		text-align: left !important;
	}
	.woocommerce-cart table.cart td.product-remove {
		grid-row: 4;
		grid-column: 3;
		justify-self: start;
		align-self: center;
	}
	.woocommerce-cart table.cart td.actions {
		padding: 0 !important;
	}
}

/* ---------- Checkout --------------------------------------------------- */
/* Kava perst de hele checkout in een 570px-kolom
   (.woocommerce-checkout .woocommerce{max-width:570px}) — volle breedte. */
.woocommerce-checkout .woocommerce {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
}

/* 2-koloms op desktop: velden links, orderoverzicht-kaart rechts.
   Grid i.p.v. floats: deterministisch, "Je bestelling" blijft naast de
   velden staan i.p.v. eronder/in de hoek te vallen. */
@media (min-width: 993px) {
	.woocommerce-checkout form.checkout.woocommerce-checkout {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(340px, 41%);
		grid-template-rows: auto auto 1fr;
		column-gap: 48px;
		align-items: start;
	}
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup {
		grid-column: 1 / -1;
	}
	.woocommerce-checkout form.checkout #customer_details {
		grid-column: 1;
		grid-row: 1 / span 3;
		float: none !important;
		width: 100% !important;
	}
	.woocommerce-checkout form.checkout #order_review_heading {
		grid-column: 2;
		grid-row: 1;
		float: none !important;
		width: 100% !important;
		margin: 0 0 14px;
	}
	.woocommerce-checkout form.checkout #order_review {
		grid-column: 2;
		grid-row: 2;
		float: none !important;
		width: 100% !important;
	}
	/* Factuur + verzending onder elkaar in de linkerkolom */
	.woocommerce-checkout #customer_details .col2-set .col-1,
	.woocommerce-checkout #customer_details .col2-set .col-2,
	.woocommerce-checkout .col2-set .col-1,
	.woocommerce-checkout .col2-set .col-2 {
		float: none !important;
		width: 100% !important;
		max-width: none !important;
		padding: 0 !important;
	}
	.woocommerce-checkout #customer_details .col2-set .col-2 {
		margin-top: 26px;
	}
}

/* Form-rows: gepaarde velden exact 50/50, brede velden 100% */
.woocommerce-checkout .form-row {
	margin: 0 0 16px;
	padding: 0;
}

.woocommerce form .form-row-first,
.woocommerce-checkout .form-row-first {
	float: left;
	width: calc(50% - 9px) !important;
	margin-right: 0;
}

.woocommerce form .form-row-last,
.woocommerce-checkout .form-row-last {
	float: right;
	width: calc(50% - 9px) !important;
	margin-left: 0;
}

.woocommerce form .form-row-wide,
.woocommerce-checkout .form-row-wide {
	clear: both;
	width: 100% !important;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	display: flow-root;
}

/* Sectiekoppen — geen rare hoofdletters ("Je Bestelling" → "Je bestelling") */
.woocommerce-checkout .col2-set h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #ship-to-different-address,
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ml-ink);
	margin: 0 0 18px;
	text-transform: none !important;
	letter-spacing: 0;
}

/* Formuliervelden */
.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ml-ink);
}

.woocommerce-checkout .form-row .required {
	color: var(--ml-orange);
	border: 0;
	text-decoration: none;
}

.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	padding: 12px 14px;
	background: #fff;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ml-ink);
	box-shadow: none;
}

.woocommerce-checkout .form-row textarea,
.woocommerce form .form-row textarea {
	min-height: 100px;
}

.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--ml-ink);
	box-shadow: none;
	outline: none;
}

.select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5;
	padding-left: 0;
	color: var(--ml-ink);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	top: 0;
	width: 42px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center / 15px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
	display: none;
}

/* Moderne dropdowns: eigen chevron in plaats van de OS-pijl. */
.woocommerce-checkout .form-row select,
.woocommerce-checkout select,
.woocommerce form .form-row select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 42px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 15px;
	cursor: pointer;
}

/* Optielijst van de select2-dropdown (land/provincie) moderner. */
.select2-dropdown {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	box-shadow: 0 14px 34px rgba(29, 29, 27, 0.10);
	overflow: hidden;
}

.select2-container--default .select2-results__option {
	padding: 10px 14px;
	font-size: 14.5px;
	color: var(--ml-ink);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: rgba(255, 102, 0, 0.10);
	color: var(--ml-ink);
}

.select2-container--default .select2-results__option[aria-selected="true"] {
	background: var(--ml-orange);
	color: #fff;
}

.select2-search--dropdown .select2-search__field {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	padding: 8px 12px;
}

.select2-search--dropdown .select2-search__field:focus {
	border-color: var(--ml-ink);
	box-shadow: none;
	outline: none;
}

/* Orderoverzicht + betaling als merk-kaart */
.woocommerce-checkout #order_review {
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	box-shadow: var(--ml-shadow);
	padding: 26px 28px;
}

/* Orderoverzicht-tabel — selectors spiegelen Kava's patroon
   (.woocommerce-checkout-review-order table tbody tr td) zodat we zijn
   paddings (17px 20px) en vaste 140px-kolom echt verslaan. */
.woocommerce-checkout .woocommerce-checkout-review-order table,
.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	border: 0 !important;
	border-radius: 0;
	overflow: visible;
	margin: 0;
	width: 100%;
}

.woocommerce-checkout .woocommerce-checkout-review-order table tr th,
.woocommerce-checkout .woocommerce-checkout-review-order table thead tr th,
.woocommerce-checkout .woocommerce-checkout-review-order table tbody tr td,
.woocommerce-checkout .woocommerce-checkout-review-order table tfoot tr th,
.woocommerce-checkout .woocommerce-checkout-review-order table tfoot tr td,
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
	padding: 12px 0 !important;
	border: 0;
	background: transparent;
}

.woocommerce-checkout .woocommerce-checkout-review-order table tbody tr td {
	border-bottom: 1px solid var(--ml-line);
}

/* Geen grijze voettekst-achtergrond van het thema; gewoon transparant. */
.woocommerce-checkout .woocommerce-checkout-review-order table tfoot,
.woocommerce-checkout .woocommerce-checkout-review-order table tfoot tr {
	background: transparent !important;
}

/* Kava zet de laatste kolom vast op 140px; laat 'm meebewegen. */
.woocommerce-checkout .woocommerce-checkout-review-order table tr th:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order table tr td:last-child {
	width: auto !important;
	text-align: right;
	padding-left: 16px !important;
	white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order table thead tr th {
	border-bottom: 1px solid var(--ml-line);
	font-size: 13px;
	font-weight: 600;
	color: var(--ml-muted);
	text-transform: none;
	letter-spacing: 0;
}

/* Bedragen conform winkelwagen — Kava zet ze op 20px en het totaal op 28px */
.woocommerce-checkout .woocommerce-checkout-review-order table .amount,
.woocommerce-checkout .woocommerce-checkout-review-order table .woocommerce-Price-amount {
	font-size: 15px !important;
	line-height: 1.4;
}

.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total .amount {
	font-size: 16px !important;
	color: var(--ml-orange);
}

.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total td {
	font-weight: 700;
}

/* Geen "(incl. btw)" achter elk productbedrag — dat staat al bij het totaal */
.woocommerce-checkout .woocommerce-checkout-review-order table tbody td.product-total .tax_label {
	display: none;
}

/* BTW-notities in de voettekst subtiel op een eigen regel (zoals winkelwagen) */
.woocommerce-checkout .woocommerce-checkout-review-order table tfoot th small,
.woocommerce-checkout .woocommerce-checkout-review-order table tfoot td small {
	display: block;
	font-size: 12px !important;
	font-weight: 400;
	color: var(--ml-muted);
	margin-top: 2px;
}

.woocommerce-checkout .woocommerce-checkout-review-order table tfoot td small .amount {
	font-size: 12px !important;
	color: var(--ml-muted);
}

/* Verzendopties in het overzicht: nette lijst, labels normaal gewicht */
.woocommerce-checkout .woocommerce-checkout-review-order table ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order table ul#shipping_method li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order table ul#shipping_method li input {
	margin: 3px 0 0;
	flex: 0 0 auto;
	accent-color: var(--ml-ink);
}

.woocommerce-checkout .woocommerce-checkout-review-order table ul#shipping_method li label {
	margin: 0;
	font-weight: 400;
	line-height: 1.4;
	color: var(--ml-ink);
}

.woocommerce-checkout .woocommerce-checkout-review-order table ul#shipping_method li label small {
	display: inline;
	margin: 0;
}

/* Verzendrij: opties links uitlijnen i.p.v. rechts geperst */
.woocommerce-checkout .woocommerce-checkout-review-order table tr.woocommerce-shipping-totals td {
	text-align: left;
	padding-left: 16px !important;
}

/* Mobiel: de verzendopties onder de tekst "Verzending" zetten, links uitgelijnd
   (niet meer rechts in lijn met het label). */
@media (max-width: 600px) {
	.woocommerce-checkout .woocommerce-checkout-review-order table tr.woocommerce-shipping-totals th,
	.woocommerce-checkout .woocommerce-checkout-review-order table tr.woocommerce-shipping-totals td {
		display: block;
		width: 100% !important;
		text-align: left !important;
		padding-left: 0 !important;
		white-space: normal;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order table tr.woocommerce-shipping-totals td {
		padding-top: 6px !important;
	}
}

/* Naam mag netjes afbreken; variaties verbergen (net als winkelwagen) */
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name {
	word-break: break-word;
	line-height: 1.4;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation {
	display: none;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
	color: var(--ml-muted);
	white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name,
.woocommerce-checkout .woocommerce-checkout-review-order-table th.product-name {
	text-align: left;
	color: var(--ml-ink);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td {
	border-bottom: 1px solid var(--ml-line);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table th.product-total {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
	color: var(--ml-muted);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
	text-align: left;
	font-weight: 600;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
	font-size: 16px;
	font-weight: 700;
}

/* Totaalprijs groot tonen, net als in de winkelmand. */
.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total td strong .amount,
.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total td strong .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td strong .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td strong .woocommerce-Price-amount {
	font-size: 24px !important;
	font-weight: 700;
	color: var(--ml-orange);
}

/* De btw-regel eronder (bijv. "inclusief € x btw") op een eigen regel en in het zwart. */
.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total td small,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td small {
	display: block;
	margin-top: 4px;
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--ml-ink) !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total td small .amount,
.woocommerce-checkout .woocommerce-checkout-review-order table tr.order-total td small .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td small .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td small .woocommerce-Price-amount {
	font-size: inherit !important;
	font-weight: inherit;
	color: inherit;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table small {
	font-weight: 400;
	color: var(--ml-muted);
}

/* Betaling-box — altijd de volle breedte van de kaart */
.woocommerce-checkout #payment,
.woocommerce-checkout #order_review #payment {
	display: block;
	width: 100% !important;
	float: none !important;
	border-radius: var(--ml-radius-sm);
	background: var(--ml-panel);
	border: 0;
	margin: 20px 0 0;
	padding: 20px;
}

.woocommerce-checkout #payment .form-row.place-order {
	width: 100% !important;
	float: none;
	margin: 0;
	padding: 0;
}

.woocommerce-checkout #payment ul.wc_payment_methods {
	border: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	margin: 0;
	padding: 2px 0;
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
	font-weight: 600;
	color: var(--ml-ink);
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method input[type="radio"] {
	accent-color: var(--ml-ink);
	margin-right: 2px;
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method img,
.woocommerce-checkout #payment .mollie-gateway-icon {
	max-height: 24px;
	width: auto;
	margin: 0;
	display: inline-block;
}

.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout #payment ul.wc_payment_methods li .payment_box {
	background: transparent !important;
	border-radius: var(--ml-radius-sm);
	color: var(--ml-muted);
	font-size: 13px;
	line-height: 1.5;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: transparent !important;
	display: none;
}

/* Bestelknop — normale primaire knopstijl (zoals .ml-btn--primary): oranje,
   radius 5px, normaal gewicht en geen hoofdletters. Kava maakt deze anders. */
.woocommerce-checkout #payment .place-order .button,
.woocommerce-checkout #place_order {
	width: 100%;
	height: 50px;
	background-color: var(--ml-orange) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 5px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	padding: 0 25px !important;
	box-shadow: none !important;
}

.woocommerce-checkout #payment .place-order .button:hover,
.woocommerce-checkout #place_order:hover {
	background-color: var(--ml-orange-dark) !important;
}

.woocommerce-checkout #payment .place-order .button::before,
.woocommerce-checkout #place_order::before {
	content: none !important;
	display: none !important;
}

/* Voorwaarden-checkbox */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
}

/* Hetzelfde custom vinkje als bij de upsell op de productpagina. */
.woocommerce form .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0;
	line-height: 1.5;
}

.woocommerce form .woocommerce-form__input-checkbox,
.woocommerce-checkout input.input-checkbox,
.woocommerce-checkout #payment input.input-checkbox {
	-webkit-appearance: none;
	appearance: none;
	width: 22px;
	height: 22px;
	margin: 1px 10px 0 0;
	flex: 0 0 auto;
	vertical-align: -6px;
	border: 2px solid #d8d6d1;
	border-radius: 6px;
	background: #fff center / 14px no-repeat;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.woocommerce form .woocommerce-form__input-checkbox:hover,
.woocommerce-checkout input.input-checkbox:hover,
.woocommerce-checkout #payment input.input-checkbox:hover {
	border-color: rgba(255, 102, 0, 0.55);
}

.woocommerce form .woocommerce-form__input-checkbox:checked,
.woocommerce-checkout input.input-checkbox:checked,
.woocommerce-checkout #payment input.input-checkbox:checked {
	border-color: var(--ml-orange);
	background-color: var(--ml-orange);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

.woocommerce form .woocommerce-form__input-checkbox:focus-visible,
.woocommerce-checkout input.input-checkbox:focus-visible {
	outline: 2px solid var(--ml-ink);
	outline-offset: 2px;
}

/* ---------- Notices ---------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	background: #fff;
}

/* Kava geeft het icoon-blok links een blauwe achtergrond (#398ffc);
   wij maken het merk-oranje zodat het niet vloekt. */
.woocommerce-message::before,
.woocommerce-info::before {
	background-color: var(--ml-orange) !important;
	color: #fff !important;
}

/* Knop in de melding ("Bekijk winkelwagen") in merk-oranje. */
.woocommerce-message .button,
.woocommerce-info .button {
	background: var(--ml-orange) !important;
	color: #fff !important;
	border-radius: var(--ml-radius-sm) !important;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
	background: var(--ml-orange-dark) !important;
}

/* ---------- Paginering ------------------------------------------------- */
.woocommerce nav.woocommerce-pagination {
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	border: 0 !important;
	margin: 10px 0 0 !important;
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px !important;
	margin: 0 !important;
	border: 1px solid var(--ml-line) !important;
	border-radius: var(--ml-radius-sm) !important;
	background: #fff !important;
	color: var(--ml-ink) !important;
	font-weight: 600;
	line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
	border-color: var(--ml-orange) !important;
	color: var(--ml-orange) !important;
	background: #fff !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ml-orange) !important;
	border-color: var(--ml-orange) !important;
	color: #fff !important;
}

/* ---------- Grid/List-toggle (plugin) — verbergen als safety net ------- */
.gridlist-toggle,
.gridlist-buttonwrap {
	display: none !important;
}

/* =========================================================================
   Keuze-opties (variaties) — nette selects in de rechterkolom
   ========================================================================= */
.single-product div.product form.cart table.variations {
	width: 100%;
	margin: 0 0 8px;
	border: 0;
	border-collapse: collapse;
}

.single-product div.product form.cart table.variations tr {
	display: block;
	margin-bottom: 14px;
}

.single-product div.product form.cart table.variations td,
.single-product div.product form.cart table.variations th {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
}

.single-product div.product form.cart table.variations label {
	display: block;
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: normal;
}

.single-product div.product form.cart table.variations select {
	width: 100%;
	height: 50px;
	padding: 0 40px 0 14px;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231d1d1b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	-webkit-appearance: none;
	appearance: none;
	font-size: 15px;
	color: var(--ml-ink);
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.single-product div.product form.cart table.variations select:hover,
.single-product div.product form.cart table.variations select:focus {
	border-color: rgba(29, 29, 27, 0.55);
	outline: none;
	box-shadow: none;
}

.single-product div.product .reset_variations {
	font-size: 12.5px;
	color: var(--ml-muted);
}

.single-product div.product .woocommerce-variation-price {
	margin: 4px 0 14px;
}

/* =========================================================================
   Upsell — "Maak jouw product compleet"
   ========================================================================= */
.ml-upsell {
	margin: 4px 0 20px;
}

.ml-upsell__title {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: normal;
}

label.ml-upsell__item {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 12px 16px;
	border: 1px solid var(--ml-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

label.ml-upsell__item:hover {
	border-color: rgba(255, 102, 0, 0.55);
	box-shadow: 0 6px 16px rgba(29, 29, 27, 0.07);
}

label.ml-upsell__item:has(.ml-upsell__check:checked) {
	border-color: var(--ml-orange);
	background: rgba(255, 102, 0, 0.05);
	box-shadow: 0 0 0 3px rgba(255, 102, 0, 0.14);
}

.ml-upsell__check {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--ml-orange);
	cursor: pointer;
}

img.ml-upsell__img {
	flex: 0 0 auto;
	width: 54px;
	height: 54px;
	object-fit: cover;
	border-radius: 8px;
}

.ml-upsell__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 2px;
}

.ml-upsell__name {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--ml-ink);
}

.ml-upsell__price {
	font-size: 13.5px;
	font-weight: 700;
	color: var(--ml-orange);
}

.ml-upsell__price del {
	color: var(--ml-muted);
	font-weight: 400;
	margin-right: 5px;
}

/* =========================================================================
   Infoblokken onderaan de productpagina (zakelijk + hulp nodig)
   ========================================================================= */
.ml-pinfo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 50px 0 20px;
}

.ml-pinfo__block {
	border-radius: var(--ml-radius);
	padding: 40px;
}

.ml-pinfo__block--dark {
	background: linear-gradient(135deg, #1d1d1b 0%, #2e2e29 100%);
	color: #fff;
}

.ml-pinfo__block--light {
	background: var(--ml-panel);
	border: 1px solid var(--ml-line);
}

.ml-pinfo__title {
	margin: 0 0 12px;
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 700;
	line-height: 1.25;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: normal;
}

.ml-pinfo__block--dark .ml-pinfo__title {
	color: #fff;
}

.ml-pinfo__text {
	margin: 0 0 22px;
	max-width: 480px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--ml-muted);
}

.ml-pinfo__block--dark .ml-pinfo__text {
	color: rgba(255, 255, 255, 0.65);
}

a.ml-pinfo__cta {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 14px 24px;
	border-radius: 5px;
	background: var(--ml-orange);
	color: #fff !important;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none !important;
	transition: background 0.2s ease;
}

a.ml-pinfo__cta:hover {
	background: var(--ml-orange-dark);
	color: #fff !important;
}

.ml-pinfo__cta .ml-icon {
	width: 17px;
	height: 17px;
}

.ml-pinfo__contact {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ml-pinfo__contact a {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	font-size: 15px;
	font-weight: 600;
	color: var(--ml-ink);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ml-pinfo__contact a:hover {
	color: var(--ml-orange);
}

.ml-pinfo__icon {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 102, 0, 0.1);
	color: var(--ml-orange);
	flex: 0 0 auto;
}

.ml-pinfo__icon .ml-icon {
	width: 17px;
	height: 17px;
}

@media (max-width: 900px) {
	.ml-pinfo {
		grid-template-columns: 1fr;
	}
	.ml-pinfo__block {
		padding: 30px 26px;
	}
}

/* =========================================================================
   Summary v2: badges boven de titel, geklemde tekst, kleine prijs bij de knop
   ========================================================================= */

/* Badges boven de titel */
.ml-pbadges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
}

.ml-pbadge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 26px;
	padding: 0 12px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

.ml-pbadge--stock {
	background: rgba(30, 65, 124, 0.1);
	color: #1e417c;
}

.ml-pbadge--nostock {
	background: rgba(192, 57, 43, 0.1);
	color: #c0392b;
}

.ml-pbadge--new {
	background: rgba(255, 102, 0, 0.12);
	color: #e65c00;
}

.ml-pbadge--rating,
.ml-pbadge--sku {
	background: #f1efeb;
	color: rgba(29, 29, 27, 0.6);
}

/* Sterren in de badge: op lichte achtergrond grijs als basis, oranje als vulling
   (de basisstijl uit macrolux-home.css is gemaakt voor een donkere kaart). */
.ml-pbadge--rating .ml-stars__base {
	color: rgba(29, 29, 27, 0.2);
}

.ml-pbadge--rating .ml-stars__fill {
	color: var(--ml-orange);
}

.ml-pbadge--rating .ml-star {
	width: 12px;
	height: 12px;
}

.ml-pbadge__cat {
	position: relative;
	padding-left: 9px;
}

.ml-pbadge__cat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 11px;
	background: rgba(29, 29, 27, 0.2);
}

/* Korte omschrijving: maximaal 5 regels, uitklapbaar */
.single-product div.product .ml-pdesc {
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 8px;
}

.single-product div.product .ml-pdesc.is-expanded {
	display: block;
	-webkit-line-clamp: none;
}

button.ml-pdesc__more {
	display: inline-block;
	margin: 0 0 18px;
	padding: 0 !important;
	border: 0;
	background: transparent !important;
	color: var(--ml-ink) !important;
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
}

button.ml-pdesc__more:hover {
	color: var(--ml-orange) !important;
}

/* Kleine prijs net boven de winkelwagen-knop */
.ml-price-now {
	flex: 1 1 100%;
	margin: 0 0 10px;
	font-size: 20px;
	font-weight: 700;
	color: var(--ml-ink);
	line-height: 1.2;
}

.ml-price-now del {
	color: var(--ml-muted);
	font-weight: 400;
	font-size: 15px;
	margin-right: 6px;
}

.ml-price-now ins {
	text-decoration: none;
}

/* Dubbele variatieprijs van WooCommerce verbergen; de kleine prijs volgt
   de gekozen variatie via JS. */
.single-product div.product .woocommerce-variation-price {
	display: none;
}

/* Aantal + knop op één regel */
.single-product div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
}

.single-product div.product form.cart .variations_button,
.single-product div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	width: 100%;
}

.single-product div.product form.cart table.variations,
.single-product div.product form.cart .single_variation_wrap,
.single-product div.product form.cart .ml-upsell {
	flex: 1 1 100%;
}

.single-product div.product form.cart .quantity {
	flex: 0 0 auto;
	margin: 0;
	float: none;
}

.single-product div.product form.cart .quantity .qty {
	height: 54px;
}

.woocommerce div.product .single_add_to_cart_button {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	float: none;
}

/* Tasje-icoon (zelfde als de winkelmandknop in de header) voor de knoptekst */
.woocommerce div.product .single_add_to_cart_button::before {
	content: "";
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

/* =========================================================================
   Upsell-checkbox: strak custom vinkje met wit check-icoon
   ========================================================================= */
input.ml-upsell__check {
	-webkit-appearance: none;
	appearance: none;
	width: 22px;
	height: 22px;
	margin: 0;
	border: 2px solid #d8d6d1;
	border-radius: 6px;
	background: #fff center / 14px no-repeat;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

input.ml-upsell__check:hover {
	border-color: rgba(255, 102, 0, 0.55);
}

input.ml-upsell__check:checked {
	border-color: var(--ml-orange);
	background-color: var(--ml-orange);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	box-shadow: 0 4px 10px rgba(255, 102, 0, 0.3);
}

/* =========================================================================
   Aantal-veld: pill met plus/min, echt naast de winkelwagen-knop
   ========================================================================= */
.single-product div.product form.cart .quantity {
	display: inline-flex;
	align-items: stretch;
	width: auto !important;
	height: 54px;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius-sm);
	background: #fff;
	overflow: hidden;
}

.single-product div.product form.cart .quantity .qty {
	border: 0 !important;
	border-radius: 0;
	width: 52px;
	height: 100%;
	padding: 0;
	text-align: center;
	font-weight: 700;
	font-size: 16px;
	-moz-appearance: textfield;
	appearance: textfield;
	background: #fff;
}

.single-product div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

button.ml-qty-btn {
	display: inline-grid;
	place-items: center;
	width: 42px;
	padding: 0 !important;
	margin: 0;
	border: 0;
	background: #fff !important;
	color: #1d1d1b !important;
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	transition: background 0.15s ease, color 0.15s ease;
}

button.ml-qty-btn:hover {
	background: #f6f5f2 !important;
	color: var(--ml-orange) !important;
}

/* De knop kreeg width:100% van het thema en sprong daardoor op een
   eigen regel; met een flex-basis van 0 delen knop en aantal de regel. */
.woocommerce div.product .single_add_to_cart_button {
	flex: 1 1 0;
	width: auto !important;
	min-width: 0;
	white-space: nowrap;
}

/* =========================================================================
   Beschrijving-tabs als pill-switcher (zoals Zakelijk/Particulier)
   ========================================================================= */
.woocommerce div.product .woocommerce-tabs {
	margin-top: 44px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 22px;
	padding: 5px;
	border: 1px solid var(--ml-line);
	border-bottom: 1px solid var(--ml-line);
	border-radius: 30px;
	background: #fff;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 10px 22px;
	border-bottom: 0;
	border-radius: 20px;
	font-size: 14px;
	font-weight: 600;
	color: #1d1d1b;
	text-transform: none;
	letter-spacing: normal;
	transition: background 0.25s ease, color 0.25s ease;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: #1d1d1b;
	border-bottom-color: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	background: #1d1d1b;
	color: #fff;
	border-bottom-color: transparent;
}

/* Panel als premium kaart */
.woocommerce div.product .woocommerce-tabs .panel {
	padding: 32px 36px;
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	box-shadow: var(--ml-shadow);
}

/* De paneltitel dubbelt met de actieve tab; verbergen. */
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	display: none;
}

.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3 {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 700;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: normal;
}

.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li {
	color: rgba(29, 29, 27, 0.7);
	font-size: 15px;
	line-height: 1.75;
}

/* Attributentabel (aanvullende informatie) */
.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes tr {
	border-bottom: 1px solid var(--ml-line);
}

.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes tr:last-child {
	border-bottom: 0;
}

.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes th,
.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes td {
	padding: 13px 10px;
	border: 0;
	background: transparent;
	font-style: normal;
	text-align: left;
}

.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes th {
	width: 34%;
	font-size: 14px;
	font-weight: 600;
	color: rgba(29, 29, 27, 0.55);
}

.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes td {
	font-size: 15px;
	color: var(--ml-ink);
}

.woocommerce div.product .woocommerce-tabs table.woocommerce-product-attributes td p {
	margin: 0;
	color: inherit;
}

@media (max-width: 560px) {
	.woocommerce div.product .woocommerce-tabs .panel {
		padding: 24px 20px;
	}
}

/* =========================================================================
   Detailfixes productpagina
   ========================================================================= */

/* Geen thema-marge boven de winkelwagen-knop */
.woocommerce div.product .single_add_to_cart_button {
	margin: 0 !important;
}

/* "Meer lezen": strakke tekstknop met chevron, geen underline of kapitalen */
button.ml-pdesc__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	font-size: 14px;
	font-weight: 600;
	color: var(--ml-orange) !important;
}

button.ml-pdesc__more::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.25s ease;
}

button.ml-pdesc__more.is-open::after {
	transform: rotate(-135deg) translateY(-2px);
}

button.ml-pdesc__more:hover {
	color: var(--ml-orange-dark) !important;
}

/* "Op voorraad!"-label van de labelplugin niet over de productfoto's */
.single-product div.product .woocommerce-product-gallery .berocket_better_labels {
	display: none !important;
}

/* Vergrootglas: dunner icoon, verder van de rand */
.single-product div.product .woocommerce-product-gallery__trigger {
	top: 36px;
	right: 36px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center / 19px no-repeat !important;
	box-shadow: 0 6px 16px rgba(29, 29, 27, 0.14);
	font-size: 0;
	text-indent: -9999px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.single-product div.product .woocommerce-product-gallery__trigger::before,
.single-product div.product .woocommerce-product-gallery__trigger::after {
	display: none !important;
}

.single-product div.product .woocommerce-product-gallery__trigger:hover {
	transform: scale(1.06);
	box-shadow: 0 10px 22px rgba(29, 29, 27, 0.2);
}

/* Prijs boven de knop in het oranje */
.ml-price-now {
	color: var(--ml-orange);
}

.ml-price-now del {
	color: var(--ml-muted);
}

/* "Wissen"-link bij variaties verbergen */
.single-product div.product .reset_variations {
	display: none !important;
}

/* Klarna-melding onder de knop */
.ml-klarna {
	flex: 1 1 100%;
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 4px;
}

.ml-klarna__logo {
	width: 48px;
	height: auto;
	flex: 0 0 auto;
}

.ml-klarna__text {
	font-size: 13px;
	line-height: 1.45;
	color: var(--ml-muted);
}

/* Geen marge onder het cart-formulier */
.single-product div.product form.cart {
	margin-bottom: 0;
}

/* Prijs iets groter, altijd één bedrag */
.ml-price-now {
	font-size: 25px;
}

/* Klarna-melding als lichtgrijs kaartje met Klarna-achtige radius */
.ml-klarna {
	margin-top: 8px;
	padding: 12px 16px;
	border-radius: 10px;
	background: #f4f3f0;
}

/* =========================================================================
   Tabs: volledig ronde pillen + schuivende zwarte indicator
   ========================================================================= */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	position: relative;
	border-radius: 999px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	position: relative;
	z-index: 1;
	border-radius: 999px;
}

/* Zonder JS: actieve tab gewoon zwart. Met JS (has-ind) neemt de
   schuivende indicator de zwarte achtergrond over. */
.woocommerce div.product .woocommerce-tabs ul.tabs.has-ind li.active a {
	background: transparent;
}

.ml-tabs-ind {
	position: absolute;
	top: 5px;
	bottom: 5px;
	left: 0;
	width: 0;
	border-radius: 999px;
	background: #1d1d1b;
	transition:
		transform 0.3s cubic-bezier(0.33, 1, 0.68, 1),
		width 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}

/* Elementor-secties in de beschrijving: gewoon de breedte van het panel
   volgen in plaats van hun eigen boxed max-width. */
.woocommerce div.product .woocommerce-tabs .elementor-section.elementor-section-boxed > .elementor-container {
	max-width: 100%;
}

/* =========================================================================
   Video-overlay in de beschrijving: afbeelding niet afsnijden
   ========================================================================= */
.elementor-widget-video .elementor-custom-embed-image-overlay img {
	object-fit: contain;
	height: auto;
	max-height: 100%;
}

/* =========================================================================
   Gerelateerde producten
   ========================================================================= */
.woocommerce div.product .related {
	border-top: 0 !important;
	margin-top: 60px;
	padding-top: 0;
}

.woocommerce div.product .related > h2 {
	text-align: center;
	border: 0;
	margin-top: 0;
}

/* BeRocket-label over de foto vervangen door onze eigen badge-rij */
.single-product .related .berocket_better_labels {
	display: none !important;
}

.ml-loop-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 12px 0 8px;
}

.ml-loop-badges .ml-pbadge {
	height: 24px;
	padding: 0 10px;
	font-size: 11.5px;
}

.ml-loop-badges .ml-star {
	width: 11px;
	height: 11px;
}

/* Korte omschrijving: maximaal 2 regels in het grijs */
.single-product .related p.ml-loop-desc {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0 0 10px;
	font-size: 13.5px;
	line-height: 1.55;
	color: rgba(29, 29, 27, 0.55);
}

/* Prijs: 16px en oranje, altijd */
.single-product .related ul.products li.product .price {
	font-size: 16px !important;
	font-weight: 700;
	color: var(--ml-orange) !important;
}

.single-product .related ul.products li.product .price del {
	color: var(--ml-muted) !important;
	font-weight: 400;
}

.single-product .related ul.products li.product .price ins {
	color: var(--ml-orange) !important;
	text-decoration: none;
}

/* =========================================================================
   Loop-kaarten: geheel klikbaar, prijs inline met het pijltje
   ========================================================================= */
.woocommerce ul.products li.product img {
	margin-bottom: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 10px 0 0;
}

.ml-loop-badges {
	margin: 12px 0 0;
}

.single-product .related p.ml-loop-desc {
	margin: 6px 0 0;
}

/* Hele kaart klikbaar via een onzichtbare overlay op de productlink. */
.woocommerce ul.products li.product .product-content {
	position: relative;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Pijl-knop boven de overlay houden en rechtsonder vastzetten. */
.woocommerce.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .button {
	position: absolute;
	right: 14px;
	bottom: 14px;
	z-index: 2;
	margin: 0;
}

/* Prijs onderaan, verticaal gecentreerd naast het pijltje. */
.woocommerce ul.products li.product .price {
	display: flex;
	align-items: center;
	min-height: 46px;
	margin: 10px 0 0;
	margin-top: auto;
	padding-right: 58px;
}

/* Titel-hover uit: de hele kaart is al de link. */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title:hover,
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover {
	color: var(--ml-ink) !important;
	text-decoration: none !important;
}

/* =========================================================================
   Detailronde: vanaf/tot-prijs, USP's onder de foto, tabs-rand, zoomknop
   ========================================================================= */
.single-product .related p.ml-loop-desc {
	margin: 6px 0 15px;
}

/* Vanaf/tot-prijs */
.woocommerce ul.products li.product .price {
	flex-wrap: wrap;
	gap: 2px 8px;
}

.ml-price-from {
	display: inline-flex;
	align-items: baseline;
	gap: 5px;
	white-space: nowrap;
}

.ml-price-from__label {
	font-size: 12px;
	font-weight: 600;
	color: rgba(29, 29, 27, 0.5);
}

.woocommerce .price .ml-price-till,
.single-product .related ul.products li.product .price .ml-price-till,
.single-product .related ul.products li.product .price .ml-price-till .amount {
	font-size: 12px !important;
	font-weight: 600;
	color: rgba(29, 29, 27, 0.5) !important;
	white-space: nowrap;
}

/* Geen border onder de tabs-wrapper */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .woocommerce-tabs.wc-tabs-wrapper {
	border-bottom: 0 !important;
}

/* USP's uit de header onder de productfoto's */
.ml-pusps {
	list-style: none;
	margin: 22px 4px 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ml-pusps__item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ml-pusps__icon {
	display: inline-flex;
	flex: 0 0 auto;
	color: var(--ml-orange);
}

.ml-pusps__icon .ml-icon {
	width: 20px;
	height: 20px;
}

.ml-pusps__text {
	font-size: 15px;
	font-weight: 600;
	color: var(--ml-ink);
	line-height: 1.4;
}

@media (max-width: 450px) {
	.ml-pusps__text {
		font-size: 14px;
	}
}


/* Zoomknop dichter bij de rechterrand (zelfde ruimte als boven) */
.single-product div.product .woocommerce-product-gallery__trigger {
	right: 22px;
	top: 36px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin-top: 25px;
}

/* De hele tot-prijs (label en bedrag) grijs */
.woocommerce .price .ml-price-till,
.single-product .related ul.products li.product .price .ml-price-till,
.single-product .related ul.products li.product .price .ml-price-till .amount {
	color: rgba(29, 29, 27, 0.5) !important;
}

/* Soepele hover op het pijltje van de loop-kaarten */
.woocommerce.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .button {
	transition: background-color 0.2s ease, transform 0.2s ease !important;
}

/* Galerij-items op de productpagina gewoon volle breedte */
.single-product div.product .woocommerce-product-gallery--columns-6 li {
	width: 100% !important;
}

/* USP-vinkjes een paar pixels lager voor optische uitlijning */
.ml-pusps__icon {
	position: relative;
	top: 3px;
}

/* Zoomknop linksboven op 40px */
.single-product div.product .woocommerce-product-gallery__trigger {
	left: 40px;
	top: 40px;
	right: auto;
}

/* Toevoegen-knop in de stijl van .ml-btn: geen kapitalen, geen zware schaduw */
.woocommerce div.product .single_add_to_cart_button {
	min-height: 50px;
	height: 50px;
	padding: 0 25px !important;
	border-radius: 5px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none;
	transition: filter 0.15s ease, transform 0.05s ease;
}

.woocommerce div.product .single_add_to_cart_button:hover {
	background: var(--ml-orange) !important;
	filter: brightness(0.93);
	box-shadow: none;
}

/* Aantal-pill gelijk in hoogte met de knop */
.single-product div.product form.cart .quantity {
	height: 50px;
}

/* =========================================================================
   Lightbox (PhotoSwipe) repareren
   ========================================================================= */
/* De full-width regel voor galerij-items raakte ook de thumbnails van de
   flexslider; die horen gewoon in kolommen te staan. */
.single-product div.product .woocommerce-product-gallery--columns-6 ol.flex-control-thumbs li {
	width: 16.66% !important;
}

/* PhotoSwipe-overlay boven alles, en de afbeeldingen erin niet laten
   beperken of opmaken door thema-regels (dat verminkt de zoomweergave). */
.pswp {
	z-index: 99999 !important;
}

.pswp .pswp__img {
	max-width: none !important;
	max-height: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
}

.pswp .pswp__button {
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

/* =========================================================================
   Kaart-stijl van "gerelateerde producten" site-breed doortrekken
   ========================================================================= */
/* Labelplugin-label overal in productlijsten weg (badge-rij vervangt het) */
.woocommerce ul.products .berocket_better_labels {
	display: none !important;
}

/* Korte omschrijving: maximaal 2 regels grijs, overal */
.woocommerce ul.products p.ml-loop-desc {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 6px 0 15px;
	font-size: 13.5px;
	line-height: 1.55;
	color: rgba(29, 29, 27, 0.55);
}

/* Prijs: 16px vet oranje, overal */
.woocommerce ul.products li.product .price {
	font-size: 16px !important;
	font-weight: 700;
	color: var(--ml-orange) !important;
}

.woocommerce ul.products li.product .price del {
	color: var(--ml-muted) !important;
	font-weight: 400;
}

.woocommerce ul.products li.product .price ins {
	color: var(--ml-orange) !important;
	text-decoration: none;
}

/* De grijze tot-prijs blijft grijs, ook binnen de oranje prijsregel */
.woocommerce ul.products li.product .price .ml-price-till,
.woocommerce ul.products li.product .price .ml-price-till .amount {
	color: rgba(29, 29, 27, 0.5) !important;
}

/* =========================================================================
   Categoriepagina: hero + contentblokken
   ========================================================================= */
.woocommerce-products-header {
	text-align: left;
}

.ml-cathero {
	position: relative;
	display: flex;
	align-items: stretch;
	min-height: 380px;
	margin: 6px 0 34px;
	border-radius: var(--ml-radius);
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-color: #1d1d1b;
}

.ml-cathero__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 560px;
	padding: 48px 50px;
	background: linear-gradient(90deg, rgba(20, 20, 19, 0.85) 0%, rgba(20, 20, 19, 0.65) 78%, rgba(20, 20, 19, 0) 100%);
}

.ml-cathero__title {
	margin: 0 0 16px;
	font-size: clamp(30px, 3.4vw, 46px);
	font-weight: 700;
	line-height: 1.1;
	color: #fff;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
}

.ml-cathero__text {
	margin: 0;
	max-width: 440px;
	font-size: 15px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.75);
	text-align: left;
}

/* Contentblokken onder het productoverzicht */
.ml-catblocks {
	display: flex;
	flex-direction: column;
	gap: 56px;
	margin: 60px 0 30px;
	text-align: left;
}

.ml-catblock {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
}

.ml-catblock--rechts .ml-catblock__media {
	order: 2;
}

.ml-catblock--text {
	grid-template-columns: 1fr;
}

.ml-catblock--text .ml-catblock__body {
	max-width: 900px;
}

.ml-catblock__media img,
img.ml-catblock__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ml-radius);
}

.ml-catblock__title {
	margin: 0 0 14px;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 700;
	line-height: 1.25;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: normal;
}

.ml-catblock__body h2,
.ml-catblock__body h3 {
	margin: 0 0 12px;
	font-weight: 700;
	color: var(--ml-ink);
	text-transform: none;
	letter-spacing: normal;
	text-align: left;
}

.ml-catblock__body p,
.ml-catblock__body li {
	font-size: 15px;
	line-height: 1.75;
	color: rgba(29, 29, 27, 0.7);
	text-align: left;
}

.ml-catblock__body p:last-child {
	margin-bottom: 0;
}

@media (max-width: 900px) {
	.ml-cathero {
		min-height: 300px;
	}
	.ml-cathero__panel {
		max-width: none;
		width: 100%;
		padding: 32px 26px;
		background: linear-gradient(180deg, rgba(20, 20, 19, 0.8) 0%, rgba(20, 20, 19, 0.55) 100%);
	}
	.ml-catblock,
	.ml-catblock--rechts {
		grid-template-columns: 1fr;
		gap: 22px;
	}
	.ml-catblock--rechts .ml-catblock__media {
		order: 0;
	}
	.ml-catblocks {
		gap: 40px;
	}
}

/* Hero-paneel: zachtere gradient en meer ruimte rechts */
.ml-cathero__panel {
	max-width: 640px;
	padding: 48px 120px 48px 50px;
	background: linear-gradient(
		90deg,
		rgba(20, 20, 19, 0.78) 0%,
		rgba(20, 20, 19, 0.72) 45%,
		rgba(20, 20, 19, 0.45) 72%,
		rgba(20, 20, 19, 0.18) 88%,
		rgba(20, 20, 19, 0) 100%
	);
}

@media (max-width: 900px) {
	.ml-cathero__panel {
		max-width: none;
		padding: 32px 26px;
	}
}

/* Geen automatische woordafbreking (zoals "ver-der") in hero en blokken */
.ml-cathero__text,
.ml-cathero__title,
.ml-catblock__body,
.ml-catblock__body p,
.ml-catblock__body li,
.ml-catblock__title {
	hyphens: none !important;
	-webkit-hyphens: none !important;
	overflow-wrap: normal;
	word-break: normal;
}

/* Sorteerselect: meer ruimte rechts, pointer, geen oranje focus-gloed */
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	padding-right: 40px;
	cursor: pointer;
}

.woocommerce .woocommerce-ordering select:focus,
.woocommerce .woocommerce-ordering select:hover,
.woocommerce select.orderby:focus,
.woocommerce select.orderby:hover {
	outline: none !important;
	box-shadow: none !important;
	border-color: rgba(29, 29, 27, 0.55) !important;
}

/* Sorteerselect breder zodat de tekst niet afgesneden wordt */
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	width: auto;
	min-width: 160px;
	max-width: 100%;
}

/* Eigen chevron in de sorteerselect, 10px verder van de rand */
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 22px center;
	background-size: 13px;
}

/* Sorteericon 4px terug naar rechts */
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	background-position: right 18px center;
}

/* Hero: hoogte groeit mee met de volledige tekst, minimaal 350px */
.ml-cathero {
	min-height: 350px;
}

.ml-cathero__text p,
.ml-cathero__text li {
	font-size: 15px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.75);
	text-align: left;
}

.ml-cathero__text p:last-child {
	margin-bottom: 0;
}

.ml-cathero__text h2,
.ml-cathero__text h3,
.ml-cathero__text h4 {
	margin: 18px 0 8px;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
}

.ml-cathero__text a {
	color: #fff;
	text-decoration: underline;
}

/* =========================================================================
   Maatcalculator (productpagina)
   ========================================================================= */
.ml-calc {
	margin: 0 0 20px;
}

.ml-calc__mode {
	position: relative;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	padding: 5px;
	border: 1px solid var(--ml-line);
	border-radius: 999px;
	background: #fff;
}

/* Schuivende zwarte pil, zoals de Zakelijk/Particulier-switcher */
.ml-calc__mode::before {
	content: "";
	position: absolute;
	top: 5px;
	left: 5px;
	width: calc(50% - 5px);
	height: calc(100% - 10px);
	border-radius: 999px;
	background: #1d1d1b;
	transform: translateX(0);
	transition: transform 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}

.ml-calc.is-auto .ml-calc__mode::before {
	transform: translateX(100%);
}

button.ml-calc__mode-btn {
	position: relative;
	z-index: 1;
	padding: 10px 16px !important;
	border: 0;
	border-radius: 999px;
	background: transparent !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #1d1d1b !important;
	text-align: center;
	text-transform: none;
	letter-spacing: normal;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	transition: color 0.25s ease;
}

button.ml-calc__mode-btn.is-active {
	color: #fff !important;
}

.ml-calc__panel {
	margin-top: 14px;
	padding: 18px;
	border: 1px solid var(--ml-line);
	border-radius: 12px;
	background: #faf9f7;
}

.ml-calc__intro {
	margin: 0 0 14px;
	font-size: 13.5px;
	line-height: 1.55;
	color: rgba(29, 29, 27, 0.6);
}

.ml-calc__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.ml-calc__field {
	display: block;
	margin: 0;
}

.ml-calc__label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ml-ink);
}

input.ml-calc__input {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	border: 1px solid var(--ml-line);
	border-radius: 8px;
	background: #fff;
	font-size: 15px;
	color: var(--ml-ink);
	outline: none;
	transition: border-color 0.2s ease;
	-moz-appearance: textfield;
	appearance: textfield;
}

input.ml-calc__input::-webkit-outer-spin-button,
input.ml-calc__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input.ml-calc__input:focus {
	border-color: rgba(29, 29, 27, 0.55);
	box-shadow: none;
}

.ml-calc__result {
	margin: 12px 0 0;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.55;
	color: var(--ml-ink);
}

.ml-calc__result:empty {
	display: none;
}

@media (max-width: 480px) {
	.ml-calc__fields {
		grid-template-columns: 1fr;
	}
}

/* Calculator over de volle breedte van het formulier */
.single-product div.product form.cart .ml-calc {
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
}

/* Modus-knoppen: korte labels op smallere schermen, anders wordt de pil
   te breed voor de kolom. */
.ml-calc__mode-short {
	display: none;
}

@media (max-width: 1023px) {
	.ml-calc__mode-long {
		display: none;
	}
	.ml-calc__mode-short {
		display: inline;
	}
}

/* Automatisch berekenen staat nu links: pil start links (auto) en
   schuift naar rechts voor handmatig. */
.ml-calc__mode::before {
	transform: translateX(100%);
}

.ml-calc.is-auto .ml-calc__mode::before {
	transform: translateX(0);
}

/* Btw-aanduiding klein en grijs achter de prijs */
.ml-price-now__tax {
	margin-left: 8px;
	font-size: 13px;
	font-weight: 600;
	color: rgba(29, 29, 27, 0.5);
}

/* Onvolledige keuze: knop echt disabled, geen klik en dus geen alert */
.woocommerce div.product .single_add_to_cart_button.disabled,
.woocommerce div.product .single_add_to_cart_button.wc-variation-selection-needed,
.woocommerce div.product .single_add_to_cart_button:disabled {
	pointer-events: none;
	opacity: 0.45;
	cursor: not-allowed;
	box-shadow: none;
}

/* Blok-afbeeldingen volgen de hoogte van de tekst ernaast */
.ml-catblock {
	align-items: stretch;
}

.ml-catblock__media {
	position: relative;
	height: 100%;
	min-height: 260px;
}

.ml-catblock__media img,
img.ml-catblock__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 900px) {
	/* Gestapeld: gewoon een vaste beeldverhouding */
	.ml-catblock__media {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 10;
	}
}

/* Meer lucht tussen de contentblokken onderaan de categoriepagina */
.ml-catblocks {
	gap: 100px;
}

@media (max-width: 900px) {
	.ml-catblocks {
		gap: 56px;
	}
}

/* =========================================================================
   FAQ-sectie categoriepagina
   ========================================================================= */
.ml-faq {
	margin: 100px 0 30px;
	text-align: left;
}

.ml-faq__title {
	margin: 0 0 24px;
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 700;
	color: var(--ml-ink);
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
}

.ml-faq__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 900px;
}

.ml-faq__item {
	border: 1px solid var(--ml-line);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ml-faq__item:hover {
	border-color: rgba(255, 102, 0, 0.45);
}

.ml-faq__item[open] {
	border-color: rgba(255, 102, 0, 0.55);
	box-shadow: 0 8px 22px rgba(29, 29, 27, 0.06);
}

.ml-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 20px;
	font-size: 15.5px;
	font-weight: 600;
	color: var(--ml-ink);
	cursor: pointer;
	list-style: none;
	text-transform: none;
	letter-spacing: normal;
}

.ml-faq__question::-webkit-details-marker,
.ml-faq__question::marker {
	display: none;
	content: "";
}

.ml-faq__chevron {
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	margin-right: 4px;
	border-right: 2px solid rgba(29, 29, 27, 0.45);
	border-bottom: 2px solid rgba(29, 29, 27, 0.45);
	transform: rotate(45deg);
	transition: transform 0.25s ease, border-color 0.25s ease;
}

.ml-faq__item[open] .ml-faq__chevron {
	transform: rotate(-135deg);
	border-color: var(--ml-orange);
}

.ml-faq__answer {
	padding: 0 20px 18px;
	/* De hoogte wordt door macrolux-faq.js geanimeerd. */
	will-change: height;
}

.ml-faq__answer p,
.ml-faq__answer li {
	margin: 0 0 10px;
	font-size: 14.5px;
	line-height: 1.7;
	color: rgba(29, 29, 27, 0.7);
}

.ml-faq__answer p:last-child {
	margin-bottom: 0;
}

/* FAQ horizontaal centreren */
.ml-faq__title {
	text-align: center;
}

.ml-faq__list {
	margin-inline: auto;
}

/* FAQ-chevrons een tikkie kleiner */
.ml-faq__chevron {
	width: 7px;
	height: 7px;
	border-right-width: 1.8px;
	border-bottom-width: 1.8px;
}

/* =========================================================================
   Meldingen (woocommerce-message / info / error) in huisstijl
   ========================================================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 14px;
	padding: 14px 16px !important;
	margin: 0 0 24px !important;
	background: #fff !important;
	border: 1px solid var(--ml-line) !important;
	border-radius: 12px !important;
	box-shadow: 0 6px 24px rgba(29, 29, 27, 0.06);
	color: var(--ml-ink) !important;
	font-size: 15px;
	line-height: 1.5;
	text-transform: none;
	letter-spacing: normal;
}

/* Standaard-iconen van thema/WooCommerce uit */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-message::after,
.woocommerce-info::after,
.woocommerce-error::after {
	display: none !important;
	content: none !important;
}

/* Succesmelding: rustig groen accent aan de linkerkant */
.woocommerce-message {
	border-left: 3px solid #2e9e5b !important;
}

/* "Bekijk winkelwagen"-knop in .ml-btn stijl, rechts uitgelijnd */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-message a.button.wc-forward,
.woocommerce-info a.button.wc-forward {
	order: 2;
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	padding: 0 20px !important;
	border: 0;
	border-radius: 5px !important;
	background: var(--ml-orange) !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	white-space: nowrap;
	float: none !important;
	box-shadow: none;
	transition: filter 0.15s ease;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-message a.button.wc-forward:hover,
.woocommerce-info a.button.wc-forward:hover {
	background: var(--ml-orange) !important;
	color: #fff !important;
	filter: brightness(0.93);
}

/* Foutmeldingen: rustig rood accent aan de linkerkant */
.woocommerce-error {
	border-left: 3px solid #c0392b !important;
}

@media (max-width: 560px) {
	.woocommerce-message .button,
	.woocommerce-info .button {
		order: 0;
		width: 100%;
		margin-left: 0;
	}
}

/* Meldingen: zelfde radius als de nav, geen schaduw, subtiel i-icoontje */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: 15px !important;
	box-shadow: none;
}

.woocommerce-message {
	border-left: 1px solid var(--ml-line) !important;
}

.woocommerce-message::before,
.woocommerce-info::before {
	content: "" !important;
	display: inline-block !important;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b5b3ae' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") center / contain no-repeat;
	position: static !important;
	margin: 0 !important;
}

/* i-icoontje: geen gekleurde achtergrond uit het thema, alleen het icoon */
.woocommerce-message::before,
.woocommerce-info::before {
	background-color: transparent !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b5b3ae' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") !important;
	background-position: center !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

/* Geen blauwe focus-outline op meldingen bij het laden van de pagina */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus,
.woocommerce-notices-wrapper:focus,
.woocommerce-notices-wrapper *:focus:not(input):not(select):not(textarea):not(a):not(button) {
	outline: none !important;
	box-shadow: none !important;
}

/* Foutmelding: zelfde nette kaart als de succesmelding, maar met een rode
   rand rondom (geen dikke balk links) en donkerrode tekst. */
.woocommerce-error {
	border: 1px solid #d6584a !important;
	background: #fff !important;
	color: #a5281b !important;
}

.woocommerce-error,
.woocommerce-error li,
.woocommerce-error a {
	text-decoration: none !important;
}

.woocommerce-error a {
	color: #a5281b !important;
}

.woocommerce-error::before {
	content: "" !important;
	display: inline-block !important;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0392b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='13'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") !important;
	background-position: center !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	border: 0 !important;
	border-radius: 0 !important;
	position: static !important;
	margin: 0 !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

/* =========================================================================
   Inline validatie: ongeldige velden en foutmeldingen onder een veld
   ========================================================================= */
/* Ongeldig veld: rode rand, zelfde rood als de foutmelding. */
.woocommerce form .woocommerce-invalid input.input-text,
.woocommerce form .woocommerce-invalid select,
.woocommerce form .woocommerce-invalid textarea,
.woocommerce-checkout .woocommerce-invalid input.input-text,
.woocommerce-checkout .woocommerce-invalid select,
.woocommerce-checkout .woocommerce-invalid textarea,
.woocommerce-checkout .woocommerce-invalid .select2-container--default .select2-selection--single {
	border-color: #d6584a !important;
}

/* Label van een ongeldig veld in het rood. */
.woocommerce .woocommerce-invalid > label,
.woocommerce-checkout .woocommerce-invalid > label {
	color: #c0392b;
}

/* Inline foutmelding onder een veld: rood en meer ruimte erboven. */
.woocommerce .form-row .woocommerce-error-message,
.woocommerce-checkout .form-row .woocommerce-error-message,
.woocommerce .woocommerce-invalid .woocommerce-invalid-tip,
.woocommerce .field-validation-error,
.wc-block-components-validation-error {
	display: block;
	margin-top: 8px !important;
	padding-top: 4px;
	color: #c0392b !important;
	font-size: 13px;
	line-height: 1.4;
}

/* WooCommerce's inline foutmelding onder een checkoutveld. */
.woocommerce-checkout .form-row .checkout-inline-error-message,
p.checkout-inline-error-message {
	display: block;
	margin: 10px 0em 1em 0em;
	color: #c0392b;
	font-size: 13px;
	line-height: 1.4;
}

/* =========================================================================
   Winkelwagen
   ========================================================================= */
/* Zelfde afronding als het totalenblok ernaast (Kava geeft hier 4px) */
.woocommerce-cart .woocommerce .woocommerce-cart-form {
	border-radius: var(--ml-radius, 15px);
	overflow: hidden;
}

/* Nergens kapitalen op de winkelwagenpagina */
.woocommerce-cart .cart_totals h2,
.woocommerce-cart .shop_table th,
.woocommerce-cart .shop_table td,
.woocommerce-cart .checkout-button {
	text-transform: none !important;
	letter-spacing: normal !important;
}

/* Productnaam en prijs even groot, voorraadlabel onder de titel */
.woocommerce-cart .shop_table td.product-name a {
	font-size: 17px;
	font-weight: 700;
	color: var(--ml-ink);
	text-decoration: none;
}

.woocommerce-cart .shop_table td.product-name a:hover {
	color: var(--ml-orange);
}

.woocommerce-cart .shop_table td.product-price,
.woocommerce-cart .shop_table td.product-subtotal {
	font-size: 17px;
	font-weight: 700;
	color: var(--ml-ink);
}

.ml-cart-stock {
	display: inline-flex;
	margin-top: 8px;
}

.woocommerce-cart .shop_table td.product-name .ml-cart-stock {
	display: flex;
	width: max-content;
}

/* Verwijderkruis: even groot als het aantal-veld, vierkant */
.woocommerce-cart .shop_table a.remove {
	display: inline-grid !important;
	place-items: center;
	width: 50px !important;
	height: 50px !important;
	border: 1px solid var(--ml-line) !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: var(--ml-ink) !important;
	font-size: 20px !important;
	font-weight: 400;
	line-height: 1 !important;
	text-decoration: none !important;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.woocommerce-cart .shop_table a.remove:hover {
	border-color: transparent !important;
	color: #c0392b !important;
	background: #fff !important;
}

/* Aantal-veld in de winkelwagen op dezelfde hoogte */
.woocommerce-cart .quantity .qty {
	height: 50px;
	border: 1px solid var(--ml-line);
	border-radius: 8px;
	text-align: center;
	font-weight: 600;
	color: var(--ml-ink);
}

/* Focus: zwarte outline in plaats van een schaduw */
.woocommerce-cart .quantity .qty:focus {
	outline: 1px solid var(--ml-ink);
	outline-offset: 0;
	border-color: var(--ml-ink);
	box-shadow: none !important;
}

/* Winkelwagen bijwerken: kale tekstknop zonder border of outline */
.woocommerce-cart button[name="update_cart"] {
	background: transparent !important;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	padding: 12px 0 !important;
	margin-bottom: 8px !important;
	color: rgba(29, 29, 27, 0.6) !important;
	font-weight: 600 !important;
	text-transform: none !important;
	cursor: pointer;
	transition: color 0.2s ease;
}

.woocommerce-cart button[name="update_cart"]:hover:not(:disabled) {
	color: var(--ml-orange) !important;
}

.woocommerce-cart button[name="update_cart"]:disabled {
	background: transparent !important;
	color: rgba(29, 29, 27, 0.35) !important;
}

/* Totalenblok: rustige kaart met duidelijke totaalregel */
.woocommerce-cart .cart_totals {
	padding: 28px;
	background: #fff;
	border: 1px solid var(--ml-line);
	border-radius: 15px;
}

.woocommerce-cart .cart_totals h2 {
	margin: 0 0 18px;
	font-size: 20px;
	font-weight: 700;
	color: var(--ml-ink);
}

.woocommerce-cart .cart_totals .shop_table {
	border: 0;
	margin-bottom: 20px;
}

.woocommerce-cart .cart_totals .shop_table th,
.woocommerce-cart .cart_totals .shop_table td {
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid var(--ml-line);
	background: transparent;
	font-size: 15px;
}

.woocommerce-cart .cart_totals .shop_table th {
	font-weight: 600;
	color: rgba(29, 29, 27, 0.6);
}

/* Totaalregel: groter, oranje bedrag en meer lucht eromheen */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	padding: 20px 0 6px;
	border-bottom: 0;
	font-size: 17px;
	font-weight: 700;
	color: var(--ml-ink);
}

.woocommerce-cart .cart_totals .order-total .amount {
	font-size: 24px;
	font-weight: 700;
	color: var(--ml-orange);
}

/* Afrekenknop in .ml-btn stijl */
.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
}

.woocommerce-cart .checkout-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 50px;
	padding: 0 25px !important;
	border-radius: 5px !important;
	background: var(--ml-primary, var(--ml-orange)) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	box-shadow: none;
	transition: filter 0.15s ease, transform 0.05s ease;
}

.woocommerce-cart .checkout-button:hover {
	background: var(--ml-primary, var(--ml-orange)) !important;
	filter: brightness(0.93);
}

/* Winkelwagen: detailronde */
/* Bijwerken-knop: echt geen border, ook niet via de thema-selectors */
.woocommerce-cart table.cart td.actions button[name="update_cart"],
.woocommerce-cart table.cart td.actions .button[name="update_cart"],
.woocommerce-cart table.cart td.actions button[name="update_cart"]:focus,
.woocommerce-cart table.cart td.actions button[name="update_cart"]:hover {
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
}

/* Labels in de winkelwagen nooit in kapitalen */
.woocommerce-cart .shop_table label,
.woocommerce-cart .shop_table td::before,
.woocommerce-cart .shop_table th::before,
.woocommerce-cart .shop_table .quantity label,
.woocommerce-cart .shop_table td[data-title]::before {
	text-transform: none !important;
	letter-spacing: normal !important;
}

/* Titel meer regelafstand; prijs regular, alleen subtotaal vet */
.woocommerce-cart .shop_table td.product-name a {
	line-height: 1.55;
}

.woocommerce-cart .shop_table td.product-price {
	font-weight: 400;
}

.woocommerce-cart .shop_table td.product-subtotal {
	font-weight: 700;
}

/* "incl. btw"-aanduiding in regular gewicht */
.woocommerce-cart .woocommerce-price-suffix,
.woocommerce-cart .shop_table small,
.woocommerce-cart .cart_totals small.tax_label,
.woocommerce-cart .cart_totals .includes_tax {
	font-weight: 400 !important;
}

/* Subtotaal in de rij: rechts uitgelijnd en vet, bedragen in het zwart */
.woocommerce-cart .shop_table td.product-subtotal {
	text-align: right;
	font-weight: 700;
}

.woocommerce-cart .shop_table td.product-price .amount,
.woocommerce-cart .shop_table td.product-subtotal .amount,
.woocommerce-cart .cart_totals .shop_table .amount {
	color: var(--ml-ink);
}

/* Behalve het eindtotaal, dat blijft oranje */
.woocommerce-cart .cart_totals .order-total .amount {
	color: var(--ml-orange);
}

/* "inclusief btw" op een eigen regel onder het bedrag */
.woocommerce-cart .shop_table .woocommerce-price-suffix,
.woocommerce-cart .shop_table td.product-subtotal small,
.woocommerce-cart .shop_table td.product-price small,
.woocommerce-cart .cart_totals small.tax_label,
.woocommerce-cart .cart_totals .includes_tax {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	font-weight: 400 !important;
	color: rgba(29, 29, 27, 0.5);
}

/* In de productrij telt het "incl. btw"-regeltje niet mee in de celhoogte,
   zodat prijs en subtotaal verticaal gelijk uitgelijnd blijven. */
.woocommerce-cart table.cart td.product-price .woocommerce-price-suffix,
.woocommerce-cart table.cart td.product-price small,
.woocommerce-cart table.cart td.product-subtotal .woocommerce-price-suffix,
.woocommerce-cart table.cart td.product-subtotal small {
	height: 0;
	overflow: visible;
}

/* Onder 600px past "Toevoegen aan winkelwagen" niet meer naast het aantal;
   daar wordt de knoptekst ingekort tot "Toevoegen". De knop is een flexbox:
   de tekstnode valt weg met font-size 0 en het korte label komt uit ::after.
   Het tasje-icoon in ::before heeft vaste afmetingen en blijft staan.
   Dit blok staat bewust achteraan, zodat het na de andere knopregels komt. */
@media (max-width: 600px) {
	.woocommerce div.product form.cart .single_add_to_cart_button {
		font-size: 0 !important;
	}
	/* Kava gebruikt ::after van deze knop als draaiende laad-icoon
	   (absoluut gepositioneerd, FontAwesome, spin-animatie). Zolang de knop
	   niet laadt, zetten we die eigenschappen terug en tonen we het label. */
	.woocommerce div.product form.cart .single_add_to_cart_button:not(.loading)::after {
		content: "Toevoegen";
		position: static;
		display: inline;
		margin: 0;
		transform: none;
		animation: none;
		transition: none;
		opacity: 1;
		font-family: inherit;
		font-size: 15px;
		font-weight: 600;
		line-height: 1.2;
		letter-spacing: normal;
		text-transform: none;
	}
}

/* Op smalle schermen is er naast het aantal-veld te weinig ruimte over;
   de knop krijgt daar een eigen regel over de volle breedte. */
@media (max-width: 520px) {
	.woocommerce div.product form.cart .single_add_to_cart_button {
		flex: 1 0 100% !important;
		width: 100% !important;
	}
}

/* ---------- Antwoordcapsule bovenaan de productpagina ------------------- */
.ml-capsule {
	margin: 0 0 18px;
	padding: 14px 16px;
	border-left: 3px solid var(--ml-orange, #ff6600);
	border-radius: 0 var(--ml-radius-sm, 8px) var(--ml-radius-sm, 8px) 0;
	background: var(--ml-panel, #f6f6f4);
	font-size: 15px;
	line-height: 1.65;
	color: var(--ml-ink, #1d1d1b);
}

.ml-faq--product {
	margin: 40px 0;
}

/* =========================================================================
   Productpagina — extra sfeer & leesbaarheid ("wow")
   Verfijnt de fotopresentatie en de beschrijving zonder de opbouw te wijzigen.
   ========================================================================= */

/* ---- Galerij: gradient-paneel met zachte gloed en diepte ---------------- */
.single-product div.product .woocommerce-product-gallery {
	position: relative;
	background: linear-gradient(157deg, #ffffff 0%, var(--ml-panel) 100%);
	border: 1px solid var(--ml-line);
	border-radius: var(--ml-radius);
	padding: 28px;
	box-shadow: 0 20px 50px rgba(29, 29, 27, 0.09);
	overflow: hidden;
	transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.single-product div.product .woocommerce-product-gallery:hover {
	box-shadow: 0 26px 60px rgba(29, 29, 27, 0.13);
}

/* Zachte gloed linksonder voor wat meer diepte. */
.single-product div.product .woocommerce-product-gallery::after {
	content: "";
	position: absolute;
	bottom: -30%;
	left: -20%;
	width: 60%;
	height: 60%;
	background: radial-gradient(circle, rgba(30, 65, 124, 0.08) 0%, rgba(30, 65, 124, 0) 70%);
	pointer-events: none;
	z-index: 0;
}

.single-product div.product .woocommerce-product-gallery__wrapper,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
	position: relative;
	z-index: 1;
}

/* Hoofdfoto: de wrapper-div om de foto krijgt dezelfde afronding als de foto
   (met de schaduw), en de foto rondt netjes mee binnen die div. */
.single-product div.product .woocommerce-product-gallery__image {
	border-radius: var(--ml-radius);
	overflow: hidden;
	box-shadow: 0 14px 34px rgba(29, 29, 27, 0.14);
}

.single-product div.product .woocommerce-product-gallery__image img {
	border-radius: var(--ml-radius);
	box-shadow: none;
}

/* Thumbnails als nette kaartjes. */
.single-product div.product .flex-control-thumbs li img {
	border-radius: var(--ml-radius-sm);
	border: 2px solid transparent;
	box-shadow: 0 4px 12px rgba(29, 29, 27, 0.06);
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.single-product div.product .flex-control-thumbs li img:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(29, 29, 27, 0.12);
}

/* ---- Beschrijving-tab: rustige, prettig leesbare typografie ------------- */
.woocommerce div.product .woocommerce-tabs .panel {
	padding: 40px 46px;
}

/* Comfortabele leesbreedte voor lopende tekst en tabellen. */
.woocommerce div.product .woocommerce-tabs .panel > p,
.woocommerce div.product .woocommerce-tabs .panel > ul,
.woocommerce div.product .woocommerce-tabs .panel > ol,
.woocommerce div.product .woocommerce-tabs .panel > h2,
.woocommerce div.product .woocommerce-tabs .panel > h3 {
	max-width: 760px;
}

.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li {
	font-size: 15.5px;
	line-height: 1.85;
}

.woocommerce div.product .woocommerce-tabs .panel p {
	margin: 0 0 16px;
}

/* Eerste alinea als lead: iets groter en donkerder. */
.woocommerce div.product .woocommerce-tabs .panel > p:first-of-type {
	font-size: 17px;
	line-height: 1.8;
	color: var(--ml-ink);
}

/* De inline lead-ins (Specificaties:, Levertijd:, Op maat zagen:) opschonen:
   geen rommelige onderstreping meer, wel een duidelijke vette kop-in-tekst. */
.woocommerce div.product .woocommerce-tabs .panel strong {
	color: var(--ml-ink);
	font-weight: 700;
}

.woocommerce div.product .woocommerce-tabs .panel span[style*="underline"],
.woocommerce div.product .woocommerce-product-details__short-description span[style*="underline"] {
	text-decoration: none !important;
}

/* Links in de beschrijving in de huisstijl. */
.woocommerce div.product .woocommerce-tabs .panel a {
	color: var(--ml-orange);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.woocommerce div.product .woocommerce-tabs .panel a:hover {
	color: var(--ml-orange-dark);
}

/* Echte koppen krijgen een klein oranje accentstreepje. */
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3 {
	position: relative;
	padding-left: 16px;
	margin-top: 30px;
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	margin-top: 0;
}

.woocommerce div.product .woocommerce-tabs .panel h2::before,
.woocommerce div.product .woocommerce-tabs .panel h3::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.12em;
	bottom: 0.12em;
	width: 4px;
	border-radius: 4px;
	background: var(--ml-orange);
}

/* ---------- USP-strip op archief- en shoppagina's ----------------------- */
.ml-pusps--archief {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin: 0 0 28px;
	padding: 16px 20px;
	border: 1px solid var(--ml-line, #e9e9e9);
	border-radius: var(--ml-radius, 15px);
	background: var(--ml-panel, #f6f6f4);
}

.ml-pusps--archief .ml-pusps__item {
	gap: 9px;
	font-size: 14px;
	font-weight: 600;
}

.ml-pusps--archief .ml-pusps__icon .ml-icon {
	width: 18px;
	height: 18px;
}

@media (max-width: 700px) {
	.ml-pusps--archief {
		gap: 10px 18px;
		padding: 14px 16px;
	}

	.ml-pusps--archief .ml-pusps__item {
		font-size: 13px;
	}
}

/* ---------- Logistieke beperkingen: offerte in plaats van bestellen ----- */
.ml-logistiek {
	margin: 0 0 22px;
	padding: 18px 20px;
	border: 1px solid rgba(255, 102, 0, 0.35);
	border-radius: var(--ml-radius, 15px);
	background: rgba(255, 102, 0, 0.06);
}

.ml-logistiek__tekst {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--ml-ink, #1d1d1b);
}

.ml-logistiek__knop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	border-radius: var(--ml-radius-sm, 8px);
	background: var(--ml-orange, #ff6600);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease;
}

.ml-logistiek__knop:hover,
.ml-logistiek__knop:focus {
	background: var(--ml-orange-dark, #e65c00);
	color: #fff;
}

.ml-logistiek__inline {
	font-weight: 600;
	text-decoration: underline;
}

.ml-verborgen {
	display: none !important;
}

/* ---------- Offerteaanvraag: paneel over de pagina ---------------------- */
body.ml-offerte-open {
	overflow: hidden;
}

.ml-offerte {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.ml-offerte[hidden] {
	display: none;
}

.ml-offerte__overlay {
	position: absolute;
	inset: 0;
	background: rgba(29, 29, 27, 0.55);
}

.ml-offerte__paneel {
	position: relative;
	width: 100%;
	max-width: 540px;
	max-height: 92vh;
	overflow-y: auto;
	padding: 30px 32px 32px;
	border-radius: var(--ml-radius, 15px);
	background: #fff;
	box-shadow: 0 24px 60px rgba(29, 29, 27, 0.25);
}

.ml-offerte__sluit {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ml-panel, #f6f6f4);
	color: var(--ml-ink, #1d1d1b);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.ml-offerte__titel {
	margin: 0 0 8px;
	font-size: 22px;
	font-weight: 700;
}

.ml-offerte__intro {
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--ml-muted, rgba(29, 29, 27, 0.55));
}

.ml-offerte__samenvatting {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 18px;
	padding: 12px 14px;
	border: 1px solid var(--ml-line, #e9e9e9);
	border-radius: var(--ml-radius-sm, 8px);
	background: var(--ml-panel, #f6f6f4);
	font-size: 14px;
	line-height: 1.5;
}

.ml-offerte__samenvatting[hidden] {
	display: none;
}

.ml-offerte__foto {
	flex: 0 0 auto;
	width: 68px;
	height: 68px;
	border-radius: var(--ml-radius-sm, 8px);
	background: #fff;
	object-fit: cover;
}

.ml-offerte__samenvatting-tekst {
	min-width: 0;
}

.ml-offerte__samenvatting-tekst strong {
	display: block;
	margin-bottom: 2px;
}

.ml-offerte__samenvatting-tekst span {
	display: block;
	color: var(--ml-muted, rgba(29, 29, 27, 0.55));
}

.ml-offerte__rij {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.ml-offerte__veld {
	display: block;
	margin-bottom: 14px;
}

.ml-offerte__veld > span {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	font-weight: 600;
}

.ml-offerte__veld em {
	color: var(--ml-orange, #ff6600);
	font-style: normal;
}

.ml-offerte__veld input,
.ml-offerte__veld textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--ml-line, #e9e9e9);
	border-radius: var(--ml-radius-sm, 8px);
	font-family: inherit;
	font-size: 15px;
}

.ml-offerte__vangnet {
	position: absolute;
	left: -9999px;
}

.ml-offerte__verzend {
	width: 100%;
	margin-top: 4px;
	padding: 13px 24px;
	border: 0;
	border-radius: var(--ml-radius-sm, 8px);
	background: var(--ml-orange, #ff6600);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}

.ml-offerte__verzend:disabled {
	opacity: 0.6;
	cursor: default;
}

.ml-offerte__melding {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.5;
}

.ml-offerte__melding.is-gelukt {
	color: #1f7a3d;
	font-weight: 600;
}

.ml-offerte__melding.is-fout {
	color: #c0392b;
	font-weight: 600;
}

@media (max-width: 520px) {
	.ml-offerte {
		padding: 0;
		align-items: flex-end;
	}

	.ml-offerte__paneel {
		max-width: none;
		max-height: 94vh;
		padding: 24px 18px 22px;
		border-radius: 16px 16px 0 0;
	}

	.ml-offerte__titel {
		font-size: 20px;
		padding-right: 40px;
	}

	.ml-offerte__rij {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.ml-offerte__foto {
		width: 54px;
		height: 54px;
	}
}

/* ---------- Offerte: bevestiging na het versturen ----------------------- */

/* Het formulier glijdt weg, de bevestiging komt ervoor in de plaats. Alleen
   transform en opacity, zodat de browser niets opnieuw hoeft uit te rekenen. */
.ml-offerte__form,
.ml-offerte__samenvatting {
	transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}

.ml-offerte__form.is-weg,
.ml-offerte__samenvatting.is-weg {
	opacity: 0;
	transform: translateY(-8px);
}

.ml-offerte__bedankt {
	text-align: center;
	padding: 8px 0 4px;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.45s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.ml-offerte__bedankt[hidden] {
	display: none;
}

.ml-offerte__bedankt.is-zichtbaar {
	opacity: 1;
	transform: none;
}

.ml-offerte__vink {
	display: inline-flex;
	width: 76px;
	height: 76px;
	margin-bottom: 18px;
	color: var(--ml-orange, #ff6600);
}

.ml-offerte__vink svg {
	width: 100%;
	height: 100%;
}

/* De ring tekent zichzelf, daarna zet de haak zich. */
/* De eindstand is de basis: loopt de animatie niet (oude browser, energiestand,
   achtergrondtab), dan staat de vink er gewoon. De animatie begint vanuit de
   verborgen stand via animation-fill-mode: backwards. */
.ml-offerte__vink-ring {
	stroke-dasharray: 176;
	stroke-dashoffset: 0;
	opacity: 0.35;
}

.ml-offerte__vink-haak {
	stroke-dasharray: 44;
	stroke-dashoffset: 0;
}

.ml-offerte__bedankt.is-zichtbaar .ml-offerte__vink-ring {
	animation: ml-vink-ring 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.05s backwards;
}

.ml-offerte__bedankt.is-zichtbaar .ml-offerte__vink-haak {
	animation: ml-vink-haak 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.45s backwards;
}

@keyframes ml-vink-ring {
	from { stroke-dashoffset: 176; }
	to { stroke-dashoffset: 0; }
}

@keyframes ml-vink-haak {
	from { stroke-dashoffset: 44; }
	to { stroke-dashoffset: 0; }
}

.ml-offerte__bedankt-titel {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 700;
	color: var(--ml-ink, #1d1d1b);
}

.ml-offerte__bedankt-titel:focus {
	outline: none;
}

.ml-offerte__bedankt-tekst {
	margin: 0 auto 22px;
	max-width: 42ch;
	font-size: 15px;
	line-height: 1.6;
	color: var(--ml-muted, rgba(29, 29, 27, 0.55));
}

/* De drie stappen komen na elkaar binnen, zodat het rustig aanvoelt. */
.ml-offerte__stappen {
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
	text-align: left;
}

.ml-offerte__stappen li {
	position: relative;
	padding: 11px 0 11px 34px;
	border-top: 1px solid var(--ml-line, #e9e9e9);
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--ml-ink, #1d1d1b);
}

.ml-offerte__stappen li:last-child {
	border-bottom: 1px solid var(--ml-line, #e9e9e9);
}

.ml-offerte__stappen li::before {
	content: counter(ml-stap);
	counter-increment: ml-stap;
	position: absolute;
	left: 0;
	top: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--ml-panel, #f6f6f4);
	font-size: 12px;
	font-weight: 700;
	color: var(--ml-muted, rgba(29, 29, 27, 0.55));
}

.ml-offerte__stappen {
	counter-reset: ml-stap;
}

.ml-offerte__bedankt.is-zichtbaar .ml-offerte__stappen li {
	animation: ml-stap-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.ml-offerte__bedankt.is-zichtbaar .ml-offerte__stappen li:nth-child(1) { animation-delay: 0.5s; }
.ml-offerte__bedankt.is-zichtbaar .ml-offerte__stappen li:nth-child(2) { animation-delay: 0.6s; }
.ml-offerte__bedankt.is-zichtbaar .ml-offerte__stappen li:nth-child(3) { animation-delay: 0.7s; }

@keyframes ml-stap-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

/* Na het versturen is de inhoud korter dan het formulier. De hoogte houden we
   vast zodat het paneel niet verspringt, en de bevestiging staat dan netjes
   in het midden in plaats van bovenaan met een gat eronder. */
.ml-offerte__paneel.is-bedankt {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.ml-offerte__klaar {
	width: 100%;
	padding: 13px 24px;
	border: 1px solid var(--ml-line, #e9e9e9);
	border-radius: var(--ml-radius-sm, 8px);
	background: #fff;
	color: var(--ml-ink, #1d1d1b);
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}

.ml-offerte__klaar:hover,
.ml-offerte__klaar:focus {
	background: var(--ml-panel, #f6f6f4);
}

/* Wie beweging heeft uitgezet, krijgt hetzelfde zonder animatie. */
@media (prefers-reduced-motion: reduce) {
	.ml-offerte__form,
	.ml-offerte__samenvatting,
	.ml-offerte__bedankt {
		transition: none;
	}

	.ml-offerte__bedankt {
		opacity: 1;
		transform: none;
	}

	.ml-offerte__vink-ring,
	.ml-offerte__vink-haak {
		stroke-dashoffset: 0;
	}

	.ml-offerte__bedankt.is-zichtbaar .ml-offerte__vink-ring,
	.ml-offerte__bedankt.is-zichtbaar .ml-offerte__vink-haak,
	.ml-offerte__bedankt.is-zichtbaar .ml-offerte__stappen li {
		animation: none;
	}

}
