/*!
 * KCAU Registrar — shared design system (Office of the Registrar, Teaching & Learning)
 * One stylesheet for tokens and reusable components. Applied by adding the class names
 * below to Elementor containers/widgets (Advanced → CSS Classes). No per-page CSS.
 * Contrast: body/description text uses --kc-muted (#566B8F, ≥4.5:1 on white, #F8F9FC, n100);
 * gold is used as background/decoration; small gold-toned labels use --kc-g600.
 */

/* ───────────────────────────── Tokens */
:root {
	--kc-navy: #192C57;
	--kc-gold: #CBAE2D;
	--kc-n100: #E8ECF3; --kc-n200: #C4CEE0; --kc-n300: #7B91B3; --kc-n400: #3D5580;
	--kc-n600: #132341; --kc-n700: #0D1A2E; --kc-n800: #061120;
	--kc-g100: #F7F0D0; --kc-g200: #EBE0A0; --kc-g300: #E2D06C; /* was #DCC95C — lightened for ≥ 4.5:1 on the lightest hero navy #3D5580 (Stage G) */ --kc-g500: #A88E22; --kc-g600: #7D6B18;
	--kc-muted: #566B8F;
	--kc-alt: #F8F9FC;
	--kc-grad-hero: linear-gradient(160deg, #061120 0%, #192C57 58%, #3D5580 100%);
	--kc-grad-footer: linear-gradient(180deg, #0D1A2E 0%, #061120 100%);
	--kc-grad-gold: linear-gradient(135deg, #DCC95C, #CBAE2D, #A88E22);
	--kc-grad-navy: linear-gradient(135deg, #192C57, #3D5580);
	--kc-sh-navy: 0 4px 16px rgba(25, 44, 87, .14);
	--kc-sh-lg: 0 12px 36px rgba(25, 44, 87, .22);
	--kc-sh-gold: 0 4px 16px rgba(203, 174, 45, .32);
	--kc-fb: 'futura-pt', sans-serif;      /* Futura PT — Adobe Fonts kit vzi8gkp (family "futura-pt"): all text */
	--kc-fh: 'futura-pt', sans-serif;      /* headings — Futura PT (single brand family since 2026-10-19) */
	--kc-fi: 'interstate', sans-serif;     /* Interstate — Adobe Fonts kit xwg6vsw (family "interstate"): registered, not applied yet */
	--kc-fm: var(--kc-fb); /* labels: Futura PT, uppercase + tracking (no monospace font loaded) */
	--kc-r: 14px;
	--kc-rs: 8px;
	--kc-max: 1300px;
	--kc-focus: 0 0 0 3px #fff, 0 0 0 5px var(--kc-n400);
}

/* ───────────────────────────── Base typography (overrides legacy theme fonts) */
body,
body .elementor-widget-text-editor,
body button, body input, body select, body textarea {
	font-family: var(--kc-fb);
}
body { color: var(--kc-n700); }
h1, h2, h3, h4,
.elementor-widget-heading .elementor-heading-title,
.ova_heading .title {
	font-family: var(--kc-fh);
}
h5, h6 { font-family: var(--kc-fb); }

/* Visible keyboard focus everywhere. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible, .elementor-button:focus-visible, summary:focus-visible {
	outline: none;
	box-shadow: var(--kc-focus);
	border-radius: 4px;
}

.screen-reader-text:not(:focus) {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; width: 1px; white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ───────────────────────────── Section helpers */
.kc-section-alt { background: var(--kc-alt); }
.kc-wrap { max-width: var(--kc-max); margin-inline: auto; }

.kc-eyebrow, .kc-eyebrow .elementor-heading-title {
	font-family: var(--kc-fm) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--kc-g600) !important;
}
.kc-on-dark .kc-eyebrow, .kc-on-dark .kc-eyebrow .elementor-heading-title { color: var(--kc-g300) !important; }

.kc-gold-bar { width: 44px; height: 3px; background: var(--kc-grad-gold); border-radius: 2px; }
.kc-gold-bar.kc-center { margin-inline: auto; }

.kc-muted, .kc-muted p, .kc-muted .elementor-widget-container { color: var(--kc-muted); }

/* Gold italic highlight inside headings: <em> in a Heading widget title. */
.kc-hero h1 em, .kc-hero h2 em, .kc-highlight em, .elementor-heading-title em {
	font-style: italic;
	background: linear-gradient(to right, var(--kc-g200), var(--kc-gold));
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.kc-on-light .elementor-heading-title em { background: none; -webkit-text-fill-color: currentColor; color: var(--kc-g600); }

/* ───────────────────────────── Hero (home + inner pages) */
.kc-hero {
	background: var(--kc-grad-hero);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	color: #fff;
}
.kc-hero::before {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background-image: linear-gradient(rgba(203, 174, 45, .055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(203, 174, 45, .055) 1px, transparent 1px);
	background-size: 44px 44px;
	animation: kc-grid-drift 22s linear infinite;
}
.kc-hero::after {
	content: ''; position: absolute; z-index: -1; width: 600px; height: 600px; right: -100px; top: -100px;
	background: radial-gradient(ellipse, rgba(203, 174, 45, .11) 0%, transparent 65%);
	pointer-events: none;
}
@keyframes kc-grid-drift { to { background-position: 44px 44px; } }
.kc-hero .elementor-heading-title { color: #fff; }
.kc-hero p, .kc-hero .elementor-widget-text-editor { color: var(--kc-n200); }

.kc-pill .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 7px;
	background: rgba(203, 174, 45, .14); border: 1px solid rgba(203, 174, 45, .28);
	border-radius: 20px; padding: 5px 14px;
	font-family: var(--kc-fb) !important; font-size: 11px !important; font-weight: 600 !important;
	color: var(--kc-g300) !important; letter-spacing: 1.2px; text-transform: uppercase;
}
.kc-pill .elementor-heading-title::before {
	content: ''; width: 6px; height: 6px; background: var(--kc-gold); border-radius: 50%;
	animation: kc-blink 2.2s ease-in-out infinite;
}
@keyframes kc-blink { 50% { opacity: .4; transform: scale(1.4); } }

/* ───────────────────────────── Buttons (add class to an Elementor Button widget) */
.kc-btn-gold .elementor-button, .kc-btn-ghost .elementor-button, .kc-btn-navy .elementor-button, .kc-btn-outline .elementor-button {
	font-family: var(--kc-fb); font-size: 14px; font-weight: 700; line-height: 1.2;
	border-radius: var(--kc-rs); padding: 13px 26px; min-height: 44px;
	display: inline-flex; align-items: center; gap: 8px;
	transition: transform .2s, box-shadow .2s, background .2s, color .2s;
}
.kc-btn-gold .elementor-button { background: var(--kc-grad-gold); color: var(--kc-n700); box-shadow: var(--kc-sh-gold); }
.kc-btn-gold .elementor-button:hover { color: var(--kc-n700); transform: translateY(-2px); box-shadow: 0 10px 26px rgba(203, 174, 45, .42); }
.kc-btn-ghost .elementor-button { background: rgba(255, 255, 255, .09); color: #fff; border: 1px solid rgba(255, 255, 255, .3); }
.kc-btn-ghost .elementor-button:hover { background: rgba(255, 255, 255, .16); color: #fff; transform: translateY(-2px); }
.kc-btn-navy .elementor-button { background: var(--kc-navy); color: #fff; border: 1px solid var(--kc-n400); font-weight: 600; }
.kc-btn-navy .elementor-button:hover { background: var(--kc-n400); color: #fff; }
.kc-btn-outline .elementor-button { background: transparent; color: var(--kc-navy); border: 2px solid var(--kc-navy); font-weight: 600; }
.kc-btn-outline .elementor-button:hover { background: var(--kc-navy); color: #fff; }

/* ───────────────────────────── Cards (container + icon + heading + text + link) */
.kc-card {
	background: #fff; border: 1px solid var(--kc-n100); border-radius: var(--kc-r);
	box-shadow: var(--kc-sh-navy); position: relative; overflow: hidden;
	transition: transform .3s cubic-bezier(.25, .46, .45, .94), box-shadow .3s, border-color .3s;
}
.kc-card::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: linear-gradient(90deg, var(--kc-navy), var(--kc-gold));
	transform: scaleX(0); transform-origin: left; transition: transform .35s;
}
.kc-card:hover, .kc-card:focus-within { transform: translateY(-6px); box-shadow: var(--kc-sh-lg); border-color: var(--kc-n200); }
.kc-card:hover::after, .kc-card:focus-within::after { transform: scaleX(1); }
.kc-card .elementor-icon-wrapper .elementor-icon, .kc-card .kc-icon .elementor-icon {
	width: 50px; height: 50px; font-size: 22px; border-radius: 12px; background: var(--kc-n100); color: var(--kc-navy);
	display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: background .3s, color .3s;
}
.kc-card:hover .elementor-icon { background: var(--kc-grad-navy); color: #fff; }
.kc-card .elementor-heading-title { font-family: var(--kc-fb); font-size: 16px; font-weight: 700; color: var(--kc-navy); }
.kc-card .elementor-widget-text-editor { color: var(--kc-muted); font-size: 14px; line-height: 1.65; }
.kc-card-link a, .kc-card-link .elementor-button { color: var(--kc-n400); font-weight: 600; font-size: 13px; }
.kc-card:hover .kc-card-link a { color: var(--kc-g600); }

/* Tiles (compact link boxes) */
.kc-tile { border: 1px solid var(--kc-n100); border-radius: var(--kc-rs); background: #fff; transition: border-color .22s, background .22s, transform .22s; }
.kc-tile:hover, .kc-tile:focus-within { border-color: var(--kc-navy); background: var(--kc-n100); transform: translateY(-2px); }
.kc-tile .elementor-heading-title { font-family: var(--kc-fb); font-size: 14px; font-weight: 700; color: var(--kc-navy); }
.kc-tile .elementor-widget-text-editor { font-size: 13px; color: var(--kc-muted); line-height: 1.5; }

/* Value cards */
.kc-value { background: linear-gradient(145deg, var(--kc-n100), #fff); border: 1px solid var(--kc-n200); border-radius: var(--kc-r); text-align: center; }
.kc-value .elementor-heading-title { font-family: var(--kc-fb); font-size: 15px; font-weight: 700; color: var(--kc-navy); }
.kc-value .elementor-widget-text-editor { font-size: 13px; color: var(--kc-muted); }

/* ───────────────────────────── Info boxes, dark cards, sidebar cards */
.kc-info { background: var(--kc-n100); border-left: 4px solid var(--kc-navy); border-radius: var(--kc-r); }
/* Solid KCAU gold (navy text, navy edge) and solid navy (white text, gold edge) — Webmaster 2026-10-22: the two swap colours. */
.kc-info--gold { background: var(--kc-gold); border-left-color: var(--kc-navy); }
.kc-info--navy { background: var(--kc-navy); border-left-color: var(--kc-gold); }
.kc-info .elementor-heading-title { font-family: var(--kc-fb); font-size: 14px; font-weight: 700; color: var(--kc-navy); }
.kc-info .elementor-widget-text-editor, .kc-info li { font-size: 14px; color: var(--kc-n700); line-height: 1.7; }

.kc-dark-card { background: var(--kc-grad-navy); border-radius: var(--kc-r); color: #fff; }
.kc-dark-card--gold { background: var(--kc-g600); }
.kc-dark-card .elementor-heading-title { color: var(--kc-g300); font-size: 20px; }
.kc-dark-card--gold .elementor-heading-title { color: #fff; }
.kc-dark-card .elementor-widget-text-editor, .kc-dark-card p { color: rgba(255, 255, 255, .88); font-size: 14px; line-height: 1.7; }
.kc-dark-card a { color: var(--kc-g300); text-decoration: underline; }

.kc-sidebar-card { background: var(--kc-n100); border-radius: var(--kc-r); }
.kc-sidebar-title .elementor-heading-title {
	font-family: var(--kc-fb); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px;
	color: var(--kc-navy); padding-bottom: 10px; border-bottom: 2px solid var(--kc-gold);
}
.kc-sidebar-links .elementor-icon-list-item > a, .kc-sidebar-links .elementor-icon-list-item > .elementor-icon-list-text {
	display: flex; align-items: center; gap: 9px; padding: 10px 12px; min-height: 44px; background: #fff;
	border-radius: var(--kc-rs); color: var(--kc-navy); font-weight: 500; transition: background .2s, color .2s, transform .2s;
}
.kc-sidebar-links .elementor-icon-list-item > a:hover, .kc-sidebar-links .elementor-icon-list-item > a:focus-visible {
	background: var(--kc-navy); color: #fff; transform: translateX(4px);
}
.kc-sidebar-links .elementor-icon-list-item > a:hover .elementor-icon-list-icon i,
.kc-sidebar-links .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: #fff; }

/* ───────────────────────────── Process steps (container .kc-steps > containers .kc-step) */
.kc-steps { counter-reset: kc-step; }
.kc-step { position: relative; padding-left: 60px !important; padding-bottom: 28px !important; }
.kc-step::before {
	counter-increment: kc-step; content: counter(kc-step);
	position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%;
	background: var(--kc-grad-gold); color: var(--kc-n700); font-weight: 800; font-size: 15px;
	display: flex; align-items: center; justify-content: center; box-shadow: var(--kc-sh-gold);
}
.kc-step:not(:last-child)::after {
	content: ''; position: absolute; left: 19px; top: 46px; bottom: 4px; width: 2px;
	background: linear-gradient(to bottom, var(--kc-g300), var(--kc-n200));
}
.kc-step .elementor-heading-title { font-family: var(--kc-fb); font-size: 16px; font-weight: 700; color: var(--kc-navy); }
.kc-step .elementor-widget-text-editor { font-size: 14px; color: var(--kc-muted); line-height: 1.7; }

/* ───────────────────────────── Tables (wrap a Text Editor table) */
.kc-table .elementor-widget-container, .kc-table-wrap { overflow-x: auto; border-radius: var(--kc-r); box-shadow: var(--kc-sh-navy); border: 1px solid var(--kc-n200); -webkit-overflow-scrolling: touch; }
.kc-table table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; min-width: 520px; }
.kc-table th { background: var(--kc-navy); color: #fff; padding: 12px 16px; text-align: left; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .7px; }
.kc-table td { padding: 12px 16px; border-bottom: 1px solid var(--kc-n100); color: var(--kc-n700); vertical-align: top; }
.kc-table tr:last-child td { border-bottom: 0; }
.kc-table tbody tr:hover td { background: var(--kc-n100); }

/* ───────────────────────────── Date cards (dark section) */
.kc-dates-dark { background: var(--kc-n700); position: relative; isolation: isolate; }
.kc-dates-dark::before {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background-image: linear-gradient(rgba(203, 174, 45, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(203, 174, 45, .04) 1px, transparent 1px);
	background-size: 44px 44px;
}
.kc-dates-dark .elementor-heading-title { color: #fff; }
.kc-date-card { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--kc-r); transition: background .3s, transform .3s; }
.kc-date-card:hover { background: rgba(255, 255, 255, .09); transform: translateY(-3px); }
.kc-date-day .elementor-heading-title { font-family: var(--kc-fh); font-size: 34px; color: #fff; line-height: 1; }
.kc-date-month .elementor-heading-title { font-family: var(--kc-fb); font-size: 13px; font-weight: 600; color: var(--kc-g300); }
.kc-date-card .elementor-widget-text-editor { color: rgba(255, 255, 255, .85); font-size: 14px; }
.kc-tba { display: inline-block; font-family: var(--kc-fm); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; padding: 2px 8px; border-radius: 4px; background: rgba(203, 174, 45, .16); color: var(--kc-g300); border: 1px dashed rgba(203, 174, 45, .5); }
.kc-on-light .kc-tba, .kc-tba--light { background: var(--kc-g100); color: var(--kc-g600); border-color: var(--kc-g500); }

/* ───────────────────────────── Download / timetable cards */
.kc-dl-card { background: #fff; border: 1px solid var(--kc-n100); border-radius: var(--kc-r); box-shadow: 0 2px 12px rgba(25, 44, 87, .07); transition: transform .3s, box-shadow .3s; }
.kc-dl-card:hover, .kc-dl-card:focus-within { transform: translateY(-3px); box-shadow: var(--kc-sh-lg); }
.kc-dl-card .elementor-icon { width: 52px; height: 52px; border-radius: 12px; background: var(--kc-grad-navy); color: #fff; font-size: 22px; display: inline-flex; align-items: center; justify-content: center; }
.kc-dl-card .elementor-heading-title { font-family: var(--kc-fb); font-size: 15px; font-weight: 700; color: var(--kc-navy); }
.kc-dl-meta, .kc-dl-meta .elementor-widget-container { font-size: 13px; color: var(--kc-muted); }

/* ───────────────────────────── Nested Tabs / Accordion skin (Elementor free, Nested Elements) */
.kc-tabs .e-n-tabs-heading { background: var(--kc-n100); border-radius: var(--kc-r) var(--kc-r) 0 0; gap: 0 !important; overflow-x: auto; }
.kc-tabs .e-n-tab-title { font-family: var(--kc-fb); font-weight: 600; font-size: 14px; color: var(--kc-n400); background: transparent; border: 0; border-bottom: 3px solid transparent; min-height: 48px; white-space: nowrap; }
.kc-tabs .e-n-tab-title[aria-selected="true"] { background: #fff; color: var(--kc-navy); border-bottom-color: var(--kc-gold); }
.kc-tabs .e-n-tab-title:hover { color: var(--kc-navy); }
.kc-tabs .e-n-tabs-content > .e-con { border: 1px solid var(--kc-n100); border-top: 0; border-radius: 0 0 var(--kc-r) var(--kc-r); background: #fff; }

.kc-faq .e-n-accordion-item { border: 1px solid var(--kc-n100); border-radius: var(--kc-rs); background: #fff; margin-bottom: 8px; overflow: hidden; }
.kc-faq .e-n-accordion-item-title { font-family: var(--kc-fh); font-weight: 600; font-size: 16px; color: var(--kc-navy); padding: 16px 18px; min-height: 48px; }
.kc-faq .e-n-accordion-item[open] > .e-n-accordion-item-title { border-bottom: 1px solid var(--kc-n100); }
.kc-faq .e-n-accordion-item > .e-con { color: var(--kc-muted); padding: 14px 18px 18px; }

/* ───────────────────────────── Placeholders that must be verified (visible to editors and visitors) */
.kc-verify { outline: 2px dashed var(--kc-g500); outline-offset: 3px; }

/* ───────────────────────────── Generic responsive guards */
.elementor img { max-width: 100%; height: auto; }
@media (max-width: 480px) {
	.kc-grid-4 { --e-con-grid-template-columns: 1fr !important; grid-template-columns: 1fr !important; }
}

/* ═════════════════════════════ Site chrome — header (Header Main, ova_framework_hf_el 6018) */
.kc-topbar { border-bottom: 1px solid rgba(203, 174, 45, .18); font-size: 12.5px; }
.kc-topbar p { margin: 0; }
.kc-topbar .kc-tb-contact { display: flex; flex-wrap: wrap; gap: 6px 20px; color: rgba(255, 255, 255, .78); }
.kc-topbar .kc-tb-contact i { color: var(--kc-g300); margin-right: 6px; }
.kc-topbar a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.kc-topbar a:hover { color: #fff; }
.kc-tb-links { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px; }
.kc-tb-links a { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 11px; border-radius: 20px; font-weight: 500; letter-spacing: .2px; }
.kc-tb-links a:hover { background: rgba(255, 255, 255, .08); }
.kc-tb-links a.kc-tb-accent { background: rgba(203, 174, 45, .15); border: 1px solid rgba(203, 174, 45, .35); color: var(--kc-g300); font-weight: 600; }
.kc-tb-links a.kc-tb-accent::after { content: '↗'; margin-left: 5px; font-size: 11px; }

.kc-mainbar { box-shadow: 0 2px 18px rgba(6, 17, 32, .08); z-index: 999; position: relative; }
.kc-mainbar.active_fixed, .kc-mainbar.active_fixed_mobile { box-shadow: 0 4px 24px rgba(6, 17, 32, .16); }
.kc-brand .elementor-widget-ova_logo img { display: block; }
/* Desktop navigation from 1100 px (8-item menu needs ≈ 912 px — measured 2026-10-16; see 05-changelog C-44/C-46) */
@media (min-width: 1100px) {
	.kc-mainnav .ova_nav ul.menu > li > a {
		font-family: var(--kc-fb) !important; font-size: 14.5px !important; font-weight: 500 !important; text-transform: none !important;
		color: var(--kc-n700) !important; position: relative;
	}
	.kc-mainnav .ova_nav ul.menu > li > a::after {
		content: ''; position: absolute; left: 9px; right: 9px; bottom: 16px; height: 2px; background: var(--kc-gold);
		transform: scaleX(0); transition: transform .25s; transform-origin: left;
	}
	.kc-mainnav .ova_nav ul.menu > li:hover > a::after,
	.kc-mainnav .ova_nav ul.menu > li > a:focus-visible::after,
	.kc-mainnav .ova_nav ul.menu > li.current-menu-item > a::after,
	.kc-mainnav .ova_nav ul.menu > li.current-menu-ancestor > a::after { transform: scaleX(1); }
	.kc-mainnav .ova_nav ul.menu > li.current-menu-item > a,
	.kc-mainnav .ova_nav ul.menu > li.current-menu-ancestor > a { color: var(--kc-navy) !important; font-weight: 600 !important; }
	.kc-mainnav .ova_nav ul.menu > li > a i { font-size: 13px; margin-left: 3px; }

	.kc-mainnav .ova_nav ul.menu .dropdown-menu {
		background: #fff; border-radius: var(--kc-r); min-width: 270px; padding: 10px !important;
		border: 1px solid rgba(25, 44, 87, .08); box-shadow: 0 24px 64px rgba(6, 17, 32, .18) !important; opacity: 1;
	}
	.kc-mainnav .ova_nav ul.menu .dropdown-menu li a {
		display: block; font-family: var(--kc-fb) !important; font-size: 14px !important; font-weight: 600 !important; text-transform: none !important;
		color: var(--kc-navy) !important; border-radius: 10px; padding: 10px 12px !important; transition: background .18s, color .18s;
	}
	.kc-mainnav .ova_nav ul.menu .dropdown-menu li a:hover,
	.kc-mainnav .ova_nav ul.menu .dropdown-menu li a:focus-visible { background: var(--kc-n100); color: var(--kc-navy) !important; }
	.kc-mainnav .ova_nav ul.menu .dropdown-menu li a::after, .kc-mainnav .ova_nav ul.menu .dropdown-menu li a::before { display: none !important; }

	/* Keyboard and click (kcau.js) open the same dropdowns as hover. */
	.ova_nav ul.menu > li:focus-within > .dropdown-menu,
	.ova_nav ul.menu > li.kc-open > .dropdown-menu { display: block; visibility: visible; opacity: 1; z-index: 9999; top: 100%; }
}

/* Header CTA */
.kc-header-cta .elementor-button { padding: 10px 18px; font-size: 13.5px; white-space: nowrap; }
.kc-header-cta .elementor-button::after { content: '→'; margin-left: 6px; font-weight: 700; }
.kc-search .ova_wrap_search_popup i { font-size: 18px; color: var(--kc-navy); cursor: pointer; }


/* Below 1100 px: hamburger drawer in KCAU navy */
@media (max-width: 1099px) {
	.kc-mainbar { flex-wrap: nowrap; }
	.kc-mainnav { order: 3; }
	.kc-header-actions { order: 2; margin-left: auto; }
	.kc-mainnav .ova_openNav { min-width: 44px; min-height: 44px; border-radius: 8px; }
	.kc-mainnav .ova_nav { background: var(--kc-n600) !important; }
	.kc-mainnav .ova_nav ul.menu li a { color: #fff !important; font-family: var(--kc-fb) !important; font-size: 15px !important; text-transform: none !important; min-height: 44px; display: flex; align-items: center; }
	.kc-mainnav .ova_nav ul.menu .dropdown-menu { background: transparent !important; box-shadow: none !important; }
	.kc-mainnav .ova_nav ul.menu .dropdown-menu li a { color: var(--kc-n200) !important; font-size: 14px !important; }
	.kc-mainnav .ova_nav .dropdown-toggle { min-width: 44px; min-height: 44px; color: #fff; }
	.kc-mainnav a.ova_closeNav { color: #fff; font-size: 22px; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}
@media (max-width: 480px) {	.kc-header-cta .elementor-button { padding: 9px 12px; font-size: 12.5px; }
	.kc-header-cta .elementor-button::after { content: none; }
}
/* Breadcrumb bar */
.kc-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 13px; color: var(--kc-muted); }
.kc-breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }
.kc-breadcrumb li + li::before { content: '›'; color: var(--kc-n300); font-size: 14px; }
.kc-breadcrumb a { color: var(--kc-n400); text-decoration: none; }
.kc-breadcrumb a:hover { color: var(--kc-navy); text-decoration: underline; }
.kc-breadcrumb [aria-current="page"] { color: var(--kc-n700); font-weight: 600; }
.home .kc-breadcrumb-bar { display: none; }

/* Logo widget renders desktop, mobile and sticky variants — show one at a time. */
.kc-brand .ova_logo img { width: 64px !important; height: auto; }
.kc-brand .ova_logo .mobile-logo, .kc-brand .ova_logo .logo-fixed { display: none !important; }
@media (max-width: 1024px) {
	.kc-brand .ova_logo .desk-logo { display: none !important; }
	.kc-brand .ova_logo .mobile-logo { display: block !important; width: 52px !important; }
}

/* Header inner containers size to content (Elementor containers default to --width:100%). */
.kc-mainbar > .e-con-inner > .kc-brand, .kc-mainbar > .kc-brand,
.kc-mainbar > .e-con-inner > .kc-header-actions, .kc-mainbar > .kc-header-actions {
	--width: auto; width: auto; flex: 0 0 auto; max-width: none;
}
.kc-mainbar > .e-con-inner > .kc-mainnav, .kc-mainbar > .kc-mainnav { flex: 1 1 auto; min-width: 0; }
.kc-mainnav .ova_wrap_nav { justify-content: flex-end; }
@media (min-width: 1100px) {
	.kc-mainnav .ova_nav ul.menu { flex-wrap: nowrap; justify-content: flex-end; }
	.kc-mainnav .ova_nav ul.menu > li > a { white-space: nowrap; }
}
/* 1100–1440 px: tighten slightly (readable 14 px) and hide the main-bar Student Portal button — the top bar shows one. */
@media (min-width: 1100px) and (max-width: 1440px) {
	.kc-mainnav .ova_nav ul.menu > li > a { font-size: 14px !important; padding-left: 7px !important; padding-right: 7px !important; }
	.kc-mainnav .ova_nav ul.menu > li > a::after { left: 7px; right: 7px; }
	.kc-header-cta { display: none !important; }
}

/* ═════════════════════════════ Site chrome — footer (ova_framework_hf_el 177) */
.kc-cta-band .kc-cta-title .elementor-heading-title { font-size: clamp(24px, 3vw, 36px); line-height: 1.18; color: #fff; }
.kc-cta-band .kc-cta-text { color: var(--kc-n200); font-size: 15px; line-height: 1.65; max-width: 600px; }
.kc-cta-band .kc-cta-text a { color: var(--kc-g300); }
.kc-cta-band .kc-cta-text p { margin: 0; }

.kc-footer { background: var(--kc-grad-footer); color: rgba(255, 255, 255, .72); font-size: 14px; }
.kc-footer a { color: rgba(255, 255, 255, .8); text-decoration: none; }
.kc-footer a:hover, .kc-footer a:focus-visible { color: var(--kc-g300); text-decoration: underline; }.kc-footer-desc { max-width: 290px; line-height: 1.75; color: rgba(255, 255, 255, .7); }
.kc-footer-desc p { margin: 0; }
.kc-socials .elementor-social-icon { border: 1px solid rgba(255, 255, 255, .14); width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.kc-socials .elementor-social-icon:hover { background: var(--kc-gold) !important; }
.kc-socials .elementor-social-icon:hover i, .kc-socials .elementor-social-icon:hover svg { color: var(--kc-n700) !important; fill: var(--kc-n700) !important; }

.kc-footer-title .elementor-heading-title {
	font-family: var(--kc-fb) !important; font-size: 12px !important; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--kc-g300) !important;
}
.kc-footer-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-footer-links li a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: rgba(255, 255, 255, .78); transition: color .2s, padding .2s; }
.kc-footer-links li a::before { content: '→'; color: var(--kc-g300); font-size: 12px; }
.kc-footer-links li a:hover { padding-left: 4px; }
.kc-footer-links nav, .kc-footer-links .menu-footer-services-container, .kc-footer-links .menu-footer-about-container { margin: 0; }

.kc-footer-contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.kc-footer-contact li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; }
.kc-footer-contact i { color: var(--kc-g300); width: 16px; margin-top: 4px; text-align: center; flex: 0 0 16px; }

.kc-footer-bottom { font-size: 12.5px; color: rgba(255, 255, 255, .6); }
.kc-footer-bottom p { margin: 0; }
.kc-footer-bottom-links { display: flex; gap: 16px; flex-wrap: wrap; }
.kc-footer-bottom a { color: rgba(255, 255, 255, .7); }
@media (max-width: 767px) {
	.kc-footer-bottom { flex-direction: column; align-items: flex-start !important; }
}

/* Student Portal: header button on tablet/desktop, drawer item on phones. */
@media (min-width: 768px) { .kc-mainnav .ova_nav ul.menu > li.kc-menu-portal { display: none !important; } }
@media (max-width: 767px) {
	.kc-header-actions { display: none !important; }
	.kc-mainnav .ova_nav ul.menu > li.kc-menu-portal > a { color: var(--kc-g300) !important; font-weight: 600 !important; }
	.kc-mainnav .ova_nav ul.menu > li.kc-menu-portal > a::after { content: ' ↗'; }
	.kc-mainbar { gap: 10px !important; }
}

@media (max-width: 1099px) { .kc-mainbar > .e-con-inner > .kc-mainnav, .kc-mainbar > .kc-mainnav { margin-left: auto; flex: 0 0 auto; } }

/* ═════════════════════════════ Announcement ticker ([kcau_ticker], header) */
.kc-ticker-bar:not(:has(.kc-ticker)) { display: none !important; }
.kc-ticker { display: flex; align-items: center; gap: 14px; min-height: 42px; overflow: hidden; font-size: 13px; }
.kc-ticker-badge { flex: 0 0 auto; background: var(--kc-gold); color: var(--kc-n700); font-size: 10.5px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; padding: 3px 9px; border-radius: 4px; }
.kc-ticker-track { flex: 1 1 auto; overflow: hidden; display: flex; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.kc-ticker-list { display: flex; gap: 52px; margin: 0; padding: 0 26px 0 0; list-style: none; white-space: nowrap; animation: kc-tick 40s linear infinite; }
.kc-ticker-track:hover .kc-ticker-list, .kc-ticker-track:focus-within .kc-ticker-list { animation-play-state: paused; }
.kc-ticker-list li { display: inline-flex; align-items: center; gap: 8px; }
.kc-ticker-list li::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--kc-gold); }
.kc-ticker-list a { color: var(--kc-n200); text-decoration: none; }
.kc-ticker-list a:hover, .kc-ticker-list a:focus-visible { color: var(--kc-g300); text-decoration: underline; }
.kc-ticker-all { flex: 0 0 auto; color: var(--kc-g300); font-weight: 600; font-size: 12.5px; text-decoration: none; }
@keyframes kc-tick { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) {
	.kc-ticker-list { animation: none; flex-wrap: wrap; white-space: normal; gap: 6px 24px; }
	.kc-ticker-clone { display: none; }
}
@media (max-width: 767px) { .kc-ticker-all { display: none; } }

/* Theme templates (search, archives, 404) and forms — small-screen guards. */
.search .share-social-icons, .archive .share-social-icons, .blog .share-social-icons { display: none !important; }
.search-form { display: flex; flex-wrap: wrap; gap: 8px; max-width: 100%; }
.search-form .search-field, .search-form input[type="search"] { flex: 1 1 180px; min-width: 0; width: auto; max-width: 100%; }
.wpcf7 label, .wpcf7-form label { display: block; max-width: 100%; white-space: normal; }
.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .wpcf7 select, .wpcf7 textarea { max-width: 100%; box-sizing: border-box; }

/* ═════════════════════════════ Logo-only brand (header + footer), native widgets */
.kc-logo img { display: block; width: 64px; height: auto; }
.kc-logo--footer img { width: 120px; }
@media (max-width: 1099px) { .kc-mainbar .kc-logo img { width: 54px; } }

/* Top bar: contact (Icon List) + links (WordPress Menu "Top Bar") */
.kc-tb-contact .elementor-icon-list-items { gap: 6px 20px; }
.kc-tb-contact .elementor-icon-list-text, .kc-tb-contact a { color: rgba(255, 255, 255, .82) !important; font-size: 12.5px; }
.kc-tb-contact .elementor-icon-list-icon i, .kc-tb-contact .elementor-icon-list-icon svg { color: var(--kc-g300) !important; fill: var(--kc-g300) !important; font-size: 12px; }
.kc-tb-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px; font-size: 12.5px; }
.kc-tb-links li.kc-tb-accent > a { background: rgba(203, 174, 45, .15); border: 1px solid rgba(203, 174, 45, .35); color: var(--kc-g300); font-weight: 600; }
.kc-tb-links li.kc-tb-accent > a::after { content: '↗'; margin-left: 5px; font-size: 11px; }
.kc-tb-links nav, .kc-tb-links .menu-top-bar-container { margin: 0; }

/* Footer contact + bottom links (Icon Lists) */
.kc-footer-contact .elementor-icon-list-item { align-items: flex-start; padding-bottom: 8px !important; }
.kc-footer-contact .elementor-icon-list-text { color: rgba(255, 255, 255, .78) !important; line-height: 1.5; }
.kc-footer-contact a:hover .elementor-icon-list-text { color: var(--kc-g300) !important; text-decoration: underline; }
.kc-footer-contact .elementor-icon-list-icon i, .kc-footer-contact .elementor-icon-list-icon svg { color: var(--kc-g300) !important; fill: var(--kc-g300) !important; width: 16px; margin-top: 4px; }
.kc-footer-bottom-links .elementor-icon-list-items { gap: 0 16px; }
.kc-footer-bottom-links .elementor-icon-list-text { color: rgba(255, 255, 255, .7) !important; font-size: 12.5px; }
.kc-footer-bottom-links .elementor-icon-list-icon { display: none; }

/* ═════════════════════════════ Home (page 68) */
.kc-s-head .kc-s-title .elementor-heading-title { font-size: clamp(26px, 3vw, 38px); line-height: 1.15; }
.kc-on-dark .kc-s-title .elementor-heading-title { color: #fff; }
.kc-s-sub { max-width: 560px; font-size: 15.5px; line-height: 1.7; }
.kc-on-dark .kc-s-sub, .kc-on-dark .kc-s-sub p { color: var(--kc-n200) !important; }
.kc-s-sub p, .kc-card p, .kc-qp-tile p, .kc-date-card p, .kc-hero-event p { margin: 0; }

.kc-home-hero .kc-hero-title .elementor-heading-title { font-size: clamp(34px, 4.6vw, 58px); line-height: 1.07; letter-spacing: -.3px; }
.kc-home-hero .kc-hero-sub { font-size: 16.5px; line-height: 1.7; max-width: 520px; color: var(--kc-n200); }
.kc-home-hero .kc-hero-sub p { margin: 0; }

.kc-hero-event { margin-top: 10px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(203, 174, 45, .28); border-radius: var(--kc-r); max-width: 560px;
	color: #fff; text-decoration: none; transition: background .25s, transform .25s; }
.kc-hero-event:hover, .kc-hero-event:focus-visible { background: rgba(203, 174, 45, .12); transform: translateY(-2px); }
.kc-hero-event-date { min-width: 74px; padding: 8px 10px !important; border-radius: 10px; background: var(--kc-grad-gold); text-align: center; }
.kc-ev-day .elementor-heading-title { font-family: var(--kc-fh) !important; font-size: 30px; line-height: 1; color: var(--kc-n700) !important; }
.kc-ev-month .elementor-heading-title { font-family: var(--kc-fb) !important; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: var(--kc-n700) !important; }
.kc-ev-label .elementor-heading-title { font-family: var(--kc-fm) !important; font-size: 10.5px; letter-spacing: 2px; text-transform: uppercase; color: var(--kc-g300) !important; }
.kc-ev-title .elementor-heading-title { font-size: 21px; color: #fff !important; }
.kc-ev-meta { color: var(--kc-n200); font-size: 14px; }
.kc-ev-meta strong { color: var(--kc-g300); }

.kc-quick-panel { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--kc-r); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.kc-qp-title .elementor-heading-title { display: flex; align-items: center; gap: 10px; font-family: var(--kc-fb) !important; font-size: 11px !important; font-weight: 700;
	letter-spacing: 2px; text-transform: uppercase; color: var(--kc-gold) !important; }
.kc-qp-title .elementor-heading-title::after { content: ''; flex: 1; height: 1px; background: rgba(203, 174, 45, .3); }
.kc-qp-tile { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px; color: #fff; text-decoration: none; min-height: 44px;
	transition: background .25s, border-color .25s, transform .25s; }
.kc-qp-tile:hover, .kc-qp-tile:focus-visible { background: rgba(203, 174, 45, .14); border-color: rgba(203, 174, 45, .4); transform: translateY(-2px); }
.kc-qp-tile .kc-icon .elementor-icon { width: 36px; height: 36px; font-size: 16px; border-radius: 8px; background: rgba(255, 255, 255, .1); color: var(--kc-g300); display: inline-flex; align-items: center; justify-content: center; }
.kc-qp-tile .kc-icon .elementor-icon svg { width: 16px; height: 16px; fill: var(--kc-g300); }
.kc-qp-label .elementor-heading-title { font-family: var(--kc-fb) !important; font-size: 13.5px; font-weight: 600; color: #fff !important; line-height: 1.3; }
.kc-qp-sub { font-size: 12px; color: var(--kc-n200); }

/* Cards as links */
a.kc-card, a.kc-card:hover { color: inherit; text-decoration: none; }
.kc-card .kc-icon .elementor-icon svg { width: 22px; height: 22px; fill: currentColor; }
.kc-card:hover .kc-icon .elementor-icon svg { fill: #fff; }
.kc-card-link { margin-top: auto; }
.kc-card-link p { color: var(--kc-n400); font-weight: 600; font-size: 13.5px; }
.kc-card:hover .kc-card-link p, .kc-card:focus-visible .kc-card-link p { color: var(--kc-g600); }

/* Date cards */
.kc-date-badge .elementor-heading-title { display: inline-block; font-family: var(--kc-fm) !important; font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase;
	padding: 2px 8px; border-radius: 3px; background: rgba(203, 174, 45, .15); color: var(--kc-g300) !important; }
.kc-date-value .elementor-heading-title { font-family: var(--kc-fh) !important; font-size: 24px; line-height: 1.15; color: #fff !important; }
.kc-date-label { color: rgba(255, 255, 255, .78); font-size: 14px; }
.kc-date-pill .elementor-heading-title { display: inline-flex; font-family: var(--kc-fb) !important; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 20px;
	background: rgba(203, 174, 45, .14); border: 1px solid rgba(203, 174, 45, .3); color: var(--kc-g300) !important; }
.kc-date-pill .elementor-heading-title:empty { display: none; }

/* Notices list ([kcau_notices]) */
.kc-notices-empty { padding: 18px 20px; border: 1px dashed var(--kc-n200); border-radius: var(--kc-r); background: var(--kc-alt); color: var(--kc-muted); margin: 0; }
.kc-notices-empty a { font-weight: 600; }

@media (max-width: 1024px) { .kc-quick-panel { max-width: 640px; } }

/* Home — layout widths (Elementor inner containers default to --width:100%) and enforced type scale */
.kc-home-hero > .e-con-inner { align-items: center; }
.kc-home-hero .kc-hero-main { --width: auto; flex: 1 1 0; min-width: 0; }
.kc-home-hero .kc-quick-panel { flex: 0 0 410px; }
.kc-home-hero .kc-pill { align-self: flex-start; }
.kc-hero-event { --width: auto; align-self: flex-start; width: auto; max-width: 560px; flex-wrap: nowrap !important; }
.kc-hero-event > .kc-hero-event-date { --width: auto; width: auto; flex: 0 0 auto; }
.kc-hero-event > .e-con:not(.kc-hero-event-date) { --width: auto; flex: 1 1 auto; min-width: 0; }
@media (max-width: 1024px) {
	.kc-home-hero .kc-hero-main { flex: 1 1 auto; width: 100%; }
	.kc-home-hero .kc-quick-panel { flex: 1 1 auto; width: 100%; }
}
@media (max-width: 360px) { .kc-hero-event { flex-wrap: wrap !important; } }

.kc-home-hero .kc-hero-title .elementor-heading-title { font-size: clamp(34px, 4.6vw, 58px) !important; line-height: 1.07 !important; }
.kc-s-head .kc-s-title .elementor-heading-title { font-size: clamp(26px, 3vw, 38px) !important; }
.kc-card .elementor-heading-title { font-size: 18px !important; line-height: 1.3 !important; font-family: var(--kc-fb) !important; font-weight: 700 !important; }
.kc-qp-label .elementor-heading-title { font-size: 13.5px !important; line-height: 1.3 !important; }
.kc-ev-day .elementor-heading-title { font-size: 30px !important; line-height: 1 !important; }
.kc-ev-month .elementor-heading-title { font-size: 11px !important; line-height: 1.3 !important; }
.kc-ev-label .elementor-heading-title { font-size: 10.5px !important; line-height: 1.4 !important; }
.kc-ev-title .elementor-heading-title { font-size: 21px !important; line-height: 1.25 !important; }
.kc-date-badge .elementor-heading-title { font-size: 10.5px !important; line-height: 1.5 !important; }
.kc-date-value .elementor-heading-title { font-size: 24px !important; line-height: 1.15 !important; }
.kc-date-pill .elementor-heading-title { font-size: 12px !important; line-height: 1.5 !important; }
.kc-pill .elementor-heading-title { font-size: 11px !important; line-height: 1.5 !important; }
.kc-qp-title .elementor-heading-title { font-size: 11px !important; line-height: 1.4 !important; }
.kc-card-link p, .kc-card p { font-size: 14px; }

/* Headings use Futura PT site-wide (--kc-fh) (theme rules still name the removed Futura/Cabin).
   Low specificity on purpose so component rules (e.g. .kc-card titles in Futura PT) still win. */
:where(.elementor-widget-heading) :is(h1, h2, h3, h4).elementor-heading-title { font-family: var(--kc-fh) !important; }
:where(.elementor-widget-heading) :is(h5, h6, p, div, span).elementor-heading-title { font-family: var(--kc-fb) !important; }
@media (min-width: 768px) and (max-width: 1099px) { .kc-mainbar > .e-con-inner > .kc-mainnav, .kc-mainbar > .kc-mainnav { margin-left: 0; } }

/* ═════════════════════════════ Inner pages (Stage E) */
.kc-inner-hero .kc-pill { align-self: flex-start; }
.kc-inner-hero .kc-page-title .elementor-heading-title { font-size: clamp(30px, 4vw, 50px) !important; line-height: 1.1 !important; color: #fff; }
.kc-inner-hero .kc-page-desc { max-width: 640px; font-size: 16px; line-height: 1.7; color: var(--kc-n200); }
.kc-inner-hero .kc-page-desc p { margin: 0; }
.kc-two-col > .kc-main-col { --width: auto; flex: 1 1 0; min-width: 0; }
.kc-two-col > .kc-aside { flex: 0 0 360px; }
@media (max-width: 1024px) { .kc-two-col > .kc-main-col, .kc-two-col > .kc-aside { flex: 1 1 auto; width: 100%; } }
@media (min-width: 1025px) { .kc-two-col > .kc-aside { position: sticky; top: 110px; align-self: flex-start; } }
.kc-page-body p { margin: 0; }
.kc-dark-card .elementor-heading-title { font-size: 22px !important; line-height: 1.25 !important; }
.kc-info .elementor-heading-title { font-size: 16px !important; line-height: 1.35 !important; font-family: var(--kc-fb) !important; }
.kc-step .elementor-heading-title { font-size: 17px !important; line-height: 1.35 !important; font-family: var(--kc-fb) !important; }
.kc-value .elementor-heading-title, .kc-tile .elementor-heading-title { font-size: 16px !important; line-height: 1.35 !important; font-family: var(--kc-fb) !important; }
.kc-value .kc-icon .elementor-icon, .kc-tile .kc-icon .elementor-icon { width: 46px; height: 46px; font-size: 20px; border-radius: 12px; background: var(--kc-n100); color: var(--kc-navy); display: inline-flex; align-items: center; justify-content: center; }
.kc-value .kc-icon .elementor-icon svg, .kc-tile .kc-icon .elementor-icon svg { width: 20px; height: 20px; fill: var(--kc-navy); }
.kc-tile > .kc-tile-body { --width: auto; flex: 1 1 0; min-width: 0; }
.kc-tile > .kc-icon { flex: 0 0 auto; }
a.kc-tile, a.kc-tile:hover { color: inherit; text-decoration: none; }

/* Sidebar menu (WordPress Menu widget inside .kc-sidebar-card) */
.kc-sidebar-title .elementor-heading-title { font-size: 12px !important; line-height: 1.4 !important; font-family: var(--kc-fb) !important; }
.kc-sidebar-menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.kc-sidebar-menu li a { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 14px; background: #fff; border-radius: var(--kc-rs);
	color: var(--kc-navy); font-weight: 500; text-decoration: none; transition: background .2s, color .2s, transform .2s; }
.kc-sidebar-menu li a::before { content: '→'; color: var(--kc-g600); font-size: 13px; }
.kc-sidebar-menu li a:hover, .kc-sidebar-menu li a:focus-visible { background: var(--kc-navy); color: #fff; transform: translateX(4px); }
.kc-sidebar-menu li a:hover::before { color: var(--kc-g300); }
.kc-sidebar-menu li.current-menu-item > a { background: var(--kc-navy); color: #fff; font-weight: 600; }
.kc-sidebar-menu li.current-menu-item > a::before { color: var(--kc-g300); }
.kc-sidebar-menu nav, .kc-sidebar-menu div[class^="menu-"] { margin: 0; }
.kc-sidebar-card--dark { background: var(--kc-grad-navy); }
.kc-sidebar-card--dark .kc-sidebar-title .elementor-heading-title { color: var(--kc-g300) !important; border-color: rgba(203, 174, 45, .5); }
.kc-contact-list .elementor-icon-list-item { padding-bottom: 8px !important; align-items: flex-start; }
.kc-contact-list .elementor-icon-list-text { color: rgba(255, 255, 255, .88) !important; line-height: 1.5; }
.kc-contact-list a:hover .elementor-icon-list-text { color: var(--kc-g300) !important; text-decoration: underline; }
.kc-contact-list .elementor-icon-list-icon i, .kc-contact-list .elementor-icon-list-icon svg { color: var(--kc-g300) !important; fill: var(--kc-g300) !important; width: 16px; margin-top: 4px; }

/* ═════════════════════════════ Header fit (2026-10-15) — logo never shrinks or is covered */
.kc-mainbar > .e-con-inner > .kc-brand, .kc-mainbar > .kc-brand { flex: 0 0 auto; width: 64px; margin-right: 24px; }
@media (max-width: 1099px) { .kc-mainbar > .e-con-inner > .kc-brand, .kc-mainbar > .kc-brand { width: 54px; margin-right: 16px; } }

/* Drawer mode between 1025 and 1099 px. The theme's ova_menu CSS switches to its drawer only at ≤1024 px, so its
   mobile rules are mirrored here (scoped to the KCAU header). Open/close and submenu toggles are width-independent JS. */
@media (min-width: 1025px) and (max-width: 1099px) {
	.kc-mainnav .ova_openNav { display: block; border: none; outline: none; cursor: pointer; }
	.kc-mainnav .ova_wrap_nav { display: block; }
	.kc-mainnav .ova_nav { height: 100%; width: 0; position: fixed; z-index: 10000; top: 0; left: 0; overflow-x: hidden; padding-top: 30px; transition: width .5s; }
	.kc-mainnav .ova_nav.show { width: 250px; }
	.kc-mainnav .ova_nav.hide { width: 0; }
	.kc-mainnav .ova_nav a.ova_closeNav { display: inline-flex; padding: 0 20px 10px; text-align: right; }
	.kc-mainnav .ova_nav ul.menu { flex-direction: column !important; align-items: flex-start; text-align: left; flex-wrap: nowrap; }
	.kc-mainnav .ova_nav ul.menu li { width: 100%; display: block; position: relative; }
	.kc-mainnav .ova_nav ul.menu li a { width: 100%; padding: 10px 15px !important; white-space: normal; }
	.kc-mainnav .ova_nav ul.menu li a i { display: none; }
	.kc-mainnav .ova_nav ul.menu li a::after { display: none !important; }
	.kc-mainnav .ova_nav ul.menu li button.dropdown-toggle { display: block; position: absolute; top: 3px; right: 10px; background: transparent; border: none; outline: none; }
	.kc-mainnav .ova_nav ul.menu .dropdown-menu { position: relative !important; transform: none !important; left: 0 !important; right: auto !important; top: 0 !important;
		border: none !important; background: transparent !important; box-shadow: none !important; display: none; opacity: 1; visibility: visible; width: 100%; min-width: 0; z-index: auto; padding: 0 0 0 15px !important; }
	.kc-mainnav .ova_nav ul.menu > li:hover > .dropdown-menu { display: none; }   /* no hover-open in the drawer; the toggle sets display inline */
	.kc-mainnav .ova_nav ul.menu .dropdown-menu li a { color: var(--kc-n200) !important; }
	.kc-mainbar .ova_closeCanvas { display: block; }
}

/* ═════════════════════════════ Header tweaks (Webmaster, 2026-10-15) */
.kc-tb-links ul { font-size: 10px; }
.kc-tb-links a { padding: 1px 10px; }
/* Touch devices with the top bar visible (tablets): keep a 44 px tap height despite the 1 px padding. */
@media (pointer: coarse) { .kc-tb-links a { min-height: 44px; } }
/* Gold buttons: 35 px minimum height, text vertically centred. */
.kc-btn-gold .elementor-button { min-height: 35px; display: inline-flex; align-items: center; justify-content: center; }
/* Phones (top bar hidden): top-bar links appear in the drawer as 44 px rows. */
@media (min-width: 768px) { .kc-mainnav .ova_nav ul.menu > li.kc-menu-mobile { display: none !important; } }
@media (max-width: 767px) { .kc-mainnav .ova_nav ul.menu > li.kc-menu-mobile:first-of-type, .kc-mainnav .ova_nav ul.menu > li.kc-menu-mobile { border-top: 0; } }

/* Theme CSS targets #menu-about-registrar / #menu-quick-links by ID; keep KCAU sidebar states visible. */
.kc-sidebar-menu li.current-menu-item > a, .kc-sidebar-menu li a:hover, .kc-sidebar-menu li a:focus-visible { background: var(--kc-navy) !important; color: #fff !important; }
.kc-sidebar-menu li.current-menu-item > a::before, .kc-sidebar-menu li a:hover::before { color: var(--kc-g300) !important; }

/* Tables: horizontal scroll inside the widget only (optimized markup has no .elementor-widget-container). */
.elementor-widget.kc-table { max-width: 100%; min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--kc-r); box-shadow: var(--kc-sh-navy); border: 1px solid var(--kc-n200); }
.elementor-widget.kc-table:focus-visible { box-shadow: var(--kc-focus); }
.kc-table th[scope="row"] { background: transparent; color: var(--kc-n700); text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; border-bottom: 1px solid var(--kc-n100); }

/* Anchor targets (menu links like /admissions-registration/#add-drop) stay clear of the sticky header. */
.elementor [id] { scroll-margin-top: 120px; }

/* Nested Tabs — KCAU skin via Elementor's own variables (defaults used gold text on grey: fails contrast). */
.elementor-widget-n-tabs.kc-tabs {
	--n-tabs-heading-justify-content: flex-start;
	--n-tabs-title-justify-content: center;
	--n-tabs-title-gap: 0px;
	--n-tabs-gap: 0px;
	--n-tabs-title-padding-top: 14px; --n-tabs-title-padding-bottom: 14px; --n-tabs-title-padding-inline-start: 22px; --n-tabs-title-padding-inline-end: 22px;
	--n-tabs-title-background-color: transparent;
	--n-tabs-title-background-color-hover: rgba(255, 255, 255, .6);
	--n-tabs-title-background-color-active: #fff;
	--n-tabs-title-color: #3D5580;
	--n-tabs-title-color-hover: #192C57;
	--n-tabs-title-color-active: #192C57;
	--n-tabs-title-border-radius: 0;
	--n-tabs-title-font-size: 15px;
}
.kc-tabs .e-n-tabs-heading { background: var(--kc-n100); border: 1px solid var(--kc-n100); border-bottom: 0; border-radius: var(--kc-r) var(--kc-r) 0 0; overflow-x: auto; }
.kc-tabs .e-n-tab-title { font-family: var(--kc-fb) !important; font-weight: 600 !important; border: 0 !important; border-bottom: 3px solid transparent !important; min-height: 48px; white-space: nowrap; }
.kc-tabs .e-n-tab-title[aria-selected="true"] { border-bottom-color: var(--kc-gold) !important; }
.kc-tabs .e-n-tab-title:focus-visible { box-shadow: inset var(--kc-focus); outline: none; }
.kc-tabs .e-n-tabs-content > .e-con { border: 1px solid var(--kc-n100); border-top: 0; border-radius: 0 0 var(--kc-r) var(--kc-r); background: #fff; }
@media (max-width: 767px) {
	.kc-tabs .e-n-tabs-heading { background: transparent; border: 0; }
	.kc-tabs .e-n-tab-title { background: var(--kc-n100) !important; border-radius: var(--kc-rs); margin-top: 8px; border-bottom: 0 !important; border-left: 4px solid transparent !important; }
	.kc-tabs .e-n-tab-title[aria-selected="true"] { background: var(--kc-navy) !important; color: #fff !important; border-left-color: var(--kc-gold) !important; }
	.kc-tabs .e-n-tabs-content > .e-con { border: 1px solid var(--kc-n100); border-radius: 0 0 var(--kc-r) var(--kc-r); }
}

/* Empty state (e.g. no timetables published yet) */
.kc-empty { border: 1px dashed var(--kc-n200); border-radius: var(--kc-r); background: var(--kc-alt); align-items: flex-start; }
.kc-empty .elementor-heading-title { font-family: var(--kc-fb) !important; font-size: 18px !important; line-height: 1.3 !important; color: var(--kc-navy); }
.kc-empty .elementor-widget-text-editor { color: var(--kc-muted); }
.kc-empty .kc-icon .elementor-icon { width: 46px; height: 46px; border-radius: 12px; background: var(--kc-n100); display: inline-flex; align-items: center; justify-content: center; }
.kc-empty .kc-icon .elementor-icon svg { width: 20px; height: 20px; fill: var(--kc-navy); }

/* ═════════════════════════════ Graduation (page 6323) */
.kc-grad-hero > .e-con-inner { align-items: center; }
.kc-grad-hero .kc-hero-main { --width: auto; flex: 1 1 0; min-width: 0; }
.kc-grad-hero .kc-grad-datecard { flex: 0 0 auto; min-width: 230px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(203, 174, 45, .35); border-radius: var(--kc-r); text-align: center; backdrop-filter: blur(14px); }
.kc-grad-dc-label .elementor-heading-title { font-size: 11px !important; letter-spacing: 2px; text-transform: uppercase; color: var(--kc-g300) !important; }
.kc-grad-dc-day .elementor-heading-title { font-family: var(--kc-fh) !important; font-size: 72px !important; line-height: 1 !important; color: #fff !important; }
.kc-grad-dc-month .elementor-heading-title { font-size: 18px !important; font-weight: 600 !important; color: var(--kc-g300) !important; }
.kc-grad-dc-weekday .elementor-heading-title { font-size: 14px !important; color: var(--kc-n200) !important; }
@media (max-width: 1024px) { .kc-grad-hero .kc-hero-main, .kc-grad-hero .kc-grad-datecard { width: 100%; flex: 1 1 auto; } .kc-grad-hero .kc-grad-datecard { max-width: 360px; align-self: flex-start; } }
.kc-keydate { border: 1px solid var(--kc-n100); border-radius: var(--kc-rs); background: #fff; align-items: center; }
.kc-keydate > .kc-keydate-body { --width: auto; flex: 1 1 0; min-width: 0; }
.kc-keydate > .kc-icon { flex: 0 0 auto; }
.kc-keydate .kc-icon .elementor-icon { width: 40px; height: 40px; border-radius: 10px; background: var(--kc-n100); display: inline-flex; align-items: center; justify-content: center; }
.kc-keydate .kc-icon .elementor-icon svg { width: 18px; height: 18px; fill: var(--kc-navy); }
.kc-keydate-label .elementor-heading-title { font-size: 12px !important; font-weight: 600 !important; letter-spacing: .6px; text-transform: uppercase; color: var(--kc-muted) !important; }
.kc-keydate-value .elementor-heading-title { font-family: var(--kc-fh) !important; font-size: 19px !important; color: var(--kc-navy) !important; line-height: 1.25 !important; }
.kc-note p { font-size: 13.5px; color: var(--kc-muted); margin: 0; }
.kc-info ol, .kc-info ul { margin: 6px 0 6px 20px; padding: 0; }
.kc-info li { margin-bottom: 4px; }
.kc-people-list .elementor-icon-list-item, .kc-more-list .elementor-icon-list-item { align-items: flex-start; padding-bottom: 10px !important; }
.kc-people-list .elementor-icon-list-text, .kc-more-list .elementor-icon-list-text { color: var(--kc-n700) !important; line-height: 1.45; font-size: 14px; }
.kc-people-list a:hover .elementor-icon-list-text, .kc-more-list a:hover .elementor-icon-list-text { color: var(--kc-g600) !important; text-decoration: underline; }
.kc-people-list .elementor-icon-list-icon svg, .kc-more-list .elementor-icon-list-icon svg { fill: var(--kc-navy) !important; width: 15px; margin-top: 4px; }
.kc-grad-hero > .e-con-inner > .kc-grad-datecard, .kc-grad-hero > .kc-grad-datecard { --width: auto; width: auto; flex: 0 0 260px; }
@media (max-width: 1024px) { .kc-grad-hero > .e-con-inner > .kc-grad-datecard, .kc-grad-hero > .kc-grad-datecard { flex: 0 0 auto; width: 100%; max-width: 360px; } }

/* ───────────────────────────── Settings-driven contact links inside icon lists (C-35) */
.kc-contact-list .elementor-icon-list-text a, .kc-footer-contact .elementor-icon-list-text a, .kc-strip-list .elementor-icon-list-text a { display: inline; color: inherit; text-decoration: none; }
.kc-contact-list .elementor-icon-list-text a:hover, .kc-contact-list .elementor-icon-list-text a:focus-visible,
.kc-footer-contact .elementor-icon-list-text a:hover, .kc-footer-contact .elementor-icon-list-text a:focus-visible { color: var(--kc-g300); text-decoration: underline; }

/* ───────────────────────────── School timetable directory */
.kc-school-card .elementor-widget-text-editor p { margin: 0; }
.kc-school-note:has(p:empty) { display: none; }
.kc-school-note p { font-style: italic; color: var(--kc-n700); }
.kc-school-actions { margin-top: auto; padding-top: 6px; }
.kc-school-card:hover, .kc-school-card:focus-within { transform: none; }

/* ───────────────────────────── Steps with lists; contact strip */
.kc-step ul { margin: 4px 0 6px; padding-left: 18px; }
.kc-step li { margin: 2px 0; }
.kc-step p { margin: 0 0 4px; }
.kc-contact-strip .elementor-heading-title { margin: 0; }
.kc-strip-list .elementor-icon-list-items { gap: 6px 22px; }
.kc-strip-list .elementor-icon-list-text, .kc-strip-list a { font-size: 15px; font-weight: 600; color: var(--kc-navy); }
.kc-strip-list a:hover, .kc-strip-list a:focus-visible { color: var(--kc-g600); text-decoration: underline; }
.kc-strip-list .elementor-icon-list-icon i, .kc-strip-list .elementor-icon-list-icon svg { color: var(--kc-g600); fill: var(--kc-g600); }
.kc-school-card .kc-icon, .kc-school-card .elementor-icon-wrapper { text-align: left; justify-content: flex-start; align-self: flex-start; }

/* ───────────────────────────── Enquiry form (CF7 "Registrar enquiry" on Contact Us) */
.kc-form-card { background: #fff; border: 1px solid var(--kc-n100); border-radius: var(--kc-r); box-shadow: var(--kc-sh-navy); }
.kc-form-card .wpcf7 form > p, .kc-form-card .kc-form-grid > p { margin: 0 0 18px; }
.kc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
@media (max-width: 767px) { .kc-form-grid { grid-template-columns: 1fr; } }
.kc-form-card .wpcf7 label { font-family: var(--kc-fb); font-size: 14px; font-weight: 600; color: var(--kc-navy); margin-bottom: 6px; }
.kc-form-card .kc-req { color: #A3261B; }
.kc-form-note { font-size: 13px; color: var(--kc-muted); }
.kc-form-card .wpcf7 input:not([type="submit"]), .kc-form-card .wpcf7 select, .kc-form-card .wpcf7 textarea {
	width: 100%; min-height: 46px; padding: 10px 14px; font-family: var(--kc-fb); font-size: 16px; color: var(--kc-n700);
	background: #fff; border: 1px solid var(--kc-n300); border-radius: var(--kc-rs);
}
.kc-form-card .wpcf7 textarea { min-height: 150px; resize: vertical; }
.kc-form-card .wpcf7 input:focus, .kc-form-card .wpcf7 select:focus, .kc-form-card .wpcf7 textarea:focus { outline: none; border-color: var(--kc-navy); box-shadow: var(--kc-focus); }
.kc-form-card .wpcf7 .kc-submit, .kc-form-card .wpcf7 input[type="submit"] {
	min-height: 48px; padding: 12px 30px; font-family: var(--kc-fb); font-size: 15px; font-weight: 700; color: var(--kc-navy);
	background: var(--kc-grad-gold); border: 0; border-radius: var(--kc-rs); box-shadow: var(--kc-sh-gold); cursor: pointer;
}
.kc-form-card .wpcf7 input[type="submit"]:hover { filter: brightness(1.05); }
.kc-form-card .wpcf7 input[type="submit"]:focus-visible { outline: none; box-shadow: var(--kc-focus); }
.kc-form-card .wpcf7-not-valid-tip { color: #A3261B; font-size: 13px; margin-top: 4px; }
.kc-form-card .wpcf7 .wpcf7-not-valid { border-color: #A3261B; }
.kc-form-card .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: var(--kc-rs); font-size: 14px; }
.kc-form-card .wpcf7 form p > br { display: none; }
.kc-btn-outline .elementor-button-icon svg, .kc-btn-outline .elementor-button-icon i { fill: currentColor; color: currentColor; }
.kc-dark-card--gold a { color: #fff !important; text-decoration: underline; } .kc-dark-card--gold a:hover, .kc-dark-card--gold a:focus-visible { color: var(--kc-g100) !important; }

/* ───────────────────────────── News & Updates / notice archives (theme index.php + includes/blog.php) */
.kc-news-hero { background: var(--kc-grad-hero); padding: 58px 32px 52px; }
.kc-news-hero-inner { max-width: var(--kc-max); margin: 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.kc-news-hero .kc-pill { margin: 0; }
.kc-news-hero .kc-page-title { margin: 0; font-family: var(--kc-fh); font-size: clamp(34px, 5vw, 52px); line-height: 1.15; color: #fff; }
.kc-news-hero .kc-page-desc { margin: 0; color: rgba(255, 255, 255, .82); font-size: 16px; max-width: 760px; }
.kc-news-nav ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kc-news-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; color: #fff; font-family: var(--kc-fb); font-size: 14px; font-weight: 600; text-decoration: none; }
.kc-news-nav a:hover, .kc-news-nav a:focus-visible { background: rgba(255, 255, 255, .12); outline: none; box-shadow: var(--kc-focus); }
.kc-news-nav a[aria-current="page"] { background: var(--kc-grad-gold); border-color: transparent; color: var(--kc-navy); }
@media (max-width: 767px) { .kc-news-hero { padding: 44px 20px 40px; } }
.kc-news-empty-wrap { max-width: var(--kc-max); margin: 0 auto; padding: 56px 32px 72px; }
@media (max-width: 767px) { .kc-news-empty-wrap { padding: 40px 20px 56px; } }
.kc-news-empty { padding: 32px; text-align: left; }
.kc-news-empty h2 { margin: 0 0 8px; font-family: var(--kc-fh); font-size: 26px; color: var(--kc-navy); }
.kc-news-empty p { margin: 0 0 12px; color: var(--kc-muted); }
.kc-news-empty-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px !important; }
.kc-news-btn { display: inline-flex; align-items: center; min-height: 44px; padding: 11px 24px; border-radius: var(--kc-rs); background: var(--kc-navy); color: #fff !important; font-family: var(--kc-fb); font-weight: 600; text-decoration: none; }
.kc-news-btn--outline { background: transparent; color: var(--kc-navy) !important; border: 2px solid var(--kc-navy); }
.kc-news-btn:focus-visible { outline: none; box-shadow: var(--kc-focus); }
/* Elementor's kit CSS (.elementor-kit-12 a) loads after this file on theme-rendered views (blog, archives) — raise specificity. */
body .kc-topbar a { color: rgba(255, 255, 255, .85); }
body .kc-topbar a:hover { color: #fff; }
body .kc-tb-links a.kc-tb-accent { color: var(--kc-g300); }
body .kc-news-nav a { color: #fff; }
body .kc-news-nav a[aria-current="page"] { color: var(--kc-navy); }
.kc-news-hero .kc-pill {
	display: inline-flex; align-items: center; gap: 7px; background: rgba(203, 174, 45, .14); border: 1px solid rgba(203, 174, 45, .28);
	border-radius: 20px; padding: 5px 14px; font-family: var(--kc-fb); font-size: 11px; font-weight: 600; line-height: 1.5;
	color: var(--kc-g300); letter-spacing: 1.2px; text-transform: uppercase;
}
.kc-news-hero .kc-pill::before { content: ''; width: 6px; height: 6px; background: var(--kc-gold); border-radius: 50%; animation: kc-blink 2.2s ease-in-out infinite; }
.kc-news-hero h1.kc-page-title { font-family: var(--kc-fh) !important; font-weight: 700; font-size: clamp(30px, 4vw, 50px) !important; line-height: 1.1 !important; color: #fff !important; }
@media (prefers-reduced-motion: reduce) { .kc-news-hero .kc-pill::before { animation: none; } }
/* Theme post cards on News & Updates / notice archives */
body .kc-ticker-list a { color: var(--kc-n200); }
body .kc-ticker-list a:hover, body .kc-ticker-list a:focus-visible { color: var(--kc-g300); }
.blog .post-meta-content .wp-author, .archive .post-meta-content .wp-author,
.blog .post-meta-content .comment, .archive .post-meta-content .comment { display: none; }
.blog .egovt-post-readmore .btn-readmore, .archive .egovt-post-readmore .btn-readmore { font-family: var(--kc-fb) !important; font-weight: 700; font-size: 15px; border-radius: var(--kc-rs); }
.blog .egovt-post-readmore .btn-readmore:focus-visible, .archive .egovt-post-readmore .btn-readmore:focus-visible { outline: none; box-shadow: var(--kc-focus); }
.blog #main-content h2.post-title, .archive #main-content h2.post-title { font-family: var(--kc-fh); }
body a.kc-ticker-all { color: var(--kc-g300); }
.kc-sidebar-card--dark .elementor-widget-text-editor, .kc-sidebar-card--dark .elementor-widget-text-editor p { color: rgba(255, 255, 255, .86) !important; }

/* ───────────────────────────── Org chart (Our Team) — nested containers: .kcau-org > node + .kcau-org-children > .kcau-org-branch
   Desktop/tablet: top-down tree; connectors are ::before/::after on the shared classes. ≤767px: indented tree with a left line. */
.kcau-org { --org-line: var(--kc-gold); --org-gap: 28px; --org-bg: var(--kc-alt); width: 100%; max-width: 1300px; margin: 0 auto; align-items: center !important; }
.kcau-org .e-con { --width: auto; }
.kcau-org-node { position: relative; z-index: 1; width: 100% !important; max-width: 270px; padding: 18px 18px 16px !important; border-radius: 12px; text-align: center; }
.kcau-org-node > .elementor-element { width: 100%; }
.kcau-org-node .elementor-heading-title { margin: 0; }
.kcau-org-name .elementor-heading-title { font-family: var(--kc-fb) !important; font-weight: 700 !important; font-size: 16px !important; line-height: 1.3 !important; }
.kcau-org-title p { margin: 0; font-size: 13.5px; line-height: 1.45; }
.kcau-org-title-only .elementor-heading-title { font-size: 14.5px !important; }
.kcau-org-email p { margin: 4px 0 0; font-size: 13px; overflow-wrap: anywhere; }
.kcau-org-email a { text-decoration: underline; text-underline-offset: 2px; }
.kcau-org-email a:focus-visible { outline: none; box-shadow: var(--kc-focus); border-radius: 3px; }
.kcau-org-l1 { max-width: 300px; background: var(--kc-grad-navy); border-top: 4px solid var(--kc-gold); box-shadow: var(--kc-sh-lg); }
.kcau-org-l2 { background: var(--kc-navy); border: 2px solid var(--kc-gold); box-shadow: var(--kc-sh-navy); }
.kcau-org-l1 .elementor-heading-title, .kcau-org-l2 .elementor-heading-title { color: #fff !important; }
.kcau-org-l1 .kcau-org-title p, .kcau-org-l2 .kcau-org-title p { color: rgba(255, 255, 255, .86); }
body .kcau-org-l1 .kcau-org-email a, body .kcau-org-l2 .kcau-org-email a { color: var(--kc-g300); }
.kcau-org-l3 { background: #E8ECF3; border: 1px solid var(--kc-n200); border-top: 3px solid var(--kc-navy); }
.kcau-org-l3 .elementor-heading-title { color: var(--kc-navy) !important; }
.kcau-org-l3 .kcau-org-title p { color: var(--kc-n700); }
body .kcau-org-l3 .kcau-org-email a { color: var(--kc-n400); }

@media (min-width: 768px) {
	.kcau-org-children { position: relative; width: 100% !important; margin-top: var(--org-gap) !important; flex-direction: row !important; flex-wrap: nowrap !important; justify-content: center !important; align-items: flex-start !important; gap: 0 !important; }
	.kcau-org-children::before { content: ''; position: absolute; top: calc(-1 * var(--org-gap)); left: 50%; height: var(--org-gap); border-left: 2px solid var(--org-line); transform: translateX(-1px); }
	.kcau-org-branch { position: relative; flex: 1 1 0 !important; min-width: 0; padding: var(--org-gap) 10px 0 !important; }
	.kcau-org-branch--w2 { flex-grow: 2 !important; }
	.kcau-org-children > .kcau-org-branch::before { content: ''; position: absolute; top: 0; left: 0; right: 0; border-top: 2px solid var(--org-line); }
	.kcau-org-children > .kcau-org-branch:first-child::before { left: 50%; }
	.kcau-org-children > .kcau-org-branch:last-child::before { right: 50%; }
	.kcau-org-children > .kcau-org-branch:only-child::before { display: none; }
	.kcau-org-children > .kcau-org-branch::after { content: ''; position: absolute; top: 0; left: 50%; height: var(--org-gap); border-left: 2px solid var(--org-line); transform: translateX(-1px); }
}
@media (min-width: 768px) and (max-width: 1100px) {
	.kcau-org-node { padding: 14px 12px 12px !important; }
	.kcau-org-name .elementor-heading-title { font-size: 14.5px !important; }
	.kcau-org-title p { font-size: 12.5px; }
	.kcau-org-email p { font-size: 12px; }
	.kcau-org-branch { padding-left: 6px !important; padding-right: 6px !important; }
}
@media (max-width: 767px) {
	.kcau-org { align-items: stretch !important; }
	.kcau-org-node, .kcau-org-l1 { max-width: none; text-align: left; align-items: flex-start !important; }
	.kcau-org-children { position: relative; width: auto !important; flex-direction: column !important; margin: 0 0 0 14px !important; padding-left: 18px !important; border-left: 2px solid var(--org-line); gap: 0 !important; }
	.kcau-org-branch { position: relative; flex: none !important; width: 100% !important; align-items: stretch !important; padding: 14px 0 0 !important; }
	.kcau-org-children > .kcau-org-branch::before { content: ''; position: absolute; top: 40px; left: -18px; width: 16px; border-top: 2px solid var(--org-line); }
	/* stop the left line at the last child's connector */
	.kcau-org-children > .kcau-org-branch:last-child::after { content: ''; position: absolute; left: -21px; top: 41px; bottom: 0; width: 4px; background: var(--org-bg); }
}

/* ───────────────────────────── Staff cards (Our Team) */
.kc-staff-card { background: #fff; border: 1px solid var(--kc-n100); border-radius: var(--kc-r); box-shadow: var(--kc-sh-navy); }
.kc-staff-photo img { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; }
.kc-staff-photo--real img { border: 4px solid var(--kc-gold); }
.kc-staff-name .elementor-heading-title { font-family: var(--kc-fb) !important; font-size: 18px !important; font-weight: 700 !important; line-height: 1.3 !important; color: var(--kc-navy) !important; margin: 4px 0 0; }
.kc-staff-title-only .elementor-heading-title { font-size: 16.5px !important; }
.kc-staff-title p { margin: 0; color: var(--kc-n400); font-weight: 600; font-size: 14.5px; line-height: 1.45; }
.kc-staff-card .kcau-org-email p { font-size: 14px; }
body .kc-staff-card .kcau-org-email a { color: var(--kc-n400); }
.kc-staff-sub .elementor-heading-title { font-family: var(--kc-fb) !important; font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: 1.1px; text-transform: uppercase; color: var(--kc-g600) !important; margin: 8px 0 0; }
.kc-staff-bio p, .kc-staff-list li { font-size: 14px; color: var(--kc-n700); line-height: 1.6; }
.kc-staff-bio p { margin: 0; }
.kc-staff-list ul { margin: 0; padding-left: 18px; }
/* Elementor's .e-con:before (background overlay) sets width/height 100% — size the connector pseudo-elements explicitly. */
.kcau-org-children::before { width: 0 !important; }
.kcau-org-children > .kcau-org-branch::before { width: auto; height: 0 !important; border-radius: 0; opacity: 1; }
@media (max-width: 767px) { .kcau-org-children > .kcau-org-branch::before { width: 16px; } }
.e-con.kcau-org, .e-con.kcau-org-branch { --gap: 0px; --row-gap: 0px; --column-gap: 0px; gap: 0 !important; }
.e-con.kc-staff-grid { grid-template-rows: none !important; grid-auto-rows: auto; }
.kc-staff-photo { align-self: flex-start; text-align: left; }
.kc-staff-card .kc-btn-outline { margin-top: 6px; }
/* Org chart names that open a profile pop-up (#team-<slug>, plugin kcau-team-profiles) */
.kcau-org-name a { color: inherit !important; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--kc-gold); }
.kcau-org-name a:hover { text-decoration-thickness: 2px; }
.kcau-org-name a:focus-visible { outline: none; box-shadow: var(--kc-focus); border-radius: 3px; }
/* Team cards on Registrar pages: page background behind the grid */
.kc-two-col .kcau-team { padding: 4px 0; }

/* ───────────────────────────── Stage G accessibility fixes (contrast, target size) */
.kc-qp-title .elementor-heading-title { color: var(--kc-g300) !important; }
.kc-dark-card--gold .elementor-widget-text-editor, .kc-dark-card--gold .elementor-widget-text-editor p, .kc-dark-card--gold .elementor-heading-title { color: #fff !important; }
body .kc-news-nav a[aria-current="page"] { background: var(--kc-g300); }
body .kc-contact-list .elementor-icon-list-text a, body .kc-footer-contact .elementor-icon-list-text a, body .kc-people-list .elementor-icon-list-text a { color: inherit; }
/* Targets ≥ 24 px tall (WCAG 2.2 AA 2.5.8) for stand-alone links in lists and cards */
.kc-contact-list .elementor-icon-list-text a, .kc-footer-contact .elementor-icon-list-text a, .kc-people-list .elementor-icon-list-text a,
.kcau-org-email a, .kcau-org-name a { display: inline-block; padding: 2px 0; }
.kc-footer-contact .elementor-icon-list-item > a, .kc-footer-links .elementor-icon-list-item > a { min-height: 24px; align-items: center; }
/* Closed drawer: the theme only collapses it to width 0, so its 19 links stayed in the Tab order while invisible. Hide it fully until opened (.show). */
@media (max-width: 1099px) { .kc-mainnav .ova_nav:not(.show) { visibility: hidden; } }
/* Links on dark sections follow the section's light text (kit link colour loads later on some views) */
body .kc-on-dark .elementor-widget-text-editor a, body .kc-dates-dark .elementor-widget-text-editor a { color: var(--kc-g300); text-decoration: underline; }
/* More ≥ 24 px targets */
.kc-table a, .kc-strip-list .elementor-icon-list-text a, .kc-dark-card .elementor-widget-text-editor a, #main-content .post-title a { display: inline-block; padding: 4px 0; }
.kc-more-list .elementor-icon-list-item > a, .kc-sidebar-card .elementor-icon-list-item > a { min-height: 24px; align-items: center; }

/* Home hero H1 in Futura PT (Webmaster, 2026-10-18) — incl. the gold <em>, which uses the kit's real Futura PT italic (no synthesis). */
.kc-home-hero .kc-hero-title .elementor-heading-title { font-family: var(--kc-fb) !important; font-weight: 700 !important; letter-spacing: -.2px; font-synthesis: none; }
.kc-home-hero .kc-hero-title .elementor-heading-title em { font-family: var(--kc-fb); font-style: italic; font-weight: 700; font-synthesis: none; }

/* ───────────────────────────── Fonts (Webmaster, 2026-10-19): Adobe Fonts only.
   Futura PT everywhere; Interstate is registered as --kc-fi but not applied yet (Webmaster to choose where). */
/* Headings never use a synthesised bold/italic: the Futura PT kit has real italics (400/500/700/800) for the gold <em>. */
.elementor-heading-title, .elementor-heading-title em, .kc-page-title, .kc-news-hero .kc-page-title em { font-synthesis: none; }

/* ───────────────────────────── Dropdown sub-items always readable (v1.0.2, 2026-10-19).
   Bug: on /programmes/ etc. every same-page anchor item was "current"/"active" and a theme rule painted it navy behind navy text.
   includes/menu.php stops anchor items being marked current; these rules override any theme/Ova state colours regardless.
   One specificity for every state (:is takes its highest argument), so order decides: base → current → hover/focus. */
@media (min-width: 1100px) {
	body .kc-mainnav .ova_nav ul.menu .dropdown-menu li:is(.menu-item, .active, .current-menu-item, .current_page_item, .current-menu-ancestor, .current-menu-parent, .kc-current-hash, :focus-within) > a {
		background: #fff !important; color: var(--kc-navy) !important; box-shadow: none !important; line-height: 1.35 !important;
	}
	body .kc-mainnav .ova_nav ul.menu .dropdown-menu li:is(.current-menu-item, .kc-current-hash) > a {
		background: #F4F6FA !important; box-shadow: inset 3px 0 0 var(--kc-gold) !important;
	}
	body .kc-mainnav .ova_nav ul.menu .dropdown-menu li:is(.menu-item, .active, .current-menu-item, .current_page_item, .current-menu-ancestor, .current-menu-parent, .kc-current-hash, :focus-within) > a:is(:hover, :focus-visible) {
		background: var(--kc-n100) !important; color: var(--kc-navy) !important;
	}
}
/* Phone/tablet drawer: sub-items stay light text on the drawer navy in every state. */
@media (max-width: 1099px) {
	body .kc-mainnav .ova_nav ul.menu .dropdown-menu li:is(.menu-item, .active, .current-menu-item, .current_page_item, .current-menu-ancestor, .current-menu-parent, .kc-current-hash, :focus-within) > a {
		background: transparent !important; color: var(--kc-n200) !important; box-shadow: none !important;
	}
	body .kc-mainnav .ova_nav ul.menu .dropdown-menu li:is(.current-menu-item, .kc-current-hash) > a {
		color: #fff !important; box-shadow: inset 3px 0 0 var(--kc-gold) !important;
	}
	body .kc-mainnav .ova_nav ul.menu .dropdown-menu li:is(.menu-item, .active, .current-menu-item, .current_page_item, .current-menu-ancestor, .current-menu-parent, .kc-current-hash, :focus-within) > a:is(:hover, :focus-visible) {
		background: rgba(255, 255, 255, .08) !important; color: #fff !important;
	}
}
/* Keyboard focus ring on dropdown sub-items (the state rules above reset box-shadow, so restore the site focus ring last). */
body .kc-mainnav .ova_nav ul.menu .dropdown-menu li > a:focus-visible { outline: none !important; box-shadow: inset var(--kc-focus) !important; }

/* ───────────────────────────── Official PDFs ([kcau_grad_doc]) and the "Current deadline" card (2026-10-21) */
.kc-doc-link { font-weight: 600; }
.kc-doc-link::before { content: '\f1c1'; font-family: 'Font Awesome 6 Free'; font-weight: 400; margin-right: 7px; }
.kc-doc-link .kc-doc-meta { font-weight: 500; opacity: .8; white-space: nowrap; }
.kc-doc-btn { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0 6px; min-height: 44px; padding: 12px 22px; border-radius: var(--kc-rs);
	font-family: var(--kc-fb); font-size: 14px; font-weight: 700; line-height: 1.25; text-decoration: none !important; transition: transform .2s, background .2s; }
.kc-doc-btn::before { margin-right: 2px; }
.kc-doc-btn--ghost { background: rgba(255, 255, 255, .09); color: #fff !important; border: 1px solid rgba(255, 255, 255, .3); }
.kc-doc-btn--ghost:hover, .kc-doc-btn--ghost:focus-visible { background: rgba(255, 255, 255, .16); transform: translateY(-2px); }
.kc-doc-btn--navy { background: var(--kc-navy); color: #fff !important; border: 1px solid var(--kc-n400); }
.kc-doc-btn--navy:hover, .kc-doc-btn--navy:focus-visible { background: var(--kc-n400); }
.kc-doc-row p { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.kc-doc-row .kc-doc-link { margin: 0; }
.kc-next-deadline { margin: 0 0 8px; }
.kc-next-note { margin: 0 0 8px; font-size: 13px; }
@media (max-width: 480px) { .kc-doc-btn { width: 100%; justify-content: flex-start; } }

/* ───────────────────────────── Info box text colours (2026-10-22) */
.kc-info--gold .elementor-heading-title, .kc-info--gold .elementor-widget-text-editor, .kc-info--gold li, .kc-info--gold p, .kc-info--gold strong { color: var(--kc-navy) !important; }
.kc-info--gold a:not(.elementor-button) { color: var(--kc-navy) !important; text-decoration: underline; font-weight: 700; }
.kc-info--gold a:not(.elementor-button):hover, .kc-info--gold a:not(.elementor-button):focus-visible { color: var(--kc-n800) !important; }
.kc-info--gold .kc-doc-link .kc-doc-meta { opacity: 1; }
.kc-info--gold .kc-tba--light { background: var(--kc-g100); color: var(--kc-n700); border-color: var(--kc-navy); }
.kc-info--navy .elementor-heading-title { color: var(--kc-g300) !important; }
.kc-info--navy .elementor-widget-text-editor, .kc-info--navy li, .kc-info--navy p { color: rgba(255, 255, 255, .92) !important; }
.kc-info--navy strong { color: #fff !important; }
.kc-info--navy a:not(.elementor-button) { color: var(--kc-g300) !important; text-decoration: underline; }
.kc-info--navy a:not(.elementor-button):hover, .kc-info--navy a:not(.elementor-button):focus-visible { color: #fff !important; }
.kc-info--navy .kc-tba--light { background: rgba(203, 174, 45, .16); color: var(--kc-g300); border-color: rgba(203, 174, 45, .5); }

/* ───────────────────────────── Single notice (templates/single-notice.php, 2026-10-22) */
.kc-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kc-badge { font-family: var(--kc-fb); font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; padding: 4px 10px; border-radius: 4px; line-height: 1.3; }
.kc-badge--new { background: var(--kc-gold); color: var(--kc-n800); }
.kc-badge--urgent { background: #B42318; color: #fff; }
.kc-badge--important { background: var(--kc-g100); color: var(--kc-n800); }
.kc-notice-meta { display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 4px 0 0; padding: 16px 0 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.kc-notice-meta div { min-width: 0; }
.kc-notice-meta dt { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--kc-g300); margin: 0 0 2px; }
.kc-notice-meta dd { margin: 0; font-size: 14.5px; color: #fff; font-weight: 500; }

.kc-notice-wrap { max-width: 760px; margin: 48px auto 0; padding: 0 16px 64px; position: relative; box-sizing: content-box; }
.kc-notice-card { background: #fff; border-radius: var(--kc-r); box-shadow: 0 18px 50px rgba(6, 17, 32, .16); padding: 44px 48px 40px; color: var(--kc-n700); font-size: 16px; line-height: 1.75; }
.kc-notice-content > *:first-child { margin-top: 0; }
.kc-notice-content { counter-reset: kcsec; }
.kc-notice-content p { margin: 0 0 16px; }
.kc-notice-content h2 { counter-increment: kcsec; position: relative; margin: 34px 0 14px; padding-left: 18px; font-family: var(--kc-fh); font-size: 21px; font-weight: 700; line-height: 1.3; color: var(--kc-navy); }
/* Numbered section titles: short gold bar (background) + number drawn by CSS, so editors write plain headings. */
.kc-notice-content h2 { background: linear-gradient(var(--kc-gold), var(--kc-gold)) left .22em / 5px 1.05em no-repeat; }
.kc-notice-content h2::before { content: counter(kcsec) ". "; color: var(--kc-g600); }
.kc-notice-content h3 { margin: 24px 0 10px; font-size: 17px; font-weight: 700; color: var(--kc-navy); }
.kc-notice-content strong, .kc-notice-content b { color: var(--kc-navy); font-weight: 700; }
.kc-notice-content em, .kc-notice-content i { font-style: italic; }
.kc-notice-content .kc-note, .kc-notice-content .kc-disclaimer { font-style: italic; color: var(--kc-n600, #132341); background: var(--kc-n100); border-left: 3px solid var(--kc-gold); padding: 10px 14px; border-radius: 0 var(--kc-rs) var(--kc-rs) 0; }
.kc-notice-content ul, .kc-notice-content ol { margin: 0 0 18px; padding-left: 22px; }
.kc-notice-content li { margin-bottom: 6px; padding-left: 4px; }
.kc-notice-content ul li::marker { color: var(--kc-gold); font-size: 1.15em; }
.kc-notice-content ol li::marker { color: var(--kc-g600); font-weight: 700; }
.kc-notice-content a { color: var(--kc-n400); text-decoration: underline; }
.kc-notice-content a:hover { color: var(--kc-navy); }
.kc-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; margin: 0 0 20px; border-radius: var(--kc-rs); border: 1px solid var(--kc-n100); -webkit-overflow-scrolling: touch; }
.kc-table-scroll:focus-visible { outline: none; box-shadow: var(--kc-focus); }
.kc-table-scroll table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 14.5px; line-height: 1.5; margin: 0; }
.kc-table-scroll th, .kc-table-scroll td { padding: 10px 14px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--kc-n100); }
.kc-table-scroll thead th { background: var(--kc-gold); color: var(--kc-n800); font-weight: 700; font-size: 13px; letter-spacing: .4px; text-transform: uppercase; }
.kc-table-scroll tbody tr:nth-child(even) { background: #F6F8FB; }
.kc-table-scroll tbody th { color: var(--kc-navy); font-weight: 600; }
.kc-notice-signature { margin: 28px 0 0; padding-top: 18px; border-top: 1px solid var(--kc-n100); font-style: italic; color: var(--kc-navy); font-weight: 500; }

.kc-pdf-card { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 28px; padding: 18px 20px; background: var(--kc-n100); border: 1px solid var(--kc-n100); border-radius: var(--kc-r); }
.kc-pdf-icon { flex: 0 0 auto; width: 46px; height: 52px; border-radius: 6px; background: #B42318; color: #fff; display: inline-flex; align-items: flex-end; justify-content: center; padding-bottom: 8px; font-size: 11px; font-weight: 800; letter-spacing: .5px; box-sizing: border-box; }
.kc-pdf-icon::before { content: 'PDF'; }
.kc-pdf-info { flex: 1 1 200px; min-width: 0; }
.kc-pdf-name { margin: 0; font-weight: 700; color: var(--kc-navy); font-size: 14.5px; line-height: 1.35; overflow-wrap: anywhere; }
.kc-pdf-meta { margin: 2px 0 0; font-size: 13px; color: var(--kc-muted); }
.kc-pdf-btn { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 44px; padding: 11px 20px; border-radius: var(--kc-rs); background: var(--kc-grad-gold); color: var(--kc-n800) !important; font-weight: 700; font-size: 14px; text-decoration: none !important; box-shadow: var(--kc-sh-gold); transition: transform .2s; }
.kc-pdf-btn:hover, .kc-pdf-btn:focus-visible { transform: translateY(-2px); }
.kc-notice-back { margin: 22px 0 0; text-align: center; }
.kc-notice-back a { color: var(--kc-n400); font-weight: 600; text-decoration: none; }
.kc-notice-back a:hover, .kc-notice-back a:focus-visible { color: var(--kc-navy); text-decoration: underline; }
@media (max-width: 767px) {
	.kc-notice-card { padding: 28px 20px 26px; font-size: 15.5px; }
	.kc-notice-wrap { margin-top: 28px; padding: 0 12px 48px; }
	.kc-pdf-btn { width: 100%; justify-content: center; }
}
/* Theme heading/link/table colours win otherwise. */
.kc-table-scroll tbody th { text-transform: none !important; letter-spacing: 0 !important; font-size: 14.5px !important; background: transparent; }
.kc-table-scroll thead th { color: var(--kc-n800) !important; }

/* Report an Examination Issue — privacy line and consent checkbox (2026-10-22) */
.kc-form-privacy { font-size: 13.5px !important; line-height: 1.6; color: var(--kc-muted); margin: 4px 0 8px !important; }
.kc-form-consent .wpcf7-form-control-wrap, .kc-form-consent .wpcf7-acceptance, .kc-form-consent .wpcf7-list-item { display: block; margin: 0 !important; }
.kc-form-consent label { display: flex !important; align-items: flex-start; gap: 10px; font-size: 14px; font-weight: 600; color: var(--kc-navy); cursor: pointer; text-align: left; }
.kc-form-consent input[type="checkbox"] { flex: 0 0 20px; width: 20px !important; height: 20px !important; min-height: 0 !important; margin: 2px 0 0 !important; padding: 0 !important; accent-color: var(--kc-navy); }

/* ───────────────────────────── Notice cards (Home "Latest Notices", Notice Board) — 2026-10-22 */
.kc-ncards { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px;
	grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - 40px) / 3)), 1fr)); }
@media (max-width: 1024px) { .kc-ncards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .kc-ncards { grid-template-columns: minmax(0, 1fr); } }
.kc-ncard { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 22px 22px 20px; background: #fff; border: 1px solid var(--kc-n100);
	border-radius: var(--kc-r); box-shadow: 0 4px 16px rgba(25, 44, 87, .06); transition: transform .2s, box-shadow .2s, border-color .2s; min-width: 0; }
.kc-ncard:hover { transform: translateY(-4px); box-shadow: var(--kc-sh-lg); border-color: var(--kc-n200); }
.kc-ncard:focus-within { box-shadow: var(--kc-focus); }
.kc-ncard-top { display: flex; align-items: flex-start; gap: 12px; }
.kc-ncard-date { flex: 0 0 52px; background: var(--kc-navy); border-radius: 9px; padding: 8px 4px; text-align: center; color: #fff; }
.kc-ncard-date .kc-nd { display: block; font-family: var(--kc-fh); font-size: 20px; font-weight: 700; color: var(--kc-g300); line-height: 1; }
.kc-ncard-date .kc-nm { display: block; margin-top: 2px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; color: rgba(255, 255, 255, .85); }
.kc-ncard-tags { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.kc-ncard-cat { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--kc-g600); }
.kc-ncard .kc-badges { gap: 6px; }
.kc-ncard .kc-badge { font-size: 10px; padding: 3px 8px; }
.kc-ncard .kc-ncard-title { margin: 0; font-family: var(--kc-fh) !important; font-size: 18px !important; font-weight: 700 !important; line-height: 1.3 !important; color: var(--kc-navy) !important; text-transform: none !important; letter-spacing: 0 !important; }
.kc-ncard-link { color: var(--kc-navy) !important; text-decoration: none !important; overflow-wrap: anywhere; }
.kc-ncard-link::after { content: ''; position: absolute; inset: 0; border-radius: var(--kc-r); z-index: 1; }
.kc-ncard-link:focus-visible { outline: none; }
.kc-ncard:hover .kc-ncard-link { text-decoration: underline !important; text-decoration-thickness: 1px !important; }
.kc-ncard-summary { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--kc-n700) !important; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.kc-ncard-actions { margin-top: auto; padding-top: 8px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.kc-ncard-more { font-size: 14px; font-weight: 700; color: var(--kc-n400); }
.kc-ncard:hover .kc-ncard-more span { display: inline-block; transform: translateX(3px); }
.kc-ncard-pdf { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 7px 12px; border-radius: var(--kc-rs);
	background: var(--kc-g100); border: 1px solid var(--kc-g500); color: var(--kc-n800) !important; font-size: 13px; font-weight: 700; text-decoration: none !important; }
.kc-ncard-pdf::before { content: '\f1c1'; font-family: 'Font Awesome 6 Free'; font-weight: 400; }
.kc-ncard-pdf:hover, .kc-ncard-pdf:focus-visible { background: var(--kc-gold); }
.kc-ncard-pdf:focus-visible { outline: none; box-shadow: var(--kc-focus); }
/* Single notice: badges and meta row inside the standard hero */
.kc-notice-header .kc-badges { margin-top: 2px; }
.kc-notice-header .kc-notice-meta { display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 2px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(255, 255, 255, .16); width: 100%; max-width: 760px; }
/* Breadcrumb on phones: one line; a long current-page title is shortened with an ellipsis (the full title is the H1 below). */
@media (max-width: 767px) {
	.kc-breadcrumb ol { flex-wrap: nowrap; min-width: 0; }
	.kc-breadcrumb li { flex: 0 0 auto; white-space: nowrap; }
	.kc-breadcrumb li:last-child { flex: 0 1 auto; min-width: 0; overflow: hidden; }
	.kc-breadcrumb [aria-current="page"] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
