/**
 * Degree Options finder.
 * Uses the theme brand tokens defined in css/defaults.css
 * (--purple, --purple-alt, --gold, --offwhite, --raleway).
 *
 * Flat (un-nested) CSS for broad browser support. Everything is scoped to
 * .degree-finder, the wrapper that is always present whether or not the
 * shortcode renders its own section.
 */

.degree-finder .degree-intro {
	max-width: 46rem;
	margin-left: auto;
	margin-right: auto;
	opacity: 0.95;
}

/* --- Filters / dropdowns --------------------------------------------------- */

.degree-finder .degree-controls {
	margin-bottom: 2rem;
}

.degree-finder .degree-label {
	display: block;
	font-family: var(--raleway);
	font-weight: bold;
	font-size: 0.85rem;
	margin-bottom: 0.4rem;
}

.degree-finder .degree-select {
	width: 100%;
	font-family: var(--raleway);
	font-weight: bold;
	color: var(--purple);
	background-color: var(--offwhite);
	border: 0;
	border-radius: 4px;
	padding: 0.75rem 1rem;
	cursor: pointer;
}

.degree-finder .degree-select:focus {
	box-shadow: none;
	outline: 2px solid var(--gold);
	outline-offset: 2px;
}

.degree-finder .degree-select:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.degree-finder .degree-select option:disabled {
	color: #b7b0a0;
}

/* Reset button (tiles filters). Matches the adjacent selects: same
   font-size/line-height, and 1px shaved off the vertical padding to offset
   this button's border (the selects have none). */
.degree-finder .degree-reset {
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
	font-family: var(--raleway);
	font-weight: bold;
	font-size: 1rem;
	line-height: 1.5;
	padding: calc(0.75rem - 1px) 1.25rem;
	border-radius: 4px;
	cursor: pointer;
}

.degree-finder .degree-reset:hover,
.degree-finder .degree-reset:focus-visible {
	background: var(--gold);
	border-color: var(--gold);
	color: var(--purple);
	outline: none;
}

/* The reset column is shown/hidden via JS (the [hidden] attribute), so the
   dropdowns span the full width cleanly in the default (unfiltered) state. */
.degree-finder .degree-control-reset[hidden] {
	display: none;
}

/* --- Empty state (tiles filters) ------------------------------------------ */

.degree-finder .degree-empty {
	text-align: center;
	font-weight: bold;
	margin: 1.5rem 0;
}

.degree-finder .degree-empty-reset {
	background: none;
	border: 0;
	padding: 0;
	color: var(--gold);
	font-weight: bold;
	text-decoration: underline;
	cursor: pointer;
}

/* --- Navigation layout (dropdowns in a row -> go to program) -------------- */

/* Mobile-first: each control stacks full width (Bootstrap col-12). */
.degree-finder .degree-nav .degree-control {
	flex: 0 0 100%;
	max-width: 100%;
	min-width: 0;
	margin-bottom: 0;
}

/* Labels are redundant here (the placeholders say it all) — hide them
   visually but keep them for screen readers. */
.degree-finder .degree-nav .degree-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.degree-finder .degree-go.btn {
	width: 100%;
	font-size: 1.25rem;
	line-height: 1.4;
	padding: 0.65rem 1.75rem;
}

.degree-finder .degree-go:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* md and up: dropdowns share the row equally; button hugs its content. */
@media (min-width: 768px) {
	.degree-finder .degree-nav .degree-control {
		flex: 1 1 0;
		max-width: none;
	}

	.degree-finder .degree-nav .degree-control-go {
		flex: 0 0 auto;
	}

	.degree-finder .degree-go.btn {
		width: auto;
	}
}

/* --- List layout (grouped by program type, no filters) -------------------- */

.degree-finder .degree-list-group + .degree-list-group {
	margin-top: 2.5rem;
}

.degree-finder .degree-list-heading {
	font-family: var(--raleway);
	font-weight: bold;
	font-size: 1.5rem;
	margin: 0 0 1.25rem;
}

.degree-finder .degree-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.degree-finder .degree-list > li {
	margin: 0 0 0 2rem;
	padding: 0 0 0.875rem;
}

.degree-finder .degree-list > li::before {
	font-family: "Font Awesome 6 Pro";
	font-weight: 900;
	font-size: 0.35rem;
	content: "\f111";
	display: inline-block;
	margin: -2px 0 0 -32px;
	padding-right: 1.5rem;
	color: var(--gold);
	vertical-align: middle;
}

/* --- Tiles layout (cards) ------------------------------------------------- */

.degree-finder .degree-tile {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.25rem 1.5rem;
	background: var(--offwhite);
	border-left: 4px solid transparent;
	border-radius: 4px;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.degree-finder .degree-tile:hover,
.degree-finder .degree-tile:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 6px 18px rgba(36, 21, 59, 0.25);
	border-left-color: var(--gold);
}

.degree-finder .degree-tile:focus-visible {
	outline: 2px solid var(--gold);
	outline-offset: 2px;
}

.degree-finder .degree-tile-title {
	font-family: var(--raleway);
	font-weight: bold;
	color: var(--purple);
	line-height: 1.3;
}

.degree-finder .degree-tile-cred {
	margin-top: 0.4rem;
	font-size: 0.8rem;
	font-weight: bold;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--purple-alt);
}

/* --- Modality pills (reused from the program-page component) -------------- */

.degree-finder .modalities {
	list-style: none;
	margin: 0;
	padding: 0;
}

.degree-finder .modalities li {
	display: inline-flex;
	align-items: center;
	border-radius: 40px;
	font-size: 0.65rem;
	font-weight: 600;
	line-height: 1;
	margin: 0 0.3rem 0.35rem 0;
	padding: 0.25rem 0.55rem;
}

.degree-finder .modalities li::before {
	content: none; /* never inherit the list bullet */
}

.degree-finder .modalities .modality-icon {
	display: inline-flex;
	align-items: center;
	margin-right: 0.4rem;
	vertical-align: -0.15em;
}

.degree-finder .modalities .modality-icon svg {
	height: 1.05em;
	width: auto;
	display: block;
}

.degree-finder .modalities .modality-icon svg [fill],
.degree-finder .modalities .modality-icon svg path {
	fill: currentColor;
}

/* Muted chips — kept quiet since they repeat on every program. */

.degree-finder .degree-tile .modalities {
	margin-top: auto;
	padding-top: 0.85rem;
}

.degree-finder .degree-tile .modalities li {
	background: rgba(59, 35, 96, 0.08); /* --purple at low alpha */
	color: var(--purple-alt);
}

.degree-finder .degree-list .modalities {
	margin-top: 0.4rem;
}

.degree-finder .degree-list .modalities li {
	background: rgba(252, 244, 224, 0.14); /* --offwhite at low alpha */
	color: rgba(252, 244, 224, 0.85);
}
