/* ============================================================
   STRATEGIC PARTNER — estilos de página (scoped .so).
   Sobre el design system (app.css + tokens --ws-*). Vibrancia del home.
   ============================================================ */
.so .eyebrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--fs-200);
  letter-spacing:.16em;text-transform:uppercase;color:var(--ws-cyan);margin-bottom:var(--space-2)}
.so h1{font-size:var(--fs-800)} .so h2{font-size:var(--fs-700)} .so h3{font-size:var(--fs-500)}
.so .lead{font-size:var(--fs-500);color:var(--ws-muted);max-width:62ch}
.so .muted{color:var(--ws-muted)}
.so .center{text-align:center;margin-inline:auto}
.so .s-head{max-width:760px;margin-inline:auto;text-align:center;margin-bottom:var(--space-5)}
.so .s-head p{font-size:var(--fs-400)}

.so .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:var(--space-3);
  background:linear-gradient(135deg,rgba(3,143,143,.22),rgba(0,229,255,.16))}
.so .ic svg{width:24px;height:24px;color:var(--ws-cyan)}

/* hero */
.so-hero{text-align:center;position:relative;overflow:hidden}
.so-hero .inner{position:relative;z-index:1;max-width:920px;margin-inline:auto}
.so-hero .cta-row{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap;margin-top:var(--space-4)}

/* contact / John card */
.so-lead-card{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:center;max-width:880px;margin-inline:auto}
.so-avatar{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--ws-grad-brand);color:#02201d;font-weight:800;font-size:var(--fs-600);letter-spacing:-.02em}
.so-lead-card .role{color:var(--ws-cyan);font-weight:600;font-size:var(--fs-300);margin-bottom:var(--space-2)}
.so-lead-card blockquote{margin:0;font-size:var(--fs-500);line-height:1.4;color:var(--ws-text)}

/* comparison */
.so-compare{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.so-compare .col h3{display:flex;align-items:center;gap:.5em;margin-bottom:var(--space-3);font-size:var(--fs-400)}
.so-compare ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.so-compare li{display:flex;align-items:flex-start;gap:.6em;color:var(--ws-muted);font-size:var(--fs-300)}
.so-compare li svg{width:18px;height:18px;flex:none;margin-top:.15em}
.so-compare .bad li svg{color:var(--ws-orange)}
.so-compare .good li{color:var(--ws-text)}
.so-compare .good li svg{color:var(--ws-mint)}

/* grids */
.so-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
.so-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}
.so-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:center}
.so-card h3{margin:0 0 var(--space-2);font-size:var(--fs-400);font-weight:700}
.so-card p{margin:0;color:var(--ws-muted);font-size:var(--fs-300)}
.so-card.center h3{margin-bottom:0}

/* coverage */
.so-cov-countries{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-4)}
.so-cov-countries .c{display:flex;gap:.7em;align-items:flex-start}
.so-cov-countries img{width:30px;height:auto;border-radius:4px;flex:none;margin-top:.2em;box-shadow:0 4px 12px -4px rgba(0,0,0,.6)}
.so-cov-countries .n{font-weight:700;color:var(--ws-text);font-size:var(--fs-300)}
.so-cov-countries .cities{color:var(--ws-muted);font-size:var(--fs-200)}

/* testimonials */
.so-quote p{font-size:var(--fs-400);color:var(--ws-text);line-height:1.5;margin:0 0 var(--space-3)}
.so-quote .who{color:var(--ws-cyan);font-weight:700;font-size:var(--fs-300)}
.so-quote .org{color:var(--ws-dim);font-size:var(--fs-200)}
.so-quotes{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}

/* cta band */
.so-cta{background:linear-gradient(120deg,var(--ws-surface-2) 0%,var(--ws-green-deep) 130%);
  border-radius:var(--radius);text-align:center;padding:var(--space-6) var(--space-4);position:relative;overflow:hidden}
.so-cta::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)}
.so-cta .inner{position:relative;z-index:1;max-width:720px;margin-inline:auto}

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

@media(max-width:880px){
  .so-grid-3,.so-grid-4{grid-template-columns:1fr 1fr}
  .so-compare,.so-grid-2,.so-quotes,.so-cov-countries{grid-template-columns:1fr}
  .so-lead-card{grid-template-columns:1fr;text-align:center}
  .so-lead-card .so-avatar{margin-inline:auto}
}
@media(max-width:540px){ .so-grid-3,.so-grid-4{grid-template-columns:1fr} }
@media(prefers-reduced-motion:reduce){ .so .reveal{opacity:1;transform:none;transition:none} .so .ws-particles{display:none} }
