  :root {
            --primary-dark: #E1F4F9; /* El azul claro de tu imagen */
             --primary-main: #CDECF3; /* Un tono apenas más oscuro para botones y efectos */
            --accent-color: #D4AF37;
            --accent-hover: #C5A028;
            --text-main: #2B2D42;
            --text-light: #6C757D;
            --bg-main: #F8F9FA;
            --bg-card: #ffffff;
            
            --radius-sm: 8px;
            --radius-lg: 24px;
            --shadow-md: 0 10px 20px rgba(0, 0, 0, 0.08);
            --shadow-lg: 0 20px 40px rgba(11, 19, 43, 0.1);
            --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: var(--bg-main); color: var(--text-main); line-height: 1.6; }
        
        .container { width: 100%; max-width: 1000px; margin: 0 auto; padding: 0 24px; }
        
        header { position: fixed; top: 0; left: 0; width: 100%; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(0, 0, 0, 0.05); z-index: 1000; }
        .navbar { display: flex; justify-content: space-between; align-items: center; height: 80px; }
        .logo { display: flex; align-items: center; gap: 12px; font-size: 1.5rem; font-weight: 800; color: #0B132B; text-decoration: none; }
        .logo-img { height: 45px; width: auto; object-fit: contain; }

        .hero { padding: 160px 0 120px; background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-main) 100%); color: var(--text-main); text-align: center; }
        .hero h1 { font-size: clamp(2rem, 4vw, 3.5rem); margin-bottom: 20px; letter-spacing: -1px; }
        .hero h1 span { color: var(--text-main); }
        .hero p { font-size: 1.1rem; color: var(--text-main); max-width: 600px; margin: 0 auto; font-weight: 300; }

        /* Grid de Módulos */
        .portal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; margin-top: -60px; position: relative; z-index: 10; padding-bottom: 100px; }
        
        .module-card { background: var(--bg-card); border-radius: var(--radius-lg); padding: 40px 30px; text-align: center; box-shadow: var(--shadow-md); transition: var(--transition); text-decoration: none; color: inherit; border-top: 6px solid var(--accent-color); display: flex; flex-direction: column; align-items: center; cursor: pointer; }
        .module-card:hover:not(.locked) { transform: translateY(-10px); box-shadow: var(--shadow-lg); }
        .module-card.locked { opacity: 0.85; border-top-color: var(--text-light); }
        .module-card.locked:hover { transform: scale(1.02); }
        
        .badge { background: rgba(42, 157, 143, 0.15); color: #2A9D8F; padding: 6px 14px; border-radius: 20px; font-size: 0.85rem; font-weight: 700; margin-bottom: 20px; display: inline-flex; align-items: center; gap: 6px; }
        .badge.premium { background: rgba(226, 232, 240, 0.8); color: var(--text-light); }
        
        .module-icon { font-size: 4.5rem; color: var(--primary-main); margin-bottom: 20px; }
        .locked .module-icon { color: var(--text-light); }
        
        .module-card h3 { font-size: 1.5rem; color: #0B132B; margin-bottom: 15px; font-weight: 700; }
        .module-card p { color: var(--text-light); margin-bottom: 30px; flex-grow: 1; font-size: 0.95rem; }
        
        .btn-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 28px; background: var(--primary-dark); color: var(--text-main); font-size: 1rem; font-weight: 600; border-radius: var(--radius-sm); transition: var(--transition); width: 100%; }
        .module-card:hover:not(.locked) .btn-action { background: var(--primary-main); }
        .btn-action.btn-locked { background: #E2E8F0; color: var(--text-light); }

        footer { background-color: var(--primary-dark); color: #ffffff; padding: 40px 0 20px; border-top: 4px solid var(--accent-color); text-align: center; }
        .footer-brand { margin-bottom: 20px; display: flex; justify-content: center; }
       .footer-bottom { border-top: 1px solid rgba(11, 19, 43, 0.1); padding-top: 20px; color: #0B132B; font-size: 0.875rem; font-weight: 500; }