/**
 * Education program detail tables — schedule, curriculum, important information.
 */

.program-detail {
	--program-detail-pad: 3.75rem; /* 60px */
	--program-detail-gap: 1.5rem; /* 24px */
	--program-detail-heading-size: var(--type-h2-size);
	--program-detail-pad-inline: clamp(1.25rem, 3vw, 4rem); /* → 64px */
	--program-detail-row-pad: 1.25rem; /* 20px */
	--program-detail-head-pad: 1.5rem; /* 24px */
	--program-detail-col-gap: 1.25rem; /* 20px */
	--program-detail-label: 10rem; /* 160px */
	--program-detail-radius: 0.75rem; /* 12px */

	padding-block: var(--program-detail-pad);
	color: var(--color-navy);
	background-color: var(--color-white);
}

.program-detail__inner {
	display: flex;
	flex-direction: column;
	gap: var(--program-detail-gap);
	width: 100%;
	max-width: calc(var(--container-narrow-max) + (2 * var(--container-gutter)));
	margin-inline: auto;
	padding-inline: var(--container-gutter);
	box-sizing: border-box;
}

.program-detail__heading {
	margin: 0;
	font-family: var(--font-family-display);
	font-size: var(--program-detail-heading-size);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--color-navy);
}

.program-table__head {
	display: none;
}

.program-table__body {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.program-table__row {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 0;
	padding: var(--program-detail-row-pad);
	border-radius: var(--program-detail-radius);
	box-sizing: border-box;
}

.program-table__row:nth-child(odd) {
	background-color: #ffffff;
}

.program-table__row:nth-child(even) {
	background-color: var(--color-deck);
}

.program-table--lead-deck .program-table__row:nth-child(odd) {
	background-color: var(--color-deck);
}

.program-table--lead-deck .program-table__row:nth-child(even) {
	background-color: #ffffff;
}

.program-table__cell {
	min-width: 0;
	font-family: var(--font-family-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-navy);
	overflow-wrap: break-word;
}

.program-table__cell[data-label]::before {
	content: attr(data-label);
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--color-navy);
}

.program-table__rich > *:first-child {
	margin-top: 0;
}

.program-table__rich > *:last-child {
	margin-bottom: 0;
}

.program-table__rich p {
	margin: 0;
}

.program-table__rich p + p,
.program-table__rich ul,
.program-table__rich ol {
	margin-top: 0.75rem;
}

.program-table__rich ul,
.program-table__rich ol {
	margin-bottom: 0;
	padding-inline-start: 1.15rem;
}

.program-table__rich li + li {
	margin-top: 0.2rem;
}

@media (min-width: 64rem) {
	.program-table__head {
		display: block;
	}

	.program-table__body {
		gap: 0;
	}

	.program-table__head .program-table__row,
	.program-table__body .program-table__row {
		display: grid;
		column-gap: var(--program-detail-col-gap);
		align-items: center;
		border-radius: 0;
		padding: var(--program-detail-row-pad) var(--program-detail-pad-inline);
	}

	.program-table--schedule .program-table__head .program-table__row,
	.program-table--schedule .program-table__body .program-table__row {
		grid-template-columns: var(--program-detail-label) minmax(0, 1.45fr) minmax(0, 1fr);
	}

	.program-table--split .program-table__head .program-table__row,
	.program-table--split .program-table__body .program-table__row {
		grid-template-columns: var(--program-detail-label) minmax(0, 1fr);
	}

	.program-table--cols-2 .program-table__head .program-table__row,
	.program-table--cols-2 .program-table__body .program-table__row {
		grid-template-columns: var(--program-detail-label) minmax(0, 1fr);
	}

	.program-table--cols-3 .program-table__head .program-table__row,
	.program-table--cols-3 .program-table__body .program-table__row {
		grid-template-columns: var(--program-detail-label) minmax(0, 1.45fr) minmax(0, 1fr);
	}

	.program-table--cols-4 .program-table__head .program-table__row,
	.program-table--cols-4 .program-table__body .program-table__row {
		grid-template-columns: minmax(6.5rem, 0.8fr) repeat(3, minmax(0, 1fr));
	}

	.program-table__head .program-table__row {
		padding-block: var(--program-detail-head-pad);
		border-radius: var(--program-detail-radius) var(--program-detail-radius) 0 0;
		background-color: var(--color-navy);
	}

	.program-table__cell--head {
		color: var(--color-white);
	}

	.program-table__cell[data-label]::before {
		content: none;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.program-detail__inner {
		opacity: 0;
		transform: translateY(2.5rem);
		will-change: opacity, transform;
		transition:
			opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
			transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
	}

	.program-detail.is-inview .program-detail__inner {
		opacity: 1;
		transform: none;
		will-change: auto;
	}
}
