@import url('https://fonts.googleapis.com/css2?family=Englebert&family=Grandstander:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');







/*========== General Reset ==========*/

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}



body {

    font-family: "Grandstander", serif;

    overflow-x: hidden;

}







/*========== Efecto de aparición al hacer scroll ==========*/

.reveal {

    opacity: 0;

    transform: translateY(20px);

    transition: opacity 0.6s ease-out, transform 0.6s ease-out;

}



.reveal.active {

    opacity: 1;

    transform: translateY(0);

}







/*========== Barra de scroll =========*/

::-webkit-scrollbar {

    width: 12px;

    height: 12px;

}



::-webkit-scrollbar-track {

    background: #f1f1f1;

    border-radius: 10px;

}



::-webkit-scrollbar-thumb {

    background: #888;

    border-radius: 10px;

}



::-webkit-scrollbar-thumb:hover {

    background: #fff8f8;

}



html {

    scrollbar-width: thin;

    scrollbar-color: #043173 #b1d7df;

}







/*========== Nav ==========*/



#enlaces-superiores {

    width: 100%;

    padding: 10px 20px;

    background-color: transparent;

    /* Fondo transparente para que no afecte el diseño */

    position: fixed;

    top: 0;

    left: 0;

    z-index: 1000;

    /* Asegura que esté sobre otros elementos */

}



/* Contenedor para centrar los enlaces en la parte superior */

.contenedor-enlaces {

    display: flex;

    justify-content: flex-end;

    /* Alinea los enlaces a la derecha */

    gap: 15px;

    max-width: 1200px;

    margin: auto;

}



/* Botones de los enlaces */

.btn-enlace {

    text-decoration: none;

    font-size: 1rem;

    font-weight: bold;

    color: white;

    background-color: #046fa0;

    padding: 8px 15px;

    border-radius: 5px;

    transition: 0.3s;

}



/* Botón destacado (Cotizar) */

.btn-enlace.destacado {

    background-color: #ff6600;

}



/* Efecto hover */

.btn-enlace:hover {

    opacity: 0.8;

}



/* Ajustes para pantallas pequeñas */

@media (max-width: 768px) {

    #enlaces-superiores {

        padding: 10px;

    }



    .contenedor-enlaces {

        flex-direction: column;

        align-items: flex-end;

    }



    .btn-enlace {

        padding: 10px;

        font-size: 0.9rem;

    }

}







/* ========== Sección Ludoteca en Restaurantes ========== */



#ludoteca-restaurantes {

    background-color: #f8f9fa;

    padding: 60px 20px;

    display: flex;

    justify-content: center;

}



/* Contenedor principal */

.contenedor-ludoteca {

    display: flex;

    align-items: center;

    max-width: 1100px;

    margin: 0 auto;

    gap: 40px;

}



/* Contenedor de la imagen o video */

.imagen-ludoteca {

    flex: 1;

    overflow: hidden;

    border-radius: 10px;

    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.1);

}



/* Estilos para el video */

.imagen-ludoteca video {

    width: 70%;

    border-radius: 10px;

    display: block; 

}



/* Contenido de la sección */

.contenido-ludoteca {

    flex: 1;

    text-align: left;

}



.contenido-ludoteca h2 {

    font-size: 2rem;

    color: #046fa0;

    margin-bottom: 10px;

}



.subtitulo {

    font-size: 1.5rem;

    color: #555;

    font-weight: bold;

    margin-bottom: 15px;

}



.contenido-ludoteca p {

    font-size: 1.2rem;

    color: #666;

    line-height: 1.6;

    text-align: justify;

}



/* Diseño responsivo */

@media (max-width: 768px) {

    .contenedor-ludoteca {

        flex-direction: column;

        text-align: center;

    }



    .imagen-ludoteca {

        width: 100%;

        max-width: 500px;

    }



    .contenido-ludoteca {

        text-align: center;

    }

}



/* ========== Sección como funciona ========== */



/* Sección ¿Cómo Funciona? */

#como-funciona {

    padding: 60px 20px;

    text-align: center;

    background-color: #f8f9fa;

}



/* Título */

#como-funciona h2 {

    font-size: 2rem;

    color: #046fa0;

    margin-bottom: 30px;

    font-weight: bold;

}



/* Contenedor de tarjetas */

.cards {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 15px;

}



/* Colores personalizados */

.cards .red {

    background-color: #f43f5e;

}



.cards .blue {

    background-color: #3b82f6;

}



.cards .green {

    background-color: #22c55e;

}



.cards .yellow {

    background-color: #f59e0b;

}



/* Diseño de cada tarjeta */

.cards .card {

    display: flex;

    align-items: center;

    justify-content: center;

    flex-direction: column;

    text-align: center;

    height: 260px;

    /* Aumenté la altura */

    width: 320px;

    /* Aumenté el ancho */

    border-radius: 10px;

    color: white;

    cursor: pointer;

    transition: 400ms;

    padding: 20px;

    /* Añadí un poco más de espacio interno */

}



/* Tipografía dentro de las tarjetas */

.cards .card p.tip {

    font-size: 1.5em;

    /* Aumenté el tamaño del icono */

    margin-bottom: 10px;

    /* Espaciado entre el icono y el texto */

}



.cards .card p.second-text {

    font-size: 0.9em;

    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

}



/* Efecto Hover */

.cards .card:hover {

    transform: scale(1.1);

}



.cards:hover>.card:not(:hover) {

    filter: blur(5px);

    transform: scale(0.9);

}



/* Diseño responsivo */

@media (max-width: 768px) {

    .cards {

        flex-direction: column;

        align-items: center;

    }



    .cards .card {

        width: 90%;

    }

}







/* Estilos generales para la sección */

#beneficios-restaurantes {

    padding: 60px 20px;

    background-color: #f9f9f9;

    text-align: center;

}



#beneficios-restaurantes h2 {

    font-size: 2.5rem;

    color: #046fa0;

    margin-bottom: 40px;

    animation: fadeInDown 1s ease-in-out;

}



/* Contenedor de beneficios */

.benefits-container {

    display: flex;

    justify-content: space-between;

    align-items: center;

    max-width: 1200px;

    margin: 0 auto;

    padding: 20px;

    border-radius: 41px;

    /* Nuevo border-radius */

    background: linear-gradient(145deg, #cacaca, #f0f0f0);

    /* Nuevo fondo con gradiente */

    box-shadow: 25px 25px 50px #bebebe, -25px -25px 50px #ffffff;

    /* Nuevo efecto neumórfico */

    animation: fadeInUp 1s ease-in-out;

}



/* Texto de beneficios */

.benefits-text {

    flex: 1;

    padding: 20px;

    text-align: left;

}



.benefits-text p {

    font-size: 1.1rem;

    color: #555;

    margin-bottom: 20px;

    line-height: 1.6;

    position: relative;

    padding-left: 30px;

    animation: fadeInLeft 1s ease-in-out;

}



.benefits-text p::before {

    content: "✔";

    color: #28a745;

    font-size: 1.5rem;

    position: absolute;

    left: 0;

    top: 0;

    animation: bounceIn 1s ease-in-out;

}



/* Imagen de beneficios */

.benefits-image {

    flex: 1;

    padding: 20px;

    text-align: center;

    animation: fadeInRight 1s ease-in-out;

}



.benefits-image img {

    max-width: 100%;

    border-radius: 15px;

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

    transition: transform 0.3s ease, box-shadow 0.3s ease;

}



.benefits-image img:hover {

    transform: scale(1.05);

    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);

}



/* Animaciones */

@keyframes fadeInDown {

    0% {

        opacity: 0;

        transform: translateY(-20px);

    }



    100% {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes fadeInUp {

    0% {

        opacity: 0;

        transform: translateY(20px);

    }



    100% {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes fadeInLeft {

    0% {

        opacity: 0;

        transform: translateX(-20px);

    }



    100% {

        opacity: 1;

        transform: translateX(0);

    }

}



@keyframes fadeInRight {

    0% {

        opacity: 0;

        transform: translateX(20px);

    }



    100% {

        opacity: 1;

        transform: translateX(0);

    }

}



@keyframes bounceIn {

    0% {

        opacity: 0;

        transform: scale(0.5);

    }



    50% {

        opacity: 1;

        transform: scale(1.2);

    }



    100% {

        opacity: 1;

        transform: scale(1);

    }

}



/* Responsive Design */

@media (max-width: 768px) {

    .benefits-container {

        flex-direction: column;

    }



    .benefits-text,

    .benefits-image {

        flex: none;

        width: 100%;

        padding: 10px;

    }



    .benefits-image img {

        max-width: 90%;

    }

}







/* Sección Satisfacción de Clientes */

#satisfaccion-clientes {

    padding: 60px 20px;

    background-color: #f1f5f9;

    text-align: center;

}



/* Título de la sección */

#satisfaccion-clientes h2 {

    font-size: 2.5rem;

    color: #046fa0;

    margin-bottom: 30px;

    font-weight: bold;

}



/* Contenedor del carrusel */

.carousel-container {

    position: relative;

    width: 60%;

    margin: 0 auto;

    overflow: hidden;

}



/* Estilo para el carrusel */

.carousel {

    display: flex;

    transition: transform 0.5s ease-in-out;

}



/* Cada item del carrusel */

.carousel-item {

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    width: 100%;

    text-align: center;

    flex-shrink: 0;

    /* Para evitar que los elementos se reduzcan en tamaño */

}



.client {

    display: flex;

    flex-direction: column;

    align-items: center;

}



.client img {

    width: 150px;

    height: 150px;

    border-radius: 10%;

    margin-bottom: 0px;

}



.client-info {

    padding: 80px;

}



.client-info .comment {

    color: #555;

    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

}



.client-info .name {

    font-weight: bold;

    color: #333;

    margin-top: 30px;

}



.social-links a {

    margin: 10px;

    color: #046fa0;

    text-decoration: none;

}



/* Botones para navegar */

.carousel-buttons {

    position: absolute;

    top: 50%;

    width: 100%;

    display: flex;

    justify-content: space-between;

    transform: translateY(-50%);

}



.carousel-buttons button {

    background-color: #046fa0;

    color: white;

    border-radius: 100px;

    padding: 15px;

    cursor: pointer;

    font-size: 1rem;

}



.carousel-buttons button:hover {

    background-color: #034f73;

}



/* Diseño responsivo */

@media (max-width: 768px) {

    .carousel-container {

        width: 90%;

    }

}





/* Estilos generales para la sección */

#contrata-ludoteca {

    padding: 60px 20px;

    background-color: #abd1dd;

    text-align: center;

}



#contrata-ludoteca h2 {

    font-size: 2.5rem;

    color: #034f73;

    margin-bottom: 40px;

    animation: fadeInDown 1s ease-in-out;

}



/* Contenedor de tarjetas */

.contrata-cards {

    display: flex;

    justify-content: center;

    gap: 30px;

    max-width: 1200px;

    margin: 0 auto;

    padding: 20px;

    animation: fadeInUp 1s ease-in-out;

}



/* Tarjetas */

.card {

    background: #fff;

    border-radius: 15px;

    overflow: hidden;

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

    transition: transform 0.3s ease, box-shadow 0.3s ease;

    width: 100%;

    max-width: 350px;

}



.card:hover {

    transform: translateY(-10px);

    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);

}



.card img {

    width: 100%;

    height: 200px;

    object-fit: cover;

}



.card-content {

    padding: 20px;

    text-align: left;

}



.card-content p {

    font-size: 1rem;

    color: #555;

    margin-bottom: 20px;

    line-height: 1.6;

}



.btn-contrata {

    display: inline-block;

    padding: 10px 20px;

    font-size: 0.9rem;

    color: #fff;

    background-color: #28a745;

    border-radius: 25px;

    text-decoration: none;

    transition: background-color 0.3s ease, transform 0.3s ease;

}



.btn-contrata:hover {

    background-color: #218838;

    transform: scale(1.05);

}



/* Animaciones */

@keyframes fadeInDown {

    0% {

        opacity: 0;

        transform: translateY(-20px);

    }

    100% {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes fadeInUp {

    0% {

        opacity: 0;

        transform: translateY(20px);

    }

    100% {

        opacity: 1;

        transform: translateY(0);

    }

}



/* Responsive Design */

@media (max-width: 768px) {

    .contrata-cards {

        flex-direction: column;

        align-items: center;

    }



    .card {

        max-width: 100%;

    }

}







/* Animaciones para las secciones */

@keyframes fadeIn {

    0% {

        opacity: 0;

        transform: translateY(50px);

    }

    100% {

        opacity: 1;

        transform: translateY(0);

    }

}



/* Clase que activa la animación */

.section-visible {

    animation: fadeIn 1s ease-out forwards;

}



/* Ocultar las secciones inicialmente */

section {

    opacity: 0;

}







/*============== Footer General ===========*/

#footer {

    background-color: #1d7798;

    padding: 40px 20px;

}



/* Contenedor principal - Se asegura de distribuir bien los elementos */

#footer .contenedor {

    display: flex;

    justify-content: space-between;

    flex-wrap: wrap;

    max-width: 1200px;

    /* Se amplió el espacio disponible */

    margin: auto;

    align-items: flex-start;

    /* Asegura que los elementos se alineen bien */

    gap: 30px;

}



/* Sección Izquierda - Formulario de contacto */

#footer .contacto {

    flex: 1;

    max-width: 450px;

    /* Un poco más de ancho */

    text-align: left;

}



#footer .contacto h3 {

    font-size: 2rem;

    color: #7eb9d1;

    margin-bottom: 15px;

}



/* Campos del formulario */

#footer .contacto .campo {

    margin-bottom: 10px;

}



#footer .contacto input,

#footer .contacto select,

#footer .contacto textarea {

    width: 100%;

    padding: 10px;

    border: 1px solid #ccc;

    border-radius: 5px;

    font-size: 1rem;

}



/* Botón de Envío */

#footer .contacto button {

    width: 40%;

    /* Se amplía para que quede mejor alineado */

    background-color: #5ea9c6;

    color: white;

    border: none;

    padding: 12px;

    font-size: 1rem;

    border-radius: 5px;

    cursor: pointer;

    transition: 0.3s;

}



#footer .contacto button:hover {

    background-color: #044c70;

}



/* Sección Derecha - Redes, Logo y Aviso */

#footer .info {

    flex: 1;

    max-width: 450px;

    text-align: right;

    display: flex;

    flex-direction: column;

    align-items: flex-end;

    /* Asegura que todo se mantenga alineado a la derecha */

}



/* Redes Sociales */

#footer .redes-sociales {

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    /* Alinea todo a la izquierda */

    gap: 10px;

    /* Espaciado entre cada red social */

}



#footer .redes-sociales p {

    color: white;

    /* Texto en blanco */

    font-size: 1rem;

    font-weight: bold;

    margin-bottom: 10px;

}



#footer .redes-sociales a {

    display: flex;

    align-items: center;

    /* Alinea icono y texto en la misma línea */

    text-decoration: none;

    color: white;

    /* Texto en blanco */

    font-size: 1rem;

    font-weight: bold;

    gap: 8px;

    /* Espacio entre el icono y el texto */

    transition: 0.3s;

}



#footer .redes-sociales a img {

    width: 30px;

    /* Tamaño de los iconos */

    height: auto;

    display: block;

}



#footer .redes-sociales a:hover {

    color: #71b0c9;

    /* Cambio de color al pasar el mouse */

}



#footer .redes-sociales a img:hover {

    opacity: 0.7;

}



/* Logo de la ludoteca */

#footer .logo-ludoteca img {

    width: 200px;

    margin: 20px 0;

}



/* Aviso de privacidad */

#footer .aviso-privacidad {

    text-align: right;

}



#footer .aviso-privacidad a {

    color: #ffffff;

    text-decoration: none;

}



#footer .aviso-privacidad a:hover {

    text-decoration: underline;

}


/*Línea divisora redes*/
:root {
  --line-color: #f07b26; /* color de la línea */
  --height: 2px;         /* grosor */
}

.soft-hr {
  border: 0; /* quita el borde default del hr */
  height: var(--height);
  margin: 5px 0;
  background: linear-gradient(90deg, transparent, var(--line-color), transparent);
  width: 100%; /* opcional: ancho menor y centrado */
  margin-left: auto;
  margin-right: auto;
}

/* Línea Divisora */

.footer-bottom {

    margin-top: 50px;

    text-align: center;

}



.footer-bottom hr {

    border: none;

    height: 1px;

    background: #ccc;

    margin-bottom: 10px;

}



.footer-bottom p {

    font-size: 0.9rem;

    color: #eeeeee;

}



/* Estilos Responsivos */

@media (max-width: 768px) {

    #footer .contenedor {

        flex-direction: column;

        text-align: center;

        align-items: center;

    }



    #footer .contacto,

    #footer .info {

        max-width: 100%;

        text-align: center;

        align-items: center;

    }



    #footer .redes-sociales {

        align-items: center;

    }



    #footer .redes-sociales a {

        margin: 5px;

    }



    #footer .aviso-privacidad {

        text-align: center;

    }



    #footer .contacto button {

        width: 100%;

    }

}