/*
 * Header component styles
 *
 * Nota: estratto da global.css (Step 7) per ridurre il CSS globale.
 */

/*
 * Nascondi completamente la Dock bar mobile. In questo tema la dock
 * non è più utilizzata e deve essere disabilitata su tutte le
 * dimensioni di schermo. L'uso di !important assicura che nessuna
 * regola successiva possa sovrascrivere questo comportamento.
 */

.bpc-mobile-dock {
  display: none !important;
}


/* -------------------------------------------------------------------------- */

/*
 * BresciaPC — Global Modules (Shell)
 * Header, footer, breadcrumb, navigation.
 */

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~                 HEADER / NAV – V4.0 (CSS)                   ~
~   APPLE MACOS SEQUOIA × IOS 26 – GLASS • A11Y • DARK MODE   ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/*---------------------------- VARIABILI GLOBALI --------------*/


/*---------------------------- HEADER STICKY GLASS ------------*/
.bresciapc-main-header{
  position:sticky;top:0;left:0;width:100%;
  z-index:var(--header-z-index);
  height:var(--header-height-desktop);
  background-color:var(--header-bg-initial);
  -webkit-backdrop-filter:saturate(180%) blur(var(--header-blur));
  backdrop-filter:saturate(180%) blur(var(--header-blur));
  border-bottom:1px solid var(--header-border-color);
  transition:background-color .35s ease,backdrop-filter .35s ease,height .25s ease,box-shadow .35s ease,top .25s ease;
  box-sizing:border-box;
}
@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){
  .bresciapc-main-header{background-color:rgba(255,255,255,.95);}
}

body.admin-bar .bresciapc-main-header{top:var(--admin-bar-height-desktop);}
@media (max-width:782px){
  body.admin-bar .bresciapc-main-header{top:var(--admin-bar-height-mobile);}
}
body.scrolled .bresciapc-main-header{background-color:var(--header-bg-scrolled);box-shadow:0 12px 30px rgba(0,0,0,.08);}

.header-container{
  max-width:var(--content-width);
  height:100%;
  margin:0 auto;
  padding:0 24px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
}

/* LOGO */
.header-logo{flex-shrink:0;}
.header-logo a{display:inline-block;vertical-align:middle;}
.header-logo img{display:block;height:30px;width:auto;max-width:150px;transition:height .25s ease;}

/* NAV DESKTOP */
.header-nav-desktop{flex-grow:1;display:flex;justify-content:center;}
.header-nav-desktop ul.header-nav-list{
  list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:clamp(14px,2.5vw,30px);
}
.header-nav-desktop li.menu-item{position:relative;}
.header-nav-desktop li.menu-item > a{
  display:block;text-decoration:none;color:var(--header-text-color);font-size:14px;font-weight:500;
  padding:10px 6px;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease;
  position:relative;
}
/* INDICATORE ATTIVO TIPO SEGMENTED */
.header-nav-desktop li.menu-item > a::after{
  content:"";display:block;position:absolute;left:50%;bottom:-3px;transform:translateX(-50%) scaleX(0);
  width:26px;height:2px;border-radius:2px;background:var(--header-link-hover);transition:transform .22s var(--easing-smooth);
}

/* ------------------------------------------------------------------ */
/*          Ricerca nel menu mobile e miglioramenti mobile UX          */
/*
 * Per facilitare la navigazione da smartphone, aggiungiamo una barra di
 * ricerca all'interno del menu mobile. Questo permette di digitare
 * direttamente il nome della marca o del modello ed essere rimandati
 * alla pagina risultati di WordPress. In più, nascondiamo le piccole
 * icone delle categorie su schermi molto stretti per ridurre le
 * richieste HTTP e rendere l'interfaccia più leggera.
 */
.mobile-menu .mobile-menu-search {
  /*
   * Nascondiamo il campo di ricerca all'interno del menu mobile.
   * L'utente può comunque utilizzare la lente nell'header per cercare,
   * mentre questa barra risulta ridondante nella navigazione mobile.
   */
  display: none;
}
.mobile-menu .mobile-search-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}
.mobile-menu .mobile-search-field {
  flex: 1;
  padding: 8px 10px;
  border: 1px solid var(--medium-gray-border);
  border-radius: 8px;
  font-size: 14px;
  background-color: var(--light-gray-bg);
  color: var(--header-text-color);
}
.mobile-menu .mobile-search-field::placeholder {
  color: var(--dark-gray-text);
}
.mobile-menu .mobile-search-submit {
  padding: 8px 12px;
  background-color: var(--header-link-hover);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  transition: background-color .2s ease;
}
.mobile-menu .mobile-search-submit:hover,
.mobile-menu .mobile-search-submit:focus {
  background-color: var(--header-icon-color);
  color: #fff;
}
@media (max-width: 480px) {
  .mobile-menu .mobile-menu-icon,
  .mobile-menu .mobile-submenu-icon {
    display: none;
  }
}
.header-nav-desktop li.menu-item:hover > a::after,
.header-nav-desktop li.menu-item:focus-within > a::after{transform:translateX(-50%) scaleX(1);}

.header-nav-desktop li.menu-item > a:hover,
.header-nav-desktop li.menu-item > a:focus,
.header-nav-desktop li.menu-item-has-children:hover > a{
  color:var(--header-link-hover);border-bottom-color:transparent;outline:none;
}
.header-nav-desktop li.menu-item > a:focus-visible{
  border-bottom-color:var(--header-link-hover);box-shadow:0 0 0 2px var(--header-link-hover);
}

/* -------------------------------------------------------------- */
/*    Barra di ricerca nel menu Desktop                           */
/*    Offre un campo di ricerca direttamente nell'intestazione     */
/*    per agevolare l'utente nella navigazione. Nascosta su        */
/*    schermi piccoli perché gestita dal menu mobile.              */
/* -------------------------------------------------------------- */
.header-search{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  max-width:300px;
  margin-left:20px;
}
.header-search-form{
  display:flex;
  width:100%;
}
.header-search-field{
  flex:1;
  padding:8px 12px;
  border:1px solid var(--medium-gray-border);
  border-radius:8px;
  background-color:var(--light-gray-bg);
  color:var(--header-text-color);
  font-size:14px;
}
.header-search-field::placeholder{
  color:var(--dark-gray-text);
}
.header-search-submit{
  margin-left:8px;
  padding:8px 12px;
  background-color:var(--header-link-hover);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:14px;
  cursor:pointer;
  transition:background-color .2s ease;
  flex-shrink:0;
}
.header-search-submit:hover,
.header-search-submit:focus{
  background-color:var(--header-icon-color);
  color:#fff;
}
@media (max-width:960px){
  .header-search{
    display:none;
  }
}

/* MEGA MENU DESKTOP */
.header-nav-desktop .submenu{
  display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(10px);
  min-width:460px;max-width:760px;background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);
  border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.20);
  padding:18px 22px;opacity:0;visibility:hidden;z-index:calc(var(--header-z-index)+1);
  transition:opacity .26s ease,visibility 0s linear .26s,transform .26s ease;
}
.header-nav-desktop li.menu-item-has-children:hover > .submenu,
.header-nav-desktop li.menu-item-has-children:focus-within > .submenu{
  display:block;opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);transition-delay:0s;
}
/*
 * A11Y helper: allows JS to force-close a submenu even while the parent
 * item keeps focus (e.g. ESC should close the submenu but keep focus on the
 * top-level link). Without this, :focus-within would keep the submenu open.
 * Nota: senza !important (ordine CSS sufficiente).
 */
.header-nav-desktop li.menu-item-has-children.bpc-menu-force-closed > .submenu{
  display:none;
  opacity:0;
  visibility:hidden;
  transform:translateX(-50%) translateY(10px);
}
/* [Theme Architect] Scope mega-menu: evita collisioni con classi generiche (.submenu-*) fuori dall'header. */
.header-nav-desktop .submenu-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px 14px;}
.header-nav-desktop .submenu-item{text-align:center;}
.header-nav-desktop .submenu-image{
  margin-bottom:8px;
  background:#f0f0f0;
  border-radius:10px;
  overflow:hidden;
  height:74px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  /* Aggiungiamo una transizione sull'ombra oltre alla trasformazione per
   * creare un leggero effetto sollevamento. Vedi regola hover più in basso. */
  transition: transform .18s ease, box-shadow .18s ease;
}
.header-nav-desktop .submenu-item:hover .submenu-image{
  transform: scale(1.05);
  box-shadow: 0 6px 16px rgba(0,0,0,0.10);
}
.header-nav-desktop .submenu-image img{max-width:100%;max-height:100%;object-fit:contain;display:block;}
.header-nav-desktop .submenu-image-placeholder{background-color:var(--light-gray-bg);color:#bdbdbd;}
.header-nav-desktop .submenu-image-placeholder svg{position:absolute;inset:0;margin:auto;}
.header-nav-desktop .submenu-link{text-decoration:none;color:var(--header-text-color);font-size:13px;font-weight:600;display:block;padding:5px 0;transition:color .18s ease;}
.header-nav-desktop .submenu-link:hover,.header-nav-desktop .submenu-link:focus{color:var(--header-link-hover);}
.header-nav-desktop .submenu-item-fallback a{display:block;padding:8px 14px;color:#555;font-size:13px;text-align:left;}
.header-nav-desktop .submenu-item-fallback a:hover{background-color:var(--light-gray-bg);color:var(--header-link-hover);}

/*
 * La visualizzazione per menu con molti brand è stata semplificata.
 * Tutte le voci vengono mostrate di default. Il pulsante "Mostra altri"
 * e le classi di supporto (.bspc-has-many, .bspc-expanded) sono state
 * rimosse in quanto la navigazione ora è guidata da un invito ad
 * esplorare tutti i marchi tramite un link dedicato.
 */

/* Stile del pulsante/link alla lista completa dei brand. Posizionato
 * alla fine del mega menu, si presenta come un pulsante in linea
 * con l'estetica Apple: bordi arrotondati, colori neutri e transizioni
 * morbide. La classe `submenu-cta` avvolge il link per centrarlo. */
.header-nav-desktop .submenu-cta{
  margin: 10px auto 0;
  text-align: center;
}
.header-nav-desktop .submenu-cta-link{
  display: inline-block;
  padding: 8px 14px;
  font-size: 14px;
  font-weight: 500;
  border: 1px solid var(--medium-gray-border);
  border-radius: 10px;
  background-color: var(--light-gray-bg);
  color: var(--header-text-color);
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.header-nav-desktop .submenu-cta-link:hover,
.header-nav-desktop .submenu-cta-link:focus{
  background-color: var(--header-link-hover);
  color: #fff;
  border-color: var(--header-link-hover);
}

/* ICONE HEADER */
.header-icons{display:flex;align-items:center;flex-shrink:0;gap:4px;}
.header-icon{
  background:none;border:none;padding:8px;margin:0;cursor:pointer;color:var(--header-icon-color);
  border-radius:50%;transition:color .2s ease,background-color .2s ease;position:relative;display:inline-flex;justify-content:center;align-items:center;
}
.header-icon:hover{
  /* Rimuove sfondo e bordo: le icone diventano pulite e senza cerchio opaco */
  background-color:transparent;
  color:var(--header-link-hover);
}
.header-icon:focus-visible{
  /* Rimuove il riempimento di sfondo anche con focus per accessibilità */
  outline:2px solid var(--header-link-hover);
  outline-offset:1px;
  background-color:transparent;
  color:var(--header-link-hover);
}
.header-icon svg{
  /* Ingrossa le icone del 20% circa per migliore leggibilità */
  width:24px;
  height:24px;
  display:block;
}
.cart-icon .cart-count{
  position:absolute;top:0;right:0;background-color:var(--header-link-hover);color:#fff;font-size:10px;font-weight:700;line-height:1;border-radius:10px;padding:2px 5px;min-width:17px;text-align:center;pointer-events:none;transition:transform .18s ease,opacity .18s ease;transform:scale(1) translate(35%,-35%);
}
.cart-icon .cart-count.empty{opacity:0;transform:scale(0) translate(35%,-35%);}

/* HAMBURGER */
.hamburger-icon{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;position:relative;}
.hamburger-icon.hamburger-apple .line{
  position:absolute;
  /* Aumenta ulteriormente lo spessore delle linee dell’hamburger per una maggiore visibilità */
  height:3px;
  /* Allunga del 20% la larghezza delle linee dell'hamburger */
  width:22px;
  background-color:currentColor;
  border-radius:1px;
  transition:transform .28s var(--easing-smooth),top .28s var(--easing-smooth);
  transform-origin:center;
}
.hamburger-icon.hamburger-apple .line-top{top:18px;}
.hamburger-icon.hamburger-apple .line-bottom{top:26px;}
body.mobile-menu-open .hamburger-icon.hamburger-apple .line-top{
  transform:rotate(45deg);
  top:22px;
}
body.mobile-menu-open .hamburger-icon.hamburger-apple .line-bottom{
  transform:rotate(-45deg);
  top:22px;
}
.hamburger-icon:hover,
.hamburger-icon:focus-visible{
  /* Elimina lo sfondo scuro sulle icone hamburger per uniformità con altre icone */
  background-color:transparent;
}

/*---------------------------- OVERLAY PANELS (SEARCH/MENU/CART) ------------*/
.search-dialog,.mobile-menu,.mini-cart-panel{
  position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--dialog-z-index);display:flex;visibility:hidden;transition:visibility 0s linear .35s;
}
body.admin-bar .search-dialog,body.admin-bar .mobile-menu,body.admin-bar .mini-cart-panel{top:var(--admin-bar-height-desktop);height:calc(100% - var(--admin-bar-height-desktop));}
@media (max-width:782px){
  body.admin-bar .search-dialog,body.admin-bar .mobile-menu,body.admin-bar .mini-cart-panel{top:var(--admin-bar-height-mobile);height:calc(100% - var(--admin-bar-height-mobile));}
}
.search-dialog-overlay,.mobile-menu-overlay,.mini-cart-overlay{position:absolute;inset:0;background-color:rgba(0,0,0,.55);opacity:0;transition:opacity .35s ease;cursor:pointer;z-index:1;}
.search-dialog-content,.mobile-menu-content,.mini-cart-content{position:relative;z-index:2;background:#fff;display:flex;flex-direction:column;height:100%;box-shadow:0 5px 25px rgba(0,0,0,.15);}
.search-dialog.is-visible,.mobile-menu.is-visible,.mini-cart-panel.is-visible{visibility:visible;transition-delay:0s;}
.search-dialog.is-visible .search-dialog-overlay,.mobile-menu.is-visible .mobile-menu-overlay,.mini-cart-panel.is-visible .mini-cart-overlay{opacity:1;}

/* SEARCH DIALOG */
.search-dialog-content{
  /* Introduce a softer look with larger radius, subtle shadow and reduced top margin */
  margin:8vh auto auto;
  width:90%;
  max-width:640px;
  border-radius:16px;
  max-height:75vh;
  transform:translateY(-30px) scale(.98);
  opacity:0;
  transition:opacity .26s ease,transform .26s var(--easing-smooth);
  background:#ffffff;
  overflow:hidden;
  box-shadow:0 8px 30px rgba(0,0,0,.15);
}
.search-dialog.is-visible .search-dialog-content{transform:translateY(0) scale(1);opacity:1;}
.search-dialog .dialog-close-button{position:absolute;top:12px;right:12px;}
/* [Theme Architect] Scope overlay header: evita collisioni con classi generiche fuori dai pannelli (es. .dialog-close-button). */
.search-dialog .dialog-close-button, .mobile-menu .dialog-close-button, .mini-cart-panel .dialog-close-button{
  width:38px;
  height:38px;
  border:none;
  background:rgba(0,0,0,.05);
  border-radius:50%;
  cursor:pointer;
  color:#666;
  font-size:24px;
  font-weight:300;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:11;
  transition:background-color .18s ease,color .18s ease,transform .2s ease;
  opacity:1;
  flex-shrink:0;
}
.search-dialog .dialog-close-button:hover, .mobile-menu .dialog-close-button:hover, .mini-cart-panel .dialog-close-button:hover{
  background:rgba(0,0,0,.08);
  color:#000;
  transform:scale(1.05);
}
.search-dialog .dialog-close-button:active, .mobile-menu .dialog-close-button:active, .mini-cart-panel .dialog-close-button:active{transform:scale(.95);}
.search-dialog .dialog-close-button:focus-visible, .mobile-menu .dialog-close-button:focus-visible, .mini-cart-panel .dialog-close-button:focus-visible{outline:2px solid var(--header-link-hover);outline-offset:2px;}
/* [A11Y] Evita di sovrascrivere .screen-reader-text (SSOT in core/global.css). */
.search-dialog .dialog-title:not(.screen-reader-text){font-size:clamp(1.1rem,3vw,1.3rem);font-weight:700;color:var(--header-text-color);margin:0;padding:18px 20px;border-bottom:1px solid var(--medium-gray-border);background:#fff;}
.search-dialog .search-form-container{
  /* Provide extra breathing room for the search bar */
  padding:20px;
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--header-border-color);
  position:relative;
  background:#fff;
}
.search-dialog .search-icon-inline{
  /* Ingrossa l'icona di ricerca nel pannello di circa il 20% */
  width:22px;
  height:22px;
  color:#888;
  margin-right:12px;
  flex-shrink:0;
}
.search-dialog .search-dialog-input{
  flex-grow:1;
  font-size:1rem;
  padding:12px 14px;
  border:1px solid var(--medium-gray-border);
  border-radius:14px;
  background:#fff;
  color:var(--header-text-color);
  width:100%;
  box-shadow:0 1px 0 rgba(0,0,0,.03) inset;
}
.search-dialog .search-dialog-input:focus{outline:none;border-color:var(--header-link-hover);box-shadow:0 0 0 3px rgba(0,113,227,.15);}
.search-dialog .bpc-voice-btn{margin-left:10px;min-width:38px;height:38px;border-radius:19px;border:1px solid var(--medium-gray-border);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.search-dialog .bpc-voice-btn.is-listening{border-color:#ff3b30;box-shadow:0 0 0 3px rgba(255,59,48,.18);}

.search-dialog .search-results-container{padding:0;flex-grow:1;min-height:140px;overflow-y:auto;background:#fff;}
.search-dialog .search-results-container .result-item{display:flex;align-items:center;padding:12px 18px;border-bottom:1px solid #f0f0f0;text-decoration:none;color:var(--header-text-color);transition:background-color .18s ease;}
.search-dialog .search-results-container .result-item:last-child{border-bottom:none;}
.search-dialog .search-results-container .result-item:hover,.search-dialog .search-results-container .result-item:focus{background:var(--light-gray-bg);outline:none;}
.search-dialog .search-results-container .result-item:focus-visible{background:#f0f0f0;box-shadow:inset 2px 0 0 var(--header-link-hover);}
.search-dialog .search-results-container .result-image{width:40px;height:40px;margin-right:12px;object-fit:cover;border-radius:8px;background:#eee;flex-shrink:0;border:1px solid #ececec;}
.search-dialog .search-results-container .result-title{font-size:.95rem;line-height:1.35;font-weight:600;}
.search-dialog .search-results-container .hl{background:linear-gradient(180deg,rgba(0,113,227,.18),rgba(0,113,227,.18));border-radius:4px;padding:0 2px;}

/* SUGGERIMENTI (DEFAULT VIEW + SECONDARY) */
.search-dialog .search-suggestions{padding:14px 18px 18px 18px;}
.search-dialog .suggest-group{margin-bottom:16px;}
.search-dialog .suggest-group:last-child{margin-bottom:0;}
.search-dialog .suggest-group h4{
  font-size:.86rem;
  margin:0 0 10px 0;
  color:#6b7280;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:700;
}
.search-dialog .chips{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.search-dialog .chip{
  padding:10px 14px;
  border:1px solid var(--medium-gray-border);
  border-radius:999px;
  background:#f9f9fb;
  cursor:pointer;
  font-weight:700;
  font-size:.92rem;
  transition:border-color .16s ease,color .16s ease,background-color .16s ease;
}
.search-dialog .chip:hover{
  border-color:var(--header-link-hover);
  color:var(--header-link-hover);
  background:#f2f6fd;
}
.search-dialog .suggest-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--header-text-color);border:1px solid #f0f0f0;}
.search-dialog .suggest-link:hover{background:var(--light-gray-bg);border-color:#e8e8e8;}
.search-dialog .suggest-small{font-size:.88rem;color:var(--dark-gray-text);}

/* MOBILE MENU */
.mobile-menu-content{margin-left:0;margin-top:0;width:86%;max-width:400px;height:100%;border-radius:0;box-shadow:5px 0 24px rgba(0,0,0,.14);transform:translateX(-100%);transition:transform .35s var(--easing-smooth);overflow:hidden;background:#fff;}
.mobile-menu.is-visible .mobile-menu-content{transform:translateX(0);}
.mobile-menu-header{position:sticky;top:0;z-index:10;background:#fff;padding:0 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--medium-gray-border);min-height:60px;}
.mobile-menu-header .mobile-menu-title{padding:15px 10px 15px 0;margin:0;flex-grow:1;font-weight:800;}
.mobile-menu-header .dialog-close-button{position:static;margin-left:10px;}
.mobile-menu-scrollable-content{height:100%;overflow-y:auto;padding-bottom:calc(var(--dock-height) + env(safe-area-inset-bottom,0) + 24px);}
.mobile-menu-list{list-style:none;padding:0;margin:0;}
.mobile-menu .menu-item{border-bottom:1px solid var(--medium-gray-border);}
.mobile-menu .menu-item:last-child{border-bottom:none;}
.mobile-menu .menu-item-wrapper{display:flex;align-items:center;}
.mobile-menu .mobile-menu-icon,.mobile-menu .mobile-menu-icon-placeholder{width:24px;height:24px;margin-left:20px;margin-right:12px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--dark-gray-text);}
.mobile-menu .menu-item-wrapper a{display:block;padding:14px 10px 14px 0;text-decoration:none;color:var(--header-text-color);font-size:1rem;font-weight:800;flex-grow:1;}
.mobile-menu .submenu-toggle{background:none;border:none;padding:14px 20px 14px 14px;cursor:pointer;color:var(--dark-gray-text);flex-shrink:0;}
.mobile-menu .submenu-toggle .plus-icon{font-size:1.24rem;display:inline-block;transition:transform .28s var(--easing-smooth);}
.mobile-menu .submenu-toggle[aria-expanded="true"] .plus-icon{transform:rotate(45deg);}
.mobile-menu .sub-menu{list-style:none;padding:6px 0;margin:0 0 6px 0;background:#f9f9f9;border-top:1px solid #eee;overflow:hidden;max-height:0;transition:max-height .35s ease,padding-top .35s ease,padding-bottom .35s ease;}
.mobile-menu .sub-menu[hidden]{display:none;}
.mobile-menu .sub-menu.is-open{padding-top:6px;padding-bottom:6px;}
.mobile-menu .sub-menu li.menu-item{border-bottom:1px solid #ececec;margin:0;}
.mobile-menu .sub-menu li.menu-item:last-child{border-bottom:none;}
.mobile-menu .sub-menu a{display:flex;align-items:center;gap:12px;padding:12px 20px 12px 40px;font-size:.94rem;color:#333;text-decoration:none;}
.mobile-menu .sub-menu a:hover{background:#ededf0;color:var(--header-link-hover);}

/* MINI CART */
.mini-cart-panel{justify-content:flex-end;}
.mini-cart-content{margin-left:auto;width:92%;max-width:380px;height:100%;border-radius:0;box-shadow:-5px 0 24px rgba(0,0,0,.14);transform:translateX(100%);transition:transform .35s var(--easing-smooth);overflow:hidden;background:#fff;}
.mini-cart-panel.is-visible .mini-cart-content{transform:translateX(0);}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~                FIX MENU MOBILE: TOGGLE + LAYOUT             ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/* Hide any legacy toggles appended outside the wrapper */
.mobile-menu li.menu-item > .submenu-toggle { display: none !important; }

/* Force layout to a single row: [+] [icon] [text] */
.mobile-menu .menu-item-wrapper { display: flex; align-items: center; gap: 12px; }

/* The "+" before the icon (even if it's last in DOM) */
.mobile-menu .menu-item-wrapper .submenu-toggle {
  /* Place toggle at end of row; order ensures it appears last */
  order: 99;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 8px;
}
.mobile-menu .menu-item-wrapper .submenu-toggle .plus-icon {
  /*
   * Mostra sempre l'icona "+" con un colore ben visibile.
   * Questo stile rende il simbolo coerente con gli altri elementi
   * dell'interfaccia e risolve problemi di visibilità del pulsante,
   * in particolare per la prima voce di menu (“Riparazione Smartphone”).
   */
  display: block;
  line-height: 36px;
  text-align: center;
  font-size: 1.15rem;
  transition: transform .28s var(--easing-smooth);
  font-weight: 600;
  color: var(--primary-blue, #0a84ff);
}
.mobile-menu .menu-item-wrapper .submenu-toggle[aria-expanded="true"] .plus-icon {
  transform: rotate(45deg);
}
.mobile-menu .menu-item-wrapper .submenu-toggle:hover,
.mobile-menu .menu-item-wrapper .submenu-toggle:focus-visible {
  outline: 2px solid transparent;
  background: rgba(0,0,0,.06);
}

/* Remove extra spacing between items (the double toggle created this) */
.mobile-menu .menu-item { margin: 0; }

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~            LINK UTILI: CONTRASTO, TAP-TARGET, ICONE         ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


.mobile-menu-utilities { margin-top: 8px; }
.mobile-menu-utilities .menu-item-title {
  padding: 10px 12px;
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--dark-gray-text);
}
.mobile-menu-utilities .menu-item a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 12px;
  min-height: 44px;
  font-weight: 800;
  color: var(--header-text-color);
  text-decoration: none;
}
.mobile-menu-utilities .menu-item a:hover,
.mobile-menu-utilities .menu-item a:focus-visible {
  background: #ededf0;
  color: var(--header-link-hover);
}
.mobile-menu-utilities .mobile-utility-icon { width: 18px; height: 18px; color: var(--header-link-hover); flex-shrink:0; }
/* Ensure utility items have no default bullets */
.mobile-menu-utilities .menu-item { list-style: none; }

/* Remove dividing lines inside the Link Utili section */
.mobile-menu-utilities .menu-item {
  border-bottom: none;
}

/* Improve visible focus overall in the panel */
.mobile-menu a:focus-visible,
.mobile-menu button:focus-visible {
  outline: 2px solid var(--bpc-accent);
  outline-offset: 2px;
}
.mini-cart-panel .dialog-close-button{position:absolute;top:12px;right:12px;}
.mini-cart-content .widget_shopping_cart_content{padding:0 22px 22px;flex-grow:1;display:flex;flex-direction:column;height:calc(100% - 65px);overflow-y:auto;}
/* EMPTY STATE EDUCATIVO */
.bpc-empty-cart{padding:26px 6px 18px 6px;text-align:center;color:var(--dark-gray-text);}
.bpc-empty-cart .bpc-empty-ico{
  width:56px;
  height:56px;
  margin:0 auto 10px auto;
  opacity:.8;
  color:var(--header-link-hover);
}
.bpc-empty-cart h4{
  margin:12px 0 8px 0;
  font-size:1.05rem;
  color:var(--header-text-color);
}
.bpc-empty-cart ul{margin:10px auto 14px auto;padding-left:18px;max-width:280px;text-align:left;}
/* Refine the empty cart list: remove default bullets and style with custom dots */
.bpc-empty-cart ul{
  margin:10px auto 14px auto;
  padding-left:0;
  max-width:280px;
  text-align:left;
  list-style:none;
}
.bpc-empty-cart ul li{
  position:relative;
  padding-left:20px;
  margin-bottom:8px;
  font-size:.9rem;
  color:var(--dark-gray-text);
}
.bpc-empty-cart ul li::before{
  content:'';
  position:absolute;
  left:0;
  top:8px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--header-link-hover);
}

/* Align actions vertically and occupy full width; refine button appearance */
.bpc-empty-cart .bpc-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:280px;
  margin:0 auto;
}
.bpc-btn{
  width:100%;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  padding:14px 16px;
  border-radius:14px;
  font-weight:800;
  font-size:1rem;
  text-decoration:none;
  border:1px solid #d2d2d7;
  background:#f5f5f7;
  color:var(--header-text-color);
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.bpc-btn:hover{
  background:#e9e9ed;
  border-color:#c8c8ce;
}
.bpc-btn.primary{
  background:var(--header-link-hover);
  border-color:var(--header-link-hover);
  color:#fff;
}
.bpc-btn.primary:hover{
  background:#005ecb;
  border-color:#005ecb;
}

/* WIDGET LISTA */
/* [Theme Architect] Scope sul mini-cart header: evita side-effect su widget carrello altrove. */
.mini-cart-content .widget_shopping_cart_content .woocommerce-mini-cart{list-style:none;padding:0;margin:15px 0;flex-grow:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#ccc #eee;}
.mini-cart-content .widget_shopping_cart_content .woocommerce-mini-cart::-webkit-scrollbar{width:6px;}
.mini-cart-content .widget_shopping_cart_content .woocommerce-mini-cart::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px;}
.mini-cart-content .widget_shopping_cart_content .woocommerce-mini-cart-item{display:flex;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid #eee;}
.mini-cart-content .widget_shopping_cart_content .woocommerce-mini-cart-item:last-child{border-bottom:none;}
.mini-cart-content .widget_shopping_cart_content .woocommerce-mini-cart-item img{width:55px;height:55px;object-fit:cover;border-radius:8px;border:1px solid #eee;flex-shrink:0;}
.mini-cart-content .widget_shopping_cart_content .product-details{flex-grow:1;min-width:0;}
.mini-cart-content .widget_shopping_cart_content a:not(.remove){text-decoration:none;color:var(--header-text-color);font-size:.95rem;font-weight:700;display:block;margin-bottom:4px;}
.mini-cart-content .widget_shopping_cart_content a:not(.remove):hover{color:var(--header-link-hover);}
.mini-cart-content .widget_shopping_cart_content .quantity{display:block;font-size:.86rem;color:var(--dark-gray-text);}
.mini-cart-content .widget_shopping_cart_content a.remove.remove_from_cart_button{
  width:28px;height:28px;border-radius:50%;background:#e9e9ed;color:#555;display:flex;align-items:center;justify-content:center;text-decoration:none;margin-left:auto;transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
.mini-cart-content .widget_shopping_cart_content a.remove.remove_from_cart_button:hover{background:#e02020;color:#fff;transform:scale(1.1);}
.mini-cart-content .widget_shopping_cart_content p.woocommerce-mini-cart__total.total{padding:15px 0;margin:15px 0 0 0;border-top:1px solid #eee;font-size:1rem;font-weight:800;display:flex;justify-content:space-between;color:var(--header-text-color);}
.mini-cart-content .widget_shopping_cart_content p.woocommerce-mini-cart__buttons.buttons{padding:18px 0 0;margin:0;display:flex;flex-direction:column;gap:10px;}

/* UPDATING STATE */
.mini-cart-panel.updating .mini-cart-content,
.mobile-menu-content.updating,
.search-dialog-content.searching{opacity:.7;pointer-events:none;}

/*---------------------------- MOBILE DOCK (IOS-STYLE) ----------------------*/
.bpc-mobile-dock{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(12px + env(safe-area-inset-bottom,0));
  height:var(--dock-height);
  width:clamp(300px,92vw,620px);
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:saturate(140%) blur(var(--dock-blur));backdrop-filter:saturate(140%) blur(var(--dock-blur));
  border:1px solid rgba(0,0,0,.08);
  border-radius:var(--dock-radius);
  box-shadow:0 20px 40px rgba(0,0,0,.15);
  z-index:calc(var(--dialog-z-index) + 2);
  display:none; /* mostrata da JS su viewport <= 980px */
}
.bpc-dock-inner{display:flex;align-items:center;justify-content:space-around;height:100%;padding:0 8px;}
.bpc-dock-btn{
  -webkit-tap-highlight-color:transparent;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:60px;height:100%;text-decoration:none;color:var(--header-text-color);font-size:.78rem;font-weight:800;border-radius:12px;padding:8px 10px;
}
.bpc-dock-btn:active{transform:translateY(1px);}
.bpc-dock-btn .ico{width:22px;height:22px;position:relative;}
.bpc-dock-badge{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;background:var(--header-link-hover);color:#fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;}
@media (max-width:980px){ .bpc-mobile-dock{display:block;} }

/*---------------------------- RESPONSIVE -----------------------------------*/
@media (max-width:1200px){ .header-container{padding:0 18px;} }
@media (max-width:980px){
  .bresciapc-main-header{height:var(--header-height-mobile);}
  .header-container{padding:0 14px;gap:14px;}
  .header-logo img{height:28px;}
  .header-nav-desktop{display:none;}
  .header-icons{gap:0;}
  .header-icon{padding:6px;}
  .header-icon svg{width:19px;height:19px;}
  .cart-icon .cart-count{min-width:16px;padding:2px 4px;font-size:9px;transform:scale(1) translate(30%,-30%);}
}
@media (max-width:480px){
  .header-container{padding:0 10px;}
  .header-logo img{height:25px;}
  .header-icon{padding:5px;}
  .header-icon svg{width:18px;height:18px;}
  .mobile-menu-content{max-width:320px;width:86%;}
  .mini-cart-content{max-width:320px;width:92%;}
  .search-dialog-content{max-width:calc(100% - 18px);margin-top:6vh;}
  .search-dialog .search-form-container{padding:16px;}
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~                 DESIGN IMPROVEMENTS – HEADER                ~
~  CONTROLLI FLUIDI, DOCK VARIABILE, ICONE ADATTIVE          ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/



/* [UI] Logo: più compatto (evita header troppo alto su desktop). */
.header-logo img {
  height: clamp(22px, 2.6vw, 28px);
  width: auto;
  max-width: 140px;
}

.hamburger-icon {
  inline-size: var(--bpc-ctl-size);
  block-size: var(--bpc-ctl-size);
}

.header-icon svg,
.bpc-dock-btn .ico {
  inline-size: var(--bpc-icon-size);
  block-size: var(--bpc-icon-size);
}

.search-inline-toggle,
.search-dialog .bpc-voice-btn,
.search-dialog .search-close,
.bpc-cart-close {
  min-height: var(--bpc-ctl-size);
  min-width:  var(--bpc-ctl-size);
  border-radius: calc(var(--bspc-radius-small) + 6px);
}

/* -------------------------------------------------------------------------- */
/* Existing header.css overrides (kept) */
/* -------------------------------------------------------------------------- */

/*
 * Header component overrides (Phase 1)
 *
 * Core styling is in core/global.css (legacy merged).
 * This file contains ONLY bugfixes / a11y / stability tweaks
 * to avoid duplications.
 */

/* Ensure overlays always sit above the sticky header */
.search-dialog,
.mobile-menu,
.mini-cart-panel {
  z-index: var(--dialog-z-index);
}

/* [Theme Architect] Scroll lock iOS è SSOT in core/global.css (body.bpc-scroll-locked). */
/* Visible focus rings for navigation links */
.header-nav-desktop .header-nav-list > li > a:focus-visible,
.header-nav-desktop .submenu-link:focus-visible {
  outline: 2px solid var(--header-link-hover);
  outline-offset: 3px;
  border-radius: 8px;
}

/* Smooth scrolling for overlay panels on iOS */
.mobile-menu-scrollable-content,
.search-dialog .search-results-container {
  -webkit-overflow-scrolling: touch;
}

/* ------------------------------------------------------------------ */
/* Logo sizing fix for WooCommerce pages                               */
/* Mantiene il logo alla stessa dimensione nelle pagine WooCommerce    */
/* evitando che appaia più grande su categorie o prodotti              */
/* ------------------------------------------------------------------ */
body.woocommerce .header-logo img,
body.single-product .header-logo img,
body.tax-product_cat .header-logo img,
body.tax-product_brand .header-logo img {
  height: clamp(22px, 2.6vw, 28px);
  width: auto;
  max-width: 140px;
}
