body {
    margin: 0;
    font-family: 'Poppins', sans-serif;
    background-color: #f8f5f0;
}

header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 50px;
    background-color: #f8f5f0;
}

.logo-container h1 {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 3rem;
    color: #4b66ff;
    margin: 0;
}

.logo-container p {
    font-size: 1.2rem;
    color: #333;
    margin: 0;
}

.logo-eleuventur {
    width: 200px;
    height: auto; 
}

.social-media {
    display: flex;
    align-items: center;
    gap: 10px;
}

.social-media p {
    color: #333;
    font-size: 1rem;
    margin: 0;
}

.instagram-icon {
    width: 30px;
    height: auto;
}

.language-switcher {
    margin-left: 10px;
    display: flex;
    align-items: center;
}

.flag-icon {
    width: 30px;
    height: auto;
    border-radius: 50%;
    border: 1px solid #ddd;
}


/* Sección de la Ola */
.wave-container {
    width: 100%;
    overflow: hidden;
    line-height: 0;
}

.wave-image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    margin-top: -2px;
}

/* ---
   HERO SECTION STYLES
--- */
.hero {
    padding: 50px;
}

.hero-text-container {
    text-align: left;
    margin-bottom: 50px;
    margin-left: 10%;
    max-width: 600px;
}

.hero-text-container h1 {
    font-size: 3rem;
    color: #00a870;
    margin: 0;
}

.hero-text-container p {
    font-size: 2rem;
    color: #00a870;
    line-height: 1.2;
}

/* El contenedor de los textos y flechas ahora es relativo para posicionar los elementos dentro de él */
.hero-content {
    position: relative;
    height: 600px;
    max-width: 1200px;
    margin: 0 auto;
}

/* Estilos de los textos flotantes */
.text-group {
    position: absolute;
    max-width: 300px;
}

.group1 {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

.group2 {
    top: 160px;
    left: 180px;
}

.group3 {
    top: 295px;
    right: 215px;
}

/* Centra el texto dentro de cada párrafo */
.hero-content p {
    text-align: center;
    font-size: 1.2rem;
    color: #333;
    margin: 20px;
}

/* Posicionamiento de las flechas */
.arrow1 {
    width: 500px;
    position: absolute;
    top: 100px;
    left: 50%;
    transform: translateX(-70%);
}

.arrow2 {
    width: 290px;
    position: absolute;
    top: 315px;
    right: 500px;
}

/* ---
   SECCIÓN DE CURSOS
--- */
.cursos {
    padding: 80px 50px;
    background-color: #f8f5f0;
    text-align: center;
}

.curso-container {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.curso-card {
    background-color: transparent;
    padding: 0;
    box-shadow: none;
    max-width: 400px;
    flex-basis: 45%;
}

.curso-card h2 {
    color: #4b66ff;
    font-size: 2.2rem;
    font-weight: 700;
}

.curso-card p {
    color: #555;
    font-size: 1.1rem;
    line-height: 1.6;
}

.curso-card .precio {
    font-size: 1.5rem;
    color: #333;
    font-weight: 700;
    margin-top: 30px;
}

/* ---
   SECCIÓN DE NIVELES
--- */
.niveles {
    padding: 80px 50px;
}

.niveles-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 50px;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}

.niveles-image-container {
    flex-shrink: 0;
    max-width: 450px;
}

.niveles-image {
    width: 100%;
    height: auto;
    display: block;
}

.niveles-text-container {
    flex-grow: 1;
    max-width: 600px;
}

.nivel-item {
    margin-bottom: 20px;
}

.nivel-item h3 {
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.6;
    margin: 0;
    color: #333; /* Color de texto general para la descripción */
}

/* Estilos para el texto de nivel (A1, A2, etc.) */
.nivel-item span {
    color: #00a870; /* El color verde que quieres */
    font-weight: 700; /* Lo hacemos más grueso para que destaque */
    margin-right: 10px; /* Separación entre el nivel y la descripción */
    font-size: 1.7rem;
}


/* ---
   SECCIÓN CÓMO EMPIEZO
--- */
.como-empezar {
    padding: 80px 50px;
    text-align: center;
}

.como-empezar h2 {
    color: #00a870;
    font-size: 2.5rem;
    font-weight: 700;
}

.como-empezar-container {
    position: relative;
    height: 700px; /* Un valor fijo para que los elementos absolutos tengan espacio */
    max-width: 1200px;
    margin: 0 auto;
}

/* Estilos de los pasos */
.paso-1, .paso-2, .paso-3 {
    position: absolute;
    max-width: 250px;
    text-align: center;
}

.paso-1 {
    top: 50px;
    left: 8%;
}

.paso-2 {
    top: 240px;
    left: 40%;
}

.paso-3 {
    top: 500px;
    right: 8%;
}

.paso-icono {
    width: 60px;
    height: auto;
    margin-bottom: 10px;
}

.paso-1 p, .paso-2 p, .paso-3 p {
    font-size: 1.1rem;
    color: #555;
    line-height: 1.4;
}

/* Ajuste para la imagen gtky.png en el Paso 2 */
.paso-2 .paso-icono {
    transform: translateX(-10px); /* Mueve la imagen 10px a la izquierda. Ajusta este valor. */
}

.contacto-iconos {
    display: flex;
    justify-content: center;
    align-items: center; /* Esta línea centrará los elementos verticalmente */
    gap: 15px;
    margin-top: 15px;
}

.contacto-iconos img {
    height: 30px; /* Damos una altura fija para ambas */
    width: auto; /* Dejamos que la anchura se ajuste automáticamente */
}
/* Estilo específico para la imagen de WhatsApp */
.contacto-iconos img[src*="whatsapp.png"] {
    height: 50px; /* Damos una altura fija para ambas */
    width: auto; /* Dejamos que la anchura se ajuste automáticamente */

}

/* Estilos de las flechas */
.arrow3 {
    position: absolute;
    width: 115px;
}

.arrow-to-paso2 {
    width: 10%; /* Ancho en porcentaje */
    top: 180px;
    left: 28%; /* Posición relativa */
    transform: rotate(0deg);
}

.arrow-to-paso3 {
    width: 10%; /* Ancho en porcentaje */
    top: 400px;
    right: 30%; /* Posición relativa */
    transform: rotate(0deg);
}

/* ---
   SECCIÓN DE TESTIMONIOS
--- */
.testimonios {
    padding: 80px 50px;
    text-align: center;
    background-color: #f8f5f0;
}

.testimonios h2 {
    color: #00a870;
    font-size: 2.5rem;
    font-weight: 700;
}

.testimonios-container {
    margin-top: 40px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden; 
    /* Esta es la clave: el contenedor flexbox no debe alinear los elementos en altura */
    display: flex;
    justify-content: center; /* Esto centra las tarjetas horizontalmente en su contenedor */
    flex-wrap: wrap; /* Permite que las tarjetas se envuelvan si no hay espacio */
    gap: 40px; /* El espacio entre las tarjetas */
}

.carrusel {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start; /* Esto evita que las tarjetas se estiren a la misma altura */
    gap: 40px;
    padding: 20px 0;
    animation: carrusel-scroll 30s linear infinite;
}

.testimonio-card {
    background-color: #ffffff;
    border: 2px solid #4b66ff;
    border-radius: 20px;
    padding: 30px;
    width: 200px; /* Mantén el ancho fijo que has ajustado */
    min-width: 200px; /* Asegura que no se encoja */
    height: auto; /* La altura se ajustará automáticamente al contenido */
    text-align: left;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    flex-shrink: 0;
    
    /* ¡Estos son los cambios clave! */
    display: flex; /* Convierte la tarjeta en un contenedor flex */
    flex-direction: column; /* Apila los elementos (header, rating, p) verticalmente */
    justify-content: space-between; /* Distribuye el espacio entre los elementos */
}

.card-header {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.google-logo {
    width: 20px; /* Mismo ancho que antes */
    height: 20px; /* Mismo alto que antes */
    object-fit: contain; /* Asegura que la imagen no se recorte ni se estire */
}

.profile-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

.profile-pic {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.testimonio-card h3 {
    font-size: 1.1rem;
    color: #333;
    margin: 0;
}

.rating {
     color: gold;
    font-size: 1.5rem;
    display: flex; /* Convierte .rating en un contenedor flex */
    align-items: center; /* Centra verticalmente el logo y las estrellas */
    gap: 5px; /* Pequeño espacio entre el logo y las estrellas */
    margin-top: 5px; /* Ajusta este margen si necesitas más espacio superior */
    margin-bottom: 5px; /* Ajusta este margen si necesitas más espacio inferior */
}

.star {
    margin-right: -2px;
}

.testimonio-card p {
    font-size: 1rem;
    color: #555;
    line-height: 1.5;
    margin-top: 15px;
    flex-grow: 1; /* ¡Esto es lo que hace que el párrafo ocupe el espacio disponible! */
}

/* La animación CSS para el carrusel */
@keyframes carrusel-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
       /*
          Calcula la distancia de desplazamiento:
          - el ancho de las 4 tarjetas (4 * 200px)
          - el espacio entre las 3 tarjetas (3 * 40px)
          - el espacio extra al final
        */
        transform: translateX(calc(-200px * 4 - 40px * 4));
    }
}

/* ---
   SECCIÓN DE CONTACTO
--- */
.contacto {
    padding: 80px 50px;
    background-color: #f8f5f0;
    text-align: center;
}

.contacto h2 {
    color: #00a870;
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 40px;
}

.contacto-container {
    max-width: 600px;
    margin: 0 auto;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
    text-align: left;
}

.form-group {
    display: flex;
    flex-direction: column;
}

.form-group label {
    font-size: 1.1rem;
    color: #4b66ff;
    margin-bottom: 5px;
}

.form-group input,
.form-group textarea {
    padding: 15px;
    border: 2px solid #ddd;
    border-radius: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    background-color: #fff;
    transition: border-color 0.3s;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #00a870;
}

.submit-button {
    padding: 15px 30px;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    background-color: #4b66ff;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.submit-button:hover {
    background-color: #00a870;
}


/* Estilos para el mensaje de éxito */
.mensaje-exito {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #00a870;
    color: #fff;
    padding: 20px 40px;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.mensaje-exito.mostrar {
    opacity: 1;
    visibility: visible;
}



/* ---
   PIE DE PÁGINA
--- */
.footer {
    background-color: #00a870;
    color: #fff;
    padding: 40px 50px;
    text-align: center;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}

.logo-eleuventur-footer {
    width: 200px;
    height: auto;
}

.footer-social {
    display: flex;
    gap: 20px;
    margin-top: 20px;
}

.footer-social a {
    display: block;
}

.instagram-icon-footer, .whatsapp-icon-footer {
    width: 30px;
    height: auto;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin-top: 20px;
    padding-top: 20px;
}

.footer-bottom p {
    margin: 0;
    font-size: 0.9rem;
}

/* ---
   AVISO DE COOKIES
--- */
.cookie-consent {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background-color: #333;
    color: #fff;
    padding: 15px 30px;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    z-index: 9999;
    font-size: 0.9rem;
    max-width: 80%;
    /* Add the visibility styles here */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.cookie-consent.show {
    opacity: 1;
    visibility: visible;
}

.cookie-consent p {
    margin: 0;
}

.consent-link {
    color: #00a870;
    text-decoration: underline;
    margin-left: 5px;
}

.consent-button {
    background-color: #4b66ff;
    color: #fff;
    border: none;
    padding: 8px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 600;
}

.consent-button:hover {
    background-color: #00a870;
}


/* ---
   MEDIA QUERIES - ESTILOS RESPONSIVOS
   --- */
@media (max-width: 1273px) {
    /* Encabezado */
    header {
        padding: 20px 30px;
    }
    .logo-eleuventur {
        width: 180px;
    }
    .social-media p {
        font-size: 0.9rem;
    }
    .instagram-icon {
        width: 25px;
    }

    /* Hero Section */
    .hero-text-container {
        margin-left: 5%;
    }
    .hero-text-container h1 {
        font-size: 2.5rem;
    }
    .hero-text-container p {
        font-size: 1.8rem;
    }
    .hero-content {
        max-width: 90%;
    }
    .text-group {
        max-width: 280px;
    }

    /* Aquí he corregido los anchos de las flechas para que sean % */
    .arrow1 {
        width: 35%;
        top: 125px;
        left: 53%;
    }
    .arrow2 {
        width: 20%;
        top: 314px;
        right: 42%;
    }
    .group1 {
        top: 0;
        left: 50%;
        transform: translateX(-50%);
    }
    .group2 {
        top: 150px;
        left: 50px;
    }
    .group3 {
        top: 300px;
        right: 8%;
    }
    /* Sección de Cursos en tablets */
    .curso-card {
        flex-basis: 100%;
        max-width: 400px;
    }
    /* Estilos de los pasos */
 
    .paso-1 {
        top: 50px;
        left: 8%;
    }

    .paso-2 {
        top: 200px;
        left: 36%;
    }

    .paso-3 {
        top: 420px;
        right: 8%;
    }

    .paso-icono {
        width: 60px;
        height: auto;
        margin-bottom: 10px;
    }
    .arrow-to-paso2 {
    width: 6%; /* Ancho en porcentaje */
    top: 190px;
    left: 33%; /* Posición relativa */
    transform: rotate(0deg);
    }

    .arrow-to-paso3 {
        width: 6%; /* Ancho en porcentaje */
        top: 375px;
        right: 32%; /* Posición relativa */
        transform: rotate(0deg);
    }
}


@media (max-width: 768px) {
    /* Esto aplica los estilos cuando la pantalla es de 768px o menos */
    
    /* Encabezado */
    header {
        flex-direction: column;
        padding: 20px;
    }
    .social-media {
        margin-top: 10px;
    }
    .logo-eleuventur {
        width: 150px;
    }

    /* Sección principal (Hero Section) */
    .hero {
        padding: 20px;
    }
    .hero-text-container {
        text-align: center;
        margin-left: 0;
    }
    .hero-text-container h1 {
        font-size: 2rem;
    }
    .hero-text-container p {
        font-size: 1.2rem;
    }

    /* Ocultamos las flechas en móviles */
    .arrow1, .arrow2 {
        display: none;
    }

    /* Los bloques de texto flotantes ahora se apilan */
    .hero-content {
        height: auto;
        flex-direction: column;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
    }
    .text-group {
        position: static;
        max-width: 90%;
        margin-bottom: 20px;
        transform: none;
        /* He añadido este estilo para asegurar el centrado en móviles */
        margin-left: auto;
        margin-right: auto;
    }
    .group1, .group2, .group3 {
        top: auto;
        left: auto;
        right: auto;
    }

    /* Sección de Cursos en móviles */
    .cursos {
        padding: 40px 20px;
    }
    .curso-container {
        flex-direction: column;
        gap: 20px;
        align-items: center;
    }
    .curso-card {
        padding: 0;
        flex-basis: 100%;
        max-width: 90%;
    }
    .niveles {
    padding: 40px 20px;
    }

    .niveles-container {
        flex-direction: column;
        text-align: center;
    }

    .niveles-image-container {
        max-width: 300px; /* Reduce el tamaño de la imagen en móviles */
        margin-bottom: 20px;
    }

    .niveles-text-container {
        text-align: center;
    }

    .nivel-item h3 {
        justify-content: center; /* Centra el texto */
        text-align: center;
    }



    /* Sección Cómo Empiezo en móviles */
    .como-empezar {
        padding: 40px 20px;
    }
    .como-empezar h2 {
        font-size: 2rem;
    }
    .como-empezar-container {
        position: static;
        height: auto;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 20px;
    }
    .paso-1, .paso-2, .paso-3 {
        position: static;
        max-width: 90%;
        margin: 0;
        text-align: center;
    }
    .arrow3 {
        display: none;
    }

    /* Pie de página en móviles */
    .footer-content {
        flex-direction: column;
    }
    .footer-social {
        justify-content: center;
    }

    
}