 /* --- 1. VARIABLES & RESET --- */
 :root {
     --deep-blue: #07557b;
     /* Tu azul oscuro */
     --ocean-mid: #03648e;
     /* Azul intermedio */
     --cyan-bright: #0090b8;
     /* Cyan de acento */
     --sand-white: #f4f8fb;
     /* Blanco "hielo" suave */
     --text-dark: #2c3e50;
     --text-white: #ffffff;
 }

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Montserrat', sans-serif;
     background-color: var(--sand-white);
     color: var(--text-dark);
     overflow-x: hidden;
 }

 a {
     text-decoration: none;
     color: inherit;
     transition: 0.3s;
 }

 ul {
     list-style: none;
 }

 img {
     max-width: 100%;
     display: block;
 }

 /* --- 2. NAVEGACIÓN --- */
 nav {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 20px 5%;
     position: fixed;
     width: 100%;
     top: 0;
     z-index: 1000;
     background: rgba(0, 59, 92, 0.95);
     /* Azul semitransparente */
     backdrop-filter: blur(10px);
     border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 }

 .logo {
     color: #fff;
     font-weight: 900;
     font-size: 1.5rem;
     letter-spacing: 2px;
 }

 .logo span {
     color: var(--cyan-bright);
 }

 .nav-links {
     display: flex;
     gap: 30px;
 }

 .nav-links a {
     color: #fff;
     font-size: 0.9rem;
     text-transform: uppercase;
     font-weight: 500;
 }

 .nav-links a:hover {
     color: var(--cyan-bright);
 }

 .btn-contact {
     padding: 8px 20px;
     border: 2px solid var(--cyan-bright);
     color: var(--cyan-bright) !important;
     border-radius: 30px;
     font-weight: 700 !important;
 }

 .btn-contact:hover {
     background: var(--cyan-bright);
     color: #fff !important;
 }

 /* --- 3. HERO SECTION (ENCABEZADO DINÁMICO) --- */
 .hero {
     height: 100vh;
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     text-align: center;
     color: #fff;
     position: relative;

     /* FONDO DE SEGURIDAD (Por si no carga la imagen) */
     background-color: var(--deep-blue);

     /* TU IMAGEN DE FONDO */
     background-image: url('img/Fondo3_sintitulo.png');
     background-size: cover;
     background-position: center;
     background-attachment: fixed;
     /* Efecto Parallax */
 }

 /* Capa oscura para que se lea el texto */
 .hero::before {
     content: '';
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: rgba(0, 59, 92, 0.4);
     z-index: 1;
 }

 .hero-content {
     position: relative;
     z-index: 2;
     max-width: 800px;
     padding: 20px;
 }

 .hero h1 {
     font-size: 4rem;
     line-height: 1.1;
     margin-bottom: 20px;
     text-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
 }

 .hero p {
     font-size: 1.3rem;
     margin-bottom: 30px;
     font-weight: 300;
 }

 .hero-btns {
     display: flex;
     gap: 15px;
     justify-content: center;
 }

 .cta-btn {
     padding: 15px 40px;
     border-radius: 50px;
     font-weight: 700;
     text-transform: uppercase;
     letter-spacing: 1px;
     background: var(--cyan-bright);
     color: #fff;
     border: none;
     cursor: pointer;
     box-shadow: 0 5px 15px rgba(0, 164, 228, 0.4);
 }

 .cta-btn:hover {
     transform: translateY(-3px);
     box-shadow: 0 8px 20px rgba(0, 164, 228, 0.6);
 }

 .cta-outline {
     background: transparent;
     border: 2px solid #fff;
     box-shadow: none;
 }

 .cta-outline:hover {
     background: #fff;
     color: var(--deep-blue);
 }

 /* --- 4. CLIENTES (LOGOS) --- */
 .clients {
     padding: 40px;
     text-align: center;

     /* ---  margin-bottom: -200px;--- */
 }

 .clients p {
     text-transform: uppercase;
     font-size: 0.8rem;
     letter-spacing: 2px;
     color: #888;
     margin-bottom: 20px;
 }

 .logos-grid {
     display: flex;
     justify-content: center;
     gap: 40px;
     flex-wrap: wrap;
     opacity: 0.6;
     filter: grayscale(100%);
     transition: 0.3s;
 }

 .logos-grid:hover {
     filter: grayscale(0%);
     opacity: 1;
 }

 .logos-grid img {
     height: 60px;
     width: auto;
 }

 /* --- 5. ECOSISTEMA (PORTFOLIO) --- */
 .portfolio {
     padding: 80px 5%;
     background-color: var(--sand-white);
 }

 .section-title {
     text-align: center;
     font-size: 2.5rem;
     color: var(--deep-blue);
     margin-bottom: 50px;
     text-transform: uppercase;
     letter-spacing: -1px;
 }

 .filters {
     display: flex;
     justify-content: center;
     gap: 15px;
     margin-bottom: 40px;
 }

 .filter-btn {
     background: transparent;
     border: 1px solid #ccc;
     padding: 8px 20px;
     border-radius: 20px;
     cursor: pointer;
     color: #666;
     font-family: 'Montserrat', sans-serif;
     transition: 0.3s;
 }

 .filter-btn.active,
 .filter-btn:hover {
     background: var(--deep-blue);
     color: #fff;
     border-color: var(--deep-blue);
 }

 .projects-grid {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
     gap: 30px;
 }

 .card {
     background: #fff;
     border-radius: 15px;
     overflow: hidden;
     box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
     transition: 0.3s;
     position: relative;
 }

 .card:hover {
     transform: translateY(-10px);
     box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
 }

 .card-img {
     height: 200px;
     background: #ddd;
     position: relative;
     overflow: hidden;
 }

 .card-img img {
     width: 100%;
     height: 100%;
     object-fit: cover;
 }

 /* Icono superpuesto */
 .card-icon {
     position: absolute;
     top: 15px;
     right: 15px;
     background: #fff;
     width: 40px;
     height: 40px;
     border-radius: 50%;
     display: flex;
     justify-content: center;
     align-items: center;
     color: var(--deep-blue);
     font-size: 1.2rem;
     box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
 }

 .card-body {
     padding: 25px;
 }

 .card-body h3 {
     font-size: 1.2rem;
     margin-bottom: 5px;
     color: var(--deep-blue);
 }

 .card-role {
     font-size: 0.8rem;
     color: var(--cyan-bright);
     font-weight: 700;
     text-transform: uppercase;
     display: block;
     margin-bottom: 15px;
 }

 .card-link {
     color: var(--text-dark);
     font-weight: 600;
     font-size: 0.9rem;
 }

 .card-link:hover {
     color: var(--cyan-bright);
 }

 /* --- 6. HERRAMIENTAS (TOOLS) --- */
 .tools-section {
     padding: 60px 5%;
     background: var(--deep-blue);
     color: #fff;

 }

 .tools-container {
     max-width: 1000px;
     margin: 0 auto;
     display: flex;
     align-items: center;
     justify-content: space-between;
     flex-wrap: wrap;
     gap: 30px;
     border: 2px dashed rgba(255, 255, 255, 0.2);
     padding: 40px;
     border-radius: 20px;
     background: rgba(0, 0, 0, 0.2);
 }

 .tools-info h2 {
     font-size: 2rem;
     margin-bottom: 10px;
 }

 .tools-info p {
     color: #ccc;
 }

 .btn-white {
     background: #fff;
     color: var(--deep-blue);
     padding: 12px 30px;
     border-radius: 30px;
     font-weight: 700;
 }

 .btn-white:hover {
     background: var(--cyan-bright);
     color: #fff;
 }

 /* --- 7. QUIENES SOMOS (TEAM) --- */
 .team {
     padding: 60px 5%;
     background: #fff;
     text-align: center;
 }

 .team-grid {
     display: flex;
     justify-content: center;
     gap: 60px;
     flex-wrap: wrap;
     margin-top: 40px;
 }

 .member {
     max-width: 300px;
 }

 .member-photo {
     width: 180px;
     height: 180px;
     border-radius: 50%;
     margin: 0 auto 20px;
     background-size: cover;
     background-position: center;
     border: 4px solid #fff;
     box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
 }

 .member h3 {
     font-size: 1.4rem;
     color: var(--deep-blue);
     margin-bottom: 5px;
 }

 .member-title {
     color: var(--cyan-bright);
     font-weight: 700;
     font-size: 0.9rem;
     text-transform: uppercase;
 }

 .member-bio {
     font-size: 0.9rem;
     color: #666;
     margin: 15px 0;
     line-height: 1.6;
 }

 .socials a {
     color: var(--deep-blue);
     margin: 0 10px;
     font-size: 1.2rem;
 }

 .socials a:hover {
     color: var(--cyan-bright);
 }

 /* --- 8. FOOTER --- */
 .footer-deco img {
     width: 100%;
     display: block;
     margin-bottom: -10px;
 }

 /* Tu imagen de Footer5 */

 footer {
     background-color: #07557b;
     /* Color exacto del fondo de tu imagen */
     color: #fff;
     padding: 50px 5%;
     text-align: center;
 }

 .footer-content h3 {
     font-size: 1.5rem;
     letter-spacing: 2px;
     margin-bottom: 10px;
 }

 .footer-links {
     margin: 20px 0;
 }

 .footer-links a {
     color: #dddddd;
     margin: 0 10px;
     font-size: 1.5rem;
 }

 .footer-links a:hover {
     color: var(--cyan-bright);
 }

 .copy {
     font-size: 0.8rem;
     color: #dddddd;
 }

 /* --- RESPONSIVE --- */
 @media (max-width: 768px) {
     .hero h1 {
         font-size: 2.5rem;
     }

     .nav-links {
         display: none;
     }

     /* En esta versión simple ocultamos menú en móvil por ahora */
     .tools-container {
         text-align: center;
         flex-direction: column;
     }
 }


 /* --- ESTILOS PARA TARJETAS DE VIDEO --- */

 /* Contenedor que mantiene la proporción 16:9 */
 .video-wrapper {
     position: relative;
     padding-bottom: 56.25%;
     /* 16:9 Aspect Ratio */
     height: 0;
     overflow: hidden;
     background: #000;
     /* Fondo negro mientras carga */
 }

 /* El iframe ocupa todo el espacio del contenedor */
 .video-wrapper iframe {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
 }

 /* Ajuste opcional para la tarjeta de video */
 .video-card .card-body {
     padding: 20px;
     background: #fff;
     /* O el color que prefieras */
 }

 /* --- ESTILOS DEL SUBMENÚ (DROPDOWN) --- */

 /* El contenedor del botón "Tools" */
 .dropdown {
     position: relative;
     display: inline-block;
 }

 /* El contenido del menú (oculto por defecto) */
 .dropdown-content {
     display: none;
     position: absolute;
     background-color: #002b42;
     /* Azul muy oscuro (fondo footer) */
     min-width: 200px;
     box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
     z-index: 1000;
     border-radius: 8px;
     /* Bordes redondeados */
     overflow: hidden;
     top: 100%;
     /* Aparece justo debajo */
     left: 0;
 }

 /* Los enlaces dentro del submenú */
 .dropdown-content a {
     color: white;
     padding: 12px 16px;
     text-decoration: none;
     display: block;
     text-align: left;
     font-size: 0.9rem;
     border-bottom: 1px solid rgba(255, 255, 255, 0.05);
     /* Línea sutil separadora */
 }

 /* Efecto al pasar el mouse sobre los enlaces del submenú */
 .dropdown-content a:hover {
     background-color: var(--cyan-bright);
     /* Tu color Cyan */
     color: white;
 }

 /* Mostrar el menú al pasar el mouse sobre "Tools" */
 .dropdown:hover .dropdown-content {
     display: block;
     animation: fadeIn 0.3s ease;
     /* Animación suave de entrada */
 }

 /* Pequeña animación para que no aparezca de golpe */
 @keyframes fadeIn {
     from {
         opacity: 0;
         transform: translateY(10px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 /* Ajuste para el icono de la flechita */
 .dropbtn i {
     margin-left: 5px;
     font-size: 0.8rem;
 }

 .profile-hero {
     height: 60vh;
     background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url('img/teclado.webp');
     background-size: cover;
     background-position: center;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     color: #fff;

     background-attachment: fixed;
     /* Espacio para el navbar fijo */
 }



 /* Ajuste opcional para los textos */
 .hero-content {
     z-index: 2;
     /* Asegura que el texto quede ENCIMA del degradado */
     position: relative;
 }

 .profile-hero h1 {
     font-size: 3rem;
     margin-bottom: 10px;
 }

 .profile-hero p {
     font-size: 1.2rem;
     max-width: 600px;
     margin: 0 auto;
 }

 .back-btn {
     margin-top: 20px;
     display: inline-block;
     color: #fff;
     border-bottom: 1px solid #fff;
 }

 /* --- 6. Tools) --- */
 .tools {
     padding: 80px 5%;
 }

 /* =========================================
   RESPONSIVE MOBILE DEFINITIVO (Max-width: 768px)
   Reemplaza el bloque anterior con este
   ========================================= */


 /* --- MEDIA QUERY PARA MÓVIL (Max-width: 768px) --- */
 @media (max-width: 768px) {
     /* 1. La barra de navegación principal */


     /* --- 2. ARREGLO DE FILTROS (Para que se vean completos) --- */
     .filters {
         display: flex;
         flex-wrap: wrap !important;
         /* IMPORTANTE: Permite que bajen a otra línea */
         justify-content: center;
         /* Los centra en la pantalla */
         gap: 10px;
         overflow: visible;
         /* Quita el recorte */
         white-space: normal;
         /* Permite saltos de línea */
     }

     .filter-btn {
         flex: 1 1 auto;
         /* Se ajustan automáticamente */
         margin: 5px 0;
         width: auto;
         /* Quita anchos fijos */
         padding: 10px 20px;
     }

     /* --- 3. ARREGLOS GENERALES --- */
     .container {
         padding: 0 20px;
     }

     .projects-grid {
         grid-template-columns: 1fr;
         /* Una sola columna para las tarjetas */
     }
 }


 /* =========================================
   MENÚ HAMBURGUESA Y RESPONSIVE
   ========================================= */

/* Estilos base del botón (Oculto en PC) */
.hamburger {
    display: none;
    cursor: pointer;
}

.bar {
    display: block;
    width: 25px;
    height: 3px;
    margin: 5px auto;
    transition: all 0.3s ease-in-out;
    background-color: white; /* Color de las líneas */
}

/* --- VERSIÓN MÓVIL (Max-width: 768px) --- */
@media (max-width: 768px) {
    
    /* 1. Ajuste de la barra de navegación */
    nav {
        padding: 15px 20px;
        justify-content: space-between; /* Separa logo y hamburguesa */
        position: fixed; /* Fijo arriba */
        height: 70px; 
    }

    /* 2. Mostrar el botón hamburguesa */
    .hamburger {
        display: block;
        z-index: 1001; /* Asegura que esté por encima del menú desplegado */
    }

    /* Animación: Transformar a X cuando está activo */
    .hamburger.active .bar:nth-child(2) { opacity: 0; }
    .hamburger.active .bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .hamburger.active .bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

    /* 3. El menú desplegable (Escondido a la izquierda) */
    .nav-links {
        position: fixed;
        left: -100%; /* Fuera de pantalla */
        top: 70px; /* Debajo de la barra nav */
        flex-direction: column;
        background-color: rgba(7, 85, 123, 0.98); /* Azul Majagua sólido */
        width: 100%;
        height: calc(100vh - 70px);
        text-align: center;
        transition: 0.3s ease-in-out;
        padding-top: 40px;
        display: flex; /* Importante para que se ordenen verticalmente */
    }

    /* Clase para mostrar el menú */
    .nav-links.active {
        left: 0;
    }

    .nav-links li {
        margin: 20px 0;
    }
    
    /* Arreglo para el dropdown en móvil */
    .dropdown-content {
        position: relative;
        background: transparent;
        box-shadow: none;
        top: 0;
    }
    .dropdown-content a {
        color: #ddd;
        border: none;
    }

    /* 4. Ajustes generales de texto en móvil */
    .hero h1 { font-size: 2.2rem; }
    .hero p { font-size: 1rem; }
}


  /* --- ESTILOS ESPECÍFICOS PARA EL PORTFOLIO WEB --- */
        
        /* Header más "Tech" */
        .web-hero {
            background-color: #0d1117; /* Fondo oscuro tipo GitHub */
            color: #fff;
            padding: 100px 20px 60px 20px;
            text-align: center;
            border-bottom: 1px solid #333;
        }

        /* Grilla ajustada */
        .web-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
            gap: 30px;
            padding: 60px 0;
        }

        /* Tarjeta mejorada */
        .web-card {
            background: #fff;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            text-decoration: none;
            display: flex;
            flex-direction: column;
            border: 1px solid #eee;
        }

        .web-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(0,0,0,0.1);
            border-color: var(--cyan-bright);
        }

        /* Área de imagen (Mockup) */
        .web-card-img {
            height: 200px;
            background-color: #e0e0e0;
            position: relative;
            overflow: hidden;
        }
        
        .web-card-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: 0.5s;
        }

        /* Overlay al pasar el mouse */
        .web-card:hover .web-card-img img {
            transform: scale(1.05);
            filter: brightness(0.8);
        }

        /* Cuerpo de la tarjeta */
        .web-body {
            padding: 20px;
            flex-grow: 1;
            display: flex;
            flex-direction: column;
        }

        .web-body h3 {
            font-size: 1.2rem;
            margin-bottom: 5px;
            color: var(--deep-blue);
        }

        .web-body p {
            font-size: 0.85rem;
            color: #666;
            margin-bottom: 15px;
            line-height: 1.4;
        }

        /* ETIQUETAS DE TECNOLOGÍA (Pills) */
        .tech-stack {
            margin-top: auto; /* Empuja los tags al fondo */
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .tag {
            font-size: 0.7rem;
            padding: 4px 10px;
            border-radius: 20px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        /* Colores según tecnología */
        .tag.next { background: #000; color: #fff; border: 1px solid #333; }
        .tag.wp { background: #21759b; color: #fff; }
        .tag.js { background: #f7df1e; color: #000; }
        .tag.css { background: #264de4; color: #fff; }
        .tag.firebase { background: #ffca28; color: #000; }
        .tag.ecom { background: #27ae60; color: #fff; }

        /* Categorías (Títulos de sección) */
        .category-title {
            grid-column: 1 / -1; /* Ocupa todo el ancho */
            margin-top: 40px;
            margin-bottom: 20px;
            font-size: 1.5rem;
            color: var(--deep-blue);
            border-left: 5px solid var(--cyan-bright);
            padding-left: 15px;
        }

        /* Botón visitar */
        .visit-btn {
            margin-top: 15px;
            font-size: 0.8rem;
            font-weight: bold;
            color: var(--cyan-bright);
            text-transform: uppercase;
        }