/**
 * Theme typography — maps components to tokens (ui-ux.md §3).
 * Loaded after component CSS to normalize role sizes.
 */

/* Semantic headings (tags) */
h1 {
	font-size: var(--shamsa-fs-h1);
	font-weight: 800;
	line-height: var(--shamsa-lh-h1);
}

h2 {
	font-size: var(--shamsa-fs-h2);
	font-weight: 700;
	line-height: var(--shamsa-lh-h2);
}

h3 {
	font-size: var(--shamsa-fs-h3);
	font-weight: 700;
	line-height: var(--shamsa-lh-h3);
}

h4,
h5,
h6 {
	font-size: var(--shamsa-fs-card);
	font-weight: 700;
	line-height: var(--shamsa-lh-h3);
}

p,
li {
	font-size: var(--shamsa-fs-body);
	line-height: var(--shamsa-lh-body);
}

/* Section titles — H2 band (ui-ux §3) */
.sh-section-title,
.shamsa-section__title,
.shamsa-section-title,
.shamsa-article-related h2,
.shamsa-professor-section h2,
.shamsa-courses-catalog .section-heading h2 {
	font-size: var(--shamsa-fs-h2);
	font-weight: 800;
	line-height: var(--shamsa-lh-h2);
}

/* Block item titles (e.g. each reason card) */
.shamsa-reason h3,
.shamsa-teacher-card h3,
.shamsa-feature h2 {
	font-size: var(--shamsa-fs-item-title);
	font-weight: 800;
	line-height: var(--shamsa-lh-h3);
}

/* Card / list titles */
.sh-card-title,
.sh-post-content h3,
.sh-featured-title,
.shamsa-blog-card__copy h3,
.shamsa-article-related-card strong,
.sh-course-card__title,
.shamsa-course-card__title,
.shme-course-card__title,
.shme-category-title,
.shamsa-courses-catalog .catalog-card h4,
.shamsa-courses-catalog .course-body h4,
.shamsa-courses-catalog .catalog-group-heading strong {
	font-size: var(--shamsa-fs-card);
	font-weight: 800;
	line-height: var(--shamsa-lh-h3);
}

/* Professor profile tabs — titles + list items use body scale */
.shamsa-professor-tab__label,
.shamsa-professor-tab__panel li {
	font-size: var(--shamsa-fs-body);
	line-height: var(--shamsa-lh-body);
}

.shamsa-professor-tab__label {
	font-weight: 700;
}

/* Meta: date, tags, breadcrumbs, captions */
time,
.sh-meta,
.sh-tag,
.sh-post-footer,
.sh-featured-footer,
.shamsa-article-meta,
.shamsa-article-breadcrumb,
.shamsa-professor-breadcrumb,
.shme-badge span,
.shme-category-list > a,
.shme-mobile-category-row > a {
	font-size: var(--shamsa-fs-meta);
	line-height: var(--shamsa-lh-meta);
}

/* Site header — 16px like shamsa.org */
.shme-header .shme-link,
.shme-header .shme-brand-title,
.shme-header .shme-phone-number,
.shme-header .shme-cta,
.nd-chrome .desktop-nav a,
.nd-chrome .mobile-nav a {
	font-size: var(--shamsa-fs-header);
	line-height: 1.5;
}

.nd-chrome .button.small {
	font-size: var(--shamsa-fs-button);
	line-height: var(--shamsa-lh-button);
}

/* Buttons (not header nav) */
.sh-filter-btn,
.shamsa-button,
button[type="submit"],
.sh-read-more {
	font-size: var(--shamsa-fs-button);
	font-weight: 700;
	line-height: var(--shamsa-lh-button);
}

/* Mobile nav body */
.shme-mobile-link {
	font-size: var(--shamsa-fs-meta);
	line-height: var(--shamsa-lh-body);
}

.shme-mobile-submenu-nested a,
.shme-mobile-category-row > a {
	font-size: var(--shamsa-fs-meta-sm);
	line-height: var(--shamsa-lh-meta);
}

/* Hero / page display */
.shamsa-hero__title,
.shamsa-course-hero h1,
.shamsa-professor-hero h1,
.shamsa-article-header h1 {
	font-size: var(--shamsa-fs-h1);
	font-weight: 800;
	line-height: var(--shamsa-lh-h1);
}

.shamsa-hero__lead,
.shamsa-course-hero__subtitle {
	font-size: var(--shamsa-fs-card);
	line-height: var(--shamsa-lh-body);
}
