/* ============================================================
   IABridge — Main Stylesheet  |  Dark Tech Theme
   Palette: #6C63FF (índigo) · #00D4FF (cian) · #080D1A (fondo)
   ============================================================ */

:root {
  --indigo:        #6C63FF;
  --cyan:          #00D4FF;
  --indigo-dark:   #5048E5;
  --bg:            #080D1A;
  --bg-card:       #0F1629;
  --bg-card2:      #131C35;
  --border:        rgba(108,99,255,.18);
  --border-cyan:   rgba(0,212,255,.15);
  --text:          #EEF2FF;
  --text-mid:      #8B9EC0;
  --text-muted:    #5A6B8A;
  --grad:          linear-gradient(135deg, #6C63FF 0%, #00D4FF 100%);
  --grad-r:        linear-gradient(135deg, #00D4FF 0%, #6C63FF 100%);
  --glow-indigo:   0 0 40px rgba(108,99,255,.35);
  --glow-cyan:     0 0 40px rgba(0,212,255,.25);
  --shadow-card:   0 8px 40px rgba(0,0,0,.5);
  --radius:        16px;
  --radius-sm:     10px;
}

*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.65;
  overflow-x: hidden;
}
img { max-width:100%; display:block; }
a   { text-decoration:none; color:inherit; }
ul  { list-style:none; }

.container { max-width:1160px; margin:0 auto; padding:0 24px; }

/* ── Gradient text helper ── */
.grad-text {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Buttons ── */
.btn {
  display: inline-flex; align-items:center; gap:8px;
  padding: 14px 32px; border-radius:50px;
  font-size:1rem; font-weight:700; cursor:pointer;
  border:none; transition: all .25s ease;
  text-decoration:none; white-space:nowrap;
}
.btn-grad {
  background: var(--grad);
  color: #fff;
  box-shadow: 0 4px 24px rgba(108,99,255,.4);
}
.btn-grad:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 40px rgba(108,99,255,.6);
  color:#fff;
}
.btn-ghost {
  background: transparent;
  color: var(--text);
  border: 1.5px solid var(--border);
}
.btn-ghost:hover {
  border-color: var(--indigo);
  color: var(--indigo);
  transform: translateY(-2px);
}

/* ── Section helpers ── */
.section-label {
  display:inline-flex; align-items:center; gap:8px;
  background: rgba(108,99,255,.12);
  border: 1px solid var(--border);
  color: var(--indigo);
  font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  padding:6px 18px; border-radius:50px; margin-bottom:18px;
}
.section-label .dot {
  width:6px; height:6px; background:var(--cyan);
  border-radius:50%; display:inline-block;
}
.section-title {
  font-size: clamp(1.8rem,3.2vw,2.8rem);
  font-weight:800; line-height:1.2; margin-bottom:16px;
}
.section-subtitle {
  font-size:1.05rem; color:var(--text-mid);
  max-width:580px; margin:0 auto;
}
.text-center { text-align:center; }
.section-pad { padding: 96px 0; }

/* ═══════════════════════════════════════
   NAVBAR
═══════════════════════════════════════ */
.site-header {
  position:sticky; top:0; z-index:100;
  background: rgba(8,13,26,.85);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
  transition: border-color .3s, box-shadow .3s;
}
.site-header.scrolled {
  border-color: rgba(108,99,255,.3);
  box-shadow: 0 4px 32px rgba(0,0,0,.6);
}

.navbar {
  display:flex; align-items:center;
  justify-content:space-between; height:72px;
}

.navbar-logo {
  display:flex; align-items:center; gap:10px;
  font-size:1.25rem; font-weight:800; color:var(--text);
}
.logo-mark {
  width:38px; height:38px; border-radius:10px;
  background: var(--grad);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; color:#fff;
  box-shadow: var(--glow-indigo);
}
.logo-mark svg { color:#fff; }
.logo-name span { background:var(--grad); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

.navbar-links {
  display:flex; align-items:center; gap:36px;
}
.navbar-links a {
  font-size:.93rem; font-weight:500; color:var(--text-mid);
  transition:color .2s;
}
.navbar-links a:hover { color:var(--text); }

.navbar-cta { display:flex; gap:12px; }

.hamburger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; background:none; border:none; padding:4px;
}
.hamburger span {
  display:block; width:24px; height:2px;
  background:var(--text); border-radius:2px; transition:all .3s;
}

/* ═══════════════════════════════════════
   HERO
═══════════════════════════════════════ */
.hero {
  min-height: calc(100vh - 72px);
  display:flex; align-items:center;
  padding: 100px 0 80px;
  position:relative; overflow:hidden;
}

/* Fondo con grid sutil y orbs */
.hero::before {
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(108,99,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(108,99,255,.04) 1px, transparent 1px);
  background-size:60px 60px;
  pointer-events:none;
}
.hero-orb {
  position:absolute; border-radius:50%;
  filter:blur(100px); pointer-events:none; opacity:.35;
}
.hero-orb-1 {
  width:600px; height:600px;
  background: radial-gradient(circle, #6C63FF 0%, transparent 70%);
  top:-200px; right:-150px;
}
.hero-orb-2 {
  width:500px; height:500px;
  background: radial-gradient(circle, #00D4FF 0%, transparent 70%);
  bottom:-150px; left:-100px;
}

.hero-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px; align-items:center;
  position:relative; z-index:1;
}

.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background: rgba(108,99,255,.12);
  border: 1px solid var(--border);
  border-radius:50px; padding:6px 16px 6px 10px;
  font-size:.82rem; font-weight:600; color:var(--text-mid);
  margin-bottom:24px;
}
.hero-badge .pulse {
  width:8px; height:8px; border-radius:50%;
  background: var(--cyan);
  animation: pulse 2s infinite;
  box-shadow: 0 0 8px var(--cyan);
}
@keyframes pulse {
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.5);opacity:.6}
}

.hero-title {
  font-size: clamp(2.2rem,4.5vw,3.8rem);
  font-weight:900; line-height:1.1; margin-bottom:22px;
}
.hero-title .line-grad { display:block; }

.hero-desc {
  font-size:1.15rem; color:var(--text-mid);
  line-height:1.75; margin-bottom:36px; max-width:520px;
}

.hero-actions { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:52px; }

.hero-trust {
  display:flex; align-items:center; gap:16px;
  padding-top:24px; border-top:1px solid var(--border);
}
.trust-avatars {
  display:flex;
}
.trust-avatars span {
  width:34px; height:34px; border-radius:50%;
  border:2px solid var(--bg);
  background: var(--grad);
  display:flex; align-items:center; justify-content:center;
  font-size:.7rem; font-weight:700; color:#fff;
  margin-left:-10px;
}
.trust-avatars span:first-child { margin-left:0; }
.trust-text { font-size:.85rem; color:var(--text-mid); }
.trust-text strong { color:var(--text); }

/* Hero visual — panel de métricas animado */
.hero-visual { position:relative; }

.ai-dashboard {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius:20px;
  padding:24px;
  box-shadow: var(--shadow-card), var(--glow-indigo);
  position:relative;
  overflow:hidden;
}
.ai-dashboard::before {
  content:'';
  position:absolute; top:0; left:0; right:0; height:2px;
  background: var(--grad);
}

.dash-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px;
}
.dash-title {
  font-size:.8rem; font-weight:700; color:var(--text-mid);
  text-transform:uppercase; letter-spacing:.08em;
}
.dash-status {
  display:flex; align-items:center; gap:6px;
  font-size:.75rem; color:#22C55E; font-weight:600;
}
.dash-status .dot-green {
  width:6px; height:6px; border-radius:50%; background:#22C55E;
  animation: pulse 2s infinite;
}

.dash-kpis {
  display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
  margin-bottom:20px;
}
.kpi {
  background: var(--bg-card2);
  border:1px solid var(--border); border-radius:12px;
  padding:14px 12px; text-align:center;
}
.kpi-value {
  font-size:1.3rem; font-weight:800;
  background: var(--grad);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  display:block; margin-bottom:4px;
}
.kpi-label { font-size:.68rem; color:var(--text-muted); }

.dash-flows { display:flex; flex-direction:column; gap:8px; }
.flow-item {
  display:flex; align-items:center; gap:10px;
  background: var(--bg-card2);
  border:1px solid var(--border); border-radius:10px;
  padding:10px 14px;
}
.flow-icon {
  width:28px; height:28px; border-radius:7px;
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem; flex-shrink:0;
}
.flow-icon.indigo { background:rgba(108,99,255,.2); }
.flow-icon.cyan   { background:rgba(0,212,255,.12); }
.flow-icon.green  { background:rgba(34,197,94,.12); }
.flow-name { flex:1; font-size:.8rem; font-weight:600; color:var(--text); }
.flow-badge {
  font-size:.68rem; font-weight:700; padding:3px 10px;
  border-radius:20px;
}
.flow-badge.active { background:rgba(34,197,94,.15); color:#22C55E; }
.flow-badge.run    { background:rgba(108,99,255,.2);  color:var(--indigo); }
.flow-badge.queue  { background:rgba(255,196,0,.12);  color:#FFC400; }

/* Floating cards */
.float-card {
  position:absolute;
  background: var(--bg-card);
  border:1px solid var(--border);
  border-radius:14px; padding:12px 16px;
  box-shadow: var(--shadow-card);
  font-size:.8rem; font-weight:600;
  display:flex; align-items:center; gap:8px;
  white-space:nowrap; z-index:5;
  animation: floatY 4s ease-in-out infinite;
}
.float-card.fc-1 { top:-20px; right:-20px; animation-delay:0s; }
.float-card.fc-2 { bottom:20px; left:-30px; animation-delay:2s; }
.float-card .fc-icon { font-size:1.1rem; }
@keyframes floatY {
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

/* ═══════════════════════════════════════
   SERVICIOS
═══════════════════════════════════════ */
.services {
  padding: 96px 0;
  background: var(--bg);
  position:relative;
}
.services::before {
  content:'';
  position:absolute; left:0; right:0; top:0; height:1px;
  background: linear-gradient(90deg, transparent, var(--border), transparent);
}

.services-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  margin-top:56px;
}

.service-card {
  background: var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:32px 28px;
  transition: all .35s ease;
  position:relative; overflow:hidden;
  cursor:default;
}
.service-card::after {
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 0%, rgba(108,99,255,.06) 0%, transparent 60%);
  opacity:0; transition:opacity .35s;
}
.service-card:hover {
  border-color:rgba(108,99,255,.4);
  transform:translateY(-6px);
  box-shadow: 0 24px 64px rgba(0,0,0,.5), var(--glow-indigo);
}
.service-card:hover::after { opacity:1; }

.service-icon {
  width:52px; height:52px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; margin-bottom:20px;
  background: rgba(108,99,255,.12);
  border:1px solid var(--border);
  transition:background .3s, border-color .3s;
}
.service-card:hover .service-icon {
  background: rgba(108,99,255,.22);
  border-color:rgba(108,99,255,.5);
  box-shadow: var(--glow-indigo);
}
.service-card h3 {
  font-size:1.05rem; font-weight:700; margin-bottom:10px; color:var(--text);
}
.service-card p {
  font-size:.9rem; color:var(--text-mid); line-height:1.65;
}
.service-tag {
  display:inline-flex; align-items:center; gap:5px;
  margin-top:18px; font-size:.72rem; font-weight:700;
  color:var(--indigo); letter-spacing:.06em; text-transform:uppercase;
}
.service-tag::before {
  content:''; width:16px; height:1.5px; background:var(--indigo);
}

/* ═══════════════════════════════════════
   CÓMO TRABAJAMOS
═══════════════════════════════════════ */
.how-it-works {
  padding:96px 0;
  background: var(--bg-card);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  position:relative; overflow:hidden;
}
.how-it-works::before {
  content:'';
  position:absolute; top:-200px; right:-100px;
  width:500px; height:500px; border-radius:50%;
  background: radial-gradient(circle, rgba(0,212,255,.06) 0%, transparent 70%);
  pointer-events:none;
}

.process-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:24px; margin-top:64px; position:relative;
}
.process-grid::before {
  content:'';
  position:absolute;
  top:28px; left:14%;  right:14%;
  height:1px;
  background: linear-gradient(90deg, var(--indigo), var(--cyan));
  z-index:0;
  opacity:.4;
}

.process-step { text-align:center; position:relative; z-index:1; }

.step-num {
  width:56px; height:56px; border-radius:50%;
  background: var(--grad);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; font-weight:800; color:#fff;
  margin:0 auto 20px;
  box-shadow: var(--glow-indigo);
  border:3px solid var(--bg-card);
  transition:transform .3s;
}
.process-step:hover .step-num { transform:scale(1.1); }

.step-icon { font-size:1.6rem; margin-bottom:14px; }

.process-step h3 {
  font-size:1rem; font-weight:700; color:var(--text); margin-bottom:8px;
}
.process-step p { font-size:.88rem; color:var(--text-mid); line-height:1.6; }

/* ═══════════════════════════════════════
   SECTORES / CASOS DE USO
═══════════════════════════════════════ */
.sectors {
  padding:96px 0;
  background: var(--bg);
}

.sectors-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:20px; margin-top:56px;
}

.sector-card {
  background: var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:32px;
  display:flex; gap:20px;
  transition:all .3s ease;
  position:relative; overflow:hidden;
}
.sector-card::before {
  content:'';
  position:absolute; left:0; top:0; bottom:0; width:3px;
  background: var(--grad);
  transform:scaleY(0); transform-origin:bottom;
  transition:transform .3s ease;
}
.sector-card:hover {
  border-color:rgba(108,99,255,.3);
  transform:translateY(-4px);
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.sector-card:hover::before { transform:scaleY(1); }

.sector-icon {
  width:56px; height:56px; border-radius:14px; flex-shrink:0;
  background: rgba(108,99,255,.1);
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem;
}
.sector-body h3 {
  font-size:1.05rem; font-weight:700; color:var(--text); margin-bottom:8px;
}
.sector-body p { font-size:.88rem; color:var(--text-mid); line-height:1.6; }
.sector-tags {
  display:flex; flex-wrap:wrap; gap:6px; margin-top:14px;
}
.tag {
  font-size:.7rem; font-weight:600; padding:4px 12px;
  border-radius:20px;
  background:rgba(0,212,255,.08);
  border:1px solid rgba(0,212,255,.2);
  color:var(--cyan);
}

/* ═══════════════════════════════════════
   CTA FINAL
═══════════════════════════════════════ */
.cta-section {
  padding:100px 0;
  background: var(--bg-card);
  border-top:1px solid var(--border);
  text-align:center;
  position:relative; overflow:hidden;
}
.cta-section::before {
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(108,99,255,.12) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 50%, rgba(0,212,255,.08) 0%, transparent 60%);
  pointer-events:none;
}
.cta-section > .container { position:relative; z-index:1; }

.cta-glow-text {
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:900; line-height:1.2; margin-bottom:20px;
}
.cta-section p {
  font-size:1.1rem; color:var(--text-mid);
  max-width:560px; margin:0 auto 40px;
}

.cta-form {
  display:flex; gap:12px; justify-content:center;
  flex-wrap:wrap; max-width:520px; margin:0 auto 24px;
}
.cta-input {
  flex:1; min-width:240px;
  background: rgba(255,255,255,.06);
  border:1.5px solid var(--border);
  border-radius:50px; padding:14px 24px;
  color:var(--text); font-size:.95rem;
  outline:none; transition:border-color .2s;
}
.cta-input::placeholder { color:var(--text-muted); }
.cta-input:focus { border-color:var(--indigo); }
.cta-note { font-size:.8rem; color:var(--text-muted); }

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
.site-footer {
  background: #050913;
  border-top:1px solid var(--border);
  padding:64px 0 32px;
  color:var(--text-mid);
}

.footer-grid {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:40px; padding-bottom:48px;
  border-bottom:1px solid var(--border); margin-bottom:32px;
}

.footer-brand { }
.footer-logo {
  display:flex; align-items:center; gap:10px;
  font-size:1.2rem; font-weight:800; color:var(--text);
  margin-bottom:14px;
}
.footer-brand p { font-size:.88rem; line-height:1.65; margin-bottom:20px; }
.social-links { display:flex; gap:10px; }
.social-links a {
  width:36px; height:36px; border-radius:9px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--text-mid); transition:all .2s;
}
.social-links a:hover { background:var(--indigo); border-color:var(--indigo); color:#fff; }

.footer-col h4 {
  font-size:.8rem; font-weight:700; color:var(--text);
  text-transform:uppercase; letter-spacing:.1em; margin-bottom:16px;
}
.footer-col ul li { margin-bottom:10px; }
.footer-col ul a { font-size:.88rem; color:var(--text-mid); transition:color .2s; }
.footer-col ul a:hover { color:var(--text); }

.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  font-size:.82rem; flex-wrap:wrap; gap:12px;
}
.footer-bottom a { color:var(--text-muted); transition:color .2s; }
.footer-bottom a:hover { color:var(--text); }

/* ═══════════════════════════════════════
   MOBILE MENU
═══════════════════════════════════════ */
.mobile-menu {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.7); z-index:200;
  opacity:0; pointer-events:none; transition:opacity .3s;
}
.mobile-menu.open { display:block; opacity:1; pointer-events:all; }
.mobile-panel {
  position:absolute; top:0; right:0;
  width:290px; height:100%;
  background: var(--bg-card);
  border-left:1px solid var(--border);
  padding:24px;
  transform:translateX(100%); transition:transform .3s ease;
}
.mobile-menu.open .mobile-panel { transform:translateX(0); }
.mobile-close-btn {
  background:rgba(255,255,255,.06); border:1px solid var(--border);
  border-radius:8px; width:36px; height:36px;
  cursor:pointer; color:var(--text); margin-bottom:28px;
  font-size:1rem; display:flex; align-items:center; justify-content:center;
}
.mobile-nav { display:flex; flex-direction:column; gap:4px; }
.mobile-nav a {
  padding:12px 16px; border-radius:10px;
  font-weight:500; color:var(--text-mid); transition:all .2s;
}
.mobile-nav a:hover { background:rgba(108,99,255,.1); color:var(--text); }
.mobile-nav-cta { margin-top:24px; display:flex; flex-direction:column; gap:12px; }
.mobile-nav-cta .btn { justify-content:center; }

/* ═══════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════ */
.fade-up {
  opacity:0; transform:translateY(28px);
  transition:opacity .6s ease, transform .6s ease;
}
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ═══════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════ */
@media (max-width:1024px) {
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid  { grid-template-columns:repeat(2,1fr); }
  .process-grid::before { display:none; }
  .footer-grid   { grid-template-columns:1fr 1fr; }
}

@media (max-width:768px) {
  .navbar-links, .navbar-cta { display:none; }
  .hamburger { display:flex; }

  .hero-inner { grid-template-columns:1fr; text-align:center; }
  .hero-title { font-size:2.2rem; }
  .hero-desc  { margin:0 auto 32px; }
  .hero-actions { justify-content:center; }
  .hero-trust { justify-content:center; }
  .hero-visual { order:-1; }
  .float-card { display:none; }

  .services-grid { grid-template-columns:1fr; }
  .sectors-grid  { grid-template-columns:1fr; }
  .footer-grid   { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; text-align:center; }
}

@media (max-width:480px) {
  .hero { padding:60px 0; }
  .btn  { padding:12px 22px; font-size:.9rem; }
  .process-grid { grid-template-columns:1fr; }
}
