/* ============================================================================
 * ujp-typography.css — Escala tipográfica centralizada UJP (Fase: legibilidad)
 * Gobernado por webproX. Creado 2026-06-17.
 *
 * Sube los textos por debajo del umbral de lectura cómoda (fichas, chips,
 * precios, párrafos de apoyo) y los hace fluidos por viewport. NO toca títulos
 * ni la jerarquía. Sobreescribe los estilos inline de los widgets .ujp-* SIN
 * editarlos: selectores prefijados con `body` (mayor especificidad) + !important,
 * y la hoja se encola DESPUÉS de Elementor (prioridad 9999 en el snippet).
 *
 * Fluidez: clamp(min, base+Xvw, max) — anclado 375px→min, 1280px→max.
 * (Se usa vw y NO rem: rem es root-relativo, no responde al viewport.)
 * Reversible: desactivar el snippet "UJP Tipografía" revierte todo.
 * ========================================================================== */

:root {
  --ujp-fs-body:  clamp(16px, 15.17px + 0.22vw, 18px); /* cuerpo / contenido  (v2 +1) */
  --ujp-fs-desc:  clamp(17px, 16.17px + 0.22vw, 19px); /* descripción de apoyo (v2 +1) */
  --ujp-fs-meta:  clamp(15px, 14.59px + 0.11vw, 16px); /* metadatos de ficha   (v2 +1) */
  --ujp-fs-price: clamp(15px, 14.59px + 0.11vw, 16px); /* montos (matr./cuota) (v2 +1) */
  --ujp-fs-chip:  clamp(13px, 12.59px + 0.11vw, 14px); /* chips / etiquetas    (v2 +1) */
  --ujp-fs-label: clamp(13px, 12.59px + 0.11vw, 14px); /* labels de sección    (v2 +1) */
}

/* === CUERPO / CONTENIDO (hoy 14-16px) === */
body .ujp-body-text,
body .ujp-profile-text,
body .ujp-docente p,
body .ujp-cierre p,
body .ujp-section-desc,
body .ujp-cta-subtitle,
body .ujp-card p,
body .ujp-card ul,
body .ujp-acc-content,
body .ujp-acc-header,
body .ujp-req-text,
body .ujp-pilar-text,
body .ujp-prog-card-desc,
body .ujp-profile-card li,
body .ujp-list-cta p { font-size: var(--ujp-fs-body) !important; }

/* === DESCRIPCIÓN bajo títulos (hoy 16-17px) === */
body .ujp-list-hero-desc,
body .ujp-hero-desc { font-size: var(--ujp-fs-desc) !important; }

/* === METADATOS de ficha y datos chicos (hoy 12-14px) === */
body .ujp-prog-card-meta,
body .ujp-prog-card-fin-item,
body .ujp-prog-card-fin-sep,
body .ujp-prog-card-action,
body .ujp-prog-card-data li,
body .ujp-prog-card-content summary,
body .ujp-prog-card-content ol,
body .ujp-price-line,
body .ujp-pricing-row,
body .ujp-pricing-bank,
body .ujp-pricing-period,
body .ujp-pricing-discounts li,
body .ujp-malla-sem-header,
body .ujp-malla-materia,
body .ujp-malla-tab,
body .ujp-tab,
body .ujp-hero-cones,
body .ujp-info-tag,
body .ujp-highlight,
body .ujp-team-member span { font-size: var(--ujp-fs-meta) !important; }

/* === CHIPS / ETIQUETAS / EYEBROWS / BADGES (hoy 9-13px) === */
body .ujp-prog-card-type,
body .ujp-prog-card-badge,
body .ujp-prog-card-soon-badge,
body .ujp-prog-card-active-badge,
body .ujp-prog-card-tag,
body .ujp-tab-label,
body .ujp-descuentos-banner-title,
body .ujp-descuentos-banner-sub,
body .ujp-descuentos-item,
body .ujp-stat-label,
body .ujp-docente-eyebrow,
body .ujp-hero-badge,
body .ujp-list-hero-badge { font-size: var(--ujp-fs-chip) !important; }

/* === LABELS de sección (hoy 12px) === */
body .ujp-section-label { font-size: var(--ujp-fs-label) !important; }

/* === PRECIOS: montos de matrícula / cuota (hoy 13-15px) === */
body .ujp-prog-card-fin-item strong,
body .ujp-prog-card-price,
body .ujp-prog-card-price strong {
  font-size: var(--ujp-fs-price) !important;
  font-weight: 700 !important;
}

/* NO se tocan (jerarquía): .ujp-prog-card-title (22), .ujp-prog-card h3 (20),
 * .ujp-*-h1 / .ujp-section-title / .ujp-list-cta h2 / .ujp-cierre h2 / .ujp-docente h3
 * (clamp), .ujp-month-divider h3 (22), .ujp-pricing-amount (42), .ujp-stat-value (20),
 * .ujp-card h3 (17), .ujp-pricing-compact h3 (18), .ujp-pricing-discounts h4 (headings). */
