:root {
    --brand-primary: #183a77;
    --brand-primary-dark: #0f2a5e;
    --brand-accent: #4a7bc8;
    --brand-gold: #c49a14;
    --brand-gold-dark: #a07f0f;
    --surface: #f3f8fb;
    --text: #12303d;
    --muted: #4f6671;
    --white: #ffffff;
    --radius: 16px;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	color: var(--text);
	font-family: "Manrope", "Segoe UI", sans-serif;
	background: radial-gradient(circle at top right, #d7edf8, #f8fbfd 45%, #ffffff 80%);
}

h1,
h2,
h3 {
	font-family: "Source Serif 4", Georgia, serif;
	line-height: 1.15;
	margin: 0;
}

p {
	line-height: 1.6;
}

a {
	color: var(--brand-primary);
}

/* ── Header / Nav ─────────────────────────────── */
.site-header {
        position: sticky;
        top: 0;
        z-index: 50;
}

/* Utility bar */
.utility-bar {
        background: #fff;
        border-bottom: 1px solid #e2e8f0;
}

.utility-inner {
        max-width: 1200px;
        margin: 0 auto;
        padding: 8px 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 16px;
}

.brand {
        text-decoration: none;
        display: inline-flex;
        align-items: center;
}

.brand-logo {
        height: 36px;
        max-height: 36px;
        max-width: 160px;
        width: auto;
        display: block;
        object-fit: contain;
}

.utility-links {
        display: flex;
        align-items: center;
        gap: 20px;
}

.utility-links a {
        font-size: 0.82rem;
        color: #4a5568;
        text-decoration: none;
        white-space: nowrap;
}

.utility-links a:hover {
        color: var(--brand-primary);
}

.utility-search {
        display: flex;
        align-items: center;
        border: 1px solid #cbd5e0;
        border-radius: 4px;
        overflow: hidden;
        background: #f7fafc;
}

.utility-search input {
        border: none;
        background: transparent;
        padding: 4px 10px;
        font-size: 0.82rem;
        outline: none;
        width: 160px;
        color: #2d3748;
}

.utility-search input::placeholder {
        color: #a0aec0;
}

/* Main nav */
.main-nav {
        background: var(--brand-primary);
        backdrop-filter: blur(6px);
}

.main-nav-inner {
        max-width: 1320px;
        margin: 0 auto;
        padding: 0 16px;
        display: flex;
        justify-content: space-between;
        align-items: stretch;
}

/* Brand logo in the dark main nav */
.main-nav-brand {
        display: flex;
        align-items: center;
        padding: 8px 0;
        flex-shrink: 0;
        text-decoration: none;
}

.main-nav-logo {
        height: 32px;
        width: auto;
        display: block;
        object-fit: contain;
}

.main-nav-links {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        align-items: stretch;
}

.main-nav-links li {
        position: relative;
}

.main-nav-links li a {
        display: flex;
        align-items: center;
        padding: 12px 11px;
        color: rgba(255,255,255,0.88);
        text-decoration: none;
        font-size: 0.82rem;
        white-space: nowrap;
        transition: background 0.15s, color 0.15s;
}

.main-nav-links li a:hover,
.main-nav-links li a:focus {
        color: #fff;
        background: rgba(255,255,255,0.12);
}

/* Dropdown */
.main-nav-links .has-dropdown:hover .dropdown,
.main-nav-links .has-dropdown:focus-within .dropdown {
        display: block;
}

.dropdown {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        background: #fff;
        min-width: 160px;
        border: 1px solid #e2e8f0;
        border-radius: 0 0 6px 6px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        list-style: none;
        margin: 0;
        padding: 4px 0;
        z-index: 100;
}

.dropdown li a {
        color: #2d3748;
        padding: 8px 16px;
        font-size: 0.875rem;
        display: block;
        white-space: nowrap;
}

.dropdown li a:hover {
        background: #f0f7fb;
        color: var(--brand-primary);
}

/* Online Application CTA */
.btn-apply {
        display: flex;
        align-items: center;
        padding: 10px 20px;
        margin: 8px 0;
        background: var(--brand-gold);
        color: #fff;
        font-weight: 600;
        font-size: 0.875rem;
        text-decoration: none;
        border-radius: 4px;
        white-space: nowrap;
        transition: background 0.15s, color 0.15s;
}

.btn-apply:hover {
        background: var(--brand-gold-dark);
        color: #fff;
}

.container {
	max-width: 1120px;
	margin: 0 auto;
	padding: 24px 20px;
}

.hero {
	padding-top: 56px;
	padding-bottom: 34px;
}

.hero h1 {
	font-size: clamp(2rem, 4vw, 3.5rem);
	max-width: 780px;
}

.hero-compact h1 {
	font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.eyebrow {
	color: var(--brand-accent);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.74rem;
}

.lead {
	max-width: 760px;
	color: var(--muted);
	font-size: 1.08rem;
}

.cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
	transform: translateY(-1px);
}

.btn-primary {
	background: var(--brand-primary);
	color: var(--white);
	box-shadow: 0 8px 22px rgba(4, 81, 114, 0.18);
}

.btn-secondary {
	border: 1px solid #97c6da;
	color: var(--brand-primary);
	background: var(--white);
}

.card {
	background: var(--white);
	border: 1px solid #deecf3;
	border-radius: var(--radius);
	padding: 20px;
	box-shadow: 0 6px 20px rgba(16, 51, 66, 0.05);
}

.grid-two {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.team-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.avatar {
	width: 84px;
	height: 84px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid #d4e9f4;
}

.role {
	color: var(--muted);
	font-weight: 700;
	margin-top: 2px;
}

.muted {
	color: var(--muted);
}

.site-footer {
	margin-top: 32px;
	border-top: 1px solid #deecf3;
	padding: 20px;
	color: var(--muted);
}

.home-hero,
.course-detail-hero,
.courses-hero {
	position: relative;
	overflow: hidden;
	background: var(--brand-primary);
	color: var(--white);
}

.home-hero-bg,
.course-detail-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0.95;
}

.home-hero-overlay,
.course-detail-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(24, 58, 119, 0.84) 0%, rgba(24, 58, 119, 0.58) 40%, rgba(24, 58, 119, 0.2) 100%);
}

.home-hero-content,
.course-detail-hero-content {
	position: relative;
	padding-top: 84px;
	padding-bottom: 90px;
	z-index: 2;
}

.home-hero .eyebrow,
.course-detail-hero .eyebrow,
.courses-hero .eyebrow {
	color: #d2ecf8;
}

.home-hero h1,
.course-detail-hero h1,
.courses-hero h1 {
	font-size: clamp(2rem, 5vw, 4rem);
	max-width: 700px;
	color: #f5fbff;
}

.home-hero .lead,
.course-detail-hero .lead,
.courses-hero .lead {
	color: #e2f3fa;
}

/* ── Multi-slide carousel ─────────────────────────────── */

.hero-slide {
	display: none;
}

.hero-slide--active {
	display: block;
}

.hero-dots-wrap {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
}

.hero-dots {
	display: inline-flex;
	gap: 8px;
}

.hero-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.45);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background 0.25s, transform 0.25s;
}

.hero-dot.active,
.hero-dot:hover {
	background: #ffffff;
	transform: scale(1.25);
}

.accred-section {
	text-align: center;
	padding-top: 56px;
	padding-bottom: 36px;
}

.accred-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 24px;
}

.accred-card {
	background: #f8fcff;
	border: 1px solid #bdd8e7;
	border-radius: 4px;
	padding: 14px;
	display: grid;
	place-items: center;
	min-height: 80px;
}

.accred-card img {
	max-width: 100%;
	height: auto;
	object-fit: contain;
}

.programs-section {
	padding-top: 24px;
	padding-bottom: 32px;
}

.programs-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border-radius: 2px;
	overflow: hidden;
	margin-top: 20px;
}

.program-card {
	padding: 28px 22px;
	background: linear-gradient(160deg, #1e4a96 0%, #183a77 100%);
	color: #e8f5fb;
	border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.program-card:last-child {
	border-right: none;
}

.program-card h3 {
	color: #ffffff;
	margin-bottom: 10px;
}

.program-card a {
	color: #eaf8ff;
	font-weight: 700;
	text-decoration: none;
}

.reputation-section {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 22px;
	align-items: start;
	padding-top: 30px;
	padding-bottom: 32px;
}

.rep-image {
	width: 100%;
	border-radius: 6px;
	border: 1px solid #d8e9f2;
	object-fit: cover;
}

.rep-image-primary {
	min-height: 340px;
	margin-bottom: 12px;
}

.rep-image-secondary {
	min-height: 260px;
	margin-top: 16px;
}

.rep-placeholder {
	background: #e4edf2;
	min-height: 280px;
}

.stats-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px;
	background: #d5e9f4;
	border-radius: 4px;
	overflow: hidden;
}

.stat-box {
	background: var(--brand-primary);
	padding: 14px 16px;
	color: #f1fbff;
	display: grid;
	gap: 4px;
}

.stat-box strong {
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 2rem;
	line-height: 1;
}

.stat-box span {
	font-size: 0.82rem;
	color: #d4ebf7;
}

.courses-hero {
	padding-top: 30px;
	padding-bottom: 34px;
	background: linear-gradient(180deg, #1e4a96 0%, #183a77 100%);
}

.courses-filter-row {
	display: flex;
	gap: 10px;
	margin-top: 20px;
	flex-wrap: wrap;
}

.courses-filter-row input {
	flex: 1 1 280px;
	padding: 12px 14px;
	border-radius: 6px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: rgba(255, 255, 255, 0.14);
	color: #ffffff;
}

.courses-filter-row input::placeholder {
	color: rgba(255, 255, 255, 0.74);
}

.chip-row {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 12px;
}

.chip {
	padding: 10px 14px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 6px;
	color: #e3f4fb;
	text-decoration: none;
	font-size: 0.88rem;
}

.chip.active {
	background: #ffffff;
	color: var(--brand-primary);
	border-color: #ffffff;
}

.course-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.course-card {
	min-height: 240px;
}

.course-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
	gap: 14px;
	margin-top: 22px;
}

.course-detail-main h2,
.course-detail-main h3 {
	margin-bottom: 10px;
	margin-top: 24px;
}

.cert-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 10px;
}

.cert-grid div {
	padding: 10px;
	border: 1px solid #dfebf2;
	border-radius: 4px;
	display: grid;
	gap: 4px;
}

.cert-grid strong {
	font-size: 0.86rem;
	color: #2f4f5d;
}

.course-detail-side {
	display: grid;
	gap: 10px;
	align-content: start;
}

.side-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 8px;
}

.side-list li {
	padding-bottom: 8px;
	border-bottom: 1px solid #dcecf4;
	display: grid;
	gap: 2px;
}

.side-list li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.side-list span {
	font-size: 0.8rem;
	color: var(--muted);
}

/* ── Sidebar enhancements ─────────────────────────────────── */
.sidebar-card {
        padding: 20px;
        margin-bottom: 16px;
}

.sidebar-heading {
        font-size: 1rem;
        font-weight: 700;
        color: var(--brand-primary);
        margin: 0 0 12px;
        padding-bottom: 8px;
        border-bottom: 2px solid var(--brand-primary);
}

/* Related courses list */
.related-courses-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 10px;
}

.related-courses-list li {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding-bottom: 10px;
        border-bottom: 1px solid #e8f1f6;
}

.related-courses-list li:last-child {
        border-bottom: none;
        padding-bottom: 0;
}

.related-courses-list a {
        font-weight: 600;
        font-size: 0.875rem;
        color: var(--brand-primary);
        text-decoration: none;
}

.related-courses-list a:hover { text-decoration: underline; }

/* Sidebar search widget */
.sidebar-search-card { background: var(--brand-primary); color: #fff; }
.sidebar-search-card .sidebar-heading { color: #fff; border-color: rgba(255,255,255,0.4); }

.sidebar-search-form { display: flex; flex-direction: column; gap: 8px; }

.sidebar-search-form input[type="search"] {
        width: 100%;
        padding: 8px 12px;
        border: none;
        border-radius: 4px;
        font-size: 0.875rem;
        outline: none;
        box-sizing: border-box;
}

.sidebar-filter-btns {
        display: flex;
        flex-direction: column;
        gap: 6px;
}

.btn-outline-sm {
        display: block;
        padding: 8px 12px;
        border: 1px solid rgba(255,255,255,0.5);
        border-radius: 4px;
        color: #fff;
        text-decoration: none;
        font-size: 0.82rem;
        background: transparent;
        transition: background 0.15s;
}

.btn-outline-sm:hover { background: rgba(255,255,255,0.15); }

.sidebar-find-btn {
        background: #fff;
        color: var(--brand-primary);
        font-weight: 700;
        border: none;
        cursor: pointer;
        text-align: center;
        padding: 10px;
        border-radius: 4px;
        font-size: 0.875rem;
        transition: background 0.15s;
}

.sidebar-find-btn:hover { background: #e8f4fa; }

/* Intake list */
.intake-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 10px;
}

.intake-item {
        display: flex;
        align-items: flex-start;
        gap: 10px;
}

.intake-icon { font-size: 1.1rem; line-height: 1.4; flex-shrink: 0; }

.intake-info { display: flex; flex-direction: column; gap: 2px; }

.intake-name {
        font-weight: 600;
        font-size: 0.9rem;
        color: var(--brand-accent);
        text-decoration: none;
}

.intake-name:hover { text-decoration: underline; }

.intake-name--muted { color: #718096; font-weight: 600; font-size: 0.9rem; }

.intake-badge {
        display: inline-block;
        font-size: 0.72rem;
        font-weight: 600;
        padding: 1px 7px;
        border-radius: 20px;
        text-transform: uppercase;
        letter-spacing: 0.04em;
}

.intake-badge--open { background: #e6f9f2; color: #1a7a4a; }
.intake-badge--closing-soon { background: #fff5e6; color: #b76c00; }
.intake-badge--closed { background: #f5f5f5; color: #6b6b6b; }
.intake-badge--coming-soon { background: #f0f0f0; color: #718096; }

/* Schools mini-list in sidebar */
.sidebar-schools-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.sidebar-schools-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }

.sidebar-school-item {
        display: flex;
        align-items: center;
        gap: 10px;
        padding-bottom: 12px;
        border-bottom: 1px solid #e8f1f6;
}

.sidebar-school-item:last-child { border-bottom: none; padding-bottom: 0; }

.sidebar-school-thumb {
        flex-shrink: 0;
        width: 56px;
        height: 56px;
        border-radius: 4px;
        overflow: hidden;
        background: #e2eef4;
}

.sidebar-school-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sidebar-school-thumb-placeholder { width: 100%; height: 100%; background: #ccdde7; }

.sidebar-school-info { display: flex; flex-direction: column; gap: 3px; }
.sidebar-school-name { font-size: 0.82rem; font-weight: 600; color: #2d3748; line-height: 1.3; }
.sidebar-school-link { font-size: 0.78rem; color: var(--brand-accent); text-decoration: none; font-weight: 600; }
.sidebar-school-link:hover { text-decoration: underline; }

/* Brochure + See All */
.sidebar-full-btn { display: block; text-align: center; margin-bottom: 10px; }
.sidebar-all-programmes {
        display: block;
        text-align: center;
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--brand-primary);
        text-decoration: none;
}

.sidebar-all-programmes:hover { text-decoration: underline; }
.sidebar-card-plain { padding: 16px 0; }

/* Testimonial in sidebar */
.testimonial-quote {
        font-style: italic;
        font-size: 0.9rem;
        color: #4a5568;
        border-left: 3px solid var(--brand-accent);
        margin: 0 0 8px;
        padding-left: 12px;
        line-height: 1.6;
}

.testimonial-author { font-size: 0.8rem; font-weight: 600; color: var(--brand-primary); margin: 0; }

/* ── Schools listing page ─────────────────────────────────── */
.schools-hero {
        background: #eaf3f8;
        padding: 0;
}

.schools-hero-layout {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        padding-top: 0;
        padding-bottom: 0;
}

.schools-hero-copy {
        background: #5f9bb8;
        color: #fff;
        min-height: 320px;
        padding: 54px 48px;
        display: flex;
        flex-direction: column;
        justify-content: center;
}

.schools-hero-copy .eyebrow {
        color: #d8edf8;
        font-size: 0.62rem;
        margin-bottom: 12px;
}

.schools-hero-copy h1 {
        color: #fff;
        font-size: clamp(2rem, 3vw, 3.4rem);
        margin-bottom: 14px;
        text-transform: uppercase;
}

.schools-hero-copy .lead {
        color: rgba(255,255,255,0.88);
        font-size: 0.92rem;
        max-width: 480px;
        margin: 0;
}

.schools-hero-media {
        background: #d6dde2;
        min-height: 320px;
}

.schools-listing-wrap {
        background: #eef4f8;
        padding: 26px 0 22px;
}

.schools-listing {
        display: grid;
        gap: 14px;
        padding-top: 0;
        padding-bottom: 0;
}

.school-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        min-height: 286px;
        background: #f8fbfd;
        border: 1px solid #dce8ef;
}

.school-row--reverse .school-row-media {
        order: 2;
}

.school-row--reverse .school-row-body {
        order: 1;
}

.school-row-media {
        background: #d9dee3;
        overflow: hidden;
}

.school-row-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
}

.school-row-placeholder {
        width: 100%;
        height: 100%;
        background: linear-gradient(145deg, #d8dde1 0%, #c5d0d8 100%);
}

.school-row-body {
        padding: 42px 34px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 10px;
}

.school-row-name {
        margin: 0;
        font-size: clamp(1.35rem, 2vw, 2rem);
        line-height: 1.12;
        color: #1f3f51;
}

.school-row-desc {
        margin: 0;
        color: #3f5f6e;
        font-size: 0.92rem;
        line-height: 1.62;
        max-width: 460px;
}

.school-row-btn {
        margin-top: 6px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        text-decoration: none;
        border: 1px solid #8db4c9;
        border-radius: 4px;
        color: #205777;
        font-weight: 700;
        font-size: 0.8rem;
        padding: 8px 13px;
        background: #f8fcff;
}

.school-row-btn:hover {
        background: #eaf5fb;
}

.school-row-btn--filled {
        background: #fff;
        color: #0b4f70;
        border-color: #fff;
}

.school-row-btn--ghost {
        border-color: rgba(255,255,255,0.55);
        color: #fff;
        background: transparent;
}

.school-row-btn--ghost:hover {
        background: rgba(255,255,255,0.1);
}

.schools-next-step {
        background: #eef4f8;
        padding: 18px 0 48px;
}

.schools-next-step-grid {
        display: grid;
        grid-template-columns: 2fr 1fr;
        gap: 0;
        padding-top: 0;
        padding-bottom: 0;
        border: 1px solid #d5e3ec;
        background: #fff;
}

.schools-next-step-media {
        position: relative;
        min-height: 236px;
        background: linear-gradient(145deg, #35576a 0%, #1f3643 80%);
}

.schools-next-step-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(7,30,43,0.65) 0%, rgba(7,30,43,0.25) 50%, rgba(7,30,43,0.05) 100%);
}

.schools-next-step-copy {
        position: relative;
        z-index: 1;
        color: #fff;
        padding: 34px 28px;
}

.schools-next-step-copy h2 {
        color: #fff;
        font-size: clamp(1.8rem, 2.8vw, 2.6rem);
        margin-bottom: 10px;
}

.schools-next-step-copy p {
        margin: 0 0 18px;
        color: rgba(255,255,255,0.86);
        font-size: 0.95rem;
}

.schools-next-step-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
}

.schools-next-step-points {
        background: #f8fcff;
}

.schools-next-step-points article {
        padding: 22px 18px;
        border-bottom: 1px solid #d9e8f1;
}

.schools-next-step-points article:last-child {
        border-bottom: none;
}

.schools-next-step-points h3 {
        font-size: 1.05rem;
        color: #1e4c62;
        margin: 0 0 6px;
}

.schools-next-step-points p {
        margin: 0;
        color: #506c7a;
        font-size: 0.86rem;
        line-height: 1.52;
}

/* School detail */
.school-detail-section { padding-top: 40px; padding-bottom: 56px; }
.school-detail-footer { margin-top: 32px; display: flex; gap: 12px; flex-wrap: wrap; }

/* Hero apply button */
.intake-apply-btn { background: var(--brand-gold); color: #fff; border: none; }
.intake-apply-btn:hover { background: var(--brand-gold-dark); }

/* Self-paced badge */
.badge-self-paced {
    display: inline-block;
    background: #e6f4ea;
    color: #1a7a4a;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 3px;
    border: 1px solid #a8d5b5;
    vertical-align: middle;
}

/* ── Admissions page ──────────────────────────────────────── */

/* Hero */
.admissions-hero {
        background: var(--brand-primary);
        color: #fff;
        padding: 64px 0 56px;
        position: relative;
        overflow: hidden;
}

.admissions-hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgba(15,42,94,0.6) 0%, transparent 70%);
        pointer-events: none;
}

.admissions-hero-content {
        position: relative;
        z-index: 1;
}

.admissions-hero-content h1 {
        color: #fff;
        font-size: clamp(2rem, 4vw, 3rem);
        margin: 8px 0 16px;
}

.admissions-hero-content .lead {
        color: rgba(255,255,255,0.85);
        max-width: 640px;
        margin-bottom: 28px;
}

.admissions-hero-ctas {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
}

.btn-accent {
        background: var(--brand-gold);
        color: #fff;
        font-weight: 700;
        padding: 12px 24px;
        border-radius: 4px;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        transition: background 0.15s;
}

.btn-accent:hover { background: var(--brand-gold-dark); }

.btn-outline-white {
        background: transparent;
        color: #fff;
        border: 2px solid rgba(255,255,255,0.6);
        font-weight: 600;
        padding: 10px 22px;
        border-radius: 4px;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        transition: background 0.15s, border-color 0.15s;
}

.btn-outline-white:hover { background: rgba(255,255,255,0.12); border-color: #fff; }

.btn-disabled {
        background: #e2e8f0;
        color: #718096;
        font-weight: 600;
        padding: 10px 20px;
        border-radius: 4px;
        display: inline-block;
        cursor: not-allowed;
        font-size: 0.875rem;
}

/* Intake cards bar */
.admissions-intakes-bar {
        background: #f0f7fb;
        padding: 40px 0;
        border-bottom: 1px solid #d0e8f2;
}

.admissions-intakes-inner { }

.admissions-intake-cards {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        gap: 20px;
        margin-top: 20px;
}

.admissions-intake-card {
        background: #fff;
        border: 1px solid #d0e8f2;
        border-radius: 8px;
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        border-top: 4px solid var(--brand-accent);
}

.admissions-intake-card--coming-soon { border-top-color: #a0aec0; }
.admissions-intake-card--closed { border-top-color: #e2e8f0; opacity: 0.7; }

.admissions-intake-card-header { display: flex; justify-content: flex-end; }

.admissions-intake-name {
        font-size: 1.1rem;
        font-weight: 700;
        color: var(--brand-primary);
        margin: 0;
}

.admissions-intake-meta {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 6px;
        font-size: 0.875rem;
}

.admissions-intake-meta li {
        display: flex;
        justify-content: space-between;
        gap: 8px;
        padding-bottom: 6px;
        border-bottom: 1px solid #e8f1f6;
}

.admissions-intake-meta li:last-child { border-bottom: none; padding-bottom: 0; }

.admissions-intake-meta span { color: #718096; }
.admissions-intake-meta strong { color: #2d3748; font-weight: 600; }

.admissions-intake-note {
        font-style: italic;
        color: #718096 !important;
        font-size: 0.8rem;
        border-bottom: none !important;
}

.admissions-intake-btn { margin-top: auto; text-align: center; display: block; }

/* Section layout */
.admissions-section {
        padding: 56px 0;
}

.admissions-section--light {
        background: #f7fafc;
}

.admissions-section-title {
        font-size: 1.5rem;
        font-weight: 800;
        color: var(--brand-primary);
        margin: 0 0 8px;
}

.admissions-section-subtitle {
        color: #4a5568;
        margin: 0 0 32px;
        font-size: 0.95rem;
}

/* Process steps */
.admissions-steps {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 24px;
        counter-reset: none;
        margin-top: 32px;
}

.admissions-step {
        display: flex;
        gap: 20px;
        align-items: flex-start;
}

.admissions-step-number {
        flex-shrink: 0;
        width: 44px;
        height: 44px;
        background: var(--brand-primary);
        color: #fff;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 800;
        font-size: 1.1rem;
}

.admissions-step-body h3 {
        font-size: 1rem;
        font-weight: 700;
        margin: 6px 0 4px;
        color: #1a202c;
}

.admissions-step-body p {
        color: #4a5568;
        font-size: 0.9rem;
        margin: 0;
        line-height: 1.6;
}

/* Two-column requirements + fees */
.admissions-two-col {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 40px;
        align-items: start;
}

.admissions-requirements h2 { margin-bottom: 16px; }

.admissions-req-list {
        list-style: none;
        margin: 12px 0 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 10px;
}

.admissions-req-list li {
        padding: 10px 12px 10px 36px;
        background: #f0f7fb;
        border-left: 3px solid var(--brand-accent);
        border-radius: 0 4px 4px 0;
        font-size: 0.9rem;
        color: #2d3748;
        position: relative;
}

.admissions-req-list li::before {
        content: "✓";
        position: absolute;
        left: 10px;
        color: var(--brand-accent);
        font-weight: 700;
}

.admissions-fees { padding: 24px; }
.admissions-fees h2 { margin-bottom: 16px; }

.admissions-richtext { font-size: 0.9rem; line-height: 1.7; color: #4a5568; }

/* FAQs accordion */
.admissions-faqs {
        margin-top: 24px;
        display: flex;
        flex-direction: column;
        gap: 8px;
}

.admissions-faq {
        background: #fff;
        border: 1px solid #e2e8f0;
        border-radius: 6px;
        overflow: hidden;
}

.admissions-faq[open] {
        border-color: var(--brand-accent);
}

.admissions-faq-question {
        padding: 16px 20px;
        font-weight: 600;
        font-size: 0.95rem;
        color: var(--brand-primary);
        cursor: pointer;
        list-style: none;
        display: flex;
        justify-content: space-between;
        align-items: center;
        user-select: none;
}

.admissions-faq-question::-webkit-details-marker { display: none; }

.admissions-faq-question::after {
        content: "+";
        font-size: 1.3rem;
        font-weight: 300;
        color: var(--brand-accent);
        transition: transform 0.2s;
}

.admissions-faq[open] .admissions-faq-question::after { content: "−"; }

.admissions-faq-answer {
        padding: 0 20px 16px;
        font-size: 0.875rem;
        line-height: 1.7;
        color: #4a5568;
        border-top: 1px solid #e2eef4;
}

/* Contact CTA section */
.admissions-contact-cta {
        background: var(--brand-primary);
        color: #fff;
        padding: 56px 0;
}

.admissions-contact-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 48px;
        align-items: center;
}

.admissions-contact-text h2 {
        color: #fff;
        font-size: 1.6rem;
        margin: 0 0 12px;
}

.admissions-contact-text p {
        color: rgba(255,255,255,0.8);
        font-size: 0.9rem;
        line-height: 1.6;
        margin: 0;
}

.admissions-contact-details {
        display: flex;
        flex-direction: column;
        gap: 14px;
}

.admissions-contact-item {
        display: flex;
        align-items: center;
        gap: 12px;
        color: rgba(255,255,255,0.9);
        text-decoration: none;
        font-size: 0.9rem;
}

.admissions-contact-item:hover { color: #fff; }

.admissions-contact-icon {
        font-size: 1.2rem;
        flex-shrink: 0;
}

.admissions-contact-btn { margin-top: 8px; align-self: flex-start; }

@media (max-width: 900px) {
        .admissions-two-col,
        .admissions-contact-inner {
                grid-template-columns: 1fr;
        }
        .admissions-intake-cards { grid-template-columns: 1fr; }

        .schools-hero-layout,
        .school-row,
        .schools-next-step-grid {
                grid-template-columns: 1fr;
        }

        .schools-hero-copy,
        .school-row-body {
                padding: 28px 22px;
        }

        .schools-hero-media,
        .school-row-media {
                min-height: 220px;
        }

        .school-row--reverse .school-row-media,
        .school-row--reverse .school-row-body {
                order: initial;
        }
}

@media (max-width: 1260px) {
        .main-nav-links { flex-wrap: wrap; }
        .main-nav-links li a { padding: 10px 10px; font-size: 0.8rem; }
        .btn-apply { margin: 8px 0; font-size: 0.8rem; }

	.home-hero-content,
	.course-detail-hero-content {
		padding-top: 56px;
		padding-bottom: 64px;
	}
}

/* ── Counselling page ─────────────────────────────────────── */

/* Middle two-column section */
.c-mid-section { padding: 56px 0; }

.c-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}

/* Left: expertise */
.c-expertise { display: flex; flex-direction: column; gap: 18px; }

.c-photo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.c-photo {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

.c-photo-placeholder {
    background: linear-gradient(145deg, #cdd9e2 0%, #b8cad5 100%);
    border-radius: 8px;
}

.c-expertise-heading {
    font-size: clamp(1.3rem, 2vw, 1.9rem);
    color: var(--brand-primary);
    margin: 0;
}

.c-expertise-body { color: var(--muted); }

.c-cta-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.c-cta-btn { font-size: 0.85rem; padding: 10px 18px; }

/* Right: feature panel */
.c-feature-panel { display: flex; flex-direction: column; gap: 14px; }

.c-feature-heading {
    font-size: clamp(1.3rem, 2vw, 1.9rem);
    color: var(--brand-primary);
    margin: 0;
}

.c-feature-body { color: var(--muted); }

.c-feature-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

/* Services cards section */
.c-services-section {
    background: var(--brand-primary);
    padding: 60px 0;
}

.c-services-header {
    text-align: center;
    margin-bottom: 36px;
}

.c-services-header h2 {
    color: #fff;
    font-size: clamp(1.6rem, 2.5vw, 2.4rem);
    margin-bottom: 10px;
}

.c-services-subtitle {
    color: rgba(255, 255, 255, 0.72);
    font-size: 1rem;
    margin: 0 auto;
    max-width: 560px;
}

.c-services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.c-service-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.c-service-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--surface);
    border: 1px solid #deecf3;
    overflow: hidden;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.c-service-icon img { width: 100%; height: 100%; object-fit: cover; display: block; }

.c-service-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0;
}

.c-service-card p {
    font-size: 0.875rem;
    color: var(--muted);
    margin: 0;
    line-height: 1.55;
}

/* Health Insurance Partners */
.c-insurance-section {
    background: var(--surface);
    padding: 48px 0;
    border-top: 1px solid #deecf3;
}

.c-insurance-title {
    font-size: clamp(1.2rem, 2vw, 1.7rem);
    color: var(--brand-primary);
    text-align: center;
    margin: 0 0 28px;
}

.c-insurance-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.c-insurance-card {
    background: #fff;
    border: 1px solid #deecf3;
    border-radius: 8px;
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

.c-insurance-logo {
    height: 52px;
    max-width: 120px;
    object-fit: contain;
    display: block;
}

.c-insurance-logo-placeholder {
    height: 52px;
    width: 100px;
    background: #e2ecf3;
    border-radius: 4px;
}

.c-insurance-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text);
    line-height: 1.3;
}

/* ── Events pages ─────────────────────────────────────────── */

.events-filter-bar {
    background: var(--surface);
    padding: 20px 0;
    border-bottom: 1px solid #deecf3;
}

.events-filter-form {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.events-search-input {
    flex: 1 1 260px;
    padding: 10px 14px;
    border: 1px solid #cbd5e0;
    border-radius: 6px;
    font-size: 0.9rem;
    outline: none;
}

.events-date-filters {
    display: flex;
    gap: 8px;
}

.events-featured {
    padding: 48px 0 32px;
}

.events-featured-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
}

.event-featured-card {
    text-decoration: none;
    color: inherit;
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--white);
    border: 1px solid #deecf3;
    box-shadow: 0 4px 16px rgba(16, 51, 66, 0.07);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease;
}

.event-featured-card:hover { transform: translateY(-2px); }

.event-card-media {
    height: 180px;
    background-size: cover;
    background-position: center;
}

.event-card-media--placeholder { background: linear-gradient(145deg, #c8d9e3 0%, #afc4d0 100%); }

.event-card-body {
    padding: 16px;
    flex: 1;
}

.event-card-body h3 { font-size: 1.05rem; margin-bottom: 8px; color: var(--brand-primary); }
.event-meta-date, .event-meta-location { font-size: 0.85rem; color: var(--muted); margin: 4px 0; }

.events-list-section { padding: 32px 0 56px; }

.events-list {
    display: grid;
    gap: 12px;
    margin-top: 20px;
}

.event-list-item {
    display: grid;
    grid-template-columns: 120px 1fr auto;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s;
}

.event-list-item:hover { box-shadow: 0 8px 24px rgba(16,51,66,0.1); }

.event-list-thumb {
    height: 90px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
}

.event-list-thumb--placeholder { background: linear-gradient(145deg, #d0dde4 0%, #b8cdd7 100%); }

.event-list-body h3 { font-size: 1rem; margin-bottom: 6px; color: var(--brand-primary); }

.event-list-meta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 0.82rem;
    color: var(--muted);
}

.event-list-arrow { color: var(--brand-accent); font-size: 1.2rem; }

/* Event detail */
.event-highlights-list {
    margin: 12px 0;
    padding-left: 20px;
    line-height: 1.8;
    color: var(--text);
}

.event-speakers-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.event-speaker-card { text-align: center; padding: 16px; }
.event-speaker-card .avatar { margin: 0 auto 8px; }

/* ── Insights / Blog pages ────────────────────────────────── */

/* Blog Index Hero */
.blog-index-hero {
    position: relative;
    overflow: hidden;
    background: var(--brand-primary);
    color: var(--white);
    min-height: 380px;
    display: flex;
    align-items: flex-end;
}

.blog-index-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.9;
}

.blog-index-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(24, 58, 119, 0.88) 0%, rgba(24, 58, 119, 0.64) 50%, rgba(24, 58, 119, 0.3) 100%);
}

.blog-index-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 72px;
    padding-bottom: 80px;
}

.blog-index-hero .eyebrow {
    color: #d2ecf8;
}

.blog-index-hero h1 {
    font-size: clamp(2rem, 4vw, 3.5rem);
    color: #f5fbff;
    max-width: 700px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.blog-index-hero .lead {
    color: #e2f3fa;
    font-size: 1rem;
    max-width: 560px;
}

/* Blog Filter Bar */
.blog-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 20px 0 8px;
    border-bottom: 1px solid #deecf3;
    margin-bottom: 28px;
}

.blog-filter-bar .chip-row {
    margin-top: 0;
}

.blog-filter-bar .chip {
    padding: 8px 16px;
    border: 1px solid #c8dce8;
    border-radius: 4px;
    color: var(--brand-primary);
    background: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.blog-filter-bar .chip:hover {
    background: var(--surface);
}

.blog-filter-bar .chip.active {
    background: var(--brand-primary);
    color: #fff;
    border-color: var(--brand-primary);
}

.blog-search-form {
    display: flex;
    align-items: center;
    border: 1px solid #c8dce8;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

.blog-search-form input {
    border: none;
    outline: none;
    padding: 8px 12px;
    font-size: 0.875rem;
    color: var(--text);
    background: transparent;
    width: 200px;
}

.blog-search-form button {
    border: none;
    background: transparent;
    padding: 8px 12px;
    cursor: pointer;
    color: var(--muted);
    font-size: 1rem;
}

.blog-filter-label {
    font-size: 0.875rem;
    margin: 0 0 16px;
}

/* Blog Post Grid */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 32px;
}

.blog-card {
    background: #fff;
    border: 1px solid #deecf3;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(16, 51, 66, 0.05);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s, transform 0.2s;
}

.blog-card:hover {
    box-shadow: 0 10px 30px rgba(16, 51, 66, 0.12);
    transform: translateY(-2px);
}

.blog-card-img-link {
    display: block;
    overflow: hidden;
}

.blog-card-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.blog-card:hover .blog-card-img {
    transform: scale(1.03);
}

.blog-card-img--placeholder {
    background: linear-gradient(145deg, #c8d9e4 0%, #afc4d0 100%);
    height: 220px;
}

.blog-card-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
}

.blog-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.chip--sm {
    padding: 3px 10px;
    border-radius: 3px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    background: #e6f3f9;
    color: var(--brand-primary);
    border: none;
}

.chip--sm:hover {
    background: #d0e8f4;
}

.blog-card-date,
.blog-card-read {
    font-size: 0.82rem;
}

.blog-card-title {
    font-size: 1.08rem;
    margin: 0;
    line-height: 1.3;
}

.blog-card-title a {
    color: var(--text);
    text-decoration: none;
    font-weight: 700;
}

.blog-card-title a:hover {
    color: var(--brand-primary);
}

.blog-card-summary {
    font-size: 0.875rem;
    color: var(--muted);
    margin: 0;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.blog-card-cta {
    margin-top: auto;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
    text-decoration: none;
}

.blog-card-cta:hover {
    text-decoration: underline;
}

.blog-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 48px 20px;
    color: var(--muted);
}

/* Pagination */
.pagination-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 32px 0;
}

.pagination-btn {
    padding: 8px 18px;
    border: 1px solid #c8dce8;
    border-radius: 4px;
    color: var(--brand-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.875rem;
    transition: background 0.15s;
}

.pagination-btn:hover {
    background: var(--surface);
}

.pagination-info {
    font-size: 0.875rem;
    color: var(--muted);
}

/* Blog Post Detail — Hero */
.blog-post-hero {
    position: relative;
    overflow: hidden;
    background: var(--brand-primary);
    color: var(--white);
    min-height: 420px;
    display: flex;
    align-items: flex-end;
}

.blog-post-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.85;
}

.blog-post-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(10, 30, 70, 0.88) 0%, rgba(10, 30, 70, 0.5) 50%, rgba(10, 30, 70, 0.15) 100%);
}

.blog-post-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 80px;
    padding-bottom: 52px;
}

.blog-post-eyebrow {
    color: #d2ecf8;
    text-decoration: none;
    display: inline-block;
    margin-bottom: 10px;
}

.blog-post-eyebrow:hover {
    color: #fff;
}

.blog-post-hero h1 {
    font-size: clamp(1.8rem, 4vw, 3rem);
    color: #f5fbff;
    max-width: 780px;
    line-height: 1.15;
    margin-bottom: 14px;
}

.blog-post-hero-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.875rem;
}

.meta-sep {
    color: rgba(255, 255, 255, 0.5);
}

/* Blog Post Layout */
.blog-post-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 32px;
    align-items: start;
    padding-top: 40px;
    padding-bottom: 48px;
}

/* Blog Post Main */
.blog-post-summary {
    font-size: 1.1rem;
    color: var(--muted);
    line-height: 1.7;
    margin-bottom: 24px;
    font-style: italic;
    border-left: 3px solid var(--brand-accent);
    padding-left: 16px;
}

.blog-post-body {
    font-size: 1rem;
    line-height: 1.78;
    color: var(--text);
}

.blog-post-body h2,
.blog-post-body h3 {
    margin-top: 32px;
    margin-bottom: 12px;
    color: var(--brand-primary);
}

.blog-post-body p {
    margin-bottom: 20px;
}

.blog-post-body blockquote {
    border-left: 4px solid var(--brand-gold);
    margin: 24px 0;
    padding: 16px 20px;
    background: #fffbf0;
    border-radius: 0 4px 4px 0;
    font-style: italic;
    color: #4a4020;
    font-size: 1.05rem;
    line-height: 1.7;
}

.blog-post-body ul,
.blog-post-body ol {
    padding-left: 24px;
    margin-bottom: 20px;
}

.blog-post-body li {
    margin-bottom: 6px;
    line-height: 1.65;
}

.blog-post-body img {
    max-width: 100%;
    border-radius: 6px;
    margin: 8px 0;
}

.blog-post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 36px;
    padding-top: 24px;
    border-top: 1px solid #e2ecf3;
}

/* Blog Post Sidebar */
.blog-post-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 90px;
}

.sidebar-widget {
    background: #fff;
    border: 1px solid #deecf3;
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: 0 4px 14px rgba(16, 51, 66, 0.05);
}

.sidebar-widget-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 14px;
}

/* Share icons */
.share-icons {
    display: flex;
    gap: 10px;
}

.share-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    text-decoration: none;
    transition: opacity 0.15s, transform 0.15s;
}

.share-icon:hover {
    opacity: 0.85;
    transform: translateY(-1px);
}

.share-icon--facebook { background: #1877f2; color: #fff; }
.share-icon--twitter  { background: #000; color: #fff; }
.share-icon--linkedin { background: #0a66c2; color: #fff; }
.share-icon--whatsapp { background: #25d366; color: #fff; }

/* Contributors */
.contributor {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.contributor:last-child {
    margin-bottom: 0;
}

.contributor-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid #d4e9f4;
}

.contributor-avatar--placeholder {
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.02em;
}

.contributor-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.contributor-info strong {
    font-size: 0.88rem;
    color: var(--text);
    line-height: 1.3;
}

.contributor-info .muted {
    font-size: 0.78rem;
}

/* Subscribe form */
.subscribe-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.subscribe-form input[type="email"] {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #c8dce8;
    border-radius: 4px;
    font-size: 0.875rem;
    outline: none;
    color: var(--text);
    background: #f8fbfd;
    transition: border-color 0.15s;
}

.subscribe-form input[type="email"]:focus {
    border-color: var(--brand-accent);
    background: #fff;
}

.subscribe-btn {
    width: 100%;
    justify-content: center;
    border-radius: 4px;
    padding: 10px;
    font-size: 0.875rem;
}

.subscribe-note {
    font-size: 0.78rem;
    margin: 6px 0 0;
}

/* WhatsApp CTA */
.btn-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 10px 16px;
    background: #25d366;
    color: #fff;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.875rem;
    transition: background 0.15s;
}

.btn-whatsapp:hover {
    background: #1ebe59;
    color: #fff;
}

.sidebar-cta p {
    font-size: 0.875rem;
    margin: 0 0 12px;
}

/* Related Posts Section */
.blog-related {
    background: var(--surface);
    border-top: 1px solid #deecf3;
    padding: 48px 0 56px;
}

.blog-related-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}

.blog-related-header h2 {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    color: var(--brand-primary);
    margin: 0 0 4px;
}

.blog-related-header .lead {
    font-size: 0.9rem;
    margin: 0;
}

.blog-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

/* Responsive */
@media (max-width: 900px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }

    .blog-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .blog-post-layout {
        grid-template-columns: 1fr;
    }

    .blog-post-sidebar {
        position: static;
    }
}

@media (max-width: 600px) {
    .blog-related-grid {
        grid-template-columns: 1fr;
    }

    .blog-filter-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .blog-related-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ── Careers page ─────────────────────────────────────────── */

.careers-hero {
    position: relative;
    overflow: hidden;
    background: var(--brand-primary);
    color: var(--white);
    min-height: 400px;
    display: flex;
    align-items: flex-end;
}

.careers-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.82;
}

.careers-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(24,58,119,0.90) 0%, rgba(24,58,119,0.60) 50%, rgba(24,58,119,0.25) 100%);
}

.careers-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 80px;
    padding-bottom: 72px;
}

.careers-hero h1 {
    font-size: clamp(2rem, 4vw, 3.4rem);
    color: #f5fbff;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    max-width: 680px;
}

.careers-hero .lead { color: #e2f3fa; max-width: 540px; }
.careers-hero .eyebrow { color: #d2ecf8; }

/* Section header */
.careers-listings { padding-top: 48px; padding-bottom: 56px; }

.careers-section-header {
    text-align: center;
    margin-bottom: 32px;
}

.careers-section-header h2 {
    font-size: clamp(1.5rem, 2.5vw, 2.2rem);
    color: var(--brand-primary);
    margin: 0 0 8px;
}

.careers-section-sub {
    color: var(--muted);
    font-size: 0.95rem;
    margin: 0 0 6px;
}

/* Job list */
.careers-job-list { display: flex; flex-direction: column; gap: 12px; }

.careers-job-item {
    padding: 0;
    border-radius: var(--radius);
    overflow: hidden;
}

.careers-job-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px;
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background 0.15s;
}

.careers-job-summary::-webkit-details-marker { display: none; }

.careers-job-item[open] .careers-job-summary {
    background: var(--surface);
    border-bottom: 1px solid #deecf3;
}

.careers-job-summary:hover { background: var(--surface); }

.careers-job-meta { flex: 1; min-width: 0; }

.careers-job-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 8px;
}

.careers-job-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.careers-tag {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 3px;
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
}

.careers-tag--exp {
    background: #183a77;
    color: #fff;
}

.careers-tag--dept { background: #e8f0fb; color: #1a3f8a; border-color: #c5d8f5; }
.careers-tag--campus { background: #f0f7fb; color: #1a4f6b; border-color: #b5d8ec; }
.careers-tag--type { background: #f6f9e8; color: #3a5a00; border-color: #c9dea0; }

/* Toggle label */
.careers-toggle-label::after {
    content: "View Details";
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--brand-accent);
    white-space: nowrap;
}

.careers-job-item[open] .careers-toggle-label::after {
    content: "Hide Details";
}

/* Job body */
.careers-job-body {
    padding: 22px 24px 28px;
}

.careers-job-section { margin-bottom: 20px; }

.careers-job-section h4 {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.careers-job-cta { margin-top: 24px; }

.careers-empty { text-align: center; padding: 40px; color: var(--muted); }

@media (max-width: 640px) {
    .careers-job-summary { flex-direction: column; align-items: flex-start; }
    .careers-toggle-label { align-self: flex-end; }
}

/* ── Alumni pages ─────────────────────────────────────────── */

/* Index hero */
.alumni-hero {
    position: relative;
    overflow: hidden;
    background: var(--brand-primary);
    color: var(--white);
    min-height: 460px;
    display: flex;
    align-items: flex-end;
}

.alumni-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center top;
    opacity: 0.8;
}

.alumni-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(24,58,119,0.88) 0%, rgba(24,58,119,0.55) 55%, rgba(24,58,119,0.15) 100%);
}

.alumni-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 80px;
    padding-bottom: 72px;
}

.alumni-hero-eyebrow { color: #d2ecf8; }
.alumni-hero h1 { font-size: clamp(2rem, 5vw, 3.8rem); color: #f5fbff; max-width: 740px; text-transform: uppercase; letter-spacing: 0.02em; }
.alumni-hero .lead { color: #e2f3fa; max-width: 580px; }

/* Stats bar */
.alumni-stats-bar {
    background: var(--brand-primary);
    padding: 0;
}

.alumni-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding-top: 0;
    padding-bottom: 0;
}

.alumni-stat {
    padding: 28px 20px;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,0.15);
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: linear-gradient(180deg, #1e4a96 0%, #183a77 100%);
}

.alumni-stat:last-child { border-right: none; }

.alumni-stat strong {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    color: #f5fbff;
    line-height: 1;
}

.alumni-stat span {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.72);
    line-height: 1.35;
}

/* Featured section */
.alumni-featured-section { padding-top: 56px; padding-bottom: 48px; }

.alumni-section-header {
    text-align: center;
    margin-bottom: 36px;
}

.alumni-section-header h2 {
    font-size: clamp(1.5rem, 2.5vw, 2.2rem);
    color: var(--brand-primary);
    margin: 0 0 8px;
}

/* Alumni card grid */
.alumni-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.alumni-card {
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
    padding: 0;
    transition: box-shadow 0.2s, transform 0.2s;
}

.alumni-card:hover {
    box-shadow: 0 10px 32px rgba(16,51,66,0.12);
    transform: translateY(-2px);
}

.alumni-card-photo-wrap {
    position: relative;
    height: 240px;
    overflow: hidden;
    background: #dce8f0;
    flex-shrink: 0;
}

.alumni-card-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.alumni-card-photo--placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #d0dde4 0%, #b8cdd7 100%);
    font-size: 3rem;
    font-weight: 700;
    color: var(--brand-primary);
    font-family: "Source Serif 4", Georgia, serif;
}

.alumni-year-badge {
    position: absolute;
    bottom: 10px;
    left: 12px;
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 3px;
}

.alumni-card-body {
    padding: 18px 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.alumni-card-name { font-size: 1.05rem; margin: 0; }
.alumni-card-name a { color: var(--text); text-decoration: none; font-weight: 700; }
.alumni-card-name a:hover { color: var(--brand-primary); }

.alumni-card-role { font-size: 0.85rem; margin: 0; }

.alumni-card-quote {
    font-style: italic;
    font-size: 0.875rem;
    color: #4a5568;
    border-left: 3px solid var(--brand-accent);
    margin: 6px 0 0;
    padding-left: 10px;
    line-height: 1.55;
}

.alumni-card-programme {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-accent);
    margin: 4px 0 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* All alumni listing */
.alumni-all-section {
    background: var(--surface);
    border-top: 1px solid #deecf3;
    padding: 40px 0 48px;
}

.alumni-all-section h2 {
    font-size: clamp(1.3rem, 2vw, 1.8rem);
    color: var(--brand-primary);
    margin: 0 0 20px;
}

.alumni-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.alumni-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #deecf3;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s;
}

.alumni-list-item:hover { box-shadow: 0 4px 14px rgba(16,51,66,0.1); }

.alumni-list-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid #d4e9f4;
}

.alumni-list-avatar--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #c8d9e4 0%, #afc4d0 100%);
    color: var(--brand-primary);
    font-weight: 700;
    font-size: 1.1rem;
}

.alumni-list-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.alumni-list-info strong { font-size: 0.88rem; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alumni-list-info span { font-size: 0.78rem; }

/* Alumnus detail page */
.alumnus-hero {
    position: relative;
    background: linear-gradient(160deg, #0f2a5e 0%, #183a77 100%);
    color: #fff;
    padding: 56px 0 48px;
}

.alumnus-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(15,42,94,0.5) 0%, transparent 70%);
    pointer-events: none;
}

.alumnus-hero-content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
}

.alumnus-hero-photo-wrap { flex-shrink: 0; }

.alumnus-hero-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid rgba(255,255,255,0.3);
}

.alumnus-hero-photo--placeholder {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 4px solid rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    font-weight: 700;
    color: #fff;
}

.alumnus-hero-info { flex: 1; min-width: 260px; }
.alumnus-hero-info .eyebrow { color: #d2ecf8; }
.alumnus-hero-info h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); color: #f5fbff; margin: 6px 0 8px; }
.alumnus-hero-info .lead { color: rgba(255,255,255,0.85); font-size: 1rem; margin: 0 0 6px; }
.alumnus-hero-info .muted { color: rgba(255,255,255,0.65); font-size: 0.875rem; margin: 0 0 10px; }

.alumnus-programme-badge {
    display: inline-block;
    background: var(--brand-gold);
    color: #fff;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 3px;
    margin-bottom: 14px;
}

.alumnus-linkedin-btn {
    font-size: 0.875rem;
    padding: 8px 16px;
    border-radius: 4px;
}

/* Alumnus body layout */
.alumnus-body-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
    gap: 28px;
    align-items: start;
    padding-top: 40px;
    padding-bottom: 48px;
}

.alumnus-featured-quote {
    font-style: italic;
    font-size: 1.15rem;
    color: var(--brand-primary);
    border-left: 4px solid var(--brand-gold);
    padding: 16px 20px;
    margin: 0 0 28px;
    background: #fffbf0;
    border-radius: 0 4px 4px 0;
    line-height: 1.65;
}

.alumnus-bio { font-size: 1rem; line-height: 1.78; color: var(--text); }

.alumnus-detail-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.alumnus-detail-list li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-bottom: 10px;
    border-bottom: 1px solid #deecf3;
}

.alumnus-detail-list li:last-child { border-bottom: none; padding-bottom: 0; }

.alumnus-detail-list span { font-size: 0.78rem; color: var(--muted); }
.alumnus-detail-list strong { font-size: 0.88rem; color: var(--text); }

.alumnus-back { padding-bottom: 32px; font-size: 0.875rem; }
.alumnus-back a { color: var(--brand-primary); font-weight: 600; text-decoration: none; }
.alumnus-back a:hover { text-decoration: underline; }

/* Responsive */
@media (max-width: 900px) {
    .alumni-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .alumni-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .alumni-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .alumnus-body-layout { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .alumni-grid { grid-template-columns: 1fr; }
    .alumni-list-grid { grid-template-columns: 1fr; }
    .alumni-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .alumnus-hero-content { flex-direction: column; text-align: center; }
}
