/* ---------- panier flottant (toutes les pages sauf l'accueil) ---------- */
.cart-fab{ position:fixed; right:20px; bottom:20px; z-index:90; display:flex; align-items:center; gap:9px; padding:10px 14px 10px 16px;
  background:#FFD83D; color:#14121C; border:3px solid #14121C; border-radius:999px; box-shadow:5px 5px 0 #F5F1E8; cursor:pointer;
  font-family:"Lilita One","Arial Black",Impact,sans-serif; font-size:1.05rem; transition:transform .15s; }
.cart-fab:hover{ transform:translate(-2px,-2px); }
.cart-fab .cf-ico{ font-size:1.15rem; line-height:1; }
.cart-fab .cf-n{ display:grid; place-items:center; min-width:28px; height:28px; padding:0 7px; border-radius:999px; background:#14121C; color:#FFD83D; font-weight:400; }
.cart-fab.bump{ animation:cartbump .45s ease; }
@keyframes cartbump{ 0%{transform:scale(1)} 35%{transform:scale(1.18) rotate(-4deg)} 100%{transform:scale(1)} }

.cart-veil{ position:fixed; inset:0; z-index:95; background:rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:opacity .2s; }
.cart-veil.open{ opacity:1; pointer-events:auto; }
.cart-drawer{ position:fixed; top:0; right:0; bottom:0; z-index:96; width:min(400px,100vw); display:flex; flex-direction:column;
  background:#12121A; border-left:1px solid rgba(245,241,232,.12); box-shadow:-20px 0 60px rgba(0,0,0,.5);
  transform:translateX(100%); transition:transform .25s ease; color:#F5F1E8; }
.cart-drawer.open{ transform:none; }
.cd-head{ display:flex; justify-content:space-between; align-items:center; padding:18px 20px 12px; border-bottom:1px solid rgba(245,241,232,.12); }
.cd-head h3{ margin:0; font-size:1.25rem; }
.cd-x{ background:none; border:0; color:#A9A4B8; font-size:1.6rem; cursor:pointer; line-height:1; }
.cd-scroll{ flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain; padding:6px 20px 12px; }
.cd-sec{ padding:12px 0; }
.cd-sec + .cd-sec{ border-top:1px dashed rgba(245,241,232,.14); }
.cd-sec-h{ display:flex; justify-content:space-between; font-size:.88rem; color:#A9A4B8; margin-bottom:6px; }
.cd-sec-h strong{ color:#F5F1E8; }
.cd-toks{ max-height:156px; overflow-y:auto; }
.cart-item{ display:flex; gap:11px; align-items:center; padding:8px 0; border-bottom:1px solid rgba(245,241,232,.07); }
.cart-item:last-child{ border-bottom:0; }
.cart-item img{ width:40px; aspect-ratio:63/88; object-fit:cover; border-radius:4px; flex:none; background:#0B0B10; }
.ci-main{ flex:1; min-width:0; }
.ci-name{ font-size:.88rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ci-sub{ font-size:.74rem; color:#A9A4B8; }
.ci-qty{ display:flex; align-items:center; border:1px solid rgba(245,241,232,.12); border-radius:8px; overflow:hidden; flex:none; }
.ci-qty button{ background:none; border:0; color:#A9A4B8; width:24px; height:26px; cursor:pointer; }
.ci-qty button:hover{ color:#F5F1E8; background:rgba(245,241,232,.1); }
.ci-qty span{ min-width:18px; text-align:center; font-size:.8rem; font-weight:600; }
.ci-del{ background:none; border:0; color:rgba(245,241,232,.3); cursor:pointer; font-size:1rem; flex:none; }
.ci-del:hover{ color:#FF8A75; }
.cd-empty{ font-size:.85rem; color:#A9A4B8; margin:4px 0; }
.cd-foot{ padding:14px 20px 18px; border-top:1px solid rgba(245,241,232,.12); }
.cd-total{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
.cd-total strong{ font-size:1.35rem; }
.cd-go{ width:100%; justify-content:center; text-align:center; }
.cd-note{ font-size:.74rem; color:#A9A4B8; margin:10px 0 0; }

/* ---------- bouton « ajouter au panier » des tokens (catalogue) ---------- */
.tok-add{ display:block; width:100%; margin-top:8px; padding:7px 10px; border:3px solid #14121C; border-radius:999px; background:#fff; color:#14121C;
  font-family:"Lilita One","Arial Black",Impact,sans-serif; font-size:.95rem; cursor:pointer; box-shadow:3px 3px 0 #14121C; transition:transform .12s; }
.tok-add:hover{ transform:translate(-1px,-1px); }
.tok-add.added{ background:#14121C; color:#FFD83D; }
.tok-qty{ position:absolute; top:-10px; right:-8px; z-index:3; display:none; place-items:center; min-width:32px; height:32px; padding:0 8px; border-radius:999px;
  background:#14121C; color:#FFD83D; border:2px solid #FFD83D; font-family:"Lilita One","Arial Black",Impact,sans-serif; }

@media (max-width:600px){ .cart-fab{ right:14px; bottom:14px; padding:8px 12px; } .cart-fab .cf-lbl{ display:none; } }
.cd-cards{ max-height:44vh; overflow-y:auto; overscroll-behavior:contain; }
