/* ================================================================
   VARIABLES — edita aquí para cambiar toda la paleta
   ================================================================ */
:root {
  /* Colores */
  --bg:          #040812;
  --bg-2:        #080f20;
  --bg-3:        #0a1228;
  --purple:      #7C3AED;
  --purple-l:    #9D5CF6;
  --violet:      #A855F7;
  --blue:        #2563EB;
  --blue-l:      #3B82F6;
  --cyan:        #06B6D4;
  --cyan-l:      #22D3EE;
  --green:       #10B981;
  --white:       #FFFFFF;
  --gray-1:      #E2E8F0;
  --gray-2:      #94A3B8;
  --gray-3:      #475569;
  --gray-4:      #1E293B;

  /* Gradientes */
  --grad-primary:   linear-gradient(135deg, #7C3AED, #2563EB);
  --grad-neon:      linear-gradient(135deg, #A855F7, #06B6D4);
  --grad-text:      linear-gradient(120deg, #C084FC 0%, #38BDF8 100%);
  --grad-card:      linear-gradient(135deg, rgba(124,58,237,.08), rgba(37,99,235,.06));
  --grad-green:     linear-gradient(135deg, #10B981, #06B6D4);

  /* Glass */
  --glass:          rgba(255,255,255,.04);
  --glass-b:        rgba(255,255,255,.07);
  --glass-hover:    rgba(255,255,255,.07);
  --border:         rgba(255,255,255,.07);
  --border-l:       rgba(255,255,255,.12);

  /* Tipografía */
  --f-title: 'Space Grotesk', sans-serif;
  --f-body:  'Inter', sans-serif;

  /* Layout */
  --max-w:   1220px;
  --px:      1.5rem;
  --sec-py:  6rem;

  /* Radios */
  --r-sm:  .5rem;
  --r-md:  .875rem;
  --r-lg:  1.25rem;
  --r-xl:  2rem;

  /* Transiciones */
  --t: .3s ease;
  --t-slow: .6s ease;
}

/* ================================================================
   RESET
   ================================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:var(--f-body);
  background:var(--bg);
  color:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit}

/* ================================================================
   CURSOR PERSONALIZADO (solo desktop)
   ================================================================ */
@media(hover:hover){
  body{cursor:none}
  a,button,[role="button"]{cursor:none}
}
.cursor{
  position:fixed;width:36px;height:36px;
  border:1.5px solid rgba(168,85,247,.5);
  border-radius:50%;pointer-events:none;
  z-index:100000;;transform:translate(-50%,-50%);
  transition:transform .15s ease,opacity .3s,width .25s,height .25s,border-color .25s;
  mix-blend-mode:normal;
}
.cursor-dot{
  position:fixed;width:6px;height:6px;
  background:var(--violet);border-radius:50%;
  pointer-events:none;z-index:100001;
  transform:translate(-50%,-50%);
  transition:transform .05s linear;
}
.cursor.hovered{
  width:56px;height:56px;
  border-color:var(--violet);
  background:rgba(168,85,247,.06);
}
@media(max-width:1024px){.cursor,.cursor-dot{display:none}}

/* ================================================================
   BARRA DE PROGRESO SCROLL
   ================================================================ */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:var(--grad-neon);
  z-index:1001;transition:width .1s linear;
}

/* ================================================================
   UTILIDADES
   ================================================================ */
.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--px)}

.text-gradient{
  background:var(--grad-text);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

.section{padding:var(--sec-py) 0;position:relative}

.section__head{text-align:center;max-width:680px;margin:0 auto 4rem}

.section__label{
  display:inline-block;
  font-size:.72rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--cyan);
  background:rgba(6,182,212,.08);
  border:1px solid rgba(6,182,212,.2);
  padding:.3rem .9rem;border-radius:100px;
  margin-bottom:1rem;
}

.section__title{
  font-family:var(--f-title);
  font-size:clamp(1.7rem,4vw,2.6rem);
  font-weight:800;line-height:1.2;
  letter-spacing:-.025em;
  margin-bottom:1rem;
}

.section__body{
  font-size:1.05rem;color:var(--gray-2);line-height:1.75;
}

/* ================================================================
   ANIMACIONES ENTRADA — fade-up y stagger
   ================================================================ */
.fade-up{
  opacity:0;transform:translateY(28px);
  transition:opacity .75s ease,transform .75s ease;
  transition-delay:var(--delay,0s);
}
.fade-up.visible{opacity:1;transform:none}

.stagger-child{
  opacity:0;transform:translateY(24px);
  transition:opacity .65s ease,transform .65s ease;
}
.stagger-child.visible{opacity:1;transform:none}

/* ================================================================
   BOTONES
   ================================================================ */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 1.75rem;
  border-radius:var(--r-md);
  font-family:var(--f-title);font-weight:600;font-size:.95rem;
  transition:var(--t);white-space:nowrap;
  position:relative;overflow:hidden;
}
.btn::before{
  content:'';position:absolute;inset:0;
  background:rgba(255,255,255,0);transition:var(--t);
}
.btn:hover::before{background:rgba(255,255,255,.06)}

.btn--primary{
  background:var(--grad-primary);color:var(--white);
  box-shadow:0 4px 24px rgba(124,58,237,.4);
}
.btn--primary:hover{box-shadow:0 6px 36px rgba(124,58,237,.65);transform:translateY(-2px)}

.btn--nav{
  background:var(--grad-neon);color:var(--bg);
  font-weight:700;padding:.55rem 1.2rem;font-size:.83rem;
  border-radius:var(--r-sm);
}
.btn--nav:hover{opacity:.9;transform:translateY(-1px)}

.btn--hero-primary{
  background:var(--grad-primary);color:var(--white);
  padding:1rem 2rem;font-size:1rem;
  box-shadow:0 4px 30px rgba(124,58,237,.45);
}
.btn--hero-primary:hover{box-shadow:0 8px 40px rgba(124,58,237,.7);transform:translateY(-3px)}

.btn--hero-ghost{
  background:var(--glass);color:var(--white);
  border:1px solid var(--border-l);
  padding:.95rem 1.75rem;font-size:.95rem;
  backdrop-filter:blur(12px);
}
.btn--hero-ghost:hover{border-color:rgba(168,85,247,.5);background:rgba(168,85,247,.1);transform:translateY(-2px)}

.btn--whatsapp{
  background:#25D366;color:var(--white);
  box-shadow:0 4px 22px rgba(37,211,102,.4);
  padding:1rem 2rem;font-size:1rem;
}
.btn--whatsapp:hover{background:#1fbe5b;box-shadow:0 6px 32px rgba(37,211,102,.6);transform:translateY(-2px)}

.btn--ghost{
  background:var(--glass);color:var(--white);
  border:1px solid var(--border);
  backdrop-filter:blur(10px);
}
.btn--ghost:hover{border-color:rgba(168,85,247,.4);background:rgba(168,85,247,.08)}

.btn--plan{
  background:var(--glass);color:var(--white);
  border:1px solid var(--border);
  width:100%;justify-content:center;
}
.btn--plan:hover{border-color:rgba(168,85,247,.5);background:rgba(168,85,247,.1)}

/* ================================================================
   HEADER
   ================================================================ */
.header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:1.1rem 0;
  transition:background var(--t),box-shadow var(--t),padding var(--t);
}
.header.scrolled{
  background:rgba(4,8,18,.88);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  box-shadow:0 1px 0 var(--border);
  padding:.65rem 0;
}

.nav{display:flex;align-items:center;gap:1.5rem}

/* Logo */
.nav__logo-img{
    height: 50px;
    width:auto;
    display:block;
    flex-shrink:0;
}

.nav__logo{
  display:flex;
  align-items:center;
  gap:.6rem;
}

.logo__text{color:var(--gray-1)}
.logo__text span{
  background:var(--grad-text);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

.nav__menu{display:flex;align-items:center;gap:.1rem;margin:0 auto}

.nav__link{
  font-size:.855rem;font-weight:500;color:var(--gray-2);
  padding:.45rem .8rem;border-radius:var(--r-sm);
  transition:var(--t);position:relative;
}
.nav__link::after{
  content:'';position:absolute;bottom:2px;left:50%;right:50%;
  height:1px;background:var(--grad-neon);transition:var(--t);
}
.nav__link:hover,
.nav__link.active{color:var(--white)}
.nav__link:hover::after,
.nav__link.active::after{left:20%;right:20%}

.nav__toggle{
  display:none;flex-direction:column;
  align-items:center;justify-content:center;
  width:36px;height:36px;
  border:1px solid var(--border);border-radius:var(--r-sm);
  background:var(--glass);
  margin-left:auto;
  transition:var(--t);
}
.nav__toggle:hover{border-color:var(--border-l)}
.icon-close{display:none}
.nav__toggle.open .icon-menu{display:none}
.nav__toggle.open .icon-close{display:block}

/* ================================================================
   HERO
   ================================================================ */
.hero{
  min-height:100vh;display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 70% -10%,rgba(124,58,237,.22) 0%,transparent 60%),
    radial-gradient(ellipse 60% 50% at -10% 80%,rgba(37,99,235,.18) 0%,transparent 60%),
    var(--bg);
  padding-top:5.5rem;
}

/* Grid futurista de fondo */
.hero__grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,black 20%,transparent 80%);
}

.hero__canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

.hero__nebula{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;animation:nebFloat 10s ease-in-out infinite}
.hero__nebula--1{width:500px;height:400px;background:radial-gradient(circle,rgba(124,58,237,.3),transparent 70%);top:-120px;right:-80px;animation-duration:12s}
.hero__nebula--2{width:350px;height:350px;background:radial-gradient(circle,rgba(37,99,235,.25),transparent 70%);bottom:0;left:-80px;animation-duration:9s;animation-delay:-4s}
.hero__nebula--3{width:250px;height:250px;background:radial-gradient(circle,rgba(6,182,212,.2),transparent 70%);top:40%;right:25%;animation-duration:7s;animation-delay:-2s}

@keyframes nebFloat{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-25px) scale(1.04)}
}

.hero__inner{
  position:relative;z-index:1;flex:1;
  display:grid;grid-template-columns:1fr 1fr;
  gap:3rem;align-items:center;
  padding-bottom:2rem;
}

/* Hero izquierdo */
.hero__content{display:flex;flex-direction:column;gap:1.5rem}

.hero__eyebrow{display:flex}
.eyebrow__pill{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.78rem;font-weight:600;
  color:var(--cyan-l);letter-spacing:.04em;
  background:rgba(6,182,212,.08);
  border:1px solid rgba(6,182,212,.2);
  padding:.35rem 1rem;border-radius:100px;
}
.eyebrow__led{
  width:7px;height:7px;border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 8px var(--cyan);
  animation:ledPulse 2s ease-in-out infinite;
}
@keyframes ledPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}

.hero__title{
  font-family:var(--f-title);
  font-size:clamp(2.2rem,5.5vw,4rem);
  font-weight:800;line-height:1.12;
  letter-spacing:-.03em;
}
.title__line{display:block}
.title__gradient{
  background:var(--grad-text);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
  position:relative;
}
/* Cursor typewriter */
.title__gradient::after{
  content:'|';
  -webkit-text-fill-color:var(--violet);
  animation:blink .8s step-end infinite;
}
.title__gradient.typed::after{display:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

.hero__sub{font-size:1.1rem;color:var(--gray-2);max-width:500px;line-height:1.75}

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

.hero__trust{
  display:flex;align-items:center;gap:1rem;
  flex-wrap:wrap;
}
.trust__item{
  display:flex;align-items:center;gap:.4rem;
  font-size:.82rem;color:var(--gray-3);
}
.trust__sep{width:1px;height:14px;background:var(--border-l)}

/* Panel derecho hero */
.hero__panel{position:relative;display:flex;align-items:center;justify-content:center}

.panel__browser{
  width:100%;max-width:460px;
  background:var(--bg-2);
  border:1px solid var(--border-l);
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06);
}

.browser__bar{
  height:38px;
  background:var(--bg-3);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:1rem;
  padding:0 1rem;
}
.browser__dots{display:flex;gap:5px}
.browser__dots span{
  width:10px;height:10px;border-radius:50%;
  background:var(--border-l);
}
.browser__dots span:nth-child(1){background:#FF5F57}
.browser__dots span:nth-child(2){background:#FEBC2E}
.browser__dots span:nth-child(3){background:#28C840}

.browser__url{
  flex:1;height:22px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:100px;
  font-size:.72rem;color:var(--gray-3);
  display:flex;align-items:center;padding:0 .75rem;
}

.browser__body{padding:1.25rem}

.bb__hero-block{margin-bottom:1rem}
.bb__line{height:10px;border-radius:5px;margin-bottom:.5rem}
.bb__line--title{
  width:75%;
  background:linear-gradient(90deg,rgba(124,58,237,.5),rgba(37,99,235,.5));
  animation:shimmer 2s ease-in-out infinite;
}
.bb__line--sub{
  width:55%;
  background:rgba(255,255,255,.08);
  animation:shimmer 2s ease-in-out infinite;
  animation-delay:.2s;
}
.bb__btn{
  margin-top:.75rem;
  width:120px;height:28px;
  border-radius:14px;
  background:linear-gradient(90deg,rgba(124,58,237,.6),rgba(37,99,235,.5));
  animation:shimmer 2s ease-in-out infinite;
  animation-delay:.4s;
}

@keyframes shimmer{
  0%,100%{opacity:.7}
  50%{opacity:1}
}

.bb__cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}
.bb__card{
  height:60px;border-radius:var(--r-sm);
  background:var(--glass);border:1px solid var(--border);
  animation:shimmer 2.5s ease-in-out infinite;
}
.bb__card:nth-child(2){animation-delay:.3s}
.bb__card:nth-child(3){animation-delay:.6s}

/* Badges flotantes */
.panel__badge{
  position:absolute;
  background:rgba(8,15,32,.9);
  border:1px solid var(--border-l);
  backdrop-filter:blur(16px);
  border-radius:var(--r-md);
  padding:.65rem 1rem;
  display:flex;align-items:center;gap:.6rem;
  box-shadow:0 8px 32px rgba(0,0,0,.4);
  white-space:nowrap;
  animation:floatBadge 4s ease-in-out infinite;
}
.panel__badge--seo{top:-12px;left:-24px;animation-delay:0s}
.panel__badge--perf{bottom:-12px;right:-20px;animation-delay:-2s}
.panel__badge--conv{top:40%;right:-32px;animation-delay:-1s;flex-direction:row}
@keyframes floatBadge{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

.badge__icon{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.badge__icon--green{background:rgba(16,185,129,.15);color:var(--green)}

.badge__label{font-size:.7rem;color:var(--gray-2);line-height:1.2}
.badge__val{font-family:var(--f-title);font-weight:700;font-size:.95rem;line-height:1.2}
.badge__val--green{color:var(--cyan-l)}

/* Badge con ring circular */
.badge__ring{
  position:relative;width:40px;height:40px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.badge__ring::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:3px solid rgba(255,255,255,.08);
}
.badge__ring::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:3px solid transparent;
  border-top-color:var(--violet);
  border-right-color:var(--violet);
  transform:rotate(calc(var(--pct,0) * 3.6deg - 90deg));
}

/* Stats bar hero */
.hero__stats{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  gap:2rem;
  background:rgba(4,8,18,.6);
  backdrop-filter:blur(16px);
  border-top:1px solid var(--border);
  padding:1.5rem;
  margin-top:auto;
  flex-wrap:wrap;
}
.stat__item{
  display:flex;flex-direction:column;align-items:center;gap:.1rem;
}
.stat__num{
  font-family:var(--f-title);font-size:1.9rem;font-weight:800;
  background:var(--grad-text);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
  line-height:1;
}
.stat__sym{font-family:var(--f-title);font-size:.9rem;font-weight:700;color:var(--gray-3)}
.stat__label{font-size:.72rem;color:var(--gray-3);letter-spacing:.04em}
.stat__div{width:1px;height:40px;background:var(--border-l)}

.hero__scroll-cta{
  position:absolute;bottom:5.5rem;left:50%;transform:translateX(-50%);
  z-index:1;
}
.scroll-cta__inner{
  display:flex;align-items:center;gap:.4rem;
  font-size:.78rem;color:var(--gray-3);
  padding:.4rem .9rem;
  background:var(--glass);border:1px solid var(--border);
  border-radius:100px;
  animation:scrollBounce 2.5s ease-in-out infinite;
  transition:var(--t);
}
.scroll-cta__inner:hover{color:var(--white);border-color:var(--border-l)}
@keyframes scrollBounce{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(6px)}
}

/* ================================================================
   TICKER / MARQUEE
   ================================================================ */
.ticker{
  background:var(--bg-2);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:.9rem 0;overflow:hidden;
}
.ticker__inner{
  display:flex;gap:2rem;
  animation:ticker 22s linear infinite;
  width:max-content;
  align-items:center;
}
.ticker__inner span{
  font-family:var(--f-title);font-weight:600;
  font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gray-3);white-space:nowrap;
}
.ticker__sep{color:var(--violet);font-size:.7rem}
.ticker__inner:hover{animation-play-state:paused}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ================================================================
   SECCIÓN PROBLEMA
   ================================================================ */
.problema{background:var(--bg-2)}

.problema__list{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1.25rem;
}

.prob__item{
  position:relative;
  background:var(--glass);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:2rem;
  display:flex;gap:1.25rem;
  overflow:hidden;
  transition:var(--t);
}
.prob__item:hover{
  border-color:rgba(168,85,247,.3);
  transform:translateY(-3px);
  box-shadow:0 12px 40px rgba(0,0,0,.3);
}
.prob__item:hover .prob__glow{opacity:1}

.prob__glow{
  position:absolute;inset:0;
  background:radial-gradient(circle at 0 0,rgba(124,58,237,.08),transparent 60%);
  opacity:0;transition:var(--t);pointer-events:none;
}

.prob__num{
  position:absolute;top:1.25rem;right:1.25rem;
  font-family:var(--f-title);font-size:.7rem;font-weight:700;
  color:rgba(255,255,255,.1);letter-spacing:.08em;
}

.prob__icon{
  width:48px;height:48px;flex-shrink:0;border-radius:var(--r-sm);
  background:rgba(168,85,247,.08);border:1px solid rgba(168,85,247,.15);
  display:flex;align-items:center;justify-content:center;
  color:var(--violet);margin-top:.1rem;
  transition:var(--t);
}
.prob__item:hover .prob__icon{background:rgba(168,85,247,.15);box-shadow:0 0 20px rgba(168,85,247,.2)}

.prob__content h3{
  font-family:var(--f-title);font-size:.98rem;font-weight:700;
  margin-bottom:.4rem;
}
.prob__content p{font-size:.875rem;color:var(--gray-2);line-height:1.65}

/* ================================================================
   SECCIÓN SOLUCIÓN
   ================================================================ */
.solucion{background:var(--bg);overflow:hidden}
.solucion__bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 100% 50%,rgba(37,99,235,.1),transparent 55%);
  pointer-events:none;
}

.solucion__inner{
  display:grid;grid-template-columns:1fr 1fr;
  gap:5rem;align-items:center;
  position:relative;z-index:1;
}

.solucion__left{display:flex;flex-direction:column;gap:1.5rem}
.solucion__left .section__title,.solucion__left .section__body{text-align:left}

.solucion__pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pill{
  font-size:.78rem;font-weight:500;
  color:var(--cyan-l);
  background:rgba(6,182,212,.07);
  border:1px solid rgba(6,182,212,.18);
  padding:.3rem .8rem;border-radius:100px;
  transition:var(--t);
}
.pill:hover{background:rgba(6,182,212,.15);border-color:rgba(6,182,212,.35)}

/* Dashboard */
.dashboard{
  background:var(--bg-2);
  border:1px solid var(--border-l);
  border-radius:var(--r-xl);
  padding:1.75rem;
  box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.05);
}

.dash__header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:1.5rem;
}
.dash__title{font-family:var(--f-title);font-size:.9rem;font-weight:600;color:var(--gray-1)}
.dash__live{
  display:flex;align-items:center;gap:.4rem;
  font-size:.72rem;font-weight:600;color:var(--green);
  background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);
  padding:.2rem .6rem;border-radius:100px;
}
.live__dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--green);
  animation:ledPulse 1.5s ease-in-out infinite;
}

.dash__metrics{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1rem;margin-bottom:1.5rem;
}
.dash__metric{
  background:var(--glass);border:1px solid var(--border);
  border-radius:var(--r-md);padding:.9rem;text-align:center;
}
.dm__label{font-size:.68rem;color:var(--gray-3);margin-bottom:.25rem;letter-spacing:.04em}
.dm__value{
  font-family:var(--f-title);font-weight:800;font-size:1.6rem;
  background:var(--grad-text);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;line-height:1;margin-bottom:.2rem;
}
.dm__trend{font-size:.7rem;font-weight:600}
.dm__trend--up{color:var(--green)}

/* Gráfico de barras */
.dash__chart{margin-bottom:1.25rem}
.chart__bars{
  display:flex;gap:4px;align-items:flex-end;
  height:80px;padding:0 .25rem;
}
.chart__bar{
  flex:1;display:flex;align-items:flex-end;
  height:var(--h);
}
.cb__fill{
  width:100%;height:100%;border-radius:3px 3px 0 0;
  background:rgba(255,255,255,.08);
  transition:var(--t-slow);
  animation:barGrow .8s ease-out forwards;
}
.cb__fill--highlight{background:var(--grad-primary)}
@keyframes barGrow{from{height:0}to{height:100%}}

.chart__labels{
  display:flex;gap:4px;padding:0 .25rem;margin-top:.4rem;
}
.chart__labels span{
  flex:1;text-align:center;font-size:.65rem;color:var(--gray-3);
}

.dash__footer{
  display:flex;gap:1rem;padding-top:1.25rem;
  border-top:1px solid var(--border);
}
.df__item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--gray-2)}
.df__icon{
  width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.df__icon--green{background:rgba(16,185,129,.15);color:var(--green)}
.df__icon--blue{background:rgba(59,130,246,.15);color:var(--blue-l)}

/* ================================================================
   SECCIÓN SERVICIOS
   ================================================================ */
.servicios{background:var(--bg-2)}

.servicios__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:auto auto;
  gap:1.25rem;
}

.sv__card{
  background:var(--glass);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:1.75rem;
  display:flex;flex-direction:column;gap:.75rem;
  position:relative;overflow:hidden;
  transition:var(--t);
}
.sv__card:hover{
  border-color:rgba(6,182,212,.3);
  transform:translateY(-4px);
  box-shadow:0 12px 40px rgba(6,182,212,.08);
}
.sv__card:hover .sv__glow{opacity:1}

/* Tarjeta ancha (primera) */
.sv__card--wide{
  grid-column:span 2;
  flex-direction:row;align-items:flex-start;gap:1.5rem;
  background:linear-gradient(135deg,rgba(124,58,237,.1),rgba(37,99,235,.08));
  border-color:rgba(124,58,237,.2);
}
.sv__card--wide:hover{border-color:rgba(124,58,237,.4)}
.sv__card--wide h3{font-size:1.1rem}
.sv__card--wide p{font-size:.9rem}

.sv__glow{
  position:absolute;inset:0;
  background:radial-gradient(circle at 0 100%,rgba(6,182,212,.05),transparent 60%);
  opacity:0;transition:var(--t);pointer-events:none;
}

.sv__num{
  position:absolute;top:1rem;right:1rem;
  font-family:var(--f-title);font-size:.68rem;font-weight:700;
  color:rgba(255,255,255,.08);letter-spacing:.1em;
}

.sv__icon{
  width:48px;height:48px;flex-shrink:0;
  border-radius:var(--r-md);
  background:rgba(6,182,212,.07);border:1px solid rgba(6,182,212,.15);
  display:flex;align-items:center;justify-content:center;
  color:var(--cyan-l);transition:var(--t);
}
.sv__card:hover .sv__icon{background:rgba(6,182,212,.15)}

.sv__card h3{font-family:var(--f-title);font-size:.93rem;font-weight:700}
.sv__card p{font-size:.83rem;color:var(--gray-2);line-height:1.6;flex:1}

.sv__cta{
  display:inline-flex;align-items:center;gap:.3rem;
  font-size:.8rem;font-weight:700;color:var(--cyan-l);
  transition:var(--t);
}
.sv__cta:hover{gap:.6rem;color:var(--white)}

/* ================================================================
   SECCIÓN PROCESO
   ================================================================ */
.proceso{background:var(--bg-3);overflow:hidden}
.proceso__bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 100%,rgba(124,58,237,.1),transparent 55%);
  pointer-events:none;
}

.proceso__timeline{
  display:flex;flex-direction:column;gap:0;
  max-width:720px;margin:0 auto;
  position:relative;z-index:1;
}

.pt__item{
  display:grid;grid-template-columns:60px 1fr;
  gap:1.5rem;
}

.pt__marker{
  display:flex;flex-direction:column;align-items:center;
}

.pt__circle{
  width:52px;height:52px;flex-shrink:0;
  border-radius:50%;
  background:var(--bg-2);
  border:1.5px solid rgba(124,58,237,.4);
  display:flex;align-items:center;justify-content:center;
  color:var(--violet);
  box-shadow:0 0 24px rgba(124,58,237,.15);
  transition:var(--t);
}
.pt__item:hover .pt__circle,
.pt__item.visible .pt__circle{
  background:rgba(124,58,237,.12);
  border-color:var(--violet);
  box-shadow:0 0 32px rgba(124,58,237,.3);
}
.pt__circle--final{
  border-color:var(--cyan);color:var(--cyan-l);
  box-shadow:0 0 24px rgba(6,182,212,.2);
}

.pt__line{
  width:1px;flex:1;min-height:40px;
  background:linear-gradient(180deg,rgba(124,58,237,.3),rgba(37,99,235,.15));
  margin:6px 0;
}

.pt__body{padding:1rem 0 2rem}
.pt__step{
  font-size:.7rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--violet);
  margin-bottom:.4rem;
}
.pt__body h3{font-family:var(--f-title);font-size:1.1rem;font-weight:700;margin-bottom:.5rem}
.pt__body p{font-size:.9rem;color:var(--gray-2);line-height:1.7;max-width:520px}

/* ================================================================
   SECCIÓN PLANES
   ================================================================ */
.planes{background:var(--bg)}

.planes__row{
  display:grid;grid-template-columns:1fr 1.15fr 1fr;
  gap:1.5rem;align-items:start;
}

.plan{
  background:var(--glass);border:1px solid var(--border);
  border-radius:var(--r-xl);padding:2.25rem;
  display:flex;flex-direction:column;gap:1.5rem;
  position:relative;transition:var(--t);
}
.plan:hover{border-color:rgba(168,85,247,.3);transform:translateY(-4px)}

.plan--featured{
  background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(37,99,235,.08));
  border-color:rgba(124,58,237,.4);
  box-shadow:0 0 50px rgba(124,58,237,.18),inset 0 0 50px rgba(124,58,237,.04);
}
.plan--featured:hover{transform:translateY(-6px);box-shadow:0 0 70px rgba(124,58,237,.25)}

.plan__ribbon{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--grad-primary);color:var(--white);
  font-size:.72rem;font-weight:700;letter-spacing:.04em;
  padding:.3rem 1.1rem;border-radius:100px;white-space:nowrap;
  box-shadow:0 4px 16px rgba(124,58,237,.4);
}

.plan__badge{
  display:inline-block;font-size:.68rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  padding:.25rem .7rem;border-radius:100px;
  margin-bottom:.4rem;
}
.plan__badge--gray{background:var(--glass);border:1px solid var(--border);color:var(--gray-3)}
.plan__badge--purple{background:rgba(168,85,247,.12);border:1px solid rgba(168,85,247,.3);color:var(--violet)}

.plan__top h3{font-family:var(--f-title);font-size:1.5rem;font-weight:800;margin-bottom:.5rem}
.plan__top p{font-size:.875rem;color:var(--gray-2);line-height:1.6}

.plan__list{display:flex;flex-direction:column;gap:.65rem;flex:1}
.plan__list li{
  display:flex;align-items:flex-start;gap:.6rem;
  font-size:.875rem;color:var(--gray-2);
}
.plan__check{color:var(--cyan-l);font-weight:800;flex-shrink:0;margin-top:.05rem}
.plan--featured .plan__list li{color:var(--gray-1)}

.plan__glow{
  position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(circle at 50% 0%,rgba(124,58,237,.1),transparent 60%);
  pointer-events:none;
}

.plan--featured .btn--primary{width:100%;justify-content:center}

.planes__note{
  text-align:center;margin-top:2.5rem;
  font-size:.9rem;color:var(--gray-3);
}
.planes__note a{color:var(--cyan-l);border-bottom:1px solid rgba(6,182,212,.3);transition:var(--t)}
.planes__note a:hover{color:var(--white);border-color:var(--white)}

/* ================================================================
   SECCIÓN PORTAFOLIO
   ================================================================ */
.portafolio{background:var(--bg-2)}
.port__bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(37,99,235,.08),transparent 55%);
  pointer-events:none;
}

.port__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;position:relative;z-index:1}

.port__card{
  background:var(--glass);border:1px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden;
  transition:var(--t);
}
.port__card:hover{
  border-color:rgba(6,182,212,.3);
  transform:translateY(-5px);
  box-shadow:0 16px 48px rgba(0,0,0,.4);
}

.port__preview{
  height:200px;position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;padding:1.5rem;
}
.port__preview--1{background:linear-gradient(135deg,rgba(124,58,237,.3),rgba(37,99,235,.25))}
.port__preview--2{background:linear-gradient(135deg,rgba(6,182,212,.2),rgba(16,185,129,.15))}
.port__preview--3{background:linear-gradient(135deg,rgba(168,85,247,.25),rgba(124,58,237,.2))}

.port__overlay{
  position:absolute;inset:0;
  background:rgba(4,8,18,.7);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:var(--t);
  backdrop-filter:blur(4px);
}
.port__overlay span{
  font-family:var(--f-title);font-size:.85rem;font-weight:600;
  color:var(--white);
  border:1px solid rgba(255,255,255,.3);
  padding:.4rem 1rem;border-radius:100px;
}
.port__card:hover .port__overlay{opacity:1}

/* Mockup mini */
.port__mockup{
  width:100%;max-width:210px;
  background:rgba(4,8,18,.75);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-md);
  padding:.75rem;
}
.pm__nav{display:flex;gap:4px;margin-bottom:.6rem}
.pm__dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.12)}

.pm__hero{height:45px;border-radius:var(--r-sm);margin-bottom:.6rem}
.pm__hero--blue{background:linear-gradient(90deg,rgba(124,58,237,.5),rgba(37,99,235,.4))}
.pm__hero--cyan{background:linear-gradient(90deg,rgba(6,182,212,.5),rgba(16,185,129,.35))}
.pm__hero--purple{background:linear-gradient(90deg,rgba(168,85,247,.5),rgba(124,58,237,.4))}

.pm__body{display:flex;flex-direction:column;gap:.4rem}
.pm__row{height:6px;border-radius:3px;background:rgba(255,255,255,.1)}
.pm__row--sm{width:60%}
.pm__btn{height:16px;width:80px;border-radius:8px;background:rgba(124,58,237,.4)}
.pm__cards{display:flex;gap:.3rem;margin-top:.4rem}
.pm__card{flex:1;height:30px;border-radius:var(--r-sm);background:rgba(255,255,255,.06)}

.port__info{padding:1.25rem 1.5rem}
.port__tag{
  display:inline-block;font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  color:var(--cyan-l);
  background:rgba(6,182,212,.07);border:1px solid rgba(6,182,212,.2);
  padding:.2rem .65rem;border-radius:100px;margin-bottom:.5rem;
}
.port__info h3{font-family:var(--f-title);font-size:.95rem;font-weight:700;margin-bottom:.3rem}
.port__info p{font-size:.82rem;color:var(--gray-2)}

/* ================================================================
   FAQ
   ================================================================ */
.faq{background:var(--bg)}

.faq__inner{
  display:grid;grid-template-columns:1fr 1.6fr;
  gap:5rem;align-items:start;
}
.faq__left{position:sticky;top:7rem;display:flex;flex-direction:column;gap:1.25rem}
.faq__left .section__title{text-align:left}

.faq__list{display:flex;flex-direction:column;gap:.6rem}

.faq__item{
  background:var(--glass);border:1px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden;
  transition:border-color var(--t);
}
.faq__item:hover,.faq__item.open{border-color:rgba(124,58,237,.35)}

.faq__q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.2rem 1.5rem;
  font-family:var(--f-title);font-size:.93rem;font-weight:600;
  color:var(--white);text-align:left;
  transition:background var(--t);
}
.faq__q:hover{background:var(--glass-hover)}

.faq__ico{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--glass);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  color:var(--violet);transition:transform var(--t),background var(--t);
}
.faq__item.open .faq__ico{transform:rotate(180deg);background:rgba(124,58,237,.15);border-color:rgba(124,58,237,.4)}

.faq__a{padding:0 1.5rem 1.2rem}
.faq__a[hidden]{display:none}
.faq__a p{font-size:.9rem;color:var(--gray-2);line-height:1.75}

/* ================================================================
   CONTACTO
   ================================================================ */
.contacto{background:var(--bg-2);overflow:hidden}
.contacto__bg{position:absolute;inset:0;pointer-events:none}
.cta__orb{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none}
.cta__orb--1{width:500px;height:500px;top:-200px;left:-150px;background:radial-gradient(circle,rgba(124,58,237,.18),transparent 70%)}
.cta__orb--2{width:400px;height:400px;bottom:-150px;right:-100px;background:radial-gradient(circle,rgba(37,99,235,.15),transparent 70%)}

.contacto__inner{
  display:grid;grid-template-columns:1fr 1.4fr;
  gap:5rem;align-items:start;
  position:relative;z-index:1;
}

.contacto__left{display:flex;flex-direction:column;gap:1.5rem}
.contacto__left .section__title{text-align:left}
.contacto__left .section__body{max-width:380px}

.contacto__datos{
  display:flex;flex-direction:column;gap:.6rem;
  padding-top:.5rem;
}
.cdat__row{
  display:flex;align-items:center;gap:.6rem;
  font-size:.875rem;color:var(--gray-2);
  transition:var(--t);
}
a.cdat__row:hover{color:var(--cyan-l)}

/* =========================
   MODAL DEMO
========================= */

.demo-modal.active{
    opacity:1;
    visibility:visible;
}

.demo-modal__content{
    width:100%;
    max-width:1200px;
    height:90vh;

    overflow-y:auto;

    background:#f8fafc;
    color:#111827;

    border-radius:20px;

    transform:scale(.95);
    transition:.3s ease;

    box-shadow:0 20px 60px rgba(0,0,0,.25);
}

.demo-modal.active .demo-modal__content{
    transform:scale(1);
}

.demo-btn{
    display:inline-block;
    margin-top:2rem;

    background:linear-gradient(
        135deg,
        #2563eb,
        #3b82f6
    );

    color:white;
    padding:14px 28px;
    border-radius:12px;
    text-decoration:none;
    font-weight:600;
}

.demo-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:20px;
}

.demo-stats{
    display:flex;
    justify-content:center;
    gap:4rem;

    padding:2rem;

    background:white;
    border-top:1px solid #e5e7eb;
    border-bottom:1px solid #e5e7eb;
}

.demo-stats div{
    text-align:center;
}

.demo-stats strong{
    display:block;
    color:#2563eb;
    font-size:2rem;
}

.demo-stats span{
    color:#64748b;
}

.demo-form{
    max-width:600px;
    margin:auto;
    display:flex;
    flex-direction:column;
    gap:16px;
}

.demo-form input,
.demo-form textarea{
    padding:14px;
    border:1px solid #d1d5db;
    border-radius:12px;
    background:#ffffff;
    color:#111827;
}

.demo-form button{
    background:#111827;
    color:white;
    border:none;
    padding:14px;
    border-radius:12px;
    font-weight:600;
}

/* Formulario */
.contacto__form{
  background:var(--bg);
  border:1px solid var(--border-l);
  border-radius:var(--r-xl);
  padding:2.5rem;
  box-shadow:0 20px 64px rgba(0,0,0,.4);
}
.form__title{
  font-family:var(--f-title);font-size:1.15rem;font-weight:700;
  margin-bottom:1.75rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--border);
}

.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.form__group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:0}
.form__group:not(:last-child){margin-bottom:1.25rem}
.form__row .form__group{margin-bottom:0}

.form__label{
  display:flex;align-items:center;gap:.4rem;
  font-size:.78rem;font-weight:600;color:var(--gray-2);
}
.form__label span{color:var(--violet)}

.form__input{
  background:rgba(255,255,255,.03);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:.8rem 1rem;
  color:var(--white);font-size:.9rem;
  transition:var(--t);width:100%;
}
.form__input::placeholder{color:var(--gray-3)}
.form__input:focus{
  outline:none;
  border-color:rgba(124,58,237,.6);
  background:rgba(124,58,237,.05);
  box-shadow:0 0 0 3px rgba(124,58,237,.1);
}
.form__input.error{border-color:rgba(239,68,68,.6)}
.form__select option{background:var(--bg-2);color:var(--white)}
.form__textarea{resize:vertical;min-height:110px}

.form__err{font-size:.74rem;color:#F87171;min-height:1em}

.form__submit{width:100%;justify-content:center;margin-top:.5rem}

.form__success{
  display:flex;align-items:center;gap:.75rem;
  padding:1rem 1.25rem;
  background:rgba(6,182,212,.07);
  border:1px solid rgba(6,182,212,.2);
  border-radius:var(--r-md);
  font-size:.9rem;color:var(--cyan-l);
  margin-top:1rem;
}
.form__success[hidden]{display:none}

.honeypot{
    position:absolute;
    opacity:0;
    pointer-events:none;
    width:0;
    height:0;
    overflow:hidden;
}
/* ================================================================
   FOOTER
   ================================================================ */
.footer{background:var(--bg);border-top:1px solid var(--border)}

.footer__grid{
  display:grid;grid-template-columns:2fr 1fr 1.25fr;
  gap:3rem;padding:3.5rem 0;
}
.footer__brand p{font-size:.875rem;color:var(--gray-3);margin:1rem 0 1.5rem;max-width:280px;line-height:1.6}

.footer__social{display:flex;gap:.6rem}
.footer__social a{
  width:36px;height:36px;border-radius:var(--r-sm);
  background:var(--glass);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-3);transition:var(--t);
}
.footer__social a:hover{
  border-color:rgba(168,85,247,.4);color:var(--violet);
  background:rgba(168,85,247,.07);
}

.footer__nav h4,.footer__contact h4{
  font-family:var(--f-title);font-size:.85rem;font-weight:700;
  margin-bottom:.9rem;color:var(--gray-1);
}
.footer__nav ul{display:flex;flex-direction:column;gap:.45rem}
.footer__nav a{font-size:.855rem;color:var(--gray-3);transition:var(--t)}
.footer__nav a:hover{color:var(--cyan-l)}

.footer__contact{display:flex;flex-direction:column;gap:.5rem}
.footer__contact a,.footer__contact div,.footer__contact span{
  display:flex;align-items:center;gap:.5rem;
  font-size:.855rem;color:var(--gray-3);transition:var(--t);
}
.footer__contact a:hover{color:var(--cyan-l)}

.footer__bottom{border-top:1px solid var(--border);padding:1.1rem 0}
.footer__bottom-inner{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:.5rem;
}
.footer__bottom-inner p{font-size:.78rem;color:var(--gray-3)}

/* ================================================================
   BOTÓN FLOTANTE WHATSAPP
   ================================================================ */
.wa-float{
  position:fixed;bottom:2rem;right:2rem;z-index:999;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 24px rgba(37,211,102,.5);
  transition:var(--t);
}
.wa-float:hover{transform:scale(1.1);box-shadow:0 6px 36px rgba(37,211,102,.7)}
.wa-float:hover .wa-float__label{opacity:1;transform:translateY(-50%)}

.wa-float__ring{
  position:absolute;inset:-4px;border-radius:50%;
  border:2px solid rgba(37,211,102,.4);
  animation:waRing 2s ease-out infinite;
}
@keyframes waRing{
  0%{transform:scale(1);opacity:.8}
  100%{transform:scale(1.5);opacity:0}
}

.wa-float__label{
  position:absolute;right:calc(100% + 12px);top:50%;
  transform:translateY(-50%) translateX(8px);
  background:#25D366;color:#fff;
  font-size:.75rem;font-weight:700;
  padding:.35rem .85rem;border-radius:100px;
  white-space:nowrap;opacity:0;
  transition:opacity var(--t),transform var(--t);
  pointer-events:none;
}
.wa-float__label::after{
  content:'';position:absolute;left:100%;top:50%;
  transform:translateY(-50%);
  border:5px solid transparent;
  border-left-color:#25D366;
}

/* ================================================================
   RESPONSIVE — TABLET ≤ 1024px
   ================================================================ */
@media(max-width:1024px){
  :root{--sec-py:4.5rem}

  .hero__inner{grid-template-columns:1fr;text-align:center;padding-bottom:4rem}
  .hero__content{align-items:center}
  .hero__sub{max-width:600px}
  .hero__ctas{justify-content:center}
  .hero__panel{display:none}

  .solucion__inner{grid-template-columns:1fr}
  .solucion__left{align-items:center;text-align:center}
  .solucion__left .section__title,.solucion__left .section__body{text-align:center}
  .solucion__pills{justify-content:center}

  .servicios__grid{grid-template-columns:repeat(2,1fr)}
  .sv__card--wide{grid-column:span 2;flex-direction:column}

  .planes__row{grid-template-columns:1fr;max-width:440px;margin:0 auto}
  .plan--featured{transform:none}
  .plan--featured:hover{transform:translateY(-4px)}

  .port__grid{grid-template-columns:1fr 1fr}
  .faq__inner{grid-template-columns:1fr;gap:3rem}
  .faq__left{position:static}

  .contacto__inner{grid-template-columns:1fr;gap:3rem}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1 / -1}
}

/* ================================================================
   RESPONSIVE — MÓVIL ≤ 768px
   ================================================================ */
@media(max-width:768px){
  :root{--sec-py:3.5rem;--px:1.25rem}

  /* Nav móvil */
  .nav__menu{
    position:fixed;top:0;left:0;right:0;bottom:0;
    background:rgba(4,8,18,.97);backdrop-filter:blur(24px);
    flex-direction:column;justify-content:center;gap:.4rem;
    z-index:999;
    transform:translateX(110%);
    transition:transform .45s cubic-bezier(.4,0,.2,1);
  }
  .nav__menu.open{transform:translateX(0)}
  .nav__link{font-size:1.15rem;padding:.85rem 2rem}
  .btn--nav{display:none}
  .nav__toggle{display:flex;z-index:1000}

  .hero__stats{padding:1rem;gap:1rem}
  .stat__num{font-size:1.5rem}
  .stat__div{height:28px}

  .problema__list{grid-template-columns:1fr}
  .servicios__grid{grid-template-columns:1fr}
  .sv__card--wide{grid-column:span 1}

  .proceso__timeline{gap:0}
  .pt__item{grid-template-columns:50px 1fr;gap:1rem}

  .port__grid{grid-template-columns:1fr}
  .contacto__form{padding:1.5rem}
  .form__row{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr;gap:2rem}
  .footer__brand{grid-column:1}
  .footer__bottom-inner{flex-direction:column;text-align:center}
}

/* ================================================================
   RESPONSIVE — PEQUEÑO ≤ 480px
   ================================================================ */
@media(max-width:480px){
  .hero__title{font-size:2rem}
  .hero__ctas{flex-direction:column;width:100%}
  .btn--hero-primary,.btn--hero-ghost{width:100%;justify-content:center}
  .hero__stats{gap:.75rem}
  .stat__div{display:none}
}

/* ================================================================
   ACCESIBILIDAD
   ================================================================ */
:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:var(--r-sm)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .fade-up,.stagger-child{opacity:1;transform:none}
  .cursor,.cursor-dot{display:none}
}

/* ==========================================================
   PORTFOLIO MODALS
========================================================== */

.portfolio-modal{
    position:fixed;
    inset:0;
    background:rgba(4,8,18,.85);
    backdrop-filter:blur(12px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:2rem;
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
    z-index:9999;
}

.portfolio-modal.active{
    opacity:1;
    visibility:visible;
}

.portfolio-modal__content{
    position: relative;
    width:100%;
    max-width:1200px;
    height:90vh;
    padding: 0;
    overflow-y:auto;
    background:
      radial-gradient(
        circle at top right,
        rgba(124,58,237,.15),
        transparent 40%
      ),
      radial-gradient(
        circle at bottom left,
        rgba(37,99,235,.12),
        transparent 40%
      ),
      #080f20;
    color:white;
    border:1px solid rgba(255,255,255,.08);
    border-radius:24px;
    box-shadow:
      0 25px 80px rgba(0,0,0,.6);
    backdrop-filter:blur(30px);
}

.corp-section{
    background:#0f172a;
}

.campaign-benefits{
    background:#0f172a;
}

.shop-products{
    background:#0f172a;
}

.portfolio-modal.active .portfolio-modal__content{
    transform:scale(1);
}

.portfolio-modal__close{
    position: absolute;
    top: 15px;
    right: 15px;

    width: 50px;
    height: 50px;

    display: flex !important;
    align-items: center;
    justify-content: center;

    z-index: 1000;

    background: #7C3AED;
    color: #fff !important;

    font-size: 40px;
    font-weight: bold;
    line-height: 1;

    border-radius: 50%;
    border: 2px solid #fff;

    opacity: 1 !important;
    visibility: visible !important;
}

/* ==========================================================
PORTFOLIO MODALS
========================================================== */

.portfolio-modal{
position:fixed;
inset:0;
background:rgba(4,8,18,.85);
backdrop-filter:blur(12px);
display:flex;
align-items:center;
justify-content:center;
padding:2rem;
opacity:0;
visibility:hidden;
transition:.3s ease;
z-index:99999;
}

.portfolio-modal.active{
opacity:1;
visibility:visible;
}

.portfolio-modal__close{
    position:absolute;
    top:20px;
    right:20px;
    width:48px;
    height:48px;
    border:none;
    border-radius:50%;
    background:white;
    font-size:1.4rem;
    cursor:pointer;
}

/* CORPORATIVO */

.corp-navbar{
    background:#0f172a;
    border-bottom:1px solid rgba(255,255,255,.08);  
}

.corp-hero{
    text-align:center;

    padding:140px 50px;

    background:
      radial-gradient(
        circle at top,
        rgba(124,58,237,.25),
        transparent 50%
      );

    border-bottom:
      1px solid rgba(255,255,255,.08);
}

.corp-hero h1{
    font-size:4rem;
    margin-bottom:1rem;

    background:linear-gradient(
        135deg,
        #ffffff,
        #a5b4fc
    );

    background-clip:text;
    -webkit-background-clip:text;

    color:transparent;
    -webkit-text-fill-color:transparent;
}

.corp-hero p{
    color:#94A3B8;

    max-width:700px;

    margin:auto;
}

.corp-section{
padding:60px 40px;
}

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

/* CAMPAÑA */
.campaign-hero{
    text-align:center;

    padding:140px 40px 80px;

    background:
      radial-gradient(
        circle at center,
        rgba(37,99,235,.25),
        transparent 60%
      );

    display:flex;
    flex-direction:column;
    align-items:center;

    gap:24px;
}

.campaign-badge{
    display:inline-block;
    padding:10px 18px;
    background:rgba(124,58,237,.15);
    border:1px solid rgba(124,58,237,.35);
    color:#c4b5fd;
    border-radius:999px;
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.5px;
    margin-bottom:1rem;
}

.campaign-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    margin-top:10px;

    padding:16px 34px;

    background:linear-gradient(
        135deg,
        #7C3AED,
        #2563EB
    );

    color:#fff;

    border-radius:14px;

    font-weight:700;

    box-shadow:
      0 10px 30px rgba(124,58,237,.4);

    transition:.3s ease;
}

.campaign-btn:hover{
    transform:translateY(-3px);
}

.campaign-benefits{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    padding:40px;
}

/* ECOMMERCE */

.shop-navbar{
    background:#0f172a;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.shop-hero{
    text-align:center;

    padding:140px 40px;

    background:
      radial-gradient(
        circle at center,
        rgba(6,182,212,.18),
        transparent 60%
      );
}

.shop-products{
    padding:50px 40px;
}

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

.shop-card::before{
    content:'';

    position:absolute;
    inset:0;

    border-radius:inherit;

    background:
      linear-gradient(
        135deg,
        rgba(124,58,237,.08),
        rgba(37,99,235,.08)
      );

    pointer-events:none;
}

.corp-card:hover,
.campaign-card:hover,
.shop-card:hover{
    transform:translateY(-8px);

    border-color:
      rgba(124,58,237,.4);

    box-shadow:
      0 20px 40px rgba(124,58,237,.15);
}

.corp-section h2,
.shop-hero h1{
    font-family:'Space Grotesk',sans-serif;

    font-weight:800;

    letter-spacing:-.03em;
}

.campaign-hero h1{
    background:linear-gradient(
        135deg,
        #ffffff,
        #f8fafc,
        #c4b5fd
    );
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
}

.corp-card,
.campaign-card,
.shop-card{
    background:#111827;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    padding:24px;
    box-shadow:
        0 15px 40px rgba(0,0,0,.25);
    transition:.3s ease;
}

/* ==========================================================
   VISIBILIDAD DE TEXTOS EN MODALES
========================================================== */

.portfolio-modal h1{
    color:#ffffff;
}

.portfolio-modal h2{
    color:#f8fafc;
}

.portfolio-modal h3{
    color:#f8fafc;
}

.portfolio-modal p{
    color:#cbd5e1;
}

.portfolio-modal span{
    color:#E2E8F0;
}

@media (max-width:768px){

  .portfolio-modal{
      padding:1rem;
  }

  .portfolio-modal__content{
      height:95vh;
  }

  .corp-grid,
  .campaign-benefits,
  .shop-grid{
      grid-template-columns:1fr;
  }

  .corp-hero,
  .campaign-hero,
  .shop-hero{
      padding:80px 20px;
  }

  .portfolio-modal h1{
      font-size:2rem;
  }

}

@media(max-width:768px){

  .nav__logo-img{
      height:38px;
  }

  .logo__text{
      font-size:.95rem;
  }

}

@media(max-width:480px){

  .hero__stats{
      flex-direction:column;
  }

  .stat__item{
      width:100%;
  }

}
