/*
 * Typography scale. One class per named style in the design system, so a
 * section can be marked up by quoting the design rather than re-deriving
 * sizes, line heights and letter spacing each time.
 */

.type-display,
.type-h1,
.type-h2,
.type-h3,
.type-h4,
.type-h5,
.type-h6,
.type-subtitle {
	font-family: var(--font-display);
	margin: 0;
	color: var(--color-text-heading);
}

.type-display {
	font-size: var(--text-display-fluid);
	font-weight: 500;
	line-height: var(--lh-display);
}

.type-h1 {
	font-size: var(--text-h1-fluid);
	font-weight: 500;
	line-height: var(--lh-h1);
	letter-spacing: var(--ls-h1);
}

.type-h2 {
	font-size: var(--text-h2);
	font-weight: 500;
	line-height: var(--lh-h2);
	letter-spacing: var(--ls-h2);
}

.type-h3 {
	font-size: var(--text-h3-fluid);
	font-weight: 500;
	line-height: var(--lh-h3);
}

.type-h4 {
	font-size: var(--text-h4);
	font-weight: 500;
	line-height: var(--lh-h4);
}

.type-h5 {
	font-size: var(--text-h5);
	font-weight: 500;
	line-height: var(--lh-h5);
	letter-spacing: var(--ls-h5);
}

.type-h6 {
	font-size: var(--text-h6);
	font-weight: 500;
	line-height: var(--lh-h6);
	letter-spacing: var(--ls-h6);
}

.type-subtitle {
	font-size: var(--text-subtitle);
	font-weight: 600;
	line-height: var(--lh-subtitle);
}

/* Emphasis inside headings is the italic cut, never bold. */
.type-display em,
.type-h1 em,
.type-h2 em,
.type-h3 em {
	font-style: italic;
	font-weight: inherit;
}

/* --- Body --- */

.type-body-lg,
.type-body,
.type-body-sm,
.type-caption {
	font-family: var(--font-body);
	margin: 0;
}

.type-body-lg {
	font-size: var(--text-body-lg);
	line-height: var(--lh-body);
}

.type-body {
	font-size: var(--text-body);
	line-height: var(--lh-body);
}

.type-body-bold {
	font-weight: 600;
}

.type-body-sm {
	font-size: var(--text-body-sm);
	line-height: var(--lh-body-sm);
}

.type-caption {
	font-size: var(--text-caption);
	font-weight: 500;
	line-height: var(--lh-caption);
	letter-spacing: var(--ls-caption);
}

/* --- Stats and quotes --- */

.type-stat {
	font-family: var(--font-body);
	font-size: var(--text-stat);
	font-weight: 600;
	line-height: 1;
	margin: 0;
}

.type-stat-lg {
	font-family: var(--font-body);
	font-size: var(--text-stat-lg);
	font-weight: 700;
	line-height: var(--lh-body);
	margin: 0;
}

.type-quote {
	font-family: var(--font-accent);
	font-size: var(--text-stat-lg);
	font-weight: 700;
	line-height: var(--lh-quote);
	margin: 0;
}

.type-quote-body {
	font-family: var(--font-body);
	font-size: var(--text-h6);
	font-weight: 500;
	line-height: var(--lh-body);
	margin: 0;
}
