/* --- VARIABLES & RESET --- */
:root {
    --text-main: #0F172A;
    --text-light: #475569;
    --bg-light: #F8FAFC;
    --accent-yellow: #FFD045;
    
    /* Colores de Tarjetas */
    --c-blue: #4A90E2;
    --c-yellow: #FFD045;
    --c-purple: #7B61FF;
    --c-green: #9CC043;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Poppins', sans-serif;
    color: var(--text-main);
    background: #fff;
    line-height: 1.6;
    overflow-x: hidden;
    scroll-behavior: smooth; /* Desplazamiento suave */
}

.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* --- NAVBAR --- */
.navbar { padding: 15px 0; background: #fff; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
.nav-container { display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 1.5rem; font-weight: 800; color: #2d3e50; }

.nav-links { list-style: none; display: flex; gap: 25px; }
.nav-links a { text-decoration: none; color: var(--text-light); font-weight: 500; transition: 0.3s; }
.nav-links a:hover { color: var(--c-blue); }

.btn-nav, .btn-primary {
    background: var(--accent-yellow); color: #000; padding: 10px 25px;
    border-radius: 8px; text-decoration: none; font-weight: 700; display: inline-block; border: none; cursor: pointer;
    transition: transform 0.2s;
}
.btn-nav:hover, .btn-primary:hover { transform: translateY(-2px); }

.hamburger { display: none; cursor: pointer; flex-direction: column; gap: 5px; }
.hamburger span { width: 25px; height: 3px; background: #333; }

/* --- HERO (PORTADA) --- */
.hero { 
    padding: 40px 0 60px; /* Espacio compacto en PC */
    min-height: 70vh; 
    display: flex; align-items: center; 
}
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.hero-text h1 { font-size: 3.5rem; line-height: 1.1; margin-bottom: 20px; }
.hero-text h1 span { color: var(--accent-yellow); }
.hero-subtitle { font-size: 1.1rem; color: var(--text-light); margin-bottom: 30px; font-weight: 600; max-width: 500px; }

.hero-image img { 
    width: 100%; max-width: 500px; 
    border-radius: 20px;
    animation: float 6s ease-in-out infinite; 
}
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-20px); } }

/* --- QUIENES SOMOS --- */
.about-section { background: #fff; padding: 80px 0; }
.about-content { display: grid; grid-template-columns: 1fr 2fr; gap: 50px; }
.about-title h2 { font-size: 3rem; line-height: 1; }
.about-title span { color: var(--c-blue); }
.about-text h3 { font-size: 1.4rem; margin-bottom: 20px; color: var(--text-main); }
.about-text p { margin-bottom: 15px; color: var(--text-light); }

/* --- SERVICIOS --- */
.services-section { background: var(--bg-light); padding: 80px 0; }
.section-header { text-align: center; margin-bottom: 50px; }
.section-header h2 { font-size: 2.5rem; }
.section-header span { color: var(--accent-yellow); }

/* Grid de Tarjetas */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 25px; }
.card-link { text-decoration: none; color: inherit; display: block; }

.card {
    background: white; border-radius: 20px; position: relative;
    box-shadow: 0 15px 30px rgba(0,0,0,0.05); overflow: hidden;
    text-align: center; padding-bottom: 30px; transition: transform 0.3s; height: 100%;
}
.card:hover { transform: translateY(-10px); }

.card-curve {
    height: 90px; width: 140%; margin-left: -20%; border-radius: 0 0 50% 50%;
    position: absolute; top: 0; z-index: 1;
}
.card-blue .card-curve { background: var(--c-blue); }
.card-yellow .card-curve { background: var(--c-yellow); }
.card-purple .card-curve { background: var(--c-purple); }
.card-green .card-curve { background: var(--c-green); }

.card-content { position: relative; z-index: 2; margin-top: 15px; }
.card-content h3 { color: white; margin-bottom: 10px; font-size: 1.1rem; min-height: 50px; display: flex; align-items: center; justify-content: center; }

.icon-circle {
    width: 70px; height: 70px; background: white; border-radius: 50%; margin: 0 auto 15px;
    display: flex; align-items: center; justify-content: center; font-size: 2rem;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.card-content p { font-size: 0.9rem; color: var(--text-light); font-weight: 600; }

/* --- DETALLES DE SERVICIOS (TEXTO CLIENTE) --- */
.services-details-container { max-width: 900px; margin: 60px auto 0; display: flex; flex-direction: column; gap: 40px; }

.service-detail-block {
    background: #fff; padding: 40px; border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03); scroll-margin-top: 100px;
    border-left: 5px solid #ddd;
}
.border-blue { border-left-color: var(--c-blue); }
.border-yellow { border-left-color: var(--c-yellow); }
.border-purple { border-left-color: var(--c-purple); }
.border-green { border-left-color: var(--c-green); }

.service-detail-block h3 { font-size: 1.8rem; margin-bottom: 5px; color: var(--text-main); }
.subtitle-detail { color: var(--c-blue); font-weight: 700; margin-bottom: 20px; font-size: 1.1rem; }
.service-detail-block p { color: var(--text-light); margin-bottom: 15px; }
.service-detail-block ul { margin-left: 20px; color: var(--text-light); margin-bottom: 20px; }
.service-detail-block li { margin-bottom: 8px; }

/* Cajas y estilos internos */
.process-box { background: #F0F7FF; padding: 25px; border-radius: 10px; margin: 20px 0; }
.guarantee-box { background: #FFFBE6; padding: 20px; border-radius: 10px; border: 1px solid var(--c-yellow); }
.methodology-note { background: #f8fafc; padding: 15px; border-radius: 8px; display: flex; align-items: center; gap: 15px; }
.disc-badge { background: #2d3e50; color: white; padding: 5px 10px; border-radius: 5px; font-weight: bold; }
.mini-card { background: #fff; border: 1px solid #eee; padding: 10px 20px; border-radius: 20px; font-size: 0.9rem; font-weight: 600; box-shadow: 0 3px 6px rgba(0,0,0,0.05); }
.mini-card.lego { background: #ffebeb; color: #d00; border-color: #ffcccc; }
.cards-mini-grid { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.separator { margin: 30px 0; border: 0; border-top: 1px solid #eee; }

/* Columnas dobles para Talento/Bienestar */
.dual-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 20px; }
.dual-columns h4 { margin-bottom: 10px; color: var(--c-green); }

/* --- CLIENTES --- */
.clients-section { padding: 60px 0; text-align: center; background: #fff; }
.clients-section h3 { margin-bottom: 40px; color: #ccc; letter-spacing: 2px; text-transform: uppercase; font-size: 0.9rem; }
.logos-grid { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; }
.logo-text { font-weight: 800; color: #e2e8f0; font-size: 1.5rem; }

/* --- FOOTER --- */
.footer { padding: 80px 0; background: #0F172A; text-align: center; color: white; }

/* --- RESPONSIVE MOBILE (La parte más importante) --- */
@media (max-width: 768px) {
    .nav-links { display: none; } /* JS lo activará */
    .hamburger { display: flex; }

    /* Hero ajustado para que no choque con el menú */
    .hero { 
        padding-top: 140px; /* MUCHO espacio arriba */
        padding-bottom: 60px;
        text-align: center; 
        min-height: auto;
    }
    .hero-grid { grid-template-columns: 1fr; gap: 30px; }
    .hero-text h1 { font-size: 2.5rem; }
    .hero-image img { max-width: 80%; margin: 0 auto; }

    /* About */
    .about-content { grid-template-columns: 1fr; gap: 20px; }
    .about-title h2 { font-size: 2.5rem; }

    /* Servicios */
    .cards-grid { padding: 0 10px; }
    .service-detail-block { padding: 25px; }
    .dual-columns { grid-template-columns: 1fr; } /* Una columna en móvil */
}