/* FIXINFO — boutique */
.shop{background:var(--bg2)}
.shop-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.shop-top a{font-weight:700;color:var(--ink)}
#cartBtn b{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:12px;background:#fff;color:var(--b7);font-size:.85rem;padding:0 6px}
#cartBtn.bump{animation:bump .5s}
@keyframes bump{30%{transform:scale(1.15)}}
.shop-hero{background:linear-gradient(135deg,var(--b9),var(--b7) 60%,var(--sky));color:#fff;padding:46px 0 40px}
.shop-hero h1{font-size:clamp(1.7rem,3.4vw,2.5rem)}.shop-hero p{color:#e3eeff;margin:.3em 0}
.shop-inst a{color:#fff;font-weight:800}
.shop-main{padding:26px 0 80px}
.shop-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px;position:sticky;top:64px;z-index:20;background:var(--bg2);padding:10px 0}
.tabs{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer}
.tabs button i{font-style:normal;color:var(--muted);font-weight:600;font-size:.85em}
.tabs button.on{background:var(--b6);border-color:var(--b6);color:#fff}.tabs button.on i{color:#dbeafe}
#q{flex:0 1 280px;padding:11px 14px;border:1px solid #cfd8e7;border-radius:12px;font:inherit}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pc{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.pc:hover{transform:translateY(-4px);box-shadow:var(--shadow2)}
.pc.flash{outline:3px solid var(--b5)}
.pc-img{position:relative;aspect-ratio:1/1;background:#fff;display:grid;place-items:center;padding:14px;border-bottom:1px solid var(--line)}
.pc-img img{max-height:100%;object-fit:contain}
.dispo{position:absolute;top:10px;left:10px;background:#dcfce7;color:#166534;font-size:.74rem;font-weight:800;border-radius:999px;padding:3px 9px}
[dir=rtl] .dispo{left:auto;right:10px}
.pc-b{padding:14px;display:flex;flex-direction:column;flex:1}
.pc-b h3{font-size:.98rem;line-height:1.35;color:var(--b9);margin-bottom:6px}
.pc-b p{font-size:.84rem;color:var(--muted);margin:0 0 10px}
.pc-f{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.pr{font-size:1.25rem;font-weight:800;color:var(--b7)}.pr.ask{font-size:1rem;color:var(--muted)}
.pc-f .btn{width:100%}.btn.added{background:#16a34a}
.none{color:var(--muted);text-align:center;padding:20px}
.veil{position:fixed;inset:0;background:rgba(10,20,50,.45);opacity:0;pointer-events:none;transition:.25s;z-index:80}
.veil.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:#fff;z-index:90;transform:translateX(105%);transition:transform .3s;box-shadow:-20px 0 50px rgba(10,20,50,.2)}
[dir=rtl] .drawer{right:auto;left:0;transform:translateX(-105%)}
.drawer.open{transform:none}
.dr-in{height:100%;overflow:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.dr-h{display:flex;justify-content:space-between;align-items:center;font-size:1.2rem}
.dr-h button{border:0;background:var(--b0);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem}
.dl{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:8px 0}
.dl img{width:54px;height:54px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#fff}
.dl div:nth-child(2){flex:1;min-width:0}.dl b{display:block;font-size:.88rem;line-height:1.3}.dl span{color:var(--b7);font-weight:700;font-size:.88rem}
.qty{display:flex;align-items:center;gap:6px}.qty button{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:800}
.dr-sum{background:var(--b0);border-radius:14px;padding:12px 14px}
.dr-sum div{display:flex;justify-content:space-between;padding:3px 0}.dr-sum .tot{font-size:1.15rem;border-top:1px solid var(--b1);margin-top:4px;padding-top:8px;color:var(--b8)}
.dr-form label{display:block;font-weight:700;font-size:.88rem;margin-bottom:10px}
.dr-form input{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid #cfd8e7;border-radius:10px;font:inherit}
.dr-err{color:#b91c1c;font-weight:700}
.dr-ok{background:#ecfdf3;border:1px solid #86efac;border-radius:14px;padding:16px;color:#14532d}
/* ruban publicitaire animé (page d'accueil) */
.promo{background:#fff;border-bottom:1px solid var(--line);overflow:hidden;position:relative}
.promo-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0 2px}
.promo-h b{color:var(--b8)}.promo-h a{font-weight:800}
.rib{display:flex;gap:16px;width:max-content;padding:12px 0 16px;animation:rib 60s linear infinite}
.promo:hover .rib{animation-play-state:paused}
@keyframes rib{to{transform:translateX(-50%)}}
[dir=rtl] .rib{animation-name:ribR}
@keyframes ribR{to{transform:translateX(50%)}}
.ri{display:flex;align-items:center;gap:12px;width:300px;flex:none;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:10px;color:var(--ink);position:relative}
.ri img{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:10px}
.ri b{display:block;font-size:.86rem;line-height:1.3;max-height:2.6em;overflow:hidden}
.ri span{color:var(--b7);font-weight:800}
.ri em{position:absolute;top:-8px;right:10px;background:#ef4444;color:#fff;font-style:normal;font-size:.7rem;font-weight:800;border-radius:999px;padding:2px 8px}
[dir=rtl] .ri em{right:auto;left:10px}
@media (max-width:1080px){.grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.grid{grid-template-columns:repeat(2,1fr)}.shop-bar{top:58px}#q{flex:1 1 100%}.pc-b h3{font-size:.9rem}.ri{width:250px}}
@media (max-width:420px){.grid{gap:10px}.pc-b{padding:10px}.pr{font-size:1.05rem}}
@media (prefers-reduced-motion:reduce){.rib{animation:none}}
