*{box-sizing:border-box}body{margin:0;font-family:Poppins,sans-serif;background:#f5f5f5;color:#222}
.logo img{width:90px;height:90px;object-fit:contain}
.buscador{padding:16px;display:flex;justify-content:center}
#buscar{width:min(700px,100%);padding:12px 16px;border:1px solid #ccc;border-radius:10px;font-size:16px}
#categorias{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    padding:0 16px 16px;
}
#productos{display:grid;grid-template-columns:1fr;gap:18px;padding:18px;max-width:1400px;margin:auto}
.card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.card img{width:100%;aspect-ratio:1/1;object-fit:cover}
.card .info{padding:14px}.precio{font-weight:700;font-size:1.2rem}
.whatsapp{

    position:fixed;
    right:20px;
    bottom:20px;

    width:64px;
    height:64px;

    background:#25D366;

    border-radius:50%;

    display:flex;
    justify-content:center;
    align-items:center;

    box-shadow:0 8px 20px rgba(0,0,0,.25);

    text-decoration:none;

    z-index:1000;

    animation:latido 3s infinite;

    transition:transform .2s;

}

.whatsapp:hover{

    transform:scale(1.08);

    box-shadow:0 12px 28px rgba(37,211,102,.45);

}
.whatsapp i{

    color:#fff;

    font-size:38px;

    line-height:1;

}

footer{text-align:center;padding:24px;color:#666}
@media(min-width:700px){#productos{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){#productos{grid-template-columns:repeat(4,1fr)}}
/* ===========================
   HERO
=========================== */

.hero{

    position:relative;

    height:320px;

    overflow:hidden;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:white;

}

.hero-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 75%;
}

.hero-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        rgba(0,0,0,.35),
        rgba(0,0,0,.65)
    );

}

.hero-content{

    position:relative;

    z-index:2;

    max-width:700px;

    padding:20px;

}

.hero .logo{

    margin-bottom:20px;

}

.hero .logo img{

    width:110px;

    height:110px;

    border-radius:50%;

    background:white;

    padding:10px;

    object-fit:contain;

    box-shadow:0 8px 25px rgba(0,0,0,.35);

}

.hero h1{

    margin:0;

    font-size:2.5rem;

    font-weight:700;

}

.subtitulo{

    margin-top:10px;

    font-size:1.1rem;

    font-weight:500;

    opacity:.95;

}

.descripcion{

    margin-top:16px;

    font-size:.95rem;

    opacity:.85;

    max-width:500px;

    margin-left:auto;

    margin-right:auto;

}

@media (max-width:768px){

    .hero{

        height:260px;

    }

    .hero h1{

        font-size:2rem;

    }

    .hero .logo img{

        width:90px;

        height:90px;

    }

    .descripcion{

        display:none;

    }

}

/* ===========================
   CATEGORÍAS MEJORADAS
=========================== */

#categorias{
display:flex;
gap:12px;
overflow-x:auto;
padding:12px 16px 18px;
scrollbar-width:none;
}
#categorias::-webkit-scrollbar{display:none;}
#categorias button{
border:none;
background:#fff;
color:#444;
padding:12px 22px;
border-radius:999px;
font-family:Poppins,sans-serif;
font-size:15px;
font-weight:600;
cursor:pointer;
white-space:nowrap;
box-shadow:0 4px 12px rgba(0,0,0,.08);
transition:.25s;
}
#categorias button:hover{
transform:translateY(-3px);
box-shadow:0 10px 20px rgba(0,0,0,.15);
}
#categorias button.activo{
background:#6F4E37;
color:#fff;
box-shadow:0 8px 18px rgba(111,78,55,.35);
}


.hero-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;position:relative;z-index:2}



/* ===== Tarjetas mejoradas ===== */

.card{
background:#fff;
border-radius:20px;
overflow:hidden;
box-shadow:0 8px 24px rgba(0,0,0,.10);
transition:transform .25s ease, box-shadow .25s ease;
}

.card:hover{
transform:translateY(-6px);
box-shadow:0 18px 36px rgba(0,0,0,.18);
}

.card img{
width:100%;
aspect-ratio:4/3;
object-fit:cover;
transition:transform .35s ease;
display:block;
}

.card:hover img{
transform:scale(1.04);
}

.card .info{
padding:18px;
}

.card .info h3{
margin:0 0 10px;
font-size:1.2rem;
font-weight:700;
color:#2f241d;
}

.card .info p{
margin:0 0 16px;
font-size:.95rem;
line-height:1.5;
color:#666;
}

.precio{
display:inline-block;
margin-top:4px;
padding-top:10px;
border-top:2px solid #e7d8cc;
font-size:1.45rem;
font-weight:700;
color:#6F4E37;
}
.precio-original{
    color:#999;
    text-decoration:line-through;
    font-size:1rem;
    margin-right:10px;
    font-weight:500;
}

.precio-promo{
    color:#d32f2f;
    font-size:1.45rem;
    font-weight:700;
}

/* =====================================
   PRODUCTOS SIN STOCK
===================================== */

.card.sin-stock{

    opacity:.70;

}

.card.sin-stock img{

    filter:grayscale(100%) brightness(.85);

}

.card.sin-stock .precio{

    color:#b22222;

    font-weight:700;

}

.card.sin-stock::before{

    content:"SIN STOCK";

    position:absolute;

    top:16px;

    right:-42px;

    width:170px;

    text-align:center;

    background:#c62828;

    color:white;

    font-size:12px;

    font-weight:700;

    padding:8px 0;

    transform:rotate(45deg);

    box-shadow:0 3px 8px rgba(0,0,0,.25);

    z-index:10;

}

/* =====================================
   PRODUCTOS PRÓXIMAMENTE
===================================== */

.card.proximamente{

    opacity:.82;

}

.card.proximamente img{

    filter:brightness(.88);

}

.card.proximamente .precio{

    color:#ff9800;

    font-weight:700;

}

.card.proximamente::before{

    content:"PRÓXIMAMENTE";

    position:absolute;

    top:16px;

    right:-52px;

    width:210px;

    text-align:center;

    background:#ff9800;

    color:white;

    font-size:12px;

    font-weight:700;

    padding:8px 0;

    transform:rotate(45deg);

    box-shadow:0 3px 8px rgba(0,0,0,.25);

    z-index:10;

}

.card.proximamente:hover{

    transform:none;

}

.card{

    position:relative;

}

.card.sin-stock:hover{

    transform:none;

}

/* Barra superior */
.topbar{display:flex;gap:12px;align-items:center;justify-content:center;padding:16px;flex-wrap:wrap}
.topbar input{padding:12px 16px;border:1px solid #ccc;border-radius:10px;font-size:16px}
#buscar{width:320px}
#codigoCliente{width:180px}
#btnAplicarCodigo{padding:12px 18px;border:none;background:#6F4E37;color:#fff;border-radius:10px;font-weight:600;cursor:pointer}

#bienvenidaCliente{
    display:none;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:9999;

    background:#6F4E37;
    color:#fff;

    padding:10px 20px;
    text-align:center;
    font-size:14px;
    font-weight:600;

    box-shadow:0 2px 8px rgba(0,0,0,.15);
}


/* ======================================
   BARRA DE HERRAMIENTAS
====================================== */

.herramientas{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    padding:18px;
    max-width:1400px;
    margin:0 auto;
    flex-wrap:wrap;
}

.buscador,
.cliente-inline{
    display:flex;
    align-items:center;
    background:#fff;
    border:1px solid #ddd;
    border-radius:14px;
    padding:8px 12px;
    box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.buscador{
    flex:1;
    min-width:320px;
}

.buscador input{
    border:none;
    outline:none;
    width:100%;
    font-size:16px;
    background:transparent;
    font-family:Poppins,sans-serif;
}

.cliente-inline input{
    border:none;
    outline:none;
    width:180px;
    font-size:15px;
    background:transparent;
    font-family:Poppins,sans-serif;
}

.icono{
    font-size:18px;
    margin-right:10px;
    opacity:.65;
}

.cliente-inline button{
    margin-left:10px;
    border:none;
    background:#6F4E37;
    color:white;
    border-radius:10px;
    padding:10px 18px;
    cursor:pointer;
    font-weight:600;
    transition:.25s;
}

.cliente-inline button:hover{
    background:#5b3f2d;
}

@media(max-width:768px){

    .herramientas{
        flex-direction:column;
        align-items:stretch;
    }

    .buscador,
    .cliente-inline{
        width:100%;
    }

    .cliente-inline input{
        flex:1;
    }

}

body.bienvenida-activa{
    padding-top:42px;
}

/* ==========================
   DESTACADOS
========================== */

#destacados{
    max-width:1400px;
    margin:30px auto;
    padding:0 18px;
}

#destacados h2{
    margin-bottom:18px;
    color:#6F4E37;
}

#listaDestacados{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:20px;
}
/* ===========================
   SUBCATEGORÍA
=========================== */

.subcategoria{

    display:inline-block;

    background:#EFE4DA;

    color:#7A5A43;

    padding:4px 12px;

    border-radius:999px;

    font-size:.68rem;

    font-weight:600;

    letter-spacing:1.2px;

    text-transform:uppercase;

    margin-bottom:10px;

}
/* ==========================
   CAMBIO DE VISTA
========================== */

.barra-vista{

    display:flex;

    justify-content:center;

    gap:10px;

    margin:20px 0;

}

.barra-vista button{

    padding:10px 18px;

    border:none;

    border-radius:999px;

    background:#e8dfd8;

    color:#6d4c41;

    font-weight:600;

    cursor:pointer;

    transition:.2s;

}

.barra-vista button:hover{

    background:#d9c7bb;

}

.vista-activa{

    background:#8B5E3C !important;

    color:white !important;

}
/* ==========================
   VISTA LISTA
========================== */

.lista-productos{

    display:flex;

    flex-direction:column;

    gap:8px;

}

.fila-producto{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:12px 0;

    border-bottom:1px solid #ece5df;

}

.nombre-producto{

    display:flex;

    flex-direction:column;

}

.nombre-producto strong{

    font-size:1rem;

    color:#3f2f26;

}

.subcategoria-lista{

    font-size:.70rem;

    text-transform:uppercase;

    color:#8b5e3c;

    letter-spacing:1px;

    margin-bottom:3px;

}

.precio-lista{

    white-space:nowrap;

    font-size:1rem;

    font-weight:700;

    color:#3f2f26;

}

.precio-lista .precio-tachado{

    color:#999;

    text-decoration:line-through;

    margin-right:8px;

    font-weight:400;

}

.precio-lista .precio-promo{

    color:#c62828;

    font-weight:700;

}

/* ==========================================
   VISTA LISTA
========================================== */

#productos.vista-lista{

    display:flex;
    flex-direction:column;
    gap:0;

}

#productos.vista-lista .fila-producto{

    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    padding:16px 0;

    border-bottom:1px solid #e8e2dc;

}

#productos.vista-lista .nombre-producto{

    flex:1;

    padding-right:20px;

}

#productos.vista-lista .subcategoria-lista{

    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:1px;
    color:#9b8b80;
    margin-bottom:4px;
    font-weight:600;

}

#productos.vista-lista .nombre-producto strong{

    display:block;

    font-size:1.05rem;

    color:#3b2f2a;

    margin-bottom:5px;

}

#productos.vista-lista .descripcion-lista{

    font-size:.88rem;

    color:#777;

    line-height:1.45;

}

#productos.vista-lista .precio-lista{

    text-align:right;

    white-space:nowrap;

    font-size:1.05rem;

    font-weight:700;

    color:#3b2f2a;

}

#productos.vista-lista .precio-tachado{

    display:block;

    color:#999;

    text-decoration:line-through;

    font-size:.85rem;

}

#productos.vista-lista .precio-promo{

    color:#c62828;

    font-weight:700;

    font-size:1.1rem;

}
.cabecera-lista{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:20px;

}
/* ===========================
   TÍTULOS DE CATEGORÍA
=========================== */

.titulo-categoria{

    grid-column: 1 / -1;

    margin:40px 0 20px;

    padding-bottom:10px;

    border-bottom:2px solid #d8c7b6;

    font-size:1.6rem;

    font-weight:700;

    color:#5a3b28;

    text-transform:uppercase;

    letter-spacing:1px;

}

.titulo-categoria:first-child{

    margin-top:0;

}
/* ===========================
   WHATSAPP FLOTANTE
=========================== */

.whatsapp{

    position:fixed;

    right:20px;
    bottom:20px;

    z-index:1000;

    animation:latido 2.5s infinite;

}

#whatsapp-tooltip{

    position:fixed;

    right:96px;
    bottom:28px;

    display:flex;
    align-items:center;
    gap:12px;

    background:#fff;

    padding:12px 16px;

    border-radius:16px;

    box-shadow:0 10px 28px rgba(0,0,0,.18);

    z-index:999;

    animation:aparecer .6s;

}

#whatsapp-tooltip strong{

    display:block;

    font-size:1rem;

    color:#333;

}

#whatsapp-tooltip span{

    color:#25D366;

    font-weight:700;

}

#whatsapp-tooltip i{

    color:#25D366;

}

#whatsapp-tooltip::after{

    content:"";

    position:absolute;

    right:-9px;

    top:50%;

    transform:translateY(-50%);

    border-width:9px 0 9px 9px;

    border-style:solid;

    border-color:transparent transparent transparent #fff;

}
#whatsapp-tooltip::after{

    content:"";

    position:absolute;

    right:-8px;

    top:50%;

    transform:translateY(-50%);

    border-width:8px 0 8px 8px;

    border-style:solid;

    border-color:transparent transparent transparent white;

}

@keyframes latido{

    0%{
        transform:scale(1);
    }

    8%{
        transform:scale(1.12);
    }

    16%{
        transform:scale(1);
    }

    24%{
        transform:scale(1.12);
    }

    32%{
        transform:scale(1);
    }

    100%{
        transform:scale(1);
    }

}
@keyframes latido{

    0%,80%,100%{
        transform:scale(1);
    }

    85%{
        transform:scale(1.12);
    }

    90%{
        transform:scale(1);
    }

    95%{
        transform:scale(1.12);
    }

}

@keyframes aparecer{

    from{
        opacity:0;
        transform:translateX(15px);
    }

    to{
        opacity:1;
        transform:translateX(0);
    }

}