/* Los --sw-violet-* son alias de la paleta central (css/brand-tokens.css); así el
   resto de reglas .sw-* no cambia. --sw-border/muted/ink son propios de /software. */
:root{
  --sw-violet-900:var(--ma-violet-900); --sw-violet-700:var(--ma-violet-700); --sw-violet-500:var(--ma-violet-500);
  --sw-violet-300:var(--ma-violet-300); --sw-violet-50:var(--ma-violet-50); --sw-border:#E8E3F6;
  --sw-muted:#6e6688; --sw-ink:#2b2540;
}
/* ---- Hero ---- */
.sw-hero{position:relative;overflow:hidden;color:#fff;padding:72px 0 64px;
  background:linear-gradient(135deg,rgba(61,26,110,.95) 0%,rgba(109,40,217,.9) 100%);}
.sw-hero::before{content:'';position:absolute;width:560px;height:560px;border-radius:50%;
  background:rgba(167,139,250,.14);top:-180px;right:-120px;pointer-events:none;}
.sw-hero::after{content:'';position:absolute;width:300px;height:300px;border-radius:50%;
  background:rgba(167,139,250,.10);bottom:-120px;left:8%;pointer-events:none;}
.sw-hero .container{position:relative;z-index:2;}
.sw-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(167,139,250,.2);
  color:var(--sw-violet-300);border:1px solid rgba(167,139,250,.4);padding:6px 16px;
  border-radius:9999px;font-size:.8rem;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;margin-bottom:18px;}
.sw-hero h1{color:#fff;font-size:2.9rem;font-weight:800;line-height:1.12;
  letter-spacing:-.5px;margin-bottom:16px;max-width:760px;}
.sw-hero p.sub{font-size:1.18rem;color:rgba(255,255,255,.92);max-width:600px;margin-bottom:26px;}
.sw-actions{display:flex;flex-wrap:wrap;gap:14px;}
.sw-btn-light{display:inline-flex;align-items:center;gap:7px;background:#fff;
  color:var(--sw-violet-700);padding:13px 26px;border-radius:9999px;font-weight:700;
  text-decoration:none;box-shadow:0 4px 24px rgba(109,40,217,.3);transition:transform .2s,box-shadow .2s;}
.sw-btn-light:hover{color:var(--sw-violet-900);transform:translateY(-2px);box-shadow:0 8px 32px rgba(109,40,217,.4);}
.sw-btn-ghost{display:inline-flex;align-items:center;gap:7px;background:transparent;color:#fff;
  padding:13px 26px;border-radius:9999px;font-weight:600;text-decoration:none;
  border:2px solid rgba(255,255,255,.5);transition:border-color .2s,background .2s;}
.sw-btn-ghost:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.08);}
.sw-trust{margin-top:22px;font-size:.9rem;color:rgba(255,255,255,.82);}
.sw-trust i{vertical-align:middle;margin-right:3px;}
.sw-trust .sep{margin:0 10px;opacity:.5;}
/* ---- Secciones ---- */
.sw-section{padding:64px 0;}
.sw-intro{font-size:1.12rem;color:var(--sw-ink);max-width:720px;line-height:1.7;}
.sw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px;}
.sw-card{background:#fff;border:1px solid var(--sw-border);border-radius:16px;padding:26px;
  transition:transform .25s,box-shadow .25s,border-color .25s;height:100%;}
.sw-card:hover{transform:translateY(-6px);box-shadow:0 14px 36px rgba(109,40,217,.13);border-color:var(--sw-violet-300);}
.sw-card-ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--sw-violet-50),#fff);border:1px solid var(--sw-border);
  color:var(--sw-violet-700);font-size:1.5rem;margin-bottom:16px;}
.sw-card h3{font-size:1.12rem;font-weight:700;margin-bottom:7px;color:var(--sw-ink);}
.sw-card p{font-size:.95rem;color:var(--sw-muted);margin:0;line-height:1.55;}
/* ---- Checklist ---- */
.sw-checks{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:14px;max-width:640px;}
.sw-checks li{display:flex;gap:12px;align-items:flex-start;font-size:1.02rem;color:var(--sw-ink);}
.sw-checks .ck{flex:none;width:26px;height:26px;border-radius:50%;background:var(--sw-violet-50);
  color:var(--sw-violet-700);display:grid;place-items:center;font-size:1rem;margin-top:1px;}
/* ---- Tarjetas-enlace (hub y cross-links) ---- */
.sw-linkcard{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--sw-border);
  border-radius:14px;padding:18px 20px;text-decoration:none;color:var(--sw-ink);
  transition:transform .2s,box-shadow .2s,border-color .2s;height:100%;}
.sw-linkcard:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(109,40,217,.12);
  border-color:var(--sw-violet-300);color:var(--sw-violet-700);}
.sw-linkcard .ic{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  background:var(--sw-violet-50);color:var(--sw-violet-700);font-size:1.4rem;}
.sw-linkcard .tx strong{display:block;font-size:1.02rem;font-weight:700;text-transform:capitalize;}
.sw-linkcard .tx span{font-size:.85rem;color:var(--sw-muted);}
.sw-eyebrow{font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sw-violet-700);}
/* ---- Cuerpo de prosa (copy largo SEO) ---- */
.sw-prose{max-width:760px;}
.sw-prose h2{font-size:1.5rem;font-weight:800;color:var(--sw-violet-900);letter-spacing:-.3px;
  margin:34px 0 12px;line-height:1.25;}
.sw-prose h2:first-child{margin-top:0;}
.sw-prose p{font-size:1.04rem;color:var(--sw-ink);line-height:1.75;margin-bottom:16px;}
/* ---- CTA de cierre: separarlo del contenido de arriba ---- */
.sw-cta{margin-top:32px;}
/* ---- Cruce al directorio público de clases (B2B↔B2C) ---- */
.sw-crosslink{display:flex;align-items:center;gap:16px;max-width:760px;background:var(--sw-violet-50);
  border:1px solid var(--sw-border);border-radius:16px;padding:18px 22px;text-decoration:none;
  color:var(--sw-ink);transition:border-color .2s,box-shadow .2s,transform .2s;}
.sw-crosslink:hover{border-color:var(--sw-violet-300);box-shadow:0 10px 26px rgba(109,40,217,.12);
  transform:translateY(-3px);color:var(--sw-violet-700);}
.sw-crosslink .ic{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  background:#fff;border:1px solid var(--sw-border);color:var(--sw-violet-700);font-size:1.4rem;}
.sw-crosslink .tx{flex:1;}
.sw-crosslink .tx strong{display:block;font-size:1.04rem;font-weight:700;margin-bottom:2px;}
.sw-crosslink .tx span{font-size:.9rem;color:var(--sw-muted);line-height:1.5;}
.sw-crosslink .ar{flex:none;color:var(--sw-violet-700);font-size:1.3rem;}
@media (max-width:575.98px){.sw-crosslink .ar{display:none;}}

/* ---- Banda "precio claro" (pricing transparente, CTA a /precios) ---- */
.sw-pricecta{display:flex;align-items:center;gap:28px;justify-content:space-between;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--sw-violet-900),var(--sw-violet-700));
  color:#fff;border-radius:20px;padding:34px 38px;}
.sw-pricecta-tx{flex:1;min-width:260px;}
.sw-pricecta-tx .sw-eyebrow{color:var(--sw-violet-300);}
.sw-pricecta-tx h2{color:#fff;font-size:1.6rem;font-weight:800;margin:6px 0 10px;letter-spacing:-.3px;}
.sw-pricecta-tx p{color:rgba(255,255,255,.9);font-size:1.02rem;line-height:1.65;margin:0;max-width:640px;}
.sw-pricecta-act{flex:none;}
.sw-btn-solid{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--sw-violet-700);
  padding:14px 28px;border-radius:9999px;font-weight:700;text-decoration:none;white-space:nowrap;
  transition:transform .2s,box-shadow .2s,color .2s;}
.sw-btn-solid:hover{color:var(--sw-violet-900);transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.25);}
@media (max-width:767.98px){
  .sw-pricecta{padding:28px 24px;}
  .sw-pricecta-tx h2{font-size:1.35rem;}
  .sw-pricecta-act{width:100%;}
  .sw-btn-solid{width:100%;justify-content:center;}
}
/* ---- Testimonios (prueba social; se renderiza solo si hay datos reales) ---- */
.sw-testi{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:900px;}
.sw-testi-card{margin:0;background:#fff;border:1px solid var(--sw-border);border-radius:16px;padding:26px;}
.sw-testi-card blockquote{margin:0 0 14px;font-size:1.04rem;line-height:1.6;color:var(--sw-ink);}
.sw-testi-card blockquote::before{content:'\201C';color:var(--sw-violet-300);font-size:2rem;
  line-height:0;vertical-align:-.45em;margin-right:4px;}
.sw-testi-card figcaption strong{display:block;color:var(--sw-violet-900);}
.sw-testi-card figcaption span{font-size:.88rem;color:var(--sw-muted);}
@media (max-width:767.98px){.sw-testi{grid-template-columns:1fr;}}
/* ---- FAQ ---- */
.sw-faq{max-width:760px;display:grid;gap:12px;}
.sw-faq-item{background:#fff;border:1px solid var(--sw-border);border-radius:14px;
  padding:0 20px;transition:border-color .2s,box-shadow .2s;}
.sw-faq-item[open]{border-color:var(--sw-violet-300);box-shadow:0 8px 24px rgba(109,40,217,.08);}
.sw-faq-item summary{list-style:none;cursor:pointer;font-weight:700;color:var(--sw-ink);
  font-size:1.04rem;padding:18px 28px 18px 0;position:relative;}
.sw-faq-item summary::-webkit-details-marker{display:none;}
.sw-faq-item summary::after{content:'\002B';position:absolute;right:0;top:16px;
  color:var(--sw-violet-700);font-size:1.4rem;font-weight:400;line-height:1;transition:transform .2s;}
.sw-faq-item[open] summary::after{transform:rotate(45deg);}
.sw-faq-a{padding:0 0 18px;}
.sw-faq-a p{margin:0;color:var(--sw-muted);font-size:.98rem;line-height:1.65;}
@media (max-width:991.98px){
  .sw-hero{padding:52px 0 44px;}
  .sw-hero h1{font-size:2.1rem;}
  .sw-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:575.98px){
  .sw-hero h1{font-size:1.8rem;}
  .sw-hero p.sub{font-size:1.05rem;}
  .sw-section{padding:48px 0;}
  .sw-cta{margin-top:24px;}
  .sw-grid{grid-template-columns:1fr;}
  .sw-actions .sw-btn-light,.sw-actions .sw-btn-ghost{width:100%;justify-content:center;}
}