/**
 * Typography — heading + text scales, utility classes.
 *
 * Headings: Times New Roman (--slist-font-display), weight 400.
 * Body/UI: Public Sans (--slist-font-body).
 * All sizes fluid via clamp(). Sentence case default.
 */

h1, h2, h3, h4, h5, h6,
.slist-h1, .slist-h2, .slist-h3, .slist-h4, .slist-h5, .slist-h6 {
	font-family: var(--slist-font-display);
	font-weight: var(--slist-weight-regular);
	line-height: var(--slist-lh-snug);
	color: var(--slist-text-primary);
	margin: 0 0 var(--slist-space-3);
}

h1, .slist-h1 {
	font-size: var(--slist-text-display);
	letter-spacing: var(--slist-ls-tight);
	line-height: var(--slist-lh-tight);
}

h2, .slist-h2 {
	font-size: var(--slist-text-title1);
	letter-spacing: var(--slist-ls-snug);
}

h3, .slist-h3 {
	font-size: var(--slist-text-title2);
}

h4, .slist-h4 {
	font-size: var(--slist-text-title3);
}

h5, .slist-h5,
h6, .slist-h6 {
	font-family: var(--slist-font-body);
	font-size: var(--slist-text-callout);
	font-weight: var(--slist-weight-semibold);
	letter-spacing: var(--slist-ls-wider);
	text-transform: uppercase;
}

/* Hero title — event hero, homepage wordmark */
.slist-hero-title {
	font-family: var(--slist-font-display);
	font-size: var(--slist-text-hero);
	font-weight: var(--slist-weight-regular);
	letter-spacing: var(--slist-ls-tight);
	line-height: var(--slist-lh-tight);
	color: var(--slist-text-primary);
	margin: 0;
}

/* Eyebrow — small uppercase label above a heading */
.slist-eyebrow {
	font-family: var(--slist-font-body);
	font-size: var(--slist-text-eyebrow);
	font-weight: var(--slist-weight-semibold);
	letter-spacing: var(--slist-ls-wider);
	text-transform: uppercase;
	color: var(--slist-text-secondary);
	margin: 0 0 var(--slist-space-2);
	display: block;
}

/* Lead — intro paragraph with larger body text */
.slist-lead {
	font-size: var(--slist-text-title3);
	font-weight: var(--slist-weight-regular);
	line-height: var(--slist-lh-default);
	color: var(--slist-text-secondary);
	margin: 0 0 var(--slist-space-4);
}

/* Text color utilities */
.slist-text-secondary  { color: var(--slist-text-secondary); }
.slist-text-tertiary   { color: var(--slist-text-tertiary); }
.slist-text-quaternary { color: var(--slist-text-quaternary); }

/* Size utilities */
.slist-text-eyebrow { font-size: var(--slist-text-eyebrow); }
.slist-text-caption { font-size: var(--slist-text-caption); }
.slist-text-callout { font-size: var(--slist-text-callout); }
.slist-text-body    { font-size: var(--slist-text-body); }
.slist-text-title3  { font-size: var(--slist-text-title3); }
.slist-text-title2  { font-size: var(--slist-text-title2); }
.slist-text-title1  { font-size: var(--slist-text-title1); }
.slist-text-display { font-size: var(--slist-text-display); }
.slist-text-hero    { font-size: var(--slist-text-hero); }

/* Weight utilities */
.slist-weight-regular  { font-weight: var(--slist-weight-regular); }
.slist-weight-medium   { font-weight: var(--slist-weight-medium); }
.slist-weight-semibold { font-weight: var(--slist-weight-semibold); }
.slist-weight-bold     { font-weight: var(--slist-weight-bold); }

/* Align */
.slist-text-center { text-align: center; }
.slist-text-left   { text-align: left; }
.slist-text-right  { text-align: right; }

/* Case */
.slist-uppercase { text-transform: uppercase; letter-spacing: var(--slist-ls-wide); }
.slist-sentence  { text-transform: none; }

/* Mono */
.slist-mono { font-family: var(--slist-font-mono); }
