/* =========================================================
   DELIVERY MAYORISTA — PREMIUM STYLE CORE (FINAL VERSION)
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root{
  /* Paleta de Colores High-End */
  --bg:#020617;
  --panel: rgba(15, 23, 42, 0.7);
  --border: rgba(255,255,255,0.08);
  --text:#f8fafc;
  --muted:#94a3b8;
  --accent:#6366f1;
  --success:#10b981;
  --premium-gradient: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);

  /* UI */
  --radius-premium: 2.5rem;
}

/* =========================================================
   Loader (PC + Mobile)
   ========================================================= */
html.dm-loader-skip #dm-loader{ display:none !important; }

#dm-loader{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(2, 6, 23, .92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);

  /* Premium UX:
     - Arranca visible (pero se puede saltar en repeat visit)
     - JS agrega .dm-loader--show solo si hace falta */
  opacity: 1;
  pointer-events: auto;
  transform: scale(1.02);

  transition: opacity .55s ease, transform .55s ease;
}

#dm-loader.dm-loader--show{
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}

#dm-loader .dm-loader-box{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 12px;
}

#dm-loader .dm-loader-logo{
  font-weight: 900;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: -.04em;
  font-size: 28px;
  line-height: 1;
}

#dm-loader .dm-loader-logo span{ color: #6366f1; }

#dm-loader .dm-loader-bar{
  width: 180px;
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);
  overflow: hidden;
}

#dm-loader .dm-loader-bar::after{
  content:"";
  display:block;
  height:100%;
  width: 55%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(99,102,241,.0), rgba(99,102,241,1), rgba(99,102,241,.0));
  animation: dmLoaderMove 1.05s ease-in-out infinite;
}

@keyframes dmLoaderMove{
  0%{ transform: translateX(-120%); opacity: .3; }
  50%{ opacity: 1; }
  100%{ transform: translateX(220%); opacity: .3; }
}

.dm-loader--hide{ opacity: 0; transform: scale(1.02); pointer-events:none; }

/* Reset y Base con Iluminación Radial Focal */
*{ box-sizing:border-box; -webkit-tap-highlight-color: transparent; }

body{
  background-color: var(--bg);
  color: var(--text);
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  margin:0;
  overflow-x:hidden;
  line-height:1.5;
  background-image: radial-gradient(circle at 50% -20%, #1e1b4b 0%, #020617 85%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
}

/* Scrollbar Estilo Minimalista */
::-webkit-scrollbar{ width:5px; }
::-webkit-scrollbar-track{ background: var(--bg); }
::-webkit-scrollbar-thumb{ background:#1e293b; border-radius:10px; }

/* Utility: Quitar scrollbars */
.no-scrollbar::-webkit-scrollbar{ display:none; }
.no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }

/* =========================================================
   COMPONENTES GLOBALES (Glassmorphism)
   ========================================================= */

.glass{
  background: var(--panel);
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  border: 1px solid var(--border);
}

.premium-gradient{ background: var(--premium-gradient); }

/* Animaciones de Entrada */
.card-animate{
  animation: fadeInUp .8s cubic-bezier(.22,1,.36,1) forwards;
  opacity:0;
}
@keyframes fadeInUp{
  from{ opacity:0; transform: translateY(30px); }
  to{ opacity:1; transform: translateY(0); }
}

/* =========================================================
   BARRA DE PROGRESO "CELEBRATION" (Glow Neón)
   ========================================================= */

.progress-container{
  background: rgba(15, 23, 42, 0.6);
  border-radius: var(--radius-premium);
  padding: 2.2rem;
  border: 1px solid var(--border);
  transition: all .5s ease;
  box-shadow: 0 20px 40px rgba(0,0,0,.4);
}

.progress-container.unlocked{
  border-color: rgba(16,185,129,.4);
  box-shadow: 0 0 50px rgba(16,185,129,.15), inset 0 0 20px rgba(16,185,129,.05);
}

.progress-bar-bg{
  background: rgba(255,255,255,.05);
  height:12px;
  border-radius:100px;
  margin-top:1.5rem;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.03);
}

.progress-bar-fill{
  height:100%;
  border-radius:100px;
  background: var(--premium-gradient);
  transition: width 1.2s cubic-bezier(.34,1.56,.64,1);
}

.progress-bar-fill.complete{
  background: var(--success);
  box-shadow: 0 0 20px rgba(16,185,129,.6);
}

.shimmer-bar{ position:relative; overflow:hidden; }
.shimmer-bar::after{
  content:"";
  position:absolute; top:0; left:-100%;
  width:100%; height:100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  animation: shimmer 2s infinite;
}
@keyframes shimmer{ 100%{ left:100%; } }

/* =========================================================
   PRODUCT CARDS (Efecto Violeta & Redondez 2.5rem)
   ========================================================= */

.dm-card{
  background: linear-gradient(145deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.01) 100%);
  border-radius: var(--radius-premium) !important;
  border: 1px solid var(--border);
  padding:14px;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  will-change: transform;
  content-visibility: auto;
  contain-intrinsic-size: 360px 420px;
}

.dm-card:hover{
  transform: translateY(-6px);
  background: linear-gradient(145deg, rgba(99,102,241,.15) 0%, rgba(15,23,42,.9) 100%);
  border-color: rgba(99,102,241,.4);
  box-shadow: 0 14px 28px rgba(0,0,0,.45);
}

/* ✅ FIX: contenedor de imagen que NO deja sobresalir + look blanco */
.dm-card__img-container{
  position:relative;
  aspect-ratio: 1/1;
  border-radius: 2rem;
  overflow:hidden;              /* ya lo tenías (clave) */
  margin-bottom:1.2rem;
  background:#fff;              /* antes #000 */
  padding: 12px;                /* ✅ aire para imágenes raras */
}

/* ✅ SIN IMAGEN (solo cuando el JS agrega .dm-noimg) */
.dm-card__img-container.dm-noimg{
  background:#fff;
}
.dm-card__img-container.dm-noimg img{
  opacity:0; /* mantiene el tamaño, solo oculta la imagen */
}
.dm-card__img-container.dm-noimg::after{
  content:"SIN IMAGEN";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(0,0,0,.38);
  pointer-events:none;
  z-index:1;
}

/* ✅ FIX: imagen ajustada dentro (sin sobresalir) */
.dm-card__img-container img{
  width:100%;
  height:100%;
  object-fit: contain;          /* antes cover -> ahora se ajusta */
  display:block;
  transition: transform .4s ease;
}

/* (opcional) si querés que NO haga zoom en hover, comentá esto */
.dm-card:hover .dm-card__img-container img{
  transform: scale(1.03);
}

.badge-tag{
  position:absolute; top:12px; left:12px;
  font-size:10px;
  font-weight:800;
  padding:6px 12px;
  border-radius:10px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.2);
  color:#fff;
  z-index:10;
  text-transform: uppercase;
  letter-spacing:.5px;
}
.badge-nuevo{ background: rgba(99,102,241,.7); }
.badge-oferta{ background: rgba(249,115,22,.7); }

/* Badges múltiples (OFERTA + NUEVO) */
.badge-stack{
  position:absolute;
  top:12px;
  left:12px;
  z-index:10;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.badge-stack .badge-tag{
  position:static;
  top:auto;
  left:auto;
  padding:5px 10px;
  font-size:9px;
  border-radius:999px;
  letter-spacing:.4px;
}

.btn-share-card{
  position:absolute; top:12px; right:12px;
  background: rgba(0,0,0,.3);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.1);
  color:#fff;
  padding:8px;
  border-radius:50%;
  z-index:10;
  transition: all .2s;
  display:flex; align-items:center; justify-content:center;
}

/* =========================================================
   CARRITO (Tarjetas Redondas 2.5rem & Imagen Blanca)
   ========================================================= */

.cart-item-card{
  background: rgba(255,255,255,.03);
  border-radius: var(--radius-premium) !important;
  border: 1px solid var(--border);
  padding: 1.2rem 1.5rem !important;
  position:relative;
  transition: all .3s ease;
}

.cart-item-img{
  width:80px;
  height:80px;
  border-radius:1.8rem;
  background:#fff;
  padding:5px;
  flex-shrink:0;
  overflow:hidden;
}

.cart-item-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:1.5rem;
}

/* CAPSULA DE CANTIDAD NEGRA */
.quantity-control-premium{
  background:#000 !important;
  border: 1px solid rgba(255,255,255,.15);
  border-radius:100px;
  display:flex; align-items:center; justify-content:space-between;
  padding:5px;
  height:48px;
}

.q-btn{
  width:40px; height:40px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  background:transparent;
  border:none;
  cursor:pointer;
}
.q-btn:hover{ background: rgba(255,255,255,.1); }

.q-number{ font-weight:800; font-size:1.1rem; }

.btn-premium{
  background: var(--premium-gradient);
  color:#fff;
  padding:14px;
  border-radius:1.5rem;
  font-weight:800;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1px;
  border:none;
  cursor:pointer;
  transition: all .3s ease;
}
.dm-card:hover .btn-premium{
  box-shadow: 0 0 20px rgba(168,85,247,.4);
  transform: scale(1.02);
}

/* =========================================================
   SECCIÓN 4 PASOS (Interacción Premium)
   ========================================================= */

.step-card{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  will-change: transform;
  content-visibility: auto;
  contain-intrinsic-size: 360px 420px;
  position:relative;
  overflow:hidden;
  cursor: default;
  border: 1px solid var(--border);
  border-radius: var(--radius-premium) !important;
}

.step-card:hover{
  transform: translateY(-6px);
  background: linear-gradient(145deg, rgba(99,102,241,.15) 0%, rgba(15,23,42,.9) 100%);
  border-color: rgba(99,102,241,.4);
  box-shadow: 0 14px 28px rgba(0,0,0,.45);
}

.step-card:hover .step-number{
  opacity:.2;
  transform: scale(1.1);
  color: var(--accent);
}

.step-card:hover .step-icon-container{
  background: var(--premium-gradient);
  color:#fff;
  transform: rotate(-5deg) scale(1.1);
}

.step-number, .step-icon-container{ transition: all .4s ease; }

/* =========================================================
   SIDEBARS & MENÚS
   ========================================================= */

#sidebar-filtros, #sidebar-carrito{
  background: rgba(5, 9, 20, 0.98);
  backdrop-filter: blur(35px);
  -webkit-backdrop-filter: blur(35px);
  border-color: var(--border);
}

#sidebar-filtros h2, #sidebar-filtros span, #sidebar-filtros p, #sidebar-filtros button,
#sidebar-carrito h2, #sidebar-carrito span, #sidebar-carrito p, #sidebar-carrito button{
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}

.category-item{
  padding:14px 20px;
  border-radius:1.2rem;
  display:flex; align-items:center; gap:12px;
  color: var(--muted);
  transition:.3s;
  cursor:pointer;
}
.category-item:hover{ background: rgba(255,255,255,.05); color:#fff; }

.btn-help{
  display:flex; align-items:center; justify-content:center;
  gap:8px;
  padding:15px;
  border-radius:1.2rem;
  font-weight:800;
  font-size:10px;
  letter-spacing:1px;
  transition: all .3s ease;
  border: 1px solid transparent;
  cursor:pointer;
}
.btn-help.chat{ background: rgba(20,184,166,.1); color:#2dd4bf; border-color: rgba(20,184,166,.2); }
.btn-help.social{ background: rgba(236,72,153,.1); color:#f472b6; border-color: rgba(236,72,153,.2); }
.btn-help:hover{ transform: scale(1.02); filter: brightness(1.2); }

/* FAQ ACORDEÓN LÍNEAS FINAS */
.faq-item-line{
  display:flex;
  flex-direction:column;
  align-items:flex-start !important;
  padding:20px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  color: var(--muted);
  font-weight:700;
  font-size:10px;
  letter-spacing:1px;
  cursor:pointer;
  transition: color .3s ease;
}

.faq-answer{
  max-height:0;
  overflow:hidden;
  transition: all .4s cubic-bezier(.4,0,.2,1);
  font-size:11px;
  line-height:1.6;
  color:#64748b;
  text-transform:none;
  padding-right:10px;
}

.faq-item-line.active{ border-bottom-color: rgba(99,102,241,.3); }
.faq-item-line.active .faq-answer{ max-height:150px; padding-top:10px; padding-bottom:20px; }
.faq-item-line.active span{ color:#fff; }
.faq-item-line.active i{ transform: rotate(180deg); color: var(--accent); opacity:1; }
.faq-item-line i{ width:14px; height:14px; opacity:.3; transition: transform .3s ease; }

/* =========================================================
   PAGINACIÓN PREMIUM
   ========================================================= */

#paginacion-container button{
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}

/* =========================================================
   WHATSAPP FLOTANTE CON AURA
   ========================================================= */

.whatsapp-float{ position:fixed; bottom:30px; right:30px; z-index:500; }
body.cart-open .whatsapp-float{
  opacity:0;
  pointer-events:none;
  transform: translateY(10px) scale(.92);
}

body.filtros-open .whatsapp-float{
  opacity:0;
  pointer-events:none;
  transform: translateY(10px) scale(.92);
}
.wa-icon{
  background:#25d366;
  width:60px; height:60px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 10px 30px rgba(37,211,102,.4);
  position:relative;
  z-index:2;
}
.wa-glow{
  position:absolute;
  inset:0;
  background:#25d366;
  border-radius:50%;
  filter: blur(15px);
  opacity:.4;
  animation: wa-pulse 2s infinite;
}
@keyframes wa-pulse{
  0%{ transform: scale(1); opacity:.4; }
  50%{ transform: scale(1.4); opacity:0; }
  100%{ transform: scale(1); opacity:.4; }
}

/* =========================================================
   ✅ FILTRO / ETIQUETA STOCK (SOLO ESTILO)
   ========================================================= */

.stock-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 6px 12px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.12);
  margin-bottom:10px;
}

.stock-dot{ width:8px; height:8px; border-radius:50%; }
.stock-num{ opacity:.75; letter-spacing:.06em; }

/* VERDE */
.stock-ok{ color:#34d399; border-color: rgba(52,211,153,.35); }
.stock-ok .stock-dot{ background:#34d399; box-shadow: 0 0 12px rgba(52,211,153,.6); }

/* AMARILLO */
.stock-low{ color:#fbbf24; border-color: rgba(251,191,36,.35); }
.stock-low .stock-dot{ background:#fbbf24; box-shadow: 0 0 12px rgba(251,191,36,.55); }

/* ROJO */
.stock-out{ color:#fb7185; border-color: rgba(251,113,133,.35); }
.stock-out .stock-dot{ background:#fb7185; box-shadow: 0 0 12px rgba(251,113,133,.55); }

/* =========================================================
   ✅ PRODUCT MODAL (QUICK VIEW) — PREMIUM (PC)
   ========================================================= */

.pmodal-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 9998;
}

.pmodal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 16px;
}

.pmodal.hidden,
.pmodal-overlay.hidden{ display:none; }

.pmodal-close{
  position: fixed;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(10,15,30,.65);
  color: #fff;
  font-size: 18px;
  z-index: 10000;
}

.pmodal-card{
  width: min(560px, 100%);
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(22,28,50,.94), rgba(8,12,25,.94));
  box-shadow: 0 18px 50px rgba(0,0,0,.55);
}

.pmodal-media{
  background: #f2f2f6;
  padding: 16px;
  display: grid;
  place-items: center;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.pmodal-media img{
  width: 100%;
  height: 240px; /* PC: un poco más alto */
  object-fit: contain;
  display: block;
  border-radius: 18px;
  background: rgba(255,255,255,.03);
}

.pmodal-body{ padding: 16px 16px 18px; }

.pmodal-badges{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.pmodal-badge{
  font-size: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.8);
}

.pmodal-stock{
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
}
.pmodal-stock.ok{ color: #42f59e; background: rgba(66,245,158,.08); }
.pmodal-stock.low{ color: #ffd36a; background: rgba(255,211,106,.10); }
.pmodal-stock.no{ color: #ff6a6a; background: rgba(255,106,106,.10); }

.pmodal-title{
  font-size: 34px;
  line-height: 1.05;
  margin: 6px 0 8px;
  font-weight: 800;
}

/* ✅ Si no hay descripción → no ocupa espacio */
.pmodal-desc:not(.has-desc){ display:none; }

/* Contenedor descripción (solo si hay) */
.pmodal-desc.has-desc{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.65);
}

/* (opcional) título de bloque */
.pmodal-desc-title{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  font-weight: 900;
  margin-bottom: 10px;
}

/* ✅ Texto real que inyecta tu JS */
.pmodal-desc .dm-desc{
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.55;
  white-space: normal;
}

/* ✅ clamp 4 líneas */
.pmodal-desc .dm-desc.clamp{
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ✅ expandido */
.pmodal-desc .dm-desc.expanded{
  display:block;
  overflow: visible;
}

/* ✅ botón VER MÁS / VER MENOS */
.pmodal-desc .dm-desc-more{
  margin-top: 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(129,140,248,.95);
  background: rgba(99,102,241,.10);
  border: 1px solid rgba(99,102,241,.22);
  padding: 10px 12px;
  border-radius: 14px;
  width: 100%;
  cursor:pointer;
}
.pmodal-desc .dm-desc-more:hover{ filter: brightness(1.15); }

.pmodal-pricebox{
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 14px;
  margin-bottom: 14px;
}

.pmodal-price-label{
  font-size: 12px;
  letter-spacing: .18em;
  color: rgba(255,255,255,.35);
  font-weight: 700;
  margin-bottom: 6px;
}

.pmodal-price{
  font-size: 56px;
  font-weight: 900;
  line-height: 1;
}

.pmodal-actions{
  display: grid;
  /* Un poco mas de aire entre cantidad y CTA */
  grid-template-columns: 112px 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 10px;
}

.pmodal-qty{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(120% 140% at 20% 0%, rgba(255,255,255,.08), transparent 55%),
    rgba(0,0,0,.16);
  box-shadow: 0 14px 40px rgba(0,0,0,.35);
}

.pmodal-qty-btn{
  /* mas compacto (menos protagonista que el CTA) */
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(120% 120% at 30% 20%, rgba(255,255,255,.14), rgba(255,255,255,.04));
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  display:grid;
  place-items:center;
  transition: transform .12s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
  box-shadow: 0 8px 22px rgba(0,0,0,.32);
}
.pmodal-qty-btn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.26);
  background:
    radial-gradient(120% 120% at 30% 20%, rgba(255,255,255,.18), rgba(255,255,255,.06));
}
.pmodal-qty-btn:active{ transform: translateY(0px) scale(.98); }
.pmodal-qty-btn:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(168,85,247,.25), 0 10px 26px rgba(0,0,0,.35);
}

.pmodal-qty-num{
  min-width: 34px;
  text-align:center;
  font-weight: 900;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}

.pmodal-add{
  height: 56px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(90deg, rgba(99,102,241,.85), rgba(168,85,247,.80));
  color: #fff;
  font-weight: 900;
  letter-spacing: .01em;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 0 18px;
  gap: 14px;
  transition: transform .12s ease, filter .2s ease, box-shadow .2s ease;
  box-shadow: 0 18px 50px rgba(0,0,0,.40);
}
.pmodal-add:hover{
  transform: translateY(-1px);
  filter: brightness(1.06);
  /* micro glow premium */
  box-shadow:
    0 18px 50px rgba(0,0,0,.40),
    0 0 26px rgba(168,85,247,.18),
    0 0 38px rgba(99,102,241,.14);
}
.pmodal-add:active{ transform: translateY(0px) scale(.99); }
.pmodal-add:focus-visible{ outline:none; box-shadow: 0 0 0 3px rgba(99,102,241,.25), 0 18px 50px rgba(0,0,0,.40); }

body.modal-open{ overflow:hidden; }

/* Quitar flechitas (spinner) del input number — Catálogo y Carrito */
.q-number-input::-webkit-outer-spin-button,
.q-number-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.q-number-input{
  -moz-appearance:textfield;
  appearance:textfield;
}
/* (opcional) por si algún input number no tiene la clase */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
input[type="number"]{
  -moz-appearance:textfield;
  appearance:textfield;
}

/* =========================================================
   ✅ PMODAL UX POLISH (PC) — solo estética (no lógica)
   ========================================================= */
.pmodal-overlay{
  background:
    radial-gradient(900px 500px at 50% 15%, rgba(138,92,255,.20), rgba(0,0,0,0) 60%),
    rgba(0,0,0,.62);
}

.pmodal-card{
  border-color: rgba(255,255,255,.10);
  background:
    radial-gradient(900px 420px at 50% -10%, rgba(140,100,255,.18), rgba(0,0,0,0) 60%),
    linear-gradient(180deg, rgba(20,26,48,.92), rgba(8,12,25,.92));
  box-shadow:
    0 30px 90px rgba(0,0,0,.62),
    0 0 0 1px rgba(255,255,255,.04) inset;
}

.pmodal-media{
  position: relative;
  padding: 18px 18px 12px;
  background:
    radial-gradient(900px 420px at 50% 0%, rgba(164,110,255,.22), rgba(0,0,0,0) 62%),
    radial-gradient(600px 260px at 50% 20%, rgba(255,255,255,.08), rgba(255,255,255,0) 62%);
}

.pmodal-media::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,.10));
  pointer-events:none;
}

.pmodal-media img{
  height: 280px;
  background: rgba(255,255,255,.035);
  box-shadow:
    0 18px 45px rgba(0,0,0,.38),
    0 0 0 1px rgba(255,255,255,.08) inset;
}

.pmodal-body{ padding: 14px 18px 18px; }

.pmodal-badges{ margin-bottom: 8px; }

.pmodal-badge, .pmodal-stock{
  font-size: 11px;
  padding: 6px 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pmodal-title{
  font-size: 26px;
  line-height: 1.06;
  letter-spacing: .04em;
  margin: 6px 0 10px;
}

.pmodal-desc.has-desc{
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.08);
}

.pmodal-pricebox{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
}

.pmodal-price{
  font-size: 54px;
  letter-spacing: -0.02em;
}

.pmodal-actions{
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.06);
}

.pmodal-add{
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(0,0,0,.30);
}

.pmodal-close{
  background: rgba(10,12,25,.55);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
}
.pmodal-close:hover{ background: rgba(10,12,25,.70); }

/* micro-animación al abrir */
.pmodal:not(.hidden) .pmodal-card{
  animation: dmPmodalPop .18s ease-out both;
}
@keyframes dmPmodalPop{
  from{ transform: translateY(10px) scale(.98); opacity: .0; }
  to{ transform: translateY(0) scale(1); opacity: 1; }
}

.pmodal-price-sub{
  margin-top: 6px;
  font-size: 12px;
  color: rgba(255,255,255,.45);
  font-weight: 700;
}

.pmodal-desc-head{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.40);
  margin-bottom: 10px;
}
.pmodal-desc-lead{ margin-bottom: 10px; }
.pmodal-desc-bullets{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
}
.pmodal-desc-bullets li{
  color: rgba(255,255,255,.78);
}

/* =========================================================
   ✅ PMODAL — LAYOUT 2 COLUMNAS (Desktop ancho)
   - Solo PC (no afecta mobile)
   - Imagen protagonista + contenido a la derecha
   - Sin cambios de lógica
   ========================================================= */

@media (min-width: 900px){
  .pmodal-card{
    width: min(980px, 100%);
    display: grid;
    grid-template-columns: 1.25fr 0.75fr;
    align-items: stretch;
  }

  .pmodal-media{
    border-bottom: none;
    border-right: 1px solid rgba(255,255,255,.08);
    padding: 22px;
  }

  .pmodal-media img{
    height: 420px;
  }

  .pmodal-body{
    padding: 18px 22px 22px;
  }

  .pmodal-title{
    font-size: 32px;
    letter-spacing: .02em;
  }

  .pmodal-price{
    font-size: 60px;
  }

  .pmodal-actions{
    grid-template-columns: 140px 1fr;
  }

  .pmodal-add{
    height: 60px;
  }
}


@media (prefers-reduced-motion: reduce){
  #dm-loader{ transition: none !important; }
  #dm-loader .dm-loader-bar::after{ animation: none !important; }
}

/* ===== PC Layout: full-width background + bounded content ===== */
.pc-container{
  width:100%;
  max-width:1600px;
  margin:0 auto;
  padding:0 32px;
}

.header-inner{
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:0 28px;
}


/* Product grid that scales nicely on big screens */
.product-grid{
  display:grid;
  gap:28px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
@media (min-width:1500px){
  .product-grid{ grid-template-columns:repeat(5, minmax(0, 1fr)); }
}
@media (min-width:1800px){
  .product-grid{ grid-template-columns:repeat(6, minmax(0, 1fr)); }
}

/* Keep some breathing room on smaller desktop widths */
@media (max-width:1200px){
  .product-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (max-width:900px){
  .product-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .pc-container, .header-inner{ padding:0 18px; }
}



/* === PC Tuning: cards más compactas (evita tarjetas gigantes) === */
#catalogo-grid.product-grid{
  display:grid;
  gap:22px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 260px));
  justify-content: center;
  align-items: start;
}

/* Ajuste en pantallas grandes: no agrandar de más */
@media (min-width:1400px){
  #catalogo-grid.product-grid{
    grid-template-columns: repeat(auto-fill, minmax(250px, 250px));
    justify-content: center;
  }
}

/* Card más compacta */
.dm-card{ padding:12px; }
.dm-card__img-container{
  aspect-ratio: 4/3;
  padding: 10px;
  margin-bottom: 1rem;
}
