/* KICoB editorial system shared by Elementor pages, posts, events and staff. */
:root {
	--kicob-ink: #12324b;
	--kicob-muted: #526b80;
	--kicob-blue: #0056a8;
	--kicob-blue-deep: #003b75;
	--kicob-yellow: #fffe00;
	--kicob-paper: #fbfaf7;
	--kicob-pale-blue: #eff5f9;
	--kicob-line: #d9e4ec;
	--kicob-radius-card: 16px;
	--kicob-radius-panel: 22px;
	--kicob-shadow-card: 0 14px 38px rgba(0, 42, 82, .075);
	--kicob-motion: cubic-bezier(.2, .75, .25, 1);
}

body { color: var(--kicob-ink); }
body .entry-content, body .elementor, body .elementor-widget-text-editor { color: var(--kicob-ink); }
body .entry-content p, body .elementor-widget-text-editor p { max-width: 72ch; }
body .entry-content a:not(.elementor-button), body .elementor-widget-text-editor a { text-decoration-thickness: .075em; text-underline-offset: .2em; }
body :focus-visible { outline: 3px solid var(--kicob-yellow); outline-offset: 4px; box-shadow: 0 0 0 2px var(--kicob-blue-deep); }

/* Shared page rhythm. The content stays in Elementor so editors can revise it. */
.kicob-page-entry > .entry-content > .elementor { overflow: clip; }
.elementor .kicob-page-content { padding: 0 !important; background: var(--kicob-paper); }
.elementor .kicob-page-content > .e-con-inner { width: 100%; max-width: none; }
.elementor .kicob-page-content .kicob-html-content { width: 100% !important; max-width: none !important; margin-inline: 0 !important; }
.elementor .kicob-page-content .kicob-section { padding-block: clamp(56px, 7vw, 96px); }
.elementor .kicob-page-content .kicob-section.alt { background: var(--kicob-pale-blue); }
.elementor .kicob-page-content .kicob-wrap { width: min(1200px, calc(100% - 64px)); margin-inline: auto; }
.elementor .kicob-page-content .kicob-section-head { align-items: end; gap: 24px; margin-bottom: clamp(28px, 4vw, 46px); }
.elementor .kicob-page-content .kicob-section-head h2,
.elementor .kicob-page-content .kicob-section > .kicob-wrap > h2,
.elementor .kicob-page-content .kicob-section > .kicob-wrap > .kicob-section-title {
	max-width: 19ch; margin: 0; color: var(--kicob-blue-deep); font-size: clamp(2rem, 3.5vw, 3.1rem); line-height: 1.08; text-wrap: balance;
}
.elementor .kicob-page-content .kicob-section-head p { max-width: 60ch; margin: 14px 0 0; color: var(--kicob-muted); font-size: 1.05rem; }
.elementor .kicob-page-content .kicob-line { margin-top: 20px; background: var(--kicob-blue); }
.elementor .kicob-page-content .kicob-grid-2,
.elementor .kicob-page-content .kicob-grid-3,
.elementor .kicob-page-content .kicob-quick-grid,
.elementor .kicob-page-content .kicob-life-grid { align-items: stretch; gap: clamp(16px, 2vw, 26px); }
.elementor .kicob-page-content .kicob-card,
.elementor .kicob-page-content .kicob-life-card,
.elementor .kicob-page-content .kicob-quick-item {
	min-width: 0; border: 1px solid var(--kicob-line); border-radius: var(--kicob-radius-card); background: #fff; box-shadow: 0 8px 24px rgba(0, 45, 88, .045); transition: transform 220ms var(--kicob-motion), box-shadow 220ms var(--kicob-motion), border-color 220ms var(--kicob-motion);
}
.elementor .kicob-page-content .kicob-card:hover,
.elementor .kicob-page-content .kicob-life-card:hover { transform: translateY(-3px); border-color: rgba(0, 86, 168, .3); box-shadow: var(--kicob-shadow-card); }
.elementor .kicob-page-content .kicob-card h3,
.elementor .kicob-page-content .kicob-life-body h3,
.elementor .kicob-page-content .kicob-quick-item strong { color: var(--kicob-blue-deep); }
.elementor .kicob-page-content .kicob-card p,
.elementor .kicob-page-content .kicob-life-body p,
.elementor .kicob-page-content .kicob-quick-item span { color: var(--kicob-muted); }
.elementor .kicob-page-content .kicob-icon { display: grid; place-items: center; flex: 0 0 auto; color: var(--kicob-blue); }
.elementor .kicob-page-content .kicob-card img,
.elementor .kicob-page-content .kicob-life-card img,
.elementor .kicob-page-content .kicob-gallery img { display: block; width: 100%; height: auto; object-fit: cover; }
.elementor .kicob-page-content .kicob-life-card img { aspect-ratio: 3 / 2; }
.elementor .kicob-page-content .kicob-gallery { align-items: stretch; gap: 16px; }
.elementor .kicob-page-content .kicob-gallery img { height: 100%; min-height: 220px; aspect-ratio: 4 / 3; border-radius: 14px; }
.elementor .kicob-page-content .kicob-highlight { border: 0; border-left: 4px solid var(--kicob-yellow); border-radius: 0 var(--kicob-radius-panel) var(--kicob-radius-panel) 0; background: linear-gradient(118deg, var(--kicob-blue-deep), #075a9f); box-shadow: 0 18px 44px rgba(0, 59, 117, .14); }
.elementor .kicob-page-content .kicob-highlight p { color: rgba(255,255,255,.9); }
.elementor .kicob-page-content .kicob-highlight strong { color: var(--kicob-yellow); }
.elementor .kicob-page-content .kicob-cta { gap: 24px; border: 1px solid rgba(255,255,255,.18); border-radius: var(--kicob-radius-panel); background: linear-gradient(118deg, #003b75, #075a9f); box-shadow: 0 18px 44px rgba(0, 59, 117, .16); }
.elementor .kicob-page-content .kicob-cta h2,
.elementor .kicob-page-content .kicob-cta h3 { color: #fff; }
.elementor .kicob-page-content .kicob-cta p { color: rgba(255,255,255,.88); }
.elementor .kicob-page-content .kicob-btn { min-height: 48px; border-radius: 999px; font-weight: 750; transition: transform 180ms var(--kicob-motion), background-color 180ms var(--kicob-motion), color 180ms var(--kicob-motion); }
.elementor .kicob-page-content .kicob-btn:hover { transform: translateY(-2px); }
.elementor .kicob-page-content .kicob-btn:not(.outline) { border-color: var(--kicob-yellow); background: var(--kicob-yellow); color: var(--kicob-blue-deep) !important; }
.elementor .kicob-page-content .kicob-btn.outline { color: #fff !important; }
.elementor .kicob-page-content ul:not([class]) { padding-left: 1.3em; }
.elementor .kicob-page-content li + li { margin-top: .45em; }
.elementor .kicob-page-content table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--kicob-line); border-radius: 14px; background: #fff; }
.elementor .kicob-page-content th { background: var(--kicob-blue-deep); color: #fff; text-align: left; }
.elementor .kicob-page-content th, .elementor .kicob-page-content td { padding: 14px 18px; border-bottom: 1px solid var(--kicob-line); }

/* One confident, image-led hero across programme and institutional pages. */
.elementor .kicob-page-content > .kicob-hero,
.elementor .kicob-program-page .kicob-hero,
.elementor .kicob-page-content .kicob-hero {
	box-sizing: border-box; display: flex; width: 100% !important; max-width: none !important; min-height: clamp(570px, 67vw, 760px); align-items: center; padding: 0 !important; overflow: hidden; background-position: center 43%; background-size: cover;
}
.elementor .kicob-page-content > .kicob-hero::before,
.elementor .kicob-program-page .kicob-hero::before,
.elementor .kicob-page-content .kicob-hero::before { background: linear-gradient(90deg, rgba(0, 35, 72, .94) 0%, rgba(0, 45, 88, .84) 38%, rgba(0, 45, 88, .38) 72%, rgba(0, 35, 72, .2) 100%); }
.elementor .kicob-page-content > .kicob-hero > .kicob-html-content,
.elementor .kicob-program-page .kicob-hero > .kicob-html-content { width: 100% !important; max-width: none !important; margin: 0 !important; }
.elementor .kicob-page-content .kicob-hero-content,
.elementor .kicob-program-page .kicob-hero-content {
	box-sizing: border-box; display: grid; width: min(1280px, calc(100% - 80px)); grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr); align-items: center; gap: clamp(36px, 6vw, 96px); margin-inline: auto; padding-block: clamp(70px, 8vw, 104px);
}
.elementor .kicob-page-content .kicob-hero-content > :first-child { min-width: 0; }
.elementor .kicob-page-content .kicob-hero h1,
.elementor .kicob-program-page .kicob-hero h1 { max-width: 17ch; margin: 18px 0 22px; font-size: clamp(2.55rem, 4vw, 3.8rem); line-height: 1.045; letter-spacing: -.035em; text-wrap: balance; }
.elementor .kicob-page-content .kicob-hero h1 span,
.elementor .kicob-program-page .kicob-hero h1 span { color: var(--kicob-yellow); }
.elementor .kicob-page-content .kicob-hero p,
.elementor .kicob-program-page .kicob-hero p { max-width: 52ch; color: rgba(255,255,255,.94); font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.75; }
.elementor .kicob-page-content .kicob-badge { display: inline-flex; min-height: 36px; align-items: center; border: 1px solid rgba(255,254,0,.55); border-radius: 999px; background: rgba(0,59,117,.68); color: #fff; font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.elementor .kicob-page-content .kicob-hero-panel {
	width: 100%; max-width: 440px; justify-self: end; padding: clamp(24px, 2.8vw, 36px); border: 1px solid rgba(255,255,255,.72); border-radius: var(--kicob-radius-panel); background: rgba(255,255,255,.97); box-shadow: 0 22px 64px rgba(0,20,44,.28); backdrop-filter: blur(14px);
}
.elementor .kicob-page-content .kicob-hero-panel h2,
.elementor .kicob-page-content .kicob-hero-panel h3 { margin: 0 0 20px; color: var(--kicob-blue-deep); font-size: clamp(1.45rem, 2vw, 1.8rem); }
.elementor .kicob-page-content .kicob-hero-panel .kicob-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.elementor .kicob-page-content .kicob-hero-panel .kicob-quick-item { display: flex; min-height: 112px; flex-direction: column; justify-content: center; padding: 18px; background: #f2f7fa; box-shadow: none; }
.elementor .kicob-page-content .kicob-hero-panel .kicob-quick-item strong { font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.12; }
.elementor .kicob-page-content .kicob-hero-panel .kicob-quick-item span { margin-top: 6px; font-size: .86rem; line-height: 1.35; }

/* News and long-form pages get a clear reading measure and consistent hierarchy. */
.single-post #main-content, .single-tp_event #main-content { background: var(--kicob-paper); }
.single-post .kicob-editorial-shell, .single-tp_event .kicob-event-single { width: 100%; max-width: none; padding: clamp(42px, 6vw, 84px) 24px clamp(72px, 9vw, 116px); }
.single-post .kicob-editorial-article { width: min(100%, 1060px); }
.single-post .kicob-editorial-header { position: relative; width: min(100%, 900px); margin: 0 auto clamp(32px, 5vw, 56px); padding: 22px 0 0; }
.single-post .kicob-editorial-header::before { position: absolute; top: 0; left: 0; width: 72px; height: 4px; border-radius: 4px; background: var(--kicob-yellow); content: ""; }
.single-post .kicob-editorial-meta { align-items: center; color: var(--kicob-blue); font-weight: 700; }
.single-post .kicob-editorial-meta a { display: inline-flex; padding: 4px 10px; border-radius: 999px; background: #e8f1f7; color: var(--kicob-blue-deep); font-size: .82rem; text-decoration: none; }
.single-post .kicob-editorial-header h1 { max-width: 20ch; margin-bottom: 18px; color: var(--kicob-blue-deep); font-size: clamp(2.45rem, 5.4vw, 4.8rem); line-height: 1.02; letter-spacing: -.035em; }
.single-post .kicob-editorial-image { width: min(100%, 1160px); max-height: none; margin: 0 auto clamp(36px, 5vw, 64px); border-radius: var(--kicob-radius-panel); box-shadow: var(--kicob-shadow-card); }
.single-post .kicob-editorial-image img { width: 100%; max-height: 640px; aspect-ratio: 16 / 8.4; object-fit: cover; }
.single-post .kicob-editorial-body { max-width: 74ch; margin-inline: auto; font-size: 1.07rem; line-height: 1.82; }
.single-post .kicob-editorial-body .elementor { overflow: visible; }
.single-post .kicob-editorial-body h2 { margin-top: 1.65em; font-size: clamp(1.65rem, 3vw, 2.3rem); }
.single-post .kicob-editorial-body h3 { margin-top: 1.45em; }
.single-post .kicob-editorial-body img { border-radius: 14px; }
.single-post .kicob-editorial-body figure { margin: 1.8em 0; }
.single-post .kicob-editorial-body blockquote { border-left: 4px solid var(--kicob-yellow); background: #edf4f9; }
.single-post .elementor-section, .single-post .e-con { max-width: 100%; }

/* Event and post cards share the same image crop, title treatment and keyboard feedback. */
.kicob-editorial-card, .kicob-event-card { border-color: var(--kicob-line); border-radius: var(--kicob-radius-card); box-shadow: 0 7px 24px rgba(0,45,88,.045); }
.kicob-editorial-card:hover, .kicob-event-card:hover { transform: translateY(-4px); border-color: rgba(0,86,168,.28); box-shadow: var(--kicob-shadow-card); }
.kicob-editorial-card:focus-within, .kicob-event-card:focus-within { outline: 3px solid var(--kicob-blue); outline-offset: 4px; }
.kicob-editorial-card-image img { transition: transform 420ms var(--kicob-motion); }
.kicob-editorial-card:hover .kicob-editorial-card-image img { transform: scale(1.035); }
.kicob-editorial-card h2 a:hover { color: var(--kicob-blue); }
.kicob-editorial-card a:focus-visible, .kicob-staff-card a:focus-visible { outline: 3px solid var(--kicob-blue); outline-offset: -4px; }
.kicob-apply-link:focus-visible, .kicob-button:focus-visible, .elementor .elementor-button:focus-visible,
.kicob-staff-filter-submit:focus-visible { outline-color: var(--kicob-yellow); }
.kicob-motion-ready .kicob-reveal { opacity: 0; transform: translateY(16px); transition: opacity 520ms var(--kicob-motion) var(--kicob-reveal-delay, 0ms), transform 520ms var(--kicob-motion) var(--kicob-reveal-delay, 0ms); }
.kicob-motion-ready .kicob-reveal.is-visible { opacity: 1; transform: translateY(0); }
.kicob-archive-shell { width: min(1280px, calc(100% - 48px)); }
.kicob-archive-heading { margin-bottom: clamp(28px, 5vw, 54px); padding-bottom: 24px; border-bottom: 1px solid var(--kicob-line); }
.kicob-archive-heading h1 { max-width: 19ch; margin: 0; font-size: clamp(2.3rem, 5vw, 4.2rem); }

/* Academic staff directory and profiles. */
.kicob-archive-intro { padding: clamp(48px, 7vw, 88px) 0 clamp(32px, 4vw, 48px); background: linear-gradient(120deg, #eff5f9, #fbfaf7); }
.kicob-archive-intro .kicob-container { align-items: end; gap: 36px; }
.kicob-archive-intro h1 { margin: 0 0 14px; font-size: clamp(2.7rem, 5.7vw, 5rem); }
.kicob-archive-intro p:not(.kicob-eyebrow) { max-width: 64ch; margin: 0; font-size: 1.1rem; }
.kicob-staff-filters { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; align-items: end; gap: 16px; margin-block: 32px 40px; padding: clamp(18px, 2.4vw, 28px); border: 1px solid var(--kicob-line); border-radius: 18px; background: #f0f6fa; }
.kicob-staff-filter-field label { display: block; margin-bottom: 8px; color: var(--kicob-blue-deep); font-weight: 750; }
.kicob-staff-filter-field select, .kicob-staff-filters input[type="search"] { width: 100%; min-height: 54px; padding: 12px 16px; border: 1px solid #c8d9e6; border-radius: 10px; background: #fff; color: var(--kicob-ink); font: inherit; }
.kicob-staff-filter-submit { min-height: 54px; padding: 12px 22px; border: 1px solid var(--kicob-blue-deep); border-radius: 10px; background: var(--kicob-blue-deep); color: #fff; font: inherit; font-weight: 750; cursor: pointer; transition: background-color 180ms var(--kicob-motion), transform 180ms var(--kicob-motion); }
.kicob-staff-filter-submit:hover { transform: translateY(-2px); background: var(--kicob-blue); }
.kicob-staff-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); align-items: stretch; gap: 20px; padding-bottom: 56px; }
.kicob-staff-card { overflow: hidden; border: 1px solid var(--kicob-line); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(0,45,88,.05); transition: transform 220ms var(--kicob-motion), box-shadow 220ms var(--kicob-motion); }
.kicob-staff-card:hover { transform: translateY(-4px); box-shadow: var(--kicob-shadow-card); }
.kicob-staff-card > a { display: flex; height: 100%; flex-direction: column; color: inherit; text-decoration: none; }
.kicob-staff-card > a:focus-visible { outline-offset: -4px; }
.kicob-staff-card > a > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 30%; background: #eaf1f6; }
.kicob-staff-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 20px; }
.kicob-staff-card-body h2 { margin: 0 0 8px; color: var(--kicob-blue-deep); font-size: 1.18rem; line-height: 1.28; }
.kicob-staff-card-body p { margin: 0 0 14px; font-size: .92rem; line-height: 1.55; }
.kicob-staff-card-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: auto 0 0; padding: 0; list-style: none; }
.kicob-staff-card-tags li { padding: 5px 9px; border: 1px solid #d7e6f1; border-radius: 999px; background: #f0f6fa; color: var(--kicob-blue-deep); font-size: .73rem; font-weight: 750; line-height: 1.2; }
.kicob-staff-profile { padding-block: clamp(40px, 6vw, 78px) clamp(68px, 8vw, 108px); }
.kicob-staff-profile .kicob-breadcrumbs { margin-bottom: 30px; }
.kicob-staff-profile .kicob-profile-grid { grid-template-columns: minmax(280px, 390px) minmax(0,1fr); gap: clamp(32px, 6vw, 78px); }
.kicob-profile-photo { position: sticky; top: 28px; overflow: hidden; border-radius: 20px; background: #eaf1f6; box-shadow: var(--kicob-shadow-card); }
.kicob-profile-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 28%; }
.kicob-staff-profile h1 { max-width: 18ch; margin: 0 0 12px; color: var(--kicob-blue-deep); font-size: clamp(2.4rem, 4.6vw, 4rem); }
.kicob-staff-profile .kicob-role { font-size: 1.15rem; }
.kicob-staff-profile .kicob-profile-content { max-width: 72ch; margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--kicob-line); font-size: 1.03rem; line-height: 1.8; }
.kicob-staff-profile .kicob-profile-content h2 { font-size: 1.75rem; }

/* Event detail pages use a confident date strip and generous reading width. */
.single-tp_event .kicob-event-article { width: min(100%, 1080px); }
.single-tp_event .kicob-event-article-header { position: relative; margin: 0 auto 34px; padding: 24px 0 0; }
.single-tp_event .kicob-event-article-header::before { position: absolute; top: 0; left: 0; width: 70px; height: 4px; border-radius: 4px; background: var(--kicob-yellow); content: ""; }
.single-tp_event .kicob-event-date { color: var(--kicob-blue); }
.single-tp_event .kicob-event-article-header h1 { max-width: 19ch; color: var(--kicob-blue-deep); font-size: clamp(2.45rem, 5vw, 4.6rem); line-height: 1.04; }
.single-tp_event .kicob-event-article-image { border-radius: 20px; box-shadow: var(--kicob-shadow-card); }
.single-tp_event .kicob-event-article-image img { width: 100%; aspect-ratio: 16 / 8.5; }
.single-tp_event .kicob-event-article-body { line-height: 1.8; }

@media (max-width: 1024px) {
	.elementor .kicob-page-content > .kicob-hero, .elementor .kicob-program-page .kicob-hero, .elementor .kicob-page-content .kicob-hero { min-height: 590px; }
	.elementor .kicob-page-content .kicob-hero-content, .elementor .kicob-program-page .kicob-hero-content { width: min(100% - 56px, 1120px); grid-template-columns: minmax(0,1.12fr) minmax(290px,.88fr); gap: 34px; padding-block: 70px; }
	.elementor .kicob-page-content .kicob-hero-panel { padding: 24px; }
	.kicob-staff-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 760px) {
	.elementor .kicob-page-content > .kicob-hero, .elementor .kicob-program-page .kicob-hero, .elementor .kicob-page-content .kicob-hero { min-height: 0; align-items: start; background-position: center; }
	.elementor .kicob-page-content > .kicob-hero::before, .elementor .kicob-program-page .kicob-hero::before, .elementor .kicob-page-content .kicob-hero::before { background: linear-gradient(180deg, rgba(0,35,72,.88), rgba(0,45,88,.84) 58%, rgba(0,35,72,.74)); }
	.elementor .kicob-page-content .kicob-hero-content, .elementor .kicob-program-page .kicob-hero-content { width: calc(100% - 36px); grid-template-columns: 1fr; gap: 28px; padding-block: 54px; }
	.elementor .kicob-page-content .kicob-hero h1, .elementor .kicob-program-page .kicob-hero h1 { max-width: 16ch; margin: 14px 0 18px; font-size: clamp(2.4rem, 9.4vw, 3.5rem); }
	.elementor .kicob-page-content .kicob-hero-panel { max-width: 600px; justify-self: stretch; padding: 22px; }
	.elementor .kicob-page-content .kicob-section { padding-block: 52px; }
	.elementor .kicob-page-content .kicob-wrap { width: calc(100% - 36px); }
	.elementor .kicob-page-content .kicob-grid-2, .elementor .kicob-page-content .kicob-grid-3, .elementor .kicob-page-content .kicob-life-grid, .elementor .kicob-page-content .kicob-gallery { grid-template-columns: 1fr; }
	.elementor .kicob-page-content .kicob-gallery img { min-height: 0; aspect-ratio: 16 / 10; }
	.kicob-staff-filters { grid-template-columns: 1fr; }
	.kicob-staff-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
	.kicob-staff-card-body { padding: 16px; }
	.kicob-staff-profile .kicob-profile-grid { grid-template-columns: 1fr; }
	.kicob-profile-photo { position: static; max-width: 380px; }
}
@media (max-width: 480px) {
	.kicob-staff-grid { grid-template-columns: 1fr; }
	.kicob-staff-card > a > img { aspect-ratio: 16 / 10; }
	.single-post .kicob-editorial-shell, .single-tp_event .kicob-event-single { padding-inline: 16px; }
	.single-post .kicob-editorial-image img, .single-tp_event .kicob-event-article-image img { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) {
	.kicob-editorial-card, .kicob-staff-card, .kicob-page-content .kicob-card, .kicob-page-content .kicob-life-card,
	.kicob-editorial-card-image img { transition: none !important; }
	html.kicob-motion-ready .kicob-reveal { opacity: 1 !important; transform: none !important; }
}
