body {
	font-family: var(--font-body);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.6em;
	letter-spacing: 0;
}

/* Entre 768 y 991: escala intermedia móvil ↔ desktop (no altera <768 ni ≥992). */
@media (min-width: 768px) and (max-width: 991px) {
	body {
		font-size: 19px;
	}
}

@media (min-width: 992px) {
	body {
		font-size: 20px;
	}
}

p {
	margin: 0;
	margin-bottom: 1em;
}

/*
 * Headings semánticos (h1–h9): sin tipografía ni tamaño propios; heredan del contexto.
 * Escala de títulos: clases .title-* → familia --font-title (variables.css) + tamaños abajo.
 */
h1,
h2,
h3,
h4,
h5,
h6,
h7,
h8,
h9 {
	margin: 0;
	font: inherit;
}



/*--------------------------------------------------------------
# Title Styles — familia: var(--font-title) (= IBM Plex Sans en variables.css)
--------------------------------------------------------------*/

.title-XL,
.title-L,
.title-M,
.title-S,
.title-XS {
	font-family: var(--font-title);
	font-weight: 400;
	letter-spacing: 0;
	margin: 0;
}

/*
 * Tamaños (Figma). Base (hasta 767px); paso intermedio 768–991px; desktop ≥992px.
 * Condensed / SemiCondensed: --font-ibm-plex-sans-condensed / --font-ibm-plex-sans-semicondensed.
 */
.title-XL {
	font-size: 60px;
	line-height: 1.2;
}

.title-L {
	font-size: 48px;
	line-height: 1.2;
}

.title-M {
	font-size: 44px;
	line-height: 1.2;
}

.title-S {
	font-size: 32px;
	line-height: 1.2;
}

.title-XS {
	font-size: 24px;
	line-height: 1.2;
}

@media (min-width: 768px) and (max-width: 991px) {
	.title-XL {
		font-size: 91px;
		line-height: 1.2;
	}

	.title-L {
		font-size: 66px;
		line-height: 1.2;
	}

	.title-M {
		font-size: 52px;
		line-height: 1.2;
	}

	.title-S {
		font-size: 37px;
		line-height: 1.2;
	}

	.title-XS {
		font-size: 26px;
		line-height: 1.2;
	}
}

@media (min-width: 992px) {
	.title-XL {
		font-size: 122px;
		line-height: 1.2;
	}

	.title-L {
		font-size: 84px;
		line-height: 1.2;
	}

	.title-M {
		font-size: 60px;
		line-height: 1.2;
	}

	.title-S {
		font-size: 42px;
		line-height: 1.2;
	}

	.title-XS {
		font-size: 28px;
		line-height: 1.2;
	}
}

/*--------------------------------------------------------------
# Body Styles - Public Sans
 * Figma: Frame 12 (móvil) / Frame 168 (desk). Interlineado 1.4 (body y clases .body-*).
--------------------------------------------------------------*/

/* Propiedades comunes para todas las clases body-* */
.body-XL,
.body-L,
.body-M,
.body-S,
.body-XS,
.body-XXS,
.body-XXXS {
	font-family: var(--font-body);
	font-weight: 400;
	letter-spacing: 0;
	margin: 0;
}

/*
 * line-height en número sin unidad: al heredar, se aplica el factor al font-size
 * de cada descendiente (p. ej. p), evitando interlineado raro con porcentajes.
 */
.body-XL {
	font-size: 22px;
	line-height: 1.6em;
}

.body-L {
	font-size: 18px;
	line-height: 1.6em;
}

.body-M {
	font-size: 18px;
	line-height: 1.6em;
}

.body-S {
	font-size: 16px;
	line-height: 1.6em;
}

.body-XS {
	font-size: 14px;
	line-height: 1.6em;
}

.body-XXS {
	font-size: 12px;
	line-height: 1.6em;
}

.body-XXXS {
	font-size: 10px;
	line-height: 1.6em;
}

.text-body {
	color: var(--body-text-100);
}

@media (min-width: 768px) and (max-width: 991px) {
	.body-XL {
		font-size: 24px;
		line-height: 1.4;
	}

	.body-L {
		font-size: 21px;
		line-height: 1.4;
	}

	.body-M {
		font-size: 19px;
		line-height: 1.4;
	}

	.body-S {
		font-size: 17px;
		line-height: 1.4;
	}

	.body-XS {
		font-size: 15px;
		line-height: 1.4;
	}

	.body-XXS {
		font-size: 13px;
		line-height: 1.4;
	}

	.body-XXXS {
		font-size: 11px;
		line-height: 1.4;
	}
}

@media (min-width: 992px) {
	.body-XL {
		font-size: 28px;
		line-height: 1.4;
	}

	.body-L {
		font-size: 24px;
		line-height: 1.4;
	}

	.body-M {
		font-size: 20px;
		line-height: 1.4;
	}

	.body-S {
		font-size: 18px;
		line-height: 1.4;
	}

	.body-XS {
		font-size: 16px;
		line-height: 1.4;
	}

	.body-XXS {
		font-size: 14px;
		line-height: 1.4;
	}

	.body-XXXS {
		font-size: 12px;
		line-height: 1.4;
	}
}

/* Pesos de la tipografía */

.thin {
	font-weight: 100;
}

.extra-light {
	font-weight: 200;
}

.light {
	font-weight: 300 !important;
}

.regular {
	font-weight: 400;
}

.semibold {
	font-weight: 500;
}

.semibold-600 {
	font-weight: 600;
}

.bold {
	font-weight: 700;
}

.extra-bold {
	font-weight: 800;
}

.black {
	font-weight: 900;
}

/* Mayúsculas + aire (p. ej. títulos de bloque, menú caps en pie) */
.uppercase {
	letter-spacing: 0.04em;
	text-transform: uppercase;
}