/* ============================================================
   index.css  ·  Soluciones Integrales S.A. de C.V.
   Tema: Dark-tech / Corporate — Bebas Neue + Outfit
   ============================================================ */

/* ── VARIABLES ─────────────────────────────────────────── */
:root {
  --bg:         #0A0F1D; /*FONDO*/
  --bg2:        #111827;/*FONDO CARTAS*/
  --bg3:        #050505;/*FONDO ALTERNATIVO*/
  --surface:    #1E293B;/*FONDO CARTAS*/
  --surface2:   #0F172A;/*FONDO INPUTS*/
  --accent:     #00e5ff;/*RESALTE TEXTO*/
  --accent2:    #38BDF8;/*MARKETING*/
  --accent3:    #818CF8;/**/
  --text:       #F8FAFC;/*COLOR TEXTO*/
  --text-muted:  #94A3B8;  
  --muted:      #94A3B8;/*CONTRASTE TEXTO*/
  --border:     rgba(56,189,248,0.2);/*CONTORNO CARTAS*/
  --border2:    rgba(255,255,255,0.08);
  --glow:       0 0 40px rgba(0,229,255,.15);
  --card-shadow: 0 8px 32px rgba(0,0,0,0.4);
  --ease:       cubic-bezier(.4,0,.2,1);
  --r:          14px;
}

/* ── RESET ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
  background:var(--bg);color:var(--text);
  font-family:'Outfit',sans-serif;line-height:1.65;overflow-x:hidden;
  
}
body.no-scroll{overflow:hidden}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer}

/* Rejilla de fondo */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(var(--border2) 1px,transparent 1px),
    linear-gradient(90deg,var(--border2) 1px,transparent 1px);
  background-size:64px 64px;
}
/* ── UTILIDADES ─────────────────────────────────────────── */
.container{width:92%;max-width:1240px;margin:0 auto;position:relative;z-index:1}

.section{padding:7rem 0;position:relative;z-index:1}
.section-alt{background:var(--bg2)}

.section-head{margin-bottom:3.5rem}
.section-tag{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.8rem;
}
.section-tag::before{
  content:'';display:block;width:20px;height:2px;
  background:var(--accent);border-radius:2px;
}
.section-title{
  font-family:'Bebas Neue',sans-serif;letter-spacing:.03em;
  font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.05;
}
.section-title em{
  font-style:normal;
  background:linear-gradient(120deg,var(--accent),var(--accent3));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.section-desc{color:var(--muted);max-width:560px;margin-top:.75rem;font-size:.95rem}

/* Botones */
.btn-cta{
  display:inline-flex;align-items:center;gap:.6rem;
  background:var(--accent);color:#080c18;
  font-weight:700;font-size:.9rem;
  padding:.8rem 2rem;border-radius:10px;border:none;
  transition:background .2s,transform .2s,box-shadow .2s;white-space:nowrap;
}
.btn-cta svg{width:16px;height:16px;flex-shrink:0;transition:transform .2s}
.btn-cta:hover{background:#22eeff;transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,229,255,.35)}
.btn-cta:hover svg{transform:translateX(4px)}

.btn-outline{
  display:inline-flex;align-items:center;gap:.5rem;
  background:transparent;color:var(--text);
  font-weight:500;font-size:.9rem;
  padding:.8rem 2rem;border-radius:10px;
  border:1.5px solid var(--border2);
  transition:border-color .2s,color .2s;white-space:nowrap;
}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}

/* Social buttons */
.soc-btn{
  width:44px;height:44px;border-radius:50%;
  background:var(--surface2);border:1px solid var(--border);
  color:var(--text);display:flex;align-items:center;justify-content:center;
  font-size:1rem;transition:transform .25s var(--ease),background .25s,border-color .25s;
}
.soc-btn:hover{transform:translateY(-4px) scale(1.1)}
.soc-btn.instagram:hover{background:#E1306C;border-color:#E1306C}
.soc-btn.facebook:hover{background:#1877F2;border-color:#1877F2}
.soc-btn.tiktok:hover{background:#111;border-color:#555}
.soc-btn.whatsapp:hover{background:#25D366;border-color:#25D366}

/* AOS (Animate on Scroll) — implementación propia */
[data-aos]{opacity:0;transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-aos="fade-up"]{transform:translateY(36px)}
[data-aos="fade-right"]{transform:translateX(-36px)}
[data-aos="fade-left"]{transform:translateX(36px)}
[data-aos="zoom-in"]{transform:scale(.88)}
[data-aos].aos-animate{opacity:1;transform:none}

/* ── NAVEGACIÓN ─────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  height:70px;transition:background .1s var(--ease),box-shadow .4s;
}
.nav.scrolled{
  background:rgba(8,12,24,.92);backdrop-filter:blur(18px);
  box-shadow:0 4px 30px rgba(0,0,0,.5);border-bottom:1px solid var(--border);
}
.nav-wrap{
  max-width:1240px;width:92%;margin:0 auto;
  height:100%;display:flex;align-items:center;gap:2rem;
}
/* brand */
.nav-brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.nav-logo-box{
  width:80px;height:80px;
  
  display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;
}
.nav-logo-img{width:100%;height:100%;object-fit:contain}
.nav-logo-letters{
  font-family:'Bebas Neue',sans-serif;font-size:1.3rem;
  color:#080c18;letter-spacing:.05em;
}
.nav-brand-text{display:flex;flex-direction:column;line-height:1.2}
.nav-brand-main{font-weight:700;font-size:.85rem;color:var(--text)}
.nav-brand-sub{font-size:0.7rem;color:var(--muted)}

/* links */
.nav-links{
  list-style:none;display:flex;align-items:center;
  gap:.15rem;margin-left:auto;
}
.nav-link{
  display:flex;align-items:center;gap:.35rem;
  padding:.4rem .9rem;border-radius:8px;
  font-size:0.85rem;font-weight:500;color:var(--muted);
  transition:color .2s,background .2s;position:relative;
}
.nav-link::after{
  content:'';position:absolute;bottom:0;left:.9rem;right:.9rem;
  height:2px;background:var(--accent);border-radius:2px;
  transform:scaleX(0);transition:transform .25s var(--ease);
}
.nav-link:hover,.nav-link.active{color:var(--text);background:rgba(255,255,255,.05)}
.nav-link.active::after,.nav-link:hover::after{transform:scaleX(1)}
.nav-soon{color:var(--muted) !important}

.soon-pill{
  font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  background:rgba(255,94,58,.15);color:var(--accent2);
  border:1px solid rgba(255,94,58,.3);padding:.15rem .55rem;border-radius:100px;
}

/* Barra de progreso */
.nav-progress{
  position:absolute;bottom:0;left:0;height:2px;width:0%;
  background:linear-gradient(90deg,var(--accent3),var(--accent));
  border-radius:0 2px 2px 0;transition:width .1s;
}

/* Hamburguesa */
.hamburger{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;padding:6px;margin-left:auto;
}
.hamburger span{
  display:block;width:24px;height:2px;background:var(--text);
  border-radius:2px;transition:transform .3s var(--ease),opacity .3s;
}


/* Overlay móvil */
.mobile-overlay{
  position:fixed;inset:0;z-index:600;
  background:rgba(8,12,24,.97);backdrop-filter:blur(20px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;
  opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
}
.mobile-overlay.open{opacity:1;pointer-events:auto}
.mobile-close{
  position:absolute;top:1.4rem;right:1.5rem;
  background:none;border:1px solid var(--border);color:var(--text);
  width:44px;height:44px;border-radius:50%;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .2s,color .2s;
}
.mobile-close:hover{border-color:var(--accent);color:var(--accent)}
.mobile-nav{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.mobile-link{
  font-family:'Bebas Neue',sans-serif;letter-spacing:.06em;
  font-size:clamp(1.8rem,6vw,2.8rem);color:var(--text);
  padding:.3rem 1rem;transition:color .2s;display:flex;align-items:center;gap:.6rem;
}
.mobile-link:hover{color:var(--accent)}
.mobile-social{display:flex;gap:.8rem}

@media(max-width:860px){
  .nav-links{display:none}
  .hamburger{display:flex}
}
/* =========================================================
   VARIABLES DE COLOR (Ajusta aquí los colores principales)
   ========================================================= */
:root {
  --bg-module: #000000;      /* Fondo oscuro elegante con transparencia para la caja grande */
  --border-module: rgba(255, 255, 255, 0.1);  /* Borde tenue brillante */
  --bg-card: #1e293b;                       /* Fondo de cada tarjeta individual */
  --bg-card-hover: #26354a;                 /* Fondo al pasar el mouse por una tarjeta */
  --text-main: #f8fafc;                     /* Color de texto principal */
  --text-muted: #94a3b8;                    /* Color de texto secundario/subtítulos */
  --accent-color: #0066cc;                  /* Azul corporativo activo */
  --highlight-bg: #facc15;                  /* Color amarillo fosforescente para resaltar palabras */
  --highlight-text: #000000;                /* Color del texto resaltado */
}
/* ================================================================= */
/* BANNER HERO Y MÁQUINA DE ESCRIBIR                                 */
/* ================================================================= */

.hero-tech-banner {
  padding-top: 130px; /* Empuja el contenido debajo de tu barra de navegación fija */
  padding-bottom: 30px;
  text-align: center;
  max-width: 1400px;
  width: 90%;
  margin: 0 auto;
}

.hero-content {
  background-color: #0d1527;
  /* Borde sutil y sombra difuminada para darle profundidad */
  border: 1px solid rgba(0, 188, 212, 0.2);
  border-radius: 16px;
  box-shadow: 0 0 25px rgba(0, 188, 212, 0.08);
  padding: 40px 20px;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.hero-content:hover {
  border-color: #00bcd4;
  box-shadow: 0 0 20px rgba(0, 188, 212, 0.15);
}

.hero-title {
  color: #ffffff;
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 12px;
}

/* Texto que se va escribiendo */
.typewriter-text {
  color: #00bcd4; /* Color cian de tu marca */
  border-bottom: 2px solid rgba(0, 188, 212, 0.3);
}

/* Regla para móvil: reserva la altura exacta para que no empuje el catálogo */
@media (max-width: 768px) {
  .hero-title {
    font-size: 1.8rem; /* Reduce un poco el tamaño en pantallas pequeñas */
    min-height: 90px;  /* Mantiene el espacio fijo de 2-3 líneas */
  }
}
/* Cursor parpadeante como de consola de comandos */
.cursor {
  color: #00bcd4;
  font-weight: 300;
  animation: blink 0.7s infinite;
  margin-left: 2px;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

.hero-subtitle {
  color: #94a3b8;
  font-size: 1rem;
  max-width: 600px;
  margin: 0 auto;
}

/* Adaptabilidad a celulares */
@media (max-width: 768px) {
  .hero-tech-banner {
    padding-top: 100px;
  }
  .hero-title {
    font-size: 1.5rem;
  }
}
/* ================================================================= */
/* 1. SECCIÓN PRINCIPAL Y CONTENEDORES                               */
/* ================================================================= */

.services-catalog-section {
  padding: 50px 30px;            /* Más espacio interno vertical */
  max-width: 1600px;             /* AMB: Cambiado de 1200px a 1400px para ampliar toda la sección */
  width: 93%;                    /* Aprovecha casi todo el ancho disponible en la pantalla */
  margin: 0 auto;
  background-color: #0d1527f5; /* Color oscuro sólido base para que no transparente nada */
  position: relative;
  z-index: 1;                /* Asegura que toda la sección esté por encima del fondo general */
  /* Borde sutil y sombra difuminada para darle profundidad */
  border: 1px solid rgba(0, 188, 212, 0.2);
  border-radius: 16px;
  box-shadow: 0 0 25px rgba(0, 188, 212, 0.08);
}
/* Estilos para el encabezado del catálogo */
.catalog-header {
  text-align: center;
  margin-bottom: 35px;
}

/* Badge superior en cian neón */
.catalog-badge {
  display: inline-block;
  color: #00bcd4;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 8px;
}

/* Título con efecto NEÓN Brillantel */
.catalog-title {
  text-align: center; /* Asegura el centrado */
  margin-top: 10px;    /* Ajuste de espacio superior si es necesario */
  margin-bottom: 25px; /* Espacio con el buscador */
  
  font-size: 2.5rem;   /* Un poco más grande para el impacto */
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase; /* Opcional: mayúsculas para más fuerza */

  /* COLOR BASE: Un cian muy claro, casi blanco, que será el "tubo" del neón */
  color: #fff; 

  /* EFECTO NEÓN CON MÚLTIPLES SOMBRAS (La magia ocurre aquí) */
  text-shadow:
    /* 1. Resplandor interno sutil (Cian claro) */
    0 0 4px #fff,
    /* 2. Resplandor medio (Cian principal) */
    0 0 11px #00bcd4,
    /* 3. Resplandor exterior amplio (Cian intenso) */
    0 0 19px #00bcd4,
    /* 4. Resplandor muy amplio y suave (Cian oscuro para profundidad) */
    0 0 40px #00acc1;

  /* ANIMACIÓN OPCIONAL: Un parpadeo muy sutil para realismo */
  animation: neonFlicker 2s infinite alternate;
}

/* Animación sutil de parpadeo neón */
@keyframes neonFlicker {
  0%, 100% {
    text-shadow: 0 0 4px #fff, 0 0 11px #00bcd4, 0 0 19px #00bcd4, 0 0 40px #00acc1;
  }
  30% {
    text-shadow: 0 0 3px #fff, 0 0 9px #00bcd4, 0 0 15px #00bcd4, 0 0 30px #00acc1;
  }
}

/* Subtítulo explicativo */
.catalog-subtitle {
  color: #94a3b8;
  font-size: 0.95rem;
  max-width: 600px;
  margin: 0 auto 20px auto;
  line-height: 1.5;
}

/* ================================================================= */
/* 2. BUSCADOR SÓLIDO SIN TRANSPARENCIAS                             */
/* ================================================================= */

.search-box-wrapper {
  position: relative;
  max-width: 550px;
  margin: 0 auto;
}

/* Mantiene exactamente tu estructura sin afectar nada de lo que ya funciona */
.search-input {
  width: 100%;
  padding: 14px 45px 14px 20px;
  background-color: #0f172a; /* Color sólido sin canal Alfa */
  border: 2px solid #1e293b;
  border-radius: 8px;
  color: #ffffff75;
  font-size: 1.15rem;
  outline: none;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

/* Reemplazar la regla del placeholder por esta versión nítida */
.search-input::placeholder {
  color: #ffffff35;         /* Blanco puro sin sombreado */
  font-weight: 500;       /* Da cuerpo a la letra sin engrosarla de más */
  opacity: 0.95;          /* Mantiene un brillo alto y claro */
  letter-spacing: 0.3px;  /* Define mejor la separación de cada letra */
}
.search-input:hover {
  border-color: #00bcd4; /* Borde al posicionarse */
}

.search-input:focus {
  border-color: #00bcd4;
  box-shadow: 0 0 12px rgba(0, 188, 212, 0.4);
}

.search-icon {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.7;
  pointer-events: none;
}

/* ================================================================= */
/* 3. BOTONES DE CATEGORÍA (Pills) SÓLIDOS                          */
/* ================================================================= */

.pills-wrapper {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 35px;
}

.pill-btn {
  background-color: #0f172a; /* Fondo totalmente sólido */
  border: 2px solid #1e293b;
  color: #94a3b8;
  padding: 10px 22px;
  border-radius: 20px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 600;
  transition: all 0.25s ease;
}

/* Hover con borde #00bcd4 */
.pill-btn:hover {
  border-color: #00bcd4;
  color: #ffffff;
}

/* Estado activo seleccionado */
.pill-btn.active {
  background-color: #00bcd4;
  color: #0d1527;
  border-color: #00bcd4;
  box-shadow: 0 4px 12px rgba(0, 188, 212, 0.3);
}

/* ================================================================= */
/* 4. TARJETAS SÓLIDAS Y EFECTO HOVER #00bcd4                       */
/* ================================================================= */

.cards-grid {
  display: grid;
  /* CAMBIADO: minmax(350px, 1fr) y max 3 columnas para evitar que se aprieten a 4 columnas */
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 25px;                   /* Separación limpia entre tarjetas */
}
.card {
  position: relative;
  height: 320px;
  border-radius: 12px;
  overflow: hidden;          /* Corta la imagen internamente para que no se filtre fuera de la tarjeta */
  background-color: #0f172a; /* Fondo sólido interno de la tarjeta */
  border: 2px solid #1e293b;
  isolation: isolate;        /* Crea un nuevo contexto de apilamiento para sellar el fondo */
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

/* Hover obligatorio con borde #00bcd4 */
.card:hover {
  border-color: #00bcd4;
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 188, 212, 0.2);
}

/* AMB: Mejora la visibilidad y brillo de la imagen de fondo */
.card-image-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  filter: brightness(0.7);       /* CAMBIADO: Subido de 0.4 a 0.7 para que la imagen no se vea oscura */
  transition: transform 0.3s ease, filter 0.3s ease;
}

/* Al pasar el cursor, la imagen resalta completamente */
.card:hover .card-image-bg {
  filter: brightness(0.9);       /* Imagen casi limpia al hacer hover */
  transform: scale(1.05);        /* Leve zoom para mayor dinamismo */
}

.card-overlay {
  position: relative;
  z-index: 2;
  padding: 28px 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: linear-gradient(to top, #0f172a 30%, transparent 100%);
}

.card-tag {
  align-self: flex-start;
  background-color: #0d1527;
  color: #00bcd4;
  border: 1px solid #00bcd4;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.card-title {
  color: #ffffff;
  font-size: 1.35rem;
  margin-bottom: 8px;
}

.card-description {
  color: #cbd5e1;
  font-size: 1rem;
  line-height: 1.4;
}

/* ================================================================= */
/* 5. ELIMINACIÓN DE NO COINCIDENTES Y SUBRAYADO DE TEXTO            */
/* ================================================================= */

/* Desaparece completamente del DOM sin cuadros vacíos ni transparencias */
.card.hidden {
  display: none !important;
}

/* Subrayado de palabras encontradas en el buscador */
mark.highlight {
  background-color: #fbff00;
  color: #0d1527;
  padding: 0 4px;
  border-radius: 3px;
  font-weight: bold;
}
/* ================================================================= */
/* CAMBIO 2: ANIMACIÓN DE ENTRADA DESDE ABAJO CON DESVANECIMIENTO    */
/* ================================================================= */
/* Agrega esta clase al CSS. Se la asignaremos por JS a los items que van apareciendo */
@keyframes fadeInUp {
  from {
    opacity: 0.3;                    /* Inicia a la mitad de visibilidad (desvanecido) */
    transform: translateY(20px);      /* Inicia 20px más abajo de su posición final */
  }
  to {
    opacity: 1;                      /* Termina 100% visible */
    transform: translateY(0);        /* Llega a su posición exacta */
  }
}

/* Esta clase activa la animación suave */
.card-fade-in {
  animation: fadeInUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* ================================================================= */
/* 6. BOTÓN MOSTRAR MÁS                                              */
/* ================================================================= */

.pagination-controls {
  text-align: center;
  margin-top: 35px;
}

.load-more-btn {
  background-color: #0f172a;
  color: #00bcd4;
  border: 2px solid #00bcd4;
  padding: 12px 30px;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.25s ease;
}

.load-more-btn:hover {
  background-color: #00bcd4;
  color: #0d1527;
  box-shadow: 0 4px 15px rgba(0, 188, 212, 0.4);
}



/* =========================================================
   CARRUSEL INFINITO DE MARCAS
   ========================================================= */
/* 1. SECCIÓN PRINCIPAL: Sin fondo transparente ni bordes */
.brands-carousel-section {
  margin-top: 40px;
  margin-bottom: 60px; /* <--- Ajusta este espacio para alejarlo de "¿Listo para comenzar?" */
  padding: 20px 0;
}
/* Centra el contenedor del título del carrusel */
.brands-carousel-header {
  text-align: center;
  width: 100%;
}
.brands-subtitle {
  color: #94a3b8; /* Texto gris tenue */
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  display: inline-block;
  margin-bottom: 20px;
}

/* Contenedor con efecto de desvanecimiento en los bordes */
/* 2. MÁSCARA DE DESVANECIMIENTO: Efecto de degradado tenue en los extremos izquierdo y derecho */
/* Contenedor que envuelve la pista de logos */
/* 2. Aplica el degradado sobre la pista contenedora directa */
.brands-carousel-track-container {
  width: 100%;
  overflow: hidden;

  /* Máscara de desvanecimiento forzada (funciona en Chrome, Edge, Firefox, Safari) */
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 15%, #000 85%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 15%, #000 85%, transparent 100%);
}
/* Pista animada que se desplaza continuamente */
.brands-carousel-track {
  display: flex;
  width: max-content;
  gap: 60px;
  animation: scrollBrands 25s linear infinite;
}

/* Pausar animación al pasar el cursor encima */
.brands-carousel-track:hover {
  animation-play-state: paused;
}

/* Estilo de cada elemento/marca */
/* 3. ÍTEMS/LOGOS: Sin cuadros, sin fondos y alineados directamente */
/* 2. ALINEACIÓN VERTICAL: Organiza el logo y el texto uno debajo del otro */
.brand-item {
  display: flex;
  flex-direction: column; /* Apila el logo y el texto verticalmente */
  align-items: center;
  gap: 8px; /* Espacio entre el logo y el texto */
}
  /* Al pasar el cursor, la tarjeta se vuelve totalmente blanca para máximo contraste */
  /* Quita el fondo blanco en hover y aplica el efecto de zoom y color directamente al logo */
.brand-item:hover {
  background: transparent; /* Mantiene el fondo invisible */
  border: none;
}
/* Estilo para ajustar los logos dentro del carrusel */
/* 4. AJUSTE DE IMAGEN PNG: Colores limpios sobre tu fondo */
.brand-logo {
  max-height: 80px;        /* Ajusta la altura según prefieras */
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3)); /* Sombra suave opcional para resaltar PNGs sobre el fondo */
  transition: transform 0.3s ease;
}
/* Efecto al pasar el cursor sobre el logo */
/* Efecto sobre la imagen del logo al pasar el cursor */
.brand-item:hover .brand-logo {
  transform: scale(1.15); /* Efecto zoom */
  filter: brightness(1.2) contrast(1.1); /* Resalta el color y brillo del PNG */
}
/* 3. ESTILO DEL TEXTO: Nombre de la marca debajo de cada imagen 
.brand-name {
  color: #94a3b8; Gris tenue para no saturar 
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}*/
/* Keyframes para el movimiento continuo */
@keyframes scrollBrands {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
/* ── 11. FRANJA CTA (LLAMADO A LA ACCIÓN) ───────────────────
   Bloque al final de la página con botones de contacto.
   ---------------------------------------------------------- */
.cta-strip {
  position:        relative;
  z-index:         1;
  max-width:       1280px;
  margin:          0 auto 5rem;
  padding:         0 2rem;
  background:      linear-gradient(135deg, var(--surface2), var(--surface));
  border:          1px solid rgba(0,212,255,0.2);
  border-radius:   20px;
  padding:         3rem;
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             2rem;
  flex-wrap:       wrap;
  overflow:        hidden;
}

/* Círculo decorativo en la esquina */
.cta-strip::before {
  content:        '';
  position:       absolute;
  top:            -60px;
  right:          -60px;
  width:          250px;
  height:         250px;
  border-radius:  50%;
  background:     radial-gradient(circle, rgba(0,212,255,0.1), transparent 70%);
  pointer-events: none;
}

.cta-text h3 {
  font-family:   'Syne', sans-serif;
  font-weight:   700;
  font-size:     1.5rem;
  margin-bottom: 0.4rem;
}

.cta-text p {
  color:     var(--text-muted);
  font-size: 0.95rem;
}

.cta-actions {
  display:   flex;
  gap:       1rem;
  flex-wrap: wrap;
}

/* Botón primario (relleno) */
.btn-primary {
  display:         inline-flex;
  align-items:     center;
  gap:             0.5rem;
  background:      var(--accent);
  color:           #0a0e1a;
  font-family:     'DM Sans', sans-serif;
  font-weight:     700;
  font-size:       0.9rem;
  padding:         0.75rem 1.75rem;
  border-radius:   10px;
  text-decoration: none;
  border:          none;
  cursor:          pointer;
  transition:      all 0.2s;
  white-space:     nowrap;
}

.btn-primary:hover {
  background:  #22deff;
  transform:   translateY(-2px);
  box-shadow:  0 8px 20px rgba(0,212,255,0.35);
}

/* Botón secundario (outline) */
.btn-secondary {
  display:         inline-flex;
  align-items:     center;
  gap:             0.5rem;
  background:      transparent;
  color:           var(--text);
  font-family:     'DM Sans', sans-serif;
  font-weight:     500;
  font-size:       0.9rem;
  padding:         0.75rem 1.75rem;
  border-radius:   10px;
  text-decoration: none;
  border:          1px solid var(--border);
  cursor:          pointer;
  transition:      all 0.2s;
  white-space:     nowrap;
}

.btn-secondary:hover {
  border-color: var(--accent);
  color:        var(--accent);
}


/* ── FAQ ─────────────────────────────────────────────────── */
.faq-wrap{
  max-width:800px;margin:0 auto;
  display:flex;flex-direction:column;gap:.75rem;
}
.faq-item{
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;overflow:hidden;
  transition:border-color .2s;
}
.faq-item.open{border-color:rgba(0,229,255,.3)}
.faq-q{
  width:100%;background:none;border:none;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.25rem 1.5rem;color:var(--text);
  font-size:.95rem;font-weight:600;text-align:left;
  transition:color .2s;
}
.faq-q:hover{color:var(--accent)}
.faq-icon{
  font-size:1.5rem;color:var(--accent);flex-shrink:0;line-height:1;
  transition:transform .3s var(--ease);
}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-a{height:0;overflow:hidden;transition:height .35s var(--ease)}
.faq-a p{padding:0 1.5rem 1.25rem;color:var(--muted);font-size:.9rem;line-height:1.7}

/* ── CONTACTO ────────────────────────────────────────────── */
.contact-grid{
  display:grid;grid-template-columns:1fr 1.6fr;
  gap:3rem;align-items:start;
}
.contact-info{display:flex;flex-direction:column;gap:1.5rem}
.info-item{display:flex;align-items:flex-start;gap:1rem}
.info-icon{font-size:1.3rem;flex-shrink:0;margin-top:.1rem}
.info-item strong{
  display:block;font-size:.72rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.2rem;
}
.info-item p{color:var(--muted);font-size:.9rem;line-height:1.6}
.info-social{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}

/* Formulario */
.contact-form-box{
  background:var(--surface);border:1px solid var(--border);
  border-radius:20px;padding:2.5rem;
}
form{display:flex;flex-direction:column;gap:1.25rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{
  font-size:.72rem;font-weight:600;color:var(--muted);
  letter-spacing:.06em;text-transform:uppercase;
}
.field input,.field textarea{
  background:var(--surface2);border:1.5px solid var(--border);
  border-radius:10px;padding:.8rem 1rem;
  color:var(--text);font-family:'Outfit',sans-serif;font-size:.9rem;
  outline:none;resize:vertical;
  transition:border-color .2s,box-shadow .2s;
}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.5}
.field input:focus,.field textarea:focus{
  border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,229,255,.1);
}
.form-submit{width:100%;justify-content:center;font-size:.95rem;padding:1rem}
.form-feedback{
  text-align:center;font-size:.875rem;font-weight:500;min-height:1.2rem;
}
.form-feedback.ok{color:#10d983}
.form-feedback.err{color:var(--accent2)}

@media(max-width:860px){
  .contact-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
}

/* ── FOOTER ──────────────────────────────────────────────── */
.footer{
  background:var(--bg2);border-top:1px solid var(--border);
  position:relative;z-index:1;
}
.footer-top{
  max-width:1240px;width:92%;margin:0 auto;
  padding:4.5rem 0 2.5rem;
  display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:3rem;
}
.footer-brand{
  display:flex;align-items:flex-start;gap:0.1rem;
  grid-column:1;
}
.footer-brand .nav-logo-letters{
  width: 150px;
  height:170px;
  object-fit: contain;
}
.footer-name{font-weight:700;font-size:1rem;margin-bottom:.2rem}
.footer-tagline{color:var(--muted);font-size:.85rem}

.footer-col{display:flex;flex-direction:column;gap:.55rem}
.footer-col h4{
  font-family:'Bebas Neue',sans-serif;letter-spacing:.06em;
  font-size:1rem;color:var(--accent);margin-bottom:.3rem;
}
.footer-col a,.footer-col p{color:var(--muted);font-size:.875rem;transition:color .2s}
.footer-col a:hover{color:var(--text)}
.footer-social{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.75rem}

.footer-bottom{
  max-width:1240px;width:92%;margin:0 auto;
  padding:1.25rem 0;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--muted);
}
.footer-bottom a{color:var(--accent);font-weight:500;transition:opacity .2s}
.footer-bottom a:hover{opacity:.7}

@media(max-width:900px){
  .footer-top{grid-template-columns:1fr 1fr;gap:2.5rem}
  .footer-brand{grid-column:1/-1}
}
@media(max-width:500px){
  .footer-top{grid-template-columns:1fr}
  .footer-brand{grid-column:1}
  .footer-bottom{flex-direction:column;text-align:center}
}

/* ── RESPONSIVE GENERAL ──────────────────────────────────── */
@media(max-width:640px){
  .hero-stats{gap:1.5rem;padding:1rem 1.5rem}
  .section{padding:5rem 0}
  .pilot-banner{padding:2rem 1.5rem;flex-direction:column;align-items:flex-start}
  .plans-grid{grid-template-columns:1fr}
  .values-grid{grid-template-columns:1fr}
}