/*
    La sección hero combina una imagen de fondo con un degradado oscuro.
    El degradado mejora el contraste y la legibilidad del texto.
*/
.hero {
    min-height: 62vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 5%;
    color: white;
    text-align: center;
    background-image: linear-gradient(rgba(0, 0, 0, 0.68), rgba(0, 0, 0, 0.68)), url("../inicio.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/* Limita el ancho del texto para mejorar la lectura. */
.hero-contenido {
    max-width: 760px;
}

/* Tamaño responsive mediante clamp: mínimo, valor adaptable y máximo. */
.hero h1 {
    margin-bottom: 14px;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.15;
}

.hero p {
    margin-bottom: 26px;
    font-size: clamp(1rem, 2vw, 1.2rem);
}

/*
    @keyframes define una animación desde un estado inicial hasta uno final.
    opacity crea la aparición y transform produce un pequeño desplazamiento.
*/
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Aplica la animación creada al elemento que tenga esta clase. */
.fade-in {
    animation: fadeIn 0.9s ease-out both;
}

/* Espaciado de la sección de beneficios. */
.beneficios {
    padding-block: 56px;
    text-align: center;
}

/* Flexbox distribuye las tarjetas y permite que bajen de línea. */
.lista-beneficios {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 28px;
}

/* flex permite que todas las tarjetas ocupen un ancho parecido. */
.beneficio {
    flex: 1 1 240px;
    padding: 26px 20px;
    background-color: white;
    border-radius: var(--radio);
    box-shadow: var(--sombra);
}

.beneficio i {
    margin-bottom: 12px;
    color: var(--color-principal);
    font-size: 2rem;
}

/* Ajuste específico para celulares. */
@media (max-width: 600px) {
    .hero {
        min-height: 54vh;
    }
}
