/* /compania · todo con prefijo .co- (site.css es compartido). */

/* ── Hero: el texto y la Tierra con sus satélites ─────────────────────── */
.co-hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(24px,4vw,56px);align-items:center}
.co-hero-copy{min-width:0}
.co-hero h1{font-size:clamp(36px,4.1vw,58px)}
.co-hero .lead{max-width:540px}
.co-hero-stage{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;margin-block:-24px}
.co-globe{display:block;width:100%;max-width:540px;height:auto;overflow:visible}
.co-grat{fill:none;stroke:#fff;stroke-opacity:.13;stroke-width:.7}
.co-land{fill:#ffffff1c;stroke:#ffffff59;stroke-width:.8;stroke-linejoin:round}
.co-arg{fill:#9fb6ff;fill-opacity:.42;stroke:#fff;stroke-width:1.3;stroke-linejoin:round}
.co-rim{fill:none;stroke:#ffffff70;stroke-width:1}
.co-orb-back path{fill:none;stroke:#fff;stroke-opacity:.16;stroke-width:1;stroke-dasharray:3 5}
.co-orb-front path{fill:none;stroke:#fff;stroke-opacity:.38;stroke-width:1.1;stroke-dasharray:3 5}
.co-orb-front path[data-o=s2]{stroke:#f2b84b;stroke-opacity:.7}
.co-bus{fill:#fff}
.co-panel{fill:#9fb6ff;stroke:#fff;stroke-width:.6}
.co-sat-t{font:600 10.5px var(--mono);letter-spacing:.04em;fill:#fff}
.co-sat-s{font:500 9.5px var(--mono);fill:#9fb6ff}
.co-sat{will-change:transform}
.co-sat[data-sat=s2] .co-bus{fill:#f2b84b}
.co-sat.is-back{opacity:0}
.co-sat.is-far{opacity:.45}
.co-swath{opacity:0;transition:opacity .7s}
.co-globe.is-scan .co-swath{opacity:1}
.co-scan{fill:#fff;transform-box:view-box;animation:co-scan 2.4s linear infinite}
@keyframes co-scan{from{transform:translateY(-116px)}to{transform:translateY(116px)}}
.co-pl{fill:#f2b84b;stroke:#0b1633;stroke-width:.8;transform-box:fill-box;transform-origin:center;animation:co-pulse 2.6s calc(var(--k) * .45s) ease-in-out infinite}
@keyframes co-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.7);opacity:.55}}
.co-bolt{fill:none;stroke:#ffe2a8;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:co-bolt 3.1s calc(var(--k) * .57s) steps(1) infinite}
@keyframes co-bolt{0%{opacity:0}6%{opacity:1}10%{opacity:.2}14%{opacity:1}22%{opacity:0}}
.co-cone{fill:#fff;fill-opacity:.05;stroke:#fff;stroke-opacity:.22;stroke-dasharray:2 4}
.co-geo-ring{fill:none;stroke:#fff;stroke-opacity:.35;transform-box:fill-box;transform-origin:center;animation:co-ring 3s ease-out infinite}
@keyframes co-ring{from{transform:scale(.7);opacity:1}to{transform:scale(1.6);opacity:0}}

.co-readout{display:flex;align-items:center;gap:10px;max-width:100%;padding:8px 16px 8px 10px;border-radius:var(--pill);background:#0b1633cc;border:1px solid #ffffff2b;color:#fff;font-size:13.5px;line-height:1.3}
.co-live{display:grid;place-items:center;flex:none;width:18px;height:18px}
.co-live i{width:8px;height:8px;border-radius:50%;background:#3ee08a;animation:co-live 1.8s ease-out infinite}
@keyframes co-live{0%,100%{opacity:1;scale:1}50%{opacity:.45;scale:.78}}
.co-ro-list{display:grid;min-width:0}
.co-ro{grid-area:1/1;opacity:0;transform:translateY(6px);transition:opacity .45s,transform .5s cubic-bezier(.2,.8,.2,1)}
.co-ro.is-on{opacity:1;transform:none}
@media (max-width:980px){
  .co-hero{grid-template-columns:1fr}
  .co-hero-stage{margin:8px 0 0}
  .co-globe{max-width:440px}
}

/* ── Por qué existimos ─────────────────────────────────────────────────── */
.co-why-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:center}
.co-why .section-head{margin-bottom:0}
.co-today{padding:24px;border-radius:var(--r-lg);background:var(--dark);color:#c9d5f2;box-shadow:var(--sh-3)}
.co-today-k{color:#9fb6ff}
.co-today-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:co-t}
.co-today-list li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:#ffffff0d;border:1px solid #ffffff17;font:500 15.5px/1.3 var(--sans);color:#fff;counter-increment:co-t;transition:color .4s,background .4s}
.co-today-list li::before{content:counter(co-t,decimal-leading-zero);font:500 10.5px var(--mono);color:#7d90c4}
.co-today-list s{position:relative;text-decoration:none}
.co-today-list s::after{content:"";position:absolute;left:-4px;right:-4px;top:52%;height:2.5px;border-radius:3px;background:#f2b84b;transform:scaleX(0);transform-origin:0 50%;transition:transform .45s cubic-bezier(.65,0,.35,1)}
.co-today-list li.is-struck{color:#8d9cc8;background:#ffffff06}
.co-today-list li.is-struck s::after{transform:scaleX(1)}
.co-today-out{display:flex;align-items:center;gap:12px;margin-top:18px;font:600 clamp(19px,1.8vw,23px)/1.2 var(--sans);letter-spacing:-.02em;color:#fff;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1)}
.co-today-out.is-on{opacity:1;transform:none}
.co-today-out svg{flex:none;width:34px;height:34px;padding:8px;border-radius:50%;background:#fff;fill:none;stroke:var(--acc);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.co-purpose{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:clamp(40px,5vw,64px)}
.co-purpose article{position:relative;overflow:hidden;padding:clamp(22px,3vw,32px);border:1px solid var(--line-2);border-radius:var(--r-lg);background:#fff}
.co-purpose .mono{color:var(--acc)}
.co-purpose-t{margin-top:12px;font:500 clamp(21px,2.3vw,28px)/1.25 var(--sans);letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
@media (max-width:900px){.co-why-grid{grid-template-columns:1fr}.co-why .section-head{margin-bottom:8px}}
@media (max-width:640px){.co-purpose{grid-template-columns:1fr}}

/* ── Cada fuente, desde su año ─────────────────────────────────────────── */
.co-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}
.co-stat{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:var(--r-lg);background:var(--soft);min-width:0}
.co-num{font:600 clamp(40px,4.4vw,58px)/1 var(--sans);letter-spacing:-.045em;color:var(--acc);font-variant-numeric:tabular-nums}
.co-stat span{font-size:14px;line-height:1.4;color:var(--text)}
.co-chart{padding:22px 24px 18px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:#fff}
.co-axis{position:relative;height:18px;margin-left:calc(230px + 16px);margin-bottom:6px;border-bottom:1px solid var(--line)}
.co-axis span{position:absolute;top:0;transform:translateX(-50%);font:500 10.5px var(--mono);color:var(--muted)}
.co-axis span:first-child{transform:none}
.co-axis span:last-child{transform:translateX(-100%)}
.co-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.co-bars li{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--line)}
.co-bars li:last-child{border-bottom:0}
.co-bar-l{display:flex;flex-direction:column;min-width:0}
.co-bar-l b{font:600 14.5px var(--sans);color:var(--ink)}
.co-bar-l small{font-size:12.5px;color:var(--muted)}
.co-bar-y{display:none}
.co-bar-track{position:relative;height:22px;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100% / 7.6))}
.co-bar{position:absolute;left:var(--x);right:0;top:6px;height:10px;border-radius:10px;background:linear-gradient(90deg,var(--acc),#6d8ef0);transform-origin:0 50%;transition:transform 1s calc(var(--k) * 90ms + .2s) cubic-bezier(.2,.8,.2,1)}
.co-bar em{position:absolute;right:100%;top:50%;margin-right:8px;transform:translateY(-50%);font:600 11.5px var(--mono);font-style:normal;color:var(--acc);white-space:nowrap}
html.js .co-src.rv:not(.is-in) .co-bar{transform:scaleX(0)}
.co-bars li:hover .co-bar{background:linear-gradient(90deg,#f2b84b,#ffd27a)}
.co-bars li:hover .co-bar em{color:#a8650b}
@media (max-width:900px){.co-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .co-chart{padding:16px}
  .co-axis{margin-left:0}
  .co-axis span:nth-child(2),.co-axis span:nth-child(4){display:none}
  .co-bars li{grid-template-columns:1fr;gap:4px}
  .co-bar-l{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}
  .co-bar em{right:auto;left:0;top:-15px;transform:none;margin:0}
  .co-bar em{display:none}
  .co-bar-y{display:inline-block!important;order:-1;padding:2px 6px;border-radius:var(--r-xs);background:var(--soft);font:600 11px var(--mono);color:var(--acc)}
}

/* ── Lo que creemos ────────────────────────────────────────────────────── */
.co-pr-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:start}
.co-pr-head{position:sticky;top:110px}
.co-pr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.co-pr-item{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);gap:20px;padding:28px 0;border-top:1px solid var(--line)}
.co-pr-item:last-child{border-bottom:1px solid var(--line)}
.co-pr-item::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--acc);transform:scaleX(0);transform-origin:0 0;transition:transform .8s cubic-bezier(.65,0,.35,1)}
.co-pr-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--soft);border:1px solid var(--line);transition:background .5s,border-color .5s,transform .7s cubic-bezier(.22,1,.36,1)}
.co-pr-ico svg{width:24px;height:24px;fill:none;stroke:var(--acc);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:stroke .5s}
.co-pr-k{display:flex;gap:10px;color:var(--acc)}
.co-pr-n{color:var(--muted)}
.co-pr-q{margin-top:10px;font:500 clamp(22px,2.4vw,30px)/1.2 var(--sans);letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
.co-pr-p{margin-top:10px;font-size:15.5px;line-height:1.5;max-width:520px}
html.js .co-pr-item .co-pr-q,html.js .co-pr-item .co-pr-p{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .8s cubic-bezier(.2,.8,.2,1)}
html.js .co-pr-item .co-pr-p{transition-delay:.18s}
html.js .co-pr-item .co-pr-ico{transform:scale(.6) rotate(-40deg)}
.co-pr-item.is-on::before{transform:scaleX(1)}
html.js .co-pr-item.is-on .co-pr-q,html.js .co-pr-item.is-on .co-pr-p{opacity:1;transform:none}
html.js .co-pr-item.is-on .co-pr-ico{transform:none;background:var(--acc);border-color:var(--acc)}
.co-pr-item.is-on .co-pr-ico svg{stroke:#fff}
@media (max-width:900px){.co-pr-grid{grid-template-columns:1fr}.co-pr-head{position:static}}
@media (max-width:520px){.co-pr-item{grid-template-columns:1fr;gap:14px}}

/* ── La historia: una línea que avanza con la página ──────────────────── */
.co-tl{position:relative}
.co-tl-rail{position:absolute;left:0;right:0;top:21px;height:2px;background:var(--line)}
.co-tl-rail i{position:absolute;inset:0;background:var(--acc);transform:scaleX(var(--prog,0));transform-origin:0 0}
.co-tl-list{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.co-tl-item{display:flex;flex-direction:column;gap:8px;min-width:0}
.co-tl-dot{display:grid;place-items:center;width:44px;height:44px;margin-bottom:10px;border-radius:50%;background:#fff;border:2px solid var(--line-2);transition:background .4s,border-color .4s,transform .5s cubic-bezier(.22,1,.36,1)}
.co-tl-dot b{font:600 12px var(--mono);color:var(--muted);transition:color .4s}
.co-tl-item.is-on .co-tl-dot{background:var(--acc);border-color:var(--acc);transform:scale(1.08)}
.co-tl-item.is-on .co-tl-dot b{color:#fff}
.co-tl-k{color:var(--acc)}
.co-tl-item h3{font-size:22px;font-weight:600;letter-spacing:-.025em}
.co-tl-d{font-size:15px;line-height:1.5}
.co-tl-h{align-self:flex-start;margin-top:4px;padding:6px 11px;border-radius:var(--r-sm);background:var(--soft);border:1px dashed var(--line-2);font:500 12px/1.35 var(--sans);color:var(--ink)}
html.js .co-tl-item{opacity:.45;transition:opacity .5s}
html.js .co-tl-item.is-on{opacity:1}
.co-engine{display:flex;align-items:center;gap:18px;margin-top:40px;padding:22px 24px;border-radius:var(--r-lg);background:var(--dark);color:#c9d5f2}
.co-engine-ico{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:14px;background:#ffffff14}
.co-engine-ico svg{width:24px;height:24px;fill:none;stroke:#9fb6ff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.co-engine p{font-size:15.5px;line-height:1.5}
.co-engine b{color:#fff;font-weight:600}
@media (max-width:900px){
  .co-tl-rail{left:21px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .co-tl-rail i{transform:scaleY(var(--prog,0))}
  .co-tl-list{grid-template-columns:1fr;gap:28px}
  .co-tl-item{padding-left:64px;position:relative}
  .co-tl-dot{position:absolute;left:0;top:-4px;margin:0}
  .co-engine{align-items:flex-start}
}

/* ── El equipo ─────────────────────────────────────────────────────────── */
.co-team-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.co-area{display:flex;flex-direction:column;gap:10px;min-width:0;padding:22px 20px;border-radius:var(--r-lg);border:1px solid var(--line-2);background:#fff;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s}
.co-area:hover{transform:translateY(-4px);border-color:var(--acc);box-shadow:var(--sh-2)}
.co-area h3{font-size:18px;font-weight:600}
.co-area p{font-size:14px;line-height:1.45}
.co-av{position:relative;display:grid;place-items:center;width:72px;height:72px;margin-bottom:6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2b4fa6,#0b1633)}
.co-av svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.co-av-orbit{position:absolute;inset:-7px;border-radius:50%;border:1px dashed #1d3c8f59;animation:co-spin 9s linear infinite}
.co-av-orbit b{position:absolute;top:50%;left:-4px;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#f2b84b;box-shadow:0 0 0 3px #fff}
.co-area:nth-child(2) .co-av-orbit{animation-duration:11s;animation-direction:reverse}
.co-area:nth-child(3) .co-av-orbit{animation-duration:13s}
.co-area:nth-child(4) .co-av-orbit{animation-duration:10s;animation-direction:reverse}
@keyframes co-spin{to{transform:rotate(360deg)}}
.co-area-join{border-style:dashed;background:var(--soft)}
.co-join-k{color:var(--muted)}
.co-join-a{margin-top:auto;font:600 15px var(--sans);color:var(--acc);text-decoration:none}
.co-join-a:hover{text-decoration:underline}
@media (max-width:1100px){.co-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.co-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.co-team-grid{grid-template-columns:1fr}}

/* ── Ecosistema ────────────────────────────────────────────────────────── */
.co-eco{padding-block:clamp(44px,5vw,64px)!important}
.co-eco-in{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap}
.co-eco .label{margin-bottom:16px}
.co-eco-logos{display:flex;gap:12px;flex-wrap:wrap}
.co-eco-logos figure{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:220px;padding:22px 16px 16px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:#fff}
.co-eco-logos img{height:60px;width:auto}
.co-eco-logos figcaption{font:500 12.5px/1.3 var(--sans);color:var(--muted);text-align:center}
@media (max-width:520px){.co-eco-logos{width:100%}.co-eco-logos figure{flex:1 1 140px;width:auto}}

/* ── Contacto ──────────────────────────────────────────────────────────── */
.co-contact .label{justify-content:center;color:#fff}
.co-contact .label::after{background:#fff}

/* ── Movimiento reducido ───────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .co-scan,.co-pl,.co-bolt,.co-geo-ring,.co-live i,.co-av-orbit{animation:none}
  .co-bolt{opacity:.8}
  .co-bar,.co-ro,.co-today-out,.co-today-list s::after,.co-pr-item *,.co-pr-item::before,.co-tl-item,.co-tl-dot{transition:none}
}
