/* ==========================================================================
   WooCommerce — Elena Chiappini Shop
   Riveste WooCommerce con il linguaggio visivo del sito principale.
   Nessun override di template PHP: solo CSS + hook, così gli aggiornamenti
   di WooCommerce non rompono nulla.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Avvisi
   -------------------------------------------------------------------------- */

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
	margin: 0 0 32px;
	padding: 18px 22px;
	list-style: none;
	background: var(--ec-crema);
	border: 1px solid var(--ec-linea);
	border-left: 2px solid var(--ec-rosso);
	border-radius: var(--ec-raggio);
	font-size: 14px;
	color: var(--ec-inchiostro);
}

.woocommerce-error { border-left-color: var(--ec-rosso); background: #fdf6f6; }
.woocommerce-message { border-left-color: var(--ec-inchiostro); }

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	margin-left: auto;
	padding: 10px 18px;
	font-size: 10px;
}

.woocommerce-error li { width: 100%; }

/* --------------------------------------------------------------------------
   2. Bottoni WooCommerce
   -------------------------------------------------------------------------- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button {
	padding: 15px 26px;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: #fff;
	background: var(--ec-inchiostro);
	border: 1px solid var(--ec-inchiostro);
	border-radius: var(--ec-raggio);
	text-decoration: none;
	transition: background var(--ec-transizione), border-color var(--ec-transizione), color var(--ec-transizione);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.wc-block-components-button:hover {
	background: var(--ec-rosso);
	border-color: var(--ec-rosso);
	color: #fff;
}

.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
	opacity: .5;
	padding: 15px 26px;
}

/* Bottone in punteggiatura leggera (es. "Continua lo shopping") */
.woocommerce .button.wc-backward,
.woocommerce a.button.wc-backward {
	background: transparent;
	color: var(--ec-inchiostro);
	border-color: var(--ec-linea);
}

.woocommerce .button.wc-backward:hover,
.woocommerce a.button.wc-backward:hover {
	background: transparent;
	color: var(--ec-rosso);
	border-color: var(--ec-rosso);
}

/* --------------------------------------------------------------------------
   3. Barra dell'archivio: risultati + ordinamento
   -------------------------------------------------------------------------- */

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin: 0;
	float: none;
}

.ec-barra-archivio {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px 24px;
	padding-bottom: 18px;
	margin-bottom: clamp(28px, 4vw, 46px);
	border-bottom: 1px solid var(--ec-linea-tenue);
}

.woocommerce .woocommerce-result-count {
	font-size: var(--ec-micro-size);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce .woocommerce-ordering select {
	width: auto;
	min-width: 220px;
	padding: 10px 40px 10px 14px;
	font-size: var(--ec-micro-size);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-inchiostro);
	border-color: var(--ec-linea);
}

/* --------------------------------------------------------------------------
   4. Griglia prodotti
   -------------------------------------------------------------------------- */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(var(--ec-colonne, 3), minmax(0, 1fr));
	gap: clamp(30px, 4vw, 56px) clamp(20px, 3vw, 40px);
	margin: 0;
	padding: 0;
	list-style: none;
	clear: both;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	text-align: center;
	position: relative;
}

/* Cornice immagine */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img {
	width: 100%;
	margin: 0 0 20px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: var(--ec-crema);
	border-radius: var(--ec-raggio);
	transition: opacity .5s ease, transform .6s ease;
	box-shadow: none;
}

.woocommerce ul.products li.product .ec-loop-media {
	position: relative;
	overflow: hidden;
	border-radius: var(--ec-raggio);
	display: block;
}

.woocommerce ul.products li.product:hover a img { transform: scale(1.035); }

/* Titolo */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
	margin: 0 0 8px;
	padding: 0;
	font-family: var(--ec-serif);
	font-size: 21px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--ec-inchiostro);
	transition: color var(--ec-transizione);
}

.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--ec-rosso); }

/* Categoria in occhiello sopra il titolo (aggiunta via hook) */
.ec-loop-categoria {
	display: block;
	margin-bottom: 9px;
	font-size: 10px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--ec-grigio-chiaro);
}

/* Prezzo */
.woocommerce ul.products li.product .price {
	display: block;
	margin: 0;
	font-family: var(--ec-sans);
	font-size: 14px;
	font-weight: 300;
	letter-spacing: .06em;
	color: var(--ec-testo);
}

.woocommerce ul.products li.product .price del {
	color: var(--ec-grigio-chiaro);
	opacity: 1;
	margin-right: 8px;
	font-size: 13px;
}

.woocommerce ul.products li.product .price ins {
	background: none;
	color: var(--ec-rosso);
	text-decoration: none;
	font-weight: 400;
}

/* Azione: discreta, si rivela al passaggio del mouse */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: inline-block;
	margin-top: 14px;
	padding: 0 0 3px;
	background: none;
	border: 0;
	border-bottom: 1px solid var(--ec-linea);
	border-radius: 0;
	font-size: 10px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--ec-inchiostro);
	transition: color var(--ec-transizione), border-color var(--ec-transizione), opacity var(--ec-transizione);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover {
	background: none;
	color: var(--ec-rosso);
	border-bottom-color: var(--ec-rosso);
}

.woocommerce ul.products li.product .button.loading::after { display: none; }

@media (hover: hover) and (min-width: 992px) {
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .added_to_cart { opacity: 0; }
	.woocommerce ul.products li.product:hover .button,
	.woocommerce ul.products li.product:hover .added_to_cart,
	.woocommerce ul.products li.product:focus-within .button { opacity: 1; }
}

/* Etichetta saldo */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 5;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 6px 12px;
	font-family: var(--ec-sans);
	font-size: 9px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #fff;
	background: var(--ec-rosso);
	border-radius: var(--ec-raggio);
}

/* Esaurito */
.ec-esaurito {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 5;
	padding: 6px 12px;
	font-size: 9px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--ec-inchiostro);
	background: rgba(255, 255, 255, .92);
	border: 1px solid var(--ec-linea);
	border-radius: var(--ec-raggio);
}

/* Colonne responsive */
@media (max-width: 1024px) { .woocommerce ul.products { --ec-colonne: 3; } }
@media (max-width: 860px)  { .woocommerce ul.products { --ec-colonne: 2; } }
@media (max-width: 480px)  { .woocommerce ul.products { --ec-colonne: 2; gap: 26px 16px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
}

/* Categorie in griglia */
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	font-family: var(--ec-serif);
	font-size: 22px;
	font-weight: 400;
	color: var(--ec-inchiostro);
}

.woocommerce ul.products li.product-category .count {
	display: block;
	margin-top: 4px;
	background: none;
	font-family: var(--ec-sans);
	font-size: 10px;
	letter-spacing: .22em;
	color: var(--ec-grigio-chiaro);
}

/* --------------------------------------------------------------------------
   5. Impaginazione
   -------------------------------------------------------------------------- */

.woocommerce nav.woocommerce-pagination {
	margin-top: clamp(44px, 6vw, 72px);
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	/* Con molte pagine la lista supera la larghezza dello schermo:
	   deve andare a capo, non far scorrere la pagina in orizzontale. */
	flex-wrap: wrap;
	justify-content: center;
	max-width: 100%;
	gap: 6px;
	border: 0;
	margin: 0;
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	font-size: 13px;
	color: var(--ec-testo);
	background: none;
	border: 1px solid transparent;
	border-radius: var(--ec-raggio);
	transition: all var(--ec-transizione);
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: none;
	color: var(--ec-rosso);
	border-color: var(--ec-linea);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: none;
	color: var(--ec-inchiostro);
	border-color: var(--ec-inchiostro);
}

/* --------------------------------------------------------------------------
   6. Briciole di pane
   -------------------------------------------------------------------------- */

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 26px;
	font-size: var(--ec-micro-size);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ec-grigio-chiaro);
	text-align: center;
}

.woocommerce .woocommerce-breadcrumb a { color: var(--ec-grigio); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--ec-rosso); }

/* --------------------------------------------------------------------------
   7. Scheda prodotto
   -------------------------------------------------------------------------- */

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 76px);
	align-items: start;
}

.woocommerce div.product > .woocommerce-product-gallery { grid-column: 1; width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product > .summary { grid-column: 2; width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells,
.woocommerce div.product > .woocommerce-product-details__short-description { grid-column: 1 / -1; }

@media (max-width: 860px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); }
	.woocommerce div.product > .woocommerce-product-gallery,
	.woocommerce div.product > .summary { grid-column: 1; }
}

/* Galleria */
.woocommerce div.product div.images img {
	border-radius: var(--ec-raggio);
	background: var(--ec-crema);
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
	margin-top: 12px;
	padding: 0;
}

.woocommerce div.product div.images .flex-control-thumbs li { width: auto; margin: 0; float: none; }

.woocommerce div.product div.images .flex-control-thumbs img {
	opacity: .55;
	border: 1px solid transparent;
	transition: opacity var(--ec-transizione), border-color var(--ec-transizione);
}

.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--ec-linea); }

.woocommerce div.product .woocommerce-product-gallery__trigger {
	top: 14px;
	right: 14px;
	background: rgba(255, 255, 255, .9);
	border: 1px solid var(--ec-linea);
	border-radius: 50%;
	width: 38px;
	height: 38px;
	text-indent: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ec-inchiostro);
	font-size: 15px;
	box-shadow: none;
}

.woocommerce div.product .woocommerce-product-gallery__trigger:hover { color: var(--ec-rosso); }

/* Riepilogo */
.woocommerce div.product .summary { padding-top: 4px; }

.woocommerce div.product .product_title {
	margin: 0 0 14px;
	font-family: var(--ec-serif);
	font-size: clamp(30px, 3.6vw, 46px);
	font-weight: 300;
	line-height: 1.1;
	color: var(--ec-inchiostro);
}

/* Occhiello categoria sopra il titolo (via hook) */
.ec-prodotto-occhiello {
	display: block;
	margin-bottom: 12px;
	font-size: var(--ec-micro-size);
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.ec-prodotto-occhiello a { color: inherit; }
.ec-prodotto-occhiello a:hover { color: var(--ec-rosso); }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 22px;
	font-family: var(--ec-sans);
	font-size: 22px;
	font-weight: 300;
	letter-spacing: .04em;
	color: var(--ec-inchiostro);
}

.woocommerce div.product p.price del { color: var(--ec-grigio-chiaro); opacity: 1; font-size: 18px; margin-right: 10px; }
.woocommerce div.product p.price ins { background: none; color: var(--ec-rosso); text-decoration: none; font-weight: 400; }

.woocommerce div.product .woocommerce-product-details__short-description {
	margin-bottom: 26px;
	padding-bottom: 26px;
	border-bottom: 1px solid var(--ec-linea-tenue);
	color: var(--ec-testo);
}

/* Fregio tra prezzo e descrizione */
.woocommerce div.product .summary .ec-fregio {
	justify-content: flex-start;
	margin-bottom: 24px;
}

/* Quantità */
.woocommerce .quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--ec-linea);
	border-radius: var(--ec-raggio);
	overflow: hidden;
}

.woocommerce .quantity .qty {
	width: 68px;
	padding: 14px 6px;
	text-align: center;
	border: 0;
	border-radius: 0;
	font-size: 14px;
	-moz-appearance: textfield;
}

.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 26px;
}

.woocommerce div.product form.cart .button {
	flex: 1 1 auto;
	min-width: 200px;
	padding-block: 17px;
}

.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart.variations_form .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

/* Varianti */
.woocommerce div.product form.cart table.variations {
	width: 100%;
	margin-bottom: 20px;
	border: 0;
}

.woocommerce div.product form.cart table.variations td,
.woocommerce div.product form.cart table.variations th {
	padding: 0 0 14px;
	border: 0;
	vertical-align: middle;
	display: block;
	width: 100%;
}

.woocommerce div.product form.cart table.variations label {
	margin: 0 0 7px;
	font-size: var(--ec-micro-size);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 4px;
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce div.product .woocommerce-variation-price { margin-bottom: 16px; }

/* Meta prodotto */
.woocommerce div.product .product_meta {
	padding-top: 22px;
	border-top: 1px solid var(--ec-linea-tenue);
	font-size: var(--ec-micro-size);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce div.product .product_meta > span {
	display: block;
	margin-bottom: 7px;
}

.woocommerce div.product .product_meta a { color: var(--ec-testo); }
.woocommerce div.product .product_meta a:hover { color: var(--ec-rosso); }

/* Rassicurazioni sotto il carrello (via hook) */
.ec-garanzie {
	list-style: none;
	margin: 0 0 24px;
	padding: 20px 0 0;
	border-top: 1px solid var(--ec-linea-tenue);
	display: grid;
	gap: 11px;
}

.ec-garanzie li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--ec-testo);
}

.ec-garanzie li::before {
	content: '';
	width: 5px;
	height: 5px;
	margin-top: 8px;
	background: var(--ec-rosso);
	transform: rotate(45deg);
	flex: none;
}

/* --------------------------------------------------------------------------
   8. Schede informative
   -------------------------------------------------------------------------- */

.woocommerce div.product .woocommerce-tabs {
	margin-top: clamp(52px, 7vw, 90px);
	padding-top: clamp(40px, 5vw, 60px);
	border-top: 1px solid var(--ec-linea-tenue);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 34px;
	margin: 0 0 40px;
	padding: 0;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0 0 8px;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: var(--ec-grigio);
	border-bottom: 1px solid transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--ec-rosso); }

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--ec-inchiostro);
	border-bottom-color: var(--ec-rosso);
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: var(--ec-stretta);
	margin-inline: auto;
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* Tabella attributi */
.woocommerce table.shop_attributes {
	width: 100%;
	border: 0;
	margin: 0;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid var(--ec-linea-tenue);
	background: none !important;
	font-style: normal;
	text-align: left;
}

.woocommerce table.shop_attributes th {
	width: 34%;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce table.shop_attributes td p { margin: 0; padding: 0; }

/* --------------------------------------------------------------------------
   9. Recensioni
   -------------------------------------------------------------------------- */

.woocommerce .star-rating { color: var(--ec-rosso); font-size: 12px; letter-spacing: .1em; }
.woocommerce .star-rating::before { color: var(--ec-linea); }
.woocommerce ul.products li.product .star-rating { margin: 8px auto 0; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 16px; }

.woocommerce div.product .woocommerce-product-rating .woocommerce-review-link {
	font-size: var(--ec-micro-size);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce #reviews #comments ol.commentlist { padding: 0; }

.woocommerce #reviews #comments ol.commentlist li {
	margin-bottom: 28px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--ec-linea-tenue);
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
	width: 48px;
	border: 0;
	border-radius: 50%;
	padding: 0;
	background: var(--ec-crema);
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
	margin-left: 72px;
	padding: 0;
	border: 0;
	border-radius: 0;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta {
	font-size: var(--ec-micro-size);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce #reviews #comments ol.commentlist li .comment-text .woocommerce-review__author {
	font-family: var(--ec-serif);
	font-size: 17px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ec-inchiostro);
}

.woocommerce #review_form #respond .comment-reply-title {
	display: block;
	margin-bottom: 18px;
	font-family: var(--ec-serif);
	font-size: 24px;
	color: var(--ec-inchiostro);
}

.woocommerce p.stars a { color: var(--ec-rosso); }

/* --------------------------------------------------------------------------
   10. Correlati / up-sell
   -------------------------------------------------------------------------- */

.woocommerce .related,
.woocommerce .upsells,
.woocommerce .cross-sells {
	margin-top: clamp(56px, 7vw, 92px);
	padding-top: clamp(40px, 5vw, 60px);
	border-top: 1px solid var(--ec-linea-tenue);
}

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
	margin-bottom: 36px;
	font-size: clamp(24px, 3vw, 34px);
	text-align: center;
}

/* --------------------------------------------------------------------------
   11. Carrello (classico)
   -------------------------------------------------------------------------- */

.woocommerce table.shop_table {
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
	margin: 0 0 34px;
}

.woocommerce table.shop_table th {
	padding: 0 12px 14px;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: var(--ec-grigio);
	border-bottom: 1px solid var(--ec-linea);
}

.woocommerce table.shop_table td {
	padding: 22px 12px;
	border: 0;
	border-bottom: 1px solid var(--ec-linea-tenue);
	vertical-align: middle;
}

.woocommerce table.shop_table th:first-child,
.woocommerce table.shop_table td:first-child { padding-left: 0; }
.woocommerce table.shop_table th:last-child,
.woocommerce table.shop_table td:last-child { padding-right: 0; }

.woocommerce table.cart img,
.woocommerce-cart table.cart img {
	width: 82px;
	border-radius: var(--ec-raggio);
	background: var(--ec-crema);
}

.woocommerce table.cart td.product-name a {
	font-family: var(--ec-serif);
	font-size: 19px;
	color: var(--ec-inchiostro);
}

.woocommerce table.cart td.product-name a:hover { color: var(--ec-rosso); }

.woocommerce a.remove {
	width: 22px;
	height: 22px;
	line-height: 20px;
	font-size: 18px;
	font-weight: 300;
	color: var(--ec-grigio-chiaro) !important;
	border: 1px solid var(--ec-linea);
	border-radius: 50%;
}

.woocommerce a.remove:hover {
	background: var(--ec-rosso) !important;
	border-color: var(--ec-rosso);
	color: #fff !important;
}

.woocommerce-cart table.cart td.actions { padding-top: 26px; }

.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	gap: 10px;
	float: left;
	max-width: 420px;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 220px;
	padding: 14px 18px;
}

.woocommerce-cart .cart-collaterals { margin-top: 20px; }

.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	max-width: 420px;
	float: right;
	padding: 30px;
	background: var(--ec-crema);
	border: 1px solid var(--ec-linea-tenue);
	border-radius: var(--ec-raggio);
}

.woocommerce-cart .cart_totals h2 {
	margin-bottom: 20px;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce-cart .cart_totals table.shop_table td,
.woocommerce-cart .cart_totals table.shop_table th { padding: 13px 0; background: none; }

.woocommerce-cart .cart_totals .order-total td,
.woocommerce-cart .cart_totals .order-total th {
	border-bottom: 0;
	border-top: 1px solid var(--ec-linea);
	font-size: 17px;
	color: var(--ec-inchiostro);
}

.woocommerce-cart .wc-proceed-to-checkout { padding: 20px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; padding-block: 17px; }

.woocommerce-cart .cart-empty {
	text-align: center;
	font-family: var(--ec-serif);
	font-size: 26px;
	color: var(--ec-inchiostro);
	background: none;
	border: 0;
	padding: 0;
	margin-bottom: 24px;
	display: block;
}

.woocommerce-cart .return-to-shop { text-align: center; }

@media (max-width: 768px) {
	.woocommerce-cart .cart-collaterals .cart_totals { max-width: none; float: none; }
	.woocommerce-cart table.cart td.actions .coupon { float: none; max-width: none; margin-bottom: 14px; }
	.woocommerce table.shop_table_responsive tr td { padding: 12px 0; }
	.woocommerce table.shop_table_responsive tr td::before {
		font-family: var(--ec-sans);
		font-size: 10px;
		letter-spacing: .18em;
		text-transform: uppercase;
		color: var(--ec-grigio);
	}
}

/* --------------------------------------------------------------------------
   12. Cassa (classica)
   -------------------------------------------------------------------------- */

.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr; gap: 0; width: 100%; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }

.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: clamp(30px, 4vw, 60px);
	align-items: start;
}

.woocommerce-checkout form.checkout #customer_details { grid-column: 1; }
.woocommerce-checkout form.checkout #order_review_heading,
.woocommerce-checkout form.checkout #order_review { grid-column: 2; }

@media (max-width: 900px) {
	.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout #order_review_heading,
	.woocommerce-checkout form.checkout #order_review { grid-column: 1; }
}

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ec-linea-tenue);
	font-family: var(--ec-serif);
	font-size: 24px;
	font-weight: 400;
	color: var(--ec-inchiostro);
}

.woocommerce form .form-row { padding: 0; margin: 0 0 18px; }
.woocommerce form .form-row label { line-height: 1.5; }
.woocommerce form .form-row .required { color: var(--ec-rosso); border: 0; text-decoration: none; }

.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: calc(50% - 9px); float: left; }
.woocommerce form .form-row-last { float: right; }

.woocommerce-checkout #order_review {
	padding: 30px;
	background: var(--ec-crema);
	border: 1px solid var(--ec-linea-tenue);
	border-radius: var(--ec-raggio);
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { padding: 13px 0; background: none; }

.woocommerce-checkout #payment {
	background: none;
	border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 20px 0 0;
	border-top: 1px solid var(--ec-linea);
	border-bottom: 0;
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 12px;
	list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods label {
	display: inline;
	font-family: var(--ec-sans);
	font-size: 14px;
	letter-spacing: .02em;
	text-transform: none;
	color: var(--ec-inchiostro);
}

.woocommerce-checkout #payment div.payment_box {
	margin-top: 12px;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid var(--ec-linea);
	border-radius: var(--ec-raggio);
	font-size: 13px;
	color: var(--ec-testo);
}

.woocommerce-checkout #payment div.payment_box::before { display: none; }

.woocommerce-checkout #payment .place-order { padding: 22px 0 0; }
.woocommerce-checkout #payment #place_order { width: 100%; padding-block: 17px; }

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 16px; font-size: 13px; }

/* Checkbox e radio */
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"] {
	width: 15px;
	height: 15px;
	margin-right: 7px;
	accent-color: var(--ec-rosso);
	vertical-align: -2px;
}

.woocommerce form .form-row label.checkbox,
.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 4px;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ec-testo);
}

/* Ordine ricevuto */
.woocommerce ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 22px;
	margin: 0 0 40px;
	padding: 28px 30px;
	background: var(--ec-crema);
	border: 1px solid var(--ec-linea-tenue);
	border-radius: var(--ec-raggio);
	list-style: none;
}

.woocommerce ul.order_details li {
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: var(--ec-micro-size);
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 7px;
	font-family: var(--ec-serif);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ec-inchiostro);
}

.woocommerce .woocommerce-order > p:first-child,
.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-family: var(--ec-serif);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 300;
	color: var(--ec-inchiostro);
	text-align: center;
	margin-bottom: 30px;
}

/* --------------------------------------------------------------------------
   13. Area riservata
   -------------------------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-navigation {
	width: 24%;
	float: left;
	padding-right: 34px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }

.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--ec-linea-tenue);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 13px 0;
	font-size: var(--ec-micro-size);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ec-testo);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--ec-rosso); }

.woocommerce-account .woocommerce-MyAccount-content { width: 72%; float: right; }

@media (max-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; padding-right: 0; }
	.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 30px; }
}

/* Login / registrazione */
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce .col2-set#customer_login {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: clamp(26px, 4vw, 50px);
	max-width: 900px;
	margin-inline: auto;
}

.woocommerce .col2-set#customer_login .col-1,
.woocommerce .col2-set#customer_login .col-2 { width: 100%; float: none; }

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password {
	padding: 32px;
	background: #fff;
	border: 1px solid var(--ec-linea);
	border-radius: var(--ec-raggio);
	margin: 0;
}

.woocommerce form.login h2,
.woocommerce .col2-set#customer_login h2 {
	margin: 0 0 20px;
	font-family: var(--ec-serif);
	font-size: 26px;
	font-weight: 300;
}

.woocommerce form.login .button,
.woocommerce form.register .button { width: 100%; margin-top: 6px; }

.woocommerce-form-login__rememberme { margin-bottom: 14px; }
.woocommerce-LostPassword { margin: 14px 0 0; font-size: 12px; }

/* --------------------------------------------------------------------------
   14. Widget e filtri
   -------------------------------------------------------------------------- */

.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
	background: var(--ec-linea);
	border-radius: 0;
	height: 2px;
}

.woocommerce .widget_price_filter .ui-slider .ui-slider-range { background: var(--ec-rosso); }

.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
	width: 12px;
	height: 12px;
	top: -5px;
	background: var(--ec-inchiostro);
	border-radius: 50%;
}

.woocommerce .widget_price_filter .price_slider_amount .button {
	float: left;
	padding: 10px 18px;
	font-size: 10px;
}

.woocommerce .widget_price_filter .price_slider_amount .price_label {
	float: right;
	padding-top: 12px;
	font-size: 12px;
	color: var(--ec-testo);
}

.woocommerce ul.product_list_widget li {
	padding: 14px 0;
	border-bottom: 1px solid var(--ec-linea-tenue);
}

.woocommerce ul.product_list_widget li img {
	width: 58px;
	border-radius: var(--ec-raggio);
	background: var(--ec-crema);
	margin-left: 14px;
}

.woocommerce ul.product_list_widget li a {
	font-family: var(--ec-serif);
	font-size: 17px;
	color: var(--ec-inchiostro);
}

/* --------------------------------------------------------------------------
   15. Carrello laterale / mini-carrello
   -------------------------------------------------------------------------- */

.woocommerce ul.cart_list li,
.woocommerce .widget_shopping_cart .cart_list li { padding: 14px 0 14px 0; }

.woocommerce .widget_shopping_cart .total,
.woocommerce.widget_shopping_cart .total {
	padding: 16px 0;
	border-top: 1px solid var(--ec-linea);
	font-size: 15px;
	color: var(--ec-inchiostro);
}

.woocommerce .widget_shopping_cart .buttons a { margin-right: 8px; }

/* --------------------------------------------------------------------------
   16. Blocchi WooCommerce (carrello/cassa a blocchi, WooCommerce 8+)
   -------------------------------------------------------------------------- */

.wc-block-components-title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title {
	font-family: var(--ec-serif) !important;
	font-weight: 300 !important;
	color: var(--ec-inchiostro) !important;
	letter-spacing: .01em;
}

.wc-block-components-product-name {
	font-family: var(--ec-serif);
	font-size: 18px;
	color: var(--ec-inchiostro);
}

.wc-block-components-product-name:hover { color: var(--ec-rosso); }

.wc-block-components-text-input input.components-form-token-field__input,
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea {
	padding: 14px 16px;
	font-family: var(--ec-sans);
	font-size: 14px;
	border: 1px solid var(--ec-linea);
	border-radius: var(--ec-raggio);
	background: #fff;
	color: var(--ec-inchiostro);
	box-shadow: none;
}

.wc-block-components-text-input.is-active input:focus,
.wc-block-components-text-input input:focus { box-shadow: none; border-color: var(--ec-rosso); }

.wc-block-components-text-input label,
.wc-block-components-checkout-step__heading-content { font-family: var(--ec-sans); }

.wc-block-components-button:not(.is-link) {
	background: var(--ec-inchiostro);
	border: 1px solid var(--ec-inchiostro);
	border-radius: var(--ec-raggio);
	color: #fff;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	padding: 15px 26px;
	min-height: 0;
}

.wc-block-components-button:not(.is-link):hover {
	background: var(--ec-rosso);
	border-color: var(--ec-rosso);
	color: #fff;
}

.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--ec-sans);
	color: var(--ec-inchiostro);
}

.wc-block-components-panel,
.wc-block-components-sidebar .wc-block-components-panel {
	background: var(--ec-crema);
	border-radius: var(--ec-raggio);
}

.wc-block-checkout__sidebar .wc-block-components-sidebar,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--ec-crema);
	border: 1px solid var(--ec-linea-tenue);
	border-radius: var(--ec-raggio);
	padding: 26px;
}

.wc-block-components-checkout-step__title {
	font-family: var(--ec-serif);
	font-weight: 400;
	color: var(--ec-inchiostro);
}

/* --------------------------------------------------------------------------
   17. Pagina "prossimamente" di WooCommerce
   -------------------------------------------------------------------------- */

.woocommerce-coming-soon-entire-site .woocommerce-coming-soon-banner,
body.woocommerce-coming-soon h1 { font-family: var(--ec-serif); }

/* --------------------------------------------------------------------------
   18. Dettagli finali
   -------------------------------------------------------------------------- */

.woocommerce .blockUI.blockOverlay::before,
.woocommerce .loader::before { border-top-color: var(--ec-rosso); }

.woocommerce .woocommerce-info a,
.woocommerce .woocommerce-message a { color: var(--ec-rosso); }

.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding-left: 0; color: var(--ec-inchiostro); }
.select2-container--default .select2-selection--single { height: auto; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--ec-rosso); }
.select2-dropdown { border-color: var(--ec-linea); border-radius: var(--ec-raggio); }

/* --------------------------------------------------------------------------
   19. Correzioni di impaginazione
   -------------------------------------------------------------------------- */

/* `div.product` è una griglia: l'etichetta saldo, che WooCommerce stampa
   come figlio diretto, va tolta dal flusso per non occuparne una cella. */
.woocommerce div.product { position: relative; }

.woocommerce div.product > span.onsale {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 6;
}

/* I prodotti raggruppati usano una tabella: niente flex sul form. */
.woocommerce div.product form.cart.grouped_form { display: block; }
.woocommerce div.product form.cart.grouped_form table { width: 100%; margin-bottom: 18px; }
.woocommerce div.product form.cart.grouped_form .button { min-width: 0; }

/* Rispetta il numero di colonne scelto in Personalizza → WooCommerce. */
.woocommerce ul.products.columns-1 { --ec-colonne: 1; }
.woocommerce ul.products.columns-2 { --ec-colonne: 2; }
.woocommerce ul.products.columns-3 { --ec-colonne: 3; }
.woocommerce ul.products.columns-4 { --ec-colonne: 4; }
.woocommerce ul.products.columns-5 { --ec-colonne: 5; }
.woocommerce ul.products.columns-6 { --ec-colonne: 6; }

@media (max-width: 1024px) {
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 { --ec-colonne: 3; }
}

@media (max-width: 860px) {
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 { --ec-colonne: 2; }
}

@media (max-width: 480px) {
	.woocommerce ul.products[class*="columns-"] { --ec-colonne: 2; }
}

/* Il tema padre imposta `float` su alcune celle: azzeriamolo nella griglia. */
.woocommerce div.product::before,
.woocommerce div.product::after { display: none; }

/* Il telaio lo imposta style.css per tutte le pagine: qui resta solo il
   contenitore interno delle pagine WooCommerce, che non deve aggiungere
   un secondo padding. */
.ec-negozio .page-content {
	width: 100%;
	margin-inline: auto;
}

/* --------------------------------------------------------------------------
   20. Tabelle: nessuno sfondo, nessun bordo verticale
   WooCommerce e il tema padre zebrano le righe e disegnano cornici.
   Qui il ritmo lo danno solo le righe orizzontali sottili.
   -------------------------------------------------------------------------- */

.woocommerce table.shop_table,
.woocommerce table.shop_table thead,
.woocommerce table.shop_table tbody,
.woocommerce table.shop_table tfoot,
.woocommerce table.shop_table tr,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce table.shop_attributes tr,
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	background: transparent;
	border-left: 0;
	border-right: 0;
	border-top: 0;
	box-shadow: none;
}

.woocommerce table.shop_table th { border-bottom: 1px solid var(--ec-linea); }
.woocommerce table.shop_table td { border-bottom: 1px solid var(--ec-linea-tenue); }

.woocommerce-cart table.cart td.actions,
.woocommerce table.shop_table tbody tr:last-child td { border-bottom: 0; }

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { border-bottom: 1px solid var(--ec-linea); }

.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td { border-bottom: 0; }

/* Miniature del carrello: nessuna cornice. */
.woocommerce table.cart img,
.woocommerce-cart table.cart img { border: 0; box-shadow: none; }

/* --------------------------------------------------------------------------
   21. Bottoni dentro gli avvisi
   La regola generica colora i link di bordeaux: i bottoni, che hanno già
   il fondo scuro, devono restare bianchi.
   -------------------------------------------------------------------------- */

.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-info a.button,
.woocommerce .woocommerce-error a.button,
.woocommerce .woocommerce-message a.button:hover,
.woocommerce .woocommerce-info a.button:hover,
.woocommerce .woocommerce-error a.button:hover {
	color: #fff;
}

/* --------------------------------------------------------------------------
   22. Stato disabilitato
   Un bottone scuro reso semitrasparente diventa illeggibile: meglio
   trasformarlo in un contorno tenue.
   -------------------------------------------------------------------------- */

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button.wc-variation-selection-needed {
	background: transparent;
	color: var(--ec-grigio-chiaro);
	border-color: var(--ec-linea);
	opacity: 1;
	cursor: default;
}

.woocommerce button.button:disabled:hover,
.woocommerce button.button:disabled[disabled]:hover,
.woocommerce input.button:disabled:hover {
	background: transparent;
	color: var(--ec-grigio-chiaro);
	border-color: var(--ec-linea);
}

/* --------------------------------------------------------------------------
   23. Telefono — tabelle impilate
   Sotto i 768px WooCommerce carica `woocommerce-smallscreen.css`, che impila
   le celle, rimette lo zebrato e nasconde le miniature. Qui riprendiamo il
   controllo: etichette nel nostro micro-stile, niente sfondi, e soprattutto
   nessun elemento a larghezza fissa che faccia debordare la pagina.
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {

	/* Niente zebrato: la regola di WooCommerce è più specifica, la ripetiamo. */
	.woocommerce table.shop_table_responsive tr:nth-child(2n) td,
	.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,
	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		background-color: transparent;
	}

	.woocommerce table.shop_table_responsive { width: 100%; table-layout: fixed; }

	.woocommerce table.shop_table_responsive tr {
		display: block;
		padding: 18px 0;
		border-bottom: 1px solid var(--ec-linea-tenue);
	}

	.woocommerce table.shop_table_responsive tr:last-child { border-bottom: 0; }

	.woocommerce table.shop_table_responsive tr td {
		padding: 6px 0;
		border: 0;
		overflow-wrap: anywhere;
	}

	/* Etichetta della cella nel micro-stile del brand. */
	.woocommerce table.shop_table_responsive tr td::before,
	.woocommerce-page table.shop_table_responsive tr td::before {
		font-family: var(--ec-sans);
		font-size: 10px;
		font-weight: 400;
		letter-spacing: .18em;
		text-transform: uppercase;
		color: var(--ec-grigio);
	}

	/* In un negozio d'arte la miniatura serve: WooCommerce la nasconde. */
	.woocommerce table.cart .product-thumbnail,
	.woocommerce-page table.cart .product-thumbnail { display: block; }
	.woocommerce table.cart .product-thumbnail::before { display: none; }
	.woocommerce table.cart .product-thumbnail img { width: 72px; }

	.woocommerce table.cart td.product-name { font-size: 16px; }
	.woocommerce table.cart td.product-name a { font-size: 18px; }

	/* Riga delle azioni: nulla a larghezza fissa, o la pagina deborda. */
	.woocommerce-cart table.cart td.actions,
	.woocommerce-cart #content table.cart td.actions {
		padding: 18px 0 0;
		text-align: left;
	}

	.woocommerce-cart table.cart td.actions .coupon,
	.woocommerce-cart #content table.cart td.actions .coupon {
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		float: none;
		max-width: none;
		padding-bottom: 12px;
	}

	.woocommerce-cart table.cart td.actions .coupon .input-text,
	.woocommerce-cart #content table.cart td.actions .coupon .input-text {
		width: auto;
		min-width: 0;
		flex: 1 1 150px;
	}

	.woocommerce-cart table.cart td.actions .coupon .button,
	.woocommerce-cart #content table.cart td.actions .coupon .button {
		width: auto;
		flex: 0 0 auto;
		float: none;
	}

	.woocommerce-cart table.cart td.actions > .button,
	.woocommerce-cart #content table.cart td.actions > .button {
		display: block;
		width: 100%;
	}

	/* Riquadro totali a tutta larghezza. */
	.woocommerce-cart .cart-collaterals .cart_totals {
		float: none;
		max-width: none;
		padding: 24px;
	}

	.woocommerce ul.order_details { padding: 22px 24px; }

	/* Rete di sicurezza: nessuna tabella può allargare la pagina. */
	.woocommerce table.shop_table,
	.woocommerce-page table.shop_table { max-width: 100%; }
}

@media (max-width: 480px) {
	:root { --ec-gutter: 20px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs { gap: 20px; }
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { width: 100%; float: none; }
}

/* --------------------------------------------------------------------------
   24. Il viola di WooCommerce
   `.button.alt` è colorato #7f54b3, e la variante `.disabled` aggiunge una
   classe in più: batte le regole della sezione 2 per specificità. Qui
   pareggiamo il livello, sia per lo stato attivo che per quello disabilitato.
   -------------------------------------------------------------------------- */

.woocommerce div.product form.cart button.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background-color: var(--ec-inchiostro);
	border-color: var(--ec-inchiostro);
	color: #fff;
}

.woocommerce div.product form.cart button.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: var(--ec-rosso);
	border-color: var(--ec-rosso);
	color: #fff;
}

/* Disabilitato: contorno tenue invece del viola sbiadito. */
.woocommerce div.product form.cart button.button.alt.disabled,
.woocommerce div.product form.cart button.button.alt.disabled:hover,
.woocommerce div.product form.cart button.button.alt:disabled,
.woocommerce div.product form.cart button.button.alt:disabled:hover,
.woocommerce a.button.alt.disabled,
.woocommerce a.button.alt.disabled:hover,
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt.disabled:hover,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt:disabled:hover,
.woocommerce input.button.alt:disabled,
.woocommerce input.button.alt:disabled:hover {
	background-color: transparent;
	border-color: var(--ec-linea);
	color: var(--ec-grigio-chiaro);
	opacity: 1;
	cursor: not-allowed;
}

/* Altri punti in cui il viola può affiorare. */
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message { border-left-color: var(--ec-inchiostro); }

.woocommerce div.product form.cart .reset_variations:hover,
.woocommerce-MyAccount-navigation li.is-active a { color: var(--ec-rosso); }

/* Numeri di pagina più compatti sui telefoni. */
@media (max-width: 480px) {
	.woocommerce nav.woocommerce-pagination ul li a,
	.woocommerce nav.woocommerce-pagination ul li span {
		min-width: 34px;
		height: 34px;
		padding: 0 6px;
		font-size: 12px;
	}
}

/* --------------------------------------------------------------------------
   25. Controlli d'archivio: ordina, per pagina, colonne
   -------------------------------------------------------------------------- */

.ec-controlli {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin: 0;
}

.ec-controlli__voce {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
}

.ec-controlli__voce > span {
	font-size: 10px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ec-grigio-chiaro);
	white-space: nowrap;
}

.ec-controlli select {
	width: auto;
	min-width: 190px;
	padding: 10px 38px 10px 14px;
	font-size: var(--ec-micro-size);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-inchiostro);
	border-color: var(--ec-linea);
}

.ec-controlli__voce--stretta select { min-width: 74px; padding-right: 32px; }

.ec-controlli noscript button { padding: 10px 18px; font-size: 10px; }

/* Sotto i 992px le colonne le decide il layout, non il visitatore. */
@media (max-width: 991px) {
	.ec-controlli__voce--colonne { display: none; }
}

@media (max-width: 600px) {
	.ec-barra-archivio { gap: 12px; }
	.ec-controlli { width: 100%; gap: 10px 12px; }
	.ec-controlli__voce { flex: 1 1 auto; }
	.ec-controlli select { min-width: 0; width: 100%; }
	.ec-controlli__voce--stretta { flex: 0 0 auto; }
}

/* --------------------------------------------------------------------------
   26. Riepilogo prodotto — ritmo unico
   I blocchi del riepilogo arrivavano da WooCommerce con spaziature diverse
   fra loro (26/26, 20/24, 22/0) e le celle delle varianti ereditavano lo
   sfondo grigio delle tabelle. Qui tutto passa da una sola misura.
   -------------------------------------------------------------------------- */

.woocommerce div.product .summary {
	--ec-blocco: 26px;
	--ec-campo-h: 52px;
}

/* --- Separatori: una sola regola, sempre sopra il blocco --- */

.woocommerce div.product .summary .woocommerce-product-details__short-description {
	margin-bottom: var(--ec-blocco);
	padding-bottom: 0;
	border-bottom: 0;
}

.woocommerce div.product .summary form.cart,
.woocommerce div.product .summary .ec-garanzie,
.woocommerce div.product .summary .product_meta {
	margin-top: 0;
	margin-bottom: var(--ec-blocco);
	padding-top: var(--ec-blocco);
	border-top: 1px solid var(--ec-linea-tenue);
}

.woocommerce div.product .summary .product_meta { margin-bottom: 0; }

/* --- Varianti: nessuno sfondo ereditato dalle tabelle --- */

.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr,
.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td {
	background: transparent;
	background-color: transparent;
	border: 0;
}

.woocommerce div.product form.cart table.variations th.label,
.woocommerce div.product form.cart table.variations th.label label {
	margin: 0 0 8px;
	padding: 0;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.woocommerce div.product form.cart table.variations td.value { padding: 0 0 var(--ec-blocco); }
.woocommerce div.product form.cart table.variations tr:last-child td.value { padding-bottom: 0; }

/* Il link "Svuota" è nascosto con visibility: così non lascia un vuoto. */
.woocommerce div.product form.cart .reset_variations[style*="visibility: hidden"],
.woocommerce div.product form.cart .reset_variations[style*="visibility:hidden"] {
	display: none;
}

.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 10px;
}

/* Prezzo della variante scelta: stesso peso del prezzo principale. */
.woocommerce div.product .woocommerce-variation-price {
	margin: 0 0 var(--ec-blocco);
}

.woocommerce div.product .woocommerce-variation-price .price {
	margin: 0;
	font-family: var(--ec-sans);
	font-size: 20px;
	font-weight: 300;
	color: var(--ec-inchiostro);
}

.woocommerce div.product .woocommerce-variation-availability p { margin: 0 0 12px; font-size: 13px; }

/* --- Campi alla stessa altezza --- */

.woocommerce div.product form.cart,
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	align-items: stretch;
	gap: 12px;
}

.woocommerce div.product form.cart table.variations select {
	height: var(--ec-campo-h);
	padding-block: 0;
}

.woocommerce div.product form.cart .quantity { flex: 0 0 auto; }

.woocommerce div.product form.cart .quantity {
	min-height: var(--ec-campo-h);
	align-items: stretch;
}

/* L'altezza la dà il contenitore: se la mettessimo sul campo, i suoi bordi
   si sommerebbero e la quantità risulterebbe 2px più alta del bottone. */
.woocommerce div.product form.cart .quantity .qty {
	height: auto;
	min-height: 0;
	align-self: stretch;
	padding-block: 0;
}

.woocommerce div.product form.cart button.button,
.woocommerce div.product form.cart .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ec-campo-h);
	padding-block: 0;
	flex: 1 1 220px;
	min-width: 0;
}

/* --- Rassicurazioni e meta: stessa griglia verticale --- */

.woocommerce div.product .summary .ec-garanzie {
	padding-left: 0;
	gap: 12px;
}

.woocommerce div.product .summary .product_meta > span:last-child { margin-bottom: 0; }

/* Bottone in attesa che si scelga il formato.
   Resta pieno come quello attivo — un contorno quasi bianco accanto al campo
   quantità spezzava l'uniformità della scheda — ma spento, così si capisce
   che manca un passaggio.
   L'`!important` è deliberato: qui si sovrascrive uno stato che WooCommerce
   e le regole di base della sezione 24 impostano entrambi. */
.woocommerce div.product form.cart button.button.alt.disabled,
.woocommerce div.product form.cart button.button.alt.disabled:hover,
.woocommerce div.product form.cart button.button.alt:disabled,
.woocommerce div.product form.cart button.button.alt:disabled:hover,
.woocommerce div.product form.cart button.button.alt.wc-variation-selection-needed,
.woocommerce div.product form.cart button.button.alt.wc-variation-selection-needed:hover {
	background-color: var(--ec-linea) !important;
	border-color: var(--ec-linea) !important;
	color: var(--ec-testo) !important;
	opacity: 1;
	cursor: not-allowed;
}

@media (max-width: 480px) {
	.woocommerce div.product form.cart .quantity { flex: 1 1 100%; }
	.woocommerce div.product form.cart .quantity .qty { width: 100%; }
	.woocommerce div.product form.cart button.button { flex: 1 1 100%; }
}

/* --------------------------------------------------------------------------
   27. Carrello e cassa a blocchi
   WooCommerce 8+ usa i blocchi per carrello e cassa. I loro fogli di stile
   vengono accodati DOPO quelli del tema, quindi a parità di specificità
   vincono loro: ogni selettore qui è prefissato con `.ec-negozio` (classe che
   il tema mette sul body di negozio, carrello, cassa e area riservata) per
   guadagnare il livello che serve.
   -------------------------------------------------------------------------- */

/* --- Bottoni: la sottolineatura arriva dallo stile dei link --- */

.ec-negozio .wc-block-components-button,
.ec-negozio .wc-block-components-button:hover,
.ec-negozio .wc-block-components-button:focus,
.ec-negozio .wc-block-components-button:active,
.ec-negozio .wc-block-components-button .wc-block-components-button__text,
.ec-negozio .wc-block-cart__submit-button,
.ec-negozio .wc-block-cart__submit-button:hover,
.ec-negozio .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
	text-decoration: none;
}

.ec-negozio .wc-block-cart__submit-button,
.ec-negozio .wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 54px;
	background-color: var(--ec-inchiostro);
	border: 1px solid var(--ec-inchiostro);
	border-radius: var(--ec-raggio);
	color: #fff;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
}

.ec-negozio .wc-block-cart__submit-button:hover,
.ec-negozio .wc-block-components-checkout-place-order-button:hover {
	background-color: var(--ec-rosso);
	border-color: var(--ec-rosso);
	color: #fff;
}

/* --- Nome del prodotto --- */

.ec-negozio .wc-block-components-product-name,
.ec-negozio a.wc-block-components-product-name,
.ec-negozio .wc-block-cart-item__product .wc-block-components-product-name {
	font-family: var(--ec-serif);
	font-size: 19px;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--ec-inchiostro);
	text-decoration: none;
}

.ec-negozio .wc-block-components-product-name:hover,
.ec-negozio a.wc-block-components-product-name:hover {
	color: var(--ec-rosso);
	text-decoration: none;
}

/* --- Righe dei totali --- */

.ec-negozio .wc-block-components-totals-item__label,
.ec-negozio .wc-block-components-totals-item__value {
	font-family: var(--ec-sans);
	font-weight: 300;
	color: var(--ec-testo);
}

.ec-negozio .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.ec-negozio .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--ec-sans);
	font-size: 22px;
	font-weight: 300;
	letter-spacing: .02em;
	color: var(--ec-inchiostro);
}

.ec-negozio .wc-block-components-totals-footer-item {
	border-top: 1px solid var(--ec-linea);
	padding-top: 18px;
}

/* --- Prezzi delle righe --- */

.ec-negozio .wc-block-components-product-price__value,
.ec-negozio .wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-product-price {
	font-family: var(--ec-sans);
	font-weight: 300;
	color: var(--ec-testo);
}

.ec-negozio .wc-block-components-product-metadata,
.ec-negozio .wc-block-components-product-metadata__description {
	font-size: 13px;
	color: var(--ec-grigio);
}

/* --- Selettore quantità --- */

.ec-negozio .wc-block-components-quantity-selector {
	border: 1px solid var(--ec-linea);
	border-radius: var(--ec-raggio);
	min-height: 46px;
}

.ec-negozio .wc-block-components-quantity-selector__input {
	font-family: var(--ec-sans);
	font-size: 14px;
	color: var(--ec-inchiostro);
}

.ec-negozio .wc-block-components-quantity-selector__button {
	color: var(--ec-grigio);
	font-weight: 300;
}

.ec-negozio .wc-block-components-quantity-selector__button:hover { color: var(--ec-rosso); }

/* --- Pannello dei codici sconto --- */

.ec-negozio .wc-block-components-panel__button {
	font-family: var(--ec-sans);
	font-size: 13px;
	font-weight: 300;
	color: var(--ec-testo);
}

.ec-negozio .wc-block-components-panel__button:hover { color: var(--ec-rosso); }

/* --- Intestazioni della cassa --- */

.ec-negozio .wc-block-components-checkout-step__title,
.ec-negozio .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title {
	font-family: var(--ec-serif);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ec-inchiostro);
}

.ec-negozio .wc-block-components-checkout-step__description {
	font-size: 13px;
	color: var(--ec-grigio);
}

/* --- Intestazione della tabella carrello --- */

.ec-negozio .wc-block-cart-items__header,
.ec-negozio .wc-block-cart-items__header th {
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	font-weight: 400;
	letter-spacing: var(--ec-micro-tracking);
	text-transform: uppercase;
	color: var(--ec-grigio);
	border-bottom: 1px solid var(--ec-linea);
}

/* --- Cestino di rimozione --- */

.ec-negozio .wc-block-cart-item__remove-link {
	font-size: var(--ec-micro-size);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ec-grigio-chiaro);
	text-decoration: none;
}

.ec-negozio .wc-block-cart-item__remove-link:hover { color: var(--ec-rosso); }

/* Su telefono il riepilogo d'ordine è un pannello a scomparsa, con un titolo
   diverso da quello della versione da scrivania: va vestito a parte. */
.ec-negozio .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--ec-serif);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ec-inchiostro);
}

.ec-negozio .wc-block-components-checkout-order-summary__title .wc-block-components-totals-item__value,
.ec-negozio .wc-block-components-checkout-order-summary__title .wc-block-components-formatted-money-amount {
	font-family: var(--ec-sans);
	font-size: 15px;
	font-weight: 300;
	color: var(--ec-testo);
}

/* --------------------------------------------------------------------------
   28. Carosello di prodotti
   La pista è uno scorrimento orizzontale nativo con aggancio: niente libreria,
   funziona al dito su telefono e con la rotella su desktop.
   -------------------------------------------------------------------------- */

.ec-carosello {
	margin-block: clamp(44px, 6vw, 76px);
}

.ec-carosello__testa {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 24px;
	padding-bottom: 16px;
	margin-bottom: clamp(20px, 3vw, 32px);
	border-bottom: 1px solid var(--ec-linea-tenue);
}

.ec-carosello__titolo {
	margin: 0;
	font-family: var(--ec-serif);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 300;
	color: var(--ec-inchiostro);
}

.ec-carosello__comandi {
	display: flex;
	align-items: center;
	gap: 20px;
}

.ec-carosello__frecce { display: flex; gap: 8px; }

.ec-carosello__freccia {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--ec-linea);
	border-radius: 50%;
	color: var(--ec-inchiostro);
	cursor: pointer;
	transition: color var(--ec-transizione), border-color var(--ec-transizione), opacity var(--ec-transizione);
}

.ec-carosello__freccia svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ec-carosello__freccia:hover:not(:disabled) {
	background: transparent;
	color: var(--ec-rosso);
	border-color: var(--ec-rosso);
}

.ec-carosello__freccia:disabled {
	opacity: .3;
	cursor: default;
	background: transparent;
	border-color: var(--ec-linea);
	color: var(--ec-grigio-chiaro);
}

/* La pista: da griglia a fila scorrevole. */
.ec-carosello .ec-carosello__pista ul.products {
	display: flex;
	grid-template-columns: none;
	flex-wrap: nowrap;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	gap: clamp(16px, 2vw, 30px);
	margin: 0;
	padding: 0 2px 8px;
	scrollbar-width: thin;
	scrollbar-color: var(--ec-linea) transparent;
}

.ec-carosello .ec-carosello__pista ul.products li.product {
	flex: 0 0 clamp(200px, 23vw, 280px);
	scroll-snap-align: start;
	margin: 0 !important;
}

.ec-carosello__pista::-webkit-scrollbar,
.ec-carosello__pista ul.products::-webkit-scrollbar { height: 4px; }

.ec-carosello__pista ul.products::-webkit-scrollbar-thumb {
	background: var(--ec-linea);
	border-radius: 2px;
}

.ec-carosello__pista:focus-visible { outline: 2px solid var(--ec-rosso); outline-offset: 4px; }

/* Sul telefono le frecce non servono: si scorre col dito. */
@media (max-width: 767px) {
	.ec-carosello__frecce { display: none; }
	.ec-carosello .ec-carosello__pista ul.products li.product { flex-basis: 62vw; }
}

@media (prefers-reduced-motion: reduce) {
	.ec-carosello .ec-carosello__pista ul.products { scroll-behavior: auto; }
}

/* --------------------------------------------------------------------------
   29. Caricamento progressivo degli archivi
   I numeri di pagina restano nel markup e spariscono solo quando il
   JavaScript è partito: se non parte, tornano visibili e cliccabili.
   -------------------------------------------------------------------------- */

.ec-js-scorrimento .woocommerce nav.woocommerce-pagination { display: none; }

.ec-altri {
	margin-top: clamp(36px, 5vw, 62px);
	text-align: center;
}

/* Il bottone compare solo quando tocca alla persona decidere. */
.ec-altri__bottone {
	display: none;
	min-width: 260px;
}

.ec-altri--manuale .ec-altri__bottone { display: inline-block; }

.ec-altri--attesa .ec-altri__bottone {
	opacity: .45;
	pointer-events: none;
}

.ec-altri__stato {
	margin: 0;
	min-height: 18px;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ec-grigio-chiaro);
}

.ec-altri--manuale .ec-altri__stato { margin-top: 14px; }

/* Mentre carica, un rombo che pulsa: la stessa cifra del fregio. */
.ec-altri--attesa .ec-altri__stato::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 10px;
	background: var(--ec-rosso);
	transform: rotate(45deg);
	animation: ecPulse 1.1s ease-in-out infinite;
	vertical-align: middle;
}

@media (max-width: 480px) {
	.ec-altri__bottone { min-width: 0; width: 100%; }
}

/* Il conteggio: quando il caricamento progressivo è attivo si mostra il
   nostro, perché quello di WooCommerce viene riscritto dal suo script. */
.ec-conteggio {
	display: none;
	margin: 0;
	font-family: var(--ec-sans);
	font-size: var(--ec-micro-size);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ec-grigio);
}

.ec-js-scorrimento .ec-conteggio { display: block; }
.ec-js-scorrimento .woocommerce .woocommerce-result-count { display: none; }

/* --------------------------------------------------------------------------
   30. Barra d'acquisto flottante — solo telefono, scheda prodotto
   Sta in fondo allo schermo con il formato e il pulsante. Compare quando il
   pulsante vero del modulo non è in vista, e si ritira quando lo è: due
   «Aggiungi al carrello» sullo stesso schermo sarebbero uno di troppo.
   Sopra i 768px non esiste: là il modulo si vede sempre.
   -------------------------------------------------------------------------- */

.ec-acquisto { display: none; }

@media (max-width: 768px) {
	.ec-acquisto {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 150;
		/* Margini più stretti del solito: a 375px ogni pixel serve al pulsante. */
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
		background: #fff;
		border-top: 1px solid var(--ec-linea);
		box-shadow: 0 -10px 30px rgba(42, 37, 34, .07);
		transform: translateY(110%);
		visibility: hidden;
		transition: transform .3s ease, visibility 0s linear .3s;
	}

	.ec-acquisto--visibile {
		transform: none;
		visibility: visible;
		transition: transform .3s ease;
	}

	/* Il piè di pagina non deve finire dietro la barra. */
	body.ec-con-acquisto { padding-bottom: 82px; }

	.ec-acquisto__int {
		display: flex;
		align-items: stretch;
		gap: 10px;
	}

	/* Il formato: la tendina del tema, compatta. Le voci sono quelle del
	   modulo vero, copiate dal JavaScript; il prezzo compare nel pulsante. */
	.ec-acquisto .ec-acquisto__formato {
		flex: 0 1 auto;
		width: auto;
		min-width: 96px;
		max-width: 44%;
		height: 50px;
		padding: 0 34px 0 14px;
		font-size: var(--ec-micro-size);
		font-weight: 400;
		letter-spacing: .12em;
		text-transform: uppercase;
		color: var(--ec-inchiostro);
		border-color: var(--ec-linea);
		background-position: calc(100% - 18px) calc(50% + 1px), calc(100% - 13px) calc(50% + 1px);
	}

	.ec-acquisto .ec-acquisto__formato[hidden] { display: none; }

	.ec-acquisto .ec-acquisto__formato:focus { border-color: var(--ec-inchiostro); }

	/* Il pulsante, con i colori scritti per esteso: il reset di Hello
	   Elementor veste `[type="button"]` di rosa (#c36), e un attributo
	   batte il selettore `button` del tema. Qui la classe batte l'attributo. */
	.ec-acquisto .ec-acquisto__bottone {
		flex: 1 1 auto;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 48px;
		min-width: 0;
		padding: 12px 14px;
		font-family: var(--ec-sans);
		font-size: var(--ec-micro-size);
		font-weight: 400;
		text-transform: uppercase;
		color: #fff;
		background: var(--ec-inchiostro);
		border: 1px solid var(--ec-inchiostro);
		border-radius: var(--ec-raggio);
		transition: background var(--ec-transizione), border-color var(--ec-transizione);
		/* Spaziatura più stretta di quella dei bottoni: qui la riga è una sola
		   e deve entrare in uno schermo da 360px insieme ai due formati. */
		letter-spacing: .12em;
		white-space: nowrap;
	}

	.ec-acquisto .ec-acquisto__bottone:hover:not(:disabled),
	.ec-acquisto .ec-acquisto__bottone:focus-visible {
		background: var(--ec-rosso);
		border-color: var(--ec-rosso);
		color: #fff;
	}

	.ec-acquisto .ec-acquisto__bottone:disabled {
		opacity: .55;
		cursor: default;
	}

	.ec-acquisto__prezzo:empty { display: none; }

	.ec-acquisto__prezzo::before {
		content: '·';
		margin-right: 10px;
		opacity: .55;
	}

	/* Se si preme «Aggiungi» senza aver scelto il formato, è la tendina a
	   farsi notare: è lì che manca qualcosa. */
	.ec-acquisto .ec-acquisto__formato--richiamo {
		animation: ecRichiamo .55s ease;
		border-color: var(--ec-rosso);
	}

	@keyframes ecRichiamo {
		0%, 100% { transform: translateX(0); }
		20%, 60%  { transform: translateX(-4px); }
		40%, 80%  { transform: translateX(4px); }
	}
}

@media (max-width: 360px) {
	.ec-acquisto .ec-acquisto__formato { min-width: 84px; padding-left: 10px; }
	.ec-acquisto .ec-acquisto__bottone { padding-inline: 10px; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.ec-acquisto { transition: none; }
	.ec-acquisto__formato--richiamo { animation: none; }
}
