/* ============================================================
   capacidades.css — Sección "Capacidades" (resumen en landing +
   página completa con vistas Mosaico y Recorrido). Usa tokens.css.
   ============================================================ */

/* ---- Resumen en la landing ---- */
.cap-summary { text-align: center; }
.cap-summary-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-4);
  margin: var(--space-8) 0; }
.cap-summary-item { display: flex; align-items: center; gap: var(--space-2);
  background: var(--bg-surface); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-full); padding: 8px 16px; font-weight: var(--fw-semibold);
  color: var(--text-primary); font-family: var(--font-display); font-size: var(--fs-sm); }
.cap-summary-item .cap-ico { width: 20px; height: 20px; color: var(--secondary); flex-shrink: 0; }
.cap-summary-item .cap-ico svg { width: 20px; height: 20px; }

/* ---- Íconos genéricos ---- */
.cap-ico { display: inline-flex; align-items: center; justify-content: center; }

/* ---- Vista Mosaico (banda oscura + grilla) ---- */
.cap-mosaico { position: relative; background: var(--gradient-primary); color: #fff;
  padding: var(--space-24) 0; overflow: hidden; }
.cap-mosaico-overlay { position: absolute; inset: 0;
  background: radial-gradient(circle at 85% 15%, rgba(0,156,222,.22), transparent 55%); pointer-events: none; }
.cap-mosaico .container { position: relative; }
.cap-mosaico .section-head { text-align: center; max-width: 62ch; margin: 0 auto var(--space-12); }
.cap-mosaico .eyebrow { color: #7fe0ff; }
.cap-mosaico .section-title { color: #fff; }
.cap-mosaico .section-sub { color: rgba(255,255,255,.82); }
.cap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-6); }
.cap-block { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius-2xl); padding: var(--space-8); text-align: center; }
.cap-block .cap-ico { width: 52px; height: 52px; border-radius: var(--radius-lg);
  background: rgba(0,156,222,.18); border: 1px solid rgba(0,156,222,.5); color: #cdeeff; margin-bottom: var(--space-4); }
.cap-block .cap-ico svg { width: 26px; height: 26px; }
.cap-block h3 { font-family: var(--font-display); font-size: var(--fs-xl); margin: 0 0 var(--space-2); color: #fff; }
.cap-block p { color: rgba(255,255,255,.78); line-height: var(--lh-relaxed); margin: 0; }

/* ---- Vista Recorrido (filas alternadas con imagen) ---- */
.cap-recorrido { padding: var(--space-24) 0; background: var(--bg-page); }
.cap-recorrido .section-head { text-align: center; max-width: 62ch; margin: 0 auto var(--space-16); }
.cap-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); align-items: center;
  margin-bottom: var(--space-16); }
.cap-row:last-of-type { margin-bottom: var(--space-12); }
.cap-row:nth-child(even) .cap-row-media { order: 2; }
.cap-row-media { min-height: 300px; border-radius: var(--radius-2xl); background-color: var(--bg-elevated);
  background-image: var(--bg); background-size: cover; background-position: center; box-shadow: var(--shadow-lg); }
.cap-row-body .cap-ico { width: 48px; height: 48px; border-radius: var(--radius-lg);
  background: var(--secondary-bg); color: var(--secondary); margin-bottom: var(--space-4); }
.cap-row-body .cap-ico svg { width: 26px; height: 26px; }
.cap-row-body h3 { font-family: var(--font-display); font-size: var(--fs-3xl); color: var(--text-primary);
  margin: 0 0 var(--space-3); line-height: var(--lh-snug); }
.cap-row-body p { color: var(--text-secondary); font-size: var(--fs-lg); line-height: var(--lh-relaxed); margin: 0; }

/* ---- CTA común ---- */
.cap-cta { text-align: center; margin-top: var(--space-12); }

/* ---- Responsive ---- */
@media (max-width: 860px) {
  .cap-mosaico, .cap-recorrido { padding: var(--space-16) 0; }
  .cap-row { grid-template-columns: 1fr; gap: var(--space-6); text-align: center; margin-bottom: var(--space-12); }
  .cap-row:nth-child(even) .cap-row-media { order: 0; }
  .cap-row-media { min-height: 200px; }
  .cap-row-body .cap-ico { margin-left: auto; margin-right: auto; }
}
