:root{
  --navy:#1c3a63;
  --navy-deep:#0f1f3a;
  --gold:#b8a24a;
  --gold-soft:#d9c77a;
  --sky:#9edcf8;
  --sky-strong:#46b4e6;
  --white:#ffffff;
  --ink:#16243b;
  --header-h:60px;
  --font:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--navy-deep);color:var(--white);overflow-x:hidden}
a{color:inherit}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}

/* ---------- header fijo ---------- */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,40px);background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(15,31,58,.08)}
.topbar .logo{display:flex;align-items:center;height:100%}
.topbar .logo img{height:40px;width:auto;display:block}
.topbar nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.topbar nav a,.topbar nav button{font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--navy);text-decoration:none;text-transform:uppercase}
.topbar nav a:hover,.topbar nav button:hover{color:var(--gold)}
.btn-demo{background:var(--navy);color:var(--white)!important;padding:10px 18px;border-radius:999px}
.btn-demo:hover{background:var(--gold);color:var(--navy-deep)!important}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center}
.burger span,.burger span::before,.burger span::after{display:block;width:22px;height:2px;background:var(--navy);border-radius:2px;position:relative;content:''}
.burger span::before{position:absolute;top:-7px}
.burger span::after{position:absolute;top:7px}

/* ---------- menu desplegable ---------- */
.menu{position:fixed;inset:var(--header-h) 0 auto 0;z-index:49;background:var(--navy-deep);box-shadow:0 22px 40px rgba(0,0,0,.5);padding:8px 20px 22px;transform:translateY(-110%);transition:transform .3s ease;max-height:calc(100svh - var(--header-h));overflow:auto}
.menu.open{transform:none}
.menu ol{list-style:none;counter-reset:m}
.menu li{counter-increment:m}
.menu li button{width:100%;text-align:left;padding:15px 4px;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,.1);display:flex;gap:14px;align-items:baseline}
.menu li button::before{content:counter(m,decimal-leading-zero);color:var(--gold);font-size:.78rem;font-weight:700;min-width:22px}
.menu .menu-cta{display:block;margin-top:18px;text-align:center;background:var(--gold);color:var(--navy-deep);font-weight:700;padding:14px;border-radius:999px;text-decoration:none}

/* ---------- recorrido (scroll) ---------- */
#recorrido{position:relative;height:600vh}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--navy-deep)}
.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:#0a1426}

.loader{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--navy-deep);transition:opacity .5s ease}
.loader.done{opacity:0;pointer-events:none}
.loader img{width:min(260px,60vw)}
.loader .bar{width:min(220px,50vw);height:3px;background:rgba(255,255,255,.15);border-radius:3px;overflow:hidden}
.loader .bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .2s}
.loader small{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7}

/* tarjeta de texto (escritorio) */
.caption{position:absolute;left:clamp(16px,4vw,64px);bottom:clamp(28px,8vh,90px);z-index:10;max-width:min(520px,86vw);padding:26px 30px 28px;background:rgba(158,220,248,.58);color:var(--navy-deep);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-left:4px solid var(--sky-strong);border-radius:4px 14px 14px 4px;box-shadow:0 12px 34px rgba(8,24,48,.3);opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.caption.on{opacity:1;transform:none;pointer-events:auto}
.caption .tag{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#1c5f8a;margin-bottom:10px}
.caption h2{font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.15;font-weight:700;margin-bottom:10px}
.caption p{font-size:clamp(.92rem,1.25vw,1.05rem);line-height:1.55;color:#173a5c}
.caption .btn.gold,.caption .btn.navy{background:var(--navy-deep);color:var(--white)}
.caption .btn.gold:hover,.caption .btn.navy:hover{background:var(--navy)}

/* carteles celestes con línea que apunta a un objeto del video */
.lines{position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none;overflow:visible}
.lines line.borde{stroke:rgba(10,30,58,.55);stroke-width:5;stroke-linecap:round}
.lines line.trazo{stroke:var(--sky);stroke-width:2.4;stroke-linecap:round}
.lines circle.borde{fill:rgba(10,30,58,.55)}
.lines circle.punto{fill:var(--sky)}
.carteles{position:absolute;inset:0;z-index:9;pointer-events:none}
.cartel{position:absolute;left:0;top:0;width:max-content;max-width:min(270px,34vw);padding:11px 15px;background:rgba(158,220,248,.95);color:var(--navy-deep);border-radius:10px;font-size:.92rem;font-weight:600;line-height:1.35;box-shadow:0 8px 24px rgba(8,24,48,.35);opacity:0;will-change:opacity,transform}
.cartel b{display:block;font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#1c5f8a;margin-bottom:3px}
.cartel.ia b::after{content:' · IA';color:#0b6ea8}
.caption .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:700;font-size:.85rem;text-decoration:none;letter-spacing:.02em}
.btn.gold{background:var(--gold);color:var(--navy-deep)}
.btn.gold:hover{background:var(--gold-soft)}
.btn.line{border:1.5px solid rgba(255,255,255,.55);color:var(--white)}
.btn.line:hover{border-color:var(--gold);color:var(--gold-soft)}

/* indicador lateral (escritorio) */
.dots{position:absolute;right:clamp(14px,2vw,28px);top:50%;transform:translateY(-50%);z-index:11;display:flex;flex-direction:column;gap:12px}
.dots button{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.45);border:1.5px solid rgba(15,31,58,.6);transition:transform .25s,background .25s}
.dots button.on{background:var(--gold);transform:scale(1.5)}
.hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:12;text-align:center;font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--white);text-shadow:0 1px 8px rgba(0,0,0,.6);transition:opacity .4s;pointer-events:none}
.hint::after{content:'';display:block;width:2px;height:26px;margin:8px auto 0;background:linear-gradient(var(--white),transparent);animation:hint 1.6s ease-in-out infinite}
.hint.gone{opacity:0}
@keyframes hint{0%{transform:scaleY(.2);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}100%{transform:scaleY(1);transform-origin:bottom;opacity:.2}}

/* barra azul inferior (celular) - oculta en escritorio */
.band{display:none}

/* ---------- hardware / mantenimiento ---------- */
.seccion{background:#0b172c;padding:clamp(56px,9vw,120px) clamp(20px,6vw,90px)}
.seccion.alt{background:var(--navy-deep)}
.seccion .inner{max-width:1100px;margin:0 auto}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sky);margin-bottom:12px}
.seccion h2{font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.12;margin-bottom:12px}
.seccion .lead{color:rgba(255,255,255,.8);max-width:58ch;line-height:1.6;margin-bottom:34px}
.cards{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.cards article{background:rgba(158,220,248,.08);border:1px solid rgba(158,220,248,.28);border-radius:14px;padding:22px 22px 24px}
.cards h3{font-size:1.02rem;margin-bottom:8px;color:var(--sky)}
.cards p{font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.82)}
.contacto .eyebrow{color:var(--sky)}

/* ---------- presentación inicial (video con botón Omitir) ---------- */
.intro{display:none;position:fixed;inset:0;z-index:100;align-items:center;justify-content:center;padding:16px;background:rgba(4,10,22,.72);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);transition:opacity .6s ease}
html.intro-activa,html.intro-activa body{overflow:hidden}
html.intro-activa .intro{display:flex}
.intro.fuera{opacity:0;pointer-events:none}
.intro.fuera .intro-card{transform:scale(.96)}
.intro-card{position:relative;width:min(100%,calc((100vh - 40px) * 9 / 16));width:min(100%,calc((100svh - 40px) * 9 / 16));aspect-ratio:9/16;border-radius:20px;overflow:hidden;background:#050c18;border:1px solid rgba(158,220,248,.45);box-shadow:0 24px 70px rgba(0,0,0,.65);transition:transform .6s ease}
.intro video{display:block;width:100%;height:100%;object-fit:cover;background:#050c18}
.intro-btn{position:absolute;top:12px;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:rgba(15,31,58,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.55);color:var(--white);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,border-color .2s}
.intro-btn:hover{background:rgba(15,31,58,.9);border-color:var(--sky)}
.intro-omitir{right:12px}
.intro-sonido{left:12px;padding:10px 14px}
.intro-sonido svg{width:19px;height:19px;fill:currentColor;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.intro-sonido .ondas{fill:none;display:none}
.intro-sonido .tachado{fill:none;stroke-width:1.8}
.intro-sonido[aria-pressed="true"] .ondas{display:inline}
.intro-sonido[aria-pressed="true"] .tachado{display:none}
.intro-barra{position:absolute;left:0;right:0;bottom:0;height:34px;cursor:pointer;touch-action:none;outline:none;-webkit-tap-highlight-color:transparent}
.intro-barra::before{content:'';position:absolute;left:14px;right:14px;bottom:12px;height:4px;border-radius:4px;background:rgba(255,255,255,.28)}
.intro-barra i{position:absolute;left:14px;bottom:12px;height:4px;width:0;max-width:calc(100% - 28px);border-radius:4px;background:var(--sky)}
.intro-barra i::after{content:'';position:absolute;right:-7px;top:-5px;width:14px;height:14px;border-radius:50%;background:var(--white);box-shadow:0 0 0 3px rgba(158,220,248,.55),0 2px 8px rgba(0,0,0,.5);transition:transform .15s}
.intro-barra:hover i::after,.intro-barra.arrastra i::after,.intro-barra:focus-visible i::after{transform:scale(1.25)}
.intro-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;background:rgba(158,220,248,.9);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 34px rgba(0,0,0,.5)}
.intro-play[hidden]{display:none}
.intro-play svg{width:38px;height:38px;fill:var(--navy-deep);margin-left:5px}

/* ---------- aviso para girar el celular ---------- */
.rotar{position:fixed;left:14px;right:14px;top:calc(66px + env(safe-area-inset-top));z-index:61;display:none;align-items:center;gap:11px;padding:10px 8px 10px 13px;background:rgba(0,0,0,.58);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);border-radius:14px;color:var(--white);font-size:.78rem;line-height:1.35;font-weight:600;opacity:0;transform:translateY(-10px);transition:opacity .45s ease,transform .45s ease;pointer-events:none}
.rotar.on{opacity:1;transform:none;pointer-events:auto}
.rotar svg{flex:0 0 auto;width:30px;height:30px;fill:none;stroke:var(--sky);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rotar .tel{transform-origin:12px 12px;animation:girar 2.6s ease-in-out infinite}
.rotar button{flex:0 0 auto;width:34px;height:34px;font-size:1.4rem;line-height:1;color:rgba(255,255,255,.75)}
@keyframes girar{0%,25%{transform:rotate(0)}55%,80%{transform:rotate(-90deg)}100%{transform:rotate(0)}}
@media (max-aspect-ratio:1/1){.rotar{display:flex}}
@media (prefers-reduced-motion:reduce){.rotar .tel{animation:none}}

/* teléfonos en horizontal: la página usa el diseño de escritorio, pero compacto */
@media (orientation:landscape) and (max-height:520px){
  :root{--header-h:46px}
  .topbar{padding:0 14px}
  .topbar .logo img{height:30px}
  .topbar nav{gap:16px}
  .topbar nav button{font-size:.68rem}
  .caption{left:14px;bottom:12px;max-width:44vw;padding:12px 16px 14px}
  .caption .tag{font-size:.56rem;margin-bottom:4px}
  .caption h2{font-size:1.02rem;margin-bottom:5px}
  .caption p{font-size:.76rem;line-height:1.4}
  .cartel{font-size:.7rem;padding:6px 9px;max-width:30vw}
  .cartel b{font-size:.5rem}
  .dots{right:8px;gap:9px}
  .hint{bottom:6px}
  .wa-flotante{width:44px;height:44px;right:12px;bottom:12px}
  .wa-flotante svg{width:25px;height:25px}
}

/* ---------- WhatsApp flotante e Instagram ---------- */
.wa-flotante{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:60;width:58px;height:58px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .2s ease,box-shadow .2s ease}
.wa-flotante:hover{transform:scale(1.07);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.wa-flotante svg{width:32px;height:32px;fill:#fff}
.wa-flotante[hidden]{display:none}
.con-icono{display:inline-flex;align-items:center;gap:9px}
.con-icono svg{width:20px;height:20px;fill:currentColor;flex:0 0 auto}

/* ---------- software: módulos ---------- */
.software .lead{margin-bottom:38px}
.destacados{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:12px}
.dest{background:linear-gradient(160deg,rgba(158,220,248,.2),rgba(158,220,248,.07));border:1px solid rgba(158,220,248,.5);border-radius:16px;padding:26px 26px 28px}
.dest h3{font-size:1.28rem;line-height:1.2;margin:12px 0 10px;color:var(--white)}
.dest p{font-size:.95rem;line-height:1.6;color:rgba(255,255,255,.86)}
.dest ul{margin:14px 0 0;padding-left:18px;display:grid;gap:7px}
.dest li{font-size:.88rem;line-height:1.5;color:rgba(255,255,255,.8)}
.dest li::marker{color:var(--sky)}
.estado{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:rgba(158,220,248,.18);color:var(--sky);vertical-align:middle;margin-left:6px}
.dest .estado{margin-left:0;background:var(--sky);color:var(--navy-deep)}
.estado.ia{background:var(--sky);color:var(--navy-deep)}
.grupo{font-size:.78rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin:44px 0 16px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.12)}
.modulos article h3 .estado{font-size:.56rem;padding:3px 8px;margin-left:8px;color:var(--gold-soft);background:rgba(184,162,74,.16)}

/* sección en preparación: oscurecida y con una cinta diagonal */
.seccion.proximamente{position:relative;overflow:hidden}
.seccion.proximamente .inner{filter:grayscale(.7) brightness(.5);opacity:.75;pointer-events:none;user-select:none}
.seccion.proximamente::before{content:'';position:absolute;inset:0;background:rgba(3,9,19,.5);z-index:1;pointer-events:none}
.cinta{position:absolute;left:-12%;right:-12%;top:50%;z-index:2;transform:translateY(-50%) rotate(-7deg);background:var(--sky);color:var(--navy-deep);text-align:center;padding:clamp(14px,2.4vw,24px) 0;border-top:3px solid var(--sky-strong);border-bottom:3px solid var(--sky-strong);box-shadow:0 14px 44px rgba(0,0,0,.55);pointer-events:none}
.cinta span{font-weight:700;letter-spacing:.34em;text-transform:uppercase;font-size:clamp(1.05rem,3.4vw,2.1rem);padding-left:.34em}

/* ---------- contacto / pie ---------- */
.contacto{background:var(--navy-deep);padding:clamp(48px,9vw,110px) clamp(20px,6vw,90px) 36px;border-top:3px solid var(--gold)}
.contacto .inner{max-width:1100px;margin:0 auto;display:grid;gap:36px;grid-template-columns:1.2fr 1fr}
.contacto h2{font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.12;margin-bottom:14px}
.contacto p{color:rgba(255,255,255,.82);line-height:1.6;max-width:46ch}
.contacto .datos{display:grid;gap:14px;align-content:start}
.contacto .datos a{font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:10px}
.contacto .datos a small{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:4px}
.pie{max-width:1100px;margin:44px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;font-size:.78rem;color:rgba(255,255,255,.6)}
.pie a{text-decoration:none}
.pie a:hover{color:var(--gold-soft)}

/* ---------- celular / pantallas verticales ---------- */
@media (max-aspect-ratio:1/1),(max-width:760px){
  :root{--header-h:56px}
  .topbar nav{display:none}
  .burger{display:flex}
  .topbar .logo img{height:36px}
  #recorrido{height:700vh}
  .stage{display:flex;flex-direction:column;padding-top:var(--header-h);background:var(--navy-deep)}
  .stage video{position:relative;inset:auto;flex:0 0 auto;width:100%;height:auto;aspect-ratio:1/1;max-height:calc(100svh - var(--header-h) - 150px);object-fit:cover}
  .caption,.dots{display:none}
  .wa-flotante{width:52px;height:52px;right:14px;bottom:calc(70px + env(safe-area-inset-bottom))}
  .wa-flotante svg{width:29px;height:29px}
  .cartel{font-size:.64rem;line-height:1.3;padding:5px 8px;max-width:52%;border-radius:7px;background:rgba(158,220,248,.6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 3px 10px rgba(8,24,48,.28)}
  .cartel b{font-size:.5rem;letter-spacing:.14em;margin-bottom:1px}
  .lines line.trazo{stroke-width:1.6}
  .lines line.borde{stroke-width:3.4}
  .hint{bottom:auto;top:calc(var(--header-h) + 14px);left:auto;right:14px;transform:none;font-size:.62rem;background:rgba(15,31,58,.7);padding:8px 12px;border-radius:999px;text-shadow:none}
  .hint::after{display:none}
  .band{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:18px 20px 16px;background:linear-gradient(180deg,var(--navy-deep),#0b172c);border-top:3px solid var(--gold);position:relative;overflow:hidden}
  .band .progress{position:absolute;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.12)}
  .band .progress i{display:block;height:100%;width:0;background:var(--gold)}
  .band{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .band .tag{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:8px}
  .band h2{font-size:1.5rem;line-height:1.18;margin-bottom:10px}
  .band p{font-size:1rem;line-height:1.55;color:rgba(255,255,255,.88)}
  .band .actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
  .band .btn{padding:12px 20px;font-size:.85rem}
  .chips{display:flex;gap:8px;margin:auto -20px 0;padding:14px 20px 0;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-top:1px solid rgba(255,255,255,.08)}
  .chips::-webkit-scrollbar{display:none}
  .chips button{flex:0 0 auto;scroll-snap-align:start;padding:9px 15px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap;border:1.5px solid rgba(255,255,255,.28);color:rgba(255,255,255,.85);transition:background .25s,color .25s,border-color .25s}
  .chips button.on{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}
  .band .txt{opacity:1;transition:opacity .25s ease}
  .band .txt.swap{opacity:0}
  .contacto .inner{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.caption,.hint::after{transition:none;animation:none}}
