/* ============================================================
   Veloura Checkout, Winkelwagen & Bedankpagina — Elementor-widgets
   .vco = checkout (+ bedankpagina), .vca = winkelwagen.
   Gedeelde variabelen worden door de Elementor-stijlcontrols op
   de widget overschreven. Selectors zijn bewust zwaar (.vco/.vca
   prefix) zodat Rey/Elementor-styles ze niet overschrijven.
   ============================================================ */

.vco, .vca {
	--vco-accent: #6E1230;
	--vco-wijn: #4E0B21;
	--vco-wijn-diep: #3D081A;
	--vco-blush: #FAF0ED;
	--vco-lijn: #EDD9D3;
	--vco-ivoor: #FFFDFC;
	--vco-inkt: #2B141C;
	--vco-inkt-zacht: #7A5E66;
	--vco-succes: #2E7D5B;
	--vco-succes-licht: #E9F4EF;
	--vco-fout: #B3372F;
	--vco-goud: #C9A15C;
	--vco-aside-bg: var(--vco-wijn);
	--vco-aside-text: #F6E7E9;
	--vco-aside-muted: rgba(255, 255, 255, 0.62);
	--vco-radius: 14px;
	--vco-aside-w: 420px;
	--vco-gap: 44px;
	--vco-sticky: 24px;
	--vco-pad: 28px;
	--vco-schaduw: 0 1px 2px rgba(62, 10, 27, 0.05), 0 8px 28px rgba(62, 10, 27, 0.07);
	color: var(--vco-inkt);
	font-size: 15px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
.vco *, .vco *::before, .vco *::after,
.vca *, .vca *::before, .vca *::after { box-sizing: border-box; }
.vco :focus-visible, .vca :focus-visible { outline: 2px solid var(--vco-accent); outline-offset: 2px; }
.vco a, .vca a { transition: color 0.15s; }
.vco svg, .vca svg { flex: none; }
.vco .vco-icon--tick, .vca .vco-icon--tick { stroke-width: 2.5; }
.vco h1, .vco h2, .vco h3, .vca h1, .vca h2, .vca h3 { font-family: inherit; letter-spacing: normal; text-transform: none; }

/* --- Bovenkant: USP-balk + stappen --- */
.vco-usp {
	background: var(--vco-wijn-diep);
	color: #F3DEE2;
	font-size: 12.5px;
	letter-spacing: 0.02em;
	overflow: hidden;
	white-space: nowrap;
	border-radius: 8px;
	margin: 0 0 18px;
}
.vco-usp-track { display: inline-flex; gap: 44px; padding: 8px 0; animation: vco-usps 26s linear infinite; will-change: transform; }
.vco-usp-track span { display: inline-flex; align-items: center; gap: 8px; }
.vco-usp-track svg { opacity: 0.85; }
@keyframes vco-usps { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .vco-usp-track { animation: none; padding-left: 16px; } }

.vco-stappen { display: flex; align-items: center; gap: 10px; font-size: 13px; margin: 0 0 22px; flex-wrap: wrap; }
.vco-stap { display: inline-flex; align-items: center; gap: 8px; color: var(--vco-inkt-zacht); }
.vco-bol {
	width: 22px; height: 22px; border-radius: 50%;
	display: inline-grid; place-items: center;
	font-size: 11.5px; font-weight: 600;
	background: var(--vco-blush); border: 1px solid var(--vco-lijn); color: var(--vco-inkt-zacht);
}
.vco-stap--klaar .vco-bol { background: var(--vco-succes-licht); border-color: transparent; color: var(--vco-succes); }
.vco-stap--actief { color: var(--vco-accent); font-weight: 600; }
.vco-stap--actief .vco-bol { background: var(--vco-accent); border-color: var(--vco-accent); color: #fff; }
.vco-stap-lijn { flex: none; width: 34px; height: 1px; background: var(--vco-lijn); }

/* --- Layout --- */
.vco-grid { display: grid; grid-template-columns: minmax(0, 1fr) var(--vco-aside-w); gap: var(--vco-gap); align-items: start; }
.vco-main { min-width: 0; }
.vco form.checkout, .vco form.woocommerce-checkout { display: block; margin: 0; width: auto; }
.vco-terug, .vca-verder {
	display: inline-flex; align-items: center; gap: 7px;
	font-size: 13.5px; color: var(--vco-inkt-zacht); text-decoration: none; margin: 0 0 22px;
}
.vco-terug:hover, .vca-verder:hover { color: var(--vco-accent); text-decoration: none; }

/* --- Blokken --- */
.vco-blok, .vca-lijst, .vca-gratis, .vca-leeg {
	background: var(--vco-ivoor);
	border: 1px solid var(--vco-lijn);
	border-radius: var(--vco-radius);
	box-shadow: var(--vco-schaduw);
}
.vco-blok { padding: var(--vco-pad); margin: 0 0 22px; }
.vco-blok-kop { display: flex; align-items: baseline; gap: 14px; margin: 0 0 22px; flex-wrap: wrap; }
.vco-blok-nr { font-size: 15px; color: var(--vco-goud); font-weight: 500; }
.vco-blok-titel { font-weight: 600; font-size: 21px; line-height: 1.2; margin: 0; color: var(--vco-inkt); letter-spacing: 0.005em; }
.vco-blok-rechts { margin-left: auto; font-size: 12.5px; color: var(--vco-inkt-zacht); display: inline-flex; align-items: center; gap: 6px; }
.vco-blok--verzending.vco-leeg { display: none; }

/* --- Adresvelden (zwevende labels op WooCommerce-markup; Rey-layout geneutraliseerd) --- */
.vco .woocommerce-billing-fields > h3,
.vco .woocommerce-additional-fields > h3,
.vco #order_review_heading,
.vco .rey-checkoutBar-wrapper { display: none !important; }
.vco form.checkout .col2-set, .vco form.checkout #customer_details { display: block !important; width: auto !important; max-width: none !important; margin: 0; padding: 0; float: none; }
.vco form.checkout .col2-set .col-1, .vco form.checkout .col2-set .col-2 { width: 100% !important; max-width: 100% !important; float: none !important; flex: none !important; padding: 0 !important; margin: 0 !important; }
.vco .woocommerce-billing-fields__field-wrapper,
.vco .woocommerce-shipping-fields__field-wrapper,
.vco .woocommerce-additional-fields__field-wrapper { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; }
.vco .form-row, .vco p.form-row, .vco .form-row.rey-form-row { position: relative; width: 100% !important; max-width: none; float: none !important; margin: 0 !important; padding: 0 !important; display: block; min-height: 0; }
.vco .form-row.form-row-wide, .vco .form-row.notes { grid-column: 1 / -1; }
.vco .form-row > label, .vco .form-row.rey-form-row > label {
	position: absolute; left: 15px; top: 17px; right: auto; z-index: 2;
	font-size: 14.5px; font-weight: 400; line-height: 1.2; color: var(--vco-inkt-zacht);
	pointer-events: none; margin: 0; padding: 0; max-width: calc(100% - 30px);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-transform: none; letter-spacing: normal;
	transition: all 0.14s ease; background: none; transform: none; opacity: 1; display: block;
}
.vco .form-row > label.screen-reader-text { clip: auto !important; clip-path: none !important; height: auto !important; width: auto !important; overflow: hidden !important; margin: 0 !important; }
.vco .form-row > label .required { color: var(--vco-accent); text-decoration: none; border: 0; visibility: visible; }
.vco .form-row > label .optional { display: none; }
.vco .form-row.vco-filled > label,
.vco .form-row:focus-within > label,
.vco .form-row.vco-select > label { top: 8px; font-size: 11px; letter-spacing: 0.03em; color: var(--vco-accent); }
.vco .form-row .woocommerce-input-wrapper { display: block; }
.vco .form-row input.input-text,
.vco .form-row textarea,
.vco .form-row select,
.vco .form-row .select2-container .select2-selection--single {
	width: 100% !important; min-height: 58px; height: auto;
	padding: 24px 14px 8px !important;
	border: 1.5px solid var(--vco-lijn) !important; border-radius: 10px !important;
	background: #fff !important; color: var(--vco-inkt);
	font-size: 15px; line-height: 1.3; margin: 0; box-shadow: none !important;
	appearance: none; -webkit-appearance: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.vco .form-row textarea { min-height: 96px; resize: vertical; }
.vco .form-row input.input-text:focus,
.vco .form-row textarea:focus,
.vco .form-row select:focus { outline: none; border-color: var(--vco-accent) !important; box-shadow: 0 0 0 3px rgba(110, 18, 48, 0.08) !important; }
.vco .form-row input::placeholder, .vco .form-row textarea::placeholder { color: transparent; }
.vco .form-row select {
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%237A5E66' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 14px center !important;
}
.vco .form-row .select2-container { width: 100% !important; }
.vco .form-row .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.3; color: var(--vco-inkt); }
.vco .form-row .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; right: 8px; height: 20px; transform: translateY(-50%); }
.vco .form-row .select2-container--default.select2-container--focus .select2-selection--single,
.vco .form-row .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--vco-accent) !important; box-shadow: 0 0 0 3px rgba(110, 18, 48, 0.08) !important; }
.vco .form-row.woocommerce-invalid input.input-text,
.vco .form-row.woocommerce-invalid textarea,
.vco .form-row.woocommerce-invalid .select2-selection--single { border-color: var(--vco-fout) !important; }
.vco .form-row.woocommerce-invalid > label { color: var(--vco-fout); }
.vco .form-row.woocommerce-validated input.input-text { border-color: #CBE3D7 !important; }
.vco .form-row.woocommerce-validated::after {
	content: ""; position: absolute; right: 14px; top: 22px; width: 14px; height: 14px; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7D5B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") no-repeat center / contain;
}
.vco .form-row.woocommerce-validated.vco-select::after,
.vco .form-row.woocommerce-validated.notes::after { display: none; }
.vco .checkout-inline-error-message, .vco .form-row .woocommerce-error { font-size: 12px; color: var(--vco-fout); margin: 5px 2px 0; padding: 0; border: 0; background: none; }

/* Ander verzendadres + opmerking */
.vco .woocommerce-shipping-fields { margin-top: 14px; }
.vco #ship-to-different-address { margin: 0; font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.vco #ship-to-different-address label {
	display: flex; align-items: center; gap: 12px; margin: 0;
	border: 1.5px solid var(--vco-lijn); border-radius: 10px; padding: 14px 16px;
	background: #fff; cursor: pointer; font-weight: 600; color: var(--vco-inkt); font-size: 14.5px; text-transform: none;
}
.vco #ship-to-different-address input { width: 18px; height: 18px; margin: 0; accent-color: var(--vco-accent); flex: none; position: static; opacity: 1; }
.vco .shipping_address { margin-top: 14px; }
.vco .woocommerce-additional-fields { margin-top: 14px; }
.vco .woocommerce-additional-fields.vco-notes-hidden { display: none; }
.vco-notitie-toggle {
	display: inline-flex; align-items: center; gap: 7px; margin: 16px 0 0; padding: 0;
	background: none; border: 0; box-shadow: none; font-size: 13.5px; color: var(--vco-inkt-zacht); cursor: pointer; text-transform: none;
}
.vco-notitie-toggle:hover { color: var(--vco-accent); background: none; }
.vco-notitie-toggle svg { transition: transform 0.2s; }
.vco-notitie-toggle[aria-expanded="true"] svg { transform: rotate(45deg); }

/* --- Keuzekaarten (verzending; ook in de winkelwagen) --- */
.vco-shipping-lijst { display: flex; flex-direction: column; gap: 10px; }
.vco-keuze {
	display: flex; gap: 14px; align-items: flex-start; position: relative;
	border: 1.5px solid var(--vco-lijn); border-radius: 10px; padding: 16px;
	background: #fff; color: var(--vco-inkt); font-weight: 400; margin: 0; cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}
.vco-keuze input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.vco-rondje { flex: none; width: 19px; height: 19px; border-radius: 50%; border: 1.5px solid #D6BFC6; margin-top: 1px; position: relative; transition: border-color 0.15s; }
.vco-rondje::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--vco-accent); transform: scale(0); transition: transform 0.16s cubic-bezier(0.34, 1.56, 0.64, 1); }
.vco-keuze.vco-aan, .vco-keuze:has(input:checked) { border-color: var(--vco-accent); background: var(--vco-blush); }
.vco-keuze.vco-aan .vco-rondje, .vco-keuze:has(input:checked) .vco-rondje { border-color: var(--vco-accent); }
.vco-keuze.vco-aan .vco-rondje::after, .vco-keuze:has(input:checked) .vco-rondje::after { transform: scale(1); }
.vco-inhoud { flex: 1; min-width: 0; }
.vco-titel { font-weight: 600; font-size: 14.5px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; line-height: 1.3; }
.vco-omschrijving { display: block; font-size: 13px; color: var(--vco-inkt-zacht); margin-top: 3px; }
.vco-prijs { font-weight: 600; font-size: 14.5px; white-space: nowrap; }
.vco-prijs--gratis, .vco-gratis { color: var(--vco-succes); }
.vco-tag {
	font-size: 10.5px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;
	background: var(--vco-succes-licht); color: var(--vco-succes); padding: 3px 8px; border-radius: 99px; line-height: 1.3;
}
.vco-pakket { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vco-inkt-zacht); margin: 0 0 8px; }
.vco-shipping-leeg, .vco-pakket-details { font-size: 13.5px; color: var(--vco-inkt-zacht); margin: 0; }

/* --- Betaling (WooCommerce #payment) --- */
.vco #payment, .vco .woocommerce-checkout-payment { background: transparent !important; border: 0 !important; border-radius: 0; padding: 0 !important; margin: 0 !important; }
.vco #payment ul.payment_methods, .vco .woocommerce-checkout-payment ul.payment_methods { list-style: none; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.vco ul.payment_methods li.wc_payment_method { list-style: none; margin: 0 0 10px !important; padding: 0 !important; border: 0 !important; background: none !important; line-height: 1.5; position: relative; }
.vco ul.payment_methods li.wc_payment_method > input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.vco ul.payment_methods li.wc_payment_method > label {
	display: flex !important; align-items: center; gap: 14px; position: relative;
	border: 1.5px solid var(--vco-lijn); border-radius: 10px; padding: 16px 16px 16px 48px !important;
	background: #fff; margin: 0 !important; cursor: pointer; width: 100%;
	font-weight: 600; font-size: 14.5px; line-height: 1.35; color: var(--vco-inkt); text-transform: none; letter-spacing: normal;
	transition: border-color 0.15s, background 0.15s;
}
.vco ul.payment_methods li.wc_payment_method > label::before {
	content: ""; position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
	width: 19px; height: 19px; border-radius: 50%; border: 1.5px solid #D6BFC6; transition: border-color 0.15s; background: none;
}
.vco ul.payment_methods li.wc_payment_method > label::after {
	content: ""; position: absolute; left: 20px; top: 50%; margin-top: -5.5px; right: auto;
	width: 11px; height: 11px; border-radius: 50%; background: var(--vco-accent); border: 0;
	transform: scale(0); transition: transform 0.16s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.vco ul.payment_methods li.wc_payment_method > input:checked + label { border-color: var(--vco-accent); background: var(--vco-blush); }
.vco ul.payment_methods li.wc_payment_method > input:checked + label::before { border-color: var(--vco-accent); }
.vco ul.payment_methods li.wc_payment_method > input:checked + label::after { transform: scale(1); }
.vco ul.payment_methods li.wc_payment_method > label img {
	order: -1; max-height: 28px; width: auto; max-width: 60px; margin: 0; float: none; position: static;
	border: 1px solid var(--vco-lijn); border-radius: 6px; padding: 3px; background: #fff;
}
.vco ul.payment_methods li.wc_payment_method > label a { margin-left: auto; font-size: 12px; font-weight: 400; color: var(--vco-inkt-zacht); }
.vco #payment div.payment_box, .vco .payment_box {
	background: var(--vco-blush) !important; border: 1.5px solid var(--vco-lijn) !important; border-radius: 10px;
	padding: 16px !important; margin: 10px 0 12px !important; font-size: 13.5px; color: var(--vco-inkt); position: relative; width: auto;
}
.vco #payment div.payment_box::before, .vco .payment_box::before { display: none !important; }
.vco .payment_box p { margin: 0 0 10px; }
.vco .payment_box p:last-child { margin-bottom: 0; }
.vco .payment_box select, .vco .payment_box input.input-text, .vco .payment_box input[type="text"], .vco .payment_box input[type="tel"] {
	width: 100%; min-height: 48px; padding: 10px 14px; margin: 0;
	border: 1.5px solid var(--vco-lijn); border-radius: 10px; background: #fff; font-size: 14px; color: var(--vco-inkt);
}
.vco .payment_box .form-row { margin-bottom: 10px !important; }
.vco .payment_box .form-row > label { position: static; font-size: 12px; margin: 0 0 4px; display: block; white-space: normal; }
.vco #payment .place-order, .vco .place-order { padding: 0 !important; margin: 26px 0 0 !important; background: none; }
.vco .woocommerce-terms-and-conditions-wrapper { margin: 0 0 14px; font-size: 12.5px; color: var(--vco-inkt-zacht); }
.vco .woocommerce-terms-and-conditions-wrapper a { color: var(--vco-accent); }
.vco .woocommerce-privacy-policy-text p { font-size: 12.5px; color: var(--vco-inkt-zacht); margin: 0 0 12px; }
.vco .woocommerce-terms-and-conditions-wrapper .form-row { display: block; }
.vco .woocommerce-terms-and-conditions-wrapper .form-row > label { position: static; display: inline-flex; gap: 8px; align-items: flex-start; font-size: 13px; white-space: normal; color: var(--vco-inkt); pointer-events: auto; max-width: none; }

/* --- Hoofdknop (bestellen / afrekenen) --- */
.vco-plaats, .vco #place_order, .vco button#place_order {
	width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px;
	background: var(--vco-accent) !important; color: #fff !important; border: 0 !important; border-radius: 12px !important;
	padding: 18px !important; font-weight: 600; font-size: 16px; letter-spacing: 0.01em; line-height: 1.2; min-height: 0;
	cursor: pointer; text-decoration: none; text-transform: none; box-shadow: none;
	transition: background 0.15s, transform 0.1s, color 0.15s;
}
.vco-plaats:hover, .vco #place_order:hover, .vco-plaats:focus { background: var(--vco-wijn) !important; color: #fff !important; text-decoration: none; }
.vco-plaats:active { transform: scale(0.99); }
.vco-plaats svg { color: currentColor; }
.vco-plaats--inline { display: inline-flex; width: auto; padding: 14px 24px !important; }
.vco-juridisch { font-size: 12px; color: var(--vco-inkt-zacht); text-align: center; margin: 14px 0 0; line-height: 1.6; }
.vco-juridisch p { margin: 0; }
.vco-juridisch a { color: var(--vco-accent); text-decoration: underline; }
.vco-trust { display: flex; justify-content: center; gap: 22px; margin: 18px 0 0; font-size: 12.5px; color: var(--vco-inkt-zacht); flex-wrap: wrap; }
.vco-trust span { display: inline-flex; align-items: center; gap: 7px; }
.vco-trust svg { color: var(--vco-succes); }

/* --- Meldingen --- */
.vco .woocommerce-NoticeGroup, .vco .woocommerce-error, .vco .woocommerce-message, .vco .woocommerce-info,
.vca .woocommerce-error, .vca .woocommerce-message, .vca .woocommerce-info {
	border-radius: 10px; padding: 14px 18px; margin: 0 0 18px; font-size: 14px;
	background: #fff; border: 1px solid var(--vco-lijn); color: var(--vco-inkt); list-style: none;
}
.vco .woocommerce-error, .vca .woocommerce-error { border-color: rgba(179, 55, 47, 0.4); color: var(--vco-fout); }
.vco .woocommerce-message, .vca .woocommerce-message { border-color: rgba(46, 125, 91, 0.35); color: var(--vco-succes); }
.vco .woocommerce-error li, .vca .woocommerce-error li { margin: 0; }
.vco .woocommerce-message .button, .vca .woocommerce-message .button { margin-left: 10px; font-size: 12.5px; }
.vca .woocommerce-notices-wrapper:empty, .vca .vca-cross:empty { display: none; }

/* --- Bestelkolom (checkout & bedankpagina) / samenvatting (winkelwagen) --- */
.vco-aside, .vca-aside {
	position: sticky; top: var(--vco-sticky);
	background: var(--vco-aside-bg); color: var(--vco-aside-text);
	border-radius: 18px; padding: 30px 28px;
	box-shadow: 0 18px 50px rgba(62, 10, 27, 0.22);
	min-width: 0; width: auto; float: none;
}
.vco-aside a, .vca-aside a { color: #fff; }
.vco-aside-kop { font-weight: 500; font-size: 22px; line-height: 1.2; color: #fff; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0; }
.vca-aside .vco-aside-kop { font-weight: 600; font-size: 19px; }
.vco-aantal { font-weight: 400; font-size: 13px; color: var(--vco-aside-muted); white-space: nowrap; }
.vco-producten { margin: 22px 0 6px; display: flex; flex-direction: column; gap: 16px; max-height: 340px; overflow: auto; padding-right: 6px; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.25) transparent; }
.vco-product { display: flex; gap: 13px; align-items: center; }
.vco-thumb { flex: none; width: 52px; height: 52px; border-radius: 10px; background: linear-gradient(160deg, #FBF2F0, #EAD3CE); display: grid; place-items: center; position: relative; color: var(--vco-accent); }
.vco-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; display: block; }
.vco-qty {
	position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px; padding: 0 5px;
	background: var(--vco-goud); color: #3D081A; font-size: 10.5px; font-weight: 700; border-radius: 99px;
	display: grid; place-items: center;
}
.vco-info { flex: 1; min-width: 0; }
.vco-naam { font-size: 13.5px; font-weight: 500; color: #fff; line-height: 1.35; }
.vco-bestelling dl.variation, .vca-info dl.variation { display: flex; flex-wrap: wrap; gap: 2px 8px; margin: 2px 0 0; font-size: 12px; color: var(--vco-aside-muted); }
.vco-bestelling dl.variation dt, .vco-bestelling dl.variation dd, .vca-info dl.variation dt, .vca-info dl.variation dd { display: inline; margin: 0; padding: 0; font-weight: 400; float: none; }
.vco-bestelling dl.variation dd p, .vca-info dl.variation dd p { display: inline; margin: 0; }
.vco-prijzen { text-align: right; white-space: nowrap; }
.vco-oud { font-size: 11.5px; color: rgba(255, 255, 255, 0.5); text-decoration: line-through; }
.vco-nieuw { font-size: 13.5px; font-weight: 600; color: #fff; }
.vco-code { display: flex; gap: 8px; margin: 20px 0 4px; }
.vco-code input {
	flex: 1; min-width: 0; min-height: 0; padding: 12px 14px; margin: 0;
	border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.22); background: rgba(255, 255, 255, 0.07);
	color: #fff; font-size: 14px; box-shadow: none;
}
.vco-code input::placeholder { color: rgba(255, 255, 255, 0.55); }
.vco-code input:focus { outline: none; border-color: rgba(255, 255, 255, 0.5); }
.vco-code button {
	padding: 12px 18px; border-radius: 10px; border: 0; line-height: 1.2; min-height: 0;
	background: rgba(255, 255, 255, 0.14); color: #fff; font-weight: 600; font-size: 13.5px; cursor: pointer; transition: background 0.15s; text-transform: none;
}
.vco-code button:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }
.vco-code-actief {
	display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap;
	background: rgba(46, 125, 91, 0.25); border: 1px solid rgba(126, 200, 168, 0.35); border-radius: 10px;
	padding: 10px 14px; margin: 14px 0 4px; font-size: 13px;
}
.vco-code-actief b { color: #9FE0C2; font-weight: 600; display: inline-flex; align-items: center; gap: 7px; }
.vco-code-actief a { color: rgba(255, 255, 255, 0.7); font-size: 12.5px; text-decoration: underline; margin-left: 6px; }
.vco-code-melding:empty { display: none; }
.vco-code-melding .woocommerce-error, .vco-code-melding .woocommerce-message, .vco-code-melding .woocommerce-info {
	margin: 10px 0 0; padding: 10px 14px; font-size: 13px; border-radius: 10px; list-style: none;
	background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); color: #fff;
}
.vco-lijn { height: 1px; background: rgba(255, 255, 255, 0.14); margin: 20px 0; }
.vco-totaalrij { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; margin: 0 0 10px; color: rgba(255, 255, 255, 0.85); }
.vco-totaalrij .vco-waarde { color: #fff; text-align: right; }
.vco-totaalrij.vco-korting .vco-waarde { color: #9FE0C2; font-weight: 600; }
.vco-verzendlabel { font-style: normal; display: block; font-size: 12px; color: var(--vco-aside-muted); }
.vco-waarde--zacht { font-size: 12.5px; color: var(--vco-aside-muted) !important; }
.vco-eind { font-size: 16px; margin: 0; align-items: baseline; }
.vco-eind .vco-label { font-weight: 600; color: #fff; }
.vco-eind .vco-waarde { font-size: 24px; font-weight: 700; }
.vco-btw { font-size: 11.5px; color: var(--vco-aside-muted); text-align: right; margin-top: 4px; }
.vco-bespaard { margin: 18px 0 0; background: var(--vco-blush); border-radius: 10px; padding: 12px 16px; text-align: center; font-size: 13.5px; color: var(--vco-wijn); }
.vco-bespaard b { color: var(--vco-accent); }
.vco-levering { margin: 18px 0 0; display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: rgba(255, 255, 255, 0.85); line-height: 1.5; }
.vco-levering svg { margin-top: 2px; color: #9FE0C2; }
.vco-levering b { color: #fff; }
.vco-beoordeling { margin: 22px 0 0; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.14); display: flex; align-items: center; gap: 12px; font-size: 12.5px; color: var(--vco-aside-muted); }
.vco-sterren { display: flex; gap: 2px; color: var(--vco-goud); }
.vco-hook-table { width: 100%; border: 0; margin: 0; background: none; border-collapse: collapse; }
.vco-hook-table tbody:empty { display: none; }
.vco-hook-table td, .vco-hook-table th { border: 0; padding: 0 0 10px; background: none; color: inherit; font-size: 13px; text-align: left; }
.vco-aside .woocommerce-Price-amount, .vca-aside .woocommerce-Price-amount { font-weight: inherit; color: inherit; }
.vco-rc-label { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vco-aside-muted); margin: 0 0 10px; }
.vco-mob-toggle { display: none; }
.vco-betaaliconen { margin: 18px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.vco-betaalicoon { height: 26px; padding: 0 9px; border-radius: 5px; background: rgba(255, 255, 255, 0.95); display: inline-grid; place-items: center; font-size: 9.5px; font-weight: 700; color: #3D081A; letter-spacing: 0.02em; }
.vco-betaalicoon--licht { background: var(--vco-blush); color: var(--vco-wijn); height: 24px; padding: 0 8px; }

/* --- Winkelwagen --- */
.vca .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) var(--vco-aside-w); gap: 0 var(--vco-gap); align-items: start; }
.vca .woocommerce > * { grid-column: 1 / -1; min-width: 0; }
.vca .woocommerce > .woocommerce-cart-form { grid-column: 1; margin: 0; }
.vca .woocommerce > .cart-collaterals { grid-column: 2; grid-row: span 2; width: auto !important; float: none; margin: 0; }
.vca .woocommerce > .vca-cross { grid-column: 1; }
.vca .woocommerce > .vco-stappen, .vca .woocommerce > .vco-usp { margin-bottom: 22px; }
.vca-kop { display: flex; align-items: baseline; gap: 12px; margin: 0 0 8px; flex-wrap: wrap; }
.vca-titel { font-weight: 600; font-size: 26px; line-height: 1.2; margin: 0; color: var(--vco-inkt); }
.vca-aantal { font-size: 14px; color: var(--vco-inkt-zacht); }
.vca-verder { margin: 0 0 24px; }
.vca-gratis { padding: 18px 22px; margin: 0 0 22px; }
.vca-gratis-tekst { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--vco-inkt); margin: 0 0 10px; }
.vca-gratis-tekst svg { color: var(--vco-succes); }
.vca-gratis-tekst b { font-weight: 600; }
.vca-gratis-balk { height: 7px; border-radius: 99px; background: var(--vco-blush); overflow: hidden; }
.vca-gratis-balk span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--vco-accent), #9E2C51); transition: width 0.5s ease; }
.vca-gratis--klaar .vca-gratis-balk span { background: var(--vco-succes); }
.vca-lijst { overflow: hidden; margin: 0 0 26px; }
.vca-items { display: block; }
.vca-item {
	display: grid; grid-template-columns: 64px minmax(0, 1fr) auto;
	gap: 16px; align-items: center; padding: 20px 22px; border-bottom: 1px solid var(--vco-lijn);
}
.vca-item:last-of-type { border-bottom: 0; }
.vca-thumb { width: 64px; height: 64px; border-radius: 12px; background: linear-gradient(160deg, #FBF2F0, #EAD3CE); overflow: hidden; }
.vca-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vca-thumb a { display: block; height: 100%; }
.vca-naam { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--vco-inkt); }
.vca-naam a { color: inherit; text-decoration: none; }
.vca-naam a:hover { color: var(--vco-accent); }
.vca-info dl.variation { color: var(--vco-inkt-zacht); font-size: 12.5px; margin-top: 2px; }
.vca-stuks { font-size: 12.5px; color: var(--vco-inkt-zacht); margin-top: 6px; }
.vca-stuks s { margin-right: 6px; }
.vca-stuks .woocommerce-Price-amount { color: inherit; }
.vca-backorder { font-size: 12px; color: var(--vco-goud); margin: 4px 0 0; }
.vca-rechts { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.vca-prijs { font-size: 15px; font-weight: 700; white-space: nowrap; color: var(--vco-inkt); }
.vca-prijs .woocommerce-Price-amount { color: inherit; font-weight: inherit; }
.vca-acties { display: flex; align-items: center; gap: 12px; }
.vca-qty { display: inline-flex; align-items: center; border: 1.5px solid var(--vco-lijn); border-radius: 9px; background: #fff; overflow: hidden; }
.vca-qty .quantity { margin: 0; display: block; float: none; width: auto; }
.vca-qty .quantity label, .vca-qty .quantity .screen-reader-text, .vca-qty .rey-qtyBtn, .vca-qty .rey-qtyBtn-minus, .vca-qty .rey-qtyBtn-plus { display: none !important; }
.vca-qty input.qty {
	width: 34px !important; height: 32px; min-height: 0; margin: 0; padding: 0 !important; border: 0 !important; border-radius: 0; box-shadow: none;
	text-align: center; font-size: 14px; font-weight: 600; background: transparent !important; color: var(--vco-inkt);
	-moz-appearance: textfield; appearance: textfield;
}
.vca-qty input.qty::-webkit-outer-spin-button, .vca-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vca-qty input.qty:focus { outline: none; box-shadow: none; }
.vca-qty-btn { width: 32px; height: 32px; border: 0; background: none; color: var(--vco-accent); font-size: 16px; font-weight: 600; line-height: 1; padding: 0; cursor: pointer; box-shadow: none; display: grid; place-items: center; transition: background 0.12s; }
.vca-qty-btn:hover { background: var(--vco-blush); color: var(--vco-accent); }
.vca-qty-btn:disabled { color: #D6BFC6; cursor: default; background: none; }
.vca-qty--vast { border: 0; }
.vca-qty .quantity.hidden { display: none; }
.vca-verwijder a.remove {
	display: grid !important; place-items: center; width: 30px; height: 30px; border-radius: 8px;
	color: #B79AA3 !important; background: none; font-size: 0; line-height: 1;
	text-decoration: none; transition: background 0.15s, color 0.15s;
}
.vca-verwijder a.remove svg { color: inherit; }
.vca-verwijder a.remove:hover { background: #FBEFED; color: var(--vco-fout) !important; }
.vca-acties-form { height: 0; overflow: hidden; }
.vca-update { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.vca-verzending { margin-top: 16px; }
.vca-verzending .vco-keuze { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); color: #fff; padding: 12px 14px; }
.vca-verzending .vco-keuze .vco-omschrijving { color: var(--vco-aside-muted); }
.vca-verzending .vco-keuze.vco-aan, .vca-verzending .vco-keuze:has(input:checked) { border-color: #fff; background: rgba(255, 255, 255, 0.12); }
.vca-verzending .vco-rondje { border-color: rgba(255, 255, 255, 0.5); }
.vca-verzending .vco-keuze.vco-aan .vco-rondje, .vca-verzending .vco-keuze:has(input:checked) .vco-rondje { border-color: #fff; }
.vca-verzending .vco-rondje::after { background: #fff; }
.vca-verzending .vco-prijs--gratis { color: #9FE0C2; }
.vca-verzending .vco-pakket { color: var(--vco-aside-muted); }
.vco-bestemming, .vca-verzending .vco-shipping-leeg { font-size: 12.5px; color: var(--vco-aside-muted); margin: 10px 0 0; }
.vco-bestemming strong { color: #fff; font-weight: 500; }
.vca-calc { margin-top: 10px; font-size: 13px; }
.vca-calc .shipping-calculator-button { color: #fff; text-decoration: underline; font-size: 12.5px; }
.vca-calc .shipping-calculator-form { margin-top: 10px; }
.vca-calc .form-row { margin: 0 0 8px; }
.vca-calc input, .vca-calc select, .vca-calc .select2-container .select2-selection--single {
	width: 100%; min-height: 44px; padding: 10px 12px; border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.25); background: rgba(255, 255, 255, 0.08); color: #fff; font-size: 13.5px;
}
.vca-calc .select2-container--default .select2-selection--single .select2-selection__rendered { color: #fff; line-height: 22px; padding: 0; }
.vca-calc button { margin-top: 6px; padding: 10px 16px; border-radius: 10px; border: 0; background: rgba(255, 255, 255, 0.14); color: #fff; font-weight: 600; font-size: 13px; cursor: pointer; }
.vca-afrekenen { margin-top: 20px; }
.vca-afrekenen .vco-plaats { background: #fff !important; color: var(--vco-accent) !important; font-weight: 700; font-size: 15px; padding: 17px !important; }
.vca-afrekenen .vco-plaats:hover { background: #fff !important; color: var(--vco-accent) !important; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18); }
.vca-afrekenen-sub { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; color: var(--vco-aside-muted); margin: 12px 0 0; text-align: center; }
.vca-aside .vco-trust { flex-direction: column; align-items: flex-start; gap: 9px; margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.14); color: rgba(255, 255, 255, 0.72); justify-content: flex-start; }
.vca-aside .vco-trust svg { color: #9FE0C2; }
.vca-leeg { text-align: center; padding: 56px 28px; max-width: 560px; margin: 0 auto; }
.vca-leeg-icoon { width: 60px; height: 60px; border-radius: 50%; background: var(--vco-blush); display: grid; place-items: center; margin: 0 auto 18px; color: var(--vco-accent); }
.vca .vca-leeg-titel { font-size: 19px; font-weight: 600; margin: 0 0 8px; padding: 0 !important; background: none !important; border: 0 !important; color: var(--vco-inkt) !important; }
.vca .vca-leeg-titel::before { display: none !important; }
.vca-leeg-tekst { font-size: 14px; color: var(--vco-inkt-zacht); margin: 0 auto 20px; max-width: 420px; }
.vca-leeg .return-to-shop { margin: 0; }
.vca-leeg-knop { display: inline-flex; width: auto; padding: 13px 26px !important; font-size: 14px; }
.vca-cross { margin: 0 0 26px; }
.vca-cross-titel { font-size: 17px; font-weight: 600; margin: 0 0 4px; color: var(--vco-inkt); }
.vca-cross-sub { font-size: 13px; color: var(--vco-inkt-zacht); margin: 0 0 16px; }
.vca-cross .cross-sells > h2 { display: none; }
.vca-cross .cross-sells { margin: 0; }
.vca-cross-rij--preview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.vca-suggestie { background: var(--vco-ivoor); border: 1px solid var(--vco-lijn); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.vca-suggestie-thumb { display: block; width: 100%; height: 86px; border-radius: 9px; background: linear-gradient(160deg, #FBF2F0, #EAD3CE); overflow: hidden; }
.vca-suggestie-thumb img { width: 100%; height: 100%; object-fit: cover; }
.vca-suggestie-naam { font-size: 13px; font-weight: 600; line-height: 1.35; min-height: 36px; }
.vca-suggestie-onder { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.vca-suggestie-prijs { font-size: 13.5px; font-weight: 700; }
.vca-suggestie-prijs s { font-weight: 400; color: var(--vco-inkt-zacht); font-size: 11.5px; margin-right: 5px; }
.vca-suggestie button { border: 1.5px solid var(--vco-accent); background: none; color: var(--vco-accent); border-radius: 8px; padding: 7px 12px; font-weight: 600; font-size: 12.5px; cursor: pointer; white-space: nowrap; }

/* --- Bedankpagina --- */
.vco-ty-kop { text-align: center; max-width: 560px; margin: 0 auto 44px; }
.vco-ty-vinkje {
	width: 76px; height: 76px; border-radius: 50%;
	background: var(--vco-succes-licht); color: var(--vco-succes);
	display: grid; place-items: center; margin: 0 auto 22px;
	animation: vco-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.vco-ty-vinkje--fout { background: #FBEFED; color: var(--vco-fout); font-size: 34px; font-weight: 700; }
@keyframes vco-pop { from { transform: scale(0.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .vco-ty-vinkje { animation: none; } }
.vco-ty-titel { font-weight: 600; font-size: 27px; line-height: 1.2; margin: 0 0 10px; color: var(--vco-inkt); }
.vco-ty-tekst { font-size: 14.5px; color: var(--vco-inkt-zacht); margin: 0; }
.vco-ty-tekst b { color: var(--vco-inkt); font-weight: 600; }
.vco-ty-acties { margin-top: 18px; display: flex; gap: 14px; justify-content: center; align-items: center; flex-wrap: wrap; }
.vco-ty-link { color: var(--vco-accent); text-decoration: underline; font-size: 14px; }
.vco-ordernr {
	display: inline-flex; align-items: center; gap: 9px; margin-top: 18px;
	background: var(--vco-ivoor); border: 1px solid var(--vco-lijn); border-radius: 99px;
	padding: 9px 18px; font-size: 13.5px; font-weight: 600; color: var(--vco-accent);
}
.vco-ordernr svg { color: var(--vco-inkt-zacht); }
.vco-ty-h2 { font-size: 18px; margin: 0 0 20px; }
.vco-tijdlijn { display: flex; flex-direction: column; }
.vco-fase { display: flex; gap: 16px; position: relative; padding-bottom: 26px; }
.vco-fase:last-child { padding-bottom: 0; }
.vco-fase::before { content: ""; position: absolute; left: 13px; top: 30px; bottom: 2px; width: 2px; background: var(--vco-lijn); }
.vco-fase:last-child::before { display: none; }
.vco-fase--klaar::before { background: var(--vco-succes); }
.vco-stip {
	flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; z-index: 1; position: relative;
	background: var(--vco-blush); border: 2px solid var(--vco-lijn); color: var(--vco-inkt-zacht);
}
.vco-fase--klaar .vco-stip { background: var(--vco-succes); border-color: var(--vco-succes); color: #fff; }
.vco-fase--actief .vco-stip { background: #fff; border-color: var(--vco-accent); color: var(--vco-accent); }
.vco-fase--actief .vco-stip::after { content: ""; position: absolute; inset: -2px; border-radius: 50%; border: 2px solid var(--vco-accent); animation: vco-puls 1.8s ease-out infinite; }
@keyframes vco-puls { from { transform: scale(1); opacity: 0.6; } to { transform: scale(1.7); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .vco-fase--actief .vco-stip::after { display: none; } }
.vco-fase-titel { font-weight: 600; font-size: 14.5px; }
.vco-fase--actief .vco-fase-titel { color: var(--vco-accent); }
.vco-fase-sub { font-size: 13px; color: var(--vco-inkt-zacht); margin-top: 2px; }
.vco-track { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; background: var(--vco-accent); color: #fff; padding: 10px 18px; border-radius: 9px; font-size: 13px; font-weight: 600; text-decoration: none; }
.vco-track--uit { background: var(--vco-blush); color: var(--vco-inkt-zacht); }
.vco-twee { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.vco-gegeven h3 { font-size: 12px; font-weight: 600; letter-spacing: 0.04em; color: var(--vco-inkt-zacht); margin: 0 0 8px; }
.vco-gegeven h3.vco-gegeven-later { margin-top: 18px; }
.vco-gegeven p { font-size: 14px; line-height: 1.6; margin: 0; color: var(--vco-inkt); }
.vco-betaalregel { display: flex; align-items: center; gap: 9px; }
.vco-ty-notitie { font-size: 13.5px; color: var(--vco-inkt-zacht); margin: 18px 0 0; }
.vco-ty-gateway:empty { display: none; }
.vco-ty-gateway { margin-top: 18px; font-size: 14px; }
.vco-hulp { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vco-hulpkaart { border: 1.5px solid var(--vco-lijn); border-radius: 12px; padding: 18px; display: flex; gap: 14px; align-items: flex-start; text-decoration: none; color: var(--vco-inkt); transition: border-color 0.15s, box-shadow 0.15s; }
a.vco-hulpkaart:hover { border-color: #D9B9C2; box-shadow: var(--vco-schaduw); color: var(--vco-inkt); }
.vco-hulp-icoon { flex: none; width: 38px; height: 38px; border-radius: 10px; background: var(--vco-blush); display: grid; place-items: center; color: var(--vco-accent); }
.vco-hulp-titel { display: block; font-weight: 600; font-size: 14px; }
.vco-hulp-sub { display: block; font-size: 12.5px; color: var(--vco-inkt-zacht); margin-top: 3px; }
.vco-ty-extra:empty { display: none; }
.vco-ty-extra { margin-top: 22px; font-size: 14px; }
.vco-ty-extra .woocommerce-order-details, .vco-ty-extra .woocommerce-customer-details { display: none; }
.vco-factuur {
	display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; margin-top: 20px;
	background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.22); color: #fff !important; border-radius: 10px;
	padding: 13px; font-weight: 600; font-size: 13.5px; text-decoration: none; transition: background 0.15s;
}
.vco-factuur:hover { background: rgba(255, 255, 255, 0.2); }

/* --- Responsief --- */
@media (max-width: 980px) {
	.vco-grid, .vca .woocommerce { grid-template-columns: 1fr; gap: 0; }
	.vca .woocommerce > .cart-collaterals { grid-column: 1; grid-row: auto; margin: 0 0 26px; }
	.vco-aside { position: static; order: -1; margin-bottom: 24px; border-radius: 14px; padding: 24px 22px; }
	.vco-ty-grid .vco-aside { order: -1; }
	.vca-aside { position: static; border-radius: 14px; padding: 24px 22px; }
	.vco-producten { max-height: none; }
	.vco-mob-toggle {
		display: flex; width: 100%; align-items: center; justify-content: space-between;
		background: none; border: 0; box-shadow: none; padding: 0; margin: 0;
		color: #fff; font-weight: 600; font-size: 15px; cursor: pointer; text-transform: none;
	}
	.vco-mob-toggle svg { transition: transform 0.2s; }
	.vco-aside .vco-aside-inner .vco-aside-kop { display: none; }
	.vco-aside.vco-dicht .vco-aside-inner { display: none; }
	.vco-aside.vco-dicht .vco-mob-toggle svg { transform: rotate(180deg); }
	.vco-aside:not(.vco-dicht) .vco-aside-inner { margin-top: 12px; }
}
@media (max-width: 640px) {
	.vco, .vca { --vco-pad: 20px; }
	.vco-blok-titel { font-size: 19px; }
	.vca-titel { font-size: 22px; }
	.vco-ty-titel { font-size: 23px; }
	.vco .woocommerce-billing-fields__field-wrapper,
	.vco .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	.vco .form-row.form-row-first, .vco .form-row.form-row-last { grid-column: 1 / -1; }
	.vco-stap-lijn { width: 18px; }
	.vco-stappen { font-size: 12px; }
	.vca-item { grid-template-columns: 56px minmax(0, 1fr); padding: 16px; }
	.vca-thumb { width: 56px; height: 56px; }
	.vca-rechts { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; }
	.vco-twee, .vco-hulp { grid-template-columns: 1fr; }
	.vca-cross-rij--preview { grid-template-columns: 1fr 1fr; }
	.vco-trust { gap: 14px; }
}
@media (max-width: 460px) {
	.vca-cross-rij--preview { grid-template-columns: 1fr; }
}

/* ============================================================
   Lettertype (Montserrat, instelbaar via de widget) — geforceerd
   ============================================================ */
.vco, .vca { --vco-font: "Montserrat", "Helvetica Neue", Arial, sans-serif; }
.vco, .vca,
.vco *:not(svg):not(path):not(circle):not(rect),
.vca *:not(svg):not(path):not(circle):not(rect) { font-family: var(--vco-font) !important; }
.vco .select2-container, .vca .select2-container { font-family: var(--vco-font) !important; }

/* ============================================================
   Rey-thema overrides (page-checkout / page-cart / forms)
   ============================================================ */
.vco form.woocommerce-checkout #customer_details,
.vco form.checkout #customer_details,
.woocommerce .vco form.woocommerce-checkout #customer_details {
	float: none !important; width: 100% !important; max-width: none !important;
	margin: 0 !important; padding: 0 !important; display: block !important;
}
.vco form.woocommerce-checkout #customer_details [class*="col-"] { flex-basis: auto !important; max-width: none !important; padding: 0 !important; }
.vco #order_review, .vco .woocommerce-checkout-review-order,
.woocommerce .vco form.woocommerce-checkout .woocommerce-checkout-review-order {
	float: none !important; width: 100% !important; max-width: none !important; margin: 0 !important; display: block !important;
}
.vco form.woocommerce-checkout::before, .vco form.woocommerce-checkout::after { display: none !important; }
.vco .vco-aside-inner { display: block !important; }
.vco .vco-mob-toggle { display: none !important; }
.vco #ship-to-different-address, .vco .checkout .col-2 h3#ship-to-different-address { float: none !important; width: 100% !important; clear: both !important; }
.vco .form-row, .vco p.form-row { margin-left: 0 !important; margin-right: 0 !important; }
.vco .form-row[style*="display: none"], .vco .form-row[style*="display:none"] { display: none !important; }
.vco .form-row input::placeholder, .vco .form-row textarea::placeholder, .vco .form-row input::-webkit-input-placeholder { color: transparent !important; opacity: 0 !important; }
.vco ul.payment_methods li.wc_payment_method > label img,
.vco #payment ul.payment_methods .wc_payment_method img { margin: 0 !important; max-height: 28px !important; max-width: 60px !important; position: static !important; }
.vco ul.payment_methods li.wc_payment_method > input[type="radio"],
.vco #payment ul.payment_methods .wc_payment_method input[type="radio"] { position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; margin: 0 !important; }
.vco #payment .place-order button[type="submit"]::before, .vco #place_order::before { display: none !important; content: none !important; }
.vco #payment .place-order #place_order, .vco #place_order { margin: 0 !important; padding: 18px !important; }
.vco #payment ul.payment_methods li.wc_payment_method .wc_payment_method-title { display: inline !important; }
.vco .vco-blok-titel, .vco .vco-aside-kop, .vco .vco-ty-titel, .vca .vca-titel, .vca .vco-aside-kop { text-transform: none !important; letter-spacing: normal !important; }
.vca .cart_totals, .woocommerce-cart .vca .cart-collaterals .cart_totals { float: none !important; width: 100% !important; max-width: none !important; }
.vca .woocommerce-cart-form .quantity, .vca .vca-qty .quantity { width: auto !important; max-width: none !important; }
.vca .vca-qty .rey-qtyField, .vca .vca-qty div.rey-qtyField { width: auto !important; position: static !important; display: inline-flex !important; align-items: center; }
.vca .vca-qty .rey-qtyField .qty { border: 0 !important; width: 34px !important; }
.vca .vca-qty .cartBtnQty-control, .vca .vca-qty .rey-qtySelect { display: none !important; }
.vca .vca-qty .rey-qtySelect ~ input[name^="cart"] { display: block !important; }
.vca .vca-verwijder a.remove { position: static !important; opacity: 1 !important; }
.vca .vca-verwijder a.remove svg { opacity: 1 !important; }
.vca .woocommerce-cart-form__actions, .vca .vca-update, .vca .woocommerce-cart-form .button[name="update_cart"] { display: none !important; }
@media (max-width: 980px) {
	.vco .vco-mob-toggle { display: flex !important; }
	.vco .vco-aside.vco-dicht .vco-aside-inner { display: none !important; }
}

/* ============================================================
   Betaalblok (gateway-velden, bijv. in3) — ruimte en afronding
   ============================================================ */
.vco #payment div.payment_box, .vco .payment_box { padding: 18px 18px 6px !important; border-radius: 12px !important; margin: 10px 0 12px !important; }
.vco .payment_box > p:first-child, .vco .payment_box > div:first-child > p:first-child, .vco .payment_box .vco-betaal-intro { font-size: 13.5px; line-height: 1.5; margin: 0 0 14px !important; color: var(--vco-inkt); }
.vco .payment_box input::placeholder, .vco .payment_box input::-webkit-input-placeholder { color: #A89399 !important; opacity: 1 !important; }
.vco .payment_box p, .vco .payment_box .form-row, .vco .payment_box fieldset { margin: 0 0 14px !important; padding: 0 !important; border: 0; }
.vco .payment_box .form-row > label, .vco .payment_box label { position: static !important; display: block !important; font-size: 12.5px !important; color: var(--vco-inkt-zacht) !important; margin: 0 0 6px !important; white-space: normal; max-width: none; }
.vco .payment_box .form-row .woocommerce-input-wrapper { display: block; }
.vco .payment_box select,
.vco .payment_box input.input-text,
.vco .payment_box input[type="text"],
.vco .payment_box input[type="tel"],
.vco .payment_box input[type="email"],
.vco .payment_box input[type="number"],
.vco .payment_box input[type="date"] {
	width: 100% !important; min-height: 50px !important; height: auto; padding: 12px 14px !important; margin: 0;
	border: 1.5px solid var(--vco-lijn) !important; border-radius: 10px !important; background: #fff !important;
	font-size: 14.5px; color: var(--vco-inkt); box-shadow: none !important; line-height: 1.3;
}
.vco .payment_box input:focus, .vco .payment_box select:focus { outline: none; border-color: var(--vco-accent) !important; box-shadow: 0 0 0 3px rgba(110, 18, 48, 0.08) !important; }
.vco .payment_box .form-row.woocommerce-validated::after { top: auto; bottom: 18px; }
.vco .payment_box .mollie-components, .vco .payment_box .mollie-component { margin: 0 0 12px; }
.vco .payment_box .mollie-component { border: 1.5px solid var(--vco-lijn); border-radius: 10px; padding: 12px 14px; background: #fff; min-height: 50px; }
.vco .payment_box .mollie-component.has-focus { border-color: var(--vco-accent); box-shadow: 0 0 0 3px rgba(110, 18, 48, 0.08); }
.vco .payment_box .mollie-components label { margin: 0 0 6px !important; }

/* ============================================================
   Datumkiezer
   ============================================================ */
.vco .vco-dp { position: relative; }
.vco .vco-dp-native, .vco .payment_box input.vco-dp-native { position: absolute !important; left: 0; top: 0; width: 1px !important; height: 1px !important; min-height: 0 !important; opacity: 0; pointer-events: none; padding: 0 !important; border: 0 !important; margin: 0; }
.vco .vco-dp-proxy, .vco .payment_box input.vco-dp-proxy { padding-right: 44px !important; cursor: pointer; }
.vco .vco-dp-proxy.vco-dp-invalid { border-color: var(--vco-fout) !important; }
.vco .vco-dp-icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--vco-inkt-zacht); cursor: pointer; display: inline-flex; }
.vco .vco-dp-pop {
	position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; width: 300px; max-width: 100%;
	background: #fff; border: 1.5px solid var(--vco-lijn); border-radius: 14px; padding: 14px;
	box-shadow: 0 14px 40px rgba(62, 10, 27, 0.16);
}
.vco .vco-dp-head { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; }
.vco .vco-dp-nav {
	flex: none; width: 32px; height: 32px; border-radius: 8px; border: 1.5px solid var(--vco-lijn); background: #fff;
	color: var(--vco-accent); display: grid; place-items: center; cursor: pointer; padding: 0; box-shadow: none;
}
.vco .vco-dp-nav:hover { background: var(--vco-blush); }
.vco .vco-dp-select, .vco .payment_box select.vco-dp-select {
	flex: 1; min-height: 32px !important; height: 32px; padding: 0 26px 0 10px !important; margin: 0;
	border: 1.5px solid var(--vco-lijn) !important; border-radius: 8px !important; background: #fff !important;
	font-size: 13px !important; font-weight: 600; color: var(--vco-inkt); cursor: pointer; appearance: none; -webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' fill='none'%3E%3Cpath d='M1 1.5 5 5.5 9 1.5' stroke='%237A5E66' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 9px center !important;
}
.vco .vco-dp-select--jaar { flex: 0 0 84px; }
.vco .vco-dp-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.vco .vco-dp-wd { text-align: center; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--vco-inkt-zacht); padding: 4px 0 6px; }
.vco .vco-dp-leeg { display: block; }
.vco .vco-dp-dag {
	width: 100%; aspect-ratio: 1 / 1; min-height: 34px; border: 0; border-radius: 50%; background: none; padding: 0;
	font-size: 13.5px; font-weight: 500; color: var(--vco-inkt); cursor: pointer; display: grid; place-items: center; box-shadow: none;
	transition: background 0.12s, color 0.12s;
}
.vco .vco-dp-dag:hover { background: var(--vco-blush); color: var(--vco-accent); }
.vco .vco-dp-dag--vandaag { box-shadow: inset 0 0 0 1.5px var(--vco-lijn); }
.vco .vco-dp-dag--gekozen, .vco .vco-dp-dag--gekozen:hover { background: var(--vco-accent); color: #fff; font-weight: 600; }
.vco .vco-dp-dag:disabled { opacity: 0.28; cursor: default; background: none; color: var(--vco-inkt); }

/* ============================================================
   Bestelkolom — upgrade (wint van Elementor-kit h2 en Rey-knoppen)
   ============================================================ */
.vco .vco-aside, .vca .vca-aside {
	background-color: var(--vco-aside-bg);
	background-image: radial-gradient(120% 70% at 100% 0%, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 60%);
	padding: 28px 26px 26px;
}
.vco .vco-aside-kop, .vca .vco-aside-kop, .vco .vco-aside h2.vco-aside-kop, .vca .vca-aside h2.vco-aside-kop {
	font-family: var(--vco-font) !important; font-size: 21px !important; font-weight: 600 !important; line-height: 1.2 !important;
	letter-spacing: 0 !important; text-transform: none !important; color: #fff !important; margin: 0 !important; padding: 0;
	display: flex !important; align-items: center; justify-content: space-between; gap: 10px; white-space: nowrap;
}
.vco .vco-aantal, .vca .vco-aantal {
	font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, 0.85); white-space: nowrap;
	border: 1px solid rgba(255, 255, 255, 0.22); background: rgba(255, 255, 255, 0.08); border-radius: 99px; padding: 4px 10px; line-height: 1.2;
}
.vco .vco-producten { margin: 18px 0 4px; display: flex; flex-direction: column; gap: 0; max-height: 360px; overflow: auto; padding-right: 4px; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.25) transparent; }
.vco .vco-product { display: flex; gap: 13px; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin: 0; }
.vco .vco-product:last-child { border-bottom: 0; }
.vco .vco-thumb { width: 54px; height: 54px; border-radius: 11px; background: #fff; border: 1px solid rgba(255, 255, 255, 0.35); overflow: visible; }
.vco .vco-thumb img { border-radius: 10px; padding: 2px; background: #fff; }
.vco .vco-qty { top: -7px; right: -7px; box-shadow: 0 0 0 2px var(--vco-aside-bg); }
.vco .vco-naam { font-size: 13.5px; font-weight: 500; line-height: 1.35; color: #fff; }
.vco .vco-naam .woocommerce-mini-cart-item-title { display: inline; margin: 0; padding: 0; font: inherit; color: inherit; }
.vco .vco-prijzen { text-align: right; white-space: nowrap; }
.vco .vco-oud { font-size: 11.5px; color: rgba(255, 255, 255, 0.5); text-decoration: line-through; }
.vco .vco-nieuw { font-size: 14px; font-weight: 600; color: #fff; }

/* Kortingscode */
.vco .vco-code, .vca .vco-code { display: flex; gap: 8px; margin: 16px 0 4px; }
.vco .vco-code input, .vca .vco-code input, .vco .vco-code input.vco-code-input, .vca .vco-code input.vco-code-input {
	flex: 1; min-width: 0; min-height: 46px !important; height: 46px; padding: 0 14px !important; margin: 0;
	border-radius: 10px !important; border: 1px solid rgba(255, 255, 255, 0.24) !important; background: rgba(255, 255, 255, 0.08) !important;
	color: #fff !important; font-size: 14px; box-shadow: none !important;
}
.vco .vco-code input::placeholder, .vca .vco-code input::placeholder { color: rgba(255, 255, 255, 0.55) !important; opacity: 1 !important; }
.vco .vco-code input:focus, .vca .vco-code input:focus { border-color: rgba(255, 255, 255, 0.6) !important; background: rgba(255, 255, 255, 0.12) !important; outline: none; }
.vco .vco-code button, .vca .vco-code button, .vco .vco-code .vco-code-knop, .vca .vco-code .vco-code-knop {
	flex: none; min-height: 46px !important; height: 46px; padding: 0 18px !important; margin: 0; border: 0 !important; border-radius: 10px !important; line-height: 1 !important;
	background: #fff !important; color: var(--vco-wijn) !important; font-family: var(--vco-font) !important; font-size: 13.5px !important; font-weight: 600 !important;
	text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; box-shadow: none !important; transition: background 0.15s, color 0.15s;
}
.vco .vco-code button:hover, .vca .vco-code button:hover, .vco .vco-code .vco-code-knop:hover, .vca .vco-code .vco-code-knop:hover { background: var(--vco-blush) !important; color: var(--vco-accent) !important; }
.vco .vco-code button:disabled, .vca .vco-code button:disabled { opacity: 0.6; cursor: wait; }

/* Totaalregels */
.vco .vco-lijn, .vca .vco-lijn { margin: 18px 0; background: rgba(255, 255, 255, 0.14); }
.vco .vco-totaalrij, .vca .vco-totaalrij { font-size: 14px; color: rgba(255, 255, 255, 0.78); margin: 0 0 10px; align-items: flex-start; }
.vco .vco-totaalrij .vco-waarde, .vca .vco-totaalrij .vco-waarde { color: #fff; font-weight: 500; }
.vco .vco-totaalrij.vco-korting .vco-waarde, .vca .vco-totaalrij.vco-korting .vco-waarde { color: #9FE0C2; font-weight: 600; }
.vco .vco-verzendlabel, .vca .vco-verzendlabel { font-size: 12px; color: rgba(255, 255, 255, 0.55); margin-top: 1px; }
.vco .vco-aside .vco-gratis, .vca .vca-aside .vco-gratis, .vco .vco-aside .vco-prijs--gratis, .vca .vca-aside .vco-prijs--gratis { color: #9FE0C2 !important; font-weight: 600; }
.vco .vco-eind, .vca .vco-eind { margin: 0; align-items: baseline; }
.vco .vco-eind .vco-label, .vca .vco-eind .vco-label { font-size: 15px; font-weight: 600; color: #fff; }
.vco .vco-eind .vco-waarde, .vca .vco-eind .vco-waarde { font-size: 26px; font-weight: 700; color: #fff; letter-spacing: -0.01em; }
.vco .vco-btw, .vca .vco-btw { font-size: 11.5px; color: rgba(255, 255, 255, 0.55); text-align: right; margin-top: 4px; }

/* Besparing */
.vco .vco-bespaard, .vca .vco-bespaard {
	margin: 16px 0 0; padding: 12px 14px 12px 48px; border-radius: 12px; background: var(--vco-blush); color: var(--vco-wijn);
	font-size: 13.5px; text-align: left; display: block; position: relative; line-height: 1.45;
}
.vco .vco-bespaard::before, .vca .vco-bespaard::before {
	content: ""; position: absolute; left: 14px; top: 50%; margin-top: -12px; width: 24px; height: 24px; border-radius: 50%; background-color: var(--vco-accent);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: center;
}
.vco .vco-bespaard b, .vca .vco-bespaard b { color: var(--vco-accent); font-weight: 700; white-space: nowrap; }

/* Verzendteller */
.vco .vco-levering, .vca .vco-levering {
	margin: 12px 0 0; padding: 12px 14px; border-radius: 12px; display: flex; gap: 11px; align-items: center;
	background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, 0.85);
}
.vco .vco-levering[hidden], .vca .vco-levering[hidden], .vco .vco-levering > [hidden], .vca .vco-levering > [hidden] { display: none !important; }
.vco .vco-levering-icoon, .vca .vco-levering-icoon { flex: none; width: 32px; height: 32px; border-radius: 50%; background: rgba(159, 224, 194, 0.16); color: #9FE0C2; display: grid; place-items: center; }
.vco .vco-levering svg, .vca .vco-levering svg { margin: 0; color: #9FE0C2; }
.vco .vco-levering b, .vca .vco-levering b { color: #fff; font-weight: 600; }

/* Beoordeling */
.vco .vco-beoordeling, .vca .vco-beoordeling { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 12.5px; color: rgba(255, 255, 255, 0.72); gap: 10px; }
.vco .vco-sterren svg, .vca .vco-sterren svg { width: 13px; height: 13px; }

@media (max-width: 980px) {
	.vco .vco-aside, .vca .vca-aside { padding: 22px 20px; }
	.vco .vco-producten { max-height: none; }
}

/* ============================================================
   Betaallogo's (assets/pay)
   ============================================================ */
.vco-betaaliconen { gap: 6px; align-items: center; }
.vco-betaaliconen img.vco-betaalicoon--logo, .vca img.vco-betaalicoon--logo, .vco img.vco-betaalicoon--logo {
	display: block; width: auto; height: 26px; padding: 0; border: 0; border-radius: 5px; background: none;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18); max-width: none;
}

/* ============================================================
   Koppen — winnen van Elementor-kit (h1/h2/h3 op body) en Rey
   ============================================================ */
.vco h1.vco-ty-titel {
	font-family: var(--vco-font) !important; font-size: 27px !important; font-weight: 600 !important; line-height: 1.2 !important;
	letter-spacing: 0 !important; text-transform: none !important; margin: 0 0 10px !important; color: var(--vco-inkt) !important;
}
.vco h2.vco-blok-titel {
	font-family: var(--vco-font) !important; font-size: 21px !important; font-weight: 600 !important; line-height: 1.2 !important;
	letter-spacing: 0.005em !important; text-transform: none !important; margin: 0 !important; color: var(--vco-inkt) !important;
}
.vco h2.vco-blok-titel.vco-ty-h2 { font-size: 18px !important; margin: 0 0 20px !important; }
.vco .vco-gegeven h3 {
	font-family: var(--vco-font) !important; font-size: 12px !important; font-weight: 600 !important; line-height: 1.4 !important;
	letter-spacing: 0.04em !important; text-transform: none !important; color: var(--vco-inkt-zacht) !important; margin: 0 0 8px !important;
}
.vco .vco-gegeven h3.vco-gegeven-later { margin-top: 18px !important; }
.vco h3, .vco h4, .vca h3, .vca h4 { font-family: var(--vco-font) !important; }
@media (max-width: 980px) {
	.vco h1.vco-ty-titel { font-size: 23px !important; }
	.vco h2.vco-blok-titel { font-size: 19px !important; }
}

/* Meldingen: Rey/WooCommerce-icoon links weghalen, nette kaart */
.vco .woocommerce-info::before, .vco .woocommerce-message::before, .vco .woocommerce-error::before,
.vca .woocommerce-info::before, .vca .woocommerce-message::before, .vca .woocommerce-error::before,
.vco .woocommerce-info::after, .vco .woocommerce-message::after, .vco .woocommerce-error::after { display: none !important; content: none !important; }
.vco .woocommerce-info > i, .vco .woocommerce-info > .rey-icon, .vco .woocommerce-message > i, .vco .woocommerce-message > .rey-icon { display: none !important; }
.vco .woocommerce-info, .vco .woocommerce-message, .vco .woocommerce-error, .vca .woocommerce-info, .vca .woocommerce-message, .vca .woocommerce-error { padding: 14px 18px !important; line-height: 1.55; }
.vco .vco-ty-gateway .woocommerce-info, .vco .vco-ty-gateway > p, .vco .vco-ty-gateway .woocommerce-thankyou-order-received {
	background: var(--vco-blush) !important; border: 1px solid var(--vco-lijn) !important; border-radius: 12px !important;
	padding: 14px 18px !important; margin: 0 !important; font-size: 14px; color: var(--vco-inkt) !important;
}
.vco .vco-ty-gateway > * + * { margin-top: 10px !important; }
.vco .vco-betaalregel img.vco-betaalicoon--logo { height: 24px; }

/* Mobiele samenvattingsknop in de bestelkolom: altijd witte tekst (Rey/Elementor kleuren knoppen donker) */
.vco .vco-aside .vco-mob-toggle, .vco .vco-aside .vco-mob-toggle *, .vco .vco-aside button.vco-mob-toggle {
	color: #fff !important; background: none !important; border: 0 !important; box-shadow: none !important;
	font-family: var(--vco-font) !important; font-size: 15px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important;
}
.vco .vco-aside .vco-mob-toggle .vco-mob-totaal { color: #fff !important; }
.vco .vco-aside .vco-mob-toggle svg { color: #fff !important; }

