﻿/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
 *  site.css â€” Stili globali (navbar, layout, footer)
 *  Estratto da templates/front/layouts/default.php
 *  â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Variabili colore e misure â”€â”€ */
:root {
  font-size: 110%;
  --primary: #15317E;
  --primary-light: #2d65ff;
  --primary-dark: #0f2160;
  --accent: #006994;
  --accent-hover: #006d91;
  --body-bg: #F2F2F2;
  --text-color: #2E2E2E;
  --text-muted: #5a6370;

  /* Colori stock bar */
  --stock-good: #198754;
  --stock-warning: #ffc107;
  --stock-out: #dc3545;
  --stock-empty: #e9ecef;

  /* Colori stati / feedback */
  --status-success: #86efac;
  --status-error: #fca5a5;

  /* Colori UI generici */
  --suggest-placeholder: #bbb;
  --thumb-hover: #333;

  /* Password strength */
  --pwd-danger: #ef4444;
  --pwd-warning: #f59e0b;
  --pwd-fair: #eab308;
  --pwd-good: #22c55e;
  --pwd-excellent: #16a34a;

  /* Misure ricorrenti â€” modifica qui per cambiare tutto il sito */
  --qty-btn-size: 26px;
  --qty-btn-size-sm: 22px;
  --qty-input-min-width: 40px;
  --qty-input-min-width-sm: 36px;
  --color-item-min-height: 80px;
  --color-item-min-height-sm: 45px;
  --color-item-gap: 8px;
  --color-item-gap-sm: 6px;
  --color-img-size: 70px;
  --color-img-size-sm: 60px;
  --stock-bar-h: 5px;
  --stock-bar-h-sm: 4px;
  --sticky-top-offset: 80px;
  --font-xxs: .78rem;
  --font-xs: .78rem;
  --font-sm: .9rem;
  --font-md: 1rem;

  /* Layout variabili â€” controllate dal tema attivo */
  --product-columns: 4;
  --sidebar-display: block;
  --footer-display: flex;
}

/* â”€â”€ Layout pagina: Grid sidebar + main â”€â”€ */
.page-layout {
  display: grid;
  grid-template-columns: var(--sidebar-width, 260px) 1fr;
  gap: 1.5rem;
  align-items: start;
}
.page-layout.no-sidebar {
  grid-template-columns: 1fr;
}

/* â”€â”€ Griglia prodotti: Grid con colonne variabili â”€â”€ */
.product-grid {
  display: grid;
  grid-template-columns: repeat(var(--product-columns, 4), 1fr);
  gap: 1.5rem;
}

/* â”€â”€ Griglia sottocategorie â”€â”€ */
.subcategory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
}

/* â”€â”€ Body â”€â”€ */
body {
  font-size: 1.1rem;
  color: var(--text-color);
  background-color: var(--body-bg);
}

/* â”€â”€ Bottoni â”€â”€ */
.btn-accent {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.btn-accent:hover {
  background: var(--primary-light);
  color: #fff;
  border-color: var(--primary-light);
}
.btn-outline-secondary {
  color: var(--text-color);
  border-color: #A5ACB2;
}
.btn-outline-secondary:hover {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--primary);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--primary);
  --bs-btn-hover-border-color: var(--primary);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--primary);
  --bs-btn-active-border-color: var(--primary);
}

/* â”€â”€ Preventivi: elementi visibili solo in quote-mode â”€â”€ */
.quote-only { display: none; }
html.quote-mode .quote-only { display: inline-flex; }
html.quote-mode #quoteModeBtn { color: var(--primary); border-color: var(--primary); }

/* â”€â”€ Card prodotto (condivisa) â”€â”€ */
.product-card {
  transition: box-shadow .2s, transform .15s;
  cursor: pointer;
  background: #fff;
  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
.product-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.12);
  transform: translateY(-2px);
}
.product-card:focus-visible,
.home-hero-cta:focus-visible,
.product-thumb:focus-visible {
  outline: 3px solid var(--primary-light);
  outline-offset: 3px;
}
.product-card picture { display: block; }
.product-card img {
  width: 100%;
  height: 200px;
  object-fit: contain;
  display: block;
}

.skip-link {
  position: fixed;
  top: .5rem;
  left: .5rem;
  z-index: 1100;
  padding: .5rem .75rem;
  background: #fff;
  color: var(--primary);
  border: 2px solid var(--primary);
  border-radius: .25rem;
  transform: translateY(-200%);
}
.skip-link:focus {
  transform: translateY(0);
}

/* â”€â”€ Product main image â”€â”€ */
.product-main-img {
  width: 90%;
  display: block;
  margin: 0 auto;
}

/* â”€â”€ Subcategory â”€â”€ */
.subcategory-img-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.subcategory-img-wrap picture,
.subcategory-img-wrap img {
  position: relative;
  width: 100%;
  height: auto;
  max-height: 200px;
  object-fit: scale-down;
  display: block;
}

/* â”€â”€ Prezzi â”€â”€ */
.price-net {
  font-size: .9rem;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.price-gross {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary);
  font-variant-numeric: tabular-nums;
}

/* â”€â”€ Badge carrello â”€â”€ */
.cart-badge {
  position: absolute;
  top: -6px;
  right: -8px;
  background: #ef4444;
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: .78rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* â”€â”€ Footer â”€â”€ */
.site-footer {
  background: var(--primary);
  color: rgba(255,255,255,.75);
  margin-top: 2rem;
  font-size: .82em;
}
footer.site-footer a {
  color: rgba(255,255,255,.85) !important;
  text-decoration: none;
}
footer.site-footer a:hover {
  color: #fff !important;
}
.footer-contact-link {
  min-height: 48px;
  line-height: 1.4;
}

/* Footer widget: Flexbox colonne wrappabili */
.footer-widgets {
  display: var(--footer-display, flex);
  flex-wrap: wrap;
  gap: 1.25rem;
}
.footer-widgets > * {
  flex: 1 1 220px;
}

/* Footer minimal: solo copyright */
.footer-minimal .footer-widgets { display: none; }
.footer-minimal { padding: 1.5rem 0; margin-top: 2rem; }

/* â”€â”€ Navbar â”€â”€ */
.navbar {
  background: var(--primary) !important;
  box-shadow: 0 2px 8px rgba(21,49,126,.3) !important;
  z-index: 1030;
}
.navbar .navbar-brand,
.navbar .navbar-brand span {
  color: #fff !important;
}
.navbar .navbar-brand span {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-weight: 400;
  font-size: 1.6rem !important;
  letter-spacing: 0.01em;
}

/* Mobile e tablet: riporta font-size brand al valore originale */
@media (max-width: 991.98px) {
  .navbar .navbar-brand span {
    font-size: 1.25rem !important;
  }
}
.navbar .btn-outline-secondary {
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.3);
}
.navbar .btn-outline-secondary:hover {
  background: rgba(255,255,255,.15);
  color: #fff;
  border-color: rgba(255,255,255,.5);
}
.navbar .dropdown-menu {
  background: #fff;
  border: 1px solid #e5e7eb;
}
/* Icone account + carrello piÃ¹ grandi */
.navbar .navbar-user-actions .btn i {
  font-size: 1.25rem !important;
  line-height: 1;
}
.navbar .dropdown-item:hover {
  background: #f0f4ff;
  color: var(--primary);
}
.navbar .dropdown-item.active {
  background: var(--primary);
  color: #fff;
}

/* Navbar actions: su mobile linea sotto, lingua a sx, account+carrello a dx */
@media (max-width: 767.98px) {
  .navbar .container {
    flex-wrap: wrap;
  }
  .navbar .navbar-brand {
    flex: 0 0 100%;
  }
  .navbar .navbar-actions {
    flex: 0 0 100%;
    display: flex !important;
    justify-content: space-between !important;
    padding-top: 0.25rem;
  }
}

/* Header variants (Flexbox) */
/* Centered: logo sopra, menu sotto */
.navbar.header-centered .container {
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.navbar.header-centered .navbar-collapse {
  justify-content: center;
}
/* Compact: nasconde il menu testuale nella navbar SOLO su desktop (â‰¥992px).
   Su mobile il collapse di Bootstrap deve funzionare per aprire account/carrello. */
@media (min-width: 992px) {
  .navbar.header-compact .navbar-collapse { display: none !important; }
  .navbar.header-compact .navbar-toggler { display: inline-block; }
}

/* â”€â”€ Dropdown categorie â”€â”€ */
#categoryBar {
  position: sticky;
  top: 56px;
  z-index: 1019;
  background: #fff !important;
  border-bottom: 1px solid #e5e7eb !important;
}
#categoryBar #catDropdownToggle {
  color: var(--primary);
  border-color: var(--primary);
}
#categoryBar #catDropdownToggle:hover {
  background: var(--primary);
  color: #fff;
}
#categoryBar .form-control {
  background: rgba(21,49,126,.06);
  border-color: rgba(21,49,126,.2);
  color: var(--text-color);
}
#categoryBar .form-control::placeholder {
  color: var(--text-muted);
}
#categoryBar .form-control:focus {
  background: #fff;
  border-color: var(--primary);
  color: var(--text-color);
  box-shadow: 0 0 0 .2rem rgba(21,49,126,.1);
}
#catDropdownToggle { cursor: pointer; }
#catDropdownToggle[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }

.cart-sidebar-placeholder {
  background:
    linear-gradient(180deg, #fff 0, #fff 46px, transparent 46px) 0 0 / 100% 100% no-repeat,
    linear-gradient(90deg, #f2f3f5 25%, #eceef0 37%, #f2f3f5 63%) 0 46px / 100% calc(100% - 46px) no-repeat;
  background-size: 100% 100%, 100% 100%;
}
.cart-sidebar-placeholder .cart-sidebar-head { border-bottom: none; }
.cart-sidebar-placeholder .cart-sidebar-title { color: transparent; }

/* â”€â”€ Colonna carrello laterale (tablet+ desktop) — overlay su un livello
   separato: il corpo resta a larghezza piena e non si sposta mai. â”€â”€ */
.cart-sidebar {
  position: fixed;
  top: 130px;
  right: 0;
  width: 300px;
  height: calc(100vh - 142px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-left: 1px solid #e5e7eb;
  box-shadow: -6px 0 20px rgba(0,0,0,.08);
  z-index: 1029;
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .cart-sidebar {
    width: 260px;
    top: 145px;
    height: calc(100vh - 157px);
  }
}
.cart-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .75rem 1rem;
  font-weight: 600;
  border-bottom: 1px solid #e5e7eb;
}
.cart-sidebar-head .cart-sidebar-toggle { line-height: 1; flex-shrink: 0; }
.cart-sidebar.collapsed {
  width: 48px;
  height: auto;
  min-height: 0;
  overflow: hidden;
}
.cart-sidebar.collapsed .cart-sidebar-head {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .5rem;
  border-bottom: none;
}
.cart-sidebar.collapsed .cart-sidebar-title {
  font-size: 0;
  color: var(--text-color, #333);
}
.cart-sidebar.collapsed .cart-sidebar-title .bi {
  font-size: 1.3rem;
  margin-right: 0;
}
.cart-sidebar.collapsed .cart-sidebar-toggle {
  font-size: .95rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-muted, #6c757d);
}
.cart-sidebar.collapsed .cart-sidebar-items,
.cart-sidebar.collapsed .cart-sidebar-foot { display: none; }
.cart-sidebar-items { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
.cart-sidebar-item {
  display: flex;
  gap: .5rem;
  align-items: center;
  padding: .5rem 1rem;
  border-bottom: 1px solid #f3f4f6;
}
.cart-sidebar-link {
  display: flex;
  gap: .5rem;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.cart-sidebar-link:hover { color: inherit; }
.cart-sidebar-link:hover .cart-sidebar-info { color: var(--primary, #15317e); }
.cart-sidebar-thumb {
  width: 44px; height: 44px;
  object-fit: contain;
  flex-shrink: 0;
  background: #f8f9fa;
  border-radius: 4px;
}
.cart-sidebar-info { flex: 1 1 auto; min-width: 0; font-size: 0.7em; }
.cart-sidebar-foot {
  border-top: 1px solid #e5e7eb;
  padding: .75rem 1rem;
}
.cart-sidebar-foot .btn-link { font-size: .85rem; }


.cat-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 360px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: .5rem;
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  z-index: 1050;
  display: none;
  animation: catFadeIn .15s ease;
  max-height: 75vh;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.cat-dropdown.open { display: block; }

.cat-dropdown-nav { padding: .4rem 0; }

.cat-item {
  display: block;
  padding: .5rem 1rem;
  font-size: 1.05rem;
  color: var(--text-color);
  text-decoration: none;
  transition: background .12s;
}
.cat-item:hover { background: #f0f4ff; color: var(--primary); }

/* Thumbnail categorie root â€” visibile solo su desktop (lg+) */
.cat-thumb {
  width: 36px !important;
  height: 36px !important;
  max-width: 36px !important;
  max-height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  object-fit: cover !important;
  border-radius: 4px;
  margin-right: 1.25rem;
  vertical-align: middle;
  border: 1px solid #e5e7eb;
  flex-shrink: 0;
}

.cat-item.has-children {
  padding: .5rem 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: background .12s;
}
.cat-item.has-children:hover { background: #f0f4ff; }
.cat-item.has-children > .cat-link {
  flex: 1;
  color: var(--text-color);
  text-decoration: none;
  font-size: 1.05rem;
}
.cat-item.has-children > .cat-link:hover {
  color: var(--primary);
}

.sub-toggle {
  cursor: pointer;
  padding: .2rem .35rem;
  border: 0;
  background: transparent;
  border-radius: 4px;
  transition: background .12s;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.sub-toggle:hover { background: #e0e7ff; }
.sub-toggle .bi-chevron-right {
  font-size: .7rem;
  color: var(--text-muted);
  transition: transform .2s;
}
.cat-item.has-children.expanded > .sub-toggle .bi-chevron-right { transform: rotate(90deg); }

/* Sottomenu a righe consecutive */
.cat-submenu {
  display: none;
  flex-basis: 100%;
  order: 1;
  padding-left: 1.2rem;
  border-left: 2px solid #e5e7eb;
  margin: .2rem 0 .2rem .5rem;
}
.cat-item.has-children.expanded > .cat-submenu { display: block; }

/* Animazione */
@keyframes catFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* â”€â”€ Paginazione â”€â”€ */
.page-item.active .page-link {
  background: var(--primary);
  border-color: var(--primary);
}
.page-link { color: var(--primary); }
.page-link:hover { color: var(--primary-light); }

/* â”€â”€ Navbar logo â”€â”€ */
.navbar-logo {
  height: 41px;
  width: auto;
  object-fit: contain;
}

/* â”€â”€ Breadcrumb â”€â”€ */
.breadcrumb { font-size: 0.8rem; }
.breadcrumb a { color: var(--primary); }

/* â”€â”€ Page content container â”€â”€ */
.page-content {
  max-width: 860px;
}

/* â”€â”€ Cursor utility â”€â”€ */
.cursor-pointer { cursor: pointer; }

/* â”€â”€ Badge â”€â”€ */
.badge.bg-secondary {
  background: var(--accent) !important;
  color: #fff !important;
}

/* â”€â”€ Icone stati vuoti (carrello vuoto, thank you, newsletter) â”€â”€ */
.empty-state-icon {
  font-size: 4rem;
}
.empty-state-icon-sm {
  font-size: 3rem;
}

/* â”€â”€ Contenitore pagine statiche â”€â”€ */
.page-container {
  max-width: 860px;
}

/* ── Card sticky laterale (cart, checkout) ── */
.sticky-summary {
  position: sticky;
  top: var(--sticky-top-offset);
}

/* â”€â”€ Card prodotto homepage â”€â”€ */
.product-card-featured {
  overflow: hidden;
}
/* Forza layout griglia su tablet per prodotti featured */
@media (min-width: 768px) and (max-width: 991.98px) {
  .home-hero + section .row {
    display: flex;
    flex-wrap: wrap;
  }
  .home-hero + section .row > div {
    flex: 0 0 25%;
    max-width: 25%;
  }
}
/* Testo card prodotto e suggerimenti */
.product-card .small,
.suggestion-card .small {
  font-size: .8rem;
}
.product-card-footer .small {
  font-size: .875rem;
}
.product-card-footer .small.fw-semibold {
  font-size: .875rem;
}
.product-card .text-muted.small,
.suggestion-card .text-muted.small {
  font-size: .78rem;
}
.product-card-img-wrap {
  aspect-ratio: 1 / 1;
  width: 100%;
  height: auto;
  padding: 8px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-card-img-wrap picture {
  display: block;
  width: 100%;
  height: 100%;
}
.product-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.product-card-footer {
  flex: 0 0 auto;
}

/* â”€â”€ Thumbnail carrello/ordine â”€â”€ */
.cart-thumb {
  width: 48px;
  height: 48px;
  object-fit: contain;
  background: #f8f9fa;
  border-radius: 4px;
}

/* â”€â”€ Form controls â”€â”€ */
.form-check-input:checked {
  background-color: var(--primary);
  border-color: var(--primary);
}
.form-check-input:focus {
  border-color: var(--primary-light);
  box-shadow: 0 0 0 .2rem rgba(45,101,255,.25);
}
.form-control:focus, .form-select:focus {
  border-color: var(--primary-light);
  box-shadow: 0 0 0 .2rem rgba(45,101,255,.15);
}

/* â”€â”€ Autocomplete suggerimenti â”€â”€ */
.suggest-wrap {
  position: relative;
  flex: 1;
  max-width: 500px;
}
.suggest-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #d1d5db;
  border-top: none;
  border-radius: 0 0 .5rem .5rem;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  z-index: 1060;
  display: none;
  max-height: 360px;
  overflow-y: auto;
}
.suggest-dropdown.open { display: block; }

.suggest-item {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .45rem .75rem;
  color: var(--text-color);
  text-decoration: none;
  font-size: 1rem;
  cursor: pointer;
  transition: background .1s;
}
.suggest-item:hover,
.suggest-item.active {
  background: #f0f4ff;
  color: var(--primary);
}
.suggest-item .suggest-img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 4px;
  flex-shrink: 0;
  background: #f5f5f5;
}
.suggest-item .suggest-body {
  flex: 1;
  min-width: 0;
}
.suggest-item .suggest-body .suggest-code {
  font-family: monospace;
  font-size: .9rem;
  color: var(--text-muted);
  display: block;
  line-height: 1.2;
}
.suggest-item .suggest-body .suggest-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
  line-height: 1.3;
}
.suggest-item .suggest-body .suggest-sizecode {
  display: inline;
  font-size: .9rem;
  color: var(--primary, #0d6efd);
  font-weight: 500;
  margin-left: .5rem;
}
.suggest-item .suggest-body .suggest-detail {
  display: block;
  font-size: .9rem;
  color: var(--text-muted);
  line-height: 1.2;
  margin-top: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.suggest-noresult {
  padding: .75rem;
  text-align: center;
  color: var(--text-muted);
  font-size: 1rem;
}

/* â”€â”€ Testo troncato generico â”€â”€ */
.text-truncate-mw {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.text-truncate-mw-200 { max-width: 200px; }
.text-truncate-mw-250 { max-width: 250px; }
.text-truncate-mw-300 { max-width: 300px; }

/* â”€â”€ Toast carrello â”€â”€ */
#cartToast {
  background: var(--primary) !important;
}

/* â”€â”€ Link generali â”€â”€ */
a:not(.btn):not(.dropdown-item):not(.page-link):not(.navbar-brand):not(.nav-link):not(.cat-link) {
  color: var(--primary);
}
a:not(.btn):not(.dropdown-item):not(.page-link):not(.navbar-brand):not(.nav-link):not(.cat-link):hover {
  color: var(--primary-light);
}

/* â”€â”€ Zoom popup immagini â”€â”€ */
.zoom-popup {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.88);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
}
.zoom-popup.open {
  display: flex;
}
.zoom-popup img {
  max-width: 92vw;
  max-height: 92vh;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 8px 40px rgba(0,0,0,.5);
  transition: transform .2s;
  cursor: zoom-out;
}
.zoom-popup-close {
  position: absolute;
  top: 16px;
  right: 24px;
  color: #fff;
  font-size: 2.2rem;
  font-weight: 300;
  cursor: pointer;
  z-index: 1;
  line-height: 1;
  opacity: .7;
  transition: opacity .15s;
}
.zoom-popup-close:hover {
  opacity: 1;
}
.zoomable {
  cursor: zoom-in;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 767.98px) {
  /* Su mobile la barra completa ricerca/categorie non resta sticky: a zoom
     elevato sottrarrebbe una quota eccessiva della viewport al catalogo. */
  #categoryBar {
    position: static;
    top: auto;
  }
  #cartSidebar, #cartSidebarPlaceholder { display: none !important; }
  #categoryBar .container-fluid {
    flex-wrap: wrap;
    gap: .4rem !important;
    padding-top: .3rem !important;
    padding-bottom: .3rem !important;
    align-items: center !important;
  }
  #catDropdownToggle {
    order: 2;
  }
  #quoteModeBtn {
    order: 3;
  }
  #quoteLink {
    order: 4;
  }
  #viewToggleBtn {
    order: 5;
  }
  #productBackBtn {
    order: 6;
  }
  #categoryBar form {
    max-width: none !important;
    order: 1;
    flex: 1 1 100%;
    align-items: center;
  }
  #categoryBar form .form-select,
  #categoryBar form .form-control {
    min-height: 40px;
    font-size: .9rem;
  }
  #categoryBar form .form-select {
    max-width: 110px;
  }
  #categoryBar #catDropdownToggle,
  #categoryBar #quoteModeBtn,
  #categoryBar #quoteLink,
  #categoryBar #viewToggleBtn,
  #categoryBar #productBackBtn {
    min-height: 40px;
    font-size: .875rem;
    padding: .35rem .65rem;
    line-height: 1.2;
    align-self: center;
  }
  .cat-dropdown {
    width: 100% !important;
    position: absolute;
    left: 0;
    right: 0;
    border-radius: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,.1);
    max-height: 80vh;
  }
  #catDropdownToggle { margin-left: 0; }
  .cat-item.has-children {
    flex-wrap: wrap;
    padding: .5rem 1rem;
  }
  .cat-submenu { display: none; }
  .sub-toggle { display: inline-flex; }
  #catDropdown.open { display: block !important; }
}

/* â”€â”€ Carrello mobile: card layout â”€â”€ */
@media (max-width: 767.98px) {
  .cart-table,
  .cart-table tbody,
  .cart-table td {
    display: block;
  }
  .cart-table thead { display: none; }
  .cart-table tr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0.75rem 0.5rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
  }
  .cart-table tr:last-child { border-bottom: none; }

   .cart-table td:nth-child(2) {
     flex: 1 1 100%;
     padding: 0 .5rem .25rem;
     border: none;
   }

  /* RIGA 1: foto + descrizione + codice (occupa 100% larghezza) */
  .cart-table td:nth-child(1) {
    flex: 0 0 100%;
    padding: 0.25rem 0.5rem;
    border: none;
  }

   /* RIGA 2: prezzo | quantitÃ  | rimuovi; subtotale sulla riga seguente */
  .cart-table td:nth-child(3),
  .cart-table td:nth-child(4),
  .cart-table td:nth-child(6) {
    border: none;
    padding: 0.35rem 0.5rem;
  }
  .cart-table td:nth-child(3) { flex: 0 0 auto; }
  .cart-table td:nth-child(4) { flex: 1 1 auto; }
   .cart-table td:nth-child(6) { flex: 0 0 auto; }
   .cart-table .cart-line-total {
     flex: 1 1 100%;
     padding: .25rem .5rem 0;
     border: none;
     text-align: right;
   }
  .product-main-img { width: 63% !important; }
}

/* â”€â”€ Footer utilities â”€â”€ */
.footer-input {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.25);
  color: #fff;
}
.footer-input::placeholder {
  color: rgba(255,255,255,.5);
}
.footer-input:focus {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.5);
  color: #fff;
  box-shadow: 0 0 0 .15rem rgba(255,255,255,.15);
}
.border-white-10 {
  border-color: rgba(255,255,255,.1) !important;
}
.cookie-btn {
  background: none;
  border: none;
  color: rgba(255,255,255,.5);
  font-size: .95rem;
  cursor: pointer;
  padding: 0;
}
.cookie-btn:hover {
  color: rgba(255,255,255,.8);
}
.text-white-50 { color: rgba(255,255,255,.5) !important; }

/* â”€â”€ Badge status ordini â”€â”€ */
.badge-status {
  display: inline-block;
  padding: .2em .6em;
  font-size: .9rem;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid currentColor;
}

/* â”€â”€ Account avatar â”€â”€ */
.account-avatar {
  width: 56px;
  height: 56px;
  font-size: 1.4rem;
}

/* â”€â”€ Progress bar forza password â”€â”€ */
.pw-strength-wrapper {
  height: 4px;
}
.pw-strength-bar {
  height: 100%;
  width: 0%;
  transition: width .3s;
}

/* â”€â”€ Cart column header â”€â”€ */
.cart-qty-col { width: 120px; }

/* â”€â”€ Text color via variable â”€â”€ */
.text-color { color: var(--text-color); }

/* â”€â”€ Primary icon color â”€â”€ */
.text-primary-var { color: var(--primary); }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
 *  Home Hero
 *  Spostato da templates/front/home.php
 *  â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.home-hero {
  background: linear-gradient(160deg, #F2F2F2 0%, #E4EEF6 100%);
  padding: 72px 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  border-radius: 12px;
  margin-bottom: 2rem;
  overflow: hidden;
}
.home-hero h1 {
  font-size: 2.6rem;
  font-weight: 300;
  color: #1F2937;
  line-height: 1.15;
  margin-bottom: 14px;
}
.home-hero h1 strong {
  font-weight: 800;
  color: var(--accent, #0088b3);
  display: block;
}
.home-hero p {
  color: #374151;
  font-size: 1.2rem;
  line-height: 1.6;
}
.home-hero-cta {
  display: inline-block;
  margin-top: 28px;
  background: var(--primary, #15317E);
  color: #fff !important;
  padding: 13px 30px;
  border-radius: 30px;
  font-size: 1.1rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity .2s;
}
.home-hero-cta:hover {
  background: var(--primary-dark, #0f2160);
  opacity: 1;
  color: #fff !important;
}
.home-hero-visual {
  align-self: stretch;
  overflow: hidden;
  margin-top: -72px;
  margin-bottom: -72px;
  margin-right: -28px;
}
.hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* â”€â”€ Sezione "Prodotti in offerta" titolo â”€â”€ */
.home-hero + section h2 {
  font-size: 1.55rem;
}

/* â”€â”€ Max-width utilities â”€â”€ */
.mw-420 { max-width: 420px; }
.mw-520 { max-width: 520px; }
.mw-900 { max-width: 900px; }

/* â”€â”€ Font-size utilities â”€â”€ */
.text-60 { font-size: .7rem; }
.text-65 { font-size: .78rem; }
.text-70 { font-size: .85rem; }

/* â”€â”€ Icone grandi â”€â”€ */
.icon-status-xl {
  font-size: 5rem;
  line-height: 1;
}
.icon-page-lg {
  font-size: 2.5rem;
}
.icon-status-4rem {
  font-size: 4rem;
}

/* â”€â”€ Cart thumb small â”€â”€ */
.cart-thumb-sm {
  width: 40px;
  height: 40px;
  object-fit: contain;
  background: #f8f9fa;
  border-radius: 4px;
  flex-shrink: 0;
}

/* â”€â”€ Tabella orari (dove-siamo) â”€â”€ */
.table-orari {
  max-width: 350px;
}

/* â”€â”€ Google Maps iframe â”€â”€ */
.gmap-iframe {
  border: 0;
}

/* â”€â”€ Cookie manage button â”€â”€ */
.cookie-manage-btn {
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  z-index: 9997;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  padding: .4rem .9rem;
  font-size: .9rem;
  color: #4B5563;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  cursor: pointer;
}

/* â”€â”€ GDPR modal body text â”€â”€ */
.gdpr-modal-text {
  font-size: 1rem;
  color: #6b7280;
  margin-bottom: 1rem;
}

/* â”€â”€ Image card top with contain â”€â”€ */
.card-img-contain {
  max-height: 200px;
  object-fit: contain;
}

/* â”€â”€ Toast z-index â”€â”€ */
.toast-container-z {
  z-index: 9990;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
 *  Responsive Home Hero
 *  â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/* Tablet: mantiene 2 colonne come desktop, con spaziature ridotte */
@media (min-width: 768px) and (max-width: 991.98px) {
  .home-hero {
    grid-template-columns: 1fr 1fr;
    text-align: left;
    padding: 50px 24px;
    gap: 30px;
  }
  .home-hero h1 {
    font-size: 2.4rem;
  }
  .home-hero-visual {
    align-self: stretch;
    margin-top: -50px;
    margin-bottom: -50px;
    margin-right: -24px;
  }
  .home-hero + section h2 {
    font-size: 1.35rem;
  }
}
/* Mobile: passa a 1 colonna centrata */
@media (max-width: 767.98px) {
  .home-hero {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 40px 18px;
  }
  .home-hero h1 {
    font-size: 2.4rem;
  }
  .home-hero-visual {
    align-self: stretch;
    font-size: 3rem;
    margin-top: -40px;
    margin-bottom: -40px;
    margin-right: -18px;
  }
  .home-hero + section h2 {
    font-size: 1.2rem;
  }
}
@media (min-width: 992px) {
  .home-hero h1 {
    font-size: 3rem;
  }
}

@media (pointer: coarse) {
  :root {
    --qty-btn-size: 44px;
    --qty-btn-size-sm: 40px;
  }
  .cart-table .input-group .btn,
  .cart-table .input-group .form-control,
  .cart-table .js-remove-item {
    min-height: 44px;
  }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
 *  Social Icons (navbar + footer)
 *  â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.social-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  color: #fff;
  text-decoration: none;
  transition: background .2s, transform .15s;
}
.social-icon-link:hover {
  background: rgba(255,255,255,.40);
  color: #fff;
  transform: scale(1.1);
}
.social-icon-link i {
  font-size: 1.1rem;
}

/* Navbar specific: icone piÃ¹ compatte */
.social-icons-nav .social-icon-link {
  width: 28px;
  height: 28px;
}
.social-icons-nav .social-icon-link i {
  font-size: .95rem;
}

/* ── Font +10% sulle pagine categoria ── */
body.page-shop-category { font-size: 110%; }
body.page-shop-category h1 { font-size: 120% !important; }
body.page-shop-category .product-name-line,
body.page-shop-search .product-name-line { font-size: 120% !important; }
body.page-shop-category .price-gross { font-size: 120% !important; }

/* -- Alert in tinta con il brand (sostituisce alert-info) -- */
.alert-brand {
  background: #f5f0e8;
  border: 1px solid #ddd0b8;
  color: #6b5c3e;
  border-radius: .375rem;
  padding: .5rem .75rem;
}
