/* One heading scale for landing pages, services and reading views. */
:root {
	--type-hero: clamp(2.5rem, 5.3vw, 4.75rem);
	--type-section: clamp(1.9rem, 3.1vw, 2.75rem);
	--type-card: clamp(1.25rem, 1.8vw, 1.5rem);
	--type-compact: clamp(1.2rem, 1.55vw, 1.35rem);
	--type-heading-weight: 750;
	--type-heading-leading: 1.12;
}
body .hero-personal .hero-personal__copy .ai-lab__title,
body .blog-index-title,
body .archive-hero__title,
body .single-post-template .single-post-title {
	font-size: var(--type-hero);
	font-weight: var(--type-heading-weight);
	line-height: 1.08;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
body .hero-personal--tiny .hero-personal__copy .ai-lab__title {
	font-size: var(--type-section);
}
body .section-title,
body .contact-copy-panel .contact-title {
	font-size: var(--type-section);
	font-weight: var(--type-heading-weight);
	line-height: var(--type-heading-leading);
	letter-spacing: -0.025em;
	text-wrap: balance;
}
body .contact-copy-panel .contact-title {
	max-width: 22ch;
}
body .blog-card__title,
body .wordpress-scope-item h3,
body .use-case-diagnostic__title h3,
body .decision-row__topic strong {
	font-size: var(--type-card);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.015em;
	text-wrap: pretty;
}
body .timeline-item__card h3,
body .ai-workflow-step h3 {
	font-size: var(--type-compact);
	font-weight: 700;
	line-height: 1.3;
	text-wrap: pretty;
}
/* Reading headings have their own compact rhythm within the same hierarchy. */
body .single-post-template .single-post-content :is(h2, h3, h4) {
	font-weight: var(--type-heading-weight);
	line-height: 1.25;
	text-wrap: pretty;
}
body.home .profile-section .profile-copy-panel .section-title {
	font-size: var(--type-section);
}
body .single-post-template .single-post-title {
	font-size: clamp(2.4rem, 4.9vw, 4.25rem);
}
