/* --- Configuración General --- */
:root {
    --color-primary: #3E7C26; /* Verde azulado vibrante */
    --color-secondary: #ff8c00; /* Naranja divertido */
    --color-accent: #f0f8ff;   /* Azul muy claro para textos */
    --color-dark: #2c3e50;     /* Color oscuro para textos */
    --font-heading: 'Fredoka One', cursive; /* Fuente gordita y divertida */
    --font-body: 'Baloo 2', cursive; /* Fuente redondeada fácil de leer */
}

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

body {
    font-family: var(--font-body);
    color: var(--color-dark);
    line-height: 1.6;
    /* AQUÍ SE USA TU IMAGEN DE FONDO */
    /* Ajuste de ruta: la imagen está en public/, CSS en public/web/ */
    background-image: url('image_0.png');
    background-size: cover; /* Asegura que cubra toda la pantalla */
    background-position: center;
    background-attachment: fixed; /* El fondo se queda fijo al hacer scroll */
    background-repeat: no-repeat;
}

/* Contenedor general para centrar el contenido */
.container {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}

/* Cajas blancas semitransparentes para que el texto se lea bien sobre el fondo */
.main-box {
    background-color: rgba(255, 255, 255, 0.9); /* Blanco al 90% de opacidad */
    padding: 40px;
    border-radius: 30px; /* Bordes muy redondeados */
    box-shadow: 0 10px 25px rgba(0,0,0,0.2); /* Sombra suave */
}

h1, h2, h3 {
    font-family: var(--font-heading);
    color: var(--color-primary);
    margin-bottom: 20px;
}

h1 {
    font-size: 3rem;
    text-shadow: 2px 2px 0px var(--color-secondary); /* Sombra naranja divertida */
}

h2 {
    font-size: 2.5rem;
}

.subtitle {
    font-size: 1.3rem;
    margin-bottom: 30px;
    color: #555;
}

/* --- Botón de Llamada a la Acción (CTA) --- */
.cta-button {
    display: inline-block;
    padding: 15px 40px;
    background-color: var(--color-secondary);
    color: white;
    text-decoration: none;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    border-radius: 50px;
    box-shadow: 0 5px 15px rgba(255, 140, 0, 0.4);
    transition: transform 0.3s ease, background-color 0.3s ease;
    margin-top: 30px;
}

.cta-button:hover {
    transform: scale(1.05) translateY(-5px); /* Efecto de "saltar" al pasar el mouse */
    background-color: #e67e00;
}

/* --- Sección Principal (Hero) y Video --- */
.hero-section {
    padding: 60px 0;
    min-height: 90vh; /* Ocupa casi toda la altura de la pantalla */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* logo en encabezado */
.header-logo {
    max-width: 300px;
    margin-bottom: 20px;
}

/* Estilo clásico para el contenedor de video (versión original) */
.video-container {
    width: 100%;
    max-width: 800px; /* limitar ancho si se desea */
    margin: 0 auto;
    border-radius: 20px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.3);
    border: 5px solid white;
}

/* El elemento <video> hereda la anchura y ajusta la altura automáticamente */
.video-container video {
    width: 100%;
    height: auto;
    border-radius: 20px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.3);
    border: 5px solid white;
}

/* --- Sección Cómo Funciona --- */
.how-it-works {
    padding: 60px 0;
}

/* Cuadrícula para los 3 pasos */
.steps-grid {
    display: flex;
    gap: 30px;
    justify-content: center;
    flex-wrap: wrap; /* Se adapta a móviles */
}

.step-box {
    background-color: rgba(255, 255, 255, 0.95);
    padding: 30px;
    border-radius: 25px;
    flex: 1 1 250px; /* Ancho mínimo de 250px por caja */
    max-width: 350px;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
    border-bottom: 5px solid var(--color-primary);
}

.step-box:hover {
    transform: translateY(-10px);
}

.icon {
    font-size: 4rem;
    margin-bottom: 10px;
}

/* --- Sección Galería --- */
.gallery-section {
    padding: 60px 0;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); /* Cuadrícula automática responsiva */
    gap: 20px;
    margin-top: 30px;
}

.gallery-grid img {
    width: 100%;
    height: auto;
    border-radius: 15px;
    border: 4px solid white;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    transition: transform 0.3s ease;
}

.gallery-grid img:hover {
    transform: scale(1.05) rotate(2deg); /* Efecto divertido al pasar el mouse */
}

/* --- Pie de página --- */
footer {
    text-align: center;
    padding: 30px;
    background-color: rgba(0, 168, 150, 0.9); /* Color primario con transparencia */
    color: white;
    font-family: var(--font-heading);
}

/* --- Ajustes para móviles --- */
@media (max-width: 768px) {
    h1 { font-size: 2.2rem; }
    h2 { font-size: 1.8rem; }
    .main-box { padding: 25px; }
    .hero-section { padding-top: 30px; min-height: auto;}
}
