.sm-teaching .sm-page-intro { padding: var(--sm-space-50) 0 var(--sm-space-30); }
.sm-teaching .sm-page-intro .lede { max-width: 60ch; }
.sm-teaching .sm-teaching-prose {
	padding: var(--sm-space-30) 0 var(--sm-space-60);
}
.sm-teaching .sm-teaching-prose p {
	font-size: var(--sm-text-prose);
	line-height: 1.65;
	margin: 0 0 18px;
	text-wrap: pretty;
}
.sm-teaching .sm-teaching-prose p:last-child { margin-bottom: 0; }
.sm-teaching .sm-teaching-prose em { font-style: normal; color: var(--sm-accent-1); }

/* Teaching section header reuses the shared .sm-section-head.bordered (home.css). */
.sm-teaching .sm-section-head { margin-bottom: var(--sm-space-30); }
.sm-teaching .sm-section-head h2 {
	line-height: 1.2;
	max-width: 50ch;
	text-wrap: pretty;
}

.sm-teaching .sm-teaching-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.sm-teaching .sm-teaching-list > li {
	display: grid;
	grid-template-columns: 200px 1.1fr 1.4fr;
	gap: var(--sm-space-40);
	padding: var(--sm-space-40) 0;
	border-bottom: 1px solid var(--sm-border);
	align-items: start;
}
.sm-teaching .sm-teaching-list > li:first-child { border-top: 1px solid var(--sm-border); }
.sm-teaching .sm-teaching-list > li:last-child  { border-bottom: 0; }

/* Period + status (column 1) */
.sm-teaching .t-period {
	display: flex; flex-direction: column; gap: 10px;
}
.sm-teaching .t-period .years {
	font-family: var(--sm-font-mono);
	font-size: 13px;
	color: var(--sm-fg-1);
	font-weight: 500;
	letter-spacing: 0.3px;
}
.sm-teaching .t-status {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--sm-font-mono);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--sm-ls-caps);
	color: var(--sm-fg-2);
	align-self: flex-start;
}
.sm-teaching .t-status::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--sm-border);
}
.sm-teaching .t-status.live { color: var(--sm-accent-1); }
.sm-teaching .t-status.live::before {
	background: var(--sm-accent-1);
	animation: sm-pulse 2.4s ease-in-out infinite;
}
.sm-teaching .t-status.paused { color: var(--sm-accent-3); }
.sm-teaching .t-status.paused::before {
	background: transparent;
	border: 1.5px solid var(--sm-accent-3);
	box-sizing: border-box;
}
/* Live-dot pulse (sm-pulse) and its reduced-motion guard are shared from home.css. */

/* School block (column 2) */
.sm-teaching .t-school .name {
	font-size: 24px;
	font-weight: 400;
	letter-spacing: -0.2px;
	line-height: 1.15;
	margin: 0 0 6px;
}
.sm-teaching .t-school .name em {
	font-style: italic;
	font-weight: 300;
	color: var(--sm-fg-2);
	font-size: 0.7em;
	letter-spacing: 0;
}
.sm-teaching .t-school .city {
	font-family: var(--sm-font-mono);
	font-size: 11px;
	color: var(--sm-fg-2);
	text-transform: uppercase;
	letter-spacing: var(--sm-ls-caps);
	margin-bottom: 14px;
}
.sm-teaching .t-school .role {
	font-size: 14.5px;
	color: var(--sm-fg-1);
	font-weight: 300;
	line-height: 1.45;
}
.sm-teaching .t-school .role b {
	font-weight: 500;
	color: var(--sm-fg-1);
}
.sm-teaching .t-school .role .pipe { color: var(--sm-border); margin: 0 6px; }

/* Detail block (column 3): chips strip + structured module list */
.sm-teaching .t-detail .chips {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
	display: flex; flex-wrap: wrap; gap: 6px;
}
.sm-teaching .t-detail .chips li {
	font-family: var(--sm-font-mono);
	font-size: 11px;
	color: var(--sm-fg-1);
	border: 1px solid var(--sm-border);
	padding: 4px 9px;
	border-radius: var(--sm-radius-round);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.sm-teaching .t-detail .chips li.accent {
	border-color: var(--sm-accent-1);
	color: var(--sm-accent-1);
}
.sm-teaching .t-detail .module-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--sm-border);
}
.sm-teaching .t-detail .module-list li {
	display: grid;
	grid-template-columns: 14px 1fr auto;
	gap: 10px;
	align-items: baseline;
	padding: 9px 0;
	border-bottom: 1px solid var(--sm-border);
}
.sm-teaching .t-detail .module-list .marker {
	font-family: var(--sm-font-mono);
	font-size: 11px;
	color: var(--sm-accent-1);
	line-height: 1.4;
}
.sm-teaching .t-detail .module-list .m-name {
	font-size: 14.5px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--sm-fg-1);
}
.sm-teaching .t-detail .module-list .m-kind {
	font-family: var(--sm-font-mono);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: var(--sm-ls-caps);
	color: var(--sm-fg-2);
}

.sm-teaching .sm-pull {
	padding: var(--sm-space-50) 0;
	border-top: 1px solid var(--sm-border);
	display: flex;
	align-items: baseline;
	gap: var(--sm-space-40);
	flex-wrap: wrap;
}
.sm-teaching .sm-pull h3 {
	font-size: clamp(22px, 2.5vw, 30px);
	font-weight: 400;
	letter-spacing: -0.2px;
	margin: 0;
	flex: 1;
	min-width: 280px;
	text-wrap: pretty;
}
.sm-teaching .sm-pull h3 em { font-style: normal; color: var(--sm-accent-1); }

@media (max-width: 960px) {
	.sm-teaching .sm-teaching-list > li {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.sm-teaching .t-period {
		flex-direction: row;
		align-items: baseline;
		gap: 16px;
	}
}
