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

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

/*---------------------------- HEADER STICKY GLASS ------------*/

/* A11Y-02: Skip-to-content link (nascosto finché non ha focus) */
.bpc-skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: calc(var(--header-z-index, 99990) + 10);
  padding: 10px 20px;
  background: var(--bspc-blue-primary, var(--bspc-blue-primary));
  color: var(--bspc-bg-white);
  font-size: var(--bspc-font-base-sm);
  font-weight: 600;
  border-radius: 0 0 var(--bspc-radius-small) var(--bspc-radius-small);
  text-decoration: none;
  transition: top 0.15s ease;
}
.bpc-skip-link:focus {
  top: 0;
  outline: 2px solid var(--bspc-bg-white);
  outline-offset: 2px;
}

.bresciapc-main-header{
  position:sticky;top:0;left:0;width:100%;
  z-index:var(--header-z-index);
  
  background-color:var(--header-bg-initial);
  -webkit-backdrop-filter:saturate(180%) blur(var(--header-blur));
  backdrop-filter:saturate(180%) blur(var(--header-blur));
  
  transition:background-color .35s ease,backdrop-filter .35s ease,height .25s ease,box-shadow .35s ease,top .25s ease;
  box-sizing:border-box;
}

/* Reduce glass blur on small screens for better performance */
@media (max-width: 767.98px) {
  .bresciapc-main-header {
    /* [Audit v6.0 #mobile-6] Backdrop filter fallback with solid background */
    background: var(--bspc-bg-white); /* fallback */
    @supports (backdrop-filter: blur(1px)) {
      background: rgba(255,255,255,0.85);
      -webkit-backdrop-filter: saturate(180%) blur(var(--header-blur));
      backdrop-filter: saturate(180%) blur(var(--header-blur));
    }
  }
}
@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){
  /* [7.12.0] Su mobile la admin bar di WP è position:absolute (scorre via con la
     pagina), non fixed. Ancorare l'header a 46px lasciava, dopo lo scroll, una
     striscia vuota di 46px sopra l'header (sembrava "staccato"/nascosto quando
     loggati). La html ha già margin-top:46px, quindi con top:0 l'header parte
     comunque sotto la barra e, scrollando, si aggancia pulito al bordo viewport. */
  body.admin-bar .bresciapc-main-header{top:0;}
}
body.scrolled .bresciapc-main-header{background-color:var(--header-bg-scrolled);}

.header-container {
  width: 100%;
  max-width: var(--bspc-content-width-wider);
  margin: 0 auto;
  height: 100%;
  padding-left: max(var(--bspc-page-gutter, 16px), env(safe-area-inset-left));
  padding-right: max(var(--bspc-page-gutter, 16px), env(safe-area-inset-right));
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

/* LOGO */
.header-logo{flex:1 0 auto;display:flex;justify-content:flex-start;}
.header-logo a{display:inline-flex;align-items:center;min-height:44px;vertical-align:middle;}
header#bresciapc-header .header-logo img{
    display:block;
    
    width:auto;
    
    object-fit:contain;
    margin-left:-4px;
    transition:height .25s ease;
}

/* NAV DESKTOP */
.header-nav-desktop{flex:2 1 auto;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(6px,1vw,14px);
  /* [7.11.8] Logo e icone sono position:absolute ai bordi: la nav centrata deve
     restare al centro senza raggiungerli. Riserviamo lo spazio e limitiamo la
     larghezza così, con molte categorie, non si sovrappone né sfora. */
  max-width:100%;flex-wrap:nowrap;
}
.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:var(--bspc-font-base-sm);font-weight:500;
  padding:10px 6px;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease;
  position:relative;white-space:nowrap;
}
/* 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(--bspc-ease-apple);
}

/* [Audit v6.0 #a11y-1] Current menu item indicator - bold + color */
.header-nav-desktop li.menu-item.current-menu-item > a,
.header-nav-desktop li.menu-item.current_page_item > a {
  font-weight: 700;
  color: var(--bspc-blue-primary);
}

/* [Audit v6.0 #a11y-1] Current menu item active indicator - show scaleX */
.header-nav-desktop li.menu-item.current-menu-item > a::after,
.header-nav-desktop li.menu-item.current_page_item > a::after {
  transform: translateX(-50%) scaleX(1);
}

/* [Audit v6.0 #a11y-2] Fallback for browsers without scaleX transform support */
@supports not (transform: scaleX(1)) {
  .header-nav-desktop li.menu-item.current-menu-item > a,
  .header-nav-desktop li.menu-item.current_page_item > a {
    border-bottom: 2px solid var(--bspc-blue-primary);
  }
}

@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);
}

/* [7.11.5] Rimosso blocco morto .header-search* (vecchia barra di ricerca inline
   desktop, senza markup corrispondente): la ricerca vive nel dialog overlay. */

/* MEGA MENU DESKTOP */
.header-nav-desktop .submenu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  min-width:460px;
  max-width:760px;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(180%) blur(6px);
  backdrop-filter:saturate(180%) blur(6px);
  border-radius:var(--bspc-radius-large);box-shadow:var(--bspc-shadow-strong);
  padding:18px 22px;
  opacity:0;visibility:hidden;pointer-events:none;
  z-index:calc(var(--header-z-index)+1);
  transition:opacity .22s ease, visibility 0s linear .22s, transform .22s ease;
  margin-top: 0;
}

/* [Audit v6.0 #dark-6] Submenu dark mode - darker background */
[data-theme="dark"] .header-nav-desktop .submenu {
  background: var(--bspc-bg-white);
}

:root:not([data-theme="light"]) .header-nav-desktop .submenu {
  background: var(--bspc-bg-white);
}
.header-nav-desktop .submenu::before {
  content: '';
  display: block;
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}
.header-nav-desktop li.menu-item-has-children > a {
  padding-bottom: 8px;
}
.header-nav-desktop li.menu-item-has-children:hover > .submenu,
.header-nav-desktop li.menu-item-has-children:focus-within > .submenu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
  transition-delay: 0s;
}
.header-nav-desktop li.menu-item-has-children.bpc-menu-force-closed > .submenu{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(-50%) translateY(8px);
  transition-delay: 0s, 0s, 0s;
}
.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:var(--bspc-bg-light);
  border-radius:var(--bspc-radius-medium);
  overflow:hidden;
  height:74px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  transition: transform .18s ease, box-shadow .18s ease;
  border: 1px solid var(--bspc-border-light);   /* [Audit] aggiunto bordo */
}
.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(--bspc-bg-light);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:var(--bspc-font-sm);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:var(--bspc-text-secondary);font-size:var(--bspc-font-sm);text-align:left;}
.header-nav-desktop .submenu-item-fallback a:hover{background-color:var(--bspc-bg-light);color:var(--header-link-hover);}

.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: var(--bspc-font-base-sm);
  font-weight: 500;
  border: 1px solid var(--bspc-border-light);
  border-radius: var(--bspc-radius-small);
  background-color: var(--bspc-bg-light);
  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: var(--bspc-bg-white);
  border-color: var(--header-link-hover);
}

/* ICONE HEADER */
/* [v5.0.7] margin-left:auto ancora le icone a destra anche quando la nav
   desktop è nascosta (mobile) o quando le voci del menu sono troppe (tablet).
   Senza questo, le icone restano attaccate all'ultimo elemento flex visibile
   invece di andare al bordo destro del container. */
.header-icons{flex:1 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:4px;margin:0;}
@media (max-width:980px){
  .header-icons .header-icon{padding:8px 6px;}
  .header-icons .hamburger-icon{margin-right:0;}
}
.header-icons > :last-child { margin-right: 0; }
.header-icon{
  background:none;border:none;padding:10px;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;
  -webkit-tap-highlight-color:transparent;
  min-width: 44px; /* [Audit v6.0 #a11y-4] Tap target minimum size */
  min-height: 44px; /* [Audit v6.0 #a11y-4] Tap target minimum size */
}
.header-icon:hover{
  background-color:transparent;
  color:var(--header-link-hover);
}
.header-icon:focus-visible{
  outline:2px solid var(--header-link-hover);
  outline-offset:1px;
  background-color:transparent;
  color:var(--header-link-hover);
}
.header-icon svg{
  width:19px;
  height:19px;
  display:block;
}
.cart-icon .cart-count{
  position:absolute;top:0;right:0;background-color:var(--header-link-hover);color:var(--bspc-bg-white);font-size:9px;font-weight:700;line-height:1;border-radius:10px;padding:2px 5px;min-width:16px;text-align:center;pointer-events:none;transition:transform .18s ease,opacity .18s ease;transform:translate(35%, -35%); /* [Audit v6.0 #69] */
}
.cart-icon .cart-count.empty{opacity:0;transform:scale(0) translate(35%,-35%);}

/* HAMBURGER - Apple.com: linee 1px, distanziate ~9px, 17px larghezza */
/* [AUDIT] padding:0 perché ha già 44x44 come tap-target; box-sizing:border-box. */
.hamburger-icon{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;position:relative;padding:0;box-sizing:border-box;}
.hamburger-icon.hamburger-apple .line{
  position:absolute;
  height:1px;
  width:17px;
  background-color:currentColor;
  border-radius:.5px;
  transition:transform .28s var(--bspc-ease-apple),top .28s var(--bspc-ease-apple);
  transform-origin:center;
}
.hamburger-icon.hamburger-apple .line-top{top:17px;}
.hamburger-icon.hamburger-apple .line-bottom{top:26px;}
body.mobile-menu-open .hamburger-icon.hamburger-apple .line-top{
  transform:rotate(45deg);
  top:21.5px;
}
body.mobile-menu-open .hamburger-icon.hamburger-apple .line-bottom{
  transform:rotate(-45deg);
  top:21.5px;
}
.hamburger-icon:hover,
.hamburger-icon:focus-visible{
  background-color:transparent;
}

/* OVERLAY PANELS */
.search-dialog,.mobile-menu,.mini-cart-panel{
  position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;display:flex;visibility:hidden;overflow:hidden;transition:visibility 0s linear .35s;
}
@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(100vh - var(--admin-bar-height-mobile));height:calc(100dvh - var(--admin-bar-height-mobile));}
}
@media (max-width:600px){
  /* Su telefono la admin bar WordPress scorre con la pagina: il dialogo fisso
     deve coprire il visual viewport, senza lasciare un vuoto di 46px. */
  body.admin-bar .search-dialog,body.admin-bar .mobile-menu,body.admin-bar .mini-cart-panel{top:0;height:100vh;height:100dvh;}
}
.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:var(--bspc-bg-white);display:flex;flex-direction:column;min-height:0;height:auto;}
.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;}

/* ==========================================================================
   PANNELLO DI RICERCA - scende dalla barra, non e' una finestra a mezz'aria
   ==========================================================================
   Su desktop e tablet il pannello e' agganciato sotto l'header: parte dal
   bordo inferiore della barra e scende. Su telefono diventa un foglio a
   tutta altezza, perche' li' un pannello corto lascia i risultati in due
   righe. Gli identificativi restano quelli di prima: il motore di ricerca
   non si accorge di nulla. */
.search-dialog-content{
  margin:var(--bpc-search-anchor,calc(var(--header-height-desktop) - 1px)) auto auto;
  /* --bpc-search-anchor vale 0 quando il JS sposta l'intero pannello. */
  width:100%;
  max-width:none;
  border-radius:0 0 26px 26px;
  max-height:calc(100dvh - var(--bpc-search-anchor,var(--header-height-desktop)) - 24px);
  padding:26px clamp(18px,4vw,40px) 30px;
  /* Nessuna trasformazione a riposo: la posizione del pannello deve essere
     esatta per costruzione. Lo scivolamento d'entrata e' un'animazione che
     finisce a zero, non uno stato che resta appeso a meta' strada. */
  opacity:0;
  background:var(--bspc-bg-white);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-shadow:0 26px 60px -24px rgba(15,23,42,.28);
  overscroll-behavior:contain; /* [Audit v6.0 #deepscan-4] */
  border-top:1px solid var(--bspc-border-light,#e5e5ea);
}
#bresciapc-search-dialog.is-visible .search-dialog-content{
  opacity:1;
  animation:bpcSearchDrop .28s var(--bspc-ease-apple) both;
}
@keyframes bpcSearchDrop{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:none;}}
.search-dialog .dialog-close-button{position:absolute;top:16px;right:clamp(14px,3vw,28px);min-width:44px;min-height:44px;}

/* Una sola colonna centrata: campo, scorciatoie, categorie e aiuto sono
   allineati fra loro. Prima il campo era largo 1003px e tutto il resto 960,
   e su schermo largo il riquadro d'aiuto si stringeva a 340. */
.search-dialog-content > *{max-width:980px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box;}

/* Titolo del pannello */
.bpc-search-head{text-align:center;margin-bottom:14px;}
.bpc-search-head__title{
  margin:0;font-size:clamp(20px,2.2vw,26px);font-weight:800;line-height:1.15;
  letter-spacing:-.02em;color:var(--bspc-text-primary,#1d1d1f);
}
.bpc-search-head__sub{
  margin:4px auto 0;max-width:640px;
  font-size:13.5px;line-height:1.35;color:var(--bspc-text-secondary,#515154);
}

/* Campo di ricerca: grande, icona dentro, nessun bordo urlato. */
.search-dialog .search-form-container{
  display:flex;align-items:center;gap:13px;
  min-height:54px;
  background:var(--bspc-bg-white);
  border:1.5px solid var(--bspc-border-light,#e0e0e5);
  border-radius:18px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.search-dialog .search-form-container:focus-within{
  border-color:var(--bspc-blue-primary);
  box-shadow:0 0 0 4px rgba(0,102,204,.13);
}
.search-dialog .search-icon-inline{flex:0 0 auto;}
.search-dialog .search-dialog-input{
  flex:1 1 auto;min-width:0;border:0;background:transparent;
  /* 16px minimo: sotto questa misura iOS ingrandisce da solo la pagina. */
  font-size:16px;line-height:1.35;color:var(--bspc-text-primary,#1d1d1f);
  padding:13px 0;
}
.search-dialog .search-dialog-input:focus{outline:none;box-shadow:none;}
/* L'anello di fuoco appartiene al contenitore: se ce l'ha anche l'input si
   vedono due contorni concentrici. */
.search-dialog .search-dialog-input,
.search-dialog .search-dialog-input:focus,
.search-dialog .search-dialog-input:focus-visible{border:0;background:transparent;box-shadow:none;}
.search-dialog .search-dialog-input::placeholder{color:var(--bspc-text-muted,#86868b);}

/* Scorciatoie: centrate sotto il campo, come pastiglie. */
.bpc-search-suggestions{margin-top:12px;}
.bpc-search-suggestions .chips{
  display:flex;gap:8px;
  justify-content:safe center;
  flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
  padding-bottom:2px;scroll-snap-type:x proximity;
}
.bpc-search-suggestions .chips::-webkit-scrollbar{display:none;}
.bpc-search-suggestions .chip{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;}
.bpc-search-suggestions .chip{
  display:inline-flex;align-items:center;min-height:36px;padding:0 15px;
  border:1px solid var(--bspc-border-light,#e0e0e5);border-radius:99px;
  font-size:14.5px;font-weight:650;color:var(--bspc-text-primary,#1d1d1f);
  text-decoration:none;background:var(--bspc-bg-white);
  transition:border-color .15s ease,background .15s ease,color .15s ease;
}
.bpc-search-suggestions .chip:hover,
.bpc-search-suggestions .chip:focus-visible{
  border-color:var(--bspc-blue-primary);color:var(--bspc-blue-primary);
  background:var(--bspc-blue-soft,rgba(0,102,204,.07));
}

/* Divisore con etichetta al centro */
.bpc-search-browse{margin-top:22px;}
.bpc-search-browse__label{
  display:flex;align-items:center;gap:12px;margin-bottom:11px;
  font-size:11.5px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;
  color:var(--bspc-text-muted,#86868b);
}
.bpc-search-browse__label::before,
.bpc-search-browse__label::after{
  content:"";flex:1 1 auto;height:1px;background:var(--bspc-border-light,#e5e5ea);
}

/* Schede categoria: due colonne, con la foto del dispositivo. */
.bpc-search-browse__grid{
  display:grid;gap:8px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:58px;
}
.bpc-search-browse__item{
  display:flex;align-items:center;gap:11px;
  min-height:58px;padding:9px 12px;
  border:1px solid var(--bspc-border-light,#e5e5ea);border-radius:13px;
  text-decoration:none;background:var(--bspc-bg-white);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.bpc-search-browse__item:hover,
.bpc-search-browse__item:focus-visible{
  border-color:var(--bspc-blue-primary);
  background:var(--bspc-blue-soft,rgba(0,102,204,.04));
  box-shadow:0 3px 12px -4px rgba(15,23,42,.14);
}
.bpc-search-browse__thumb{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:10px;overflow:hidden;
  background:var(--bspc-bg-subtle,#f5f5f7);
}
.bpc-search-browse__thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.bpc-search-browse__copy{display:grid;gap:2px;min-width:0;flex:1 1 auto;}
.bpc-search-browse__copy strong{
  font-size:14.5px;font-weight:650;color:var(--bspc-text-primary,#1d1d1f);line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bpc-search-browse__copy small{font-size:12px;color:var(--bspc-text-muted,#86868b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bpc-search-browse__arrow{flex:0 0 auto;display:inline-flex;color:var(--bspc-text-muted,#c7c7cc);transition:color .15s ease,transform .15s ease;}
.bpc-search-browse__item:hover .bpc-search-browse__arrow{color:var(--bspc-blue-primary);transform:translateX(2px);}

/* «Non trovi il tuo dispositivo?» - la via d'uscita, mai un vicolo cieco. */
.bpc-search-empty-cta{
  display:flex;width:100%;box-sizing:border-box;gap:16px;align-items:flex-start;
  margin-top:16px;padding:15px 17px;
  background:var(--bspc-blue-soft,rgba(0,102,204,.06));
  border:1px solid var(--bspc-blue-border,rgba(0,102,204,.15));
  border-radius:20px;
}
.bpc-search-empty-cta__ico{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:12px;
  background:var(--bspc-bg-white);color:var(--bspc-blue-primary);
}
.bpc-search-empty-cta__copy{min-width:0;flex:1 1 auto;}
.bpc-search-empty-cta-text{display:block;font-size:15.5px;font-weight:750;color:var(--bspc-text-primary,#1d1d1f);line-height:1.25;}
.bpc-search-empty-cta__copy p{margin:5px 0 0;font-size:14px;line-height:1.45;color:var(--bspc-text-secondary,#515154);}
.bpc-search-empty-cta__actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;}
.bpc-search-empty-cta__btn{
  display:inline-flex;align-items:center;gap:8px;
  min-height:42px;padding:0 17px;border-radius:11px;
  font-size:14.5px;font-weight:650;text-decoration:none;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.bpc-search-empty-cta__btn--wa{background:#12703f;color:#fff;border:1px solid #12703f;}
.bpc-search-empty-cta__btn--wa:hover,.bpc-search-empty-cta__btn--wa:focus-visible{background:#0d5730;border-color:#0d5730;color:#fff;}
.bpc-search-empty-cta__btn--tel{background:var(--bspc-bg-white);color:var(--bspc-text-primary,#1d1d1f);border:1px solid var(--bspc-border-light,#d2d2d7);}
.bpc-search-empty-cta__btn--tel:hover,.bpc-search-empty-cta__btn--tel:focus-visible{border-color:var(--bspc-text-primary,#1d1d1f);}
.bpc-search-empty-cta__btn--ghost,
.bpc-search-empty-cta__btn--ghost:link,
.bpc-search-empty-cta__btn--ghost:visited{background:transparent;color:var(--bspc-blue-primary);border:1px solid transparent;box-shadow:none;}
.bpc-search-empty-cta__btn--ghost:hover,.bpc-search-empty-cta__btn--ghost:focus-visible{background:var(--bspc-bg-white);border-color:var(--bspc-border-light,#d2d2d7);}

/* Telefono: foglio a tutta altezza, il pannello corto non basta. */
@media (max-width:760px){
  .search-dialog-content{
    margin-top:var(--bpc-search-anchor,var(--header-height-mobile));
    max-height:calc(100dvh - var(--bpc-search-anchor,var(--header-height-mobile)));
    min-height:calc(100dvh - var(--bpc-search-anchor,var(--header-height-mobile)));
    border-radius:0;
    padding:22px 16px calc(28px + env(safe-area-inset-bottom));
  }
  .search-dialog .dialog-close-button{top:12px;right:12px;}
  /* Su telefono il titolo grande ruba lo spazio ai risultati: resta solo per
     chi legge con lo screen reader. */
  .bpc-search-head{text-align:left;margin-bottom:14px;padding-right:44px;}
  .bpc-search-head__title{font-size:21px;}
  .bpc-search-head__sub{display:none;}
  .search-dialog .search-form-container{min-height:56px;padding:0 16px;border-radius:15px;}
  .bpc-search-suggestions .chips{justify-content:flex-start;margin:0 -16px;padding-left:16px;padding-right:16px;}
  .bpc-search-browse__grid{grid-auto-rows:auto;}
  .bpc-search-browse__grid{grid-template-columns:1fr;gap:8px;}
  .bpc-search-browse__item{min-height:64px;padding:10px 13px;gap:12px;}
  .bpc-search-browse__thumb{width:42px;height:42px;border-radius:11px;}
  .bpc-search-empty-cta{flex-direction:column;gap:13px;padding:17px;}
  .bpc-search-empty-cta__actions{width:100%;}
  .bpc-search-empty-cta__actions .bpc-search-empty-cta__btn{flex:1 1 auto;justify-content:center;}
}
/* Da tablet in su il pannello e' una scheda sospesa, non un foglio bianco a
   tutta larghezza: prima restavano centinaia di pixel di bianco ai lati. */
@media (min-width:761px){
  .search-dialog .search-dialog-content{
    max-width:1160px;
    margin-left:auto;margin-right:auto;
    border-radius:22px;
    border:1px solid var(--bspc-border-light,#e5e5ea);
    box-shadow:0 24px 60px -18px rgba(15,23,42,.28);
    padding:24px 26px 26px;
  }
  .search-dialog-content > *{max-width:1080px;}
}
/* Schermi larghi: quattro colonne. Con tredici categorie sono quattro righe
   invece di cinque, e la scheda si accorcia ancora. */
@media (min-width:1280px){
  .bpc-search-browse__grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (min-width:1024px) and (max-width:1279px){
  .bpc-search-browse__grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* Tablet: due colonne vere, non una colonna sola sprecando meta' schermo. */
@media (min-width:761px) and (max-width:1179px){
  .bpc-search-browse__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:761px) and (max-width:1024px){
  .bpc-search-browse__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (prefers-reduced-motion:reduce){
  #bresciapc-search-dialog.is-visible .search-dialog-content{animation:none;}
  .search-dialog-content{transform:none;}
}

/* PULSANTI DI CHIUSURA (X) UNIFICATI E RAFFINATI */
.search-dialog .dialog-close-button,
.mobile-menu .dialog-close-button,
.mini-cart-panel .dialog-close-button {
  width: 40px;
  height: 40px;
  border: none;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 50%;
  cursor: pointer;
  color: var(--bspc-text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 11;
  transition: background-color .15s ease, color .15s ease, transform .15s ease;
  flex-shrink: 0;
  padding: 0;
  font-size: 22px;
}
.search-dialog .dialog-close-button:hover,
.mobile-menu .dialog-close-button:hover,
.mini-cart-panel .dialog-close-button:hover {
  background: rgba(0, 0, 0, 0.1);
  color: var(--bspc-text-primary);
}
.search-dialog .dialog-close-button:active, 
.mobile-menu .dialog-close-button:active, 
.mini-cart-panel .dialog-close-button:active {
  transform: scale(.92);
}
.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;
}

.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(--bspc-border-light);background:var(--bspc-bg-white);}
.search-dialog .search-form-container{
  padding:20px;
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--header-border-color);
  position:relative;
  background:var(--bspc-bg-white);
}
.search-dialog .search-icon-inline{
  width:20px;
  height:20px;
  color:var(--bspc-text-light);
  margin-right:12px;
  flex-shrink:0;
  stroke-width: 2px;
}
/* Il campo non ha un bordo suo: il bordo e l'anello di fuoco appartengono al
   contenitore (.search-form-container). Il vecchio pannello ne dava uno anche
   all'input, e si vedeva un secondo rettangolo dentro il primo. */
.search-dialog .bpc-voice-btn:focus-visible{outline:2px solid var(--header-link-hover);outline-offset:2px;}
.search-dialog .bpc-voice-btn{margin-left:10px;height:38px;border:1px solid var(--bspc-border-light);background:var(--bspc-bg-white);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.search-dialog .bpc-voice-btn.is-listening{border-color:var(--bspc-logout-red);box-shadow:0 0 0 3px rgba(255,59,48,.18);}

/* Nessuno spazio riservato quando non c'e' niente da mostrare: prima
   restavano 140px di bianco in fondo al pannello. */
.search-dialog .search-results-container{padding:0;min-height:0;overflow-y:auto;background:var(--bspc-bg-white);}
.search-dialog .search-results-container:empty{display:none;}
@media (max-width:600px){
  .search-dialog .search-results-container{flex:1 1 auto;min-height:0;height:auto;}
}
.search-dialog .search-results-container .result-item{display:flex;align-items:center;padding:12px 18px;border-bottom:1px solid var(--bspc-border-light);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(--bspc-bg-light);outline:none;}
.search-dialog .search-results-container .result-item:focus-visible{background:var(--bspc-bg-light);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:var(--bspc-radius-small);background:var(--bspc-bg-light);flex-shrink:0;border:1px solid var(--bspc-border-light);}
.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,102,204,.18),rgba(0,102,204,.18));border-radius:var(--bspc-radius-small);padding:0 2px;}

/* SUGGERIMENTI */
.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:var(--bspc-text-light);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:700;
}
/* Le pastiglie del vecchio pannello andavano a capo (flex-wrap:wrap) e
   occupavano tre righe, 130px. Le regole valide sono quelle di
   .bpc-search-suggestions piu' in alto: una riga sola che scorre. Questo
   blocco stava piu' in basso nel file e le annullava tutte. */
.search-dialog .suggest-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--bspc-radius-small);text-decoration:none;color:var(--header-text-color);border:1px solid var(--bspc-border-light);}
.search-dialog .suggest-link:hover{background:var(--bspc-bg-light);border-color:var(--bspc-border-light);}
.search-dialog .suggest-small{font-size:.88rem;color:var(--bspc-text-light);}

/* MOBILE MENU */
.mobile-menu-content{margin-left:0;margin-top:0;min-height:0;border-radius:0;box-shadow:5px 0 24px rgba(0,0,0,.14);transition:transform .35s var(--bspc-ease-apple);overflow:hidden;background:var(--bspc-bg-white);}
.mobile-menu.is-visible .mobile-menu-content{transform:translateX(0);}
.mobile-menu-header{position:sticky;top:0;z-index:10;background:var(--bspc-bg-white);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--bspc-border-light);}
.mobile-menu-header .mobile-menu-title{padding:15px 10px 15px 0;margin:0;flex-grow:1;font-weight: 600;}
.mobile-menu-header .dialog-close-button{position:static;margin-left:10px;}
.mobile-menu-scrollable-content{flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;padding-bottom:calc(var(--dock-height) + env(safe-area-inset-bottom,0) + 24px);overscroll-behavior: contain; /* [Audit v6.0 #deepscan-4] */}
.mobile-menu-list{list-style:none;padding:0;margin:0;}

/* CATEGORIE MOBILE (FLAT EDGE-TO-EDGE) */
.mobile-menu .menu-item{border-bottom:1px solid var(--bspc-border-light); margin: 0;}
.mobile-menu .menu-item:last-child{border-bottom:none;}
.mobile-menu .menu-item-wrapper{display:flex;align-items:center; gap: 12px;}
.mobile-menu .mobile-menu-icon,.mobile-menu .mobile-menu-icon-placeholder{width:24px;height:24px;margin-left:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--bspc-text-light);}
.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: 600;flex-grow:1;}

/* FIX MENU MOBILE: TOGGLE + LAYOUT */
.mobile-menu li.menu-item > .submenu-toggle { display: none !important; }
.mobile-menu .menu-item-wrapper .submenu-toggle {
  order: 99;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: var(--bspc-radius-small);
  margin-right: 10px;
}
.mobile-menu .menu-item-wrapper .submenu-toggle .plus-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 1.4rem;
  font-weight: 400;
  transition: transform .28s var(--bspc-ease-apple);
  color: var(--bspc-blue-primary);
}
.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);
}

/* v6.4.x - Grid-based accordion animation (CRO Audit Sprint 2)
   Replaces max-height hack with grid-template-rows for smoother animation. */
.mobile-menu .sub-menu{
  list-style:none;padding:0;margin:0;
  background:var(--bspc-bg-light);
  border-top:1px solid var(--bspc-border-light);
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .32s var(--bspc-ease-apple);
}
.mobile-menu .sub-menu > *{overflow:hidden;min-height:0;}
.mobile-menu .sub-menu[hidden]{display:none;}
.mobile-menu .sub-menu.is-open{grid-template-rows:1fr;padding-top:6px;padding-bottom:6px;}
.mobile-menu .sub-menu li.menu-item{border-bottom:1px solid var(--bspc-border-light);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:var(--bspc-text-secondary);text-decoration:none; font-weight: 500;}
.mobile-menu .sub-menu a:hover{background:var(--bspc-bg-light);color:var(--header-link-hover);}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~            LINK UTILI: STILE PIATTO (EDGE-TO-EDGE)          ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

.mobile-menu-utilities {
  
  background: var(--bspc-bg-white);
}

/* Fascia grigia di separazione stile iOS */
.mobile-menu-utilities .menu-item-title {
  background: var(--bspc-bg-light);
  padding: 12px 20px 8px 20px;
  font-size: var(--bspc-font-xs);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--bspc-text-light);
  font-weight: 600;
  border-top: 1px solid var(--bspc-border-light);
  border-bottom: 1px solid var(--bspc-border-light);
}

.mobile-menu-utilities .mobile-menu-list { 
  border-radius: 0;
  box-shadow: none;
  border: none;
  padding: 0;
  margin: 0;
}

.mobile-menu-utilities .menu-item {
  list-style: none;
  border-bottom: 1px solid var(--bspc-border-light);
  margin: 0;
}

.mobile-menu-utilities .menu-item:last-child {
  border-bottom: none;
}

.mobile-menu-utilities .menu-item a { 
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px; /* Allineato con le categorie */
  min-height: 48px;
  font-weight: 600; /* Leggermente meno bold delle categorie (800) */
  font-size: var(--bspc-font-md);
  color: var(--header-text-color);
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.mobile-menu-utilities .menu-item a:active {
  background-color: var(--bspc-bg-light);
}

.mobile-menu-utilities .menu-item a .link-content {
  display: flex;
  align-items: center;
  gap: 14px;
}

.mobile-menu-utilities .mobile-utility-icon { 
  width: 20px;
  height: 20px; 
  color: var(--bpc-accent, var(--bspc-blue-primary)); 
  flex-shrink: 0; 
}

/* HDR-03: Stile logout rosso (rimosso inline style) */
.mobile-menu-logout,
.mobile-menu-logout .mobile-utility-icon {
  color: var(--bspc-logout-red);
}

/* Freccina a destra */
.mobile-menu-utilities .menu-item a::after {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--bspc-border-dark);
  border-bottom: 2px solid var(--bspc-border-dark);
  transform: rotate(-45deg);
  margin-left: auto;
  opacity: 1;
}

/* 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 */
.mini-cart-panel{justify-content:flex-end;}
.mini-cart-content{margin-left:auto;width:92%;max-width:380px;height:auto;min-height:0;border-radius:0;box-shadow:-5px 0 24px rgba(0,0,0,.14);transform:translateX(100%);transition:transform .35s var(--bspc-ease-apple);overflow:hidden;background:var(--bspc-bg-white);}
.mini-cart-panel.is-visible .mini-cart-content{transform:translateX(0);}
.mini-cart-panel .dialog-close-button{position:absolute;top:12px;right:12px;}
.mini-cart-content .widget_shopping_cart_content{padding:0 22px calc(22px + env(safe-area-inset-bottom, 0px));flex:1 1 auto;min-height:0;display:flex;flex-direction:column;height:auto;overflow-y:auto;overscroll-behavior: contain; /* [Audit v6.0 #deepscan-4] */}

/* EMPTY STATE EDUCATIVO */
/* v6.4.x Sprint 7 - Fit generic empty-state inside mini-cart drawer */
.widget_shopping_cart_content .bpc-empty-state { padding: 30px 10px; }
.widget_shopping_cart_content .bpc-empty-state__icon { width: 52px; height: 52px; }
.widget_shopping_cart_content .bpc-empty-state__cta { font-size: var(--bspc-font-sm, 14px); padding: 0.5em 1em; }
.bpc-empty-cart{padding:26px 6px 18px 6px;text-align:center;color:var(--bspc-text-light);}
.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__text{
  margin:0 auto 18px;
  max-width:280px;
  color:var(--bspc-text-light);
  line-height:1.55;
}
.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(--bspc-text-light);
}
.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);
}
.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:var(--bspc-radius-medium);
  font-weight:600;      /* [Audit] era 800 */
  font-size:1rem;
  text-decoration:none;
  border:1px solid var(--bspc-border-medium);
  background:var(--bspc-bg-light);
  color:var(--header-text-color);
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.bpc-btn:hover{
  background:var(--bspc-bg-light);
  border-color:var(--bspc-border-dark);
}
.bpc-btn.primary{
  background:var(--header-link-hover);
  border-color:var(--header-link-hover);
  color:var(--bspc-bg-white);
}
.bpc-btn.primary:hover{
  background:var(--bspc-blue-primary-hover, var(--bspc-blue-primary-hover));
  border-color:var(--bspc-blue-primary-hover, var(--bspc-blue-primary-hover));
}

/* WIDGET LISTA */
.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:var(--bspc-border-dark) var(--bspc-bg-light);}
.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:var(--bspc-border-dark);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 var(--bspc-border-light);}
.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 var(--bspc-border-light);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(--bspc-text-light);}
.mini-cart-content .widget_shopping_cart_content a.remove.remove_from_cart_button{
  width:28px;height:28px;border-radius:50%;background:var(--bspc-bg-light);color:var(--bspc-text-secondary);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:var(--bspc-red-error);color:var(--bspc-bg-white);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 var(--bspc-border-light);font-size:1rem;font-weight:700;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;}

/*---------------------------- RESPONSIVE -----------------------------------*/
@media (max-width:1200px){
  /* .header-container{padding:0 20px;} Rimosso: gestito da var(--bspc-page-gutter) */
}
/* [7.11.8] Logo e icone sono ancorati ai bordi (position:absolute): la barra
   categorie centrata li raggiungeva e si sovrapponeva quando le categorie erano
   tante. Ora la barra appare solo con spazio sufficiente (>=1101px); sotto, il
   menu a tendina (hamburger) gestisce ogni numero di categorie in modo pulito. */
@media (max-width:1100px){
  .header-nav-desktop{display:none;}
}
@media (max-width:980px){
  .bresciapc-main-header{height:var(--header-height-mobile);}
  /* .header-container{padding:0 16px;gap:14px;} Rimosso */
  .header-icons{gap:8px;}
  .header-icons > :last-child{margin-right:0;} /* Corretto */
  .header-icon{padding:8px;}
  .hamburger-icon{padding:0;}
  .header-icon svg{width:18px;height:18px;}
  .cart-icon .cart-count{min-width:15px;padding:1px 4px;font-size:9px;transform:scale(1) translate(30%,-30%);}
}
@media (max-width:480px){
  /* .header-container{padding:0 14px;} Rimosso */
  .header-icons{gap:6px;}
  .header-icons > :last-child{margin-right:0;} /* Corretto */
  .header-icon{padding:8px;}
  .hamburger-icon{padding:0;}
  .header-icon svg{width:17px;height:17px;}
  .mobile-menu-content{max-width:320px;width:86%;}
  .mini-cart-content{max-width:320px;width:92%;}
  .search-dialog .search-form-container{padding:16px;}
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~                 DESIGN IMPROVEMENTS - HEADER                ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/* Apple.com header: icon ~17-18px, tap target ~44px */
.hamburger-icon {
  inline-size: 44px;
  block-size: 44px;
}

.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);
}

/* Ensure overlays always sit above the sticky header */
/* 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: var(--bspc-radius-small);
}

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

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~                 HEADER SEARCH MODAL - CLEAN UI              ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/* NASCONDI MICROFONO SE RESTA NEL MARKUP */
.header-search-mic,
.bpc-search-mic,
.search-mic,
.voice-search,
.bpc-voice-btn {
  display: none !important;
}

/* ==================================================================
   v6.4.x - Desktop submenu lazy placeholders (CRO Audit Sprint 2)

   Submenu images start as 1x1 placeholders. This provides a visible
   box while the real image hasn't loaded yet.
   ================================================================== */
.header-nav-desktop .submenu-image img[data-src] {
  background: var(--bspc-bg-light);
  min-height: 50px;
}

/* ==================================================================
   v6.4.x - Mobile brand limit + "Vedi tutti" (CRO Audit Sprint 2)

   Shows max 3 brands per category submenu. A button reveals the rest.
   ================================================================== */
.mobile-menu .sub-menu.bpc-brand-limited > li:nth-child(n+4) {
  display: none;
}
.mobile-menu .sub-menu.bpc-brand-limited.bpc-show-all > li:nth-child(n+4) {
  display: list-item;
}

.bpc-show-all-brands {
  display: block;
  width: 100%;
  padding: 12px 40px;
  background: none;
  border: none;
  border-top: 1px solid var(--bspc-border-light);
  font-size: var(--bspc-font-base-sm);
  font-weight: 600;
  color: var(--bspc-blue-primary);
  cursor: pointer;
  text-align: left;
  transition: background-color 0.15s ease, color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.bpc-show-all-brands:hover {
  background-color: var(--bspc-bg-light);
}
.bpc-show-all-brands:focus-visible {
  outline: 2px solid var(--bspc-blue-primary);
  outline-offset: -2px;
}

/* ==================================================================
   v6.4.x - Mobile brand search (CRO Audit Sprint 2)

   Inline search input at the top of the mobile menu to filter brands.
   ================================================================== */
.bpc-mobile-search {
  padding: 12px 16px;
  background: var(--bspc-bg-white);
  border-bottom: 1px solid var(--bspc-border-light);
  position: sticky;
  top: 0;
  z-index: 5;
}

.bpc-mobile-search__input {
  width: 100%;
  height: 40px;
  padding: 0 14px;
  font-size: var(--bspc-font-md); /* 16px - prevents iOS zoom */
  font-family: var(--bspc-font-family);
  border: 1px solid var(--bspc-border-light);
  border-radius: var(--bspc-radius-pill);
  background: var(--bspc-bg-light);
  color: var(--bspc-text-primary);
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bpc-mobile-search__input:focus {
  outline: none;
  border-color: var(--bspc-blue-primary);
  box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
  background: var(--bspc-bg-white);
}

.bpc-mobile-search__input::placeholder {
  color: var(--bspc-text-light);
}

/* AREA RISULTATI: POSIZIONAMENTO */
.bpc-search-modal,
.header-search-modal,
.search-dialog-content {
  position: relative;
}

/* PLACEHOLDER "EMPTY" - v5.0.3: rimosso position:absolute che copriva i risultati */
/* Il contenitore dello stato «nessuna ricerca in corso» era una scheda
   smerigliata centrata: serviva al vecchio modale, dentro il pannello a
   scomparsa e' solo un riquadro dentro un riquadro. Ora e' trasparente e
   allineato a sinistra, come il resto del pannello. */
.bpc-search-empty {
  display: block;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  padding: 0;
  /* auto ai lati: senza questo il contenuto resta incollato a sinistra sugli
     schermi larghi, mentre il campo di ricerca sopra e' centrato. */
  margin: 0 auto;
  max-width: 980px;
  width: 100%;
}

.bpc-search-empty-ico {
  width: 68px;
  height: 68px;
  opacity: 0.18;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 68px 68px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M10.5 18a7.5 7.5 0 1 1 7.5-7.5A7.51 7.51 0 0 1 10.5 18Zm0-13A5.5 5.5 0 1 0 16 10.5 5.51 5.51 0 0 0 10.5 5Z' fill='%23000000'/%3E%3Cpath d='M20.3 21.7 16.6 18a1 1 0 0 1 1.4-1.4l3.7 3.7a1 1 0 0 1-1.4 1.4Z' fill='%23000000'/%3E%3C/svg%3E");
}

.bpc-search-empty-msg {
  font-size: 0.95rem;
  line-height: 1.5;
  color: rgba(0, 0, 0, 0.8);
}

.bpc-search-empty-link {
  display: inline-block;
  margin-left: 6px;
  padding: 8px 14px;
  border-radius: var(--bspc-radius-medium);
  border: 1px solid var(--bspc-blue-primary);
  background: var(--bspc-blue-primary);
  color: var(--bspc-bg-light);
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  pointer-events: auto;
}
.bpc-search-empty-link:hover {
  background: var(--bspc-blue-primary-hover, var(--bspc-blue-primary-hover));
  border-color: var(--bspc-blue-primary-hover, var(--bspc-blue-primary-hover));
  color: var(--bspc-bg-light);
}

/* QUANDO CI SONO RISULTATI, NASCONDI PLACEHOLDER */
.bpc-search-has-results .bpc-search-empty {
  display: none;
}
/* Fallback CSS-only con :has() per browser moderni - nasconde il placeholder
   quando il container risultati ha figli (= risultati renderizzati dal JS) */
#bresciapc-search-dialog:has(#search-results > *) .bpc-search-empty {
  display: none;
}

/* Empty state "lanciatore": messaggio + ricerche rapide (chip) + CTA contattaci.
   I chip riusano lo stile .search-dialog .chip già esistente. */
.bpc-search-empty-msg { max-width: 34ch; margin: 0; }
.bpc-search-suggestions {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.bpc-search-suggestions-label {
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--bspc-text-light);
}
/* Il vecchio riquadro d'aiuto era una colonnina centrata larga 340px sotto una
   riga di separazione. Nel pannello nuovo e' una scheda a piena larghezza: le
   regole stanno tutte piu' in alto, qui non serve piu' niente. */
.bpc-search-empty-cta .bpc-search-empty-link { margin-left: 0; }

/* Dark */
[data-theme="dark"] .bpc-search-suggestions-label { color: rgba(255, 255, 255, 0.55); }
[data-theme="dark"] .bpc-search-empty-cta-text { color: rgba(255, 255, 255, 0.7); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .bpc-search-suggestions-label { color: rgba(255, 255, 255, 0.55); }
  :root:not([data-theme="light"]) .bpc-search-empty-cta-text { color: rgba(255, 255, 255, 0.7); }
}

.search-message {
  display: none !important;
}
/* =====================================================================
 * v6.0.0 - Skeleton loading per ricerca AJAX
 * ===================================================================== */
@keyframes bpc-skeleton-pulse {
  0%, 100% { opacity: 0.4; }
  50%      { opacity: 1; }
}
.bpc-skeleton-item {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--bspc-border-light, var(--bspc-border-light));
}
.bpc-skeleton-item:last-child {
  border-bottom: none;
}
.bpc-skeleton-thumb {
  width: 48px;
  height: 48px;
  border-radius: var(--bspc-radius-small, 8px);
  background: var(--bspc-bg-light, var(--bspc-bg-light));
  flex-shrink: 0;
  animation: bpc-skeleton-pulse 1.2s ease-in-out infinite;
}
.bpc-skeleton-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bpc-skeleton-line {
  height: 12px;
  border-radius: 6px;
  background: var(--bspc-bg-light, var(--bspc-bg-light));
  animation: bpc-skeleton-pulse 1.2s ease-in-out infinite;
}
.bpc-skeleton-line--title {
  width: 70%;
}
.bpc-skeleton-line--sub {
  width: 45%;
}


/* [7.12.0] Header a 3 zone REALI (logo | nav | icone).
   Prima logo e icone erano position:absolute ai bordi: tolti dal flusso, la nav
   centrata prendeva tutta la larghezza e con molte categorie scivolava SOTTO
   logo e icone (la sovrapposizione segnalata). Ora sono flex-item a larghezza
   naturale e la nav vive SOLO nello spazio in mezzo (flex:1; min-width:0),
   quindi non può mai raggiungerli. L'eventuale eccesso di voci è spostato nel
   menu "Altro" (JS priority-plus, initDesktopNavOverflow). */
header#bresciapc-header .header-container{position:relative;justify-content:space-between;}
header#bresciapc-header .header-logo{position:static;margin:0;}
header#bresciapc-header .header-logo a{margin:0;padding:0;display:flex;align-items:center;min-height:44px;}
header#bresciapc-header .header-icons{position:static;flex:0 0 auto;margin:0;}
header#bresciapc-header .header-nav-desktop{flex:1 1 auto;min-width:0;}

/* [7.12.0] Menu "Altro" (priority-plus): le categorie che non entrano nella
   barra vengono spostate qui dal JS (initDesktopNavOverflow). Voce sempre in
   coda; le voci in eccesso ricevono .is-nav-overflow (display:none). */
.header-nav-desktop .menu-item.is-nav-overflow{display:none;}
.header-nav-desktop .bpc-nav-more{position:relative;flex:0 0 auto;}
.header-nav-desktop .bpc-nav-more[hidden]{display:none;}
.header-nav-desktop .bpc-nav-more__toggle{
  display:inline-flex;align-items:center;gap:4px;cursor:pointer;
  background:none;border:0;font-family:inherit;
  color:var(--header-text-color);font-size:var(--bspc-font-base-sm);font-weight:500;
  padding:10px 6px;border-bottom:2px solid transparent;transition:color .2s ease;
}
.header-nav-desktop .bpc-nav-more__toggle svg{transition:transform .2s ease;}
.header-nav-desktop .bpc-nav-more:hover .bpc-nav-more__toggle,
.header-nav-desktop .bpc-nav-more:focus-within .bpc-nav-more__toggle{color:var(--header-link-hover);}
.header-nav-desktop .bpc-nav-more:hover .bpc-nav-more__toggle svg,
.header-nav-desktop .bpc-nav-more:focus-within .bpc-nav-more__toggle svg{transform:rotate(180deg);}
.header-nav-desktop .bpc-nav-more__panel{
  position:absolute;top:100%;right:0;left:auto;
  min-width:210px;max-height:70vh;overflow-y:auto;
  background:var(--bspc-bg-white);border:1px solid var(--bspc-border-light);
  border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,.16);
  padding:6px;margin-top:8px;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;
  z-index:var(--z-header-dropdown,60);
}
.header-nav-desktop .bpc-nav-more:hover .bpc-nav-more__panel,
.header-nav-desktop .bpc-nav-more:focus-within .bpc-nav-more__panel{
  opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s;
}
.header-nav-desktop .bpc-nav-more__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.header-nav-desktop .bpc-nav-more__list a{
  display:block;padding:9px 14px;border-radius:9px;white-space:nowrap;
  text-decoration:none;color:var(--header-text-color);font-size:var(--bspc-font-base-sm);font-weight:500;
  transition:background-color .15s ease,color .15s ease;
}
.header-nav-desktop .bpc-nav-more__list a:hover,
.header-nav-desktop .bpc-nav-more__list a:focus-visible{background:var(--bspc-bg-light);color:var(--header-link-hover);}
[data-theme="dark"] .header-nav-desktop .bpc-nav-more__panel{background:#1c1c1e;border-color:rgba(255,255,255,.10);box-shadow:0 18px 44px rgba(0,0,0,.5);}
[data-theme="dark"] .header-nav-desktop .bpc-nav-more__list a:hover,
[data-theme="dark"] .header-nav-desktop .bpc-nav-more__list a:focus-visible{background:rgba(255,255,255,.08);}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .header-nav-desktop .bpc-nav-more__panel{background:#1c1c1e;border-color:rgba(255,255,255,.10);box-shadow:0 18px 44px rgba(0,0,0,.5);}
  :root:not([data-theme="light"]) .header-nav-desktop .bpc-nav-more__list a:hover,
  :root:not([data-theme="light"]) .header-nav-desktop .bpc-nav-more__list a:focus-visible{background:rgba(255,255,255,.08);}
}

/* ==========================================================
   v6.4.x Sprint 8 - Dark mode toggle button
   ========================================================== */
.bpc-theme-toggle {
    position: relative;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.2s ease;
}
.bpc-theme-toggle:hover {
    background: rgba(0, 0, 0, 0.06);
}
/* In dark mode, invert hover */
[data-theme="dark"] .bpc-theme-toggle:hover {
    background: rgba(255, 255, 255, 0.1);
}
/* Show sun in dark mode, moon in light mode */
.bpc-theme-toggle__sun { display: none; }
.bpc-theme-toggle__moon { display: block; }
[data-theme="dark"] .bpc-theme-toggle__sun { display: block; }
[data-theme="dark"] .bpc-theme-toggle__moon { display: none; }
/* OS preference fallback */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .bpc-theme-toggle__sun { display: block; }
    :root:not([data-theme="light"]) .bpc-theme-toggle__moon { display: none; }
    :root:not([data-theme="light"]) .bpc-theme-toggle:hover { background: rgba(255, 255, 255, 0.1); }
}

/* [7.2.0 · dark fix] La media query mobile qui sopra hardcodava un glass
   BIANCO che scavalcava --header-bg-initial: su ogni telefono in dark mode
   l'header restava chiaro. Controparti dark con lo stesso pattern del tema. */
@media (max-width: 767.98px) {
  [data-theme="dark"] .bresciapc-main-header {
    background: var(--bspc-bg-white); /* fallback (token già dark) */
  }
  @supports (backdrop-filter: blur(1px)) {
    [data-theme="dark"] .bresciapc-main-header {
      background: rgba(0, 0, 0, 0.82);
    }
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .bresciapc-main-header {
      background: var(--bspc-bg-white);
    }
    @supports (backdrop-filter: blur(1px)) {
      :root:not([data-theme="light"]) .bresciapc-main-header {
        background: rgba(0, 0, 0, 0.82);
      }
    }
  }
}
@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)) {
  [data-theme="dark"] .bresciapc-main-header { background-color: rgba(0, 0, 0, 0.95); }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .bresciapc-main-header { background-color: rgba(0, 0, 0, 0.95); }
  }
}

/* [7.2.0 · dark fix] Empty-state della ricerca nel drawer: vetro chiaro
   hardcodato → controparte dark (icona già a bassa opacità, resta ok). */
[data-theme="dark"] .bpc-search-empty {
  background: rgba(28, 28, 30, 0.92);
  border-color: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .bpc-search-empty-ico { filter: invert(1); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .bpc-search-empty {
    background: rgba(28, 28, 30, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
  }
  :root:not([data-theme="light"]) .bpc-search-empty-ico { filter: invert(1); }
}

/* [7.40.2] Mantiene i quattro target da 44px senza overflow sui viewport
   ultra-mobile. Il logo si compatta, mentre i controlli restano accessibili. */
@media (max-width: 375px) {
  header#bresciapc-header .header-container {
    gap: 4px;
    padding-inline: 8px;
  }
  header#bresciapc-header .header-logo img {
    width: auto;
    max-width: 92px;
  }
  header#bresciapc-header .header-icons {
    min-width: 0;
    gap: 2px;
  }
  header#bresciapc-header .header-icons .header-icon {
    box-sizing: border-box;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    padding: 0;
  }
}

/* ==========================================================
   v7.42.0 - Navigation system: focused, responsive, accessible
   ========================================================== */
header#bresciapc-header.bresciapc-main-header {
  border-bottom-color: color-mix(in srgb, var(--bspc-border-light) 72%, transparent);
}

header#bresciapc-header .header-container {
  max-width: 1480px;
}

header#bresciapc-header .header-nav-desktop li.menu-item > a {
  
  
  letter-spacing: -.012em;
}

.header-nav-desktop .bpc-repair-menu > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.header-nav-desktop .bpc-nav-chevron {
  flex: 0 0 auto;
  transition: transform .2s ease;
}

.header-nav-desktop .bpc-repair-menu:hover .bpc-nav-chevron,
.header-nav-desktop .bpc-repair-menu:focus-within .bpc-nav-chevron {
  transform: rotate(180deg);
}

.header-nav-desktop .submenu.bpc-repair-hub {
  position: fixed;
  top: calc(var(--header-height-desktop) - 1px);
  left: 50%;
  width: min(940px, calc(100vw - 32px));
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(230px, .76fr) minmax(0, 1.6fr);
  gap: 22px;
  padding: 14px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--bspc-border-light) 82%, transparent);
  border-radius: 22px;
  background: color-mix(in srgb, var(--bspc-bg-white) 94%, transparent);
  box-shadow: 0 24px 70px rgba(15, 23, 42, .18), 0 3px 12px rgba(15, 23, 42, .08);
  transform: translateX(-50%) translateY(10px);
}

body.admin-bar .header-nav-desktop .submenu.bpc-repair-hub {
  /* Il backdrop-filter dell'header crea il containing block: l'offset della
     admin bar è già incluso nella posizione dell'header. */
  top: calc(var(--header-height-desktop) - 1px);
}

.header-nav-desktop .bpc-repair-menu:hover > .bpc-repair-hub,
.header-nav-desktop .bpc-repair-menu:focus-within > .bpc-repair-hub {
  transform: translateX(-50%) translateY(0);
}

.bpc-repair-hub__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: 25px 24px 22px;
  border-radius: 15px;
  background:
    radial-gradient(circle at 90% 0%, rgba(255,255,255,.18), transparent 42%),
    linear-gradient(145deg, #0057b8, #0066cc 56%, #1593ff);
  color: #fff;
}

.bpc-repair-hub__eyebrow {
  margin-bottom: 13px;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 760;
  letter-spacing: .105em;
  text-transform: uppercase;
  opacity: .78;
}

.bpc-repair-hub__title {
  max-width: 220px;
  font-size: clamp(21px, 2vw, 27px);
  line-height: 1.08;
  letter-spacing: -.035em;
}

.bpc-repair-hub__intro p {
  margin: 13px 0 22px;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255,255,255,.82);
}

.bpc-repair-hub__all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  margin-top: auto;
  padding: 0 15px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 12px;
  font-weight: 720;
  text-decoration: none;
  transition: background-color .18s ease, transform .18s ease;
}

.bpc-repair-hub__all:hover,
.bpc-repair-hub__all:focus-visible {
  color: #fff;
  background: rgba(255,255,255,.24);
  transform: translateY(-1px);
}

.bpc-repair-hub__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  gap: 7px;
  padding: 4px;
}

.bpc-repair-hub__item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 67px;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 13px;
  color: var(--bspc-text-primary);
  text-decoration: none;
  transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
}

.bpc-repair-hub__item:hover,
.bpc-repair-hub__item:focus-visible {
  border-color: color-mix(in srgb, var(--bspc-blue-primary) 18%, var(--bspc-border-light));
  background: color-mix(in srgb, var(--bspc-blue-primary) 7%, var(--bspc-bg-light));
  color: var(--bspc-text-primary);
  transform: translateY(-1px);
}

.bpc-repair-hub__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--bspc-blue-primary) 10%, var(--bspc-bg-light));
  color: var(--bspc-blue-primary);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
}

.bpc-repair-hub__item-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.bpc-repair-hub__item-copy strong {
  overflow: hidden;
  color: var(--bspc-text-primary);
  font-size: 13px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bpc-repair-hub__item-copy small {
  margin-top: 2px;
  color: var(--bspc-text-secondary);
  font-size: 10.5px;
  line-height: 1.25;
}

.bpc-repair-hub__arrow {
  color: var(--bspc-blue-primary);
  font-size: 16px;
  transition: transform .16s ease;
}

.bpc-repair-hub__item:hover .bpc-repair-hub__arrow,
.bpc-repair-hub__item:focus-visible .bpc-repair-hub__arrow {
  transform: translateX(2px);
}

.bpc-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-right: 4px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--bspc-blue-primary);
  box-shadow: 0 7px 18px rgba(0,102,204,.20);
  color: #fff;
  font-size: 12px;
  font-weight: 740;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.bpc-header-cta:hover,
.bpc-header-cta:focus-visible {
  background: #0066cc;
  box-shadow: 0 9px 22px rgba(0,102,204,.28);
  color: #fff;
  transform: translateY(-1px);
}

@media (min-width: 1101px) {
  header#bresciapc-header .hamburger-icon { display: none; }
}

@media (max-width: 1279px) {
  .bpc-header-cta { display: none; }
}

@media (min-width: 1101px) and (max-width: 1220px) {
  header#bresciapc-header .header-container { gap: 9px; }
  header#bresciapc-header .header-nav-desktop li.menu-item > a { padding-inline: 6px; font-size: 12px; }
  header#bresciapc-header .header-logo img { max-width: 132px; }
}

/* Mobile/tablet drawer: visible hierarchy and immediate actions. */
.mobile-menu-heading {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  padding: 11px 0;
}

.mobile-menu-header .mobile-menu-heading .mobile-menu-title {
  flex: 0 0 auto;
  padding: 0;
  font-size: 20px;
  line-height: 1.15;
  letter-spacing: -.02em;
}

.mobile-menu-heading > span {
  margin-top: 3px;
  color: var(--bspc-text-secondary);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
}

.bpc-mobile-menu-actions {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, .9fr);
  
  
  background: color-mix(in srgb, var(--bspc-bg-light) 72%, var(--bspc-bg-white));
}

.bpc-mobile-menu-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  
  padding: 0 12px;
  border: 1px solid var(--bspc-border-light);
  
  color: var(--bspc-text-primary);
  font-size: 12px;
  font-weight: 740;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
}

.bpc-mobile-menu-action--primary {
  border-color: var(--bspc-blue-primary);
  background: var(--bspc-blue-primary);
  color: #fff;
  box-shadow: 0 7px 16px rgba(0,102,204,.18);
}

.bpc-mobile-menu-action--primary:hover,
.bpc-mobile-menu-action--primary:focus-visible { color: #fff; }

.bpc-mobile-menu-action--secondary { background: var(--bspc-bg-white); }

.bpc-mobile-menu-section-label {
  padding: 10px 20px 8px;
  border-top: 1px solid var(--bspc-border-light);
  border-bottom: 1px solid var(--bspc-border-light);
  background: var(--bspc-bg-light);
  color: var(--bspc-text-secondary);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .085em;
  text-transform: uppercase;
}

@media (min-width: 481px) and (max-width: 1100px) {
  .mobile-menu-content { width: min(440px, 78vw); max-width: 440px; }
}

@media (max-width: 480px) {
  .mobile-menu-content { width: min(360px, 91vw); max-width: 360px; }
}

/*
 * Frontend autenticato: WordPress rende il menu account come lista flottante.
 * Sotto 783px i molti strumenti amministrativi possono farlo andare a capo e
 * coprire i controlli del sito. Lo teniamo nella prima riga e riserviamo il suo
 * target da 52px senza alterare il backend nativo di WordPress.
 */
@media (max-width: 782px) {
  body.admin-bar:not(.wp-admin) #wpadminbar #wp-toolbar {
    position: relative;
    height: 46px;
    max-height: 46px;
  }

  body.admin-bar:not(.wp-admin) #wpadminbar #wp-admin-bar-top-secondary {
    position: absolute;
    top: 0;
    right: 0;
    float: none;
    margin: 0;
  }

  body.admin-bar:not(.wp-admin) #wpadminbar #wp-admin-bar-root-default {
    box-sizing: border-box;
    height: 46px;
    max-height: 46px;
    max-width: calc(100% - 52px);
    overflow: hidden;
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bpc-repair-hub__item,
  .bpc-repair-hub__arrow,
  .bpc-header-cta,
  .header-nav-desktop .bpc-nav-chevron { transition: none; }
}

/* ==========================================================
   v7.44.0 - backend-driven professional navigation
   ========================================================== */
.bresciapc-main-header {
  display: block;
  height: auto;
  overflow: visible;
  border-bottom: 1px solid color-mix(in srgb, var(--bspc-border-light) 84%, transparent);
  background: color-mix(in srgb, var(--bspc-bg-white) 95%, transparent);
  box-shadow: 0 1px 0 rgba(15, 23, 42, .02);
}
.bresciapc-main-header.is-static { position: relative; top: auto !important; }
.bresciapc-main-header.scrolled,
body.scrolled .bresciapc-main-header {
  background: color-mix(in srgb, var(--bspc-bg-white) 98%, transparent);
  box-shadow: 0 12px 38px rgba(15, 23, 42, .09);
}

.bpc-header-utility {
  min-height: 34px;
  background: #0b1220;
  color: rgba(255,255,255,.76);
  font-size: 11px;
}
.bpc-header-utility__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1480px, 100%);
  min-height: 34px;
  margin: 0 auto;
  padding-inline: max(var(--bspc-page-gutter, 16px), env(safe-area-inset-left));
  box-sizing: border-box;
}
.bpc-header-utility__message {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: inherit;
  font-weight: 620;
  letter-spacing: .01em;
}
.bpc-header-utility__message > span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3bd27f;
  box-shadow: 0 0 0 4px rgba(59,210,127,.12);
}
.bpc-header-utility__links,
.bpc-header-utility-menu {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bpc-header-utility__links { margin-left: auto; }
.bpc-header-utility-menu a,
.bpc-header-utility__featured {
  color: rgba(255,255,255,.76);
  font-size: 11px;
  font-weight: 620;
  text-decoration: none;
  transition: color .16s ease;
}
.bpc-header-utility-menu a:hover,
.bpc-header-utility-menu a:focus-visible,
.bpc-header-utility__featured:hover,
.bpc-header-utility__featured:focus-visible { color: #fff; }
.bpc-header-utility__featured {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 7px;
  padding-left: 18px;
  border-left: 1px solid rgba(255,255,255,.16);
  color: #fff;
  white-space: nowrap;
}

header#bresciapc-header .header-container {
  max-width: 1480px;
  min-height: 74px;
  height: 74px;
  gap: clamp(16px, 2vw, 34px);
}
header#bresciapc-header .header-logo img {
  width: auto;
  height: 32px;
  max-width: 164px;
  margin: 0;
}
header#bresciapc-header .header-nav-desktop {
  flex: 1 1 auto;
  justify-content: flex-start;
  min-width: 0;
}
header#bresciapc-header .header-nav-desktop ul.header-nav-list {
  justify-content: flex-start;
  gap: 3px;
}
header#bresciapc-header .header-nav-desktop li.menu-item > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 11px;
  border: 0;
  color: var(--bspc-text-primary);
  font-size: 13px;
  font-weight: 680;
  letter-spacing: -.012em;
}
header#bresciapc-header .header-nav-desktop li.menu-item-has-children > a::before {
  content: "";
  order: 2;
  width: 6px;
  height: 6px;
  margin: -3px 0 0 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .18s ease, margin .18s ease;
}
header#bresciapc-header .header-nav-desktop li.menu-item-has-children:hover > a::before,
header#bresciapc-header .header-nav-desktop li.menu-item-has-children:focus-within > a::before {
  margin-top: 3px;
  transform: rotate(225deg);
}
header#bresciapc-header .header-nav-desktop li.menu-item > a::after {
  bottom: 3px;
  width: calc(100% - 22px);
  height: 2px;
  background: var(--bspc-blue-primary);
}

header#bresciapc-header .header-nav-desktop .submenu {
  top: calc(100% + 11px);
  left: 0;
  width: min(720px, calc(100vw - 40px));
  min-width: 560px;
  max-width: none;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--bspc-border-light) 84%, transparent);
  border-radius: 20px;
  background: var(--bspc-bg-white);
  box-shadow: 0 26px 70px rgba(15, 23, 42, .18), 0 4px 14px rgba(15,23,42,.06);
  transform: translateY(10px);
}
header#bresciapc-header .header-nav-desktop li.menu-item-has-children:hover > .submenu,
header#bresciapc-header .header-nav-desktop li.menu-item-has-children:focus-within > .submenu {
  transform: translateY(0);
}
header#bresciapc-header .header-nav-desktop li.menu-item-has-children.bpc-menu-force-closed > .submenu {
  transform: translateY(10px);
}
header#bresciapc-header .header-nav-desktop .submenu::before { top: -13px; height: 13px; }
header#bresciapc-header .header-nav-desktop .submenu-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
header#bresciapc-header .header-nav-desktop .submenu-item {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-height: 66px;
  padding: 9px;
  border: 1px solid transparent;
  border-radius: 13px;
  text-align: left;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}
header#bresciapc-header .header-nav-desktop .submenu-item:hover,
header#bresciapc-header .header-nav-desktop .submenu-item:focus-within {
  border-color: color-mix(in srgb, var(--bspc-blue-primary) 18%, var(--bspc-border-light));
  background: color-mix(in srgb, var(--bspc-blue-primary) 6%, var(--bspc-bg-light));
  transform: translateY(-1px);
}
header#bresciapc-header .header-nav-desktop .submenu-image {
  width: 46px;
  height: 46px;
  margin: 0;
  border: 0;
  border-radius: 11px;
  background: color-mix(in srgb, var(--bspc-blue-primary) 7%, var(--bspc-bg-light));
}
header#bresciapc-header .header-nav-desktop .submenu-item:hover .submenu-image { transform: none; box-shadow: none; }

/* ------------------------------------------------------------------------
   Tendine coerenti fra loro
   ------------------------------------------------------------------------
   «Riparazioni» ha le foto sui termini, «Servizi» no: senza immagine il testo
   cadeva nella prima colonna da 46px e le due tendine sembravano due
   programmi diversi. Qui ogni voce senza foto riceve la stessa piastrella,
   con un segno discreto al posto dell'immagine: la griglia torna allineata e
   la barra parla una lingua sola. */
header#bresciapc-header .header-nav-desktop .submenu-item:not(:has(.submenu-image))::before {
  content: "";
  width: 46px;
  height: 46px;
  border-radius: 11px;
  background-color: color-mix(in srgb, var(--bspc-blue-primary) 7%, var(--bspc-bg-light));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230066cc' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0 5 5l-9.4 9.4a2.1 2.1 0 0 1-3-3Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  align-self: center;
}
/* Le foto dei termini sono ritagli su fondo bianco: senza un po' d'aria
   toccano il bordo della piastrella e sembrano incollate. */
header#bresciapc-header .header-nav-desktop .submenu-image img { padding: 5px; box-sizing: border-box; }
header#bresciapc-header .header-nav-desktop .submenu-link {
  min-width: 0;
  padding: 0;
  color: var(--bspc-text-primary);
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 720;
}
header#bresciapc-header .header-nav-desktop .submenu-item-fallback {
  display: block;
  min-height: 0;
  padding: 0;
}
header#bresciapc-header .header-nav-desktop .submenu-item-fallback a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid var(--bspc-border-light);
  border-radius: 12px;
  color: var(--bspc-text-primary);
  font-size: 12.5px;
  font-weight: 680;
}
header#bresciapc-header .header-nav-desktop .submenu-item-fallback a:hover,
header#bresciapc-header .header-nav-desktop .submenu-item-fallback a:focus-visible {
  background: color-mix(in srgb, var(--bspc-blue-primary) 6%, var(--bspc-bg-light));
}
header#bresciapc-header .header-nav-desktop .submenu-cta {
  margin: 12px 0 0;
  padding: 12px 4px 2px;
  border-top: 1px solid var(--bspc-border-light);
  text-align: left;
}
header#bresciapc-header .header-nav-desktop .submenu-cta-link {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bspc-blue-primary);
  font-size: 12px;
  font-weight: 720;
}

header#bresciapc-header .header-icons {
  flex: 0 0 auto;
  gap: 2px;
}
header#bresciapc-header .header-icon {
  
  
  
  
  padding: 0;
  border: 1px solid transparent;
}
header#bresciapc-header .header-icon:hover,
header#bresciapc-header .header-icon:focus-visible {
  border-color: var(--bspc-border-light);
  background: var(--bspc-bg-light);
}
header#bresciapc-header .bpc-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  margin-right: 7px;
  padding: 0 17px;
  border: 1px solid var(--bspc-blue-primary);
  border-radius: 12px;
  background: var(--bspc-blue-primary);
  box-shadow: 0 8px 20px rgba(0,102,204,.18);
  color: #fff;
  font-size: 12px;
  font-weight: 760;
  text-decoration: none;
}
header#bresciapc-header .bpc-header-cta:hover,
header#bresciapc-header .bpc-header-cta:focus-visible {
  background: #0066cc;
  color: #fff;
  transform: translateY(-1px);
}

/* Drawer: same menu content as desktop, presentation adapted to touch. */
.mobile-menu-content {
  width: min(430px, 92vw);
  max-width: 430px;
  
  border-left: 1px solid var(--bspc-border-light);
  background: var(--bspc-bg-white);
  transform: translateX(100%);
}
.mobile-menu.is-visible .mobile-menu-content { transform: translateX(0); }
.mobile-menu-header {
  min-height: 72px;
  padding: 0 20px;
}
.mobile-menu-heading > span { color: var(--bspc-text-secondary); }
.bpc-mobile-menu-actions {
  gap: 9px;
  padding: 18px 20px;
}
.bpc-mobile-menu-action {
  min-height: 48px;
  border-radius: 12px;
}
.bpc-mobile-menu-section-label { padding-inline: 20px; }
.mobile-menu .bpc-mobile-primary-menu { padding: 5px 14px 8px; }
.mobile-menu .bpc-mobile-primary-menu > li.menu-item {
  border-bottom: 1px solid var(--bspc-border-light);
}
.mobile-menu .bpc-mobile-primary-menu > li.menu-item:last-child { border-bottom: 0; }
.mobile-menu .bpc-mobile-primary-menu .menu-item-wrapper { gap: 4px; }
.mobile-menu .bpc-mobile-primary-menu .menu-item-wrapper > a {
  min-height: 54px;
  padding: 0 8px;
  color: var(--bspc-text-primary);
  font-size: 15px;
  font-weight: 720;
}
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle {
  display: inline-flex !important;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin-right: 0;
  border: 0;
  border-radius: 11px;
  background: transparent;
}
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle:hover,
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle:focus-visible { background: var(--bspc-bg-light); }
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle .plus-icon {
  position: relative;
  width: 16px;
  height: 16px;
}
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle .plus-icon::before,
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle .plus-icon::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 2px;
  width: 12px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .18s ease;
}
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle .plus-icon::after { transform: rotate(90deg); }
.mobile-menu .bpc-mobile-primary-menu .submenu-toggle[aria-expanded="true"] .plus-icon::after { transform: rotate(0); }
.mobile-menu .bpc-mobile-primary-menu .sub-menu {
  margin: 0 0 7px;
  padding: 0 0 0 12px;
  border-left: 2px solid color-mix(in srgb, var(--bspc-blue-primary) 22%, var(--bspc-border-light));
  background: transparent;
}
.mobile-menu .bpc-mobile-primary-menu .sub-menu a {
  min-height: 46px;
  padding: 0 12px;
  border-radius: 10px;
  color: var(--bspc-text-secondary);
  font-size: 13px;
  font-weight: 620;
}
.mobile-menu .bpc-mobile-primary-menu .sub-menu a:hover,
.mobile-menu .bpc-mobile-primary-menu .sub-menu a:focus-visible {
  background: var(--bspc-bg-light);
  color: var(--bspc-blue-primary);
}
.mobile-menu-utilities { margin-top: 4px; padding: 18px 20px 30px; }
.mobile-menu-utilities .menu-item-title { margin-bottom: 9px; }
.mobile-menu-utilities .bpc-mobile-utility-menu { margin-bottom: 10px; }
.mobile-menu-utilities .bpc-mobile-utility-menu a,
.mobile-menu-utilities .mobile-menu-list .menu-item a {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 0 12px;
  border-radius: 10px;
  color: var(--bspc-text-secondary);
  font-size: 13px;
  font-weight: 620;
}
.mobile-menu-utilities .bpc-mobile-utility-menu a:hover,
.mobile-menu-utilities .bpc-mobile-utility-menu a:focus-visible { background: var(--bspc-bg-light); color: var(--bspc-blue-primary); }

@media (min-width: 1161px) {
  header#bresciapc-header .header-nav-desktop { display: flex; }
  header#bresciapc-header .hamburger-icon { display: none; }
}
@media (max-width: 1160px) {
  header#bresciapc-header .header-nav-desktop { display: none; }
  header#bresciapc-header .hamburger-icon { display: inline-flex; }
  header#bresciapc-header .bpc-header-cta { display: none; }
  header#bresciapc-header .header-container { min-height: 68px; height: 68px; }
}
@media (max-width: 767.98px) {
  .bpc-header-utility__inner {  justify-content: center; }
  .bpc-header-utility__message { overflow: hidden;  font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .bpc-header-utility-menu { display: none; }
  .bpc-header-utility__links { margin-left: 0; }
  .bpc-header-utility__featured { padding-left: 12px; font-size: 10px; }
  header#bresciapc-header .header-container { min-height: 64px; height: 64px; gap: 6px; }
  header#bresciapc-header .header-logo img { height: 27px; max-width: 132px; }
  header#bresciapc-header .account-icon { display: none; }
  header#bresciapc-header .header-icons { gap: 0; }
  header#bresciapc-header .header-icon { width: 44px; min-width: 44px; height: 44px; }
}
@media (max-width: 430px) {
  .mobile-menu-content { width: 100%; max-width: 100%; }
}
@media (max-width: 350px) {
  .bpc-header-utility__message { max-width: 55vw; }
  header#bresciapc-header .header-logo img { max-width: 108px; }
}

[data-theme="dark"] .bresciapc-main-header,
:root:not([data-theme="light"]) .bresciapc-main-header {
  background: color-mix(in srgb, var(--bspc-bg-white) 96%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .bpc-header-utility a,
  header#bresciapc-header .header-nav-desktop .submenu,
  .mobile-menu-content { transition: none; }
}

/* ==========================================================
   Wave 1: stable brand transition + contained mobile drawer
   ========================================================== */
header#bresciapc-header .header-logo {
  flex: 0 0 164px;
  width: 164px;
  min-width: 164px;
}
header#bresciapc-header .header-logo__link {
  position: relative;
  width: 100%;
  min-height: 44px;
  overflow: visible;
}
header#bresciapc-header .header-logo .header-logo__wordmark {
  opacity: 1;
  transform: scale(1);
  transform-origin: left center;
  transition: opacity .18s ease, transform .22s ease;
}
header#bresciapc-header .header-logo .header-logo__mark {
  position: absolute;
  top: 50%;
  left: 0;
  width: 36px;
  min-width: 36px;
  max-width: none;
  height: 36px;
  margin: 0;
  object-fit: contain;
  opacity: 0;
  transform: translateY(-50%) scale(.86);
  transform-origin: center;
  pointer-events: none;
  transition: opacity .18s ease, transform .22s ease;
}
header#bresciapc-header.scrolled .header-logo__wordmark,
body.scrolled header#bresciapc-header .header-logo__wordmark {
  opacity: 0;
  transform: scale(.94);
}
header#bresciapc-header.scrolled .header-logo__mark,
body.scrolled header#bresciapc-header .header-logo__mark {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

/* Search, cart and menu share the same predictable control geometry. */
header#bresciapc-header .header-icon {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  border-radius: 12px;
  appearance: none;
  touch-action: manipulation;
}
header#bresciapc-header .header-icon > svg {
  width: 20px;
  height: 20px;
}

/* Keep the closed off-canvas drawer inside its fixed containing block. */
.mobile-menu {
  right: 0;
  width: auto;
  contain: layout paint;
  overscroll-behavior: contain;
}
.mobile-menu[hidden] {
  display: none !important;
}
.mobile-menu-content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  height: 100%;
  max-height: 100%;
  margin: 0;
}

@media (max-width: 1160px) {
  header#bresciapc-header .header-logo {
    flex-basis: 132px;
    width: 132px;
    min-width: 132px;
  }
}

@media (max-width: 767.98px) {
  .bpc-header-utility__featured,
  .bpc-header-utility-menu a {
    display: inline-flex;
    align-items: center;
    
  }
  header#bresciapc-header .header-logo .header-logo__mark {
    width: 34px;
    min-width: 34px;
    height: 34px;
  }
}

@media (max-width: 350px) {
  header#bresciapc-header .header-logo {
    flex-basis: 108px;
    width: 108px;
    min-width: 108px;
  }
}

@media (prefers-reduced-motion: reduce) {
  header#bresciapc-header .header-logo__wordmark,
  header#bresciapc-header .header-logo__mark {
    transition: none;
  }
}

/* ==========================================================
   Overlay e navigazione mobile: override conclusivi
   ========================================================== */
.search-dialog,
.mobile-menu,
.mini-cart-panel {
  z-index: 100000;
}

body.admin-bar .search-dialog,
body.admin-bar .mobile-menu,
body.admin-bar .mini-cart-panel {
  top: 0;
  
  height: 100dvh;
}

body.mobile-menu-open #bpcDock,
body.search-dialog-open #bpcDock,
body.mini-cart-open #bpcDock,
body.mobile-menu-open .bpc-dock,
body.search-dialog-open .bpc-dock,
body.mini-cart-open .bpc-dock,
body.mobile-menu-open .iubenda-tp-btn,
body.search-dialog-open .iubenda-tp-btn,
body.mini-cart-open .iubenda-tp-btn,
body.mobile-menu-open .iubenda-tp-alert-btn,
body.search-dialog-open .iubenda-tp-alert-btn,
body.mini-cart-open .iubenda-tp-alert-btn {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 767.98px) {
  .bpc-header-utility,
  .bpc-header-utility__inner {
    min-height: 32px;
    height: 32px;
  }

  .bpc-header-utility__featured,
  .bpc-header-utility-menu a {
    min-height: 32px;
  }

  .bpc-header-utility__message {
    max-width: min(62vw, 260px);
  }
}

@media (max-width: 430px) {
  .bpc-mobile-menu-actions {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  }
}

@media (max-width: 350px) {
  .bpc-mobile-menu-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}
