/**
 * GetMyCourse components + directory layout. Every value comes from tokens.css.
 * See docs/DESIGN_DIRECTION.md.
 */

.gmc-container {
	max-width: var(--gmc-content-max);
	margin-inline: auto;
	padding-inline: var(--gmc-s-4);
}

.gmc-section {
	padding-block: var(--gmc-s-4);
}

/* Typography ---------------------------------------------------------------- */
.gmc-page h1,
.gmc-page h2,
.gmc-page h3,
.gmc-page h4 {
	font-family: var(--gmc-font-heading);
	line-height: var(--gmc-lh-heading);
	color: var(--gmc-navy);
	margin: 0 0 var(--gmc-s-1);
}

.gmc-page h1 { font-size: var(--gmc-fs-8); }
.gmc-page h2 { font-size: var(--gmc-fs-7); }
.gmc-page h3 { font-size: var(--gmc-fs-6); }

.gmc-page {
	font-family: var(--gmc-font-body);
	font-size: var(--gmc-fs-5);
	line-height: var(--gmc-lh-body);
	color: var(--gmc-n-900);
}

.gmc-page a { color: var(--gmc-blue); }

:where(.gmc-page) :focus-visible {
	outline: var(--gmc-focus-ring);
	outline-offset: var(--gmc-focus-offset);
}

/* Buttons --------------------------------------------------------------- */
/* Scoped under .gmc-page so `.gmc-page a` (link colour) never wins over these. */
.gmc-page .gmc-btn,
.gmc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--gmc-s-2);
	padding: var(--gmc-s-2) var(--gmc-s-4);
	border-radius: var(--gmc-r-input);
	border: 1px solid transparent;
	font: 500 var(--gmc-fs-5) / 1 var(--gmc-font-body);
	text-decoration: none;
	cursor: pointer;
}

.gmc-page .gmc-btn--primary,
.gmc-btn--primary { background: var(--gmc-blue); color: #fff; }
.gmc-btn--primary:hover { background: var(--gmc-blue-600); color: #fff; }
.gmc-page .gmc-btn--secondary,
.gmc-btn--secondary { background: transparent; color: var(--gmc-navy); border-color: var(--gmc-navy); }
.gmc-page .gmc-btn--ghost,
.gmc-btn--ghost { background: transparent; color: var(--gmc-blue); }
.gmc-page .gmc-btn--pill,
.gmc-btn--pill { border-radius: var(--gmc-r-pill); background: var(--gmc-n-100); color: var(--gmc-n-900); border-color: var(--gmc-n-200); }

/* Chips ------------------------------------------------------------------- */
.gmc-chip {
	display: inline-block;
	padding: 2px var(--gmc-s-2);
	border-radius: var(--gmc-r-pill);
	background: var(--gmc-blue-050);
	color: var(--gmc-navy);
	font-size: var(--gmc-fs-3);
}

/* Ratings ------------------------------------------------------------------- */
.gmc-rating { color: var(--gmc-gold); letter-spacing: 1px; }
.gmc-star { font-size: var(--gmc-fs-6); color: var(--gmc-n-300, #cbd3df); }
.gmc-star.is-on { color: var(--gmc-gold); }
.gmc-rating__text { color: var(--gmc-n-600, #55627a); font-size: var(--gmc-fs-3); letter-spacing: 0; margin-left: .25rem; }
.gmc-rating--empty { color: var(--gmc-n-400); font-size: var(--gmc-fs-3); letter-spacing: 0; }
.gmc-rating-link { text-decoration: none; }
.gmc-rating-link:hover .gmc-rating__text { text-decoration: underline; }

/* Reviews ----------------------------------------------------------------- */
.gmc-reviews__summary { margin-bottom: var(--gmc-s-4); font-size: var(--gmc-fs-5); }
.gmc-review-form { margin: var(--gmc-s-5) 0; padding: var(--gmc-s-5); background: var(--gmc-n-50); border-radius: var(--gmc-radius, 8px); }
.gmc-review-form__stars { border: 0; padding: 0; margin: 0 0 var(--gmc-s-3); }
.gmc-review-form__stars legend { font-weight: 600; margin-bottom: .25rem; }
/* CSS-only star picker: inputs sit in 5→1 DOM order, row-reverse paints them 1→5. */
.gmc-star-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .15rem; }
.gmc-star-input input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.gmc-star-input label { cursor: pointer; line-height: 1; }
.gmc-star-input .gmc-star { font-size: var(--gmc-fs-8, 1.75rem); color: var(--gmc-n-300, #cbd3df); transition: color .12s; }
.gmc-star-input input:checked ~ label .gmc-star { color: var(--gmc-gold); }
.gmc-star-input:hover .gmc-star { color: var(--gmc-n-300, #cbd3df); }
.gmc-star-input label:hover .gmc-star,
.gmc-star-input label:hover ~ label .gmc-star { color: var(--gmc-gold); }
.gmc-star-input input:focus-visible + label .gmc-star { outline: 2px solid var(--gmc-blue); outline-offset: 2px; }
.gmc-reviews__list { list-style: none; margin: var(--gmc-s-5) 0 0; padding: 0; display: grid; gap: var(--gmc-s-4); }
.gmc-review { padding-bottom: var(--gmc-s-4); border-bottom: 1px solid var(--gmc-n-200); }
.gmc-review__head { display: flex; align-items: baseline; gap: var(--gmc-s-3); flex-wrap: wrap; }
.gmc-review__author { font-weight: 600; }
.gmc-review__head time { color: var(--gmc-n-400); font-size: var(--gmc-fs-2); }
.gmc-review__title { margin: .35rem 0 .15rem; font-size: var(--gmc-fs-4); }
.gmc-review__body { color: var(--gmc-n-600, #55627a); }

/* Cards ----------------------------------------------------------------- */
.gmc-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--gmc-s-5);
}

/* Directory results: cap card width so a lone result doesn't stretch huge. */
.gmc-results .gmc-cards {
	grid-template-columns: repeat(auto-fill, minmax(258px, 300px));
	justify-content: start;
}

/* Stacked full-width rows (programme lists, directory list view). */
.gmc-rows { display: flex; flex-direction: column; gap: var(--gmc-s-4); }

/* College list row --------------------------------------------------------- */
.gmc-rows .gmc-row-college {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	gap: var(--gmc-s-4);
	align-items: start;
	padding: var(--gmc-s-4) var(--gmc-s-5);
}
.gmc-row-college__logo { display: flex; }
.gmc-row-college .gmc-card__logo,
.gmc-row-college__logo > span {
	width: 64px;
	height: 64px;
	border: var(--gmc-border);
	border-radius: var(--gmc-r-input);
	object-fit: contain;
	background: #fff;
}
.gmc-card__logo--blank { background: var(--gmc-n-100); }

.gmc-row-college__main { display: flex; flex-direction: column; gap: var(--gmc-s-1); min-width: 0; }
.gmc-row-college .gmc-card__title { font-size: var(--gmc-fs-5); margin-bottom: 0;}
.gmc-row-college .gmc-card__title a { color: var(--gmc-blue); }

.gmc-row-college__line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gmc-s-3); margin: 0; }
.gmc-row-college__place { color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }

.gmc-row-college__stats { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2) var(--gmc-s-5); margin: 0; font-size: var(--gmc-fs-2); color: var(--gmc-n-600); }
.gmc-row-college__stats strong { color: var(--gmc-navy); font-weight: 600; }

.gmc-row-college__chips { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); margin: 0; }

.gmc-row-college__links { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2) var(--gmc-s-4); margin: var(--gmc-s-1) 0 0; font-size: var(--gmc-fs-3); }
.gmc-row-college__links a { position: relative; text-decoration: none; }
.gmc-row-college__links a:not(:last-child)::after { content: "\00B7"; position: absolute; right: calc(var(--gmc-s-2) * -1 - 1px); color: var(--gmc-n-400); }

.gmc-row-college__actions { display: flex; flex-direction: column; gap: var(--gmc-s-2); align-items: stretch; min-width: 160px; }

/* Course list row -------------------------------------------------------- */
.gmc-rows .gmc-row-course {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--gmc-s-4);
	align-items: center;
	padding: var(--gmc-s-4) var(--gmc-s-5);
}
.gmc-row-course__main { display: flex; flex-direction: column; gap: var(--gmc-s-2); min-width: 0; }
.gmc-row-course .gmc-card__title { font-size: var(--gmc-fs-5); margin: 0; }
.gmc-row-course .gmc-card__title a { color: var(--gmc-blue); }
.gmc-row-course__chips { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); margin: 0; }
.gmc-row-course__meta,
.gmc-row-course__offer { margin: 0; color: var(--gmc-n-600); font-size: var(--gmc-fs-3); }
.gmc-row-course__actions {     display: flex; flex-direction: column; gap: var(--gmc-s-2); align-items: stretch; min-width: 160px; }
.gmc-row-course__actions .gmc-btn { width: 100%; }

@media (max-width: 720px) {
	.gmc-rows .gmc-row-college { grid-template-columns: 56px minmax(0, 1fr); }
	.gmc-row-college__actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; min-width: 0; }
	.gmc-rows .gmc-row-course { grid-template-columns: 1fr; }
	.gmc-row-course__actions { min-width: 0; }
}

.gmc-card {
	display: flex;
	flex-direction: column;
	background: var(--gmc-n-0);
	border: var(--gmc-border);
	border-radius: var(--gmc-r-card);
	box-shadow: var(--gmc-shadow-card);
	overflow: hidden;
}

.gmc-card:hover { box-shadow: var(--gmc-shadow-card-hover); }
.gmc-card__media { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; background: var(--gmc-n-100); }
/* No image supplied — a slim brand strip instead of a big grey void. */
.gmc-card__media:empty { aspect-ratio: auto; height: 150px; background: linear-gradient(90deg, var(--gmc-navy), var(--gmc-blue)); }
.gmc-card__body { padding: var(--gmc-s-4); display: flex; flex-direction: column; gap: var(--gmc-s-2); height: 100%; max-height: 220px; justify-content: space-between;}
.gmc-card__title { font: 600 var(--gmc-fs-4) / 1.3 var(--gmc-font-heading); margin: 0; }
.gmc-card__title a { color: var(--gmc-navy); text-decoration: none; }
.gmc-card__meta { color: var(--gmc-n-600) !important; font-size: var(--gmc-fs-4); }
.gmc-card__actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); }

.gmc-card__logo { border-radius: var(--gmc-r-input); object-fit: contain; }

.gmc-card--programme {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: var(--gmc-s-4);
	padding: var(--gmc-s-4);
}
.gmc-card--programme .gmc-card__body { padding: 0; }
.gmc-card__aside { display: flex; align-items: center; gap: var(--gmc-s-3); flex-shrink: 0; }
.gmc-card__fee { font: 600 var(--gmc-fs-4) / 1 var(--gmc-font-heading); color: var(--gmc-navy); }
.gmc-card__fee--na { font-weight: 400; font-size: var(--gmc-fs-2); color: var(--gmc-n-600); }

/* Programme row on a course page — carries the college's logo / rating / place. */
.gmc-rows .gmc-row-programme {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	gap: var(--gmc-s-4);
	align-items: center;
	padding: var(--gmc-s-4) var(--gmc-s-5);
}
.gmc-row-programme__logo { display: flex; }
.gmc-row-programme .gmc-card__logo,
.gmc-row-programme__logo > span {
	width: 56px;
	height: 56px;
	border: var(--gmc-border);
	border-radius: var(--gmc-r-input);
	object-fit: contain;
	background: #fff;
}
.gmc-row-programme__main { display: flex; flex-direction: column; gap: var(--gmc-s-1); min-width: 0; }
.gmc-row-programme .gmc-card__title { font-size: var(--gmc-fs-5); margin: 0; }
.gmc-row-programme .gmc-card__title a { color: var(--gmc-blue); }
.gmc-row-programme__line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gmc-s-3); margin: 0; }
.gmc-row-programme__place { color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }
.gmc-row-programme .gmc-card__meta { margin: 0; }
.gmc-row-programme__aside { display: flex; flex-direction: column; align-items: flex-end; gap: var(--gmc-s-2); flex-shrink: 0; }

@media (max-width: 720px) {
	.gmc-rows .gmc-row-programme { grid-template-columns: 48px minmax(0, 1fr); }
	.gmc-row-programme__aside { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
}

/* Notices -------------------------------------------------------------- */
.gmc-notice {
	padding: var(--gmc-s-3) var(--gmc-s-4);
	border-radius: var(--gmc-r-input);
	border-left: 4px solid var(--gmc-info);
	background: var(--gmc-n-50);
	font-size: var(--gmc-fs-5);
}
.gmc-notice--success { border-color: var(--gmc-success); }
.gmc-notice--warn { border-color: var(--gmc-warn); }
.gmc-notice--error { border-color: var(--gmc-error); }

/* Breadcrumbs -------------------------------------------------------------- */
.gmc-breadcrumbs ol {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gmc-s-4);
	margin: 0;
	font-size: var(--gmc-fs-4);
	color: var(--gmc-n-600);
}
.gmc-breadcrumbs li + li::before { content: "\203A"; margin-right: var(--gmc-s-2); color: var(--gmc-n-400); }

/* Directory layout ---------------------------------------------------------- */
.gmc-directory {
	display: grid;
	grid-template-columns: var(--gmc-facet-rail) minmax(0, 1fr);
	gap: var(--gmc-s-4);
	align-items: start;
}

.gmc-rail {
	position: sticky;
	top: var(--gmc-s-5);
	display: flex;
	flex-direction: column;
	border: var(--gmc-border);
	border-radius: var(--gmc-r-card);
	background: var(--gmc-n-0);
	max-height: calc(100vh - var(--gmc-s-7));
	overflow-y: auto;
}

.gmc-rail details {
	border-bottom: var(--gmc-border);
	padding: var(--gmc-s-3) var(--gmc-s-4);
}
.gmc-rail details:last-child { border-bottom: 0; }
.gmc-rail details[open] { padding-bottom: var(--gmc-s-4); }

.gmc-rail summary {
	font: 600 var(--gmc-fs-5) / 1.2 var(--gmc-font-heading);
	cursor: pointer;
	color: var(--gmc-navy);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.gmc-rail summary::-webkit-details-marker { display: none; }
.gmc-rail summary::after {
	content: "";
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	background: center / contain no-repeat
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23647082' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	transition: transform .15s;
}
.gmc-rail details[open] summary::after { transform: rotate(180deg); }

/* FacetWP's default 40px facet gap is far too much inside a compact rail. */
.gmc-rail .facetwp-facet { margin: var(--gmc-s-2) 0 0; }

/* Custom checkbox: empty square by default, filled blue + white tick when checked.
   Overrides FacetWP's faint PNG. */
.gmc-rail .facetwp-checkbox,
.gmc-rail .facetwp-checkbox.checked {
	position: relative;
	margin-bottom: var(--gmc-s-1);
	padding: 2px 0 2px 26px;
	line-height: 1.4;
	font-size: var(--gmc-fs-4);
	color: var(--gmc-n-900);
	background-image: none;
	background-color: transparent;
	cursor: pointer;
}
.gmc-rail .facetwp-checkbox::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 16px;
	height: 16px;
	border: 1.5px solid var(--gmc-n-400);
	border-radius: 4px;
	background: #fff;
	box-sizing: border-box;
}
.gmc-rail .facetwp-checkbox.checked::before { background: var(--gmc-blue); border-color: var(--gmc-blue); }
.gmc-rail .facetwp-checkbox.checked::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 4px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.gmc-rail .facetwp-checkbox.checked { font-weight: 600; color: var(--gmc-navy); }
.gmc-rail .facetwp-checkbox.disabled { opacity: 0.45; cursor: default; }
.gmc-rail .facetwp-counter { color: var(--gmc-n-600); font-weight: 400; }

/* "N more" toggle FacetWP adds past the count limit. */
.gmc-rail .facetwp-toggle { display: inline-block; margin-top: var(--gmc-s-1); color: var(--gmc-blue); font-size: var(--gmc-fs-2); cursor: pointer; }
.gmc-rail .facetwp-search { width: 100%; padding: var(--gmc-s-2); margin-bottom: var(--gmc-s-2); border: var(--gmc-border); border-radius: var(--gmc-r-input); }

/* Fee number_range: two inputs stacked over a full-width Go button. FacetWP
   hydrates this via JS, so it needs styling for its own classes. */
.gmc-rail .facetwp-type-number_range { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gmc-s-2); }
.gmc-rail .facetwp-type-number_range .facetwp-number {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	padding: var(--gmc-s-2);
	border: var(--gmc-border);
	border-radius: var(--gmc-r-input);
	font-size: var(--gmc-fs-2);
	background: #fff;
}
.gmc-rail .facetwp-type-number_range .facetwp-submit {
	box-sizing: border-box;
	grid-column: 1 / -1;
	padding: var(--gmc-s-2);
	border: 0;
	border-radius: var(--gmc-r-input);
	background: var(--gmc-blue);
	color: #fff;
	font: 600 var(--gmc-fs-2) / 1 var(--gmc-font-heading);
	cursor: pointer;
}
.gmc-rail .facetwp-type-number_range .facetwp-submit:hover { background: var(--gmc-navy); }

/* Hide a whole group when FacetWP reports it has no options. */
.gmc-rail details:has(.facetwp-hidden) { display: none; }

.gmc-rail__clear { padding: var(--gmc-s-3) var(--gmc-s-4); border-bottom: var(--gmc-border); }
.gmc-rail__clear:not(:has(.facetwp-selections li)) { display: none; }
.gmc-rail__clear-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--gmc-s-2); }
.gmc-rail__clear-head span { font: 600 var(--gmc-fs-6) / 1 var(--gmc-font-heading); color: var(--gmc-navy); }
.gmc-rail__clear-head a { font-size: var(--gmc-fs-4); }
.gmc-rail .facetwp-selections { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); }
.gmc-rail .facetwp-selections li { font-size: var(--gmc-fs-3); line-height: 1.9; }
.gmc-rail .facetwp-selections a { display: inline-block; padding: 2px var(--gmc-s-2); background: var(--gmc-blue-050); border-radius: var(--gmc-r-pill); color: var(--gmc-navy); text-decoration: none; }

.gmc-results__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--gmc-s-3);
	margin-bottom: var(--gmc-s-5);
}
.gmc-results__tools { display: flex; align-items: center; gap: var(--gmc-s-3); }
.gmc-results__count { color: var(--gmc-n-600); font-size: var(--gmc-fs-4); }
.gmc-results__count .facetwp-counts { display: inline; }
.gmc-results__tools select { padding: var(--gmc-s-1) var(--gmc-s-3); border: var(--gmc-border); border-radius: var(--gmc-r-input); background: var(--gmc-n-0); }
.gmc-results__tools .facetwp-facet { margin: 0; }

.gmc-empty {
	padding: var(--gmc-s-7);
	text-align: center;
	border: 1px dashed var(--gmc-n-200);
	border-radius: var(--gmc-r-card);
}

/* Detail tab-nav ---------------------------------------------------------- */
.gmc-tabnav {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	gap: var(--gmc-s-6);
	overflow-x: auto;
	background: var(--gmc-n-0);
	border-bottom: var(--gmc-border);
	padding: var(--gmc-s-3) 0;
}
.gmc-tabnav a {
	white-space: nowrap;
	text-decoration: none;
	color: var(--gmc-n-600);
	font-size: var(--gmc-fs-6);
	padding-bottom: var(--gmc-s-1);
}
.gmc-tabnav a.is-active { color: var(--gmc-navy); border-bottom: 2px solid var(--gmc-blue); }

.gmc-detail__section { padding-block: var(--gmc-s-5); border-top: var(--gmc-border); scroll-margin-top: 64px; padding-bottom: 40px;}
.gmc-detail__section:first-of-type { border-top: 0; }

/* College detail --------------------------------------------------------- */
.gmc-college-hero h1{
	margin-bottom: 0;
}
.gmc-college-hero__banner { width: 100%; max-height: 320px; object-fit: cover; display: block; }
.gmc-college-hero__bar { display: flex; gap: var(--gmc-s-4); align-items: flex-start; padding-block: var(--gmc-s-4); }
.gmc-college-hero__logo { border-radius: var(--gmc-r-input); border: var(--gmc-border); background: #fff; flex-shrink: 0; }
.gmc-college-hero__place { color: var(--gmc-n-600); margin: 0 0 var(--gmc-s-2); }
.gmc-college-hero__badges { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); margin: 0 0 var(--gmc-s-2); }
.gmc-college-hero__actions { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); margin-top: var(--gmc-s-3); margin-bottom: 0;}

.gmc-college-body { display: grid; grid-template-columns: 1fr 320px; gap: var(--gmc-s-6); align-items: start; }
.gmc-college-aside { position: sticky; top: var(--gmc-s-5); display: flex; flex-direction: column; gap: var(--gmc-s-5); padding-top: 50px;}

/* Sidebar: "Students Also Visited" ---------------------------------- */
.gmc-aside-related { padding: 0; overflow: hidden; }
.gmc-page .gmc-aside-related__title {
	margin: 0;
	padding: var(--gmc-s-3) var(--gmc-s-4);
	background: var(--gmc-navy);
	color: #fff;
	font-size: var(--gmc-fs-5);
}
.gmc-aside-related__list { list-style: none; margin: 0; padding: 0 var(--gmc-s-4); }
.gmc-aside-related__item { border-top: var(--gmc-border); }
.gmc-aside-related__item:first-child { border-top: 0; }
.gmc-aside-related__item a { display: flex; align-items: center; gap: var(--gmc-s-3); padding: var(--gmc-s-3) 0; text-decoration: none; color: var(--gmc-n-900); }
.gmc-aside-related__logo {
	flex-shrink: 0; width: 48px; height: 48px;
	border: var(--gmc-border); border-radius: var(--gmc-r-input);
	background: var(--gmc-n-100); overflow: hidden;
	display: grid; place-items: center;
}
.gmc-aside-related__logo img { width: 100%; height: 100%; object-fit: cover; }
.gmc-aside-related__name { font-size: var(--gmc-fs-4); font-weight: 600; line-height: 1.3; }
.gmc-aside-related__item a:hover .gmc-aside-related__name { color: var(--gmc-blue); }

/* Sidebar: admin-managed banner ads -------------------------------- */
.gmc-aside-ads { display: flex; flex-direction: column; gap: var(--gmc-s-4); }
.gmc-aside-ads__item { display: block; }
.gmc-aside-ads__img { display: block; width: 100%; height: auto; border-radius: var(--gmc-r-card); }

.gmc-facilities { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--gmc-s-2); list-style: none; padding: 0; margin: 0 0 var(--gmc-s-5); }
.gmc-facility {
	display: flex; align-items: center; gap: var(--gmc-s-2);
	padding: var(--gmc-s-2) var(--gmc-s-3);
	border: var(--gmc-border); border-radius: var(--gmc-r-card);
	background: var(--gmc-n-0); font-size: var(--gmc-fs-5); color: var(--gmc-n-900);
}
.gmc-facility::before {
	content: "\2713"; flex-shrink: 0;
	display: grid; place-items: center; width: 20px; height: 20px;
	border-radius: var(--gmc-r-pill);
	background: var(--gmc-blue-050); color: var(--gmc-success);
	font-size: var(--gmc-fs-1); font-weight: 700;
}

/* Stat tiles (placements) ------------------------------------------- */
.gmc-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--gmc-s-3); margin: var(--gmc-s-2) 0 var(--gmc-s-5); }
.gmc-stat {
	padding: var(--gmc-s-4);
	border: var(--gmc-border); border-radius: var(--gmc-r-card);
	background: var(--gmc-blue-050);
	display: flex; flex-direction: column; gap: var(--gmc-s-1);
}
.gmc-stat__label { font-size: var(--gmc-fs-4); color: var(--gmc-n-600); }
.gmc-stat__value { font: 700 var(--gmc-fs-7) / 1.1 var(--gmc-font-heading); color: var(--gmc-navy); }
.gmc-chip--lg { padding: var(--gmc-s-1) var(--gmc-s-3); font-size: var(--gmc-fs-5); }

/* Chip list (course exams) --------------------------------------------- */
.gmc-chips { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); list-style: none; padding: 0; margin: 0; }
.gmc-note { color: var(--gmc-n-600); font-size: var(--gmc-fs-4); margin-top: var(--gmc-s-2); }

/* FAQ accordion --------------------------------------------------- */
.gmc-faq { display: flex; flex-direction: column; gap: var(--gmc-s-2); }
.gmc-faq__item { border: var(--gmc-border); border-radius: var(--gmc-r-card); background: var(--gmc-n-0); }
.gmc-faq__q {
	cursor: pointer; list-style: none;
	padding: var(--gmc-s-3) var(--gmc-s-4);
	font: 600 var(--gmc-fs-4) / 1.4 var(--gmc-font-body); color: var(--gmc-navy);
	display: flex; justify-content: space-between; gap: var(--gmc-s-3); align-items: center;
}
.gmc-faq__q::-webkit-details-marker { display: none; }
.gmc-faq__q::after { content: "\203A"; transform: rotate(90deg); transition: transform .15s; font-size: var(--gmc-fs-5); }
.gmc-faq__item[open] .gmc-faq__q::after { transform: rotate(-90deg); }
.gmc-faq__a { padding: 0 var(--gmc-s-4) var(--gmc-s-3); color: var(--gmc-n-900); }

.gmc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--gmc-s-2); }
.gmc-gallery img { border-radius: var(--gmc-r-input); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; display: block; }
.gmc-gallery__item { display: block; position: relative; overflow: hidden; border-radius: var(--gmc-r-input); cursor: zoom-in; }
.gmc-gallery__item img { transition: transform .2s; }
.gmc-gallery__item:hover img { transform: scale(1.04); }

/* Lightbox — native <dialog>, built by gmc.js. */
.gmc-lightbox { max-width: 92vw; max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.gmc-lightbox::backdrop { background: rgba(15, 23, 42, 0.88); }
.gmc-lightbox img { max-width: 92vw; max-height: 82vh; display: block; margin: 0 auto; border-radius: var(--gmc-r-input); background: var(--gmc-n-900); }
.gmc-lightbox__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: var(--gmc-navy);
	cursor: pointer;
}
.gmc-lightbox__btn:hover { background: #fff; }
.gmc-lightbox__prev { left: -22px; }
.gmc-lightbox__next { right: -22px; }
.gmc-lightbox__close, .gmc-lightbox__close:hover { position: absolute; top: 10px; right: 0px; width: 20px; height: 20px; color: #fff; background: red; }
.gmc-lightbox__count { position: absolute; bottom: -28px; left: 0; right: 0; text-align: center; color: #fff; font-size: var(--gmc-fs-2); }
@media (max-width: 640px) {
	.gmc-lightbox__prev { left: 4px; }
	.gmc-lightbox__next { right: 4px; }
	.gmc-lightbox__close { top: 4px; right: 4px; }
}

/* Enquiry modal — native <dialog>, built by gmc.js, which adopts the inline
 * #gmc-enquiry form. No padding on the dialog itself: a backdrop click is any
 * click that lands on the dialog element, so the panel padding lives on the
 * section inside. overflow-x is hidden because the honeypot sits at -9999px. */
.gmc-modal {
	width: min(500px, 92vw);
	max-height: 88vh;
	max-height: 88dvh;
	padding: 0;
	border: 0;
	border-radius: var(--gmc-r-card);
	box-shadow: var(--gmc-shadow-card-hover);
	overflow: hidden auto;
}
.gmc-modal[open] { display: block; }
.gmc-modal::backdrop { background: rgba(15, 23, 42, 0.72); }
.gmc-brochure-dl .gmc-icon { pointer-events: none; }
.gmc-modal .gmc-enquiry { padding: var(--gmc-s-5); border-top: 0; }
.gmc-modal .gmc-enquiry__title {
	font-family: var(--gmc-font-heading);
	color: var(--gmc-navy);
	margin: 0 0 var(--gmc-s-3);
}
.gmc-modal .gmc-enquiry a { color: var(--gmc-blue); }
.gmc-modal__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	padding: 0;
	border: var(--gmc-border);
	border-radius: 50%;
	background: var(--gmc-n-0);
	color: var(--gmc-n-600);
	font-size: var(--gmc-fs-5);
	line-height: 1;
	cursor: pointer;
}
.gmc-modal__close:hover { color: var(--gmc-navy); border-color: var(--gmc-n-400); }

.gmc-auth { position: relative; }
.gmc-auth__panel { padding: var(--gmc-s-5); padding-top: calc(var(--gmc-s-5) + 12px); }
.gmc-auth__title {
	font-family: var(--gmc-font-heading);
	color: var(--gmc-navy);
	margin: 0 0 var(--gmc-s-3);
	font-size: var(--gmc-fs-7);
}
.gmc-auth__tabs {
	display: flex;
	gap: var(--gmc-s-2);
	margin-bottom: var(--gmc-s-4);
	border-bottom: var(--gmc-border);
}
.gmc-auth__tab {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	padding: var(--gmc-s-2) var(--gmc-s-3);
	color: var(--gmc-n-600);
	cursor: pointer;
	font: inherit;
}
.gmc-auth__tab.is-active {
	color: var(--gmc-navy);
	border-bottom-color: var(--gmc-blue);
	font-weight: 600;
}
.gmc-auth__pane.gmc-form,
.gmc-auth #gmc-auth-login { margin: 0; }
.gmc-auth #gmc-auth-login p { margin: 0 0 var(--gmc-s-3); }
.gmc-auth #gmc-auth-login input[type="text"],
.gmc-auth #gmc-auth-login input[type="password"] {
	width: 100%;
}

/* Password show/hide toggle */
.gmc-pw { position: relative; display: block; }
.gmc-pw > input { width: 100%; padding-right: 2.75rem; }
.gmc-pw__toggle {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: 2.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--gmc-n-500);
}
.gmc-pw__toggle:hover { color: var(--gmc-navy); }
.gmc-pw__toggle:focus-visible { outline: var(--gmc-focus-ring); outline-offset: -2px; }

.gmc-facts { display: grid; grid-template-columns: auto 1fr; gap: var(--gmc-s-1) var(--gmc-s-3); margin: 0; font-size: var(--gmc-fs-5); }
.gmc-facts dt { color: var(--gmc-n-600); }
.gmc-facts dd { margin: 0; }
.gmc-recruiters { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); align-items: center; list-style: none; padding: 0; margin: 0; }
.gmc-recruiter { display: inline-flex; }
.gmc-recruiter__logo { width: auto; height: 40px; object-fit: contain; }

@media (max-width: 1024px) {
	.gmc-college-body { grid-template-columns: 1fr; }
	.gmc-college-aside { position: static; }
}

/* Site header + stream mega-menu ---------------------------------------- */
.gmc-btn--sm { padding: 6px var(--gmc-s-3); font-size: var(--gmc-fs-1); }

.gmc-topbar { background: var(--gmc-navy-900); color: #fff; font-size: var(--gmc-fs-5); }
.gmc-topbar__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--gmc-s-3); min-height: 30px; }
.gmc-topbar a { color: #fff; text-decoration: none; }
.gmc-topbar__contact { display: flex; flex-wrap: wrap; gap: var(--gmc-s-5); }
.gmc-topbar__contact a { display: inline-flex; align-items: center; gap: 6px; }
.gmc-topbar__contact .gmc-icon { opacity: .85; }
.gmc-topbar__social { display: flex; align-items: center; gap: var(--gmc-s-3); }
.gmc-topbar__social a { display: inline-flex; opacity: .8; }
.gmc-topbar__social a:hover { opacity: 1; }

.gmc-header { background: #fff; border-bottom: var(--gmc-border); position: relative; z-index: 20; }
.gmc-header__inner { display: flex; align-items: center; gap: var(--gmc-s-5); min-height: 72px; }
.gmc-header__logo { flex-shrink: 0; display: flex; }
.gmc-header__logo img { height: 40px; width: auto; object-fit: contain; }
.gmc-header__compare { flex-shrink: 0; margin-left: auto; border-radius: var(--gmc-r-pill); }
.gmc-header__account { display: flex; align-items: center; gap: var(--gmc-s-4); flex-shrink: 0; }
.gmc-header__account-link { font: 500 var(--gmc-fs-5) / 1 var(--gmc-font-heading); color: var(--gmc-navy); text-decoration: none; white-space: nowrap; }
.gmc-header__account-link:hover { color: var(--gmc-blue); }
.gmc-header__toggle { display: none; margin-left: auto; padding: var(--gmc-s-2); background: none; border: 0; line-height: 0; color: var(--gmc-navy); cursor: pointer; }

.gmc-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--gmc-s-1); }
.gmc-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: var(--gmc-s-3) var(--gmc-s-3);
	font: 500 var(--gmc-fs-5) / 1 var(--gmc-font-heading);
	color: var(--gmc-navy);
	text-decoration: none;
	white-space: nowrap;
	min-height: 70px;
}
.gmc-nav__item--mega > .gmc-nav__link[aria-expanded="true"],
.gmc-nav__link:hover { color: var(--gmc-blue); }
.gmc-nav__caret { display: inline-flex; color: var(--gmc-n-400); transition: transform .15s; }
.gmc-nav__item--mega > .gmc-nav__link[aria-expanded="true"] .gmc-nav__caret { transform: rotate(180deg); color: var(--gmc-blue); }

.gmc-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }

.gmc-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: #fff;
	border-top: 1px solid var(--gmc-n-200);
	box-shadow: var(--gmc-shadow-card-hover);
}
.gmc-mega__grid {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	min-height: 380px;
}

/* Left: stream switcher */
.gmc-mega__streams { list-style: none; margin: 0; padding: var(--gmc-s-3) 0; background: var(--gmc-blue-050); }
.gmc-mega__stream {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--gmc-s-2);
	width: 100%;
	padding: var(--gmc-s-2) var(--gmc-s-4);
	border: 0;
	background: transparent;
	font: 500 var(--gmc-fs-3) / 1.3 var(--gmc-font-body);
	color: var(--gmc-navy);
	text-align: left;
	cursor: pointer;
}
.gmc-mega__stream .gmc-icon { color: var(--gmc-n-400); margin-left: auto; }
.gmc-mega__stream:hover { color: var(--gmc-blue); }
.gmc-mega__stream:hover .gmc-icon,
.gmc-mega__stream.is-active .gmc-icon { color: var(--gmc-blue); }
.gmc-mega__stream.is-active { background: #fff; color: var(--gmc-blue); font-weight: 600; box-shadow: inset 3px 0 0 var(--gmc-blue); }

/* Right: per-stream 3-column panel */
.gmc-mega__panels { padding: var(--gmc-s-5) var(--gmc-s-6); }
.gmc-mega__panel { display: none; grid-template-columns: repeat(3, 1fr); gap: var(--gmc-s-6); }
.gmc-mega__panel.is-active { display: grid; }
.gmc-mega__col h3 { margin: 0 0 var(--gmc-s-2); font-size: var(--gmc-fs-3); color: var(--gmc-navy); }
.gmc-mega__col h3 + ul { margin-bottom: var(--gmc-s-2); }
.gmc-mega__col h3:not(:first-child) { margin-top: var(--gmc-s-5); }
.gmc-mega__col ul { list-style: none; margin: 0; padding: 0; }
.gmc-mega__col li { margin-bottom: var(--gmc-s-1); }
.gmc-mega__col a { color: var(--gmc-n-600); text-decoration: none; font-size: var(--gmc-fs-4); }
.gmc-mega__col a:hover { color: var(--gmc-blue); }
.gmc-mega__viewall { display: inline-block; font-weight: 600; color: var(--gmc-blue) !important; font-size: var(--gmc-fs-2); }
.gmc-mega__empty { color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }

@media (max-width: 1080px) {
	.gmc-header__toggle { display: block; margin-left: var(--gmc-s-3); }
	.gmc-header__compare { display: none; }
	.gmc-header__account { margin-left: auto; gap: var(--gmc-s-3); }
	/* ponytail: mobile nav mode — drop the "Sign in" text link, keep the Sign up button */
	.gmc-header__account [data-gmc-auth="login"] { display: none; }
	.gmc-nav {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		background: #fff;
		border-bottom: var(--gmc-border);
		max-height: 80vh;
		overflow-y: auto;
	}
	.gmc-nav.is-open { display: block; }
	.gmc-nav__list { flex-direction: column; gap: 0; padding: var(--gmc-s-3); }
	.gmc-nav__link { padding: var(--gmc-s-3) 0; width: 100%; }
	.gmc-mega { position: static; box-shadow: none; }
	.gmc-mega__grid { grid-template-columns: 1fr; min-height: 0; }
	.gmc-mega__streams { display: flex; flex-wrap: wrap; gap: var(--gmc-s-1); padding: var(--gmc-s-2); }
	.gmc-mega__stream { width: auto; border-radius: var(--gmc-r-pill); padding: var(--gmc-s-1) var(--gmc-s-3); }
	.gmc-mega__stream .gmc-icon { display: none; }
	.gmc-mega__panels { padding: var(--gmc-s-3); }
	.gmc-mega__panel.is-active { grid-template-columns: 1fr; gap: var(--gmc-s-4); }
}

/* Homepage hero ([gmc_hero], see UI/homepage.png) ------------------------- */
.gmc-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: var(--gmc-s-9) var(--gmc-s-4) calc(var(--gmc-s-9) + var(--gmc-s-8));
	background: var(--gmc-navy-900);
	color: #fff;
	overflow: hidden;
}
.gmc-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gmc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 42, 82, 0.55) 0%, rgba(10, 42, 82, 0.82) 100%);
}
.gmc-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 900px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.gmc-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: var(--gmc-s-2);
	padding: var(--gmc-s-2) var(--gmc-s-4);
	border-radius: var(--gmc-r-pill);
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.22);
	font: 600 var(--gmc-fs-2) / 1 var(--gmc-font-body);
	margin-bottom: var(--gmc-s-5);
}
.gmc-hero__badge::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gmc-success);
	box-shadow: 0 0 0 3px rgba(30, 135, 75, 0.35);
}

.gmc-hero__title {
	font-family: var(--gmc-font-heading);
	font-weight: 600;
	font-size: clamp(2.25rem, 5.5vw, 4rem);
	line-height: 1.1;
	color: #fff;
	margin: 0 0 var(--gmc-s-4);
}
.gmc-hero__title .gmc-hl { display: block; color: var(--gmc-blue-300); }

.gmc-hero__sub {
	max-width: 40ch;
	margin: 0 0 var(--gmc-s-5);
	color: rgba(255, 255, 255, 0.85);
	font-size: var(--gmc-fs-6);
}

.gmc-hero__pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gmc-s-3);
	margin-bottom: var(--gmc-s-5);
}
.gmc-hero__pill {
	padding: var(--gmc-s-2) var(--gmc-s-4);
	border-radius: var(--gmc-r-pill);
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(255, 255, 255, 0.14);
	font-size: var(--gmc-fs-6);
}
.gmc-hero__pill b { color: var(--gmc-blue-300); font-weight: 700; }

.gmc-hero__search {
	display: flex;
	gap: var(--gmc-s-2);
	width: min(720px, 100%);
	padding: var(--gmc-s-1);
	background: #fff;
	border-radius: var(--gmc-r-pill);
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.28);
}
.gmc-hero__search-field { position: relative; flex: 1; min-width: 0; }
.gmc-hero__search input[type="search"] {
	width: 100%;
	height: 100%;
	border: 0;
	background: transparent;
	padding: var(--gmc-s-3) var(--gmc-s-4);
	font-size: var(--gmc-fs-7);
	color: var(--gmc-n-900);
	border-radius: var(--gmc-r-pill);
}
.gmc-hero__search input[type="search"]:focus { outline: none; }
.gmc-hero__search .gmc-btn {
	background: var(--gmc-navy);
	color: #fff;
	border-radius: var(--gmc-r-pill);
	padding-inline: var(--gmc-s-5);
	text-transform: uppercase;
	font-weight: 500;
}
.gmc-hero__search .gmc-btn:hover { background: var(--gmc-navy-700); }

/* Live autocomplete dropdown */
.gmc-hero__results {
	position: absolute;
	top: calc(100% + var(--gmc-s-2));
	left: 0;
	right: 0;
	z-index: 20;
	margin: 0;
	padding: var(--gmc-s-1);
	list-style: none;
	text-align: left;
	background: #fff;
	border-radius: var(--gmc-r-card);
	box-shadow: 0 18px 40px rgba(15, 61, 117, 0.18);
	max-height: 320px;
	overflow-y: auto;
}
.gmc-hero__results li { margin: 0; }
.gmc-hero__results a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gmc-s-4);
	padding: var(--gmc-s-2) var(--gmc-s-3);
	border-radius: var(--gmc-r-input);
	color: var(--gmc-n-900);
	text-decoration: none;
	font-size: var(--gmc-fs-3);
}
.gmc-hero__results a:hover,
.gmc-hero__results a.is-active {
	background: var(--gmc-blue-050);
	color: var(--gmc-navy);
}
.gmc-hero__result-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gmc-hero__result-type { flex-shrink: 0; color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }
.gmc-hero__results--message {
	padding: var(--gmc-s-3);
	color: var(--gmc-n-600);
	font-size: var(--gmc-fs-2);
}

.gmc-hero__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gmc-s-3) var(--gmc-s-5);
	margin: var(--gmc-s-4) 0 0;
	font-size: var(--gmc-fs-2);
}
.gmc-hero__links a {
	color: rgba(255, 255, 255, 0.82);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.gmc-hero__links a:hover { color: #fff; }

/* Floating stat bar — sibling of .gmc-hero, pulled up to overlap it */
.gmc-hero__stats {
	position: relative;
	z-index: 2;
	width: min(var(--gmc-content-max), calc(100% - var(--gmc-s-7)));
	margin: calc(var(--gmc-s-8) * -1) auto 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gmc-s-4);
	padding: var(--gmc-s-5) var(--gmc-s-6);
	background: var(--gmc-n-0);
	border-radius: 20px;
	box-shadow: 0 16px 44px rgba(15, 61, 117, 0.16);
}
.gmc-hero__stat { display: flex; align-items: center; gap: var(--gmc-s-3); }
.gmc-hero__stat:not(:last-child) { border-right: 1px solid var(--gmc-n-200); }
.gmc-hero__stat-ico {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--gmc-blue-050);
	color: var(--gmc-navy);
}
.gmc-hero__stat-txt { font-size: var(--gmc-fs-5); text-transform: uppercase; letter-spacing: 0.04em; color: var(--gmc-n-600); }
.gmc-hero__stat-txt b { display: block; font: 700 var(--gmc-fs-6) / 1.1 var(--gmc-font-heading); color: var(--gmc-navy); letter-spacing: 0; text-transform: none; }

@media (max-width: 900px) {
	.gmc-hero__stats { grid-template-columns: repeat(2, 1fr); margin-top: calc(var(--gmc-s-7) * -1); }
	.gmc-hero__stat:nth-child(2n) { border-right: 0; }
}
@media (max-width: 480px) {
	.gmc-hero { padding-bottom: calc(var(--gmc-s-9) + var(--gmc-s-6)); }
	.gmc-hero__search { flex-direction: column; border-radius: var(--gmc-r-card); }
	.gmc-hero__search .gmc-btn { border-radius: var(--gmc-r-input); }
	.gmc-hero__stats { grid-template-columns: 1fr; }
	.gmc-hero__stat:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--gmc-n-200); padding-bottom: var(--gmc-s-3); }
}

/* Homepage grid bands (rendered by the [gmc_*] shortcodes inside Elementor) --- */
.gmc-home__band { margin-block: var(--gmc-s-7); }

/* Centred section header: eyebrow pill + heading + subheading */
.gmc-home__band-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--gmc-s-2);
	margin-bottom: var(--gmc-s-6);
}
.gmc-home__band-head h2 { margin: 0; font-size: var(--gmc-fs-8); }
.gmc-home__band-sub {
	margin: 0;
	max-width: 46ch;
	color: var(--gmc-n-600);
	font-size: var(--gmc-fs-4);
}
.gmc-eyebrow {
	display: inline-block;
	padding: var(--gmc-s-1) var(--gmc-s-4);
	border-radius: var(--gmc-r-pill);
	background: var(--gmc-navy);
	color: #fff;
	font: 600 var(--gmc-fs-1) / 1 var(--gmc-font-body);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: var(--gmc-s-2);
}
.gmc-hl { color: var(--gmc-blue); }

.gmc-home__band-more { text-align: center; margin-top: var(--gmc-s-6); }
.gmc-btn--lg {
	padding: var(--gmc-s-3) var(--gmc-s-6);
	border-radius: var(--gmc-r-pill);
	font-size: var(--gmc-fs-3);
}

/* Homepage college cards — image-top, rounded, soft shadow (see UI/homepage.png) */
.gmc-cards--home {
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gmc-s-5);
}
.gmc-cards--home .gmc-card {
	position: relative;
	border: 0;
	border-radius: 16px;
	box-shadow: var(--gmc-shadow-card-hover);
	cursor: pointer;
	border: 1px solid #e3e3e3;
}
.gmc-cards--home .gmc-card:hover { box-shadow: 0 10px 28px rgba(15, 61, 117, 0.16); }
/* Whole card is a link: the title's <a> is stretched over the card; the action
 * buttons are raised above that overlay so they still work. */
.gmc-cards--home .gmc-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.gmc-cards--home .gmc-card__actions { position: relative; z-index: 1; }
.gmc-cards--home .gmc-card:hover .gmc-card__title a { color: var(--gmc-blue); }

.gmc-card__media-wrap { position: relative; }
.gmc-cards--home .gmc-card__media { aspect-ratio: 7 / 3; }
.gmc-cards--home .gmc-card__media:empty { height: auto; min-height: 150px; aspect-ratio: 4 / 2; background: var(--gmc-n-100); }
.gmc-card__badge {
	position: absolute;
	top: var(--gmc-s-3);
	right: var(--gmc-s-3);
	padding: var(--gmc-s-1) var(--gmc-s-3);
	border-radius: var(--gmc-r-pill);
	background: var(--gmc-navy);
	color: #fff;
	font: 700 var(--gmc-fs-1) / 1 var(--gmc-font-body);
	letter-spacing: 0.04em;
}

.gmc-cards--home .gmc-card__body { padding: var(--gmc-s-3); gap: var(--gmc-s-1); }
.gmc-cards--home .gmc-card__title { font-size: var(--gmc-fs-4); }
.gmc-card__affil { margin: 0; color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }
.gmc-card__place {
	display: flex;
	align-items: center;
	gap: var(--gmc-s-1);
	margin: 0;
	color: var(--gmc-n-600);
	font-size: var(--gmc-fs-2);
}
.gmc-card__pin { color: var(--gmc-blue); flex-shrink: 0; }

.gmc-cards--home .gmc-card__actions {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: var(--gmc-s-2);
	margin-top: var(--gmc-s-3);
}
.gmc-cards--home .gmc-card__actions .gmc-btn {
	justify-content: center;
	padding: var(--gmc-s-1) var(--gmc-s-2);
	border-radius: var(--gmc-r-pill);
}
.gmc-cards--home .gmc-btn--secondary {
	background: var(--gmc-n-100);
	border-color: transparent;
	color: var(--gmc-navy);
}

@media (max-width: 1024px) {
	.gmc-cards--home { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.gmc-cards--home { grid-template-columns: 1fr; }
}

.gmc-home__streams {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--gmc-s-3);
	list-style: none;
	margin: 0;
	padding: 0;
}
.gmc-home__streams a {
	display: flex;
	flex-direction: column;
	gap: var(--gmc-s-1);
	padding: var(--gmc-s-4);
	border: var(--gmc-border);
	border-radius: var(--gmc-r-card);
	background: var(--gmc-n-0);
	text-decoration: none;
	box-shadow: var(--gmc-shadow-card);
}
.gmc-home__streams a:hover { box-shadow: var(--gmc-shadow-card-hover); }
.gmc-home__stream-name { font: 600 var(--gmc-fs-4) / 1.3 var(--gmc-font-heading); color: var(--gmc-navy); }
.gmc-home__stream-count { color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }

.gmc-card--post .gmc-card__body p { margin: 0; color: var(--gmc-n-900); }
/* Clamp title/excerpt so cards stay the same height; full text kept for SEO/screen readers. */
.gmc-cards--home .gmc-card--post .gmc-card__title,
.gmc-cards--home .gmc-card--post .gmc-card__body p:not(.gmc-card__meta) {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gmc-cards--home .gmc-card--post .gmc-card__title { -webkit-line-clamp: 2; }
.gmc-cards--home .gmc-card--post .gmc-card__body p:not(.gmc-card__meta) { -webkit-line-clamp: 3; }

/* Forms: enquiry, auth, dashboard --------------------------------------- */
.gmc-enquiry { padding-block: var(--gmc-s-6); border-top: var(--gmc-border); }
.gmc-enquiry__title { font-size: var(--gmc-fs-7); }

.gmc-form { margin-top: var(--gmc-s-4); }
.gmc-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gmc-s-3) var(--gmc-s-4); }
.gmc-form--register .gmc-form__grid { margin: 0 0 var(--gmc-s-3); }
.gmc-form--register .gmc-form__grid .gmc-form__row { margin-bottom: 0; min-width: 0; }
.gmc-form__row { display: flex; flex-direction: column; gap: var(--gmc-s-1); margin: 0 0 var(--gmc-s-3); }
.gmc-form__row--wide { grid-column: 1 / -1; }
.gmc-form__row label { font-size: var(--gmc-fs-4); color: var(--gmc-navy); font-weight: 500; }
.gmc-form__row input,
.gmc-form__row textarea,
.gmc-form__row select {
	padding: var(--gmc-s-2) var(--gmc-s-3);
	border: var(--gmc-border);
	border-radius: var(--gmc-r-input);
	background: var(--gmc-n-0);
	font: 400 var(--gmc-fs-4) / 1.4 var(--gmc-font-body);
	color: var(--gmc-n-900);
	width: 100%;
}
.gmc-form__row input[type="checkbox"],
.gmc-form__row input[type="radio"] {
	width: auto;
	padding: 0;
	border-radius: 3px;
}
.gmc-form__row input[type="checkbox"]:focus,
.gmc-form__row input[type="radio"]:focus { outline: none; }
.gmc-form__row input:focus,
.gmc-form__row textarea:focus,
.gmc-form__row select:focus { outline: var(--gmc-focus-ring); outline-offset: var(--gmc-focus-offset); }
.gmc-form__row--error input,
.gmc-form__row--error textarea { border-color: var(--gmc-error); }
.gmc-form__err { color: var(--gmc-error); font-size: var(--gmc-fs-3); }
.gmc-form__row--consent { flex-direction: row; align-items: flex-start; gap: var(--gmc-s-2); margin-top: var(--gmc-s-2); }
.gmc-form__row--consent label { font-weight: 400; font-size: var(--gmc-fs-5); color: var(--gmc-n-900); }
.gmc-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gmc-form button[type="submit"] { margin-top: var(--gmc-s-3); }
.gmc-form--register { max-width: 520px; }
.gmc-form__aside { font-size: var(--gmc-fs-5); color: var(--gmc-n-600); margin-top: var(--gmc-s-3); }
.gmc-form__row input:disabled { background: var(--gmc-n-100); color: var(--gmc-n-600); }

/* Dashboard ------------------------------------------------------------- */
.gmc-dashboard__tabs { display: flex; flex-wrap: wrap; gap: var(--gmc-s-1); border-bottom: var(--gmc-border); margin-bottom: var(--gmc-s-5); }
.gmc-dashboard__tabs a {
	padding: var(--gmc-s-2) var(--gmc-s-4);
	text-decoration: none;
	color: var(--gmc-n-600);
	border-bottom: 2px solid transparent;
	font-weight: 500;
}
.gmc-dashboard__tabs a.is-active { color: var(--gmc-navy); border-bottom-color: var(--gmc-blue); }
.gmc-dashboard__panel { min-height: 200px; }
.gmc-saved-item { display: flex; flex-direction: column; gap: var(--gmc-s-2); }
.gmc-saved-item__remove { align-self: flex-start; }

/* Data table (dashboard enquiries, compare fallback) ------------------- */
.gmc-table { width: 100%; border-collapse: collapse; font-size: var(--gmc-fs-5); }
.gmc-table th,
.gmc-table td { text-align: left; padding: var(--gmc-s-2) var(--gmc-s-3); border-bottom: var(--gmc-border); vertical-align: top; }
.gmc-table th { color: var(--gmc-navy); font-weight: 600; }
.gmc-table-wrap { overflow-x: auto; }
.gmc-course-table th:first-child { background: var(--gmc-blue-050); }
.gmc-course-table td:nth-child(4) { max-width: 22rem; }
.gmc-course-table td :where( p ) { margin: 0 0 var(--gmc-s-1); }

/* College gallery videos -------------------------------------------- */
.gmc-gallery__videos { display: grid; gap: var(--gmc-s-4); margin-top: var(--gmc-s-4); }
.gmc-video-embed { position: relative; aspect-ratio: 16 / 9; }
.gmc-video-embed :where( iframe, video, object, embed ) { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Compare tray -------------------------------------------------------- */
.gmc-compare-tray {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	display: none;
	align-items: center;
	gap: var(--gmc-s-3);
	padding: var(--gmc-s-3) var(--gmc-s-4);
	background: var(--gmc-navy);
	color: #fff;
	box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.18);
}
.gmc-compare-tray.is-visible { display: flex; }
.gmc-compare-tray__items { display: flex; flex-wrap: wrap; gap: var(--gmc-s-2); flex: 1; min-width: 0; }
.gmc-compare-tray__chip {
	display: inline-flex;
	align-items: center;
	gap: var(--gmc-s-1);
	padding: 2px var(--gmc-s-2);
	border-radius: var(--gmc-r-pill);
	background: rgba(255, 255, 255, 0.14);
	font-size: var(--gmc-fs-2);
}
.gmc-compare-tray__chip button { display: inline-flex; align-items: center; background: none; border: 0; color: inherit; cursor: pointer; line-height: 1; padding: 0 2px; }
.gmc-compare-tray__go { flex-shrink: 0; }
.gmc-compare-tray__go[aria-disabled="true"] { opacity: 0.5; pointer-events: none; }
.gmc-compare-tray .gmc-btn--ghost { color: #fff; }
.gmc-btn[aria-pressed="true"] { background: var(--gmc-navy); color: #fff; border-color: var(--gmc-navy); }

/* Guest-save toast */
.gmc-toast {
	position: fixed;
	left: 50%;
	bottom: calc(var(--gmc-s-8) + 40px);
	transform: translateX(-50%);
	z-index: 50;
	max-width: 90vw;
	background: var(--gmc-navy);
	color: #fff;
	border: 0;
	padding: var(--gmc-s-3) var(--gmc-s-4);
	border-radius: var(--gmc-r-input);
	box-shadow: var(--gmc-shadow-card-hover);
}
.gmc-toast a { color: #fff; text-decoration: underline; }

/* Compare table ----------------------------------------------------- */
/* Nothing to compare yet — fill the viewport so the footer doesn't ride up. */
.gmc-compare--empty { min-height: 100vh; }

.gmc-compare-wrap { overflow-x: auto; }
.gmc-compare-table { border-collapse: collapse; min-width: 100%; }
.gmc-compare-table th,
.gmc-compare-table td {
	padding: var(--gmc-s-3);
	border: var(--gmc-border);
	text-align: left;
	min-width: 200px;
	vertical-align: top;
}
.gmc-compare-table thead th { background: var(--gmc-blue-050); color: var(--gmc-navy); }
.gmc-compare-table tbody th {
	position: sticky;
	left: 0;
	background: var(--gmc-n-50);
	color: var(--gmc-navy);
	font-weight: 600;
	min-width: 160px;
}
.gmc-compare__na { color: var(--gmc-n-400); }

/* Compare columns — add / remove on the page ---------------------------- */
.gmc-compare-cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gmc-s-3);
	margin-bottom: var(--gmc-s-6);
}
.gmc-compare-col {
	position: relative;
	border: var(--gmc-border);
	border-radius: var(--gmc-r-card);
	padding: var(--gmc-s-4);
	background: #fff;
	text-align: center;
}
.gmc-compare-col--empty {
	border-style: dashed;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--gmc-s-3);
}
.gmc-compare-col__remove {
	position: absolute;
	top: var(--gmc-s-2);
	right: var(--gmc-s-2);
	width: 24px;
	height: 24px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: var(--gmc-border);
	background: #fff;
	color: var(--gmc-n-600);
	text-decoration: none;
}
.gmc-compare-col__remove:hover { color: var(--gmc-navy); border-color: var(--gmc-navy); }
.gmc-compare-col .gmc-card__logo {
	width: 64px;
	height: 64px;
	display: block;
}
.gmc-compare-col__content .gmc-card__logo{margin: 0 auto;}
.gmc-compare-col__title { font-size: var(--gmc-fs-3); margin: 0 0 var(--gmc-s-1); }
.gmc-compare-col__title a { color: var(--gmc-navy); text-decoration: none; }
.gmc-compare-col__sub { color: var(--gmc-n-600); font-size: var(--gmc-fs-5); margin: 0; }
.gmc-compare-col__add-toggle {
	background: none;
	border: 0;
	color: var(--gmc-accent);
	font-weight: 600;
	cursor: pointer;
	font-size: var(--gmc-fs-6);
    background: #2970b5;
    color: #fff;
    border-radius: 5px;
}
.gmc-compare-add { width: 100%; text-align: left; }
.gmc-compare-add__field {
	width: 100%;
	padding: var(--gmc-s-2) var(--gmc-s-3);
	border: var(--gmc-border);
	border-radius: var(--gmc-r-input);
	font: inherit;
}
.gmc-compare-add__results,
.gmc-compare-add__suggest {
	list-style: none;
	margin: var(--gmc-s-2) 0 0;
	padding: 0;
}
.gmc-compare-add__results a,
.gmc-compare-add__suggest a {
	display: flex;
	align-items: center;
	gap: var(--gmc-s-2);
	padding: var(--gmc-s-2);
	border-radius: var(--gmc-r-input);
	color: var(--gmc-n-900);
	text-decoration: none;
	font-size: var(--gmc-fs-4);
}
.gmc-compare-add__results a:hover,
.gmc-compare-add__suggest a:hover { background: var(--gmc-blue-050); color: var(--gmc-navy); }
.gmc-compare-add__suggest .gmc-card__logo { width: 28px; height: 28px; flex-shrink: 0; }
.gmc-compare-add__hint { margin: var(--gmc-s-3) 0 0; color: var(--gmc-n-600); font-size: var(--gmc-fs-2); }

/* Popular comparisons -------------------------------------------------- */
.gmc-compare-popular { margin-top: var(--gmc-s-8); }
.gmc-compare-popular > h2 { font-size: var(--gmc-fs-8); color: var(--gmc-navy); margin-bottom: var(--gmc-s-4); }
.gmc-compare-popular__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--gmc-s-3);
}
.gmc-compare-popular__card {
	border: var(--gmc-border);
	border-radius: var(--gmc-r-card);
	padding: var(--gmc-s-4);
	background: #fff;
	text-align: center;
}
.gmc-compare-popular__pair {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--gmc-s-3);
	margin-bottom: var(--gmc-s-3);
}
.gmc-compare-popular__pair .gmc-card__logo { width: 48px; height: 48px; }
.gmc-compare-popular__vs {
	font-weight: 700;
	font-size: var(--gmc-fs-5);
	color: var(--gmc-n-600);
}
.gmc-compare-popular__names {
	font-size: var(--gmc-fs-4);
	color: var(--gmc-n-900);
	margin: 0 0 var(--gmc-s-3);
	min-height: 3em;
}
.gmc-compare-popular__names span { color: var(--gmc-n-500); margin: 0 4px; }
.gmc-compare-popular__card .gmc-btn { margin-top: var(--gmc-s-2); }

@media (max-width: 640px) {
	.gmc-compare-cols { grid-template-columns: 1fr; }
}

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1024px) {
	.gmc-directory { grid-template-columns: 1fr; }
	.gmc-rail { position: static; }
}

@media (max-width: 640px) {
	.gmc-page h1 { font-size: var(--gmc-fs-7); }
	.gmc-card--programme { flex-direction: column; align-items: flex-start; }
}
