 /* ---------- ESTILOS GENERALES ---------- */
   * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      font-family: 'Segoe UI', sans-serif;
      background-color: #e6ebec;
    }
    html {
  scroll-behavior: smooth;
    }

    /* NAV responsive */
    nav {
      background-color: #ccd5d4;
      padding: 10px 20px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .logo {
      font-size: 24px;
      font-weight: bold;
      color: #264653;
    }

    .logo span {
      color: #6c757d;
    }

    .menu-toggle {
      display: none;
      font-size: 28px;
      background: none;
      border: none;
      cursor: pointer;
      color: #264653;
    }

    .menu {
      display: flex;
      gap: 20px;
    }

    .menu a {
      text-decoration: none;
      color: #1b2b2a;
      font-size: 16px;
      transition: color 0.3s;
    }

    .menu a:hover {
      color: #3e6b5e;
    }

    @media (max-width: 768px) {
      .menu {
        flex-direction: column;
        width: 100%;
        display: none;
        background-color: #ccd5d4;
        padding-top: 10px;
      }

      .menu.active {
        display: flex;
      }

      .menu-toggle {
        display: block;
      }
    }

    /* BANNER HEADER con logo animado */
    header {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 80vh;
      background-color: #e6ebec;
      position: relative;
      width: 100%;
      overflow: hidden;
    }

    .logo-box {
      position: relative;
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    #networkCanvas {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
      filter: blur(1px); /* Difuminado para la animación del canvas */
    }

    /* HERO Section Styles */
    .hero {
      position: absolute; /* Position over the canvas */
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      z-index: 1; /* Ensure it's above the canvas */
    }

    .hero-content {
      color: #264653; /* Adjust text color for contrast */
      padding: 20px;
      max-width: 800px;
    }

    .hero-content h1 {
      font-size: 3.5em; /* Larger heading */
      margin-bottom: 15px;
      filter: blur(0.5px); /* Subtle blur for effect */
    }

    .hero-content p {
      font-size: 1.5em; /* Larger paragraph */
      margin-bottom: 30px;
      filter: blur(0.3px); /* Subtle blur for effect */
      color: #4d5356; /* Adjust text color for contrast */
    }

    .cta-button {
      display: inline-block;
      background-color: #3e6b5e; /* Button color */
      color: white;
      padding: 15px 30px;
      text-decoration: none;
      border-radius: 5px;
      font-size: 1.2em;
      transition: background-color 0.3s ease;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }

    .cta-button:hover {
      background-color: #2b4d44; /* Darker on hover */
    }

    
    /* Animacion DESDE IZQUIERDA DEL TEXTO */
    @keyframes slideInFromLeft {
      0% {
        transform: translateX(-100%); /* Empieza 100% fuera de la pantalla a la izquierda */
        opacity: 0; /* Totalmente transparente al inicio */
      }
      100% {
        transform: translateX(0); /* Termina en su posición original */
        opacity: 1; /* Totalmente visible al final */
      }
    }

    /* Aplica la animación al contenedor del texto */
    .text-container {
      animation: slideInFromLeft 1s ease-out forwards; /* Nombre, duración, función de tiempo, estado final */
      /* Opcional: Asegúrate de que el contenedor no tenga un overflow oculto que corte la animación */
      overflow: visible;
    }

    /* Opcional: Para el h1, p, y a individuales si quieres un efecto escalonado */
    .text-container h1,
    .text-container p,
    .text-container .cta-button {
      opacity: 0; /* Asegura que estén ocultos antes de la animación */
      animation: slideInFromLeft 1s ease-out forwards; /* Aplica la misma animación */
    }

    /* Retrasos para un efecto escalonado */
    .text-container h1 {
      animation-delay: 0.2s; /* El h1 aparece después de 0.2 segundos */
    }

    .text-container p {
      animation-delay: 0.5s; /* El párrafo aparece después de 0.5 segundos */
    }

    .text-container .cta-button {
      animation-delay: 0.8s; /* El botón aparece después de 0.8 segundos */
    }

/* Responsive adjustments for hero section */
    @media (max-width: 992px) {
      .hero-content h1 {
        font-size: 2.8em;
      }
      .hero-content p {
        font-size: 1.3em;
      }
      .cta-button {
        padding: 12px 25px;
        font-size: 1.1em;
      }
    }

    @media (max-width: 768px) {
      .hero-content h1 {
        font-size: 3.2em;
      }
      .hero-content p {
        font-size: 1.5em;
      }
      .cta-button {
        padding: 10px 20px;
        font-size: 1em;
      }
    }

    @media (max-width: 480px) {
      .hero-content h1 {
        font-size: 3.8em;
      }
      .hero-content p {
        font-size: 1.5em;
      }
      .cta-button {
        padding: 8px 15px;
        font-size: 0.9em;
      }
    }


    /* ---------- SECCIONES ---------- */
    .seccion {
      padding: 2rem;
      background-color: #f5f5f5;
    }

    h2 {
      text-align: center;
      margin-bottom: 1.5rem;
    }

    /* ---------- SERVICIOS ----------#e6ebec */
    .servicios {
      text-align: center;
      padding: 40px 20px;
      background-color: #f5f5f5; /*#e6ebec*/
    }

    .servicios h2 {
      font-size: 2.5em;
      margin-bottom: 30px;
    }

    .contenedor-cajas {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 30px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .caja {
      background-color: #e6ebec;
      padding: 20px;
      border-radius: 12px;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
      transition: transform 0.2s ease;
    }

    .caja:hover {
      transform: scale(1.03);
    }

    .caja img {
      width: 100%;
      height: 180px;
      object-fit: cover;
      border-radius: 8px;
    }

    .caja h3 {
      margin-top: 15px;
      font-size: 1.2em;
      color: #333;
    }

    .caja p {
      font-size: 0.95em;
      color: #555;
      margin-top: 10px;
    }

    /* ---------- BENEFICIOS ---------- */
    #beneficios {
      background: #e6ebec;
    }

    .grid-beneficios {
      display: grid;
      gap: 1.5rem;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      text-align: center;
      animation: aparecer 1s ease-in;
    }

    .beneficio {
      border: 2px solid #ccc;
      border-radius: 10px;
      padding: 15px;
      box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
    }

    #beneficios i {
      font-size: 30px;
      color: #2c3e50;
      margin-bottom: 10px;
    }
    /* --- Efecto Verde Correcto --- */

        /* 1. Cambia el contenedor, el texto y el borde a verde */
        .beneficio:hover, 
        .tecnologia:hover {
            background-color: #f8f9fa; 
            color: #9cd06c !important;   /* El '!important' asegura que gane al azul */
            border-color: #9cd06c;
        }

        /* 2. Asegura que el icono de FontAwesome también cambie a verde */
        .beneficio:hover i, 
        .tecnologia:hover i {
            color: #9cd06c !important; 
            transform: scale(1.2) rotate(5deg);
        }

        /* 3. Si tienes títulos h3 dentro, también forzamos el verde */
        .beneficio:hover h3, 
        .tecnologia:hover h3 {
            color: #9cd06c !important;
        }

    /* ---------- TECNOLOGÍAS ---------- */
    .grid-tecnologias {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
      gap: 1.5rem;
      justify-items: center;
      text-align: center;
      animation: aparecer 1s ease-in;
    }

    .tecnologia {
      border: 2px solid #ccc;
      border-radius: 10px;
      padding: 15px;
      background-color: #f9f9f9;
      transition: transform 0.3s, box-shadow 0.3s;
    }

    .tecnologia:hover {
      transform: scale(1.05);
      box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
      background-color: #e6f0ff;
    }

    .tecnologia i {
      margin-bottom: 10px;
      color: #2c3e50;
      transition: color 0.3s;
      font-size: 5rem;
    }

    .tecnologia:hover i {
      color: #9cd06c;
    }

    .tecnologia p {
      text-align: center;
    }

    /* ---------- ANIMACIONES ---------- */
    @keyframes aparecer {
      from {
        opacity: 0;
        transform: translateY(20px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* ---------- FORMULARIO DE CONTACTO ---------- */
    #contacto {
      background: #e6ebec;
    }

    form {
      display: grid;
      max-width: 600px;
      margin: auto;
      gap: 1rem;
    }

    form input,
    form textarea {
      width: 100%;
      padding: 0.5rem;
      border: 1px solid #ccc;
      border-radius: 4px;
    }

    form button {
      background-color: #3e6b5e;
      color: white;
      border: none;
      padding: 12px 24px;
      border-radius: 8px;
      font-size: 16px;
      cursor: pointer;
      transition: background-color 0.3s;
      width: 150px;
      justify-self: center; /* Esto centra el botón en el grid */
      text-decoration: none; /* elimina la línea subrayada */
    }
      button:hover {
      background-color: #2b4d44;
    }
    /* ---------- PIE DE PÁGINA ---------- */
    footer {
      background-color: #333;
      color: white;
      text-align: center;
      padding: 1rem;
      font-size: 0.9rem;
      
    }

    /* ---------- RESPONSIVE ---------- */
    @media (max-width: 768px) {
      .menu-toggle {
        display: block;
      }

      #nav-menu {
        display: none;
        width: 100%;
      }

      #nav-menu.active {
        display: block;
      }

      nav ul {
        flex-direction: column;
        width: 100%;
      }

      nav li {
        margin: 10px 0;
      }

      .grid-tecnologias {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
      }

      .tecnologia {
        min-height: 200px;
        padding: 15px;
      }

      .tecnologia p {
        font-size: 14px;
      }
    }
    /* --- Efectos de Hover Profesionales --- */

/* Las "Cajas" de servicios */
.caja {
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
    cursor: pointer;
    overflow: hidden;
    border-radius: 12px;
}

.caja:hover {
    transform: translateY(-10px); /* Elevación suave */
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
}

/* Efecto en la imagen dentro de la caja */
.caja img {
    transition: transform 0.5s ease;
}

.caja:hover img {
    transform: scale(1.05); /* Zoom sutil a la imagen */
}

/* Iconos de Beneficios y Tecnologías */
.beneficio, .tecnologia {
    transition: all 0.3s ease;
    padding: 20px;
    border-radius: 10px;
}

.beneficio:hover, .tecnologia:hover {
    background-color: #f8f9fa; /* Fondo tenue al pasar el mouse */
    color: #007bff; /* Cambia al color de tu marca */
}

.beneficio i, .tecnologia i {
    transition: transform 0.3s ease;
}

.beneficio:hover i, .tecnologia:hover i {
    transform: scale(1.2) rotate(5deg); /* Pequeño pulso y rotación */
}

/* Botón CTA (Call to Action) */
.cta-button {
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.cta-button:hover {
    letter-spacing: 1px;
    box-shadow: 0 5px 15px rgba(0, 123, 255, 0.4);
}
  