/*
Theme Name:     AiStudio - Divi Child
Theme URI:      https://www.bresciapc.com/
Description:    Child theme per BresciaPC Srl basato su Divi. Ottimizzato per prestazioni, UX e accessibilità. Include layout personalizzati per WooCommerce.
Author:         Ernis Lita (Revisione AI)
Author URI:     https://www.bresciapc.com/
Template:       Divi
Version:        1.8.1
Text Domain:    bresciapc-child
License:        GNU General Public License v2 or later
License URI:    http://www.gnu.org/licenses/gpl-2.0.html
Tags:           woocommerce, divi-child, responsive-layout, custom-header, custom-footer, performance, accessibility
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS (Riorganizzata):
----------------------------------------------------------------
# Stili principali importati da common.css, header.css, footer.css, product.css, category-custom.css

# 1.  STILI HEADER (Padding Globale per #page-container)
# 2.  STILI WOOCOMMERCE ARCHIVI (Shop/Categorie - Tile Style)
# 3.  LOAD MORE BUTTON & LOADER (AJAX Load More)
# 4.  UTILITY WOOCOMMERCE / DIVI (Overrides specifici non in common.css)
# 5.  STILI PAGINA PRODOTTO SINGOLO (Overrides specifici per summary, meta, etc. non in product.css o common.css)
--------------------------------------------------------------*/


/*--------------------------------------------------------------
# 1. STILI HEADER (Padding Globale per #page-container)
--------------------------------------------------------------*/
/* Padding-top al contenitore principale per compensare l'header fisso */
/* Usa variabili definite in common.css */
body:not(.et-fb) #page-container {
	padding-top: var(--header-height-desktop);
	box-sizing: border-box;
}
@media (max-width: 980px) { /* Punto di rottura Divi mobile */
	body:not(.et-fb) #page-container {
		padding-top: var(--header-height-mobile);
	}
}
/* Rimuove margine/padding extra all'inizio del contenuto principale di Divi */
body:not(.et-fb) #main-content > *:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/*--------------------------------------------------------------
# 2. STILI WOOCOMMERCE ARCHIVI (Shop/Categorie - Tile Style)
--------------------------------------------------------------*/

/* --- Variabili Specifiche Archivi (definite qui se sovrascrivono o sono uniche per archivi) --- */
:root { /* Alcune variabili potrebbero essere duplicate da common.css se necessario, o usate direttamente */
	/* Tile Base */
	/* --bspc-tile-padding: clamp(15px, 3vw, 20px); (da common.css) */
	/* --bspc-tile-radius: var(--bspc-radius-large); (da common.css) */
	/* --bspc-tile-bg: var(--bspc-bg-white); (da common.css) */
	--bspc-tile-border: 1px solid var(--bspc-border-medium); /* Esempio: bordo specifico tile */
	/* --bspc-tile-shadow: var(--bspc-shadow-light); (da common.css) */
	/* --bspc-tile-shadow-hover: var(--bspc-shadow-medium); (da common.css) */

	/* Tile Categorie */
	--bspc-cat-img-size: clamp(40px, 7vw, 90px);
	--bspc-cat-img-radius: var(--bspc-radius-small);

	/* Tile Prodotti (Desktop - Verticale) */
	--bspc-prod-img-size-desk: clamp(120px, 25vw, 160px);
	--bspc-prod-img-radius-desk: var(--bspc-radius-medium);
	--bspc-prod-grid-min-desk: 240px;

	/* Tile Prodotti (Mobile - Orizzontale come Categorie) */
	--bspc-prod-img-size-mob: clamp(40px, 7vw, 45px);
	--bspc-prod-img-radius-mob: var(--bspc-radius-small);
}

/* --- Intro Archivio (Titolo e Descrizione Categoria/Shop) --- */
.bspc-archive-intro {
	max-width: var(--bspc-content-width);
	margin: clamp(30px, 5vh, 50px) auto;
	padding: 0 var(--bspc-desktop-padding);
	text-align: center;
	box-sizing: border-box;
}
.bspc-archive-title {
	font-size: clamp(2rem, 5vw, 2.8rem);
	font-weight: 600;
	margin-bottom: 0.5em;
	line-height: 1.2;
	color: var(--bspc-text-primary);
}
.bspc-archive-description {
	font-size: clamp(1rem, 2.5vw, 1.1rem);
	color: var(--bspc-text-secondary);
	max-width: 750px;
	margin: 0 auto clamp(25px, 4vh, 40px);
	line-height: 1.6;
}
.bspc-archive-description p:last-child {
	margin-bottom: 0;
}

/* --- Contenitori Griglia/Lista (Categorie e Prodotti) --- */
.bspc-category-container,
body.woocommerce ul.products {
	max-width: var(--bspc-content-width);
	margin: 0 auto clamp(40px, 6vh, 60px) !important;
	padding: 0 var(--bspc-desktop-padding) !important;
	box-sizing: border-box !important;
}

/* --- Stile Tile Base (Comune a Categorie e Prodotti) --- */
.bspc-tile {
	display: flex;
	background-color: var(--bspc-bg-white); /* Usa var da common.css */
	border: var(--bspc-tile-border); /* Usa var definita qui o da common.css */
	border-radius: var(--bspc-radius-large); /* Usa var da common.css */
	text-decoration: none;
	color: var(--bspc-text-primary);
	padding: var(--bspc-tile-padding); /* Usa var da common.css o definita qui */
	box-shadow: var(--bspc-shadow-light); /* Usa var da common.css */
	transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1), box-shadow 0.3s ease, border-color 0.3s ease;
	will-change: transform, box-shadow;
	overflow: hidden;
	box-sizing: border-box;
	height: 100%;

	opacity: 0;
	transform: translateY(15px);
	animation: bspc-fadeInUp 0.6s 0.1s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
@keyframes bspc-fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@media (hover: hover) {
	.bspc-tile:hover {
		box-shadow: var(--bspc-shadow-medium);
		transform: translateY(-5px);
		border-color: var(--bspc-border-dark);
	}
}
.bspc-tile:focus-visible {
	outline: 2px solid var(--bspc-blue-primary);
	outline-offset: 2px;
    box-shadow: var(--bspc-shadow-medium);
}

.bspc-tile .bspc-tile-thumb {
	flex-shrink: 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
    background-color: #f8f8f8;
}
.bspc-tile .bspc-tile-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
    transition: transform 0.4s ease;
}
@media (hover: hover) {
    .bspc-tile:hover .bspc-tile-thumb img {
        transform: scale(1.05);
    }
}

.bspc-tile .bspc-tile-info {
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.bspc-tile .bspc-tile-name {
	display: block;
	font-weight: 500;
	color: var(--bspc-text-primary);
}

/* Stili Desktop Archivi */
@media (min-width: 768px) {
	.bspc-cat-grid {
		display: grid;
		grid-gap: var(--bspc-grid-gap);
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	}
	.bspc-category-tile {
		flex-direction: row;
		align-items: center;
		text-align: left;
	    height: 100px;
	}
	.bspc-category-tile .bspc-tile-thumb {
		width: var(--bspc-cat-img-size);
		height: var(--bspc-cat-img-size);
		margin-right: 15px;
		border-radius: var(--bspc-cat-img-radius);
	}
	.bspc-category-tile .bspc-tile-thumb img {
		border-radius: calc(var(--bspc-cat-img-radius) / 1.5);
        object-fit: contain;
	}
	.bspc-category-tile .bspc-tile-info { flex-grow: 1; }
	.bspc-category-tile .bspc-tile-name {
		font-size: clamp(1rem, 2.5vw, 1.1rem);
		line-height: 1.3;
		white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	}

	body.woocommerce ul.products {
		display: grid !important;
		grid-gap: var(--bspc-grid-gap) !important;
		grid-template-columns: repeat(auto-fit, minmax(var(--bspc-prod-grid-min-desk), 1fr)) !important;
		list-style: none !important; padding: 0 !important; margin-left: 0 !important; margin-right: 0 !important;
	}
	body.woocommerce ul.products li.product {
		float: none !important; width: auto !important; height: auto !important;
		margin: 0 !important; padding: 0 !important; background: none !important;
		border: none !important; box-shadow: none !important; position: relative;
		display: flex; flex-direction: column;
	}
	body.woocommerce ul.products li.product a.bspc-product-tile {
		flex-direction: column; align-items: center; text-align: center;
		justify-content: flex-start; flex-grow: 1;
	}
	body.woocommerce ul.products li.product a.bspc-product-tile .bspc-tile-thumb {
		width: 100%; height: var(--bspc-prod-img-size-desk);
		margin-right: 0; margin-bottom: 15px;
		border-radius: var(--bspc-prod-img-radius-desk);
	}
	body.woocommerce ul.products li.product a.bspc-product-tile .bspc-tile-thumb img {
		border-radius: calc(var(--bspc-prod-img-radius-desk) / 1.5);
	}
	body.woocommerce ul.products li.product a.bspc-product-tile .bspc-tile-info {
		flex-grow: 0; width: 100%; padding: 0 5px;
		justify-content: center; text-align: center; margin-top: auto; padding-bottom: 5px;
	}
	body.woocommerce ul.products li.product a.bspc-product-tile .bspc-tile-name {
		font-size: clamp(0.9rem, 2vw, 1rem); line-height: 1.4;
		min-height: calc(1.4em * 2); display: -webkit-box;
		-webkit-line-clamp: 2; -webkit-box-orient: vertical;
		overflow: hidden; text-overflow: ellipsis; white-space: normal;
	}
	body.woocommerce ul.products li.product .star-rating,
	body.woocommerce ul.products li.product .price,
	body.woocommerce ul.products li.product .button,
	body.woocommerce ul.products li.product .woocommerce-loop-product__link {
		display: none !important;
	}
	body.woocommerce ul.products li.product .onsale {
		position: absolute; top: 12px; right: 12px; left: auto; margin: 0;
		background-color: var(--bspc-red-error); color: var(--bspc-bg-white);
		font-size: 0.8rem; font-weight: 600; padding: 4px 8px;
		border-radius: 6px; z-index: 9; line-height: 1;
	}
}

/* Stili Mobile Archivi */
@media (max-width: 767px) {
	.bspc-archive-intro {
		margin-top: clamp(20px, 4vh, 30px); margin-bottom: clamp(20px, 4vh, 30px);
		padding: 0 var(--bspc-mobile-padding);
	}
	.bspc-archive-title { font-size: clamp(1.6rem, 6vw, 2.1rem); }
	.bspc-archive-description {
		font-size: clamp(0.9rem, 3vw, 1rem);
		margin-bottom: clamp(20px, 3vh, 25px);
	}
	.bspc-category-container, body.woocommerce ul.products {
		padding: 0 var(--bspc-mobile-padding) !important;
		margin-bottom: clamp(30px, 5vh, 40px) !important;
	}
	.bspc-cat-grid, body.woocommerce ul.products {
		display: block !important; grid-template-columns: none !important; grid-gap: 0 !important;
	}
	.bspc-cat-grid .bspc-tile, body.woocommerce ul.products li.product {
		margin-bottom: 12px !important; width: 100% !important;
	}
	.bspc-cat-grid .bspc-tile:last-child, body.woocommerce ul.products li.product:last-child {
		margin-bottom: 0 !important;
	}
	body.woocommerce ul.products li.product {
		padding: 0 !important; border: none !important; background: none !important;
		box-shadow: none !important; float: none !important; height: auto !important;
		display: block !important;
	}
	.bspc-tile { /* Si applica a TUTTE le .bspc-tile (categorie e prodotti) su mobile */
		flex-direction: row !important; align-items: center !important; text-align: left !important;
		padding: clamp(12px, 4vw, 15px) !important; height: auto !important; min-height: 0 !important;
	}
	.bspc-tile .bspc-tile-thumb {
		width: var(--bspc-prod-img-size-mob) !important; height: var(--bspc-prod-img-size-mob) !important;
		margin-right: 12px !important; margin-bottom: 0 !important;
		border-radius: var(--bspc-prod-img-radius-mob) !important;
	}
	.bspc-tile .bspc-tile-thumb img {
		border-radius: calc(var(--bspc-prod-img-radius-mob) / 1.5) !important;
		object-fit: contain;
	}
	.bspc-tile .bspc-tile-info {
		flex-grow: 1 !important; padding: 0 !important;
		justify-content: center !important; text-align: left !important;
	}
	.bspc-tile .bspc-tile-name {
		font-size: clamp(0.95rem, 3.5vw, 1rem); line-height: 1.3 !important;
		white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
		min-height: 0 !important; display: block !important;
		-webkit-line-clamp: unset !important; -webkit-box-orient: unset !important;
	}
	body.woocommerce ul.products li.product .onsale { display: none !important; }
}


/*--------------------------------------------------------------
# 3. LOAD MORE BUTTON & LOADER
--------------------------------------------------------------*/
.load-more-container {
	text-align: center;
	margin: clamp(30px, 5vh, 50px) 0;
	min-height: 50px;
}
.load-more-btn {
	display: inline-block;
	background: var(--bspc-blue-primary);
	color: var(--bspc-bg-white);
	border: none;
	border-radius: var(--bspc-radius-large);
	padding: 12px 30px;
	cursor: pointer;
	font-size: 0.95em;
	font-weight: 500;
	transition: background-color 0.2s ease, opacity 0.3s ease, transform 0.1s ease;
	will-change: background-color, opacity;
}
.load-more-btn:hover:not(:disabled) {
	background: var(--bspc-blue-hover);
	transform: scale(1.02);
}
.load-more-btn:active:not(:disabled) {
	transform: scale(0.98);
}
.load-more-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	background: var(--bspc-text-light);
	transform: scale(1);
}
.load-more-btn:focus-visible {
    outline: 2px solid var(--bspc-text-primary);
    outline-offset: 2px;
}

.bresciapc-loader {
	display: none;
	margin: 20px auto;
	width: 30px; height: 30px;
}
.bresciapc-loader::after {
	content: " "; display: block; width: 30px; height: 30px;
	border-radius: 50%; border: 3px solid var(--bspc-border-dark);
	border-color: var(--bspc-border-dark) transparent var(--bspc-border-dark) transparent;
	animation: bspc-spin 1.2s linear infinite;
}
@keyframes bspc-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.load-more-container.loading .bresciapc-loader { display: block; }
.load-more-container.loading .load-more-btn { display: none; }

.no-more-products-message {
	color: var(--bspc-text-secondary);
	margin: 30px 0; text-align: center; font-style: italic;
}


/*--------------------------------------------------------------
# 4. UTILITY WOOCOMMERCE / DIVI (Overrides)
--------------------------------------------------------------*/

/* Stile H1 Gradiente */
h1.entry-title,
.product_title, /* Titolo prodotto singolo */
.bspc-archive-title {
	background: linear-gradient(130deg, #ff2a91, #2295d8 60%, #161f29);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	text-fill-color: transparent;
	font-weight: bold;
	display: inline-block;
	padding-bottom: 0.1em;
}

/* Rimozione Sidebar e Allargamento Contenuto */
.woocommerce-page #left-area, .single-product #left-area,
.tax-product_cat #left-area, .tax-product_tag #left-area,
.post-type-archive-product #left-area,
.et_right_sidebar #left-area, .et_left_sidebar #left-area {
	width: 100% !important; float: none !important;
	padding-right: 0 !important; padding-left: 0 !important;
	margin-right: 0 !important; margin-left: 0 !important;
}
.woocommerce-page #sidebar, .single-product #sidebar,
.tax-product_cat #sidebar, .tax-product_tag #sidebar,
.post-type-archive-product #sidebar,
.et_right_sidebar #sidebar, .et_left_sidebar #sidebar {
	display: none !important;
}
.woocommerce-page #content-area::after { content: ""; display: block; clear: both; }
.et_right_sidebar #main-content .container:before,
.et_left_sidebar #main-content .container:before {
	display: none !important;
}
@media (min-width: 981px) {
	#left-area {
		float: none !important; padding: 0 !important;
		width: 100% !important; margin: 0 !important;
	}
}

/* Nascondere Elementi Standard WooCommerce (se non gestiti da PHP) */
/* Loop Prodotti Archivi (già gestito da content-product.php custom) */
/* .body.woocommerce ul.products li.product .button, ... { display: none !important; } */

/* Singolo Prodotto */
.single-product div.product form.cart, /* Nasconde form AddToCart standard */
.woocommerce-page div.product form.cart {
	display: none !important;
}
.single-product div.product p.price, /* Nasconde prezzo standard */
.single-product div.product span.price {
	display: none !important;
}
.single-product .woocommerce-tabs ul.tabs { display: none !important; } /* Nasconde tab standard */
.single-product .related.products { display: none !important; } /* Nasconde correlati standard */


/*--------------------------------------------------------------
# 5. STILI PAGINA PRODOTTO SINGOLO (Overrides specifici per summary, meta, etc.)
--------------------------------------------------------------*/
.single-product div.product .summary {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 auto clamp(30px, 5vh, 40px) !important;
}
.single-product div.product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 auto !important;
	clear: both;
    max-width: 600px;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex; justify-content: center; gap: 10px;
	list-style: none; padding: 0; margin-top: 15px;
}

.single-product .product_title {
	/* Stile gradiente già applicato */
	position: relative; left: auto; top: auto;
	font-size: clamp(1.8rem, 5vw, 2.5rem) !important;
	margin: 0 auto 0.8em !important;
	text-align: center !important; font-weight: bold !important;
	line-height: 1.3 !important; padding: 0 !important;
}

.single-product div.product .woocommerce-product-details__short-description {
	text-align: center !important;
	font-size: clamp(1rem, 2.5vw, 1.15rem) !important;
	color: var(--bspc-text-secondary) !important;
	font-weight: 400 !important; line-height: 1.6 !important;
	max-width: 700px !important;
	margin: 0 auto clamp(20px, 4vh, 35px) auto !important;
	display: block !important; font-style: normal !important;
}
.single-product div.product .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0 !important;
}

.single-product .product_meta {
	font-size: 13px; color: var(--bspc-text-secondary);
	border-top: 1px solid var(--bspc-border-light);
	padding-top: clamp(15px, 2vh, 20px);
	margin-top: clamp(25px, 4vh, 40px);
	text-align: center; clear: both; line-height: 1.6;
}
.single-product .product_meta > span { display: block; margin-bottom: 8px; }
.single-product .product_meta > span:last-child { margin-bottom: 0; }
.single-product .product_meta .posted_in > span:first-child,
.single-product .product_meta .tagged_as > span:first-child,
.single-product .product_meta .sku_wrapper {
	font-weight: 500; color: var(--bspc-text-primary); margin-right: 5px;
}
.single-product .product_meta .sku {
	font-family: monospace; background-color: var(--bspc-bg-light);
	padding: 2px 5px; border-radius: 4px;
}
.single-product .product_meta a {
	color: var(--bspc-text-secondary); text-decoration: none;
	border-bottom: 1px dotted var(--bspc-border-medium);
	transition: color 0.2s ease, border-color 0.2s ease;
}
.single-product .product_meta a:hover,
.single-product .product_meta a:focus {
	color: var(--bspc-blue-primary); border-bottom-color: var(--bspc-blue-primary);
	outline: none;
}
.single-product .product_meta a:focus-visible { border-bottom-style: solid; }

.bspc-product-cta-container {
	margin-top: clamp(20px, 3vh, 30px);
	margin-bottom: clamp(20px, 3vh, 30px);
	text-align: center;
}
.bspc-cta-button { /* Stili base bottone (ereditati o sovrascritti) */
	font-size: 1.05rem !important; padding: 12px 25px !important;
	border-radius: var(--bspc-radius-medium) !important;
}
/* Stili specifici per CTA Apple Style sono in product.php (wp_add_inline_style) o potrebbero essere spostati qui */

/*--------------------------------------------------------------
# FINE DEL FILE STYLE.CSS
--------------------------------------------------------------*/