/* ═══════════════ RESET & ROOT ═══════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --or:#16a34a; --or2:#15803d; --or-glow:rgba(22,163,74,.35);
  --bg:#080d17; --bg2:#0d1424; --bg3:#111827;
  --card:#0f1629; --card2:#1a2235;
  --border:rgba(var(--fg-rgb),.07); --border2:rgba(var(--fg-rgb),.12);
  --text:#e8edf5; --muted:#6b7280; --muted2:#9ca3af;
  --green:#10b981; --red:#ef4444; --blue:#3b82f6;
  --r:14px; --shadow:0 8px 32px rgba(var(--shadow-rgb),.5);
}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;padding-top:122px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* Títulos con Poppins (da el salto visual moderno) */
h1,h2,h3,h4,.ptitle,.h-title,.sl-title,#catban-sec h2,.sfooter h4{font-family:'Poppins','Inter',system-ui,sans-serif;letter-spacing:-.01em}
/* ── MÁS AIRE entre secciones (look premium) ── */
#catban-sec{padding-top:64px !important;padding-bottom:24px !important}
#banner-doble-sec{padding-top:48px !important;padding-bottom:16px !important}
.psec{padding-top:80px !important}
#catban-sec h2{margin-bottom:26px}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:inherit;border:none}
input,textarea,select{font-family:inherit}

/* ═══ CARRUSEL DESTACADOS / OFERTAS ═══ */
.dest-card{background:var(--card);border:1px solid var(--border2);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}
.dest-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(var(--shadow-rgb),.5)}
/* Badge oferta */
.badge-oferta{display:inline-flex;align-items:center;gap:4px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;border-radius:6px;padding:2px 7px;letter-spacing:.04em}
.precio-tachado{text-decoration:line-through;color:var(--muted);font-size:12px;font-weight:500}
.precio-oferta{font-size:1.55rem;font-weight:900;color:#ef4444;letter-spacing:-.01em}

/* Navbar/autocomplete/cart-ícono: viven en partials/store_css.php (antes
   había una copia acá adentro, desincronizada de buscar.php). */

/* ═══════════════ HERO ═══════════════ */
.hero{
  min-height:calc(100vh - 104px);display:flex;align-items:center;justify-content:center;
  text-align:center;position:relative;overflow:hidden;padding:60px 24px 70px;
}
.h-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 90% 60% at 50% -10%,rgba(22,163,74,.18) 0%,transparent 65%),
    radial-gradient(ellipse 50% 70% at 85% 60%,rgba(59,130,246,.09) 0%,transparent 60%),
    linear-gradient(180deg,#0d1b2a 0%,#080d17 100%);
}
.h-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(var(--fg-rgb),.025) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(var(--fg-rgb),.025) 1px,transparent 1px);
  background-size:64px 64px;
}
.h-dots{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.h-dot{
  position:absolute;border-radius:50%;
  background:var(--or);opacity:.15;
  animation:pulse 4s ease-in-out infinite;
}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.12}50%{transform:scale(1.4);opacity:.22}}
.h-content{position:relative;z-index:1;max-width:720px}
.h-tag{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.22);
  color:var(--or);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 16px;border-radius:20px;margin-bottom:26px;
}
.h-title{
  font-size:clamp(2.4rem,6vw,4.2rem);font-weight:900;line-height:1.07;margin-bottom:22px;
  background:linear-gradient(160deg,#fff 0%,rgba(var(--fg-rgb),.65) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.h-title span{
  background:linear-gradient(135deg,var(--or) 0%,#4ade80 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.h-sub{font-size:1.08rem;color:var(--muted2);margin-bottom:40px;line-height:1.65}
.h-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn-p{
  background:var(--or);color:#fff;border-radius:14px;padding:15px 32px;
  font-size:15px;font-weight:700;display:flex;align-items:center;gap:9px;
  transition:.2s;box-shadow:0 4px 24px var(--or-glow);
}
.btn-p:hover{background:var(--or2);transform:translateY(-2px);box-shadow:0 8px 32px var(--or-glow)}
.btn-s{
  background:rgba(var(--fg-rgb),.08);border:1px solid var(--border2);color:var(--text);
  border-radius:14px;padding:15px 32px;font-size:15px;font-weight:700;
  display:flex;align-items:center;gap:9px;transition:.2s;
}
.btn-s:hover{background:rgba(var(--fg-rgb),.13);transform:translateY(-2px)}

/* ═══════════════ FEATURES ═══════════════ */
.feat-bar{background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:22px 24px}
.feat-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-around;flex-wrap:wrap;gap:4px}
.feat-item{display:flex;align-items:center;gap:11px;padding:10px 20px;color:var(--muted2);font-size:14px;font-weight:500}
.feat-item i{color:var(--or);font-size:21px}

/* ═══════════════ PRODUCTS SECTION ═══════════════ */
.psec{max-width:1440px;margin:0 auto;padding:64px 24px 80px}
.psec-hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:16px}
.ptitle{font-size:1.85rem;font-weight:800}
.ptitle span{color:var(--or)}
.pcount{font-size:14px;color:var(--muted);margin-top:5px}

/* Layout sidebar + grid */
.psec-body{display:flex;gap:28px;align-items:flex-start}

/* ── CATEGORY SIDEBAR ── */
.catsidebar{
  width:220px;flex-shrink:0;position:sticky;top:130px;
  background:var(--card);border:1px solid var(--border);border-radius:16px;
  overflow:hidden;
}
.catsidebar-hdr{
  padding:14px 16px;border-bottom:1px solid var(--border);
  font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;
  display:flex;align-items:center;gap:8px;
}
.catsidebar-hdr::before{
  content:'';width:3px;height:14px;background:var(--or);border-radius:3px;flex-shrink:0;
}
.catlist{max-height:calc(100vh - 200px);overflow-y:auto;padding:6px}
.catlist::-webkit-scrollbar{width:3px}
.catlist::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
.catitem{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
  cursor:pointer;transition:.15s;color:var(--muted2);font-size:13px;font-weight:500;
  border:1px solid transparent;
}
.catitem:hover{background:rgba(var(--fg-rgb),.05);color:var(--text)}
.catitem.active{
  background:rgba(22,163,74,.12);border-color:rgba(22,163,74,.3);
  color:var(--or);font-weight:700;
}
.catitem-ico{
  width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:15px;flex-shrink:0;background:rgba(var(--fg-rgb),.05);transition:.15s;
}
.catitem.active .catitem-ico{background:rgba(22,163,74,.18)}
.catitem-count{margin-left:auto;font-size:10px;font-weight:700;color:var(--muted);background:rgba(var(--fg-rgb),.06);border-radius:20px;padding:2px 7px}
.catitem.active .catitem-count{background:rgba(22,163,74,.2);color:var(--or)}
.catitem-arrow{margin-left:auto;font-size:10px;color:var(--muted);transition:transform .2s;flex-shrink:0}
.catitem-arrow.open{transform:rotate(90deg)}
/* Subcategorías */
.subcat-list{display:none;padding:2px 0 4px 18px}
.subcat-list.open{display:block}
.subcatitem{
  display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;
  cursor:pointer;transition:.15s;color:var(--muted2);font-size:12px;font-weight:500;
  border:1px solid transparent;
}
.subcatitem:hover{background:rgba(var(--fg-rgb),.05);color:var(--text)}
.subcatitem.active{background:rgba(22,163,74,.1);border-color:rgba(22,163,74,.25);color:var(--or);font-weight:700}
.subcatitem-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0;transition:.15s}
.subcatitem.active .subcatitem-dot{background:var(--or)}

/* Mobile cat toggle */
.cat-toggle-btn{
  display:none;width:100%;background:rgba(var(--fg-rgb),.05);border:1px solid var(--border2);
  color:var(--text);border-radius:12px;padding:12px 16px;font-size:13px;font-weight:600;
  align-items:center;gap:10px;margin-bottom:16px;
}

/* Product Grid */
.pgrid-wrap{flex:1;min-width:0}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;transition:opacity 150ms ease-out}

@media(max-width:900px){
  .catsidebar{display:none;position:fixed;top:0;left:0;bottom:0;z-index:1500;border-radius:0;width:260px;transform:translateX(-100%);transition:.3s;background:var(--bg2)}
  .catsidebar.mob-open{display:flex;flex-direction:column;transform:translateX(0)}
  .cat-toggle-btn{display:flex}
  .catlist{max-height:none;flex:1}
  .cat-mob-ov{position:fixed;inset:0;background:rgba(var(--shadow-rgb),.6);z-index:1499;opacity:0;pointer-events:none;transition:opacity .3s}
  .cat-mob-ov.show{opacity:1;pointer-events:auto}
}

/* Product Card */
.pcard{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  overflow:hidden;display:flex;flex-direction:column;transition:.25s;
}
.pcard:hover{transform:translateY(-5px);border-color:rgba(22,163,74,.3);box-shadow:0 16px 48px rgba(var(--shadow-rgb),.45)}
.pcard-img{
  aspect-ratio:1/1;width:100%;display:flex;align-items:center;justify-content:center;
  font-size:3.2rem;position:relative;overflow:hidden;
}
.pcard-img .img1,.pcard-img .img2{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:opacity .45s ease, transform .45s ease;
}
.pcard-img .img1{ opacity:1; transform:scale(1); z-index:1; }
.pcard-img .img2{ opacity:0; transform:scale(1.04); z-index:2; }
.pcard:hover .pcard-img .img1{ opacity:0; transform:scale(1.04); }
.pcard:hover .pcard-img .img2{ opacity:1; transform:scale(1); }
.pcard-img .img-emoji{ position:relative;z-index:1;transition:transform .4s ease;color:#fff; }
.pcard:hover .pcard-img .img-emoji{ transform:scale(1.1); }
.pcard-body{padding:18px;flex:1;display:flex;flex-direction:column}
.psku{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
.pname{font-size:14px;font-weight:700;color:var(--text);margin-bottom:9px;line-height:1.35}
.pcat{
  display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted2);
  background:rgba(var(--fg-rgb),.05);border-radius:20px;padding:3px 11px;margin-bottom:13px;width:fit-content;
}
.pstock{font-size:11px;color:var(--muted);margin-bottom:13px;display:flex;align-items:center;gap:5px}
.sdot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.sdot.low{background:#f59e0b}
.sdot.out{background:var(--red)}
.pprice{font-size:1.7rem;font-weight:900;color:var(--or);margin-bottom:16px;letter-spacing:-.02em}
.pprice-lock{
  display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;margin-bottom:16px;
  background:rgba(var(--fg-rgb),.04);border:1px dashed rgba(var(--fg-rgb),.12);
  border-radius:9px;padding:9px 13px;
}
.pprice-lock i{color:var(--or)}
.btn-cart{
  background:var(--or);color:#fff;border-radius:10px;padding:11px;
  font-size:13px;font-weight:700;width:100%;
  display:flex;align-items:center;justify-content:center;gap:7px;transition:.15s;margin-top:auto;
}
.btn-cart:hover{background:var(--or2);transform:translateY(-2px);box-shadow:0 8px 20px var(--or-glow)}
.btn-cart:active{transform:translateY(0)}
.btn-cart:disabled{background:rgba(var(--fg-rgb),.07);color:var(--muted);cursor:not-allowed;transform:none;box-shadow:none}
.btn-login-buy{
  background:transparent;border:1px solid rgba(22,163,74,.4);color:var(--or);
  border-radius:10px;padding:11px;font-size:13px;font-weight:700;width:100%;
  display:flex;align-items:center;justify-content:center;gap:7px;transition:.15s;margin-top:auto;
}
.btn-login-buy:hover{background:rgba(22,163,74,.1)}

/* Skeleton */
.sk{background:linear-gradient(90deg,var(--card) 25%,var(--card2) 50%,var(--card) 75%);background-size:200% 100%;animation:sk 1.5s infinite;border-radius:8px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* No results */
.nores{grid-column:1/-1;text-align:center;padding:70px 20px;color:var(--muted)}
.nores i{font-size:3.5rem;display:block;margin-bottom:16px;opacity:.3}

/* ═══════════════ CART DRAWER ═══════════════ */
.cart-ov{position:fixed;inset:0;background:rgba(var(--shadow-rgb),.65);z-index:2000;opacity:0;pointer-events:none;transition:.3s}
.cart-ov.show{opacity:1;pointer-events:auto}
.cart-drw{
  position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;
  background:var(--card2);border-left:1px solid var(--border2);z-index:2001;
  transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
}
.cart-drw.open{transform:translateX(0)}
.cart-drw-hdr{
  padding:20px 24px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
}
.cart-drw-title{font-size:16px;font-weight:800;display:flex;align-items:center;gap:10px}
.cclose{
  background:rgba(var(--fg-rgb),.06);border:1px solid var(--border2);color:var(--text);
  border-radius:9px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;transition:.15s;
}
.cclose:hover{background:rgba(var(--fg-rgb),.11)}
.cart-items-list{flex:1;overflow-y:auto;padding:16px}
.cart-empty-state{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100%;gap:12px;color:var(--muted);text-align:center;
}
.cart-empty-state i{font-size:3.5rem;opacity:.25}
.citem{
  display:flex;gap:12px;padding:14px;
  background:rgba(var(--fg-rgb),.04);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;
}
.citem-ico{width:50px;height:50px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;flex-shrink:0}
.citem-info{flex:1;min-width:0}
.citem-name{font-size:13px;font-weight:700;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.citem-price{font-size:14px;font-weight:800;color:var(--or);margin-bottom:9px}
.citem-ctrl{display:flex;align-items:center;gap:8px}
.qbtn{
  background:rgba(var(--fg-rgb),.07);border:1px solid var(--border2);color:var(--text);
  border-radius:7px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:15px;transition:.15s;
}
.qbtn:hover{background:rgba(var(--fg-rgb),.13)}
.qnum{font-size:13px;font-weight:700;min-width:22px;text-align:center}
.citem-del{background:none;color:var(--muted);font-size:16px;padding:4px;margin-left:auto;transition:.15s}
.citem-del:hover{color:var(--red)}
.cart-foot{padding:20px 24px;border-top:1px solid var(--border)}
.cart-tot-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.cart-tot-lbl{font-size:14px;color:var(--muted2);font-weight:500}
.cart-tot-val{font-size:1.45rem;font-weight:900;color:var(--or)}
.btn-chk{
  width:100%;background:var(--or);color:#fff;border-radius:13px;padding:15px;
  font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:9px;
  transition:.2s;box-shadow:0 4px 20px var(--or-glow);
}
.btn-chk:hover{background:var(--or2)}
.btn-chk:disabled{background:rgba(var(--fg-rgb),.07);color:var(--muted);cursor:not-allowed;box-shadow:none}

/* ═══════════════ MODALS ═══════════════ */
.mover{
  position:fixed;inset:0;background:rgba(var(--shadow-rgb),.75);z-index:3000;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:.3s;
}
.mover.show{opacity:1;pointer-events:auto}

/* Auth Modal */
.amodal{
  background:var(--card2);border:1px solid var(--border2);border-radius:22px;
  width:100%;max-width:440px;padding:34px;position:relative;
  transform:translateY(24px) scale(.98);transition:.3s;
}
.mover.show .amodal{transform:translateY(0) scale(1)}
.alogo{text-align:center;margin-bottom:26px}
.alogo img{height:38px;width:auto}
.atabs{display:flex;background:rgba(var(--fg-rgb),.05);border-radius:14px;padding:5px;margin-bottom:28px;gap:5px}
.atab{
  flex:1;background:transparent;color:var(--muted2);border-radius:10px;
  padding:10px;font-size:14px;font-weight:700;transition:.2s;
}
.atab.active{background:var(--or);color:#fff}
.aform{display:none}
.aform.active{display:block}
.fgrp{margin-bottom:17px}
.fgrp label{display:block;font-size:11.5px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.finp{
  width:100%;background:rgba(var(--fg-rgb),.05);border:1px solid var(--border2);
  border-radius:11px;padding:12px 15px;color:var(--text);font-size:14px;outline:none;transition:.2s;
}
.finp:focus{border-color:var(--or);background:rgba(22,163,74,.05)}
.finp::placeholder{color:var(--muted)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.btn-auth{
  width:100%;background:var(--or);color:#fff;border-radius:13px;padding:14px;
  font-size:15px;font-weight:800;margin-top:10px;transition:.2s;
  box-shadow:0 4px 20px var(--or-glow);display:flex;align-items:center;justify-content:center;gap:8px;
}
.btn-auth:hover{background:var(--or2)}
.aerr{
  background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#f87171;
  border-radius:9px;padding:11px 15px;font-size:13px;margin-bottom:15px;display:none;
}
.aerr.show{display:block}
.mclose{
  position:absolute;top:15px;right:15px;
  background:rgba(var(--fg-rgb),.07);border:1px solid var(--border2);color:var(--text);
  border-radius:9px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:17px;transition:.15s;
}
.mclose:hover{background:rgba(var(--fg-rgb),.12)}

/* Checkout Modal */
.chkmodal{
  background:var(--card2);border:1px solid var(--border2);border-radius:22px;
  width:100%;max-width:520px;padding:34px;position:relative;
  transform:translateY(24px) scale(.98);transition:.3s;
  max-height:92vh;overflow-y:auto;
}
.mover.show .chkmodal{transform:translateY(0) scale(1)}
.chktitle{font-size:1.15rem;font-weight:800;margin-bottom:24px;display:flex;align-items:center;gap:10px}
.chktitle i{color:var(--or)}
.pay-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}
.pmethod{
  background:rgba(var(--fg-rgb),.04);border:2px solid var(--border);border-radius:13px;
  padding:16px 10px;text-align:center;cursor:pointer;transition:.15s;
}
.pmethod:hover{border-color:rgba(22,163,74,.4)}
.pmethod.sel{border-color:var(--or);background:rgba(22,163,74,.1)}
.pmethod i{font-size:24px;display:block;margin-bottom:7px;color:var(--or)}
.pmethod span{font-size:12px;font-weight:700;color:var(--muted2)}
.ord-sum{background:rgba(var(--fg-rgb),.03);border:1px solid var(--border);border-radius:13px;padding:18px;margin-bottom:22px}
.ord-row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted2);margin-bottom:9px}
.ord-total{display:flex;justify-content:space-between;font-size:17px;font-weight:800;border-top:1px solid var(--border);padding-top:13px;margin-top:5px}
.ord-total span:last-child{color:var(--or)}

/* Success */
.success-wrap{text-align:center;padding:16px 0}
.sicon{
  width:84px;height:84px;background:rgba(16,185,129,.12);border:2px solid var(--green);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:2.8rem;margin:0 auto 22px;color:var(--green);
}
.sicon-pop{animation:siconPop .45s cubic-bezier(.34,1.56,.64,1)}
@keyframes siconPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}

/* Pedidos Modal */
.porder{background:rgba(var(--fg-rgb),.04);border:1px solid var(--border);border-radius:11px;padding:14px;margin-bottom:10px}
.porder-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.porder-id{font-size:13px;font-weight:800;color:var(--text)}
.estado-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.e-pendiente{background:rgba(245,158,11,.12);color:#f59e0b}
.e-confirmado{background:rgba(59,130,246,.12);color:var(--blue)}
.e-enviado{background:rgba(168,85,247,.12);color:#a855f7}
.e-entregado{background:rgba(16,185,129,.12);color:var(--green)}
.e-cancelado{background:rgba(239,68,68,.12);color:var(--red)}

/* User Menu: vive en partials/store_css.php */

/* Toast */
.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{
  background:var(--card2);border:1px solid var(--border2);border-radius:13px;
  padding:14px 18px;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;
  box-shadow:var(--shadow);animation:tin .3s ease;min-width:290px;
  transition:opacity .25s ease, transform .25s ease;
}
@keyframes tin{from{transform:translateX(110px);opacity:0}to{transform:translateX(0);opacity:1}}
.toast.success{border-color:rgba(16,185,129,.4)}
.toast.success i{color:var(--green)}
.toast.error{border-color:rgba(239,68,68,.4)}
.toast.error i{color:var(--red)}
.toast.info i{color:var(--or)}

/* Footer: vive en partials/store_css.php */

/* ═══════════════ PAGINACIÓN ═══════════════ */
.pg-btn{
  background:rgba(var(--fg-rgb),.08);border:1px solid rgba(var(--fg-rgb),.2);color:var(--text);
  border-radius:10px;min-width:40px;height:40px;padding:0 12px;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;cursor:pointer;transition:.15s;gap:4px;
}
.pg-btn:hover:not(:disabled){background:rgba(var(--fg-rgb),.16);border-color:rgba(22,163,74,.6)}
.pg-btn.pg-active{background:var(--or);border-color:var(--or);color:#fff;box-shadow:0 0 14px rgba(22,163,74,.4)}
.pg-btn:disabled{opacity:.25;cursor:not-allowed}
.pg-arrow{background:rgba(var(--fg-rgb),.08);border:1px solid rgba(var(--fg-rgb),.2);color:var(--text);
  border-radius:10px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  font-size:17px;cursor:pointer;transition:.15s;font-weight:700}
.pg-arrow:hover:not(:disabled){background:var(--or);border-color:var(--or);color:#fff}
.pg-arrow:disabled{opacity:.2;cursor:not-allowed}

/* ═══════════════ SLIDER ═══════════════ */
.sl-slide{
  min-width:100%;height:540px;position:relative;overflow:hidden;flex-shrink:0;
  display:flex;align-items:center;
}
.sl-slide-bg{position:absolute;inset:0;background-size:contain;background-repeat:no-repeat;background-position:center;
  background-color:var(--bg2)}
.sl-slide-bg::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 75% 65% at 50% 50%,rgba(22,163,74,.14) 0%,transparent 70%);
}
.sl-slide-bg::after{display:none}
.sl-slide-content{position:relative;z-index:1;max-width:560px;padding:0 60px}

/* Entrada del texto del slide activo — se reinicia en cada cambio via JS
   (toggle de .active), no solo con CSS puro, para que no se corte a la mitad. */
@keyframes pt-slide-fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.sl-slide.active .sl-slide-content{animation:pt-slide-fadeup .7s ease-out both}
@media (prefers-reduced-motion: reduce){
  .sl-slide.active .sl-slide-content{animation:none}
}
/* Panel oscuro semitransparente detrás del texto: garantiza contraste sin
   importar qué foto haya de fondo (clave para los slides que se generan
   solos a partir de fotos de catálogo, no banners diseñados a mano). Solo
   se aplica si el slide tiene texto real (has-scrim la agrega el JS). */
.sl-slide-content.has-scrim{
  background:linear-gradient(100deg,rgba(5,9,16,.82) 0%,rgba(5,9,16,.6) 65%,rgba(5,9,16,0) 100%);
  padding:28px 40px 28px 60px;border-radius:0 18px 18px 0;max-width:480px;margin-left:-60px;
}
.sl-title{font-size:clamp(1.4rem,3.2vw,2.4rem);font-weight:900;line-height:1.15;margin-bottom:12px;color:#fff}
.sl-sub{font-size:1.15rem;font-weight:700;color:#fff;margin-bottom:26px;line-height:1.4}
.sl-btn{background:var(--or);color:#fff;border:none;border-radius:10px;padding:13px 28px;font-size:14px;font-weight:700;cursor:pointer;transition:.2s;text-decoration:none;display:inline-block}
.sl-btn:hover{background:var(--or2);color:#fff}
.sl-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:10;
  background:rgba(var(--fg-rgb),.1);border:1px solid rgba(var(--fg-rgb),.2);color:#fff;
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;cursor:pointer;backdrop-filter:blur(8px);transition:.2s;
}
.sl-arrow:hover{background:rgba(22,163,74,.4);border-color:var(--or)}
.sl-prev{left:18px}.sl-next{right:18px}
.sl-dot{width:8px;height:8px;border-radius:50%;background:rgba(var(--fg-rgb),.35);cursor:pointer;transition:.25s}
.sl-dot.active{background:var(--or);width:22px;border-radius:4px}

/* ═══════════════ RESPONSIVE ═══════════════ */
@media(max-width:900px){
  .pay-methods{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  /* Navbar/logo/carrito en mobile: viven en partials/store_css.php */
  body{padding-top:126px}
  .h-title{font-size:2.1rem}
  .psec{padding:44px 14px 60px}
  .pgrid{grid-template-columns:repeat(2,1fr);gap:12px}
  .pcard-img{aspect-ratio:1/1;height:auto;font-size:2.4rem}
  .pcard-body{padding:13px}
  .pname{font-size:13px}
  .pprice{font-size:1.3rem}
  .btn-cart,.btn-login-buy{font-size:12px;padding:9px}
  .cart-drw{width:100vw}
  .frow{grid-template-columns:1fr}
  .amodal{padding:24px 20px}
  .chkmodal{padding:24px 20px}

  /* Slider: mostrar la imagen COMPLETA (sin recortar a la mitad).
     Se mantiene la estructura (bg absoluto) y solo se reduce la altura
     y se usa contain para que se vea todo el banner. El texto (cuando hay,
     ej. slides auto-generados) se ancla abajo como franja de ancho completo
     en vez del panel angosto de escritorio -- entra mejor en poco alto. */
  #hero-slider{min-height:260px !important}
  .sl-slide{height:260px}
  .sl-slide-bg{background-size:contain;background-repeat:no-repeat;background-position:center;background-color:var(--bg2)}
  .sl-slide-bg::after{display:none}
  /* Posicionado absoluto (no como item de flex) para que el ancho siempre
     sea el del slide real, sin depender del cálculo de flex + min-width:100%
     anidado que en mobile termina dando un ancho mayor al de la pantalla. */
  .sl-slide-content{position:absolute;left:0;right:0;bottom:0;max-width:none;padding:0 16px}
  .sl-slide-content.has-scrim{
    background:linear-gradient(0deg,rgba(5,9,16,.9) 15%,rgba(5,9,16,.55) 75%,rgba(5,9,16,0) 100%);
    margin-left:0;border-radius:0;padding:16px 16px 18px;
  }
  .sl-title{font-size:1.05rem;margin-bottom:6px}
  .sl-sub{font-size:.9rem;margin-bottom:12px}
  .sl-btn{padding:9px 18px;font-size:13px}
}
