/**
 * Typography primitives
 */
.fc-ds .fc-display,
.fc-text-display {
	font-family: var(--fc-font-display);
	font-size: var(--fc-text-display);
	font-weight: var(--fc-weight-bold);
	line-height: var(--fc-leading-tight);
	letter-spacing: -0.02em;
	color: var(--fc-color-ocean-navy);
}

.fc-ds h1,
.fc-text-h1,
.fc-portal-header-title {
	font-size: var(--fc-text-h1);
	font-weight: var(--fc-weight-semibold);
	line-height: var(--fc-leading-tight);
	letter-spacing: -0.015em;
	color: var(--fc-color-ocean-navy);
}

.fc-ds h2,
.fc-text-h2,
.fc-portal-section-heading {
	font-size: var(--fc-text-h2);
	font-weight: var(--fc-weight-semibold);
	line-height: var(--fc-leading-snug);
	color: var(--fc-color-ocean-navy);
}

.fc-ds h3,
.fc-text-h3 {
	font-size: var(--fc-text-h3);
	font-weight: var(--fc-weight-semibold);
	line-height: var(--fc-leading-snug);
	color: var(--fc-color-ocean-navy);
}

.fc-ds h4,
.fc-text-h4 { font-size: var(--fc-text-h4); font-weight: var(--fc-weight-semibold); }
.fc-ds h5,
.fc-text-h5 { font-size: var(--fc-text-h5); font-weight: var(--fc-weight-semibold); }
.fc-ds h6,
.fc-text-h6 {
	font-size: var(--fc-text-h6);
	font-weight: var(--fc-weight-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--fc-color-muted);
}

.fc-text-body { font-size: var(--fc-text-body); line-height: var(--fc-leading-normal); }
.fc-text-small,
.fc-hint,
.fc-portal-lede,
.fc-portal-header-subtitle {
	font-size: var(--fc-text-small);
	line-height: var(--fc-leading-normal);
	color: var(--fc-color-muted);
}

.fc-text-caption {
	font-size: var(--fc-text-caption);
	line-height: var(--fc-leading-normal);
	color: var(--fc-color-muted);
}

.fc-text-mono,
.fc-portal-copy-url,
code.fc-code {
	font-family: var(--fc-font-mono);
	font-size: 0.875em;
}

.fc-text-muted { color: var(--fc-color-muted); }
.fc-text-inverse { color: var(--fc-color-text-inverse); }
