/* KAUST Academy blocks. Uses the theme's design tokens with safe fallbacks
   and logical properties throughout, so Arabic (RTL) mirrors automatically. */

:root {
	--ka-primary: var(--wp--preset--color--primary, #00264c);
	--ka-secondary: var(--wp--preset--color--secondary, #11589e);
	--ka-accent: var(--wp--preset--color--accent, #f0b500);
	--ka-teal: var(--wp--preset--color--teal, #0e6a6c);
	--ka-surface: var(--wp--preset--color--surface, #f7f5f2);
	--ka-surface-2: var(--wp--preset--color--surface-2, #eef6ff);
	--ka-base: var(--wp--preset--color--base, #fff);
	--ka-text: var(--wp--preset--color--contrast, #0b1b2b);
	--ka-muted: var(--wp--preset--color--muted, #4a5868);
	--ka-border: var(--wp--preset--color--border, #dde3ea);
	--ka-success: #0f7b3d;
	--ka-error: #b42318;
	--ka-radius-sm: var(--wp--custom--radius--sm, 8px);
	--ka-radius: var(--wp--custom--radius--md, 14px);
	--ka-radius-lg: var(--wp--custom--radius--lg, 24px);
	--ka-shadow: 0 1px 2px rgb(0 38 76 / 6%), 0 8px 24px rgb(0 38 76 / 8%);
	--ka-heading: var(--wp--preset--font-family--heading, system-ui, sans-serif);
	/* Chart series: brand-derived, validated for colour-vision deficiency on adjacent pairs. */
	--ka-series-1: #11589e;
	--ka-series-2: #f09021;
	--ka-series-3: #169da1;
	--ka-series-4: #e0a800;
	--ka-series-5: #c32aa3;
	--ka-series-6: #6b7a00;
	--ka-series-7: #c9d1db; /* "Unknown" */
	--ka-grid: #e6eaef;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.ka-icon { flex: none; vertical-align: middle; }
.ka-muted { color: var(--ka-muted); font-style: italic; }
.ka-empty {
	background: var(--ka-surface);
	border-radius: var(--ka-radius);
	color: var(--ka-muted);
	padding: 2rem;
	text-align: center;
}

/* Buttons --------------------------------------------------------------- */
.ka-button {
	align-items: center;
	box-sizing: border-box;
	background: var(--ka-primary);
	border: 2px solid var(--ka-primary);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: 600 1rem/1.2 var(--ka-heading);
	gap: 0.5em;
	justify-content: center;
	min-height: 48px;
	padding: 0.7em 1.4em;
	text-decoration: none;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.ka-button:hover,
.ka-button:focus-visible { background: var(--ka-secondary); border-color: var(--ka-secondary); color: #fff; }
.ka-button:focus-visible,
.ka-filter__btn:focus-visible,
.ka-seg__btn:focus-visible { outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 2px; }
.ka-button--ghost { background: transparent; color: var(--ka-primary); }
.ka-button--ghost:hover,
.ka-button--ghost:focus-visible { background: var(--ka-surface-2); border-color: var(--ka-primary); color: var(--ka-primary); }
.ka-button--small { font-size: 0.9375rem; min-height: 44px; padding: 0.55em 1.1em; }

.ka-badge {
	border-radius: 999px;
	display: inline-block;
	font: 600 0.8125rem/1 var(--ka-heading);
	letter-spacing: 0.02em;
	padding: 0.45em 0.85em;
}
.ka-badge--open { background: #dcf5e6; color: #0b5d2e; }
.ka-badge--coming-soon { background: #fff2cc; color: #6b4e00; }
.ka-badge--closed { background: #eceff3; color: #3c4856; }

.ka-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ka-chip {
	background: rgb(255 255 255 / 14%);
	border: 1px solid currentcolor;
	border-radius: 999px;
	color: inherit;
	font-size: 0.875rem;
	padding: 0.3em 0.9em;
	text-decoration: none;
}

/* Program facts box ------------------------------------------------------- */
.ka-program-facts {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius-lg);
	box-shadow: var(--ka-shadow);
	display: grid;
	gap: 1.25rem;
	padding: 1.5rem;
}
.ka-program-facts .ka-badge { justify-self: start; }
.ka-program-facts__list { display: grid; gap: 1rem; margin: 0; }
.ka-program-facts__list dt {
	align-items: center;
	color: var(--ka-muted);
	display: flex;
	font-size: 0.875rem;
	gap: 0.4rem;
	margin-block-end: 0.15rem;
}
.ka-program-facts__list dd { font-weight: 600; margin: 0; }
.ka-program-facts .ka-button { width: 100%; }
.ka-testimonial-meta { color: var(--ka-muted); font-size: 0.9375rem; margin: 0; }
.ka-testimonial-meta a { color: inherit; }

/* Filters & segmented controls ------------------------------------------- */
.ka-filter,
.ka-seg { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block-end: 1.5rem; }
.ka-filter__btn,
.ka-seg__btn {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: 999px;
	color: var(--ka-text);
	cursor: pointer;
	font: 500 0.9375rem/1.2 inherit;
	min-height: 44px;
	padding: 0.55em 1.1em;
}
.ka-filter__btn:hover,
.ka-seg__btn:hover { border-color: var(--ka-primary); }
.ka-filter__btn[aria-pressed="true"],
.ka-seg__btn[aria-pressed="true"] { background: var(--ka-primary); border-color: var(--ka-primary); color: #fff; }
.ka-seg { margin-block-end: 1rem; }
.ka-seg__btn { font-size: 0.875rem; min-height: 40px; }
[data-ka-filtered] { display: none !important; }

.ka-select { display: inline-grid; position: relative; }
.ka-select select {
	appearance: none;
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius-sm);
	color: var(--ka-text);
	font: inherit;
	min-height: 48px;
	padding-block: 0.6em;
	padding-inline: 1em 2.75em;
	width: 100%;
}
.ka-select select:focus-visible { border-color: var(--ka-primary); outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 1px; }
.ka-select .ka-icon { inset-block-start: 50%; inset-inline-end: 0.9em; pointer-events: none; position: absolute; translate: 0 -50%; }

/* Forms (Contact Form 7) --------------------------------------------------- */
.ka-form .wpcf7-form { display: grid; }
.ka-form label { display: grid; font-weight: 600; gap: 0.35rem; }
.ka-form input:not([type="submit"]):not([type="checkbox"]),
.ka-form textarea,
.ka-form select {
	background: var(--ka-base);
	border: 1px solid #b9c3cf;
	border-radius: var(--ka-radius-sm);
	color: var(--ka-text);
	font: inherit;
	font-weight: 400;
	min-height: 48px;
	padding: 0.7em 0.9em;
	width: 100%;
}
.ka-form :where(input, textarea, select) { box-sizing: border-box; max-width: 100%; }
.ka-form textarea { min-height: 9rem; resize: vertical; }
.ka-form__row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .ka-form__row { grid-template-columns: 1fr 1fr; } }
.ka-form__row > p, .ka-form .wpcf7-form > p { margin: 0; }
.ka-form__consent { color: var(--ka-muted); font-size: 0.875rem; margin: 0; }
/* Error messages sit in reserved space, so nothing shifts while someone is
   clicking "Send" (a moving button would swallow the click). */
.ka-form .wpcf7-form-control-wrap { display: block; padding-block-end: 1.35rem; position: relative; }
.ka-form .wpcf7-not-valid-tip { inset-block-end: 0; inset-inline-start: 0; line-height: 1.3rem; position: absolute; white-space: nowrap; }
.ka-form .wpcf7-form { gap: 0.35rem; }
.ka-form__row { column-gap: 1rem; row-gap: 0.35rem; }
.ka-form .wpcf7-submit {
	background: var(--ka-primary);
	border: 2px solid var(--ka-primary);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	font: 600 1rem/1.2 var(--ka-heading);
	min-height: 48px;
	padding: 0.7em 1.6em;
}
.ka-form .wpcf7-submit:hover,
.ka-form .wpcf7-submit:focus-visible { background: var(--ka-secondary); border-color: var(--ka-secondary); }
.ka-form input:focus-visible,
.ka-form textarea:focus-visible { border-color: var(--ka-primary); outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 1px; }
.ka-form .wpcf7-submit { justify-self: start; }
.ka-form .wpcf7-spinner { margin-inline: 0.75rem; }
.ka-form .wpcf7-not-valid-tip { color: var(--ka-error); font-size: 0.875rem; font-weight: 500; }
.ka-form .wpcf7-response-output { border-radius: var(--ka-radius-sm); margin: 0 !important; padding: 0.8em 1em !important; }

/* Contact & socials ------------------------------------------------------- */
.ka-contact { display: grid; gap: 0.75rem; list-style: none; margin: 0 0 1.5rem; padding: 0; }
.ka-contact li { display: grid; }
.ka-contact__label { color: var(--ka-muted); font-size: 0.875rem; }
.ka-contact a { font-size: 1.125rem; font-weight: 600; }
.ka-socials { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.ka-socials a {
	align-items: center;
	border: 1px solid currentcolor;
	border-radius: 50%;
	color: inherit;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	transition: background-color 0.15s, color 0.15s;
	width: 44px;
}
.ka-socials a:hover,
.ka-socials a:focus-visible { background: var(--ka-accent); border-color: var(--ka-accent); color: var(--ka-primary); }

/* Notices ------------------------------------------------------------------ */
.ka-notice {
	align-items: flex-start;
	border-radius: var(--ka-radius);
	display: flex;
	gap: 0.85rem;
	padding: 1rem 1.25rem;
}
.ka-notice p { margin: 0; }
.ka-notice__title { font-weight: 700; }
.ka-notice--success { background: #e3f6ea; color: #094d27; }
.ka-notice--error { background: #fde8e6; color: #7a1a12; }
.ka-notice code { background: rgb(0 0 0 / 6%); border-radius: 4px; padding: 0.1em 0.35em; }

/* Certificate verification ------------------------------------------------ */
.ka-verify-wrap { display: grid; gap: 2rem; }
.ka-verify {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius-lg);
	box-shadow: var(--ka-shadow);
	padding: clamp(1.25rem, 4vw, 2rem);
}
.ka-verify__label { display: block; font: 600 1.125rem/1.3 var(--ka-heading); margin-block-end: 0.75rem; }
.ka-verify__row { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.ka-verify__input {
	border: 1px solid #b9c3cf;
	border-radius: 999px;
	flex: 1 1 16rem;
	font: 600 1.125rem/1 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	letter-spacing: 0.06em;
	min-height: 52px;
	padding: 0 1.25rem;
	text-transform: uppercase;
}
.ka-verify__input::placeholder { color: #8a95a3; font-weight: 500; }
.ka-verify__input:focus-visible { border-color: var(--ka-primary); outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 1px; }
.ka-verify__help { color: var(--ka-muted); font-size: 0.9375rem; margin: 0.75rem 0 0; }
.ka-verify-result { display: grid; gap: 1.25rem; }

.ka-certificate {
	background:
		radial-gradient(circle at 100% 0, rgb(240 181 0 / 14%), transparent 40%),
		radial-gradient(circle at 0 100%, rgb(27 197 201 / 12%), transparent 45%),
		#fffdf8;
	border-radius: var(--ka-radius-lg);
	box-shadow: var(--ka-shadow);
	padding: clamp(0.6rem, 2vw, 1rem);
	position: relative;
}
.ka-certificate__frame {
	border: 2px solid var(--ka-primary);
	border-radius: calc(var(--ka-radius-lg) - 6px);
	outline: 1px solid rgb(0 38 76 / 25%);
	outline-offset: -8px;
	overflow: hidden;
	padding: clamp(1.5rem, 6vw, 3.5rem) clamp(1.25rem, 5vw, 3.5rem);
	position: relative;
	text-align: center;
}
.ka-certificate__head { display: grid; gap: 0.75rem; justify-items: center; margin-block-end: 1.5rem; }
.ka-certificate__logo { height: auto; max-width: 220px; }
.ka-certificate__brand { color: var(--ka-primary); font: 700 1.5rem/1 var(--ka-heading); margin: 0; }
.ka-certificate__kicker {
	color: var(--ka-secondary);
	font: 600 0.875rem/1 var(--ka-heading);
	letter-spacing: 0.18em;
	margin: 0;
	text-transform: uppercase;
}
:lang(ar) .ka-certificate__kicker { font-size: 1rem; letter-spacing: 0; }
.ka-certificate__lead { color: var(--ka-muted); margin: 0.5rem 0; }
.ka-certificate__name {
	color: var(--ka-primary);
	font: 700 clamp(1.75rem, 5vw, 2.75rem)/1.15 var(--ka-heading);
	margin: 0.25rem 0 0.75rem;
}
.ka-certificate__program { color: var(--ka-text); font: 600 clamp(1.25rem, 3.5vw, 1.625rem)/1.3 var(--ka-heading); margin: 0.25rem 0 0; }
.ka-certificate__facts {
	border-block: 1px solid var(--ka-border);
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	margin: 2rem 0 1.5rem;
	padding-block: 1.25rem;
}
.ka-certificate__facts dt { color: var(--ka-muted); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; }
:lang(ar) .ka-certificate__facts dt { letter-spacing: 0; text-transform: none; }
.ka-certificate__facts dd { font-weight: 600; margin: 0.25rem 0 0; }
.ka-certificate__foot { align-items: baseline; color: var(--ka-muted); display: flex; flex-wrap: wrap; font-size: 0.875rem; gap: 0.5rem; justify-content: center; }
.ka-certificate__foot code { color: var(--ka-primary); font-size: 1rem; font-weight: 700; letter-spacing: 0.06em; }
.ka-certificate.is-revoked .ka-certificate__frame { border-color: var(--ka-error); }
.ka-certificate.is-revoked .ka-certificate__name,
.ka-certificate.is-revoked .ka-certificate__program { color: #6b7480; }
.ka-certificate__stamp {
	border: 4px solid var(--ka-error);
	border-radius: 8px;
	color: var(--ka-error);
	font: 800 clamp(1.5rem, 6vw, 3rem)/1 var(--ka-heading);
	inset: 50% auto auto 50%;
	letter-spacing: 0.12em;
	opacity: 0.35;
	padding: 0.2em 0.5em;
	pointer-events: none;
	position: absolute;
	rotate: -14deg;
	text-transform: uppercase;
	translate: -50% -50%;
}
.ka-certificate-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }

/* The real certificate: an image of its PDF, opening the PDF when clicked. */
.ka-certificate-real { margin: 0; }
.ka-certificate-real a { display: block; }
.ka-certificate-real img { block-size: auto; border-radius: 4px; box-shadow: 0 10px 30px rgb(0 26 54 / 16%), 0 1px 3px rgb(0 26 54 / 12%); display: block; inline-size: 100%; }

@media print {
	body * { visibility: hidden; }
	.ka-certificate, .ka-certificate *, .ka-certificate-real, .ka-certificate-real * { visibility: visible; }
	.ka-certificate, .ka-certificate-real { box-shadow: none; inset: 0; position: absolute; }
	.ka-certificate-real img { box-shadow: none; }
}

/* Media page gallery -------------------------------------------------------- */
.ka-gallery__bar {
	align-items: center;
	background: var(--ka-surface);
	border-radius: var(--ka-radius);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin-block-end: 1.75rem;
	padding: 1rem 1.25rem;
}
.ka-gallery__bar label { font: 600 1rem/1.2 var(--ka-heading); }
.ka-gallery__bar .ka-select { flex: 1 1 18rem; max-width: 30rem; }
.ka-gallery__panel + .ka-gallery__panel { margin-block-start: 3rem; }
.ka-gallery.is-enhanced .ka-gallery__panel + .ka-gallery__panel { margin-block-start: 0; }
.ka-gallery.is-enhanced .ka-gallery__program { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.ka-gallery__program { font-size: 1.5rem; margin: 0 0 1rem; }
.ka-gallery__album + .ka-gallery__album { margin-block-start: 2.5rem; }
.ka-gallery__album-head { align-items: baseline; display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; justify-content: space-between; margin-block-end: 1rem; }
.ka-gallery__album-head h4 { font-size: 1.25rem; margin: 0; }
.ka-gallery__album-head span { color: var(--ka-muted); font-size: 0.9375rem; }
.ka-gallery__grid {
	display: grid;
	gap: 0.5rem;
	grid-template-columns: repeat(2, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 700px) { .ka-gallery__grid { gap: 0.75rem; grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .ka-gallery__grid { grid-template-columns: repeat(4, 1fr); } }
.ka-gallery__item {
	aspect-ratio: 4 / 3;
	background: var(--ka-surface);
	border-radius: var(--ka-radius-sm);
	display: block;
	overflow: hidden;
}
.ka-gallery__item img { display: block; height: 100%; object-fit: cover; transition: scale 0.3s ease; width: 100%; }
.ka-gallery__item:hover img,
.ka-gallery__item:focus-visible img { scale: 1.04; }
.ka-gallery__item:focus-visible { outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 2px; }

.ka-lightbox {
	background: rgb(4 14 26 / 96%);
	border: 0;
	color: #fff;
	height: 100%;
	inset: 0;
	margin: 0;
	max-height: none;
	max-width: none;
	padding: 0;
	width: 100%;
}
.ka-lightbox::backdrop { background: transparent; }
.ka-lightbox__inner { display: grid; grid-template-rows: auto 1fr auto; height: 100%; }
.ka-lightbox__top,
.ka-lightbox__bottom { align-items: center; display: flex; gap: 0.75rem; justify-content: space-between; padding: 0.75rem 1rem; }
.ka-lightbox__count { font-variant-numeric: tabular-nums; opacity: 0.85; }
.ka-lightbox__stage { align-items: center; display: flex; justify-content: center; min-height: 0; padding: 0 0.5rem; position: relative; }
.ka-lightbox__img { max-height: 100%; max-width: 100%; object-fit: contain; }
.ka-lightbox__caption { flex: 1; font-size: 0.9375rem; margin: 0; opacity: 0.9; }
.ka-lightbox button,
.ka-lightbox__download {
	align-items: center;
	background: rgb(255 255 255 / 12%);
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: 600 0.9375rem/1 inherit;
	gap: 0.5rem;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	padding: 0 1rem;
	text-decoration: none;
}
.ka-lightbox button:hover,
.ka-lightbox__download:hover,
.ka-lightbox button:focus-visible,
.ka-lightbox__download:focus-visible { background: var(--ka-accent); color: var(--ka-primary); }
.ka-lightbox__nav { inset-block-start: 50%; padding: 0 !important; position: absolute; translate: 0 -50%; width: 48px; }
.ka-lightbox__nav--prev { inset-inline-start: 0.75rem; }
.ka-lightbox__nav--next { inset-inline-end: 0.75rem; }
[dir="rtl"] .ka-lightbox__nav .ka-icon { scale: -1 1; }

/* Reports -------------------------------------------------------------------- */
.ka-reports__grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}
.ka-report {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: box-shadow 0.2s, translate 0.2s;
}
.ka-report:hover { box-shadow: var(--ka-shadow); translate: 0 -2px; }
.ka-report__cover { aspect-ratio: 210 / 297; background: var(--ka-surface); display: block; overflow: hidden; position: relative; }
.ka-report__cover img { display: block; height: 100%; object-fit: cover; object-position: top; width: 100%; }
.ka-report__placeholder { align-items: center; color: var(--ka-muted); display: flex; height: 100%; justify-content: center; }
.ka-report__type {
	background: var(--ka-primary);
	border-radius: 6px;
	color: #fff;
	font: 700 0.75rem/1 var(--ka-heading);
	inset-block-start: 0.75rem;
	inset-inline-start: 0.75rem;
	letter-spacing: 0.06em;
	padding: 0.4em 0.6em;
	position: absolute;
}
.ka-report__body { display: flex; flex: 1; flex-direction: column; gap: 0.6rem; padding: 1.1rem 1.1rem 1.25rem; }
.ka-report__meta { color: var(--ka-muted); display: flex; flex-wrap: wrap; font-size: 0.875rem; gap: 0.25rem 0.75rem; margin: 0; }
.ka-report__meta span + span::before { content: "·"; margin-inline-end: 0.75rem; }
.ka-report__title { font-size: 1.125rem; line-height: 1.3; margin: 0; }
.ka-report__title a { color: inherit; text-decoration: none; }
.ka-report__title a:hover { text-decoration: underline; }
.ka-report__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-block-start: auto; padding-block-start: 0.5rem; }
.ka-report__size { font-weight: 400; opacity: 0.8; }
.ka-report__size::before { content: "·"; margin-inline: 0.15em 0.4em; }
.ka-report__original { color: var(--ka-secondary); font-size: 0.875rem; font-weight: 600; }
.ka-report__original span { color: var(--ka-muted); font-weight: 400; }

/* Charts ---------------------------------------------------------------------- */
.ka-chart {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius-lg);
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.ka-chart__head { display: grid; gap: 0.3rem; margin-block-end: 1.25rem; }
.ka-chart__title { color: var(--ka-primary); font: 700 1.375rem/1.25 var(--ka-heading); }
.ka-chart__subtitle { color: var(--ka-muted); }
.ka-chart__note { color: var(--ka-muted); font-size: 0.875rem; margin: 1rem 0 0; }
.ka-unis { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.ka-unis li { align-items: center; background: var(--ka-surface-2); border-radius: 999px; color: var(--ka-primary); display: inline-flex; font-size: 0.9375rem; gap: 0.5rem; padding: 0.375rem 0.875rem; }
.ka-unis__count { background: var(--ka-primary); border-radius: 999px; color: #fff; font-size: 0.8125rem; font-weight: 600; padding: 0 0.5rem; }

/* KPI tiles */
.ka-kpis { display: grid; gap: 1rem; grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 560px) { .ka-kpis { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .ka-kpis { grid-template-columns: repeat(3, 1fr); } }
.ka-kpi {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius);
	display: grid;
	gap: 0.35rem;
	padding: 1.25rem 1.25rem 1.4rem;
	position: relative;
}
.ka-kpi::before { background: var(--ka-accent); border-radius: 0 0 4px 4px; content: ""; height: 4px; inset-block-start: 0; inset-inline-start: 1.25rem; position: absolute; width: 2.5rem; }
.ka-kpi__value { color: var(--ka-primary); font: 700 clamp(2rem, 4vw, 2.75rem)/1.05 var(--ka-heading); }
.ka-kpi__label { color: var(--ka-text); font-weight: 500; line-height: 1.4; }
.ka-kpi__delta { color: var(--ka-success); font-size: 0.875rem; font-weight: 600; }

/* Horizontal bars */
.ka-bars { display: grid; gap: 0.55rem; list-style: none; margin: 0; padding: 0; }
.ka-bars__row {
	align-items: center;
	border-radius: 6px;
	column-gap: 0.75rem;
	display: grid;
	grid-template-areas: "label value" "track track";
	grid-template-columns: 1fr auto;
	outline: none;
	padding: 0.2rem 0.25rem;
	row-gap: 0.3rem;
}
@media (min-width: 720px) {
	.ka-bars__row { grid-template-areas: "label track value"; grid-template-columns: minmax(10rem, 32%) 1fr 4.5rem; }
}
.ka-bars__row:hover,
.ka-bars__row:focus-visible { background: var(--ka-surface-2); }
.ka-bars__label { font-size: 0.9375rem; grid-area: label; line-height: 1.3; }
.ka-bars__label small { color: var(--ka-muted); display: block; font-size: 0.8125rem; }
.ka-bars__track { block-size: 14px; grid-area: track; position: relative; }
.ka-bars__fill { background: var(--ka-series-1); block-size: 100%; border-end-end-radius: 4px; border-start-end-radius: 4px; display: block; inline-size: var(--w); }
.ka-bars__value { font-variant-numeric: tabular-nums; font-weight: 600; grid-area: value; text-align: end; }

/* Small-multiple columns */
.ka-multiples { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.ka-mini__title { font-weight: 600; margin: 0 0 0.75rem; }
.ka-cols,
.ka-stack { align-items: end; border-block-end: 1px solid var(--ka-grid); display: grid; gap: 2px; grid-auto-columns: 1fr; grid-auto-flow: column; height: 200px; list-style: none; margin: 0; padding: 0; }
.ka-cols__col,
.ka-stack__col { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: flex-end; outline: none; position: relative; }
.ka-cols__bar { background: var(--ka-series-1); border-radius: 4px 4px 0 0; display: block; height: var(--h); max-width: 24px; width: 100%; }
.ka-cols__col:hover .ka-cols__bar,
.ka-cols__col:focus-visible .ka-cols__bar { filter: brightness(1.15); }
.ka-cols__value,
.ka-stack__total { font-size: 0.8125rem; font-variant-numeric: tabular-nums; font-weight: 600; margin-block-end: 0.3rem; }
.ka-cols__label,
.ka-stack__label { color: var(--ka-muted); font-size: 0.8125rem; inset-block-end: -1.6rem; position: absolute; }
.ka-cols,
.ka-stack { margin-block-end: 2rem; }
.ka-stack { height: 280px; }
.ka-stack__bar { display: flex; flex-direction: column-reverse; gap: 2px; height: var(--h); max-width: 56px; width: 70%; }
.ka-stack__seg { background: var(--c); display: block; flex-basis: 0; min-height: 2px; outline: none; }
.ka-stack__seg:last-child { border-radius: 4px 4px 0 0; }
.ka-stack__seg:hover,
.ka-stack__seg:focus-visible { filter: brightness(1.15); outline: 2px solid var(--ka-text); outline-offset: 1px; }

.ka-legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; list-style: none; margin: 0 0 1rem; padding: 0; }
.ka-legend li { align-items: center; display: inline-flex; font-size: 0.875rem; gap: 0.45rem; }
.ka-legend__key { background: var(--c); border-radius: 3px; display: inline-block; height: 12px; width: 12px; }

/* 100% split bars */
.ka-split { display: grid; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
.ka-split__row { display: grid; gap: 0.35rem; }
@media (min-width: 720px) { .ka-split__row { align-items: center; grid-template-columns: minmax(10rem, 25%) 1fr; } }
.ka-split__label { font-size: 0.9375rem; }
.ka-split__bar { display: flex; gap: 2px; height: 28px; }
.ka-split__seg { align-items: center; display: flex; font-size: 0.8125rem; font-weight: 700; inline-size: var(--w); justify-content: center; outline: none; white-space: nowrap; }
.ka-split__seg--1 { background: var(--ka-series-1); border-end-start-radius: 4px; border-start-start-radius: 4px; color: #fff; }
.ka-split__seg--2 { background: var(--ka-series-3); border-end-end-radius: 4px; border-start-end-radius: 4px; color: #04201f; }
.ka-split__seg:hover,
.ka-split__seg:focus-visible { filter: brightness(1.12); outline: 2px solid var(--ka-text); outline-offset: 1px; }

/* Tooltip (shared) */
.ka-tip {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: 8px;
	box-shadow: var(--ka-shadow);
	display: grid;
	font-size: 0.875rem;
	gap: 0.1rem;
	max-width: 18rem;
	padding: 0.5rem 0.7rem;
	pointer-events: none;
	position: fixed;
	z-index: 1000;
}
.ka-tip strong { color: var(--ka-text); font-size: 1rem; }
.ka-tip span { color: var(--ka-muted); }
.ka-tip[hidden] { display: none; }

/* Summer projects list */
.ka-projects__tools { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-end: 1rem; }
.ka-projects__tools input[type="search"] {
	border: 1px solid #b9c3cf;
	border-radius: var(--ka-radius-sm);
	flex: 1 1 16rem;
	font: inherit;
	min-height: 48px;
	padding: 0 1rem;
}
.ka-projects__tools input[type="search"]:focus-visible { border-color: var(--ka-primary); outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 1px; }
.ka-projects__tools .ka-select { flex: 0 1 16rem; }
.ka-projects__count { color: var(--ka-muted); margin: 0; }
.ka-projects__list { border-block-start: 1px solid var(--ka-grid); list-style: none; margin: 0; max-height: 36rem; overflow-y: auto; padding: 0; }
.ka-project { border-block-end: 1px solid var(--ka-grid); }
.ka-project summary { cursor: pointer; display: grid; gap: 0.2rem; list-style: none; padding: 0.85rem 0.5rem; }
.ka-project summary::-webkit-details-marker { display: none; }
.ka-project summary:hover { background: var(--ka-surface); }
.ka-project__title { font-weight: 600; }
.ka-project__meta { color: var(--ka-muted); font-size: 0.875rem; }
.ka-project p { color: var(--ka-text); font-size: 0.9375rem; margin: 0 0.5rem 1rem; text-align: start; }

/* The header and footer (ka/site-nav, ka/site-footer…) are styled by the
   theme's assets/css/global.css. */

@media (prefers-reduced-motion: reduce) {
	.ka-gallery__item img,
	.ka-report { transition: none; }
}

/* Programs open for applications */
.ka-open-programs { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); list-style: none; margin: 0; padding: 0; }
.ka-open-program {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius-lg);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: box-shadow 0.2s, translate 0.2s;
}
.ka-open-program:hover { box-shadow: 0 18px 40px rgb(0 38 76 / 14%); translate: 0 -3px; }
.ka-open-program__img img { aspect-ratio: 16 / 9; display: block; object-fit: cover; width: 100%; }
.ka-open-program__body { display: flex; flex: 1; flex-direction: column; gap: 0.6rem; padding: 1.25rem 1.4rem 1.5rem; }
.ka-open-program__top { align-items: center; display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; }
.ka-open-program__level { color: var(--ka-muted); font-size: 0.875rem; font-weight: 600; }
.ka-open-program__title { font-size: 1.25rem; margin: 0; }
.ka-open-program__title a { color: var(--ka-primary); text-decoration: none; }
.ka-open-program__title a:hover { text-decoration: underline; }
.ka-open-program__dates { align-items: center; color: var(--ka-text); display: flex; font-size: 0.9375rem; font-weight: 600; gap: 0.4rem; margin: 0; }
.ka-open-program__excerpt { color: var(--ka-muted); font-size: 0.9375rem; margin: 0; }
.ka-open-program__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-block-start: auto; padding-block-start: 0.5rem; }
.ka-open-program__more { color: var(--ka-secondary); font-weight: 600; }
.ka-verify-wrap { margin-block-end: var(--wp--preset--spacing--50, 2.5rem); }

/* Alumni ------------------------------------------------------------------------- */
.ka-kpis--4 { grid-template-columns: 1fr; }
@media (min-width: 560px) { .ka-kpis--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .ka-kpis--4 { grid-template-columns: repeat(4, 1fr); } }
.ka-kpi__note { color: var(--ka-muted); font-size: 0.875rem; }

.ka-alumni__tools { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-end: 1.25rem; }
.ka-alumni__tools input[type="search"] {
	border: 1px solid #b9c3cf;
	border-radius: var(--ka-radius-sm);
	box-sizing: border-box;
	flex: 1 1 18rem;
	font: inherit;
	min-height: 48px;
	padding: 0 1rem;
}
.ka-alumni__tools input[type="search"]:focus-visible { border-color: var(--ka-primary); outline: 3px solid var(--ka-focus, var(--ka-accent)); outline-offset: 1px; }
.ka-alumni__tools .ka-select { flex: 0 1 14rem; }
.ka-alumni__count { color: var(--ka-muted); margin: 0; }
.ka-alumni__years { margin-block-end: 1.5rem; }
.ka-alumni__tab-count {
	background: rgb(0 0 0 / 8%);
	border-radius: 999px;
	font-size: 0.75rem;
	margin-inline-start: 0.35rem;
	padding: 0.1em 0.55em;
}
.ka-seg__btn[aria-pressed="true"] .ka-alumni__tab-count { background: rgb(255 255 255 / 20%); }
.ka-alumni__year-title { font-size: var(--wp--preset--font-size--x-large, 1.75rem); margin: 2rem 0 0.5rem; }
.ka-alumni__grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	list-style: none;
	margin: 0.25rem 0 1.25rem;
	padding: 0;
}
.ka-alumnus {
	background: var(--ka-base);
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius);
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 0.9rem 1rem;
}
.ka-alumnus[hidden] { display: none; }
.ka-alumnus__head { align-items: center; display: flex; gap: 0.75rem; }
.ka-alumnus__avatar {
	--bg: var(--ka-surface-2); --fg: var(--ka-primary);
	align-items: center;
	background: var(--bg);
	border-radius: 50%;
	color: var(--fg);
	display: inline-flex;
	flex: none;
	font: 700 1rem/1 var(--ka-heading);
	height: 48px;
	justify-content: center;
	width: 48px;
}
.ka-alumnus[style*="--hue:1"] .ka-alumnus__avatar { --bg: #fff2cc; --fg: #6b4e00; }
.ka-alumnus[style*="--hue:2"] .ka-alumnus__avatar { --bg: #dcf3f3; --fg: #0e5557; }
.ka-alumnus[style*="--hue:3"] .ka-alumnus__avatar { --bg: #fde6d2; --fg: #7a3d05; }
.ka-alumnus__avatar--photo, .ka-alumni-profile__avatar--photo { background: var(--ka-surface-2); object-fit: cover; }
.ka-alumnus__id { flex: 1; min-width: 0; }
.ka-alumnus__name { color: var(--ka-primary); font: 600 1rem/1.3 var(--ka-heading); margin: 0; overflow-wrap: anywhere; }
.ka-alumnus__name a { color: inherit; text-decoration: none; }
.ka-alumnus__name a:hover, .ka-alumnus__name a:focus-visible { text-decoration: underline; }
.ka-alumnus__where { color: var(--ka-muted); font-weight: 500; }
.ka-alumnus__work { color: var(--ka-muted); font-size: 0.875rem; line-height: 1.35; margin: 0.15rem 0 0; }
.ka-alumnus__linkedin {
	align-items: center;
	border-radius: 8px;
	color: #0a66c2;
	display: inline-flex;
	flex: none;
	height: 40px;
	justify-content: center;
	width: 40px;
}
.ka-alumnus__linkedin::before {
	background: currentColor;
	content: "";
	height: 20px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9.75h4V21H3V9.75Zm6.5 0h3.8v1.6h.06c.53-1 1.83-2.05 3.77-2.05 4.03 0 4.77 2.65 4.77 6.1V21h-4v-4.95c0-1.18-.02-2.7-1.65-2.7-1.65 0-1.9 1.29-1.9 2.62V21H9.5V9.75Z'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 20px;
}
.ka-alumnus__linkedin:hover,
.ka-alumnus__linkedin:focus-visible { background: #e8f1fb; }
.ka-alumnus__outcome {
	align-self: flex-start;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.25em 0.7em;
}
.ka-alumnus__outcome--employed { background: #dcf5e6; color: #0b5d2e; }
.ka-alumnus__outcome--graduate-study { background: #e3ecfb; color: #11417a; }
.ka-alumnus__outcome--internship-or-training { background: #fff2cc; color: #6b4e00; }
.ka-alumnus__outcome--undergraduate-student { background: #eceff3; color: #3c4856; }
.ka-alumnus__outcome--founder { background: #f6e3f2; color: #7a1a64; }
.ka-alumnus__outcome--unknown { background: transparent; border: 1px dashed var(--ka-border); color: var(--ka-muted); }
.ka-alumnus__story summary { color: var(--ka-secondary); cursor: pointer; font-size: 0.875rem; font-weight: 600; }
.ka-alumnus__story p { color: var(--ka-text); font-size: 0.9375rem; line-height: 1.55; margin: 0.4rem 0 0; text-align: start; }
.ka-alumni__empty { background: var(--ka-surface); border-radius: var(--ka-radius); color: var(--ka-muted); padding: 1.5rem; text-align: center; }
.ka-alumni__source { color: var(--ka-muted); font-size: 0.875rem; margin-block-start: 1.5rem; }

/* One alumnus's page: photo card beside the story, project and programs. */
.ka-alumni-profile { align-items: start; display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 17rem) minmax(0, 1fr); }
.ka-alumni-profile__card {
	--bg: var(--ka-surface-2); --fg: var(--ka-primary);
	align-items: center;
	border: 1px solid var(--ka-border);
	border-radius: var(--ka-radius);
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.75rem 1.25rem;
	position: sticky;
	text-align: center;
	top: 6rem;
}
.ka-alumni-profile__card[style*="--hue:1"] { --bg: #fff2cc; --fg: #6b4e00; }
.ka-alumni-profile__card[style*="--hue:2"] { --bg: #dcf3f3; --fg: #0e5557; }
.ka-alumni-profile__card[style*="--hue:3"] { --bg: #fde6d2; --fg: #7a3d05; }
.ka-alumni-profile__avatar {
	align-items: center;
	background: var(--bg);
	border-radius: 50%;
	color: var(--fg);
	display: inline-flex;
	font: 700 2.25rem/1 var(--ka-heading);
	height: 9rem;
	justify-content: center;
	width: 9rem;
}
.ka-alumni-profile__work { color: var(--ka-text); font-weight: 600; line-height: 1.4; margin: 0; }
.ka-alumni-profile__card .ka-alumnus__outcome { align-self: center; }
.ka-alumni-profile__linkedin { margin-block-start: 0.25rem; }
.ka-alumni-profile__h { border-block-end: 2px solid var(--ka-primary); font-size: var(--wp--preset--font-size--large, 1.25rem); margin: 0 0 1rem; padding-block-end: 0.5rem; }
.ka-alumni-profile__body > * + .ka-alumni-profile__h { margin-block-start: 2.5rem; }
.ka-alumni-profile__story { font-size: 1.0625rem; line-height: 1.65; margin: 0; }
.ka-alumni-profile__project { background: var(--ka-surface); border-radius: var(--ka-radius); padding: 1.25rem 1.5rem; }
.ka-alumni-profile__project + .ka-alumni-profile__project { margin-block-start: 1rem; }
.ka-alumni-profile__project p { line-height: 1.6; margin: 0.5rem 0 0; }
.ka-alumni-profile__project-k { color: var(--ka-muted); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.ka-alumni-profile__project .ka-alumni-profile__project-k { margin: 0; }
.ka-alumni-profile__project-title { font-size: 1.125rem; line-height: 1.35; margin: 0.35rem 0 0; }
.ka-alumni-profile__mentor { color: var(--ka-muted); font-size: 0.9375rem; }
.ka-alumni-profile__report { font-weight: 600; }
.ka-alumni-profile__programs { list-style: none; margin: 0; padding: 0; }
.ka-alumni-profile__program { align-items: baseline; border-block-end: 1px solid var(--ka-border); display: grid; gap: 1rem; grid-template-columns: 7rem minmax(0, 1fr); padding: 0.85rem 0; }
.ka-alumni-profile__cohort { color: var(--ka-muted); font-size: 0.875rem; font-weight: 700; }
.ka-alumni-profile__program p { margin: 0; }
.ka-alumni-profile__program-name { font-weight: 600; }
.ka-alumni-profile__program-name a { color: var(--ka-primary); }
.ka-alumni-profile__venue { color: var(--ka-muted); font-size: 0.9375rem; margin-block-start: 0.2rem; }
.ka-alumni-profile__back { margin-block-start: 2rem; }
.ka-alumni-profile__back a { font-weight: 600; }
.ka-alumni-profile__back a::before { content: "← "; }
[dir="rtl"] .ka-alumni-profile__back a::before { content: "→ "; }
@media (max-width: 760px) {
	.ka-alumni-profile { gap: 1.75rem; grid-template-columns: minmax(0, 1fr); }
	.ka-alumni-profile__card { position: static; }
	.ka-alumni-profile__program { gap: 0.25rem; grid-template-columns: minmax(0, 1fr); }
}
