/**
 * Borgarello - pagine del negozio: categoria, filtri, scheda prodotto,
 * carrello, checkout, account.
 * Solo aspetto: i template e i moduli (pagamenti, carrello, filtri, recensioni,
 * lista desideri...) sono quelli di Classic, con gli stessi hook.
 * Usa i token definiti in borgarello.css (--bf-*).
 */

/* ---------- Superfici "vetro" al posto dei riquadri bianchi piatti ---------- */
.card,
.cart-grid-body > .card,
.cart-grid-right .card,
.cart-summary,
section.checkout-step,
.tabs,
#left-column .block-categories,
#search_filters,
#search_filters_brands,
#search_filters_suppliers,
.block-category,
#subcategories,
.page-my-account #content .links a span.link-item,
.page-content.card,
.js-cart .cart-container {
  background: rgba(255, 255, 255, 0.7);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  border: 1px solid var(--bf-line);
  border-radius: 14px;
  box-shadow: 0 10px 40px rgba(11, 14, 19, 0.05);
}
.cart-grid-body > .card, section.checkout-step { overflow: hidden; margin-bottom: 16px; }
#left-column .block-categories, #search_filters, #search_filters_brands, #search_filters_suppliers { margin-bottom: 20px; }
.cart-summary .card-block, .cart-summary .cart-detailed-totals { background: transparent; }

/* ---------- Pulsanti ---------- */
.btn-primary, .btn-primary:focus, .btn-primary:active {
  background: var(--bf-red); border-color: var(--bf-red); color: #fff;
  border-radius: 999px; font-family: var(--bf-font-body); font-weight: 700; letter-spacing: 0.03em;
}
.btn-primary:hover, .btn-primary:active:hover { background: #A9171D; border-color: #A9171D; color: #fff; }
.btn-primary.disabled, .btn-primary:disabled { background: var(--bf-red); border-color: var(--bf-red); opacity: 0.4; }
.btn-secondary, .btn-secondary:focus, .btn-tertiary {
  background: rgba(255, 255, 255, 0.7); color: var(--bf-ink);
  border: 1px solid rgba(11, 14, 19, 0.18); border-radius: 999px; box-shadow: none; font-weight: 600;
}
.btn-secondary:hover, .btn-tertiary:hover { background: #fff; color: var(--bf-ink); border-color: var(--bf-ink); }

/* Carrello nell'header */
#header .blockcart.active, .blockcart.active { background: var(--bf-ink); }
#header .blockcart.active a, #header .blockcart.active span, #header .blockcart.active i { color: #fff; }

/* ---------- Campi dei form ---------- */
.form-control, .custom-select {
  border-radius: 10px; border: 1px solid rgba(11, 14, 19, 0.16); background-color: rgba(255, 255, 255, 0.85);
}
.form-control:focus, .custom-select:focus {
  border-color: var(--bf-blue); box-shadow: 0 0 0 3px rgba(0, 128, 255, 0.15); outline: none;
}

/* ---------- Categoria e filtri (ps_facetedsearch) ---------- */
#search_filters .facet .facet-label { display: flex; align-items: center; gap: 10px; }
#search_filters .facet .facet-label a { white-space: normal; margin: 0; flex: 1 1 auto; font-size: 14.5px; }
#search_filters .facet .facet-title, #search_filters_wrapper .h6, .block-categories .h6 {
  font-family: var(--bf-font-head); font-weight: 700; color: var(--bf-ink);
}
.facet .magnitude { color: var(--bf-faint); }
.ui-slider .ui-slider-range, .ui-widget-header { background: var(--bf-red); }
.ui-slider .ui-slider-handle { border-color: var(--bf-red); }
.block-category h1, #js-product-list-header h1 { font-weight: 700; }
.pagination .current a, .pagination a.disabled { color: var(--bf-red); }
.pagination a { color: var(--bf-ink); }

/* ---------- Scheda prodotto ---------- */
.product-flags li.product-flag { border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; padding: 4px 12px; min-height: 0; }
.product-flags li.product-flag.new { background: var(--bf-red); }
.product-flags li.product-flag.discount,
.product-flags li.product-flag.discount-percentage,
.product-flags li.product-flag.discount-amount,
.product-flags li.product-flag.on-sale,
.discount-percentage, .discount-amount { background: var(--bf-red); color: #fff; border-radius: 999px; }
.current-price, .current-price span, .product-price, .price { color: var(--bf-red); font-weight: 700; }
.regular-price { color: var(--bf-faint); }
.product-images > li.thumb-container > .thumb.selected,
.product-images > li.thumb-container > .thumb:hover { border-color: var(--bf-blue); }
.images-container .product-cover img, .product-cover img { border-radius: 14px; }
.tabs .nav-tabs { border-bottom: 1px solid var(--bf-line); }
.tabs .nav-tabs .nav-link { color: var(--bf-muted); font-weight: 600; }
/* Nessun hover: rosso solo sulla scheda selezionata. Niente riquadro di focus. */
.tabs .nav-tabs .nav-link,
.tabs .nav-tabs .nav-link:hover,
.tabs .nav-tabs .nav-link:focus,
.tabs .nav-tabs .nav-link:focus-visible,
.tabs .nav-tabs .nav-link:active { color: var(--bf-muted) !important; background: transparent !important; border-color: transparent !important; border-bottom: 3px solid transparent !important; outline: 0 !important; box-shadow: none !important; }
.tabs .nav-tabs .nav-link.active,
.tabs .nav-tabs .nav-link.active:hover,
.tabs .nav-tabs .nav-link.active:focus,
.tabs .nav-tabs .nav-link.active:focus-visible { color: var(--bf-red) !important; border-bottom: 3px solid var(--bf-red) !important; }
.tabs { padding: 4px 8px; }
.product-additional-info .social-sharing li { box-shadow: none; }

/* ---------- Carrello ---------- */
.cart-grid-body .card-block h1 { font-weight: 700; }
.cart-item { border-color: var(--bf-line); }
.cart-summary-line .value, .cart-total .value { font-weight: 700; }
.cart-total { font-family: var(--bf-font-head); }
.cart-detailed-actions .btn { width: 100%; }
.label, .cart-grid-body a.label { color: var(--bf-ink); }

/* ---------- Checkout e pagamento ---------- */
section.checkout-step .step-title { font-weight: 700; }
section.checkout-step .step-number { background: var(--bf-ink); color: #fff; }
section.checkout-step.-current .step-number { background: var(--bf-red); }
section.checkout-step .step-edit { color: var(--bf-blue-dark); }
.payment-options .payment-option {
  background: rgba(255, 255, 255, 0.8); border: 1px solid var(--bf-line); border-radius: 12px;
  padding: 12px 16px; margin-bottom: 10px;
}
.payment-options .payment-option:hover { border-color: rgba(11, 14, 19, 0.25); }
.js-additional-information, .js-payment-option-form { padding-left: 8px; }
.custom-radio input[type="radio"]:checked + span { background-color: var(--bf-red); border-color: var(--bf-red); }
.custom-checkbox input[type="checkbox"]:checked + span .checkbox-checked { color: var(--bf-red); }
body#checkout #footer, body#checkout footer.js-footer, body#checkout #footer .footer-container {
  background: transparent; box-shadow: none; border: 0;
}
body#checkout #header { background: rgba(250, 250, 251, 0.8); }

/* ---------- Regole piu' specifiche (Classic e moduli colorano con selettori forti) ---------- */
body#product .product-images > li.thumb-container .thumb.selected,
body#product .product-images > li.thumb-container .thumb:hover { border: 1.5px solid var(--bf-blue); }
body#product .product-prices .discount,
body#product .product-prices .discount-percentage,
body#product .product-prices .discount-amount { background: var(--bf-red); color: #fff; border-radius: 999px; }
body#checkout section.checkout-step { background: rgba(255, 255, 255, 0.7); }
body#checkout section.checkout-step .step-number { background: var(--bf-ink); color: #fff; }
body#checkout section.checkout-step.-current .step-number,
body#checkout section.checkout-step.-reachable.-current .step-number { background: var(--bf-red); color: #fff; }
body#checkout section.checkout-step.-current + .checkout-step .step-title { border-top-color: var(--bf-line); }
.btn.btn-comment, .btn.btn-comment-big {
  background: rgba(255, 255, 255, 0.7); color: var(--bf-ink); border: 1px solid rgba(11, 14, 19, 0.18);
  border-radius: 999px; box-shadow: none; font-weight: 600;
}
.btn.btn-comment:hover, .btn.btn-comment-big:hover { background: #fff; border-color: var(--bf-ink); color: var(--bf-ink); }
.btn.btn-comment.confirm-button { background: var(--bf-red); border-color: var(--bf-red); color: #fff; }
#empty-product-comment {
  background: rgba(255, 255, 255, 0.7); border: 1px solid var(--bf-line); border-radius: 14px; padding: 16px;
}

/* ---------- Account ---------- */
.page-my-account #content .links a span.link-item { color: var(--bf-ink); height: 100%; }
.page-my-account #content .links a:hover span.link-item { border-color: rgba(11, 14, 19, 0.25); }
.page-my-account #content .links a i { color: var(--bf-red); }

/* ---------- Spazio sotto la barra nelle pagine interne e nella home senza hero ---------- */
body:not(#index) #wrapper { padding-top: 24px; }
.bf-home > .bf-value-props:first-child { margin-top: 24px; }

/* ---------- Sotto-categorie: tessere in stile vetro ---------- */
/* Le immagini delle categorie possono avere proporzioni qualsiasi (es. 825x180 del tema precedente):
   la tessera ha altezza fissa e l'immagine vi entra intera, senza tagli né deformazioni. */
#subcategories { padding: 24px; margin-bottom: 24px; border-top: 1px solid var(--bf-line); }
#subcategories .subcategory-heading { margin-bottom: 18px; font-family: var(--bf-font-head); font-weight: 600; }
#subcategories ul { justify-content: flex-start; margin: 0 -8px; }
#subcategories ul li { width: calc(100% / 4 - 16px); min-width: 170px; margin: 8px; }
/* Ogni sotto-categoria e' UNA tessera cliccabile con il nome dentro. Se c'e' un'immagine sta sopra il nome,
   dentro la stessa tessera; se non c'e' (immagine vuota) il riquadro vuoto non viene mostrato. */
#subcategories ul li {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 92px; padding: 14px 12px; text-align: center;
  border: 1px solid var(--bf-line); border-radius: 12px; background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
#subcategories ul li .subcategory-image { padding: 0 0 8px; }
#subcategories ul li .subcategory-image:not(:has(img)) { display: none; }
#subcategories ul li .subcategory-image a.img,
#subcategories ul li:hover .subcategory-image a.img { display: flex; align-items: center; justify-content: center; height: 64px; padding: 0; border: 0; background: transparent; box-shadow: none; }
#subcategories ul li .subcategory-image a.img img { width: 100%; height: 100%; max-width: 100%; object-fit: contain; }
#subcategories ul li h5 { margin: 0; }
#subcategories ul li .subcategory-name { font-size: 13px; font-weight: 700; letter-spacing: 0.02em; color: var(--bf-ink); transition: text-shadow .2s ease; }
/* tutta la tessera e' cliccabile (il link del nome si estende su tutto il riquadro) */
#subcategories ul li .subcategory-name::after { content: ""; position: absolute; inset: 0; border-radius: 12px; }
/* al passaggio del mouse: nessun riquadro, solo un alone azzurro tenue attorno al nome */
#subcategories ul li:hover .subcategory-name { color: var(--bf-ink); text-shadow: 0 0 12px rgba(0, 128, 255, 0.45), 0 0 3px rgba(0, 128, 255, 0.3); }
.block-category { padding: 20px 24px; }
@media (max-width: 575px) {
  #subcategories { padding: 18px; }
  #subcategories ul li { width: calc(50% - 16px); min-width: 0; }
}

/* ---------- Colonna sinistra vuota ---------- */
/* Se nella colonna sinistra non c'e' nessun blocco (niente albero categorie, niente filtri), sparisce
   e il contenuto usa tutta la larghezza del contenitore, centrato. Se in futuro si rimettono filtri o
   categorie la colonna ricompare da sola. */
#left-column:not(:has(.block-categories, .block-category-tree, #search_filters, #search_filters_brands, #search_filters_suppliers, .block, .links)) { display: none; }
#left-column:not(:has(.block-categories, .block-category-tree, #search_filters, #search_filters_brands, #search_filters_suppliers, .block, .links)) ~ #content-wrapper {
  flex: 0 0 100%; max-width: 100%; width: 100%;
}

/* ---------- Foto prodotto mai schiacciate ---------- */
/* PrestaShop scrive width/height dell'immagine dal tipo configurato (es. 98x98, 800x800) ma i file del
   tema precedente hanno altre proporzioni (es. 98x145): senza queste regole venivano compressi nel quadrato. */
.product-cover img, .js-qv-product-cover { width: 100%; height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; }
.product-images img, .js-thumb { object-fit: contain !important; background: #fff; }
.modal-body .product-cover-modal, #product-modal img, .quickview img { height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; }
.cart-item img, .product-line-grid-left img, #blockcart-modal img, .product-image img { height: auto !important; object-fit: contain !important; }

/* ---------- Azzurro del tema (#0080ff) al posto del ciano di Classic ---------- */
/* hover dei link nel contenuto (Home, Torna al tuo account, titoli...): escluse le regole proprie di pulsanti, link del tema e sotto-categorie */
#wrapper a:not(.btn):not(.bf-btn):not(.bf-link):not(.bf-cart-link):not(.thumbnail):not(.subcategory-name):hover,
#wrapper .page-footer a:hover, .account-list a:hover, .footer-container li a:hover { color: var(--bf-blue); }
/* tessere della pagina "Il tuo account": al passaggio del mouse l'icona resta rossa (Classic la farebbe ciano) */
.page-my-account #content .links a:hover i { color: var(--bf-red); }
/* "Scopri la nostra storia": al passaggio cambia solo la scritta */
.bf-btn--outline:hover { color: var(--bf-blue); opacity: 1; }
/* "Visualizza" (anteprima rapida) sulle card */
.product-miniature .highlighted-informations .quick-view:hover, .product-miniature .highlighted-informations .quick-view:hover i { color: var(--bf-blue); }
/* "Scegli file" nei moduli (es. Contattaci) */
.group-span-filestyle .btn-default, .group-span-filestyle .btn-default:focus { background: var(--bf-blue); border-color: var(--bf-blue); color: #fff; }
.group-span-filestyle .btn-default:hover, .group-span-filestyle .btn-default:active { background: var(--bf-blue-dark); border-color: var(--bf-blue-dark); color: #fff; }
/* "Disconnessione" nelle pagine dell'account: pillola azzurra con scritta bianca */
#main a[href*="mylogout"] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 28px; border-radius: 999px;
  background: var(--bf-blue); color: #fff; font-weight: 700; letter-spacing: 0.02em; text-decoration: none; transition: background .15s ease;
}
#main a[href*="mylogout"]:hover, #wrapper #main a[href*="mylogout"]:hover { background: var(--bf-blue-dark); color: #fff; }

/* ---------- Campo password: un solo riquadro sottile + occhio al posto di "Mostra/Visualizza" ---------- */
/* Classic disegna 3px di ciano attorno a tutto il gruppo in focus e un blocco grigio con la scritta: qui un unico riquadro
   (bordo sottile, azzurro in focus, come gli altri campi) e il pulsante e' solo l'icona dell'occhio. */
.input-group.focus, .input-group.js-parent-focus:focus-within { outline: none; }
.input-group.js-parent-focus:has([data-action="show-password"]) {
  align-items: center; border: 1px solid rgba(11, 14, 19, 0.16); border-radius: 10px; background: rgba(255, 255, 255, 0.85);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.input-group.js-parent-focus.focus:has([data-action="show-password"]) { border-color: var(--bf-blue); box-shadow: 0 0 0 3px rgba(0, 128, 255, 0.15); }
.input-group.js-parent-focus:has([data-action="show-password"]) .form-control,
.input-group.js-parent-focus:has([data-action="show-password"]) .form-control:focus {
  border: 0; border-radius: 10px 0 0 10px; background: transparent; box-shadow: none; outline: none;
}
.input-group.js-parent-focus .input-group-btn { width: auto; flex: 0 0 auto; }
.input-group [data-action="show-password"] {
  position: relative !important; display: block !important; width: 40px !important; height: 36px !important; padding: 0 !important; border: 0 !important; border-radius: 0 10px 10px 0 !important;
  background: transparent !important; color: var(--bf-muted) !important; font-size: 0 !important; line-height: 0 !important; text-transform: none !important; cursor: pointer; box-shadow: none !important;
}
.input-group [data-action="show-password"]::before {
  content: ''; position: absolute; inset: 0; margin: auto; width: 22px; height: 22px; background: currentColor;
  -webkit-mask: var(--bf-eye) center / contain no-repeat; mask: var(--bf-eye) center / contain no-repeat;
  --bf-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z'/%3E%3C/svg%3E");
}
/* password visibile (il campo diventa di testo): occhio barrato */
.input-group:has(> input[type="text"]) [data-action="show-password"]::before {
  --bf-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z'/%3E%3C/svg%3E");
}
.input-group [data-action="show-password"]:hover, .input-group [data-action="show-password"]:focus-visible { color: var(--bf-blue) !important; background: transparent !important; }
.input-group [data-action="show-password"]:focus-visible { outline: 2px solid var(--bf-blue) !important; outline-offset: -5px; border-radius: 8px !important; }

/* Contattaci: la sezione del modulo ha di suo sfondo bianco e margine (Classic). Dentro la card
   creava un rettangolo bianco dietro la barra verde "messaggio inviato": la rendo trasparente. */
.contact-form {
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.contact-form .alert { margin-bottom: 0; }

/* Barre di avviso (messaggio inviato, nessuna nota di credito...): stesso carattere dei pulsanti
   ("Dettagli", "Torna alla home"); quella informativa ha l'azzurro della pillola "Disconnessione". */
.alert {
  font-family: var(--bf-font-body); font-weight: 700; font-size: 14.5px; letter-spacing: 0.02em;
}
.alert-info { background: var(--bf-blue); border-color: var(--bf-blue); color: #fff; }
.alert-info a { color: #fff; text-decoration: underline; }

/* Testata categoria: niente foto nel riquadro con il testo (immagine di copertina a destra ed
   eventuali immagini dentro la descrizione). Le miniature delle sotto-categorie restano. */
.block-category .category-cover,
.block-category #category-description img { display: none !important; }

/* Cuoricino "lista desideri" sulle card: nascosto per ora (per riattivarlo basta togliere questa regola) */
.bf-product .wishlist-button-add { display: none !important; }

/* Pagine CMS (es. "Per i professionisti del settore"): il link "Registrati subito!" e' una pillola azzurra con testo bianco in grassetto */
.page-cms #content a[href*="create_account"] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 8px; padding: 0 28px;
  border-radius: 999px; background: var(--bf-blue); color: #fff; font-weight: 700; letter-spacing: 0.02em; text-decoration: none;
  transition: background .15s ease;
}
.page-cms #content a[href*="create_account"]:hover { background: var(--bf-blue-dark); color: #fff; text-decoration: none; }

/* Contattaci, dopo l'invio: resta solo la barra verde (niente scheda bianca attorno), centrata */
.page-contact .page-content.card:has(.alert-success) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; backdrop-filter: none !important;
  padding: 0 !important;
}
.page-contact .page-content.card:has(.alert-success) .alert-success {
  max-width: 760px; margin: 24px auto; padding: 18px 24px; text-align: center; float: none; width: auto;
}

/* Stato degli ordini: pillola con il carattere dei dati tecnici (JetBrains Mono) e colore per stato.
   Il colore dello stato impostato nel back office viene ignorato. */
.page-history .label-pill, .page-order-detail .label-pill {
  display: inline-block; padding: 5px 12px; border-radius: 999px; font-family: var(--bf-font-mono);
  font-size: 11.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.3; white-space: nowrap;
}
.page-history .label-pill[data-bf-state="red"],   .page-order-detail .label-pill[data-bf-state="red"]   { background: var(--bf-red) !important; color: #fff !important; }
.page-history .label-pill[data-bf-state="blue"],  .page-order-detail .label-pill[data-bf-state="blue"]  { background: var(--bf-blue) !important; color: #fff !important; }
.page-history .label-pill[data-bf-state="amber"], .page-order-detail .label-pill[data-bf-state="amber"] { background: #F5B301 !important; color: var(--bf-ink) !important; }
.page-history .label-pill[data-bf-state="green"], .page-order-detail .label-pill[data-bf-state="green"] { background: #1E8E5A !important; color: #fff !important; }

/* Pagina prodotto: semaforo di disponibilita' (niente quantita') */
.product-quantities .bf-stock { margin: 8px 0; }
.product-quantities .bf-stock__label { font-size: 14px; color: var(--bf-ink); }
.product-quantities .bf-stock__dot { width: 10px; height: 10px; }
.bf-stock--out .bf-stock__dot { background: var(--bf-red); }

/* Header: "Disconnessione" come pillola azzurra con testo bianco in grassetto */
#header .bf-nav2 .user-info a.bf-logout {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: 38px; padding: 0 20px;
  border-radius: 999px; background: var(--bf-blue); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: 0.02em;
  text-decoration: none; transition: background .15s ease;
}
#header .bf-nav2 .user-info a.bf-logout:hover { background: var(--bf-blue-dark); color: #fff; }

/* Barre informative (es. "Non hai ricevuto alcuna nota di credito"): centrate dentro il riquadro, testo centrato */
#content .alert-info {
  max-width: 760px; margin: 16px auto; padding: 16px 24px; text-align: center; border-radius: 6px;
}

/* Popup foto prodotto: su desktop deve stare tutto in una schermata (niente scroll); su telefono resta scrollabile */
@media (min-width: 768px) {
  #product-modal .modal-dialog { width: max-content; max-width: 96vw; margin: 2vh auto; }
  #product-modal .modal-content { max-height: 96vh; overflow: hidden; }
  #product-modal .modal-content .modal-body { flex-direction: row; align-items: flex-start; gap: 16px; margin-left: 0; padding: 0; max-height: 96vh; overflow: hidden; }
  #product-modal .modal-content .modal-body figure { margin: 0; }
  #product-modal .modal-content .modal-body .product-cover-modal { width: auto; max-width: calc(96vw - 230px); max-height: 96vh; }
  #product-modal .modal-content .modal-body .image-caption { display: none; }
  #product-modal .modal-content .modal-body .mask { flex: 0 0 auto; margin-top: 0; max-height: 96vh; }
  #product-modal .modal-content .modal-body .product-images { margin-left: 0; }
  #product-modal .modal-content .modal-body .product-images img { width: auto; max-width: 9.25rem; max-height: 18vh; }
}

/* ---------- Fix: riquadro indirizzo selezionato (checkout) = azzurro del tema ---------- */
body#checkout section.checkout-step .address-item.selected,
body#checkout section.checkout-step .address-item:hover { border: 1.5px solid var(--bf-blue) !important; background: #fff; }
body#checkout section.checkout-step .address-item { border-radius: 14px; }
body#checkout .custom-radio input[type=radio]:checked + span { background-color: var(--bf-blue); }

/* ---------- Fix: pulsanti primari sempre rossi, anche in hover/focus/active ---------- */
body .btn.btn-primary, body .btn.btn-primary:focus, body .btn.btn-primary.focus,
body .btn.btn-primary:active, body .btn.btn-primary.active,
body .product-actions .add-to-cart, body .product-actions .add-to-cart:focus, body .product-actions .add-to-cart:active {
  background: var(--bf-red) !important; border-color: var(--bf-red) !important; color: #fff !important; box-shadow: none;
}
body .btn.btn-primary:hover, body .btn.btn-primary:active:hover, body .btn.btn-primary:active:focus,
body .product-actions .add-to-cart:hover, body .product-actions .add-to-cart:active:hover {
  background: var(--bf-red) !important; border-color: var(--bf-red) !important; color: #fff !important; filter: brightness(.92);
}
body .btn.btn-primary.disabled, body .btn.btn-primary:disabled,
body .btn.btn-primary.disabled:hover, body .btn.btn-primary:disabled:hover { background: var(--bf-red) !important; opacity: .4; filter: none; }

/* ---------- Pagina prodotto: testi neri e pieni (niente grigio/opaco), il grassetto resta grassetto ---------- */
body#product #content-wrapper, body#product .product-information, body#product .product-description,
body#product .product-description-short, body#product .tab-content, body#product .tab-pane,
body#product .product-features, body#product .product-features dt, body#product .product-features dd,
body#product .data-sheet, body#product .data-sheet .name, body#product .data-sheet .value,
body#product .product-reference, body#product .product-quantities, body#product .product-availability,
body#product .product-discounts, body#product .product-prices, body#product .tax-shipping-delivery-label,
body#product .product-variants .control-label, body#product .product-add-to-cart .control-label,
body#product .product-manufacturer, body#product .product-condition, body#product .product-pack,
body#product .breadcrumb, body#product .breadcrumb a, body#product .breadcrumb li, body#product .breadcrumb li::after,
body#product .product-cover + *, body#product .product-comment-list-item, body#product .tabs .nav-tabs .nav-link:not(.active) {
  color: var(--bf-ink) !important; opacity: 1 !important;
}
body#product .tab-content p, body#product .tab-content li, body#product .tab-content span,
body#product .product-description-short p, body#product .product-description p { color: var(--bf-ink) !important; }
body#product strong, body#product b, body#product .label, body#product .product-features dt,
body#product .data-sheet .name, body#product .product-reference span { font-weight: 700; }
body#product .data-sheet .name, body#product .product-features dt { background: transparent; }
body#product .text-muted, body#product .form-control-comment, body#product small { color: var(--bf-ink) !important; }
body#product .form-control, body#product select, body#product option, body#product label, body#product .product-reference label,
body#product #product-description-short, body#product .product-information p, body#product .product-information li,
body#product .product-description p, body#product #description p, body#product .criterion-rating, body#product .product-actions label { color: var(--bf-ink) !important; }
body#product .product-discount .regular-price { color: var(--bf-ink) !important; opacity: .75; }
body#product .product-reference label, body#product .product-actions .control-label { font-weight: 700; }

/* Prezzo in pagina prodotto: grande e rosso */
body#product .product-prices .current-price, body#product .product-prices .current-price-value,
body#product .product-prices .product-price, body#product .product-prices .price {
  color: var(--bf-red) !important; font-size: 40px; line-height: 1.1; font-weight: 700; font-family: var(--bf-font-head);
}
body#product .product-prices .product-discount .regular-price { font-size: 20px; }
body#product .product-prices .discount { font-size: 15px; line-height: 1.4; font-weight: 700; padding: 4px 12px; vertical-align: middle; margin-left: 10px; color: #fff !important; }
@media (max-width: 767px) {
  body#product .product-prices .current-price, body#product .product-prices .current-price-value,
  body#product .product-prices .product-price, body#product .product-prices .price { font-size: 32px; }
}

/* Chiusura (X) del popup foto prodotto: fascia libera sopra le foto, a destra, senza coprire nulla */
#product-modal .modal-dialog { position: relative; padding-top: 56px; }
.bf-modal-close {
  position: absolute; top: 4px; right: 0; z-index: 5; width: 44px; height: 44px; padding: 0;
  display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%;
  background: #fff; color: var(--bf-ink); font-size: 30px; line-height: 1; cursor: pointer;
  box-shadow: 0 4px 18px rgba(11, 14, 19, .35); transition: background .15s ease, color .15s ease;
}
.bf-modal-close:hover, .bf-modal-close:focus { background: var(--bf-ink); color: #fff; outline: 0; }
@media (min-width: 768px) {
  #product-modal .modal-dialog { margin-top: 1vh; margin-bottom: 1vh; }
  #product-modal .modal-content, #product-modal .modal-content .modal-body, #product-modal .modal-content .modal-body .mask { max-height: calc(98vh - 60px); }
  #product-modal .modal-content .modal-body .product-cover-modal { max-height: calc(98vh - 60px); }
}

/* Allegati (scheda tecnica): solo pulsante rosso + peso sotto */
.bf-datasheets { padding: 8px 0; }
.bf-datasheet { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 0 24px 12px 0; }
.bf-datasheet__btn { display: inline-block; padding: .75rem 1.75rem; }
.bf-datasheet__size { font-size: 13px; color: var(--bf-ink); padding-left: 6px; }

/* Nessuna pillola "non disponibile" sulla foto del prodotto (pagina prodotto e finestra di anteprima rapida) */
.product-flags li.product-flag.out_of_stock, li.product-flag.out_of_stock { display: none !important; }

/* Finestra di anteprima rapida: stessi testi neri e pieni della pagina prodotto */
.quickview .modal-content, .quickview .product-information, .quickview .product-description-short,
.quickview .product-description, .quickview #product-description-short, .quickview .product-features,
.quickview .product-features dt, .quickview .product-features dd, .quickview .product-reference,
.quickview .product-quantities, .quickview .product-availability, .quickview #product-availability,
.quickview .product-discounts, .quickview .tax-shipping-delivery-label, .quickview .product-variants .control-label,
.quickview .product-add-to-cart .control-label, .quickview .product-manufacturer, .quickview .product-condition,
.quickview label, .quickview small, .quickview .text-muted, .quickview .form-control-comment,
.quickview .product-description-short p, .quickview .product-description-short li, .quickview .product-description-short span,
.quickview .product-information p, .quickview .product-information li, .quickview .product-information span:not(.discount):not(.price):not(.current-price-value) {
  color: var(--bf-ink) !important; opacity: 1 !important;
}
.quickview .product-prices .current-price, .quickview .product-prices .current-price-value, .quickview .product-prices .price { color: var(--bf-red) !important; }
.quickview .product-discount .regular-price { color: var(--bf-ink) !important; opacity: .75 !important; }
.quickview .btn.btn-primary, .quickview .btn.btn-primary span, .quickview .add-to-cart { color: #fff !important; }
.quickview .product-features dt, .quickview strong, .quickview b, .quickview label, .quickview .control-label { font-weight: 700; }
.quickview .product-description-short strong, .quickview .product-description-short b { font-weight: 700; }
.quickview .modal-body p, .quickview .modal-body li, .quickview .modal-body dd { color: var(--bf-ink) !important; }

/* Contorno delle miniature foto (pagina prodotto, anteprima rapida, popup foto): azzurro del tema, 1,5 px */
.product-images > li.thumb-container > .thumb,
.product-images > li.thumb-container .thumb { border: 1.5px solid transparent !important; }
.product-images > li.thumb-container > .thumb.selected,
.product-images > li.thumb-container .thumb.selected,
.product-images > li.thumb-container > .thumb:hover,
.product-images > li.thumb-container .thumb:hover,
.quickview .product-images > li.thumb-container .thumb.selected,
.quickview .product-images > li.thumb-container .thumb:hover,
#product-modal .product-images > li.thumb-container .thumb.selected,
#product-modal .product-images > li.thumb-container .thumb:hover,
#product-modal .modal-content .modal-body .product-images img:hover { border: 1.5px solid var(--bf-blue) !important; }

/* Finestra "prodotto aggiunto al carrello": nome prodotto nell'azzurro del tema (era il ciano di Classic); i pulsanti restano com'erano */
#blockcart-modal .product-name, #blockcart-modal a.product-name, #blockcart-modal .modal-body a:not(.btn) { color: var(--bf-blue) !important; }
#blockcart-modal .product-name:hover, #blockcart-modal .modal-body a:not(.btn):hover { color: var(--bf-blue-dark) !important; }

/* Campi di testo selezionati (es. email della newsletter): bordo azzurro del tema, 1,5 px (era il ciano di Classic, 3 px) */
input[type="text"]:focus, input[type="email"]:focus, input[type="search"]:focus, input[type="tel"]:focus,
input[type="password"]:focus, input[type="number"]:focus, textarea:focus, select:focus,
.form-control:focus, .bf-input:focus, .block_newsletter input:focus, .search-widget form input[type="text"]:focus {
  border: 1.5px solid var(--bf-blue) !important; outline: 0 !important; box-shadow: none !important;
}
.input-group.focus, .input-group.js-parent-focus.focus { outline: 0 !important; border-color: var(--bf-blue) !important; }

/* Header: icona dell'omino azzurro per accesso/profilo */
#header .bf-nav2 .user-info a.bf-user-icon { display: inline-flex !important; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; background: transparent; transition: transform .15s ease; }
#header .bf-nav2 .user-info a.bf-user-icon svg { width: 30px; height: 30px; fill: var(--bf-blue); transition: fill .15s ease; }
#header .bf-nav2 .user-info a.bf-user-icon:hover svg { fill: var(--bf-blue-dark); }
#header .bf-nav2 .user-info a.bf-user-icon:hover { transform: scale(1.06); }
