 /* ---------- ESTILOS GENERALES ---------- */
   * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      font-family: 'Segoe UI', sans-serif;
      background-color: #e6ebec;
    }

    /* 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;
    }

    /* ---------- 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;
      }
    }
    
    /* ------- Para chatBot ------- */
    :root {
	--chat--color-primary: #e74266;
	--chat--color-primary-shade-50: #db4061;
	--chat--color-primary-shade-100: #cf3c5c;
	--chat--color-secondary: #20b69e;
	--chat--color-secondary-shade-50: #1ca08a;
	--chat--color-white: #ffffff;
	--chat--color-light: #f2f4f8;
	--chat--color-light-shade-50: #e6e9f1;
	--chat--color-light-shade-100: #c2c5cc;
	--chat--color-medium: #d2d4d9;
	--chat--color-dark: #101330;
	--chat--color-disabled: #777980;
	--chat--color-typing: #404040;

	--chat--spacing: 1rem;
	--chat--border-radius: 0.25rem;
	--chat--transition-duration: 0.15s;

	--chat--window--width: 400px;
	--chat--window--height: 600px;

	--chat--header-height: auto;
	--chat--header--padding: var(--chat--spacing);
	--chat--header--background: var(--chat--color-dark);
	--chat--header--color: var(--chat--color-light);
	--chat--header--border-top: none;
	--chat--header--border-bottom: none;
	--chat--header--border-bottom: none;
	--chat--header--border-bottom: none;
	--chat--heading--font-size: 2em;
	--chat--header--color: var(--chat--color-light);
	--chat--subtitle--font-size: inherit;
	--chat--subtitle--line-height: 1.8;

	--chat--textarea--height: 50px;

	--chat--message--font-size: 1rem;
	--chat--message--padding: var(--chat--spacing);
	--chat--message--border-radius: var(--chat--border-radius);
	--chat--message-line-height: 1.8;
	--chat--message--bot--background: var(--chat--color-white);
	--chat--message--bot--color: var(--chat--color-dark);
	--chat--message--bot--border: none;
	--chat--message--user--background: var(--chat--color-secondary);
	--chat--message--user--color: var(--chat--color-white);
	--chat--message--user--border: none;
	--chat--message--pre--background: rgba(0, 0, 0, 0.05);

	--chat--toggle--background: var(--chat--color-primary);
	--chat--toggle--hover--background: var(--chat--color-primary-shade-50);
	--chat--toggle--active--background: var(--chat--color-primary-shade-100);
	--chat--toggle--color: var(--chat--color-white);
	--chat--toggle--size: 64px;
    }
 