/*
Theme Name:   Vitale
Theme URI:    https://www.edilruvovitale.com
Description:  Tema di Edil Ruvo Vitale, child di Twenty Twenty-Five. Niente page builder né slider: blocchi nativi, font locali, CSS minimo.
Author:       Diandco
Author URI:   https://www.diandco.it
Template:     twentytwentyfive
Version:      1.0.0
Requires at least: 6.7
Requires PHP: 8.1
License:      GPL-2.0-or-later
Text Domain:  vitale
*/

/* Header -------------------------------------------------------------- */

.vitale-topbar {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.02em;
}
.vitale-topbar a { color: inherit; text-decoration: none; }
.vitale-topbar a:hover { text-decoration: underline; }

.vitale-testata {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .vitale-testata { top: var(--wp-admin--admin-bar--height, 0); }
.vitale-testata > * { margin-block: 0; }

/* Barra oro del negozio: categorie in riga con pannello delle sottocategorie (solo desktop) */
.vitale-barra-negozio { display: none; }
@media (min-width: 1000px) {
	.vitale-nav-negozio { display: none !important; }
	.vitale-barra-negozio {
		display: block;
		position: relative;
		background: var(--wp--preset--color--accent-2);
		color: var(--wp--preset--color--accent-1);
		font-size: 0.8125rem;
	}
	.vitale-barra-negozio__riga {
		display: flex;
		align-items: stretch;
		max-width: 1240px;
		margin: 0 auto;
		padding: 0 var(--wp--preset--spacing--30);
	}
	.vitale-barra-negozio__etichetta {
		display: flex;
		align-items: center;
		flex: none;
		margin-right: 1.4rem;
		padding-right: 1.4rem;
		border-right: 1px solid rgba(0, 0, 0, 0.2);
		color: inherit;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		text-decoration: none;
	}
	.vitale-barra-negozio a { color: inherit; }
	.vitale-barra-negozio__voci { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0 1.3rem; margin: 0; padding: 0; list-style: none; }
	.vitale-barra-negozio__voce { display: flex; align-items: center; margin: 0; }
	.vitale-barra-negozio__voce > a {
		padding: 0.7rem 0;
		font-weight: 700;
		text-decoration: none;
		border-bottom: 2px solid transparent;
	}
	.vitale-barra-negozio__voce > a:hover,
	.vitale-barra-negozio__voce.is-corrente > a { border-bottom-color: currentColor; }
	.vitale-barra-negozio__apri {
		width: 1.4rem;
		height: 1.4rem;
		margin-left: 0.1rem;
		padding: 0;
		border: 0;
		background: transparent;
		color: inherit;
		cursor: pointer;
	}
	.vitale-barra-negozio__apri::before {
		content: "";
		display: block;
		width: 0.4rem;
		height: 0.4rem;
		margin: -0.2rem auto 0;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
	}
	.vitale-barra-negozio__pannello {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		visibility: hidden;
		opacity: 0;
		background: #fff;
		border-top: 1px solid rgba(0, 0, 0, 0.12);
		box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
		transition: opacity 0.15s ease, visibility 0s linear 0.15s;
	}
	.vitale-barra-negozio__voce.is-aperta > .vitale-barra-negozio__pannello { visibility: visible; opacity: 1; transition-delay: 0s; }
	.vitale-barra-negozio__voce.is-aperta > .vitale-barra-negozio__apri::before { margin-top: 0.2rem; transform: rotate(-135deg); }
	.vitale-barra-negozio__contenuto { max-width: 1240px; margin: 0 auto; padding: 1.5rem var(--wp--preset--spacing--30) 1.8rem; }
	.vitale-barra-negozio__tutto { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--small); }
	.vitale-barra-negozio__tutto a { font-weight: 700; text-decoration: none; }
	.vitale-barra-negozio__tutto a::after { content: " →"; }
	.vitale-barra-negozio__tutto span { margin-left: 0.3rem; font-weight: 400; color: var(--wp--preset--color--accent-4); }
	.vitale-barra-negozio__tutto a:hover { text-decoration: underline; }
	.vitale-barra-negozio__pannello ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 0.15rem 1.5rem; margin: 0; padding: 0; list-style: none; }
	.vitale-barra-negozio__pannello li { margin: 0; }
	.vitale-barra-negozio__pannello li a { display: block; padding: 0.35rem 0; font-size: var(--wp--preset--font-size--small); text-decoration: none; }
	.vitale-barra-negozio__pannello li a:hover { text-decoration: underline; }
}
@media (min-width: 1000px) and (hover: hover) {
	/* Al passaggio del mouse, con un attimo di ritardo per non aprire pannelli attraversando la barra */
	.vitale-barra-negozio__voce:hover > .vitale-barra-negozio__pannello { visibility: visible; opacity: 1; transition-delay: 0.12s; }
}

.vitale-header .wp-block-navigation {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.vitale-header .wp-block-navigation__submenu-container {
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
	font-size: 0.9375rem;
	border: 0 !important;
	padding: 0.5rem 0;
	min-width: 15rem;
}
.vitale-header .wp-block-navigation .vitale-nav-offerte > a {
	background: var(--wp--preset--color--accent-3);
	padding: 0.4em 0.8em;
}
.vitale-header .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-1) !important; /* WooCommerce mette in linea lo stesso colore dello sfondo */
	font-weight: 700;
}
.vitale-header .wc-block-product-search .wc-block-product-search__fields { background: transparent; }

/* Tessere categoria (foto + titolo serif, come il sito storico) -------- */

.vitale-tessera {
	overflow: hidden;
	aspect-ratio: 4 / 5;
	min-height: 0 !important; /* il Cover ha 430px di default: con aspect-ratio diventerebbe una larghezza minima */
	min-width: 0;
}
.vitale-tessera .wp-block-cover__image-background { transition: transform 0.6s ease; }
.vitale-tessera:hover .wp-block-cover__image-background { transform: scale(1.05); }
.vitale-tessera a { color: inherit; text-decoration: none; }
.vitale-tessera a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.vitale-tessera--bassa { aspect-ratio: 3 / 2; }

/* Categorie del negozio ------------------------------------------------ */

.vitale-categorie {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}
.vitale-categorie a {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	box-sizing: border-box;
	height: 100%;
	padding: 1.1rem 1.25rem;
	background: var(--wp--preset--color--accent-5);
	border: 1px solid transparent;
	text-decoration: none;
	transition: border-color 0.2s;
}
.vitale-categorie a:hover { border-color: var(--wp--preset--color--accent-1); }
.vitale-categorie__nome {
	font-family: var(--wp--preset--font-family--crimson);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
}
.vitale-categorie__numero { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }

/* Loghi dei marchi ----------------------------------------------------- */

.vitale-loghi.wp-block-gallery { gap: 0.75rem; }
.vitale-loghi .wp-block-image img {
	aspect-ratio: 1;
	object-fit: contain;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	filter: grayscale(1);
	opacity: 0.85;
	transition: filter 0.2s, opacity 0.2s;
}
.vitale-loghi .wp-block-image a:hover img { filter: none; opacity: 1; }

/* Punti di forza ------------------------------------------------------- */

.vitale-vantaggi .wp-block-column { display: flex; gap: 0.75rem; align-items: flex-start; }
.vitale-vantaggi svg { flex: none; width: 28px; height: 28px; color: var(--wp--preset--color--accent-2); }
.vitale-vantaggi p { margin: 0; }

/* WooCommerce ---------------------------------------------------------- */

.vitale-prezzo-carrello .wp-block-woocommerce-product-price { min-width: 0; }
.vitale-prezzo-carrello .wp-block-woocommerce-product-button { flex: none; margin: 0; }

/* Pulsante della griglia: solo l'icona del carrello (o una freccia se il prodotto va aperto). */
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button {
	--vitale-icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h3l2.4 11.2a1.5 1.5 0 0 0 1.5 1.2h8.3a1.5 1.5 0 0 0 1.5-1.1l1.6-6.8H6.6'/%3E%3C/svg%3E");
	position: relative;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 50%;
	overflow: visible;
	background: transparent;
	color: var(--wp--preset--color--antracite);
	font-size: 0;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button:not(.add_to_cart_button) {
	--vitale-icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button::before {
	content: "";
	width: 22px;
	height: 22px;
	background: currentColor;
	-webkit-mask: var(--vitale-icona) center / contain no-repeat;
	mask: var(--vitale-icona) center / contain no-repeat;
}
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button:hover,
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button:focus-visible {
	background: var(--wp--preset--color--antracite);
	border-color: var(--wp--preset--color--antracite);
	color: #fff;
}
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button.loading::before { opacity: 0.35; }
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button > span:not(.vitale-icona-carrello__numero) {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.vitale-icona-carrello__numero {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--wp--preset--color--accent-3);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0;
	text-align: center;
}
.vitale-icona-carrello__numero[hidden] { display: none; }
/* Il link "Visualizza carrello" romperebbe la riga: il contatore e il mini-carrello bastano. */
.wp-block-button.vitale-icona-carrello .added_to_cart { display: none; }
.woocommerce-ordering select {
	font: inherit;
	padding: 0.45rem 2rem 0.45rem 0.75rem;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 0;
	background: #fff;
}

.wc-block-components-product-sale-badge,
.wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge,
.wp-block-woocommerce-product-image-gallery .onsale {
	background: var(--wp--preset--color--accent-3);
	color: #fff;
	border: 0;
	border-radius: 0;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.wc-block-components-product-price del { color: var(--wp--preset--color--accent-4); font-weight: 400; }
.wc-block-components-product-price ins { text-decoration: none; color: var(--wp--preset--color--accent-3); }

.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img { aspect-ratio: 1; object-fit: contain; background: #fff; }

.vitale-sottocategorie ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.vitale-sottocategorie li { margin: 0; }
.vitale-sottocategorie a {
	display: inline-block;
	padding: 0.4rem 0.85rem;
	border: 1px solid var(--wp--preset--color--accent-6);
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}
.vitale-sottocategorie a:hover { border-color: var(--wp--preset--color--accent-1); }
.vitale-sottocategorie li > span,
.vitale-sottocategorie .wc-block-product-categories-list-item-count { display: none; }
.vitale-sottocategorie a .wc-block-product-categories-list-item__name::after { content: ""; }

/* Pannello "Tutte le categorie" sopra la griglia dei prodotti */
.vitale-sottocategorie-box { border-top: 1px solid var(--wp--preset--color--accent-6); }
.vitale-sottocategorie-box > summary {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.8rem 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.vitale-sottocategorie-box > summary::-webkit-details-marker { display: none; }
.vitale-sottocategorie-box > summary span { font-weight: 400; color: var(--wp--preset--color--accent-4); }
.vitale-sottocategorie-box > summary::after {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	margin: -0.25rem 0.2rem 0 auto;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s;
}
.vitale-sottocategorie-box[open] > summary::after { margin-top: 0.25rem; transform: rotate(-135deg); }
.vitale-sottocategorie-box .vitale-sottocategorie { padding-bottom: 1rem; }
.vitale-sottocategorie-box + .wp-block-woocommerce-store-notices,
.vitale-sottocategorie-box + script + * { margin-top: var(--wp--preset--spacing--30); }

.vitale-esaurito {
	display: block;
	margin-top: 0.15rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

/* Vetrina del negozio: categorie con foto */
.vitale-reparti {
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}
.vitale-reparti__voce { margin: 0; }
.vitale-reparti__foto { display: block; overflow: hidden; background: var(--wp--preset--color--accent-5); }
.vitale-reparti__foto img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.4s ease; }
.vitale-reparti__voce:hover .vitale-reparti__foto img { transform: scale(1.04); }
.vitale-reparti__nome { margin: 0.8rem 0 0; font-size: var(--wp--preset--font-size--large); }
.vitale-reparti__nome a { text-decoration: none; }
.vitale-reparti__nome a:hover { text-decoration: underline; }
.vitale-reparti__numero { margin: 0.1rem 0 0; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }
.vitale-reparti__sotto { list-style: none; margin: 0.5rem 0 0; padding: 0; font-size: var(--wp--preset--font-size--small); }
.vitale-reparti__sotto li { margin: 0.15rem 0; }
.vitale-reparti__sotto a { color: var(--wp--preset--color--accent-4); text-decoration: none; }
.vitale-reparti__sotto a:hover { color: var(--wp--preset--color--accent-1); text-decoration: underline; }
@media (max-width: 600px) {
	.vitale-reparti { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--30) 0.75rem; }
	.vitale-reparti__nome { font-size: var(--wp--preset--font-size--medium); font-family: var(--wp--preset--font-family--lato); font-weight: 700; }
	.vitale-reparti__sotto { display: none; }
}

.vitale-rassicurazioni {
	margin-top: 1.5rem;
	padding: 1.1rem 0;
	font-size: var(--wp--preset--font-size--small);
	border-top: 1px solid var(--wp--preset--color--accent-6);
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}
.vitale-rassicurazioni ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.vitale-rassicurazioni li { display: flex; gap: 0.6rem; align-items: flex-start; }
.vitale-rassicurazioni li::before {
	content: "";
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	margin-top: 0.2rem;
	background: var(--wp--preset--color--accent-2);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Fascia titolo senza immagine in evidenza: nero pieno */
.wp-block-cover:not(:has(.wp-block-cover__image-background)) > .wp-block-cover__background { opacity: 1 !important; }

/* Contatti -------------------------------------------------------------- */

.vitale-orari table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.vitale-orari th, .vitale-orari td { border: 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: 0.6rem 0.5rem 0.6rem 0; text-align: left; vertical-align: top; }
.vitale-orari th { font-weight: 700; }

.wpcf7 form p { margin: 0 0 1rem; }
.wpcf7 label { display: block; font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.wpcf7 .wpcf7-acceptance label { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 input[type=checkbox] { margin-top: 0.3rem; width: 1rem; height: 1rem; accent-color: var(--wp--preset--color--accent-1); }
.wpcf7 input:not([type=submit]):not([type=checkbox]),
.wpcf7 textarea,
.wpcf7 select {
	box-sizing: border-box;
	width: 100%;
	margin-top: 0.35rem;
	padding: 0.75rem 0.9rem;
	font: inherit;
	font-weight: 400;
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 0;
}
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 0; }
.wpcf7 textarea { min-height: 9rem; }
.wpcf7 input[type=submit] {
	padding: 0.9rem 1.6rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	background: var(--wp--preset--color--antracite);
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}
.wpcf7 input[type=submit]:hover { background: var(--wp--preset--color--accent-4); }

/* Footer --------------------------------------------------------------- */

.vitale-footer a { color: inherit; text-decoration: none; }
.vitale-footer a:hover { text-decoration: underline; }
.vitale-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; }

/* Mobile --------------------------------------------------------------- */

@media (max-width: 1000px) {
	.vitale-categorie { grid-template-columns: repeat(2, 1fr); }
}
/* Ricerca sempre visibile su mobile, al posto dell'icona */
.vitale-cerca-mobile { display: none; }
@media (max-width: 781px) {
	.vitale-cerca-icona { display: none; }
	.vitale-cerca-mobile { display: block; margin-top: 0.75rem !important; }
	.vitale-cerca-mobile .wp-block-search__inside-wrapper { background: #fff; border: 0; padding: 0; }
	.vitale-cerca-mobile .wp-block-search__input { border: 0; border-radius: 0; padding: 0.65rem 0.9rem; font-size: 16px; color: var(--wp--preset--color--contrast); }
	.vitale-cerca-mobile .wp-block-search__button { margin: 0; border-radius: 0; padding: 0 0.9rem; background: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--accent-1); }
	.vitale-cerca-mobile .wp-block-search__button svg { fill: currentColor; }
}
@media (max-width: 781px) {
	.vitale-topbar .vitale-topbar__extra { display: none; }
	.vitale-griglia-tessere { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.vitale-tessera { aspect-ratio: 1; }
	.vitale-tessera .wp-block-heading { font-size: var(--wp--preset--font-size--large) !important; }
	.vitale-tessera p { display: none; }
}
@media (max-width: 520px) {
	.vitale-categorie { gap: 0.5rem; }
	.vitale-categorie a { padding: 0.8rem 0.9rem; }
	.vitale-categorie__nome { font-size: var(--wp--preset--font-size--medium); }
}

/* Hero della home: foto in dissolvenza (assets/js/hero.js) */
.vitale-hero { isolation: isolate; }
.vitale-hero .wp-block-cover__image-background { transition: opacity 1.6s ease; }
.vitale-hero:has(.is-attiva) .wp-block-cover__image-background:not(.is-attiva) {
	opacity: 0;
	z-index: -1;
	transition: opacity 0s linear 1.6s;
}
.vitale-hero .wp-block-cover__image-background.is-attiva { opacity: 1; }
.vitale-hero__barra {
	position: absolute;
	z-index: 2;
	right: max(var(--wp--preset--spacing--30), calc((100% - 1240px) / 2));
	bottom: 1.25rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.vitale-hero__voce {
	display: inline-flex;
	gap: 0.6rem;
	align-items: baseline;
	padding: 0.55rem 0.9rem;
	background: rgb(0 0 0 / 0.55);
	color: #fff;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	transition: opacity 0.4s ease;
}
.vitale-hero__voce strong { color: var(--wp--preset--color--accent-2); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8em; }
.vitale-hero__voce:hover span, .vitale-hero__voce:focus-visible span { text-decoration: underline; }
.vitale-hero__voce.is-cambio { opacity: 0; }
.vitale-hero--js .vitale-hero__voce:not(.is-pronta) { opacity: 0; }
.vitale-hero__pausa {
	position: relative;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid rgb(255 255 255 / 0.6);
	border-radius: 50%;
	background: rgb(0 0 0 / 0.35);
	cursor: pointer;
}
.vitale-hero__pausa::before, .vitale-hero__pausa::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 3px;
	height: 12px;
	margin-top: -6px;
	background: #fff;
}
.vitale-hero__pausa::before { left: calc(50% - 5px); }
.vitale-hero__pausa::after { left: calc(50% + 2px); }
.vitale-hero.is-ferma .vitale-hero__pausa::before {
	left: calc(50% - 3px);
	width: 0;
	height: 0;
	margin-top: -7px;
	background: none;
	border-style: solid;
	border-width: 7px 0 7px 11px;
	border-color: transparent transparent transparent #fff;
}
.vitale-hero.is-ferma .vitale-hero__pausa::after { display: none; }
@media (max-width: 781px) {
	.vitale-hero { padding-bottom: 6rem !important; }
	.vitale-hero__barra { left: var(--wp--preset--spacing--30); justify-content: space-between; }
	.vitale-hero__voce span { display: none; }
	.vitale-hero__voce strong::after { content: " →"; }
}

/* WhatsApp: verde scuro per il contrasto con il testo bianco */
.vitale-whatsapp .wp-element-button,
.vitale-whatsapp .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: #0f7a45;
	color: #fff;
}
.vitale-whatsapp .wp-element-button:hover,
.vitale-whatsapp .wp-block-button__link:hover { background: #0b5e35; color: #fff; }
.vitale-whatsapp .wp-element-button::before,
.vitale-whatsapp .wp-block-button__link::before {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: var(--vitale-icona-wa) center / contain no-repeat;
	mask: var(--vitale-icona-wa) center / contain no-repeat;
}
:root {
	--vitale-icona-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.1-1.2l-.4-.2Z'/%3E%3C/svg%3E");
}
.vitale-rassicurazioni .vitale-whatsapp { margin: 1rem 0 0; }

@media (prefers-reduced-motion: reduce) {
	.vitale-hero .wp-block-cover__image-background { transition: none; }
	.vitale-tessera .wp-block-cover__image-background { transition: none; }
}

/* Campo di ricerca nel negozio, 404 e risultati */
.vitale-cerca .wp-block-search__inside-wrapper { max-width: 640px; }
.vitale-cerca .wp-block-search__input { border-radius: 0; border-color: var(--wp--preset--color--accent-6); padding: 0.7rem 1rem; }
.vitale-cerca .wp-block-search__button { border-radius: 0; }
mark.vitale-da-completare { background: #ffe08a; color: #000; padding: 0 0.2em; }
.wp-block-woocommerce-product-collection:has(.wp-block-woocommerce-product-collection-no-results) > .wp-block-group:has(.wc-block-product-results-count) { display: none; }

/* Il genitore usa peso 300: il grassetto relativo ("bolder") risulterebbe normale */
b, strong { font-weight: 700; }

/* Prodotti esauriti: richiesta di disponibilità su WhatsApp */
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button.vitale-chiedi {
	--vitale-icona: var(--vitale-icona-wa);
	border-color: #0f7a45;
	color: #0f7a45;
}
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button.vitale-chiedi:hover,
.wp-block-button.vitale-icona-carrello .wc-block-components-product-button__button.vitale-chiedi:focus-visible { background: #0f7a45; border-color: #0f7a45; color: #fff; }
.wp-block-button.vitale-icona-carrello .vitale-chiedi > span {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.vitale-esaurito-box {
	margin-top: 0.5rem;
	padding: 1.1rem 1.2rem;
	background: var(--wp--preset--color--accent-5);
	font-size: var(--wp--preset--font-size--small);
}
.vitale-esaurito-box p { margin: 0 0 0.9rem; }
.vitale-esaurito-box .vitale-esaurito-box__tel { margin: 0.6rem 0 0; color: var(--wp--preset--color--accent-4); }

/* Barra d'acquisto fissa della scheda prodotto: solo su mobile */
.vitale-barra-acquisto { display: none; }
@media (max-width: 781px) {
	.vitale-barra-acquisto {
		position: fixed;
		z-index: 90;
		left: 0;
		right: 0;
		bottom: 0;
		display: flex;
		align-items: center;
		gap: 0.75rem;
		padding: 0.6rem var(--wp--preset--spacing--30) calc(0.6rem + env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid var(--wp--preset--color--accent-6);
		box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
		transform: translateY(110%);
		transition: transform 0.25s ease;
	}
	.vitale-barra-acquisto[hidden] { display: none; }
	.vitale-barra-acquisto.is-visibile { transform: none; }
	.con-barra-acquisto { padding-bottom: 4.5rem; }
	.vitale-barra-acquisto__testo { flex: 1; min-width: 0; display: grid; line-height: 1.3; }
	.vitale-barra-acquisto__nome { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }
	.vitale-barra-acquisto__prezzo { font-weight: 700; color: var(--wp--preset--color--accent-1); }
	.vitale-barra-acquisto__prezzo del { font-weight: 400; color: var(--wp--preset--color--accent-4); font-size: 0.85em; }
	.vitale-barra-acquisto__prezzo ins { text-decoration: none; color: var(--wp--preset--color--accent-3); }
	.vitale-barra-acquisto .wp-element-button { flex: none; padding: 0.8rem 1.1rem; font-size: var(--wp--preset--font-size--x-small); }
	.vitale-barra-acquisto .vitale-barra-acquisto__wa { background: #0f7a45; }
}
@media (max-width: 781px) and (prefers-reduced-motion: reduce) {
	.vitale-barra-acquisto { transition: none; }
}

.woocommerce .wp-block-woocommerce-product-image-gallery span.onsale {
	background: var(--wp--preset--color--accent-3);
	color: #fff;
	border-radius: 0;
	top: 0.75rem;
	left: 0.75rem;
	right: auto;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0.3rem 0.6rem;
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.3;
}

/* Galleria della scheda prodotto: tutta la larghezza della colonna (WooCommerce la ferma a 512px),
   miniature distanziate dall'immagine grande e tra loro */
.woocommerce .wp-block-woocommerce-product-image-gallery { max-width: none; }
.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem;
	margin: 0.75rem 0 0;
	padding: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
}

/* Descrizione del prodotto come una scheda: etichetta oro, riquadro sabbia bordato d'oro */
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: visible;
}
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs::before,
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li::before,
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li::after { display: none; }
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li:is(.active, :not(.active)) {
	opacity: 1;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--wp--preset--color--accent-5);
}
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li:is(.active, :hover, :focus-within) {
	background: var(--wp--preset--color--accent-2);
}
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li:is(.active, :not(.active)) a {
	display: block;
	padding: 0.6rem 1.5rem;
	color: var(--wp--preset--color--accent-1);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
}
.woocommerce div.product .wp-block-woocommerce-product-details .woocommerce-tabs .panel {
	margin: 0;
	border-radius: var(--vitale-raggio-box);
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--accent-5);
	border: 2px solid var(--wp--preset--color--accent-2);
}
.wp-block-woocommerce-product-details .woocommerce-Tabs-panel > :first-child { margin-top: 0; }
.wp-block-woocommerce-product-details .woocommerce-Tabs-panel > :last-child { margin-bottom: 0; }

/* Angoli: bottoni appena stondati (theme.json), contenitori a sfondo pieno stondati
   in alto a destra e in basso a sinistra. Le fasce a tutta larghezza restano dritte. */
:root { --vitale-raggio-box: 0 1rem 0 1rem; }
.wp-block-group.has-background:not(.alignfull, .vitale-header, .vitale-footer, .vitale-topbar),
.vitale-esaurito-box { border-radius: var(--vitale-raggio-box); }
.vitale-categorie a { border-radius: var(--vitale-raggio-box); }
.wp-block-button.is-style-outline > .wp-block-button__link { border-radius: 4px; }

/* Scheda prodotto: "Aggiungi al carrello" oro e più compatto, "Chiedi su WhatsApp" più piccolo */
.woocommerce div.product form.cart .single_add_to_cart_button.wp-element-button {
	padding: 0.75rem 1.4rem;
	font-size: 0.875rem;
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-1);
}
.woocommerce div.product form.cart .single_add_to_cart_button.wp-element-button:is(:hover, :focus-visible) {
	background: var(--wp--preset--color--accent-1);
	color: #fff;
}
.woocommerce div.product form.cart .quantity .qty { align-self: stretch; height: auto; }
.vitale-rassicurazioni .vitale-whatsapp :is(.wp-element-button, .wp-block-button__link) {
	padding: 0.6rem 1.1rem;
	font-size: 0.8125rem;
}

/* Respiro tra la descrizione e "Potrebbe interessarti anche" */
.wp-block-woocommerce-product-details + * { margin-top: var(--wp--preset--spacing--60); }

/* Descrizioni generate: su desktop i titoletti (Misure, Consegna, Da abbinare…) in una colonna
   stretta e il testo accanto. Titolo, introduzione e titoli di gruppo restano a tutta larghezza. */
@media (min-width: 782px) {
	.vitale-scheda-strutturata .woocommerce-Tabs-panel {
		display: grid;
		grid-template-columns: minmax(9rem, 13rem) 1fr;
		column-gap: var(--wp--preset--spacing--40);
		align-items: baseline;
	}
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > * { grid-column: 1 / -1; }
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > :is(h3, h4) {
		grid-column: 1;
		margin-block: 1.25rem 0;
	}
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > h3:has(+ h4) {
		grid-column: 1 / -1;
		margin-top: var(--wp--preset--spacing--40);
		padding-top: var(--wp--preset--spacing--30);
		border-top: 1px solid var(--wp--preset--color--accent-2);
	}
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > h3 ~ :not(h2, h3, h4) {
		grid-column: 2;
		margin-block: 1.25rem 0;
	}
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > :is(h3, h4) + :not(h2, h3, h4) { margin-top: 1.25rem; }
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > :not(h2, h3, h4) + :not(h2, h3, h4) { margin-top: 0.75rem; }
	.vitale-scheda-strutturata .woocommerce-Tabs-panel > h3 ~ ul { padding-left: 1.1rem; }
}

/* Menu mobile a panino: elenco allineato a sinistra, sottomenu a fisarmonica */
.vitale-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch;
	padding-top: 3.5rem;
}
.vitale-header .is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
}
.vitale-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	width: 100%;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.vitale-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 0.95rem 0;
	font-size: 0.9375rem;
}
.vitale-header .is-menu-open .vitale-nav-offerte > a { justify-self: start; margin: 0.8rem 0; padding: 0.5em 0.9em !important; }
.vitale-header .is-menu-open .wp-block-navigation__submenu-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0;
}
.vitale-header .is-menu-open .wp-block-navigation__submenu-icon svg { width: 14px; height: 14px; stroke: currentColor; transition: transform 0.2s; }
.vitale-header .is-menu-open .wp-block-navigation__submenu-icon svg { transform: none; }
.vitale-header .is-menu-open .is-espansa > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.vitale-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
	grid-column: 1 / -1;
	display: none !important;
	padding: 0 0 0.8rem 0.9rem !important;
	gap: 0 !important;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
}
.vitale-header .is-menu-open .wp-block-navigation-submenu.is-espansa > .wp-block-navigation__submenu-container { display: flex !important; }
.vitale-nav-tutto { display: none !important; }
.vitale-header .is-menu-open .vitale-nav-tutto { display: block !important; font-weight: 700; }
.vitale-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 0 !important; font-size: 0.9375rem; }
.vitale-header .is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.vitale-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; align-items: flex-start !important; }

/* Categorie: introduzione sotto il titolo e guida sotto i prodotti (inc/seo.php) */
.vitale-intro-categoria { color: var(--wp--preset--color--accent-4); }
.vitale-intro-categoria p { margin: 0; }
.vitale-guida-categoria {
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--accent-6);
	font-size: var(--wp--preset--font-size--small);
}
.vitale-guida-categoria > :first-child { margin-top: 0; }
.vitale-guida-categoria h2 { margin: 1.6em 0 0.4em; font-size: var(--wp--preset--font-size--large); }
.vitale-guida-categoria p { margin: 0 0 1em; }

/* Carrello, checkout e account: tutta la larghezza del sito (WooCommerce li limita a 1000px). */
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) main :is(.wp-block-post-title, .woocommerce) {
	max-width: var(--wp--style--global--wide-size);
}

/* Accesso all'account: un modulo stretto, non largo quanto la pagina. */
.woocommerce-account:not(.logged-in) main .woocommerce {
	max-width: 560px;
}

/* Carrello su mobile: codice promozionale e pulsante uno sotto l'altro. */
@media (max-width: 768px) {
	.woocommerce-page .woocommerce-cart-form .coupon {
		gap: 0.5rem;
	}
	.woocommerce-page .woocommerce-cart-form .coupon :is(#coupon_code, .button) {
		width: 100%;
	}
}
