/* ===========================================================
   Asia4All — Quick View modal + Cart drawer (styles de base)
   À inclure sur les pages qui ont besoin de QV/panier.
   =========================================================== */

/* === QUICK VIEW MODAL === */
#qv-overlay{position:fixed;inset:0;z-index:9500;background:rgba(6,6,10,0);pointer-events:none;transition:background .45s;}
#qv-overlay.qv-open{background:rgba(6,6,10,.92);pointer-events:all;}
#qv-modal{position:fixed;top:50%;left:50%;z-index:9501;width:min(980px,96vw);display:flex;min-height:520px;max-height:90svh;opacity:0;pointer-events:none;box-shadow:0 40px 100px rgba(0,0,0,.7);transform:translate(-50%,-50%) scale(.94);transition:opacity .45s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1);}
#qv-modal.qv-open{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1);}

/* Photo area */
#qv-photo{position:relative;width:46%;flex-shrink:0;overflow:hidden;background:#f5f2ec;}
#qv-photo > img,#qv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
#qv-accent{position:absolute;width:160%;height:55%;bottom:-22%;left:-30%;transform:rotate(-8deg);transition:background .6s ease;pointer-events:none;opacity:.15;}

/* Gallery arrow navigation */
.qv-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:38px;height:38px;background:rgba(255,255,255,.88);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .22s,background .2s;pointer-events:all;}
#qv-photo:hover .qv-arrow{opacity:1;}
.qv-arrow:hover{background:#fff;}
.qv-arrow svg{width:15px;height:15px;stroke:#111;stroke-width:2.5;fill:none;}
#qv-arrow-l{left:.65rem;}
#qv-arrow-r{right:.65rem;}

#qv-panel{background:#0a0a0a;border:1px solid rgba(255,255,255,.08);border-left:none;padding:2.4rem 2.2rem 1.8rem;display:flex;flex-flow:column;flex:1;min-width:0;overflow-y:auto;max-height:90svh;gap:0;}
#qv-close{position:absolute;top:.7rem;right:.7rem;z-index:4;width:32px;height:32px;background:#000;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s;box-shadow:0 2px 8px rgba(0,0,0,.4);}
#qv-close:hover{background:#222;}
#qv-close svg{width:13px;height:13px;stroke:#fff;stroke-width:2.5;fill:none;}

/* Panel element ordering: brand → name → coloris → taille → sep → price → CTA → WA → desc */
#qv-eyebrow{order:1;font-size:8px;letter-spacing:.46em;text-transform:uppercase;color:#fff;opacity:.6;margin-bottom:.35rem;}
#qv-name{order:2;font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.2rem,2.4vw,1.75rem);font-weight:400;line-height:1.05;margin-bottom:1.2rem;color:#fff;}
#qv-lbl-color{order:3;}
#qv-swatches{order:4;}
#qv-cname{order:5;margin-bottom:.9rem;}
.qv-lbl:not(#qv-lbl-color){order:6;}
#qv-szs{order:7;margin-bottom:1rem;}
.qv-sep{order:8;margin-bottom:1rem;}
.qv-row{order:9;display:flex;flex-direction:column;gap:.55rem;margin-bottom:.4rem;}
#qv-price{font-family:'Playfair Display',Georgia,serif;font-size:1.65rem;font-weight:400;color:#fff;margin-bottom:.2rem;}
#qv-cta{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;color:#0a0a0a;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;padding:.85rem;border:none;cursor:pointer;font-family:'DM Sans',system-ui,sans-serif;font-weight:400;transition:background .3s;width:100%;}
#qv-cta:hover{background:#e5e5e5;}
#qv-cta svg{width:14px;height:14px;stroke:#0a0a0a;fill:none;stroke-width:1.5;flex-shrink:0;}
#qv-wa-direct,button.qv-wa-direct{order:10;display:flex;align-items:center;justify-content:center;gap:.45rem;background:#111;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.75);font-size:8.5px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;padding:.85rem;width:100%;transition:background .3s,color .3s,border-color .3s;font-family:'DM Sans',system-ui,sans-serif;margin-top:0;}
#qv-wa-direct:hover,button.qv-wa-direct:hover{background:#128C7E;color:#fff;border-color:#128C7E;}
#qv-wa-direct svg,button.qv-wa-direct svg{width:13px;height:13px;fill:#25D366;flex-shrink:0;}
#qv-desc{order:11;font-size:10px;line-height:1.8;color:rgba(255,255,255,.4);margin-top:1rem;flex-grow:0;}

.qv-lbl{font-size:8px;letter-spacing:.36em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:.45rem;}
.qv-swatches{display:flex;gap:.5rem;align-items:center;margin-bottom:.3rem;}
.qv-sw{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;outline:2px solid transparent;transition:outline-color .25s,transform .25s;flex-shrink:0;}
.qv-sw.active{outline-color:#fff;transform:scale(1.18);}
.qv-cname{font-size:9.5px;letter-spacing:.1em;color:rgba(255,255,255,.6);}
.qv-szs{display:flex;gap:.28rem;flex-wrap:wrap;}
.qv-sz{min-width:38px;height:35px;padding:0 .5rem;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.04em;color:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.18);cursor:pointer;transition:all .22s;font-family:'DM Sans',system-ui,sans-serif;}
.qv-sz.active{border-color:#fff;color:#fff;background:rgba(255,255,255,.08);}
.qv-sz:hover:not(.active){border-color:rgba(255,255,255,.4);color:#fff;}
.qv-sep{height:1px;background:rgba(255,255,255,.12);}

@media(max-width:720px){
  #qv-modal{flex-flow:column;width:96vw;max-height:96svh;min-height:0;}
  #qv-photo{width:100%;height:clamp(220px,42svh,340px);flex-shrink:0;position:relative;}
  #qv-panel{padding:1.2rem 1rem 1rem;overflow-y:auto;max-height:none;flex:1;}
  #qv-accent{display:none;}
  .qv-arrow{opacity:1;width:32px;height:32px;}
  .qv-arrow svg{width:13px;height:13px;}
}

/* === CART DRAWER === */
#cart-overlay{position:fixed;inset:0;z-index:9600;background:rgba(6,6,10,0);pointer-events:none;transition:background .4s;}
#cart-overlay.open{background:rgba(6,6,10,.75);pointer-events:all;}
#cart-drawer{position:fixed;top:0;right:0;z-index:9601;width:min(400px,100vw);height:100%;background:#0a0a0a;border-left:1px solid rgba(255,255,255,.08);display:flex;flex-flow:column;transform:translateX(100%);transition:transform .55s cubic-bezier(.23,1,.32,1);box-shadow:-20px 0 60px rgba(0,0,0,.5);}
#cart-drawer.open{transform:translateX(0);}
#cart-head{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;}
#cart-head-title{font-size:8.5px;letter-spacing:.44em;text-transform:uppercase;color:#fff;}
#cart-close-btn{width:28px;height:28px;background:transparent;border:1px solid rgba(255,255,255,.18);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s;}
#cart-close-btn:hover{border-color:#fff;}
#cart-close-btn svg{width:10px;height:10px;stroke:#fff;stroke-width:2;fill:none;}
#cart-items{flex:1;overflow-y:auto;padding:.6rem 1rem;}
.cart-empty{display:flex;flex-flow:column;align-items:center;justify-content:center;height:100%;gap:.8rem;text-align:center;}
.cart-empty svg{width:38px;height:38px;color:rgba(255,255,255,.25);}
.cart-empty p{font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.4);}
.ci{display:flex;gap:.8rem;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.08);align-items:flex-start;}
.ci-img{width:60px;height:68px;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,.04);}
.ci-body{flex:1;min-width:0;}
.ci-brand{font-size:7.5px;letter-spacing:.32em;text-transform:uppercase;color:#fff;opacity:.7;margin-bottom:.18rem;}
.ci-name{font-family:'Playfair Display',Georgia,serif;font-size:.85rem;line-height:1.1;color:#fff;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ci-meta{font-size:9px;color:rgba(255,255,255,.45);margin-bottom:.45rem;}
.ci-row{display:flex;align-items:center;gap:.45rem;}
.ci-qty{display:flex;align-items:center;gap:.28rem;}
.ci-qbtn{width:20px;height:20px;background:transparent;border:1px solid rgba(255,255,255,.18);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:#fff;transition:border-color .2s;font-family:'DM Sans',system-ui,sans-serif;}
.ci-qbtn:hover{border-color:#fff;}
.ci-qnum{font-size:11px;color:#fff;min-width:16px;text-align:center;}
.ci-rm{margin-left:auto;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);background:none;border:none;cursor:pointer;transition:color .2s;font-family:'DM Sans',system-ui,sans-serif;}
.ci-rm:hover{color:rgba(255,80,80,.9);}
#cart-foot{padding:1rem 1.5rem 1.2rem;border-top:1px solid rgba(255,255,255,.1);background:#0a0a0a;flex-shrink:0;}
#cart-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;}
#cart-count-txt{font-size:9px;letter-spacing:.12em;color:rgba(255,255,255,.5);}
#cart-wa-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.55rem;background:#25D366;color:#fff;font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;padding:.85rem;border:none;cursor:pointer;font-family:'DM Sans',system-ui,sans-serif;font-weight:400;transition:background .3s;}
#cart-wa-btn:hover:not(:disabled){background:#1db954;}
#cart-wa-btn:disabled{background:rgba(255,255,255,.15);cursor:default;}
#cart-wa-btn svg{width:14px;height:14px;fill:#fff;flex-shrink:0;}

/* === HOVER FLIP IMAGE === */
.p-media.has-flip{perspective:800px;position:relative;}
.p-media.has-flip .p-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  backface-visibility:hidden;
  transform:rotateY(0deg);
  transition:transform .6s cubic-bezier(.23,1,.32,1);
}
.p-media.has-flip .p-img-back{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  backface-visibility:hidden;
  transform:rotateY(180deg);
  transition:transform .6s cubic-bezier(.23,1,.32,1);
}
.p-media.has-flip:hover .p-img{transform:rotateY(-180deg);}
.p-media.has-flip:hover .p-img-back{transform:rotateY(0deg);}

/* Thumbnails hidden — navigation via arrows */
#qv-thumbs{display:none!important;}
