/* ===== Carrito ===== */
.top .wrap{gap:10px}
.cart-btn{all:unset;cursor:pointer;position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;margin-left:auto;
  border:1px solid var(--line);background:var(--surface);transition:transform .2s,border-color .2s}
.cart-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.cart-btn svg{width:22px;height:22px;fill:none;stroke:var(--fg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cart-n{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ec4899;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.cart-btn.bump{animation:bump .5s ease}
@keyframes bump{30%{transform:scale(1.22)}60%{transform:scale(.94)}}

.pbtns{display:flex;gap:8px;flex-wrap:wrap}
.btn-cart{background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;border:0}
.btn-cart.added{animation:bump .5s ease}
.card .btn-ask{padding:9px 12px}

.cart-ov{position:fixed;inset:0;z-index:60;background:rgba(5,3,12,.6);backdrop-filter:blur(4px);opacity:0;transition:opacity .28s}
.cart-ov.on{opacity:1}
.cart{position:absolute;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.cart-ov.on .cart{transform:none}
.cart header{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 12px;border-bottom:1px solid var(--line)}
.cart h2{font-size:26px;font-weight:900;font-stretch:85%;text-transform:uppercase}
.cart-x{all:unset;cursor:pointer;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line)}
.cart-x:focus-visible{outline:2px solid var(--accent)}
.cart-body{overflow:auto;padding:14px 18px calc(24px + env(safe-area-inset-bottom,0px));flex:1}
.cart-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.cart-list li{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;background:var(--surface-2);border-radius:14px;padding:10px}
.cart-list img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:10px}
.cart-list b{display:block;font-size:15px}
.cart-list small{display:block;color:var(--muted);font-size:12px}
.cart-list span{font-family:var(--display);font-weight:900;font-size:18px}
.qty{grid-column:1/-1;display:flex;align-items:center;gap:8px}
.qty button{all:unset;cursor:pointer;min-width:34px;height:34px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;font-weight:700}
.qty button:focus-visible{outline:2px solid var(--accent)}
.qty output{min-width:18px;text-align:center;font-weight:700}
.qty .rm{margin-left:auto;padding:0 10px;font-weight:500;font-size:13px;color:var(--muted)}
.cart-empty{color:var(--muted);text-align:center;padding:30px 0}
.cart-form fieldset{border:0;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:10px}
.cart-form legend{font-family:var(--display);font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ent-o{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:14px;cursor:pointer}
.ent-o:has(input:checked){border-color:#ec4899;background:rgba(236,72,153,.08)}
.ent-o input{margin-top:3px;accent-color:#ec4899}
.ent-o b{display:block;font-size:14px}.ent-o small{color:var(--muted);font-size:12px}
.cart-form label:not(.ent-o){display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.cart-form input:not([type=radio]),.cart-form textarea{font:inherit;font-size:16px;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.cart-form input:focus,.cart-form textarea:focus{outline:2px solid var(--accent);border-color:transparent}
.cart-tot{margin:18px 0 10px;padding:12px;border-radius:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px;font-size:14px}
.cart-tot div{display:flex;justify-content:space-between;gap:10px}
.cart-tot .big{font-size:18px;border-top:1px solid var(--line);padding-top:8px}
.cart-tot .big b{font-family:var(--display);font-weight:900;font-size:24px}
.cart-err{color:#fda4af;font-size:14px;margin:0 0 8px}
.cart-go{width:100%;padding:14px;font-size:16px}
.cart-note{color:var(--muted);font-size:12px;text-align:center}
.cart-toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);z-index:70;opacity:0;pointer-events:none;
  background:#fff;color:#1a0d30;font-weight:700;font-size:14px;padding:12px 18px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:opacity .25s,transform .25s}
.cart-toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion: reduce){.cart,.cart-ov,.cart-toast{transition:none}.cart-btn.bump,.btn-cart.added{animation:none}}
.pfoot{flex-wrap:wrap}
.pfoot .pprice{flex-basis:100%}
.pfoot .btn{flex:1;justify-content:center}
.cart-n[hidden],.cart-ov[hidden],.dir-f[hidden],.cart-form[hidden],.cart-empty[hidden],.cart-err[hidden]{display:none}

/* Hover solo con mouse: en táctil se queda pegado tras tocar */
@media (hover:hover) and (pointer:fine){
  .cart-btn:hover{border-color:var(--accent)}
  .btn-cart:hover{filter:brightness(1.1)}
}
