/* Reinicio básico */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

/* Fuente y fondo */

body{

    background:#111;

    color:white;

    font-family:Arial, Helvetica, sans-serif;

}/* ===========================
   HERO
=========================== */

.hero{

    min-height:65vh;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

}

.logo{

    width:260px;

    margin-bottom:25px;

}

.hero h1{

    font-size:50px;

    margin-bottom:15px;

}

.hero p{

    font-size:22px;

    color:#dddddd;

    margin-bottom:35px;

}/* ===========================
   BOTÓN WHATSAPP
=========================== */

.botonWhatsapp{

    display:inline-block;

    background:#25D366;

    color:white;

    text-decoration:none;

    font-size:22px;

    font-weight:bold;

    padding:18px 35px;

    border-radius:50px;

    transition:0.3s;

}
.botonWhatsapp:hover{

    background:#1EBE5D;

    transform:scale(1.05);

}
/* ===========================
   FOOTER
=========================== */

footer{

    background:#0b0b0b;

    text-align:center;

    padding:50px 20px;

    border-top:2px solid #222;

}

footer h3{

    color:#FFD54A;

    font-size:32px;

    margin-bottom:20px;

}

footer p{

    font-size:18px;

    margin:10px 0;

    color:#ddd;

}

.copyright{

    margin-top:35px;

    font-size:14px;

    color:#777;

}
/* ===========================
   TARJETA PROMOCIÓN
=========================== */

.promo{

    width:370px;

    background:#1f1f1f;

    border-radius:20px;

    overflow:hidden;

    margin:30px auto;

    box-shadow:0 10px 30px rgba(0,0,0,.40);

    transition:.30s;

    border:1px solid #333;

}

.promo:hover{

    transform:translateY(-10px);

}

.promo img{

    width:100%;

    height:240px;

    object-fit:cover;

    display:block;

}

.promo h3{

    margin-top:25px;

    color:#FFD54A;

    font-size:34px;

}

.promo p{

    margin:20px;

    font-size:22px;

    line-height:35px;

}

.promo h2{

    color:#25D366;

    font-size:42px;

    margin-bottom:25px;

}

.promo .botonWhatsapp{

    margin-bottom:30px;

}
#promociones h2{

    text-align:center;

    font-size:42px;

    color:#FFD54A;

    margin-bottom:50px;

}
.botonCarrito{

    background:#25D366;

    color:white;

    border:none;

    padding:15px 30px;

    border-radius:30px;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;

    transition:.3s;

    margin-bottom:25px;

}

.botonCarrito:hover{

    background:#1ca851;

    transform:scale(1.05);

}
/* ===========================
   CARRITO
=========================== */

#carrito{

    position:fixed;

    top:90px;          /* antes era 20px */

    right:20px;

    background:#25D366;

    color:white;

    padding:15px 25px;

    border-radius:40px;

    font-size:22px;

    font-weight:bold;

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

    z-index:10000;     /* antes era 1000 */

    cursor:pointer;

    transition:.3s;

}

#carrito:hover{

    transform:scale(1.08);

}
/*=========================
 PANEL CARRITO
==========================*/

#panelCarrito{

    position:fixed;

    top:0;

    right:-420px;

    width:400px;

    height:100vh;

    background:#1b1b1b;

    color:white;

    box-shadow:-10px 0 25px rgba(0,0,0,.45);

    transition:.4s;

    z-index:20000;

    display:flex;

    flex-direction:column;

    overflow:hidden;

}

#panelCarrito.abierto{

    right:0;

}

/* =====================================================
   CABECERA DEL CARRITO
===================================================== */

.cabeceraCarrito {
    min-height: 92px;
    padding: 18px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-shrink: 0;
    background: #171717;
    border-bottom: 2px solid #ffd54a;
}

.tituloCarrito {
    display: flex;
    align-items: center;
    gap: 14px;
}

.iconoTituloCarrito {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(255, 213, 74, 0.12);
    color: #ffd54a;
    font-size: 25px;
}

.cabeceraCarrito h2 {
    margin: 0;
    color: #ffffff;
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
}

#cerrarCarrito {
    width: 46px;
    height: 46px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: #ffffff;
    font-size: 28px;
    font-weight: 400;
    cursor: pointer;
    transition:
        background 0.2s,
        color 0.2s,
        transform 0.2s;
}

#cerrarCarrito:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ffd54a;
    transform: rotate(90deg);
}

#contenidoCarrito{

    padding:20px;

    flex-grow:1;

    min-height:0;

    overflow-y:auto;

}
.itemCarrito{

    margin-bottom: 20px;

}
.subtotal{

    margin-top: 15px;
    padding-top: 10px;
    border-top: 1px solid #d9d9d9;
    font-weight: bold;
    font-size: 17px;
    color: #d32f2f;

}
#footerCarrito{

    padding:20px;

    background:#222;

    border-top:2px solid #25D366;

    font-size:28px;

    font-weight:bold;

    color:#FFD54A;

    flex-shrink:0;

}
.controlesCantidad{

    display:flex;

    align-items:center;

    gap:10px;

    margin-top:10px;

}

.controlesCantidad button{

    width:36px;

    height:36px;

    border-radius:50%;

    border:2px solid #FFD54A;

    background:#2b2b2b;

    color:#FFD54A;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;

    transition:.3s;

}

.controlesCantidad button:hover{

    background:#FFD54A;

    color:#111;

    transform:scale(1.10);

}

.controlesCantidad span{

    font-size:18px;

    font-weight:bold;

    min-width:20px;

    text-align:center;

}
.eliminar{

    border-color:#e53935 !important;

    color:#e53935 !important;

}

.eliminar:hover{

    background:#e53935 !important;

    color:white !important;

}
/*=====================================
PANEL DATOS DEL CLIENTE
======================================*/

#panelDatos{

    position: fixed;

    top: 0;

    right: -420px;

    left: auto;

    width: 400px;

    height: 100vh;

    background: #1b1b1b;

    color: white;

    box-shadow: -10px 0 25px rgba(0,0,0,.45);

    transition: .4s;

    z-index: 20000;

    display: flex;

    flex-direction: column;

}

#panelDatos.abierto{

    right:0;

}

.cabeceraDatos{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:20px;

    border-bottom:1px solid #333;

}

.cabeceraDatos h2{

    color:#FFD54A;

}

#cerrarDatos{

    background:none;

    border:none;

    color:white;

    font-size:28px;

    cursor:pointer;

}

.contenidoDatos{

    padding:20px;

    display:flex;

    flex-direction:column;

    gap:15px;

    overflow-y:auto;

    flex:1;

}

.contenidoDatos label{

    color:#FFD54A;

    font-weight:bold;

}

.contenidoDatos input,
.contenidoDatos select{

    width:100%;

    padding:12px;

    background:#2b2b2b;

    color:white;

    border:1px solid #444;

    border-radius:10px;

    font-size:16px;

    outline:none;

}

.contenidoDatos input:focus,
.contenidoDatos select:focus{

    border-color:#25D366;

}

#enviarPedido{

    margin-top:20px;

    padding:16px;

    background:#25D366;

    color:white;

    border:none;

    border-radius:12px;

    font-size:20px;

    font-weight:bold;

    cursor:pointer;

    transition:.3s;

}

#enviarPedido:hover{

    background:#1ca851;

}

#grupoCambio{

    display:block;

}
/* ==========================
OBSERVACIONES
========================== */

#observaciones{

    width:100%;

    min-height:90px;

    background:#2b2b2b;

    color:white;

    border:1px solid #555;

    border-radius:8px;

    padding:10px;

    resize:vertical;

    font-size:16px;

}

/*=====================================
TRANSFERENCIA
=====================================*/

#datosTransferencia{

    display:none;

    margin-top:20px;

    background:#242424;

    border:2px solid #25D366;

    border-radius:15px;

    padding:20px;

}

#datosTransferencia h3{

    color:#25D366;

    margin-bottom:20px;

}

.datoTransferencia{

    margin-bottom:20px;

}

.datoTransferencia label{

    display:block;

    color:#FFD54A;

    margin-bottom:8px;

    font-weight:bold;

}

.filaDato{

    display:flex;

    justify-content:space-between;

    align-items:center;

    background:#111;

    border-radius:10px;

    padding:10px 15px;

}

.filaDato span{

    font-size:16px;

    word-break:break-all;

}

.filaDato button{

    background:#25D366;

    color:white;

    border:none;

    border-radius:8px;

    padding:8px 12px;

    cursor:pointer;

    font-size:18px;

    transition:.3s;

}

.filaDato button:hover{

    background:#1BA851;

}
.titularTransferencia,
.dniTransferencia{

    margin-top:10px;

    color:#e0e0e0;

    font-size:16px;

}

.titularTransferencia strong,
.dniTransferencia strong{

    color:#FFD54A;

}

/*=========================================
MENU SUPERIOR
=========================================*/

#menuSuperior{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:70px;

    background:#b30000;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 30px;

    box-sizing:border-box;

    z-index:9999;

    box-shadow:0 3px 12px rgba(0,0,0,.35);

}

.logoMenu{

    color:white;

    font-size:24px;

}

#menuSuperior ul{

    display:flex;

    list-style:none;

    gap:25px;

}

#menuSuperior a{

    color:white;

    text-decoration:none;

    font-weight:bold;

    transition:.3s;

}

#menuSuperior a:hover{

    color:#ffd700;

}

body{

    padding-top:70px;

}
/*==========================
INFO TARJETA
==========================*/

.promoInfo{

    padding:22px;

}

.codigoPromo{

    display:inline-block;

    background:#FFD54A;

    color:#111;

    padding:6px 12px;

    border-radius:20px;

    font-weight:bold;

    font-size:14px;

    margin-bottom:15px;

}

.promoInfo h3{

    font-size:24px;

    color:white;

    margin-bottom:20px;

    line-height:1.4;

}

.precioPromo{

    font-size:34px;

    color:#25D366;

    font-weight:bold;

    margin-bottom:15px;

}

.estadoPromo{

    color:#7CFC00;

    font-size:16px;

    margin-bottom:20px;

}

/*=========================================
BUSCADOR
=========================================*/

#buscador{

    width:100%;

    display:flex;

    justify-content:center;

    margin:35px 0;

}

#buscarProducto{

    width:650px;

    max-width:90%;

    padding:18px 25px;

    border:none;

    border-radius:40px;

    font-size:18px;

    outline:none;

    background:#222;

    color:white;

    box-shadow:0 5px 20px rgba(0,0,0,.35);

}

#buscarProducto:focus{

    border:2px solid #25D366;

}

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

.categoriaProductos{

    width:95%;

    max-width:1500px;

    margin:70px auto;

}

.tituloCategoria{

    font-size:38px;

    color:#FFD54A;

    margin-bottom:30px;

    border-left:8px solid #25D366;

    padding-left:20px;

}

.grillaProductos{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(320px,1fr));

    gap:30px;

}

/*====================================
CARRUSEL PROMOCIONES
====================================*/

.carruselProductos{

    display:flex;

    gap:25px;

    overflow-x:auto;

    overflow-y:hidden;

    scroll-behavior:smooth;

    padding-bottom:15px;

}

.carruselProductos .promo{

    min-width:330px;

    flex:0 0 330px;

}

/* Scroll moderno */

.carruselProductos::-webkit-scrollbar{

    height:10px;

}

.carruselProductos::-webkit-scrollbar-track{

    background:#222;

    border-radius:20px;

}

.carruselProductos::-webkit-scrollbar-thumb{

    background:#25D366;

    border-radius:20px;

}

.carruselProductos::-webkit-scrollbar-thumb:hover{

    background:#1ca851;

}

/*====================================
CABECERA CATEGORÍA
====================================*/

.cabeceraCategoria{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:25px;

}

.controlesCarrusel{

    display:flex;

    gap:12px;

}

.flechaCarrusel{

    width:46px;

    height:46px;

    border:none;

    border-radius:50%;

    background:#25D366;

    color:white;

    font-size:26px;

    cursor:pointer;

    transition:.25s;

    box-shadow:0 6px 18px rgba(0,0,0,.30);

}

.flechaCarrusel:hover{

    transform:scale(1.12);

    background:#1aa34a;

}

/*====================================
CARRUSEL
====================================*/

.carruselProductos{

    display:flex;

    gap:25px;

    overflow-x:auto;

    overflow-y:hidden;

    scroll-behavior:smooth;

    scrollbar-width:none;

    -ms-overflow-style:none;

    padding-bottom:10px;

}

.carruselProductos::-webkit-scrollbar{

    display:none;

}

.carruselProductos .promo{

    flex:0 0 330px;

    min-width:330px;

}

/* =====================================================
   ETAPA 1 INICIAL
   CATÁLOGO DINÁMICO PROFESIONAL
===================================================== */


/* ===============================
   SECCIONES DE CATEGORÍAS
================================ */

.categoriaProductos {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto 55px;
    padding: 0 25px;
    scroll-margin-top: 100px;
}

.cabeceraCategoria {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 25px;
}

.tituloCategoria {
    margin: 0;
    font-size: 34px;
    font-weight: 800;
    color: #ffffff;
}


/* ===============================
   GRILLA DE PRODUCTOS
================================ */

.grillaProductos {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(280px, 1fr)
    );
    gap: 25px;
    align-items: stretch;
}


/* ===============================
   TARJETAS
================================ */

.promo {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #181818;
    border: 1px solid #303030;
    border-radius: 20px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}

.promo:hover {
    transform: translateY(-6px);
    border-color: #d92323;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.42);
}

.contenedorImagenProducto {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #101010;
}

.promoImg {
    display: block;
    width: 100%;
    height: 230px;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.promo:hover .promoImg {
    transform: scale(1.04);
}

.promoInfo {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px;
}

.promoInfo h3 {
    margin: 10px 0 8px;
    color: #ffffff;
    font-size: 22px;
    line-height: 1.2;
}

.codigoPromo {
    display: inline-flex;
    align-self: flex-start;
    padding: 5px 10px;
    color: #f0f0f0;
    background: #303030;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
}

/* =====================================
   ETIQUETA ESPECIAL DE PROMOCIONES
===================================== */

[data-categoria-id="1"] .codigoPromo{

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

    min-height:30px;

    padding:6px 13px;

    color:#ffffff;

    background:linear-gradient(
        135deg,
        #b90000,
        #e32626
    );

    border:1px solid #ff5a5a;
    border-radius:8px;

    font-size:12px;
    font-weight:900;

    letter-spacing:0.8px;
    text-transform:uppercase;

    box-shadow:
        0 4px 10px rgba(0,0,0,.35),
        inset 0 1px 0 rgba(255,255,255,.18);

}


/* PEQUEÑO ÍCONO ANTES DEL NOMBRE */

[data-categoria-id="1"] .codigoPromo::before{

    content:"🔥";

    margin-right:6px;

    font-size:12px;

}

.descripcionPromo {
    margin: 0 0 15px;
    color: #c7c7c7;
    font-size: 15px;
    line-height: 1.5;
}


/* ===============================
   PRECIO
================================ */

.precioPromo {
    margin-top: auto;
    color: #ffd43b;
    font-size: 27px;
    font-weight: 900;
}

.precioAnterior {
    margin-bottom: 2px;
    color: #9b9b9b;
    font-size: 15px;
    text-decoration: line-through;
}


/* ===============================
   ETIQUETAS
================================ */

.etiquetasProducto {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    max-width: calc(100% - 24px);
}

.etiquetaProducto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: 5px 10px;
    border-radius: 20px;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
}

.etiquetaDestacado {
    background: #d99b00;
}

.etiquetaNuevo {
    background: #178c4d;
}

.etiquetaOferta {
    background: #d92323;
}


/* ===============================
   DISPONIBILIDAD
================================ */

.estadoPromo {
    margin: 12px 0;
    font-size: 14px;
    font-weight: 700;
}

.estadoDisponible {
    color: #41dc79;
}

.estadoNoDisponible {
    color: #ff6868;
}

.productoNoDisponible {
    opacity: 0.68;
}

.productoNoDisponible:hover {
    transform: none;
    border-color: #303030;
}

.productoNoDisponible .promoImg {
    filter: grayscale(0.8);
}


/* ===============================
   BOTÓN DEL PRODUCTO
================================ */

.botonCarrito {
    width: 100%;
    min-height: 48px;
    margin-top: auto;
    padding: 12px 16px;
    border: none;
    border-radius: 12px;
    color: #ffffff;
    background: #d92323;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.botonCarrito:hover {
    background: #f02c2c;
    transform: translateY(-2px);
}

.botonCarrito:active {
    transform: translateY(0);
}

.botonCarrito:disabled {
    color: #a9a9a9;
    background: #424242;
    cursor: not-allowed;
    transform: none;
}


/* ===============================
   FLECHAS DEL CARRUSEL
================================ */

.controlesCarrusel {
    display: flex;
    gap: 10px;
}

.flechaCarrusel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #444444;
    border-radius: 50%;
    color: #ffffff;
    background: #232323;
    font-size: 20px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.flechaCarrusel:hover {
    background: #d92323;
    border-color: #d92323;
    transform: scale(1.07);
}


/* ===============================
   CARRUSEL DE PROMOCIONES
================================ */

.carruselProductos {
    display: flex;
    gap: 25px;
    overflow-x: auto;
    padding: 5px 2px 20px;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.carruselProductos::-webkit-scrollbar {
    display: none;
}

.carruselProductos .promo {
    flex: 0 0 330px;
    scroll-snap-align: start;
}


/* ===============================
   SIN RESULTADOS
================================ */

.sinResultados {
    width: calc(100% - 40px);
    max-width: 700px;
    margin: 60px auto;
    padding: 45px 25px;
    text-align: center;
    background: #181818;
    border: 1px solid #303030;
    border-radius: 20px;
}

.sinResultados h2 {
    margin: 0 0 12px;
    color: #ffffff;
    font-size: 28px;
}

.sinResultados p {
    margin: 0;
    color: #bdbdbd;
    font-size: 16px;
}

/* =====================================================
   ETAPA 1 INICIAL
   MODAL CONFIGURADOR
===================================================== */

.modalConfigurador {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.modalConfigurador.abierto {
    display: flex;
}

.fondoModalConfigurador {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.78);
    backdrop-filter: blur(4px);
}

.ventanaConfigurador {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 720px;
    max-height: calc(100vh - 40px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #181818;
    border: 1px solid #373737;
    border-radius: 22px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.65);
}

.cabeceraConfigurador {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
    background: #202020;
    border-bottom: 1px solid #353535;
}

.cabeceraConfigurador h2 {
    margin: 6px 0 0;
    color: #ffffff;
    font-size: 27px;
    line-height: 1.2;
}

.codigoConfigurador {
    display: inline-flex;
    padding: 4px 9px;
    color: #dddddd;
    background: #383838;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
}

.cerrarConfigurador {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    padding: 0;
    color: #ffffff;
    background: #373737;
    border: none;
    border-radius: 50%;
    font-size: 19px;
    cursor: pointer;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.cerrarConfigurador:hover {
    background: #d92323;
    transform: rotate(8deg);
}

.resumenProductoConfigurador {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 18px;
    padding: 20px 24px;
    background: #151515;
    border-bottom: 1px solid #303030;
}

.imagenConfigurador {
    width: 130px;
    height: 100px;
    object-fit: cover;
    background: #101010;
    border-radius: 14px;
}

.informacionConfigurador {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.descripcionConfigurador {
    margin: 0 0 10px;
    color: #c7c7c7;
    font-size: 15px;
    line-height: 1.5;
}

.precioConfigurador {
    margin: 0;
    color: #ffd43b;
    font-size: 25px;
    font-weight: 900;
}

.contenidoConfigurador {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
}

.mensajeConfigurador {
    display: none;
    margin: 0 24px 16px;
    padding: 12px 15px;
    color: #ffd5d5;
    background: rgba(217, 35, 35, 0.18);
    border: 1px solid rgba(217, 35, 35, 0.55);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
}

.mensajeConfigurador.visible {
    display: block;
}

.footerConfigurador {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 24px;
    background: #202020;
    border-top: 1px solid #353535;
}

.cantidadConfigurador {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 130px;
}

.cantidadConfigurador span {
    min-width: 28px;
    color: #ffffff;
    text-align: center;
    font-size: 20px;
    font-weight: 900;
}

.botonCantidadConfigurador {
    width: 42px;
    height: 42px;
    padding: 0;
    color: #ffffff;
    background: #353535;
    border: none;
    border-radius: 50%;
    font-size: 23px;
    font-weight: 800;
    cursor: pointer;
}

.botonCantidadConfigurador:hover {
    background: #4a4a4a;
}

.agregarConfiguradoAlCarrito {
    flex: 1;
    min-height: 50px;
    padding: 13px 20px;
    color: #ffffff;
    background: #d92323;
    border: none;
    border-radius: 13px;
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.agregarConfiguradoAlCarrito:hover {
    background: #f02c2c;
    transform: translateY(-2px);
}

body.modalAbierto {
    overflow: hidden;
}

/* =====================================================
   CONTENIDO DEL CONFIGURADOR
===================================================== */

.grupoConfigurador {
    margin-bottom: 28px;
    padding: 20px;
    background: #202020;
    border: 1px solid #363636;
    border-radius: 16px;
}

.grupoConfigurador:last-child {
    margin-bottom: 0;
}

.grupoConfiguradorBloqueado {
    opacity: 0.48;
}

.tituloGrupoConfigurador {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.tituloGrupoConfigurador h3 {
    margin: 0 0 5px;
    color: #ffffff;
    font-size: 19px;
}

.tituloGrupoConfigurador p {
    margin: 0;
    color: #bcbcbc;
    font-size: 14px;
    line-height: 1.45;
}

.contadorConfigurador {
    flex: 0 0 auto;
    padding: 6px 10px;
    color: #ffffff;
    background: #383838;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 800;
}


/* CANTIDADES DE EMPANADAS */

.opcionesCantidadEmpanadas {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(110px, 1fr)
    );
    gap: 12px;
}

.opcionCantidadEmpanadas {
    min-height: 82px;
    padding: 12px;
    color: #ffffff;
    background: #2d2d2d;
    border: 2px solid transparent;
    border-radius: 13px;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        transform 0.2s ease;
}

.opcionCantidadEmpanadas strong,
.opcionCantidadEmpanadas span {
    display: block;
}

.opcionCantidadEmpanadas strong {
    margin-bottom: 5px;
    color: #ffd43b;
    font-size: 23px;
}

.opcionCantidadEmpanadas span {
    color: #d1d1d1;
    font-size: 13px;
}

.opcionCantidadEmpanadas:hover {
    background: #393939;
    transform: translateY(-2px);
}

.opcionCantidadEmpanadas.seleccionada {
    background: rgba(217, 35, 35, 0.18);
    border-color: #d92323;
}


/* SABORES Y SALSAS */

.listaSaboresEmpanadas,
.listaSalsasEmpanadas {
    display: grid;
    gap: 10px;
}

.filaSaborEmpanada,
.filaSalsaEmpanada {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    min-height: 54px;
    padding: 10px 12px;
    background: #292929;
    border-radius: 11px;
}

.nombreSaborEmpanada,
.nombreSalsaEmpanada {
    color: #eeeeee;
    font-size: 14px;
    font-weight: 700;
}

.controlSaborEmpanada,
.controlSalsaEmpanada {
    display: flex;
    align-items: center;
    gap: 10px;
}

.controlSaborEmpanada button,
.controlSalsaEmpanada button {
    width: 34px;
    height: 34px;
    padding: 0;
    color: #ffffff;
    background: #444444;
    border: none;
    border-radius: 50%;
    font-size: 19px;
    font-weight: 800;
    cursor: pointer;
}

.controlSaborEmpanada button:disabled,
.controlSalsaEmpanada button:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.cantidadSaborEmpanada,
.cantidadSalsaEmpanada {
    min-width: 24px;
    color: #ffffff;
    text-align: center;
    font-size: 16px;
    font-weight: 900;
}


/* OPCIONES SIMPLES */

.listaOpcionesSimples {
    display: grid;
    gap: 11px;
}

.opcionSimpleConfigurador {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 12px 15px;
    color: #ffffff;
    background: #292929;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
}

.opcionSimpleConfigurador:has(input:checked) {
    background: rgba(217, 35, 35, 0.18);
    border-color: #d92323;
}

.opcionSimpleConfigurador input {
    width: 19px;
    height: 19px;
    accent-color: #d92323;
}

.configuradorSinOpciones {
    padding: 30px 20px;
    text-align: center;
    background: #202020;
    border-radius: 15px;
}

.configuradorSinOpciones h3 {
    margin: 0 0 8px;
    color: #ffffff;
}

.configuradorSinOpciones p {
    margin: 0;
    color: #bcbcbc;
}
/* =====================================================
   ESTADOS DE VALIDACIÓN DEL CONFIGURADOR
===================================================== */

.contadorConfigurador.contadorCompleto {
    color: #d9ffe6;
    background: #178c4d;
}

.opcionCantidadEmpanadas.seleccionada strong {
    color: #ffffff;
}

.controlSaborEmpanada button:not(:disabled):hover,
.controlSalsaEmpanada button:not(:disabled):hover {
    background: #d92323;
}

.mensajeConfigurador.visible {
    animation: aparecerMensajeConfigurador 0.2s ease;
}

@keyframes aparecerMensajeConfigurador {

    from {
        opacity: 0;
        transform: translateY(5px);
    }

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

}
/* =====================================================
   PROMOCIONES CON CANTIDAD FIJA
===================================================== */

.cantidadFijaPromo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.cantidadFijaPromo h3 {
    margin: 7px 0 5px;
    color: #ffffff;
    font-size: 23px;
}

.cantidadFijaPromo p {
    margin: 0;
    color: #bcbcbc;
    font-size: 14px;
}

.cantidadFijaPromo > strong {
    flex: 0 0 auto;
    padding: 12px 16px;
    color: #ffd43b;
    background: #303030;
    border-radius: 12px;
    font-size: 17px;
}

.etiquetaCantidadFija {
    display: inline-flex;
    padding: 5px 9px;
    color: #d8d8d8;
    background: #383838;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* =====================================================
   DETALLE DE CONFIGURACIÓN EN EL CARRITO
===================================================== */

.detalleConfiguracionCarrito {
    margin: 14px 0;
    padding: 14px;
    background: #292929;
    border-left: 4px solid #ffd54a;
    border-radius: 10px;
}

.tituloDetalleCarrito {
    margin: 0 0 8px !important;
    color: #ffd54a;
    font-size: 14px !important;
    font-weight: bold;
}

.detalleConfiguracionCarrito ul {
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}

.detalleConfiguracionCarrito ul:last-child {
    margin-bottom: 0;
}

.detalleConfiguracionCarrito li {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 6px;
    color: #eeeeee;
    font-size: 14px;
}

.detalleConfiguracionCarrito li strong {
    flex: 0 0 auto;
    color: #ffffff;
}

.opcionElegidaCarrito {
    margin: 0 !important;
    color: #ffffff;
    font-size: 15px !important;
    font-weight: bold;
}

/*=====================================
OPCIONES DE ENTREGA
=====================================*/

.opcionesEntrega{

    display:grid;

    grid-template-columns:repeat(2, 1fr);

    gap:12px;

    margin:18px 0 20px;

}

.opcionEntrega{

    width:100%;

    min-height:72px;

    padding:14px 12px;

    border:2px solid #444;

    border-radius:14px;

    background:#292929;

    color:#eeeeee;

    cursor:pointer;

    font-size:16px;

    font-weight:800;

    line-height:1.3;

    box-shadow:0 5px 14px rgba(0,0,0,.25);

    transition:
        border-color .20s,
        background .20s,
        transform .20s,
        box-shadow .20s;

}

.opcionEntrega:hover{

    border-color:#e53935;

    background:#333333;

    transform:translateY(-2px);

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

}

.opcionEntrega.seleccionada{

    border-color:#e53935;

    background:rgba(229,57,53,.18);

    color:#ffffff;

    box-shadow:
        0 0 0 1px rgba(229,57,53,.25),
        0 7px 18px rgba(0,0,0,.30);

}

/*=====================================
AVISO DELIVERY
=====================================*/

.envioGratis{

    display:flex;

    flex-direction:column;

    gap:4px;

    margin:8px 0 16px;

    padding:10px 14px;

    background:#213622;

    border:1px solid #2f8f46;

    border-left:5px solid #25D366;

    border-radius:10px;

    color:#ffffff;

    line-height:1.3;

}

.envioGratis strong{

    color:#25D366;

    font-size:15px;

}

.envioGratis span{

    color:#d8d8d8;

    font-size:12px;

}

/*=====================================
TÍTULO DE CADA SECCIÓN
=====================================*/

.pasoFormulario{

    text-align:center;

    margin:4px 0 10px;

}

.pasoFormulario h3{

    color:#ffffff;

    font-size:28px;

    font-weight:700;

    margin:0;

}

/*=====================================
RESUMEN DEL PEDIDO
=====================================*/

.resumenPedido{

    background:#242424;

    border:1px solid #3a3a3a;

    border-left:5px solid #FFD54A;

    border-radius:12px;

    padding:14px 16px;

    margin-bottom:18px;

    box-shadow:0 6px 15px rgba(0,0,0,.25);

}

.cabeceraResumenPedido{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.tituloResumenPedido{

    display:block;

    color:#ffffff;

    font-size:17px;

    font-weight:700;

    margin-bottom:4px;

}

#cantidadResumenPedido{

    display:block;

    color:#bbbbbb;

    font-size:13px;

}

#totalResumenPedido{

    color:#FFD54A;

    font-size:28px;

    font-weight:800;

}

/*=====================================
GRUPO DE FORMULARIO
=====================================*/

.grupoFormulario{

    background:#242424;

    border:1px solid #3a3a3a;

    border-radius:12px;

    padding:18px;

    margin-bottom:18px;

}

.grupoFormulario h3{

    text-align:center;

    color:#FFD54A;

    font-size:22px;

    margin:0 0 18px;

}

.grupoFormulario label{

    display:block;

    margin-top:14px;

}

.grupoFormulario input{

    margin-top:6px;

}

/*=====================================
PIE FIJO DEL PANEL DE DATOS
=====================================*/

#panelDatos{
    display:flex;
    flex-direction:column;
    height:100vh;
}

.cabeceraDatos{
    flex-shrink:0;
}

.contenidoDatos{
    flex:1;
    overflow-y:auto;
    padding-bottom:210px;
}

.footerDatosFijo{
    position:absolute;
    left:0;
    right:0;
    bottom:0;

    background:#191919;

    border-top:1px solid #3a3a3a;

    padding:12px 14px 14px;

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

.footerDatosFijo label{
    display:block;

    color:#ffffff;

    font-size:14px;
    font-weight:700;

    margin-bottom:6px;
}

.footerDatosFijo textarea{
    width:100%;

    min-height:58px;
    max-height:90px;

    resize:vertical;

    box-sizing:border-box;

    margin-bottom:10px;
}

.footerDatosFijo #enviarPedido{
    width:100%;

    min-height:48px;

    margin:0;

    font-size:16px;
    font-weight:800;
}

/*=====================================
BOTÓN CONFIRMAR PEDIDO
=====================================*/

#enviarPedido{

    width:100%;

    min-height:72px;

    border:none;

    border-radius:16px;

    background:linear-gradient(180deg,#29d84d,#18b63a);

    color:#fff;

    cursor:pointer;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:4px;

    transition:.25s;

    font-family:inherit;

}

#enviarPedido:hover{

    transform:translateY(-2px);

    box-shadow:0 10px 24px rgba(0,0,0,.30);

}

#enviarPedido:active{

    transform:scale(.98);

}

.tituloBotonPedido{

    font-size:20px;

    font-weight:800;

}

.subtituloBotonPedido{

    font-size:12px;

    opacity:.92;

    font-weight:500;

}

/*=====================================
ESTADO DEL LOCAL
=====================================*/

.estadoLocal{
    width:fit-content;
    max-width:calc(100% - 30px);

    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;

    margin:14px auto 18px;
    padding:10px 16px;

    border:1px solid rgba(255,255,255,.25);
    border-radius:14px;

    background:rgba(20,20,20,.78);
    backdrop-filter:blur(8px);

    color:#ffffff;

    box-shadow:0 6px 18px rgba(0,0,0,.30);
}

.puntoEstadoLocal{
    width:12px;
    height:12px;

    flex-shrink:0;

    border-radius:50%;

    background:#e74c3c;
    box-shadow:0 0 0 5px rgba(231,76,60,.18);
}

.textoEstadoLocal{
    display:flex;
    flex-direction:column;
    align-items:flex-start;

    line-height:1.2;
}

.textoEstadoLocal strong{
    font-size:14px;
    font-weight:900;
    letter-spacing:.4px;
}

.textoEstadoLocal small{
    margin-top:4px;

    font-size:12px;
    color:#eeeeee;
}


/* LOCAL ABIERTO */

.estadoLocal.estadoAbierto{
    border-color:rgba(39,210,80,.55);
    background:rgba(20,90,42,.88);
}

.estadoLocal.estadoAbierto .puntoEstadoLocal{
    background:#35e763;
    box-shadow:
        0 0 0 5px rgba(53,231,99,.20),
        0 0 14px rgba(53,231,99,.75);
}


/* PRÓXIMO A CERRAR */

.estadoLocal.estadoPorCerrar{
    border-color:rgba(255,179,0,.60);
    background:rgba(104,68,0,.90);
}

.estadoLocal.estadoPorCerrar .puntoEstadoLocal{
    background:#ffb300;
    box-shadow:
        0 0 0 5px rgba(255,179,0,.20),
        0 0 14px rgba(255,179,0,.70);
}


/* LOCAL CERRADO */

.estadoLocal.estadoCerrado{
    border-color:rgba(231,76,60,.55);
    background:rgba(88,25,25,.90);
}

.estadoLocal.estadoCerrado .puntoEstadoLocal{
    background:#ff5252;
    box-shadow:
        0 0 0 5px rgba(255,82,82,.20),
        0 0 14px rgba(255,82,82,.55);
}


@media(max-width:600px){

    .estadoLocal{
        padding:9px 13px;
    }

    .textoEstadoLocal strong{
        font-size:13px;
    }

    .textoEstadoLocal small{
        font-size:11px;
    }

}

#finalizarPedido:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* =====================================================
   CARRITO VACÍO
===================================================== */

.carritoVacio {
    min-height: 100%;
    padding: 45px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
}

.iconoCarritoVacio {
    width: 110px;
    height: 110px;
    margin-bottom: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 213, 74, 0.08);
    font-size: 58px;
    filter: grayscale(1);
    opacity: 0.8;
}

.carritoVacio h3 {
    margin: 0 0 12px;
    color: #ffffff;
    font-size: 27px;
    font-weight: 800;
}

.carritoVacio > p {
    max-width: 290px;
    margin: 0;
    color: #bdbdbd;
    font-size: 17px;
    line-height: 1.5;
}

.tarjetaCatalogoCarrito {
    width: 100%;
    margin-top: 36px;
    padding: 20px;
    border: 1px dashed #555555;
    border-radius: 16px;
    background: #202020;
}

.textoCatalogoCarrito {
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
}

.iconoCatalogoCarrito {
    flex: 0 0 auto;
    font-size: 38px;
}

.textoCatalogoCarrito div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.textoCatalogoCarrito strong {
    color: #ffffff;
    font-size: 16px;
}

.textoCatalogoCarrito small {
    color: #bdbdbd;
    font-size: 14px;
    line-height: 1.4;
}

#volverCatalogo {
    width: 100%;
    margin-top: 20px;
    padding: 15px 18px;
    border: none;
    border-radius: 12px;
    background: #ffd54a;
    color: #111111;
    font-size: 17px;
    font-weight: 800;
    cursor: pointer;
    transition:
        transform 0.2s,
        background 0.2s;
}

#volverCatalogo:hover {
    background: #ffca28;
    transform: translateY(-2px);
}

/* =====================================================
   PIE DEL CARRITO
===================================================== */

#footerCarrito {
    padding: 18px 20px 22px;
    flex-shrink: 0;
    background: #171717;
    border-top: 1px solid #343434;
}

.resumenTotalCarrito {
    margin-bottom: 16px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid #383838;
    border-radius: 16px;
    background: linear-gradient(
        135deg,
        #232323,
        #1d1d1d
    );
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
}

.textoTotalCarrito {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.etiquetaTotalCarrito {
    margin-bottom: 5px;
    color: #bdbdbd;
    font-size: 14px;
    font-weight: 700;
}

#totalCarrito {
    color: #ffd54a;
    font-size: 31px;
    font-weight: 900;
    line-height: 1.1;
}

#cantidadProductosCarrito {
    margin-top: 5px;
    color: #9e9e9e;
    font-size: 13px;
    font-weight: 600;
}

.iconoResumenCarrito {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 14px;
    background: rgba(37, 211, 102, 0.12);
    font-size: 27px;
}

#finalizarPedido {
    width: 100%;
    min-height: 56px;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: none;
    border-radius: 14px;
    background: #25d366;
    color: #101010;
    font-size: 17px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(37, 211, 102, 0.2);
    transition:
        transform 0.2s,
        background 0.2s,
        box-shadow 0.2s;
}

#finalizarPedido:hover:not(:disabled) {
    background: #2be06d;
    transform: translateY(-2px);
    box-shadow: 0 11px 22px rgba(37, 211, 102, 0.27);
}

#finalizarPedido:active:not(:disabled) {
    transform: translateY(0);
}

#finalizarPedido:disabled {
    background: #383838;
    color: #777777;
    cursor: not-allowed;
    box-shadow: none;
    opacity: 1;
}
/* =====================================================
   CARRUSELES INTERACTIVOS — CORRECCIÓN 2026
===================================================== */

.carruselProductos {
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}

.carruselProductos.arrastrando {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.carruselProductos.arrastrando .promo {
    pointer-events: none;
}

.flechaCarrusel:disabled {
    opacity: 0.35;
    cursor: default;
    transform: none;
    background: #232323;
    border-color: #444444;
}

@media (max-width: 760px) {
    .carruselProductos {
        gap: 16px;
        padding-right: 18px;
    }

    .carruselProductos .promo {
        flex-basis: min(84vw, 330px);
        min-width: min(84vw, 330px);
    }

    .flechaCarrusel {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }
}


/* ============================================================
   REDISEÑO 2026
   ENCABEZADO COMPACTO Y PRIMERA PANTALLA
============================================================ */

/* ------------------------------------------------------------
   VARIABLES VISUALES
------------------------------------------------------------ */

:root{

    --rojo-promocombo:#c90000;
    --rojo-promocombo-oscuro:#9f0000;
    --verde-promocombo:#25d366;
    --amarillo-promocombo:#ffd54a;
    --fondo-principal:#101010;
    --fondo-tarjeta:#191919;
    --borde-suave:#303030;

}


/* ------------------------------------------------------------
   ENCABEZADO PRINCIPAL
------------------------------------------------------------ */

#menuSuperior{

    height:72px;

    display:grid;

    grid-template-columns:
        minmax(190px,auto)
        minmax(170px,auto)
        minmax(280px,1fr)
        auto;

    align-items:center;

    gap:18px;

    padding:8px 92px 8px 18px;

    background:
        linear-gradient(
            90deg,
            var(--rojo-promocombo-oscuro),
            var(--rojo-promocombo)
        );

    border-bottom:1px solid rgba(255,255,255,.12);

}

body{

    padding-top:72px;

}


/* ------------------------------------------------------------
   MARCA Y LOGO
------------------------------------------------------------ */

.marcaPrincipal{

    display:flex;

    align-items:center;

    gap:10px;

    min-width:0;

    color:#ffffff;

    text-decoration:none;

}

.logoMenuImagen{

    width:50px;

    height:50px;

    flex:0 0 50px;

    object-fit:contain;

    border-radius:12px;

    background:#101010;

    box-shadow:0 5px 14px rgba(0,0,0,.32);

}

.nombreMarca{

    font-size:18px;

    font-weight:900;

    letter-spacing:.4px;

    white-space:nowrap;

}


/* ------------------------------------------------------------
   ESTADO DEL LOCAL DENTRO DEL ENCABEZADO
------------------------------------------------------------ */

.estadoLocalMenu{

    position:static;

    width:auto;

    min-width:170px;

    margin:0;

    padding:7px 10px;

    border-radius:12px;

    box-shadow:none;

    transform:none;

}

.estadoLocalMenu:hover{

    transform:none;

}

.estadoLocalMenu .textoEstadoLocal strong{

    font-size:12px;

}

.estadoLocalMenu .textoEstadoLocal small{

    display:block;

    max-width:145px;

    overflow:hidden;

    color:#f3f3f3;

    font-size:10px;

    line-height:1.2;

    text-overflow:ellipsis;

    white-space:nowrap;

}


/* ------------------------------------------------------------
   BUSCADOR COMPACTO
------------------------------------------------------------ */

#buscador{

    width:100%;

    margin:0;

    padding:0;

}

#buscarProducto{

    width:100%;

    max-width:none;

    height:46px;

    padding:0 20px;

    border:1px solid rgba(255,255,255,.11);

    border-radius:24px;

    background:#202020;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.04),
        0 5px 15px rgba(0,0,0,.18);

    font-size:15px;

}

#buscarProducto:focus{

    border:1px solid var(--verde-promocombo);

    box-shadow:0 0 0 3px rgba(37,211,102,.16);

}


/* ------------------------------------------------------------
   NAVEGACIÓN
------------------------------------------------------------ */

#menuSuperior ul.menuNavegacion{

    display:flex;

    align-items:center;

    gap:16px;

    margin:0;

}

#menuSuperior ul.menuNavegacion a{

    font-size:13px;

    white-space:nowrap;

}


/* ------------------------------------------------------------
   CARRITO INTEGRADO VISUALMENTE AL ENCABEZADO
------------------------------------------------------------ */

#carrito{

    top:12px;

    right:16px;

    min-width:62px;

    height:48px;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:7px;

    padding:0 16px;

    border:1px solid rgba(255,255,255,.18);

    border-radius:24px;

    font-size:17px;

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

}


/* ------------------------------------------------------------
   HERO COMPACTO
------------------------------------------------------------ */

.hero{

    min-height:0;

    display:block;

    padding:46px 24px 30px;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(201,0,0,.16),
            transparent 48%
        ),
        var(--fondo-principal);

    text-align:left;

}

.contenidoHero{

    width:100%;

    max-width:1400px;

    margin:0 auto;

}

.etiquetaHero{

    display:inline-flex;

    align-items:center;

    min-height:34px;

    padding:7px 13px;

    color:#ffffff;

    background:rgba(201,0,0,.18);

    border:1px solid rgba(255,80,80,.28);

    border-radius:18px;

    font-size:13px;

    font-weight:800;

}

.hero h1{

    max-width:780px;

    margin:16px 0 10px;

    color:#ffffff;

    font-size:clamp(34px,4vw,58px);

    line-height:1.02;

    letter-spacing:-1.7px;

}

.hero h1 span{

    display:block;

    color:var(--amarillo-promocombo);

}

.hero p{

    max-width:650px;

    margin:0 0 22px;

    color:#cfcfcf;

    font-size:18px;

    line-height:1.5;

}

.accionesHero{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

}

.hero .botonWhatsapp,
.botonHeroSecundario{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:46px;

    padding:0 22px;

    border-radius:23px;

    font-size:15px;

    font-weight:900;

    text-decoration:none;

}

.hero .botonWhatsapp{

    background:var(--verde-promocombo);

}

.botonHeroSecundario{

    color:#ffffff;

    background:#232323;

    border:1px solid #3c3c3c;

    transition:.25s;

}

.botonHeroSecundario:hover{

    border-color:#666666;

    transform:translateY(-2px);

}


/* ------------------------------------------------------------
   PROMOCIONES MÁS CERCA DEL INICIO
------------------------------------------------------------ */

.seccionPromocionesPrincipal{

    width:100%;

    margin:0;

    padding:0;

}

#contenedorPromos{

    margin-top:0;

}

.categoriaProductos{

    margin-bottom:42px;

    padding:0 24px;

}

.categoriaProductos:first-child{

    padding-top:16px;

}

.cabeceraCategoria{

    margin-bottom:17px;

}

.tituloCategoria{

    padding-left:14px;

    border-left-width:5px;

    font-size:30px;

}

.carruselProductos{

    gap:18px;

}


/* ------------------------------------------------------------
   AJUSTE DE TARJETAS EN LA PRIMERA PANTALLA
------------------------------------------------------------ */

.carruselProductos .promo{

    flex-basis:310px;

    min-width:310px;

    margin-top:0;

    margin-bottom:12px;

}

.promoImg{

    height:210px;

}


/* ============================================================
   TABLET
============================================================ */

@media (max-width:1250px){

    #menuSuperior{

        grid-template-columns:
            minmax(175px,auto)
            minmax(250px,1fr)
            auto;

    }

    .estadoLocalMenu{

        display:none;

    }

    #menuSuperior ul.menuNavegacion{

        gap:12px;

    }

    #menuSuperior ul.menuNavegacion li:nth-last-child(-n+2){

        display:none;

    }

}


/* ============================================================
   CELULAR
============================================================ */

@media (max-width:820px){

    #menuSuperior{

        height:116px;

        grid-template-columns:1fr auto;

        grid-template-rows:50px 46px;

        gap:6px 10px;

        padding:7px 76px 7px 12px;

    }

    body{

        padding-top:116px;

    }

    .marcaPrincipal{

        grid-column:1;

        grid-row:1;

    }

    .logoMenuImagen{

        width:44px;

        height:44px;

        flex-basis:44px;

    }

    .nombreMarca{

        font-size:16px;

    }

    #buscador{

        grid-column:1 / 3;

        grid-row:2;

    }

    #buscarProducto{

        height:42px;

        font-size:14px;

    }

    #menuSuperior ul.menuNavegacion,
    .estadoLocalMenu{

        display:none;

    }

    #carrito{

        top:11px;

        right:10px;

        min-width:56px;

        height:44px;

        padding:0 13px;

        font-size:16px;

    }

    .hero{

        padding:30px 16px 20px;

    }

    .hero h1{

        margin-top:13px;

        font-size:36px;

        letter-spacing:-1px;

    }

    .hero p{

        margin-bottom:18px;

        font-size:16px;

    }

    .categoriaProductos{

        margin-bottom:34px;

        padding:0 14px;

        scroll-margin-top:130px;

    }

    .tituloCategoria{

        font-size:25px;

    }

    .carruselProductos .promo{

        flex-basis:278px;

        min-width:278px;

    }

    .promoImg{

        height:190px;

    }

}


/* ============================================================
   CELULARES PEQUEÑOS
============================================================ */

@media (max-width:430px){

    .nombreMarca{

        font-size:14px;

    }

    .hero h1{

        font-size:31px;

    }

    .accionesHero{

        flex-direction:column;

    }

    .hero .botonWhatsapp,
    .botonHeroSecundario{

        width:100%;

    }

}



/* ============================================================
   DISEÑO PREMIUM PROMOCOMBO
   PORTADA INSPIRADA EN UNA APP PROFESIONAL DE PEDIDOS
============================================================ */

:root{

    --premium-rojo:#d1000b;
    --premium-rojo-oscuro:#a90008;
    --premium-negro:#080808;
    --premium-panel:#111111;
    --premium-borde:#353535;
    --premium-verde:#25d366;
    --premium-amarillo:#ffc400;
    --premium-blanco:#ffffff;
    --premium-gris:#bdbdbd;

}

html{

    scroll-behavior:smooth;

}

body{

    padding-top:142px;

    background:
        radial-gradient(circle at 50% 0%, rgba(209,0,11,.08), transparent 35%),
        var(--premium-negro);

}


/* ============================================================
   CABECERA EN DOS NIVELES
============================================================ */

.cabeceraSitio{

    position:fixed;

    top:0;

    right:0;

    left:0;

    z-index:1100;

    box-shadow:0 10px 30px rgba(0,0,0,.35);

}

#menuSuperior{

    position:relative;

    top:auto;

    height:88px;

    display:grid;

    grid-template-columns:minmax(330px,auto) minmax(320px,610px) minmax(190px,auto);

    align-items:center;

    justify-content:space-between;

    gap:28px;

    padding:10px 112px 10px 28px;

    background:
        linear-gradient(90deg,#080808 0%,#111111 50%,#080808 100%);

    border-bottom:1px solid rgba(255,255,255,.08);

}

.marcaPrincipal{

    display:flex;

    align-items:center;

    gap:14px;

    color:#ffffff;

    text-decoration:none;

}

.logoMenuImagen{

    width:74px;

    height:64px;

    flex:0 0 74px;

    object-fit:contain;

    background:transparent;

    border-radius:0;

    box-shadow:none;

}

.marcaTexto{

    display:flex;

    flex-direction:column;

}

.nombreMarca{

    font-size:27px;

    font-weight:950;

    line-height:1;

    letter-spacing:-.6px;

}

.marcaTexto small{

    margin-top:5px;

    color:#d6d6d6;

    font-size:9px;

    font-weight:800;

    letter-spacing:.25px;

    text-transform:uppercase;

}

#buscador{

    width:100%;

    margin:0;

    padding:0;

}

#buscarProducto{

    width:100%;

    max-width:none;

    height:52px;

    padding:0 24px;

    border:1px solid #2d2d2d;

    border-radius:28px;

    background:
        linear-gradient(180deg,#242424,#1b1b1b);

    color:#ffffff;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.05),
        0 7px 22px rgba(0,0,0,.24);

    font-size:15px;

}

#buscarProducto:focus{

    border-color:var(--premium-rojo);

    box-shadow:0 0 0 4px rgba(209,0,11,.15);

}

.estadoLocalMenu{

    position:static;

    width:auto;

    min-width:190px;

    margin:0;

    padding:9px 12px;

    transform:none;

    border-radius:13px;

    box-shadow:none;

}

.estadoLocalMenu:hover{

    transform:none;

}

.barraCategoriasSuperior{

    height:54px;

    display:flex;

    align-items:stretch;

    justify-content:center;

    gap:0;

    overflow-x:auto;

    padding:0 20px;

    background:
        linear-gradient(
            180deg,
            var(--premium-rojo),
            var(--premium-rojo-oscuro)
        );

    scrollbar-width:none;

}

.barraCategoriasSuperior::-webkit-scrollbar{

    display:none;

}

.enlaceMenu{

    min-width:max-content;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:7px;

    padding:0 20px;

    color:#ffffff;

    border-right:1px solid rgba(255,255,255,.09);

    font-size:13px;

    font-weight:850;

    text-decoration:none;

    transition:.2s ease;

}

.enlaceMenu:first-child{

    border-left:1px solid rgba(255,255,255,.09);

}

.enlaceMenu:hover,
.enlaceMenu.activo{

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.16),
            rgba(0,0,0,.12)
        );

    box-shadow:inset 0 -3px 0 #ffffff;

}

#carrito{

    top:18px;

    right:23px;

    z-index:1200;

    min-width:70px;

    height:52px;

    padding:0 18px;

    color:#ffffff;

    background:
        linear-gradient(180deg,#ed1520,#c9000a);

    border:1px solid rgba(255,255,255,.18);

    border-radius:15px;

    box-shadow:0 10px 24px rgba(0,0,0,.35);

    font-size:18px;

}


/* ============================================================
   PORTADA PRINCIPAL
============================================================ */

.portadaPrincipal{

    width:100%;

    margin:0;

    padding:0;

    background:#080808;

}

.portadaCarrusel{

    position:relative;

    height:390px;

    overflow:hidden;

    border-bottom:1px solid rgba(209,0,11,.65);

}

.diapositivaPortada{

    position:absolute;

    inset:0;

    display:grid;

    grid-template-columns:minmax(420px,.82fr) minmax(540px,1.18fr);

    align-items:center;

    opacity:0;

    pointer-events:none;

    transform:scale(1.025);

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

}

.diapositivaPortada.activa{

    opacity:1;

    pointer-events:auto;

    transform:scale(1);

}

.fondoPortada{

    position:absolute;

    inset:0;

    z-index:-2;

}

.fondoPortada::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(4,4,4,.98) 0%,
            rgba(4,4,4,.94) 28%,
            rgba(4,4,4,.62) 53%,
            rgba(4,4,4,.18) 100%
        );

}

.fondoPortadaUno{

    background:
        radial-gradient(circle at 70% 35%,rgba(215,46,0,.28),transparent 28%),
        linear-gradient(120deg,#050505,#17100b);

}

.fondoPortadaDos{

    background:
        radial-gradient(circle at 75% 30%,rgba(255,138,0,.23),transparent 27%),
        linear-gradient(120deg,#050505,#1b1005);

}

.fondoPortadaTres{

    background:
        radial-gradient(circle at 75% 40%,rgba(187,22,0,.28),transparent 30%),
        linear-gradient(120deg,#050505,#190806);

}

.contenidoPortada{

    position:relative;

    z-index:3;

    max-width:610px;

    padding-left:6vw;

}

.sobreTituloPortada{

    display:block;

    margin-bottom:8px;

    color:#e2e2e2;

    font-size:22px;

    font-style:italic;

    font-weight:900;

    letter-spacing:.4px;

}

.contenidoPortada h1,
.contenidoPortada h2{

    margin:0;

    color:#ffffff;

    font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;

    font-size:clamp(46px,5vw,72px);

    font-style:italic;

    font-weight:900;

    line-height:.92;

    letter-spacing:1px;

    text-shadow:0 5px 18px rgba(0,0,0,.65);

}

.contenidoPortada h1 strong,
.contenidoPortada h2 strong{

    display:block;

    margin-top:8px;

    color:var(--premium-amarillo);

    font-weight:inherit;

}

.contenidoPortada p{

    margin:20px 0 17px;

    color:#f2f2f2;

    font-size:16px;

    font-weight:700;

}

.botonPortadaWhatsapp{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    min-height:54px;

    padding:0 24px;

    color:#ffffff;

    background:
        linear-gradient(180deg,#31df75,#20bd59);

    border-radius:10px;

    box-shadow:0 10px 24px rgba(37,211,102,.23);

    font-size:17px;

    font-weight:950;

    text-decoration:none;

    transition:.25s ease;

}

.botonPortadaWhatsapp:hover{

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(37,211,102,.3);

}

.collagePortada{

    position:relative;

    align-self:stretch;

    overflow:hidden;

}

.fotoPortada{

    position:absolute;

    overflow:hidden;

    margin:0;

    background:#111111;

    border:1px solid rgba(255,255,255,.12);

    box-shadow:0 28px 55px rgba(0,0,0,.58);

}

.fotoPortada img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.fotoPizza{

    top:22px;

    right:19%;

    width:48%;

    height:310px;

    z-index:1;

    border-radius:50%;

}

.fotoHamburguesa{

    right:1.5%;

    bottom:-45px;

    width:42%;

    height:325px;

    z-index:3;

    border-radius:42% 42% 20% 20%;

}

.fotoEmpanadas{

    left:4%;

    bottom:-34px;

    width:38%;

    height:205px;

    z-index:4;

    border-radius:50% 50% 18px 18px;

}

.fotoPapas{

    top:-18px;

    right:-2%;

    width:28%;

    height:190px;

    z-index:2;

    border-radius:0 0 0 48%;

}

.collagePortadaAlternativo{

    display:block;

}

.fotoPromoGrande{

    top:25px;

    right:8%;

    width:70%;

    height:330px;

    border-radius:28px;

    transform:rotate(-2deg);

}

.fotoPromoChica{

    right:2%;

    bottom:-20px;

    width:32%;

    height:180px;

    z-index:3;

    border-radius:22px;

    transform:rotate(4deg);

}

.fotoHamburguesaDoble{

    right:7%;

    bottom:-28px;

    width:61%;

    height:365px;

    border-radius:46% 46% 12% 12%;

}

.fotoPapasHamburguesa{

    top:15px;

    right:0;

    width:31%;

    height:215px;

    border-radius:50% 0 0 50%;

}

.flechaPortada{

    position:absolute;

    top:50%;

    z-index:10;

    width:46px;

    height:46px;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:0;

    color:#ffffff;

    background:rgba(20,20,20,.74);

    border:1px solid rgba(255,255,255,.18);

    border-radius:50%;

    backdrop-filter:blur(8px);

    font-size:38px;

    line-height:1;

    cursor:pointer;

    transform:translateY(-50%);

}

.flechaPortadaAnterior{

    left:18px;

}

.flechaPortadaSiguiente{

    right:18px;

}

.indicadoresPortada{

    position:absolute;

    right:0;

    bottom:22px;

    left:0;

    z-index:10;

    display:flex;

    justify-content:center;

    gap:10px;

}

.indicadorPortada{

    width:12px;

    height:12px;

    padding:0;

    background:#b5b5b5;

    border:0;

    border-radius:50%;

    cursor:pointer;

    opacity:.7;

}

.indicadorPortada.activo{

    background:var(--premium-rojo);

    opacity:1;

}


/* ============================================================
   CATEGORÍAS VISUALES
============================================================ */

.accesosCategorias{

    display:grid;

    grid-template-columns:repeat(7,minmax(100px,1fr));

    gap:24px;

    max-width:1460px;

    margin:0 auto;

    padding:18px 38px 20px;

    background:#0d0d0d;

    border-bottom:1px solid rgba(209,0,11,.65);

}

.accesoCategoria{

    min-width:0;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:8px;

    color:#ffffff;

    text-align:center;

    text-decoration:none;

    transition:.22s ease;

}

.circuloCategoria{

    width:82px;

    height:82px;

    display:block;

    overflow:hidden;

    padding:5px;

    background:#171717;

    border:2px solid var(--premium-rojo);

    border-radius:50%;

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

}

.circuloCategoria img{

    width:100%;

    height:100%;

    object-fit:cover;

    border-radius:50%;

}

.accesoCategoria strong{

    font-size:14px;

}

.accesoCategoria:hover{

    color:var(--premium-amarillo);

    transform:translateY(-5px);

}

.tituloSeccionDestacada{

    display:grid;

    grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);

    align-items:center;

    gap:24px;

    max-width:1180px;

    margin:22px auto 5px;

    padding:0 24px;

}

.tituloSeccionDestacada span{

    height:2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--premium-rojo)
        );

}

.tituloSeccionDestacada span:last-child{

    background:
        linear-gradient(
            90deg,
            var(--premium-rojo),
            transparent
        );

}

.tituloSeccionDestacada h2{

    margin:0;

    color:#ffffff;

    font-size:28px;

    font-weight:950;

    letter-spacing:.4px;

}


/* ============================================================
   PROMOCIONES Y TARJETAS
============================================================ */

.seccionPromocionesPrincipal{

    margin-top:0;

    padding-top:0;

}

.categoriaProductos{

    max-width:1480px;

    margin:0 auto 48px;

    padding:15px 30px 0;

}

.categoriaProductos:first-child .cabeceraCategoria{

    display:none;

}

.cabeceraCategoria{

    margin-bottom:16px;

}

.tituloCategoria{

    color:#ffffff;

    border-left-color:var(--premium-rojo);

}

.carruselProductos{

    gap:20px;

    padding:5px 2px 22px;

}

.carruselProductos .promo{

    flex:0 0 330px;

    min-width:330px;

    overflow:hidden;

    margin:0;

    background:
        linear-gradient(180deg,#171717,#0e0e0e);

    border:1px solid #454545;

    border-radius:15px;

    box-shadow:0 12px 30px rgba(0,0,0,.3);

    transition:
        transform .24s ease,
        border-color .24s ease,
        box-shadow .24s ease;

}

.carruselProductos .promo:hover{

    transform:translateY(-7px);

    border-color:rgba(209,0,11,.8);

    box-shadow:0 18px 38px rgba(0,0,0,.46);

}

.promoImg{

    height:205px;

    border-bottom:1px solid rgba(255,255,255,.08);

}

.promo h3{

    margin-top:14px;

    color:#ffffff;

    font-size:19px;

    text-transform:uppercase;

}

.promo p{

    color:#d3d3d3;

}

.precio,
.precioProducto{

    color:#f01a25 !important;

    font-size:24px !important;

    font-weight:950 !important;

}

.botonCarrito,
.botonAgregar,
.promo button{

    border-radius:9px !important;

}

.anclaSeccionInvisible{

    height:1px;

    margin:0;

    padding:0;

}


/* ============================================================
   TABLET
============================================================ */

@media (max-width:1180px){

    body{

        padding-top:134px;

    }

    #menuSuperior{

        height:82px;

        grid-template-columns:minmax(250px,auto) minmax(280px,1fr);

        padding-right:102px;

    }

    .estadoLocalMenu{

        display:none;

    }

    .barraCategoriasSuperior{

        height:52px;

        justify-content:flex-start;

    }

    .diapositivaPortada{

        grid-template-columns:.92fr 1.08fr;

    }

    .contenidoPortada{

        padding-left:7vw;

    }

    .accesosCategorias{

        grid-template-columns:repeat(7,120px);

        justify-content:flex-start;

        overflow-x:auto;

    }

}


/* ============================================================
   CELULAR
============================================================ */

@media (max-width:760px){

    body{

        padding-top:148px;

    }

    #menuSuperior{

        height:96px;

        grid-template-columns:1fr;

        grid-template-rows:45px 43px;

        gap:4px;

        padding:5px 72px 5px 10px;

    }

    .marcaPrincipal{

        grid-row:1;

    }

    .logoMenuImagen{

        width:48px;

        height:43px;

        flex-basis:48px;

    }

    .nombreMarca{

        font-size:18px;

    }

    .marcaTexto small{

        display:none;

    }

    #buscador{

        grid-row:2;

    }

    #buscarProducto{

        height:41px;

        font-size:13px;

    }

    .barraCategoriasSuperior{

        height:52px;

        padding:0 4px;

    }

    .enlaceMenu{

        padding:0 14px;

        font-size:12px;

    }

    #carrito{

        top:10px;

        right:8px;

        min-width:55px;

        height:44px;

        padding:0 12px;

        border-radius:12px;

        font-size:15px;

    }

    .portadaCarrusel{

        height:505px;

    }

    .diapositivaPortada{

        grid-template-columns:1fr;

        grid-template-rows:auto 205px;

        align-content:start;

    }

    .contenidoPortada{

        z-index:5;

        padding:34px 48px 5px 22px;

    }

    .sobreTituloPortada{

        font-size:16px;

    }

    .contenidoPortada h1,
    .contenidoPortada h2{

        font-size:43px;

    }

    .contenidoPortada p{

        margin:15px 0;

        font-size:14px;

    }

    .botonPortadaWhatsapp{

        min-height:48px;

        padding:0 17px;

        font-size:14px;

    }

    .collagePortada{

        grid-row:2;

    }

    .fotoPizza{

        top:4px;

        right:29%;

        width:55%;

        height:190px;

    }

    .fotoHamburguesa{

        right:-3%;

        bottom:-22px;

        width:43%;

        height:205px;

    }

    .fotoEmpanadas{

        left:2%;

        bottom:-10px;

        width:40%;

        height:125px;

    }

    .fotoPapas{

        display:none;

    }

    .fotoPromoGrande{

        top:5px;

        right:9%;

        width:82%;

        height:190px;

    }

    .fotoPromoChica{

        right:0;

        width:38%;

        height:110px;

    }

    .fotoHamburguesaDoble{

        right:10%;

        width:72%;

        height:220px;

    }

    .fotoPapasHamburguesa{

        width:35%;

        height:125px;

    }

    .flechaPortada{

        width:38px;

        height:38px;

        font-size:30px;

    }

    .flechaPortadaAnterior{

        left:7px;

    }

    .flechaPortadaSiguiente{

        right:7px;

    }

    .indicadoresPortada{

        bottom:10px;

    }

    .accesosCategorias{

        grid-template-columns:repeat(7,98px);

        gap:13px;

        padding:15px 12px;

    }

    .circuloCategoria{

        width:70px;

        height:70px;

    }

    .accesoCategoria strong{

        font-size:12px;

    }

    .tituloSeccionDestacada{

        gap:11px;

        margin-top:18px;

        padding:0 12px;

    }

    .tituloSeccionDestacada h2{

        font-size:20px;

        text-align:center;

    }

    .categoriaProductos{

        margin-bottom:38px;

        padding:12px 12px 0;

        scroll-margin-top:158px;

    }

    .carruselProductos .promo{

        flex-basis:280px;

        min-width:280px;

    }

    .promoImg{

        height:185px;

    }

}


/* ============================================================
   CELULARES PEQUEÑOS
============================================================ */

@media (max-width:420px){

    .portadaCarrusel{

        height:490px;

    }

    .contenidoPortada h1,
    .contenidoPortada h2{

        font-size:37px;

    }

    .contenidoPortada{

        padding-left:18px;

    }

}



/* ============================================================
   PROMOCOMBO VERSION 2.0
   CAPA VISUAL, MOVIMIENTO Y EXPERIENCIA DE COMPRA
============================================================ */


/* ------------------------------------------------------------
   FONDO CON TEXTURA MUY SUTIL
------------------------------------------------------------ */

body{

    background-color:#080808;

    background-image:
        radial-gradient(
            circle at 15% 10%,
            rgba(209,0,11,.10),
            transparent 26%
        ),
        radial-gradient(
            circle at 85% 30%,
            rgba(255,196,0,.035),
            transparent 22%
        ),
        repeating-linear-gradient(
            125deg,
            rgba(255,255,255,.012) 0,
            rgba(255,255,255,.012) 1px,
            transparent 1px,
            transparent 8px
        );

    background-attachment:fixed;

}


/* ------------------------------------------------------------
   CABECERA MÁS REFINADA
------------------------------------------------------------ */

.cabeceraSitio{

    transition:
        box-shadow .28s ease,
        transform .28s ease;

}

.cabeceraSitio.cabeceraConSombra{

    box-shadow:
        0 16px 36px rgba(0,0,0,.52),
        0 1px 0 rgba(209,0,11,.32);

}

.marcaPrincipal{

    position:relative;

}

.marcaPrincipal::after{

    content:"";

    position:absolute;

    right:-16px;

    width:1px;

    height:42px;

    background:
        linear-gradient(
            transparent,
            rgba(255,255,255,.22),
            transparent
        );

}

.logoMenuImagen{

    filter:
        drop-shadow(0 6px 9px rgba(0,0,0,.40))
        saturate(1.05);

    transition:
        transform .28s ease,
        filter .28s ease;

}

.marcaPrincipal:hover .logoMenuImagen{

    transform:scale(1.05) rotate(-2deg);

    filter:
        drop-shadow(0 8px 14px rgba(209,0,11,.28))
        saturate(1.13);

}

.enlaceMenu{

    position:relative;

    overflow:hidden;

}

.enlaceMenu::before{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            110deg,
            transparent 20%,
            rgba(255,255,255,.16) 50%,
            transparent 80%
        );

    transform:translateX(-120%);

    transition:transform .45s ease;

}

.enlaceMenu:hover::before{

    transform:translateX(120%);

}


/* ------------------------------------------------------------
   PORTADA CON ANIMACIONES ESCALONADAS
------------------------------------------------------------ */

.diapositivaPortada .contenidoPortada > *{

    opacity:0;

    transform:translateY(22px);

}

.diapositivaPortada.activa .sobreTituloPortada{

    animation:
        entradaTextoPortada .65s .12s both;

}

.diapositivaPortada.activa h1,
.diapositivaPortada.activa h2{

    animation:
        entradaTextoPortada .72s .22s both;

}

.diapositivaPortada.activa .contenidoPortada p{

    animation:
        entradaTextoPortada .65s .38s both;

}

.diapositivaPortada.activa .botonPortadaWhatsapp{

    animation:
        entradaBotonPortada .65s .50s both;

}

.diapositivaPortada .fotoPortada{

    opacity:0;

    transform:
        translateX(70px)
        scale(.92);

}

.diapositivaPortada.activa .fotoPizza,
.diapositivaPortada.activa .fotoPromoGrande,
.diapositivaPortada.activa .fotoHamburguesaDoble{

    animation:
        entradaFotoPrincipal .9s .20s both;

}

.diapositivaPortada.activa .fotoHamburguesa,
.diapositivaPortada.activa .fotoPromoChica,
.diapositivaPortada.activa .fotoPapasHamburguesa{

    animation:
        entradaFotoSecundaria .85s .42s both;

}

.diapositivaPortada.activa .fotoEmpanadas{

    animation:
        entradaFotoDesdeAbajo .85s .52s both;

}

.diapositivaPortada.activa .fotoPapas{

    animation:
        entradaFotoDesdeArriba .85s .58s both;

}

@keyframes entradaTextoPortada{

    from{
        opacity:0;
        transform:translateY(24px);
    }

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

}

@keyframes entradaBotonPortada{

    from{
        opacity:0;
        transform:translateY(18px) scale(.94);
    }

    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }

}

@keyframes entradaFotoPrincipal{

    from{
        opacity:0;
        transform:translateX(90px) scale(.88) rotate(3deg);
    }

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

}

@keyframes entradaFotoSecundaria{

    from{
        opacity:0;
        transform:translateX(90px) translateY(40px) scale(.88);
    }

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

}

@keyframes entradaFotoDesdeAbajo{

    from{
        opacity:0;
        transform:translateY(75px) scale(.90);
    }

    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }

}

@keyframes entradaFotoDesdeArriba{

    from{
        opacity:0;
        transform:translateY(-55px) scale(.90);
    }

    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }

}


/* ------------------------------------------------------------
   EFECTOS DE PROFUNDIDAD EN LA PORTADA
------------------------------------------------------------ */

.portadaCarrusel::before{

    content:"";

    position:absolute;

    z-index:8;

    right:0;

    bottom:0;

    left:0;

    height:72px;

    pointer-events:none;

    background:
        linear-gradient(
            transparent,
            rgba(0,0,0,.66)
        );

}

.fotoPortada{

    isolation:isolate;

}

.fotoPortada::after{

    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    border-radius:inherit;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.10),
        inset 0 -34px 45px rgba(0,0,0,.16);

}

.flechaPortada{

    transition:
        background .2s ease,
        transform .2s ease,
        border-color .2s ease;

}

.flechaPortada:hover{

    background:rgba(209,0,11,.86);

    border-color:rgba(255,255,255,.42);

    transform:
        translateY(-50%)
        scale(1.08);

}

.indicadorPortada{

    transition:
        width .24s ease,
        border-radius .24s ease,
        background .24s ease;

}

.indicadorPortada.activo{

    width:30px;

    border-radius:8px;

}


/* ------------------------------------------------------------
   BENEFICIOS COMERCIALES
------------------------------------------------------------ */

.beneficiosVersionDos{

    display:grid;

    grid-template-columns:repeat(4,minmax(0,1fr));

    gap:1px;

    max-width:1460px;

    margin:0 auto;

    padding:0 30px 18px;

    background:#080808;

}

.beneficioVersionDos{

    min-height:72px;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:13px;

    padding:12px 16px;

    background:
        linear-gradient(
            180deg,
            rgba(28,28,28,.92),
            rgba(14,14,14,.92)
        );

    border-top:1px solid rgba(255,255,255,.075);

    border-bottom:1px solid rgba(255,255,255,.075);

}

.beneficioVersionDos:first-child{

    border-left:1px solid rgba(255,255,255,.075);

    border-radius:13px 0 0 13px;

}

.beneficioVersionDos:last-child{

    border-right:1px solid rgba(255,255,255,.075);

    border-radius:0 13px 13px 0;

}

.iconoBeneficioVersionDos{

    width:43px;

    height:43px;

    display:grid;

    place-items:center;

    flex:0 0 43px;

    background:rgba(209,0,11,.15);

    border:1px solid rgba(209,0,11,.34);

    border-radius:50%;

    font-size:21px;

}

.beneficioVersionDos div{

    display:flex;

    flex-direction:column;

}

.beneficioVersionDos strong{

    color:#ffffff;

    font-size:13px;

}

.beneficioVersionDos small{

    margin-top:3px;

    color:#a9a9a9;

    font-size:11px;

}


/* ------------------------------------------------------------
   CATEGORÍAS CON MOVIMIENTO
------------------------------------------------------------ */

.accesoCategoria{

    position:relative;

}

.circuloCategoria{

    transition:
        transform .30s cubic-bezier(.2,.8,.2,1),
        box-shadow .30s ease,
        border-color .30s ease;

}

.accesoCategoria:hover .circuloCategoria{

    transform:
        translateY(-4px)
        scale(1.06)
        rotate(-2deg);

    border-color:#ff2a33;

    box-shadow:
        0 14px 26px rgba(0,0,0,.46),
        0 0 0 5px rgba(209,0,11,.08);

}


/* ------------------------------------------------------------
   TARJETAS 2.0
------------------------------------------------------------ */

.carruselProductos .promo{

    position:relative;

    isolation:isolate;

}

.carruselProductos .promo::before{

    content:"";

    position:absolute;

    z-index:2;

    top:0;

    right:0;

    left:0;

    height:4px;

    background:
        linear-gradient(
            90deg,
            var(--premium-rojo),
            var(--premium-amarillo),
            var(--premium-rojo)
        );

    opacity:0;

    transform:scaleX(.3);

    transition:
        opacity .28s ease,
        transform .28s ease;

}

.carruselProductos .promo:hover::before{

    opacity:1;

    transform:scaleX(1);

}

.promoImg{

    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        filter .35s ease;

}

.promo:hover .promoImg{

    transform:scale(1.035);

    filter:saturate(1.07) contrast(1.03);

}

.promo button,
.botonCarrito,
.botonAgregar{

    position:relative;

    overflow:hidden;

    box-shadow:
        0 8px 18px rgba(37,211,102,.18);

    transition:
        transform .22s ease,
        box-shadow .22s ease,
        filter .22s ease;

}

.promo button:hover,
.botonCarrito:hover,
.botonAgregar:hover{

    transform:translateY(-2px);

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

    filter:brightness(1.07);

}

.promo button::after,
.botonCarrito::after,
.botonAgregar::after{

    content:"";

    position:absolute;

    top:-50%;

    left:-120%;

    width:70%;

    height:200%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.27),
            transparent
        );

    transform:rotate(18deg);

    transition:left .55s ease;

}

.promo button:hover::after,
.botonCarrito:hover::after,
.botonAgregar:hover::after{

    left:150%;

}


/* ------------------------------------------------------------
   APARICIÓN AL HACER SCROLL
------------------------------------------------------------ */

.elementoEntradaVersionDos{

    opacity:0;

    transform:translateY(30px);

    transition:
        opacity .65s ease,
        transform .65s cubic-bezier(.2,.8,.2,1);

}

.elementoEntradaVersionDos.visibleVersionDos{

    opacity:1;

    transform:translateY(0);

}


/* ------------------------------------------------------------
   CARRITO CON REBOTE Y PANEL MÁS ELEGANTE
------------------------------------------------------------ */

#carrito{

    transition:
        transform .22s ease,
        box-shadow .22s ease,
        filter .22s ease;

}

#carrito:hover{

    transform:translateY(-2px);

    filter:brightness(1.08);

    box-shadow:
        0 14px 30px rgba(209,0,11,.34);

}

#carrito.reboteCarritoVersionDos{

    animation:reboteCarritoVersionDos .55s ease;

}

@keyframes reboteCarritoVersionDos{

    0%{
        transform:scale(1);
    }

    28%{
        transform:scale(1.18) rotate(-4deg);
    }

    55%{
        transform:scale(.96) rotate(2deg);
    }

    78%{
        transform:scale(1.06) rotate(-1deg);
    }

    100%{
        transform:scale(1);
    }

}

#panelCarrito{

    backdrop-filter:blur(16px);

    box-shadow:
        -22px 0 55px rgba(0,0,0,.48);

    transition:
        right .38s cubic-bezier(.22,.8,.25,1),
        visibility .38s ease;

}

#contenidoCarrito{

    scrollbar-width:thin;

    scrollbar-color:#555 transparent;

}

#contenidoCarrito::-webkit-scrollbar{

    width:7px;

}

#contenidoCarrito::-webkit-scrollbar-thumb{

    background:#555;

    border-radius:8px;

}


/* ------------------------------------------------------------
   MODAL CONFIGURADOR MÁS MODERNO
------------------------------------------------------------ */

.modalConfigurador{

    backdrop-filter:blur(9px);

}

.tarjetaConfigurador{

    border:1px solid rgba(255,255,255,.11);

    box-shadow:
        0 26px 80px rgba(0,0,0,.62);

    animation:
        entradaModalVersionDos .28s ease both;

}

@keyframes entradaModalVersionDos{

    from{
        opacity:0;
        transform:translateY(24px) scale(.97);
    }

    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }

}


/* ------------------------------------------------------------
   AVISO DE PRODUCTO AGREGADO
------------------------------------------------------------ */

.avisoVersionDos{

    position:fixed;

    z-index:5000;

    right:22px;

    bottom:24px;

    min-width:270px;

    display:flex;

    align-items:center;

    gap:13px;

    padding:14px 17px;

    opacity:0;

    pointer-events:none;

    color:#ffffff;

    background:
        linear-gradient(
            145deg,
            rgba(22,22,22,.97),
            rgba(9,9,9,.97)
        );

    border:1px solid rgba(37,211,102,.42);

    border-radius:14px;

    box-shadow:
        0 20px 50px rgba(0,0,0,.48);

    transform:translateY(24px) scale(.96);

    transition:
        opacity .25s ease,
        transform .25s ease;

}

.avisoVersionDos.avisoVisibleVersionDos{

    opacity:1;

    transform:translateY(0) scale(1);

}

.iconoAvisoVersionDos{

    width:40px;

    height:40px;

    display:grid;

    place-items:center;

    flex:0 0 40px;

    color:#07130b;

    background:var(--premium-verde);

    border-radius:50%;

    font-size:20px;

    font-weight:950;

}

.avisoVersionDos div{

    display:flex;

    flex-direction:column;

}

.avisoVersionDos strong{

    font-size:14px;

}

.avisoVersionDos small{

    margin-top:3px;

    color:#bdbdbd;

    font-size:11px;

}


/* ------------------------------------------------------------
   TABLET
------------------------------------------------------------ */

@media (max-width:980px){

    .beneficiosVersionDos{

        grid-template-columns:repeat(2,minmax(0,1fr));

        gap:8px;

    }

    .beneficioVersionDos,
    .beneficioVersionDos:first-child,
    .beneficioVersionDos:last-child{

        border:1px solid rgba(255,255,255,.075);

        border-radius:12px;

    }

}


/* ------------------------------------------------------------
   CELULAR
------------------------------------------------------------ */

@media (max-width:620px){

    .marcaPrincipal::after{

        display:none;

    }

    .beneficiosVersionDos{

        display:flex;

        overflow-x:auto;

        gap:9px;

        padding:0 12px 15px;

        scroll-snap-type:x mandatory;

        scrollbar-width:none;

    }

    .beneficiosVersionDos::-webkit-scrollbar{

        display:none;

    }

    .beneficioVersionDos,
    .beneficioVersionDos:first-child,
    .beneficioVersionDos:last-child{

        min-width:225px;

        justify-content:flex-start;

        border:1px solid rgba(255,255,255,.075);

        border-radius:12px;

        scroll-snap-align:start;

    }

    .avisoVersionDos{

        right:12px;

        bottom:14px;

        left:12px;

        min-width:0;

    }

}


/* ------------------------------------------------------------
   ACCESIBILIDAD: MENOS MOVIMIENTO
------------------------------------------------------------ */

@media (prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{

        scroll-behavior:auto !important;

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        transition-duration:.01ms !important;

    }

}



/* ============================================================
   PROMOCOMBO VERSION 3.0
   AJUSTE FINO DE BANNERS Y EXPERIENCIA RESPONSIVE
============================================================ */


/* ------------------------------------------------------------
   ALTURA SEGURA PARA TODOS LOS BANNERS
------------------------------------------------------------ */

.portadaCarrusel{

    height:clamp(430px,31vw,485px);

    min-height:430px;

}

.diapositivaPortada{

    min-height:100%;

}

.contenidoPortada{

    display:flex;

    flex-direction:column;

    justify-content:center;

    min-height:100%;

    padding-top:34px;

    padding-bottom:72px;

    box-sizing:border-box;

}

.contenidoPortada p{

    max-width:560px;

    margin-top:24px;

    margin-bottom:20px;

    line-height:1.45;

}

.botonPortadaWhatsapp{

    align-self:flex-start;

    min-width:235px;

    padding-right:28px;

    padding-left:28px;

    white-space:nowrap;

}


/* ------------------------------------------------------------
   AJUSTE PARTICULAR DEL BANNER PIZZA Y EMPANADAS
------------------------------------------------------------ */

.diapositivaPortada[data-diapositiva="1"] .contenidoPortada{

    padding-top:24px;

    padding-bottom:72px;

}

.diapositivaPortada[data-diapositiva="1"] h2{

    font-size:clamp(48px,4.6vw,68px);

    line-height:.94;

}

.diapositivaPortada[data-diapositiva="1"] .sobreTituloPortada{

    margin-bottom:10px;

}

.diapositivaPortada[data-diapositiva="1"] .contenidoPortada p{

    margin-top:19px;

    margin-bottom:18px;

}


/* ------------------------------------------------------------
   MAYOR LEGIBILIDAD EN PORTADAS
------------------------------------------------------------ */

.contenidoPortada h1,
.contenidoPortada h2{

    text-wrap:balance;

}

.sobreTituloPortada{

    line-height:1.2;

}

.botonPortadaWhatsapp{

    position:relative;

    z-index:12;

    box-shadow:
        0 12px 28px rgba(37,211,102,.29),
        inset 0 1px 0 rgba(255,255,255,.20);

}

.portadaCarrusel::after{

    content:"";

    position:absolute;

    right:0;

    bottom:0;

    left:0;

    z-index:7;

    height:26px;

    pointer-events:none;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(209,0,11,.14)
        );

    border-bottom:1px solid rgba(209,0,11,.85);

}


/* ------------------------------------------------------------
   INDICADORES MÁS SEPARADOS DEL CONTENIDO
------------------------------------------------------------ */

.indicadoresPortada{

    bottom:17px;

}

.flechaPortada{

    z-index:15;

}


/* ------------------------------------------------------------
   TABLET
------------------------------------------------------------ */

@media (max-width:1180px){

    .portadaCarrusel{

        height:470px;

        min-height:470px;

    }

    .contenidoPortada{

        padding-top:30px;

        padding-bottom:76px;

    }

    .diapositivaPortada[data-diapositiva="1"] h2{

        font-size:clamp(45px,5.2vw,62px);

    }

}


/* ------------------------------------------------------------
   CELULAR: EL BOTÓN SIEMPRE DEBE QUEDAR COMPLETO
------------------------------------------------------------ */

@media (max-width:760px){

    .portadaCarrusel{

        height:610px;

        min-height:610px;

    }

    .diapositivaPortada{

        grid-template-rows:minmax(355px,auto) 235px;

    }

    .contenidoPortada{

        min-height:355px;

        justify-content:flex-start;

        padding-top:30px;

        padding-right:48px;

        padding-bottom:35px;

        padding-left:22px;

    }

    .contenidoPortada h1,
    .contenidoPortada h2{

        font-size:42px;

        line-height:.94;

    }

    .diapositivaPortada[data-diapositiva="1"] .contenidoPortada{

        padding-top:22px;

        padding-bottom:32px;

    }

    .diapositivaPortada[data-diapositiva="1"] h2{

        font-size:40px;

        line-height:.93;

    }

    .diapositivaPortada[data-diapositiva="1"] .sobreTituloPortada{

        max-width:315px;

        margin-bottom:8px;

        font-size:15px;

    }

    .contenidoPortada p,
    .diapositivaPortada[data-diapositiva="1"] .contenidoPortada p{

        max-width:345px;

        margin-top:17px;

        margin-bottom:18px;

        font-size:14px;

        line-height:1.4;

    }

    .botonPortadaWhatsapp{

        min-width:235px;

        min-height:50px;

        margin-bottom:4px;

        padding-right:20px;

        padding-left:20px;

        font-size:14px;

    }

    .collagePortada{

        min-height:235px;

    }

    .indicadoresPortada{

        bottom:12px;

    }

}


/* ------------------------------------------------------------
   CELULARES ANGOSTOS
------------------------------------------------------------ */

@media (max-width:420px){

    .portadaCarrusel{

        height:625px;

        min-height:625px;

    }

    .diapositivaPortada{

        grid-template-rows:minmax(380px,auto) 225px;

    }

    .contenidoPortada{

        min-height:380px;

        padding-top:28px;

        padding-right:38px;

        padding-bottom:34px;

        padding-left:18px;

    }

    .contenidoPortada h1,
    .contenidoPortada h2{

        font-size:37px;

    }

    .diapositivaPortada[data-diapositiva="1"] h2{

        font-size:36px;

        line-height:.94;

    }

    .diapositivaPortada[data-diapositiva="1"] .contenidoPortada p{

        max-width:300px;

    }

    .botonPortadaWhatsapp{

        width:min(100%,270px);

        min-width:0;

    }

}


/* ------------------------------------------------------------
   CELULARES MUY BAJOS EN HORIZONTAL
------------------------------------------------------------ */

@media (max-height:520px) and (orientation:landscape){

    .portadaCarrusel{

        height:470px;

        min-height:470px;

    }

    .diapositivaPortada{

        grid-template-columns:1fr 1fr;

        grid-template-rows:1fr;

    }

    .contenidoPortada{

        min-height:470px;

        padding-top:25px;

        padding-bottom:55px;

    }

    .contenidoPortada h1,
    .contenidoPortada h2,
    .diapositivaPortada[data-diapositiva="1"] h2{

        font-size:38px;

    }

}



/* ==========================================================
   ARQUITECTURA 2.0 - ETAPA 3
   AJUSTES DE ENCABEZADO Y ENTREGA
========================================================== */


/* ----------------------------------------------------------
   1. ENCABEZADO CON LOGO ÚNICO
---------------------------------------------------------- */

.marcaPrincipal{

    width:max-content;

    min-width:0;

    gap:0;

}

.marcaPrincipal::after{

    display:none;

}

.marcaTexto{

    display:none;

}

.logoMenuImagen{

    width:78px;

    height:66px;

    flex:0 0 78px;

    object-fit:contain;

}


/* ----------------------------------------------------------
   2. AVISO COMPACTO DE DELIVERY
---------------------------------------------------------- */

.avisoEntregaGratis{

    margin:10px 0 18px;

    padding:0;

    border:0;

    background:transparent;

    color:#28dc72;

    font-size:15px;

    font-weight:800;

    line-height:1.35;

}


/* ----------------------------------------------------------
   3. ADAPTACIÓN PARA CELULARES
---------------------------------------------------------- */

@media (max-width:760px){

    .logoMenuImagen{

        width:62px;

        height:52px;

        flex-basis:62px;

    }

    .avisoEntregaGratis{

        margin-top:9px;

        margin-bottom:16px;

        font-size:14px;

    }

}



/* ==========================================================
   ARQUITECTURA 2.0 - ETAPA 3 CORREGIDA
   LOGO SEGURO Y ENTREGA MÁS COMPACTA
========================================================== */

#pasoEntrega{

    margin-bottom:10px;

}

#pasoEntrega h3{

    margin-bottom:4px;

}

#pasoEntrega .avisoEntregaGratis{

    margin:0;

    padding:0;

    color:#28dc72;

    font-size:14px;

    font-weight:800;

    line-height:1.3;

}

#pasoEntrega + .opcionesEntrega{

    margin-top:0;

}

@media (max-width:760px){

    #pasoEntrega{

        margin-bottom:8px;

    }

    #pasoEntrega .avisoEntregaGratis{

        font-size:13px;

    }

}



/* ==========================================================
   REDISEÑO PREMIUM DEL CARRITO
   Integrado con la identidad visual de PromoCombo
========================================================== */

#panelCarrito{

    right:-440px;

    width:min(420px, 100vw);

    background:
        radial-gradient(
            circle at top right,
            rgba(255, 213, 74, .08),
            transparent 32%
        ),
        #121313;

    border-left:1px solid rgba(255,255,255,.08);

}

#panelCarrito.abierto{

    right:0;

}

.cabeceraCarrito{

    min-height:96px;

    padding:18px 20px;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.025),
            rgba(255,255,255,0)
        ),
        #151616;

    border-bottom:1px solid rgba(255,213,74,.55);

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

}

.tituloCarrito{

    gap:13px;

}

.iconoTituloCarrito{

    width:50px;

    height:50px;

    border:1px solid rgba(255,213,74,.24);

    background:
        linear-gradient(
            145deg,
            rgba(255,213,74,.18),
            rgba(255,213,74,.06)
        );

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        0 8px 18px rgba(0,0,0,.18);

}

.textoTituloCarrito{

    display:grid;

    gap:3px;

}

.textoTituloCarrito > span{

    color:#ffd54a;

    font-size:11px;

    font-weight:900;

    letter-spacing:.11em;

    text-transform:uppercase;

}

.cabeceraCarrito h2{

    font-size:25px;

    letter-spacing:-.02em;

}

#cerrarCarrito{

    width:42px;

    height:42px;

    border:1px solid rgba(255,255,255,.10);

    background:rgba(255,255,255,.035);

    font-size:22px;

}

#cerrarCarrito:hover{

    border-color:rgba(255,213,74,.45);

    background:rgba(255,213,74,.10);

}

#contenidoCarrito{

    padding:18px;

    display:block;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.018),
            transparent 18%
        );

}

.itemCarrito{

    margin:0 0 16px;

    overflow:hidden;

    border:1px solid rgba(255,255,255,.09);

    border-radius:18px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.055),
            rgba(255,255,255,.018)
        );

    box-shadow:
        0 14px 28px rgba(0,0,0,.20),
        inset 0 1px 0 rgba(255,255,255,.04);

    animation:entradaItemCarrito .28s ease both;

}

@keyframes entradaItemCarrito{

    from{

        opacity:0;

        transform:translateY(10px) scale(.985);

    }

    to{

        opacity:1;

        transform:translateY(0) scale(1);

    }

}

.cabeceraItemCarrito{

    padding:13px 14px 0;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:12px;

}

.codigoItemCarrito{

    display:inline-flex;

    align-items:center;

    min-height:27px;

    padding:5px 10px;

    border:1px solid rgba(255,213,74,.22);

    border-radius:999px;

    background:rgba(255,213,74,.09);

    color:#ffd54a;

    font-size:11px;

    font-weight:900;

    letter-spacing:.08em;

    text-transform:uppercase;

}

.cuerpoItemCarrito{

    padding:12px 14px 15px;

    display:flex;

    align-items:flex-end;

    justify-content:space-between;

    gap:16px;

}

.informacionItemCarrito{

    min-width:0;

    flex:1;

}

.informacionItemCarrito h3{

    margin:0 0 8px;

    color:#ffffff;

    font-size:18px;

    font-weight:850;

    line-height:1.25;

    letter-spacing:-.015em;

}

.precioUnitarioCarrito{

    display:flex;

    flex-wrap:wrap;

    align-items:center;

    gap:7px;

    color:#92999b;

    font-size:12px;

    font-weight:700;

}

.precioUnitarioCarrito strong{

    color:#f0f2f2;

    font-size:14px;

}

.itemCarrito .detalleConfiguracionCarrito{

    margin:10px 0;

    padding:10px 11px;

    border:1px solid rgba(255,255,255,.06);

    border-radius:11px;

    background:rgba(0,0,0,.15);

}

.controlesCantidad{

    margin:0;

    padding:4px;

    gap:4px;

    flex:0 0 auto;

    border:1px solid rgba(255,255,255,.10);

    border-radius:999px;

    background:rgba(0,0,0,.20);

}

.controlesCantidad button{

    width:34px;

    height:34px;

    display:grid;

    place-content:center;

    border:0;

    border-radius:50%;

    background:rgba(255,255,255,.07);

    color:#ffffff;

    font-family:inherit;

    font-size:22px;

    line-height:1;

    box-shadow:none;

}

.controlesCantidad button:hover{

    background:#ffd54a;

    color:#111313;

    transform:none;

}

.controlesCantidad button:active{

    transform:scale(.90);

}

.cantidadItemCarrito{

    min-width:29px !important;

    color:#ffffff;

    font-size:16px !important;

    font-weight:900 !important;

}

.cabeceraItemCarrito .eliminar{

    width:34px;

    height:34px;

    display:grid;

    place-content:center;

    padding:0;

    border:1px solid rgba(239,68,68,.20) !important;

    border-radius:10px;

    background:rgba(239,68,68,.07);

    color:#ff7777 !important;

    font-size:15px;

    cursor:pointer;

    transition:
        transform .18s ease,
        background .18s ease,
        border-color .18s ease;

}

.cabeceraItemCarrito .eliminar:hover{

    border-color:rgba(239,68,68,.48) !important;

    background:rgba(239,68,68,.16) !important;

    color:#ffffff !important;

    transform:translateY(-1px);

}

.subtotal{

    margin:0;

    padding:13px 14px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:14px;

    border:0;

    border-top:1px solid rgba(255,255,255,.07);

    background:rgba(0,0,0,.14);

    color:#a7adaf;

    font-size:13px;

}

.subtotal strong{

    color:#ffd54a;

    font-size:18px;

    font-weight:950;

}

#footerCarrito{

    padding:16px 18px 18px;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.025),
            rgba(255,255,255,0)
        ),
        #151616;

    border-top:1px solid rgba(255,255,255,.09);

    box-shadow:0 -14px 30px rgba(0,0,0,.22);

}

.resumenTotalCarrito{

    margin-bottom:13px;

    padding:15px 16px;

    border:1px solid rgba(255,213,74,.18);

    border-radius:17px;

    background:
        radial-gradient(
            circle at right,
            rgba(255,213,74,.09),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            rgba(255,255,255,.06),
            rgba(255,255,255,.018)
        );

}

.etiquetaTotalCarrito{

    color:#d3d6d7;

    font-size:12px;

    letter-spacing:.02em;

}

#totalCarrito{

    margin-top:1px;

    font-size:32px;

    letter-spacing:-.035em;

}

#cantidadProductosCarrito{

    color:#9ca3a6;

}

.iconoResumenCarrito{

    border:1px solid rgba(37,211,102,.20);

    background:
        linear-gradient(
            145deg,
            rgba(37,211,102,.19),
            rgba(37,211,102,.07)
        );

    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);

}

#finalizarPedido{

    border:1px solid rgba(255,255,255,.12);

    background:
        linear-gradient(
            135deg,
            #2bd96d,
            #20bd59
        );

    color:#07180d;

    box-shadow:
        0 11px 23px rgba(37,211,102,.20),
        inset 0 1px 0 rgba(255,255,255,.30);

}

#finalizarPedido:hover:not(:disabled){

    background:
        linear-gradient(
            135deg,
            #35e978,
            #26ca61
        );

}

.carritoVacio{

    min-height:100%;

    padding:28px 4px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-align:center;

}

@media (max-width:520px){

    #panelCarrito{

        width:100vw;

    }

    .cabeceraCarrito{

        min-height:82px;

        padding:14px 16px;

    }

    .iconoTituloCarrito{

        width:44px;

        height:44px;

        font-size:21px;

    }

    .cabeceraCarrito h2{

        font-size:22px;

    }

    #contenidoCarrito{

        padding:14px;

    }

    .cuerpoItemCarrito{

        align-items:stretch;

        flex-direction:column;

    }

    .controlesCantidad{

        align-self:flex-start;

    }

    #footerCarrito{

        padding:14px;

    }

}


/* ==========================================================
   RELEASE CANDIDATE 1 — BARRA DE CONFIANZA
   Visible, compacta y útil para la publicación online.
========================================================== */

.barraConfianza {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    flex-wrap: wrap;
    padding: 10px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: #171717;
    color: #f7f7f7;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.barraConfianza span {
    white-space: nowrap;
}

@media (max-width: 700px) {
    .barraConfianza {
        justify-content: flex-start;
        gap: 8px 16px;
        padding: 9px 14px;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .barraConfianza::-webkit-scrollbar {
        display: none;
    }
}

/* ============================================================
   PROMOCOMBO RC4 - CATÁLOGO COMPACTO PARA CELULARES
   Objetivo: mostrar varias publicaciones simultáneamente sin
   perder legibilidad, usabilidad ni área táctil segura.
============================================================ */

@media (max-width: 760px) {

    .carruselProductos {
        gap: 10px;
        padding: 4px 2px 16px;
        scroll-padding-inline: 2px;
        scroll-snap-type: x proximity;
    }

    .carruselProductos .promo {
        flex: 0 0 clamp(142px, 44vw, 180px);
        min-width: clamp(142px, 44vw, 180px);
        border-radius: 12px;
        scroll-snap-align: start;
        box-shadow: 0 8px 20px rgba(0, 0, 0, .30);
    }

    .carruselProductos .promo:hover {
        transform: none;
    }

    .carruselProductos .promoImg {
        height: clamp(100px, 29vw, 124px);
    }

    .carruselProductos .promoInfo {
        padding: 9px;
    }

    .carruselProductos .codigoPromo {
        min-height: 0;
        padding: 3px 7px;
        font-size: 9px;
        line-height: 1.2;
    }

    .carruselProductos .promoInfo h3,
    .carruselProductos .promo h3 {
        display: -webkit-box;
        min-height: 31px;
        margin: 7px 0 5px;
        overflow: hidden;
        font-size: 13px;
        line-height: 1.18;
        text-transform: none;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .carruselProductos .promoInfo > p:not(.precio):not(.precioProducto) {
        display: none;
    }

    .carruselProductos .precio,
    .carruselProductos .precioProducto {
        margin: 4px 0 6px;
        font-size: 17px !important;
        line-height: 1.1;
    }

    .carruselProductos .estadoPromo {
        margin: 3px 0 7px;
        font-size: 9px;
        line-height: 1.2;
    }

    .carruselProductos .botonCarrito,
    .carruselProductos .botonAgregar,
    .carruselProductos .promo button {
        width: 100%;
        min-height: 38px;
        padding: 7px 6px;
        border-radius: 8px !important;
        font-size: 11px;
        line-height: 1.15;
        touch-action: manipulation;
    }

    .categoriaProductos {
        padding-right: 10px;
        padding-left: 10px;
    }
}

@media (max-width: 360px) {

    .carruselProductos {
        gap: 8px;
    }

    .carruselProductos .promo {
        flex-basis: calc((100vw - 36px) / 2);
        min-width: calc((100vw - 36px) / 2);
    }

    .carruselProductos .promoImg {
        height: 96px;
    }

    .carruselProductos .promoInfo {
        padding: 8px;
    }
}



/* ============================================================
   PROMOCOMBO RC5 - EXPERIENCIA PREMIUM
   Microinteracciones livianas, accesibles y sin dependencias.
============================================================ */

html {
    scroll-behavior: smooth;
}

.cabeceraSitio {
    transition: box-shadow .24s ease, background-color .24s ease;
}

.cabeceraSitio.cabeceraConSombra {
    box-shadow: 0 10px 30px rgba(0, 0, 0, .28);
}

.promo {
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
    will-change: transform;
}

.promo:focus-within {
    outline: 2px solid rgba(255, 193, 7, .9);
    outline-offset: 3px;
}

.promo.productoAgregado {
    animation: confirmarProducto .48s ease;
}

@keyframes confirmarProducto {
    0% { transform: scale(1); }
    45% { transform: scale(.97); }
    75% { transform: scale(1.025); }
    100% { transform: scale(1); }
}

#carrito.carritoActivo {
    animation: pulsoCarrito .48s ease;
}

@keyframes pulsoCarrito {
    0%, 100% { transform: scale(1); }
    45% { transform: scale(1.14); }
}

.notificacionCompra {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 3000;
    width: min(370px, calc(100vw - 28px));
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 16px;
    background: rgba(24, 24, 24, .97);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .38);
    color: #fff;
    opacity: 0;
    transform: translateY(18px) scale(.98);
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
    backdrop-filter: blur(12px);
}

.notificacionCompra.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.notificacionCompra__encabezado {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.notificacionCompra__titulo {
    display: block;
    margin-bottom: 4px;
    color: #ffd54a;
    font-size: .9rem;
}

.notificacionCompra__producto {
    margin: 0;
    font-size: .95rem;
    line-height: 1.35;
}

.notificacionCompra__cerrar {
    min-width: 36px;
    min-height: 36px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .09);
    color: #fff;
    cursor: pointer;
}

.notificacionCompra__acciones {
    display: flex;
    gap: 9px;
    margin-top: 12px;
}

.notificacionCompra__acciones button {
    flex: 1;
    min-height: 40px;
    border: 0;
    border-radius: 10px;
    font-weight: 800;
    cursor: pointer;
}

.notificacionCompra__ver {
    background: #ffc107;
    color: #1a1a1a;
}

.notificacionCompra__seguir {
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.botonVolverArriba {
    position: fixed;
    right: 18px;
    bottom: 92px;
    z-index: 1200;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
    background: rgba(25, 25, 25, .94);
    color: #fff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .3);
    cursor: pointer;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}

.botonVolverArriba.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

@media (hover: hover) and (pointer: fine) {
    .promo:hover {
        transform: translateY(-5px);
        box-shadow: 0 14px 34px rgba(0, 0, 0, .36);
    }

    .botonCarrito:hover,
    .botonAgregar:hover {
        filter: brightness(1.06);
    }
}

@media (max-width: 760px) {
    .notificacionCompra {
        right: 14px;
        bottom: 14px;
    }

    .botonVolverArriba {
        right: 14px;
        bottom: 82px;
        width: 42px;
        height: 42px;
    }

    .promo:active {
        transform: scale(.985);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}


/* ==========================================================
   PROMOCOMBO RC5.1 - CABECERA DEL CARRITO SIMPLIFICADA
   Una sola confirmación de compra y navegación clara hacia atrás.
========================================================== */

.cabeceraCarrito {
    justify-content:flex-start;
}

.tituloCarrito {
    width:100%;
    display:flex;
    align-items:center;
}

#cerrarCarrito {
    flex:0 0 auto;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    background:rgba(255,255,255,.035);
    color:#fff;
    font-size:26px;
    line-height:1;
    cursor:pointer;
    transition:
        transform .18s ease,
        border-color .18s ease,
        background-color .18s ease;
}

#cerrarCarrito:hover {
    transform:translateX(-2px);
    border-color:rgba(255,213,74,.55);
    background:rgba(255,213,74,.10);
}

#cerrarCarrito:focus-visible {
    outline:3px solid rgba(255,213,74,.45);
    outline-offset:3px;
}

.textoTituloCarrito {
    display:flex;
    align-items:center;
}

.textoTituloCarrito > span {
    display:none;
}

.cabeceraCarrito h2 {
    margin:0;
}

@media (max-width:520px) {
    #cerrarCarrito {
        width:40px;
        height:40px;
        font-size:24px;
    }
}

@media (prefers-reduced-motion:reduce) {
    #cerrarCarrito {
        transition:none;
    }
}


/* ==========================================================
   PROMOCOMBO RC6 - IDENTIDAD VISUAL Y CONSISTENCIA PREMIUM
   Mejora la percepción de marca sin alterar funcionalidades.
========================================================== */

:root {
    --pc-rojo: #d80012;
    --pc-rojo-claro: #ff2638;
    --pc-amarillo: #ffd43b;
    --pc-verde: #22d36b;
    --pc-fondo: #080808;
    --pc-superficie: #121212;
    --pc-superficie-elevada: #191919;
    --pc-borde: rgba(255, 255, 255, .12);
    --pc-texto: #f7f7f7;
    --pc-texto-suave: #b7b7b7;
    --pc-radio: 18px;
    --pc-sombra: 0 18px 46px rgba(0, 0, 0, .36);
}

body {
    background:
        radial-gradient(circle at 10% 8%, rgba(216, 0, 18, .10), transparent 27rem),
        radial-gradient(circle at 88% 42%, rgba(255, 212, 59, .035), transparent 28rem),
        var(--pc-fondo);
    color: var(--pc-texto);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: .22;
    background-image: linear-gradient(135deg, rgba(255,255,255,.018) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.018) 50%, rgba(255,255,255,.018) 75%, transparent 75%);
    background-size: 26px 26px;
}

.cabeceraSitio {
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .32);
}

.marcaPrincipal,
.logoMenuImagen {
    transition: transform .2s ease, filter .2s ease;
}

@media (hover: hover) and (pointer: fine) {
    .marcaPrincipal:hover .logoMenuImagen {
        transform: scale(1.035);
        filter: drop-shadow(0 0 12px rgba(255, 212, 59, .18));
    }
}

#buscarProducto {
    border: 1px solid rgba(255,255,255,.12);
    background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.045));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 8px 24px rgba(0,0,0,.18);
}

#buscarProducto:focus {
    border-color: rgba(255, 212, 59, .65);
    box-shadow: 0 0 0 4px rgba(255, 212, 59, .10), 0 10px 28px rgba(0,0,0,.24);
}

.barraCategoriasSuperior {
    background: linear-gradient(180deg, #df0014 0%, #c60012 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.13);
}

.enlaceMenu {
    position: relative;
    isolation: isolate;
}

.enlaceMenu::after {
    content: "";
    position: absolute;
    right: 16%;
    bottom: 0;
    left: 16%;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: var(--pc-amarillo);
    opacity: 0;
    transform: scaleX(.35);
    transition: opacity .18s ease, transform .18s ease;
}

.enlaceMenu.activo::after,
.enlaceMenu:hover::after,
.enlaceMenu:focus-visible::after {
    opacity: 1;
    transform: scaleX(1);
}

.barraConfianza {
    border-bottom: 1px solid rgba(255,255,255,.075);
    background: rgba(12,12,12,.92);
    backdrop-filter: blur(12px);
}

.tituloSeccion,
.encabezadoSeccion,
.seccionProductos > h2,
main section > h2 {
    text-wrap: balance;
}

.tituloSeccion::after,
.encabezadoSeccion::after {
    content: "";
    display: block;
    width: 64px;
    height: 4px;
    margin-top: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--pc-rojo), var(--pc-amarillo));
    box-shadow: 0 0 20px rgba(255, 212, 59, .13);
}

.promo {
    overflow: hidden;
    border-color: var(--pc-borde);
    border-radius: var(--pc-radio);
    background:
        linear-gradient(180deg, rgba(255,255,255,.035), transparent 30%),
        var(--pc-superficie);
    box-shadow: 0 12px 30px rgba(0,0,0,.27);
}

.promo::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.055);
}

.promo img,
.promoImg {
    transition: transform .32s ease, filter .32s ease;
}

@media (hover: hover) and (pointer: fine) {
    .promo:hover {
        border-color: rgba(255, 212, 59, .30);
        box-shadow: 0 20px 48px rgba(0,0,0,.42), 0 0 0 1px rgba(255,212,59,.05);
    }

    .promo:hover img,
    .promo:hover .promoImg {
        transform: scale(1.018);
        filter: saturate(1.04) contrast(1.02);
    }
}

.botonCarrito,
.botonAgregar,
#finalizarPedido,
#enviarPedido,
.botonPortadaWhatsapp {
    border: 1px solid rgba(255,255,255,.12);
    background: linear-gradient(180deg, #29dd76 0%, #18bd5d 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.20), 0 10px 24px rgba(25, 196, 95, .18);
    letter-spacing: .01em;
}

.botonCarrito:active,
.botonAgregar:active,
#finalizarPedido:active,
#enviarPedido:active,
.botonPortadaWhatsapp:active {
    transform: translateY(1px) scale(.995);
}

.botonCarrito:focus-visible,
.botonAgregar:focus-visible,
#finalizarPedido:focus-visible,
#enviarPedido:focus-visible,
.botonPortadaWhatsapp:focus-visible {
    outline: 3px solid rgba(255, 212, 59, .45);
    outline-offset: 3px;
}

#carrito {
    border: 1px solid rgba(255,255,255,.12);
    background: linear-gradient(180deg, #e90018, #c60013);
    box-shadow: 0 12px 28px rgba(216,0,18,.24), inset 0 1px 0 rgba(255,255,255,.17);
}

#panelCarrito,
#panelDatos {
    border-left: 1px solid rgba(255,255,255,.11);
    background:
        linear-gradient(180deg, rgba(255,255,255,.025), transparent 20%),
        #111;
    box-shadow: -24px 0 64px rgba(0,0,0,.50);
}

.cabeceraCarrito,
.cabeceraDatos {
    background: rgba(17,17,17,.94);
    backdrop-filter: blur(14px);
}

.itemCarrito,
.resumenTotalCarrito,
.grupoFormulario,
.resumenPedido {
    border-color: rgba(255,255,255,.11);
    background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}

.notificacionCompra {
    border-color: rgba(255, 212, 59, .22);
    background: linear-gradient(180deg, rgba(31,31,31,.98), rgba(20,20,20,.98));
    box-shadow: 0 22px 56px rgba(0,0,0,.48), 0 0 0 1px rgba(255,212,59,.035);
}

::selection {
    background: rgba(255, 212, 59, .92);
    color: #111;
}

* {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 212, 59, .42) rgba(255,255,255,.035);
}

*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

*::-webkit-scrollbar-track {
    background: rgba(255,255,255,.035);
}

*::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background: rgba(255, 212, 59, .42);
    background-clip: padding-box;
}

@media (max-width: 760px) {
    body {
        background:
            radial-gradient(circle at 0 5%, rgba(216, 0, 18, .095), transparent 20rem),
            var(--pc-fondo);
    }

    .promo {
        border-radius: 15px;
        box-shadow: 0 10px 24px rgba(0,0,0,.26);
    }

    .barraConfianza {
        scroll-snap-type: x proximity;
    }

    .barraConfianza span {
        scroll-snap-align: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .marcaPrincipal,
    .logoMenuImagen,
    .enlaceMenu::after,
    .promo img,
    .promoImg {
        transition: none;
    }
}


/* =====================================================
   RC7.1 - BÚSQUEDA INTEGRADA EN EL ENCABEZADO
===================================================== */

#buscador {
    position: relative;
}

#buscarProducto {
    padding-right: 52px;
}

.limpiarBusquedaIntegrada {
    position: absolute;
    top: 50%;
    right: 10px;
    width: 34px;
    height: 34px;
    padding: 0;
    transform: translateY(-50%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.07);
    font: inherit;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.limpiarBusquedaIntegrada:hover,
.limpiarBusquedaIntegrada:focus-visible {
    border-color: rgba(247, 201, 72, 0.55);
    background: rgba(247, 201, 72, 0.13);
}

.limpiarBusquedaIntegrada:active {
    transform: translateY(-50%) scale(0.94);
}

.sugerenciaCarrito {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 16px 0 6px;
    padding: 14px;
    border: 1px solid rgba(247, 201, 72, 0.24);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(247, 201, 72, 0.10), rgba(255, 255, 255, 0.035));
}

.sugerenciaCarrito div {
    display: grid;
    gap: 3px;
}

.tituloSugerenciaCarrito {
    color: #f7c948;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.sugerenciaCarrito strong {
    color: #ffffff;
}

.sugerenciaCarrito small {
    color: rgba(255, 255, 255, 0.66);
}

.agregarSugerenciaCarrito {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 9px 13px;
    border: 0;
    border-radius: 12px;
    color: #151515;
    background: #f7c948;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

@media (max-width: 640px) {
    .sugerenciaCarrito {
        align-items: stretch;
        flex-direction: column;
    }

    .agregarSugerenciaCarrito {
        width: 100%;
    }
}


@media (max-width: 760px) {
    #buscarProducto {
        padding-right: 44px;
    }

    .limpiarBusquedaIntegrada {
        right: 7px;
        width: 30px;
        height: 30px;
        font-size: 1.05rem;
    }
}

/* ============================================================
   PROMOCOMBO RC7.2 - ESCALA VISUAL MÁS COMPACTA
   Reduce aproximadamente un 20 % la interfaz de escritorio sin
   utilizar zoom ni transformaciones globales. El logo conserva
   mayor presencia visual y los controles táctiles siguen siendo
   accesibles en celulares.
============================================================ */

@media (min-width: 761px) {
    html {
        font-size: 80%;
    }

    body {
        padding-top: 119px;
    }

    #menuSuperior {
        height: 76px;
        grid-template-columns: minmax(230px, auto) minmax(280px, 488px) minmax(160px, auto);
        gap: 22px;
        padding: 8px 90px 8px 22px;
    }

    .logoMenuImagen {
        width: 96px;
        height: 76px;
        flex: 0 0 96px;
    }

    #buscarProducto {
        height: 42px;
        padding-right: 46px;
        padding-left: 19px;
        border-radius: 23px;
        font-size: 12px;
    }

    .limpiarBusquedaIntegrada {
        right: 8px;
        width: 28px;
        height: 28px;
        font-size: 1.05rem;
    }

    .estadoLocalMenu {
        min-width: 152px;
        padding: 7px 10px;
        border-radius: 11px;
    }

    .barraCategoriasSuperior {
        height: 43px;
        padding: 0 16px;
    }

    .enlaceMenu {
        gap: 6px;
        padding: 0 16px;
        font-size: 10.5px;
    }

    .barraConfianza {
        gap: 22px;
        min-height: 38px;
        padding-top: 7px;
        padding-bottom: 7px;
        font-size: 11px;
    }

    #carrito {
        top: 17px;
        right: 18px;
        min-width: 56px;
        height: 42px;
        padding: 0 14px;
        border-radius: 12px;
        font-size: 15px;
    }

    .categoriaProductos {
        max-width: 1184px;
        margin-bottom: 38px;
        padding: 12px 24px 0;
    }

    .cabeceraCategoria {
        margin-bottom: 13px;
    }

    .tituloCategoria {
        font-size: 2rem;
    }

    .carruselProductos {
        gap: 16px;
        padding: 4px 2px 18px;
    }

    .carruselProductos .promo {
        flex-basis: 264px;
        min-width: 264px;
        border-radius: 12px;
    }

    .promoImg {
        height: 164px;
    }

    .promoInfo {
        padding: 14px;
    }

    .promo h3,
    .promoInfo h3 {
        margin-top: 11px;
        font-size: 15px;
    }

    .promo p {
        font-size: 12px;
        line-height: 1.45;
    }

    .precio,
    .precioProducto {
        font-size: 19px !important;
    }

    .promo button,
    .botonCarrito,
    .botonAgregar {
        min-height: 38px;
        padding: 8px 12px;
        font-size: 12px;
    }

    #panelCarrito,
    #panelDatos {
        width: min(336px, 100vw);
    }

    #panelCarrito {
        right: -356px;
    }

    .cabeceraCarrito,
    .cabeceraDatos {
        min-height: 77px;
        padding: 14px 16px;
    }

    .iconoTituloCarrito {
        width: 40px;
        height: 40px;
    }

    .cabeceraCarrito h2,
    .cabeceraDatos h2 {
        font-size: 20px;
    }

    #cerrarCarrito,
    #cerrarDatos {
        width: 36px;
        height: 36px;
    }

    #contenidoCarrito {
        padding: 14px;
    }

    .itemCarrito {
        margin-bottom: 13px;
        border-radius: 14px;
    }

    .cabeceraItemCarrito {
        padding: 10px 11px 0;
    }

    .cuerpoItemCarrito {
        padding: 10px 11px 12px;
        gap: 13px;
    }

    .informacionItemCarrito h3 {
        margin-bottom: 6px;
        font-size: 14.5px;
    }

    .controlesCantidad button {
        width: 29px;
        height: 29px;
        font-size: 18px;
    }

    .cantidadItemCarrito {
        min-width: 23px !important;
        font-size: 13px !important;
    }

    .subtotal {
        padding: 10px 11px;
        font-size: 10.5px;
    }

    .subtotal strong {
        font-size: 14.5px;
    }

    #footerCarrito {
        padding: 13px 14px 14px;
    }

    .resumenTotalCarrito {
        margin-bottom: 10px;
        padding: 12px 13px;
        border-radius: 14px;
    }

    #totalCarrito {
        font-size: 25.5px;
    }

    .notificacionCompra {
        right: 18px;
        bottom: 18px;
        width: min(292px, calc(100vw - 36px));
        padding: 13px;
    }
}

@media (max-width: 760px) {
    .logoMenuImagen {
        width: 76px;
        height: 64px;
        flex-basis: 76px;
    }

    .categoriaProductos {
        margin-bottom: 30px;
    }

    .tituloCategoria {
        font-size: 1.65rem;
    }
}


/* =========================================================
   RC7.3 — NAVEGACIÓN MÁS VISIBLE
   La barra roja recupera presencia sin volver a la escala
   grande anterior. Los controles táctiles móviles se respetan.
   ========================================================= */

@media (min-width: 769px) {

    .barraCategoriasSuperior {
        height: 50px;
        padding-right: 18px;
        padding-left: 18px;
    }

    .enlaceMenu {
        gap: 7px;
        padding-right: 18px;
        padding-left: 18px;
        font-size: 12px;
    }
}


/* =========================================================
   RC8.1 — CATÁLOGO PREMIUM
   Mejora la jerarquía comercial de las tarjetas sin alterar
   el renderizado, los productos ni la lógica del carrito.
   ========================================================= */

/* ---------------------------------------------------------
   Tarjeta principal de producto
   --------------------------------------------------------- */
.carruselProductos .promo {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(35, 31, 27, 0.08);
    border-radius: 17px;
    background: #ffffff;
    box-shadow:
        0 5px 16px rgba(35, 31, 27, 0.06),
        0 1px 2px rgba(35, 31, 27, 0.04);
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease;
}

.carruselProductos .promo:hover {
    transform: translateY(-4px);
    border-color: rgba(181, 32, 37, 0.16);
    box-shadow:
        0 15px 30px rgba(35, 31, 27, 0.12),
        0 3px 8px rgba(35, 31, 27, 0.06);
}

/* ---------------------------------------------------------
   Imagen: protagonista visual del producto
   --------------------------------------------------------- */
.carruselProductos .promoImg {
    width: calc(100% - 14px);
    margin: 7px 7px 0;
    border-radius: 13px;
    object-fit: cover;
    transform: translateZ(0);
    transition: transform 260ms ease;
}

.carruselProductos .promo:hover .promoImg {
    transform: scale(1.025);
}

/* ---------------------------------------------------------
   Información y jerarquía tipográfica
   --------------------------------------------------------- */
.carruselProductos .promoInfo {
    padding: 11px 12px 13px;
}

.carruselProductos .codigoPromo {
    display: inline-flex;
    width: max-content;
    margin-bottom: 5px;
    padding: 3px 7px;
    border: 1px solid rgba(35, 31, 27, 0.08);
    border-radius: 999px;
    background: #f6f4f1;
    color: #77716a;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.carruselProductos .promoInfo h3,
.carruselProductos .promo h3 {
    margin-bottom: 7px;
    color: #24211e;
    font-weight: 850;
    line-height: 1.18;
    letter-spacing: -0.018em;
}

.carruselProductos .precio,
.carruselProductos .precioProducto,
.carruselProductos .precioPromo {
    margin-top: auto;
    color: #a7191f;
    font-weight: 900;
    letter-spacing: -0.035em;
}

/* ---------------------------------------------------------
   Botón de compra: acción principal clara y táctil
   --------------------------------------------------------- */
.carruselProductos .botonCarrito,
.carruselProductos .promo button {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(126, 12, 18, 0.24);
    border-radius: 11px;
    background: linear-gradient(180deg, #c52128 0%, #a7191f 100%);
    color: #ffffff;
    font-weight: 850;
    letter-spacing: 0.005em;
    box-shadow:
        0 6px 13px rgba(167, 25, 31, 0.19),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition:
        transform 140ms ease,
        box-shadow 140ms ease,
        filter 140ms ease;
}

.carruselProductos .botonCarrito:hover,
.carruselProductos .promo button:hover {
    filter: brightness(1.04);
    transform: translateY(-1px);
    box-shadow:
        0 9px 18px rgba(167, 25, 31, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.carruselProductos .botonCarrito:active,
.carruselProductos .promo button:active {
    transform: translateY(1px) scale(0.985);
    box-shadow:
        0 3px 8px rgba(167, 25, 31, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

/* ---------------------------------------------------------
   Accesibilidad: reduce animaciones cuando el sistema lo pide
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .carruselProductos .promo,
    .carruselProductos .promoImg,
    .carruselProductos .botonCarrito,
    .carruselProductos .promo button {
        transition: none;
    }
}

/* ---------------------------------------------------------
   Ajustes para pantallas táctiles
   --------------------------------------------------------- */
@media (hover: none) {
    .carruselProductos .promo:hover,
    .carruselProductos .promo:hover .promoImg {
        transform: none;
    }
}


/* =========================================================
   RC8.2 — TARJETAS OSCURAS DEL CATÁLOGO
   Integra cada publicación con el fondo general oscuro y
   mejora el contraste sin modificar imágenes ni funcionalidad.
   ========================================================= */

/* ---------------------------------------------------------
   Superficie principal de las publicaciones
   --------------------------------------------------------- */
.carruselProductos .promo {
    border-color: rgba(255, 255, 255, 0.11);
    background:
        linear-gradient(180deg, #202020 0%, #171717 100%);
    box-shadow:
        0 9px 24px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.carruselProductos .promo:hover {
    border-color: rgba(222, 49, 56, 0.42);
    box-shadow:
        0 18px 38px rgba(0, 0, 0, 0.40),
        0 0 0 1px rgba(222, 49, 56, 0.09),
        inset 0 1px 0 rgba(255, 255, 255, 0.055);
}

/* ---------------------------------------------------------
   Imagen y separación visual
   --------------------------------------------------------- */
.carruselProductos .promoImg {
    border: 1px solid rgba(255, 255, 255, 0.10);
    background: #111111;
}

.carruselProductos .promoInfo {
    color: #f4f1ed;
}

/* ---------------------------------------------------------
   Código, nombre y descripción
   --------------------------------------------------------- */
.carruselProductos .codigoPromo {
    border-color: rgba(255, 255, 255, 0.10);
    background: rgba(255, 255, 255, 0.07);
    color: #bdb8b1;
}

.carruselProductos .promoInfo h3,
.carruselProductos .promo h3 {
    color: #ffffff;
}

.carruselProductos .descripcionPromo,
.carruselProductos .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
    color: #aaa49d;
}

/* ---------------------------------------------------------
   Precio y disponibilidad
   --------------------------------------------------------- */
.carruselProductos .precio,
.carruselProductos .precioProducto,
.carruselProductos .precioPromo {
    color: #ff4d55;
    text-shadow: 0 0 18px rgba(255, 77, 85, 0.10);
}

.carruselProductos .estadoDisponible {
    color: #61d98b;
}

.carruselProductos .estadoNoDisponible {
    color: #ff7a80;
}

/* ---------------------------------------------------------
   Estado sin disponibilidad
   --------------------------------------------------------- */
.carruselProductos .productoNoDisponible {
    background:
        linear-gradient(180deg, #1a1a1a 0%, #131313 100%);
    border-color: rgba(255, 255, 255, 0.07);
}

.carruselProductos .productoNoDisponible .promoImg {
    opacity: 0.58;
}

/* ---------------------------------------------------------
   Botón: mantiene identidad roja sobre superficie oscura
   --------------------------------------------------------- */
.carruselProductos .botonCarrito,
.carruselProductos .promo button {
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow:
        0 7px 15px rgba(0, 0, 0, 0.30),
        0 5px 16px rgba(167, 25, 31, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.20);
}

/* =========================================================
   RC8.7 — TARJETAS COMPACTAS + IDENTIDAD GRAFITO Y DORADO
   Reduce la altura visual del catálogo aproximadamente 20 %
   y redefine precio, botón y superficie sin alterar la lógica.
   ========================================================= */

/* ---------------------------------------------------------
   Tarjeta: superficie grafito compacta
   --------------------------------------------------------- */
.carruselProductos .promo {
    border-color: rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    background: linear-gradient(180deg, #2d3138 0%, #262a31 100%);
    box-shadow:
        0 8px 18px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.carruselProductos .promo:hover {
    border-color: rgba(245, 179, 1, 0.28);
    box-shadow:
        0 13px 26px rgba(0, 0, 0, 0.42),
        0 0 0 1px rgba(245, 179, 1, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

/* ---------------------------------------------------------
   Imagen: menor altura para una tarjeta 20 % más compacta
   --------------------------------------------------------- */
.carruselProductos .promoImg {
    width: calc(100% - 12px);
    height: 132px;
    margin: 6px 6px 0;
    border-radius: 11px;
    border-color: rgba(255, 255, 255, 0.08);
    background: #111315;
}

/* ---------------------------------------------------------
   Información: menos espacio vertical, misma legibilidad
   --------------------------------------------------------- */
.carruselProductos .promoInfo {
    padding: 8px 10px 10px;
}

.carruselProductos .codigoPromo {
    margin-bottom: 3px;
    padding: 2px 6px;
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.055);
    color: #aeb3ba;
    font-size: 8.5px;
}

.carruselProductos .promoInfo h3,
.carruselProductos .promo h3 {
    margin-top: 6px;
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 13.5px;
    line-height: 1.16;
}

.carruselProductos .descripcionPromo,
.carruselProductos .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
    margin: 2px 0 5px;
    color: #aeb3ba;
    font-size: 10.5px;
    line-height: 1.3;
}

/* ---------------------------------------------------------
   Precio dorado + disponibilidad verde existente
   --------------------------------------------------------- */
.carruselProductos .precio,
.carruselProductos .precioProducto,
.carruselProductos .precioPromo {
    margin-top: 3px;
    margin-bottom: 3px;
    color: #f5b301;
    font-size: 17px !important;
    text-shadow: 0 0 16px rgba(245, 179, 1, 0.10);
}

.carruselProductos .estadoDisponible {
    color: #61d98b;
}

/* ---------------------------------------------------------
   Botón grafito: rojo PromoCombo solamente en hover
   --------------------------------------------------------- */
.carruselProductos .botonCarrito,
.carruselProductos .promo button {
    min-height: 31px;
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 9px;
    background: linear-gradient(180deg, #353b46 0%, #252a33 100%);
    color: #ffffff;
    font-size: 10.5px;
    box-shadow:
        0 5px 12px rgba(0, 0, 0, 0.30),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.carruselProductos .botonCarrito:hover,
.carruselProductos .promo button:hover {
    border-color: rgba(222, 49, 56, 0.55);
    background: linear-gradient(180deg, #c52128 0%, #a7191f 100%);
    box-shadow:
        0 7px 16px rgba(167, 25, 31, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.17);
}

/* ---------------------------------------------------------
   Móvil: conserva comodidad táctil sin recuperar altura extra
   --------------------------------------------------------- */
@media (max-width: 700px) {
    .carruselProductos .promoImg {
        height: 118px;
    }

    .carruselProductos .promoInfo {
        padding: 7px 8px 9px;
    }

    .carruselProductos .promoInfo h3,
    .carruselProductos .promo h3 {
        font-size: 12px;
    }

    .carruselProductos .precio,
    .carruselProductos .precioProducto,
    .carruselProductos .precioPromo {
        font-size: 15.5px !important;
    }

    .carruselProductos .botonCarrito,
    .carruselProductos .promo button {
        min-height: 32px;
        font-size: 10px;
    }
}


/* =========================================================
   RC8.8 — TARJETAS UNIFORMES + IMAGEN 20 % MÁS PROTAGONISTA
   Mantiene la altura compacta de RC8.7, aumenta el ancho 10 %
   y unifica la identidad visual de códigos y promociones.
   ========================================================= */

/* ---------------------------------------------------------
   Dimensiones uniformes de tarjeta
   --------------------------------------------------------- */
.carruselProductos .promo {
    flex: 0 0 363px;
    width: 363px;
    min-width: 363px;
    height: 286px;
}

/* ---------------------------------------------------------
   Imagen 20 % más alta, sin aumentar la altura total
   --------------------------------------------------------- */
.carruselProductos .promoImg {
    height: 158px;
    flex: 0 0 158px;
}

/* ---------------------------------------------------------
   Contenido compacto para conservar la altura de la tarjeta
   --------------------------------------------------------- */
.carruselProductos .promoInfo {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 6px 10px 9px;
}

.carruselProductos .codigoPromo {
    align-self: flex-start;
    margin-bottom: 2px;
    padding: 2px 7px;
    border-color: rgba(245, 179, 1, 0.22);
    background: rgba(245, 179, 1, 0.09);
    color: #e8c968;
    font-weight: 700;
    letter-spacing: 0.035em;
}

.carruselProductos .promoInfo h3,
.carruselProductos .promo h3 {
    margin-top: 4px;
    margin-bottom: 2px;
}

.carruselProductos .descripcionPromo,
.carruselProductos .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
    display: -webkit-box;
    overflow: hidden;
    margin: 1px 0 3px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
}

.carruselProductos .precio,
.carruselProductos .precioProducto,
.carruselProductos .precioPromo {
    margin-top: 1px;
    margin-bottom: 1px;
}

.carruselProductos .estadoPromo {
    margin-top: 1px;
    margin-bottom: 3px;
}

.carruselProductos .botonCarrito,
.carruselProductos .promo button {
    min-height: 29px;
    margin-top: auto;
    padding-top: 5px;
    padding-bottom: 5px;
}

/* ---------------------------------------------------------
   Móvil: misma estética, ancho +10 % y altura controlada
   --------------------------------------------------------- */
@media (max-width: 760px) {
    .carruselProductos .promo {
        flex-basis: clamp(156px, 48.4vw, 198px);
        width: clamp(156px, 48.4vw, 198px);
        min-width: clamp(156px, 48.4vw, 198px);
        height: 242px;
    }

    .carruselProductos .promoImg {
        height: 142px;
        flex-basis: 142px;
    }

    .carruselProductos .promoInfo {
        padding: 5px 8px 7px;
    }

    .carruselProductos .codigoPromo {
        padding: 1px 5px;
        font-size: 7.8px;
    }

    .carruselProductos .descripcionPromo,
    .carruselProductos .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
        display: none;
    }

    .carruselProductos .botonCarrito,
    .carruselProductos .promo button {
        min-height: 30px;
    }
}


/* =========================================================
   RC8.9 — AJUSTE EXCLUSIVO DE PROPORCIÓN DE TARJETAS
   Aumenta 15 % la altura y 10 % el ancho respecto de RC8.8.
   No modifica colores, tipografías, imágenes ni componentes.
   ========================================================= */

/* ---------------------------------------------------------
   Escritorio: nueva proporción uniforme
   --------------------------------------------------------- */
.carruselProductos .promo {
    flex-basis: 399px;
    width: 399px;
    min-width: 399px;
    height: 329px;
}

/* ---------------------------------------------------------
   Móvil: misma variación proporcional
   --------------------------------------------------------- */
@media (max-width: 760px) {
    .carruselProductos .promo {
        flex-basis: clamp(172px, 53.2vw, 218px);
        width: clamp(172px, 53.2vw, 218px);
        min-width: clamp(172px, 53.2vw, 218px);
        height: 278px;
    }
}


/* =========================================================
   RC9.0 — SISTEMA PROFESIONAL DE TARJETAS UNIFORMES
   Unifica todas las publicaciones, evita recortes de imágenes
   y optimiza el catálogo móvil con una grilla de dos columnas.
   ========================================================= */

/* ---------------------------------------------------------
   Escritorio y tablet: una única medida para todo producto
   --------------------------------------------------------- */
.carruselProductos .promo {
    display: flex;
    flex: 0 0 284px;
    width: 284px;
    min-width: 284px;
    height: 326px;
    min-height: 326px;
    flex-direction: column;
}

/* ---------------------------------------------------------
   Marco fotográfico uniforme: muestra la comida completa
   --------------------------------------------------------- */
.carruselProductos .contenedorImagenProducto {
    position: relative;
    display: flex;
    flex: 0 0 166px;
    width: calc(100% - 12px);
    height: 166px;
    margin: 6px 6px 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 11px;
    background: #111315;
}

.carruselProductos .promoImg {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    object-fit: contain;
    object-position: center;
    transform: none;
}

.carruselProductos .promo:hover .promoImg {
    transform: none;
}

/* ---------------------------------------------------------
   Área informativa estable: todas terminan a la misma altura
   --------------------------------------------------------- */
.carruselProductos .promoInfo {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    padding: 8px 10px 10px;
}

.carruselProductos .promoInfo h3,
.carruselProductos .promo h3 {
    display: -webkit-box;
    min-height: 31px;
    margin: 4px 0 2px;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.carruselProductos .descripcionPromo,
.carruselProductos .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
    display: -webkit-box;
    min-height: 14px;
    margin: 1px 0 3px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
}

.carruselProductos .precio,
.carruselProductos .precioProducto,
.carruselProductos .precioPromo {
    margin: 1px 0;
}

.carruselProductos .estadoPromo {
    margin: 1px 0 4px;
}

.carruselProductos .botonCarrito,
.carruselProductos .promo button {
    min-height: 31px;
    margin-top: auto;
}

/* ---------------------------------------------------------
   Celular: grilla profesional de dos columnas
   Permite ver al menos tres publicaciones en una pantalla
   habitual, sin transformar las tarjetas en miniaturas.
   --------------------------------------------------------- */
@media (max-width: 760px) {
    .categoriaProductos {
        padding-right: 12px;
        padding-left: 12px;
    }

    .carruselProductos {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        width: 100%;
        padding: 3px 0 14px;
        overflow: visible;
        scroll-snap-type: none;
    }

    .carruselProductos .promo {
        width: 100%;
        min-width: 0;
        height: 246px;
        min-height: 246px;
        flex-basis: auto;
        scroll-snap-align: none;
    }

    .carruselProductos .contenedorImagenProducto {
        flex-basis: 112px;
        width: calc(100% - 10px);
        height: 112px;
        margin: 5px 5px 0;
        border-radius: 10px;
    }

    .carruselProductos .promoImg {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
    }

    .carruselProductos .promoInfo {
        padding: 6px 7px 7px;
    }

    .carruselProductos .codigoPromo {
        margin-bottom: 1px;
        padding: 1px 5px;
        font-size: 7.5px;
    }

    .carruselProductos .promoInfo h3,
    .carruselProductos .promo h3 {
        min-height: 28px;
        margin: 3px 0 1px;
        font-size: 11.5px;
        line-height: 1.18;
    }

    .carruselProductos .descripcionPromo,
    .carruselProductos .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
        display: none;
    }

    .carruselProductos .precio,
    .carruselProductos .precioProducto,
    .carruselProductos .precioPromo {
        margin: 0;
        font-size: 15px !important;
    }

    .carruselProductos .estadoPromo {
        margin: 0 0 3px;
        font-size: 8.5px;
    }

    .carruselProductos .botonCarrito,
    .carruselProductos .promo button {
        min-height: 30px;
        padding: 5px 4px;
        font-size: 9px;
        line-height: 1.1;
    }
}

/* ---------------------------------------------------------
   Teléfonos angostos: conserva dos columnas utilizables
   --------------------------------------------------------- */
@media (max-width: 360px) {
    .carruselProductos {
        gap: 8px;
    }

    .carruselProductos .promo {
        height: 238px;
        min-height: 238px;
    }

    .carruselProductos .contenedorImagenProducto {
        flex-basis: 104px;
        height: 104px;
    }
}

/* =========================================================
   RC10.0 — CATÁLOGO UNIFICADO PROFESIONAL
   Todas las categorías comparten exactamente la misma tarjeta.
   Refuerza la acción de compra y muestra cada imagen completa.
   ========================================================= */

/* ---------------------------------------------------------
   Grilla/carrusel: una única regla para todas las categorías
   --------------------------------------------------------- */
.categoriaProductos .carruselProductos {
    align-items: stretch;
}

.categoriaProductos .carruselProductos > .promo {
    display: flex;
    flex: 0 0 310px;
    width: 310px;
    min-width: 310px;
    height: 382px;
    min-height: 382px;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 15px;
    background: #2d3138;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.30);
}

/* ---------------------------------------------------------
   Imagen: marco idéntico y contenido completo, sin recortes
   --------------------------------------------------------- */
.categoriaProductos .carruselProductos > .promo .contenedorImagenProducto {
    position: relative;
    display: flex;
    flex: 0 0 184px;
    width: calc(100% - 14px);
    height: 184px;
    margin: 7px 7px 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 11px;
    background: #111315;
}

.categoriaProductos .carruselProductos > .promo .promoImg {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 4px;
    border: 0;
    border-radius: 0;
    object-fit: contain;
    object-position: center;
    transform: none;
}

.categoriaProductos .carruselProductos > .promo:hover .promoImg {
    transform: none;
}

/* ---------------------------------------------------------
   Información: distribución estable para cualquier producto
   --------------------------------------------------------- */
.categoriaProductos .carruselProductos > .promo .promoInfo {
    display: grid;
    flex: 1 1 auto;
    min-height: 0;
    grid-template-rows: auto minmax(34px, auto) minmax(30px, auto) auto auto 42px;
    gap: 4px;
    padding: 9px 11px 11px;
}

.categoriaProductos .carruselProductos > .promo .codigoPromo {
    align-self: start;
    justify-self: start;
    margin: 0;
    padding: 2px 7px;
    border: 1px solid rgba(245, 179, 1, 0.28);
    border-radius: 999px;
    background: rgba(245, 179, 1, 0.10);
    color: #e8c968;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.categoriaProductos .carruselProductos > .promo h3,
.categoriaProductos .carruselProductos > .promo .promoInfo h3 {
    display: -webkit-box;
    min-height: 34px;
    margin: 0;
    overflow: hidden;
    color: #ffffff;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: -0.01em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.categoriaProductos .carruselProductos > .promo .descripcionPromo,
.categoriaProductos .carruselProductos > .promo .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
    display: -webkit-box;
    min-height: 30px;
    margin: 0;
    overflow: hidden;
    color: #c6c9ce;
    font-size: 10.5px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.categoriaProductos .carruselProductos > .promo .precio,
.categoriaProductos .carruselProductos > .promo .precioProducto,
.categoriaProductos .carruselProductos > .promo .precioPromo {
    align-self: end;
    margin: 0;
    color: #f5b301;
    font-size: 20px !important;
    font-weight: 900;
    line-height: 1.05;
}

.categoriaProductos .carruselProductos > .promo .estadoPromo {
    align-self: center;
    margin: 0;
    color: #36df7f;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

/* ---------------------------------------------------------
   Botón: visible, táctil y uniforme en todas las categorías
   --------------------------------------------------------- */
.categoriaProductos .carruselProductos > .promo .botonCarrito,
.categoriaProductos .carruselProductos > .promo button {
    display: inline-flex;
    width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 9px 10px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 9px;
    background: #1c2026;
    color: #ffffff;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.15;
    text-align: center;
    cursor: pointer;
}

.categoriaProductos .carruselProductos > .promo .botonCarrito:hover,
.categoriaProductos .carruselProductos > .promo button:hover {
    border-color: #b51f28;
    background: #b51f28;
    color: #ffffff;
}

/* ---------------------------------------------------------
   Móvil: dos columnas cómodas y legibles, sin miniaturizar
   --------------------------------------------------------- */
@media (max-width: 760px) {
    .categoriaProductos {
        padding-right: 10px;
        padding-left: 10px;
    }

    .categoriaProductos .carruselProductos {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        width: 100%;
        padding: 4px 0 15px;
        overflow: visible;
        scroll-snap-type: none;
    }

    .categoriaProductos .carruselProductos > .promo {
        width: 100%;
        min-width: 0;
        height: 300px;
        min-height: 300px;
        flex-basis: auto;
        scroll-snap-align: none;
        border-radius: 13px;
    }

    .categoriaProductos .carruselProductos > .promo .contenedorImagenProducto {
        flex-basis: 132px;
        width: calc(100% - 10px);
        height: 132px;
        margin: 5px 5px 0;
        border-radius: 9px;
    }

    .categoriaProductos .carruselProductos > .promo .promoImg {
        padding: 3px;
    }

    .categoriaProductos .carruselProductos > .promo .promoInfo {
        grid-template-rows: auto minmax(30px, auto) auto auto 38px;
        gap: 3px;
        padding: 7px 8px 8px;
    }

    .categoriaProductos .carruselProductos > .promo .codigoPromo {
        padding: 2px 5px;
        font-size: 7.5px;
    }

    .categoriaProductos .carruselProductos > .promo h3,
    .categoriaProductos .carruselProductos > .promo .promoInfo h3 {
        min-height: 30px;
        font-size: 11.5px;
        line-height: 1.22;
    }

    .categoriaProductos .carruselProductos > .promo .descripcionPromo,
    .categoriaProductos .carruselProductos > .promo .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo) {
        display: none;
    }

    .categoriaProductos .carruselProductos > .promo .precio,
    .categoriaProductos .carruselProductos > .promo .precioProducto,
    .categoriaProductos .carruselProductos > .promo .precioPromo {
        font-size: 16px !important;
    }

    .categoriaProductos .carruselProductos > .promo .estadoPromo {
        font-size: 9.5px;
    }

    .categoriaProductos .carruselProductos > .promo .botonCarrito,
    .categoriaProductos .carruselProductos > .promo button {
        min-height: 38px;
        padding: 7px 5px;
        border-radius: 8px;
        font-size: 9.5px;
        line-height: 1.15;
    }
}

@media (max-width: 360px) {
    .categoriaProductos .carruselProductos {
        gap: 8px;
    }

    .categoriaProductos .carruselProductos > .promo {
        height: 288px;
        min-height: 288px;
    }

    .categoriaProductos .carruselProductos > .promo .contenedorImagenProducto {
        flex-basis: 122px;
        height: 122px;
    }
}

/* =========================================================
   RC10.1 — PULIDO TOTAL DE TARJETAS Y ACCIONES
   Unifica todas las categorías, alinea las acciones al pie y
   usa botones grises que cambian a verde al interactuar.
   ========================================================= */

/* ---------------------------------------------------------
   Tarjeta universal: promociones y productos normales
   --------------------------------------------------------- */
body .carruselProductos > .promo {
    display: flex !important;
    flex: 0 0 310px !important;
    width: 310px !important;
    min-width: 310px !important;
    height: 382px !important;
    min-height: 382px !important;
    max-height: 382px !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border-radius: 15px !important;
    background: #2d3138 !important;
}

/* El área de imagen es idéntica en cada categoría. */
body .carruselProductos > .promo .contenedorImagenProducto {
    position: relative !important;
    display: flex !important;
    flex: 0 0 184px !important;
    width: calc(100% - 14px) !important;
    height: 184px !important;
    min-height: 184px !important;
    margin: 7px 7px 0 !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    border-radius: 11px !important;
    background: #111315 !important;
}

body .carruselProductos > .promo .promoImg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 4px !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
}

/* ---------------------------------------------------------
   Contenido flexible: el botón siempre queda alineado al pie
   --------------------------------------------------------- */
body .carruselProductos > .promo .promoInfo {
    display: flex !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 9px 11px 11px !important;
    flex-direction: column !important;
    gap: 4px !important;
}

body .carruselProductos > .promo .codigoPromo {
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    margin: 0 !important;
}

body .carruselProductos > .promo h3,
body .carruselProductos > .promo .promoInfo h3 {
    flex: 0 0 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
}

body .carruselProductos > .promo .descripcionPromo,
body .carruselProductos > .promo .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo):not(.estadoPromo) {
    flex: 0 0 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
}

body .carruselProductos > .promo .precio,
body .carruselProductos > .promo .precioProducto,
body .carruselProductos > .promo .precioPromo {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

body .carruselProductos > .promo .estadoPromo {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

/* ---------------------------------------------------------
   Acción universal: gris sutil y verde al interactuar
   --------------------------------------------------------- */
body .carruselProductos > .promo .botonCarrito,
body .carruselProductos > .promo button {
    display: inline-flex !important;
    flex: 0 0 42px !important;
    width: 100% !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: auto 0 0 !important;
    padding: 9px 10px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 9px !important;
    background: #3a3f47 !important;
    color: #f4f5f7 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    line-height: 1.15 !important;
    transition: background-color 160ms ease, border-color 160ms ease,
                color 160ms ease, transform 120ms ease !important;
}

body .carruselProductos > .promo .botonCarrito:hover,
body .carruselProductos > .promo .botonCarrito:focus-visible,
body .carruselProductos > .promo .botonCarrito:active,
body .carruselProductos > .promo button:hover,
body .carruselProductos > .promo button:focus-visible,
body .carruselProductos > .promo button:active {
    border-color: #25d36f !important;
    background: #25d36f !important;
    color: #07150d !important;
}

body .carruselProductos > .promo .botonCarrito:active,
body .carruselProductos > .promo button:active {
    transform: translateY(1px) !important;
}

/* ---------------------------------------------------------
   Móvil: dos columnas uniformes y botones siempre visibles
   --------------------------------------------------------- */
@media (max-width: 760px) {
    body .carruselProductos > .promo {
        flex: none !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 310px !important;
        min-height: 310px !important;
        max-height: 310px !important;
    }

    body .carruselProductos > .promo .contenedorImagenProducto {
        flex-basis: 132px !important;
        width: calc(100% - 10px) !important;
        height: 132px !important;
        min-height: 132px !important;
        margin: 5px 5px 0 !important;
    }

    body .carruselProductos > .promo .promoInfo {
        padding: 7px 8px 8px !important;
        gap: 3px !important;
    }

    body .carruselProductos > .promo h3,
    body .carruselProductos > .promo .promoInfo h3 {
        flex-basis: 30px !important;
        min-height: 30px !important;
        max-height: 30px !important;
    }

    body .carruselProductos > .promo .descripcionPromo,
    body .carruselProductos > .promo .promoInfo > p:not(.precio):not(.precioProducto):not(.precioPromo):not(.estadoPromo) {
        display: none !important;
        flex-basis: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;
    }

    body .carruselProductos > .promo .botonCarrito,
    body .carruselProductos > .promo button {
        flex-basis: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
        padding: 7px 5px !important;
        font-size: 9.5px !important;
    }
}

@media (max-width: 360px) {
    body .carruselProductos > .promo {
        height: 298px !important;
        min-height: 298px !important;
        max-height: 298px !important;
    }

    body .carruselProductos > .promo .contenedorImagenProducto {
        flex-basis: 122px !important;
        height: 122px !important;
        min-height: 122px !important;
    }
}


/* =========================================================
   RC10.2 — NORMALIZACIÓN DEFINITIVA DE TARJETAS
   Igualdad real entre carruseles y grillas, precio/estado/CTA
   alineados y un único indicador luminoso del estado del local.
   ========================================================= */

/* Todas las categorías comparten exactamente el mismo componente. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
    display: flex !important;
    flex: 0 0 310px !important;
    width: 310px !important;
    min-width: 310px !important;
    height: 382px !important;
    min-height: 382px !important;
    max-height: 382px !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border-radius: 15px !important;
    background: #2d3138 !important;
}

/* Las grillas (como Fainá) dejan de usar tarjetas gigantes. */
body .categoriaProductos .grillaProductos {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, 310px) !important;
    gap: 18px !important;
    justify-content: center !important;
    align-items: stretch !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
    position: relative !important;
    display: flex !important;
    flex: 0 0 184px !important;
    width: calc(100% - 14px) !important;
    height: 184px !important;
    min-height: 184px !important;
    margin: 7px 7px 0 !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    border-radius: 11px !important;
    background: #111315 !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoImg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 4px !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
}

/* Estructura interna con zonas fijas: nada se desplaza por el texto. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
    display: grid !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 9px 11px 11px !important;
    grid-template-rows: 20px 34px 30px 30px 20px 42px !important;
    gap: 4px !important;
    align-content: stretch !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .codigoPromo {
    align-self: center !important;
    justify-self: start !important;
    margin: 0 !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo {
    display: -webkit-box !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
    display: flex !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    overflow: hidden !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioAnterior,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioPromo,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioProducto,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precio {
    margin: 0 !important;
    line-height: 1.05 !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo {
    display: flex !important;
    min-height: 20px !important;
    margin: 0 !important;
    align-items: center !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
    display: inline-flex !important;
    width: 100% !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 9px 10px !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: end !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 9px !important;
    background: #3a3f47 !important;
    color: #f4f5f7 !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito:hover,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito:focus-visible,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito:active,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button:hover,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button:focus-visible,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button:active {
    border-color: #25d36f !important;
    background: #25d36f !important;
    color: #07150d !important;
}

/* Un solo punto de estado, más visible y con brillo contextual. */
.estadoLocalMenu .puntoEstadoLocal {
    width: 13px !important;
    min-width: 13px !important;
    height: 13px !important;
    border: 0 !important;
    border-radius: 50% !important;
}

.estadoLocalMenu.estadoAbierto .puntoEstadoLocal {
    background: #2eea79 !important;
    box-shadow: 0 0 0 4px rgba(46, 234, 121, 0.18), 0 0 14px 4px rgba(46, 234, 121, 0.62) !important;
}

.estadoLocalMenu.estadoPorCerrar .puntoEstadoLocal {
    background: #ffb020 !important;
    box-shadow: 0 0 0 4px rgba(255, 176, 32, 0.18), 0 0 14px 4px rgba(255, 176, 32, 0.58) !important;
}

.estadoLocalMenu.estadoCerrado .puntoEstadoLocal {
    background: #ff3344 !important;
    box-shadow: 0 0 0 4px rgba(255, 51, 68, 0.18), 0 0 14px 4px rgba(255, 51, 68, 0.62) !important;
}

@media (max-width: 760px) {
    body .categoriaProductos .grillaProductos {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 100% !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        flex: none !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 310px !important;
        min-height: 310px !important;
        max-height: 310px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex-basis: 132px !important;
        width: calc(100% - 10px) !important;
        height: 132px !important;
        min-height: 132px !important;
        margin: 5px 5px 0 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        padding: 7px 8px 8px !important;
        grid-template-rows: 16px 30px 0 25px 18px 40px !important;
        gap: 3px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo {
        display: none !important;
        min-height: 0 !important;
        max-height: 0 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
        min-height: 25px !important;
        max-height: 25px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
        min-height: 40px !important;
        max-height: 40px !important;
    }
}

@media (max-width: 360px) {
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 298px !important;
        min-height: 298px !important;
        max-height: 298px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex-basis: 122px !important;
        height: 122px !important;
        min-height: 122px !important;
    }
}


/* =========================================================
   RC10.3 — ALINEACIÓN FINAL DEL CATÁLOGO
   Corrige desbordes, centra precios/estados/CTA y normaliza
   el indicador ABIERTO / CERRADO sin alterar funcionalidades.
   ========================================================= */

/* Evita que padding y bordes alteren las medidas declaradas. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo *,
.estadoLocalMenu,
.estadoLocalMenu * {
    box-sizing: border-box !important;
}

/* Tarjeta uniforme: el contenido nunca desborda por debajo. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
    height: 392px !important;
    min-height: 392px !important;
    max-height: 392px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
    display: grid !important;
    flex: 1 1 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 8px 11px 10px !important;
    grid-template-rows: 18px 32px 27px 28px 19px 40px !important;
    gap: 3px !important;
    align-content: stretch !important;
    overflow: hidden !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .codigoPromo,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
    width: 100% !important;
    margin: 0 !important;
}

/* Precio siempre en la misma zona y alineado a la izquierda. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
    display: flex !important;
    min-height: 28px !important;
    max-height: 28px !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    overflow: hidden !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioAnterior,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioPromo,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioProducto,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precio {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-align: left !important;
}

/* Disponibilidad y botón comparten la misma línea base en todo el sitio. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo {
    display: flex !important;
    min-height: 19px !important;
    max-height: 19px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: hidden !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
    display: inline-flex !important;
    min-height: 40px !important;
    max-height: 40px !important;
    padding: 0 10px !important;
    align-self: stretch !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    overflow: hidden !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito > *,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button > * {
    align-self: center !important;
}

/* Badge del estado del local: fondo, punto y texto centrados como una unidad. */
.estadoLocalMenu {
    position: static !important;
    display: grid !important;
    grid-template-columns: 15px minmax(0, 1fr) !important;
    width: auto !important;
    min-width: 190px !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 7px 12px !important;
    gap: 10px !important;
    align-items: center !important;
    justify-content: start !important;
    transform: none !important;
    overflow: visible !important;
}

.estadoLocalMenu .puntoEstadoLocal {
    position: static !important;
    display: block !important;
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    justify-self: center !important;
    transform: none !important;
}

.estadoLocalMenu .textoEstadoLocal {
    display: flex !important;
    min-width: 0 !important;
    margin: 0 !important;
    align-items: flex-start !important;
    justify-content: center !important;
    line-height: 1.1 !important;
}

.estadoLocalMenu .textoEstadoLocal strong,
.estadoLocalMenu .textoEstadoLocal small {
    width: 100% !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
}

@media (max-width: 760px) {
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 314px !important;
        min-height: 314px !important;
        max-height: 314px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        padding: 6px 8px 8px !important;
        grid-template-rows: 15px 28px 0 24px 17px 38px !important;
        gap: 3px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
        min-height: 24px !important;
        max-height: 24px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo {
        min-height: 17px !important;
        max-height: 17px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
        min-height: 38px !important;
        max-height: 38px !important;
        padding: 0 6px !important;
    }

    .estadoLocalMenu {
        min-width: 160px !important;
        min-height: 44px !important;
        padding: 6px 9px !important;
        grid-template-columns: 13px minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    .estadoLocalMenu .puntoEstadoLocal {
        width: 13px !important;
        min-width: 13px !important;
        height: 13px !important;
    }
}

@media (max-width: 360px) {
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 302px !important;
        min-height: 302px !important;
        max-height: 302px !important;
    }
}

/* =========================================================
   RC10.4 — PULIDO VISUAL FINAL
   Unifica el indicador de estado en un solo punto luminoso,
   separa mejor el nombre del producto y oscurece sutilmente
   todas las tarjetas sin alterar medidas ni funcionalidad.
   ========================================================= */

/* Tarjetas: gris grafito más profundo y uniforme. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
    background: #252a31 !important;
    border-color: rgba(255, 255, 255, 0.11) !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
    background: #252a31 !important;
}

/* El nombre respira debajo de la etiqueta PROMO / PIZZA / etc. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3 {
    padding-top: 3px !important;
    align-self: start !important;
}

/* Un único punto real: sin aro sólido, solo halo difuso. */
.estadoLocalMenu .puntoEstadoLocal {
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.estadoLocalMenu.estadoAbierto .puntoEstadoLocal {
    background: #2eea79 !important;
    box-shadow:
        0 0 8px 3px rgba(46, 234, 121, 0.62),
        0 0 18px 6px rgba(46, 234, 121, 0.28) !important;
}

.estadoLocalMenu.estadoPorCerrar .puntoEstadoLocal {
    background: #ffb020 !important;
    box-shadow:
        0 0 8px 3px rgba(255, 176, 32, 0.60),
        0 0 18px 6px rgba(255, 176, 32, 0.26) !important;
}

.estadoLocalMenu.estadoCerrado .puntoEstadoLocal {
    background: #ff3344 !important;
    box-shadow:
        0 0 8px 3px rgba(255, 51, 68, 0.62),
        0 0 18px 6px rgba(255, 51, 68, 0.28) !important;
}

@media (max-width: 760px) {
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3 {
        padding-top: 2px !important;
    }

    .estadoLocalMenu .puntoEstadoLocal {
        width: 13px !important;
        min-width: 13px !important;
        height: 13px !important;
    }
}

/* =========================================================
   RC10.5 — CARRUSELES Y ESPACIADO DE NOMBRES
   Mantiene todos los carruseles en una sola fila, elimina
   saltos verticales y separa uniformemente etiqueta y nombre.
   ========================================================= */

/* Todos los carruseles trabajan en una sola línea horizontal. */
body .categoriaProductos > .carruselProductos {
    display: flex !important;
    flex-flow: row nowrap !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 392px !important;
    height: 392px !important;
    max-height: 392px !important;
    gap: 18px !important;
    align-items: stretch !important;
    align-content: stretch !important;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 0 10px !important;
    scroll-snap-type: x proximity !important;
}

/* Ninguna tarjeta puede saltar a una segunda fila del carrusel. */
body .categoriaProductos > .carruselProductos > .promo {
    flex: 0 0 310px !important;
    width: 310px !important;
    min-width: 310px !important;
    max-width: 310px !important;
    height: 382px !important;
    min-height: 382px !important;
    max-height: 382px !important;
    scroll-snap-align: start !important;
}

/* Badge de categoría uniforme y nombre separado visualmente. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .codigoPromo {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: 18px !important;
    min-height: 18px !important;
    max-height: 18px !important;
    padding: 0 8px !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
    grid-template-rows: 18px 36px 27px 28px 19px 40px !important;
    row-gap: 4px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
    padding-top: 6px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    align-self: start !important;
}

@media (max-width: 760px) {
    body .categoriaProductos > .carruselProductos {
        min-height: 314px !important;
        height: 314px !important;
        max-height: 314px !important;
        gap: 10px !important;
        padding-bottom: 6px !important;
    }

    body .categoriaProductos > .carruselProductos > .promo {
        flex: 0 0 calc((100vw - 30px) / 2) !important;
        width: calc((100vw - 30px) / 2) !important;
        min-width: calc((100vw - 30px) / 2) !important;
        max-width: calc((100vw - 30px) / 2) !important;
        height: 308px !important;
        min-height: 308px !important;
        max-height: 308px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        grid-template-rows: 15px 31px 0 24px 17px 38px !important;
        row-gap: 3px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .codigoPromo {
        height: 15px !important;
        min-height: 15px !important;
        max-height: 15px !important;
        padding: 0 6px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        padding-top: 4px !important;
        min-height: 31px !important;
        max-height: 31px !important;
    }
}

@media (max-width: 360px) {
    body .categoriaProductos > .carruselProductos {
        min-height: 302px !important;
        height: 302px !important;
        max-height: 302px !important;
    }

    body .categoriaProductos > .carruselProductos > .promo {
        height: 296px !important;
        min-height: 296px !important;
        max-height: 296px !important;
    }
}


/* =========================================================
   RC10.6 — FLUIDEZ, PROPORCIÓN Y ESTADO VISUAL
   - Carruseles con desplazamiento suave y tacto natural.
   - Todas las tarjetas comparten dimensiones y zonas fijas.
   - Fotos ligeramente más grandes, sin recortes.
   - CTA más cómodo y alineado en todas las categorías.
   - Un solo punto luminoso para ABIERTO / CERRADO.
   ========================================================= */

/* Movimiento natural sin saltos bruscos del scroll-snap. */
body .categoriaProductos > .carruselProductos {
    min-height: 424px !important;
    height: 424px !important;
    max-height: 424px !important;
    scroll-behavior: auto !important;
    scroll-snap-type: x proximity !important;
    overscroll-behavior-inline: contain !important;
    -webkit-overflow-scrolling: touch !important;
}

body .categoriaProductos > .carruselProductos.arrastrando {
    scroll-snap-type: none !important;
    cursor: grabbing !important;
}

/* La misma tarjeta base se aplica a carruseles y grillas. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
    height: 414px !important;
    min-height: 414px !important;
    max-height: 414px !important;
}

body .categoriaProductos > .carruselProductos > .promo {
    flex: 0 0 310px !important;
    width: 310px !important;
    min-width: 310px !important;
    max-width: 310px !important;
}

/* Foto más visible, completa y centrada. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
    flex: 0 0 204px !important;
    height: 204px !important;
    min-height: 204px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoImg {
    padding: 2px !important;
    object-fit: contain !important;
    object-position: center !important;
}

/* Zonas internas fijas: etiqueta, nombre, descripción, precio,
   disponibilidad y CTA quedan alineados en todas las tarjetas. */
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
    padding: 8px 11px 11px !important;
    grid-template-rows: 18px 38px 27px 29px 19px 44px !important;
    row-gap: 3px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
    min-height: 38px !important;
    max-height: 38px !important;
    padding-top: 7px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
    min-height: 29px !important;
    max-height: 29px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo {
    min-height: 19px !important;
    max-height: 19px !important;
}

body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 14px !important;
    line-height: 1.15 !important;
}

/* El indicador visual es exclusivamente este span; cualquier emoji
   persistido en la configuración es retirado también desde JavaScript. */
.estadoLocalMenu {
    grid-template-columns: 16px minmax(0, 1fr) !important;
}

.estadoLocalMenu .puntoEstadoLocal {
    position: relative !important;
    display: block !important;
    width: 15px !important;
    min-width: 15px !important;
    height: 15px !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.estadoLocalMenu .puntoEstadoLocal::before,
.estadoLocalMenu .puntoEstadoLocal::after {
    content: none !important;
    display: none !important;
}

.estadoLocalMenu.estadoAbierto .puntoEstadoLocal {
    background: #2eea79 !important;
    box-shadow:
        0 0 9px 3px rgba(46, 234, 121, 0.72),
        0 0 21px 7px rgba(46, 234, 121, 0.30) !important;
}

.estadoLocalMenu.estadoPorCerrar .puntoEstadoLocal {
    background: #ffb020 !important;
    box-shadow:
        0 0 9px 3px rgba(255, 176, 32, 0.70),
        0 0 21px 7px rgba(255, 176, 32, 0.28) !important;
}

.estadoLocalMenu.estadoCerrado .puntoEstadoLocal {
    background: #ff3344 !important;
    box-shadow:
        0 0 9px 3px rgba(255, 51, 68, 0.72),
        0 0 21px 7px rgba(255, 51, 68, 0.30) !important;
}

@media (max-width: 760px) {
    body .categoriaProductos > .carruselProductos {
        min-height: 336px !important;
        height: 336px !important;
        max-height: 336px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 330px !important;
        min-height: 330px !important;
        max-height: 330px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex-basis: 144px !important;
        height: 144px !important;
        min-height: 144px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        padding: 6px 8px 8px !important;
        grid-template-rows: 15px 32px 0 25px 17px 42px !important;
        row-gap: 3px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        min-height: 32px !important;
        max-height: 32px !important;
        padding-top: 5px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
        min-height: 42px !important;
        max-height: 42px !important;
        padding: 0 8px !important;
    }

    .estadoLocalMenu {
        grid-template-columns: 14px minmax(0, 1fr) !important;
    }

    .estadoLocalMenu .puntoEstadoLocal {
        width: 14px !important;
        min-width: 14px !important;
        height: 14px !important;
    }
}

@media (max-width: 360px) {
    body .categoriaProductos > .carruselProductos {
        min-height: 326px !important;
        height: 326px !important;
        max-height: 326px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 320px !important;
        min-height: 320px !important;
        max-height: 320px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex-basis: 136px !important;
        height: 136px !important;
        min-height: 136px !important;
    }
}


/* ==========================================================
   RC10.7 - UBICACIÓN Y FOOTER PROFESIONAL
   ========================================================== */

.seccionUbicacion {
    width: min(1180px, calc(100% - 32px));
    margin: 72px auto 0;
    scroll-margin-top: 150px;
}

.ubicacionContenedor {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr);
    overflow: hidden;
    min-height: 390px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 24px;
    background: #17191d;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
}

.ubicacionInformacion {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(30px, 5vw, 58px);
}

.ubicacionEyebrow {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 8px;
    margin-bottom: 12px;
    color: #f5b301;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.seccionUbicacion h2 {
    margin: 0 0 22px;
    color: #ffffff;
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1.02;
}

.ubicacionDireccion {
    display: grid;
    gap: 7px;
    margin: 0 0 26px;
    color: #ffffff;
    font-style: normal;
}

.ubicacionDireccion strong {
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.ubicacionDireccion span {
    color: #b9bec8;
    line-height: 1.5;
}

.ubicacionDatos {
    display: grid;
    gap: 12px;
    margin-bottom: 28px;
}

.ubicacionDato {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 13px 15px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
    color: #ffffff;
    text-decoration: none;
}

.ubicacionDatoIcono {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    background: rgba(225, 0, 28, 0.14);
    font-size: 1.2rem;
}

.ubicacionDato span:last-child {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.ubicacionDato small {
    color: #9298a3;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ubicacionDato strong {
    overflow-wrap: anywhere;
    font-size: 0.94rem;
}

.ubicacionAcciones {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.botonUbicacion {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.botonUbicacion:hover,
.botonUbicacion:focus-visible {
    transform: translateY(-2px);
}

.botonUbicacionPrimario {
    background: #e1001c;
    color: #ffffff;
}

.botonUbicacionPrimario:hover,
.botonUbicacionPrimario:focus-visible {
    background: #f01632;
}

.botonUbicacionSecundario {
    border-color: rgba(255, 255, 255, 0.16);
    background: #252932;
    color: #ffffff;
}

.botonUbicacionSecundario:hover,
.botonUbicacionSecundario:focus-visible {
    border-color: rgba(255, 255, 255, 0.3);
    background: #303540;
}

.ubicacionMapa {
    position: relative;
    min-height: 390px;
    background: #0f1114;
}

.ubicacionMapa iframe {
    width: 100%;
    height: 100%;
    min-height: 390px;
    border: 0;
    filter: grayscale(0.18) contrast(1.04) brightness(0.88);
    pointer-events: none;
}

.ubicacionMapaEnlace {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 22px;
    color: #ffffff;
    text-decoration: none;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.58), transparent 42%);
}

.ubicacionMapaEnlace span {
    padding: 11px 17px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    background: rgba(17, 19, 22, 0.9);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.32);
    font-size: 0.86rem;
    font-weight: 800;
}

.footerPrincipal {
    width: min(1180px, calc(100% - 32px));
    margin: 22px auto 0;
    padding: 27px 30px 22px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 18px 18px 0 0;
    background: #111316;
    color: #d7dbe2;
    text-align: left;
}

.footerPrincipalContenido {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
}

.footerPrincipal h3 {
    margin: 0 0 7px;
    color: #ffffff;
}

.footerPrincipal p {
    margin: 5px 0;
    color: #aeb4be;
}

.footerPrincipalDatos {
    max-width: 530px;
    text-align: right;
}

.footerPrincipal .copyright {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    color: #7f8691;
    font-size: 0.78rem;
    text-align: center;
}

@media (max-width: 820px) {
    .seccionUbicacion {
        width: min(100% - 20px, 620px);
        margin-top: 48px;
        scroll-margin-top: 125px;
    }

    .ubicacionContenedor {
        grid-template-columns: 1fr;
        min-height: 0;
        border-radius: 19px;
    }

    .ubicacionInformacion {
        padding: 30px 22px;
    }

    .ubicacionMapa,
    .ubicacionMapa iframe {
        min-height: 310px;
    }

    .ubicacionAcciones,
    .botonUbicacion {
        width: 100%;
    }

    .footerPrincipal {
        width: min(100% - 20px, 620px);
        padding: 24px 21px 20px;
    }

    .footerPrincipalContenido {
        flex-direction: column;
        gap: 18px;
    }

    .footerPrincipalDatos {
        text-align: left;
    }
}

@media (max-width: 420px) {
    .ubicacionInformacion {
        padding: 26px 17px;
    }

    .ubicacionDato {
        padding: 12px;
    }

    .ubicacionMapa,
    .ubicacionMapa iframe {
        min-height: 270px;
    }
}


/* =====================================================
   RC10.8 — AVISO DE TRANSFERENCIA
   Modal accesible y notorio después de confirmar el pedido.
===================================================== */
.avisoTransferenciaOverlay {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(0, 0, 0, 0.78);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
}

.avisoTransferenciaOverlay.visible {
    opacity: 1;
    visibility: visible;
}

.avisoTransferenciaTarjeta {
    width: min(100%, 510px);
    padding: 30px 28px 26px;
    border: 2px solid #f4b400;
    border-radius: 20px;
    background: #17191d;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.58), 0 0 30px rgba(244, 180, 0, 0.18);
    color: #ffffff;
    text-align: center;
    transform: translateY(12px) scale(0.98);
    transition: transform 180ms ease;
}

.avisoTransferenciaOverlay.visible .avisoTransferenciaTarjeta {
    transform: translateY(0) scale(1);
}

.avisoTransferenciaIcono {
    display: block;
    margin-bottom: 10px;
    font-size: 44px;
    line-height: 1;
}

.avisoTransferenciaTarjeta h2 {
    margin: 0 0 12px;
    color: #f4b400;
    font-size: clamp(1.35rem, 3vw, 1.8rem);
}

.avisoTransferenciaTarjeta p {
    margin: 0 auto 24px;
    max-width: 420px;
    color: #f4f4f4;
    font-size: clamp(1.05rem, 2.5vw, 1.22rem);
    font-weight: 700;
    line-height: 1.5;
}

.avisoTransferenciaTarjeta button {
    width: 100%;
    min-height: 50px;
    border: 0;
    border-radius: 12px;
    background: #e00019;
    color: #ffffff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: transform 160ms ease, filter 160ms ease;
}

.avisoTransferenciaTarjeta button:hover {
    filter: brightness(1.1);
    transform: translateY(-1px);
}

.avisoTransferenciaTarjeta button:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

@media (max-width: 520px) {
    .avisoTransferenciaOverlay {
        padding: 16px;
    }

    .avisoTransferenciaTarjeta {
        padding: 26px 19px 20px;
        border-radius: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .avisoTransferenciaOverlay,
    .avisoTransferenciaTarjeta,
    .avisoTransferenciaTarjeta button {
        transition: none;
    }
}


/* =========================================================
   RC10.9 — CARRITO DE BEBIDAS Y PULIDO DEL ENCABEZADO
   - Carrusel compacto de bebidas dentro del carrito.
   - Selección de sabor para aguas saborizadas.
   - La sugerencia desaparece cuando ya hay una bebida.
   - Estado y carrito alineados sin rediseñarlos.
   - Logo integrado sin el rectángulo oscuro visible.
   ========================================================= */

/* Sugerencia compacta de bebidas */
.sugerenciaBebidaCarrito {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
    overflow: hidden;
}

.bebidaSugeridaContenido {
    display: grid !important;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 11px !important;
    align-items: center;
}

.bebidaSugeridaContenido img {
    width: 68px;
    height: 68px;
    padding: 3px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    object-fit: contain;
}

.bebidaSugeridaDatos {
    display: grid !important;
    min-width: 0;
    gap: 4px !important;
}

.selectorSaborBebida {
    display: grid;
    gap: 4px;
    margin-top: 3px;
}

.selectorSaborBebida span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    font-weight: 700;
}

.selectorSaborBebida select {
    width: 100%;
    min-height: 34px;
    padding: 5px 30px 5px 9px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 9px;
    color: #ffffff;
    background: #24282e;
    font: inherit;
    font-size: 0.82rem;
}

.controlesBebidaSugerida {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 9px !important;
}

.controlesBebidaSugerida span {
    min-width: 38px;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.68rem;
    text-align: center;
}

.flechaBebidaSugerida {
    display: inline-grid;
    width: 26px;
    height: 24px;
    min-height: 24px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 8px;
    place-items: center;
    color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.055);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.flechaBebidaSugerida:hover,
.flechaBebidaSugerida:focus-visible {
    border-color: rgba(247, 201, 72, 0.44);
    background: rgba(247, 201, 72, 0.10);
}

.flechaBebidaSugerida:active {
    transform: scale(0.94);
}

.flechaBebidaSugerida:disabled {
    opacity: 0.32;
    cursor: default;
}

.sugerenciaBebidaCarrito .agregarSugerenciaCarrito {
    width: 100%;
    min-height: 38px;
    padding: 8px 12px;
}

/* El encabezado conserva sus componentes, pero queda alineado. */
#menuSuperior {
    align-items: center !important;
}

.estadoLocalMenu {
    margin-left: auto !important;
    margin-right: 92px !important;
    align-self: center !important;
}

#carrito {
    top: 22px !important;
    right: 22px !important;
}

/* Integra visualmente el logo: elimina el cuadrado de fondo sin alterar
   el archivo original ni la identidad de PromoCombo. */
.marcaPrincipal {
    overflow: visible !important;
    background: transparent !important;
    box-shadow: none !important;
}

.logoMenuImagen {
    width: 118px !important;
    height: 78px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: cover !important;
    clip-path: ellipse(48% 43% at 50% 50%);
    filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.42));
}

@media (max-width: 900px) {
    .estadoLocalMenu {
        margin-right: 78px !important;
    }

    #carrito {
        right: 14px !important;
    }
}

@media (max-width: 760px) {
    .estadoLocalMenu {
        margin-right: 64px !important;
    }

    .logoMenuImagen {
        width: 84px !important;
        height: 58px !important;
    }

    .bebidaSugeridaContenido {
        grid-template-columns: 60px minmax(0, 1fr);
    }

    .bebidaSugeridaContenido img {
        width: 60px;
        height: 60px;
    }
}


/* =========================================================
   RC11.0 — ALINEACIÓN FINAL DEL ENCABEZADO
   Mantiene el diseño existente y alinea el borde superior del
   estado del local con el botón del carrito.
========================================================= */
@media (min-width: 761px) {
    .estadoLocalMenu {
        transform: translateY(-4px) !important;
    }
}


/* ============================================================
   PROMOCOMBO RC11.2 - MOBILE PREMIUM + CARRUSELES FLUIDOS
   Mantiene escritorio sin cambios y normaliza el catálogo móvil.
============================================================ */

.carruselProductos {
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
    touch-action: pan-y pinch-zoom;
    will-change: scroll-position;
}

.carruselProductos.animandoCarrusel,
.carruselProductos.arrastrando {
    scroll-behavior: auto !important;
    scroll-snap-type: none !important;
}

.carruselProductos.arrastrando {
    cursor: grabbing;
    user-select: none;
}

.carruselProductos .promo {
    display: flex;
    flex-direction: column;
    height: auto;
}

.carruselProductos .promoInfo {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.carruselProductos .botonCarrito,
.carruselProductos .botonAgregar,
.carruselProductos .promo button {
    margin-top: auto;
}

@media (max-width: 760px) {
    .categoriaProductos {
        padding-inline: 14px;
    }

    .carruselProductos {
        gap: 14px;
        padding: 6px 1px 18px;
        scroll-padding-inline: 1px;
        scroll-snap-type: x proximity;
    }

    .carruselProductos .promo {
        flex: 0 0 min(76vw, 330px);
        min-width: min(76vw, 330px);
        min-height: 456px;
        border-radius: 15px;
        scroll-snap-align: start;
        scroll-snap-stop: normal;
    }

    .carruselProductos .promoImg {
        width: 100%;
        height: clamp(205px, 55vw, 245px);
        object-fit: cover;
    }

    .carruselProductos .promoInfo {
        padding: 12px;
    }

    .carruselProductos .codigoPromo {
        min-height: 22px;
        align-self: flex-start;
        padding: 4px 8px;
        font-size: 10px;
    }

    .carruselProductos .promoInfo h3,
    .carruselProductos .promo h3 {
        display: -webkit-box;
        min-height: 44px;
        margin: 9px 0 7px;
        overflow: hidden;
        font-size: 16px;
        line-height: 1.3;
        text-transform: none;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .carruselProductos .promoInfo > p:not(.precio):not(.precioProducto) {
        display: -webkit-box;
        min-height: 36px;
        margin: 0 0 8px;
        overflow: hidden;
        font-size: 12px;
        line-height: 1.45;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .carruselProductos .precio,
    .carruselProductos .precioProducto {
        min-height: 28px;
        margin: 5px 0 3px;
        font-size: 22px !important;
        line-height: 1.2;
    }

    .carruselProductos .estadoPromo {
        min-height: 18px;
        margin: 2px 0 10px;
        font-size: 12px;
        line-height: 1.3;
    }

    .carruselProductos .botonCarrito,
    .carruselProductos .botonAgregar,
    .carruselProductos .promo button {
        width: 100%;
        min-height: 48px;
        padding: 10px 9px;
        border-radius: 10px !important;
        font-size: 14px;
        line-height: 1.2;
    }

    .flechaCarrusel {
        min-width: 42px;
        min-height: 42px;
        touch-action: manipulation;
    }
}

@media (max-width: 430px) {
    .categoriaProductos {
        padding-inline: 14px;
    }

    .carruselProductos {
        gap: 12px;
    }

    .carruselProductos .promo {
        flex-basis: calc(100vw - 42px);
        min-width: calc(100vw - 42px);
        min-height: 470px;
    }

    .carruselProductos .promoImg {
        height: clamp(220px, 62vw, 270px);
    }
}

@media (max-width: 360px) {
    .categoriaProductos {
        padding-inline: 10px;
    }

    .carruselProductos .promo {
        flex-basis: calc(100vw - 30px);
        min-width: calc(100vw - 30px);
    }

    .carruselProductos .promoImg {
        height: 220px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .carruselProductos {
        scroll-behavior: auto;
    }
}

/* ============================================================
   PROMOCOMBO RC12.0 — COMPONENTE MÓVIL DEFINITIVO
   Sobrescribe las reglas históricas del catálogo únicamente en
   pantallas móviles. Una tarjeta completa, contenido alineado y
   desplazamiento horizontal nativo, fluido y predecible.
============================================================ */
@media (max-width: 760px) {
    body .categoriaProductos {
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: 14px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    body .categoriaProductos > .carruselProductos {
        display: flex !important;
        flex-flow: row nowrap !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        gap: 14px !important;
        padding: 6px 0 18px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory !important;
        scroll-padding-inline: 0 !important;
        scroll-behavior: smooth !important;
        overscroll-behavior-x: contain !important;
        touch-action: pan-x pan-y pinch-zoom !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }

    body .categoriaProductos > .carruselProductos::-webkit-scrollbar {
        display: none !important;
    }

    body .categoriaProductos > .carruselProductos.animandoCarrusel,
    body .categoriaProductos > .carruselProductos.arrastrando {
        scroll-behavior: auto !important;
        scroll-snap-type: none !important;
    }

    body .categoriaProductos > .grillaProductos {
        display: grid !important;
        width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 18px !important;
        justify-content: stretch !important;
        align-items: stretch !important;
    }

    body .categoriaProductos > .carruselProductos > .promo {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        display: flex !important;
        flex-direction: column !important;
        box-sizing: border-box !important;
        height: 486px !important;
        min-height: 486px !important;
        max-height: 486px !important;
        overflow: hidden !important;
        border-radius: 17px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        display: flex !important;
        flex: 0 0 238px !important;
        width: calc(100% - 14px) !important;
        height: 238px !important;
        min-height: 238px !important;
        max-height: 238px !important;
        margin: 7px 7px 0 !important;
        overflow: hidden !important;
        border-radius: 12px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoImg {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        padding: 3px !important;
        object-fit: contain !important;
        object-position: center !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        display: grid !important;
        flex: 1 1 auto !important;
        min-height: 0 !important;
        padding: 10px 12px 12px !important;
        grid-template-rows: 20px 46px 34px 34px 22px 48px !important;
        row-gap: 4px !important;
        align-content: stretch !important;
        box-sizing: border-box !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .codigoPromo {
        display: inline-flex !important;
        width: max-content !important;
        height: 20px !important;
        min-height: 20px !important;
        max-height: 20px !important;
        margin: 0 !important;
        padding: 0 8px !important;
        align-items: center !important;
        align-self: center !important;
        font-size: 10px !important;
        line-height: 1 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        display: -webkit-box !important;
        min-height: 46px !important;
        max-height: 46px !important;
        margin: 0 !important;
        padding: 4px 0 0 !important;
        overflow: hidden !important;
        font-size: 20px !important;
        line-height: 1.12 !important;
        text-transform: uppercase !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo {
        display: -webkit-box !important;
        min-height: 34px !important;
        max-height: 34px !important;
        margin: 0 !important;
        overflow: hidden !important;
        color: #c7cbd2 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
        display: flex !important;
        min-height: 34px !important;
        max-height: 34px !important;
        margin: 0 !important;
        overflow: visible !important;
        flex-direction: row !important;
        gap: 8px !important;
        align-items: end !important;
        justify-content: flex-start !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioAnterior {
        font-size: 12px !important;
        line-height: 1.1 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioPromo,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioProducto,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precio {
        margin: 0 !important;
        color: #ffc400 !important;
        font-size: 24px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo {
        display: flex !important;
        min-height: 22px !important;
        max-height: 22px !important;
        margin: 0 !important;
        align-items: center !important;
        overflow: hidden !important;
        font-size: 13px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonAgregar,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
        display: inline-flex !important;
        width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        margin: 0 !important;
        padding: 0 12px !important;
        align-items: center !important;
        justify-content: center !important;
        align-self: end !important;
        overflow: hidden !important;
        font-size: 14px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
    }

    body .controlesCarrusel .flechaCarrusel {
        width: 48px !important;
        min-width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        touch-action: manipulation !important;
    }
}

@media (max-width: 430px) {
    body .categoriaProductos {
        padding-inline: 12px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 458px !important;
        min-height: 458px !important;
        max-height: 458px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex-basis: 214px !important;
        height: 214px !important;
        min-height: 214px !important;
        max-height: 214px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        grid-template-rows: 20px 44px 32px 32px 22px 48px !important;
        padding: 9px 11px 11px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        min-height: 44px !important;
        max-height: 44px !important;
        font-size: 18px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo {
        min-height: 32px !important;
        max-height: 32px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
        min-height: 32px !important;
        max-height: 32px !important;
    }
}

@media (max-width: 360px) {
    body .categoriaProductos {
        padding-inline: 10px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: 438px !important;
        min-height: 438px !important;
        max-height: 438px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex-basis: 194px !important;
        height: 194px !important;
        min-height: 194px !important;
        max-height: 194px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        font-size: 17px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioPromo,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioProducto,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precio {
        font-size: 22px !important;
    }
}


/* ============================================================
   PROMOCOMBO RC12.1 — NORMALIZACIÓN MÓVIL FINAL
   Corrige superposiciones, alturas forzadas y posición del carrito.
============================================================ */
@media (max-width: 760px) {
    .cabeceraSitio,
    #menuSuperior {
        position: relative !important;
    }

    #menuSuperior {
        min-height: 142px !important;
        padding: 10px 76px 10px 14px !important;
        box-sizing: border-box !important;
    }

    #carrito {
        position: fixed !important;
        top: 12px !important;
        right: 12px !important;
        bottom: auto !important;
        left: auto !important;
        width: 58px !important;
        height: 58px !important;
        min-width: 58px !important;
        min-height: 58px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        border-radius: 16px !important;
        z-index: 10020 !important;
        transform: none !important;
    }

    .estadoLocalMenu {
        margin-right: 0 !important;
        max-width: min(228px, calc(100vw - 190px)) !important;
    }

    body .categoriaProductos {
        padding-inline: 14px !important;
        overflow: visible !important;
    }

    body .categoriaProductos > .carruselProductos {
        gap: 14px !important;
        padding: 8px 0 20px !important;
        scroll-snap-type: x mandatory !important;
        scroll-padding-inline: 0 !important;
    }

    body .categoriaProductos > .carruselProductos > .promo {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: hidden !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        flex: none !important;
        width: calc(100% - 14px) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        aspect-ratio: 4 / 3 !important;
        margin: 7px 7px 0 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoImg {
        width: 100% !important;
        height: 100% !important;
        padding: 3px !important;
        object-fit: contain !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        display: flex !important;
        flex: 1 1 auto !important;
        flex-direction: column !important;
        min-height: 252px !important;
        padding: 11px 12px 12px !important;
        gap: 7px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .codigoPromo {
        flex: 0 0 20px !important;
        margin: 0 !important;
        align-self: flex-start !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        flex: 0 0 auto !important;
        min-height: 44px !important;
        max-height: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 19px !important;
        line-height: 1.22 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo {
        flex: 0 0 auto !important;
        min-height: 34px !important;
        max-height: 38px !important;
        margin: 0 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioBloque {
        flex: 0 0 auto !important;
        min-height: 34px !important;
        max-height: none !important;
        margin: 0 !important;
        align-items: center !important;
        overflow: hidden !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioPromo,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioProducto,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precio {
        font-size: 25px !important;
        line-height: 1.15 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .precioPendienteVisual {
        color: #ffc400 !important;
        font-size: 18px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .estadoPromo {
        display: flex !important;
        flex: 0 0 24px !important;
        min-height: 24px !important;
        max-height: 24px !important;
        margin: 0 !important;
        align-items: center !important;
        overflow: visible !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonAgregar,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
        flex: 0 0 50px !important;
        height: 50px !important;
        min-height: 50px !important;
        max-height: 50px !important;
        margin-top: auto !important;
        font-size: 15px !important;
    }
}

@media (max-width: 430px) {
    #menuSuperior {
        padding-right: 74px !important;
    }

    #carrito {
        top: 10px !important;
        right: 10px !important;
        width: 56px !important;
        height: 56px !important;
        min-width: 56px !important;
        min-height: 56px !important;
    }

    body .categoriaProductos {
        padding-inline: 12px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        min-height: 246px !important;
        padding: 10px 11px 11px !important;
    }
}

/* ============================================================
   PROMOCOMBO RC13.0 — PULIDO MÓVIL INTEGRAL
   - Encabezado compacto y estable.
   - Carrito en la esquina superior derecha del encabezado.
   - Portada principal con escala e impacto recuperados.
   - Tarjetas aproximadamente 5 % más compactas.
============================================================ */
@media (max-width: 760px) {
    body {
        overflow-x: hidden;
    }

    .cabeceraSitio {
        position: relative !important;
        z-index: 1000 !important;
    }

    #menuSuperior {
        position: relative !important;
        display: grid !important;
        grid-template-columns: 92px minmax(0, 1fr) 62px !important;
        grid-template-rows: 64px 48px !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 128px !important;
        height: 128px !important;
        padding: 8px 12px !important;
        column-gap: 8px !important;
        row-gap: 0 !important;
        box-sizing: border-box !important;
    }

    .marcaPrincipal {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: start !important;
        width: 88px !important;
        height: 58px !important;
        margin: 0 !important;
    }

    .logoMenuImagen {
        width: 88px !important;
        height: 58px !important;
    }

    .estadoLocalMenu {
        grid-column: 2 !important;
        grid-row: 1 !important;
        display: flex !important;
        justify-self: center !important;
        align-self: center !important;
        width: min(100%, 238px) !important;
        max-width: 238px !important;
        min-height: 54px !important;
        margin: 0 !important;
        transform: none !important;
        box-sizing: border-box !important;
    }

    #buscador {
        grid-column: 1 / 4 !important;
        grid-row: 2 !important;
        width: 100% !important;
        margin: 0 !important;
        align-self: end !important;
    }

    #buscarProducto {
        width: 100% !important;
        height: 44px !important;
        min-height: 44px !important;
    }

    #carrito {
        position: absolute !important;
        top: 11px !important;
        right: 12px !important;
        bottom: auto !important;
        left: auto !important;
        width: 58px !important;
        height: 58px !important;
        min-width: 58px !important;
        min-height: 58px !important;
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 16px !important;
        z-index: 1010 !important;
        transform: none !important;
    }

    .barraCategoriasSuperior {
        margin-top: 0 !important;
    }

    /* Recupera el protagonismo de la portada sin generar espacios vacíos. */
    .portadaCarrusel {
        height: 640px !important;
        min-height: 640px !important;
    }

    .diapositivaPortada {
        grid-template-columns: 1fr !important;
        grid-template-rows: minmax(365px, auto) 255px !important;
        align-content: stretch !important;
    }

    .contenidoPortada {
        min-height: 365px !important;
        padding: 30px 50px 30px 24px !important;
    }

    .contenidoPortada h1,
    .contenidoPortada h2 {
        font-size: 44px !important;
        line-height: .94 !important;
    }

    .diapositivaPortada[data-diapositiva="1"] h2 {
        font-size: 41px !important;
    }

    .contenidoPortada p,
    .diapositivaPortada[data-diapositiva="1"] .contenidoPortada p {
        max-width: 355px !important;
        margin: 17px 0 20px !important;
        font-size: 15px !important;
        line-height: 1.42 !important;
    }

    .botonPortadaWhatsapp {
        min-width: 250px !important;
        min-height: 52px !important;
        padding-inline: 22px !important;
        font-size: 15px !important;
    }

    .collagePortada {
        min-height: 255px !important;
        overflow: visible !important;
    }

    .fotoPizza {
        top: 0 !important;
        right: 25% !important;
        width: 61% !important;
        height: 230px !important;
    }

    .fotoHamburguesa {
        right: -2% !important;
        bottom: -18px !important;
        width: 47% !important;
        height: 228px !important;
    }

    .fotoEmpanadas {
        left: 1% !important;
        bottom: -8px !important;
        width: 43% !important;
        height: 145px !important;
    }

    .fotoPromoGrande {
        top: 0 !important;
        right: 7% !important;
        width: 86% !important;
        height: 225px !important;
    }

    .fotoPromoChica {
        right: -1% !important;
        width: 42% !important;
        height: 128px !important;
    }

    .fotoHamburguesaDoble {
        right: 8% !important;
        width: 77% !important;
        height: 250px !important;
    }

    .fotoPapasHamburguesa {
        width: 39% !important;
        height: 140px !important;
    }

    .indicadoresPortada {
        bottom: 14px !important;
    }

    /* Compactación real cercana al 5 %, sin volver a superponer campos. */
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .contenedorImagenProducto {
        aspect-ratio: 1.40 / 1 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        min-height: 230px !important;
        padding: 9px 12px 11px !important;
        gap: 5px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo h3,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo h3 {
        min-height: 40px !important;
        max-height: 46px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .descripcionPromo {
        min-height: 30px !important;
        max-height: 34px !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonCarrito,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .botonAgregar,
    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo button {
        flex-basis: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
    }
}

@media (max-width: 430px) {
    #menuSuperior {
        grid-template-columns: 86px minmax(0, 1fr) 58px !important;
        height: 126px !important;
        min-height: 126px !important;
        padding-inline: 10px !important;
    }

    .marcaPrincipal,
    .logoMenuImagen {
        width: 82px !important;
        height: 55px !important;
    }

    .estadoLocalMenu {
        width: min(100%, 226px) !important;
        max-width: 226px !important;
        min-height: 52px !important;
    }

    #carrito {
        top: 10px !important;
        right: 10px !important;
        width: 56px !important;
        height: 56px !important;
        min-width: 56px !important;
        min-height: 56px !important;
    }

    .portadaCarrusel {
        height: 650px !important;
        min-height: 650px !important;
    }

    .diapositivaPortada {
        grid-template-rows: minmax(382px, auto) 248px !important;
    }

    .contenidoPortada {
        min-height: 382px !important;
        padding: 29px 40px 30px 20px !important;
    }

    .contenidoPortada h1,
    .contenidoPortada h2 {
        font-size: 39px !important;
    }

    .diapositivaPortada[data-diapositiva="1"] h2 {
        font-size: 37px !important;
    }

    .botonPortadaWhatsapp {
        width: min(100%, 290px) !important;
        min-width: 0 !important;
    }

    body .categoriaProductos :is(.carruselProductos, .grillaProductos) > .promo .promoInfo {
        min-height: 226px !important;
        padding: 9px 11px 10px !important;
    }
}
