.program-experience {
	--program-accent: var(--bio-indigo, #4338ca);
	--program-card: var(--card, var(--bs-body-bg));
	--program-ink: var(--foreground, var(--bs-body-color));
	--program-muted: var(--muted-foreground, var(--bs-secondary-color));
	--program-border: var(--border, var(--bs-border-color));
	--program-soft: var(--muted, var(--bs-tertiary-bg));
	--program-light: var(--primary-foreground, #fff);
	--program-gradient: var(
		--gradient-brand,
		linear-gradient(120deg, #22d3ee, #4338ca 55%, #db2777)
	);
	--program-surface: #e8f4fa;
}
.program-tone-cyan {
	--program-accent: #00525a;
}
.program-tone-magenta {
	--program-accent: #8a1586;
}
.program-tone-indigo {
	--program-accent: var(--bio-indigo, #4338ca);
}
.program-experience :is(h1, h2, h3) {
	letter-spacing: 0;
}
.program-experience .text-muted-foreground {
	color: var(--program-muted);
}
.program-experience .container-xxl {
	--bs-gutter-x: 3rem;
}
/* Bootstrap provides the container, grid, spacing, flex and typography classes.
These scoped rules replace the React button utilities left in export v3. */
.program-experience :is(button, .program-cta, .program-outline) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font: inherit;
	cursor: pointer;
	text-decoration: none;
}
.program-experience button {
	border: 0;
	background: transparent;
}
.program-experience :is(button, a):focus-visible {
	outline: 3px solid var(--program-accent);
	outline-offset: 3px;
}
.program-experience :is(button, .program-cta, .program-outline) svg {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	pointer-events: none;
}
.program-banner {
	color: var(--program-light);
}
.program-banner-photo,
.program-banner-shade {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.program-banner-photo {
	object-fit: cover;
	object-position: center 42%;
}
.program-banner-shade {
	background: linear-gradient(90deg, #070d30f5, #001630e0 55%, #001f298c);
}
.program-banner-copy {
	max-width: 790px;
}
.program-eyebrow,
.program-kicker {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0;
}
.program-eyebrow {
	color: var(--bio-cyan, #22d3ee);
}
.program-kicker,
.program-accent,
.program-back {
	color: var(--program-accent);
}
.program-back {
	text-decoration: none;
	font-weight: 600;
}
.program-filters {
	border: 1px solid var(--program-border);
	padding: 0.3rem;
	border-radius: 50rem;
	background: var(--program-card);
}
.program-experience .program-filter {
	padding: 0.65rem 1rem;
	border-radius: 50rem;
	color: var(--program-muted);
}
.program-experience .program-filter.active {
	background: var(--program-ink);
	color: var(--program-light);
}
.program-path,
.program-benefit {
	border: 1px solid var(--program-border);
	padding: 2rem;
	border-radius: var(--bs-border-radius-lg);
	background: var(--program-card);
}
.program-path {
	border-top: 3px solid var(--program-accent);
}
.program-icon {
	color: var(--program-accent);
	background: color-mix(
		in srgb,
		var(--program-accent) 9%,
		var(--program-card)
	);
	width: 58px;
	height: 58px;
	display: grid;
	place-items: center;
	border-radius: var(--bs-border-radius-lg);
}
.program-number {
	font-size: 0.8rem;
	color: var(--program-muted);
}
.program-path:not(.program-featured) h3 {
	min-height: 2.5em;
}
.program-path:not(.program-featured) p.text-muted-foreground {
	min-height: 5em;
}
.program-unit,
.program-banner-unit {
	font-size: 0.8rem;
	border: 1px solid var(--program-border);
	border-radius: var(--bs-border-radius-sm);
	padding: 0.5rem 0.75rem;
}
.program-unit {
	color: var(--program-accent);
	font-weight: 600;
}
.program-banner-unit {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border-color: color-mix(in srgb, var(--program-light) 35%, transparent);
}
.program-experience .program-cta {
	background: var(--program-gradient);
	color: var(--program-light);
	border: 0;
	border-radius: 50rem;
	padding: 0.85rem 1.3rem;
	height: auto;
	white-space: normal;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
}
.program-featured {
	background: var(--gradient-soft, var(--program-surface));
}
.program-feature-facts {
	padding-left: 2.5rem;
	border-left: 1px solid var(--program-border);
}
.program-price {
	font-family: var(--font-display, inherit);
	font-size: 3.25rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--program-accent);
}
.program-next {
	background: var(--program-surface);
	border-top: 1px solid var(--program-border);
}
.program-tabs,
.program-faq {
	border-bottom: 1px solid var(--program-border);
}
.program-experience .program-tab {
	padding: 1rem 1.2rem;
	border-bottom: 3px solid transparent;
	color: var(--program-muted);
	white-space: normal;
}
.program-experience .program-tab.active {
	border-bottom-color: var(--program-accent);
	color: var(--program-accent);
	background: color-mix(
		in srgb,
		var(--program-accent) 6%,
		var(--program-card)
	);
}
.program-topic-panel {
	min-height: 420px;
}
.program-reading-width {
	max-width: 820px;
}
.program-comparison-line {
	height: 4px;
	background: var(--program-gradient);
}
.program-outline {
	color: var(--program-accent);
	border: 1px solid var(--program-border);
	border-radius: var(--bs-border-radius);
	padding: 0.5rem 1rem;
	background: var(--program-card);
	white-space: normal;
}
.program-career {
	padding: 1rem 0;
	border-bottom: 1px solid var(--program-border);
}
.program-salary-bar {
	appearance: none;
	width: 100%;
	height: 8px;
	display: block;
	border: 0;
	background: var(--program-soft);
	border-radius: var(--bs-border-radius-sm);
	overflow: hidden;
}
.program-salary-bar::-webkit-progress-bar {
	background: var(--program-soft);
}
.program-salary-bar::-webkit-progress-value {
	background: var(--program-gradient);
}
.program-salary-bar::-moz-progress-bar {
	background: var(--program-gradient);
}
.program-internship {
	display: flex;
	gap: 1rem;
	align-items: center;
	padding: 1.25rem;
	background: var(--program-soft);
	border-left: 3px solid var(--program-accent);
}
.program-experience .program-faq-trigger {
	justify-content: space-between;
	width: 100%;
	padding: 1.3rem 0.75rem;
	text-align: left;
	white-space: normal;
	color: var(--program-ink);
}
.program-chevron-open {
	transform: rotate(180deg);
}
.program-pending {
	max-width: 650px;
}
.program-experience [hidden] {
	display: none !important;
}
@media (max-width: 991.98px) {
	.program-feature-facts {
		border-left: 0;
		border-top: 1px solid var(--program-border);
		padding: 2rem 0 0;
	}
}
@media (max-width: 575.98px) {
	.program-experience .container-xxl {
		--bs-gutter-x: 1.5rem;
	}
	.program-banner h1 {
		font-size: 2.25rem;
		overflow-wrap: anywhere;
	}
	.program-path,
	.program-benefit {
		padding: 1.5rem;
	}
	.program-filters {
		width: 100%;
		border-radius: var(--bs-border-radius-lg);
	}
	.program-experience .program-filter {
		flex: 1;
		padding: 0.65rem 0.4rem;
		font-size: 0.75rem;
	}
	.program-experience .program-tab {
		flex: 1 0 45%;
		font-size: 0.8rem;
		padding: 0.8rem 0.5rem;
	}
	.program-path:not(.program-featured) h3,
	.program-path:not(.program-featured) p.text-muted-foreground {
		min-height: 0;
	}
	.program-price {
		font-size: 2.75rem;
	}
	.program-experience .row.g-5 {
		--bs-gutter-x: 1.5rem;
	}
}