/**
 * Montagemarkt — winkelwagen + checkout restyling.
 * Alle selectors zijn gescoped onder concrete WooCommerce containers
 * (woocommerce-cart-form, .cart_totals, form.checkout, #payment, #order_review)
 * zodat ze NOOIT lekken naar header-search, mini-cart of andere knoppen.
 */

:root {
	--lts-accent:        #e50b23;
	--lts-accent-dark:   #c4091e;
	--lts-accent-soft:   #fce4e7;
	--lts-bg:            #eff1f3;
	--lts-text:          #032548;
	--lts-text-muted:    #4a5568;
	--lts-border:        #d1d5db;
	--lts-card-bg:       #fff;
}

/* ========== ALGEMENE WRAPPER ========== */
.lts-shop-flow {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0;
	color: var(--lts-text);
	font-family: inherit;
}
.lts-shop-flow__inner {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* ========== STAPPEN-INDICATOR ========== */
.lts-flow-steps {
	list-style: none;
	margin: 0 0 8px 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0;
}
.lts-flow-steps__step {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--lts-text-muted);
	font-weight: 600;
	font-size: 14px;
	flex: 1 1 0;
	min-width: 0;
}
.lts-flow-steps__step:not(:last-child)::after {
	content: '';
	flex: 1 1 auto;
	height: 2px;
	background: var(--lts-border);
	margin: 0 12px;
	border-radius: 2px;
}
.lts-flow-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: #fff;
	border: 2px solid var(--lts-border);
	color: var(--lts-text-muted);
	font-weight: 700;
	font-size: 13px;
	flex-shrink: 0;
}
.lts-flow-steps__label {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.lts-flow-steps__step.is-active { color: var(--lts-text); }
.lts-flow-steps__step.is-active .lts-flow-steps__num {
	background: var(--lts-accent);
	border-color: var(--lts-accent);
	color: #fff;
}
.lts-flow-steps__step.is-done { color: var(--lts-text); }
.lts-flow-steps__step.is-done .lts-flow-steps__num {
	background: var(--lts-accent-soft);
	border-color: var(--lts-accent);
	color: var(--lts-accent-dark);
}
.lts-flow-steps__step.is-done::after { background: var(--lts-accent); }

/* ========== WINKELWAGEN ========== */
.lts-cart-page .woocommerce-cart-form {
	background: #fff;
	border: 1px solid var(--lts-border);
	border-radius: 8px;
	padding: 16px 16px 24px;
	overflow: hidden;
	box-sizing: border-box;
	max-width: 100%;
}
.lts-cart-page .woocommerce-cart-form > table.shop_table {
	table-layout: auto;
	width: 100% !important;
	max-width: 100% !important;
}
/* Tabel hard force naar table-layout — sommige thema's zetten tr/td op block. */
.lts-cart-page .woocommerce-cart-form table.shop_table {
	display: table !important;
	width: 100% !important;
	border: 0 !important;
	border-collapse: collapse !important;
	margin: 0 !important;
	background: transparent !important;
	border-radius: 0 !important;
	table-layout: auto !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table thead {
	display: table-header-group !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table tbody {
	display: table-row-group !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table tr {
	display: table-row !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table th,
.lts-cart-page .woocommerce-cart-form table.shop_table td {
	display: table-cell !important;
	vertical-align: middle !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table thead th {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--lts-border) !important;
	color: var(--lts-text-muted) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	padding: 10px 8px !important;
	text-align: left !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table tbody tr {
	border-bottom: 1px solid var(--lts-border) !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table tbody tr:last-child {
	border-bottom: 0 !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table tbody td {
	padding: 14px 8px !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 14px;
	color: var(--lts-text);
}

/* Kolombreedtes — voorkom dat × of qty een hele rij claimen. */
.lts-cart-page .woocommerce-cart-form table.shop_table th.product-remove,
.lts-cart-page .woocommerce-cart-form table.shop_table td.product-remove {
	width: 40px !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	text-align: center !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table th.product-thumbnail,
.lts-cart-page .woocommerce-cart-form table.shop_table td.product-thumbnail {
	width: 72px !important;
	padding-right: 4px !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table th.product-name,
.lts-cart-page .woocommerce-cart-form table.shop_table td.product-name {
	width: auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
}
/* Alle kolom-headers en -waardes links uitlijnen (zelfde startpositie). */
.lts-cart-page .woocommerce-cart-form table.shop_table thead th.product-price,
.lts-cart-page .woocommerce-cart-form table.shop_table tbody td.product-price {
	width: 110px !important;
	white-space: nowrap;
	text-align: left !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table thead th.product-subtotal,
.lts-cart-page .woocommerce-cart-form table.shop_table tbody td.product-subtotal {
	width: 110px !important;
	white-space: nowrap;
	text-align: left !important;
}
.lts-cart-page .woocommerce-cart-form table.shop_table thead th.product-quantity,
.lts-cart-page .woocommerce-cart-form table.shop_table tbody td.product-quantity {
	width: 90px !important;
	text-align: left !important;
}
/* De stepper / vaste qty span ook netjes links uitlijnen binnen de td. */
.lts-cart-page td.product-quantity .quantity,
.lts-cart-page td.product-quantity .lts-cart-qty-fixed {
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* Thumbnail */
.lts-cart-page td.product-thumbnail a,
.lts-cart-page td.product-thumbnail {
	display: inline-block;
}
.lts-cart-page td.product-thumbnail img {
	width: 72px !important;
	height: 72px !important;
	object-fit: contain !important;
	background: var(--lts-bg) !important;
	border-radius: 6px !important;
	padding: 6px !important;
	box-sizing: border-box !important;
	display: block !important;
	max-width: none !important;
}

/* Productnaam */
.lts-cart-page td.product-name a {
	color: var(--lts-text) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
.lts-cart-page td.product-name a:hover { color: var(--lts-accent) !important; }
.lts-cart-page td.product-price,
.lts-cart-page td.product-subtotal {
	font-weight: 600;
	color: var(--lts-text);
}

/* Prijs-stijling: zie assets/lts-price.css (single source of truth). */

/* Verwijder-knop — geen achtergrond, alleen icoon. Hover = rood. */
.lts-cart-page .woocommerce-cart-form td.product-remove a.remove,
.lts-cart-page .woocommerce-cart-form a.remove {
	width: 28px !important;
	height: 28px !important;
	min-width: 28px !important;
	min-height: 28px !important;
	border-radius: 4px !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--lts-text-muted) !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-weight: 400 !important;
	font-size: 20px !important;
	line-height: 1 !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	padding: 0 !important;
	margin: 0 auto !important;
	transition: color .15s ease;
}
.lts-cart-page .woocommerce-cart-form td.product-remove a.remove:hover,
.lts-cart-page .woocommerce-cart-form a.remove:hover {
	background: transparent !important;
	color: #d63638 !important;
	border: 0 !important;
}

/* Quantity stepper — exact dezelfde look als op de product-detail pagina:
   1 dunne border om container, geen border tussen elementen, transparante
   +/- knoppen, getallen-input duidelijk zichtbaar in het midden. */
.lts-cart-page td.product-quantity .quantity {
	display: inline-flex !important;
	align-items: center !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 4px !important;
	overflow: hidden !important;
	background: #fff !important;
	height: 38px !important;
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}
/* Reset alles binnen .quantity zodat thema-styling niet doorlekt. */
.lts-cart-page td.product-quantity .quantity > * {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
}
/* +/- knoppen */
.lts-cart-page td.product-quantity .quantity button,
.lts-cart-page td.product-quantity .quantity input[type="button"],
.lts-cart-page td.product-quantity .quantity .plus,
.lts-cart-page td.product-quantity .quantity .minus,
.lts-cart-page td.product-quantity .quantity button.plus,
.lts-cart-page td.product-quantity .quantity button.minus {
	width: 32px !important;
	height: 36px !important;
	min-width: 32px !important;
	max-width: 32px !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	color: var(--lts-text) !important;
	cursor: pointer !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 32px !important;
	user-select: none !important;
	box-shadow: none !important;
	line-height: 1 !important;
}
.lts-cart-page td.product-quantity .quantity button:hover,
.lts-cart-page td.product-quantity .quantity .plus:hover,
.lts-cart-page td.product-quantity .quantity .minus:hover {
	background: var(--lts-bg) !important;
}
/* Cijfer-input: altijd zichtbaar en gecentreerd. */
.lts-cart-page td.product-quantity .quantity input,
.lts-cart-page td.product-quantity .quantity input.qty,
.lts-cart-page td.product-quantity .quantity input[type="number"],
.lts-cart-page td.product-quantity .quantity input[type="text"] {
	display: inline-block !important;
	visibility: visible !important;
	opacity: 1 !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	height: 36px !important;
	border: 0 !important;
	outline: none !important;
	background: transparent !important;
	color: var(--lts-text) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-align: center !important;
	text-align-last: center !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	line-height: 36px !important;
	flex: 0 0 44px !important;
	-moz-appearance: textfield !important;
	appearance: textfield !important;
}
.lts-cart-page td.product-quantity .quantity input::-webkit-outer-spin-button,
.lts-cart-page td.product-quantity .quantity input::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

/* Vast aantal (sold-individually / max=1) → de PHP-filter rendert dit als
   <span class="lts-cart-qty-fixed">1</span>, dus geen +/- en geen border. */
.lts-cart-page td.product-quantity .lts-cart-qty-fixed {
	display: inline-block !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	color: var(--lts-text) !important;
	padding: 0 4px !important;
	line-height: 38px !important;
}

/* ===== Actions-rij verbergen — wij renderen onze eigen update-knop via
   woocommerce_after_cart_table (zie LTS_Cart_Checkout::render_cart_update_button).
   De originele <tr><td.actions colspan="6"> kan niet betrouwbaar gestyled
   worden binnen tabellen-layout, dus we verstoppen 'm volledig. */
.lts-cart-page .woocommerce-cart-form table.shop_table tr:has(> td.actions),
.lts-cart-page .woocommerce-cart-form table.shop_table td.actions {
	display: none !important;
}

/* Onze eigen update-knop, direct onder de tabel binnen het cart-form.
   Geen border-top want de laatste product-row heeft al een border-bottom
   (de hidden .actions <tr> is :last-child, dus de vorige rij houdt 'm). */
.lts-cart-page .lts-cart-actions {
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
	padding: 14px 0 0 !important;
	margin: 0 !important;
	border: 0 !important;
}
.lts-cart-page .lts-cart-update-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #fff !important;
	color: var(--lts-accent) !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 4px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	padding: 9px 16px !important;
	height: 38px !important;
	width: auto !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-shadow: none !important;
	white-space: nowrap !important;
	line-height: 1 !important;
	box-sizing: border-box !important;
	transition: background .15s ease, border-color .15s ease;
}
.lts-cart-page .lts-cart-update-btn:hover {
	background: var(--lts-bg) !important;
	border-color: var(--lts-accent) !important;
}

/* Knoppen in de cart-form (alleen daar) — niet header/menu/etc. */
.lts-cart-page .woocommerce-cart-form button[type="submit"],
.lts-cart-page .woocommerce-cart-form button[name="apply_coupon"],
.lts-cart-page .woocommerce-cart-form button[name="update_cart"],
.lts-cart-page .woocommerce-cart-form input[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--lts-accent) !important;
	color: #fff !important;
	border: 1px solid var(--lts-accent) !important;
	border-radius: 4px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	padding: 9px 16px !important;
	height: 38px !important;
	width: auto !important;
	max-width: none !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-shadow: none !important;
	white-space: nowrap !important;
	line-height: 1 !important;
	box-sizing: border-box !important;
	transition: background .15s ease, border-color .15s ease;
}
.lts-cart-page .woocommerce-cart-form button[name="apply_coupon"]:hover,
.lts-cart-page .woocommerce-cart-form button[type="submit"]:hover,
.lts-cart-page .woocommerce-cart-form input[type="submit"]:hover {
	background: var(--lts-accent-dark) !important;
	border-color: var(--lts-accent-dark) !important;
}

/* Update-knop = secundair (outline) */
.lts-cart-page .woocommerce-cart-form button[name="update_cart"] {
	background: #fff !important;
	color: var(--lts-accent) !important;
	border-color: var(--lts-border) !important;
}
.lts-cart-page .woocommerce-cart-form button[name="update_cart"]:hover {
	background: var(--lts-bg) !important;
	border-color: var(--lts-accent) !important;
}
.lts-cart-page .woocommerce-cart-form button[name="update_cart"][disabled] {
	opacity: .55 !important;
	cursor: not-allowed !important;
}

/* ===== Cart layout — 2 koloms: producten links, totalen rechts ===== */
.lts-cart-page .lts-shop-flow__inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
	gap: 16px !important;
	align-items: start !important;
}
.lts-cart-page .lts-flow-steps,
.lts-cart-page .lts-shop-flow__inner > .woocommerce-notices-wrapper {
	grid-column: 1 / -1 !important;
}
.lts-cart-page .lts-shop-flow__inner > .woocommerce-cart-form {
	grid-column: 1 !important;
	grid-row: 3 !important;
	margin: 0 !important;
}
/* cart-collaterals laat zijn children direct mee-grid'en (display: contents)
   zodat cart_totals naast de cart-form komt en cross-sells full-width valt. */
.lts-cart-page .lts-shop-flow__inner > .cart-collaterals {
	display: contents !important;
	margin: 0 !important;
}
.lts-cart-page .cart-collaterals .cart_totals {
	grid-column: 2 !important;
	grid-row: 3 !important;
	width: 100% !important;
	max-width: 100% !important;
	background: var(--lts-bg) !important;
	border: 1px solid var(--lts-border);
	border-radius: 8px;
	padding: 22px 24px;
	box-sizing: border-box;
	position: sticky;
	top: 80px;
	margin: 0 !important;
}
.lts-cart-page .cart-collaterals .cross-sells {
	grid-column: 1 / -1 !important;
	grid-row: 4 !important;
}
.lts-cart-page .cart_totals h2 {
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 16px 0 !important;
	color: var(--lts-text) !important;
}
.lts-cart-page .cart_totals table {
	display: table !important;
	width: 100% !important;
	border: 0 !important;
	border-collapse: collapse !important;
	margin: 0 !important;
	background: transparent !important;
}
.lts-cart-page .cart_totals table tr { display: table-row !important; }
.lts-cart-page .cart_totals table th,
.lts-cart-page .cart_totals table td {
	display: table-cell !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--lts-border) !important;
	padding: 10px 0 !important;
	font-size: 14px !important;
	color: var(--lts-text);
	vertical-align: top !important;
}
.lts-cart-page .cart_totals table tr:last-child th,
.lts-cart-page .cart_totals table tr:last-child td {
	border-bottom: 0 !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	padding-top: 14px !important;
}
/* Verzendmethode-naam ("Gratis verzending") op normale tekstgrootte. */
.lts-cart-page .cart_totals table tr.shipping td,
.lts-cart-page .cart_totals table tr.woocommerce-shipping-totals td {
	font-size: 14px !important;
}
/* Het verzendadres ("Verzenden naar ...") kleiner en grijs — zelfde formaat op
   mobiel als desktop. Iets meer ruimte erboven zodat het niet tegen de
   methode-naam plakt. */
.lts-cart-page .cart_totals .woocommerce-shipping-destination {
	font-size: 12px !important;
	line-height: 1.35 !important;
	color: var(--lts-text-muted) !important;
	font-weight: 400 !important;
	margin: 9px 0 0 !important;
}
/* Mobiel: het "Verzending"-label een fractie omhoog zodat het exact uitlijnt
   met de eerste regel ("Gratis verzending") van de waarde-kolom. */
@media (max-width: 768px) {
	.lts-cart-page .cart_totals table tr.shipping th,
	.lts-cart-page .cart_totals table tr.woocommerce-shipping-totals th {
		padding-top: 6px !important;
	}
}
.lts-cart-page .cart_totals .wc-proceed-to-checkout {
	margin-top: 16px;
	padding: 0 !important;
}
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.button,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.alt,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.wc-forward {
	display: block !important;
	background: var(--lts-accent) !important;
	background-color: var(--lts-accent) !important;
	background-image: none !important;
	color: #fff !important;
	border: 1px solid var(--lts-accent) !important;
	border-color: var(--lts-accent) !important;
	border-radius: 4px !important;
	text-align: center !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 14px 18px !important;
	text-decoration: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	transition: background .15s ease, border-color .15s ease;
}
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.button:hover,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.button:focus,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.button:active,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.alt:hover,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.alt:focus,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.alt:active,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.wc-forward:hover,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.wc-forward:focus,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button.wc-forward:active,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button:hover,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button:focus,
body.lts-cart-page .cart_totals .wc-proceed-to-checkout a.checkout-button:active,
body.lts-cart-page .lts-shop-flow a.checkout-button:hover,
body.lts-cart-page .lts-shop-flow a.checkout-button:focus {
	background: var(--lts-accent-dark) !important;
	background-color: var(--lts-accent-dark) !important;
	background-image: none !important;
	border: 1px solid var(--lts-accent-dark) !important;
	border-color: var(--lts-accent-dark) !important;
	color: #fff !important;
	box-shadow: none !important;
	text-shadow: none !important;
	opacity: 1 !important;
}

/* Cross-sells */
.lts-cart-page .cross-sells {
	margin-top: 32px;
}
.lts-cart-page .cross-sells > h2 {
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 16px 0 !important;
}

/* Lege winkelwagen */
.lts-cart-empty {
	text-align: center;
	padding: 64px 24px;
	background: #fff;
	border: 1px solid var(--lts-border);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.lts-cart-empty svg { color: var(--lts-accent); }
.lts-cart-empty h2 {
	margin: 0 !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	color: var(--lts-text) !important;
}
.lts-cart-empty p {
	margin: 0;
	color: var(--lts-text-muted);
	font-size: 14px;
}
.lts-cart-empty__btn {
	display: inline-block;
	margin-top: 8px;
	background: var(--lts-accent);
	color: #fff !important;
	padding: 12px 24px;
	border-radius: 4px;
	font-weight: 600;
	text-decoration: none !important;
	transition: background .15s ease;
}
.lts-cart-empty__btn:hover { background: var(--lts-accent-dark); }
.lts-cart-page .return-to-shop { display: none; }

/* ========== AFREKENEN ========== */
.lts-checkout-page form.checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) !important;
	column-gap: 20px !important;
	row-gap: 0 !important;
	align-items: start !important;
}
.lts-checkout-page form.checkout > #customer_details {
	grid-column: 1 !important;
	grid-row: 1 !important;
}
/* Wrapper rond #order_review_heading + #order_review — 1 grid-cel zodat
   er nooit een gap tussen heading en body ontstaat. */
.lts-checkout-page form.checkout > .lts-checkout-review-wrap {
	grid-column: 2 !important;
	grid-row: 1 !important;
	align-self: start !important;
}
/* De heading + review staan los buiten de wrapper niet meer in grid — voor
   de zekerheid: als ze toch direct kind zijn, plaats ze ook netjes. */
.lts-checkout-page form.checkout > h3#order_review_heading {
	grid-column: 2 !important;
}
.lts-checkout-page form.checkout > #order_review {
	grid-column: 2 !important;
}
@media (max-width: 900px) {
	.lts-checkout-page form.checkout {
		grid-template-columns: 1fr !important;
	}
	.lts-checkout-page form.checkout > #customer_details,
	.lts-checkout-page form.checkout > .lts-checkout-review-wrap,
	.lts-checkout-page form.checkout > h3#order_review_heading,
	.lts-checkout-page form.checkout > #order_review {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}
.lts-checkout-page form.checkout #customer_details {
	background: #fff;
	border: 1px solid var(--lts-border);
	border-radius: 8px;
	padding: 24px;
	box-sizing: border-box;
}
/* Theme-streep weghalen — agressief alle borders/shadows/pseudos binnen
   het customer_details blok wegklappen. */
.lts-checkout-page form.checkout #customer_details,
.lts-checkout-page form.checkout #customer_details > *,
.lts-checkout-page form.checkout #customer_details > * > *,
.lts-checkout-page form.checkout #customer_details > * > * > *,
.lts-checkout-page form.checkout #customer_details .col2-set,
.lts-checkout-page form.checkout #customer_details .col-1,
.lts-checkout-page form.checkout #customer_details .col-2,
.lts-checkout-page form.checkout #customer_details .woocommerce-billing-fields,
.lts-checkout-page form.checkout #customer_details .woocommerce-billing-fields__field-wrapper,
.lts-checkout-page form.checkout #customer_details .woocommerce-shipping-fields,
.lts-checkout-page form.checkout #customer_details .woocommerce-shipping-fields__field-wrapper,
.lts-checkout-page form.checkout #customer_details .woocommerce-additional-fields,
.lts-checkout-page form.checkout #customer_details .woocommerce-additional-fields__field-wrapper {
	border-top: 0 !important;
	border-bottom: 0 !important;
	background-image: none !important;
	box-shadow: none !important;
}
/* #customer_details zelf houdt de full border (dat is de blok-rand). */
.lts-checkout-page form.checkout #customer_details {
	border: 1px solid var(--lts-border) !important;
}
/* Pseudo-elementen die thema's gebruiken voor scheidingslijnen uitzetten. */
.lts-checkout-page form.checkout #customer_details .col2-set::before,
.lts-checkout-page form.checkout #customer_details .col2-set::after,
.lts-checkout-page form.checkout #customer_details .woocommerce-billing-fields::before,
.lts-checkout-page form.checkout #customer_details .woocommerce-billing-fields::after,
.lts-checkout-page form.checkout #customer_details .woocommerce-billing-fields__field-wrapper::before,
.lts-checkout-page form.checkout #customer_details .woocommerce-billing-fields__field-wrapper::after,
.lts-checkout-page form.checkout #customer_details h3::before,
.lts-checkout-page form.checkout #customer_details h3::after {
	display: none !important;
	content: none !important;
	border: 0 !important;
	background: transparent !important;
}
/* Echte <hr> elementen helemaal weg. */
.lts-checkout-page form.checkout #customer_details hr,
.lts-checkout-page form.checkout hr.shipping_calculator,
.lts-checkout-page form.checkout > hr {
	display: none !important;
}
.lts-checkout-page form.checkout #customer_details .col-1,
.lts-checkout-page form.checkout #customer_details .col-2 {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 0 16px 0 !important;
	padding: 0 !important;
}
.lts-checkout-page form.checkout #customer_details h3 {
	font-size: 17px !important;
	font-weight: 700 !important;
	color: var(--lts-text) !important;
	margin: 0 0 14px 0 !important;
	padding: 0 !important;
}
.lts-checkout-page form.checkout .form-row {
	margin: 0 0 12px 0 !important;
	padding: 0 !important;
}
.lts-checkout-page form.checkout .form-row label {
	display: block !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--lts-text) !important;
	margin: 0 0 4px 0 !important;
}
.lts-checkout-page form.checkout .form-row input[type="text"],
.lts-checkout-page form.checkout .form-row input[type="email"],
.lts-checkout-page form.checkout .form-row input[type="tel"],
.lts-checkout-page form.checkout .form-row input[type="number"],
.lts-checkout-page form.checkout .form-row input[type="password"],
.lts-checkout-page form.checkout .form-row textarea,
.lts-checkout-page form.checkout .form-row select,
.lts-checkout-page form.checkout .select2-selection {
	width: 100% !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 4px !important;
	padding: 10px 12px !important;
	font-size: 14px !important;
	background: #fff !important;
	color: var(--lts-text) !important;
	box-shadow: none !important;
	height: 42px !important;
	box-sizing: border-box !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.lts-checkout-page form.checkout .form-row textarea {
	height: auto !important;
	min-height: 96px !important;
	padding: 10px 12px !important;
}
.lts-checkout-page form.checkout .form-row input:focus,
.lts-checkout-page form.checkout .form-row textarea:focus,
.lts-checkout-page form.checkout .form-row select:focus {
	outline: none !important;
	border-color: var(--lts-accent) !important;
	box-shadow: 0 0 0 2px var(--lts-accent-soft) !important;
}
.lts-checkout-page form.checkout .select2-container .select2-selection--single {
	height: 42px !important;
	display: flex;
	align-items: center;
}
.lts-checkout-page form.checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 40px !important;
	padding-left: 12px !important;
	color: var(--lts-text) !important;
}
.lts-checkout-page form.checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 40px !important;
}

/* Form-row first/last 50/50 */
.lts-checkout-page form.checkout .form-row-first { width: calc(50% - 6px) !important; float: left !important; }
.lts-checkout-page form.checkout .form-row-last  { width: calc(50% - 6px) !important; float: right !important; }
.lts-checkout-page form.checkout .form-row-wide  { width: 100% !important; clear: both; }
.lts-checkout-page form.checkout .form-row::after { content: ''; display: block; clear: both; }
@media (max-width: 600px) {
	.lts-checkout-page form.checkout .form-row-first,
	.lts-checkout-page form.checkout .form-row-last { width: 100% !important; float: none !important; }
}

/* Bestelling-overzicht — licht blauw blok als 1 aaneengesloten kaart.
   De wrapper .lts-checkout-review-wrap bevat heading + body. */
.lts-checkout-page .lts-checkout-review-wrap {
	background: var(--lts-bg) !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
	box-sizing: border-box;
	overflow: hidden;
}
.lts-checkout-page .lts-checkout-review-wrap #order_review_heading {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 20px 24px 0 !important;
	margin: 0 !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	color: var(--lts-text) !important;
	line-height: 1.2 !important;
}
.lts-checkout-page .lts-checkout-review-wrap #order_review {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 16px 24px 24px !important;
	margin: 0 !important;
	box-sizing: border-box;
}
.lts-checkout-page form.checkout #order_review table.shop_table {
	display: table !important;
	border: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	border-collapse: collapse !important;
}
.lts-checkout-page form.checkout #order_review table.shop_table tr { display: table-row !important; }
.lts-checkout-page form.checkout #order_review table.shop_table th,
.lts-checkout-page form.checkout #order_review table.shop_table td {
	display: table-cell !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--lts-border) !important;
	padding: 10px 0 !important;
	font-size: 14px !important;
	color: var(--lts-text);
	vertical-align: middle;
}
.lts-checkout-page form.checkout #order_review table.shop_table tfoot tr:last-child th,
.lts-checkout-page form.checkout #order_review table.shop_table tfoot tr:last-child td {
	border-bottom: 0 !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	padding-top: 14px !important;
}
/* Verzendrij op de checkout: de methode-naam ("Gratis verzending") even groot
   maken als het "Verzending"-label ernaast (14px i.p.v. de kleinere default). */
.lts-checkout-page form.checkout #order_review table.shop_table tr.shipping th,
.lts-checkout-page form.checkout #order_review table.shop_table tr.shipping td,
.lts-checkout-page form.checkout #order_review table.shop_table tr.woocommerce-shipping-totals th,
.lts-checkout-page form.checkout #order_review table.shop_table tr.woocommerce-shipping-totals td {
	vertical-align: top !important;
}
.lts-checkout-page form.checkout #order_review table.shop_table tr.shipping td,
.lts-checkout-page form.checkout #order_review table.shop_table tr.shipping td *,
.lts-checkout-page form.checkout #order_review table.shop_table tr.woocommerce-shipping-totals td,
.lts-checkout-page form.checkout #order_review table.shop_table tr.woocommerce-shipping-totals td * {
	font-size: 14px !important;
}
.lts-checkout-page form.checkout #order_review table.shop_table tr.shipping td ul#shipping_method,
.lts-checkout-page form.checkout #order_review table.shop_table tr.shipping td ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

/* Betaalmethode */
.lts-checkout-page form.checkout #payment {
	background: transparent !important;
	border: 0 !important;
	margin-top: 16px !important;
	padding: 0 !important;
}
.lts-checkout-page form.checkout ul.payment_methods {
	background: #fff !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 8px !important;
	padding: 12px 16px !important;
	margin: 0 0 14px 0 !important;
	list-style: none !important;
}
.lts-checkout-page form.checkout ul.payment_methods li {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--lts-border) !important;
	padding: 10px 0 !important;
	margin: 0 !important;
}
.lts-checkout-page form.checkout ul.payment_methods li:last-child { border-bottom: 0 !important; }
.lts-checkout-page form.checkout ul.payment_methods li label {
	font-weight: 600;
	color: var(--lts-text);
	cursor: pointer;
}
.lts-checkout-page form.checkout ul.payment_methods li .payment_box {
	background: #fff !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 6px !important;
	margin-top: 8px !important;
	padding: 12px !important;
	font-size: 13px;
	color: var(--lts-text-muted);
}
.lts-checkout-page form.checkout ul.payment_methods li .payment_box::before {
	display: none !important;
}
.lts-checkout-page form.checkout #place_order {
	display: block !important;
	width: 100% !important;
	background: var(--lts-accent) !important;
	color: #fff !important;
	border: 1px solid var(--lts-accent) !important;
	border-radius: 4px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 14px 18px !important;
	margin-top: 8px !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-shadow: none !important;
	transition: background .15s ease;
}
.lts-checkout-page form.checkout #place_order:hover {
	background: var(--lts-accent-dark) !important;
}

/* Default kortingscode-toggle/form bovenaan checkout VERBERGEN — wij
   tonen 'm in de bestelling-rechterkolom (zie .lts-checkout-coupon). */
.lts-checkout-page .woocommerce-form-coupon-toggle,
.lts-checkout-page > .woocommerce-form-coupon-toggle,
.lts-shop-flow > .woocommerce-form-coupon-toggle,
.lts-checkout-page form.checkout_coupon:not(.lts-checkout-coupon__form),
.lts-shop-flow .woocommerce-form-coupon-toggle {
	display: none !important;
}

/* Login-toggle op checkout (laten we wél stylen, valt buiten coupon) */
.lts-checkout-page form.woocommerce-form-login,
.lts-shop-flow .woocommerce-form-login-toggle {
	background: #fff;
	border: 1px solid var(--lts-border);
	border-radius: 8px;
	padding: 14px 16px;
	margin-bottom: 12px;
	box-sizing: border-box;
}

/* ===== Kortingscode-blok binnen #order_review (subtiel) ===== */
.lts-checkout-page .lts-checkout-coupon {
	margin: 0 0 12px 0;
}
.lts-checkout-page .lts-checkout-coupon__details {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px dashed var(--lts-border) !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}
.lts-checkout-page .lts-checkout-coupon__summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 0;
	font-weight: 500;
	font-size: 13px;
	color: var(--lts-text-muted);
	user-select: none;
}
.lts-checkout-page .lts-checkout-coupon__summary:hover { color: var(--lts-accent); }
.lts-checkout-page .lts-checkout-coupon__summary::-webkit-details-marker { display: none; }
.lts-checkout-page .lts-checkout-coupon__summary::marker { content: ''; }
.lts-checkout-page .lts-checkout-coupon__summary::after {
	content: '+';
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	color: var(--lts-text-muted);
	margin-left: 8px;
}
.lts-checkout-page .lts-checkout-coupon__details[open] > .lts-checkout-coupon__summary::after {
	content: '−';
}
.lts-checkout-page .lts-checkout-coupon__body {
	padding: 4px 0 12px;
	width: 100% !important;
	box-sizing: border-box !important;
}
.lts-checkout-page .lts-checkout-coupon {
	width: 100% !important;
	box-sizing: border-box !important;
}
/* Form: container is block; de echte flex-rij is .lts-checkout-coupon__row.
   We zetten op de form alleen reset zodat thema-padding/border weg is. */
.lts-checkout-page .lts-checkout-coupon__form,
.lts-checkout-page form.lts-checkout-coupon__form.checkout_coupon {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
/* De rij met input + knop — flex, nooit wrap, knop ACHTER input. */
.lts-checkout-page .lts-checkout-coupon__row {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 6px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0 !important;
}
.lts-checkout-page .lts-checkout-coupon__input {
	flex: 1 1 100% !important;
	min-width: 0 !important;
	width: 100% !important;
	max-width: none !important;
	border: 1px solid var(--lts-border) !important;
	border-radius: 4px !important;
	padding: 0 10px !important;
	height: 36px !important;
	line-height: 36px !important;
	font-size: 13px !important;
	background: #fff !important;
	color: var(--lts-text) !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	vertical-align: middle !important;
	outline: none !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
}
.lts-checkout-page .lts-checkout-coupon__input:focus {
	border-color: var(--lts-accent) !important;
	box-shadow: 0 0 0 2px var(--lts-accent-soft) !important;
}
.lts-checkout-page .lts-checkout-coupon__btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	background: var(--lts-accent) !important;
	color: #fff !important;
	border: 1px solid var(--lts-accent) !important;
	border-radius: 4px !important;
	height: 36px !important;
	min-height: 36px !important;
	max-height: 36px !important;
	line-height: 1 !important;
	padding: 0 14px !important;
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	box-shadow: none !important;
	text-shadow: none !important;
	box-sizing: border-box !important;
	vertical-align: middle !important;
	transition: background .15s ease, border-color .15s ease;
}
.lts-checkout-page .lts-checkout-coupon__btn:hover,
.lts-checkout-page .lts-checkout-coupon__btn:focus,
.lts-checkout-page .lts-checkout-coupon__btn:active {
	background: var(--lts-accent-dark) !important;
	border-color: var(--lts-accent-dark) !important;
	color: #fff !important;
	box-shadow: none !important;
	text-shadow: none !important;
	opacity: 1 !important;
}

/* Notices */
.lts-shop-flow .woocommerce-message,
.lts-shop-flow .woocommerce-info {
	background: var(--lts-bg) !important;
	border: 1px solid var(--lts-border) !important;
	border-left: 4px solid var(--lts-accent) !important;
	border-radius: 6px !important;
	padding: 12px 16px !important;
	color: var(--lts-text) !important;
	font-size: 14px !important;
}
.lts-shop-flow .woocommerce-error {
	background: #fff5f5 !important;
	border: 1px solid #fecaca !important;
	border-left: 4px solid #d63638 !important;
	border-radius: 6px !important;
	padding: 12px 16px !important;
	color: #b91c1c !important;
	list-style: none !important;
}

/* Cart 2-kol: op kleinere viewport teruggaan naar 1 kolom */
@media (max-width: 900px) {
	.lts-cart-page .lts-shop-flow__inner {
		grid-template-columns: 1fr !important;
	}
	.lts-cart-page .lts-shop-flow__inner > .woocommerce-cart-form {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
	.lts-cart-page .cart-collaterals .cart_totals {
		grid-column: 1 !important;
		grid-row: auto !important;
		position: static !important;
		top: auto !important;
	}
	.lts-cart-page .cart-collaterals .cross-sells {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

/* ===== Mobile cart layout — kaart-stijl per item ===== */
@media (max-width: 768px) {
	.lts-cart-page .woocommerce-cart-form { padding: 10px 12px 14px; }

	/* Tabel volledig herstructureren naar lijst van kaarten. */
	.lts-cart-page .woocommerce-cart-form table.shop_table,
	.lts-cart-page .woocommerce-cart-form table.shop_table tbody {
		display: block !important;
		width: 100% !important;
	}
	.lts-cart-page .woocommerce-cart-form table.shop_table thead {
		display: none !important;
	}
	.lts-cart-page .woocommerce-cart-form table.shop_table tbody tr {
		display: grid !important;
		grid-template-columns: 64px 1fr 28px;
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"thumb qty qty"
			"thumb sub sub";
		column-gap: 12px !important;
		row-gap: 2px !important;
		padding: 12px 0 !important;
		border-bottom: 1px solid var(--lts-border) !important;
		align-items: center;
	}
	.lts-cart-page .woocommerce-cart-form table.shop_table tbody tr:last-child {
		border-bottom: 0 !important;
	}
	.lts-cart-page .woocommerce-cart-form table.shop_table tbody td {
		display: block !important;
		padding: 0 !important;
		border: 0 !important;
		width: auto !important;
		max-width: none !important;
		text-align: left !important;
	}
	/* Thema's renderen vaak `td::before { content: attr(data-title) ":" }`
	   op responsive WC tabellen — die labels willen we niet zien. */
	.lts-cart-page .woocommerce-cart-form table.shop_table tbody td::before {
		display: none !important;
		content: '' !important;
	}

	.lts-cart-page td.product-thumbnail { grid-area: thumb; }
	.lts-cart-page td.product-thumbnail img {
		width: 64px !important;
		height: 64px !important;
	}
	.lts-cart-page td.product-name {
		grid-area: name;
		font-weight: 600;
		font-size: 14px;
		line-height: 1.3;
		padding-right: 4px !important;
	}
	.lts-cart-page td.product-name a {
		font-size: 14px !important;
		font-weight: 600 !important;
	}
	.lts-cart-page td.product-price {
		grid-area: price;
		font-size: 13px !important;
		color: var(--lts-text-muted) !important;
	}
	.lts-cart-page td.product-price::after { content: ''; }
	.lts-cart-page td.product-quantity {
		grid-area: qty;
		margin-top: 4px !important;
	}
	.lts-cart-page td.product-subtotal {
		grid-area: sub;
		font-weight: 700 !important;
		font-size: 14px !important;
		margin-top: 4px !important;
	}
	.lts-cart-page td.product-remove {
		grid-area: remove;
		text-align: right !important;
	}
	.lts-cart-page td.product-remove a.remove {
		margin: 0 0 0 auto !important;
	}

	/* Update-knop full-width op mobiel */
	.lts-cart-page .lts-cart-actions {
		justify-content: stretch !important;
		padding-top: 12px !important;
	}
	.lts-cart-page .lts-cart-update-btn {
		width: 100% !important;
		display: block !important;
	}

	.lts-cart-page .cart-collaterals .cart_totals { max-width: 100%; padding: 16px 18px; }

	/* Stappen-indicator compacter */
	.lts-flow-steps { margin: 0 0 12px 0; }
	.lts-flow-steps__label { display: none; }
	.lts-flow-steps__step { flex: 0 0 auto; }
	.lts-flow-steps__step:not(:last-child)::after { flex: 1 1 32px; }
}

/* =================================================================
   HARD-OVERRIDE — laatste cascade-positie + body.-prefix specificiteit.
   Breakpoint 1024px zodat tablet en mobile beide raken.
   ================================================================= */
@media (max-width: 1024px) {
	/* Geen padding op outer wrapper — content edge-to-edge. */
	body.lts-cart-page .lts-shop-flow,
	body.lts-checkout-page .lts-shop-flow {
		padding: 0 !important;
	}
	body.lts-cart-page .lts-shop-flow__inner,
	body.lts-checkout-page .lts-shop-flow__inner {
		gap: 10px !important;
	}

	/* === CART: dwing tabel naar grid-kaart per item ===
	   Specificiteit moet hoger zijn dan de desktop-regels op regel 109+
	   die `.lts-cart-page .woocommerce-cart-form table.shop_table tr` gebruiken
	   (specificiteit 0,3,2). We gebruiken hier 4 classes + 3 elementen om
	   altijd te winnen. */
	body.lts-cart-page form.woocommerce-cart-form table.shop_table,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tbody {
		display: block !important;
		width: 100% !important;
		table-layout: auto !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table thead {
		display: none !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item {
		display: grid !important;
		grid-template-columns: 64px minmax(0, 1fr) 28px !important;
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"thumb qty qty"
			"thumb sub sub" !important;
		column-gap: 12px !important;
		row-gap: 2px !important;
		padding: 12px 0 !important;
		border: 0 !important;
		border-bottom: 1px solid var(--lts-border) !important;
		align-items: center !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td {
		display: block !important;
		padding: 0 !important;
		border: 0 !important;
		width: auto !important;
		max-width: none !important;
		text-align: left !important;
		background: transparent !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td::before,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td::before {
		display: none !important;
		content: '' !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-thumbnail,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-thumbnail {
		grid-area: thumb !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-thumbnail img,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-thumbnail img {
		width: 64px !important;
		height: 64px !important;
		max-width: 64px !important;
		max-height: 64px !important;
		object-fit: contain !important;
		display: block !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-name,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-name {
		grid-area: name !important;
		font-weight: 600 !important;
		font-size: 14px !important;
		line-height: 1.3 !important;
		text-align: left !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-price,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-price {
		grid-area: price !important;
		font-size: 13px !important;
		color: var(--lts-text-muted) !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-quantity,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-quantity {
		grid-area: qty !important;
		margin-top: 4px !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-subtotal,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-subtotal {
		grid-area: sub !important;
		font-weight: 700 !important;
		font-size: 14px !important;
	}
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-remove,
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td.product-remove {
		grid-area: remove !important;
		text-align: right !important;
	}

	/* === Cart actions-rij (coupon + WC's eigen update-knop) verbergen ===
	   We renderen onze eigen update-knop via render_cart_update_button(), en
	   de coupon hoort niet op de cart-pagina. Hoge specificiteit nodig om de
	   high-spec grid-rules hierboven niet onbedoeld te overrulen. */
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr:has(> td.actions),
	body.lts-cart-page form.woocommerce-cart-form table.shop_table tr > td.actions {
		display: none !important;
	}

	/* === CHECKOUT: blokken dichter op elkaar === */
	body.lts-checkout-page form.checkout {
		row-gap: 10px !important;
	}
	body.lts-checkout-page form.checkout > #customer_details,
	body.lts-checkout-page form.checkout > .lts-checkout-review-wrap {
		margin: 0 !important;
	}

	/* === Stappen-indicator margin minimaliseren === */
	body.lts-cart-page .lts-flow-steps,
	body.lts-checkout-page .lts-flow-steps {
		margin: 0 0 8px 0 !important;
	}
}

/* =================================================================
   v0.9.89 — FINAL mobile cart override met `html`-prefix (spec 0,4,4).
   Slaat elke andere regel uit thema/WC plugins.
   ================================================================= */
@media (max-width: 1024px) {
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table,
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tbody {
		display: block !important;
		width: 100% !important;
		table-layout: auto !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table thead {
		display: none !important;
	}

	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item {
		display: grid !important;
		grid-template-columns: 64px minmax(0, 1fr) 28px !important;
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"thumb qty qty"
			"thumb sub sub" !important;
		column-gap: 12px !important;
		row-gap: 4px !important;
		padding: 12px 0 !important;
		border: 0 !important;
		border-bottom: 1px solid var(--lts-border) !important;
		align-items: center !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td {
		display: block !important;
		padding: 0 !important;
		border: 0 !important;
		width: auto !important;
		max-width: none !important;
		text-align: left !important;
		background: transparent !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td::before {
		display: none !important;
		content: '' !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-thumbnail {
		grid-area: thumb !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-thumbnail img {
		width: 64px !important;
		height: 64px !important;
		max-width: 64px !important;
		max-height: 64px !important;
		min-width: 0 !important;
		object-fit: contain !important;
		display: block !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-name {
		grid-area: name !important;
		font-weight: 600 !important;
		font-size: 14px !important;
		line-height: 1.3 !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-price {
		grid-area: price !important;
		font-size: 13px !important;
		color: var(--lts-text-muted) !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-quantity {
		grid-area: qty !important;
		font-size: 14px !important;
	}
	/* "Aantal: " label voor het cijfer */
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-quantity::before {
		content: 'Aantal: ' !important;
		display: inline !important;
		font-weight: 400 !important;
		color: var(--lts-text-muted) !important;
		margin-right: 4px !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-quantity .lts-cart-qty-fixed {
		font-weight: 700 !important;
		line-height: 8px !important;
	}
	/* Subtotaal-rij onderaan kaart verbergen op mobiel — prijs staat al bovenin */
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-subtotal {
		display: none !important;
	}
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_item > td.product-remove {
		grid-area: remove !important;
		text-align: right !important;
	}

	/* Verberg native subtotaal/verzending/totaalrijen + actions (coupon + WC update) */
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.cart_subtotal,
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.shipping,
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr.order-total,
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr:has(> td.actions),
	html body.lts-cart-page form.woocommerce-cart-form table.shop_table tr > td.actions {
		display: none !important;
	}
}

/* ========== "Verzenden naar ander adres?" en Bestelnotities ruimte fix ==========
   Themes (Uncode etc.) zetten vaak forse margins op #ship-to-different-address
   en .woocommerce-additional-fields, en de verborgen .shipping_address div
   houdt soms padding/margin vast. Forceer compacte spacing. */
/* Ruimte rond "Verzenden naar een ander adres?" gehalveerd (alleen hier).
   De container-marge boven (theme) en de padding van het notities-blok eronder
   waren te groot. */
.lts-checkout-page form.checkout #customer_details .woocommerce-shipping-fields {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
.lts-checkout-page form.checkout #ship-to-different-address {
	margin: 0 0 6px 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--lts-text) !important;
}
.lts-checkout-page form.checkout #ship-to-different-address label {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin: 0 !important;
	cursor: pointer;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--lts-text) !important;
}
.lts-checkout-page form.checkout #ship-to-different-address-checkbox {
	margin: 0 !important;
}

/* Verborgen shipping_address container mag GEEN ruimte innemen.
   WC zet inline display:none, maar sommige thema's overrulen met
   visibility/opacity transitions — forceer collapse. */
.lts-checkout-page form.checkout .shipping_address {
	margin: 0 !important;
	padding: 0 !important;
}
.lts-checkout-page form.checkout .shipping_address[style*="display: none"],
.lts-checkout-page form.checkout .shipping_address[style*="display:none"] {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Als wel zichtbaar: nette spacing onder de checkbox. */
.lts-checkout-page form.checkout .shipping_address:not([style*="display: none"]):not([style*="display:none"]) {
	margin-top: 12px !important;
	padding-top: 12px !important;
	border-top: 1px solid var(--lts-border) !important;
}

/* Bestelnotities-blok strak tegen de shipping-section aan (padding gehalveerd). */
.lts-checkout-page form.checkout .woocommerce-additional-fields {
	margin: 0 !important;
	padding: 8px 0 0 0 !important;
	border-top: 1px solid var(--lts-border) !important;
}
.lts-checkout-page form.checkout .woocommerce-additional-fields h3 {
	margin: 0 0 12px 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--lts-text) !important;
}
.lts-checkout-page form.checkout .woocommerce-additional-fields__field-wrapper {
	margin: 0 !important;
	padding: 0 !important;
}
.lts-checkout-page form.checkout #order_comments_field {
	margin: 0 !important;
}
.lts-checkout-page form.checkout #order_comments {
	min-height: 80px !important;
}

/* Col-2 (rechter helft van customer_details) niet meer als losse kolom met
   grote bottom-margin maar als doorlopend blok eronder. */
.lts-checkout-page form.checkout #customer_details .col-2 {
	margin: 16px 0 0 0 !important;
}
