/* RGB CART — SHOP THEME "default" v2 */
.shop-hero{background:linear-gradient(135deg,#1e293b,#334155);}
.product-card{transition:.2s;border:none;border-radius:14px;overflow:hidden;
  box-shadow:0 1px 3px rgba(15,23,42,.1);}
.product-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(15,23,42,.15);}
.product-card img{object-fit:cover;height:180px;}
.shop-price{font-weight:700;color:#0f172a;font-size:1.05rem;}
.gallery-thumb{cursor:pointer;opacity:.65;border:2px solid transparent;border-radius:8px;width:72px;height:72px;object-fit:cover;}
.gallery-thumb:hover,.gallery-thumb.active{opacity:1;border-color:#0d6efd;}
.wa-badge{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;
  background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:1.7rem;box-shadow:0 8px 20px rgba(37,211,102,.4);z-index:1050;text-decoration:none;}
.wa-badge:hover{transform:scale(1.08);color:#fff;}

/* ---------- LIVE SEARCH ---------- */
.search-wrap{position:relative;flex-grow:1;max-width:500px;}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:#fff;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);
  z-index:1055;overflow:hidden;display:none;}
.search-results.show{display:block;animation:fadeIn .15s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}
.sr-item{display:flex;gap:12px;padding:10px 14px;text-decoration:none;color:#0f172a;
  border-bottom:1px solid #f1f5f9;transition:.1s;}
.sr-item:last-child{border-bottom:none;}
.sr-item:hover{background:#f8fafc;}
.sr-thumb{width:50px;height:50px;object-fit:cover;border-radius:8px;background:#f1f5f9;flex-shrink:0;}
.sr-thumb.empty{display:flex;align-items:center;justify-content:center;color:#94a3b8;}
.sr-info{flex:1;min-width:0;}
.sr-name{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sr-meta{font-size:.75rem;color:#64748b;text-transform:uppercase;margin-top:2px;}
.sr-price{font-weight:700;color:#0f172a;}
.sr-empty{padding:20px;text-align:center;color:#94a3b8;font-size:.9rem;}

/* ---------- MINI CART ---------- */
.mini-cart{position:fixed;top:80px;right:20px;width:300px;background:#fff;
  border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.15);z-index:1045;
  transform:translateX(calc(100% + 80px));transition:transform .3s ease;overflow:hidden;}
.mini-cart.show{transform:none;}
.mini-cart-header{background:linear-gradient(135deg,#0f172a,#334155);color:#fff;padding:14px 16px;
  display:flex;justify-content:space-between;align-items:center;}
.mini-cart-body{padding:12px 14px;max-height:300px;overflow-y:auto;}
.mini-cart-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:.88rem;}
.mini-cart-item:last-child{border-bottom:none;}
.mini-cart-item img{width:40px;height:40px;object-fit:cover;border-radius:6px;}
.mini-cart-footer{background:#f8fafc;padding:12px 16px;border-top:1px solid #e2e8f0;}
.mini-cart-close{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.2);
  border:none;color:#fff;width:26px;height:26px;border-radius:50%;cursor:pointer;}

/* ---------- LIGHTBOX ZOOM ---------- */
.lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.92);
  z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;}
.lightbox.show{display:flex;animation:fadeIn .2s ease;}
.lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close{position:absolute;top:20px;right:20px;background:rgba(255,255,255,.15);
  border:none;color:#fff;width:50px;height:50px;border-radius:50%;font-size:1.5rem;
  cursor:pointer;transition:.2s;}
.lightbox-close:hover{background:rgba(255,255,255,.25);transform:scale(1.1);}

/* ---------- RESPONSIVE MOBILE ---------- */
@media (max-width: 767px){
  .mini-cart{right:10px;left:10px;width:auto;top:70px;max-height:calc(100vh - 90px);}
  .mini-cart-body{max-height:50vh;}
  .mini-cart-header{position:sticky;top:0;z-index:2;}
  .mini-cart-footer{position:sticky;bottom:0;z-index:2;}
}
@media (min-width: 768px) and (max-width: 991px){
  .mini-cart{width:280px;right:15px;}
}
/* ---------- FOTO PRINCIPALE CONTENUTA (fix layout) ---------- */
#mainImg{width:100%;height:460px;object-fit:contain;background:#f8fafc;border-radius:14px;}
@media (max-width:767px){#mainImg{height:340px;}}

/* ---------- SECONDA FOTO AL HOVER NEL CATALOGO ---------- */
.pc-media{position:relative;height:200px;overflow:hidden;background:#f1f5f9;}
.pc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s;}
.product-card img.pc-img{height:100%;}
.pc-img-2{opacity:0;}
.product-card:hover .pc-img-1{opacity:0;}
.product-card:hover .pc-img-2{opacity:1;}
.pc-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:2rem;}
/* ---------- SWATCH COLORE ---------- */
.swatch-group{margin-bottom:1rem;}
.swatch-label{font-weight:600;margin-bottom:.5rem;display:block;}
.swatches{display:flex;gap:8px;flex-wrap:wrap;}
.swatch{position:relative;width:42px;height:42px;border-radius:50%;cursor:pointer;
  border:3px solid transparent;transition:.15s;background:#e2e8f0;}
.swatch:hover{transform:scale(1.08);}
.swatch.active{border-color:#0f172a;box-shadow:0 0 0 3px rgba(15,23,42,.15);}
.swatch-text{width:auto;padding:0 16px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;font-weight:600;font-size:.9rem;background:#f1f5f9;min-width:50px;}
.swatch-text.active{background:#0f172a;color:#fff;}
.swatch-oos{opacity:.4;}
.swatch-oos::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;
  background:linear-gradient(to top right,transparent calc(50% - 1px),#ef4444 calc(50% - 1px),
  #ef4444 calc(50% + 1px),transparent calc(50% + 1px));pointer-events:none;}

/* ---------- LAYOUT AFFIANCATO (desktop) ---------- */
@media (min-width: 768px){
  .product-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;}
}

/* ---------- BOTTONE VERDE ---------- */
.btn-add-cart{background:linear-gradient(135deg,#059669,#10b981);color:#fff;border:none;
  font-weight:700;padding:14px 32px;font-size:1.05rem;border-radius:12px;
  box-shadow:0 8px 20px rgba(5,150,105,.35);transition:.2s;}
.btn-add-cart:hover:not(:disabled){transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(5,150,105,.45);color:#fff;}
.btn-add-cart:disabled{opacity:.5;cursor:not-allowed;}

/* ---------- SELETTORE CLASSICO ---------- */
.variant-select{width:100%;padding:10px 14px;border:2px solid #e2e8f0;border-radius:10px;
  font-size:.95rem;background:#fff;}
.variant-select:focus{border-color:#0d6efd;outline:none;box-shadow:0 0 0 3px rgba(13,110,253,.15);}
.swatch{box-shadow:inset 0 0 0 1px rgba(15,23,42,.15);}
.swatch.active{box-shadow:inset 0 0 0 1px rgba(15,23,42,.15), 0 0 0 3px rgba(15,23,42,.25);}
/* ========== CART DRAWER ========== */
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;
  background:#fff;z-index:1060;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .3s ease;
  box-shadow:-10px 0 30px rgba(15,23,42,.15);}
.cart-drawer.open{transform:none;}
.cd-header{padding:18px 20px;border-bottom:1px solid #e2e8f0;
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(135deg,#0f172a,#334155);color:#fff;}
.cd-header h5{margin:0;font-weight:700;}
.cd-close{background:rgba(255,255,255,.15);border:none;color:#fff;
  width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.1rem;}
.cd-close:hover{background:rgba(255,255,255,.25);}
.cd-body{flex:1;overflow-y:auto;padding:0;}
.cd-empty{text-align:center;padding:60px 20px;}
.cd-item{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid #f1f5f9;
  position:relative;}
.cd-thumb{width:70px;height:70px;border-radius:10px;overflow:hidden;
  background:#f1f5f9;flex-shrink:0;}
.cd-thumb img{width:100%;height:100%;object-fit:cover;}
.cd-thumb-empty{width:100%;height:100%;display:flex;align-items:center;
  justify-content:center;color:#94a3b8;font-size:1.5rem;}
.cd-info{flex:1;min-width:0;}
.cd-name{font-weight:600;font-size:.92rem;margin-bottom:4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;}
.cd-price{color:#64748b;font-size:.85rem;margin-bottom:6px;}
.cd-controls{display:flex;align-items:center;gap:4px;}
.cd-qty-btn{width:28px;height:28px;border:1px solid #e2e8f0;background:#fff;
  border-radius:6px;cursor:pointer;font-weight:700;color:#0f172a;}
.cd-qty-btn:hover{background:#f1f5f9;}
.cd-qty-input{width:46px;height:28px;text-align:center;border:1px solid #e2e8f0;
  border-radius:6px;font-size:.85rem;}
.cd-qty-input::-webkit-inner-spin-button,
.cd-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.cd-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;
  gap:8px;}
.cd-total{font-weight:700;font-size:.95rem;}
.cd-remove{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1rem;
  padding:4px;}
.cd-remove:hover{color:#ef4444;}
.cd-footer{border-top:1px solid #e2e8f0;padding:18px 20px;background:#f8fafc;}
.cd-subtotal{display:flex;justify-content:space-between;margin-bottom:12px;
  font-size:1.05rem;}

/* Overlay */
.cart-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:1055;
  opacity:0;pointer-events:none;transition:opacity .25s ease;}
.cart-overlay.show{opacity:1;pointer-events:auto;}

/* ========== STICKY BOTTOM BAR (sempre visibile) ========== */
.sticky-cart-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;
  box-shadow:0 -4px 20px rgba(15,23,42,.1);z-index:1040;padding:10px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  transform:translateY(100%);transition:transform .3s ease;}
.sticky-cart-bar.show{transform:none;}
.sticky-cart-info{display:flex;align-items:center;gap:10px;}
.sticky-cart-count{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;
  width:36px;height:36px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-weight:700;box-shadow:0 4px 12px rgba(79,70,229,.4);}
.sticky-cart-label{font-size:.85rem;color:#64748b;line-height:1.2;}
.sticky-cart-label strong{color:#0f172a;font-size:1rem;display:block;}
.sticky-cart-btn{background:linear-gradient(135deg,#059669,#10b981);color:#fff;
  border:none;padding:10px 20px;border-radius:10px;font-weight:700;
  display:flex;align-items:center;gap:8px;white-space:nowrap;}
.sticky-cart-btn:hover{color:#fff;filter:brightness(1.05);}

/* Footer push (evita che la sticky bar copra contenuto) */
body.has-cart{padding-bottom:72px;}

/* ========== MOBILE: drawer sale da sotto ========== */
@media (max-width: 767px){
    .cart-drawer{top:auto;bottom:0;left:0;right:0;width:100%;
        height:85vh;max-height:85vh;border-radius:20px 20px 0 0;
        transform:translateY(100%);}
    .cart-drawer.open{transform:none;}
    .sticky-cart-bar{padding:10px 12px;}
    .sticky-cart-btn{padding:10px 14px;font-size:.9rem;}
    .sticky-cart-label{font-size:.8rem;}
}

/* Badge navbar pulsante */
.navbar .btn-outline-light .badge{font-size:.7rem;}

/* Mini badge pulsante quando aggiungi */
@keyframes badgePulse{
    0%,100%{transform:scale(1);}
    50%{transform:scale(1.3);}
}
.navbar .btn-outline-light .badge.pulse{animation:badgePulse .4s ease;}
/* Sticky bar visibile SOLO su mobile (desktop ha il drawer) */
@media (min-width: 768px){
    .sticky-cart-bar{display:none !important;}
    body.has-cart{padding-bottom:0;}
}
/* ---------- BADGE SCONTO ---------- */
.pc-discount-badge{position:absolute;top:10px;right:10px;z-index:2;
  background:#065f46;color:#fff;font-weight:700;font-size:.75rem;
  padding:4px 9px;border-radius:8px;box-shadow:0 2px 8px rgba(6,95,70,.4);}

/* ---------- SIDEBAR FILTRI ---------- */
.filter-card{background:#fff;border-radius:14px;padding:16px;margin-bottom:16px;
  box-shadow:0 1px 3px rgba(15,23,42,.08);}
.filter-card h6{font-weight:700;margin-bottom:12px;text-transform:uppercase;
  font-size:.78rem;letter-spacing:.5px;color:#64748b;}
.filter-swatch{display:inline-block;width:14px;height:14px;border-radius:50%;
  vertical-align:-2px;margin-right:5px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);}

/* ---------- SLIDER PREZZO (doppio cursore) ---------- */
.range-slider{position:relative;height:36px;}
.range-track{position:absolute;top:50%;transform:translateY(-50%);
  height:4px;width:100%;background:#e2e8f0;border-radius:2px;}
.range-fill{position:absolute;top:50%;transform:translateY(-50%);
  height:4px;background:#0f172a;border-radius:2px;}
.range-slider input[type=range]{position:absolute;inset:0;width:100%;height:36px;
  -webkit-appearance:none;appearance:none;background:none;margin:0;pointer-events:none;}
.range-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;
  pointer-events:auto;width:18px;height:18px;border-radius:50%;
  background:#0f172a;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35);
  cursor:pointer;}
.range-slider input[type=range]::-moz-range-thumb{pointer-events:auto;
  width:14px;height:14px;border-radius:50%;background:#0f172a;
  border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35);cursor:pointer;}
  /* ---------- FULL WIDTH MODE ---------- */
body.fw-mode .container{max-width:100%!important;width:100%!important;}

/* ---------- FULL WIDTH MODE ---------- */
body.fw-mode .container{max-width:100%!important;width:100%!important;}

/* ---------- HOME SLIDER ---------- */
.home-slider{position:relative;height:480px;overflow:hidden;width:100%;}
.hs-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;}
.hs-slide.active{opacity:1;}
.hs-overlay{position:absolute;inset:0;}
.hs-layer{position:absolute;transform:translate(-50%,-50%);white-space:pre-line;font-weight:700;text-align:center;max-width:90%;}
.hs-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:20;background:rgba(255,255,255,.15);
    border:0;color:#fff;font-size:2rem;width:48px;height:48px;border-radius:50%;cursor:pointer;backdrop-filter:blur(4px);}
.hs-nav:hover{background:rgba(255,255,255,.3);}
.hs-prev{left:16px;} .hs-next{right:16px;}
.hs-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:20;}
.hs-dot{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.4);cursor:pointer;}
.hs-dot.active{background:#fff;transform:scale(1.2);}
@media (max-width:767px){ .home-slider{height:340px;} }

/* ---------- Animazioni Base ---------- */

@keyframes hsFade{from{opacity:0}to{opacity:1}}
@keyframes hsUp{from{opacity:0;transform:translate(-50%,-30%)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes hsDown{from{opacity:0;transform:translate(-50%,-70%)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes hsZoom{from{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes hsLeft{from{opacity:0;transform:translate(-80%,-50%)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes hsRight{from{opacity:0;transform:translate(-20%,-50%)}to{opacity:1;transform:translate(-50%,-50%)}}
.anim-fade-in{animation:hsFade .8s both}
.anim-slide-up{animation:hsUp .8s both}
.anim-slide-down{animation:hsDown .8s both}
.anim-zoom-in{animation:hsZoom .8s both}
.anim-slide-left{animation:hsLeft .8s both}
.anim-slide-right{animation:hsRight .8s both}

/* --- Niente switch hover se manca la seconda immagine --- */
.pc-media:not(:has(img:nth-of-type(2))):hover img,
.pc-thumb:not(:has(img:nth-of-type(2))):hover img,
.product-media:not(:has(img:nth-of-type(2))):hover img,
.card-media:not(:has(img:nth-of-type(2))):hover img {
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
}