:root {
            --bg-color: #0d0d0f;
            --card-bg: #161619;
            --accent-blue: #007bff;
            --text-main: #f5f5f7;
            --text-dim: #9ca3af;
            --accent-warm: #ffab00;  /* Ámbar Técnico */
            --bg-warm-dark: #141210; /* Carbón Cálido (Café muy oscuro) */
            --border-color: #26262b;
            --whatsapp-green: #25d366;
            --gradient-text: linear-gradient(135deg, #fff 0%, #007bff 100%);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        html { scroll-behavior: smooth; }

        body {
            background-color: var(--bg-color);
            color: var(--text-main);
            font-family: 'Montserrat', sans-serif;
            line-height: 1.7;
            overflow-x: hidden;
        }

        /* Utilidades */
        .container { max-width: 1200px; width: 100%; margin-left: auto; margin-right: auto; padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
        .section-padding { padding: 8rem 0; }
        .mono { font-family: 'JetBrains Mono', monospace; color: var(--accent-blue); font-size: 0.9rem; margin-bottom: 1rem; display: block; font-weight: 700; }
        /* Iconos Ámbar dentro de etiquetas mono */
        .mono i { color: var(--accent-warm); margin-right: 8px; font-size: 1.1em; vertical-align: text-bottom; }
        h1, h2, h3, h4 { font-family: 'Inter', sans-serif; }
        h2 { font-size: clamp(2.5rem, 5vw, 3.5rem); line-height: 1.1; margin-bottom: 3rem; font-weight: 800; letter-spacing: -1px; }

        /* Header */
        header {
            padding: 1.5rem 0;
            position: fixed;
            width: 100%;
            top: 0;
            background: rgba(13, 13, 15, 0.8);
            backdrop-filter: blur(12px);
            border-bottom: 1px solid var(--border-color);
            z-index: 1000;
        }
        
        /* Layout Búnker (Grid de 3 columnas para centrado perfecto) */
        nav { 
            display: grid; 
            grid-template-columns: 1fr auto 1fr; 
            align-items: center; 
        }
        
        .logo { justify-self: start; display: flex; align-items: center; }
        .logo img { height: 55px; width: auto; transition: transform 0.3s ease; } /* Logo más grande y presente */
        .logo:hover img { transform: scale(1.05); }

        .nav-links { display: flex; gap: 3rem; list-style: none; }
        .nav-links a { color: var(--text-main); text-decoration: none; font-size: 1.05rem; font-weight: 600; font-family: 'Montserrat', sans-serif; transition: color 0.3s; letter-spacing: 0.5px; }
        .nav-links a:hover { color: #fff; text-shadow: 0 0 10px rgba(0,123,255,0.5); }
        
        /* Botón Terminal (Header Right) */
        .header-right { justify-self: end; }
        .btn-terminal {
            display: inline-flex; align-items: center;
            font-family: 'JetBrains Mono', monospace; font-size: 0.9rem;
            color: #fff; text-decoration: none;
            border: 1px solid var(--accent-blue); 
            background: var(--accent-blue); 
            padding: 0.7rem 1.8rem; border-radius: 4px;
            transition: all 0.3s ease;
            box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3);
        }
        .btn-terminal:hover { 
            background: #0062cc; 
            border-color: var(--accent-blue); 
            color: #fff; 
            box-shadow: 0 6px 20px rgba(0, 123, 255, 0.5); 
            transform: translateY(-2px); 
        }

        /* Hamburger Menu (Base Styles) */
        .hamburger { display: none; cursor: pointer; background: transparent; border: none; z-index: 1100; padding: 0.5rem; }
        .bar { display: block; width: 25px; height: 2px; margin: 5px auto; transition: all 0.3s ease-in-out; background-color: #fff; }
        
        /* Mobile CTA (Hidden on Desktop/Tablet) */
        .mobile-cta { display: none; }

        /* Hero */
        .hero {
            height: 100vh;
            display: flex;
            align-items: center;
            /* Combinación: Gradiente Radial (luz) + Grid Técnico */
            background-image: 
                radial-gradient(circle at 80% 20%, #007bff25 0%, transparent 50%),
                linear-gradient(var(--border-color) 1px, transparent 1px), 
                linear-gradient(90deg, var(--border-color) 1px, transparent 1px);
            background-size: 100% 100%, 50px 50px, 50px 50px;
            background-position: center center;
            border-bottom: 1px solid var(--border-color);
            position: relative; /* Para contener el canvas absoluto */
        }
        .hero h1 { font-size: clamp(3rem, 10vw, 6rem); font-weight: 800; line-height: 0.9; margin-bottom: 2rem; letter-spacing: -3px; position: relative; z-index: 2; }
        .hero p { font-size: 1.25rem; color: var(--text-dim); max-width: 600px; margin-bottom: 3rem; position: relative; z-index: 2; }
        .hero .container { position: relative; z-index: 2; } /* Contenido sobre partículas */
        #particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
        
        /* Fondos Alternativos para Secciones */
        .bg-contrast { background-color: #111113; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); }
        /* Opción A: Acero Clínico */
        .bg-clinical { background-color: #F2F4F8; color: #1a1a1e; }
        .bg-clinical h2 { color: #0d0d0f; }
        .bg-clinical .mono { color: #0056b3; }

        /* Opción B: Búnker Blue (Contraste Corporativo Sólido) */
        .bg-warm { background-color: #004a99; background: linear-gradient(135deg, #0056b3 0%, #004494 100%); border-top: 1px solid #0062cc; border-bottom: 1px solid #0062cc; }
        /* Ajustes de color para fondo azul */
        .bg-warm .mono { color: var(--accent-warm); opacity: 1; }
        .bg-warm h2 { color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,0.2); }
        .bg-warm p { color: #e6f0ff !important; } /* Blanco con tinte azul muy suave */

        /* Páginas Legales: Ajuste de padding superior compensando el header fijo */
        .legal-section { padding-top: 12rem; }

        /* Divider: Diagonal Data Slice */
        .diagonal-divider {
            height: 100px;
            background-color: #F2F4F8; /* Coincide con bg-clinical */
            clip-path: polygon(0 100%, 100% 0, 100% 100%);
            margin-top: -1px; /* Evita gaps de subpixel */
            border: none;
        }

        /* Servicios */
        .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; }
        .service-card { 
            background: #161619; /* Fondo oscuro (Búnker) */
            padding: 3rem 2.5rem; 
            border: 1px solid #26262b; 
            border-top: 3px solid var(--accent-blue); /* Acento técnico superior */
            border-radius: 2px; /* Más cuadrado, más ingeniería */
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
            position: relative; overflow: hidden;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            cursor: pointer; /* Indicar que abre modal */
        }
        .service-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); border-top-color: var(--accent-warm); }
        
        /* Título Blanco para contrastar en fondo oscuro */
        .service-card h3 { font-size: 1.4rem; margin-bottom: 1rem; font-weight: 700; color: #fff; letter-spacing: -0.5px; }
        
        .service-card p { color: #9ca3af; font-size: 0.95rem; line-height: 1.6; }
        
        /* Icono Limpio (Sin burbuja, estilo esquemático) */
        .service-icon { 
            font-size: 2.2rem; color: var(--accent-warm); 
            margin-bottom: 1.5rem; display: inline-block;
            transition: all 0.3s ease; text-shadow: 0 0 15px rgba(255, 171, 0, 0.3);
        }
        
        /* Hover: El icono se "enciende" más fuerte */
        .service-card:hover .service-icon { transform: scale(1.1); text-shadow: 0 0 25px rgba(255, 171, 0, 0.6); }

        /* Portafolio: Grid Táctico 2-Col */
        .portfolio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem 3rem; margin-top: 2rem; }

        /* Módulo de Proyecto */
        .work-item { 
            margin-bottom: 0; display: flex; flex-direction: column; gap: 1.5rem; align-items: flex-start; 
            position: relative; padding: 0; background: transparent; border: none;
        }
        .work-item:hover { transform: none; box-shadow: none; }
        
        /* Pantalla / Monitor */
        .work-img { 
            width: 100%; height: 300px; flex: none; 
            border-radius: 2px; 
            /* Borde Permanente: Azul Técnico de 1px (Delimitador visual) */
            border: 1px solid var(--accent-blue);
            background: #1a1a1e; overflow: hidden; position: relative; 
            transition: all 0.3s ease;
            box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* Glow azul sutil */
            cursor: pointer; /* Indicar interactividad */
        }

        /* Efecto Activación (Hover): Borde Ámbar */
        .work-item:hover .work-img { 
            border-color: var(--accent-warm); 
            box-shadow: 0 0 20px rgba(255, 171, 0, 0.2); 
        }
        
        .work-img img { 
            width: 100%; height: 100%; object-fit: cover; object-position: center top; /* Alineación vertical al TOPE */
            opacity: 0.7; filter: grayscale(30%); /* Standby Mode */
            transition: all 0.4s ease; 
        }
        .work-item:hover .work-img img { opacity: 1; transform: scale(1.03); filter: grayscale(0%); }

        /* Panel de Información */
        .work-info { width: 100%; }
        .work-info .mono { font-weight: 400; font-size: 0.8rem; margin-bottom: 0.5rem; } 
        .work-info h3 { font-size: 1.6rem; margin-bottom: 0.8rem; color: #fff; } /* Ajuste de escala */
        .work-info p { margin-bottom: 1.5rem; color: var(--text-dim); font-size: 0.95rem; line-height: 1.6; }
        
        /* Botón compactado */
        .work-info .btn-terminal { padding: 0.6rem 1.5rem; font-size: 0.85rem; margin-top: 0; }

        /* Utilidad para proyectos ocultos (Load More) */
        .hidden-project { display: none; }
        
        /* Contenedor del botón Ver Más */
        .load-more-container { text-align: center; margin-top: 4rem; width: 100%; grid-column: 1 / -1; }

        /* Infografía de Proceso (Pipeline) */
        .process-flow { display: flex; justify-content: space-between; align-items: flex-start; margin-top: 5rem; position: relative; gap: 2rem; }
        
        /* Línea conectora (Desktop) */
        .process-flow::before {
            content: ''; position: absolute; top: 40px; left: 50px; right: 50px; height: 2px;
            background: linear-gradient(90deg, var(--accent-warm) 0%, rgba(255, 171, 0, 0.2) 100%);
            z-index: 0;
        }

        .process-step { position: relative; z-index: 1; flex: 1; text-align: center; }
        
        .step-icon {
            width: 90px; height: 90px; margin: 0 auto 1.5rem auto;
            background: rgba(0, 0, 0, 0.2); /* Burbuja oscura sobre fondo azul */
            border: 2px solid var(--accent-warm); border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 2rem; color: var(--accent-warm);
            box-shadow: 0 4px 20px rgba(0,0,0,0.2); transition: transform 0.3s ease;
        }
        .process-step:hover .step-icon { transform: scale(1.1); background: var(--accent-warm); color: #004494; box-shadow: 0 0 30px rgba(255, 171, 0, 0.5); }
        
        .step-number { font-family: 'JetBrains Mono'; font-size: 0.9rem; color: var(--accent-warm); display: block; margin-bottom: 0.5rem; font-weight: 700; }
        .process-step h3 { font-size: 1.1rem; color: #fff; margin-bottom: 0.5rem; font-weight: 700; }
        /* Texto grande y legible */
        .process-step p { font-size: 1rem; line-height: 1.6; padding: 0 1rem; }

        /* Call To Action (CTA) - Tarjeta de Activo */
        .cta-section { 
            background-color: #161619; position: relative; 
            /* Texture Tech */
            background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.01) 0, rgba(255,255,255,0.01) 1px, transparent 0, transparent 10px);
            /* Sin borde superior para permitir el acople limpio con la sección anterior */
            border-bottom: 1px solid var(--border-color);
            padding: 0; /* Altura reducida drásticamente (sin padding top) */
        }
        .cta-card {
            background: #161619; /* Fondo sólido para tapar la unión de secciones */
            padding: 3rem 2rem; max-width: 900px; margin: -3rem auto 0 auto; /* Margen negativo para el efecto 'Overlap' */
            position: relative; text-align: center; z-index: 10;
        }
        /* Etiqueta Técnica Superior (El detalle creativo) */
        .cta-card::before {
            content: "CLASS: ASSET_PERMANENT";
            position: absolute; top: -12px; right: 20px;
            background: #0d0d0f; padding: 0 12px;
            font-family: 'JetBrains Mono', monospace; font-size: 0.75rem; color: var(--accent-warm);
            border: 1px solid var(--border-color); letter-spacing: 1px;
        }

        /* Contacto */
        #contacto {
            background-color: #F2F4F8; /* Acero Clínico (Sólido) */
            color: #1a1a1e;
            position: relative;
        }
        #contacto h2 { color: #0d0d0f; }
        #contacto p { color: #4b5563; }
        #contacto .mono { color: #0056b3; }

        .contact-layout { display: grid; grid-template-columns: 1fr 1.5fr; gap: 6rem; align-items: start; }
        .form-group { margin-bottom: 1.5rem; }
        
        /* Inputs ajustados para fondo claro (Estilo Laboratorio) */
        input, textarea { 
            width: 100%; background: #ffffff; 
            border: 1px solid #d1d5db; 
            padding: 1.2rem; color: #1a1a1e; 
            font-family: 'JetBrains Mono', monospace; font-size: 0.9rem; /* Fuente técnica para escribir */
            transition: all 0.3s ease; border-radius: 2px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
        }
        input:focus, textarea:focus { 
            outline: none; 
            border-color: var(--accent-warm); /* Foco Ámbar para calidez */
            background: #fff;
            box-shadow: 0 0 0 3px rgba(255, 171, 0, 0.1); 
        }
        
        /* Ajuste "Consistencia Aparente": Camuflar borde oscuro en fondo claro */
        #formulario-contacto .btn-blue { border-color: #0056b3; }

        .btn { 
            display: inline-block; padding: 1rem 2.5rem; border: none; cursor: pointer; 
            font-weight: 700; text-transform: uppercase; letter-spacing: 1px; transition: 0.3s; text-decoration: none;
            /* Correcciones para igualar <button> y <a> */
            font-family: 'Montserrat', sans-serif; font-size: 1rem; line-height: 1.5; text-align: center; -webkit-appearance: none; appearance: none;
        }
        
        /* 2. El Botón "Switch" de Audio (Skeuomorphic) */
        .btn-blue { 
            background: linear-gradient(180deg, #007bff 0%, #0056b3 100%);
            color: #fff;
            border: 1px solid #004085;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 4px 0 #003366, 0 8px 15px rgba(0,0,0,0.5);
            transition: all 0.1s; /* Más rápido para efecto táctil */
            text-shadow: 0 1px 2px rgba(0,0,0,0.5);
            position: relative; top: 0;
        }
        .btn-blue:active { top: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3), 0 0px 0 #003366; background: #0056b3; }
        
        .btn-whatsapp { background: var(--whatsapp-green); color: #fff; margin-top: 1rem; border-radius: 50px; font-size: 0.9rem; }

        /* Footer Divider (Cierre Diagonal) */
        .footer-divider {
            height: 100px;
            /* Usamos gradiente sólido para evitar transparencias que muestren el body */
            background: linear-gradient(to top left, #08080a 49.8%, #F2F4F8 50.2%);
            margin-top: -1px; /* Evita gaps */
        }

        /* Footer */
        footer { padding: 5rem 0 3rem 0; background: #08080a; font-family: 'Montserrat', sans-serif; }
        
        .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 4rem; margin-bottom: 4rem; border-bottom: 1px solid #1f1f23; padding-bottom: 3rem; }
        
        .footer-col h4 { color: #fff; margin-bottom: 1.5rem; font-size: 1rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; font-family: 'Inter', sans-serif; }
        
        .footer-desc { margin-top: 1.5rem; font-size: 1rem; line-height: 1.6; color: #a1a1aa; max-width: 320px; }
        
        .footer-contact-item { display: flex; align-items: center; margin-top: 1.5rem; color: #e4e4e7; font-family: 'JetBrains Mono', monospace; font-size: 0.95rem; text-decoration: none; transition: all 0.3s ease; }
        .footer-contact-item:hover { color: #fff; transform: translateX(5px); }
        .footer-contact-item i { color: var(--accent-warm); margin-right: 10px; font-size: 1.2rem; }
        
        .footer-links { list-style: none; }
        .footer-links li { margin-bottom: 1rem; }
        .footer-links a { color: #a1a1aa; text-decoration: none; font-size: 1rem; transition: all 0.3s; }
        .footer-links a:hover { color: #fff; padding-left: 5px; /* Pequeño desplazamiento táctil */ }
        
        .footer-copy { font-size: 0.9rem; color: #52525b; text-align: center; font-family: 'JetBrains Mono', monospace; }
        .footer-copy span { color: #71717a; }

        /* Feedback Formulario */
        .feedback-message { display: none; margin-bottom: 1rem; font-size: 0.9rem; padding: 0.75rem; border-radius: 4px; font-family: 'JetBrains Mono', monospace; }
        .feedback-success { background: rgba(37, 211, 102, 0.1); color: #4ade80; border: 1px solid #25d366; }
        .feedback-error { background: rgba(239, 68, 68, 0.1); color: #f87171; border: 1px solid #ef4444; }

        /* 3. Indicador LED de "Bunker Mode" */
        .tech-status::before {
            content: ""; display: inline-block; width: 8px; height: 8px;
            background-color: #2ecc71; /* Verde activo */
            border-radius: 50%; margin-right: 10px;
            box-shadow: 0 0 8px #2ecc71; animation: blink 2s infinite;
        }
        @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }

        /* 4. Modal de Proyectos (Technical Sheet) */
        .modal-backdrop {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px);
            z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; pointer-events: none; transition: all 0.3s ease;
        }
        .modal-backdrop.active { opacity: 1; visibility: visible; pointer-events: all; }
        .modal-content {
            background: #161619; width: 90%; max-width: 600px; padding: 2.5rem;
            border: 1px solid var(--border-color); border-left: 4px solid var(--accent-blue);
            border-radius: 4px; position: relative; transform: translateY(20px); transition: transform 0.3s;
            box-shadow: 0 20px 50px rgba(0,0,0,0.5);
        }
        
        /* Variación para Servicios (Borde Ámbar) */
        .modal-content.service-mode { border-left-color: var(--accent-warm); }
        .modal-content.service-mode .mono { color: var(--accent-warm); }
        
        .modal-backdrop.active .modal-content { transform: translateY(0); }
        .close-modal { position: absolute; top: 1rem; right: 1.5rem; color: var(--text-dim); cursor: pointer; font-size: 1.5rem; transition: 0.3s; }
        .close-modal:hover { color: #fff; }
        .tech-tag { display: inline-block; background: rgba(0, 123, 255, 0.1); color: var(--accent-blue); padding: 0.2rem 0.6rem; font-size: 0.75rem; border-radius: 4px; margin-right: 0.5rem; margin-bottom: 0.5rem; font-family: 'JetBrains Mono'; }
        .modal-actions { margin-top: 2rem; display: flex; gap: 1rem; }

        /* ----------------------------------------------------------- */
        /* Página 404 (Búnker Error Mode)                              */
        /* ----------------------------------------------------------- */
        .error-page {
            height: 100vh;
            width: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background: radial-gradient(circle at 50% 30%, #1a1a1e 0%, #0d0d0f 70%);
        }

        .error-container {
            text-align: center;
            max-width: 700px;
        }

        .error-title {
            font-size: clamp(3.5rem, 8vw, 6rem);
            color: #fff;
            margin: 1rem 0;
            letter-spacing: -3px;
            line-height: 1;
            text-shadow: 0 0 30px rgba(0, 123, 255, 0.15);
        }

        .error-subtitle {
            font-size: 1.2rem;
            color: var(--text-dim);
            margin-bottom: 2.5rem;
            font-weight: 300;
        }

        .terminal-box {
            background: #08080a;
            border: 1px solid #26262b;
            padding: 1.5rem;
            border-radius: 4px;
            font-family: 'JetBrains Mono', monospace;
            text-align: left;
            margin: 0 auto 3rem auto;
            max-width: 450px;
            font-size: 0.85rem;
            color: var(--text-dim);
            box-shadow: 0 10px 30px rgba(0,0,0,0.5);
        }

        .terminal-row { margin-bottom: 0.5rem; display: block; }
        .blink { animation: cursor-blink 1s step-end infinite; }
        
        @keyframes cursor-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

        /* ----------------------------------------------------------- */
        /* RESPONSIVE & MEDIA QUERIES (Tablet & Mobile)                */
        /* ----------------------------------------------------------- */
        @media (max-width: 1024px) {
             .section-padding { padding: 5rem 0; }
             h2 { font-size: 2.5rem; }
             /* Limpieza visual: Ocultar etiqueta decorativa en tablet/móvil */
             .cta-card::before { display: none; }
        }

        @media (max-width: 768px) {
            /* Layout General y Espaciado */
            .section-padding { padding: 4rem 0; }
            
            /* Ajuste para Tablets y Móviles grandes (Legales) */
            .legal-section { padding-top: 8rem; padding-bottom: 4rem; }
            
            h2 { margin-bottom: 2rem; font-size: 2.2rem; }
            
            /* Header Compacto */
            nav { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 0.5rem; }
            .nav-links { gap: 1rem; font-size: 0.85rem; flex-wrap: wrap; justify-content: center; }
            .header-right { display: none; } /* Ocultar en móvil para limpiar visual */

            /* Hero Section */
            .hero h1 { font-size: 3rem; margin-bottom: 1.5rem; }
            .hero p { font-size: 1.1rem; max-width: 100%; }
            
            /* Portafolio y Grids a 1 Columna */
            .portfolio-grid { grid-template-columns: 1fr; gap: 4rem; }
            .work-img { width: 100%; height: 250px; }
            .contact-layout { grid-template-columns: 1fr; gap: 3rem; }
            
            /* Footer Stack */
            .footer-grid { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
            .footer-col { display: flex; flex-direction: column; align-items: center; }
            .footer-desc { margin-left: auto; margin-right: auto; }
            
            /* Process Flow (Timeline Vertical Reintegrado) */
            .process-flow { flex-direction: column; align-items: center; gap: 3rem; }
            .process-flow::before { 
                width: 2px; height: 100%; top: 0; left: 50%; transform: translateX(-50%); 
                background: linear-gradient(180deg, var(--accent-warm) 0%, rgba(255, 171, 0, 0.1) 100%); 
            }
            .step-icon { background: #004494; /* Parche para ocultar línea */ } 
            
            /* CTA Card Ajuste Móvil */
            .cta-card { margin-top: -2rem; padding: 2rem 1.5rem; width: 100%; }
        }

        @media (max-width: 480px) {
            /* Reset Nav para alinear Logo y Hamburguesa */
            nav { flex-direction: row; justify-content: space-between; align-items: center; position: relative; }
            
            /* Mostrar Hamburguesa */
            .hamburger { display: block; }
            
            /* Animación Icono Hamburguesa */
            .hamburger.active .bar:nth-child(2) { opacity: 0; }
            .hamburger.active .bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
            .hamburger.active .bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

            /* Panel Móvil (Off-Canvas) */
            .nav-links {
                position: fixed; top: 0; right: -100%; width: 100%; height: 100vh;
                background: rgba(13, 13, 15, 0.98); /* Fondo Búnker casi sólido */
                backdrop-filter: blur(15px); /* Efecto Glass */
                flex-direction: column; justify-content: center; align-items: center;
                gap: 2.5rem; z-index: 1000;
                transition: right 0.4s cubic-bezier(0.77, 0, 0.175, 1); /* Curva suave "Exponential" */
                box-shadow: -10px 0 30px rgba(0,0,0,0.5);
            }

            .nav-links.active { right: 0; }
            .nav-links a { font-size: 1.5rem; font-weight: 700; }

            /* Mostrar CTA dentro del menú */
            .mobile-cta { display: block; margin-top: 1rem; }
            .mobile-cta .btn-terminal { font-size: 1.1rem; padding: 1rem 2.5rem; background: rgba(0, 123, 255, 0.1); }

            /* Ajuste fino para móviles pequeños (Legales) */
            .legal-section { padding-top: 150px; }

            h2 { font-size: 1.8rem; }
            .work-info h3 { font-size: 1.4rem; } /* Corregir jerarquía: H3 menor que H2 (1.8rem) */
            .hero h1 { font-size: 2.2rem; }
            .btn { width: 100%; padding: 1rem; } /* Botones full width para fácil click */
            .service-card { padding: 2rem 1.5rem; }
            .modal-content { width: 100%; height: 100%; border-radius: 0; overflow-y: auto; padding: 2rem 1.5rem; }
            .close-modal { top: 1rem; right: 1rem; }
        }