/*
Theme Name: Karima Girls
Theme URI: https://www.karimagirls.sc.ke/
Author: Isaiah Githinji
Description: Custom theme for Karima Girls High School. Uniform-blue design with the skirt check, logo green, red and black; latest-news hero slider, mega menu, secondary menu, detailed footer, and every homepage section available as an Elementor widget.
Version: 1.4.3
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: karima-girls
*/

:root {
	--kg-blue-deep: #0B6FB3;
	--kg-blue: #1499E8;
	--kg-green: #0B7A36;
	--kg-red: #C8102E;
	--kg-ink: #14161C;
	--kg-text: #1F2430;
	--kg-muted: #3C4150;
	--kg-wash: #EAF5FD;
	--kg-wash-2: #CFE8F9;
	--kg-line: #CFE1EE;
	--kg-pale: #C9EAFC;
	--kg-display: 'Bricolage Grotesque', 'Segoe UI', sans-serif;
	--kg-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--kg-shape: 40px 14px 40px 14px;
	--kg-shape-alt: 14px 40px 14px 40px;
	--kg-pill: 28px 28px 28px 6px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--kg-body);
	font-size: 17px;
	line-height: 1.6;
	color: var(--kg-text);
	background: #fff;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
a { color: var(--kg-blue-deep); }
a:hover { color: var(--kg-ink); }
h1, h2, h3, h4 { font-family: var(--kg-display); line-height: 1.15; letter-spacing: -0.015em; text-wrap: balance; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--kg-red); outline-offset: 2px; }
[hidden] { display: none !important; }

.screen-reader-text, .kg-skip:not(:focus) {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.kg-skip:focus { position: fixed; left: 12px; top: 12px; z-index: 100; background: #fff; padding: 12px 18px; font-weight: 700; }

.kg-wrap { max-width: 1280px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.kg-section { padding-top: 96px; padding-bottom: 96px; }
.kg-grid { display: grid; gap: 22px; }
.kg-grid-3 { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.kg-grid-4 { grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); }
.kg-split { display: flex; flex-wrap: wrap; gap: 60px; align-items: center; }
.kg-split > * { flex: 1 1 420px; min-width: 0; }
.kg-split-top { align-items: flex-start; }

/* Skirt check: the bold strip and the faint overlay for coloured sections. */
.kg-gingham {
	height: 28px;
	background-color: var(--kg-blue);
	background-image:
		linear-gradient(90deg, transparent 13px, rgba(215, 40, 70, .6) 13px, rgba(215, 40, 70, .6) 15px, transparent 15px),
		linear-gradient(transparent 13px, rgba(215, 40, 70, .45) 13px, rgba(215, 40, 70, .45) 15px, transparent 15px),
		linear-gradient(90deg, rgba(255, 255, 255, .58) 50%, transparent 50%),
		linear-gradient(rgba(255, 255, 255, .58) 50%, transparent 50%);
	background-size: 28px 28px;
}
.kg-check {
	background-image:
		linear-gradient(90deg, rgba(255, 255, 255, .065) 50%, transparent 50%),
		linear-gradient(rgba(255, 255, 255, .065) 50%, transparent 50%);
	background-size: 120px 120px;
}

/* Type helpers */
.kg-eyebrow {
	display: flex; align-items: center; gap: 10px;
	font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--kg-blue-deep);
}
.kg-eyebrow::before { content: ""; width: 30px; height: 4px; border-radius: 2px; background: var(--kg-red); flex-shrink: 0; }
.kg-eyebrow-light { color: #fff; }
.kg-eyebrow-light::before { background: #fff; }
.kg-h { font-weight: 800; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.1; margin: 12px 0 0; }
.kg-accent { color: var(--kg-green); }
.kg-meta { display: block; font-size: 14px; font-weight: 600; color: #5B6170; }
.kg-section-head { display: flex; flex-wrap: wrap; gap: 20px 48px; align-items: flex-end; justify-content: space-between; margin-bottom: 44px; }
.kg-section-head > div:first-child { flex: 1 1 460px; min-width: 0; }
.kg-section-head > p { flex: 1 1 360px; min-width: 0; margin: 0; color: var(--kg-muted); }
.kg-section-head-row > .kg-btn-row { flex: 0 1 auto; }

/* Buttons */
.kg-btn {
	display: inline-block; padding: 14px 24px; border: 2px solid var(--kg-blue-deep); border-radius: var(--kg-pill);
	background: var(--kg-blue-deep); color: #fff; font-weight: 700; text-decoration: none; cursor: pointer; line-height: 1.3;
	transition: transform .2s ease, box-shadow .2s ease;
}
.kg-btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(20, 22, 28, .22); }
.kg-btn-red { background: var(--kg-red); border-color: var(--kg-red); }
.kg-btn-ghost { background: transparent; color: var(--kg-blue-deep); }
.kg-btn-ghost:hover { color: var(--kg-blue-deep); }
.kg-btn-white { background: #fff; border-color: #fff; color: var(--kg-ink); }
.kg-btn-white:hover { color: var(--kg-ink); }
.kg-btn-ghost-light { background: transparent; border-color: #fff; color: #fff; }
.kg-btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.kg-lift { transition: transform .25s ease, box-shadow .25s ease; }
.kg-lift:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(11, 111, 179, .22); }

/* Photos */
.kg-photo { display: block; width: 100%; object-fit: cover; }
.kg-photo-empty { background: var(--kg-wash-2); }

/* Top bar */
.kg-topbar { background: var(--kg-ink); color: #fff; font-size: 13.5px; }
.kg-topbar .kg-wrap { max-width: 1440px; }
.kg-topbar-in { display: flex; flex-wrap: wrap; gap: 0 28px; align-items: stretch; justify-content: space-between; }
.kg-topbar-left { display: flex; flex-wrap: wrap; gap: 0 20px; align-items: center; }
.kg-topbar-left a { display: flex; gap: 8px; align-items: center; min-height: 44px; color: #fff; text-decoration: none; }
.kg-topbar-left a:hover { text-decoration: underline; }
.kg-topbar-motto {
	align-self: stretch; display: flex; align-items: center; padding: 10px 20px; background: var(--kg-green);
	border-bottom: 3px solid var(--kg-red); font-weight: 700; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap;
}
.kg-topbar-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; height: 100%; font-weight: 600; }
.kg-topbar-menu a { display: block; padding: 11px 8px; color: #fff; text-decoration: none; }
.kg-topbar-menu a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Header and mega menu */
.kg-header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 1px 0 var(--kg-line); }
.admin-bar .kg-header { top: 32px; }
.kg-header-in { display: flex; gap: 12px 28px; align-items: center; justify-content: space-between; padding-top: 12px; padding-bottom: 12px; }
.kg-brand { flex: 0 1 auto; min-width: 0; }
.kg-brand img { display: block; height: 58px; width: auto; max-width: 100%; }
.kg-burger, .kg-search-toggle { background: none; border: 0; cursor: pointer; width: 48px; height: 48px; display: none; align-items: center; justify-content: center; color: var(--kg-text); }
.kg-search-toggle { display: flex; }
.kg-nav { display: flex; align-items: center; gap: 6px; }
.kg-nav-list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; font-weight: 600; font-size: 15.5px; }
.kg-nav-list > li > a {
	display: flex; gap: 6px; align-items: center; min-height: 48px; padding: 10px 10px; color: var(--kg-text); text-decoration: none; white-space: nowrap;
	border-bottom: 3px solid transparent;
}
.kg-nav-list > li.is-current > a, .kg-nav-list > li.current_page_item > a { color: var(--kg-blue-deep); border-bottom-color: var(--kg-red); }
.kg-nav-list > li > a:hover, .kg-has-mega.is-open > a { color: var(--kg-blue-deep); border-bottom-color: var(--kg-blue); }
.kg-nav-tools { display: flex; align-items: center; gap: 6px; }
.kg-nav-tools .kg-btn { white-space: nowrap; }
.kg-nav-secondary { display: none; }
.kg-mega { display: none; position: absolute; left: 0; right: 0; top: 100%; padding: 0 24px; }
.kg-has-mega.is-open > .kg-mega { display: block; }
.kg-mega-inner {
	max-width: 1232px; margin: 0 auto; display: flex; flex-wrap: wrap; background: #fff; overflow: hidden;
	border-top: 4px solid var(--kg-green); border-radius: 0 0 14px 40px; box-shadow: 0 24px 48px rgba(20, 22, 28, .22);
	animation: kg-rise .3s ease both;
}
.kg-mega-cols { flex: 1 1 520px; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.kg-mega-col { padding: 26px 28px 28px; }
.kg-mega-h { display: block; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--kg-blue-deep); margin-bottom: 8px; }
.kg-mega-links { list-style: none; margin: 0; padding: 0; }
.kg-mega-links a, .kg-mega-solo { display: block; padding: 9px 0; font-weight: 600; font-size: 16px; color: var(--kg-text); text-decoration: none; }
.kg-mega-links a:hover, .kg-mega-solo:hover { color: var(--kg-blue-deep); text-decoration: underline; text-underline-offset: 4px; }
.kg-mega-feature { flex: 0 1 310px; background-color: var(--kg-blue-deep); color: #fff; padding: 28px; display: flex; flex-direction: column; justify-content: center; gap: 8px; font-weight: 400; }
.kg-mega-feature-title { font-family: var(--kg-display); font-weight: 800; font-size: 26px; line-height: 1.15; }
.kg-mega-feature p { margin: 0; font-size: 15.5px; }
.kg-mega-feature a { color: #fff; font-weight: 700; padding: 8px 0; text-underline-offset: 5px; }
.kg-search { border-top: 1px solid var(--kg-line); padding: 16px 0; background: var(--kg-wash); }
.kg-searchform { display: flex; gap: 10px; flex-wrap: wrap; }
.kg-searchform input[type="search"] { flex: 1 1 240px; min-height: 52px; padding: 10px 18px; border: 2px solid var(--kg-line); border-radius: var(--kg-pill); background: #fff; }

@media (hover: hover) and (min-width: 1241px) {
	.kg-has-mega:hover > .kg-mega, .kg-has-mega:focus-within > .kg-mega { display: block; }
}
@media (max-width: 1240px) {
	.kg-burger { display: flex; }
	.kg-header-in { flex-wrap: wrap; }
	.kg-nav { display: none; flex: 1 1 100%; flex-direction: column; align-items: stretch; padding-bottom: 12px; max-height: calc(100vh - 110px); overflow-y: auto; }
	.kg-nav.is-open { display: flex; }
	.kg-nav-list { flex-direction: column; align-items: stretch; }
	.kg-nav-list > li > a { justify-content: space-between; border-bottom: 1px solid var(--kg-line); }
	.kg-mega { position: static; padding: 0; }
	.kg-mega-inner { box-shadow: none; border-radius: 0; border-top: 0; animation: none; }
	.kg-mega-col { padding: 14px 12px; }
	.kg-mega-feature { display: none; }
	.kg-nav-tools { padding-top: 12px; justify-content: space-between; }
	.kg-brand { flex: 1 1 0; }
	.kg-burger { flex: 0 0 48px; }
	.kg-brand img { height: 52px; }
	.kg-nav-list > li > a { white-space: normal; }
	.kg-nav-secondary { display: block; list-style: none; margin: 14px 0 0; padding: 14px 0 0; border-top: 3px solid var(--kg-blue); display: flex; flex-wrap: wrap; gap: 0 18px; font-weight: 600; font-size: 15px; }
	.kg-nav-secondary a { display: block; padding: 10px 0; color: var(--kg-muted); text-decoration: none; }
}
@media (max-width: 900px) {
	.kg-topbar-nav, .kg-topbar-email { display: none !important; }
	.kg-topbar-in { justify-content: flex-start; }
}
@media (max-width: 782px) { .admin-bar .kg-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .kg-header { top: 0; } .kg-topbar-motto { padding: 10px 14px; font-size: 11px; letter-spacing: .04em; } .kg-topbar-left { gap: 0 14px; } }

/* Hero slider */
.kg-hero { background-color: var(--kg-blue-deep); color: #fff; }
.kg-hero > .kg-wrap:first-child { padding-top: 64px; padding-bottom: 52px; }
.kg-slide { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.kg-slide.is-active { animation: kg-rise .55s ease both; }
.kg-slide-text { flex: 1 1 440px; min-width: 0; }
.kg-slide-photo { flex: 1 1 420px; min-width: 0; padding: 0 16px 16px 0; }
.kg-slide-frame { position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 18px 18px 18px 44px; background: var(--kg-ink); box-shadow: 16px 16px 0 var(--kg-blue), 0 24px 48px rgba(20, 22, 28, .28); }
.kg-slide-frame img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover; }
.kg-fit-contain .kg-slide-frame::before { content: ""; position: absolute; inset: -30px; background: var(--kg-bg) center / cover no-repeat; filter: blur(22px) brightness(.7) saturate(1.1); }
.kg-fit-contain .kg-slide-frame img { object-fit: contain; }
.kg-slide-meta { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; font-weight: 600; font-size: 15px; }
.kg-pill { background: #fff; color: var(--kg-red); font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; padding: 7px 16px; border-radius: 16px 16px 16px 4px; }
.kg-slide-title { font-weight: 800; font-size: clamp(32px, 4.2vw, 56px); line-height: 1.05; letter-spacing: -0.02em; margin: 22px 0 0; }
.kg-slide-title a { color: #fff; text-decoration: none; }
.kg-slide-title a:hover { text-decoration: underline; text-underline-offset: 6px; }
.kg-slide-excerpt { font-size: 19px; margin: 20px 0 30px; max-width: 560px; }
.kg-slider-controls { display: flex; gap: 12px; align-items: center; margin-top: 34px; }
.kg-round { width: 48px; height: 48px; border-radius: 50%; border: 2px solid #fff; background: transparent; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform .2s ease; }
.kg-round:hover { transform: translateY(-2px); }
.kg-round-solid { background: #fff; color: var(--kg-ink); }
.kg-slider-count { font-family: var(--kg-display); font-weight: 700; font-size: 20px; margin-left: 8px; }
.kg-slider-count small { font-weight: 500; font-size: 16px; }
.kg-slider-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.kg-tab {
	display: flex; gap: 12px; align-items: flex-start; min-height: 92px; padding: 16px 18px 18px; text-align: left; cursor: pointer;
	border: 0; border-top: 4px solid rgba(255, 255, 255, .3); background: rgba(20, 22, 28, .28); color: #fff;
}
.kg-tab.is-active { border-top-color: var(--kg-blue); background: #fff; color: var(--kg-ink); }
.kg-tab-num { font-family: var(--kg-display); font-weight: 800; font-size: 20px; line-height: 1.2; }
.kg-tab-title { font-weight: 600; font-size: 14.5px; line-height: 1.35; }

/* Quick links */
.kg-quick { background: var(--kg-wash); padding: 56px 0; }
.kg-quick-card { display: flex; gap: 16px; align-items: flex-start; padding: 26px 24px; background: #fff; border-radius: var(--kg-shape); border-bottom: 4px solid var(--kg-green); color: var(--kg-text); text-decoration: none; }
.kg-quick-icon { width: 56px; height: 56px; border-radius: 50%; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kg-bg-blue { background: var(--kg-blue-deep); }
.kg-bg-green { background: var(--kg-green); }
.kg-bg-red { background: var(--kg-red); }
.kg-bg-ink { background: var(--kg-ink); }
.kg-quick-title { display: block; font-family: var(--kg-display); font-weight: 700; font-size: 21px; line-height: 1.2; }
.kg-quick-text { display: block; font-size: 15px; color: var(--kg-muted); margin-top: 4px; }

/* About */
.kg-about-photos { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.kg-about-main { grid-column: span 2; aspect-ratio: 16 / 9; border-radius: 14px 14px 14px 70px; }
.kg-about-small { aspect-ratio: 4 / 3; border-radius: 14px; }
.kg-badge { position: absolute; right: -10px; top: -22px; background: var(--kg-red); color: #fff; border-radius: 14px; padding: 14px 20px; text-align: center; box-shadow: 0 12px 26px rgba(20, 22, 28, .24); }
.kg-badge span { display: block; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.kg-badge strong { display: block; font-family: var(--kg-display); font-weight: 800; font-size: 34px; line-height: 1; }
.kg-about-text p { color: var(--kg-muted); margin: 18px 0 0; }
.kg-principal { display: flex; gap: 16px; align-items: center; margin: 28px 0; padding: 20px 22px; background: var(--kg-wash); border-radius: 12px; }
.kg-principal-photo { width: 68px; height: 68px; border-radius: 50%; flex-shrink: 0; }
.kg-principal strong, .kg-principal span { display: block; }
.kg-principal span { font-size: 15px; color: var(--kg-muted); }

/* Counters */
.kg-counters { background-color: var(--kg-ink); color: #fff; padding: 56px 0; }
.kg-counter { border-left: 4px solid var(--kg-blue); padding-left: 20px; }
.kg-counter strong { display: block; font-family: var(--kg-display); font-weight: 800; font-size: 46px; line-height: 1; }
.kg-counter span { display: block; margin-top: 8px; font-size: 16px; }

/* Values */
.kg-values { padding-top: 88px; }
.kg-value { background: var(--kg-wash); border-radius: 14px; padding: 32px 28px; }
.kg-value-label { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--kg-blue-deep); }
.kg-value p { margin: 14px 0 0; font-size: 18px; line-height: 1.45; font-weight: 500; }
.kg-value-motto { background: var(--kg-green); color: #fff; }
.kg-value-motto .kg-value-label { color: #fff; }
.kg-value-motto-text { font-family: var(--kg-display); font-weight: 800; font-size: 27px; line-height: 1.15; margin-top: 14px; }

/* Cards */
.kg-card-title { display: block; font-family: var(--kg-display); font-weight: 700; font-size: 24px; line-height: 1.2; }
.kg-card-text { display: block; margin-top: 8px; font-size: 16px; color: var(--kg-muted); }
.kg-path-card { display: block; background: #fff; border: 1px solid var(--kg-line); border-bottom: 5px solid var(--kg-green); border-radius: var(--kg-shape); overflow: hidden; color: var(--kg-text); text-decoration: none; }
.kg-path-photo { aspect-ratio: 16 / 9; }
.kg-path-body { display: block; padding: 26px 26px 30px; }
.kg-path-subjects { display: block; margin-top: 16px; font-size: 15px; font-weight: 600; }
.kg-note { margin-top: 22px; background: var(--kg-wash); border-radius: 14px; padding: 22px 26px; display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; justify-content: space-between; }
.kg-note > div { flex: 1 1 460px; min-width: 0; }

/* Results (dark) */
.kg-results p { margin: 20px 0 0; }
.kg-results-top { align-items: center; }
.kg-result-stats { display: flex; flex-wrap: wrap; gap: 18px 36px; margin: 30px 0 8px; }
.kg-result-stats > div { min-width: 0; }
.kg-result-stats strong { display: block; font-family: var(--kg-display); font-weight: 800; font-size: clamp(36px, 4vw, 54px); line-height: 1; }
.kg-result-stats .is-lead strong { color: var(--kg-pale); }
.kg-result-stats span { display: block; margin-top: 8px; font-size: 14.5px; color: #C9CCD4; }
.kg-results-bottom { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; margin-top: 44px; }
.kg-results-bottom > *, .kg-kcse-charts > *, .kg-results-top > * { min-width: 0; }
.kg-dark-panel { overflow: hidden; }
.kg-chart, .kg-trend { margin: 0; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); border-radius: 18px; padding: 26px 26px 20px; }
.kg-chart-title { font-weight: 700; font-size: 15px; letter-spacing: .02em; color: #fff; }
.kg-bars { list-style: none; margin: 18px 0 0; padding: 0; display: flex; gap: 10px; height: 230px; }
.kg-bars li { flex: 1 1 0; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; }
.kg-bar-count { font-weight: 700; font-size: 13.5px; color: #E4E6EB; }
.kg-bar { width: 100%; max-width: 56px; height: calc((100% - 62px) * var(--v, 0)); min-height: 3px; background: var(--kg-blue); border-radius: 4px 4px 0 0; }
.kg-bars li:hover .kg-bar { background: var(--kg-pale); }
.kg-bar-label { width: 100%; text-align: center; font-weight: 600; font-size: 13.5px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, .35); color: #E4E6EB; }
.kg-trend-box { position: relative; margin-top: 12px; }
.kg-trend-svg { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--kg-body); }
.kg-trend-band { fill: rgba(255, 255, 255, .045); }
.kg-trend-grid { stroke: rgba(255, 255, 255, .12); stroke-width: 1; }
.kg-trend-tick, .kg-trend-year { fill: #AEB3BF; font-size: 13px; }
@media (max-width: 640px) { .kg-trend-tick, .kg-trend-year, .kg-trend-grade { font-size: 16px; } .kg-trend-val { font-size: 17px; } .kg-chart, .kg-trend { padding: 20px 16px 16px; } }
.kg-trend-year { fill: #E4E6EB; font-weight: 600; }
.kg-trend-grade { fill: #8C93A3; font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.kg-trend-line { stroke: var(--kg-blue); stroke-width: 2.5; stroke-linecap: round; }
.kg-trend-line.is-gap { stroke-dasharray: 5 7; opacity: .7; }
.kg-trend-dot { fill: var(--kg-ink); stroke: var(--kg-blue); stroke-width: 2.5; }
.kg-trend-dot.is-latest { fill: var(--kg-pale); stroke: var(--kg-pale); }
.kg-trend-hit { fill: transparent; }
.kg-trend-pt { cursor: default; outline: none; }
.kg-trend-pt:hover .kg-trend-dot, .kg-trend-pt:focus .kg-trend-dot { fill: #fff; stroke: #fff; }
.kg-trend-val { fill: #fff; font-size: 14px; font-weight: 700; }
.kg-trend-note { margin: 10px 0 0; font-size: 13.5px; color: #AEB3BF; }
.kg-tip { position: absolute; z-index: 3; transform: translate(-50%, calc(-100% - 14px)); padding: 8px 12px; border-radius: 10px; background: #fff; color: var(--kg-ink); font-size: 13.5px; font-weight: 600; white-space: nowrap; box-shadow: 0 10px 24px rgba(0, 0, 0, .3); pointer-events: none; }
.kg-results-table { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); border-radius: 18px; }
.kg-results-table summary { cursor: pointer; padding: 18px 24px; font-weight: 700; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.kg-results-table summary::-webkit-details-marker { display: none; }
.kg-results-table summary::after { content: "+"; font-size: 24px; line-height: 1; }
.kg-results-table[open] summary::after { content: "–"; }
.kg-results-table .kg-table-wrap { padding: 0 12px 16px; }

/* KCSE table (light by default, dark inside dark sections) */
.kg-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kg-table-wrap:focus-visible { outline: 3px solid var(--kg-blue); }
.kg-kcse-table { width: 100%; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; }
.kg-kcse-table th, .kg-kcse-table td { padding: 11px 12px; text-align: left; white-space: nowrap; border-bottom: 1px solid var(--kg-line); }
.kg-kcse-table thead th { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--kg-muted); border-bottom: 2px solid var(--kg-ink); }
.kg-kcse-table tbody th { font-family: var(--kg-display); font-size: 17px; }
.kg-kcse-table .kg-num { text-align: right; }
.kg-kcse-table .is-zero { color: #A3A8B4; }
.kg-kcse-table tbody tr:hover { background: var(--kg-wash); }
.kg-grade-pill { display: inline-block; min-width: 34px; padding: 3px 9px; border-radius: 999px; background: var(--kg-blue-deep); color: #fff; font-weight: 700; font-size: 13.5px; text-align: center; }
.kg-change.is-up { color: var(--kg-green); font-weight: 700; }
.kg-change.is-down { color: var(--kg-red); font-weight: 700; }
.kg-change small { font-weight: 500; color: inherit; opacity: .75; }
.kg-dark .kg-kcse-table th, .kg-dark .kg-kcse-table td, .kg-dark-panel .kg-kcse-table th, .kg-dark-panel .kg-kcse-table td { border-bottom-color: rgba(255, 255, 255, .12); }
.kg-dark .kg-kcse-table thead th, .kg-dark-panel .kg-kcse-table thead th { color: #AEB3BF; border-bottom-color: rgba(255, 255, 255, .5); }
.kg-dark .kg-kcse-table tbody tr:hover, .kg-dark-panel .kg-kcse-table tbody tr:hover { background: rgba(255, 255, 255, .06); }
.kg-dark .kg-kcse-table .is-zero, .kg-dark-panel .kg-kcse-table .is-zero { color: #6E7584; }
.kg-dark .kg-grade-pill, .kg-dark-panel .kg-grade-pill { background: var(--kg-blue); }
.kg-dark .kg-change.is-up, .kg-dark-panel .kg-change.is-up { color: #6FDC9A; }
.kg-dark .kg-change.is-down, .kg-dark-panel .kg-change.is-down { color: #FF8A9B; }

/* KCSE block inside page content */
.kg-dark-panel { background: var(--kg-ink); color: #fff; border-radius: 24px; padding: clamp(24px, 4vw, 44px); margin: 2.4em 0; background-image: radial-gradient(circle at 100% 0, rgba(20, 153, 232, .28), transparent 55%); }
.kg-kcse-head { display: flex; flex-wrap: wrap; gap: 10px 40px; align-items: flex-end; justify-content: space-between; }
.kg-kcse-title { margin: 10px 0 0; color: #fff; font-size: clamp(28px, 3vw, 40px); }
.kg-kcse .kg-result-stats { margin: 0; }
.kg-kcse-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 30px 0 26px; }
.kg-content .kg-dark-panel img { border-radius: 0; }
.kg-content .kg-kcse-table { display: table; font-size: 15px; }
.kg-content .kg-kcse-table th, .kg-content .kg-kcse-table td { border: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); background: transparent; padding: 11px 12px; }
.kg-content .kg-kcse-table th { color: #fff; }
.kg-content .kg-kcse-table thead th { color: #AEB3BF; border-bottom-color: rgba(255, 255, 255, .5); }
.kg-content .kg-kcse-table tbody tr:hover th, .kg-content .kg-kcse-table tbody tr:hover td { background: rgba(255, 255, 255, .06); }
.kg-dark-panel h2 { padding-top: 0; }
.kg-dark-panel h2::before { display: none; }
.kg-content .kg-dark-panel p { color: #AEB3BF; }

/* Activities */
.kg-act-card { display: block; background: var(--kg-wash); border-radius: var(--kg-shape-alt); border-bottom: 4px solid var(--kg-red); overflow: hidden; color: var(--kg-text); text-decoration: none; }
.kg-act-photo { aspect-ratio: 4 / 3; }
.kg-act-body { display: block; padding: 22px 22px 26px; }
.kg-clubs { margin-top: 22px; border: 1px solid var(--kg-line); border-radius: 14px; padding: 26px 26px 28px; }
.kg-clubs h3 { margin: 0; font-weight: 700; font-size: 23px; }
.kg-clubs ul { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; font-weight: 600; font-size: 15px; }
.kg-clubs li { background: var(--kg-wash); border: 1px solid #B5DBF5; padding: 8px 16px; border-radius: 999px; }

/* Dress code */
.kg-dress { background: var(--kg-wash); }
.kg-dress .kg-section { padding-top: 88px; }
.kg-dress p { color: var(--kg-muted); }
.kg-dress-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 26px 0; }
.kg-dress-photos .kg-photo { aspect-ratio: 3 / 4; border-radius: 14px; }
.kg-dress-rows { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.kg-dress-rows > div { display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: baseline; background: #fff; border-radius: 12px; padding: 18px 22px; border-left: 5px solid var(--kg-blue); }
.kg-dress-rows > div:nth-child(5n+2) { border-left-color: var(--kg-ink); }
.kg-dress-rows > div:nth-child(5n+4) { border-left-color: var(--kg-red); }
.kg-dress-rows > div:nth-child(5n+5) { border-left-color: var(--kg-green); }
.kg-dress-rows dt { flex: 0 0 190px; font-family: var(--kg-display); font-weight: 700; font-size: 19px; }
.kg-dress-rows dd { flex: 1 1 260px; min-width: 0; margin: 0; color: var(--kg-muted); font-size: 16px; }
.kg-dress-notes { margin-top: 16px; background: var(--kg-ink); color: #fff; border-radius: 12px; padding: 22px 24px; }
.kg-dress-notes ul { margin: 10px 0 0; padding-left: 20px; font-size: 16px; color: #E4E6EB; }

/* Post cards */
.kg-post-card { display: block; background: #fff; border: 1px solid var(--kg-line); border-radius: 14px; overflow: hidden; color: var(--kg-text); text-decoration: none; }
.kg-post-card-img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.kg-post-card-body { display: block; padding: 24px 24px 28px; }
.kg-post-card-title { display: block; margin-top: 8px; font-family: var(--kg-display); font-weight: 700; font-size: 22px; line-height: 1.2; }

/* Contact band */
.kg-band { background-color: var(--kg-red); color: #fff; padding: 64px 0; }
.kg-band-in { display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; justify-content: space-between; }
.kg-band-in > div:first-child { flex: 1 1 460px; min-width: 0; }
.kg-band h2 { margin: 0; font-weight: 800; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; }
.kg-band p { margin: 14px 0 0; font-size: 18px; }

/* Footer */
.kg-footer { background: var(--kg-ink); color: #E4E6EB; font-size: 15.5px; padding: 72px 0 28px; }
.kg-foot-top { display: flex; flex-wrap: wrap; gap: 44px 40px; }
.kg-foot-brand { flex: 1 1 260px; min-width: 0; }
.kg-foot-brand p { max-width: 340px; margin: 18px 0 0; }
.kg-foot-logo { display: inline-block; background: #fff; border-radius: 10px; padding: 10px 14px; }
.kg-foot-logo img { display: block; height: 52px; width: auto; max-width: 100%; }
.kg-foot-contact { list-style: none; margin: 16px 0 0; padding: 0; }
.kg-foot-contact li { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; overflow-wrap: anywhere; }
.kg-foot-contact .kg-icon { flex-shrink: 0; margin-top: 4px; color: var(--kg-blue); }
.kg-foot-contact a { color: #fff; font-weight: 600; text-decoration: none; }
.kg-foot-contact a:hover { text-decoration: underline; }
.kg-foot-cols { flex: 4 1 640px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 36px 24px; }
.kg-foot-h { margin: 0; font-family: var(--kg-body); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--kg-blue); }
.kg-foot-links { list-style: none; margin: 8px 0 0; padding: 0; }
.kg-foot-links a { display: flex; gap: 8px; align-items: center; padding: 7px 0; color: #E4E6EB; text-decoration: none; }
.kg-foot-links a::before { content: ""; border-left: 6px solid var(--kg-blue); border-top: 4px solid transparent; border-bottom: 4px solid transparent; flex-shrink: 0; }
.kg-foot-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.kg-foot-bottom { display: flex; flex-wrap: wrap; gap: 8px 28px; justify-content: space-between; align-items: center; margin-top: 52px; padding-top: 20px; border-top: 1px solid #3C4150; font-size: 14px; color: #C9CCD4; }
.kg-foot-legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 20px; }
.kg-foot-legal a { display: block; padding: 8px 0; color: #C9CCD4; text-decoration: none; }
.kg-foot-legal a:hover { color: #fff; text-decoration: underline; }

/* Inner pages */
.kg-banner { background-color: var(--kg-blue-deep); color: #fff; padding: 56px 0 60px; }
.kg-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14.5px; font-weight: 600; }
.kg-crumbs a { color: #fff; }
.kg-banner-title { margin: 12px 0 0; font-weight: 800; font-size: clamp(32px, 4vw, 54px); line-height: 1.06; max-width: 22ch; }
.kg-banner-meta { margin: 14px 0 0; font-weight: 600; }
.kg-article { max-width: 860px; margin: 0 auto; }
.kg-single.kg-has-sidebar { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.kg-single.kg-has-sidebar .kg-article { flex: 3 1 560px; min-width: 0; margin: 0; }
.kg-sidebar { flex: 1 1 280px; min-width: 0; }
.kg-widget { background: var(--kg-wash); border-radius: 14px; padding: 24px; margin-bottom: 22px; }
.kg-widget-title { margin: 0 0 12px; font-size: 20px; }
.kg-article-photo img { display: block; width: auto; max-width: 100%; height: auto; max-height: 78vh; margin: 0 auto 36px; border-radius: 18px 18px 18px 70px; }
.kg-content { font-size: 18px; line-height: 1.7; }
.kg-content > * { margin-top: 0; margin-bottom: 1.2em; }
.kg-content h2 { font-size: clamp(26px, 2.6vw, 34px); margin-top: 1.6em; margin-bottom: .5em; }
.kg-content h3 { font-size: 24px; margin-top: 1.4em; margin-bottom: .4em; }
.kg-content img { border-radius: 12px; }
.kg-content blockquote { margin-left: 0; margin-right: 0; padding: 18px 24px; background: var(--kg-wash); border-left: 5px solid var(--kg-blue); border-radius: 0 12px 12px 0; }
.kg-content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.kg-content th, .kg-content td { border: 1px solid var(--kg-line); padding: 10px 14px; text-align: left; }
.kg-content th { background: var(--kg-wash); }
.kg-empty-note { background: var(--kg-wash); border: 1px dashed var(--kg-blue-deep); border-radius: 12px; padding: 16px 20px; font-size: 16px; }
.kg-post-nav { display: flex; flex-wrap: wrap; gap: 14px 30px; justify-content: space-between; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--kg-line); font-weight: 600; }
.kg-pagination { margin-top: 48px; }
.kg-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.kg-pagination .page-numbers { display: inline-flex; min-width: 46px; min-height: 46px; padding: 0 14px; align-items: center; justify-content: center; border: 2px solid var(--kg-line); border-radius: 12px; font-weight: 700; text-decoration: none; color: var(--kg-text); }
.kg-pagination .page-numbers.current { background: var(--kg-blue-deep); border-color: var(--kg-blue-deep); color: #fff; }
.kg-comments { margin-top: 56px; }
.kg-comment-list { list-style: none; padding: 0; }
.kg-comment-list .comment-body { padding: 18px 0; border-bottom: 1px solid var(--kg-line); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; padding: 12px 16px; border: 2px solid var(--kg-line); border-radius: 12px; }
.comment-form input[type="submit"] { padding: 14px 24px; border: 0; border-radius: var(--kg-pill); background: var(--kg-blue-deep); color: #fff; font-weight: 700; cursor: pointer; }

/* Content converted from Avada */
.kg-figure { margin-left: 0; margin-right: 0; }
.kg-figure img { display: block; }
.kg-toggle { border: 1px solid var(--kg-line); border-radius: 12px; padding: 14px 18px; }
.kg-toggle summary { font-weight: 700; cursor: pointer; }

/* Slider tabs: more than six stories scroll sideways */
.kg-slider-tabs.is-many { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(200px, 1fr); overflow-x: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .5) transparent; }

/* Quick links: six cards */
.kg-grid-quick { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kg-quick-card:nth-child(3n+2) { border-bottom-color: var(--kg-red); }
.kg-quick-card:nth-child(3n) { border-bottom-color: var(--kg-blue); }
@media (max-width: 900px) { .kg-grid-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .kg-grid-quick { grid-template-columns: 1fr; } }

/* Featured story */
.kg-featured { background: #fff; }
.kg-featured .kg-h a { color: inherit; text-decoration: none; }
.kg-featured .kg-h a:hover { color: var(--kg-blue-deep); }
.kg-featured-meta { color: var(--kg-muted); font-weight: 600; font-size: 14px; margin: 14px 0 18px; }
.kg-featured-photos .kg-about-main { border-bottom: 6px solid var(--kg-red); }

/* Photo strip */
.kg-gallery-band { background: var(--kg-wash); }
.kg-gallery-intro { max-width: 720px; margin: -20px 0 32px; color: var(--kg-muted); }
.kg-mosaic { grid-auto-flow: dense; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 190px; gap: 14px; }
.kg-mosaic .kg-photo { height: 100%; border-radius: 14px; }
.kg-mosaic .kg-photo:first-child { grid-column: span 2; grid-row: span 2; border-radius: var(--kg-shape); }
.kg-mosaic-1, .kg-mosaic-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 320px; }
.kg-mosaic-1 .kg-photo:first-child, .kg-mosaic-2 .kg-photo:first-child { grid-row: auto; grid-column: auto; }
@media (max-width: 900px) {
	.kg-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; }
}

/* Old homepage content */
.kg-legacy { background: #fff; border-top: 1px solid var(--kg-line); }
.kg-legacy .kg-wrap { max-width: 1000px; }

/* Clean background style (default): solid colours with soft light instead of the check */
.kg-pattern-clean .kg-check { background-image: radial-gradient(ellipse at 85% -10%, rgba(255, 255, 255, .16), transparent 55%), radial-gradient(ellipse at -10% 110%, rgba(0, 0, 0, .18), transparent 50%); background-size: auto; }
.kg-pattern-clean .kg-hero { background-color: #0A5F9B; background-image: radial-gradient(ellipse at 80% 0, rgba(20, 153, 232, .55), transparent 60%), linear-gradient(160deg, #0B6FB3 0%, #0A4F82 100%); }
.kg-pattern-clean .kg-gingham { height: 8px; background-size: 16px 16px; }
.kg-pattern-clean .kg-dress > .kg-gingham { height: 10px; }

/* Dark sections */
.kg-dark { background-color: var(--kg-ink); color: #fff; background-image: radial-gradient(ellipse at 100% 0, rgba(20, 153, 232, .22), transparent 55%), radial-gradient(ellipse at 0 100%, rgba(11, 122, 54, .2), transparent 50%); }
.kg-dark .kg-h, .kg-dark h2, .kg-dark h3 { color: #fff; }
.kg-dark .kg-accent { color: var(--kg-pale); }
.kg-dark p { color: #D5D8DF; }

/* Inner page banner */
.kg-banner { position: relative; overflow: hidden; background-color: var(--kg-ink); background-image: radial-gradient(ellipse at 90% 0, rgba(20, 153, 232, .35), transparent 60%), radial-gradient(ellipse at 0 120%, rgba(11, 122, 54, .3), transparent 55%); }
.kg-banner::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, var(--kg-green) 0 33.3%, var(--kg-red) 33.3% 66.6%, var(--kg-blue) 66.6%); }
.kg-banner.has-photo { padding: 120px 0 64px; background-image: linear-gradient(180deg, rgba(20, 22, 28, .35) 0%, rgba(20, 22, 28, .88) 100%), var(--kg-banner-img); background-size: cover; background-position: center 35%; }
.kg-banner .kg-wrap { position: relative; z-index: 1; }

/* Page content: readable, structured */
.kg-content > p:first-child, .kg-content > h2:first-child + p { font-size: 1.16em; line-height: 1.6; color: var(--kg-text); }
.kg-content > h2:first-child { margin-top: 0; }
.kg-content h2 { position: relative; padding-top: 18px; }
.kg-content h2::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 5px; border-radius: 3px; background: var(--kg-red); }
.kg-content ul:not([class]) { list-style: none; padding-left: 0; }
.kg-content ul:not([class]) > li { position: relative; padding-left: 30px; margin: .45em 0; }
.kg-content ul:not([class]) > li::before { content: ""; position: absolute; left: 4px; top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--kg-blue); box-shadow: 0 0 0 4px var(--kg-wash); }
.kg-content hr { border: 0; height: 1px; background: var(--kg-line); margin: 2.2em 0; }
.kg-content .alignleft { float: left; margin: .3em 1.6em 1em 0; max-width: 45%; }
.kg-content .alignright { float: right; margin: .3em 0 1em 1.6em; max-width: 45%; }
.kg-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.kg-content::after { content: ""; display: table; clear: both; }
.kg-content table:not(.kg-kcse-table) { font-size: 16px; }
.kg-content table:not(.kg-kcse-table) th { background: var(--kg-ink); color: #fff; }
.kg-content table:not(.kg-kcse-table) tr:nth-child(even) td { background: #F6FAFD; }
.kg-figure-wide img { width: 100%; max-height: 520px; object-fit: cover; }
.kg-content-cards { margin: 1.5em 0; }
@media (max-width: 640px) { .kg-content .alignleft, .kg-content .alignright { float: none; max-width: 100%; margin: 0 0 1em; } }

/* Galleries: whole photos in columns; click to enlarge */
.kg-gallery { columns: 4 220px; column-gap: 12px; margin: 1.4em 0; }
.kg-gallery figure { margin: 0 0 12px; break-inside: avoid; }
.kg-gallery img { display: block; width: 100%; height: auto !important; contain-intrinsic-size: none; border-radius: 12px; }
.kg-zoom { display: block; border-radius: 12px; overflow: hidden; cursor: zoom-in; }
.kg-zoom img { transition: transform .35s ease; }
.kg-zoom:hover img { transform: scale(1.03); }
.kg-lightbox { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; background: rgba(10, 12, 16, .92); padding: 56px 64px; }
.kg-lightbox img { max-width: 100%; max-height: 100%; border-radius: 10px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.kg-lightbox button { position: absolute; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.kg-lightbox button:hover { background: rgba(255, 255, 255, .28); }
.kg-lb-close { top: 14px; right: 14px; }
.kg-lb-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.kg-lb-next { right: 10px; top: 50%; transform: translateY(-50%); }
.kg-lb-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: #C9CCD4; font-size: 14px; font-weight: 600; }
@media (max-width: 640px) { .kg-lightbox { padding: 64px 8px; } .kg-lb-prev, .kg-lb-next { top: auto; bottom: 8px; transform: none; } }

/* Block styles (block editor) and Elementor classes */
.is-style-kg-dark, .kg-content .kg-dark { background-color: var(--kg-ink); color: #fff; border-radius: 22px; padding: clamp(22px, 4vw, 44px); background-image: radial-gradient(circle at 100% 0, rgba(20, 153, 232, .25), transparent 55%); }
.is-style-kg-dark h2, .is-style-kg-dark h3, .is-style-kg-dark a:not(.kg-btn) { color: #fff; }
.is-style-kg-blue, .kg-band-blue { background-color: var(--kg-blue-deep); color: #fff; border-radius: 22px; padding: clamp(22px, 4vw, 44px); background-image: radial-gradient(circle at 100% 0, rgba(255, 255, 255, .16), transparent 55%); }
.is-style-kg-blue h2, .is-style-kg-blue h3, .is-style-kg-blue a:not(.kg-btn), .kg-band-blue h2, .kg-band-blue h3 { color: #fff; }
.is-style-kg-dark h2::before, .is-style-kg-blue h2::before { background: var(--kg-blue); }
.is-style-kg-card { background: #fff; border: 1px solid var(--kg-line); border-radius: 18px; padding: 28px; box-shadow: 0 10px 30px rgba(11, 111, 179, .08); }
.is-style-kg-callout { border: 0 !important; border-radius: 18px; padding: 26px 30px !important; background: var(--kg-wash); font-size: 1.1em; }
.is-style-kg-table table { border-collapse: collapse; }

/* WordPress content classes */
.alignleft { float: left; margin: 6px 26px 16px 0; }
.alignright { float: right; margin: 6px 0 16px 26px; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .gallery-caption { font-size: 14.5px; color: #5B6170; }
.sticky, .bypostauthor { display: block; }

/* Elementor: let stretched sections and Karima widgets run edge to edge. */
.kg-front-content > .elementor { overflow-x: clip; }
.elementor-widget[class*="elementor-widget-karima-"] > .elementor-widget-container { padding: 0; margin: 0; }

/* Motion */
@keyframes kg-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.kg-js .kg-reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.kg-js .kg-reveal.is-in { opacity: 1; transform: none; }
.kg-js .kg-reveal.kg-lift.is-in:hover { transform: translateY(-6px); }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.kg-js .kg-reveal { opacity: 1; transform: none; transition: none; }
	.kg-slide.is-active, .kg-mega-inner { animation: none; }
	.kg-lift, .kg-lift:hover, .kg-btn, .kg-btn:hover { transition: none; transform: none; }
}

@media (max-width: 640px) {
	.kg-section { padding-top: 64px; padding-bottom: 64px; }
	.kg-split { gap: 44px; }
	.kg-badge { right: 6px; }
	.kg-dress-rows dt { flex-basis: 100%; }
	.kg-bars { gap: 5px; height: 240px; }
	.kg-chart { padding: 24px 16px 18px; }
	.kg-slide-photo { padding-right: 12px; }
	.kg-slide-frame { border-radius: 14px 14px 14px 30px; }
}

/* =========================================================================
   1.3 design layer: elegant type, calmer shapes, motion, new footer
   ========================================================================= */
:root {
	--kg-shape: 20px;
	--kg-shape-alt: 20px;
	--kg-pill: 999px;
	--kg-r: 18px;
	--kg-shadow-sm: 0 1px 2px rgba(20, 22, 28, .06), 0 4px 14px rgba(20, 22, 28, .06);
	--kg-shadow-md: 0 2px 6px rgba(20, 22, 28, .06), 0 18px 40px rgba(11, 79, 130, .14);
	--kg-ease: cubic-bezier(.2, .7, .2, 1);
	--kg-text: #222733;
	--kg-muted: #4A5060;
	--kg-soft: #F6F8FB;
}
body { font-size: 17px; line-height: 1.7; letter-spacing: -0.003em; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .kg-h, .kg-banner-title, .kg-slide-title, .kg-card-title, .kg-quick-title, .kg-post-card-title, .kg-value-motto-text, .kg-mega-feature-title, .kg-kcse-title { font-family: var(--kg-display); font-weight: 700; letter-spacing: -0.012em; }
.kg-font-classic .kg-accent { font-style: italic; font-weight: 600; }
.kg-h { font-size: clamp(32px, 3.5vw, 50px); line-height: 1.12; margin-top: 14px; }
.kg-section { padding-top: clamp(72px, 9vw, 120px); padding-bottom: clamp(72px, 9vw, 120px); }
.kg-section-head { margin-bottom: 52px; }
.kg-eyebrow { font-size: 12.5px; letter-spacing: .2em; font-weight: 700; gap: 12px; }
.kg-eyebrow::before { width: 28px; height: 2px; }

/* Buttons */
.kg-btn { padding: 14px 26px; border-radius: var(--kg-pill); font-weight: 600; letter-spacing: .005em; transition: transform .25s var(--kg-ease), box-shadow .25s var(--kg-ease), background-color .25s, color .25s; }
.kg-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(20, 22, 28, .18); }
.kg-btn-ghost { border-color: var(--kg-line); color: var(--kg-text); }
.kg-btn-ghost:hover { border-color: var(--kg-blue-deep); color: var(--kg-blue-deep); }

/* Top bar and header */
.kg-topbar { font-size: 13px; }
.kg-topbar-motto { font-size: 11.5px; letter-spacing: .14em; padding: 10px 18px; border-bottom: 0; background: linear-gradient(90deg, var(--kg-green), #0E8A3E); }
.kg-header { transition: box-shadow .3s ease, background-color .3s ease; background: rgba(255, 255, 255, .97); backdrop-filter: saturate(160%) blur(10px); }
.kg-header-in { transition: padding .3s var(--kg-ease); }
.kg-brand img { transition: height .3s var(--kg-ease); }
.kg-header.is-scrolled { box-shadow: 0 8px 30px rgba(20, 22, 28, .1); }
.kg-header.is-scrolled .kg-header-in { padding-top: 6px; padding-bottom: 6px; }
.kg-header.is-scrolled .kg-brand img { height: 48px; }
.kg-nav-list { font-size: 15px; font-weight: 600; }
.kg-nav-list > li > a { border-bottom-width: 2px; }
.kg-mega-inner { border-radius: 0 0 var(--kg-r) var(--kg-r); border-top-width: 3px; }

/* Hero: soft ambient photo behind a crisp, uncropped photo */
.kg-hero { position: relative; overflow: hidden; isolation: isolate; }
.kg-slide-ambient { position: absolute; inset: -40px; z-index: -2; background: var(--kg-bg) center / cover no-repeat; filter: blur(34px) saturate(1.15); transform: scale(1.1); opacity: 0; transition: opacity .9s ease; }
.kg-slide.is-active .kg-slide-ambient { opacity: .55; }
.kg-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(8, 52, 88, .96) 0%, rgba(10, 79, 130, .86) 45%, rgba(10, 79, 130, .55) 100%); }
.kg-slide-text, .kg-slide-photo, .kg-slider-controls, .kg-slider-tabs { position: relative; z-index: 1; }
.kg-hero > .kg-wrap:first-child { padding-top: clamp(48px, 7vw, 88px); padding-bottom: 48px; }
.kg-slide-title { font-size: clamp(34px, 4.4vw, 60px); line-height: 1.06; }
.kg-slide-excerpt { color: rgba(255, 255, 255, .88); font-size: 18px; }
.kg-pill { border-radius: var(--kg-pill); }
.kg-slide-frame { border-radius: var(--kg-r); box-shadow: 0 0 0 1px rgba(255, 255, 255, .18), 0 30px 70px rgba(4, 20, 36, .45); }
.kg-slide.is-active .kg-slide-frame img { animation: kg-kenburns 9s ease-out both; }
@keyframes kg-kenburns { from { transform: scale(1.06); } to { transform: scale(1); } }
.kg-fit-contain .kg-slide-frame img, .kg-slide.is-active .kg-fit-contain .kg-slide-frame img { animation: none; }
.kg-slider-tabs { gap: 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.kg-tab { background: transparent; border-top: 2px solid transparent; transition: background-color .3s, border-color .3s; }
.kg-tab:hover { background: rgba(255, 255, 255, .06); }
.kg-tab.is-active { background: rgba(255, 255, 255, .1); color: #fff; border-top-color: #fff; }
.kg-tab-num { font-family: var(--kg-body); font-size: 13px; font-weight: 700; opacity: .7; padding-top: 2px; }
.kg-round { transition: transform .25s var(--kg-ease), background-color .25s; }
.kg-round:hover { transform: scale(1.06); }

/* Cards: one calm shape everywhere */
.kg-quick { background: #fff; padding: 64px 0 24px; }
.kg-quick-card { border: 1px solid var(--kg-line); border-bottom: 1px solid var(--kg-line) !important; border-radius: var(--kg-r); box-shadow: var(--kg-shadow-sm); align-items: center; padding: 24px; }
.kg-quick-card:hover { border-color: transparent !important; }
.kg-quick-icon { width: 52px; height: 52px; border-radius: 14px; }
.kg-quick-title { font-size: 20px; }
.kg-lift:hover { transform: translateY(-4px); box-shadow: var(--kg-shadow-md); }
.kg-path-card, .kg-post-card { border-radius: var(--kg-r); border: 1px solid var(--kg-line); border-bottom: 1px solid var(--kg-line); box-shadow: var(--kg-shadow-sm); }
.kg-path-photo, .kg-post-card-img { transition: transform .7s var(--kg-ease); }
.kg-path-card:hover .kg-path-photo, .kg-post-card:hover .kg-post-card-img { transform: scale(1.04); }
.kg-path-card, .kg-post-card { overflow: hidden; }
.kg-card-title { font-size: 23px; }
.kg-about-main, .kg-about-small, .kg-mosaic .kg-photo, .kg-mosaic .kg-photo:first-child, .kg-dress-photos .kg-photo { border-radius: var(--kg-r); }
.kg-badge { border-radius: 14px; background: var(--kg-ink); padding: 16px 22px; }
.kg-badge strong { font-family: var(--kg-display); }
.kg-principal { background: var(--kg-soft); border: 1px solid var(--kg-line); }

/* Activities: photo cards with the title on the image */
.kg-act-card { position: relative; border-radius: var(--kg-r); border-bottom: 0; overflow: hidden; background: var(--kg-ink); color: #fff; min-height: 380px; display: flex; }
.kg-act-photo { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; transition: transform .8s var(--kg-ease); }
.kg-act-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 22, 28, 0) 30%, rgba(20, 22, 28, .88) 100%); }
.kg-act-card:hover .kg-act-photo { transform: scale(1.05); }
.kg-act-body { position: relative; z-index: 1; margin-top: auto; padding: 24px; }
.kg-act-card .kg-card-text { color: rgba(255, 255, 255, .85); }
.kg-clubs { border-radius: var(--kg-r); background: var(--kg-soft); border-color: var(--kg-line); }
.kg-clubs li { background: #fff; border-color: var(--kg-line); }

/* Counters (dark) */
.kg-counters { padding: 72px 0; background-image: radial-gradient(ellipse at 100% 0, rgba(20, 153, 232, .2), transparent 55%); }
.kg-counter { border-left: 1px solid rgba(255, 255, 255, .18); padding-left: 24px; }
.kg-counter strong { font-family: var(--kg-display); font-weight: 700; font-size: clamp(40px, 4vw, 54px); font-variant-numeric: tabular-nums; }
.kg-counter span { color: #C9CCD4; font-size: 15px; }

/* Values: motto as a statement */
.kg-values { background: var(--kg-soft); padding-top: 96px; padding-bottom: 96px; }
.kg-value { background: #fff; border: 1px solid var(--kg-line); border-radius: var(--kg-r); box-shadow: var(--kg-shadow-sm); }
.kg-value-motto { background: var(--kg-green); background-image: radial-gradient(circle at 100% 0, rgba(255, 255, 255, .18), transparent 60%); border-color: transparent; }
.kg-value-motto-text { font-size: 28px; line-height: 1.2; }

/* Dress code and results refinements */
.kg-dress { background: var(--kg-soft); }
.kg-dress-rows > div { border-radius: 14px; border-left-width: 3px; box-shadow: var(--kg-shadow-sm); }
.kg-dress-notes { border-radius: 14px; }
.kg-result-stats strong { font-family: var(--kg-display); font-variant-numeric: tabular-nums; }
.kg-results .kg-h { color: #fff; }

/* Contact band: deep blue, calm */
.kg-band { background-color: var(--kg-blue-deep) !important; background-image: radial-gradient(ellipse at 100% 0, rgba(255, 255, 255, .18), transparent 55%), linear-gradient(120deg, #0A4F82, #0B6FB3) !important; padding: 72px 0; }
.kg-band h2 { font-size: clamp(28px, 3vw, 42px); }

/* Inner banner and content */
.kg-banner-title { font-size: clamp(34px, 4.4vw, 58px); }
.kg-content h2 { font-size: clamp(26px, 2.6vw, 36px); }

/* Scroll motion: staggered reveals, drawn charts, growing bars */
.kg-js .kg-reveal { transition: opacity .8s var(--kg-ease), transform .8s var(--kg-ease); transition-delay: calc(var(--kg-i, 0) * 90ms); transform: translateY(26px); }
.kg-js .kg-trend .kg-trend-line:not(.is-gap) { stroke-dasharray: var(--len) var(--len); stroke-dashoffset: var(--len); transition: stroke-dashoffset .5s linear; transition-delay: calc(.35s + var(--d) * .5s); }
.kg-js .kg-trend .kg-trend-line.is-gap { opacity: 0; transition: opacity .6s ease; transition-delay: calc(.35s + var(--d) * .5s); }
.kg-js .kg-trend .kg-trend-dot, .kg-js .kg-trend .kg-trend-val { opacity: 0; transition: opacity .35s ease; transition-delay: calc(.3s + var(--d, 5) * .5s); }
.kg-js .kg-trend .kg-trend-val { transition-delay: 3.1s; }
.kg-js .kg-trend.is-in .kg-trend-line:not(.is-gap) { stroke-dashoffset: 0; }
.kg-js .kg-trend.is-in .kg-trend-line.is-gap { opacity: .7; }
.kg-js .kg-trend.is-in .kg-trend-dot, .kg-js .kg-trend.is-in .kg-trend-val { opacity: 1; }
.kg-js .kg-trend.is-in .kg-trend-pt .kg-trend-dot { transition-delay: calc(.3s + var(--d) * .5s); }
.kg-js .kg-dist .kg-bar { transform: scaleY(0); transform-origin: 50% 100%; transition: transform .9s var(--kg-ease); transition-delay: calc(.2s + var(--i, 0) * 70ms); }
.kg-js .kg-dist .kg-bar-count { opacity: 0; transition: opacity .4s ease; transition-delay: calc(.6s + var(--i, 0) * 70ms); }
.kg-js .kg-dist.is-in .kg-bar { transform: none; }
.kg-js .kg-dist.is-in .kg-bar-count { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.kg-js .kg-trend .kg-trend-line, .kg-js .kg-trend .kg-trend-dot, .kg-js .kg-trend .kg-trend-val, .kg-js .kg-dist .kg-bar, .kg-js .kg-dist .kg-bar-count { stroke-dashoffset: 0 !important; opacity: 1 !important; transform: none !important; transition: none !important; }
	.kg-slide.is-active .kg-slide-frame img { animation: none; }
}

/* Footer */
.kg-footer { padding: 88px 0 28px; background-color: var(--kg-ink); background-image: radial-gradient(ellipse at 0 0, rgba(20, 153, 232, .12), transparent 50%); }
.kg-foot-main { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr; gap: 48px; align-items: start; padding-bottom: 56px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.kg-foot-main > * { min-width: 0; }
.kg-foot-logo { border-radius: 14px; padding: 12px 16px; }
.kg-foot-brand p { color: #C9CCD4; margin: 20px 0 0; max-width: 380px; }
.kg-foot-motto { font-family: var(--kg-display); font-style: italic; color: #fff !important; font-size: 18px; }
.kg-foot-reach .kg-btn-row { margin-top: 22px; }
.kg-foot-reach .kg-btn { padding: 11px 20px; font-size: 15px; }
.kg-foot-h { color: #fff; font-size: 12.5px; letter-spacing: .18em; margin: 0 0 14px; }
.kg-foot-contact li { color: #E4E6EB; padding: 7px 0; }
.kg-foot-contact .kg-icon { color: var(--kg-blue); }
.kg-foot-map { border-radius: var(--kg-r); overflow: hidden; background: #22252E; border: 1px solid rgba(255, 255, 255, .1); aspect-ratio: 4 / 3; }
.kg-foot-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.25) contrast(1.05); }
.kg-foot-cols { margin-top: 48px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.kg-foot-links a::before { border-left-width: 5px; border-left-color: var(--kg-blue); opacity: .8; }
.kg-social { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.kg-social a { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); color: #fff; transition: background-color .25s, border-color .25s, transform .25s var(--kg-ease); }
.kg-social a:hover { background: var(--kg-blue); border-color: var(--kg-blue); transform: translateY(-2px); }
.kg-foot-bottom { margin-top: 44px; border-top-color: rgba(255, 255, 255, .1); }
.kg-to-top { color: #fff; font-weight: 600; text-decoration: none; padding: 8px 0; }
.kg-to-top:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1100px) { .kg-foot-main { grid-template-columns: 1fr 1fr; } .kg-foot-map { grid-column: 1 / -1; aspect-ratio: 16 / 7; } }
@media (max-width: 680px) { .kg-foot-main { grid-template-columns: 1fr; gap: 36px; } .kg-foot-map { aspect-ratio: 4 / 3; } }

/* Phone quick-action bar */
.kg-mbar { display: none; }
@media (max-width: 900px) {
	.kg-has-mbar { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
	.kg-mbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: rgba(255, 255, 255, .98); backdrop-filter: blur(10px); border-top: 1px solid var(--kg-line); box-shadow: 0 -8px 24px rgba(20, 22, 28, .08); padding-bottom: env(safe-area-inset-bottom); }
	.kg-mbar ul { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
	.kg-mbar a, .kg-mbar button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 100%; min-height: 64px; padding: 8px 4px; border: 0; background: none; color: var(--kg-text); font-size: 11.5px; font-weight: 600; text-decoration: none; cursor: pointer; }
	.kg-mbar li:first-child a { color: var(--kg-blue-deep); }
	.kg-mbar a:active, .kg-mbar button:active { background: var(--kg-wash); }
	.kg-mbar .kg-icon { color: var(--kg-blue-deep); }
	.kg-mbar button[aria-expanded="true"] { color: var(--kg-red); }
	.kg-lightbox { padding-bottom: 80px; }
}

/* =========================================================================
   1.4 inner pages
   ========================================================================= */
/* Banner: campus or page photo under a deep, even tint */
.kg-banner, .kg-banner.has-photo { padding: clamp(84px, 11vw, 150px) 0 clamp(48px, 6vw, 72px); }
.kg-banner.has-photo { background-image: linear-gradient(180deg, rgba(10, 30, 52, .55) 0%, rgba(10, 30, 52, .82) 70%, rgba(14, 18, 26, .94) 100%), var(--kg-banner-img); background-position: center 40%; }
.kg-pattern-clean .kg-banner.has-photo { background-image: linear-gradient(180deg, rgba(10, 30, 52, .55) 0%, rgba(10, 30, 52, .82) 70%, rgba(14, 18, 26, .94) 100%), var(--kg-banner-img); background-size: cover; }
.kg-crumbs { gap: 10px; font-size: 13.5px; letter-spacing: .02em; color: rgba(255, 255, 255, .8); }
.kg-crumbs a { color: #fff; text-decoration: none; }
.kg-crumbs a:hover { text-decoration: underline; text-underline-offset: 4px; }
.kg-crumbs span[aria-hidden] { opacity: .5; }
.kg-banner-title { max-width: 20ch; margin-top: 16px; }
.kg-banner-lead { max-width: 640px; margin: 18px 0 0; font-size: 19px; color: rgba(255, 255, 255, .88); }
.kg-banner-meta { color: rgba(255, 255, 255, .85); font-size: 15px; }

/* Article with side column */
.kg-page-layout.has-aside { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(40px, 5vw, 72px); align-items: start; max-width: 1240px; }
.kg-page-layout.has-aside .kg-article { max-width: 780px; margin: 0; }
.kg-page-layout:not(.has-aside) .kg-article { max-width: 820px; }
@media (max-width: 1000px) { .kg-page-layout.has-aside { grid-template-columns: minmax(0, 1fr); } .kg-page-layout.has-aside .kg-article { max-width: none; } }
.kg-aside { position: sticky; top: 110px; display: grid; gap: 18px; }
@media (max-width: 1000px) { .kg-aside { position: static; } }
.kg-aside-card { background: #fff; border: 1px solid var(--kg-line); border-radius: var(--kg-r); padding: 22px 22px 24px; box-shadow: var(--kg-shadow-sm); }
.kg-aside-h { font-family: var(--kg-display); font-weight: 700; font-size: 20px; color: var(--kg-ink); margin-bottom: 10px; }
.kg-aside-sub { margin: 14px 0 4px; font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--kg-blue-deep); }
.kg-aside ul { list-style: none; margin: 0; padding: 0; }
.kg-aside-nav a { display: block; padding: 8px 12px; margin: 0 -12px; border-radius: 10px; color: var(--kg-text); font-weight: 500; text-decoration: none; }
.kg-aside-nav a:hover { background: var(--kg-soft); color: var(--kg-blue-deep); }
.kg-aside-nav a.is-current { background: var(--kg-wash); color: var(--kg-blue-deep); font-weight: 700; box-shadow: inset 3px 0 0 var(--kg-red); }
.kg-aside-contact { background: var(--kg-ink); color: #fff; border-color: transparent; background-image: radial-gradient(circle at 100% 0, rgba(20, 153, 232, .28), transparent 60%); }
.kg-aside-contact .kg-aside-h { color: #fff; }
.kg-aside-contact li { display: flex; gap: 10px; align-items: flex-start; padding: 7px 0; font-size: 15px; color: #E4E6EB; overflow-wrap: anywhere; }
.kg-aside-contact .kg-icon { flex-shrink: 0; margin-top: 4px; color: var(--kg-blue); }
.kg-aside-contact a:not(.kg-btn) { color: #fff; font-weight: 600; text-decoration: none; }
.kg-btn-sm { margin-top: 14px; padding: 10px 18px; font-size: 14.5px; background: #fff; border-color: #fff; color: var(--kg-ink); }
.kg-btn-sm:hover { color: var(--kg-ink); }
.kg-aside-quick a { display: flex; gap: 12px; align-items: center; padding: 9px 0; color: var(--kg-text); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--kg-line); }
.kg-aside-quick li:last-child a { border-bottom: 0; }
.kg-aside-quick .kg-icon { color: var(--kg-blue-deep); }
.kg-aside-quick a:hover span { color: var(--kg-blue-deep); text-decoration: underline; text-underline-offset: 4px; }

/* Page content refinements */
.kg-content { font-size: 18px; line-height: 1.78; color: #2A2F3B; }
.kg-content > p:first-child { font-size: 1.18em; line-height: 1.65; color: var(--kg-ink); }
.kg-content h2 { font-size: clamp(26px, 2.5vw, 34px); margin-top: 1.9em; }
.kg-content h3 { font-size: 23px; color: var(--kg-ink); }
.kg-content strong { color: var(--kg-ink); }
.kg-content a:not(.kg-btn):not(.kg-zoom) { color: var(--kg-blue-deep); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.kg-content figure.kg-figure img, .kg-content > p > img, .kg-content .wp-block-image img { border-radius: var(--kg-r); box-shadow: var(--kg-shadow-sm); }
.kg-content ol { padding-left: 1.3em; }
.kg-content ol > li { padding-left: .3em; margin: .4em 0; }
.kg-content ol > li::marker { color: var(--kg-blue-deep); font-weight: 700; }
.kg-content table:not(.kg-kcse-table) { border-radius: 14px; overflow: hidden; border: 1px solid var(--kg-line); }
.kg-content details.kg-toggle { background: #fff; box-shadow: var(--kg-shadow-sm); margin-bottom: 10px; }

/* Posts */
.kg-single .kg-article-photo img { border-radius: var(--kg-r); box-shadow: var(--kg-shadow-md); }
.kg-share { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; margin-top: 44px; padding: 20px 0; border-top: 1px solid var(--kg-line); border-bottom: 1px solid var(--kg-line); }
.kg-share span { font-weight: 700; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--kg-muted); }
.kg-share ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.kg-share a, .kg-share button { display: flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--kg-line); background: #fff; color: var(--kg-text); cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.kg-share a:hover, .kg-share button:hover, .kg-share button.is-copied { background: var(--kg-blue-deep); border-color: var(--kg-blue-deep); color: #fff; }
.kg-post-nav { border-top: 0; margin-top: 24px; padding-top: 0; }
.kg-post-nav a { text-decoration: none; color: var(--kg-blue-deep); }
.kg-post-card-more { display: block; margin-top: 14px; font-size: 14.5px; font-weight: 700; color: var(--kg-blue-deep); }

/* Contact page */
.kg-contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 2em 0; }
.kg-contact-card { display: flex; gap: 14px; align-items: flex-start; padding: 22px; background: var(--kg-soft); border: 1px solid var(--kg-line); border-radius: var(--kg-r); }
.kg-contact-card .kg-icon { flex-shrink: 0; color: var(--kg-blue-deep); }
.kg-contact-card strong { display: block; font-family: var(--kg-display); font-size: 19px; }
.kg-contact-card span { display: block; font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.kg-contact-map { border-radius: var(--kg-r); overflow: hidden; border: 1px solid var(--kg-line); aspect-ratio: 16 / 9; margin: 1.5em 0; }
.kg-contact-map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* Archive listing */
.kg-pagination .page-numbers { border-radius: 999px; }

/* Principal card in the homepage intro */
.kg-principal { gap: 18px; padding: 18px 22px 18px 18px; }
.kg-principal-photo { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--kg-line); }
.kg-principal strong { font-family: var(--kg-display); font-size: 21px; color: var(--kg-ink); }
.kg-principal-role { display: block; font-style: normal; font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--kg-blue-deep); margin-top: 2px; }
.kg-aside-widgets .kg-widget { background: #fff; border: 1px solid var(--kg-line); border-radius: var(--kg-r); box-shadow: var(--kg-shadow-sm); margin: 0; }
.kg-aside-widgets { display: grid; gap: 18px; }
.kg-aside, .kg-page-layout > * { min-width: 0; }
.kg-aside-widgets * { max-width: 100%; }
.kg-aside-widgets input[type="search"], .kg-aside-widgets select { width: 100%; padding: 10px 14px; border: 1px solid var(--kg-line); border-radius: 10px; }
.kg-content table:not(.kg-kcse-table) { display: table; width: 100%; border-collapse: separate; border-spacing: 0; }
.kg-content table:not(.kg-kcse-table) th, .kg-content table:not(.kg-kcse-table) td { border: 0; border-bottom: 1px solid var(--kg-line); }
.kg-content table:not(.kg-kcse-table) tr:last-child td { border-bottom: 0; }
@media (max-width: 640px) { .kg-content table:not(.kg-kcse-table) { display: block; overflow-x: auto; } }
/* Old builder headings: one size scale, no forced colours */
.kg-content h1 { font-size: clamp(28px, 2.8vw, 38px); margin: 1.6em 0 .5em; }
.kg-content h1 span[style], .kg-content h2 span[style], .kg-content h3 span[style], .kg-content h4 span[style] { color: inherit !important; font-size: inherit !important; }
.kg-content h1[style*="center"], .kg-content h2[style*="center"] { text-align: left !important; }

/* =========================================================================
   1.4.2 homepage section colours: white, warm ivory and pale uniform blue
   alternate so neighbouring sections never share a background.
   ========================================================================= */
:root { --kg-tint: #FAF4E8; --kg-tint-line: #EADFC8; }
.kg-quick { background: #fff; }
.kg-featured { background: var(--kg-tint); }
.kg-about { background: #fff; }
.kg-gallery-band { background: var(--kg-wash); }
.kg-values { background: var(--kg-tint); }
.kg-pathways { background: #fff; }
.kg-activities { background: var(--kg-wash); }
.kg-dress { background: var(--kg-tint); }
.kg-latest { background: #fff; }
/* Cards and panels read cleanly on the tinted backgrounds */
.kg-featured .kg-about-photos .kg-photo, .kg-values .kg-value { box-shadow: 0 1px 2px rgba(60, 40, 10, .06), 0 10px 28px rgba(60, 40, 10, .08); }
.kg-values .kg-value:not(.kg-value-motto) { border-color: var(--kg-tint-line); }
.kg-dress .kg-dress-rows > div { background: #fff; }
.kg-dress-notes { background: var(--kg-ink); }
.kg-activities .kg-clubs { background: #fff; border-color: #CFE3F3; }
.kg-activities .kg-clubs li { background: var(--kg-wash); border-color: #CFE3F3; }
.kg-gallery-band .kg-mosaic .kg-photo { box-shadow: 0 8px 24px rgba(11, 79, 130, .12); }
/* A thin ivory rule where two light sections meet keeps edges crisp */
.kg-featured, .kg-values, .kg-dress { border-top: 1px solid var(--kg-tint-line); border-bottom: 1px solid var(--kg-tint-line); }
.kg-gallery-band, .kg-activities { border-top: 1px solid #D6EAF8; border-bottom: 1px solid #D6EAF8; }

/* Chairman's message teaser */
.kg-chair { background: var(--kg-tint); border-top: 1px solid var(--kg-tint-line); border-bottom: 1px solid var(--kg-tint-line); }
.kg-chair-in { display: grid; grid-template-columns: minmax(220px, 340px) minmax(0, 1fr); gap: clamp(36px, 6vw, 88px); align-items: center; }
.kg-chair-photo { position: relative; }
.kg-chair-photo::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--kg-green); border-radius: var(--kg-r); }
.kg-chair-img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; border-radius: var(--kg-r); box-shadow: var(--kg-shadow-md); }
.kg-chair-quote { margin: 18px 0 0; padding: 0; border: 0; position: relative; }
.kg-chair-quote::before { content: "\201C"; position: absolute; left: -6px; top: -54px; font-family: var(--kg-display); font-size: 120px; line-height: 1; color: var(--kg-red); opacity: .25; }
.kg-chair-quote p { margin: 0; font-family: var(--kg-display); font-size: clamp(25px, 2.6vw, 36px); line-height: 1.28; color: var(--kg-ink); font-weight: 600; }
.kg-font-classic .kg-chair-quote p { font-style: italic; font-weight: 500; }
.kg-chair-more { margin: 22px 0 0; color: var(--kg-muted); max-width: 640px; }
.kg-chair-sign { margin-top: 24px; padding-left: 16px; border-left: 3px solid var(--kg-green); }
.kg-chair-sign strong { display: block; font-family: var(--kg-display); font-size: 20px; color: var(--kg-ink); }
.kg-chair-sign span { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--kg-blue-deep); }
.kg-chair .kg-btn-row { margin-top: 26px; }
@media (max-width: 800px) { .kg-chair-in { grid-template-columns: minmax(0, 1fr); } .kg-chair-photo { max-width: 300px; margin: 0 auto 12px; } }
/* With the Chairman section in ivory, the photo strip stays pale blue and values switch to white */
.kg-chair + .kg-gallery-band { border-top: 0; }
.kg-chair-quote { margin-top: 26px; }
.kg-chair-quote::before { left: -58px; top: -22px; font-size: 104px; opacity: .3; }
@media (max-width: 1100px) { .kg-chair-quote::before { display: none; } }
