/* STILI GENERALI PER ENTRAMBI I TIPI DI BOX */
.wcpb-product-item.disabled {
    opacity: 0.5;
    pointer-events: none;
}
.wcpb-product-stock.out-of-stock {
    color: #a00;
    font-weight: bold;
}
.wcpb-add-to-cart-container {
    margin-top: 20px;
}
.wcpb-selection-message {
    color: #053041;
    margin-bottom: 10px;
    font-weight: 700;
    font-size: 18px;
}

/* STILI PER LA BOX PRE-FATTA */
#wcpb-products-container.pre-made {
    grid-template-columns: 1fr; /* Una colonna per la lista */
}

.wcpb-product-item.pre-made-item {
    display: flex;
    align-items: center;
    text-align: left;
    border: none;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 10px;
}

.wcpb-product-item.pre-made-item .wcpb-product-image {
    margin-right: 15px;
    flex-shrink: 0;
}

.wcpb-product-item.pre-made-item .wcpb-product-image img {
    width: 60px; /* Dimensione fissa per l'immagine */
    height: 60px;
    object-fit: cover;
    margin-bottom: 0;
}

/* 
 *  NUOVI STILI PER LA BOX A SCELTA UTENTE (user-choice)
 */

/* Rende il contenitore una lista a colonna singola */
#wcpb-products-container.user-choice {
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* -- NUOVE REGOLE -- */
    max-height: 400px; /* Imposta l'altezza massima. Puoi cambiare questo valore */
    overflow-y: auto;  /* Mostra la scrollbar verticale solo se necessario */
    padding-right: 10px; /* Aggiunge un po' di spazio per non sovrapporre la scrollbar al testo */
}

/* Stile per ogni riga/prodotto, usando flexbox per allineare gli elementi */
.wcpb-product-item.user-choice-item {
    display: flex;
    align-items: center;
    text-align: left;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

/* Stile per la CHECKBOX più grande */
.wcpb-product-item.user-choice-item input[type="checkbox"] {
    /* Dimensioni */
    width: 1.5em;
    height: 1.5em;
    /* Spaziatura */
    margin-right: 15px;
    /* Aspetto */
    cursor: pointer;
    flex-shrink: 0; /* Impedisce che si rimpicciolisca */
}

/* Stile per l'immagine, simile alla box pre-fatta */
.wcpb-product-item.user-choice-item .wcpb-product-image {
    margin-right: 15px;
    flex-shrink: 0;
}
.wcpb-product-item.user-choice-item .wcpb-product-image img {
    width: 75px;
    height: 75px;
    object-fit: cover;
    margin-bottom: 0;
    display: block;
}

/* Stile per i dettagli del prodotto */
.wcpb-product-item.user-choice-item .wcpb-product-details {
    display: flex;
    flex-direction: column;
}

/* 
 *  NUOVI STILI PER IL TITOLO DELLA CATEGORIA NELLA BOX
 */
.wcpb-category-title {
    font-size: 1.1em;
    font-weight: bold;
    color: #444;
    margin-top: 25px; /* Spazio sopra il titolo */
    margin-bottom: 10px; /* Spazio tra titolo e prodotti */
    padding-bottom: 8px; /* Spazio sotto il testo del titolo */
    border-bottom: 2px solid #f0f0f0; /* Linea di separazione */
    width: 100%;
}

/* Rimuove il margine superiore extra per il primo titolo della lista */
#wcpb-products-container.user-choice .wcpb-category-title:first-child {
    margin-top: 5px;
}




/* ==================================
   BOX USER CHOICE - RAGGRUPPAMENTO CATEGORIE
   ================================== */

/* Contenitore principale categorie */
.wcpb-category-group {
	margin-bottom: 40px;
}

/* Etichetta categoria */
.wcpb-category-label {
	background-color: #053041;
	color: #ffffff;
	padding: 12px 20px;
	margin: 0 0 20px 0;
	font-size: 20px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-family: 'Lora', serif;
}

/* Contenitore prodotti per categoria */
.wcpb-category-products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 20px;
	margin-bottom: 20px;
}

/* Responsive Design */
@media (max-width: 768px) {
	.wcpb-category-label {
		font-size: 18px;
		padding: 10px 15px;
	}
	
	.wcpb-category-products {
		grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
		gap: 15px;
	}
}

@media (max-width: 600px) {
	.wcpb-category-label {
		font-size: 16px;
	}
	
	.wcpb-category-products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.wcpb-category-products {
		grid-template-columns: 1fr;
	}
}

.wcpb-box-price {
    margin: 0 10px 0 0;
}

#scegli_prodotto {
    font-size: 30px;
}

/* ==================================
   RIEPILOGO PREZZO SCRIGNO
   ================================== */
.wcpb-price-summary {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 5px;
    padding: 20px;
    margin: 30px 0;
    width: 100%;
    max-width: 497px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

.wcpb-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    font-size: 16px;
}

.wcpb-summary-row .wcpb-summary-label {
    color: #555;
}

.wcpb-summary-row span[class*="-price"] {
    font-weight: 600;
    color: #333;
}

.wcpb-summary-divider {
    border: 0;
    border-top: 1px dashed #ccc;
    margin: 15px 0;
}

.wcpb-summary-total {
    font-size: 22px;
    font-weight: bold;
    margin-top: 15px;
    color: #053041; /* Colore primario che usi per le categorie */
}

.wcpb-summary-total .wcpb-total-price {
    color: #053041;
}


/* ==================================
   OPZIONI COLORE BOX
   ================================== */
.wcpb-color-selector {
    margin-bottom: 25px;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

.wcpb-color-selector h4 {
    margin-bottom: 15px;
    font-size: 18px;
    color: #333;
}

.wcpb-color-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.wcpb-color-option input[type="radio"] {
    /* Nascondiamo il radio button di default */
    display: none;
}

.wcpb-color-option label {
    display: inline-block;
    padding: 8px 16px;
    border: 2px solid #ddd;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 600;
    color: #555;
    transition: all 0.2s ease-in-out;
}

.wcpb-color-option label:hover {
    border-color: #053041;
    color: #053041;
}

/* Stile per l'opzione selezionata */
.wcpb-color-option input[type="radio"]:checked + label {
    background-color: #053041;
    border-color: #053041;
    color: #ffffff!important;
}
