/* ==========================================================================
   Brico Ecommerce — Scheda prodotto singolo (v1.9.7)
   --------------------------------------------------------------------------
   Caricato SOLO sulla scheda prodotto (inc/single-product.php), dopo
   shop.css: ne sostituisce la vecchia sezione "Scheda prodotto singolo".
   Ogni selettore comincia con `.single-product`, così vince su shop.css e
   sulle regole di fondo di style.css senza `!important`.

   Misurato prima di cambiare (WAMP, 1440px, 26/09/2026):
   - la scheda era un blocco largo l'80% (regola in style.css), attaccato
     all'intestazione: zero spazio sopra l'immagine;
   - l'immagine non aveva un'altezza massima: una foto verticale diventava
     alta quanto la sua larghezza di colonna, una orizzontale restava un
     nastro in alto a sinistra;
   - la colonna destra apriva con briciole + categorie ripetute + titolo;
     categorie e codice ripetuti di nuovo in fondo.

   Linguaggio visivo del resto del sito: card bianche con bordo #E5E7EB,
   raggio 12px, ombra leggera (come le card del catalogo); blu per le
   azioni di navigazione, rosso per l'acquisto; font di sistema; codici in
   monospaziato.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Misure della pagina
   -------------------------------------------------------------------------- */
.single-product {
	/* Altezza del riquadro immagine: il "massimo decente" richiesto.
	   Mai oltre 560px, mai più del 62% dello schermo (su un portatile da
	   768px di altezza il pulsante d'acquisto resta sopra la piega). */
	--sp-stage-h: clamp(320px, 62vh, 560px);
	--sp-placeholder-h: clamp(240px, 40vh, 380px);
	--sp-gap: clamp(32px, 4vw, 64px);
	--sp-radius: var(--brico-radius, 12px);
	--sp-border: var(--brico-color-border, #E5E7EB);
}

/* Contenitore: stessa respirazione del catalogo, larghezza di lettura
   limitata. Annulla `margin: 0 10%; width: 80%` di style.css. */
.single-product.ast-separate-container .ast-woocommerce-container {
	max-width: 1320px;
	margin: 0 auto;
	padding: 28px 24px 64px;
}

/* Astra aggiunge sopra il contenuto 58px di padding a #primary sotto i
   922px (sul desktop li azzera già style.css) e 8px ai lati del suo
   contenitore: misurato sul telefono, una fascia grigia vuota fra
   intestazione e scheda. La spaziatura la dà il contenitore qui sopra. */
.single-product.ast-separate-container #primary {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}

.single-product.ast-separate-container .site-content > .ast-container {
	padding-left: 0;
	padding-right: 0;
}

.single-product.ast-separate-container div.product.ast-article-single,
.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
	column-gap: var(--sp-gap);
	row-gap: 56px;
	align-items: start;
	width: auto;
	margin: 0;
	padding: 0;
	background: transparent;
}

/* Tutto ciò che non è galleria o riassunto (descrizione, correlati,
   barra fissa...) occupa la riga intera. */
.single-product div.product > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.single-product div.product > .woocommerce-product-gallery {
	grid-column: 1;
	grid-row: 1;
}

.single-product div.product > .summary {
	grid-column: 2;
	grid-row: 1;
}

/* Le larghezze in percentuale e i float di WooCommerce/Astra non servono
   dentro la griglia, e la sporcherebbero. Qui serve l'id: Astra stampa in
   linea `.woocommerce #content .ast-woocommerce-container div.product
   div.images { width: 50% }` (e 46% il riassunto), specificità 1,3,2.
   Misurato: con un selettore senza id la colonna destra restava larga
   269px su 584 disponibili. */
.single-product #content .ast-woocommerce-container div.product div.images.woocommerce-product-gallery,
.single-product #content .ast-woocommerce-container div.product div.summary.entry-summary,
.single-product div.product div.images,
.single-product div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

/* --------------------------------------------------------------------------
   1. Briciole (ora in testa alla scheda, vedi inc/single-product.php)
   -------------------------------------------------------------------------- */
.single-product .woocommerce-breadcrumb {
	margin: 0 0 20px;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--brico-color-text-muted);
}

/* --------------------------------------------------------------------------
   2. Galleria
   -------------------------------------------------------------------------- */
.single-product div.product div.images {
	position: relative;
	overflow: visible;
	border-radius: 0;
	opacity: 1 !important; /* WooCommerce parte da 0 e aspetta il suo JS: senza JS (o prima) la foto non si vedrebbe */
}

@media (min-width: 1024px) {
	/* La foto accompagna la lettura del riassunto quando è più lungo. */
	.single-product div.product > .woocommerce-product-gallery {
		position: sticky;
		top: 24px;
	}
	.admin-bar.single-product div.product > .woocommerce-product-gallery {
		top: 56px;
	}
}

/* Il riquadro: altezza fissa, foto centrata dentro. Un'altezza fissa e
   non "quella della foto" perché con più immagini di proporzioni diverse il
   riquadro non deve saltare ad ogni cambio, e perché il browser conosce lo
   spazio prima che la foto arrivi (niente salto di impaginazione). */
/* La slide resta "nuda" (solo altezza) e la cornice sta sul link interno.
   Misurato col carosello acceso: FlexSlider calcola la larghezza di ogni
   slide togliendo padding e bordo (631 → 565px, e la foto successiva
   spuntava di 66px) e l'altezza della finestra senza padding (492px su un
   riquadro di 558: il fondo veniva tagliato). Senza padding né bordo sulla
   slide, i suoi conti tornano. */
.single-product div.product div.images .woocommerce-product-gallery__image {
	position: relative;
	height: var(--sp-stage-h);
	padding: 0;
	margin: 0;
	border-radius: var(--sp-radius);
	overflow: hidden; /* taglia anche la copia ingrandita dello zoom */
}

.single-product div.product div.images .woocommerce-product-gallery__image > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: clamp(16px, 2.5vw, 32px);
	box-sizing: border-box;
	background: var(--brico-color-surface, #fff);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius);
}

.single-product div.product div.images .woocommerce-product-gallery__image > a:focus-visible {
	outline: 3px solid var(--brico-color-secondary);
	outline-offset: -3px;
}

/* La foto: mai più larga o più alta del riquadro, proporzioni intatte.
   `:not(.zoomImg)`: la copia ingrandita dello zoom deve restare libera
   di essere più grande del riquadro, è il suo mestiere. */
.single-product div.product div.images .woocommerce-product-gallery__image img:not(.zoomImg) {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	margin: 0 auto;
	object-fit: contain;
	border-radius: 0;
	box-shadow: none;
}

/* Carosello (FlexSlider, solo con più foto): il riquadro è ogni slide, la
   finestra non deve aggiungere niente. */
.single-product div.product div.images .flex-viewport {
	border-radius: var(--sp-radius);
}

/* Miniature */
.single-product div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, 76px);
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

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

.single-product div.product div.images .flex-control-thumbs img {
	width: 76px;
	height: 76px;
	padding: 6px;
	box-sizing: border-box;
	object-fit: contain;
	background: var(--brico-color-surface, #fff);
	border: 1px solid var(--sp-border);
	border-radius: 8px;
	opacity: 1;
	cursor: pointer;
	transition: border-color var(--brico-transition), box-shadow var(--brico-transition);
}

.single-product div.product div.images .flex-control-thumbs img:hover {
	border-color: #8A919E;
}

.single-product div.product div.images .flex-control-thumbs img.flex-active {
	border-color: var(--brico-color-secondary);
	box-shadow: 0 0 0 1px var(--brico-color-secondary);
}

.single-product div.product div.images .flex-control-thumbs img:focus-visible {
	outline: 3px solid var(--brico-color-secondary);
	outline-offset: 2px;
}

/* Pulsante "ingrandisci" (lightbox): una lente disegnata, al posto
   dell'emoji o del cerchietto di WooCommerce. */
.single-product div.product div.images .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 9;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--sp-border);
	border-radius: 50%;
	background: var(--brico-color-surface, #fff);
	box-shadow: var(--brico-shadow);
	color: var(--brico-color-dark);
	font-size: 0;
	text-indent: 0;
	cursor: zoom-in;
	transition: box-shadow var(--brico-transition), color var(--brico-transition);
}

.single-product div.product div.images .woocommerce-product-gallery__trigger > * {
	display: none;
}

.single-product div.product div.images .woocommerce-product-gallery__trigger::before {
	content: "";
	position: static;
	display: block;
	width: 20px;
	height: 20px;
	border: 0;
	border-radius: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5M10.5 7.5v6M7.5 10.5h6'/%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' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5M10.5 7.5v6M7.5 10.5h6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.single-product div.product div.images .woocommerce-product-gallery__trigger::after {
	content: none;
}

.single-product div.product div.images .woocommerce-product-gallery__trigger:hover {
	color: var(--brico-color-secondary);
	box-shadow: var(--brico-shadow-hover);
}

.single-product div.product div.images .woocommerce-product-gallery__trigger:focus-visible {
	outline: 3px solid var(--brico-color-secondary);
	outline-offset: 2px;
}

/* Prodotto senza foto (oggi il 99% del catalogo): un riquadro più basso,
   il simbolo del ramo alla sua misura. Non un cartellone da 560px che
   dice "qui manca qualcosa". Sostituisce la regola della v1.6.2 in shop.css. */
.single-product div.product div.images .woocommerce-product-gallery__image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--sp-placeholder-h);
	background: var(--brico-color-surface-alt);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius);
}

.single-product div.product div.images .woocommerce-product-gallery__image--placeholder img {
	width: auto;
	height: 55%;
	max-width: 60%;
	max-height: 210px;
	padding: 0;
	object-fit: contain;
	background: none;
	border: 0;
	border-radius: 0;
}

/* Badge sconto sopra la foto */
.single-product div.product > .onsale {
	top: 16px;
	left: 16px;
	z-index: 10;
}

/* --------------------------------------------------------------------------
   3. Riassunto
   -------------------------------------------------------------------------- */
.single-product div.product .summary {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.single-product div.product .summary > * {
	max-width: 100%;
}

/* Categoria sopra il titolo */
.single-product div.product .single-product-category {
	display: block;
	margin: 0 0 8px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--brico-color-text-muted);
}

.single-product div.product .single-product-category:empty {
	display: none;
}

.single-product div.product .single-product-category a {
	color: inherit;
	text-decoration: none;
}

.single-product div.product .single-product-category a:hover {
	color: var(--brico-color-secondary);
	text-decoration: underline;
}

/* Titolo. I nomi arrivano dal gestionale, in maiuscolo e a volte con
   trattini e codici attaccati: `overflow-wrap: anywhere` impedisce che
   una stringa senza spazi sfondi la colonna. */
.single-product div.product .product_title {
	margin: 0 0 10px;
	font-size: clamp(1.35rem, 1rem + 1.1vw, 1.85rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--brico-color-dark);
	overflow-wrap: anywhere;
}

/* Codice articolo */
.single-product div.product .brico-sp-code {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	margin: 0 0 16px;
	padding: 0.28em 0.65em;
	font-size: 0.85rem;
	line-height: 1.3;
	background: var(--brico-color-surface-alt);
	border: 1px solid var(--sp-border);
	border-radius: var(--brico-radius-sm);
}

.single-product div.product .brico-sp-code__label {
	color: var(--brico-color-text-muted);
}

.single-product div.product .brico-sp-code__value {
	font-family: var(--brico-font-mono);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--brico-color-dark);
	overflow-wrap: anywhere;
}

/* Valutazioni (se attive) */
.single-product div.product .woocommerce-product-rating {
	margin: 0 0 12px;
}

/* Prezzo */
.single-product div.product .summary p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 0;
	font-size: clamp(1.7rem, 1.4rem + 0.8vw, 2.1rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--brico-color-primary);
}

.single-product div.product .summary p.price del {
	order: 2;
	font-size: 0.55em;
	font-weight: 500;
	color: var(--brico-color-text-muted);
}

.single-product div.product .summary p.price ins {
	text-decoration: none;
}

.single-product div.product .brico-sp-price-note {
	margin: 6px 0 0;
	font-size: 0.8rem;
	color: var(--brico-color-text-muted);
}

/* Descrizione breve */
.single-product div.product .woocommerce-product-details__short-description {
	margin: 18px 0 0;
	max-width: 62ch;
	font-size: 0.98rem;
	line-height: 1.6;
	color: var(--brico-color-text);
}

.single-product div.product .woocommerce-product-details__short-description > :last-child {
	margin-bottom: 0;
}

/* --------------------------------------------------------------------------
   4. Riquadro d'acquisto
   -------------------------------------------------------------------------- */
.single-product div.product .brico-sp-buybox {
	width: 100%;
	margin: 22px 0 0;
	padding: clamp(16px, 2vw, 22px);
	box-sizing: border-box;
	background: var(--brico-color-surface, #fff);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius);
	box-shadow: var(--brico-shadow);
}

/* Disponibilità: etichetta + stato (markup di Astra: .ast-stock-detail) */
.single-product div.product .brico-sp-buybox .ast-stock-detail {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 0 0 16px;
	font-size: 0.9rem;
}

.single-product div.product .brico-sp-buybox .ast-stock-avail {
	font-weight: 600;
	color: var(--brico-color-text);
}

/* Lo stato resta una pillola (come nel catalogo), ma il testo lungo di
   "su ordinazione — spedizione in N giorni" va a capo dentro, invece di
   fare una pillola larga quanto la colonna. */
.single-product div.product .brico-sp-buybox .stock {
	margin: 0;
	border-radius: 14px;
	line-height: 1.35;
	white-space: normal;
}

.single-product div.product .brico-sp-buybox > .stock {
	margin: 0 0 16px;
}

/* Quantità + pulsante, stessa altezza */
.single-product div.product .brico-sp-buybox form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 0;
}

.single-product div.product .brico-sp-buybox form.cart::before,
.single-product div.product .brico-sp-buybox form.cart::after {
	content: none; /* i clearfix di WooCommerce diventerebbero celle vuote del flex */
}

.single-product div.product .brico-sp-buybox form.cart .quantity {
	float: none;
	height: 52px;
	margin: 0;
	border-color: #8A919E; /* confine del controllo a 3,17:1 (WCAG 1.4.11) */
	border-radius: 8px;
}

.single-product div.product .brico-sp-buybox form.cart .quantity input.qty {
	width: 3.4rem;
	min-height: 0;
	height: 100%;
	font-size: 1rem;
}

.single-product div.product .brico-sp-buybox form.cart .quantity .brico-qty-btn {
	min-height: 0;
	height: 100%;
}

.single-product div.product .brico-sp-buybox form.cart .button.single_add_to_cart_button {
	flex: 1 1 200px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	float: none;
	min-height: 52px;
	margin: 0;
	padding: 0 24px;
	border-radius: 8px;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.2;
	box-shadow: 0 6px 16px rgba(196, 31, 38, 0.22);
	transition: background var(--brico-transition), box-shadow var(--brico-transition), transform var(--brico-transition);
}

.single-product div.product .brico-sp-buybox form.cart .button.single_add_to_cart_button::before {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6h15l-1.5 9h-12z'/%3E%3Cpath d='M6 6 5 3H2'/%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6h15l-1.5 9h-12z'/%3E%3Cpath d='M6 6 5 3H2'/%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.single-product div.product .brico-sp-buybox form.cart .button.single_add_to_cart_button:hover {
	box-shadow: 0 10px 22px rgba(196, 31, 38, 0.3);
	transform: translateY(-1px);
}

.single-product div.product .brico-sp-buybox form.cart .button.single_add_to_cart_button:focus-visible {
	outline: 3px solid var(--brico-color-secondary);
	outline-offset: 2px;
}

/* In aggiunta (AJAX di Astra) e appena aggiunto */
.single-product div.product .brico-sp-buybox form.cart .button.loading {
	opacity: 0.75;
}

/* Rassicurazioni sotto il riquadro (inc/shop-enhancements.php) */
.single-product div.product .summary .brico-trust-badges {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px 16px;
	width: 100%;
	margin: 18px 0 0;
	padding: 0;
	border: 0;
}

.single-product div.product .summary .brico-trust-badges .brico-trust-badge {
	gap: 10px;
	font-size: 0.85rem;
	line-height: 1.35;
	color: var(--brico-color-text);
}

.single-product div.product .summary .brico-trust-badges .brico-trust-badge svg {
	width: 22px;
	height: 22px;
}

/* --------------------------------------------------------------------------
   5. Descrizione e informazioni (schede sotto)
   -------------------------------------------------------------------------- */
.single-product div.product .woocommerce-tabs {
	padding: clamp(20px, 3vw, 32px);
	background: var(--brico-color-surface, #fff);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius);
}

.single-product div.product .woocommerce-tabs ul.tabs {
	margin: 0 0 4px;
	padding: 0;
	overflow-x: auto;
}

.single-product div.product .woocommerce-tabs ul.tabs::before,
.single-product div.product .woocommerce-tabs ul.tabs li::before,
.single-product div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
	border: 0;
	box-shadow: none;
}

.single-product div.product .woocommerce-tabs ul.tabs li a:focus-visible {
	outline: 3px solid var(--brico-color-secondary);
	outline-offset: -3px;
}

.single-product div.product .woocommerce-tabs .panel {
	margin: 0;
	padding: 20px 0 0;
	max-width: 75ch;
	line-height: 1.65;
	color: var(--brico-color-text);
}

.single-product div.product .woocommerce-tabs .panel table.shop_attributes {
	max-width: 640px;
	border-top: 1px solid var(--sp-border);
}

.single-product div.product .woocommerce-tabs .panel table.shop_attributes th,
.single-product div.product .woocommerce-tabs .panel table.shop_attributes td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--sp-border);
	font-style: normal;
	text-align: left;
}

.single-product div.product .woocommerce-tabs .panel table.shop_attributes th {
	width: 35%;
	font-weight: 600;
	color: var(--brico-color-text);
	background: var(--brico-color-surface-alt);
}

/* --------------------------------------------------------------------------
   6. Prodotti correlati / suggeriti
   -------------------------------------------------------------------------- */
.single-product div.product .related.products,
.single-product div.product .up-sells.products {
	margin: 0;
	padding-top: 40px;
	border-top: 1px solid var(--sp-border);
}

.single-product div.product .related.products > h2,
.single-product div.product .up-sells.products > h2 {
	margin: 0 0 20px;
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--brico-color-dark);
}

.single-product div.product .related.products ul.products,
.single-product div.product .up-sells.products ul.products {
	margin: 0;
}

/* --------------------------------------------------------------------------
   7. Barra d'acquisto fissa di Astra (quando si scorre oltre il pulsante)
   -------------------------------------------------------------------------- */
.single-product .ast-sticky-add-to-cart {
	border-top: 1px solid var(--sp-border);
	box-shadow: 0 -8px 24px rgba(23, 25, 28, 0.08);
}

.single-product .ast-sticky-add-to-cart .ast-sticky-add-to-cart-title-wrap img {
	object-fit: contain;
	padding: 4px;
	box-sizing: border-box;
	background: var(--brico-color-surface-alt);
	border: 1px solid var(--sp-border);
	border-radius: var(--brico-radius-sm);
}

.single-product .ast-sticky-add-to-cart .ast-sticky-add-to-cart-title {
	font-weight: 600;
	color: var(--brico-color-dark);
}

.single-product .ast-sticky-add-to-cart .price {
	font-weight: 800;
	color: var(--brico-color-primary);
}

.single-product .ast-sticky-add-to-cart .single_add_to_cart_button {
	border-radius: 8px;
	font-weight: 700;
}

/* --------------------------------------------------------------------------
   8. Tablet e telefono: una colonna
   -------------------------------------------------------------------------- */
@media (max-width: 1023px) {
	.single-product {
		--sp-stage-h: min(82vw, 420px);
		--sp-placeholder-h: min(52vw, 260px);
	}

	.single-product.ast-separate-container .ast-woocommerce-container {
		padding: 16px 16px 48px;
	}

	.single-product.ast-separate-container div.product.ast-article-single,
	.single-product div.product {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 24px;
	}

	.single-product div.product > .woocommerce-product-gallery,
	.single-product div.product > .summary {
		grid-column: 1;
		grid-row: auto;
	}

	.single-product .woocommerce-breadcrumb {
		margin-bottom: 12px;
		font-size: 0.8rem;
	}

	/* Miniature su una riga sola che scorre: quattro da 76px andavano a
	   capo sul telefono e spingevano titolo e prezzo sotto la piega. */
	.single-product div.product div.images .flex-control-thumbs {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 60px;
		gap: 8px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		padding-bottom: 2px;
	}

	.single-product div.product div.images .flex-control-thumbs::-webkit-scrollbar {
		display: none;
	}

	.single-product div.product div.images .flex-control-thumbs img {
		width: 60px;
		height: 60px;
		padding: 4px;
	}

	.single-product div.product .related.products,
	.single-product div.product .up-sells.products {
		padding-top: 28px;
	}
}

@media (max-width: 480px) {
	/* Pulsante sotto la quantità, a tutta larghezza: più facile da
	   centrare col pollice. */
	.single-product div.product .brico-sp-buybox form.cart .button.single_add_to_cart_button {
		flex-basis: 100%;
	}

	.single-product div.product .brico-sp-buybox form.cart .quantity {
		flex: 1 1 100%;
		justify-content: space-between;
	}

	.single-product div.product .brico-sp-buybox form.cart .quantity input.qty {
		flex: 1 1 auto;
	}
}

/* --------------------------------------------------------------------------
   9. Movimento ridotto
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.single-product div.product .brico-sp-buybox form.cart .button.single_add_to_cart_button:hover {
		transform: none;
	}
}

/* ==========================================================================
   v2.0.0 — Prezzo grande con centesimi piccoli + invito a registrarsi
   ========================================================================== */
.single-product div.product .summary p.price {
	font-variant-numeric: tabular-nums;
}
.single-product div.product .summary p.price .brico-cent {
	font-size: 0.55em;
	font-weight: 800;
	vertical-align: 0.72em;
	margin-left: 0.02em;
	letter-spacing: 0;
}
.single-product div.product .summary p.price .woocommerce-Price-currencySymbol {
	font-size: 0.6em;
	font-weight: 700;
	margin-left: 0.15em;
}
.single-product div.product .summary p.price del .brico-cent,
.single-product .ast-sticky-add-to-cart .price .brico-cent {
	font-size: inherit;
	vertical-align: baseline;
}

/* "Registrati: su questo prodotto puoi risparmiare fino al X%".
   Un invito, non un banner: una riga sotto il prezzo con un bordo del
   colore del brand a sinistra, tutta cliccabile. Testo scuro su fondo
   chiaro: il contrasto non dipende dal rosso del brand. */
.single-product div.product .brico-registrati {
	margin: 12px 0 0;
	max-width: 46ch;
}
.single-product div.product .brico-registrati a {
	display: block;
	padding: 10px 14px;
	border-left: 3px solid var(--brico-color-primary);
	border-radius: 0 6px 6px 0;
	background: #F6F7F9;
	color: var(--brico-color-text);
	font-size: 0.92rem;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color 0.15s ease;
}
.single-product div.product .brico-registrati a:hover {
	background: #EEF0F3;
}
.single-product div.product .brico-registrati a:focus-visible {
	outline: 2px solid var(--brico-color-text);
	outline-offset: 2px;
}
.single-product div.product .brico-registrati strong {
	color: var(--brico-color-primary);
	font-weight: 700;
	margin-right: 0.2em;
}
@media (prefers-reduced-motion: reduce) {
	.single-product div.product .brico-registrati a { transition: none; }
}

/* v2.1.3 — Frase di registrazione: il testo, poi "Registrati" come azione. */
.single-product div.product .brico-registrati strong {
	margin-right: 0;
	margin-left: 0.25em;
	text-decoration: underline;
	text-underline-offset: 2px;
	white-space: nowrap;
}
