/* ============================================================
   HOME — estilos de página (scoped .wsx-home). Portado de home_body_widget.
   Mantiene sus tokens locales (no se armonizan con --ws-* para no romper el render).
   ============================================================ */
.wsx-home{
  --bg:#050D1A; --bg2:#080F20; --surface:#0A1628; --surface2:#0F2040; --surface3:#162A50;
  --teal:#038F8F; --teal-deep:#026262; --cyan:#00E5FF; --green:#2FE6A8; --green2:#34D399;
  --text:#F0F4F8; --muted:#8BA3B8; --dim:#4A6070;
  --line:rgba(0,229,255,.12); --line-soft:rgba(255,255,255,.07);
  --grad:linear-gradient(135deg,var(--teal) 0%,var(--cyan) 100%);
  --grad-cta:linear-gradient(135deg,var(--cyan) 0%,var(--green) 100%);
  --r:18px; --maxw:1200px;
  --shadow:0 30px 70px -30px rgba(0,0,0,.7);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:16px; color:var(--text); background:var(--bg); line-height:1.6;
  -webkit-font-smoothing:antialiased; position:relative; overflow:hidden;
}
.wsx-home *{box-sizing:border-box}
.wsx-home h1,.wsx-home h2,.wsx-home h3,.wsx-home h4{margin:0;line-height:1.12;letter-spacing:-.02em;font-weight:800;color:var(--text)}
.wsx-home p{margin:0}
.wsx-home a{color:inherit;text-decoration:none}
.wsx-home img{max-width:100%;display:block}
.wsx-home .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative;z-index:2}
.wsx-home .eyebrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.wsx-home section{position:relative}
.wsx-home .s-pad{padding:clamp(64px,9vw,110px) 0}

.wsx-home .btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:16px;
  padding:14px 26px;border-radius:999px;cursor:pointer;border:1.5px solid transparent;transition:.25s ease;white-space:nowrap;font-family:inherit;line-height:1.2}
.wsx-home .btn-primary{background:var(--grad-cta);color:#02201d;box-shadow:0 12px 34px -12px rgba(0,229,255,.6)}
.wsx-home .btn-primary:hover{background:linear-gradient(135deg,var(--teal) 0%,var(--teal-deep) 100%);color:#fff;transform:translateY(-2px);box-shadow:0 16px 40px -14px rgba(2,98,98,.65)}
.wsx-home .btn-outline{background:transparent;border-color:rgba(255,255,255,.22);color:var(--text)}
.wsx-home .btn-outline:hover{border-color:var(--cyan);color:var(--cyan)}
.wsx-home .btn-lg{padding:16px 30px;font-size:17px}
.wsx-home .btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2}

/* HERO */
.wsx-home .hero{padding:clamp(70px,10vw,120px) 0 0}
.wsx-home #wsxParticles{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9}
.wsx-home .hero .grid-bg{position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(rgba(0,229,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.05) 1px,transparent 1px);
  background-size:56px 56px;mask-image:radial-gradient(circle at 50% 25%,#000,transparent 75%)}
.wsx-home .hero .glow{position:absolute;z-index:0;width:680px;height:680px;border-radius:50%;top:-260px;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(0,229,255,.16),transparent 62%);filter:blur(40px)}
.wsx-home .hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:50px;align-items:center}
.wsx-home .hero-tag{display:inline-flex;align-items:center;gap:9px;background:rgba(0,229,255,.08);border:1px solid rgba(0,229,255,.25);
  color:var(--cyan);padding:7px 15px;border-radius:999px;font-weight:600;font-size:13px}
.wsx-home .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(47,230,168,.7);animation:wsxpulse 2s infinite}
@keyframes wsxpulse{0%{box-shadow:0 0 0 0 rgba(47,230,168,.6)}70%{box-shadow:0 0 0 10px rgba(47,230,168,0)}100%{box-shadow:0 0 0 0 rgba(47,230,168,0)}}
.wsx-home .hero h1{font-size:clamp(38px,5.2vw,62px);margin:21px 0 0}
.wsx-home .hero h1 .grad{background:var(--grad-cta);-webkit-background-clip:text;background-clip:text;color:transparent}
.wsx-home .hero .sub{font-size:19px;color:var(--muted);margin:21px 0 32px;max-width:42ch}
.wsx-home .hero-cta{display:flex;gap:14px;flex-wrap:wrap}

.wsx-home .dispatch{background:linear-gradient(160deg,rgba(22,42,80,.55),rgba(10,22,40,.35));border:1px solid var(--line);
  border-radius:22px;padding:24px;backdrop-filter:blur(10px);box-shadow:var(--shadow)}
.wsx-home .dispatch .dh{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.wsx-home .dispatch .dh .t{font-weight:700;color:var(--text);font-size:16px}
.wsx-home .dispatch .dh .live{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--green);font-weight:700;letter-spacing:.05em}
.wsx-home .step{display:flex;gap:13px;align-items:flex-start;padding:10px 0;opacity:.35;transition:.45s ease}
.wsx-home .step.active{opacity:1}
.wsx-home .step .ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.06);border:1px solid var(--line);transition:.45s}
.wsx-home .step.active .ic{background:var(--grad);border-color:transparent}
.wsx-home .step .ic svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;transition:.45s}
.wsx-home .step.active .ic svg{stroke:#02201d}
.wsx-home .step .tx b{display:block;font-weight:700;font-size:15px;color:var(--text)}
.wsx-home .step .tx span{font-size:13px;color:var(--muted)}
.wsx-home .step .tx .ok{color:var(--green);font-weight:600}

.wsx-home .stats{margin-top:clamp(44px,6vw,72px);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:30px 0}
.wsx-home .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:center}
.wsx-home .stat .n{font-weight:800;font-size:clamp(27px,3.4vw,40px)}
.wsx-home .stat .n .u{background:var(--grad-cta);-webkit-background-clip:text;background-clip:text;color:transparent}
.wsx-home .stat .l{font-size:13px;color:var(--muted);margin-top:4px}

/* SERVICES */
.wsx-home .s-head{max-width:680px;margin:0 auto 54px;text-align:center}
.wsx-home .s-head h2{font-size:clamp(32px,4vw,46px);margin:13px 0}
.wsx-home .s-head p{color:var(--muted);font-size:18px}
.wsx-home .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wsx-home .card{background:linear-gradient(160deg,var(--surface) 0%,var(--bg2) 100%);border:1px solid var(--line);border-radius:var(--r);padding:28px;transition:.3s ease;position:relative;overflow:hidden}
.wsx-home .card:hover{transform:translateY(-6px);border-color:rgba(0,229,255,.4);box-shadow:var(--shadow)}
.wsx-home .card::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--grad-cta);transition:.35s}
.wsx-home .card:hover::after{width:100%}
.wsx-home .card .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(3,143,143,.22),rgba(0,229,255,.16));margin-bottom:18px}
.wsx-home .card .ic svg{width:25px;height:25px;stroke:var(--cyan);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wsx-home .card h3{font-size:19px;margin-bottom:8px;font-weight:700}
.wsx-home .card p{color:var(--muted);font-size:16px}
.wsx-home .card .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.wsx-home .card .tags span{font-size:12px;color:var(--cyan);background:rgba(0,229,255,.08);border:1px solid var(--line);border-radius:999px;padding:4px 10px}

/* COVERAGE */
.wsx-home .coverage{background:var(--bg2)}
.wsx-home .cov-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.wsx-home .cov-grid h2{font-size:clamp(30px,3.6vw,42px)}
.wsx-home .cov-grid p{color:var(--muted);font-size:17px;margin:18px 0 22px}
.wsx-home .cov-grid p b{color:var(--text)}
.wsx-home .cov-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.wsx-home .cov-chips span{font-size:13px;color:var(--text);background:rgba(0,229,255,.06);border:1px solid var(--line);border-radius:999px;padding:6px 13px;transition:.25s}
.wsx-home .cov-chips span:hover{border-color:var(--cyan)}
.wsx-home .cov-chips .lead{background:var(--grad-cta);color:#02201d;border-color:transparent;font-weight:700}
.wsx-home .cov-visual{position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(circle at 50% 40%,var(--surface2),var(--bg));min-height:340px;display:grid;place-items:center}
.wsx-home .cov-visual .ring{position:absolute;border:1px solid rgba(0,229,255,.18);border-radius:50%}
.wsx-home .cov-visual .r1{width:120px;height:120px}.wsx-home .cov-visual .r2{width:220px;height:220px}
.wsx-home .cov-visual .r3{width:330px;height:330px}.wsx-home .cov-visual .r4{width:450px;height:450px}
.wsx-home .cov-visual .globe{width:96px;height:96px;border-radius:50%;background:var(--grad);box-shadow:0 0 60px rgba(0,229,255,.5);display:grid;place-items:center;position:relative;z-index:2}
.wsx-home .cov-visual .globe svg{width:46px;height:46px;stroke:#02201d;fill:none;stroke-width:1.6}
.wsx-home .cov-visual .pin{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:wsxpulse 2.4s infinite}

/* EXPANSION (nuevo — conecta con las páginas de John) */
.wsx-home .expansion{background:var(--bg)}
.wsx-home .exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.wsx-home .exp-grid h2{font-size:clamp(30px,3.6vw,42px)}
.wsx-home .exp-grid p{color:var(--muted);font-size:17px;margin:18px 0 22px}
.wsx-home .exp-grid p b{color:var(--text)}
.wsx-home .exp-visual{display:flex;flex-direction:column;gap:16px}
.wsx-home .exp-countries{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
.wsx-home .exp-countries .c{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:600}
.wsx-home .exp-countries .c img{width:30px;height:auto;border-radius:4px;box-shadow:0 4px 12px -4px rgba(0,0,0,.6)}

/* Mapa: usa el componente global .ws-map (app.css). Aquí solo el ancla local. */

/* WHY */
.wsx-home .why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wsx-home .why-card{background:linear-gradient(160deg,var(--surface) 0%,var(--bg2) 100%);border:1px solid var(--line);border-radius:var(--r);padding:30px;transition:.3s}
.wsx-home .why-card:hover{border-color:rgba(0,229,255,.4);transform:translateY(-4px)}
.wsx-home .why-card .ic{width:48px;height:48px;border-radius:13px;background:linear-gradient(135deg,rgba(3,143,143,.22),rgba(0,229,255,.16));display:grid;place-items:center;margin-bottom:16px}
.wsx-home .why-card .ic svg{width:23px;height:23px;stroke:var(--cyan);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wsx-home .why-card h3{font-size:18px;margin-bottom:8px;font-weight:700}
.wsx-home .why-card p{color:var(--muted);font-size:16px}
.wsx-home .badges{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:42px}
.wsx-home .badges span{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 14px;background:rgba(0,229,255,.04)}

/* CTA BAND */
.wsx-home .cta-band{background:linear-gradient(120deg,var(--surface2) 0%,var(--teal-deep) 120%);position:relative;overflow:hidden}
.wsx-home .cta-band::before{content:"";position:absolute;right:-80px;top:-80px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(0,229,255,.22),transparent 65%);filter:blur(30px)}
.wsx-home .cta-inner{text-align:center;max-width:720px;margin:0 auto;position:relative;z-index:2}
.wsx-home .cta-inner h2{font-size:clamp(27px,3.4vw,40px);margin:11px 0 16px}
.wsx-home .cta-inner p{color:var(--muted);font-size:18px;margin-bottom:29px}
.wsx-home .cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* CONTACT */
.wsx-home .contact{background:var(--bg2)}
.wsx-home .contact-wrap{max-width:900px;margin:0 auto}
.wsx-home .info-card{background:linear-gradient(160deg,var(--surface) 0%,var(--bg2) 100%);border:1px solid var(--line);border-radius:var(--r);padding:clamp(28px,4vw,44px)}
.wsx-home .info-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:30px}
.wsx-home .info-item{display:flex;gap:13px;align-items:flex-start}
.wsx-home .info-item .ic{flex:none;width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,rgba(3,143,143,.22),rgba(0,229,255,.16));display:grid;place-items:center}
.wsx-home .info-item .ic svg{width:18px;height:18px;stroke:var(--cyan);fill:none;stroke-width:2}
.wsx-home .info-item .lbl{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
.wsx-home .info-item .val{font-size:16px;color:var(--text)}
.wsx-home .contact-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;border-top:1px solid var(--line-soft);padding-top:28px}

.wsx-home .reveal{opacity:0;transform:translateY(24px);transition:.7s cubic-bezier(.22,.61,.36,1)}
.wsx-home .reveal.in{opacity:1;transform:none}

@media(max-width:920px){
  .wsx-home .hero-grid,.wsx-home .cov-grid,.wsx-home .exp-grid{grid-template-columns:1fr;gap:38px}
  .wsx-home .cards,.wsx-home .why-grid,.wsx-home .stats-grid{grid-template-columns:1fr 1fr}
  .wsx-home .dispatch{max-width:430px}
}
@media(max-width:560px){
  .wsx-home .cards,.wsx-home .why-grid,.wsx-home .stats-grid,.wsx-home .info-row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .wsx-home #wsxParticles{display:none}
  .wsx-home .reveal{opacity:1;transform:none;transition:none}
}

/* ===== TEMA CLARO para el home (toggle) ===== */
:root[data-theme="light"] .wsx-home{
  --bg:#F7FAFC; --bg2:#EEF3F8; --surface:#FFFFFF; --surface2:#F1F6FB; --surface3:#E6EEF6;
  --teal:#03807F; --teal-deep:#026262; --cyan:#0098C9; --green:#12B886; --green2:#0CA678;
  --text:#0A1628; --muted:#41566A; --dim:#7E93A6;
  --line:rgba(2,98,98,.16); --line-soft:rgba(10,22,40,.07);
}
:root[data-theme="light"] .wsx-home .dispatch{background:linear-gradient(160deg,#FFFFFF,#EEF3F8)}
:root[data-theme="light"] .wsx-home .step .ic{background:rgba(2,98,98,.06)}
:root[data-theme="light"] .wsx-home .btn-outline{border-color:rgba(2,98,98,.30)}
:root[data-theme="light"] .wsx-home .hero .grid-bg{opacity:.45}
:root[data-theme="light"] .wsx-home #wsxParticles{opacity:.30}
:root[data-theme="light"] .wsx-home .cta-inner h2,
:root[data-theme="light"] .wsx-home .cta-inner p{color:#0A1628}
