:root{
  --noche:#120D1C; --noche-2:#1E1530; --morado:#6B3FA0; --morado-claro:#B48CE8;
  --calabaza:#FF7A1A; --calabaza-osc:#E8620C; --verde:#8BD450; --crema:#FFF4E6;
  --texto:#F3EBFF; --tenue:#C9B8E0; --tinta:#1A0F05; --radio:16px;
  --sombra:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--noche);color:var(--texto);line-height:1.55}
img{max-width:100%;height:auto;display:block}
a{color:var(--calabaza)}
h1,h2{font-family:Creepster,"Nunito",cursive;font-weight:400;letter-spacing:.02em;line-height:1.1;margin:0 0 .4em}
h2{font-size:clamp(2rem,4vw,2.8rem);color:var(--calabaza)}
:focus-visible{outline:3px solid var(--verde);outline-offset:2px}
.contenedor{width:min(1120px,100% - 32px);margin-inline:auto}
.saltar{position:absolute;left:-999px;top:8px;background:var(--calabaza);color:var(--tinta);padding:8px 14px;border-radius:8px;z-index:100}
.saltar:focus{left:8px}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:999px;border:2px solid transparent;font:800 1rem Nunito,system-ui,sans-serif;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-2px)}
.btn-principal{background:var(--calabaza);color:var(--tinta)}
.btn-principal:hover{background:#FF8F3D}
.btn-secundario{background:transparent;color:var(--texto);border-color:var(--morado-claro)}
.btn-secundario:hover{background:rgba(180,140,232,.15)}
.btn-mini{min-height:40px;padding:6px 14px;background:var(--morado);color:#fff}
.ancho{width:100%}
.enlace{background:none;border:0;padding:4px;color:var(--tenue);text-decoration:underline;cursor:pointer;font:inherit;min-height:24px}
.enlace:hover{color:var(--calabaza)}

/* Cabecera */
.cabecera{position:sticky;top:0;z-index:30;background:rgba(18,13,28,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(180,140,232,.2)}
.cabecera-fila{display:flex;align-items:center;gap:16px;min-height:68px}
.marca{display:flex;align-items:center;gap:10px;color:var(--texto);text-decoration:none;font:400 1.6rem Creepster,cursive;margin-right:auto}
.marca b{color:var(--calabaza);font-weight:400}
.menu{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.menu a{color:var(--texto);text-decoration:none;padding:10px 12px;border-radius:999px;font-weight:700}
.menu a:hover{background:rgba(255,122,26,.15);color:var(--calabaza)}
.btn-carrito{position:relative;width:48px;height:48px;border-radius:50%;border:2px solid var(--calabaza);background:transparent;color:var(--calabaza);cursor:pointer;display:grid;place-items:center}
.btn-carrito:hover{background:rgba(255,122,26,.15)}
.contador{position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--verde);color:var(--tinta);font:800 .75rem/22px Nunito,sans-serif}
.contador.salto{animation:salto .4s}
@keyframes salto{50%{transform:scale(1.4)}}

/* Hero */
.hero{padding:56px 0 64px;background:radial-gradient(circle at 80% 20%,rgba(107,63,160,.45),transparent 55%),radial-gradient(circle at 10% 90%,rgba(255,122,26,.18),transparent 45%)}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.etiqueta{display:inline-block;background:rgba(139,212,80,.15);color:var(--verde);padding:6px 14px;border-radius:999px;font-weight:800;margin:0 0 14px}
h1{font-size:clamp(2.6rem,6vw,4.4rem);color:var(--crema)}
h1 span{color:var(--calabaza)}
.hero-texto{font-size:1.15rem;color:var(--tenue);max-width:52ch}
.hero-botones{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
.sellos{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0;color:var(--tenue);font-weight:700}
.hero-foto{margin:0;border-radius:28px;overflow:hidden;box-shadow:var(--sombra);border:3px solid var(--morado);aspect-ratio:3/2;background:var(--noche-2)}
.hero-foto img{width:100%;height:100%;object-fit:cover}

/* Secciones */
.seccion{padding:72px 0}
.alterna{background:var(--noche-2)}
.sub{color:var(--tenue);margin:-6px 0 24px}
.filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.filtro{min-height:40px;padding:6px 16px;border-radius:999px;border:2px solid rgba(180,140,232,.4);background:transparent;color:var(--texto);font:700 .95rem Nunito,sans-serif;cursor:pointer}
.filtro.activo{background:var(--morado);border-color:var(--morado)}
.grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.producto{background:var(--noche-2);border:1px solid rgba(180,140,232,.22);border-radius:var(--radio);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}
.producto:hover{transform:translateY(-4px);border-color:var(--calabaza)}
.producto figure{margin:0;aspect-ratio:4/3;background:#2A1A3D;position:relative}
.producto img{width:100%;height:100%;object-fit:cover}
.insignia{position:absolute;top:12px;left:12px;background:var(--verde);color:var(--tinta);font-weight:800;font-size:.8rem;padding:4px 10px;border-radius:999px}
.producto-cuerpo{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}
.producto h3{margin:0;font-size:1.2rem;color:var(--crema)}
.producto p{margin:0;color:var(--tenue);font-size:.95rem}
.producto-pie{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:10px}
.precio{font-weight:800;font-size:1.25rem;color:var(--calabaza)}
.precio small{display:block;font-size:.75rem;color:var(--tenue);font-weight:700}
.credito{font-size:.75rem!important}
.credito a{color:var(--tenue)}

.pasos{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pasos li{background:var(--noche);border-radius:var(--radio);padding:20px;border-top:4px solid var(--calabaza);display:flex;flex-direction:column;gap:6px}
.pasos b{font-size:1.15rem;color:var(--crema)}
.pasos span{color:var(--tenue)}
.nosotros{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.nosotros img{border-radius:var(--radio);border:3px solid var(--morado)}
.redes{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:12px}
.red{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 18px;border-radius:999px;background:var(--noche);border:2px solid rgba(180,140,232,.35);color:var(--texto);text-decoration:none;font-weight:800}
.red svg{width:22px;height:22px}
.red:hover{border-color:var(--calabaza);color:var(--calabaza)}
.red.whatsapp{border-color:#25D366}
.pie{padding:28px 0 96px;border-top:1px solid rgba(180,140,232,.2);color:var(--tenue);font-size:.9rem}
.pie-fila{display:flex;flex-direction:column;gap:4px}
.pie p{margin:0}
.pie a{color:var(--tenue)}

/* Carrito */
.velo{position:fixed;inset:0;background:rgba(5,3,10,.6);z-index:40}
.carrito{position:fixed;top:0;right:0;height:100%;width:min(420px,100%);background:var(--noche-2);z-index:50;display:flex;flex-direction:column;box-shadow:var(--sombra);border-left:3px solid var(--calabaza);animation:entra .25s ease-out}
@keyframes entra{from{transform:translateX(100%)}}
.carrito-cabeza{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(180,140,232,.2)}
.carrito-cabeza h2{margin:0;font-size:1.8rem}
.cerrar{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:var(--texto);font-size:1.6rem;cursor:pointer;line-height:1}
.cerrar:hover{background:rgba(255,122,26,.25)}
.carrito-lista{flex:1;overflow:auto;padding:12px 20px}
.vacio{text-align:center;color:var(--tenue);padding:40px 0}
.item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px dashed rgba(180,140,232,.25)}
.item img{width:64px;height:64px;object-fit:cover;border-radius:10px}
.item h3{margin:0;font-size:1rem}
.item p{margin:2px 0 0;color:var(--tenue);font-size:.85rem}
.cantidad{display:flex;align-items:center;gap:4px;margin-top:6px}
.cantidad button{width:32px;height:32px;border-radius:8px;border:1px solid var(--morado-claro);background:transparent;color:var(--texto);font-weight:800;cursor:pointer}
.cantidad output{min-width:24px;text-align:center;font-weight:800}
.quitar{background:none;border:0;color:var(--tenue);cursor:pointer;text-decoration:underline;font:inherit;font-size:.85rem;min-height:32px}
.item-total{font-weight:800;color:var(--calabaza);text-align:right}
.carrito-pie{padding:16px 20px;border-top:1px solid rgba(180,140,232,.2);display:flex;flex-direction:column;gap:8px}
.cupon{display:flex;gap:8px;align-items:center}
.cupon label{font-weight:700}
.cupon input{flex:1;min-width:0;min-height:40px;padding:6px 12px;border-radius:10px;border:1px solid var(--morado-claro);background:var(--noche);color:var(--texto);font:inherit;text-transform:uppercase}
.cupon-msg{margin:0;font-size:.85rem;min-height:1.2em}
.cupon-msg.ok{color:var(--verde)} .cupon-msg.error{color:#FF9B9B}
.totales{margin:0}
.totales div{display:flex;justify-content:space-between;padding:2px 0}
.totales dt{color:var(--tenue)} .totales dd{margin:0;font-weight:700}
.totales .total{font-size:1.2rem;border-top:1px solid rgba(180,140,232,.25);padding-top:6px;margin-top:4px}
.totales .total dt{color:var(--texto);font-weight:800}
.totales .total dd{color:var(--calabaza)}
.nota{margin:0;font-size:.85rem;color:var(--verde)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* Cookies */
.cookies{position:fixed;left:16px;bottom:16px;z-index:60;width:min(440px,calc(100% - 32px));background:var(--crema);color:var(--tinta);border-radius:var(--radio);padding:20px;box-shadow:var(--sombra);border:3px solid var(--calabaza)}
.cookies h2{font-size:1.6rem;color:var(--calabaza-osc);margin:0 0 6px}
.cookies p{margin:0 0 14px;font-size:.95rem}
.cookies a{color:#8A3A00}
.cookies-botones{display:flex;flex-wrap:wrap;gap:8px}
.cookies .btn-secundario{color:var(--tinta);border-color:var(--morado)}
.politica{max-width:640px;width:calc(100% - 32px);border:3px solid var(--morado);border-radius:var(--radio);background:var(--noche-2);color:var(--texto);padding:24px}
.politica::backdrop{background:rgba(5,3,10,.7)}
.politica table{width:100%;border-collapse:collapse;font-size:.88rem;margin:12px 0}
.politica th,.politica td{text-align:left;padding:6px;border-bottom:1px solid rgba(180,140,232,.25)}

/* Pop-up */
.promo{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:rgba(5,3,10,.7);padding:16px}
.promo-caja{position:relative;width:min(400px,100%);text-align:center;padding:36px 28px 24px;border-radius:24px;background:linear-gradient(160deg,#3A2160,#1E1530 60%);border:3px solid var(--calabaza);box-shadow:0 0 60px rgba(255,122,26,.35);animation:aparece .3s ease-out}
@keyframes aparece{from{transform:scale(.9);opacity:0}}
.promo-caja .cerrar{position:absolute;top:10px;right:10px}
.promo-etiqueta{display:inline-block;margin:0 0 8px;background:var(--verde);color:var(--tinta);font-weight:800;padding:4px 12px;border-radius:999px;font-size:.85rem}
.promo h2{font-size:4rem;margin:0;color:var(--calabaza)}
.promo h2 span{display:block;font-size:1.6rem;color:var(--crema)}
.promo p{margin:6px 0;color:var(--tenue)}
.codigo code{display:inline-block;margin:6px 0 16px;padding:8px 18px;border:2px dashed var(--calabaza);border-radius:10px;font:800 1.3rem monospace;color:var(--crema);letter-spacing:.1em}
.promo-wa{display:inline-block;margin-top:10px}

.aviso{position:fixed;left:50%;bottom:24px;transform:translate(-50%,150%);background:var(--verde);color:var(--tinta);font-weight:800;padding:10px 20px;border-radius:999px;z-index:80;transition:transform .25s;pointer-events:none;max-width:calc(100% - 32px);text-align:center}
.aviso.visible{transform:translate(-50%,0)}

@media (max-width:860px){
  .menu{display:none}
  .hero{padding-top:32px}
  .hero-grid,.nosotros{grid-template-columns:1fr}
  .pasos{grid-template-columns:1fr 1fr}
}
@media (max-width:480px){
  .pasos{grid-template-columns:1fr}
  .marca span{font-size:1.35rem}
  .promo{align-items:end;padding:0}
  .promo-caja{border-radius:24px 24px 0 0}
}
