/* ==========================================================================
 * Tipografía de CEPROME (aprobada el 11 oct 2026; detalle en ALINEACION-CEPROME-COM.md, secciones 8, 12 y 14).
 * Las tres familias están autoalojadas en ../fonts/, con su licencia SIL Open Font License 1.1 (OFL-*.txt).
 *
 * - Outfit: toda la interfaz. Sustituye a Montserrat y Open Sans (tema), Albert Sans (MasterStudy LMS) y
 *   Roboto (Elementor). functions.php deja de cargar esas fuentes desde Google.
 * - Figtree: texto de lecciones, actividades y cuestionarios sin serif elegida por el autor.
 * - Source Serif 4: texto que los profesores pusieron en Times New Roman o Garamond (las 20 guías de
 *   estudio, las 20 lecturas adicionales y la actividad de la Unidad 11).
 * - Quedan fuera los íconos y el texto en Wingdings o Symbol (viñetas y signos escritos con esas fuentes).
 *
 * Pesos por jerarquía (como ceprome.com): 900 solo para titulares de exhibición (hoy no hay ninguno),
 * 700 títulos de página y de lección, 600 subtítulos, botones y navegación destacada (sección 5), 500 y 400
 * texto. Outfit se declara con todo su rango variable (100–900), así cada peso del tema se ve tal cual.
 * size-adjust: 104 % compensa la altura de x de Outfit (0.475 em) frente a Duplet (0.494 em).
 * ========================================================================== */

@font-face {
	font-family: 'Outfit';
	src: url('../fonts/outfit-latin.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	size-adjust: 104%;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Outfit';
	src: url('../fonts/outfit-latin-ext.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	size-adjust: 104%;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Figtree';
	src: url('../fonts/figtree-latin-ext-italic.woff2') format('woff2');
	font-style: italic;
	font-weight: 300 900;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Figtree';
	src: url('../fonts/figtree-latin-italic.woff2') format('woff2');
	font-style: italic;
	font-weight: 300 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Figtree';
	src: url('../fonts/figtree-latin-ext.woff2') format('woff2');
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Figtree';
	src: url('../fonts/figtree-latin.woff2') format('woff2');
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/sourceserif4-greek-italic.woff2') format('woff2');
	font-style: italic;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/sourceserif4-latin-ext-italic.woff2') format('woff2');
	font-style: italic;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/sourceserif4-latin-italic.woff2') format('woff2');
	font-style: italic;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/sourceserif4-greek.woff2') format('woff2');
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/sourceserif4-latin-ext.woff2') format('woff2');
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/sourceserif4-latin.woff2') format('woff2');
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--cp-fuente: 'Outfit', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
	--cp-fuente-lectura: 'Figtree', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
	--cp-fuente-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
}

/* 1. Interfaz: Outfit.
 *    Se excluye el diploma: MasterStudy lo arma como HTML dentro de la página (.certificate-preview, en
 *    course-player/generate-certificate.js y certificate-builder/main.js) y lo fotografía para el PDF.
 *    Cada texto lleva en línea la fuente que eligió la plantilla; sin la exclusión, el !important de esta
 *    regla la sustituía por Outfit. */
html body,
html body *:not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]):not(.certificate-preview):not(.certificate-preview *) {
	font-family: var(--cp-fuente) !important;
}

/* 2. Texto de lecciones, actividades y cuestionarios sin serif elegida por el autor: Figtree. */
html body .masterstudy-course-player-lesson :is(p, li, blockquote, td, th, span, strong, b, em, i, a, h1, h2, h3, h4, h5, h6):not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]),
html body .masterstudy-course-player-assignments__content :is(p, li, blockquote, td, th, span, strong, b, em, i, a, h1, h2, h3, h4, h5, h6):not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]),
html body .masterstudy-course-player-quiz :is(p, li, blockquote, td, th, span, strong, b, em, i, a, h1, h2, h3, h4, h5, h6):not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]) {
	font-family: var(--cp-fuente-lectura) !important;
}

/* 3. Texto que los profesores pusieron en Times New Roman o Garamond (guías de estudio y lecturas
 *    adicionales): se respeta la intención académica con una serif hecha para pantalla. Incluye todo lo
 *    que va dentro de esos elementos (negritas, cursivas). */
html body .masterstudy-course-player-lesson :is([style*="times" i], [style*="garamond" i], :is([style*="times" i], [style*="garamond" i]) *):not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]),
html body .masterstudy-course-player-assignments__content :is([style*="times" i], [style*="garamond" i], :is([style*="times" i], [style*="garamond" i]) *):not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]),
html body .masterstudy-course-player-quiz :is([style*="times" i], [style*="garamond" i], :is([style*="times" i], [style*="garamond" i]) *):not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]):not([class*="stmlms"]):not([class*="lnr"]):not([class*="linear"]):not([class*="icon"]):not([style*="wingdings" i]):not([style*="symbol" i]) {
	font-family: var(--cp-fuente-serif) !important;
}

/* 4. Móvil: el texto que el autor justificó se alinea a la izquierda (evita huecos entre palabras).
 *    Solo el justificado: los párrafos centrados o a la derecha se respetan. En escritorio no cambia. */
@media (max-width: 767px) {
	html body .masterstudy-course-player-lesson :is([style*="justify" i], [align="justify" i]),
	html body .masterstudy-course-player-assignments__content :is([style*="justify" i], [align="justify" i]),
	html body .masterstudy-course-player-quiz :is([style*="justify" i], [align="justify" i]) {
		text-align: left !important;
	}
}

/* 5. Peso 600 para subtítulos, botones y navegación destacada. MasterStudy LMS los trae en 700, el mismo
 *    peso que los títulos de página y de lección, y todo competía al mismo volumen.
 *    !important: las reglas del LMS tienen especificidades variadas (a.masterstudy-nav-button
 *    .masterstudy-nav-button__title, body .masterstudy-buy-button__title…) y estos son elementos de
 *    interfaz, nunca contenido escrito por los profesores. */
html body :is(
	.masterstudy-course-player-curriculum__title,
	.masterstudy-curriculum-accordion__section-title,
	.masterstudy-curriculum-accordion__section-count,
	.masterstudy-course-player-header__course-title,
	.masterstudy-course-player-header__discussions-toggler__title,
	.masterstudy-switch-button__title,
	.masterstudy-nav-button__title,
	.masterstudy-button__title,
	.masterstudy-buy-button__title,
	.masterstudy-buy-button__price_regular,
	.masterstudy-single-course-tabs__item,
	.masterstudy-single-course-details__quantity,
	.masterstudy-account-menu__list-section-title,
	.masterstudy-dropdown-menu__learning-column h3,
	.masterstudy-account-profile__name,
	.masterstudy-enrolled-courses-tabs__block-title,
	.masterstudy-authorization__header-title,
	.masterstudy-enterprise-modal__header-title,
	.masterstudy-alert__header-title,
	.masterstudy-discussions__not-items-title,
	.ms_lms_courses_card_item_info_price_single span,
	.ms_lms_courses_archive__filter_options_item_title h3,
	.widget_title h3,
	.btn
) {
	font-weight: 600 !important;
}

/* 6. Espaciado entre letras: Theme Options imprime letter-spacing negativo en los encabezados
 *    (h1 y h2 -0.4px, h3 -1px, h4 -0.2px y -0.5px), calculado para Montserrat. Con Outfit, más estrecha,
 *    las letras se enciman (sobre todo el título del curso en la barra lateral del reproductor).
 *    El diploma queda fuera, como en la regla 1. */
html body :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, blockquote):not(.certificate-preview *) {
	letter-spacing: normal;
}
