/* ============================================================
   SPEED AI — Design tokens
   ============================================================ */
:root{
  --bg:#E7ECF8;
  --surface:#FFFFFF;
  --text:#111827;
  --text-2:#6B7280;
  --blue:#0016F9;
  --blue-soft:#3B5BFF;
  --green:#00FF92;
  --green-deep:#00C776;
  --glass:rgba(255,255,255,0.55);
  --glass-strong:rgba(255,255,255,0.72);
  --glass-border:rgba(255,255,255,0.8);
  --line:rgba(17,24,39,0.08);
  --shadow-sm:0 1px 2px rgba(17,24,39,0.04), 0 4px 12px rgba(17,24,39,0.04);
  --shadow-md:0 8px 24px -8px rgba(17,24,39,0.10);
  --shadow-lg:0 24px 64px -24px rgba(17,24,39,0.16);
  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:32px;
  --container:1240px;
  --ease:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  line-height:1.5;
}
h1,h2,h3{
  font-family:'Poppins','Inter',sans-serif;
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--text);
}
.btn, .nav-links a, .module-kicker, .brand-name, .price-plan, .price-amount, .step-num, .uc-tab, .range-tab{
  font-family:'Poppins','Inter',sans-serif;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;border:none;background:none;cursor:pointer;color:inherit;}
ul{list-style:none;}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}

/* ============================================================
   Background decoration
   ============================================================ */
.bg-decor{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  background:url('../assets/img/hero-bg.jpg') center top / cover no-repeat, var(--bg);
}

main, .nav, .footer{ position:relative; z-index:1; }

/* ============================================================
   Reveal on scroll
   ============================================================ */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay:var(--delay,0ms);
}
.reveal.in-view{ opacity:1; transform:translateY(0); }

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  font-size:14.5px;
  border-radius:999px;
  padding:13px 22px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  white-space:nowrap;
}
.btn svg{ flex-shrink:0; transition:transform .25s var(--ease); }
.btn:hover svg{ transform:translateX(3px); }
.btn-lg{ padding:15px 26px; font-size:15px; }
.btn-sm{ padding:9px 16px; font-size:13.5px; }

.btn-dark{
  background:linear-gradient(180deg, #1a1f2e, #0B0F19);
  color:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,0.08) inset, 0 8px 20px -8px rgba(11,15,25,0.5);
}
.btn-dark:hover{ transform:translateY(-2px); box-shadow:0 1px 0 rgba(255,255,255,0.1) inset, 0 14px 28px -10px rgba(11,15,25,0.55); }

.btn-ghost{
  background:var(--glass);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(16px);
  color:var(--text);
}
.btn-ghost:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }

.play-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;height:22px;
  border-radius:50%;
  background:var(--text);
  color:#fff;
}

.btn-outline{
  border:1.5px solid var(--line);
  background:rgba(255,255,255,0.5);
}
.btn-outline:hover{ border-color:var(--blue); color:var(--blue); transform:translateY(-2px); }

.btn-block{ width:100%; justify-content:center; }

/* ============================================================
   Glass panel primitives
   ============================================================ */
.glass-panel-lg{
  background:var(--glass);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  backdrop-filter:blur(24px) saturate(160%);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
  box-shadow:var(--shadow-lg);
  padding:48px;
}

.module-kicker{
  font-family:'Inter',sans-serif;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  font-weight:700;
  color:var(--blue);
  text-transform:uppercase;
  letter-spacing:0.09em;
  margin-bottom:12px;
}
.module-kicker::before{
  content:'';
  width:16px;
  height:2px;
  border-radius:2px;
  background:linear-gradient(90deg, var(--blue), var(--green-deep));
  flex-shrink:0;
}
.module-head.center .module-kicker{ justify-content:center; }
.module-head h2{ font-size:clamp(24px,3vw,34px); margin-bottom:8px; }
.module-head p{ color:var(--text-2); font-size:15.5px; max-width:520px; }
.module-head-split{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:36px;
}
.module-head.center{ text-align:center; margin:0 auto 40px; }
.module-head.center p{ margin:0 auto; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky;
  top:0;
  z-index:100;
  padding:18px 0;
  transition:background .3s var(--ease), box-shadow .3s var(--ease), padding .3s var(--ease);
}
.nav.scrolled{
  background:rgba(233,238,249,0.75);
  backdrop-filter:blur(16px) saturate(160%);
  box-shadow:0 1px 0 var(--line), 0 8px 24px -12px rgba(17,24,39,0.12);
  padding:12px 0;
}
.nav-inner{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  height:42px;
}
.brand{
  display:flex;
  align-items:center;
  height:100%;
  justify-self:start;
}
.brand-logo{
  height:42px;
  width:auto;
  display:block;
}
.footer-brand .brand-logo{ height:30px; }
/* .brand trae height:100% pensado para la barra de navegación (altura fija).
   En el footer, el contenedor es de altura automática, y ese 100% termina
   resolviéndose contra la altura "stretch" del flex-item completo (logo +
   texto + pastilla), inflando el logo hasta ocupar esa altura entera y
   empujando el resto del contenido fuera de su caja. Se neutraliza acá. */
.footer-brand .brand{ height:auto; }

.nav-links{ display:flex; align-items:center; height:100%; gap:32px; justify-self:center; }
.nav-links a{
  display:flex;
  align-items:center;
  height:100%;
  font-size:14.5px;
  font-weight:600;
  color:var(--text-2);
  transition:color .2s;
  position:relative;
}
.nav-links a:hover{ color:var(--text); }

.nav-link-tech{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px 5px 6px;
  border-radius:999px;
  background:rgba(0,22,249,0.07);
  font-size:13px;
}
.nav-link-tech .dot{ width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--green-deep)); }
.nav-link-tech:hover{ background:rgba(0,22,249,0.12); }

.nav-actions{ display:flex; align-items:center; height:100%; gap:16px; justify-self:end; }
.nav-burger{
  display:none;
  flex-direction:column;
  gap:5px;
  width:22px;
}
.nav-burger span{ height:2px; background:var(--text); border-radius:2px; transition:transform .25s, opacity .25s; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ padding:96px 0 80px; }
.hero-grid{
  display:grid;
  grid-template-columns:0.83fr 1fr;
  gap:40px;
  align-items:center;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  background:var(--glass);
  border:1px solid var(--glass-border);
  font-size:13px;
  font-weight:600;
  color:var(--text-2);
  margin-bottom:22px;
}
.eyebrow-dot{
  width:6px;height:6px;
  border-radius:50%;
  background:var(--green-deep);
  box-shadow:0 0 0 3px rgba(0,199,118,0.18);
}
.hero-title{
  font-size:clamp(38px,5.4vw,64px);
  line-height:1.06;
  margin-bottom:22px;
}
.text-accent{
  background:linear-gradient(100deg, var(--blue) 10%, var(--blue-soft) 45%, var(--green-deep) 90%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero-sub{
  font-size:17px;
  color:var(--text-2);
  max-width:480px;
  margin-bottom:34px;
}
.hero-actions{ display:flex; gap:14px; margin-bottom:44px; flex-wrap:wrap; }

.hero-trust{ display:flex; gap:32px; flex-wrap:wrap; }
.trust-item{ display:flex; align-items:center; gap:10px; }
.trust-item svg{ color:var(--blue); flex-shrink:0; }
.trust-item div{ display:flex; flex-direction:column; font-size:12.5px; }
.trust-item strong{ font-size:13px; font-weight:700; }
.trust-item span{ color:var(--text-2); }

/* ---- Hero visual composition ---- */
.hero-visual{
  position:relative;
  height:580px;
}
.hero-glow{
  position:absolute;
  top:42%; left:50%;
  transform:translate(-50%,-50%);
  width:420px;height:420px;
  border-radius:50%;
  background:radial-gradient(circle at 40% 35%, rgba(0,22,249,0.10), rgba(0,255,146,0.08) 55%, transparent 75%);
  filter:blur(10px);
  animation:pulse-core 5s ease-in-out infinite;
}
.sphere-ring{
  position:absolute;
  top:42%; left:50%;
  border-radius:50%;
  border:1px solid rgba(0,22,249,0.25);
  transform:translate(-50%,-50%);
}
.ring-1{ width:460px; height:460px; animation:spin-slow 22s linear infinite; border-color:rgba(0,22,249,0.16); }
.ring-2{ width:530px; height:530px; animation:spin-slow-rev 30s linear infinite; border-color:rgba(0,199,118,0.16); }

.hero-video-wrap{
  position:absolute;
  bottom:0; left:50%;
  transform:translateX(-50%);
  height:82%;
  aspect-ratio:998/684;
  overflow:visible;
  z-index:2;
}
.hero-video-wrap::after{
  content:'';
  position:absolute;
  bottom:-6%; left:50%;
  transform:translateX(-50%);
  width:86%; height:22%;
  background:radial-gradient(ellipse 50% 50% at 50% 50%, rgba(255,255,255,0.85), rgba(0,22,249,0.16) 55%, transparent 78%);
  filter:blur(10px);
  z-index:0;
  pointer-events:none;
}
.hero-video{
  position:relative;
  z-index:1;
  width:100%; height:100%;
  object-fit:contain;
  object-position:center bottom;
  display:block;
  -webkit-mask-image:linear-gradient(to bottom, black 80%, transparent 97%);
  mask-image:linear-gradient(to bottom, black 80%, transparent 97%);
}

@keyframes pulse-core{
  0%,100%{ opacity:0.7; transform:translate(-50%,-50%) scale(1); }
  50%{ opacity:0.95; transform:translate(-50%,-50%) scale(1.08); }
}
@keyframes spin-slow{ from{ transform:translate(-50%,-50%) rotate(0deg); } to{ transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes spin-slow-rev{ from{ transform:translate(-50%,-50%) rotate(360deg); } to{ transform:translate(-50%,-50%) rotate(0deg); } }

.float-panel{
  position:absolute;
  z-index:3;
  background:var(--glass-strong);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-md);
  backdrop-filter:blur(20px) saturate(160%);
  box-shadow:var(--shadow-lg);
  padding:16px 18px;
  animation:float-panel 6s ease-in-out infinite;
}
@keyframes float-panel{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-10px); }
}

.panel-status{
  top:-2%; left:20%;
  width:200px;
  animation-delay:.2s;
}
.panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:12.5px;
  font-weight:700;
  color:var(--text-2);
  margin-bottom:10px;
}
.live-dot{ display:flex; align-items:center; gap:5px; color:var(--green-deep); font-weight:700; font-size:11.5px; }
.live-dot i{ width:6px;height:6px;border-radius:50%;background:var(--green-deep); box-shadow:0 0 0 3px rgba(0,199,118,0.18); }
.live-dot.small{ margin-left:auto; }
.live-dot.small i{ width:7px;height:7px; }

.sparkline{ width:100%; height:36px; margin-bottom:12px; }
.panel-stats{ display:flex; justify-content:space-between; gap:10px; }
.panel-stats div{ display:flex; flex-direction:column; }
.panel-stats span{ font-size:11px; color:var(--text-2); }
.panel-stats strong{ font-size:15px; font-weight:800; }

.panel-chat{
  top:-5%; left:55%;
  width:200px;
  animation-delay:.6s;
}
.chat-head{ gap:8px; }
.chat-head span{ font-weight:700; }
.chat-bubble{
  max-width:88%;
  padding:8px 12px;
  border-radius:12px;
  font-size:12px;
  margin-bottom:7px;
  line-height:1.35;
}
.chat-bubble.in{
  background:#fff;
  border:1px solid var(--line);
  border-bottom-left-radius:3px;
}
.chat-bubble.out{
  background:linear-gradient(135deg, var(--blue), var(--blue-soft));
  color:#fff;
  margin-left:auto;
  border-bottom-right-radius:3px;
}
.chat-typing{ display:flex; gap:4px; padding:6px 4px 0; }
.chat-typing i{
  width:5px;height:5px;border-radius:50%;
  background:var(--text-2);
  animation:typing-blink 1.2s infinite ease-in-out;
}
.chat-typing i:nth-child(2){ animation-delay:.2s; }
.chat-typing i:nth-child(3){ animation-delay:.4s; }
@keyframes typing-blink{ 0%,60%,100%{ opacity:.25; } 30%{ opacity:1; } }

.panel-cal{
  top:2%; left:-12%;
  width:190px;
  display:flex;
  align-items:center;
  gap:10px;
  animation-delay:1s;
}
.panel-cal svg:first-child{ color:var(--blue); flex-shrink:0; }
.panel-cal div{ display:flex; flex-direction:column; flex:1; }
.panel-cal strong{ font-size:12.5px; }
.panel-cal span{ font-size:11px; color:var(--text-2); }
.panel-cal .check{ flex-shrink:0; }

/* ============================================================
   LOGOS
   ============================================================ */
.logos-section{ position:relative; padding:0 0 60px; margin-top:-56px; }
.logos-glow{
  position:absolute;
  left:50%; top:-40px;
  transform:translateX(-50%);
  width:min(640px, 92vw); height:220px;
  background:radial-gradient(ellipse 60% 60% at 50% 40%, rgba(255,255,255,0.9), rgba(0,22,249,0.10) 55%, transparent 78%);
  filter:blur(20px);
  pointer-events:none;
  z-index:0;
}
.logos-card{
  position:relative;
  z-index:1;
  background:var(--glass);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  backdrop-filter:blur(24px) saturate(160%);
  box-shadow:var(--shadow-lg);
  padding:28px 40px;
}
.logos-label{
  text-align:center;
  font-size:12.5px;
  font-weight:600;
  color:var(--text-2);
  margin-bottom:22px;
}
.logos-track{
  overflow:hidden;
  mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
  -webkit-mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
}
.logos-row{
  display:flex;
  align-items:center;
  gap:56px;
  width:max-content;
  animation:marquee 24s linear infinite;
}
.logos-row:hover{ animation-play-state:paused; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.logo-item{
  display:flex;
  align-items:center;
  gap:9px;
  font-weight:700;
  font-size:15px;
  color:var(--text);
  opacity:0.85;
  white-space:nowrap;
}
.logo-item img{
  height:28px;
  width:auto;
  max-width:36px;
  object-fit:contain;
  flex-shrink:0;
}

/* ============================================================
   SECTIONS generic
   ============================================================ */
.section{ padding:28px 0; }
.section-module{ }

/* ============================================================
   CAPABILITIES
   ============================================================ */
.capability-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
.cap-card{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,0.45);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-md);
  padding:26px 24px;
  backdrop-filter:blur(18px) saturate(160%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    inset 0 0 0 1px rgba(255,255,255,0.15),
    0 12px 28px -14px rgba(17,24,39,0.16);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.cap-card::before{
  content:'';
  position:absolute;
  top:-60%; left:-20%;
  width:70%; height:220%;
  background:linear-gradient(115deg, rgba(255,255,255,0.5), transparent 60%);
  transform:rotate(12deg);
  pointer-events:none;
}
.cap-card:hover{
  transform:translateY(-6px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    inset 0 0 0 1px rgba(255,255,255,0.2),
    0 22px 40px -16px rgba(0,22,249,0.22);
  border-color:rgba(0,22,249,0.22);
}
.cap-icon{
  position:relative;
  z-index:1;
  width:52px;height:52px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--blue);
  margin-bottom:18px;
  background:radial-gradient(circle at 32% 28%, rgba(255,255,255,0.95), rgba(255,255,255,0.55) 55%, rgba(226,233,253,0.4) 100%);
  border:1px solid rgba(255,255,255,0.9);
  box-shadow:
    0 0 0 7px rgba(0,22,249,0.05),
    0 0 22px 3px rgba(0,22,249,0.28),
    inset 0 1px 2px rgba(255,255,255,0.95),
    inset 0 -6px 10px rgba(0,22,249,0.05);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.cap-icon::before{
  content:'';
  position:absolute;
  inset:-9px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(0,22,249,0.16), transparent 72%);
  filter:blur(5px);
  z-index:-1;
}
.cap-card:hover .cap-icon{
  transform:translateY(-2px) scale(1.06);
  box-shadow:
    0 0 0 8px rgba(0,22,249,0.07),
    0 0 30px 6px rgba(0,22,249,0.38),
    inset 0 1px 2px rgba(255,255,255,0.95),
    inset 0 -6px 10px rgba(0,22,249,0.06);
}
.cap-icon svg{ position:relative; z-index:1; }
.cap-card h3{ position:relative; z-index:1; font-size:16.5px; margin-bottom:6px; }
.cap-card p{ position:relative; z-index:1; font-size:13.8px; color:var(--text-2); line-height:1.5; }

/* ============================================================
   SPLIT layout (whatsapp / philosophy)
   ============================================================ */
.split-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
  padding:20px 0;
}
.split-grid.reverse .split-copy{ order:2; }
.split-grid.reverse .split-visual{ order:1; }
.split-copy h2{ font-size:clamp(24px,3.2vw,36px); margin:10px 0 16px; line-height:1.15; }
.section-sub{ color:var(--text-2); font-size:15.5px; max-width:460px; margin-bottom:28px; }

.mini-stats{ display:flex; gap:34px; }
.mini-stats strong{ display:block; font-size:22px; font-weight:800; }
.mini-stats span{ font-size:12.5px; color:var(--text-2); }

.phone-frame{ max-width:380px; margin-left:auto; padding:22px; }
.chat-scroll{ padding:16px 2px; min-height:200px; }
.chat-scroll .chat-bubble{ font-size:13px; max-width:80%; }
.chat-input{
  display:flex; align-items:center; justify-content:space-between;
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 16px;
  font-size:12.5px;
  color:var(--text-2);
}
.chat-input svg{ color:var(--blue); }

.stagger{ opacity:0; transform:translateY(8px); animation:bubble-in .5s var(--ease) forwards; }
.stagger:nth-child(1){ animation-delay:.2s; }
.stagger:nth-child(2){ animation-delay:.9s; }
.stagger:nth-child(3){ animation-delay:1.6s; }
.stagger:nth-child(4){ animation-delay:2.3s; }
@keyframes bubble-in{ to{ opacity:1; transform:translateY(0); } }

/* ---- philosophy module (mano + robot, tarjeta única) ---- */
.philosophy-module{
  position:relative;
  overflow:hidden;
  padding:0;
  display:flex;
  align-items:stretch;
  min-height:440px;
}
.philosophy-text{
  flex:1 1 44%;
  padding:52px 48px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  z-index:2;
}
.philosophy-text h2{ font-size:clamp(24px,3vw,34px); line-height:1.22; margin:12px 0 18px; }
.philosophy-accent{ color:var(--blue); }
.philosophy-visual{
  flex:1 1 56%;
  position:relative;
  min-height:320px;
}
.philosophy-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 68%;
  -webkit-mask-image:linear-gradient(90deg, transparent, black 20%);
  mask-image:linear-gradient(90deg, transparent, black 20%);
}

/* ============================================================
   DASHBOARD MODULE
   ============================================================ */
.range-tabs{
  display:flex;
  gap:4px;
  background:rgba(17,24,39,0.05);
  border-radius:999px;
  padding:4px;
}
.range-tab{
  padding:7px 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  color:var(--text-2);
  transition:background .2s, color .2s, box-shadow .2s;
}
.range-tab.active{ background:#fff; color:var(--text); box-shadow:var(--shadow-sm); }

.dash-stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  margin-bottom:32px;
}
.stat-tile{
  background:rgba(255,255,255,0.6);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:18px 20px;
}
.stat-tile span{ font-size:12.5px; color:var(--text-2); display:block; margin-bottom:8px; }
.stat-tile strong{ font-size:24px; font-weight:800; display:block; }
.stat-tile em{ font-style:normal; font-size:12px; font-weight:700; }
.stat-tile em.up{ color:var(--green-deep); }
.stat-tile em.down{ color:var(--blue); }

.chart-wrap{ position:relative; }
.chart-svg{ width:100%; height:220px; }
.chart-x-axis{
  display:flex;
  justify-content:space-between;
  font-size:11.5px;
  color:var(--text-2);
  margin-top:6px;
  padding:0 2px;
}

/* ============================================================
   STEPS (cómo trabajamos)
   ============================================================ */
.steps-row{
  display:flex;
  align-items:stretch;
  gap:4px;
  position:relative;
  margin-top:8px;
}
.step-item{
  position:relative;
  z-index:1;
  flex:1 1 0;
  min-width:0;
  padding:22px 18px;
  border-radius:var(--radius-md);
  background:rgba(255,255,255,0.5);
  border:1px solid var(--line);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.step-item:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-md);
  border-color:rgba(0,22,249,0.18);
}
.step-arrow{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  color:var(--text-2);
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.steps-row.in-view .step-arrow{ opacity:1; transform:translateX(0); }
.steps-row.in-view .step-arrow:nth-of-type(2){ transition-delay:.3s; }
.steps-row.in-view .step-arrow:nth-of-type(4){ transition-delay:.55s; }
.steps-row.in-view .step-arrow:nth-of-type(6){ transition-delay:.8s; }
.step-icon{
  position:relative;
  width:50px;height:50px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(circle at 32% 28%, rgba(255,255,255,0.95), rgba(255,255,255,0.55) 55%, rgba(226,233,253,0.4) 100%);
  color:var(--blue);
  border:1px solid rgba(255,255,255,0.9);
  box-shadow:
    0 0 0 7px rgba(0,22,249,0.05),
    0 0 22px 3px rgba(0,22,249,0.28),
    inset 0 1px 2px rgba(255,255,255,0.95),
    inset 0 -6px 10px rgba(0,22,249,0.05);
  margin-bottom:16px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.step-icon::before{
  content:'';
  position:absolute;
  inset:-9px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(0,22,249,0.16), transparent 72%);
  filter:blur(5px);
  z-index:-1;
}
.step-item:hover .step-icon{
  transform:scale(1.08);
  box-shadow:
    0 0 0 8px rgba(0,22,249,0.07),
    0 0 30px 6px rgba(0,22,249,0.38),
    inset 0 1px 2px rgba(255,255,255,0.95),
    inset 0 -6px 10px rgba(0,22,249,0.06);
}
.step-num{
  position:absolute;
  top:-6px; right:-6px;
  width:20px;height:20px;
  border-radius:50%;
  background:#fff;
  border:1px solid var(--line);
  font-weight:800;
  font-size:10px;
  color:var(--text-2);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--shadow-sm);
}
.step-item h3{ font-size:15px; line-height:1.35; font-weight:700; margin-bottom:8px; }
.step-desc{ font-size:12.5px; line-height:1.5; color:var(--text-2); }

/* ============================================================
   USE CASES
   ============================================================ */
.usecase-tabs{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:24px;
}
.uc-tab{
  padding:10px 18px;
  border-radius:999px;
  font-size:13.5px;
  font-weight:600;
  color:var(--text-2);
  background:rgba(255,255,255,0.5);
  border:1px solid var(--line);
  transition:all .2s;
}
.uc-tab.active{ background:var(--text); color:#fff; border-color:var(--text); }

.usecase-panel{ padding:0; overflow:hidden; }
.uc-content{ display:none; }
.uc-content.active{ display:flex; align-items:stretch; min-height:280px; animation:fade-in .4s var(--ease); }
@keyframes fade-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }
.uc-text{ flex:1 1 55%; padding:44px 40px; display:flex; flex-direction:column; justify-content:center; }
.uc-content h3{ font-size:22px; margin-bottom:12px; }
.uc-content p{ color:var(--text-2); font-size:15.5px; max-width:420px; margin-bottom:24px; }
.uc-metrics{ display:flex; gap:40px; }
.uc-metrics strong{ font-size:24px; font-weight:800; color:var(--blue); display:block; }
.uc-visual{
  flex:1 1 45%;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#111827;
}
.uc-visual video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.uc-visual::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(200deg, rgba(0,22,249,0.16), transparent 45%),
             linear-gradient(0deg, rgba(17,24,39,0.35), transparent 40%);
  pointer-events:none;
}
.uc-metrics span{ font-size:12.5px; color:var(--text-2); }

/* ============================================================
   CAROLINA — interactive chat demo
   ============================================================ */
.carolina-module{ overflow:visible; }
.carolina-grid{
  display:grid;
  grid-template-columns:0.85fr 1fr;
  gap:40px;
  align-items:center;
  margin-top:36px;
}
.carolina-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:420px;
}
.carolina-ring{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:300px; height:300px;
  border-radius:50%;
  border:1px solid rgba(0,22,249,0.16);
  animation:spin-slow 30s linear infinite;
}
.carolina-glow{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:280px; height:280px;
  border-radius:50%;
  background:radial-gradient(circle at 40% 35%, rgba(0,22,249,0.14), rgba(0,255,146,0.10) 55%, transparent 75%);
  filter:blur(16px);
  animation:pulse-core 5s ease-in-out infinite;
}
.carolina-visual::after{
  content:'';
  position:absolute;
  bottom:4%; left:50%;
  transform:translateX(-50%);
  width:70%; height:60px;
  background:radial-gradient(ellipse 50% 50% at 50% 50%, rgba(255,255,255,0.85), rgba(0,22,249,0.16) 55%, transparent 78%);
  filter:blur(10px);
  z-index:0;
  pointer-events:none;
}
.carolina-video{
  position:relative;
  z-index:1;
  height:100%;
  width:auto;
  max-width:100%;
  object-fit:contain;
  filter:drop-shadow(0 24px 40px rgba(17,24,39,0.16));
  -webkit-mask-image:linear-gradient(to bottom, black 82%, transparent 98%);
  mask-image:linear-gradient(to bottom, black 82%, transparent 98%);
}
.carolina-live{
  position:absolute;
  bottom:18px; left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 14px;
  border-radius:999px;
  background:var(--glass-strong);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(16px);
  font-size:12px;
  font-weight:700;
  color:var(--green-deep);
  box-shadow:var(--shadow-md);
}
.carolina-live i{ width:6px;height:6px;border-radius:50%;background:var(--green-deep); box-shadow:0 0 0 3px rgba(0,199,118,0.18); }

.carolina-phone{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  display:flex;
  flex-direction:column;
  height:420px;
  overflow:hidden;
}
.phone-head{
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  flex-shrink:0;
}
.phone-avatar{
  width:34px;height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:14px;
  color:#fff;
  background:linear-gradient(135deg, var(--blue), var(--green-deep));
  flex-shrink:0;
}
.phone-head-text{ display:flex; flex-direction:column; line-height:1.3; }
.phone-head-text strong{ font-size:13.5px; }
.phone-head-text span{ font-size:11.5px; color:var(--text-2); }
.phone-head .live-dot{ margin-left:auto; }

.phone-scroll{
  flex:1;
  overflow-y:auto;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.phone-scroll .chat-bubble{ font-size:13.5px; max-width:82%; }
.phone-scroll .chat-typing{ padding-left:2px; }

.phone-input{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-top:1px solid var(--line);
  flex-shrink:0;
}
.phone-input input{
  flex:1;
  border:none;
  outline:none;
  background:rgba(17,24,39,0.04);
  border-radius:999px;
  padding:10px 16px;
  font-size:13.5px;
  font-family:inherit;
  color:var(--text);
}
.phone-input input::placeholder{ color:var(--text-2); }
.phone-input button{
  width:36px;height:36px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, #1a1f2e, #0B0F19);
  color:#fff;
  flex-shrink:0;
  transition:transform .2s var(--ease);
}
.phone-input button:hover{ transform:scale(1.06); }

/* ============================================================
   PRICING
   ============================================================ */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  align-items:stretch;
}
.price-card{
  position:relative;
  background:var(--glass);
  border:1px solid rgba(0,22,249,0.22);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  backdrop-filter:blur(20px) saturate(160%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.85),
    0 4px 10px -4px rgba(17,24,39,0.08),
    0 24px 44px -26px rgba(0,22,249,0.30);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.price-card:hover{
  transform:translateY(-6px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 6px 14px -4px rgba(17,24,39,0.1),
    0 30px 54px -24px rgba(0,22,249,0.36);
  border-color:rgba(0,22,249,0.34);
}
.price-card.featured{
  border:1.5px solid rgba(0,22,249,0.5);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 8px 18px -6px rgba(0,22,249,0.18),
    0 32px 60px -24px rgba(0,22,249,0.4);
  transform:scale(1.03);
}
.price-card.featured:hover{ transform:scale(1.03) translateY(-6px); }
.price-badge{
  position:absolute; top:-13px; left:28px;
  background:linear-gradient(135deg, var(--blue), var(--blue-soft));
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  padding:5px 14px;
  border-radius:999px;
}
.price-badge.neutral{
  background:linear-gradient(135deg, #374151, #111827);
}
.price-plan{ font-size:16px; font-weight:800; margin-bottom:10px; }
.price-desc{ font-size:13.3px; line-height:1.5; color:var(--text-2); margin-bottom:22px; min-height:60px; }
.price-amount{ font-size:34px; font-weight:800; margin-bottom:22px; font-family:'Poppins',sans-serif; display:flex; align-items:baseline; gap:6px; }
.price-amount span{ font-size:14px; font-weight:600; color:var(--text-2); white-space:nowrap; }
.price-features{ margin-bottom:28px; flex:1; }
.price-features li{
  font-size:13.8px;
  color:var(--text);
  padding:8px 0;
  border-top:1px solid var(--line);
  display:flex; align-items:center; gap:9px;
}
.price-features li:first-child{ border-top:none; }
.price-features li::before{
  content:'';
  width:16px;height:16px;
  flex-shrink:0;
  background:var(--green-deep);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
}
.price-features li.excluded{ color:var(--text-2); }
.price-features li.excluded::before{
  background:#C4CAD4;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ============================================================
   FINAL CTA
   ============================================================ */
.final-cta{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:56px 60px;
}
.cta-content{ position:relative; z-index:2; flex:1 1 55%; }
.cta-content h2{ font-size:clamp(26px,3.4vw,38px); margin-bottom:12px; }
.cta-content p{ color:var(--text-2); font-size:16px; margin-bottom:28px; max-width:420px; }
.cta-trust{
  display:flex;
  gap:0;
  margin-top:32px;
  flex-wrap:wrap;
  background:rgba(255,255,255,0.5);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:20px 8px;
}
.cta-trust > div{
  flex:1 1 0;
  min-width:110px;
  padding:0 16px;
  border-left:1px solid var(--line);
}
.cta-trust > div:first-child{ border-left:none; }
.cta-trust svg{ color:var(--blue); margin-bottom:10px; }
.cta-trust strong{ display:block; font-size:20px; font-weight:800; font-family:'Poppins',sans-serif; margin-bottom:2px; }
.cta-trust span{ font-size:12px; color:var(--text-2); line-height:1.35; display:block; }
.cta-visual{
  position:relative;
  z-index:2;
  flex:1 1 45%;
  height:320px;
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.cta-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 55%;
  -webkit-mask-image:linear-gradient(90deg, transparent, black 15%);
  mask-image:linear-gradient(90deg, transparent, black 15%);
}
.cta-chip{
  position:absolute;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--glass-strong);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(16px) saturate(160%);
  box-shadow:var(--shadow-lg);
  font-size:12.5px;
  font-weight:700;
  color:var(--text);
  animation:float-panel 5s ease-in-out infinite;
  z-index:2;
}
.cta-chip.chip-1{ top:10%; left:8%; animation-delay:.2s; }
.cta-chip.chip-2{ bottom:12%; right:4%; animation-delay:.7s; }
.cta-chip .live-dot i{ width:6px;height:6px; }
.cta-glow{
  position:absolute;
  width:400px;height:400px;
  background:radial-gradient(circle, rgba(0,255,146,0.18), transparent 70%);
  top:-140px; right:-100px;
  pointer-events:none;
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ padding:64px 0 28px; margin-top:40px; }
.footer-inner{
  display:flex;
  justify-content:space-between;
  gap:60px;
  padding-bottom:56px;
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.footer-brand p{ color:var(--text-2); font-size:13.5px; margin-top:10px; max-width:220px; }
.footer-tech-tag{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:20px;
  margin-bottom:4px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(0,22,249,0.06);
  font-size:12.5px; font-weight:600;
}
.footer-tech-tag .dot{ width:6px;height:6px;border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--green-deep)); }
.footer-cols{ display:flex; gap:56px; flex-wrap:wrap; }
.footer-col h4{ font-size:13px; margin-bottom:14px; font-weight:700; }
.footer-col a{
  display:block;
  font-size:13.8px;
  color:var(--text-2);
  padding:5px 0;
  transition:color .2s;
}
.footer-col a:hover{ color:var(--text); }
.footer-bottom{
  display:flex;
  justify-content:space-between;
  padding-top:32px;
  font-size:12.5px;
  color:var(--text-2);
  flex-wrap:wrap;
  gap:10px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-visual{ height:440px; order:-1; }
  .split-grid{ grid-template-columns:1fr; gap:40px; }
  .split-grid.reverse .split-copy{ order:1; }
  .split-grid.reverse .split-visual{ order:2; }
  .phone-frame{ margin:0 auto; }
  .carolina-grid{ grid-template-columns:1fr; }
  .carolina-visual{ height:320px; }
  .capability-grid{ grid-template-columns:repeat(2,1fr); }
  .dash-stats{ grid-template-columns:repeat(2,1fr); }
  .pricing-grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; }
  .price-card.featured{ transform:none; order:-1; }
  .steps-row{ flex-direction:column; gap:0; }
  .step-arrow{ width:100%; height:26px; transform:rotate(90deg); opacity:1; }
  .nav-links{
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    margin-left:0;
    justify-self:stretch;
    width:auto;
    height:auto;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:rgba(233,238,249,0.96);
    backdrop-filter:blur(20px);
    border-bottom:1px solid var(--line);
    padding:8px 32px 20px;
    box-shadow:var(--shadow-md);
  }
  .nav-links.mobile-open{ display:flex; }
  .nav-links a{ height:auto; padding:12px 0; border-top:1px solid var(--line); }
  .nav-links a:first-child{ border-top:none; }
  .nav-burger{ display:flex; }
  .nav-burger.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-burger.active span:nth-child(2){ opacity:0; }
  .nav-burger.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .final-cta{ flex-direction:column; text-align:center; padding:48px 32px; }
  .cta-content p{ margin-inline:auto; }
  .cta-trust{ justify-content:center; }
  .cta-trust > div{ border-left:none; border-top:1px solid var(--line); padding-top:14px; }
  .cta-trust > div:first-child{ border-top:none; }
  .cta-visual{ width:100%; height:260px; }
  .cta-photo{ mask-image:linear-gradient(180deg, transparent, black 15%); -webkit-mask-image:linear-gradient(180deg, transparent, black 15%); object-position:center 40%; }
  .panel-chat{ top:4%; left:68%; right:auto; width:190px; }
  .panel-cal{ top:-3%; left:0%; width:170px; }
  .panel-status{ top:-6%; left:26%; width:190px; }
}

@media (max-width: 620px){
  .container{ padding:0 20px; }
  .glass-panel-lg{ padding:28px 22px; }
  .hero{ padding:64px 0 48px; }
  .hero-actions{ flex-direction:column; align-items:flex-start; }
  .hero-actions .btn{ width:100%; justify-content:center; }
  .capability-grid{ grid-template-columns:1fr; }
  .dash-stats{ grid-template-columns:1fr 1fr; }
  .mini-stats{ gap:20px; flex-wrap:wrap; }
  .uc-content.active{ flex-direction:column; }
  .uc-text{ padding:28px 22px; }
  .uc-visual{ min-height:140px; }
  .module-head-split{ align-items:flex-start; }
  .footer-inner{ gap:32px; }
  .float-panel{ position:relative; }
  .hero-visual{ height:auto; display:flex; flex-direction:column; gap:16px; align-items:center; padding:20px 0; }
  .sphere-ring, .hero-glow{ display:none; }
  .philosophy-module{ flex-direction:column; min-height:0; }
  .philosophy-text{ padding:28px 22px; }
  .philosophy-visual{ min-height:220px; }
  .philosophy-visual img{ mask-image:linear-gradient(180deg, transparent, black 15%); -webkit-mask-image:linear-gradient(180deg, transparent, black 15%); }
  .hero-video-wrap{ position:relative; bottom:auto; left:auto; transform:none; width:82%; max-width:340px; height:auto; margin:0 auto; }
  .float-panel{ position:relative; animation:none; width:100%; max-width:280px; top:auto; left:auto; right:auto; bottom:auto; }
}
