/*
 * Cardivena – WooCommerce dark mapping (SPEC item 11).
 *
 * Maps every WooCommerce block UI used by the theme (mini-cart, cart, checkout, notices, order confirmation,
 * product collection cards, sorting, pagination, breadcrumbs, single product) onto the Cardivena design.
 * Plain CSS, no build step. Colours/radii come from theme.json (--wp--preset--color--*, --wp--custom--*) with
 * literal fallbacks, so the file also works standalone. WooCommerce ships light-theme colours with fairly high
 * specificity, hence the "body" prefix, doubled classes and a few !important on form-control colours.
 *
 * Contents
 *  0. Tokens
 *  1. Base text, links, headings inside Woo containers
 *  2. Buttons
 *  3. Form controls (text input, textarea, select, combobox, checkbox, radio)
 *  4. Mini-cart button + drawer
 *  5. Cart line items, prices, quantity selector
 *  6. Totals, coupon, panels, order summary
 *  7. Cart + checkout layout, steps, terms, place order
 *  8. Notices and validation errors
 *  9. Order confirmation
 * 10. Product collection cards, badges, stock, price
 * 11. Sorting, results count, pagination, breadcrumbs
 * 12. Single product (gallery, meta, tabs, related)
 * 13. Classic (shortcode) fallbacks
 * 14. Focus, skeletons, misc, reduced motion
 */

/* ==========================================================================
   0. Tokens
   ========================================================================== */
:root {
	--cvw-bg: var(--wp--preset--color--base, #0B0F0D);
	--cvw-black: var(--wp--preset--color--black, #050807);
	--cvw-surface: var(--wp--preset--color--surface, #13201B);
	--cvw-green-deep: var(--wp--preset--color--green-deep, #1B3A30);
	--cvw-green-glow: var(--wp--preset--color--green-glow, #3FBF9A);
	--cvw-green-mist: var(--wp--preset--color--green-mist, #8FE3C8);
	--cvw-gold: var(--wp--preset--color--gold, #C99A4E);
	--cvw-gold-light: var(--wp--preset--color--gold-light, #E8C37A);
	--cvw-parchment: var(--wp--preset--color--parchment, #EFE3C8);
	--cvw-sand: var(--wp--preset--color--sand, #CDBF9F);
	--cvw-stone: var(--wp--preset--color--stone, #B8AE95);
	--cvw-danger: var(--wp--preset--color--danger, #D4785F);
	--cvw-sale: var(--wp--preset--color--sale, #D9A15A);
	--cvw-error: var(--wp--custom--text--error, #E8A08C);

	--cvw-card: var(--wp--custom--surface--card, rgba(15, 24, 20, .88));
	--cvw-card-strong: var(--wp--custom--surface--card-strong, rgba(11, 15, 13, .94));
	--cvw-media: var(--wp--custom--surface--media, rgba(27, 58, 48, .28));
	--cvw-notice: var(--wp--custom--surface--notice, rgba(27, 58, 48, .5));
	--cvw-input: var(--wp--custom--surface--input, rgba(11, 15, 13, .6));
	--cvw-hover: var(--wp--custom--surface--hover, rgba(239, 227, 200, .06));
	--cvw-scrim: var(--wp--custom--scrim--drawer, rgba(5, 8, 7, .72));

	--cvw-line-gold: var(--wp--custom--line--gold-soft, rgba(201, 154, 78, .3));
	--cvw-line: var(--wp--custom--line--neutral, rgba(239, 227, 200, .12));
	--cvw-line-input: var(--wp--custom--line--input, rgba(239, 227, 200, .28));
	--cvw-line-danger: var(--wp--custom--line--danger, rgba(212, 120, 95, .6));

	--cvw-ring: var(--wp--custom--focus-ring, 0 0 0 3px rgba(143, 227, 200, .55));
	--cvw-r-sm: var(--wp--custom--radius--sm, 4px);
	--cvw-r-btn: var(--wp--custom--radius--button, 5px);
	--cvw-r-card: var(--wp--custom--radius--card, 8px);
	--cvw-ease: var(--wp--custom--ease, cubic-bezier(.22, .61, .36, 1));
	--cvw-fast: var(--wp--custom--duration--fast, 160ms);

	--cvw-font-display: var(--wp--preset--font-family--display, 'IM Fell English SC', 'Cinzel', Georgia, serif);
	--cvw-font-sans: var(--wp--preset--font-family--sans, 'Poppins', system-ui, sans-serif);

	/* WooCommerce reads this for row separators. */
	--wc-separator-color: var(--cvw-line);
}

/* Chevron used by selects (gold-light, url-encoded SVG). */
:root {
	--cvw-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23E8C37A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* ==========================================================================
   1. Base text, links, headings inside Woo containers
   ========================================================================== */
body :is(
	.wp-block-woocommerce-cart,
	.wp-block-woocommerce-checkout,
	.wp-block-woocommerce-mini-cart-contents,
	.wc-block-mini-cart__drawer,
	.wc-block-components-drawer,
	.wp-block-woocommerce-order-confirmation-status,
	.wc-block-order-confirmation-summary,
	.wc-block-order-confirmation-totals,
	.wp-block-woocommerce-product-collection,
	.wp-block-woocommerce-single-product,
	.woocommerce
) {
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
}

body :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-mini-cart-contents) {
	font-size: 17px;
	line-height: 1.6;
}

/* Links */
body :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-mini-cart-contents, .wc-block-components-drawer, .wp-block-woocommerce-order-confirmation-status, .wc-block-order-confirmation-totals, .woocommerce) a:not(.wp-block-button__link):not(.wc-block-components-button):not(.button) {
	color: var(--cvw-gold-light);
	text-decoration: underline;
	text-decoration-color: var(--cvw-line-gold);
	text-underline-offset: 4px;
	transition: color var(--cvw-fast) var(--cvw-ease), text-decoration-color var(--cvw-fast) var(--cvw-ease);
}
body :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-mini-cart-contents, .wc-block-components-drawer, .wp-block-woocommerce-order-confirmation-status, .wc-block-order-confirmation-totals, .woocommerce) a:not(.wp-block-button__link):not(.wc-block-components-button):not(.button):hover {
	color: var(--cvw-parchment);
	text-decoration-color: currentColor;
}

/* Headings */
body :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-mini-cart-contents, .wp-block-woocommerce-order-confirmation-status) :is(h1, h2, h3, h4) {
	color: var(--cvw-parchment);
}
body .wc-block-components-title,
body .wc-block-components-checkout-step__title,
body .wc-block-cart__totals-title,
body .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--cvw-font-sans);
	font-weight: 600;
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: .02em;
	text-transform: none;
	color: var(--cvw-parchment);
}
body .wc-block-cart__totals-title {
	display: block;
	padding: 0 0 12px;
	text-align: left;
	font-size: 18px;
}
body .wc-block-components-checkout-step__description,
body .wc-block-components-checkout-step__description-payments-aligned {
	font-size: 16px;
	color: var(--cvw-sand);
}

/* Money amounts */
body .wc-block-formatted-money-amount,
body .wc-block-components-formatted-money-amount {
	color: var(--cvw-parchment);
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

/* ==========================================================================
   2. Buttons (Poppins 600 uppercase, radius 5px, gold primary / gold outline secondary)
   ========================================================================== */
html body :is(
	.wc-block-components-button:not(.is-link),
	.wp-block-woocommerce-product-button .wp-block-button__link,
	.wc-block-mini-cart__shopping-button .wp-block-button__link,
	.wc-block-components-product-button__button,
	.wc-block-components-checkout-place-order-button,
	.wc-block-cart__submit-button,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce #respond input#submit
):not(.text):not(.wc-block-components-drawer__close):not(.wc-block-components-panel__button):not(.wc-block-components-totals-coupon-link) {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	height: auto;
	padding: 12px 32px;
	border: 1px solid var(--cvw-gold);
	border-radius: var(--cvw-r-btn);
	background: var(--cvw-gold);
	background-image: none;
	color: var(--cvw-bg);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	white-space: normal;
	cursor: pointer;
	box-shadow: none;
	transition: background-color var(--cvw-fast) var(--cvw-ease), color var(--cvw-fast) var(--cvw-ease), border-color var(--cvw-fast) var(--cvw-ease), transform var(--cvw-fast) var(--cvw-ease);
}
html body :is(
	.wc-block-components-button:not(.is-link),
	.wp-block-woocommerce-product-button .wp-block-button__link,
	.wc-block-mini-cart__shopping-button .wp-block-button__link,
	.wc-block-components-product-button__button,
	.wc-block-components-checkout-place-order-button,
	.wc-block-cart__submit-button,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button
):not(.text):not(.wc-block-components-drawer__close):not(.wc-block-components-panel__button):not(.wc-block-components-totals-coupon-link):hover:not(:disabled):not([aria-disabled="true"]) {
	background: var(--cvw-gold-light);
	border-color: var(--cvw-gold-light);
	color: var(--cvw-bg);
	opacity: 1;
}
html body :is(.wc-block-components-button:not(.is-link), .wp-block-woocommerce-product-button .wp-block-button__link, .wc-block-components-product-button__button, .woocommerce a.button, .woocommerce button.button):active {
	transform: translateY(1px);
}
html body :is(.wc-block-components-button:not(.is-link), .wc-block-components-product-button__button, .woocommerce a.button, .woocommerce button.button):is(:disabled, [aria-disabled="true"]) {
	opacity: .55;
	cursor: not-allowed;
}
html body .wc-block-components-button:not(.is-link):disabled .wc-block-components-button__text {
	opacity: 1;
}
html body .wc-block-components-button__text {
	color: inherit;
}

/* Secondary: gold outline */
html body :is(
	.wc-block-components-button.outlined,
	.wc-block-components-button.is-style-outline,
	.wp-block-woocommerce-mini-cart-cart-button-block .wc-block-components-button,
	.wc-block-mini-cart__shopping-button .wp-block-button__link,
	.wp-block-woocommerce-product-button.is-style-outline .wp-block-button__link,
	.wc-block-components-checkout-return-to-cart-button,
	.woocommerce a.button.alt.outline
):not(.is-link) {
	background: transparent;
	color: var(--cvw-gold-light);
	border-color: var(--cvw-gold);
}
html body :is(
	.wc-block-components-button.outlined,
	.wc-block-components-button.is-style-outline,
	.wp-block-woocommerce-mini-cart-cart-button-block .wc-block-components-button,
	.wc-block-mini-cart__shopping-button .wp-block-button__link,
	.wp-block-woocommerce-product-button.is-style-outline .wp-block-button__link
):not(.is-link):hover:not(:disabled) {
	background: transparent;
	border-color: var(--cvw-gold-light);
	color: var(--cvw-parchment);
	box-shadow: inset 0 0 0 1px var(--cvw-gold-light);
}
html body .wc-block-components-button.outlined:not(:focus),
html body .wc-block-components-button.is-style-outline:not(:focus) {
	box-shadow: none;
}

/* Text-style buttons (coupon toggle, change address, remove item, "Return to cart") */
html body :is(
	.wc-block-components-button.is-link,
	.wc-block-cart-item__remove-link,
	.wc-block-components-totals-shipping__change-address__link,
	.wc-block-components-totals-coupon-link,
	.wc-block-components-address-card__edit,
	.wc-block-components-address-form__address_2-toggle,
	.wc-block-components-checkout-return-to-cart-button,
	.wc-block-cart-item__save-for-later-link
) {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 6px 2px;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--cvw-gold-light);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: underline;
	text-decoration-color: var(--cvw-line-gold);
	text-underline-offset: 5px;
	cursor: pointer;
	transition: color var(--cvw-fast) var(--cvw-ease), text-decoration-color var(--cvw-fast) var(--cvw-ease);
}
html body :is(
	.wc-block-components-button.is-link,
	.wc-block-cart-item__remove-link,
	.wc-block-components-totals-shipping__change-address__link,
	.wc-block-components-totals-coupon-link,
	.wc-block-components-address-card__edit,
	.wc-block-components-address-form__address_2-toggle,
	.wc-block-components-checkout-return-to-cart-button,
	.wc-block-cart-item__save-for-later-link
):hover {
	background: none;
	color: var(--cvw-parchment);
	text-decoration-color: currentColor;
}
html body .wc-block-cart-item__remove-link {
	color: var(--cvw-sand);
	font-size: 15px;
}
html body .wc-block-components-checkout-return-to-cart-button {
	border: 0;
	min-height: 44px;
	padding: 6px 2px;
}
html body .wc-block-components-checkout-return-to-cart-button svg {
	fill: currentColor;
}

/* Full-width main actions */
body :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-mini-cart__footer-actions .wc-block-components-button, .wc-block-mini-cart__shopping-button .wp-block-button__link) {
	width: 100%;
}
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
	min-height: 60px;
	font-size: 17px;
}

/* ==========================================================================
   3. Form controls
   ========================================================================== */
/* --- text inputs, floating labels (label sits inside a 56px field) --- */
body .wc-block-components-text-input,
body .wc-block-components-form .wc-block-components-text-input {
	margin-top: 16px;
	line-height: 0;
}
body .wc-block-components-text-input :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="url"], input[type="search"]),
body .wc-block-components-form .wc-block-components-text-input :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="url"], input[type="search"]),
body .has-dark-controls .wc-block-components-form .wc-block-components-text-input :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="url"], input[type="search"]),
body .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body .wc-block-components-country-input input,
body .wc-block-components-state-input input,
body .wc-block-components-totals-coupon__input input {
	box-sizing: border-box;
	width: 100%;
	height: 56px !important;
	min-height: 56px;
	margin: 0;
	padding: 24px 14px 6px !important;
	border: 1px solid var(--cvw-line-input) !important;
	border-radius: var(--cvw-r-sm) !important;
	background: var(--cvw-input) !important;
	background-color: var(--cvw-input) !important;
	color: var(--cvw-parchment) !important;
	caret-color: var(--cvw-gold-light);
	font-family: var(--cvw-font-sans);
	font-size: 17px !important;
	line-height: 24px !important;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none;
	transition: border-color var(--cvw-fast), box-shadow var(--cvw-fast);
}
body .wc-block-components-text-input input:focus,
body .wc-block-components-form .wc-block-components-text-input input:focus,
body .has-dark-controls .wc-block-components-form .wc-block-components-text-input input:focus,
body .wc-block-components-combobox input.components-combobox-control__input:focus {
	outline: none;
	border: 1px solid var(--cvw-gold) !important;
	border-color: var(--cvw-gold) !important;
	background-color: var(--cvw-input) !important;
	color: var(--cvw-parchment) !important;
	box-shadow: var(--cvw-ring) !important;
	padding: 24px 14px 6px !important;
}
body .wc-block-components-text-input input::placeholder {
	color: var(--cvw-stone);
	opacity: 1;
}
/* Browser autofill stays dark */
body .wc-block-components-text-input input:-webkit-autofill,
body .wc-block-components-text-input input:-webkit-autofill:hover,
body .wc-block-components-text-input input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--cvw-parchment);
	caret-color: var(--cvw-parchment);
	-webkit-box-shadow: 0 0 0 100px #0F1814 inset;
	box-shadow: 0 0 0 100px #0F1814 inset;
	transition: background-color 9999s ease-out;
}

/* Label: 17px inside the field, shrinks to ~14.5px above the value when active */
body .wc-block-components-text-input label,
body .wc-block-components-form .wc-block-components-text-input label,
body .has-dark-controls .wc-block-components-text-input label {
	left: 14px;
	top: 28px;
	max-width: calc(100% - 28px);
	color: var(--cvw-sand) !important;
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	line-height: 22px;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	pointer-events: none;
}
body .wc-block-components-text-input.is-active label,
body .wc-block-components-form .wc-block-components-text-input.is-active label,
body .wc-block-components-text-input input:-webkit-autofill + label {
	top: 6px;
	transform: scale(.86);
	color: var(--cvw-sand) !important;
}
body .wc-block-components-text-input.is-active input,
body .wc-block-components-text-input input:-webkit-autofill {
	padding: 24px 14px 6px !important;
}

/* --- error state (validation errors #E8A08C) --- */
body .wc-block-components-text-input.has-error input,
body .wc-block-components-form .wc-block-components-text-input.has-error input,
body .has-dark-controls .wc-block-components-text-input.has-error input,
body .wc-blocks-components-select.has-error .wc-blocks-components-select__select,
body .has-error .wc-blocks-components-select__select,
body .wc-block-components-textarea.has-error {
	border-color: var(--cvw-error) !important;
}
body .wc-block-components-text-input.has-error label,
body .has-dark-controls .wc-block-components-text-input.has-error label,
body .has-error .wc-blocks-components-select__label {
	color: var(--cvw-error) !important;
}
body .wc-block-components-text-input.has-error input:focus {
	box-shadow: 0 0 0 3px rgba(232, 160, 140, .45) !important;
}

/* --- textarea (order note, classic textarea) --- */
body textarea.wc-block-components-textarea,
body .wc-block-checkout__add-note textarea,
body .woocommerce form .form-row textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 132px;
	margin: 12px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	color: var(--cvw-parchment);
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	line-height: 1.55;
	resize: vertical;
	box-shadow: none;
}
body textarea.wc-block-components-textarea:focus,
body .wc-block-checkout__add-note textarea:focus,
body .woocommerce form .form-row textarea:focus {
	outline: none;
	border-color: var(--cvw-gold);
	box-shadow: var(--cvw-ring);
}
body textarea.wc-block-components-textarea::placeholder {
	color: var(--cvw-stone);
	opacity: 1;
}

/* --- select (country, state, shipping) --- */
body .wc-blocks-components-select {
	margin-top: 16px;
}
body .wc-blocks-components-select .wc-blocks-components-select__container,
body .has-dark-controls .wc-blocks-components-select .wc-blocks-components-select__container {
	border-radius: var(--cvw-r-sm);
	background: transparent !important;
	background-color: transparent !important;
	color: var(--cvw-parchment);
}
body .wc-blocks-components-select .wc-blocks-components-select__select,
body .has-dark-controls .wc-blocks-components-select .wc-blocks-components-select__select {
	height: 56px;
	padding: 24px 44px 6px 14px;
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background-color: var(--cvw-input) !important;
	color: var(--cvw-parchment) !important;
	color-scheme: dark;
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	line-height: 24px;
	box-shadow: none;
	text-overflow: ellipsis;
}
body .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body .has-dark-controls .wc-blocks-components-select .wc-blocks-components-select__select:focus {
	outline: none;
	border: 1px solid var(--cvw-gold);
	padding: 24px 44px 6px 14px;
	box-shadow: var(--cvw-ring);
	color: var(--cvw-parchment) !important;
}
body .wc-blocks-components-select .wc-blocks-components-select__label,
body .has-dark-controls .wc-blocks-components-select .wc-blocks-components-select__label {
	left: 14px;
	top: 6px;
	max-width: calc(100% - 60px);
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
	font-size: 14.5px;
	line-height: 1.4;
}
body .wc-blocks-components-select .wc-blocks-components-select__expand,
body .has-dark-controls .wc-blocks-components-select .wc-blocks-components-select__expand {
	right: 14px;
	fill: var(--cvw-gold-light);
}
body .wc-blocks-components-select option,
body select option {
	background: var(--cvw-bg);
	color: var(--cvw-parchment);
}

/* --- combobox / suggestions (older country/state control, address autocomplete) --- */
body .wc-block-components-combobox .components-combobox-control__suggestions-container,
body .wc-block-components-combobox .components-form-token-field__input-container {
	border-radius: var(--cvw-r-sm);
	background: transparent;
	border: 0;
	box-shadow: none;
}
body .wc-block-components-combobox .wc-block-components-combobox-control label,
body .wc-block-components-combobox label.components-base-control__label {
	left: 14px;
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
}
body :is(.components-form-token-field__suggestions-list, .wc-block-components-address-autocomplete-suggestions, .suggestions-list) {
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-bg);
	color: var(--cvw-sand);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .4);
}
body :is(.components-form-token-field__suggestion, .wc-block-components-address-autocomplete-suggestions li, .suggestions-list li) {
	padding: 12px 16px;
	color: var(--cvw-sand);
	font-size: 16px;
}
body :is(.components-form-token-field__suggestion.is-selected, .components-form-token-field__suggestion:hover, .wc-block-components-address-autocomplete-suggestions li:hover) {
	background: var(--cvw-green-deep);
	color: var(--cvw-parchment);
}

/* --- checkbox --- */
body .wc-block-components-checkbox {
	margin-top: 16px;
	color: var(--cvw-sand);
	line-height: 1.5;
}
body .wc-block-components-checkbox label {
	gap: 12px;
	align-items: flex-start;
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	line-height: 24px;
	cursor: pointer;
}
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
body .has-dark-controls .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	flex: none;
	width: 24px;
	height: 24px;
	min-width: 24px;
	margin: 0;
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input) !important;
	background-color: var(--cvw-input) !important;
	color: var(--cvw-parchment);
	box-shadow: none;
}
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked,
body .has-dark-controls .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--cvw-gold);
	background: var(--cvw-gold) !important;
	background-color: var(--cvw-gold) !important;
}
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus,
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--cvw-green-mist);
	outline-offset: 2px;
}
body .wc-block-components-checkbox .wc-block-components-checkbox__mark,
body .has-dark-controls .wc-block-components-checkbox .wc-block-components-checkbox__mark {
	width: 18px;
	height: 18px;
	margin: 3px 0 0 3px;
	fill: var(--cvw-bg);
}
body .wc-block-components-checkbox.has-error,
body .wc-block-components-checkbox.has-error a,
body .wc-block-components-checkbox.has-error label {
	color: var(--cvw-error);
}
body .wc-block-components-checkbox.has-error .wc-block-components-checkbox__input[type="checkbox"] {
	border-color: var(--cvw-error);
}

/* --- radio controls: shipping methods, payment methods, pickup --- */
body .wc-block-components-radio-control {
	margin: 0;
}
body .wc-block-components-radio-control--highlight-checked,
body .wc-block-checkout__payment-method .wc-block-components-radio-control,
body .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control {
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	overflow: hidden;
}
body .wc-block-components-radio-control__option,
body .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
	padding: 18px 16px 18px 56px;
	color: var(--cvw-sand);
	font-size: 17px;
	line-height: 1.45;
}
body .wc-block-components-radio-control__option:after,
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option:after {
	background: var(--cvw-line);
}
body .wc-block-components-radio-control__label,
body .wc-block-components-radio-control__description,
body .wc-block-components-radio-control__secondary-label,
body .wc-block-components-radio-control__secondary-description {
	font-size: 17px;
	line-height: 1.45;
	color: var(--cvw-sand);
}
body .wc-block-components-radio-control__label,
body .wc-block-components-radio-control__secondary-label {
	color: var(--cvw-parchment);
	font-weight: 500;
}
body .wc-block-components-radio-control__description,
body .wc-block-components-radio-control__secondary-description {
	font-size: 16px;
	color: var(--cvw-sand);
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input,
body .has-dark-controls .wc-block-components-radio-control .wc-block-components-radio-control__input {
	left: 18px;
	width: 24px;
	height: 24px;
	border: 1px solid var(--cvw-line-input);
	background: var(--cvw-input) !important;
	background-color: var(--cvw-input) !important;
	box-shadow: none;
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked,
body .has-dark-controls .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	border-color: var(--cvw-gold);
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked:before,
body .has-dark-controls .wc-block-components-radio-control .wc-block-components-radio-control__input:checked:before {
	width: 12px;
	height: 12px;
	background: var(--cvw-gold-light);
}
body .wc-block-components-radio-control .wc-block-components-radio-control__input:focus,
body .wc-block-components-radio-control .wc-block-components-radio-control__input:focus-visible,
body .has-dark-controls .wc-block-components-radio-control .wc-block-components-radio-control__input:focus {
	outline: 2px solid var(--cvw-green-mist);
	outline-offset: 2px;
}
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option-checked {
	border-radius: var(--cvw-r-sm);
	background: rgba(201, 154, 78, .08);
	box-shadow: inset 0 0 0 1.5px var(--cvw-gold);
}
body .wc-block-components-radio-control-accordion-content {
	padding: 0 16px 18px 56px;
	color: var(--cvw-sand);
	font-size: 16px;
}
body .wc-block-checkout__shipping-method-option {
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	color: var(--cvw-sand);
}
body .wc-block-checkout__shipping-method-option--selected {
	border-color: var(--cvw-gold);
	background: rgba(201, 154, 78, .08);
	box-shadow: inset 0 0 0 1px var(--cvw-gold);
}
body :is(.wc-block-checkout__shipping-method-option-title, .wc-block-checkout__shipping-method-option-price) {
	color: var(--cvw-parchment);
	font-size: 17px;
	font-weight: 500;
}

/* --- password strength, misc field furniture --- */
body .wc-block-components-password-strength__result {
	color: var(--cvw-sand);
	font-size: 15px;
}
body .wc-block-components-address-form__address_2-toggle {
	margin-top: 12px;
}

/* ==========================================================================
   4. Mini-cart button + drawer
   ========================================================================== */
/* Button (header): bag icon, gold count badge like .cv-cartcount__n */
body .wp-block-woocommerce-mini-cart {
	display: inline-flex;
	align-items: center;
}
body .wc-block-mini-cart__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 48px;
	height: 48px;
	padding: 0 10px;
	border: 0;
	border-radius: var(--cvw-r-sm);
	background: none;
	color: var(--cvw-gold);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	transition: color var(--cvw-fast) var(--cvw-ease), background-color var(--cvw-fast) var(--cvw-ease);
}
body .wc-block-mini-cart__button:hover:not([disabled]) {
	background: var(--cvw-hover);
	color: var(--cvw-gold-light);
}
body .wc-block-mini-cart__button:focus-visible {
	outline: 2px solid var(--cvw-green-mist);
	outline-offset: 3px;
}
body .wc-block-mini-cart__button .wc-block-mini-cart__icon {
	width: 26px;
	height: 26px;
	color: inherit;
	fill: currentColor;
}
body .wc-block-mini-cart__amount,
body .wc-block-mini-cart__button .wc-block-formatted-money-amount {
	color: var(--cvw-parchment);
	font-size: 16px;
	font-weight: 600;
}
body .wc-block-mini-cart__quantity-badge {
	position: relative;
}
body .wc-block-mini-cart__badge,
body :where(.wc-block-mini-cart__badge) {
	top: 2px;
	left: auto;
	right: -12px;
	min-width: 24px;
	height: 24px;
	margin: 0;
	padding: 0 6px;
	border-radius: 12px;
	background: var(--cvw-gold);
	color: var(--cvw-bg);
	font-family: var(--cvw-font-sans);
	font-size: 15px;
	font-weight: 700;
	line-height: 24px;
	font-variant-numeric: tabular-nums;
	transform: none;
}
body .wc-block-mini-cart__badge:empty {
	opacity: 0;
}

/* Drawer scrim + panel */
body .wc-block-components-drawer__screen-overlay,
body .components-modal__screen-overlay:has(.wc-block-mini-cart__drawer) {
	background-color: var(--cvw-scrim);
	z-index: 100000;
}
body .wc-block-components-drawer,
body .wc-block-mini-cart__drawer {
	border-left: 1px solid var(--cvw-line-gold);
	background: var(--cvw-bg) !important;
	color: var(--cvw-sand);
	box-shadow: -16px 0 40px rgba(0, 0, 0, .4);
}
body :where(.wp-block-woocommerce-mini-cart-contents),
html body .wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-contents,
html body .wc-block-mini-cart__drawer .wc-block-mini-cart__template-part,
html body .wc-block-mini-cart__drawer :is(.wp-block-woocommerce-filled-mini-cart-contents-block, .wp-block-woocommerce-empty-mini-cart-contents-block, .wc-block-mini-cart__footer, .wc-block-mini-cart__items) {
	background: var(--cvw-bg) !important;
	color: var(--cvw-sand);
}
body .wc-block-components-drawer__content {
	background: var(--cvw-bg);
}
body .wc-block-components-button.wc-block-components-drawer__close,
html body .wc-block-components-drawer__close.wc-block-components-button {
	position: absolute !important;
	top: 12px;
	inset-inline-end: 12px;
	width: 48px;
	min-height: 48px;
	height: 48px;
	margin: 0;
	padding: 12px !important;
	border: 0;
	border-radius: var(--cvw-r-sm);
	background: transparent !important;
	color: var(--cvw-gold-light) !important;
	opacity: 1;
}
body .wc-block-components-button.wc-block-components-drawer__close:hover {
	background: var(--cvw-hover) !important;
	color: var(--cvw-parchment) !important;
}
body .wc-block-components-drawer__close svg {
	fill: currentColor;
	width: 24px;
	height: 24px;
}

/* Title */
body h2.wc-block-mini-cart__title,
body .wp-block-woocommerce-mini-cart-title-block {
	margin: 20px 64px -32px 20px;
	padding-bottom: 32px;
	background: var(--cvw-bg);
	color: var(--cvw-parchment);
	font-family: var(--cvw-font-display);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .03em;
	text-transform: uppercase;
}
body h2.wc-block-mini-cart__title {
	flex-wrap: wrap;
	gap: 0 10px;
	font-size: 24px;
}
body h2.wc-block-mini-cart__title span:first-child {
	color: var(--cvw-parchment);
}
body h2.wc-block-mini-cart__title span:last-child {
	color: var(--cvw-gold);
}

/* Items area */
body .wc-block-mini-cart__items {
	padding: 16px 20px 0;
}
body .wc-block-mini-cart__products-table .wc-block-cart-items__row {
	padding: 14px 0;
	border-bottom: 1px solid var(--cvw-line);
}
body .wc-block-mini-cart__items .wc-block-mini-cart__products-table .wc-block-cart-items__row {
	padding-top: 14px;
	padding-bottom: 14px;
}
body .wc-block-mini-cart__items .wc-block-mini-cart__products-table .wc-block-cart-items__row:last-child:after {
	content: none;
}

/* Footer: subtotal + buttons */
body .wc-block-mini-cart__footer {
	padding: 20px;
	border-top: 1px solid var(--cvw-line);
	background: var(--cvw-bg);
}
body .wc-block-mini-cart__footer .wc-block-components-totals-item.wc-block-mini-cart__footer-subtotal {
	margin-bottom: 16px;
	font-size: 18px;
	font-weight: 600;
}
body .wc-block-mini-cart__footer .wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__label {
	color: var(--cvw-parchment);
}
body .wc-block-mini-cart__footer .wc-block-mini-cart__footer-subtotal .wc-block-formatted-money-amount {
	color: var(--cvw-gold);
	font-size: 22px;
}
body .wc-block-mini-cart__footer .wc-block-components-totals-item__description {
	color: var(--cvw-stone);
	font-size: 15px;
}
body .wc-block-mini-cart__footer .wc-block-mini-cart__footer-actions {
	gap: 12px;
}

/* Empty drawer */
body .wc-block-mini-cart__empty-cart-wrapper {
	color: var(--cvw-sand);
	text-align: center;
}
body :is(.wc-block-mini-cart__empty-cart-wrapper, .wp-block-woocommerce-empty-cart-block) :is(h2, .wc-block-cart__empty-cart__title) {
	font-family: var(--cvw-font-display);
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--cvw-parchment);
}
body .with-empty-cart-icon:before {
	background-color: var(--cvw-gold);
}
body .wc-block-mini-cart__shopping-button {
	margin-top: 16px;
}

/* Mini-cart notices */
body .wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-contents .wc-block-components-notices {
	margin: 16px 20px 0;
}

/* ==========================================================================
   5. Cart line items, prices, quantity selector (cart, mini-cart, checkout summary)
   ========================================================================== */
/* Cart page: items sit in a card like .k-cart-lines */
body .wp-block-woocommerce-cart-items-block {
	padding: 8px 20px;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-card);
}
body table.wc-block-cart-items {
	color: var(--cvw-sand);
	border-collapse: collapse;
}
body table.wc-block-cart-items :is(th, td) {
	border: 0;
	background: transparent;
	color: inherit;
}
body table.wc-block-cart-items .wc-block-cart-items__header th,
body .wc-block-cart-items__header-image,
body .wc-block-cart-items__header-product,
body .wc-block-cart-items__header-total {
	padding: 12px 0;
	border-bottom: 1px solid var(--cvw-line);
	color: var(--cvw-stone);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}
body .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row,
body .wc-block-cart-items__row {
	border-bottom: 1px solid var(--cvw-line);
}
body .wc-block-cart-items__row:last-child {
	border-bottom: 0;
}
body table.wc-block-cart-items .wc-block-cart-items__row td {
	padding-top: 16px;
	padding-bottom: 16px;
}

/* Thumbnails on media background */
body .wc-block-cart-item__image img,
body .wc-block-components-order-summary-item__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-media);
	object-fit: contain;
}
body .wc-block-components-order-summary-item__image {
	position: relative;
}

/* Product name like .k-cart-line__name */
body .wc-block-components-product-name,
body a.wc-block-components-product-name {
	display: block;
	color: var(--cvw-parchment) !important;
	font-family: var(--cvw-font-display);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .02em;
	text-transform: uppercase;
	text-decoration: none !important;
}
body a.wc-block-components-product-name:hover {
	color: var(--cvw-gold-light) !important;
}

/* Meta, variation data, descriptions */
body .wc-block-components-product-metadata,
body .wc-block-components-product-details,
body .wc-block-components-product-metadata__description {
	color: var(--cvw-stone);
	font-size: 15px;
	line-height: 1.5;
}
body .wc-block-components-product-details__name {
	color: var(--cvw-sand);
	font-weight: 600;
}
body .wc-block-components-product-details__value {
	color: var(--cvw-stone);
}
body .wc-block-components-product-badge {
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: transparent;
	color: var(--cvw-gold-light);
	font-size: 14px;
}

/* Prices */
body .wc-block-components-product-price,
body .wc-block-cart-item__prices {
	color: var(--cvw-parchment);
	font-size: 17px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
body .wc-block-components-product-price__regular,
body .wc-block-components-product-price del,
body .wc-block-components-order-summary-item__individual-prices del {
	color: var(--cvw-stone);
	font-size: 15px;
	font-weight: 400;
	text-decoration: line-through;
}
body .wc-block-components-product-price__value.is-discounted,
body .wc-block-components-product-price ins,
body .wc-block-components-product-price ins .woocommerce-Price-amount {
	color: var(--cvw-sale);
	text-decoration: none;
}
body .wc-block-cart-item__total,
body .wc-block-components-order-summary-item__total-price {
	color: var(--cvw-parchment);
	font-weight: 600;
}
body .wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-sale-badge,
body .wc-block-components-sale-badge {
	border: 1px solid var(--cvw-sale);
	border-radius: var(--cvw-r-sm);
	background: transparent;
	color: var(--cvw-sale);
	font-size: 14px;
	font-weight: 600;
}

/* Quantity selector like .cv-qty */
body .wc-block-components-quantity-selector,
body .wc-block-components-quantity-selector:where(:has(input:not([type="hidden"]))) {
	box-sizing: border-box;
	width: 132px;
	height: 48px;
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	color: var(--cvw-parchment);
}
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector {
	height: 56px;
}
body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	min-width: 40px;
	padding: 0;
	color: var(--cvw-parchment);
	font-family: var(--cvw-font-sans);
	font-size: 18px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus {
	outline: none;
	box-shadow: inset 0 0 0 2px var(--cvw-green-mist);
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-width: 44px;
	color: var(--cvw-gold-light);
	font-size: 22px;
	line-height: 1;
	opacity: 1;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	background: var(--cvw-hover);
	color: var(--cvw-parchment);
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 2px var(--cvw-green-mist);
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
	opacity: .4;
}
/* Classic quantity input */
body .woocommerce .quantity .qty {
	box-sizing: border-box;
	width: 96px;
	height: 56px;
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	color: var(--cvw-parchment);
	font: 600 18px var(--cvw-font-sans);
	text-align: center;
}

/* ==========================================================================
   6. Totals, coupon, panels, order summary
   ========================================================================== */
/* Sidebar cards (cart totals, checkout summary) like .k-cart-summary / .k-co-summary */
body .wp-block-woocommerce-cart-totals-block,
body .wp-block-woocommerce-checkout-totals-block {
	box-sizing: border-box;
	padding: 24px;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-card);
	color: var(--cvw-sand);
}
body .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	padding-left: 0;
}
body .wc-block-components-totals-wrapper {
	border-color: var(--cvw-line);
	border-top: 1px solid var(--cvw-line);
}
body .wc-block-components-totals-wrapper:first-child,
body .wc-block-components-totals-wrapper.slot-wrapper:first-child {
	border-top: 0;
}
body .wc-block-components-totals-item {
	color: var(--cvw-sand);
	font-size: 17px;
}
body .wc-block-components-totals-item__label {
	color: var(--cvw-sand);
	font-weight: 400;
}
body .wc-block-components-totals-item__value {
	color: var(--cvw-parchment);
	font-weight: 600;
}
body .wc-block-components-totals-item__description {
	color: var(--cvw-stone);
	font-size: 15px;
}
body .wc-block-components-totals-footer-item {
	padding-top: 4px;
	font-size: 18px;
}
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	color: var(--cvw-parchment);
	font-size: 18px;
	font-weight: 600;
}
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body .wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
	color: var(--cvw-gold);
	font-size: 24px;
	font-weight: 600;
}
body .wc-block-components-totals-footer-item-tax,
body .wc-block-components-totals-taxes {
	color: var(--cvw-stone);
	font-size: 15px;
}
body .wc-block-components-totals-shipping__via,
body .wc-block-components-totals-shipping-address-summary,
body .wc-block-components-totals-shipping__delivery-options-notice {
	color: var(--cvw-stone);
	font-size: 15px;
}
body .wc-block-components-totals-discount__coupon-list .wc-block-components-chip,
body .wc-block-components-chip {
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-notice);
	color: var(--cvw-parchment);
	font-size: 15px;
}
body .wc-block-components-totals-discount .wc-block-components-totals-item__value {
	color: var(--cvw-green-mist);
}

/* Coupon */
body .wc-block-components-totals-coupon .wc-block-components-panel__button {
	padding-left: 0;
}
body .wc-block-components-totals-coupon__form {
	align-items: stretch;
	gap: 12px;
}
body .wc-block-components-totals-coupon__form .wc-block-components-text-input {
	margin-top: 0;
}
body .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button {
	min-height: 56px;
	padding: 0 24px;
	margin: 0;
}

/* Panels / accordions (coupon, order summary, shipping package) */
body .wc-block-components-panel,
body .wc-block-components-checkout-order-summary__title {
	color: var(--cvw-sand);
}
body .wc-block-components-panel__button {
	min-height: 48px;
	padding: 8px 0;
	border: 0;
	background: none;
	color: var(--cvw-gold-light);
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
}
body .wc-block-components-panel__button:hover {
	color: var(--cvw-parchment);
}
body .wc-block-components-panel__button svg,
body .wc-block-components-checkout-order-summary__title-icon {
	fill: currentColor;
	color: var(--cvw-gold-light);
}
body .wc-block-components-panel__content {
	color: var(--cvw-sand);
}

/* Checkout order summary rows */
body .wc-block-components-order-summary {
	color: var(--cvw-sand);
}
body .wc-block-components-order-summary .wc-block-components-order-summary__content {
	padding: 0;
}
body .wc-block-components-order-summary-item {
	padding: 12px 0;
	border-bottom: 1px solid var(--cvw-line);
}
body .wc-block-components-order-summary-item:last-child {
	border-bottom: 0;
}
html body .wc-block-components-order-summary-item__quantity {
	min-width: 24px;
	height: 24px;
	padding: 0 6px;
	border: 0;
	border-radius: 12px;
	background: var(--cvw-gold);
	box-shadow: none;
	color: var(--cvw-bg);
	font-size: 15px;
	font-weight: 700;
	line-height: 24px;
	text-align: center;
}
body .wc-block-components-order-summary-item__description {
	color: var(--cvw-sand);
}
body .wc-block-components-order-summary-item__description .wc-block-components-product-name {
	font-size: 16px;
}
body .wc-block-components-checkout-order-summary__title-price {
	color: var(--cvw-gold);
	font-weight: 600;
}

/* Saved address card */
body .wc-block-components-address-card {
	padding: 16px;
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	color: var(--cvw-sand);
	font-size: 16px;
}
body .wc-block-components-address-card address {
	color: var(--cvw-sand);
	font-style: normal;
}
body .wc-block-components-address-card__address-section--primary {
	color: var(--cvw-parchment);
	font-weight: 600;
}

/* ==========================================================================
   7. Cart + checkout layout, steps, terms, place order
   ========================================================================== */
body .wp-block-woocommerce-cart.alignwide,
body .wp-block-woocommerce-checkout.alignwide {
	max-width: 1100px;
	margin-inline: auto;
	padding-inline: 20px;
}
body .wc-block-components-sidebar-layout {
	gap: 32px;
}
@media (min-width: 900px) {
	body .wc-block-components-sidebar-layout {
		gap: 48px;
	}
	body .wc-block-components-sidebar-layout .wc-block-components-sidebar.wc-block-cart__sidebar,
	body .wc-block-components-sidebar-layout .wc-block-components-sidebar.wc-block-checkout__sidebar {
		position: sticky;
		top: 96px;
		align-self: flex-start;
	}
}

/* Checkout steps like .k-co-section */
body .wc-block-components-checkout-step {
	padding: 0 0 28px;
	margin: 0 0 28px;
	border: 0;
	border-bottom: 1px solid var(--cvw-line);
}
body .wc-block-components-checkout-step:last-of-type,
body .wp-block-woocommerce-checkout-actions-block {
	border-bottom: 0;
}
body .wc-block-components-checkout-step__heading {
	margin: 0 0 12px;
}
body .wc-block-components-checkout-step__container {
	color: var(--cvw-sand);
}

/* Guest / login prompts */
body .wc-block-checkout__login-prompt,
body .wc-block-checkout__guest-checkout-notice {
	color: var(--cvw-sand);
	font-size: 16px;
}

/* Terms */
body .wc-block-checkout__terms,
body .wp-block-woocommerce-checkout-terms-block {
	margin: 20px 0 8px;
	color: var(--cvw-sand);
	font-size: 16px;
	line-height: 1.55;
}
body .wc-block-checkout__terms a {
	color: var(--cvw-gold-light);
	text-decoration: underline;
	text-underline-offset: 4px;
}
body .wc-block-checkout__terms .wc-block-components-checkbox {
	margin-top: 0;
}
body .wc-block-checkout__terms--disabled {
	opacity: .7;
}

/* Actions (place order + return to cart) */
body .wc-block-checkout__actions {
	padding-top: 8px;
}
body .wc-block-checkout__actions_row {
	display: flex;
	flex-direction: column-reverse;
	align-items: stretch;
	gap: 16px;
}
@media (min-width: 700px) {
	body .wc-block-checkout__actions_row {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
	body .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
		width: auto;
		min-width: 320px;
		flex: 1 1 320px;
	}
}
body .wc-block-components-checkout-place-order-button__separator {
	color: var(--cvw-bg);
}

/* Payment methods area */
body .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content,
body .wc-block-components-checkout-payment-methods {
	color: var(--cvw-sand);
}
body .wc-block-checkout__no-payment-methods-notice {
	color: var(--cvw-sand);
}
body .wc-block-components-payment-method-icons .wc-block-components-payment-method-icon {
	border-radius: 3px;
	background: #fff;
}

/* Express payment area is not used */
body .wc-block-components-express-payment,
body .wp-block-woocommerce-checkout-express-payment-block,
body .wp-block-woocommerce-cart-express-payment-block,
body .wc-block-components-express-payment-continue-rule,
body .wc-block-checkout__only-express-payments-notice {
	display: none !important;
}

/* Cart: cross-sells, empty cart */
body .wp-block-woocommerce-cart-cross-sells-block h2,
body .wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--cvw-font-display);
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--cvw-parchment);
}
body .wp-block-woocommerce-empty-cart-block {
	padding: 48px 20px;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-card);
	text-align: center;
}
body .wc-block-cart__empty-cart__title {
	font-size: 26px;
}
body .wc-block-checkout-empty,
body .wc-block-checkout-error {
	color: var(--cvw-sand);
	text-align: center;
}
body :is(.wc-block-checkout-empty__title, .wc-block-checkout-error__title) {
	font-family: var(--cvw-font-display);
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--cvw-parchment);
}

/* ==========================================================================
   8. Notices and validation errors
   ========================================================================== */
body .wc-block-components-notice-banner {
	align-items: flex-start;
	gap: 14px;
	margin: 16px 0;
	padding: 16px 18px !important;
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-notice);
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.55;
}
body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content {
	align-self: center;
	color: inherit;
	padding-right: 8px;
}
body .wc-block-components-notice-banner .wc-block-components-notice-banner__summary {
	margin: 0 0 6px;
	color: var(--cvw-parchment);
	font-size: 16px;
	font-weight: 600;
}
body .wc-block-components-notice-banner > svg {
	width: 28px;
	height: 28px;
	padding: 3px;
	border-radius: 50%;
	background-color: var(--cvw-gold);
	fill: var(--cvw-bg);
}
body .wc-block-components-notice-banner a,
body .wc-block-components-notice-banner .wc-forward {
	color: var(--cvw-gold-light) !important;
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 4px;
}
html body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward,
html body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content a.button {
	float: none;
	flex: none;
	align-self: center;
	min-height: 44px;
	margin: 0 0 0 auto;
	padding: 8px 20px !important;
	border: 1px solid var(--cvw-gold);
	border-radius: var(--cvw-r-btn);
	background: transparent !important;
	color: var(--cvw-gold-light) !important;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none;
}
html body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward:hover {
	border-color: var(--cvw-gold-light);
	color: var(--cvw-parchment) !important;
}
/* dismiss button */
body .wc-block-components-notice-banner > .wc-block-components-button {
	flex: 0 0 32px;
	width: 32px !important;
	height: 32px !important;
	min-height: 32px !important;
	margin: 0 0 0 auto !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--cvw-sand) !important;
	opacity: 1;
}
body .wc-block-components-notice-banner > .wc-block-components-button:hover {
	color: var(--cvw-parchment) !important;
}
body .wc-block-components-notice-banner > .wc-block-components-button svg {
	fill: currentColor;
	background: none;
}
/* variants */
body .wc-block-components-notice-banner.is-error {
	border-color: var(--cvw-line-danger);
	background: rgba(212, 120, 95, .12);
}
body .wc-block-components-notice-banner.is-error > svg {
	background-color: var(--cvw-error);
}
body .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__summary {
	color: var(--cvw-error);
}
body .wc-block-components-notice-banner.is-warning {
	border-color: rgba(217, 161, 90, .6);
	background: rgba(217, 161, 90, .1);
}
body .wc-block-components-notice-banner.is-warning > svg {
	background-color: var(--cvw-sale);
}
body .wc-block-components-notice-banner.is-success {
	border-color: rgba(63, 191, 154, .55);
	background: rgba(63, 191, 154, .1);
}
body .wc-block-components-notice-banner.is-success > svg {
	background-color: var(--cvw-green-glow);
}
body .wc-block-components-notice-banner.is-info {
	border-color: var(--cvw-line-gold);
	background: var(--cvw-notice);
}
body .wc-block-components-notice-banner.is-info > svg {
	background-color: var(--cvw-gold);
}
/* snackbar variant */
body .wc-block-components-notice-banner.wc-block-components-notice-snackbar,
body .wc-block-components-notice-snackbar-list .wc-block-components-notice-banner {
	border: 1px solid var(--cvw-line-gold);
	background: var(--cvw-card-strong);
	color: var(--cvw-parchment);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .4);
}
body .wc-block-store-notices,
body .wc-block-components-notices {
	color: var(--cvw-sand);
}

/* Validation error under a field */
body .wc-block-components-validation-error,
body .wc-block-components-validation-error > p {
	color: var(--cvw-error);
	font-size: 15px;
	line-height: 1.4;
}
body .wc-block-components-validation-error {
	margin-top: 6px;
}
body .wc-block-components-validation-error svg {
	fill: var(--cvw-error);
}
body .wc-block-components-error,
body .wc-block-components-error__message,
body .wc-block-components-error__text {
	color: var(--cvw-error);
}

/* Classic notices */
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error,
body .woocommerce-notice,
body .woocommerce-NoticeGroup .woocommerce-error {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
	margin: 16px 0;
	padding: 16px 18px 16px 52px;
	border: 1px solid var(--cvw-line-gold);
	border-top-width: 1px;
	border-radius: var(--cvw-r-card);
	background: var(--cvw-notice);
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	line-height: 1.55;
	list-style: none;
}
body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before,
body .woocommerce-notice::before {
	content: "";
	position: absolute;
	top: 18px;
	left: 18px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--cvw-gold);
	font-family: inherit;
	color: var(--cvw-bg);
}
body .woocommerce-message {
	border-color: rgba(63, 191, 154, .55);
	background: rgba(63, 191, 154, .1);
}
body .woocommerce-message::before {
	background: var(--cvw-green-glow);
}
body .woocommerce-error {
	border-color: var(--cvw-line-danger);
	background: rgba(212, 120, 95, .12);
	color: var(--cvw-parchment);
}
body .woocommerce-error::before {
	background: var(--cvw-error);
}
body .woocommerce-error li {
	flex: 1 0 100%;
	margin: 0;
	color: var(--cvw-parchment);
}
body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) {
	color: var(--cvw-gold-light);
	text-decoration: underline;
	text-underline-offset: 4px;
}
body :is(.woocommerce-message, .woocommerce-info) a.button,
body :is(.woocommerce-message, .woocommerce-info) .wc-forward {
	order: 2;
	margin-left: auto;
}

/* ==========================================================================
   9. Order confirmation (wp-block-woocommerce-order-confirmation-*)
   ========================================================================== */
body .wc-block-order-confirmation-status {
	margin: 16px 0;
	color: var(--cvw-sand);
	font-size: 18px;
}
body .wc-block-order-confirmation-status.has-background,
body .wp-block-woocommerce-order-confirmation-status {
	padding: 20px 24px;
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-notice);
	color: var(--cvw-sand);
}
body .wc-block-order-confirmation-status p {
	color: inherit;
}
body .wc-block-order-confirmation-status .wc-block-order-confirmation-status__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
body .wc-block-order-confirmation-status .wc-block-order-confirmation-status__actions a {
	margin-right: 0;
}
body .wc-block-order-confirmation-summary {
	margin: 32px 0;
	padding: 24px;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-card);
	color: var(--cvw-sand);
}
body .wc-block-order-confirmation-summary ul {
	gap: 20px 24px;
}
body .wc-block-order-confirmation-summary ul li > .wc-block-order-confirmation-summary-list-item__key {
	color: var(--cvw-stone);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
}
body .wc-block-order-confirmation-summary ul li > .wc-block-order-confirmation-summary-list-item__value {
	margin-top: 4px;
	color: var(--cvw-parchment);
	font-size: 18px;
	font-weight: 600;
}
body :is(.wp-block-woocommerce-order-confirmation-totals-wrapper, .wp-block-woocommerce-order-confirmation-additional-fields-wrapper, .wp-block-woocommerce-order-confirmation-shipping-wrapper, .wp-block-woocommerce-order-confirmation-billing-wrapper, .wp-block-woocommerce-order-confirmation-additional-information) {
	color: var(--cvw-sand);
}
body :is(.wp-block-woocommerce-order-confirmation-totals-wrapper, .wp-block-woocommerce-order-confirmation-shipping-wrapper, .wp-block-woocommerce-order-confirmation-billing-wrapper, .wp-block-woocommerce-order-confirmation-additional-information) :is(h2, h3) {
	color: var(--cvw-parchment);
	font-family: var(--cvw-font-display);
	letter-spacing: .03em;
	text-transform: uppercase;
}
body .wc-block-order-confirmation-totals table {
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-card);
	color: var(--cvw-sand);
	font-size: 17px;
}
body .wc-block-order-confirmation-totals table :is(th, td) {
	border-color: var(--cvw-line);
	background: transparent;
	color: var(--cvw-sand);
}
body .wc-block-order-confirmation-totals table :is(thead th, tfoot th) {
	color: var(--cvw-parchment);
}
body .wc-block-order-confirmation-totals table :is(.wc-block-order-confirmation-totals__total, tfoot td) {
	color: var(--cvw-parchment);
	font-weight: 600;
}
body .wc-block-order-confirmation-totals table tfoot tr:last-child :is(th, td) {
	color: var(--cvw-gold);
	font-size: 19px;
}
body .wc-block-order-confirmation-totals table .wc-item-meta {
	color: var(--cvw-stone);
	font-size: 15px;
}
body :is(.wc-block-order-confirmation-shipping-address, .wc-block-order-confirmation-billing-address, .wc-block-order-confirmation-additional-fields) {
	padding: 20px 24px;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-card);
	color: var(--cvw-sand);
}
body :is(.wc-block-order-confirmation-shipping-address, .wc-block-order-confirmation-billing-address) address {
	color: var(--cvw-sand);
	font-size: 17px;
	font-style: normal;
	line-height: 1.6;
}
body .wc-block-order-confirmation-downloads table {
	color: var(--cvw-sand);
}

/* ==========================================================================
   10. Product collection / product template cards (like .cv-pcard)
   ========================================================================== */
body .wp-block-woocommerce-product-collection {
	color: var(--cvw-sand);
}
body .wc-block-product-template {
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body .wc-block-product-template.is-flex-container {
	gap: 24px;
}
body .wc-block-product-template__responsive {
	grid-gap: 24px;
}
body .wc-block-product-template > .wc-block-product:not(.cv-pcard) {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	box-sizing: border-box;
	padding: 0 0 20px;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-card);
	background: var(--cvw-card);
	overflow: hidden;
	transition: border-color var(--cvw-fast) var(--cvw-ease);
}
body .wc-block-product-template > .wc-block-product:not(.cv-pcard):hover,
body .wc-block-product-template > .wc-block-product:not(.cv-pcard):focus-within {
	border-color: var(--cvw-line-gold);
}
body .wc-block-product-template > .wc-block-product:not(.cv-pcard) > * {
	margin-top: 0;
	margin-bottom: 0;
}
body .wc-block-product-template > .wc-block-product:not(.cv-pcard) > :not(.wp-block-woocommerce-product-image):not(.wc-block-components-product-image) {
	margin-inline: 18px;
}

/* Media area: surface-media, product contained */
body .wc-block-product .wp-block-woocommerce-product-image,
body .wc-block-product .wc-block-components-product-image {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	margin: 0 0 8px;
	background: var(--cvw-media);
	overflow: hidden;
}
body .wc-block-product .wc-block-components-product-image a {
	display: block;
	position: absolute;
	inset: 0;
}
body .wc-block-product .wc-block-components-product-image img,
body .wc-block-product .wp-block-woocommerce-product-image img {
	position: absolute;
	inset: 16px;
	width: calc(100% - 32px) !important;
	height: calc(100% - 32px) !important;
	object-fit: contain !important;
	aspect-ratio: auto !important;
	transition: transform .5s var(--cvw-ease);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	body .wc-block-product:hover .wc-block-components-product-image img {
		transform: scale(1.05);
	}
}

/* Title: display font, 2 lines max */
body .wc-block-product :is(.wp-block-post-title, .wc-block-components-product-title) {
	margin-top: 8px;
	margin-bottom: 0;
	font-family: var(--cvw-font-display);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: .02em;
	color: var(--cvw-parchment);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}
body .wc-block-product :is(.wp-block-post-title, .wc-block-components-product-title) a {
	color: inherit;
	text-decoration: none;
}
body .wc-block-product :is(.wp-block-post-title, .wc-block-components-product-title) a:hover {
	color: var(--cvw-gold-light);
}
/* whole card clickable through the title link */
body .wc-block-product .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
body .wc-block-product .wp-block-woocommerce-product-button,
body .wc-block-product .wp-block-woocommerce-product-image,
body .wc-block-product .wc-block-components-product-sale-badge {
	position: relative;
}
body .wc-block-product .wp-block-woocommerce-product-button {
	z-index: 2;
}
body .wc-block-product .wp-block-woocommerce-product-image {
	z-index: 2;
}

/* Excerpt */
body .wc-block-product .wp-block-post-excerpt,
body .wc-block-product .wp-block-post-excerpt__excerpt {
	color: var(--cvw-sand);
	font-size: 16px;
	line-height: 1.5;
}

/* Price */
body .wc-block-product :is(.wp-block-woocommerce-product-price, .wc-block-components-product-price) {
	color: var(--cvw-parchment);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
}
body .wc-block-product .wc-block-components-product-price del,
body .wc-block-product .wc-block-components-product-price__regular {
	margin-right: 8px;
	color: var(--cvw-stone);
	font-size: 17px;
	font-weight: 400;
}

/* Add to cart / view button, full width, pushed to the bottom */
body .wc-block-product .wp-block-woocommerce-product-button {
	margin-top: auto;
	padding-top: 10px;
	align-items: stretch;
}
body .wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link,
body .wc-block-product .wc-block-components-product-button__button {
	width: 100%;
}
body .wc-block-product .wp-block-woocommerce-product-button .added_to_cart {
	color: var(--cvw-gold-light);
	font-size: 15px;
	text-align: center;
}

/* Sale badge (gold outline plaque) */
body .wc-block-components-product-sale-badge,
body .wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge,
body .woocommerce span.onsale,
body span.onsale {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--cvw-sale);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-card-strong);
	color: var(--cvw-sale);
	font-family: var(--cvw-font-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .06em;
	text-transform: uppercase;
}
body .wc-block-product .wc-block-components-product-image .wc-block-components-product-sale-badge,
body .wc-block-product .wc-block-components-product-image .wp-block-woocommerce-product-sale-badge,
body .wc-block-product span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 3;
}
body .wc-block-product .wp-block-woocommerce-product-sale-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 3;
	margin: 0;
}
body .wc-block-components-product-sale-badge span {
	background: transparent;
	color: inherit;
}

/* Stock indicator */
body .wc-block-components-product-stock-indicator {
	font-size: 16px;
	font-weight: 500;
	color: var(--cvw-sand);
	text-align: left;
}
body .wc-block-components-product-stock-indicator--in-stock {
	color: var(--cvw-green-mist);
}
body .wc-block-components-product-stock-indicator--low-stock,
body .wc-block-components-product-stock-indicator--available-on-backorder {
	color: var(--cvw-sale);
}
body .wc-block-components-product-stock-indicator--out-of-stock {
	color: var(--cvw-error);
}
body .woocommerce .stock,
body p.stock {
	color: var(--cvw-green-mist);
	font-size: 16px;
}
body p.stock.out-of-stock {
	color: var(--cvw-error);
}

/* Rating stars (reviews are off, keep them readable if enabled) */
body .wc-block-components-product-rating-stars {
	color: var(--cvw-gold);
}
body .wc-block-components-product-rating__stars span:before,
body .star-rating span:before {
	color: var(--cvw-gold);
}

/* ==========================================================================
   11. Sorting, results count, pagination, breadcrumbs
   ========================================================================== */
/* Sort select */
body .woocommerce-ordering,
body .wc-block-catalog-sorting {
	margin: 0;
}
body .woocommerce-ordering select,
body select.orderby,
body .wc-block-catalog-sorting select {
	box-sizing: border-box;
	min-width: 240px;
	max-width: 100%;
	height: 56px;
	padding: 0 48px 0 16px;
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background-color: var(--cvw-input);
	background-image: var(--cvw-chevron);
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 20px;
	color: var(--cvw-parchment);
	color-scheme: dark;
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	line-height: 1.2;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	box-shadow: none;
}
body .woocommerce-ordering select:focus,
body select.orderby:focus,
body .wc-block-catalog-sorting select:focus {
	outline: none;
	border-color: var(--cvw-gold);
	box-shadow: var(--cvw-ring);
}
@media (max-width: 600px) {
	body .woocommerce-ordering select,
	body select.orderby,
	body .wc-block-catalog-sorting select {
		width: 100%;
		min-width: 0;
	}
}

/* Results count */
body .woocommerce-result-count,
body .wc-block-product-results-count,
body .wp-block-woocommerce-product-results-count {
	margin: 0;
	color: var(--cvw-sand);
	font-family: var(--cvw-font-sans);
	font-size: 16px;
	line-height: 1.5;
}

/* Pagination: core query pagination + classic */
body :is(.wp-block-query-pagination, .woocommerce-pagination) {
	margin-top: 40px;
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	gap: 8px;
}
body .wp-block-query-pagination-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
}
body :is(.wp-block-query-pagination-numbers, .woocommerce-pagination ul.page-numbers) :is(a.page-numbers, span.page-numbers),
body .wp-block-query-pagination-previous,
body .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 48px;
	height: 48px;
	padding: 0 16px;
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: transparent;
	color: var(--cvw-sand);
	font-weight: 500;
	text-decoration: none;
	transition: border-color var(--cvw-fast), color var(--cvw-fast), background-color var(--cvw-fast);
}
body :is(.wp-block-query-pagination-numbers, .woocommerce-pagination ul.page-numbers) a.page-numbers:hover,
body .wp-block-query-pagination-previous:hover,
body .wp-block-query-pagination-next:hover {
	border-color: var(--cvw-gold);
	color: var(--cvw-parchment);
}
body :is(.wp-block-query-pagination-numbers, .woocommerce-pagination ul.page-numbers) span.page-numbers.current {
	border-color: var(--cvw-gold);
	background: var(--cvw-gold);
	color: var(--cvw-bg);
	font-weight: 600;
}
body :is(.wp-block-query-pagination-numbers, .woocommerce-pagination ul.page-numbers) span.page-numbers.dots {
	border-color: transparent;
	color: var(--cvw-stone);
}
body .woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
body .woocommerce-pagination ul.page-numbers li {
	margin: 0;
	border: 0;
	overflow: visible;
}

/* Breadcrumbs */
body .woocommerce-breadcrumb,
body .wc-block-breadcrumbs .woocommerce-breadcrumb,
body .wp-block-woocommerce-breadcrumbs {
	margin: 0;
	color: var(--cvw-stone);
	font-family: var(--cvw-font-sans);
	font-size: 15px;
	line-height: 1.6;
}
body .woocommerce-breadcrumb a {
	color: var(--cvw-sand);
	text-decoration: underline;
	text-decoration-color: var(--cvw-line-gold);
	text-underline-offset: 4px;
	transition: color var(--cvw-fast), text-decoration-color var(--cvw-fast);
}
body .woocommerce-breadcrumb a:hover {
	color: var(--cvw-gold-light);
	text-decoration-color: currentColor;
}

/* ==========================================================================
   12. Single product (gallery, meta, tabs, related)
   ========================================================================== */
/* Block gallery */
body .wc-block-product-gallery-large-image {
	border-radius: var(--cvw-r-card);
	background: var(--cvw-media);
}
body .wc-block-product-gallery-large-image .wc-block-components-product-image img {
	object-fit: contain !important;
}
body .wc-block-product-gallery-thumbnails__thumbnail__image {
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-media);
	border: 1px solid var(--cvw-line);
	object-fit: contain;
}
body .wc-block-product-gallery-thumbnails__thumbnail__image:hover {
	border-color: var(--cvw-line-gold);
}
body .wc-block-product-gallery-thumbnails--active-outline .wc-block-product-gallery-thumbnails__thumbnail__image--is-active,
body .wc-block-product-gallery-thumbnails__thumbnail__image--is-active {
	border: 2px solid var(--cvw-gold);
	padding: 2px;
	filter: none;
}
body .wc-block-next-previous-buttons__button {
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-card-strong);
	color: var(--cvw-gold-light);
	box-shadow: 0 0 0 1px var(--cvw-line-gold);
}
body .wc-block-next-previous-buttons__button:hover:not([aria-disabled="true"]) {
	color: var(--cvw-parchment);
	box-shadow: 0 0 0 1px var(--cvw-gold);
}
body .wc-block-product-gallery-dialog__content {
	background: var(--cvw-bg);
	color: var(--cvw-sand);
}
body .wc-block-product-gallery-dialog__close-button {
	color: var(--cvw-gold-light);
}

/* Classic gallery (woocommerce-product-gallery) */
body .woocommerce-product-gallery {
	position: relative;
}
body .woocommerce-product-gallery__wrapper {
	margin: 0;
}
body .woocommerce-product-gallery__image {
	border-radius: var(--cvw-r-card);
	background: var(--cvw-media);
	overflow: hidden;
}
body .woocommerce-product-gallery__image img {
	object-fit: contain;
}
body .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}
body .woocommerce-product-gallery .flex-control-thumbs li {
	float: none;
	width: auto;
	margin: 0;
}
body .woocommerce-product-gallery .flex-control-thumbs img {
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-media);
	opacity: .7;
	cursor: pointer;
	transition: opacity var(--cvw-fast), border-color var(--cvw-fast);
}
body .woocommerce-product-gallery .flex-control-thumbs img:hover,
body .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	border-color: var(--cvw-gold);
	opacity: 1;
}
body .woocommerce-product-gallery__trigger {
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-card-strong);
	color: var(--cvw-gold-light);
	box-shadow: 0 0 0 1px var(--cvw-line-gold);
	text-indent: 0;
}
body .woocommerce-product-gallery__trigger:hover {
	background: var(--cvw-card-strong);
	color: var(--cvw-parchment);
}
body .wp-block-woocommerce-product-image-gallery span.onsale,
body .woocommerce .wp-block-woocommerce-product-image-gallery span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 3;
}

/* Meta: SKU, categories, tags */
body :is(.product_meta, .wp-block-woocommerce-product-meta, .wp-block-woocommerce-product-sku, .wc-block-components-product-sku, .wp-block-post-terms.taxonomy-product_cat, .wp-block-post-terms.taxonomy-product_tag) {
	color: var(--cvw-stone);
	font-size: 16px;
	line-height: 1.6;
}
body .product_meta > span {
	display: block;
	margin: 4px 0;
	color: var(--cvw-sand);
}
body :is(.product_meta a, .wp-block-post-terms a, .wp-block-woocommerce-product-meta a) {
	color: var(--cvw-gold-light);
	text-decoration: underline;
	text-decoration-color: var(--cvw-line-gold);
	text-underline-offset: 4px;
}
body :is(.product_meta a, .wp-block-post-terms a, .wp-block-woocommerce-product-meta a):hover {
	color: var(--cvw-parchment);
	text-decoration-color: currentColor;
}
body .wc-block-components-product-sku strong,
body .sku_wrapper {
	color: var(--cvw-sand);
	font-weight: 500;
}

/* Single-product price (block + classic) */
body :is(.wp-block-woocommerce-single-product, .single-product) .wp-block-woocommerce-product-price,
body .single-product .price {
	color: var(--cvw-parchment);
	font-size: 32px;
	font-weight: 600;
}
body .price del,
body .price del .woocommerce-Price-amount {
	color: var(--cvw-stone);
	font-weight: 400;
}
body .price ins {
	color: var(--cvw-sale);
	text-decoration: none;
}

/* Product details tabs (description / additional information) */
body .wp-block-woocommerce-product-details {
	color: var(--cvw-sand);
}
body .wc-tabs,
body .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	list-style: none;
}
body .woocommerce-tabs ul.tabs::before,
body .woocommerce-tabs ul.tabs::after,
body .woocommerce-tabs ul.tabs li::before,
body .woocommerce-tabs ul.tabs li::after {
	display: none;
}
body .woocommerce-tabs ul.tabs li {
	margin: 0;
	border: 1px solid var(--cvw-line-gold);
	border-radius: var(--cvw-r-sm);
	background: transparent;
}
body .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 20px;
	color: var(--cvw-sand);
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
}
body .woocommerce-tabs ul.tabs li.active {
	border-color: var(--cvw-gold);
	background: var(--cvw-gold);
}
body .woocommerce-tabs ul.tabs li.active a {
	color: var(--cvw-bg);
}
body .woocommerce-tabs .panel {
	color: var(--cvw-sand);
}
body table.woocommerce-product-attributes,
body .wp-block-woocommerce-product-specifications table {
	width: 100%;
	border-collapse: collapse;
	color: var(--cvw-sand);
}
body table.woocommerce-product-attributes :is(th, td),
body .wp-block-woocommerce-product-specifications :is(th, td) {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--cvw-line);
	background: transparent;
	color: var(--cvw-sand);
	font-size: 16px;
	text-align: left;
}
body table.woocommerce-product-attributes th {
	color: var(--cvw-parchment);
	font-weight: 600;
}

/* Related products heading */
body :is(.related.products, .up-sells.upsells, .cross-sells) > h2,
body .wp-block-woocommerce-related-products .wp-block-heading {
	color: var(--cvw-parchment);
	font-family: var(--cvw-font-display);
	letter-spacing: .03em;
	text-transform: uppercase;
}

/* ==========================================================================
   13. Classic (shortcode) fallbacks: tables, forms, coupon toggle
   ========================================================================== */
body .woocommerce table.shop_table,
body .woocommerce table.shop_table_responsive {
	width: 100%;
	border: 1px solid var(--cvw-line);
	border-radius: var(--cvw-r-sm);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--cvw-card);
	color: var(--cvw-sand);
}
body .woocommerce table.shop_table :is(th, td) {
	padding: 14px 16px;
	border: 0;
	border-top: 1px solid var(--cvw-line);
	background: transparent;
	color: var(--cvw-sand);
	font-size: 16px;
	text-align: left;
}
body .woocommerce table.shop_table thead th {
	border-top: 0;
	color: var(--cvw-stone);
	font-size: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
}
body .woocommerce table.shop_table :is(tfoot th, .product-name a) {
	color: var(--cvw-parchment);
}
body .woocommerce form .form-row label {
	color: var(--cvw-sand);
	font-size: 16px;
	line-height: 1.5;
}
body .woocommerce form .form-row :is(input.input-text, select) {
	box-sizing: border-box;
	width: 100%;
	height: 56px;
	padding: 0 16px;
	border: 1px solid var(--cvw-line-input);
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-input);
	color: var(--cvw-parchment);
	color-scheme: dark;
	font-family: var(--cvw-font-sans);
	font-size: 17px;
	box-shadow: none;
}
body .woocommerce form .form-row :is(input.input-text, select):focus {
	outline: none;
	border-color: var(--cvw-gold);
	box-shadow: var(--cvw-ring);
}
body .woocommerce form .form-row .required {
	color: var(--cvw-error);
	text-decoration: none;
}
body .woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select) {
	border-color: var(--cvw-error);
}
body .woocommerce form .form-row.woocommerce-invalid label {
	color: var(--cvw-error);
}
body .woocommerce-checkout #payment {
	border-radius: var(--cvw-r-sm);
	background: var(--cvw-card);
	color: var(--cvw-sand);
}
body .woocommerce-checkout #payment div.payment_box {
	background: var(--cvw-notice);
	color: var(--cvw-sand);
}
body .woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--cvw-notice);
}
body .woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--cvw-line);
}

/* ==========================================================================
   14. Focus, skeletons, misc, reduced motion
   ========================================================================== */
body :is(
	.wc-block-components-button,
	.wc-block-components-product-button__button,
	.wp-block-woocommerce-product-button .wp-block-button__link,
	.wc-block-mini-cart__shopping-button .wp-block-button__link,
	.wc-block-components-panel__button,
	.wc-block-cart-item__remove-link,
	.wc-block-components-totals-coupon-link,
	.wc-block-components-product-name,
	.wc-block-components-checkout-return-to-cart-button,
	.woocommerce-breadcrumb a,
	.wp-block-query-pagination a,
	.woocommerce-pagination a,
	.woocommerce a.button,
	.woocommerce button.button
):focus-visible {
	outline: 2px solid var(--cvw-green-mist);
	outline-offset: 3px;
	box-shadow: none;
}
body .wc-block-product .wp-block-post-title a:focus-visible {
	outline: 2px solid var(--cvw-green-mist);
	outline-offset: 3px;
	border-radius: var(--cvw-r-sm);
}
body :is(.wc-block-components-button, .wc-block-mini-cart__button):focus:not(:focus-visible) {
	outline: none;
}

/* Skeleton / loading placeholders on dark */
body .wc-block-components-skeleton__element,
body .wc-block-cart--is-loading .wc-block-components-product-name,
body .wc-block-cart--is-loading .wc-block-components-product-price {
	background-color: rgba(239, 227, 200, .08);
}
body .wc-block-components-spinner {
	color: var(--cvw-gold);
}
body .wc-block-components-loading-mask__children {
	color: inherit;
}
/* Horizontal rules inside Woo containers */
body :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) hr {
	border: 0;
	border-top: 1px solid var(--cvw-line);
}

@media (max-width: 600px) {
	body .wp-block-woocommerce-cart-totals-block,
	body .wp-block-woocommerce-checkout-totals-block {
		padding: 18px;
	}
	body .wp-block-woocommerce-cart-items-block {
		padding: 4px 14px;
	}
	body .wc-block-order-confirmation-summary {
		padding: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body :is(.wc-block-components-drawer, .wc-block-components-drawer__screen-overlay) {
		animation: none !important;
		transition: none !important;
	}
	body .wc-block-product .wc-block-components-product-image img {
		transition: none;
		transform: none !important;
	}
}

/* ==========================================================================
   Product page + shop layout (1:1 with site/produkt.html and site/sklep.html)
   ========================================================================== */
@media (min-width: 1180px) {
	:root body .k-pd-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 56px;
	}
	:root body .k-pd-media {
		height: min(70svh, 660px);
	}
}
body .k-pd-grid > * {
	margin-block: 0;
}
body .k-pd-media {
	overflow: hidden;
}
body .k-pd-media .wp-block-woocommerce-product-image-gallery {
	position: absolute;
	inset: 18px;
	margin: 0;
}
body .k-pd-media .woocommerce-product-gallery {
	height: 100%;
	margin: 0;
	width: auto;
	max-width: none;
	opacity: 1 !important;
}
body .k-pd-media .woocommerce-product-gallery__wrapper {
	height: 100%;
	margin: 0;
}
body .k-pd-media .woocommerce-product-gallery__image {
	height: 100%;
	margin: 0;
}
body .k-pd-media .woocommerce-product-gallery__image:not(:first-child),
body .k-pd-media .woocommerce-product-gallery__trigger,
body .k-pd-media .flex-control-thumbs,
body .k-pd-media .onsale {
	display: none !important;
}
body .k-pd-media .woocommerce-product-gallery__image a {
	display: block;
	height: 100%;
	pointer-events: none;
}
body .k-pd-media .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

/* Breadcrumbs (like .cv-crumbs) */
body :is(.k-pd-crumbs, .k-shop-head) .woocommerce-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 0;
	padding: 0;
	font-size: 15px;
	line-height: 24px;
	color: var(--text-heading);
}
body :is(.k-pd-crumbs, .k-shop-head) .woocommerce-breadcrumb a {
	color: var(--cv-sand);
	text-decoration: underline;
	text-decoration-color: var(--line-gold-soft);
	text-underline-offset: 4px;
}
body :is(.k-pd-crumbs, .k-shop-head) .woocommerce-breadcrumb a:hover {
	color: var(--cv-gold-light);
}

/* Product info column */
body .k-pd-info {
	gap: 16px;
	align-items: stretch;
}
body .k-pd-info > * {
	margin-block: 0;
}
body .k-pd-info .cv-catlabel {
	display: block;
	margin: 0;
}
body .k-pd-info .cv-catlabel a {
	color: inherit;
	text-decoration: none;
}
body .k-pd-info .k-pd-title {
	margin: 0;
	font: 600 clamp(30px, 4vw, 44px)/1.12 var(--font-display);
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--text-heading);
}
body .k-pd-info .k-pd-meta,
body .k-pd-info .k-pd-meta p {
	margin: 0;
	font: 400 19px/1.45 var(--font-sans);
	color: var(--cv-sand);
}
body .k-pd-info .k-pd-capacity {
	align-self: flex-start;
	width: auto;
	margin: 0;
}
body .k-pd-features {
	display: grid;
	gap: 10px;
	margin: 4px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--line-neutral);
	font-size: 16px;
}
body .k-pd-features__item {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	align-items: flex-start;
	margin: 0;
}
body .k-pd-features__item p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}
body .k-pd-features .cv-icon-svg {
	display: inline-flex;
	flex: none;
	margin-top: 3px;
	color: var(--cv-gold);
}
@media (min-width: 560px) {
	body .k-packs {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

body :is(.k-pd-crumbs, .k-shop-head) .woocommerce-breadcrumb .k-crumb-sep {
	color: var(--line-gold-soft);
}
body .k-pd-media .woocommerce-product-gallery .woocommerce-product-gallery__image img {
	width: 100% !important;
	height: 100% !important;
	max-height: 100%;
	object-fit: contain;
}
body .k-pd-buybox .cv-btn {
	flex: 0 0 auto;
}

/* Original boxes are content-box: 1200px content + 20px padding each side */
:root body :is(.k-pd-crumbs, .k-pd-grid, .k-pd-related, .k-shop-head, .k-shop-body) {
	max-width: 1240px;
}
:root body .k-pd-tabs {
	max-width: 920px;
}
body .k-pd-info .cv-catlabel,
body .k-pd-info .cv-catlabel a {
	margin-top: 0;
	font-size: 15px;
	line-height: normal;
	color: var(--cv-gold);
}
body .k-pd-info .cv-catlabel {
	padding-top: 3px;
}
body .k-pack {
	font-size: 13.3333px;
	line-height: normal;
}
body .k-pack__n { font-size: 17px; line-height: normal; }
body .k-pack__price { font-size: 14px; line-height: normal; }
body .k-pack__save { font-size: 12px; line-height: normal; }
body .cv-packpicker__qtyinput {
	width: 34px;
	min-width: 34px;
	padding: 0;
}
body .cv-packpicker--product .k-pd-buybox .cv-btn > .cv-packpicker__ico:first-child {
	display: none;
}
body .k-pd-features__item {
	min-height: 31px;
}

body .cv-main--product,
body .cv-main--shop {
	padding-top: 32px;
}
body .cv-main--product {
	padding-bottom: 64px;
}
body :is(.k-pd-crumbs, .k-shop-head) .woocommerce-breadcrumb {
	line-height: 25px;
}
body .k-pd-crumbs {
	margin-bottom: 20px;
}
body .k-pd-info .cv-catlabel {
	margin-bottom: 3px;
}

/* ---- Shop ---- */
body .k-shop-head .k-shop-titlewrap {
	margin: 12px 0 4px !important;
}
body .k-shop-toolbar {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 24px;
}
body .k-shop-body {
	gap: 24px;
}
body .k-shop-toolbar .woocommerce-ordering,
body .k-shop-toolbar .wc-block-catalog-sorting {
	order: 1;
	margin: 0;
}
body .k-shop-toolbar .woocommerce-ordering select,
body .k-shop-toolbar .wc-block-catalog-sorting select {
	height: 44px;
	padding: 0 40px 0 14px;
	font: 500 16px var(--font-sans);
	width: auto;
	min-width: 0;
}
body .k-shop-toolbar .k-shop-results {
	order: 2;
	align-self: stretch;
	text-align: left;
	color: var(--text-muted);
	font-size: 16px;
	line-height: 26px;
}
/* The product card itself is .cv-pcard; the list item must stay a plain cell */
:root body .wc-block-product-template > .wc-block-product {
	display: block;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	overflow: visible;
}
:root body .wc-block-product-template > .wc-block-product > .cv-pcard {
	height: 100%;
	margin: 0;
}
:root body .wc-block-product-template.wc-block-product-template__responsive,
:root body .wc-block-product-template {
	grid-template-columns: 1fr;
	gap: 16px;
	grid-gap: 16px;
}
@media (min-width: 640px) {
	:root body .wc-block-product-template.wc-block-product-template__responsive,
	:root body .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1180px) {
	:root body .wc-block-product-template.wc-block-product-template__responsive,
	:root body .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

:root body .wp-block-woocommerce-breadcrumbs nav.woocommerce-breadcrumb {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
}
:root body .k-shop-results .woocommerce-result-count {
	margin: 0;
	text-align: left;
	color: var(--text-muted);
	font-size: 16px;
	line-height: 26px;
}
:root:root body .wc-block-product-template > .wc-block-product > .cv-pcard.wp-block-group {
	margin: 0;
}

@media (max-width: 639px) {
	body .k-shop-toolbar {
		gap: 12px;
		align-items: stretch;
	}
	body .k-shop-toolbar .woocommerce-ordering,
	body .k-shop-toolbar .wc-block-catalog-sorting,
	body .k-shop-toolbar .woocommerce-ordering select {
		width: 100%;
		height: 40px;
		font-size: 15px;
	}
}

body .k-empty .wp-block-search {
	width: 100%;
	max-width: 480px;
	box-sizing: border-box;
}
body .k-empty .wp-block-search__inside-wrapper {
	display: flex;
	gap: 10px;
	width: 100%;
	padding: 0;
	border: 0;
}
body .k-empty .wp-block-search__input {
	flex: 1 1 0;
	min-width: 0;
	height: 56px;
	padding: 0 14px;
	border: 1px solid var(--line-input);
	border-radius: 4px;
	background: var(--surface-input);
	color: var(--text-heading);
	font: 400 16px var(--font-sans);
}
body .k-empty .wp-block-search__button {
	flex: none;
	margin: 0;
}
body .cv-packpicker__save {
	display: none;
}

body .k-pd-crumbs > *,
body .k-shop-head > .wp-block-woocommerce-breadcrumbs {
	margin-block: 0;
}
:root body .wc-block-breadcrumbs {
	margin: 0;
	padding: 0;
}
:root body .wp-block-woocommerce-breadcrumbs nav.woocommerce-breadcrumb a {
	color: var(--cv-sand);
	text-decoration-color: var(--line-gold-soft);
}
:root body .wp-block-woocommerce-breadcrumbs nav.woocommerce-breadcrumb a:hover {
	color: var(--cv-gold-light);
}
:root body .k-packs {
	gap: 10px;
}
body .k-pd-features__item p {
	line-height: 1.65;
}

:root body .k-pack {
	margin: 0;
}
:root body .cv-main--product > .k-pd-grid {
	margin-top: 0;
}
