/*
 * Programme listing, category and detail views.
 * Loaded only where virexa_is_programme_view() is true. Uses design tokens only.
 */

/* Listing ---------------------------------------------------------------- */

.vx-filter-nav {
	margin-bottom: var(--vx-space-8);
}

.vx-filter-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--vx-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.vx-filter-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: var(--vx-space-2) var(--vx-space-4);
	border: 1px solid var(--vx-color-border);
	border-radius: var(--vx-radius-pill);
	background: var(--vx-color-surface);
	color: var(--vx-color-text-muted);
	font-size: var(--vx-text-small);
	font-weight: var(--vx-weight-semibold);
	text-decoration: none;
	transition: background-color var(--vx-transition), border-color var(--vx-transition), color var(--vx-transition);
}

.vx-filter-nav__link:hover {
	border-color: var(--vx-color-accent-soft);
	color: var(--vx-color-primary);
}

.vx-filter-nav__link[aria-current="page"] {
	border-color: var(--vx-color-primary);
	background: var(--vx-color-primary);
	color: #ffffff;
}

.vx-programme-list {
	display: grid;
	gap: var(--vx-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.vx-programmes__help {
	margin-top: var(--vx-space-12);
}

/* Detail: header ----------------------------------------------------------- */

.vx-programme-hero {
	padding-block: clamp(2rem, 1.5rem + 2.5vw, 3.5rem);
	background:
		radial-gradient(60% 120% at 100% 0%, rgba(139, 92, 246, 0.14) 0%, rgba(139, 92, 246, 0) 70%),
		var(--vx-color-primary-lighter);
	border-bottom: 1px solid var(--vx-color-border);
}

.vx-programme-hero__inner {
	display: grid;
	gap: var(--vx-space-8);
	align-items: start;
}

@media (min-width: 1024px) {
	.vx-programme-hero__inner {
		grid-template-columns: minmax(0, 1fr) 22rem;
		gap: var(--vx-space-12);
	}
}

.vx-programme-hero__eyebrow {
	margin-bottom: var(--vx-space-2);
}

.vx-programme-hero__title {
	max-width: 22ch;
	margin-bottom: var(--vx-space-4);
}

.vx-programme-hero .vx-chip-list .vx-icon {
	width: 0.95rem;
	height: 0.95rem;
}

.vx-programme-hero__summary {
	max-width: 40rem;
	margin: var(--vx-space-5) 0 0;
	color: var(--vx-color-text-muted);
	font-size: var(--vx-text-lead);
}

/* Admissions box. */
.vx-programme-admissions {
	gap: var(--vx-space-4);
	height: auto;
	box-shadow: var(--vx-shadow-sm);
}

.vx-programme-admissions__title {
	margin: 0;
	font-size: var(--vx-text-h4);
}

.vx-programme-admissions .vx-status {
	margin: 0;
}

.vx-programme-admissions__meta {
	display: flex;
	align-items: center;
	gap: var(--vx-space-2);
	margin: 0;
	color: var(--vx-color-text-muted);
	font-size: var(--vx-text-small);
}

.vx-programme-admissions__meta .vx-icon {
	color: var(--vx-color-primary);
}

.vx-programme-admissions__price p {
	margin: 0;
}

.vx-programme-admissions__price-note {
	font-size: var(--vx-text-caption);
	font-weight: var(--vx-weight-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--vx-color-primary);
}

.vx-programme-admissions__amount {
	font-size: var(--vx-text-h3);
	font-weight: var(--vx-weight-extrabold);
	letter-spacing: -0.01em;
	color: var(--vx-color-text);
}

.vx-programme-admissions__alt-price {
	font-size: var(--vx-text-small);
	color: var(--vx-color-text-muted);
}

.vx-programme-admissions__note {
	margin: 0;
	color: var(--vx-color-text-muted);
	font-size: var(--vx-text-small);
}

/* Highlights band. */
.vx-programme-highlights {
	padding-block: var(--vx-space-5);
	border-bottom: 1px solid var(--vx-color-border);
}

.vx-programme-highlights__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--vx-space-3) var(--vx-space-8);
	margin: 0;
	padding: 0;
	list-style: none;
}

.vx-programme-highlights__list li {
	display: inline-flex;
	align-items: center;
	gap: var(--vx-space-2);
	font-size: var(--vx-text-small);
	font-weight: var(--vx-weight-semibold);
}

.vx-programme-highlights__list .vx-icon {
	color: var(--vx-color-primary);
}

/* In-page section navigation (sticks under the site header). */
.vx-programme-nav {
	position: sticky;
	top: calc(var(--vx-header-height) + var(--vx-admin-bar, 0px));
	z-index: calc(var(--vx-z-header) - 1);
	border-bottom: 1px solid var(--vx-color-border);
	background: var(--vx-color-surface);
}

.vx-programme-nav__list {
	display: flex;
	gap: var(--vx-space-6);
	margin: 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
	scrollbar-width: thin;
}

.vx-programme-nav__link {
	display: inline-block;
	padding: var(--vx-space-4) 0;
	border-bottom: 2px solid transparent;
	color: var(--vx-color-text-muted);
	font-size: var(--vx-text-small);
	font-weight: var(--vx-weight-semibold);
	white-space: nowrap;
	text-decoration: none;
}

.vx-programme-nav__link:hover {
	border-bottom-color: var(--vx-color-primary);
	color: var(--vx-color-primary);
}

/* Detail: body ------------------------------------------------------------- */

.vx-programme-body__inner {
	max-width: calc(52rem + 2 * var(--vx-gutter));
}

.vx-programme-section {
	/* Clear the sticky header and section nav when jumping to an anchor. */
	scroll-margin-top: calc(var(--vx-header-height) + var(--vx-admin-bar, 0px) + 4.5rem);
}

.vx-programme-section + .vx-programme-section {
	margin-top: var(--vx-space-12);
	padding-top: var(--vx-space-12);
	border-top: 1px solid var(--vx-color-border);
}

.vx-programme-section h3 {
	margin-top: var(--vx-space-6);
}

/* Prose inside the section column: no extra centring from .entry-content. */
.vx-programme-section__prose > * {
	max-width: none;
	margin-inline: 0;
}

.vx-programme-section__prose p {
	color: var(--vx-color-text-muted);
}

.vx-checklist--columns {
	margin-bottom: 0;
}

@media (min-width: 640px) {
	.vx-checklist--columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--vx-space-8);
	}
}

.vx-programme-section .vx-checklist li {
	align-items: flex-start;
	font-weight: var(--vx-weight-regular);
}

.vx-programme-section .vx-checklist .vx-icon {
	margin-top: 0.15em;
}

/* Project / career tiles. */
.vx-programme-tiles {
	display: grid;
	gap: var(--vx-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.vx-programme-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.vx-programme-tiles li {
	display: flex;
	align-items: center;
	gap: var(--vx-space-4);
	padding: var(--vx-space-4);
	border: 1px solid var(--vx-color-border);
	border-radius: var(--vx-radius-md);
	font-weight: var(--vx-weight-semibold);
}

/* Accordion (FAQ and curriculum), native <details>. */
.vx-accordion {
	display: grid;
	gap: var(--vx-space-3);
}

.vx-accordion__item {
	border: 1px solid var(--vx-color-border);
	border-radius: var(--vx-radius-md);
	background: var(--vx-color-surface);
}

.vx-accordion__summary {
	display: flex;
	align-items: center;
	gap: var(--vx-space-4);
	padding: var(--vx-space-4) var(--vx-space-5);
	font-weight: var(--vx-weight-semibold);
	list-style: none;
	cursor: pointer;
}

.vx-accordion__summary::-webkit-details-marker {
	display: none;
}

.vx-accordion__summary > .vx-icon {
	margin-left: auto;
	color: var(--vx-color-text-subtle);
	transition: transform var(--vx-transition);
}

.vx-accordion__item[open] > .vx-accordion__summary > .vx-icon {
	transform: rotate(180deg);
}

.vx-accordion__summary:focus-visible {
	border-radius: var(--vx-radius-md);
}

.vx-accordion__panel {
	padding: 0 var(--vx-space-5) var(--vx-space-5);
	color: var(--vx-color-text-muted);
}

.vx-accordion__panel > :last-child {
	margin-bottom: 0;
}

/* Curriculum. */
.vx-curriculum {
	display: grid;
	gap: var(--vx-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.vx-curriculum__heading {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.vx-curriculum__number {
	color: var(--vx-color-primary);
	font-size: var(--vx-text-caption);
	font-weight: var(--vx-weight-bold);
	letter-spacing: var(--vx-tracking-eyebrow);
	text-transform: uppercase;
}

.vx-curriculum__count {
	margin-left: auto;
	color: var(--vx-color-text-subtle);
	font-size: var(--vx-text-caption);
	font-weight: var(--vx-weight-medium);
	white-space: nowrap;
}

.vx-curriculum__count + .vx-icon {
	margin-left: 0;
}

.vx-curriculum__static {
	cursor: default;
}

.vx-curriculum__topics {
	display: grid;
	gap: var(--vx-space-2);
	margin: 0;
	padding-left: calc(var(--vx-space-5) + 1.25rem);
	list-style: disc;
}

.vx-programme-cta {
	padding-bottom: var(--vx-section-space);
}
