/* Le3c v109 — rifinitura grafica responsive.
   Mantiene identità, banner e funzioni; esclude la modalità TV. */

html:not(.tv-mode) body{
  background:
    radial-gradient(circle at 8% -10%,rgba(186,255,0,.12),transparent 28rem),
    radial-gradient(circle at 100% 8%,rgba(84,63,222,.09),transparent 34rem),
    #f7f7fb;
}

/* Intestazione più leggera e ordinata */
html:not(.tv-mode) .topbar{
  border-bottom-color:rgba(36,22,154,.09);
  box-shadow:0 8px 28px rgba(27,20,91,.07);
}
html:not(.tv-mode) .search{
  border-color:#3021a8;
  box-shadow:0 6px 20px rgba(36,22,154,.09);
}
html:not(.tv-mode) .category-bar{
  position:relative;
  z-index:16;
  border-bottom:1px solid rgba(36,22,154,.07);
  background:rgba(255,255,255,.96);
  box-shadow:0 7px 22px rgba(36,22,154,.045);
}
html:not(.tv-mode) .category-strip button{
  border-color:#e2dff0;
  background:#fff;
  transition:border-color .16s,background .16s,color .16s,transform .16s;
}
html:not(.tv-mode) .category-strip button:hover{
  transform:translateY(-1px);
}

/* Hero più compatto e CTA più chiara */
@media(min-width:901px){
  html:not(.tv-mode) main{max-width:1320px;padding-top:18px}
  html:not(.tv-mode) .welcome{
    min-height:286px;
    padding:28px 34px;
    border-radius:28px;
    background-position:right 22%;
    box-shadow:0 20px 48px rgba(28,20,100,.18);
  }
  html:not(.tv-mode) .welcome>div{max-width:590px}
  html:not(.tv-mode) .welcome h1{
    max-width:570px;
    font-size:clamp(2.25rem,4vw,3.65rem);
    line-height:.98;
  }
  html:not(.tv-mode) .welcome p{
    max-width:520px;
    margin:12px 0 13px;
    font-size:.94rem;
  }
  html:not(.tv-mode) .trust{gap:7px}
  html:not(.tv-mode) .trust span{padding:7px 10px;font-size:.76rem}
  html:not(.tv-mode) .welcome .surprise{
    right:20px;
    bottom:20px;
    width:244px;
    padding:14px 17px;
    border:1px solid rgba(255,255,255,.55)!important;
    border-radius:20px;
    box-shadow:0 13px 28px rgba(12,8,62,.24),inset 0 -4px 0 rgba(36,22,154,.1);
  }
  html:not(.tv-mode) .welcome .surprise span{font-size:.72rem;font-weight:850}
  html:not(.tv-mode) .welcome .surprise strong{margin:4px 0;font-size:1.35rem;letter-spacing:-.025em}
  html:not(.tv-mode) .welcome .surprise small{font-size:.72rem;line-height:1.25}
}

/* Tre porte d’ingresso uniformi */
@media(min-width:761px){
  html:not(.tv-mode) .home-feature-row{gap:12px;margin:14px 0 18px}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-button,
  html:not(.tv-mode) .home-feature-row .technology-banner{
    min-height:158px;
    border-radius:20px;
    box-shadow:0 12px 26px rgba(36,22,154,.14);
  }
  html:not(.tv-mode) .home-feature-row .agenda-highlight-button:hover,
  html:not(.tv-mode) .home-feature-row .technology-banner:hover{
    transform:translateY(-2px);
    box-shadow:0 17px 32px rgba(36,22,154,.21);
  }
  html:not(.tv-mode) .home-feature-row .agenda-highlight-copy>strong,
  html:not(.tv-mode) .home-feature-row .technology-copy strong{
    font-size:1.22rem;
    line-height:1.08;
  }
}

/* Catalogo come superficie unica e leggibile */
html:not(.tv-mode) .catalog{
  margin-top:4px;
  padding:24px;
  border:1px solid rgba(36,22,154,.075);
  border-radius:28px;
  background:rgba(255,255,255,.9);
  box-shadow:0 18px 44px rgba(36,22,154,.075);
}
html:not(.tv-mode) .section-head{margin-bottom:10px}
html:not(.tv-mode) .quick-filters{margin-top:8px;margin-bottom:18px}
html:not(.tv-mode) .quick-filters button,
html:not(.tv-mode) .quick-filters a{
  border-color:#ddd9ee;
  box-shadow:0 3px 10px rgba(36,22,154,.035);
}
html:not(.tv-mode) .product-grid{gap:16px}
html:not(.tv-mode) .card{
  border-color:#e5e2ef;
  border-radius:20px;
  box-shadow:0 6px 18px rgba(36,22,154,.055);
}
html:not(.tv-mode) .card:hover{
  border-color:#cfc7f4;
  box-shadow:0 16px 32px rgba(36,22,154,.13);
}
html:not(.tv-mode) .card-media{
  background:linear-gradient(145deg,#fafafd,#f1f1f6);
}
html:not(.tv-mode) .card-media img{padding:7px}
html:not(.tv-mode) .card-body{padding:15px}
html:not(.tv-mode) .card h3{line-height:1.32}
html:not(.tv-mode) .price{color:#1f1684;letter-spacing:-.02em}
html:not(.tv-mode) .card-link{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:13px;
  box-shadow:0 8px 18px rgba(36,22,154,.16);
  transition:background .16s,transform .16s,box-shadow .16s;
}
html:not(.tv-mode) .card-link:hover{
  background:#392bb7;
  transform:translateY(-1px);
  box-shadow:0 11px 23px rgba(36,22,154,.23);
}

/* Scheda prodotto desktop: meno affollata */
@media(min-width:701px){
  html:not(.tv-mode) .product-dialog{
    width:min(1180px,calc(100vw - 48px));
    border-radius:26px;
    box-shadow:0 35px 90px rgba(18,12,72,.34);
  }
  html:not(.tv-mode) .product-dialog .product-view{max-height:88vh}
  html:not(.tv-mode) .product-dialog .detail-media{background:linear-gradient(145deg,#f8f8fb,#f0f0f5)}
  html:not(.tv-mode) .product-dialog .detail-copy{padding:28px 30px 34px}
  html:not(.tv-mode) .product-dialog .detail-copy h2{line-height:1.08;letter-spacing:-.035em}
  html:not(.tv-mode) .media-product-actions .share-product,
  html:not(.tv-mode) .media-product-actions .share-generic{
    border-radius:13px;
  }
}

/* Carrello più simile a un riepilogo d’ordine */
html:not(.tv-mode) .cart-dialog{
  border:0;
  border-radius:25px;
  box-shadow:0 32px 80px rgba(17,12,68,.32);
}
html:not(.tv-mode) .cart-item{
  padding:10px 0;
  border-bottom:1px solid #ece9f4;
}
html:not(.tv-mode) .pickup-order{
  border-color:#afe3bf;
  box-shadow:0 8px 22px rgba(32,173,91,.08);
}
html:not(.tv-mode) .checkout{
  box-shadow:0 9px 20px rgba(36,22,154,.2);
}

/* Mobile */
@media(max-width:640px){
  html:not(.tv-mode) body{
    padding-bottom:calc(82px + env(safe-area-inset-bottom));
    background:#f7f7fb;
  }
  html:not(.tv-mode) .topbar{
    padding:7px 10px 8px;
    padding-top:max(7px,env(safe-area-inset-top));
    background:rgba(255,255,255,.97);
  }
  html:not(.tv-mode) .search{
    height:52px;
    border-radius:16px;
    box-shadow:0 5px 16px rgba(36,22,154,.12);
  }
  html:not(.tv-mode) .category-strip{
    top:calc(67px + env(safe-area-inset-top));
    gap:7px;
    padding:8px 10px;
  }
  html:not(.tv-mode) .category-strip button{
    min-height:38px;
    padding:7px 12px;
    font-size:.78rem;
  }
  html:not(.tv-mode) main{padding:10px 9px 38px}

  html:not(.tv-mode) .welcome{
    min-height:248px;
    padding:66px 12px 10px;
    border-radius:19px;
    background-position:center 44%;
    box-shadow:0 13px 30px rgba(28,20,100,.18);
  }
  html:not(.tv-mode) .hero-logo{
    top:5px;
    width:150px;
    height:66px;
  }
  html:not(.tv-mode) .welcome h1{
    max-width:225px;
    font-size:1.38rem;
    line-height:1;
  }
  html:not(.tv-mode) .welcome .trust{
    position:absolute;
    left:10px;
    bottom:48px;
    display:flex;
    max-width:calc(100% - 20px);
    gap:4px;
    margin:0;
  }
  html:not(.tv-mode) .welcome .trust span{
    display:none;
    padding:4px 6px;
    background:rgba(22,13,98,.72);
    font-size:.55rem;
  }
  html:not(.tv-mode) .welcome .trust span:first-child,
  html:not(.tv-mode) .welcome .trust span:nth-child(2){display:inline-flex}
  html:not(.tv-mode) .welcome .surprise{
    left:9px;
    right:9px;
    bottom:7px;
    min-height:36px;
    padding:6px 10px;
    border-radius:12px;
    box-shadow:0 7px 16px rgba(12,8,62,.2);
  }
  html:not(.tv-mode) .welcome .surprise strong{font-size:.86rem}

  html:not(.tv-mode) .home-feature-row{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    margin:9px 0 12px;
  }
  html:not(.tv-mode) .home-feature-row .agenda-highlight,
  html:not(.tv-mode) .home-feature-row .technology-showcase{min-width:0;margin:0}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-button,
  html:not(.tv-mode) .home-feature-row .technology-banner{
    display:flex;
    min-height:104px;
    height:100%;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    padding:9px 6px;
    border-radius:15px;
    text-align:center;
    box-shadow:0 7px 17px rgba(36,22,154,.12);
  }
  html:not(.tv-mode) .home-feature-row .agenda-highlight-visual,
  html:not(.tv-mode) .home-feature-row .technology-visual{
    width:38px;
    height:38px;
    flex:0 0 38px;
    margin:0 auto;
    border-radius:11px;
    box-shadow:2px 2px 0 #baff00;
    transform:none;
  }
  html:not(.tv-mode) .home-feature-row .agenda-highlight-visual::before{display:none}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-visual small{display:none}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-visual strong{font-size:.78rem}
  html:not(.tv-mode) .home-feature-row .technology-visual svg{width:27px;height:27px}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-copy>small,
  html:not(.tv-mode) .home-feature-row .technology-copy small,
  html:not(.tv-mode) .home-feature-row .agenda-highlight-copy>span,
  html:not(.tv-mode) .home-feature-row .technology-copy>span,
  html:not(.tv-mode) .home-feature-row .agenda-highlight-cta,
  html:not(.tv-mode) .home-feature-row .technology-copy em{display:none}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-copy>strong,
  html:not(.tv-mode) .home-feature-row .technology-copy strong{
    display:-webkit-box;
    overflow:hidden;
    color:#fff;
    font-size:.72rem;
    line-height:1.12;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  html:not(.tv-mode) .catalog{
    margin:0 -1px;
    padding:14px 9px 18px;
    border-radius:20px;
    box-shadow:0 10px 25px rgba(36,22,154,.06);
  }
  html:not(.tv-mode) .section-head h2{font-size:1.42rem}
  html:not(.tv-mode) .actions{margin-top:9px}
  html:not(.tv-mode) .actions select,
  html:not(.tv-mode) .actions .refresh{min-height:42px;font-size:.8rem}
  html:not(.tv-mode) .quick-filters{gap:6px;margin:8px 0 12px}
  html:not(.tv-mode) .quick-filters button,
  html:not(.tv-mode) .quick-filters a{
    min-height:38px;
    padding:7px 8px;
    font-size:.74rem;
  }
  html:not(.tv-mode) .product-grid{gap:9px}
  html:not(.tv-mode) .card{
    border-radius:17px;
    box-shadow:0 5px 14px rgba(36,22,154,.06);
  }
  html:not(.tv-mode) .card-media img{padding:4px}
  html:not(.tv-mode) .card-body{padding:10px}
  html:not(.tv-mode) .vendor{margin-bottom:5px;font-size:.61rem}
  html:not(.tv-mode) .card h3{
    min-height:2.65em;
    font-size:.84rem;
    line-height:1.32;
  }
  html:not(.tv-mode) .price{margin:9px 0 10px;font-size:1.12rem}
  html:not(.tv-mode) .compare-price{min-height:0;font-size:.62rem}
  html:not(.tv-mode) .card-link{
    min-height:42px;
    padding:8px 5px;
    border-radius:11px;
    font-size:.78rem;
    box-shadow:none;
  }

  html:not(.tv-mode) .product-dialog[open] .detail-media{
    min-height:32dvh;
    padding:calc(10px + env(safe-area-inset-top)) 12px 8px;
  }
  html:not(.tv-mode) .product-dialog[open] .detail-main-image{
    height:26dvh;
    max-height:270px;
  }
  html:not(.tv-mode) .product-dialog[open] .detail-copy{
    padding:15px 14px calc(74px + env(safe-area-inset-bottom))!important;
  }
  html:not(.tv-mode) .product-dialog .detail-copy h2{
    margin-right:38px;
    font-size:1.28rem;
    line-height:1.12;
  }
  html:not(.tv-mode) .detail-price{font-size:1.5rem}
  html:not(.tv-mode) .detail-stock{padding:9px 11px}
  html:not(.tv-mode) .variant-sheet-trigger{min-height:54px}
  html:not(.tv-mode) .product-dialog .add-cart{
    min-height:50px;
    border-radius:13px;
  }
  html:not(.tv-mode) .media-product-actions{gap:6px}
  html:not(.tv-mode) .media-product-actions .share-product,
  html:not(.tv-mode) .media-product-actions .share-generic{
    min-height:46px;
    height:46px;
    font-size:.73rem;
  }

  html:not(.tv-mode) .cart-dialog{
    inset:auto 0 0;
    width:100%;
    max-width:none;
    max-height:90dvh;
    margin:0;
    padding:22px 15px calc(18px + env(safe-area-inset-bottom));
    border-radius:24px 24px 0 0;
    overflow-y:auto;
  }
  html:not(.tv-mode) .cart-dialog h2{font-size:1.55rem}
  html:not(.tv-mode) .pickup-order{padding:12px}
  html:not(.tv-mode) .cart-actions{gap:8px}
  html:not(.tv-mode) .cart-actions button{min-height:48px}

  html:not(.tv-mode) .mobile-nav{
    min-height:70px;
    padding-top:5px;
    border-radius:20px 20px 0 0;
    box-shadow:0 -9px 28px rgba(28,20,92,.13);
  }
  html:not(.tv-mode) .mobile-nav a,
  html:not(.tv-mode) .mobile-nav button{
    min-height:54px;
    border-radius:13px;
    font-size:.68rem;
  }
  html:not(.tv-mode) .mobile-nav svg{width:23px;height:23px}
}

@media(max-width:380px){
  html:not(.tv-mode) .welcome{min-height:238px}
  html:not(.tv-mode) .home-feature-row{gap:5px}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-button,
  html:not(.tv-mode) .home-feature-row .technology-banner{min-height:98px;padding:8px 4px}
  html:not(.tv-mode) .home-feature-row .agenda-highlight-copy>strong,
  html:not(.tv-mode) .home-feature-row .technology-copy strong{font-size:.66rem}
}


/* v109.1 — correzione iPhone: una sola barra sticky e nessuna sovrapposizione */
@media(max-width:640px){
  html:not(.tv-mode) .category-bar{
    position:sticky!important;
    top:calc(67px + env(safe-area-inset-top))!important;
    z-index:18!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    background:#fff!important;
  }
  html:not(.tv-mode) .category-bar .category-strip{
    position:static!important;
    inset:auto!important;
    display:flex!important;
    width:100%!important;
    min-height:54px!important;
    margin:0!important;
    padding:8px 10px!important;
    transform:none!important;
    background:#fff!important;
  }
  html:not(.tv-mode) .category-arrow{display:none!important}
  html:not(.tv-mode) .welcome{margin-top:0!important}
  html:not(.tv-mode) .footer-jump{display:none!important}
  html:not(.tv-mode) .section-head{margin-bottom:8px}
  html:not(.tv-mode) .section-head .actions{grid-template-columns:88px minmax(0,1fr)!important;gap:7px}
  html:not(.tv-mode) .section-head .actions .refresh{
    grid-column:1/-1!important;
    width:100%!important;
    min-width:0!important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  html:not(.tv-mode) .catalog{scroll-margin-top:130px}
}


/* v109.2 — hero mobile ordinato, senza sovrapposizioni */
@media(max-width:640px){
  html:not(.tv-mode) .welcome{
    position:relative!important;
    min-height:270px!important;
    padding:0!important;
    overflow:hidden!important;
  }
  html:not(.tv-mode) .welcome>div{
    position:static!important;
    max-width:none!important;
    padding:0!important;
  }
  html:not(.tv-mode) .hero-logo{
    position:absolute!important;
    top:8px!important;
    right:10px!important;
    left:auto!important;
    width:132px!important;
    height:58px!important;
    object-fit:contain!important;
  }
  html:not(.tv-mode) .welcome .eyebrow,
  html:not(.tv-mode) .welcome>div>p{display:none!important}
  html:not(.tv-mode) .welcome h1{
    position:absolute!important;
    z-index:2!important;
    top:76px!important;
    left:12px!important;
    width:min(245px,calc(100% - 24px))!important;
    max-width:245px!important;
    margin:0!important;
    font-size:1.42rem!important;
    line-height:1.02!important;
  }
  html:not(.tv-mode) .welcome .trust{
    position:absolute!important;
    z-index:3!important;
    left:10px!important;
    right:10px!important;
    bottom:50px!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    width:auto!important;
    max-width:none!important;
    gap:5px!important;
    margin:0!important;
  }
  html:not(.tv-mode) .welcome .trust span{
    min-width:0!important;
    padding:5px 7px!important;
    overflow:hidden!important;
    font-size:.53rem!important;
    line-height:1!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html:not(.tv-mode) .welcome .trust span:first-child{max-width:174px!important}
  html:not(.tv-mode) .welcome .surprise{
    z-index:4!important;
    left:8px!important;
    right:8px!important;
    bottom:7px!important;
    min-height:36px!important;
    padding:6px 10px!important;
  }
}
@media(max-width:360px){
  html:not(.tv-mode) .hero-logo{width:116px!important;height:52px!important}
  html:not(.tv-mode) .welcome h1{top:70px!important;max-width:220px!important;font-size:1.28rem!important}
  html:not(.tv-mode) .welcome .trust span:first-child{max-width:150px!important}
}


/* Scanner codice a barre */
.search .barcode-search{
  display:none;
  flex:0 0 48px;
  width:48px;
  padding:0;
  border:0;
  border-left:1px solid #e4e0f2;
  background:#fff;
  color:#24169a;
}
.search .barcode-search svg{
  width:23px;
  height:23px;
  margin:0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
}
.barcode-dialog{
  width:min(460px,calc(100vw - 28px));
  padding:0;
  border:0;
  border-radius:24px;
  color:#111027;
  background:#fff;
  box-shadow:0 30px 80px rgba(20,12,85,.35);
}
.barcode-dialog::backdrop{background:rgba(18,13,65,.7);backdrop-filter:blur(5px)}
.barcode-dialog .dialog-close{z-index:4}
.barcode-intro,.barcode-view{padding:30px 24px 24px;text-align:center}
.barcode-intro-icon{
  display:grid;
  width:62px;
  height:62px;
  margin:0 auto 12px;
  place-items:center;
  border-radius:18px;
  color:#24169a;
  background:#baff00;
  font-size:2rem;
  font-weight:900;
}
.barcode-intro small{color:#24169a;font-weight:900;letter-spacing:.1em}
.barcode-intro h2,.barcode-view h2{margin:7px 35px 8px;font-size:1.55rem;line-height:1.08}
.barcode-intro p,.barcode-view p{margin:0 auto 18px;color:#696579;line-height:1.45}
.barcode-intro button{
  width:100%;
  min-height:50px;
  border:0;
  border-radius:14px;
  color:#fff;
  background:#24169a;
  font-weight:900;
}
.barcode-camera{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  border-radius:18px;
  background:#111;
}
.barcode-camera video{display:block;width:100%;height:100%;object-fit:cover}
.barcode-camera span{
  position:absolute;
  inset:18% 9%;
  border:3px solid #baff00;
  border-radius:14px;
  box-shadow:0 0 0 999px rgba(0,0,0,.25);
}
.barcode-camera span::after{
  content:"";
  position:absolute;
  left:7%;
  right:7%;
  top:50%;
  height:2px;
  background:#ff5454;
  box-shadow:0 0 8px #ff5454;
}
.barcode-status{min-height:24px;padding-top:12px;color:#24169a;font-size:.85rem;font-weight:800}
@media(max-width:900px){
  .search .barcode-search{display:grid;place-items:center}
}
@media(max-width:640px){
  html:not(.tv-mode) .search>svg{width:18px;margin:0 7px 0 10px}
  html:not(.tv-mode) .search input{font-size:.86rem}
  html:not(.tv-mode) .search>button[type="submit"]{padding:0 13px;font-size:.78rem}
  html:not(.tv-mode) .search .barcode-search{display:grid!important;flex-basis:43px;width:43px}
  .barcode-dialog{width:calc(100vw - 18px);border-radius:22px}
  .barcode-intro,.barcode-view{padding:28px 16px 18px}
  .barcode-intro h2,.barcode-view h2{font-size:1.35rem}
}


/* v109.3 — logo Quiscuola più visibile a sinistra su mobile */
@media(max-width:640px){
  html:not(.tv-mode) .hero-logo{
    top:6px!important;
    right:auto!important;
    left:12px!important;
    width:160px!important;
    height:70px!important;
  }
  html:not(.tv-mode) .welcome h1{top:88px!important}
}
@media(max-width:360px){
  html:not(.tv-mode) .hero-logo{
    left:10px!important;
    width:145px!important;
    height:62px!important;
  }
  html:not(.tv-mode) .welcome h1{top:80px!important}
}


/* v109.4 — logo mobile interamente dentro il banner */
@media(max-width:640px){
  html:not(.tv-mode) .hero-logo{
    transform:none!important;
    object-fit:contain!important;
    max-width:calc(100% - 24px)!important;
  }
}


/* Scanner disponibile solo sul sito e nella PWA del browser */
html.store-app .search .barcode-search{display:none!important}


/* v109.5 — rifinitura finale del banner mobile */
@media(max-width:640px){
  html:not(.tv-mode) .welcome{
    background-position:center 32%!important;
  }
  html:not(.tv-mode) .hero-logo{
    top:5px!important;
    left:18px!important;
    width:178px!important;
    height:76px!important;
    max-width:calc(100% - 36px)!important;
  }
  html:not(.tv-mode) .welcome h1{top:94px!important}
  html:not(.tv-mode) .welcome .trust{
    left:8px!important;
    right:8px!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:auto!important;
    gap:6px!important;
  }
  html:not(.tv-mode) .welcome .trust span:first-child,
  html:not(.tv-mode) .welcome .trust span:nth-child(2){
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    min-height:28px!important;
    align-items:center!important;
    justify-content:center!important;
    padding:5px 6px!important;
    overflow:visible!important;
    font-size:.56rem!important;
    line-height:1.1!important;
    text-align:center!important;
    text-overflow:clip!important;
    white-space:normal!important;
  }
}
@media(max-width:360px){
  html:not(.tv-mode) .hero-logo{
    left:15px!important;
    width:160px!important;
    height:69px!important;
  }
  html:not(.tv-mode) .welcome h1{top:86px!important}
  html:not(.tv-mode) .welcome .trust span:first-child,
  html:not(.tv-mode) .welcome .trust span:nth-child(2){font-size:.51rem!important}
}


/* v109.6 — ricerca stabile, ritaglio banner e foto prodotto a schermo intero */
@media(max-width:640px){
  html:not(.tv-mode) .search input,
  html:not(.tv-mode) input[type="search"]{
    font-size:16px!important;
  }
  html:not(.tv-mode) .welcome{
    min-height:300px!important;
    background-position:center 68%!important;
  }
  html:not(.tv-mode) .welcome .trust{bottom:50px!important}
}
.detail-image-stage{position:relative}
.product-image-zoom{
  position:absolute;
  z-index:5;
  right:14px;
  bottom:14px;
  display:inline-flex;
  min-width:46px;
  min-height:46px;
  padding:0 13px;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:999px;
  color:#24169a;
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 24px rgba(22,15,91,.2);
  font:800 .78rem/1 system-ui,sans-serif;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.product-image-zoom svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.image-zoom-dialog{
  inset:0;
  width:100vw;
  height:100dvh;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  color:#fff;
  background:#090812;
  overflow:hidden;
}
.image-zoom-dialog::backdrop{background:#090812}
.image-zoom-stage{
  display:flex;
  width:100%;
  height:100%;
  padding:calc(62px + env(safe-area-inset-top)) 14px calc(88px + env(safe-area-inset-bottom));
  align-items:center;
  justify-content:center;
  overflow:auto;
  overscroll-behavior:contain;
}
.image-zoom-stage img{
  display:block;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  transform-origin:center;
  transition:transform .18s ease;
  user-select:none;
  -webkit-user-drag:none;
}
.image-zoom-close{
  position:fixed;
  z-index:3;
  top:calc(12px + env(safe-area-inset-top));
  right:14px;
  display:grid;
  width:46px;
  height:46px;
  padding:0;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:#fff;
  background:rgba(255,255,255,.13);
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.image-zoom-controls{
  position:fixed;
  z-index:3;
  left:50%;
  bottom:calc(16px + env(safe-area-inset-bottom));
  display:flex;
  padding:5px;
  gap:4px;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.13);
  box-shadow:0 10px 28px rgba(0,0,0,.32);
  backdrop-filter:blur(12px);
}
.image-zoom-controls button{
  min-width:46px;
  height:42px;
  padding:0 12px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:transparent;
  font-size:1.15rem;
  font-weight:850;
  cursor:pointer;
}
.image-zoom-controls #imageZoomReset{min-width:74px;font-size:.82rem}
.image-zoom-controls button:focus-visible,.image-zoom-close:focus-visible,.product-image-zoom:focus-visible{outline:3px solid #baff00;outline-offset:3px}
body.image-zoom-open{overflow:hidden!important}
body.image-zoom-open .mobile-nav,
body.image-zoom-open .whatsapp,
body.image-zoom-open .install-banner,
body.image-zoom-open .cookie-banner,
body.image-zoom-open .android-install-fixed{display:none!important}
@media(max-width:640px){
  .product-image-zoom{
    right:10px;
    bottom:10px;
    min-width:44px;
    min-height:44px;
    padding:0;
  }
  .product-image-zoom span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}


/* v109.7 — tutti i comandi della scheda prodotto restano raggiungibili */
@media(min-width:701px){
  html:not(.tv-mode) .product-dialog{
    max-height:92dvh;
    overflow:hidden!important;
  }
  html:not(.tv-mode) .product-dialog .product-view{
    height:min(88dvh,840px);
    max-height:88dvh!important;
    overflow:hidden!important;
  }
  html:not(.tv-mode) .product-dialog .detail-media,
  html:not(.tv-mode) .product-dialog .detail-copy{
    min-height:0;
    max-height:88dvh;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:none;
  }
  html:not(.tv-mode) .product-dialog .detail-media::-webkit-scrollbar,
  html:not(.tv-mode) .product-dialog .detail-copy::-webkit-scrollbar{display:none}
  html:not(.tv-mode) .product-dialog .detail-media{
    padding:22px 24px 26px;
  }
  html:not(.tv-mode) .product-dialog .detail-main-image{
    width:100%;
    max-height:52dvh;
    aspect-ratio:auto;
    object-fit:contain;
  }
  html:not(.tv-mode) .product-dialog .detail-thumbs{margin-top:10px}
  html:not(.tv-mode) .product-dialog .media-product-actions{padding-bottom:8px}
}
@media(max-width:700px){
  html:not(.tv-mode) .product-dialog[open]{
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  html:not(.tv-mode) .product-dialog[open] .product-view,
  html:not(.tv-mode) .product-dialog[open] .detail-media,
  html:not(.tv-mode) .product-dialog[open] .detail-copy{
    height:auto!important;
    min-height:0;
    max-height:none!important;
    overflow:visible!important;
  }
  html:not(.tv-mode) .product-dialog[open] .detail-copy{
    padding-bottom:calc(38px + env(safe-area-inset-bottom))!important;
  }
  html:not(.tv-mode) .product-dialog[open] .add-cart{
    position:static!important;
    bottom:auto!important;
  }
  html:not(.tv-mode) .product-dialog[open] .media-product-actions{
    padding-bottom:8px;
  }
}


/* v109.8 — logo Quiscuola mobile ingrandito del 30% */
@media(max-width:640px){
  html:not(.tv-mode) .hero-logo{
    width:231px!important;
    height:99px!important;
    max-width:calc(100% - 36px)!important;
  }
  html:not(.tv-mode) .welcome h1{top:117px!important}
}
@media(max-width:360px){
  html:not(.tv-mode) .hero-logo{
    width:208px!important;
    height:90px!important;
  }
  html:not(.tv-mode) .welcome h1{top:106px!important}
}


/* v109.9 — acquisto rapido nelle schede prodotto mobile */
.card-actions{display:block}
.card-quick-add{display:none}
@media(max-width:640px){
  html:not(.tv-mode) .card-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:6px;
    margin-top:auto;
  }
  html:not(.tv-mode) .card-actions .card-link,
  html:not(.tv-mode) .card-actions .card-quick-add{
    width:100%;
    min-width:0;
    min-height:44px;
    margin:0;
    padding:7px 4px;
    border-radius:11px;
    font-size:.7rem;
    line-height:1.05;
  }
  html:not(.tv-mode) .card-actions .card-quick-add{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    border:0;
    color:#24169a;
    background:#baff00;
    font-weight:900;
    cursor:pointer;
    box-shadow:inset 0 -3px 0 rgba(36,22,154,.12);
  }
  html:not(.tv-mode) .card-actions .card-quick-add svg{
    width:16px;
    height:16px;
    flex:0 0 auto;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  html:not(.tv-mode) .card-actions .card-quick-add.added{
    color:#fff;
    background:#159447;
  }
  html:not(.tv-mode) .card-actions .card-quick-add:disabled{
    color:#777383;
    background:#e9e7ef;
    box-shadow:none;
    cursor:not-allowed;
  }
}


/* v109.10 — acquisto rapido disponibile anche su desktop */
html:not(.tv-mode) .card-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  margin-top:auto;
}
html:not(.tv-mode) .card-actions .card-link,
html:not(.tv-mode) .card-actions .card-quick-add{
  width:100%;
  min-width:0;
  min-height:48px;
  margin:0;
  padding:9px 7px;
  border-radius:12px;
  font-size:.82rem;
  line-height:1.05;
}
html:not(.tv-mode) .card-actions .card-quick-add{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:0;
  color:#24169a;
  background:#baff00;
  font-weight:900;
  cursor:pointer;
  box-shadow:inset 0 -3px 0 rgba(36,22,154,.12);
}
html:not(.tv-mode) .card-actions .card-quick-add svg{
  width:18px;
  height:18px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html:not(.tv-mode) .card-actions .card-quick-add.added{color:#fff;background:#159447}
html:not(.tv-mode) .card-actions .card-quick-add:disabled{
  color:#777383;
  background:#e9e7ef;
  box-shadow:none;
  cursor:not-allowed;
}
@media(max-width:640px){
  html:not(.tv-mode) .card-actions{gap:6px}
  html:not(.tv-mode) .card-actions .card-link,
  html:not(.tv-mode) .card-actions .card-quick-add{
    min-height:44px;
    padding:7px 4px;
    border-radius:11px;
    font-size:.7rem;
  }
  html:not(.tv-mode) .card-actions .card-quick-add{gap:4px}
  html:not(.tv-mode) .card-actions .card-quick-add svg{width:16px;height:16px}
}


/* v109.11 — logo mobile ulteriormente ingrandito del 40% e spostato a sinistra */
@media(max-width:640px){
  html:not(.tv-mode) .hero-logo{
    left:calc(18px - 10vw)!important;
    width:323px!important;
    height:139px!important;
  }
  html:not(.tv-mode) .welcome h1{top:156px!important}
}
@media(max-width:360px){
  html:not(.tv-mode) .hero-logo{
    left:calc(15px - 10vw)!important;
    width:291px!important;
    height:126px!important;
  }
  html:not(.tv-mode) .welcome h1{top:144px!important}
}


/* v109.16 — nelle app native non mostrare inviti a installare l’app */
html.store-app .install-top,
html.store-app .install-banner,
html.store-app .android-install-fixed{
  display:none!important;
}


/* UX catalogo v120: azioni chiare, preferiti vuoti e Admin riservato */
html:not(.is-admin) [data-admin-entry]{
  display:none!important;
}
.card-actions.single-action{
  grid-template-columns:minmax(0,1fr)!important;
}
.card-actions.single-action .card-link{
  grid-column:1/-1;
  width:100%;
}
.favorites-empty{
  display:grid;
  justify-items:center;
  gap:.55rem;
  text-align:center;
}
.favorites-empty>span{
  color:#2d1bb3;
  font-size:2.3rem;
  line-height:1;
}
.favorites-empty>strong{
  color:#111027;
  font-size:clamp(1.05rem,2vw,1.3rem);
}
.favorites-empty>p{
  margin:0;
  color:#666276;
}
.favorites-empty>button{
  margin-top:.3rem;
  border:0;
  border-radius:999px;
  padding:.75rem 1.15rem;
  background:#2d1bb3;
  color:#fff;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.favorites-empty>button:focus-visible,
.card-link:focus-visible,
.card-quick-add:focus-visible{
  outline:3px solid #a9ec00;
  outline-offset:3px;
}


/* Barra mobile adattiva: 4 azioni per i clienti, 5 per l'amministratore */
@media(max-width:640px){
  html:not(.tv-mode):not(.is-admin) .mobile-nav{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  html:not(.tv-mode).is-admin .mobile-nav{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}


/* Release TV v128: acquisto rapido visibile e comodo con telecomando */
html.tv-mode .card-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) 76px;
  gap:10px;
  margin-top:auto;
}
html.tv-mode .card-actions.single-action{
  grid-template-columns:minmax(0,1fr)!important;
}
html.tv-mode .card-actions .card-link,
html.tv-mode .card-actions .card-quick-add{
  min-width:0;
  min-height:58px;
  margin:0;
  border-radius:14px;
  font-size:.9rem;
}
html.tv-mode .card-actions .card-quick-add{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  border:0;
  color:#24169a;
  background:#baff00;
  font-weight:950;
  cursor:pointer;
  box-shadow:inset 0 -4px 0 rgba(36,22,154,.12);
}
html.tv-mode .card-actions .card-quick-add svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html.tv-mode .card-actions .card-quick-add:focus{
  outline:4px solid #ff9900;
  outline-offset:3px;
}
html.tv-mode .card-actions .card-quick-add:disabled{
  color:#777383;
  background:#e9e7ef;
  box-shadow:none;
}
