/*
 * Abello Restyling — carrello e checkout (blocchi WooCommerce Cart e Checkout).
 * Pagine con page.php del genitore: la colonna al 70% si allarga alla griglia larga.
 * Riquadri del riepilogo su bianco con filetto, campi a 16 px con bordo leggibile,
 * pulsanti d'acquisto nel verde Abello a tutta larghezza. Solo variabili di tokens.css.
 */

/* ================================================================ Impianto della pagina */
.woocommerce-cart #content > .col-70,
.woocommerce-checkout #content > .col-70 {
	width: 100%;
	max-width: var(--ab-width-wide);
	flex-basis: 100%;
	margin: 0 auto;
}
.woocommerce-cart #content article > h1,
.woocommerce-checkout #content article > h1 {
	margin: 0 0 var(--ab-space-7);
	font-size: var(--ab-text-4xl);
}
.woocommerce-cart .text-content,
.woocommerce-checkout .text-content { font-size: var(--ab-text-ui); }

/* i blocchi sono "alignwide": il genitore li allarga oltre la colonna; qui restano allineati al titolo */
.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide {
	width: auto;
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.wc-block-components-sidebar-layout { gap: var(--ab-space-8); margin: 0 !important; }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: 0 !important; }
.wc-block-components-sidebar { padding-left: 0 !important; }
@media (min-width: 782px) {
	.wc-block-components-sidebar-layout { flex-wrap: nowrap; align-items: flex-start; }
	.wc-block-components-sidebar-layout .wc-block-components-main { flex: 1 1 0; width: auto !important; min-width: 0; }
	.wc-block-components-sidebar-layout .wc-block-components-sidebar { flex: 0 0 var(--ab-summary); width: auto !important; position: sticky; top: calc(var(--ab-header-h-compact) + var(--ab-space-5)); }
}

/* Testo di base dei blocchi */
.wc-block-cart,
.wc-block-checkout {
	font-family: var(--ab-font-text);
	font-size: var(--ab-text-ui);
	line-height: var(--ab-leading-snug);
	color: var(--ab-color-text);
}
.wc-block-cart .wc-block-components-title,
.wc-block-checkout .wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title {
	font-family: var(--ab-font-text) !important;
	font-size: var(--ab-text-xl) !important;
	font-weight: var(--ab-weight-semibold) !important;
	line-height: var(--ab-leading-snug);
	text-transform: none !important;
	letter-spacing: normal;
	color: var(--ab-color-text);
}

/* ================================================================ Carrello: righe prodotto */
.wc-block-cart-items { border-collapse: collapse; }
.wc-block-cart-items__header th,
.wc-block-cart-items__header span {
	font-size: var(--ab-text-sm) !important;
	font-weight: var(--ab-weight-semibold);
	text-transform: none !important;
	letter-spacing: normal;
	color: var(--ab-color-text-muted);
}
.wc-block-cart-items__header { border-bottom: var(--ab-border-rule) solid var(--ab-color-border-strong) !important; }
.wc-block-cart-items .wc-block-cart-items__row { border-bottom: var(--ab-border-hair) solid var(--ab-color-border) !important; }
.wc-block-cart-items .wc-block-cart-items__row td { padding-top: var(--ab-space-5) !important; padding-bottom: var(--ab-space-5) !important; }

/* miniature sul fondale, come le card */
.wc-block-cart-item__image a,
.wc-block-components-order-summary-item__image {
	display: block;
	background: var(--ab-color-stage);
	border-radius: var(--ab-radius-1);
	isolation: isolate;
}
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	aspect-ratio: 1;
	padding: 8%;
	box-sizing: border-box;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.wc-block-components-product-name {
	font-size: var(--ab-text-md) !important;
	font-weight: var(--ab-weight-semibold);
	line-height: var(--ab-leading-snug);
	color: var(--ab-color-text) !important;
	text-decoration: none;
}
a.wc-block-components-product-name:hover { text-decoration: underline; text-underline-offset: var(--ab-underline-offset); }
.wc-block-components-product-metadata { font-size: var(--ab-text-sm); color: var(--ab-color-text-muted); }
.wc-block-cart-item__prices,
.wc-block-components-product-price { font-variant-numeric: lining-nums tabular-nums; }
.wc-block-cart-item__total .wc-block-components-product-price__value { font-size: var(--ab-text-md); font-weight: var(--ab-weight-semibold); }

/* quantità */
.wc-block-components-quantity-selector {
	min-height: var(--ab-tap);
	border-radius: var(--ab-radius-1) !important;
}
.wc-block-components-quantity-selector::after { border: var(--ab-border-hair) solid var(--ab-color-border-field) !important; border-radius: var(--ab-radius-1) !important; opacity: 1 !important; }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	min-height: var(--ab-tap);
	font-family: var(--ab-font-text);
	font-size: var(--ab-text-ui) !important;
	font-weight: var(--ab-weight-semibold) !important;
	color: var(--ab-color-text);
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-width: var(--ab-tap);
	color: var(--ab-color-text) !important;
	opacity: 1;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { opacity: 0.4; }
.wc-block-cart-item__remove-link {
	font-size: var(--ab-text-sm) !important;
	color: var(--ab-color-text-muted) !important;
	text-decoration: underline !important;
	text-underline-offset: var(--ab-underline-offset);
}
.wc-block-cart-item__remove-link:hover { color: var(--ab-color-error) !important; }

/* ================================================================ Riepilogo (carrello e checkout) */
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	padding: var(--ab-space-5) !important;
	border: 0 !important;
	border-top: var(--ab-border-rule) solid var(--ab-color-border-strong) !important;
	border-radius: 0 !important;
	background: var(--ab-color-surface);
}
.wc-block-components-totals-wrapper { border-top-color: var(--ab-color-border) !important; padding-left: 0 !important; padding-right: 0 !important; }
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value { font-size: var(--ab-text-ui); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: var(--ab-text-xl) !important;
	font-weight: var(--ab-weight-semibold) !important;
	font-variant-numeric: lining-nums tabular-nums;
}
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount { font-size: inherit !important; font-weight: inherit !important; }
.wc-block-components-totals-item__description,
.wc-block-components-totals-footer-item-tax-value { font-size: var(--ab-text-sm); color: var(--ab-color-text-muted); }

/* pannelli a scomparsa (codice promozionale, riepilogo su mobile) */
.wc-block-components-panel__button {
	min-height: var(--ab-tap);
	font-size: var(--ab-text-ui) !important;
	font-weight: var(--ab-weight-semibold) !important;
	color: var(--ab-color-text) !important;
}
.wc-block-components-panel__button-icon { fill: currentColor; }

/* ================================================================ Pulsanti */
.wc-block-components-button:not(.is-link) {
	min-height: var(--ab-tap-lg);
	padding: var(--ab-space-3) var(--ab-space-5) !important;
	border: 0 !important;
	border-radius: var(--ab-radius-1) !important;
	background-color: var(--ab-color-action) !important;
	color: var(--ab-color-on-action) !important;
	font-family: var(--ab-font-text) !important;
	font-size: var(--ab-text-md) !important;
	font-weight: var(--ab-weight-semibold) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	transition: background-color var(--ab-duration-fast) var(--ab-ease);
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus { background-color: var(--ab-color-action-hover) !important; }
.wc-block-components-button:not(.is-link):disabled,
.wc-block-components-button:not(.is-link)[aria-disabled="true"] { opacity: 0.5; }
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button { width: 100%; }
/* pulsanti secondari dentro i moduli (es. "Applica" del codice promozionale) */
.wc-block-components-totals-coupon__button.wc-block-components-button:not(.is-link) { min-height: var(--ab-tap); font-size: var(--ab-text-ui) !important; }
.wc-block-components-button.is-link { color: var(--ab-color-link) !important; font-size: var(--ab-text-ui); text-underline-offset: var(--ab-underline-offset); }

/* ================================================================ Campi dei moduli */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-totals-coupon .wc-block-components-text-input input {
	min-height: calc(var(--ab-tap) + var(--ab-space-3)) !important;
	border: var(--ab-border-hair) solid var(--ab-color-border-field) !important;
	border-radius: var(--ab-radius-1) !important;
	background-color: var(--ab-color-surface) !important;
	color: var(--ab-color-text) !important;
	font-family: var(--ab-font-text) !important;
	font-size: var(--ab-text-ui) !important;   /* 16 px: niente zoom su iOS */
	box-shadow: none !important;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label,
.wc-block-components-combobox .components-base-control__label {
	font-family: var(--ab-font-text);
	color: var(--ab-color-text-muted) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .components-combobox-control__input:focus {
	border-color: var(--ab-color-focus) !important;
	outline: var(--ab-border-hair) solid var(--ab-color-focus) !important;
	outline-offset: 0 !important;
}
.wc-block-components-text-input.has-error input,
.wc-block-components-validation-error { border-color: var(--ab-color-error) !important; color: var(--ab-color-error) !important; }
.wc-block-components-validation-error { border: 0 !important; font-size: var(--ab-text-sm); }

/* caselle e scelte (spedizione, pagamento) */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	width: var(--ab-check);
	height: var(--ab-check);
	border: var(--ab-border-hair) solid var(--ab-color-border-field) !important;
	border-radius: var(--ab-radius-1) !important;
	background: var(--ab-color-surface) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--ab-color-action) !important; border-color: var(--ab-color-action) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--ab-color-on-action) !important; }
.wc-block-components-checkbox label { font-size: var(--ab-text-ui); }
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border-radius: var(--ab-radius-1) !important;
	box-shadow: inset 0 0 0 var(--ab-border-hair) var(--ab-color-border) !important;
}
.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 var(--ab-border-rule) var(--ab-color-border-strong) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--ab-color-action) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--ab-color-action) !important; }

/* ================================================================ Checkout: passaggi e indirizzi */
.wc-block-components-checkout-step { margin-bottom: var(--ab-space-7) !important; }
.wc-block-components-checkout-step__heading { margin-bottom: var(--ab-space-4) !important; }
.wc-block-checkout__form .wc-block-components-checkout-step__container::after,
.wc-block-components-checkout-step::after { border-color: var(--ab-color-border) !important; }
.wc-block-components-checkout-step__description { color: var(--ab-color-text-muted); font-size: var(--ab-text-ui); }
.wc-block-components-address-card {
	padding: var(--ab-space-4) var(--ab-space-5) !important;
	border: var(--ab-border-hair) solid var(--ab-color-border) !important;
	border-radius: var(--ab-radius-1) !important;
	background: var(--ab-color-surface);
	font-size: var(--ab-text-ui);
}
.wc-block-components-address-card__edit { color: var(--ab-color-link) !important; font-size: var(--ab-text-ui); }
.wc-block-checkout__terms { font-size: var(--ab-text-sm); color: var(--ab-color-text-muted); }
.wc-block-checkout__terms a,
.wc-block-checkout__guest-checkout-notice a { color: var(--ab-color-link); }
.wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button { color: var(--ab-color-link); font-size: var(--ab-text-ui); }

/* riepilogo ordine */
.wc-block-components-order-summary-item__quantity {
	border: 0 !important;
	border-radius: var(--ab-radius-2) !important;
	background: var(--ab-color-dark) !important;
	color: var(--ab-color-on-dark) !important;
	font-size: var(--ab-text-xs) !important;
	box-shadow: none !important;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name { font-size: var(--ab-text-ui) !important; }
.wc-block-components-checkout-order-summary__title-text { font-size: var(--ab-text-xl); font-weight: var(--ab-weight-semibold); }

/* ================================================================ Avvisi dei blocchi */
.wc-block-components-notice-banner {
	padding: var(--ab-space-4) var(--ab-space-5) !important;
	border: 0 !important;
	border-left: var(--ab-border-rule) solid var(--ab-color-border-strong) !important;
	border-radius: var(--ab-radius-1) !important;
	background: var(--ab-color-surface) !important;
	box-shadow: var(--ab-shadow-1);
	color: var(--ab-color-text) !important;
	font-size: var(--ab-text-ui) !important;
	line-height: var(--ab-leading-snug);
}
.wc-block-components-notice-banner.is-success { border-left-color: var(--ab-color-success) !important; }
.wc-block-components-notice-banner.is-error { border-left-color: var(--ab-color-error) !important; }
.wc-block-components-notice-banner > svg { fill: currentColor; background: transparent !important; }
.wc-block-components-notice-banner.is-error > svg { fill: var(--ab-color-error); }
.wc-block-components-notice-banner.is-success > svg { fill: var(--ab-color-success); }

/* ================================================================ Carrello vuoto */
.wp-block-woocommerce-empty-cart-block > .wp-block-heading.wc-block-cart__empty-cart__title {
	font-family: var(--ab-font-display) !important;
	font-size: var(--ab-text-3xl) !important;
	font-weight: var(--ab-weight-medium) !important;
	line-height: var(--ab-leading-title);
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
	width: var(--ab-space-9) !important;
	height: var(--ab-space-9) !important;
	margin: 0 auto var(--ab-space-5) !important;
	background-color: var(--ab-color-border-field) !important;
	mask-size: contain !important;
	-webkit-mask-size: contain !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator { border-color: var(--ab-color-border) !important; margin: var(--ab-space-7) auto !important; }
.wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) { font-size: var(--ab-text-2xl) !important; margin-bottom: var(--ab-space-6); }

/* ================================================================ Mobile */
@media (max-width: 781.98px) {
	.woocommerce-cart #content article > h1,
	.woocommerce-checkout #content article > h1 { margin-bottom: var(--ab-space-5); }
	.wc-block-components-sidebar-layout { gap: var(--ab-space-6); }
	.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
	.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { padding: var(--ab-space-4) !important; }
}
