/* Klelia pulsanti: tutti i pulsanti, i campi e i riquadri ancora squadrati diventano tondeggianti (Marketipo, 2 ott 2026).
   Stesso sistema già online (klelia-prodotti, klelia-testata): pillole 999 px, primario pieno vino #632a48 con passaggio
   #4e1f38, secondario a contorno #dccfd7 che al passaggio va al vino; campi 12 px; riquadri 16 px (strisce 14 px).
   Solo CSS. Ogni selettore ha un contesto (body.<pagina>, #header .kh, #pp-tracking-page, .cmplz-cookiebanner…):
   niente tag nudi, niente .btn o .button da soli. Non tocca la scheda prodotto (pulsante del carrello, taglie, guida),
   la colonna dei filtri, la barra strumenti e la griglia di shop e categorie, né la sezione «La nostra idea». */

:root {
	--kv-vino: #632a48;
	--kv-vino-su: #4e1f38;
	--kv-vino-spento: #8f6880;
	--kv-lampone: #a8447a;
	--kv-melanzana: #3b3644;
	--kv-testo: #222529;
	--kv-grigio: #6b6275;
	--kv-cipria: #ffecf8;
	--kv-rosa: #fdf3fc;
	--kv-tessera: #f7f1f5;
	--kv-filetto: #eadde5;
	--kv-bordo: #dccfd7;
	--kv-bordo-su: #c7b3c0;
	--kv-verde: #3f8a5c;
	--kv-alone: 0 0 0 3px rgba(99, 42, 72, .14);
}

/* ═════════ 1. Pulsante primario: pillola piena vino ═════════ */

body.woocommerce-cart .wc-proceed-to-checkout :is(a.btn, a.checkout-button),
body.woocommerce-cart .return-to-shop a.button,
body.woocommerce-checkout #place_order,
body.woocommerce-account .woocommerce :is(button, a, input[type="submit"]).woocommerce-Button,
body.woocommerce-wishlist .shop_table.wishlist_table .product-add-to-cart a.button,
body.woocommerce-wishlist .wishlist_table a.btn-go-shop,
#pp-tracking-page .pp-tracking-form button.btn-enter,
.elementor-widget-porto_button > a.btn.btn-primary {
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	height: auto !important;
	padding: 0 28px !important;
	border: 1px solid var(--kv-vino) !important;
	border-radius: 999px !important;
	background: var(--kv-vino) !important;
	box-shadow: none !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	text-align: center;
	color: #fff !important;
	opacity: 1;
	cursor: pointer;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
/* display solo dove nessuno lo nasconde: #place_order lo nasconde PayPal, quindi lì non si tocca */
body.woocommerce-cart .wc-proceed-to-checkout :is(a.btn, a.checkout-button),
body.woocommerce-cart .return-to-shop a.button,
body.woocommerce-account .woocommerce :is(button, a, input[type="submit"]).woocommerce-Button,
body.woocommerce-wishlist .shop_table.wishlist_table .product-add-to-cart a.button,
body.woocommerce-wishlist .wishlist_table a.btn-go-shop,
#pp-tracking-page .pp-tracking-form button.btn-enter,
.elementor-widget-porto_button > a.btn.btn-primary {
	display: inline-flex !important;
}
body.woocommerce-cart .wc-proceed-to-checkout :is(a.btn, a.checkout-button):hover,
body.woocommerce-cart .return-to-shop a.button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-account .woocommerce :is(button, a, input[type="submit"]).woocommerce-Button:hover,
body.woocommerce-wishlist .shop_table.wishlist_table .product-add-to-cart a.button:hover,
body.woocommerce-wishlist .wishlist_table a.btn-go-shop:hover,
#pp-tracking-page .pp-tracking-form button.btn-enter:hover,
.elementor-widget-porto_button > a.btn.btn-primary:hover {
	border-color: var(--kv-vino-su) !important;
	background: var(--kv-vino-su) !important;
	color: #fff !important;
}
body.woocommerce-checkout #place_order:is(:disabled, .disabled),
body.woocommerce-account .woocommerce :is(button, input[type="submit"]).woocommerce-Button:disabled {
	border-color: var(--kv-vino-spento) !important;
	background: var(--kv-vino-spento) !important;
	cursor: not-allowed;
}
/* icone già nel markup: freccia di «Procedi con l'ordine» */
body.woocommerce-cart .wc-proceed-to-checkout a.btn i {
	padding: 0 !important;
	font-size: 13px;
	transition: transform .25s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout a.btn:hover i {
	transform: translateX(3px);
}

/* ═════════ 2. Pulsante secondario: pillola a contorno ═════════ */

body.woocommerce-cart .cart-v2 .actions button.button,
body.woocommerce-cart .woocommerce-shipping-calculator button.button,
body.woocommerce-checkout .checkout_coupon button.button,
body.woocommerce-account .woocommerce :is(a, button).woocommerce-button,
body.single-product .elementor-widget-porto_cp_add_to_cart a.view-cart-btn,
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	height: auto !important;
	margin: 0 !important;
	padding: 0 24px !important;
	border: 1px solid var(--kv-bordo) !important;
	border-radius: 999px !important;
	background: #fff !important;
	box-shadow: none !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	text-align: center;
	white-space: nowrap;
	color: var(--kv-vino) !important;
	opacity: 1;
	cursor: pointer;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
body.woocommerce-cart .cart-v2 .actions button.button,
body.woocommerce-cart .woocommerce-shipping-calculator button.button,
body.woocommerce-checkout .checkout_coupon button.button,
body.woocommerce-account .woocommerce :is(a, button).woocommerce-button,
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
	display: inline-flex !important;
}
body.woocommerce-cart .cart-v2 .actions button.button:hover,
body.woocommerce-cart .woocommerce-shipping-calculator button.button:hover,
body.woocommerce-checkout .checkout_coupon button.button:hover,
body.woocommerce-account .woocommerce :is(a, button).woocommerce-button:hover,
body.single-product .elementor-widget-porto_cp_add_to_cart a.view-cart-btn:hover,
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button:hover {
	border-color: var(--kv-vino) !important;
	background: var(--kv-rosa) !important;
	color: var(--kv-vino) !important;
}
body.woocommerce-cart .cart-v2 .actions button.button:disabled,
body.woocommerce-cart .cart-v2 .actions button.button:disabled:hover {
	border-color: #eee6eb !important;
	background: #fff !important;
	color: #b3a9b1 !important;
	cursor: not-allowed;
}

/* ═════════ 3. Campi: un solo raggio, 12 px ═════════
   Pillole per i pulsanti (si premono), 12 px per i campi (si scrive): la differenza si legge al primo sguardo;
   12 px vale anche per le aree di testo su più righe e per le tendine, che una pillola deformerebbe;
   è lo stesso raggio delle tessere e quasi quello delle taglie (10 px). Le ricerche (testata, blog) restano
   pillole: sono un comando unico con il pulsante dentro, come la ricerca dell'header già online. */

body.woocommerce-cart :is(.coupon, .woocommerce-shipping-calculator) input.input-text,
body.woocommerce-checkout .woocommerce :is(input.input-text:not(.qty), textarea, select),
body.woocommerce-account .woocommerce :is(input.input-text, input[type="email"], input[type="password"], input[type="tel"], textarea, select),
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single,
#pp-tracking-page .pp-tracking-form .pp-input input {
	min-height: 50px;
	margin: 0;
	border: 1px solid var(--kv-bordo) !important;
	border-radius: 12px !important;
	background-color: #fff !important;
	box-shadow: none !important;
	font-size: 15px !important;
	color: var(--kv-testo) !important;
	transition: border-color .2s ease, box-shadow .2s ease;
}
/* campi di testo: l'altezza viene dal padding (13 + 22 + 13 + 2 = 50 px), non da height con padding 0.
   Il plugin WooCommerce Stripe disegna i campi della carta e di Klarna (cassa, order-pay, «Aggiungi metodo di
   pagamento») copiando padding, interlinea, carattere e bordi di un input della pagina: un clone di
   #billing_first_name (#wc-stripe-hidden-input) o #wc-stripe-hidden-style-input. Con padding 0 i campi della carta
   uscivano alti 24 px; così escono da 50 px, col raggio 12 e il bordo del sito. */
body.woocommerce-cart :is(.coupon, .woocommerce-shipping-calculator) input.input-text,
body.woocommerce-checkout .woocommerce input.input-text:not(.qty),
body.woocommerce-account .woocommerce :is(input.input-text, input[type="email"], input[type="password"], input[type="tel"]),
#pp-tracking-page .pp-tracking-form .pp-input input {
	height: auto !important;
	padding: 13px 16px !important;
	line-height: 22px !important;
}
/* tendine native (dove select2 non le sostituisce): altezza fissa, nelle tendine l'interlinea non conta */
body.woocommerce-checkout .woocommerce select:not(.select2-hidden-accessible),
body.woocommerce-account .woocommerce select:not(.select2-hidden-accessible) {
	height: 50px !important;
	padding: 0 40px 0 16px !important;
	line-height: normal !important;
}
body.woocommerce-checkout .woocommerce :is(textarea.input-text:not(.qty), textarea),
body.woocommerce-account .woocommerce :is(textarea.input-text, textarea) {
	height: auto !important;
	min-height: 120px;
	padding: 13px 16px !important;
	line-height: 1.5 !important;
	resize: vertical;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single {
	height: 50px !important;
	padding: 0 !important;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 44px 0 16px !important;
	line-height: 48px !important;
	color: var(--kv-testo) !important;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 1px !important;
	right: 12px !important;
	height: 48px !important;
	transform: none !important;
}
/* il contenitore di select2 prende l'altezza del campo (Porto lo lascia a 38 px nel carrello) */
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2.select2-container--default {
	height: auto !important;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2.select2-container--default > .selection {
	display: block !important;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single .select2-selection__arrow::before {
	line-height: 48px !important;
	color: var(--kv-grigio);
}
body.woocommerce-cart :is(.coupon, .woocommerce-shipping-calculator) input.input-text:hover,
body.woocommerce-checkout .woocommerce :is(input.input-text:not(.qty), textarea, select):hover,
body.woocommerce-account .woocommerce :is(input.input-text, input[type="email"], input[type="password"], input[type="tel"], textarea, select):hover,
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single:hover,
#pp-tracking-page .pp-tracking-form .pp-input input:hover {
	border-color: var(--kv-bordo-su) !important;
}
body.woocommerce-cart :is(.coupon, .woocommerce-shipping-calculator) input.input-text:focus,
body.woocommerce-checkout .woocommerce :is(input.input-text:not(.qty), textarea, select):focus,
body.woocommerce-account .woocommerce :is(input.input-text, input[type="email"], input[type="password"], input[type="tel"], textarea, select):focus,
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default:is(.select2-container--focus, .select2-container--open) .select2-selection--single,
#pp-tracking-page .pp-tracking-form .pp-input input:focus {
	border-color: var(--kv-vino) !important;
	outline: 0 !important;
	box-shadow: var(--kv-alone) !important;
}
body.woocommerce-cart :is(.coupon, .woocommerce-shipping-calculator) input.input-text::placeholder,
body.woocommerce-checkout .woocommerce :is(input.input-text, textarea)::placeholder,
body.woocommerce-account .woocommerce :is(input.input-text, textarea)::placeholder,
#pp-tracking-page .pp-tracking-form .pp-input input::placeholder {
	font-size: inherit !important;
	font-weight: 400 !important;
	color: var(--kv-grigio) !important;
	opacity: 1;
}
/* errore di convalida di WooCommerce */
:is(body.woocommerce-checkout, body.woocommerce-account, body.woocommerce-cart) .form-row.woocommerce-invalid :is(input.input-text, textarea, select, .select2-selection) {
	border-color: var(--kv-lampone) !important;
}
/* tendina di select2 (appesa a body) */
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--open .select2-dropdown {
	overflow: hidden;
	border: 1px solid var(--kv-vino) !important;
	border-radius: 12px !important;
	box-shadow: 0 12px 30px rgba(59, 54, 68, .14);
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--open .select2-dropdown--below {
	margin-top: 6px;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--open .select2-dropdown--above {
	margin-top: -6px;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--open .select2-selection--single {
	border-radius: 12px !important;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-dropdown .select2-search__field {
	height: 40px;
	padding: 0 12px !important;
	border: 1px solid var(--kv-bordo) !important;
	border-radius: 10px !important;
	font-size: 15px;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-results__option {
	padding: 9px 16px;
	font-size: 14.5px;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-results__option--highlighted[aria-selected],
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--kv-vino) !important;
	color: #fff !important;
}
/* «mostra password» dentro il campo */
body.woocommerce-account .woocommerce .password-input .show-password-input {
	top: 5px !important;
	right: 6px !important;
	width: 40px;
	height: 40px !important;
	border-radius: 50% !important;
	color: var(--kv-grigio);
	transition: background-color .2s ease, color .2s ease;
}
body.woocommerce-account .woocommerce .password-input .show-password-input:hover {
	background-color: var(--kv-rosa);
	color: var(--kv-vino);
}

/* caselle e scelte di Porto (Ricordami, Crea un account, Spedire altrove, metodi di pagamento, termini) */
:is(body.woocommerce-checkout, body.woocommerce-account, body.woocommerce-cart) .porto-checkbox .porto-control-label::before {
	border: 1px solid var(--kv-bordo-su) !important;
	border-radius: 6px !important;
	background-color: #fff;
	transition: background-color .2s ease, border-color .2s ease;
}
:is(body.woocommerce-checkout, body.woocommerce-account, body.woocommerce-cart) .porto-checkbox .porto-control-input:checked ~ .porto-control-label::before {
	border-color: var(--kv-vino) !important;
	background-color: var(--kv-vino) !important;
}
:is(body.woocommerce-checkout, body.woocommerce-account, body.woocommerce-cart) .porto-checkbox .porto-control-input:checked ~ .porto-control-label::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.2 4.6 8.2 10.5 1.8'/%3E%3C/svg%3E") !important;
	background-size: 11px 9px !important;
}
:is(body.woocommerce-checkout, body.woocommerce-account, body.woocommerce-cart) .porto-control-input:focus-visible ~ .porto-control-label::before {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--kv-vino);
	border-color: var(--kv-vino) !important;
}
/* caselle native della cassa (newsletter di Klaviyo, «Ho letto e accetto termini e condizioni», «Salva le
   informazioni di pagamento» di Stripe): le stesse di Porto, 20 px, raggio 6, piene vino con la spunta bianca */
body.woocommerce-checkout .woocommerce input[type="checkbox"]:where(.input-checkbox, #wc-stripe-new-payment-method):not(.porto-control-input) {
	-webkit-appearance: none;
	appearance: none;
	display: inline-block !important;
	flex: none;
	width: 20px !important;
	height: 20px !important;
	margin: 0 10px 0 0 !important;
	padding: 0 !important;
	border: 1px solid var(--kv-bordo-su) !important;
	border-radius: 6px !important;
	background: #fff no-repeat center / 11px 9px;
	vertical-align: -5px !important;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}
body.woocommerce-checkout .woocommerce input[type="checkbox"]:where(.input-checkbox, #wc-stripe-new-payment-method):not(.porto-control-input):hover {
	border-color: var(--kv-vino) !important;
}
body.woocommerce-checkout .woocommerce input[type="checkbox"]:where(.input-checkbox, #wc-stripe-new-payment-method):not(.porto-control-input):checked {
	border-color: var(--kv-vino) !important;
	background-color: var(--kv-vino);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.2 4.6 8.2 10.5 1.8'/%3E%3C/svg%3E");
}
body.woocommerce-checkout .woocommerce input[type="checkbox"]:where(.input-checkbox, #wc-stripe-new-payment-method):not(.porto-control-input):focus-visible {
	outline: 0 !important;
	border-color: var(--kv-vino) !important;
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--kv-vino);
}
body.woocommerce-checkout .form-row.woocommerce-invalid input[type="checkbox"].input-checkbox:not(.porto-control-input) {
	border-color: var(--kv-lampone) !important;
}
/* casella dentro la sua etichetta (newsletter, termini): rientro come le etichette di Porto, il testo che va a capo
   resta allineato alla prima riga e non torna sotto la casella. Senza :has() resta in linea, come prima. */
body.woocommerce-checkout .woocommerce label:has(> input[type="checkbox"].input-checkbox:not(.porto-control-input)) {
	position: relative;
	padding-left: 30px !important;
}
body.woocommerce-checkout .woocommerce label:has(> input[type="checkbox"].input-checkbox:not(.porto-control-input)) > input[type="checkbox"].input-checkbox:not(.porto-control-input) {
	position: absolute;
	top: 2px;
	left: 0;
	margin: 0 !important;
}
:is(body.woocommerce-checkout, body.woocommerce-cart) .porto-radio .porto-control-label::before {
	border-color: var(--kv-bordo-su) !important;
}
:is(body.woocommerce-checkout, body.woocommerce-cart) .porto-radio .porto-control-input:checked ~ .porto-control-label::before {
	border-color: var(--kv-vino) !important;
}
:is(body.woocommerce-checkout, body.woocommerce-cart) .porto-radio .porto-control-label::after {
	border-color: var(--kv-vino) !important;
	background-color: var(--kv-vino) !important;
}
:is(body.woocommerce-checkout, body.woocommerce-account) .woocommerce input[type="checkbox"]:not(.porto-control-input) {
	accent-color: var(--kv-vino);
}

/* ═════════ 4. Quantità: la pillola della scheda prodotto (carrello, cassa, mini carrello) ═════════ */

body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added,
body.woocommerce-checkout #order_review .quantity.buttons_added,
#header .kh .kh-carrello .product-details .quantity.buttons_added {
	display: inline-flex !important;
	flex: none;
	align-items: center;
	width: auto !important;
	height: 44px;
	margin: 0;
	padding: 0 3px !important;
	border: 1px solid var(--kv-bordo) !important;
	border-radius: 999px !important;
	background: #fff !important;
	vertical-align: middle;
	transition: border-color .2s ease;
}
body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added :is(.minus, .plus),
body.woocommerce-checkout #order_review .quantity.buttons_added :is(.minus, .plus),
#header .kh .kh-carrello .product-details .quantity.buttons_added :is(.minus, .plus) {
	display: grid !important;
	place-items: center;
	flex: none;
	width: 36px !important;
	height: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	color: var(--kv-testo) !important;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added :is(.minus, .plus):hover,
body.woocommerce-checkout #order_review .quantity.buttons_added :is(.minus, .plus):hover,
#header .kh .kh-carrello .product-details .quantity.buttons_added :is(.minus, .plus):hover {
	background: var(--kv-rosa) !important;
	color: var(--kv-vino) !important;
}
body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added .qty,
body.woocommerce-checkout #order_review .quantity.buttons_added .qty,
#header .kh .kh-carrello .product-details .quantity.buttons_added .qty {
	flex: none;
	width: 32px !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	text-align: center;
	color: var(--kv-testo) !important;
	-moz-appearance: textfield;
	appearance: textfield;
}
body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added .qty::-webkit-inner-spin-button,
body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added .qty::-webkit-outer-spin-button,
body.woocommerce-checkout #order_review .quantity.buttons_added .qty::-webkit-inner-spin-button,
body.woocommerce-checkout #order_review .quantity.buttons_added .qty::-webkit-outer-spin-button,
#header .kh .kh-carrello .product-details .quantity.buttons_added .qty::-webkit-inner-spin-button,
#header .kh .kh-carrello .product-details .quantity.buttons_added .qty::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added:focus-within,
body.woocommerce-checkout #order_review .quantity.buttons_added:focus-within,
#header .kh .kh-carrello .product-details .quantity.buttons_added:focus-within {
	border-color: var(--kv-vino) !important;
}
/* mini carrello: un filo più piccola, sotto il nome */
#header .kh .kh-carrello .product-details .quantity.buttons_added {
	height: 40px;
	margin-top: 6px;
}
#header .kh .kh-carrello .product-details .quantity.buttons_added :is(.minus, .plus) {
	width: 32px !important;
	height: 32px !important;
	font-size: 16px !important;
}
#header .kh .kh-carrello .product-details .quantity.buttons_added .qty {
	width: 30px !important;
	font-size: 14px !important;
}

/* ═════════ 5. Riquadri: totale carrello, il tuo ordine, codice promozionale, spedizione gratuita ═════════ */

body.woocommerce-cart .cart_totals .card {
	padding: 28px 28px 24px !important;
	border: 1px solid var(--kv-filetto) !important;
	border-radius: 16px !important;
	background: #fff !important;
	box-shadow: none !important;
}
body.woocommerce-checkout .checkout-order-review .box-content {
	padding: 26px 28px 28px !important;
	border: 1px solid var(--kv-filetto) !important;
	border-radius: 16px !important;
	background: #fff !important;
}
body.woocommerce-checkout .checkout_coupon .featured-box {
	margin: 0 0 24px !important;
	min-height: 0;
	border: 1px solid var(--kv-filetto) !important;
	border-radius: 16px !important;
	box-shadow: none !important;
	overflow: hidden;
}
body.woocommerce-checkout .checkout_coupon .featured-box .box-content {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 18px 20px !important;
	border-top: 0 !important;
	top: 0 !important;
}
body.woocommerce-checkout .checkout_coupon .featured-box .box-content .form-row {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.woocommerce-checkout .checkout_coupon .featured-box .box-content .form-row-first {
	flex: 1 1 220px;
	max-width: 340px;
}
body.woocommerce-checkout .checkout_coupon .featured-box .box-content .clear {
	display: none;
}
/* «Hai un codice promozionale? Clicca qui…»: striscia di avviso */
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	padding: 15px 20px;
	border: 1px solid var(--kv-filetto);
	border-radius: 14px;
	background: var(--kv-rosa);
	font-size: 14.5px;
	letter-spacing: 0;
	color: var(--kv-testo);
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon {
	margin-left: 4px;
	font-size: 12px;
	font-weight: 600 !important;
	letter-spacing: .12em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	color: var(--kv-vino) !important;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon:hover {
	text-decoration-thickness: 2px;
}

/* spedizione gratuita (Porto): striscia rosa con la barra sottile dell'header */
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping {
	padding: 15px 18px 17px !important;
	border: 1px solid var(--kv-filetto);
	border-radius: 14px;
	background: var(--kv-rosa) !important;
}
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping .porto-free-shipping-notice {
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	color: var(--kv-testo);
}
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping .porto-free-shipping-notice bdi {
	color: var(--kv-vino);
}
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping .porto-free-shipping-bar {
	height: 4px !important;
	overflow: hidden;
	border: 0;
	border-radius: 999px;
	background-color: rgba(99, 42, 72, .14) !important;
	color: var(--kv-vino);
}
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping .porto-free-shipping-bar::-webkit-progress-bar {
	border-radius: 999px;
	background-color: rgba(99, 42, 72, .14) !important;
}
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping .porto-free-shipping-bar::-webkit-progress-value {
	border-radius: 999px;
	background-color: var(--kv-vino) !important;
}
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, #header .kh .kh-carrello) .porto-free-shipping .porto-free-shipping-bar::-moz-progress-bar {
	border-radius: 999px;
	background-color: var(--kv-vino) !important;
}
body.woocommerce-cart .woocommerce-cart-form .porto-free-shipping {
	margin-bottom: 18px !important;
}
#header .kh .kh-carrello .porto-free-shipping {
	margin: 4px 24px 14px !important;
}

/* metodi di pagamento: riquadro della carta */
body.woocommerce-checkout #payment .payment_methods .payment_box {
	border-radius: 12px;
}

/* ═════════ 6. Avvisi di WooCommerce ═════════
   Testo in linea (niente flex: il nome del prodotto e la frase restano una frase), icona in un cerchio bianco a
   sinistra, pulsante a destra come lo mette WooCommerce (float). */

:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	position: relative;
	display: block;
	margin: 0 0 20px !important;
	padding: 14px 18px 14px 58px !important;
	border: 1px solid var(--kv-filetto) !important;
	border-radius: 14px !important;
	background: var(--kv-rosa) !important;
	list-style: none;
	font-size: 14.5px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--kv-testo) !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::after {
	content: "";
	display: table;
	clear: both;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	position: absolute !important;
	top: 12px !important;
	left: 16px !important;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	margin: 0 !important;
	border-radius: 50%;
	background: #fff;
	font-size: 12px !important;
	line-height: 1 !important;
	color: var(--kv-vino) !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) .woocommerce-message::before {
	color: var(--kv-verde) !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) .woocommerce-error::before {
	content: "!" !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	color: var(--kv-lampone) !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) .woocommerce-error li::before {
	content: none !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) .woocommerce-error {
	border-color: rgba(168, 68, 122, .3) !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) .woocommerce-error li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) {
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
	color: var(--kv-vino) !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
	float: right;
	min-height: 40px;
	margin: -6px -6px -6px 16px !important;
	padding: 0 18px !important;
	font-size: 11.5px !important;
}
:is(.woocommerce-notices-wrapper, .woocommerce, #main) .woocommerce-message .single-cart-notice {
	font-weight: 600;
}

/* ═════════ 7. Carrello ═════════ */

body.woocommerce-cart .cart-v2 .actions #panel-cart-discount {
	flex-wrap: wrap;
	gap: 10px;
}
body.woocommerce-cart .cart-v2 .actions .coupon {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 10px;
	max-width: 100%;
}
body.woocommerce-cart .cart-v2 .actions .coupon input.input-text {
	flex: 1 1 150px;
	width: auto !important;
	min-width: 0;
	max-width: 240px;
	min-height: 48px;
	padding-top: 12px !important;
	padding-bottom: 12px !important;
}
body.woocommerce-cart .cart-v2 .actions .coupon button.button {
	flex: none;
}
body.woocommerce-cart .cart-v2 .actions button.button[name="update_cart"] {
	flex: none;
	margin-left: auto !important;
}
body.woocommerce-cart .woocommerce-shipping-calculator .form-row {
	margin-bottom: 10px !important;
}
body.woocommerce-cart .woocommerce-shipping-calculator button.button {
	margin-top: 4px !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.btn {
	width: 100%;
	min-height: 54px;
	font-size: 13px !important;
	letter-spacing: .14em !important;
}
body.woocommerce-cart .cart-v2 .product-thumbnail img {
	border-radius: 10px;
}
body.woocommerce-cart .return-to-shop a.button {
	min-height: 54px;
	padding: 0 32px !important;
}
body.woocommerce-cart .cart-empty-page > i.cart-empty {
	color: var(--kv-bordo) !important;
}

/* ═════════ 8. Cassa ═════════ */

body.woocommerce-checkout #place_order {
	width: 100%;
	min-height: 54px;
	margin-top: 18px !important;
	font-size: 13px !important;
	letter-spacing: .14em !important;
}
body.woocommerce-checkout #order_review .product-thumbnail img {
	border-radius: 8px;
}
body.woocommerce-checkout .checkout_coupon .featured-box .box-content button.button {
	min-height: 50px;
}

/* ═════════ 9. Area clienti ═════════ */

body.woocommerce-account .woocommerce :is(button, input[type="submit"]).woocommerce-Button {
	min-height: 54px;
	font-size: 13px !important;
	letter-spacing: .14em !important;
}

/* ═════════ 10. Lista dei desideri ═════════ */

body.woocommerce-wishlist .wishlist_table:not(:has(.wishlist-empty)) {
	border: 1px solid var(--kv-filetto) !important;
	border-collapse: separate !important;
	border-spacing: 0;
	border-radius: 16px !important;
	overflow: hidden;
}
body.woocommerce-wishlist .wishlist_table:not(:has(.wishlist-empty)) thead th {
	border-bottom: 1px solid var(--kv-filetto) !important;
	background: #faf6f8 !important;
	font-size: 10.5px !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	color: var(--kv-grigio) !important;
}
body.woocommerce-wishlist .wishlist_table:not(:has(.wishlist-empty)) tbody td {
	border-top: 0 !important;
	background: #fff !important;
}
body.woocommerce-wishlist .wishlist_table .product-thumbnail img {
	border-radius: 10px;
}
body.woocommerce-wishlist .shop_table.wishlist_table .product-add-to-cart a.button {
	min-height: 46px;
	margin: 0 !important;
	padding: 0 22px !important;
	font-size: 12px !important;
	white-space: nowrap;
}
body.woocommerce-wishlist .wishlist_table a.btn-go-shop {
	min-height: 52px;
	padding: 0 34px !important;
	width: auto !important;
}
body.woocommerce-wishlist .wishlist_table i.wishlist-empty {
	color: var(--kv-bordo) !important;
}
body.woocommerce-wishlist .wishlist-title a.show-title-form {
	border-radius: 999px !important;
}

/* ═════════ 11. Traccia l'ordine (ParcelPanel) ═════════ */

#pp-root #pp-tracking-page .pp-tracking-form__container--pc {
	border: 1px solid var(--kv-filetto) !important;
	border-radius: 16px !important;
}
#pp-tracking-page .pp-tracking-form .pp-input input {
	min-height: 48px;
	margin-top: 6px !important;
	padding-top: 12px !important;
	padding-bottom: 12px !important;
}
#pp-tracking-page .pp-tracking-form button.btn-enter {
	min-height: 48px;
	padding: 0 26px !important;
}
#pp-root #pp-tracking-page .pp-tracking-form__container--mb .pp-form__tab__item--active {
	border-bottom-color: var(--kv-vino) !important;
	color: var(--kv-vino);
}

/* ═════════ 12. Ricerca del blog: pillola come la ricerca dell'header ═════════ */

.sidebar-content .wp-block-search .wp-block-search__inside-wrapper {
	align-items: center;
	padding: 4px !important;
	border: 1px solid var(--kv-bordo) !important;
	border-radius: 999px !important;
	background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.sidebar-content .wp-block-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--kv-vino) !important;
	box-shadow: var(--kv-alone);
}
.sidebar-content .wp-block-search .wp-block-search__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 42px !important;
	padding: 0 8px 0 14px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
	font-size: 15px !important;
	color: var(--kv-testo) !important;
}
.sidebar-content .wp-block-search .wp-block-search__button {
	display: grid !important;
	flex: none;
	place-items: center;
	width: 42px !important;
	height: 42px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--kv-vino) !important;
	color: #fff !important;
	transition: background-color .25s ease;
}
.sidebar-content .wp-block-search .wp-block-search__button:hover {
	background: var(--kv-vino-su) !important;
}
.sidebar-content .wp-block-search .wp-block-search__button svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

/* ═════════ 13. Paginazione: cerchi da 40 px, la pagina corrente piena ═════════ */

/* 6 px solo tra un cerchio e l'altro: un margine anche prima del primo spostava a destra la fila centrata dal concept
   negozio (prova d'insieme, concepts/INSIEME.md) */
.woocommerce-pagination ul.page-numbers li {
	margin: 0 !important;
}
.woocommerce-pagination ul.page-numbers li + li {
	margin-left: 6px !important;
}
.woocommerce-pagination ul.page-numbers li > :is(a, span).page-numbers {
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	min-width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--kv-bordo) !important;
	border-radius: 50% !important;
	background: #fff;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	color: var(--kv-testo) !important;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.woocommerce-pagination ul.page-numbers li > a.page-numbers:hover {
	border-color: var(--kv-vino) !important;
	background: var(--kv-rosa);
	color: var(--kv-vino) !important;
}
.woocommerce-pagination ul.page-numbers li > span.page-numbers.current {
	border-color: var(--kv-vino) !important;
	background: var(--kv-vino) !important;
	color: #fff !important;
}
.woocommerce-pagination ul.page-numbers li > span.page-numbers.dots {
	width: 24px;
	min-width: 24px !important;
	border-color: transparent !important;
	background: transparent;
}
.woocommerce-pagination ul.page-numbers li > a:is(.prev, .next)::before {
	top: 0 !important;
	bottom: 0;
	font-size: 15px !important;
	line-height: 38px !important;
}

/* ═════════ 14. Home: pulsanti di Elementor (porto_button), caroselli, riquadro qiib ═════════ */

/* «Guarda tutti i modelli»: primario, con la freccia del sito al posto dell'occhio */
body.home .elementor-widget-porto_button > a.btn.btn-primary {
	min-height: 54px;
	padding: 0 32px !important;
	font-size: 13px !important;
	letter-spacing: .14em !important;
}
body.home .elementor-widget-porto_button > a.btn.btn-primary > i {
	display: none;
}
body.home .elementor-widget-porto_button > a.btn.btn-primary::after {
	content: "";
	flex: none;
	width: 16px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 5h13.5M10.5 1 14.5 5l-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 5h13.5M10.5 1 14.5 5l-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .25s ease;
}
body.home .elementor-widget-porto_button > a.btn.btn-primary:hover::after {
	transform: translateX(3px);
}

/* «Esplora» sulla fascia melanzana: pillola bianca */
body.home .elementor-widget-porto_button > a.btn.btn-dark {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 36px !important;
	border: 1px solid #fff !important;
	border-radius: 999px !important;
	background: #fff !important;
	box-shadow: none !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	color: var(--kv-vino) !important;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
body.home .elementor-widget-porto_button > a.btn.btn-dark:hover {
	border-color: var(--kv-cipria) !important;
	background: var(--kv-cipria) !important;
	color: var(--kv-vino-su) !important;
}
body.home .elementor-widget-porto_button > a.btn.btn-dark span {
	text-decoration: none !important;
}
/* riquadri colorati della home ancora ad angoli vivi: la fascia di «Esplora» e il blocco del prodotto in evidenza
   («qiib»: foto più pannello rosa), 16 px come gli altri riquadri */
body.home .e-con[data-settings*="background_background"]:has(> .e-con-inner > .elementor-widget-porto_button > a.btn.btn-dark),
body.home .e-con.e-child[data-settings*="background_background"]:has(.product-type-qiib) {
	overflow: hidden;
	border-radius: 16px;
}
/* galleria «Follow Us on Instagram» (porto_image_gallery): foto a 12 px come le tessere (10 al telefono) */
body.home .elementor-widget-porto_image_gallery .porto-gallery figure {
	overflow: hidden;
	border-radius: 12px;
}

/* «Shop now» nelle tessere colorate: pillola a contorno bianco, dentro un velo vino che porta la tessera a un tono
   più profondo dello stesso colore: il bianco ha il contrasto AA sulle tessere a tinta unita e sulla foto. */
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action) {
	display: inline-flex !important;
	flex: none;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0 22px !important;
	white-space: nowrap;
	border: 1px solid rgba(255, 255, 255, .85) !important;
	border-radius: 999px !important;
	background: rgba(99, 42, 72, .6) !important;
	box-shadow: none !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	color: #fff !important;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action) span {
	text-decoration: none !important;
}
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action)::after {
	content: "";
	flex: none;
	width: 14px;
	height: 9px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 5h13.5M10.5 1 14.5 5l-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 5h13.5M10.5 1 14.5 5l-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .25s ease;
}
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action):hover {
	border-color: #fff !important;
	background: #fff !important;
	color: var(--kv-vino) !important;
}
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action):hover::after {
	transform: translateX(3px);
}

/* frecce dei caroselli: cerchi bianchi con la freccia vino, come nella galleria della scheda prodotto */
body.home .owl-carousel .owl-nav button:is(.owl-prev, .owl-next) {
	display: grid !important;
	place-items: center;
	width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	border: 1px solid var(--kv-filetto) !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .96) !important;
	box-shadow: 0 2px 12px rgba(59, 54, 68, .12) !important;
	font-size: 18px !important;
	line-height: 1 !important;
	color: var(--kv-vino) !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, opacity .25s ease;
}
body.home .owl-carousel .owl-nav button:is(.owl-prev, .owl-next)::before {
	line-height: 1 !important;
}
body.home .owl-carousel .owl-nav button:is(.owl-prev, .owl-next):not(.disabled):hover {
	border-color: var(--kv-vino) !important;
	background: var(--kv-vino) !important;
	color: #fff !important;
}
body.home .owl-carousel .owl-nav button.disabled {
	opacity: .45 !important;
	box-shadow: none !important;
}
body.home .owl-carousel .owl-dots .owl-dot span {
	width: 8px !important;
	height: 8px !important;
	border-radius: 999px !important;
	background: var(--kv-bordo) !important;
	transition: width .25s ease, background-color .25s ease;
}
body.home .owl-carousel .owl-dots .owl-dot.active span {
	width: 20px !important;
	background: var(--kv-vino) !important;
}
/* puntini dello slider d'apertura (swiper di Elementor, visibili al telefono): la forma di quelli dei caroselli;
   stanno sul fondo beige della foto, quindi lo spento è #c7b3c0 (si vede come il grigio di prima, #dccfd7 spariva) */
body.home .elementor-swiper .swiper-pagination .swiper-pagination-bullet {
	width: 8px !important;
	height: 8px !important;
	border-radius: 999px !important;
	background: var(--kv-bordo-su) !important;
	opacity: 1 !important;
	transition: width .25s ease, background-color .25s ease;
}
body.home .elementor-swiper .swiper-pagination .swiper-pagination-bullet-active {
	width: 20px !important;
	background: var(--kv-vino) !important;
}

/* riquadro prodotto «qiib» (prodotto in evidenza): la barra «Scegli la taglia» diventa la pillola bianca degli altri riquadri */
.porto-tb-item.product .product-type-qiib .tb-hover-content > .porto-section:has(> .cs-bottom) {
	position: absolute !important;
	right: 10px;
	bottom: 10px;
	left: 10px;
	width: auto !important;
	padding: 0 !important;
	background: none !important;
}
.porto-tb-item.product .product-type-qiib .tb-hover-content .cs-bottom {
	min-height: 40px;
	padding: 0 16px !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .95) !important;
	box-shadow: 0 2px 12px rgba(59, 54, 68, .14);
	font-size: 11.5px !important;
	font-weight: 600 !important;
	letter-spacing: .12em !important;
	color: var(--kv-vino) !important;
	transition: background-color .25s ease, color .25s ease;
}
.porto-tb-item.product .product-type-qiib .tb-hover-content .cs-bottom:hover {
	background: var(--kv-vino) !important;
	color: #fff !important;
}

/* ═════════ 15. Scheda prodotto: «Visualizza carrello» dopo l'aggiunta ═════════
   Porto lo mostra (body.single-add-to-cart) accanto a «Aggiungi al carrello» e la riga si stringe: qui va a capo
   su una riga sua, a tutta larghezza, come pulsante secondario. Quantità e «Aggiungi al carrello» restano com'erano. */

body.single-add-to-cart.single-product .elementor-widget-porto_cp_add_to_cart form.cart :is(.woocommerce-variation-add-to-cart, .variations_button) {
	flex-wrap: wrap !important;
}
body.single-add-to-cart.single-product .elementor-widget-porto_cp_add_to_cart a.view-cart-btn {
	display: flex !important;
	flex: 1 0 100%;
	min-height: 50px;
	line-height: 1.2 !important;
}

/* ═════════ 16. Banner dei cookie (Complianz): variabili del plugin portate nella palette ═════════ */

/* «Accetta» e «Nega» hanno lo stesso peso (pillola piena vino): stessa evidenza per le due scelte, lettura prudente
   delle linee guida del Garante (2021) e del rapporto EDPB della Cookie Banner Taskforce (2023) su colori e contrasti
   che spingono ad accettare. Secondari a contorno solo «Visualizza le preferenze» e «Salva preferenze». */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
	--cmplz_banner_border_radius: 18px;
	--cmplz_button_border_radius: 999px;
	--cmplz_button_font_size: 14px;
	--cmplz_hyperlink_color: var(--kv-vino);
	--cmplz_text_color: var(--kv-testo);
	--cmplz_button_accept_background_color: var(--kv-vino);
	--cmplz_button_accept_border_color: var(--kv-vino);
	--cmplz_button_accept_text_color: #fff;
	--cmplz_button_deny_background_color: var(--kv-vino);
	--cmplz_button_deny_border_color: var(--kv-vino);
	--cmplz_button_deny_text_color: #fff;
	--cmplz_button_settings_background_color: #fff;
	--cmplz_button_settings_border_color: var(--kv-bordo);
	--cmplz_button_settings_text_color: var(--kv-vino);
	/* interruttori: acceso vino, spento #8f6880 (il colore «disattivato» dei pulsanti), pallino bianco a 4,7:1 */
	--cmplz_slider_active_color: var(--kv-vino);
	--cmplz_slider_inactive_color: var(--kv-vino-spento);
	--cmplz_slider_bullet_color: #fff;
	/* «Sempre attivo»: verde scuro, 5,7:1 sul fondo delle categorie (#3f8a5c faceva 3,9:1) */
	--cmplz_category_header_always_active_color: #2f6b47;
	box-shadow: 0 18px 50px rgba(59, 54, 68, .18), 0 2px 8px rgba(59, 54, 68, .08) !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	font-weight: 500;
	letter-spacing: .02em;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn:is(.cmplz-accept, .cmplz-deny):hover {
	border-color: var(--kv-vino-su);
	background-color: var(--kv-vino-su);
	color: #fff;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn:is(.cmplz-view-preferences, .cmplz-save-preferences, .cmplz-manage-options):hover {
	border-color: var(--kv-vino);
	background-color: var(--kv-rosa);
}
/* vista «Visualizza le preferenze»: categorie come riquadri morbidi (12 px, fondo tessera) */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category {
	overflow: hidden;
	border-radius: 12px;
	background-color: var(--kv-tessera);
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus + .cmplz-label::before {
	box-shadow: none;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus-visible + .cmplz-label::before {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--kv-vino);
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links a {
	text-underline-offset: 3px;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin: -6px -8px -6px 0;
	border-radius: 50%;
	transition: background-color .2s ease;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close:hover {
	background-color: var(--kv-rosa);
}

/* linguetta «Gestisci consenso» (dopo la scelta, da 769 px: sotto la nasconde Complianz). Sta fuori dal banner,
   quindi non prende le variabili: si disegna qui. Spostata a sinistra del cerchio «torna su» (20 px dal bordo,
   46 px): alla destra di Complianz (40 px), salendo, ne copriva l'angolo. */
#cmplz-manage-consent .cmplz-manage-consent {
	right: 86px;
	border: 1px solid var(--kv-filetto);
	border-bottom: 0;
	border-radius: 14px 14px 0 0;
	background-color: #fff;
	box-shadow: 0 -4px 18px rgba(59, 54, 68, .12);
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .02em;
	color: var(--kv-vino);
	transition: background-color .25s ease;
}
#cmplz-manage-consent .cmplz-manage-consent:hover {
	background-color: var(--kv-rosa);
}
#cmplz-manage-consent .cmplz-manage-consent:focus-visible {
	outline: 2px solid var(--kv-vino);
	outline-offset: 2px;
}

/* il pulsante di WhatsApp (z-index 999999999) copriva «Accetta» e il testo del banner: sparisce finché il banner è aperto */
html:has(#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show) #wa .wa__btn_popup {
	display: none !important;
}

/* ═════════ 17. WhatsApp: finestra con gli angoli dei pannelli ═════════ */

#wa .wa__popup_chat_box {
	overflow: hidden;
	border-radius: 18px !important;
	box-shadow: 0 18px 50px rgba(59, 54, 68, .18) !important;
}
#wa .wa__popup_chat_box .wa__stt {
	border-radius: 12px !important;
}

/* ═════════ 18. «Torna su» di Porto: un cerchio ═════════ */

html body #topcontrol {
	right: 20px !important;
	bottom: 20px !important;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(59, 54, 68, .9);
	box-shadow: 0 6px 18px rgba(59, 54, 68, .22);
	color: #fff;
	transition: background-color .25s ease, opacity .3s ease;
}
html body #topcontrol:hover {
	background: var(--kv-vino);
	color: #fff;
}
html body #topcontrol i {
	font-size: 14px;
}

/* ═════════ 19. Fuoco visibile ═════════ */

body.woocommerce-cart .wc-proceed-to-checkout :is(a.btn, a.checkout-button):focus-visible,
body.woocommerce-cart .return-to-shop a.button:focus-visible,
body.woocommerce-checkout #place_order:focus-visible,
body.woocommerce-account .woocommerce :is(button, a, input[type="submit"]).woocommerce-Button:focus-visible,
body.woocommerce-account .woocommerce :is(a, button).woocommerce-button:focus-visible,
body.woocommerce-wishlist .shop_table.wishlist_table :is(.product-add-to-cart a.button, a.btn-go-shop):focus-visible,
#pp-tracking-page .pp-tracking-form button.btn-enter:focus-visible,
.elementor-widget-porto_button > a.btn.btn-primary:focus-visible,
body.home .elementor-widget-porto_button > a.btn.btn-dark:focus-visible,
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action):focus-visible,
body.woocommerce-cart .cart-v2 .actions button.button:focus-visible,
body.woocommerce-cart .woocommerce-shipping-calculator button.button:focus-visible,
body.woocommerce-checkout .checkout_coupon button.button:focus-visible,
body.single-product .elementor-widget-porto_cp_add_to_cart a.view-cart-btn:focus-visible,
:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button:focus-visible,
:is(body.woocommerce-cart .woocommerce-cart-form .product-quantity, body.woocommerce-checkout #order_review, #header .kh .kh-carrello .product-details) .quantity.buttons_added :is(.minus, .plus):focus-visible,
.woocommerce-pagination ul.page-numbers li > a.page-numbers:focus-visible,
.sidebar-content .wp-block-search .wp-block-search__button:focus-visible,
body.home .owl-carousel .owl-nav button:is(.owl-prev, .owl-next):focus-visible,
body.home .owl-carousel .owl-dots .owl-dot:focus-visible,
.porto-tb-item.product .product-type-qiib .tb-hover-content .cs-bottom:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner :is(.cmplz-close, .cmplz-category-toggle, a):focus-visible,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon:focus-visible,
body.woocommerce-account .woocommerce .password-input .show-password-input:focus-visible,
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, body.woocommerce-wishlist .wishlist_table) a.remove:focus-visible,
body.home .elementor-swiper .swiper-pagination .swiper-pagination-bullet:focus-visible {
	outline: 2px solid var(--kv-vino) !important;
	outline-offset: 3px !important;
}
/* la X del banner (Complianz le dà il fuoco appena il banner compare) e le «×» rotonde: contorno più vicino */
#cmplz-cookiebanner-container .cmplz-cookiebanner :is(.cmplz-close, .cmplz-category-toggle, a):focus-visible,
:is(body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-checkout #order_review, body.woocommerce-wishlist .wishlist_table) a.remove:focus-visible {
	outline-offset: 2px !important;
}
/* su fondo scuro il contorno è bianco («Esplora» sulla fascia melanzana: 11,7:1) */
body.home .elementor-widget-porto_button > a.btn.btn-dark:focus-visible {
	outline-color: #fff !important;
}
/* «Shop now» sta su tessere di colori diversi e su una foto: anello a due toni, bianco tra due fasce vino, che si
   legge su ogni fondo (bianco contro vino 10,7:1); il solo bianco faceva 2,9:1 sulla malva e meno di 2:1 sulla foto */
body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action):focus-visible {
	outline: 2px solid #fff !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 6px var(--kv-vino) !important;
}
.woocommerce-pagination ul.page-numbers li > a.page-numbers:focus-visible {
	outline-offset: 2px !important;
}

/* ═════════ 20. Tablet e telefono ═════════ */

/* tablet in verticale (da 768 a 1023 px): le tessere della home hanno colonne strette, «Shop now» resta su una riga
   con una pillola più compatta; nella wishlist «Scegli la taglia» resta su una riga nella colonna «Azioni» */
@media (min-width: 768px) and (max-width: 1023px) {
	body.home .e-con[data-settings*="background_background"] > .elementor-widget-porto_button > a.btn:not(.btn-primary, .btn-dark, .btn-read-more-action) {
		gap: 8px;
		padding: 0 16px !important;
		letter-spacing: .12em !important;
	}
}
@media (min-width: 768px) and (max-width: 899px) {
	body.woocommerce-wishlist .shop_table.wishlist_table .product-add-to-cart a.button {
		padding: 0 16px !important;
		letter-spacing: .08em !important;
	}
}

/* colonna del totale stretta (da 992 a 1199 px): «Procedi con l'ordine» resta su una riga */
@media (min-width: 992px) and (max-width: 1199px) {
	body.woocommerce-cart .wc-proceed-to-checkout a.btn {
		padding: 0 14px !important;
		font-size: 12px !important;
		letter-spacing: .06em !important;
	}
}

@media (max-width: 1024px) {
	/* aree di tocco da 44 px: i tasti − e + crescono, il cerchio visibile resta morbido */
	body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added,
	body.woocommerce-checkout #order_review .quantity.buttons_added,
	#header .kh .kh-carrello .product-details .quantity.buttons_added {
		height: 48px;
		padding: 0 1px !important;
	}
	body.woocommerce-cart .woocommerce-cart-form .product-quantity .quantity.buttons_added :is(.minus, .plus),
	body.woocommerce-checkout #order_review .quantity.buttons_added :is(.minus, .plus),
	#header .kh .kh-carrello .product-details .quantity.buttons_added :is(.minus, .plus) {
		width: 44px !important;
		height: 44px !important;
	}
}
@media (max-width: 767px) {
	/* campi a 16 px: iOS non ingrandisce la pagina al tocco */
	body.woocommerce-cart :is(.coupon, .woocommerce-shipping-calculator) input.input-text,
	body.woocommerce-checkout .woocommerce :is(input.input-text:not(.qty), textarea, select),
	body.woocommerce-account .woocommerce :is(input.input-text, input[type="email"], input[type="password"], input[type="tel"], textarea, select),
	:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) .select2-container--default .select2-selection--single,
	#pp-tracking-page .pp-tracking-form .pp-input input,
	.sidebar-content .wp-block-search .wp-block-search__input {
		font-size: 16px !important;
	}
	body.woocommerce-cart .cart-v2 .actions .coupon,
	body.woocommerce-cart .cart-v2 .actions .coupon input.input-text,
	body.woocommerce-cart .cart-v2 .actions button.button {
		width: 100% !important;
	}
	body.woocommerce-cart .cart-v2 .actions #panel-cart-discount,
	body.woocommerce-cart .cart-v2 .actions .coupon {
		display: flex !important;
		flex-direction: column;
		align-items: stretch !important;
	}
	body.woocommerce-cart .cart-v2 .actions .coupon input.input-text {
		flex: none;
		max-width: none;
	}
	body.woocommerce-cart .cart-v2 .actions button.button[name="update_cart"] {
		margin-left: 0 !important;
	}
	/* tabelle del carrello e della lista dei desideri impilate: riquadro morbido al posto del filetto viola */
	body.woocommerce-cart .woocommerce-cart-form .shop_table.responsive,
	body.woocommerce-account .woocommerce .shop_table.shop_table_responsive,
	body.woocommerce-wishlist .wishlist_table.responsive:not(:has(.wishlist-empty)) {
		border: 1px solid var(--kv-filetto) !important;
		border-collapse: separate !important;
		border-spacing: 0;
		border-radius: 16px !important;
		overflow: hidden;
	}
	body.woocommerce-cart .woocommerce-cart-form .shop_table.responsive tr,
	body.woocommerce-account .woocommerce .shop_table.shop_table_responsive tr {
		border-color: var(--kv-filetto) !important;
	}
	body.woocommerce-account .woocommerce .shop_table.shop_table_responsive {
		box-shadow: none !important;
	}
	body.woocommerce-cart .cart_totals .card {
		padding: 22px 20px 20px !important;
	}
	body.woocommerce-checkout .checkout-order-review .box-content {
		padding: 22px 18px 22px !important;
	}
	body.woocommerce-checkout .checkout_coupon .featured-box .box-content .form-row,
	body.woocommerce-checkout .checkout_coupon .featured-box .box-content .form-row-first,
	body.woocommerce-checkout .checkout_coupon .featured-box .box-content button.button {
		flex: 1 1 100%;
		max-width: none;
		width: 100% !important;
	}
	:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
		min-height: 44px;
	}
	.sidebar-content .wp-block-search .wp-block-search__button,
	.sidebar-content .wp-block-search .wp-block-search__input {
		height: 44px !important;
	}
	.sidebar-content .wp-block-search .wp-block-search__button {
		width: 44px !important;
	}
	body.woocommerce-account .woocommerce .password-input .show-password-input {
		top: 3px !important;
		right: 3px !important;
		width: 44px;
		height: 44px !important;
	}
	body.home .elementor-widget-porto_image_gallery .porto-gallery figure {
		border-radius: 10px;
	}
	/* le «×» rotonde di Porto (21 px) prendono un'area di tocco invisibile da 45 px */
	body.woocommerce-cart .woocommerce-cart-form a.remove::after,
	body.woocommerce-checkout #order_review a.remove::after,
	body.woocommerce-wishlist .wishlist_table a.remove::after {
		content: "";
		position: absolute;
		inset: -12px;
		border-radius: 50%;
	}
	/* avvisi con pulsante: prima la frase, sotto il pulsante (WooCommerce lo mette prima del testo) */
	:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):has(> a.button) {
		display: flex;
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 12px;
	}
	:is(.woocommerce-notices-wrapper, .woocommerce, #main) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
		float: none;
		margin: 0 !important;
	}
	/* lista dei desideri: YITH mette .mobile sulla tabella sotto i 768 px e vuole il pulsante a tutta larghezza */
	body.woocommerce-wishlist .shop_table.wishlist_table .product-add-to-cart a.button {
		display: flex !important;
		width: 100% !important;
	}
	body.woocommerce-wishlist .shop_table.wishlist_table.responsive {
		box-shadow: none !important;
	}
	body.woocommerce-wishlist .shop_table.wishlist_table.responsive:has(.wishlist-empty) {
		border: 0 !important;
	}
	/* paginazione: 44 px di tocco, il cerchio visibile resta da 40 */
	.woocommerce-pagination ul.page-numbers li,
	.woocommerce-pagination ul.page-numbers li + li {
		margin: 0 !important;
	}
	.woocommerce-pagination ul.page-numbers li > :is(a, span).page-numbers {
		width: 44px;
		min-width: 44px !important;
		height: 44px !important;
		border: 2px solid transparent !important;
		background-clip: padding-box !important;
		box-shadow: inset 0 0 0 1px var(--kv-bordo);
	}
	.woocommerce-pagination ul.page-numbers li > a.page-numbers:hover {
		border-color: transparent !important;
		box-shadow: inset 0 0 0 1px var(--kv-vino);
	}
	/* anche la pagina corrente si vede da 40: lo shorthand background della regola di base riportava il fondo sotto il
	   bordo trasparente e il cerchio pieno usciva da 44 */
	.woocommerce-pagination ul.page-numbers li > span.page-numbers.current {
		border-color: transparent !important;
		background-clip: padding-box !important;
		box-shadow: none;
	}
	.woocommerce-pagination ul.page-numbers li > span.page-numbers.dots {
		box-shadow: none;
	}
	.woocommerce-pagination ul.page-numbers li > a:is(.prev, .next)::before {
		line-height: 40px !important;
	}
	/* banner dei cookie: foglio che sale dal fondo */
	#cmplz-cookiebanner-container .cmplz-cookiebanner {
		--cmplz_banner_border_radius: 18px 18px 0 0;
	}
	/* la X (chiudere senza consenso) a 44 px di tocco; i margini negativi tengono ferma la testata del banner */
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close {
		width: 44px;
		height: 44px;
		margin: -10px -12px -10px 0;
	}
}

/* ═════════ 21. Meno movimento ═════════ */

@media (prefers-reduced-motion: reduce) {
	body.woocommerce-cart .wc-proceed-to-checkout a.btn i,
	body.home .elementor-widget-porto_button > a.btn::after,
	body.home .owl-carousel .owl-dots .owl-dot span,
	body.home .elementor-swiper .swiper-pagination .swiper-pagination-bullet {
		transition: none !important;
	}
	/* la linguetta «Gestisci consenso» compare senza scivolare */
	#cmplz-manage-consent .cmplz-manage-consent {
		animation-duration: 0s !important;
	}
	body.woocommerce-cart .wc-proceed-to-checkout a.btn:hover i,
	body.home .elementor-widget-porto_button > a.btn:hover::after {
		transform: none !important;
	}
}
