/* iconos: linea vs relleno */
svg.ln{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
svg.fl{fill:currentColor;stroke:none}

/* ============================================================
   SATELITAL OESTE — bloques
   Lenguaje: fotografia grande + lineas + tipografia.
   Sin cajas con icono adentro en ninguna seccion.
   Mobile first: todo se define para celular y despues crece.
   ============================================================ */

/* ---------- fondos ---------- */
.bg-grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 10%,transparent 78%);
  mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 10%,transparent 78%);
  opacity:.4;
}

/* foto de fondo reutilizable */
.foto{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.foto img{width:100%;height:100%;object-fit:cover}

/* =================== HERO =================== */
.hero{position:relative;padding-top:calc(70px + 2.2rem);padding-bottom:3.2rem;overflow:hidden;isolation:isolate}
.hero .foto img{opacity:.42;object-position:50% 42%}
.hero .foto::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(5,9,15,.9) 0%,rgba(5,9,15,.62) 34%,rgba(5,9,15,.94) 82%,var(--ink) 100%),
    radial-gradient(90% 65% at 70% 8%,rgba(13,111,180,.36),transparent 62%);
}
.hero-in{position:relative;display:grid;gap:2.5rem;align-items:center}
.hero h1{margin-block:1rem .9rem}
.hero h1 .hl{
  background:linear-gradient(100deg,var(--cyan-soft),var(--cyan) 45%,var(--blue));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .lead{max-width:34rem}
.hero .btns{margin-top:1.6rem}
.hero-trust{
  margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem 1.4rem;
}
.hero-trust li span{
  display:block;font-family:var(--ff-m);font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--tx-dim);margin-bottom:.4rem;
}
.hero-trust li b{font-family:var(--ff-d);font-weight:600;font-size:1rem;letter-spacing:-.02em;color:var(--tx);line-height:1.25;display:block}

/* =================== CONSOLA / PANEL =================== */
.console-wrap{position:relative}
.console{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(165deg,var(--ink-3),var(--ink-2) 55%,#070d16);
  border:1px solid var(--line-2);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.95),0 0 0 1px rgba(53,198,255,.05) inset;
}
.console-top{
  display:flex;align-items:center;gap:.6rem;padding:.75rem .95rem;
  border-bottom:1px solid var(--line);background:rgba(255,255,255,.018);
}
.console-top .dots{display:flex;gap:.32rem}
.console-top .dots i{width:7px;height:7px;border-radius:50%;background:var(--line-2)}
.console-top .dots i:first-child{background:rgba(53,198,255,.55)}
.console-top .ttl{font-family:var(--ff-m);font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;color:var(--tx-dim)}
.console-top .live{
  margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;
  font-family:var(--ff-m);font-size:.57rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);
}
.console-top .live::before{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 0 0 rgba(53,198,255,.6);animation:pulse 2s infinite;
}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(53,198,255,0)}100%{box-shadow:0 0 0 0 rgba(53,198,255,0)}}

.console-map{position:relative;aspect-ratio:16/10;background:#070e18}
.console-map svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.mp-grid line{stroke:rgba(120,180,220,.085);stroke-width:1}
.mp-zone{fill:rgba(13,111,180,.06);stroke:rgba(53,198,255,.1);stroke-width:1}
.mp-road{fill:none;stroke:rgba(120,180,220,.2);stroke-width:1.4;stroke-linecap:round}
.mp-road--hi{stroke:rgba(53,198,255,.34);stroke-width:1.5;stroke-dasharray:5 7;animation:dash 2.4s linear infinite}
@keyframes dash{to{stroke-dashoffset:-24}}
.mp-base{fill:var(--cyan-soft)}
.mp-ring{fill:none;stroke:rgba(53,198,255,.4);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:radar 3.6s var(--ease) infinite}
.mp-ring.b{animation-delay:1.2s}
.mp-ring.c{animation-delay:2.4s}
@keyframes radar{0%{transform:scale(.2);opacity:.9}100%{transform:scale(3.4);opacity:0}}
.u .halo{fill:rgba(53,198,255,.16)}
.u .dot{fill:var(--cyan)}
.u .tag{fill:rgba(6,12,21,.82);stroke:rgba(120,180,220,.22);stroke-width:1}
.u text{font-family:var(--ff-m);font-size:7.4px;font-weight:500;fill:var(--ice);letter-spacing:.09em}
.u--b .dot{fill:var(--cyan-soft)}
.u--b .halo{fill:rgba(127,224,255,.14)}
.u--c .dot{fill:#5ad6a0}
.u--c .halo{fill:rgba(90,214,160,.15)}

.console-rows{border-top:1px solid var(--line)}
.crow{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 1rem;
  padding:.72rem .95rem;border-bottom:1px solid var(--line);
}
.crow:last-child{border-bottom:0}
.crow .id{display:flex;align-items:center;gap:.5rem;min-width:0}
.crow .id em{width:7px;height:7px;border-radius:50%;background:var(--cyan);flex:none;font-style:normal}
.crow:nth-child(2) .id em{background:var(--cyan-soft)}
.crow:nth-child(3) .id em{background:#5ad6a0}
.crow .id span{font-family:var(--ff-m);font-size:.68rem;letter-spacing:.09em;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crow .id small{font-family:var(--ff-m);font-size:.57rem;color:var(--tx-dim);letter-spacing:.06em;display:none}
.crow .met{display:flex;align-items:center;gap:.75rem;font-family:var(--ff-m);font-size:.66rem;color:var(--tx-mut);letter-spacing:.05em;white-space:nowrap}
.crow .met b{color:var(--cyan);font-weight:500;font-variant-numeric:tabular-nums;min-width:2.6ch;display:inline-block;text-align:right}
.crow .st{font-size:.57rem;letter-spacing:.15em;text-transform:uppercase;color:#5ad6a0}
.console-note{
  margin-top:.7rem;font-family:var(--ff-m);font-size:.56rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tx-dim);text-align:center;
}
@media(min-width:420px){.crow .id small{display:inline}}
@media(min-width:1000px){
  .hero{padding-top:calc(82px + 3.2rem);padding-bottom:4.5rem}
  .hero-in{grid-template-columns:1.02fr .98fr;gap:3.4rem}
}

/* =================== TICKER =================== */
.ticker{border-block:1px solid var(--line);background:var(--ink-2);overflow:hidden;padding-block:.9rem}
.ticker-track{display:flex;width:max-content;animation:slide 38s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker span{
  font-family:var(--ff-m);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tx-dim);padding-inline:1rem;display:inline-flex;align-items:center;gap:1rem;white-space:nowrap;
}
.ticker span::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--cyan);opacity:.55}
@media(min-width:760px){.ticker span{font-size:.72rem;letter-spacing:.19em;padding-inline:1.5rem;gap:1.5rem}}
@keyframes slide{to{transform:translateX(-50%)}}

/* =================== EL PUNTO (foto + lista) =================== */
.punto{display:grid;gap:2.2rem;margin-top:2.2rem}
.punto-img{margin:0}
.punto-img .marco{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10}
.punto-img img{width:100%;height:100%;object-fit:cover}
.punto-img .marco::after{content:"";position:absolute;inset:0;background:linear-gradient(190deg,rgba(4,8,14,.28),transparent 45%,rgba(4,8,14,.32))}
.costos{border-top:1px solid var(--line)}
.costo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.3rem 1.05rem;padding-block:1.25rem;border-bottom:1px solid var(--line)}
.costo .n{font-family:var(--ff-m);font-size:.66rem;letter-spacing:.16em;color:var(--cyan);padding-top:.5em}
.costo h3{grid-column:2;font-size:1.08rem}
.costo p{grid-column:2;font-size:.93rem;color:var(--tx-mut);line-height:1.62}
@media(min-width:960px){
  .punto{grid-template-columns:.86fr 1.14fr;gap:3.4rem;align-items:start}
  .punto-img{position:sticky;top:110px;aspect-ratio:4/5}
}

/* =================== SOLUCIONES (filas editoriales) =================== */
.vias{margin-top:2rem;border-top:1px solid var(--line)}
.via{display:grid;gap:1.3rem;padding-block:2.2rem;border-bottom:1px solid var(--line)}
.via-img{position:relative;overflow:hidden;border-radius:var(--r-lg);aspect-ratio:4/3;background:var(--ink-2);margin:0}
.via-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.via:hover .via-img img{transform:scale(1.045)}
.via-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(4,8,14,.72) 0%,rgba(4,8,14,.12) 34%,transparent 60%,rgba(4,8,14,.34) 100%);
}
.via-n{
  position:absolute;left:1rem;top:.85rem;z-index:1;
  font-family:var(--ff-m);font-size:.66rem;letter-spacing:.22em;color:var(--cyan-soft);
  text-shadow:0 1px 10px rgba(0,0,0,.85);
}
.via-tx h3{font-size:clamp(1.4rem,4.6vw,1.9rem);margin-bottom:.55rem}
.via-tx p{color:var(--tx-mut);font-size:.97rem;line-height:1.68;margin-bottom:1.15rem;max-width:34rem}
.pts{display:grid;gap:.55rem;margin-bottom:1.3rem}
.pts li{display:flex;gap:.85rem;font-size:.9rem;color:var(--tx-mut);line-height:1.5}
.pts li::before{content:"";flex:none;width:15px;height:1px;background:var(--cyan);margin-top:.72em;opacity:.85}
.via-go{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--ff-d);font-weight:600;font-size:.92rem;color:var(--cyan);
  padding-bottom:.28rem;border-bottom:1px solid rgba(53,198,255,.3);
  transition:gap .3s var(--ease),border-color .3s;
}
.via-go svg{width:16px;height:16px}
.via:hover .via-go{gap:.9rem;border-bottom-color:var(--cyan)}
@media(min-width:900px){
  .via{grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding-block:3.2rem}
  .via-img{aspect-ratio:5/4}
  .via:nth-child(even) .via-img{order:2}
}

/* =================== BANDA DE IMAGEN =================== */
.banda{position:relative;overflow:hidden;display:grid;align-items:end;min-height:54vh;isolation:isolate}
.banda .foto img{opacity:.85}
.banda .foto::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--ink) 0%,rgba(5,9,15,.18) 26%,rgba(5,9,15,.72) 68%,rgba(5,9,15,.96) 92%,var(--ink) 100%);
}
.banda .wrap{position:relative;padding-block:3.2rem}
.banda h2{max-width:20ch;margin-top:.9rem}
.banda p{margin-top:.85rem;max-width:38rem}

/* =================== PLATAFORMA (sin cajas) =================== */
.plat{display:grid;gap:2.4rem;margin-top:2.2rem}
.rasgos{border-top:1px solid var(--line-ink)}
.rasgo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.28rem 1.05rem;padding-block:1.2rem;border-bottom:1px solid var(--line-ink)}
.rasgo .n{font-family:var(--ff-m);font-size:.64rem;letter-spacing:.16em;color:var(--blue);padding-top:.5em}
.rasgo h4{grid-column:2;font-size:1.04rem;letter-spacing:-.015em}
.rasgo p{grid-column:2;font-size:.92rem;color:var(--tx-ink-mut);line-height:1.6}

.mock{
  border-radius:var(--r-lg);overflow:hidden;background:#fff;
  border:1px solid var(--line-ink);box-shadow:0 30px 70px -40px rgba(8,18,30,.45);
}
.mock-top{display:flex;align-items:center;gap:.55rem;padding:.7rem .9rem;border-bottom:1px solid var(--line-ink);background:#f7fafc}
.mock-top .dots{display:flex;gap:.3rem}
.mock-top .dots i{width:7px;height:7px;border-radius:50%;background:#d3dde6}
.mock-top .ttl{font-family:var(--ff-m);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:#5e7286}
.mock-body{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line-ink)}
.mock-cell{background:#fff;padding:1.05rem}
.mock-cell .k{font-family:var(--ff-m);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:#5e7286;display:block;margin-bottom:.5rem}
.mock-cell .v{font-family:var(--ff-d);font-weight:600;font-size:1.45rem;letter-spacing:-.02em;color:var(--tx-ink);line-height:1}
.mock-cell .v small{font-size:.72rem;color:var(--tx-ink-mut);font-weight:500;margin-left:.2rem}
.spark{margin-top:.8rem;height:34px;width:100%}
.spark path{fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.spark .fillp{fill:rgba(13,111,180,.09);stroke:none}
.mock-list{background:#fff;padding:.35rem 0}
.mock-list li{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.05rem;border-bottom:1px solid rgba(8,18,30,.055)}
.mock-list li:last-child{border-bottom:0}
.mock-list em{width:6px;height:6px;border-radius:50%;flex:none;font-style:normal;background:var(--blue)}
.mock-list li.warn em{background:#c9761f}
.mock-list li.ok em{background:#1f7f5c}
.mock-list span{font-family:var(--ff-m);font-size:.68rem;color:var(--tx-ink);letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mock-list time{margin-left:auto;font-family:var(--ff-m);font-size:.6rem;color:#5e7286;flex:none}
@media(min-width:560px){.mock-body{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.plat{grid-template-columns:.94fr 1.06fr;gap:3.4rem;align-items:center}}

/* =================== PASOS =================== */
.steps{counter-reset:s;display:grid;margin-top:2.2rem;border-top:1px solid var(--line)}
.step{position:relative;display:grid;gap:.4rem;padding:1.45rem 0 1.45rem 3.1rem;border-bottom:1px solid var(--line)}
.step::before{
  counter-increment:s;content:"0" counter(s);position:absolute;left:0;top:1.58rem;
  font-family:var(--ff-m);font-size:.66rem;letter-spacing:.16em;color:var(--cyan);
}
.step p{font-size:.93rem;color:var(--tx-mut);line-height:1.64;max-width:46rem}
@media(min-width:860px){.steps{grid-template-columns:1fr 1fr;column-gap:3rem}}

/* =================== FAQ =================== */
.faq{margin-top:2.2rem;border-top:1px solid var(--line);max-width:52rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:1rem;
  padding:1.25rem 0;font-family:var(--ff-d);font-weight:600;font-size:1.02rem;
  letter-spacing:-.015em;color:var(--tx);transition:color .25s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--cyan)}
.faq summary .pm{margin-left:auto;flex:none;width:22px;height:22px;position:relative;margin-top:.15rem}
.faq summary .pm::before,.faq summary .pm::after{
  content:"";position:absolute;inset:50% 2px auto;height:1.5px;background:var(--cyan);border-radius:2px;transition:transform .3s var(--ease);
}
.faq summary .pm::after{transform:rotate(90deg)}
.faq details[open] summary .pm::after{transform:rotate(0)}
.faq details[open] summary{color:var(--cyan)}
.faq .ans{padding-bottom:1.3rem;color:var(--tx-mut);font-size:.95rem;line-height:1.72;max-width:44rem}

/* =================== CONTACTO =================== */
.cta-band{position:relative;overflow:hidden;background:var(--ink-2);border-top:1px solid var(--line)}
.cta-band::before{
  content:"";position:absolute;top:-50%;right:-10%;width:60vw;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(13,111,180,.28),transparent 65%);filter:blur(60px);pointer-events:none;
}
.contact-grid{display:grid;gap:2.6rem;position:relative}

/* campos con linea, sin caja */
.form{display:grid;gap:0}
.field{display:grid;gap:.28rem;padding-block:.85rem;border-bottom:1px solid var(--line);transition:border-color .25s}
.field:focus-within{border-bottom-color:var(--cyan)}
.field label{font-family:var(--ff-m);font-size:.58rem;letter-spacing:.19em;text-transform:uppercase;color:var(--tx-dim)}
.field input,.field textarea,.field select{
  width:100%;background:none;border:0;padding:.12rem 0;font-size:1rem;color:var(--tx);
}
.field textarea{resize:vertical;min-height:76px;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:var(--tx-dim)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none}
.field select{
  appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2335c6ff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .1rem center;background-size:15px;padding-right:1.8rem;
}
.field select option{background:var(--ink-2);color:var(--tx)}
.form .btn{margin-top:1.5rem;justify-self:start}
.form-note{font-family:var(--ff-m);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--tx-dim);margin-top:.7rem}

/* canales: filas con linea, sin caja de icono */
.canal{border-top:1px solid var(--line)}
.canal a{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.22rem 1rem;
  padding:1.02rem 0;border-bottom:1px solid var(--line);
  transition:padding-left .3s var(--ease),border-color .3s;
}
.canal a:hover{padding-left:.6rem;border-bottom-color:var(--cyan)}
.canal .k{grid-column:1;font-family:var(--ff-m);font-size:.57rem;letter-spacing:.19em;text-transform:uppercase;color:var(--tx-dim)}
.canal .v{grid-column:1;font-family:var(--ff-d);font-weight:600;font-size:1.05rem;letter-spacing:-.015em;color:var(--tx);word-break:break-word}
.canal svg{grid-column:2;grid-row:1/3;width:17px;height:17px;color:var(--cyan);opacity:.55;transition:opacity .3s,transform .3s var(--ease)}
.canal a:hover svg{opacity:1;transform:translateX(3px)}

.branch{display:grid;margin-top:1.8rem;border-top:1px solid var(--line)}
.branch li{padding-block:1rem;border-bottom:1px solid var(--line)}
.branch li span{font-family:var(--ff-m);font-size:.57rem;letter-spacing:.19em;text-transform:uppercase;color:var(--cyan);display:block;margin-bottom:.32rem}
.branch li b{font-family:var(--ff-d);font-weight:600;font-size:1.08rem;color:var(--tx);display:block;letter-spacing:-.015em}
.branch li p{font-size:.9rem;color:var(--tx-mut);margin-top:.18rem}
@media(min-width:560px){.branch{grid-template-columns:1fr 1fr;column-gap:2rem}}
@media(min-width:960px){.contact-grid{grid-template-columns:1.05fr .95fr;gap:3.4rem;align-items:start}}

/* =================== FOOTER =================== */
.ftr{background:#03070c;border-top:1px solid var(--line);padding-block:3rem 1.8rem}
.ftr-top{display:grid;gap:2.2rem}
.ftr-brand p{font-size:.9rem;color:var(--tx-dim);line-height:1.65;max-width:26rem;margin-top:1rem}
.ftr-soc{display:flex;flex-wrap:wrap;gap:1.3rem;margin-top:1.2rem}
.ftr-soc a{
  display:inline-flex;align-items:center;gap:.45rem;color:var(--tx-dim);
  font-family:var(--ff-m);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  padding-bottom:.25rem;border-bottom:1px solid transparent;transition:color .3s,border-color .3s;
}
.ftr-soc a:hover{color:var(--cyan);border-bottom-color:var(--cyan)}
.ftr-soc svg{width:15px;height:15px}
.ftr-cols{display:grid;gap:1.8rem}
.ftr-cols h4{font-family:var(--ff-m);font-weight:500;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tx-dim);margin-bottom:.9rem}
.ftr-cols li+li{margin-top:.5rem}
.ftr-cols a{font-size:.89rem;color:var(--tx-mut);transition:color .25s;word-break:break-word}
.ftr-cols a:hover{color:var(--cyan)}
.ftr-bot{
  margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;justify-content:space-between;align-items:center;
}
.ftr-bot p{font-family:var(--ff-m);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--tx-dim)}
@media(min-width:640px){.ftr-cols{grid-template-columns:1fr 1fr 1fr}}
@media(min-width:960px){.ftr-top{grid-template-columns:1fr 1.25fr;gap:3rem}}

/* =================== WHATSAPP FAB =================== */
.fab{
  position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));
  z-index:80;display:flex;align-items:center;gap:.6rem;
  background:#1fbf5c;color:#04170c;border-radius:999px;padding:.72rem .95rem;
  box-shadow:0 14px 34px -12px rgba(31,191,92,.7);
  font-family:var(--ff-d);font-weight:600;font-size:.86rem;
  transform:translateY(120%);transition:transform .45s var(--ease),box-shadow .3s;
}
.fab.on{transform:none}
.fab:hover{box-shadow:0 20px 44px -14px rgba(31,191,92,.9)}
.fab svg{width:21px;height:21px;color:#04170c;flex:none}
.fab span{display:none}
@media(min-width:520px){.fab span{display:inline}}

/* =================== PAGINAS INTERNAS =================== */
.phero{position:relative;padding-top:calc(70px + 3rem);padding-bottom:2.6rem;overflow:hidden;border-bottom:1px solid var(--line);isolation:isolate}
.phero .foto img{opacity:.4;object-position:50% 45%}
.phero .foto::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,9,15,.92) 0%,rgba(5,9,15,.58) 40%,rgba(5,9,15,.95) 100%),
             radial-gradient(80% 70% at 15% 10%,rgba(13,111,180,.3),transparent 60%);
}
.phero .wrap{position:relative}
.phero .crumb{font-family:var(--ff-m);font-size:.6rem;letter-spacing:.19em;text-transform:uppercase;color:var(--tx-dim)}
.phero .crumb a:hover{color:var(--cyan)}
.phero h1{font-size:clamp(1.95rem,6.4vw,3.5rem);margin-block:1rem .9rem}
.phero .lead{max-width:40rem}
@media(min-width:1000px){.phero{padding-top:calc(82px + 4rem);padding-bottom:3.4rem}}

.prose{max-width:44rem}
.prose p{color:var(--tx-mut);margin-bottom:1.05rem;line-height:1.78}
.prose h2{margin-block:2.4rem 1rem;font-size:clamp(1.5rem,4vw,2.05rem)}
.prose>*:first-child{margin-top:0}

/* figura suelta dentro de una pagina */
.fig{margin:2.4rem 0 0}
.fig .marco{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9}
.fig img{width:100%;height:100%;object-fit:cover}
.fig .marco::after{content:"";position:absolute;inset:0;background:linear-gradient(190deg,rgba(4,8,14,.28),transparent 45%,rgba(4,8,14,.32))}
@media(min-width:900px){.fig .marco{aspect-ratio:21/9}}

/* pie de foto: abajo de la imagen, siempre legible */
.fig figcaption,.punto-img figcaption{
  position:relative;margin-top:.8rem;padding-left:1.15rem;
  font-family:var(--ff-m);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tx-dim);line-height:1.5;
}
.fig figcaption::before,.punto-img figcaption::before{
  content:"";position:absolute;left:0;top:.62em;width:12px;height:1px;background:var(--cyan);
}
.paper .fig figcaption,.paper .punto-img figcaption{color:var(--tx-ink-mut)}
.paper .fig figcaption::before,.paper .punto-img figcaption::before{background:var(--blue)}

/* listas de aplicaciones: lineas, sin cajas */
.applist{display:grid;margin-top:1.9rem;border-top:1px solid var(--line)}
.applist li{
  display:flex;align-items:flex-start;gap:.85rem;padding-block:.88rem;
  border-bottom:1px solid var(--line);font-size:.94rem;color:var(--tx-mut);
}
.applist li svg{width:16px;height:16px;flex:none;margin-top:.28rem;color:var(--cyan)}
.paper .applist{border-color:var(--line-ink)}
.paper .applist li{border-color:var(--line-ink);color:var(--tx-ink-mut)}
.paper .applist li svg{color:var(--blue)}
@media(min-width:700px){.applist{grid-template-columns:1fr 1fr;column-gap:2.6rem}}

/* beneficios: lista numerada, sin cajas */
.gains{margin-top:2.2rem;border-top:1px solid var(--line-ink)}
.gain{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.28rem 1rem;padding-block:1.15rem;border-bottom:1px solid var(--line-ink)}
.gain .n{font-family:var(--ff-m);font-size:.64rem;letter-spacing:.16em;color:var(--blue);padding-top:.5em}
.gain b{grid-column:2;font-family:var(--ff-d);font-weight:600;font-size:1.02rem;letter-spacing:-.02em;color:var(--tx-ink)}
.gain p{grid-column:2;font-size:.9rem;color:var(--tx-ink-mut);line-height:1.6}
@media(min-width:820px){.gains{grid-template-columns:1fr 1fr;column-gap:3rem}}

/* datos del equipo: sin cajas */
.specs{display:grid;margin-top:2.2rem;border-top:1px solid var(--line)}
.spec{padding-block:1.05rem;border-bottom:1px solid var(--line)}
.spec span{font-family:var(--ff-m);font-size:.58rem;letter-spacing:.19em;text-transform:uppercase;color:var(--cyan);display:block;margin-bottom:.32rem}
.spec b{font-family:var(--ff-d);font-weight:600;font-size:1.05rem;letter-spacing:-.02em;color:var(--tx);display:block;line-height:1.25}
@media(min-width:560px){.specs{grid-template-columns:1fr 1fr;column-gap:2.4rem}}
@media(min-width:1000px){.specs{grid-template-columns:repeat(4,1fr)}}

/* siguiente pagina */
.pnext{display:grid;margin-top:2.4rem;border-top:1px solid var(--line)}
.pnext a{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.22rem 1rem;
  padding:1.12rem 0;border-bottom:1px solid var(--line);
  transition:padding-left .3s var(--ease),border-color .3s;
}
.pnext a:hover{padding-left:.6rem;border-bottom-color:var(--cyan)}
.pnext span{font-family:var(--ff-m);font-size:.57rem;letter-spacing:.19em;text-transform:uppercase;color:var(--tx-dim)}
.pnext b{font-family:var(--ff-d);font-weight:600;font-size:1.05rem;letter-spacing:-.02em;color:var(--tx)}
.pnext svg{grid-column:2;grid-row:1/3;width:17px;height:17px;color:var(--cyan);opacity:.6;transition:opacity .3s,transform .3s var(--ease)}
.pnext a:hover svg{opacity:1;transform:translateX(3px)}
@media(min-width:760px){.pnext{grid-template-columns:1fr 1fr;column-gap:3rem}}


/* los hijos de una grilla no deben empujar el ancho hacia afuera */
.plat>*,.punto>*,.contact-grid>*,.hero-in>*,.via>*,.steps>*,.applist>*,.specs>*,.gains>*,.branch>*{min-width:0}

/* =================== REVEAL =================== */
.rv{opacity:0;transform:translateY(20px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}.rv-d4{transition-delay:.32s}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .fab{transform:none}
}
::selection{background:rgba(53,198,255,.28);color:#fff}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:0;z-index:300;background:var(--cyan);color:#04121c;padding:.7rem 1.1rem;border-radius:0 0 10px 0;font-weight:600}
.skip:focus{left:0}

/* pausa de animaciones fuera de pantalla */
.quieto .ticker-track,.quieto .u,.quieto .mp-road--hi,.quieto .mp-ring,.quieto .live::before{animation-play-state:paused}
.sin-mov .u,.sin-mov .ticker-track,.sin-mov .mp-road--hi,.sin-mov .mp-ring,.sin-mov .live::before{animation:none}
