body{

font-family:Arial, Helvetica, sans-serif;

background:#f5f5f5;

}

/* MENU */

.navbar{

background:#111 !important;

}

.navbar-brand{

font-size:30px;

font-weight:bold;

color:#d4af37 !important;

}

.nav-link{

color:white !important;

margin-left:15px;

}

.nav-link:hover{

color:#d4af37 !important;

}

/* BANNER */

.banner{

height:100vh;

background:linear-gradient(rgba(0,0,0,.60),rgba(0,0,0,.60)),
url("imagenes/banner.jpg");

background-size:cover;

background-position:center;

display:flex;

justify-content:center;

align-items:center;

text-align:center;

color:white;

}

.banner h1{

font-size:60px;

font-weight:bold;

}

.banner p{

font-size:24px;

margin:25px;

}

.btn-warning{

background:#d4af37;

border:none;

font-size:22px;

padding:15px 40px;

}

/* TARJETAS */

.servicio{

border:none;

overflow:hidden;

border-radius:20px;

transition:.5s;

box-shadow:0px 10px 20px rgba(0,0,0,.15);

}

.servicio:hover{

transform:translateY(-10px);

}

.servicio img{

height:250px;

object-fit:cover;

}

.servicio h4{

text-align:center;

font-weight:bold;

}

.servicio p{

text-align:center;

}
/* SERVICIOS */

.servicios{

background:#f7f7f7;

padding:80px 0;

}

.titulo{

font-size:48px;

font-weight:bold;

color:#222;

}

.subtitulo{

font-size:20px;

color:#777;

margin-bottom:40px;

}

.servicio{

border:none;

border-radius:20px;

overflow:hidden;

transition:.4s;

box-shadow:0 10px 20px rgba(0,0,0,.15);

}

.servicio:hover{

transform:translateY(-10px);
}
.servicio img{
    width:100%;
    height:220px;
    object-fit:cover;
    transition:0.4s;
}

.servicio:hover img{
    transform:scale(1.08);
}

.servicio h4{

margin-top:10px;

font-weight:bold;

}

.servicio p{

color:#666;

}

.servicio .btn{

width:100%;

border-radius:30px;

font-weight:bold;

}

.card-body{
    text-align:center;
}

.text-success{
    font-size:24px;
    font-weight:bold;
}

.servicio{
    cursor:pointer;
}

.whatsapp{

position:fixed;

right:25px;

bottom:25px;

width:70px;

height:70px;

background:#25D366;

color:white;

border-radius:50%;

display:flex;

justify-content:center;

align-items:center;

font-size:35px;

text-decoration:none;

box-shadow:0 10px 25px rgba(0,0,0,.35);

transition:.3s;

z-index:999;

}

.whatsapp:hover{

transform:scale(1.15);

color:white;

}
.carousel img{
    height:650px;
    object-fit:cover;
}
.opcion{

width:100%;

margin-bottom:10px;

transition:.3s;

}

/* =====================================
   PLATO INTERACTIVO PROFESIONAL
===================================== */

#plato{
    position: relative;
    width: 450px;
    height: 450px;
    margin: 20px auto;
    border-radius: 50%;
    filter: drop-shadow(0 15px 20px rgba(0,0,0,.25));
}

/* Plato base */
#platoBase{
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Zona donde aparecen los alimentos */
#ingredientesSeleccionados{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* =====================================
   IMÁGENES DE LOS INGREDIENTES
===================================== */

.ingrediente-plato{
    position: absolute;
    object-fit: cover;
    border-radius: 50%;
    box-shadow:
        0 8px 15px rgba(0,0,0,.30),
        inset 0 0 8px rgba(255,255,255,.4);

    border: 3px solid rgba(255,255,255,.8);

    animation: aparecerPlato .5s ease;
}

/* =====================================
   PROTEÍNA
===================================== */

.proteina{
    width: 145px;
    height: 145px;

    top: 150px;
    left: 152px;

    z-index: 5;
}

/* =====================================
   ACOMPAÑAMIENTOS
===================================== */

.FRIJOLES_VOLTEADOS_O_PARADOS{
    width: 105px;
    height: 105px;

    top: 75px;
    left: 75px;

    z-index: 3;
}

.PLATANOS_FRITOS_0_COCIDOS{
    width: 105px;
    height: 105px;

    top: 75px;
    right: 75px;

    z-index: 3;
}

.AVENA_Y_CHAMPURRADA{
    width: 105px;
    height: 105px;

    bottom: 75px;
    left: 75px;

    z-index: 3;
}

.FRUTA{
    width: 105px;
    height: 105px;

    bottom: 75px;
    right: 75px;

    z-index: 3;
}

.PAN_O_TORTILLA{
    width: 105px;
    height: 105px;

    bottom: 75px;
    right: 75px;

    z-index: 3;
}

/* =====================================
   BEBIDAS
===================================== */

.bebida{
    position: absolute;

    width: 75px;
    height: 95px;

    right: -20px;
    top: 175px;

    border-radius: 15px;

    object-fit: cover;

    animation: aparecerBebida .5s ease;

    z-index: 10;
}

/* =====================================
   ANIMACIONES
===================================== */

@keyframes aparecerPlato{

    0%{
        opacity:0;
        transform:scale(.2) rotate(-20deg);
    }

    60%{
        opacity:1;
        transform:scale(1.1) rotate(5deg);
    }

    100%{
        opacity:1;
        transform:scale(1) rotate(0);
    }
}

@keyframes aparecerBebida{

    0%{
        opacity:0;
        transform:translateX(30px) scale(.5);
    }

    100%{
        opacity:1;
        transform:translateX(0) scale(1);
    }
}

/* =====================================
   EFECTO AL PASAR EL MOUSE
===================================== */

#plato:hover{
    filter: drop-shadow(0 20px 25px rgba(0,0,0,.35));
    transition:.3s;
}

/* =====================================
   RESPONSIVE - TABLET
===================================== */

@media(max-width:768px){

    #plato{
        width:360px;
        height:360px;
    }

    .proteina{
        width:115px;
        height:115px;
        top:122px;
        left:122px;
    }

    .arroz,
    .papas,
    .ensalada,
    .vegetales{
        width:85px;
        height:85px;
    }

    .arroz{
        top:60px;
        left:55px;
    }

    .papas{
        top:60px;
        right:55px;
    }

    .ensalada{
        bottom:60px;
        left:55px;
    }

    .vegetales{
        bottom:60px;
        right:55px;
    }

    .bebida{
        width:60px;
        height:75px;
        right:-10px;
        top:140px;
    }
}

/* =====================================
   RESPONSIVE - CELULAR
===================================== */

@media(max-width:480px){

    #plato{
        width:300px;
        height:300px;
    }

    .proteina{
        width:95px;
        height:95px;

        top:102px;
        left:102px;
    }

    .arroz,
    .papas,
    .ensalada,
    .vegetales{
        width:70px;
        height:70px;
    }

    .arroz{
        top:48px;
        left:45px;
    }

    .papas{
        top:48px;
        right:45px;
    }

    .ensalada{
        bottom:48px;
        left:45px;
    }

    .vegetales{
        bottom:48px;
        right:45px;
    }

    .bebida{
        width:50px;
        height:65px;

        right:-5px;
        top:118px;
    }
}

/* ==========================
   forma del plato imagens
========================== */

.ingrediente{
    background: white;
    border-radius: 15px;
    padding: 15px;
    margin-bottom: 20px;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(0,0,0,.15);
    transition: .3s;
}

.ingrediente:hover{
    transform: translateY(-5px);
}

.ingrediente img{
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 10px;
}

/* ==========================
   IMÁGENES DENTRO DEL PLATO
========================== */

.ingrediente-plato{

    position:absolute;

    width:120px;
    height:120px;

    object-fit:cover;

    border-radius:50%;

    animation: aparecer .4s ease;

}

/* Proteína */
.proteina{
    top:130px;
    left:145px;
}

/* Arroz */
.arroz{
    top:60px;
    left:70px;
}

/* Papas */
.papas{
    top:60px;
    right:70px;
}

/* Ensalada */
.ensalada{
    bottom:60px;
    left:70px;
}

/* Vegetales */
.vegetales{
    bottom:60px;
    right:70px;
}

/* Bebida */

.bebida{
    position:absolute;
    right:-90px;
    top:140px;
    width:90px;
}

@keyframes aparecer{

    from{

        opacity:0;

        transform:scale(.3);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}

/* ==========================
   BEBIDAS
========================== */

.bebida{
    position:absolute;
    width:90px;
    top:120px;
    right:-40px;
    animation: aparecer .4s;
}

/* ==========================
   CONTROL DE CANTIDAD
========================== */

.cantidad-control{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:15px;
    margin-top:10px;
}

.cantidad-control button{
    width:40px;
    height:40px;
    padding:0;
    font-size:22px;
    border-radius:50%;
}

.cantidad{
    min-width:30px;
    text-align:center;
    font-size:20px;
    font-weight:bold;
}

/* =====================================
   CARRITO LATERAL
===================================== */

#carritoLateral{

    position:fixed;

    top:0;
    right:-420px;

    width:400px;
    height:100vh;

    background:white;

    box-shadow:
        -10px 0 30px rgba(0,0,0,.25);

    z-index:2000;

    display:flex;
    flex-direction:column;

    transition:.4s ease;
}


/* Carrito abierto */

#carritoLateral.carrito-abierto{

    right:0;

}


/* =====================================
   ENCABEZADO
===================================== */

.carrito-header{

    background:#111;

    color:white;

    padding:20px;

    display:flex;

    justify-content:space-between;

    align-items:center;
}

.carrito-header h3{

    margin:0;

    color:#d4af37;

    font-weight:bold;

}

#cerrarCarrito{

    background:none;

    border:none;

    color:white;

    font-size:35px;

    line-height:1;

    cursor:pointer;

}


/* =====================================
   PRODUCTOS
===================================== */

#carritoItems{

    flex:1;

    overflow-y:auto;

    padding:20px;

}


/* Producto */

.carrito-producto{

    display:flex;

    align-items:center;

    gap:12px;

    padding:12px;

    margin-bottom:10px;

    background:#f8f8f8;

    border-radius:12px;

    box-shadow:0 3px 10px rgba(0,0,0,.08);

    animation:entradaCarrito .3s ease;

}


/* Imagen */

.carrito-producto img{

    width:60px;

    height:60px;

    object-fit:cover;

    border-radius:10px;

}


/* Información */

.carrito-producto-info{

    flex:1;

}

.carrito-producto-info strong{

    display:block;

    font-size:16px;

}

.carrito-producto-info span{

    font-size:14px;

    color:#666;

}


/* Botón eliminar */

.eliminar-carrito{

    border:none;

    background:#dc3545;

    color:white;

    width:32px;

    height:32px;

    border-radius:50%;

    cursor:pointer;

}


/* =====================================
   CARRITO VACÍO
===================================== */

.carrito-vacio{

    text-align:center;

    color:#777;

    padding:40px 10px;

}


/* =====================================
   PIE DEL CARRITO
===================================== */

.carrito-footer{

    padding:20px;

    border-top:1px solid #ddd;

    background:#fff;

}


.carrito-linea{

    display:flex;

    justify-content:space-between;

    margin-bottom:10px;

}


.carrito-total-evento{

    margin-top:15px;

    padding:15px;

    background:#111;

    color:white;

    border-radius:10px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}


.carrito-total-evento strong{

    color:#d4af37;

    font-size:22px;

}


/* =====================================
   BOTÓN FLOTANTE
===================================== */

.boton-carrito{

    position:fixed;

    right:25px;

    bottom:110px;

    width:65px;

    height:65px;

    border:none;

    border-radius:50%;

    background:#111;

    color:white;

    font-size:30px;

    cursor:pointer;

    box-shadow:0 8px 20px rgba(0,0,0,.3);

    z-index:1500;

    transition:.3s;

}


.boton-carrito:hover{

    transform:scale(1.1);

}


/* Contador */

#contadorCarrito{

    position:absolute;

    top:-5px;

    right:-5px;

    width:25px;

    height:25px;

    background:#dc3545;

    color:white;

    border-radius:50%;

    font-size:13px;

    display:flex;

    justify-content:center;

    align-items:center;

    font-weight:bold;

}


/* =====================================
   ANIMACIÓN
===================================== */

@keyframes entradaCarrito{

    from{

        opacity:0;

        transform:translateX(30px);

    }

    to{

        opacity:1;

        transform:translateX(0);

    }

}


/* =====================================
   CELULAR
===================================== */

@media(max-width:480px){

    #carritoLateral{

        width:100%;

        right:-100%;

    }

    #carritoLateral.carrito-abierto{

        right:0;

    }

    .boton-carrito{

        right:15px;

        bottom:95px;

        width:58px;

        height:58px;

    }

}


/* =====================================
   CONTROLES DE CANTIDAD DEL CARRITO
===================================== */

.cantidad-carrito{

    display:flex;

    align-items:center;

    gap:10px;

    margin-top:8px;

}


.cantidad-carrito button{

    width:30px;

    height:30px;

    border:none;

    border-radius:50%;

    background:#111;

    color:white;

    font-size:20px;

    font-weight:bold;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    transition:.2s;

}


.cantidad-carrito button:hover{

    background:#d4af37;

    color:#111;

    transform:scale(1.1);

}


.cantidad-carrito span{

    min-width:25px;

    text-align:center;

    font-weight:bold;

}


.subtotal-carrito{

    display:block;

    margin-top:6px;

    font-weight:bold;

    color:#198754;

}


/* =====================================
   VENTANA NUEVO MENÚ
===================================== */

#ventanaNuevoMenu{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.65);

    display:none;

    justify-content:center;

    align-items:center;

    z-index:3000;

    padding:20px;

}


/* Ventana visible */

#ventanaNuevoMenu.mostrar{

    display:flex;

}


/* Contenido */

.nuevo-menu-contenido{

    width:100%;

    max-width:450px;

    background:white;

    border-radius:20px;

    padding:30px;

    text-align:center;

    position:relative;

    box-shadow:0 15px 40px rgba(0,0,0,.35);

    animation:aparecerMenu .3s ease;

}


.nuevo-menu-contenido h2{

    color:#111;

    margin-bottom:10px;

}


.nuevo-menu-contenido p{

    color:#666;

    margin-bottom:25px;

}


/* =====================================
   BOTONES DE TIPO DE MENÚ
===================================== */

.tipo-menu{

    width:100%;

    border:2px solid #eee;

    background:white;

    border-radius:15px;

    padding:15px;

    margin-bottom:12px;

    cursor:pointer;

    transition:.3s;

    text-align:left;

}


.tipo-menu:hover{

    border-color:#d4af37;

    transform:translateY(-3px);

    box-shadow:0 8px 20px rgba(0,0,0,.12);

}


.tipo-menu strong{

    display:block;

    margin-left:10px;

    font-size:17px;

}


.tipo-menu small{

    display:block;

    margin-left:40px;

    margin-top:4px;

    color:#777;

}


/* =====================================
   CERRAR
===================================== */

.cerrar-nuevo-menu{

    position:absolute;

    top:10px;

    right:15px;

    border:none;

    background:none;

    font-size:35px;

    cursor:pointer;

    color:#555;

}


/* =====================================
   ANIMACIÓN
===================================== */

@keyframes aparecerMenu{

    from{

        opacity:0;

        transform:scale(.8);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}


/* =====================================
   VENTANA PARA AGREGAR OTRO MENÚ
===================================== */

#ventanaNuevoMenu {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    height: 100vh;

    background: rgba(0, 0, 0, 0.75);

    z-index: 9999;

    display: none;

    overflow-y: auto;

    padding: 30px 15px;
}


/* Mostrar ventana */

#ventanaNuevoMenu.mostrar {
    display: block;
}


/* Contenido */

.nuevo-menu-contenido {

    width: 100%;
    max-width: 600px;

    margin: 20px auto;

    background: white;

    border-radius: 15px;

    padding: 25px;

    position: relative;

    box-shadow: 0 10px 40px rgba(0,0,0,0.4);

}


/* Botón cerrar */

.cerrar-nuevo-menu {

    position: absolute;

    top: 10px;
    right: 15px;

    border: none;

    background: transparent;

    font-size: 30px;

    cursor: pointer;

}


/* Botones de menú */

.tipo-menu {

    width: 100%;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 5px;

    margin-bottom: 12px;

    padding: 15px;

    border: 1px solid #ddd;

    border-radius: 10px;

    background: #f8f8f8;

    cursor: pointer;

    transition: 0.2s;

}


/* Efecto */

.tipo-menu:hover {

    background: #ffc107;

    transform: translateY(-2px);

}


/* Nombre */

.tipo-menu strong {

    font-size: 18px;

}


/* Descripción */

.tipo-menu small {

    color: #666;

}


/* En celular */

@media (max-width: 576px) {

    #ventanaNuevoMenu {

        padding: 10px;

    }

    .nuevo-menu-contenido {

        margin: 10px auto;

        padding: 20px;

    }

}


/* =====================================
   SELECTOR DE MENÚS
===================================== */

#selectorMenus {

    position: fixed;

    inset: 0;

    background: rgba(0, 0, 0, 0.75);

    z-index: 99999;

    display: flex;

    justify-content: center;

    align-items: center;

    padding: 20px;

}


.selector-menus-contenido {

    background: white;

    width: 100%;

    max-width: 700px;

    max-height: 90vh;

    overflow-y: auto;

    border-radius: 15px;

    padding: 30px;

    position: relative;

    box-shadow: 0 10px 40px rgba(0,0,0,0.4);

}


.selector-menus-contenido h2 {

    text-align: center;

    margin-bottom: 10px;

}


.selector-menus-contenido p {

    text-align: center;

    margin-bottom: 25px;

}


.cerrar-selector {

    position: absolute;

    right: 15px;

    top: 10px;

    border: none;

    background: transparent;

    font-size: 35px;

    cursor: pointer;

}


.lista-menus {

    display: grid;

    grid-template-columns: repeat(
        auto-fit,
        minmax(200px, 1fr)
    );

    gap: 15px;

}


.boton-menu-disponible {

    border: 2px solid #ffc107;

    background: white;

    border-radius: 12px;

    padding: 20px;

    cursor: pointer;

    display: flex;

    flex-direction: column;

    gap: 8px;

    transition: 0.2s;

}


.boton-menu-disponible:hover {

    background: #ffc107;

    transform: translateY(-3px);

}


.boton-menu-disponible strong {

    font-size: 20px;

}


.boton-menu-disponible span {

    color: #555;

}


.boton-menu-disponible:hover span {

    color: #000;

}


/* En celulares */

@media (max-width: 576px) {

    .selector-menus-contenido {

        padding: 20px;

        max-height: 85vh;

    }


    .lista-menus {

        grid-template-columns: 1fr;

    }

}

