/* =========================================================================
   Anacle Boutique - stili WooCommerce
   ========================================================================= */

/* ------------------------------------------------------- Shop: testata */
.an-shop-hero {
	padding-block: clamp(1.75rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.25rem);
	background: var(--an-blush-veil);
	border-bottom: 1px solid var(--an-line);
}
.an-shop-hero__title { margin: 0; }
.an-shop-hero__text { margin-top: .75rem; max-width: 62ch; color: var(--an-muted); }

.woocommerce-breadcrumb {
	margin: 0 0 .9rem;
	font-size: .78rem;
	color: var(--an-muted);
}
.woocommerce-breadcrumb a { text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--an-ink); }

.an-shop > .an-container { padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }

/* ------------------------------------------------------ Shop: toolbar */
.an-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--an-line);
}
.an-toolbar__actions { display: flex; align-items: center; gap: .75rem; }
.woocommerce-result-count { margin: 0; font-size: .82rem; color: var(--an-muted); }

.woocommerce-ordering select,
.an-shop select {
	padding: .55rem 2rem .55rem .8rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236F6360'%3E%3Cpath d='M12 15.4 5.6 9 7 7.6l5 5 5-5L18.4 9z'/%3E%3C/svg%3E") no-repeat right .5rem center / 16px;
	font-size: .84rem;
	appearance: none;
}

/* --------------------------------------------------- Griglia prodotti */
.woocommerce ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem) clamp(.75rem, 2vw, 1.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 700px) { ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	ul.products.columns-4, ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
ul.products::before, ul.products::after { content: none; }

/* ------------------------------------------------------ Scheda prodotto */
.an-card {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	width: auto;
	float: none;
}

.an-card__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--an-radius);
	background: var(--an-blush-veil);
}
.an-card__link { display: block; position: relative; }
.an-card__img {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	object-position: center top;
	transition: opacity .45s var(--an-ease), transform .7s var(--an-ease);
}
.an-card__img--hover {
	position: absolute;
	inset: 0;
	opacity: 0;
}
.an-card:hover .an-card__img--hover { opacity: 1; }
.an-card:hover .an-card__img:not(.an-card__img--hover) { transform: scale(1.03); }
.an-card.outofstock .an-card__img { opacity: .62; }

.an-card__actions {
	position: absolute;
	inset-block-start: .75rem;
	inset-inline-end: .75rem;
	z-index: 2;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity .25s var(--an-ease), transform .25s var(--an-ease);
}
.an-card:hover .an-card__actions,
.an-card:focus-within .an-card__actions { opacity: 1; transform: none; }
.an-card__peek {
	padding: .45rem .8rem;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--an-white) 94%, transparent);
	backdrop-filter: blur(8px);
	font-size: .72rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--an-ink);
}
.an-card__peek:hover { background: var(--an-ink); color: var(--an-white); }

/* Quick add taglie */
.an-card__sizes {
	position: absolute;
	inset-inline: .6rem;
	inset-block-end: .6rem;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	padding: .5rem;
	border-radius: var(--an-radius);
	background: color-mix(in srgb, var(--an-white) 94%, transparent);
	backdrop-filter: blur(10px);
	box-shadow: var(--an-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .25s var(--an-ease), transform .25s var(--an-ease), visibility .25s;
}
.an-card:hover .an-card__sizes,
.an-card:focus-within .an-card__sizes,
.an-card.is-sizes-open .an-card__sizes { opacity: 1; visibility: visible; transform: none; }

.an-size {
	min-width: 38px;
	padding: .4rem .55rem;
	border: 1px solid var(--an-line);
	border-radius: 3px;
	background: var(--an-white);
	font-size: .76rem;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color .18s var(--an-ease), color .18s var(--an-ease), border-color .18s var(--an-ease);
}
.an-size:hover:not(.is-out) { background: var(--an-ink); border-color: var(--an-ink); color: var(--an-white); }
.an-size.is-out {
	color: color-mix(in srgb, var(--an-muted) 60%, transparent);
	text-decoration: line-through;
	cursor: not-allowed;
}
.an-size.is-loading { opacity: .5; pointer-events: none; }

.an-card__body { display: flex; flex-direction: column; gap: .3rem; padding-top: .85rem; }
.an-card__title { margin: 0; font-family: var(--an-sans); font-size: .95rem; font-weight: 400; line-height: 1.35; }
.an-card__title a { text-decoration: none; }
.an-card__title a:hover { color: var(--an-bronze-deep); }
.an-card__price { font-size: .95rem; color: var(--an-ink); }
.an-card__price del { color: var(--an-muted); margin-right: .4em; font-size: .85em; }
.an-card__price ins { text-decoration: none; color: var(--an-rose-deep); font-weight: 500; }
.an-card__cta { margin-top: .5rem; }
.an-card__cta .an-btn { font-size: .74rem; padding: .65rem 1rem; min-height: 40px; }
@media (hover: hover) and (min-width: 768px) {
	.an-card__cta { opacity: 0; transition: opacity .2s var(--an-ease); }
	.an-card:hover .an-card__cta,
	.an-card:focus-within .an-card__cta { opacity: 1; }
}

.an-card__rating .star-rating { font-size: .7rem; }

/* Stelle WooCommerce */
.star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1.2em;
	overflow: hidden;
	font-size: .8rem;
	line-height: 1.2;
	font-family: star;
	color: var(--an-bronze);
}
.star-rating::before,
.star-rating span::before {
	content: "\73\73\73\73\73";
	position: absolute;
	top: 0;
	left: 0;
	letter-spacing: .1em;
}
.star-rating::before { color: color-mix(in srgb, var(--an-bronze) 30%, transparent); }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "\53\53\53\53\53"; }

/* --------------------------------------------------- Pagina prodotto */
.single-product div.product {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	position: relative;
}
@media (min-width: 900px) {
	.single-product div.product { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: start; }
	.single-product div.product .woocommerce-product-gallery { position: sticky; top: calc(var(--an-header-h) + 1.5rem); }
	.single-product div.product .summary { padding-top: .5rem; }
	.single-product div.product > .an-single-crumbs,
	.single-product div.product > .woocommerce-tabs,
	.single-product div.product > .an-look,
	.single-product div.product > .related,
	.single-product div.product > .upsells { grid-column: 1 / -1; }
}

.an-single-crumbs { margin-bottom: .5rem; }

/* Nella colonna informazioni i badge stanno nel flusso: in posizione assoluta
   finirebbero sopra il breadcrumb, perche' l'antenato posizionato e' div.product. */
.summary .an-badges {
	position: static;
	flex-direction: row;
	flex-wrap: wrap;
	margin-bottom: .85rem;
}
.an-single-crumbs .woocommerce-breadcrumb { margin: 0; }

.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery img { border-radius: var(--an-radius); }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .5rem;
	margin: .6rem 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li { margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs img { opacity: .55; cursor: pointer; transition: opacity .2s var(--an-ease); }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-product-gallery__trigger {
	position: absolute;
	top: .75rem;
	right: .75rem;
	z-index: 3;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--an-white) 92%, transparent);
	text-align: center;
	line-height: 38px;
	text-decoration: none;
}

.summary .product_title { margin: 0 0 .5rem; font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.75rem); }
.summary .price {
	display: flex;
	align-items: baseline;
	gap: .6rem;
	margin: 0 0 1rem;
	font-size: 1.4rem;
	color: var(--an-ink);
}
.summary .price del { color: var(--an-muted); font-size: .8em; }
.summary .price ins { text-decoration: none; color: var(--an-rose-deep); }
.summary .woocommerce-product-details__short-description { color: var(--an-muted); margin-bottom: 1.5rem; }
.summary .woocommerce-product-rating { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; font-size: .82rem; }
.summary .woocommerce-product-rating a { color: var(--an-muted); text-decoration: none; }

.an-reassure {
	display: grid;
	gap: .5rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.15rem;
	list-style: none;
	background: var(--an-blush-veil);
	border-radius: var(--an-radius);
	font-size: .84rem;
}
.an-reassure li { display: flex; align-items: center; gap: .55rem; }
.an-reassure .an-icon { flex: none; color: var(--an-bronze-deep); }

.an-sizeguide { margin: 0 0 .6rem; }
.an-sizeguide a {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-size: .8rem;
	color: var(--an-muted);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.an-sizeguide a:hover { color: var(--an-ink); }

.an-urgency,
.an-delivery {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: .85rem 0 0;
	font-size: .84rem;
}
.an-urgency { color: var(--an-warn); font-weight: 500; }
.an-delivery { color: var(--an-muted); }

.an-ask {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	margin-top: 1.25rem;
	padding: .75rem 1rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
	font-size: .84rem;
	text-decoration: none;
	transition: border-color .2s var(--an-ease), background-color .2s var(--an-ease);
}
.an-ask:hover { border-color: #1E8E5A; background: color-mix(in srgb, #1E8E5A 6%, var(--an-white)); }
.an-ask .an-icon { color: #1E8E5A; flex: none; }

.an-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.25rem;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--an-line);
	font-size: .78rem;
	color: var(--an-muted);
}
.an-meta a { color: inherit; }

.an-look-note {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	margin: 0 0 1.25rem;
	padding: .85rem 1rem;
	border-radius: var(--an-radius);
	background: var(--an-blush-soft);
	font-size: .85rem;
}
.an-look-note .an-icon { flex: none; margin-top: 2px; color: var(--an-bronze-deep); }

/* Form aggiungi al carrello */
form.cart { margin: 0 0 1.25rem; }
form.cart .variations { width: 100%; margin-bottom: 1rem; border-collapse: collapse; }
form.cart .variations th,
form.cart .variations td { padding: .35rem 0; text-align: left; vertical-align: middle; }
form.cart .variations label { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--an-muted); margin: 0; }
form.cart .variations select {
	width: 100%;
	padding: .7rem 2.2rem .7rem .85rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236F6360'%3E%3Cpath d='M12 15.4 5.6 9 7 7.6l5 5 5-5L18.4 9z'/%3E%3C/svg%3E") no-repeat right .7rem center / 16px;
	appearance: none;
}
form.cart .reset_variations { display: inline-block; margin-top: .4rem; font-size: .76rem; color: var(--an-muted); }
form.cart .woocommerce-variation-price { margin-bottom: .85rem; font-size: 1.2rem; }

form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .button {
	--btn-bg: var(--an-rose-deep);
	--btn-fg: var(--an-white);
	--btn-bd: var(--an-rose-deep);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1;
	min-height: 54px;
	padding: 1rem 2rem;
	border: 1px solid var(--btn-bd);
	border-radius: var(--an-radius);
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-size: .9rem;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	transition: background-color .2s var(--an-ease), border-color .2s var(--an-ease);
}
form.cart .single_add_to_cart_button:hover { --btn-bg: var(--an-rose-hover); --btn-bd: var(--an-rose-hover); }
form.cart .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }

.single-product form.cart:not(.grouped_form):not(.variations_form),
.single-product form.variations_form .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: .6rem; flex-wrap: wrap; }

/* Stepper quantità */
.an-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
	overflow: hidden;
}
.an-qty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	border: 0;
	background: transparent;
	color: var(--an-muted);
	transition: background-color .18s var(--an-ease), color .18s var(--an-ease);
}
.an-qty__btn:hover { background: var(--an-blush-veil); color: var(--an-ink); }
.an-qty input.qty {
	width: 46px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: .95rem;
	appearance: textfield;
}
.an-qty input.qty::-webkit-outer-spin-button,
.an-qty input.qty::-webkit-inner-spin-button { appearance: none; margin: 0; }

/* Tabelle prodotti raggruppati */
.woocommerce-grouped-product-list { width: 100%; border-collapse: collapse; margin-bottom: 1.25rem; }
.woocommerce-grouped-product-list td { padding: .85rem 0; border-bottom: 1px solid var(--an-line); vertical-align: middle; }
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__label a { text-decoration: none; }
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__price { text-align: right; white-space: nowrap; }

/* Tab prodotto */
.woocommerce-tabs { margin-top: clamp(3rem, 6vw, 5rem); }
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1.75rem;
	margin: 0 0 1.75rem;
	padding: 0 0 .75rem;
	border-bottom: 1px solid var(--an-line);
	list-style: none;
}
.woocommerce-tabs ul.tabs li a {
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--an-muted);
	padding-bottom: .75rem;
	border-bottom: 1px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--an-ink); border-color: var(--an-ink); }
.woocommerce-tabs .panel { max-width: 46rem; }
.woocommerce-tabs .panel h2 { display: none; }
.woocommerce-Tabs-panel table.shop_attributes { width: 100%; border-collapse: collapse; }
.woocommerce-Tabs-panel table.shop_attributes th,
.woocommerce-Tabs-panel table.shop_attributes td { padding: .7rem 0; border-bottom: 1px solid var(--an-line); text-align: left; }
.woocommerce-Tabs-panel table.shop_attributes th { width: 32%; font-weight: 500; }

.an-list-check { display: grid; gap: .6rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.an-list-check li { display: flex; align-items: center; gap: .55rem; }
.an-list-check .an-icon { flex: none; color: var(--an-ok); }

/* Recensioni */
#reviews .commentlist { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1.5rem; }
#reviews .comment_container { display: grid; grid-template-columns: 48px 1fr; gap: 1rem; }
#reviews .comment_container img { border-radius: 50%; }
#reviews .comment-text { padding-bottom: 1.25rem; border-bottom: 1px solid var(--an-line); }
#reviews .woocommerce-review__author { font-weight: 500; }
#reviews .woocommerce-review__published-date { font-size: .78rem; color: var(--an-muted); }
#review_form .comment-form { display: grid; gap: .9rem; max-width: 34rem; }
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
	width: 100%;
	padding: .75rem .9rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
}

/* Correlati / upsell / look */
.related, .upsells, .an-look { margin-top: clamp(3rem, 6vw, 5rem); }
.related > h2, .upsells > h2 { margin: 0 0 clamp(1.25rem, 3vw, 2rem); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); }

.an-look__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--an-line);
}
.an-look__head > div:first-child { flex: 1 1 auto; min-width: 0; }
.an-look__head .an-sec-head { margin-bottom: 0; }
.an-look__total { flex: none; margin: 0; text-align: right; white-space: nowrap; }
/* Figlio diretto: senza '>' il selettore prende anche lo span del prezzo
   che WooCommerce annida dentro <strong>, rimpicciolendolo e spezzandolo. */
.an-look__total > span {
	display: block;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--an-muted);
}
.an-look__total strong { font-family: var(--an-serif); font-size: 1.9rem; font-weight: 500; }

/* ------------------------------------------------- Sticky add to cart */
.an-sticky-atc {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 58;
	padding-block: .6rem;
	background: color-mix(in srgb, var(--an-cream) 95%, transparent);
	backdrop-filter: blur(12px);
	border-top: 1px solid var(--an-line);
	transform: translateY(100%);
	transition: transform .3s var(--an-ease);
}
.an-sticky-atc.is-visible { transform: none; }
.an-sticky-atc__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.an-sticky-atc__info { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.an-sticky-atc__info img { width: 44px; height: 58px; object-fit: cover; border-radius: 3px; }
.an-sticky-atc__name {
	margin: 0;
	font-size: .88rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 40vw;
}
.an-sticky-atc__price { margin: 0; font-size: .82rem; color: var(--an-muted); }
.an-sticky-atc__price del { display: none; }
@media (max-width: 600px) {
	.an-sticky-atc__info img { display: none; }
	.an-sticky-atc .an-btn { flex: 1; }
}

/* ------------------------------------------------------- Mini carrello */
.an-minicart { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.1rem; }
.an-minicart__item {
	position: relative;
	display: grid;
	grid-template-columns: 68px 1fr 24px;
	gap: .9rem;
	align-items: start;
	padding-bottom: 1.1rem;
	border-bottom: 1px solid var(--an-line);
}
.an-minicart__media img { width: 68px; height: 90px; object-fit: cover; border-radius: 3px; }
.an-minicart__name { margin: 0 0 .2rem; font-size: .9rem; line-height: 1.35; }
.an-minicart__name a { text-decoration: none; }
.an-minicart__body .variation { margin: .15rem 0; font-size: .76rem; color: var(--an-muted); }
.an-minicart__body .variation dt,
.an-minicart__body .variation dd { display: inline; margin: 0; }
.an-minicart__body .variation dd { margin-right: .5rem; }
.an-minicart__body .variation p { margin: 0; display: inline; }
.an-minicart__qty { margin: .3rem 0 0; font-size: .84rem; color: var(--an-muted); }
.an-minicart__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	color: var(--an-muted);
	font-size: 1.1rem;
	line-height: 1;
	text-decoration: none;
}
.an-minicart__remove:hover { background: var(--an-blush-soft); color: var(--an-ink); }

.an-minicart__foot { margin-top: 1.5rem; display: grid; gap: .6rem; }
.an-minicart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0 0 .5rem;
	padding-top: .5rem;
	font-size: .88rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--an-muted);
}
.an-minicart__total strong { font-family: var(--an-serif); font-size: 1.6rem; font-weight: 500; color: var(--an-ink); text-transform: none; letter-spacing: 0; }
.an-minicart__keep {
	border: 0;
	background: none;
	padding: .5rem 0;
	font-size: .8rem;
	color: var(--an-muted);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.an-minicart__empty { text-align: center; padding: 2.5rem 0; }
.an-minicart__empty .an-icon { margin: 0 auto 1rem; color: var(--an-rose); }
.an-minicart__emptytitle { margin: 0 0 .35rem; font-family: var(--an-serif); font-size: 1.35rem; }
.an-minicart__emptytext { margin: 0 0 1.5rem; font-size: .88rem; color: var(--an-muted); }

/* Barra spedizione gratuita */
.an-freeship { margin-bottom: 1.25rem; }
.an-freeship__label { margin: 0 0 .45rem; font-size: .8rem; color: var(--an-muted); }
.an-freeship__track { height: 4px; border-radius: 999px; background: var(--an-blush-soft); overflow: hidden; }
.an-freeship__fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--an-rose), var(--an-bronze));
	transition: width .5s var(--an-ease);
}
.an-freeship.is-complete .an-freeship__label { color: var(--an-ok); font-weight: 500; }
.an-freeship.is-complete .an-freeship__fill { background: var(--an-ok); }

/* --------------------------------------------------------- Carrello */
.woocommerce-cart-form { margin-bottom: 2.5rem; }
.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: .92rem;
}
.shop_table th {
	padding: 0 0 .85rem;
	border-bottom: 1px solid var(--an-line);
	font-size: .74rem;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--an-muted);
	text-align: left;
}
.shop_table td { padding: 1.1rem 0; border-bottom: 1px solid var(--an-line); vertical-align: middle; }
.shop_table .product-thumbnail img { width: 74px; height: 98px; object-fit: cover; border-radius: 3px; }
.shop_table .product-name a { text-decoration: none; }
.shop_table .product-remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	color: var(--an-muted);
	text-decoration: none;
	font-size: 1.1rem;
}
.shop_table .product-remove a:hover { background: var(--an-blush-soft); color: var(--an-ink); }
.shop_table .actions { padding-top: 1.5rem; }
.shop_table .coupon { display: flex; gap: .5rem; flex-wrap: wrap; }
.shop_table .coupon input[type="text"] {
	flex: 1 1 180px;
	padding: .75rem .9rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
}

@media (max-width: 767px) {
	.shop_table thead { display: none; }
	.shop_table tr { display: grid; grid-template-columns: 74px 1fr auto; gap: .25rem .9rem; padding: 1.1rem 0; border-bottom: 1px solid var(--an-line); align-items: center; }
	.shop_table td { display: block; padding: 0; border: 0; }
	.shop_table .product-thumbnail { grid-row: span 3; }
	.shop_table .product-remove { grid-row: span 3; }
	.shop_table .actions { display: block; grid-column: 1 / -1; }
	.shop_table td::before { content: attr(data-title) ": "; font-size: .74rem; color: var(--an-muted); }
	.shop_table .product-name::before,
	.shop_table .product-thumbnail::before,
	.shop_table .product-remove::before { content: none; }
}

.cart-collaterals { display: grid; gap: 2rem; }
@media (min-width: 900px) { .cart-collaterals { grid-template-columns: 1fr minmax(320px, 420px); align-items: start; } }
.cart_totals {
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--an-blush-veil);
	border-radius: var(--an-radius-lg);
}
.cart_totals h2 { font-size: 1.4rem; margin-bottom: 1.25rem; }
.cart_totals table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.cart_totals th, .cart_totals td { padding: .6rem 0; text-align: left; border-bottom: 1px solid var(--an-line); }
.cart_totals td { text-align: right; }
.cart_totals .order-total { font-size: 1.05rem; }
.cart_totals .order-total td { font-family: var(--an-serif); font-size: 1.55rem; }
.wc-proceed-to-checkout { margin-top: 1.5rem; }
.wc-proceed-to-checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 1rem 2rem;
	border-radius: var(--an-radius);
	background: var(--an-rose-deep);
	color: var(--an-white);
	font-size: .9rem;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
}
.wc-proceed-to-checkout .checkout-button:hover { background: var(--an-rose-hover); }
.cross-sells { margin-top: 3rem; }
.cross-sells > h2 { font-size: 1.5rem; margin-bottom: 1.5rem; }

/* --------------------------------------------------------- Checkout */
.an-checkout-focus .an-annbar,
.an-checkout-focus .an-wa-float { display: none; }

.woocommerce-checkout .an-shop > .an-container { max-width: 1120px; }
form.checkout { display: grid; gap: clamp(2rem, 4vw, 3.5rem); }
@media (min-width: 900px) { form.checkout { grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); align-items: start; } }
#customer_details { min-width: 0; }
#order_review_heading, #order_review { grid-column: 2; }
@media (max-width: 899px) { #order_review_heading, #order_review { grid-column: 1; } }
#order_review {
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--an-blush-veil);
	border-radius: var(--an-radius-lg);
	position: sticky;
	top: calc(var(--an-header-h) + 1.5rem);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading { font-size: 1.3rem; margin-bottom: 1.25rem; }

.form-row { display: grid; gap: .35rem; margin-bottom: 1rem; }
.form-row label { font-size: .8rem; letter-spacing: .04em; color: var(--an-muted); }
.form-row .required { color: var(--an-rose-deep); text-decoration: none; }
.woocommerce-input-wrapper { display: block; }
.input-text,
.select2-container--default .select2-selection--single {
	width: 100%;
	min-height: 48px;
	padding: .75rem .9rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
	font-size: .95rem;
}
.input-text:focus { border-color: var(--an-rose); outline: none; }
textarea.input-text { min-height: 96px; }
.select2-container--default .select2-selection--single { display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: .6rem; }

@media (min-width: 600px) {
	.form-row-first, .form-row-last { display: inline-grid; width: calc(50% - .5rem); }
	.form-row-first { margin-right: 1rem; }
}

#payment { margin-top: 1.5rem; }
#payment ul.payment_methods { margin: 0 0 1.25rem; padding: 0; list-style: none; display: grid; gap: .6rem; }
#payment ul.payment_methods li {
	padding: .9rem 1rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
}
#payment ul.payment_methods li label { font-size: .92rem; cursor: pointer; }
#payment .payment_box { margin-top: .75rem; font-size: .84rem; color: var(--an-muted); }
#payment .place-order { margin: 0; }
#place_order {
	width: 100%;
	min-height: 56px;
	border: 0;
	border-radius: var(--an-radius);
	background: var(--an-rose-deep);
	color: var(--an-white);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
}
#place_order:hover { background: var(--an-rose-hover); }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 1rem; font-size: .82rem; color: var(--an-muted); }

.woocommerce-order { max-width: 46rem; }
.woocommerce-thankyou-order-received {
	font-family: var(--an-serif);
	font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.6rem);
	line-height: 1.15;
	margin-bottom: 1.5rem;
}
.woocommerce-order-overview {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 0 0 2.5rem;
	padding: 1.5rem;
	list-style: none;
	background: var(--an-blush-veil);
	border-radius: var(--an-radius-lg);
	font-size: .84rem;
	color: var(--an-muted);
}
.woocommerce-order-overview strong { display: block; margin-top: .25rem; font-size: 1rem; color: var(--an-ink); }

/* ---------------------------------------------------------- Account */
.woocommerce-account .woocommerce { display: grid; gap: clamp(1.5rem, 4vw, 3rem); }
@media (min-width: 860px) { .woocommerce-account .woocommerce { grid-template-columns: 220px minmax(0, 1fr); } }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .25rem; }
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: .6rem .85rem;
	border-radius: var(--an-radius);
	font-size: .9rem;
	text-decoration: none;
	color: var(--an-muted);
}
.woocommerce-MyAccount-navigation a:hover { background: var(--an-blush-veil); color: var(--an-ink); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--an-ink); color: var(--an-white); }
.woocommerce-form { max-width: 26rem; }
.woocommerce form .form-row .button,
.woocommerce-Button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: .85rem 1.6rem;
	border: 1px solid var(--an-ink);
	border-radius: var(--an-radius);
	background: var(--an-ink);
	color: var(--an-white);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
}
.woocommerce button.button:hover, .woocommerce a.button:hover, .woocommerce input.button:hover { background: var(--an-rose-deep); border-color: var(--an-rose-deep); }
.woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--an-rose-deep); border-color: var(--an-rose-deep); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--an-rose-hover); border-color: var(--an-rose-hover); }

/* ------------------------------------------------------------ Notice */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.15rem;
	border-radius: var(--an-radius);
	border-left: 3px solid var(--an-rose);
	background: var(--an-blush-veil);
	font-size: .9rem;
	list-style: none;
}
.woocommerce-message { border-left-color: var(--an-ok); }
.woocommerce-error { border-left-color: #B3261E; background: #FDF2F1; }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; }

/* --------------------------------------------------- Modale / quick view */
.an-modal__panel {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	width: min(880px, 94vw);
	max-height: 90vh;
	overflow-y: auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--an-cream);
	border-radius: var(--an-radius-lg);
	box-shadow: var(--an-shadow-lg);
	transform: translate(-50%, -46%);
	opacity: 0;
	transition: transform .3s var(--an-ease), opacity .3s var(--an-ease);
}
.is-open .an-modal__panel { transform: translate(-50%, -50%); opacity: 1; }
.an-modal__close { position: absolute; top: .6rem; right: .6rem; z-index: 2; background: var(--an-white); }

.an-quick { display: grid; gap: clamp(1.25rem, 3vw, 2rem); }
@media (min-width: 720px) { .an-quick { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }
.an-quick__media { position: relative; border-radius: var(--an-radius); overflow: hidden; background: var(--an-blush-veil); }
.an-quick__media img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.an-quick__title { margin: 0 0 .5rem; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); }
.an-quick__price { margin-bottom: 1rem; font-size: 1.2rem; }
.an-quick__price del { color: var(--an-muted); font-size: .85em; margin-right: .4em; }
.an-quick__price ins { text-decoration: none; color: var(--an-rose-deep); }
.an-quick__excerpt { margin-bottom: 1.25rem; font-size: .92rem; color: var(--an-muted); }
.an-quick__link { display: inline-flex; align-items: center; gap: .4em; margin-top: 1rem; font-size: .84rem; }

/* ------------------------------------------------------------- Toast */
.an-toast {
	position: fixed;
	inset-block-end: 1.5rem;
	inset-inline-start: 50%;
	z-index: 120;
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: .85rem 1.25rem;
	border-radius: 999px;
	background: var(--an-ink);
	color: var(--an-white);
	font-size: .88rem;
	box-shadow: var(--an-shadow-lg);
	transform: translate(-50%, 120%);
	opacity: 0;
	transition: transform .35s var(--an-ease), opacity .35s var(--an-ease);
}
.an-toast.is-visible { transform: translate(-50%, 0); opacity: 1; }
.an-toast .an-icon { color: var(--an-blush); }

/* Widget filtri */
.an-panel__content .widget { margin-bottom: 2rem; }
.an-panel__content ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; font-size: .9rem; }
.an-panel__content a { text-decoration: none; }
.woocommerce-widget-layered-nav-list__item.chosen a { font-weight: 500; color: var(--an-rose-deep); }

/* =========================================================================
   Blocchi Carrello e Cassa (WooCommerce 8.3+)
   Le pagine a blocchi non passano dai template classici: qui allineiamo
   tipografia, colori e pulsanti all'identita' del tema.
   ========================================================================= */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { max-width: 1120px; margin-inline: auto; }

.wc-block-components-title,
.wp-block-woocommerce-cart h2,
.wp-block-woocommerce-checkout h2,
.wc-block-cart__empty-cart__title {
	font-family: var(--an-serif);
	font-weight: 500;
	color: var(--an-ink);
	letter-spacing: -.005em;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link) {
	min-height: 54px;
	border-radius: var(--an-radius);
	background-color: var(--an-rose-deep);
	border-color: var(--an-rose-deep);
	color: var(--an-white);
	font-family: var(--an-sans);
	font-size: .9rem;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button:not(.is-link):hover {
	background-color: var(--an-rose-hover);
	border-color: var(--an-rose-hover);
}
.wc-block-components-button.is-link { color: var(--an-bronze-deep); }

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox-control input,
.wc-block-components-country-input input,
.wc-block-components-state-input input {
	border-radius: var(--an-radius) !important;
	border-color: var(--an-line) !important;
	background: var(--an-white);
	font-family: var(--an-sans);
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus { color: var(--an-ink); }

.wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	border-color: var(--an-line);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--an-serif);
	font-size: 1.6rem;
	font-weight: 500;
}
.wc-block-cart .wc-block-cart-items__header {
	font-size: .74rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--an-muted);
}
.wc-block-cart-item__image img { border-radius: 3px; }
.wc-block-components-product-name { text-decoration: none; color: var(--an-ink); }
.wc-block-components-product-name:hover { color: var(--an-bronze-deep); }
.wc-block-components-panel__button { color: var(--an-ink); }
.wc-block-components-notice-banner { border-radius: var(--an-radius); }
.wc-block-components-radio-control__option { font-size: .92rem; }

/* Card prodotto dentro i blocchi (es. suggerimenti nel carrello vuoto):
   i blocchi hanno un proprio markup, diverso da .an-card. */
.wc-block-components-product-title,
.wc-block-grid__product-title {
	font-family: var(--an-sans);
	font-size: .95rem;
	font-weight: 400;
	color: var(--an-ink);
}
.wc-block-components-product-title a { text-decoration: none; color: inherit; }
.wc-block-components-product-price { color: var(--an-ink); font-size: .95rem; }
.wc-block-components-product-price ins { color: var(--an-rose-deep); text-decoration: none; font-weight: 500; }
.wc-block-components-product-price del { color: var(--an-muted); }
.wc-block-components-product-sale-badge {
	background: var(--an-rose-deep);
	border: 0;
	border-radius: 2px;
	color: var(--an-white);
	font-size: .66rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .3rem .6rem;
}
.wc-block-components-product-button .wp-block-button__link,
.wc-block-components-product-button a.wp-block-button__link,
.wp-block-button__link.add_to_cart_button,
.wp-block-woocommerce-cart .wp-block-button__link.add_to_cart_button {
	background-color: var(--an-white);
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	color: var(--an-ink);
	font-family: var(--an-sans);
	font-size: .74rem;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .65rem 1rem;
	width: 100%;
}
.wc-block-components-product-button .wp-block-button__link:hover,
.wc-block-components-product-button a.wp-block-button__link:hover,
.wp-block-button__link.add_to_cart_button:hover {
	background-color: var(--an-ink);
	border-color: var(--an-ink);
	color: var(--an-white);
}
.wc-block-components-product-image img { border-radius: var(--an-radius); }

/* Blocchi iniettati dal tema */
.an-block-freeship { margin-bottom: 1.5rem; }
.an-block-freeship:empty { display: none; }
.an-block-reassure { margin-top: 1.25rem; }
.an-block-reassure .an-reassure { margin-bottom: 0; }

/* Il carrello vuoto a blocchi resta comunque on brand */
.wc-block-cart__empty-cart__title { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); }

/* =========================================================================
   Sovrascritture su woocommerce.css
   Il foglio del plugin resta caricato perche' contiene pezzi funzionali
   (galleria, webfont delle stelle, overlay AJAX). Alcune sue regole hanno
   pero' selettori molto specifici: qui le riportiamo al linguaggio del tema
   usando la stessa specificita' o superiore.
   ========================================================================= */

/* Tab prodotto: dalle "linguette" grigie del plugin al sottolineato del tema */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1.75rem;
	margin: 0 0 1.75rem;
	padding: 0 0 .75rem;
	border-bottom: 1px solid var(--an-line);
	list-style: none;
	overflow: visible;
	position: static;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}
.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 a {
	display: inline-block;
	padding: 0 0 .75rem;
	border-bottom: 1px solid transparent;
	font-family: var(--an-sans);
	font-size: .8rem;
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--an-muted);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--an-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--an-ink); border-bottom-color: var(--an-ink); }

/* Miniature galleria: griglia a 5 invece dei float al 25% */
.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .5rem;
	margin: .6rem 0 0;
	padding: 0;
	overflow: visible;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
	width: 100%;
	border-radius: 3px;
	opacity: .5;
	cursor: pointer;
	transition: opacity .2s var(--an-ease);
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; }

/* Prezzi: il plugin li colora di verde */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price { color: var(--an-ink); }
.woocommerce div.product p.price ins,
.woocommerce ul.products li.product .price ins { color: var(--an-rose-deep); font-weight: 500; text-decoration: none; }
.woocommerce div.product p.price del,
.woocommerce ul.products li.product .price del { color: var(--an-muted); opacity: 1; }

/* Pulsanti: niente grigio/viola di serie */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background-color: var(--an-ink);
	color: var(--an-white);
	border-radius: var(--an-radius);
	font-weight: 500;
	text-shadow: none;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background-color: var(--an-rose-deep);
	color: var(--an-white);
}
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt { background-color: var(--an-rose-deep); color: var(--an-white); }
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover { background-color: var(--an-rose-hover); }
.woocommerce div.product form.cart .button { float: none; }

/* Tabelle e miniature del carrello */
.woocommerce table.shop_table { border: 0; border-radius: 0; }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-top: 0; }
.woocommerce-cart table.cart img { width: 74px; box-shadow: none; }

/* Stelle nel colore del brand */
.woocommerce .star-rating,
.woocommerce p.stars a::before { color: var(--an-bronze); }
.woocommerce .star-rating::before { color: color-mix(in srgb, var(--an-bronze) 30%, transparent); }
.woocommerce .products .star-rating { margin: 0 0 .35em; }

/* Notice: riportate allo stile del tema */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top: 0;
	border-left: 3px solid var(--an-rose);
	background-color: var(--an-blush-veil);
	color: var(--an-ink);
}
.woocommerce-message { border-left-color: var(--an-ok); }
.woocommerce-error { border-left-color: #B3261E; background-color: #FDF2F1; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

/* -------------------------------------------------------------------------
   Clearfix di WooCommerce dentro contenitori flex/grid

   Il plugin usa ::before/::after con `display: table` per il clearfix dei
   float. Nei contenitori che il tema ha convertito a flex o grid quei
   pseudo-elementi diventano celle a tutti gli effetti: la griglia prodotti,
   per esempio, perde la prima colonna e tutte le card scalano di una
   posizione. Vanno disattivati esattamente dove abbiamo cambiato layout.
   ------------------------------------------------------------------------- */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce .products ul::before,
.woocommerce .products ul::after,
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after,
.woocommerce .woocommerce-product-rating::before,
.woocommerce .woocommerce-product-rating::after,
.woocommerce #reviews #comments ol.commentlist::before,
.woocommerce #reviews #comments ol.commentlist::after,
.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after,
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after,
.woocommerce-cart #payment ul.payment_methods::before,
.woocommerce-cart #payment ul.payment_methods::after,
.woocommerce-checkout #payment ul.payment_methods::before,
.woocommerce-checkout #payment ul.payment_methods::after,
.woocommerce-error::before,
.woocommerce-error::after,
.woocommerce-info::before,
.woocommerce-info::after,
.woocommerce-message::before,
.woocommerce-message::after {
	content: none;
	display: none;
}

/* -------------------------------------------------------------------------
   Galleria prodotto: contenimento indipendente da JavaScript

   flexslider affianca le immagini in una striscia larga quanto tutte le slide
   e la tiene dentro al riquadro con un overflow:hidden applicato via inline
   style dal proprio script. Finche' quello script non gira - JS differito da
   un plugin di ottimizzazione, connessione lenta, errore a monte - la striscia
   resta a piena dimensione e sborda sul resto della pagina, sovrapponendosi
   alle sezioni sotto. Stesso discorso per l'immagine dello zoom, larga quanto
   l'originale. Queste due righe rendono il contenimento indipendente dal JS.
   ------------------------------------------------------------------------- */
.woocommerce-product-gallery { overflow: hidden; }
.woocommerce-product-gallery .flex-viewport { overflow: hidden; }

/* =========================================================================
   Ritiro in negozio
   ========================================================================= */
.an-pickup {
	display: flex;
	gap: .8rem;
	margin-top: 1rem;
	padding: .95rem 1.1rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
}
.an-pickup__icon { flex: none; color: var(--an-bronze-deep); line-height: 1; }
.an-pickup__title {
	margin: 0 0 .2rem;
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
	font-size: .9rem;
	font-weight: 500;
}
.an-pickup__free {
	padding: .1rem .4rem;
	border-radius: 2px;
	background: var(--an-ok);
	color: var(--an-white);
	font-size: .62rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.an-pickup__meta { margin: 0; font-size: .82rem; color: var(--an-muted); }
.an-pickup__ready {
	display: flex;
	align-items: center;
	gap: .35rem;
	margin: .4rem 0 0;
	font-size: .78rem;
	color: var(--an-ok);
}
.an-pickup-note {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	margin: .75rem 0 0;
	font-size: .82rem;
	color: var(--an-muted);
}
.an-pickup-note .an-icon { flex: none; margin-top: 2px; color: var(--an-bronze-deep); }

/* =========================================================================
   Prenotazione capi esauriti
   ========================================================================= */
.an-booking {
	margin: 1.25rem 0;
	padding: 1.15rem 1.25rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-blush-veil);
}
.an-booking--variation { margin-top: 1rem; }
.an-booking__title { margin: 0 0 .25rem; font-family: var(--an-serif); font-size: 1.3rem; }
.an-booking__text { margin: 0 0 1rem; font-size: .88rem; color: var(--an-muted); }

.an-bookform { display: grid; gap: clamp(1.25rem, 3vw, 2rem); }
@media (min-width: 720px) { .an-bookform { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } }
.an-bookform__media { border-radius: var(--an-radius); overflow: hidden; background: var(--an-blush-veil); }
.an-bookform__media img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.an-bookform__title { margin: 0 0 .3rem; font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); }
.an-bookform__variant {
	margin: 0 0 .6rem;
	font-size: .78rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--an-bronze-deep);
}
.an-bookform__intro { margin: 0 0 1.25rem; font-size: .9rem; color: var(--an-muted); }
.an-bookform__form { display: grid; gap: .75rem; }
.an-bookform__form label { display: grid; gap: .3rem; }
.an-bookform__form label > span { font-size: .78rem; color: var(--an-muted); }
.an-bookform__form label em { font-style: normal; opacity: .7; }
.an-bookform__form input,
.an-bookform__form textarea {
	width: 100%;
	padding: .7rem .85rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
	font-size: .95rem;
}
.an-bookform__form input:focus,
.an-bookform__form textarea:focus { border-color: var(--an-rose); outline: none; }
.an-bookform__privacy { margin: .25rem 0 0; font-size: .72rem; color: var(--an-muted); }
.an-bookform__feedback { margin: 0; font-size: .84rem; }
.an-bookform__feedback.is-error { color: #B3261E; }
.an-bookform__done {
	margin: 0;
	padding: 1.5rem;
	border-radius: var(--an-radius);
	background: color-mix(in srgb, var(--an-ok) 10%, var(--an-white));
	color: var(--an-ok);
	font-size: 1rem;
	text-align: center;
}

/* =========================================================================
   Omaggio a scelta
   ========================================================================= */
.an-gift-wrap { margin-top: 1.75rem; }
.an-gift-wrap:empty { display: none; }

.an-gift {
	padding: 1.25rem;
	border: 1px dashed var(--an-bronze);
	border-radius: var(--an-radius-lg);
	background: var(--an-blush-veil);
	transition: opacity .2s var(--an-ease);
}
.an-gift.is-busy { opacity: .55; pointer-events: none; }
.an-gift__head { margin-bottom: 1rem; }
.an-gift__title { margin: 0 0 .25rem; font-family: var(--an-serif); font-size: 1.35rem; font-weight: 500; }
.an-gift__text { margin: 0; font-size: .85rem; color: var(--an-muted); }
.an-gift__text--locked { color: var(--an-bronze-deep); }

.an-gift__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.an-gift__choice {
	display: grid;
	gap: .35rem;
	width: 100%;
	padding: .5rem;
	border: 1px solid var(--an-line);
	border-radius: var(--an-radius);
	background: var(--an-white);
	text-align: center;
	transition: border-color .2s var(--an-ease), box-shadow .2s var(--an-ease);
}
.an-gift__choice:hover:not(:disabled) { border-color: var(--an-bronze); }
.an-gift__choice:disabled { opacity: .5; cursor: not-allowed; }
.an-gift__item.is-chosen .an-gift__choice {
	border-color: var(--an-ok);
	box-shadow: inset 0 0 0 1px var(--an-ok);
}
.an-gift__media { position: relative; display: block; border-radius: 3px; overflow: hidden; }
.an-gift__media img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.an-gift__check {
	position: absolute;
	inset-block-start: .3rem;
	inset-inline-end: .3rem;
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--an-ok);
	color: var(--an-white);
}
.an-gift__name { font-size: .78rem; line-height: 1.3; color: var(--an-ink); }
.an-gift__value { font-size: .68rem; color: var(--an-muted); }
.an-gift__clear {
	margin-top: .85rem;
	padding: 0;
	border: 0;
	background: none;
	font-size: .78rem;
	color: var(--an-muted);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.an-gift__clear:hover { color: var(--an-ink); }

/* Nel pannello laterale c'è meno spazio */
.an-gift-wrap--drawer { margin-top: 1.25rem; }
.an-gift-wrap--drawer .an-gift { padding: 1rem; }
.an-gift-wrap--drawer .an-gift__title { font-size: 1.15rem; }
.an-gift-wrap--drawer .an-gift__list { gap: .4rem; }
.an-gift-wrap--drawer .an-gift__name { font-size: .7rem; }
.an-gift-wrap--drawer .an-gift__value { display: none; }

/* Riga omaggio nel carrello */
.an-gift-tag,
.an-gift-free {
	display: inline-block;
	padding: .12rem .45rem;
	border-radius: 2px;
	background: var(--an-ok);
	color: var(--an-white);
	font-size: .62rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	vertical-align: middle;
}
.an-gift-free { background: transparent; color: var(--an-ok); padding-inline: 0; font-size: .8rem; letter-spacing: .04em; }
.an-gift-qty { color: var(--an-muted); }

/* =========================================================================
   Look pronti in cima all'archivio dell'occasione
   ========================================================================= */
.an-occasion-looks { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.an-occasion-looks__head { margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.an-occasion-looks__head .an-sec-title { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); }
.an-occasion-looks__head .an-sec-text { margin-top: .5rem; }
.an-occasion-pieces {
	margin: 0 0 clamp(1.25rem, 3vw, 2rem);
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 1px solid var(--an-line);
	font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem);
}

/* -------------------------------------------------------------------------
   Iniezioni nel carrello a blocchi

   Dopo l'idratazione React sposta gli elementi che aggiungiamo con render_block
   fra i figli diretti di .wc-block-cart, che è un layout a due colonne in
   flex: senza queste regole diventerebbero una terza colonna stretta,
   sovrapposta alla tabella. Qui li rimettiamo a tutta larghezza e in ordine.
   ------------------------------------------------------------------------- */
.wc-block-cart { flex-wrap: wrap; }
.wc-block-cart > .an-block-freeship,
.wc-block-cart > .an-gift-wrap,
.wc-block-cart > .an-block-reassure,
.wp-block-woocommerce-checkout > .an-block-reassure {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
}
/* L'omaggio va visto prima del pulsante di pagamento, non dopo: in un layout
   a due colonne l'unico modo per garantirlo è metterlo sopra le colonne. */
.wc-block-cart > .an-block-freeship { order: -2; margin-bottom: 1.25rem; }
.wc-block-cart > .an-gift-wrap { order: -1; margin: 0 0 1.75rem; }
.wc-block-cart > .an-block-reassure { order: 2; }
.wc-block-cart > .wc-block-components-main { order: 0; }
.wc-block-cart > .wc-block-components-sidebar { order: 0; }

/* -------------------------------------------------------------------------
   Riga "aggiungi al carrello"

   Gli hook dopo il pulsante (consegna, urgenza, ritiro in negozio) stanno
   dentro form.cart, che è flex: senza queste regole si affiancherebbero al
   pulsante stringendolo fino a mandare l'etichetta su tre righe.
   ------------------------------------------------------------------------- */
.single-product form.cart .single_add_to_cart_button { flex: 1 1 12rem; }
.single-product form.cart .an-delivery,
.single-product form.cart .an-urgency,
.single-product form.cart .an-pickup,
.single-product form.cart .an-sizeguide { flex: 0 0 100%; }

/* Disponibilità: il verde oliva di serie non c'entra con la palette */
.woocommerce div.product .stock { color: var(--an-muted); font-size: .84rem; }
.woocommerce div.product .stock.in-stock { color: var(--an-ok); }
.woocommerce div.product .stock.out-of-stock { color: var(--an-warn); }

/* -------------------------------------------------------------------------
   Riquadri categoria dello shortcode [product_categories]

   Stesso linguaggio delle schede prodotto: servono nelle pagine di reparto,
   dove si entra scegliendo il tipo prima del singolo pezzo.
   ------------------------------------------------------------------------- */
ul.products li.product-category { margin: 0; }
ul.products li.product-category > a { display: block; text-decoration: none; }
ul.products li.product-category img {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: var(--an-radius);
	transition: transform .6s var(--an-ease);
}
ul.products li.product-category > a:hover img { transform: scale(1.03); }
ul.products li.product-category h2,
ul.products li.product-category .woocommerce-loop-category__title {
	margin: .8rem 0 0;
	font-family: var(--an-serif);
	font-size: clamp(1.15rem, 1.05rem + .4vw, 1.4rem);
	font-weight: 500;
	text-align: center;
	color: var(--an-ink);
}
ul.products li.product-category .count {
	display: block;
	margin-top: .15rem;
	background: none;
	color: var(--an-muted);
	font-family: var(--an-sans);
	font-size: .78rem;
	font-weight: 400;
	text-align: center;
}

/* Intestazione di reparto in cima a una pagina */
.an-reparto { margin-bottom: clamp(2rem, 4vw, 3rem); }
.an-reparto__intro { max-width: 60ch; color: var(--an-muted); }

/* -------------------------------------------------------------------------
   Gioielli: foto quadrate dentro il riquadro 2:3 dei capi.
   Intere (contain) invece che ritagliate, sul fondo chiaro dello scatto,
   così il pezzo non perde i lati e la griglia resta allineata.
   ------------------------------------------------------------------------- */
:is(.product_cat-gioielli, .product_cat-collane, .product_cat-orecchini, .product_cat-bracciali, .product_cat-anelli) .an-card__img,
ul.products li.product-category img {
	object-fit: contain;
	object-position: center;
	background: #eef6f8;
}

/* Nelle pagine dei gioielli tutte le foto sono loro: riquadro quadrato, senza fasce. */
:is(.term-gioielli, .term-collane, .term-orecchini, .term-bracciali, .term-anelli) .an-card__img {
	aspect-ratio: 1;
	object-fit: cover;
}
