/**
 * Lokerse Tefcold Sync — 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:        #35a5de;
	--lts-accent-dark:   #2188bd;
	--lts-accent-soft:   #d2ecf8;
	--lts-bg:            #eaf6fb;
	--lts-text:          #0a212c;
	--lts-text-muted:    #4a6470;
	--lts-border:        #d4e5ee;
	--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: 12px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: .5px !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);
}

/* 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: middle;
}
.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;
}
.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;
}

/* 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;
	margin-left: 0 !important;
	padding-left: 16px !important;
}
.lts-shop-flow .woocommerce-error li {
	display: block !important;
	list-style: none !important;
	margin: 0 !important;
}
/* WooCommerce/het thema floa(t)/rechtsuitlijnt de "Bekijk winkelwagen"-knop
   in de melding. Forceer 'm op een EIGEN REGEL onder de tekst, links uitgelijnd
   (display:block i.p.v. inline-block, anders blijft 'ie achter de tekst staan).
   width:fit-content zodat de knop niet over de volle breedte uitrekt. */
.lts-shop-flow .woocommerce-message .button,
.lts-shop-flow .woocommerce-message a.wc-forward,
.lts-shop-flow .woocommerce-error .button,
.lts-shop-flow .woocommerce-error a.wc-forward {
	float: none !important;
	display: block !important;
	width: -moz-fit-content !important;
	width: fit-content !important;
	margin: 10px auto 0 0 !important;
	clear: both !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 op mobiel: nummer met label ERONDER (gecentreerd),
	   zodat de stapnamen wél zichtbaar zijn. Verbindingslijn vervalt op
	   mobiel (3 genummerde stappen met labels zijn ook zo duidelijk). */
	.lts-flow-steps { margin: 0 0 14px 0; gap: 4px; }
	.lts-flow-steps__step {
		flex: 1 1 0;
		flex-direction: column;
		align-items: center;
		gap: 5px;
		text-align: center;
	}
	.lts-flow-steps__label {
		display: block !important;
		font-size: 11px;
		line-height: 1.2;
		white-space: normal;
		overflow: visible;
		text-overflow: clip;
	}
	.lts-flow-steps__step:not(:last-child)::after { display: none !important; }
}

/* =================================================================
   HARD-OVERRIDE — laatste cascade-positie + body.-prefix specificiteit.
   Breakpoint 1024px zodat tablet en mobile beide raken.
   ================================================================= */
@media (max-width: 1024px) {
	/* Geen eigen horizontale padding: de thema-container levert de gutter al
	   (anders dubbele 16px links/rechts op cart- en checkout-pagina). */
	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;
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box !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;
	}
}

/* ===== Excl + incl. btw prijs-weergave (cart & checkout) =====
   Hoofd-prijs (excl.) blijft groot zoals nu; daaronder kleine "€ X incl. btw". */
body.lts-cart-page .lts-price-wrap,
body.lts-checkout-page .lts-price-wrap { display: block; }
body.lts-cart-page .lts-price-excl,
body.lts-checkout-page .lts-price-excl { display: block; }
body.lts-cart-page .lts-price-incl,
body.lts-checkout-page .lts-price-incl {
	display: block;
	font-size: 11px;
	font-weight: 400;
	color: var(--lts-text-muted);
	line-height: 1.3;
	margin-top: 1px;
}
body.lts-cart-page .lts-price-incl .woocommerce-Price-amount,
body.lts-cart-page .lts-price-incl .woocommerce-Price-amount bdi,
body.lts-cart-page .lts-price-incl .woocommerce-Price-currencySymbol,
body.lts-checkout-page .lts-price-incl .woocommerce-Price-amount,
body.lts-checkout-page .lts-price-incl .woocommerce-Price-amount bdi,
body.lts-checkout-page .lts-price-incl .woocommerce-Price-currencySymbol {
	font-size: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
}

/* ===== Mobile cart: verberg subtotaal-regel (komt al terug via prijs × qty),
   toon "Aantal:" label voor het aantal en zet line-height op 8px. ===== */
@media (max-width: 1024px) {
	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 {
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"thumb qty   qty" !important;
	}
	html body.lts-cart-page td.product-quantity .lts-cart-qty-fixed {
		line-height: 8px !important;
	}
	html body.lts-cart-page td.product-quantity .lts-cart-qty-fixed::before {
		content: "Aantal: ";
		font-weight: 400;
		color: var(--lts-text-muted);
		margin-right: 4px;
	}
}

/* ===== Excl / Incl. BTW prijs-paar — onder elkaar, excl bold, incl klein/licht.
   Geldt voor mini-cart, cart line-items en alles waar onze wrap voorkomt
   binnen winkelwagen/checkout context. ===== */
.lts-price-wrap { display: inline-block; line-height: 1.25; vertical-align: top; }
.lts-price-wrap .lts-price-excl { display: block; font-weight: 700; }
.lts-price-wrap .lts-price-incl {
	display: block;
	font-weight: 400 !important;
	font-size: 0.85em !important;
	color: var(--lts-text-muted) !important;
	margin-top: 1px;
}
.lts-price-wrap .lts-price-incl .woocommerce-Price-amount,
.lts-price-wrap .lts-price-incl .woocommerce-Price-amount bdi,
.lts-price-wrap .lts-price-incl .woocommerce-Price-currencySymbol {
	font-weight: 400 !important;
}

/* "incl. BTW" / "excl. BTW" labels — klein maar erfen font-weight van hun
   prijsregel: naast een bold prijs (excl-hoofdregel, Totaal) is het label
   ook bold; naast de kleine incl-regel blijft het licht. */
.lts-price-incl__label,
.lts-price-excl__label,
.lts-total-incl__label {
	font-size: 0.78em !important;
	color: var(--lts-text-muted) !important;
	margin-left: 4px;
	letter-spacing: 0;
}
/* Hoofdregel-labels (excl naast bold prijs, Totaal incl) → mee-bold. */
.lts-price-excl__label,
.lts-total-incl__label {
	font-weight: 700 !important;
}
/* Kleine incl-subregel onder de prijs → licht blijven. */
.lts-price-incl__label {
	font-weight: 400 !important;
}

/* ===== Item-meta (Levertijd uit Tefcold feed) — klein font op cart + checkout.
   WC rendert woocommerce_get_item_data als <ul class="wc-item-meta"> in
   nieuwere versies en als <dl class="variation"> in oudere/legacy templates.
   Geen body-class scoping nodig — deze stylesheet laadt alleen op
   cart/checkout, dus we kunnen breed targeten en de specificity blijft hoog
   genoeg met !important. ===== */
.wc-item-meta,
.variation,
.product-name dl.variation,
.product-name ul.wc-item-meta {
	font-size: 12px !important;
	line-height: 1.4 !important;
	color: var(--lts-text-muted) !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
/* Nieuwere <ul>-markup */
.wc-item-meta li,
ul.wc-item-meta li {
	font-size: 12px !important;
	line-height: 1.4 !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.wc-item-meta-label,
.wc-item-meta strong {
	font-weight: 500 !important;
	font-size: 12px !important;
	color: var(--lts-text-muted) !important;
}
.wc-item-meta li > span,
.wc-item-meta li > p,
.wc-item-meta li {
	font-weight: 600 !important;
	color: var(--lts-text) !important;
	font-size: 12px !important;
}
/* Oudere <dl>-markup */
.variation dt,
.wc-item-meta dt {
	font-weight: 500 !important;
	font-size: 12px !important;
	color: var(--lts-text-muted) !important;
}
.variation dd,
.wc-item-meta dd {
	font-weight: 600 !important;
	color: var(--lts-text) !important;
	font-size: 12px !important;
	margin: 0 !important;
}
.variation dd p,
.wc-item-meta dd p {
	margin: 0 !important;
	font-size: 12px !important;
}
