/*
Theme Name: HKBC Child
Theme URI: https://hkbc.enihope.com/
Description: Accessible, bilingual presentation layer for the Hong Kong Bluebell College staging website.
Author: HKBC Website Upgrade Team
Template: blocksy
Version: 0.7.17
Requires at least: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hkbc-child
*/

:root {
	/* Purple confirmed by the school; working shades from its existing website.
	 * Legacy aliases preserve existing blocks and page content. */
	--hkbc-purple: #8E24AA;
	--hkbc-purple-deep: #620673;
	--hkbc-purple-light: #D7B6E2;
	--hkbc-navy: var(--hkbc-purple-deep);
	--hkbc-blue: var(--hkbc-purple);
	--hkbc-burgundy: var(--hkbc-purple);
	--hkbc-crimson: var(--hkbc-purple);
	--hkbc-rose-dark: var(--hkbc-purple);
	--hkbc-rose: var(--hkbc-purple-light);
	--hkbc-sky: var(--hkbc-purple-light);

	/* Supporting interface colours. */
	--hkbc-ink: #111827;
	--hkbc-ink-muted: #4B5563;
	--hkbc-ink-inverse: #FFFFFF;
	--hkbc-surface: #FFFFFF;
	--hkbc-surface-soft: #F8F5FA;
	--hkbc-surface-rose: #F6EFF8;
	--hkbc-surface-sky: #EDE1F1;
	--hkbc-border: #D1D5DB;
	--hkbc-border-strong: #6B7280;

	/* Semantic interaction tokens. */
	--hkbc-primary: var(--hkbc-burgundy);
	--hkbc-primary-hover: var(--hkbc-navy);
	--hkbc-link: var(--hkbc-blue);
	--hkbc-visited: var(--hkbc-purple-deep);
	--hkbc-focus: #F59E0B;

	/* Typography. */
	--hkbc-font-sans: Inter, "Segoe UI", system-ui, sans-serif;
	--hkbc-font-zh-hant: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
	--hkbc-font-xs: .75rem;
	--hkbc-font-sm: .875rem;
	--hkbc-font-base: 1rem;
	--hkbc-font-lg: 1.125rem;
	--hkbc-font-xl: 1.25rem;
	--hkbc-font-2xl: 1.5rem;
	--hkbc-font-3xl: clamp(1.875rem, 4vw, 3rem);
	--hkbc-font-4xl: clamp(2.25rem, 6vw, 4.5rem);

	/* Spacing, shape, layout, and motion. */
	--hkbc-space-1: .25rem;
	--hkbc-space-2: .5rem;
	--hkbc-space-3: .75rem;
	--hkbc-space-4: 1rem;
	--hkbc-space-6: 1.5rem;
	--hkbc-space-8: 2rem;
	--hkbc-space-12: 3rem;
	--hkbc-space-16: 4rem;
	--hkbc-space-24: 6rem;
	--hkbc-radius-sm: .25rem;
	--hkbc-radius-md: .5rem;
	--hkbc-radius-lg: .75rem;
	--hkbc-radius-pill: 999px;
	--hkbc-content: 75rem;
	--hkbc-reading: 48rem;
	--hkbc-gutter: clamp(1rem, 4vw, 2rem);
	--hkbc-motion-fast: 120ms;
	--hkbc-motion-normal: 200ms;
	--hkbc-easing: cubic-bezier(.2, 0, 0, 1);
	--hkbc-shadow-sm: 0 .625rem 1.75rem rgba(17, 24, 39, .08);
	--hkbc-shadow-lg: 0 1.5rem 3.75rem rgba(17, 24, 39, .16);
}

/* Override Blocksy's saved blue defaults in the presentation layer only. */
body.hkbc-site {
	--theme-palette-color-1: var(--hkbc-purple);
	--theme-palette-color-2: var(--hkbc-purple-deep);
	--theme-palette-color-3: var(--hkbc-ink-muted);
	--theme-palette-color-4: var(--hkbc-ink);
	--theme-palette-color-5: var(--hkbc-border);
	--theme-palette-color-6: var(--hkbc-surface-sky);
	--theme-palette-color-7: var(--hkbc-surface-soft);
	--theme-palette-color-8: var(--hkbc-surface);
	--theme-link-initial-color: var(--hkbc-purple);
	--theme-link-hover-color: var(--hkbc-purple-deep);
	--theme-button-background-initial-color: var(--hkbc-purple);
	--theme-button-background-hover-color: var(--hkbc-purple-deep);
	--theme-selection-background-color: var(--hkbc-purple);
	--theme-form-selection-field-active-color: var(--hkbc-purple);
	--theme-form-field-border-focus-color: var(--hkbc-purple);
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--hkbc-surface);
	color: var(--hkbc-ink);
	font-family: var(--hkbc-font-sans);
	font-size: var(--hkbc-font-base);
	line-height: 1.6;
}

html:lang(zh-Hant) body {
	font-family: var(--hkbc-font-zh-hant);
	line-height: 1.75;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--hkbc-ink);
	font-weight: 700;
	letter-spacing: -.025em;
	line-height: 1.2;
}

h1 { font-size: var(--hkbc-font-4xl); }
h2 { font-size: var(--hkbc-font-3xl); }
h3 { font-size: var(--hkbc-font-2xl); }

html:lang(zh-Hant) :where(h1, h2, h3, h4, h5, h6) {
	letter-spacing: 0;
	line-height: 1.3;
}

a {
	color: var(--hkbc-link);
	text-decoration-thickness: .09em;
	text-underline-offset: .18em;
}

a:visited {
	color: var(--hkbc-visited);
}

a:hover {
	color: var(--hkbc-primary-hover);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--hkbc-focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 7px var(--hkbc-ink);
}

.hkbc-site :where(button, input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select) {
	min-height: 2.75rem;
}

.hkbc-site textarea {
	min-height: 8rem;
}

.screen-reader-text:focus,
.skip-link:focus {
	z-index: 1000000;
}

.hkbc-full-bleed {
	overflow: clip;
}

.hkbc-full-bleed .entry-content,
.hkbc-full-bleed .wp-block-post-content {
	margin: 0;
}

.hkbc-shell,
.hkbc-section > .wp-block-group__inner-container,
.hkbc-section-inner {
	width: min(calc(100% - var(--hkbc-gutter) - var(--hkbc-gutter)), var(--hkbc-content));
	margin-inline: auto;
}

.hkbc-reading {
	max-width: var(--hkbc-reading);
}

.hkbc-section {
	padding-block: clamp(var(--hkbc-space-12), 7vw, var(--hkbc-space-24));
}

.hkbc-section--compact {
	padding-block: clamp(var(--hkbc-space-12), 5vw, var(--hkbc-space-16));
}

.hkbc-section--paper { background: var(--hkbc-surface-soft); }
.hkbc-section--mist { background: var(--hkbc-surface-sky); }
.hkbc-section--ink {
	background: var(--hkbc-ink);
	color: rgba(255, 255, 255, .86);
}

.hkbc-section--ink :where(h1, h2, h3, h4, a) {
	color: var(--hkbc-ink-inverse);
}

.hkbc-section--ink a:visited {
	color: var(--hkbc-ink-inverse);
}

.hkbc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--hkbc-space-2);
	margin: 0 0 var(--hkbc-space-4);
	color: var(--hkbc-blue);
	font-size: var(--hkbc-font-xs);
	font-weight: 700;
	letter-spacing: .13em;
	line-height: 1.3;
	text-transform: uppercase;
}

.hkbc-eyebrow::before {
	width: var(--hkbc-space-8);
	height: .2rem;
	background: var(--hkbc-burgundy);
	content: "";
}

.hkbc-section-heading {
	max-width: 50rem;
	margin-bottom: var(--hkbc-space-12);
}

.hkbc-section-heading h2 {
	margin: 0 0 var(--hkbc-space-4);
}

.hkbc-section-heading p {
	max-width: 44rem;
	margin: 0;
	color: var(--hkbc-ink-muted);
	font-size: clamp(var(--hkbc-font-lg), 1rem + .3vw, var(--hkbc-font-xl));
}

.hkbc-private-note {
	position: relative;
	z-index: 2;
	margin: 0;
	padding: var(--hkbc-space-3) var(--hkbc-space-4);
	background: var(--hkbc-burgundy);
	color: var(--hkbc-ink-inverse);
	font-size: var(--hkbc-font-xs);
	font-weight: 700;
	letter-spacing: .055em;
	text-align: center;
	text-transform: uppercase;
}

.hkbc-front-page .hkbc-private-note {
	display: none;
}

.hkbc-hero {
	--hkbc-hero-curve-depth: clamp(2rem, 10.75vw, 10rem);

	position: relative;
	isolation: isolate;
	width: 100%;
	min-height: clamp(39rem, 87svh, 45rem);
	margin-inline: 0;
	padding-inline: 0;
	display: grid;
	align-items: center;
	overflow: hidden;
	/* A broad elliptical lower edge recreates the reference site's welcoming
	 * photographic transition while keeping the implementation original. */
	border-radius: 0 0 50% 50% / 0 0 var(--hkbc-hero-curve-depth) var(--hkbc-hero-curve-depth);
	background-color: var(--hkbc-navy);
	background-image: none;
	background-position: center 52%;
	background-repeat: no-repeat;
	background-size: cover;
	color: rgba(255, 255, 255, .9);
}

.hkbc-hero::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(11, 20, 55, .48) 0%, rgba(11, 20, 55, .16) 42%, rgba(11, 20, 55, .72) 100%),
		linear-gradient(90deg, rgba(25, 34, 103, .3), transparent 36%, transparent 64%, rgba(139, 13, 17, .18));
	content: "";
}

.hkbc-hero__inner {
	width: min(calc(100% - var(--hkbc-gutter) - var(--hkbc-gutter)), var(--hkbc-content));
	margin-inline: auto;
	padding-block: clamp(10rem, 17vw, 14rem) clamp(8rem, 13vw, 11rem);
	display: flex;
	justify-content: center;
	text-align: center;
}

.hkbc-hero h1 {
	max-width: 17ch;
	margin: 0 0 var(--hkbc-space-6);
	color: var(--hkbc-ink-inverse);
	font-size: clamp(2.75rem, 6vw, 5.75rem);
	letter-spacing: -.045em;
	line-height: 1.02;
	text-shadow: 0 .2rem 1.4rem rgba(10, 20, 55, .48);
}

.hkbc-hero__lead {
	max-width: 48rem;
	margin: 0 0 var(--hkbc-space-8);
	color: rgba(255, 255, 255, .86);
	font-size: clamp(var(--hkbc-font-lg), 1rem + .6vw, var(--hkbc-font-2xl));
	text-shadow: 0 .1rem .7rem rgba(10, 20, 55, .55);
}

.hkbc-hero .hkbc-eyebrow {
	color: var(--hkbc-ink-inverse);
	justify-content: center;
}

.hkbc-hero__content {
	display: grid;
	justify-items: center;
}

.hkbc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hkbc-space-3);
	align-items: center;
}

.hkbc-button,
.wp-block-button.hkbc-button .wp-block-button__link {
	display: inline-flex;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	padding: var(--hkbc-space-3) var(--hkbc-space-6);
	border: 2px solid transparent;
	border-radius: var(--hkbc-radius-pill);
	background: var(--hkbc-primary);
	color: var(--hkbc-ink-inverse);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: transform var(--hkbc-motion-normal) var(--hkbc-easing), background-color var(--hkbc-motion-normal) var(--hkbc-easing), border-color var(--hkbc-motion-normal) var(--hkbc-easing);
}

.hkbc-button:hover,
.wp-block-button.hkbc-button .wp-block-button__link:hover {
	background: var(--hkbc-primary-hover);
	color: var(--hkbc-ink-inverse);
	transform: translateY(-2px);
}

a.hkbc-button:visited,
.wp-block-button.hkbc-button .wp-block-button__link:visited {
	color: var(--hkbc-ink-inverse);
}

.hkbc-button--ghost,
.wp-block-button.hkbc-button--ghost .wp-block-button__link {
	border-color: rgba(255, 255, 255, .7);
	background: transparent;
	color: var(--hkbc-ink-inverse);
}

.hkbc-button--ghost:hover,
.hkbc-button--ghost:focus-visible,
a.hkbc-button.hkbc-button--ghost:visited:hover,
a.hkbc-button.hkbc-button--ghost:visited:focus-visible,
.wp-block-button.hkbc-button--ghost .wp-block-button__link:hover,
.wp-block-button.hkbc-button--ghost .wp-block-button__link:focus-visible {
	border-color: var(--hkbc-ink-inverse);
	background: var(--hkbc-ink-inverse);
	color: var(--hkbc-ink);
	filter: none;
	opacity: 1;
	backdrop-filter: none;
}

.hkbc-button--dark,
.wp-block-button.hkbc-button--dark .wp-block-button__link {
	background: var(--hkbc-navy);
	color: var(--hkbc-ink-inverse);
}


.hkbc-home-intro {
	width: min(calc(100% - var(--hkbc-gutter) - var(--hkbc-gutter)), 58rem);
	margin-inline: auto;
	padding-block: clamp(var(--hkbc-space-12), 7vw, var(--hkbc-space-24));
	text-align: center;
}

.hkbc-home-intro .hkbc-eyebrow {
	justify-content: center;
}

.hkbc-home-intro h2 {
	margin: 0 0 var(--hkbc-space-4);
	color: var(--hkbc-navy);
	font-size: clamp(2.25rem, 5vw, 4.25rem);
}

.hkbc-home-intro p:last-child {
	margin: 0;
	color: var(--hkbc-ink-muted);
	font-size: clamp(var(--hkbc-font-lg), 1rem + .35vw, var(--hkbc-font-xl));
}

.hkbc-trust-strip {
	position: relative;
	z-index: 3;
	margin-top: calc(-1 * var(--hkbc-space-6));
}

.hkbc-trust-strip__inner {
	width: min(calc(100% - var(--hkbc-gutter) - var(--hkbc-gutter)), var(--hkbc-content));
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	overflow: hidden;
	border: 1px solid var(--hkbc-border);
	border-radius: var(--hkbc-radius-lg);
	background: var(--hkbc-surface);
	box-shadow: var(--hkbc-shadow-sm);
}

.hkbc-trust-item {
	padding: var(--hkbc-space-6);
	display: flex;
	gap: var(--hkbc-space-3);
	align-items: flex-start;
}

.hkbc-trust-item + .hkbc-trust-item {
	border-left: 1px solid var(--hkbc-border);
}

.hkbc-trust-item__icon {
	width: 2.25rem;
	height: 2.25rem;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	border-radius: var(--hkbc-radius-lg);
	background: rgba(215, 182, 226, .28);
	color: var(--hkbc-navy);
	font-weight: 700;
}

.hkbc-trust-item strong {
	display: block;
	margin-bottom: .1rem;
	color: var(--hkbc-ink);
}

.hkbc-trust-item span {
	display: block;
	color: var(--hkbc-ink-muted);
	font-size: var(--hkbc-font-sm);
	line-height: 1.45;
}

.hkbc-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--hkbc-space-6);
}

.hkbc-card {
	position: relative;
	min-height: 100%;
	padding: clamp(var(--hkbc-space-6), 1rem + 1vw, var(--hkbc-space-8));
	overflow: hidden;
	border: 1px solid var(--hkbc-border);
	border-radius: var(--hkbc-radius-lg);
	background: var(--hkbc-surface);
	box-shadow: 0 .3125rem 1.25rem rgba(17, 24, 39, .05);
	transition: transform var(--hkbc-motion-normal) var(--hkbc-easing), box-shadow var(--hkbc-motion-normal) var(--hkbc-easing), border-color var(--hkbc-motion-normal) var(--hkbc-easing);
}

.hkbc-card:hover {
	border-color: rgba(142, 36, 170, .5);
	box-shadow: var(--hkbc-shadow-sm);
	transform: translateY(-4px);
}

.hkbc-card::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: .28rem;
	background: var(--hkbc-blue);
	content: "";
}

.hkbc-card:nth-child(2)::before { background: var(--hkbc-burgundy); }
.hkbc-card:nth-child(3)::before { background: var(--hkbc-rose-dark); }

.hkbc-card__label {
	display: inline-flex;
	margin-bottom: var(--hkbc-space-4);
	padding: var(--hkbc-space-1) var(--hkbc-space-2);
	border-radius: var(--hkbc-radius-pill);
	background: var(--hkbc-surface-sky);
	color: var(--hkbc-ink-muted);
	font-size: var(--hkbc-font-xs);
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.hkbc-card h3 {
	margin: 0 0 var(--hkbc-space-3);
}

.hkbc-card p {
	margin: 0 0 var(--hkbc-space-4);
	color: var(--hkbc-ink-muted);
}

.hkbc-card a {
	font-weight: 700;
}

.hkbc-pathway {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--hkbc-space-4);
	counter-reset: pathway;
}

.hkbc-pathway::before {
	position: absolute;
	top: 2.25rem;
	left: 16%;
	right: 16%;
	height: 2px;
	background: linear-gradient(90deg, var(--hkbc-blue), var(--hkbc-rose), var(--hkbc-burgundy));
	content: "";
}

.hkbc-pathway__step {
	position: relative;
	z-index: 1;
	padding: 0 var(--hkbc-space-4);
	text-align: center;
	counter-increment: pathway;
}

.hkbc-pathway__step::before {
	width: 4.5rem;
	height: 4.5rem;
	margin: 0 auto 1.1rem;
	display: grid;
	place-items: center;
	border: .45rem solid var(--hkbc-surface);
	border-radius: 50%;
	background: var(--hkbc-navy);
	box-shadow: 0 0 0 1px var(--hkbc-border), var(--hkbc-shadow-sm);
	color: var(--hkbc-ink-inverse);
	content: counter(pathway, decimal-leading-zero);
	font-weight: 700;
}

.hkbc-pathway__step:nth-child(2)::before { background: var(--hkbc-blue); }
.hkbc-pathway__step:nth-child(3)::before { background: var(--hkbc-burgundy); }

.hkbc-pathway__step h3 {
	margin: 0 0 var(--hkbc-space-2);
}

.hkbc-pathway__step p {
	margin: 0;
	color: var(--hkbc-ink-muted);
}

.hkbc-feature-split {
	display: grid;
	grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
	gap: clamp(var(--hkbc-space-8), 6vw, var(--hkbc-space-24));
	align-items: center;
}

.hkbc-feature-art {
	position: relative;
	min-height: 29rem;
	overflow: hidden;
	border-radius: var(--hkbc-radius-lg);
	background:
		linear-gradient(135deg, rgba(98, 6, 115, .96), rgba(142, 36, 170, .88)),
		var(--hkbc-blue);
	box-shadow: var(--hkbc-shadow-lg);
}

.hkbc-feature-art::before {
	position: absolute;
	inset: 12% 10%;
	border: 1px solid rgba(255,255,255,.36);
	border-radius: var(--hkbc-radius-lg);
	background:
		linear-gradient(90deg, transparent 49.7%, rgba(255,255,255,.18) 50%, transparent 50.3%),
		linear-gradient(0deg, transparent 49.7%, rgba(255,255,255,.18) 50%, transparent 50.3%);
	content: "";
}

.hkbc-feature-art__word {
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	color: rgba(255,255,255,.95);
	font-size: clamp(3rem, 9vw, 7rem);
	font-weight: 700;
	letter-spacing: -.06em;
}

.hkbc-checklist {
	margin: var(--hkbc-space-6) 0 0;
	padding: 0;
	list-style: none;
}

.hkbc-checklist li {
	position: relative;
	margin: var(--hkbc-space-3) 0;
	padding-left: var(--hkbc-space-8);
}

.hkbc-checklist li::before {
	position: absolute;
	top: .25rem;
	left: 0;
	width: 1.25rem;
	height: 1.25rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--hkbc-surface-sky);
	color: var(--hkbc-blue);
	content: "✓";
	font-size: var(--hkbc-font-xs);
	font-weight: 700;
}

.hkbc-cta {
	position: relative;
	overflow: hidden;
	border-radius: var(--hkbc-radius-lg);
	background: var(--hkbc-navy);
	color: rgba(255,255,255,.86);
}

.hkbc-cta::after {
	position: absolute;
	top: -7rem;
	right: -6rem;
	width: 20rem;
	height: 20rem;
	border: var(--hkbc-space-8) solid rgba(215, 182, 226, .2);
	border-radius: 50%;
	content: "";
}

.hkbc-cta__inner {
	position: relative;
	z-index: 1;
	padding: clamp(var(--hkbc-space-8), 3vw, var(--hkbc-space-16));
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--hkbc-space-8);
	align-items: center;
}

.hkbc-cta h2 {
	margin: 0 0 var(--hkbc-space-2);
	color: var(--hkbc-ink-inverse);
}

.hkbc-cta p {
	max-width: 45rem;
	margin: 0;
}

.hkbc-prototype-card {
	border: 1px dashed rgba(142, 36, 170, .72);
	background: var(--hkbc-surface-rose);
}

.hkbc-prototype-card::after {
	position: absolute;
	top: .7rem;
	right: .7rem;
	padding: var(--hkbc-space-1) var(--hkbc-space-2);
	border-radius: var(--hkbc-radius-sm);
	background: var(--hkbc-burgundy);
	color: var(--hkbc-ink-inverse);
	content: "PROGRAMME";
	font-size: var(--hkbc-font-xs);
	font-weight: 700;
	letter-spacing: .07em;
}

.hkbc-lang-zh-hant .hkbc-prototype-card::after {
	content: "課程";
}

.hkbc-language-switcher {
	display: inline-flex;
	gap: var(--hkbc-space-1);
	padding: var(--hkbc-space-1);
	border: 1px solid var(--hkbc-border);
	border-radius: var(--hkbc-radius-pill);
	background: var(--hkbc-surface);
}

.hkbc-language-switcher a,
.hkbc-language-switcher span {
	min-width: 3.3rem;
	min-height: 2.75rem;
	padding: var(--hkbc-space-2) var(--hkbc-space-3);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--hkbc-radius-pill);
	font-size: var(--hkbc-font-sm);
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.hkbc-language-switcher [aria-current="page"] {
	background: var(--hkbc-navy);
	color: var(--hkbc-ink-inverse);
}

.hkbc-disclaimer {
	padding: var(--hkbc-space-4);
	border-left: .3rem solid var(--hkbc-burgundy);
	background: var(--hkbc-surface-rose);
	color: var(--hkbc-ink);
	font-size: var(--hkbc-font-sm);
}

.hkbc-meta {
	color: var(--hkbc-ink-muted);
	font-size: var(--hkbc-font-sm);
}

/* Blocksy integration */
#header [data-row] {
	box-shadow: 0 1px 0 rgba(17, 24, 39, .09);
	transition: background-color var(--hkbc-motion-normal) var(--hkbc-easing), box-shadow var(--hkbc-motion-normal) var(--hkbc-easing);
}

#header .site-title {
	min-width: 13.5rem;
	font-weight: 700;
	letter-spacing: -.025em;
}

#header .site-title a {
	width: 13.5rem;
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	align-items: center;
	gap: .65rem;
	font-size: 0;
	line-height: 1;
	text-decoration: none;
}

#header .site-title a::before {
	width: auto !important;
	justify-self: start;
	padding: .45rem .55rem;
	border: 2px solid currentColor;
	border-radius: .25rem;
	content: "HKBC";
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: -.045em;
}

#header .site-title a::after {
	width: auto !important;
	max-width: 8.75rem;
	content: "Hong Kong Bluebell College";
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.12;
}

#header [data-id="menu"] > ul > li > a {
	position: relative;
	font-weight: 700;
}

#header [data-id="menu"] > ul > li:not(.hkbc-menu-cta):not(.hkbc-menu-language) > a::after {
	position: absolute;
	right: 1rem;
	bottom: .8rem;
	left: 1rem;
	height: 2px;
	background: var(--hkbc-crimson);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--hkbc-motion-normal) var(--hkbc-easing);
}

#header [data-id="menu"] > ul > li:is(:hover, :focus-within, .current-menu-item, .current-menu-ancestor):not(.hkbc-menu-cta):not(.hkbc-menu-language) > a::after {
	transform: scaleX(1);
}

#header [data-id="menu"] > ul > .hkbc-menu-language > a {
	min-width: auto;
	padding-inline: .35rem !important;
	font-size: .84rem;
	letter-spacing: .08em;
}

#header [data-id="menu"] > ul > .hkbc-menu-language--first {
	margin-left: .35rem;
}

#header [data-id="menu"] > ul > .hkbc-menu-language + .hkbc-menu-language > a {
	margin-left: .2rem;
	padding-left: .75rem !important;
	border-left: 1px solid currentColor;
}

#header [data-id="menu"] > ul > .hkbc-menu-language--current > a {
	font-weight: 800;
}

#header .ct-header-search {
	display: none !important;
}

#header .hkbc-menu-cta > a {
	height: 2.75rem !important;
	min-height: 2.75rem;
	margin-inline: .35rem;
	padding-inline: 1.25rem !important;
	border-radius: var(--hkbc-radius-pill);
	background: var(--hkbc-crimson);
	color: var(--hkbc-ink-inverse) !important;
}

#header .hkbc-menu-cta {
	height: auto;
	align-self: center;
}

#header .sub-menu {
	min-width: 15rem;
	padding-block: .45rem;
	border: 0 !important;
	background: var(--hkbc-surface) !important;
	box-shadow: 0 1.25rem 2.5rem rgba(17, 24, 39, .14) !important;
}

#header .sub-menu .ct-menu-link {
	min-height: 4rem;
	padding: .7rem 1.25rem !important;
	align-items: flex-start;
	flex-direction: column;
	justify-content: center;
	color: var(--hkbc-ink) !important;
	font-size: .94rem;
	font-weight: 600;
}

#header .sub-menu .ct-menu-link::after {
	display: block;
	width: 2rem;
	height: 2px;
	margin-top: .45rem;
	background: var(--hkbc-crimson);
	content: "";
	transition: width var(--hkbc-motion-normal) var(--hkbc-easing);
}

#header .sub-menu .ct-menu-link:hover::after,
#header .sub-menu .ct-menu-link:focus-visible::after {
	width: 3.5rem;
}

.hkbc-front-page #header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1000;
}

.admin-bar.hkbc-front-page #header {
	top: var(--hkbc-admin-bar-offset, 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar.hkbc-front-page #header {
		top: var(--hkbc-admin-bar-offset, 46px);
	}
}

.hkbc-front-page #header [data-device="desktop"] [data-row="middle"] {
	background: transparent !important;
	box-shadow: none;
}

.hkbc-front-page #header:is(:hover, :focus-within, .hkbc-header--solid) [data-device="desktop"] [data-row="middle"] {
	background: rgba(255, 255, 255, .98) !important;
	box-shadow: 0 .8rem 2rem rgba(17, 24, 39, .12);
}

.hkbc-front-page #header:not(:hover):not(:focus-within):not(.hkbc-header--solid) :where(.site-title a, [data-id="menu"] > ul > li:not(.hkbc-menu-cta) > a, .ct-header-search, .ct-header-trigger) {
	color: var(--hkbc-ink-inverse) !important;
}

.hkbc-front-page #header:not(:hover):not(:focus-within):not(.hkbc-header--solid) .ct-icon {
	fill: currentColor;
}

#offcanvas .ct-panel-content-inner {
	background: var(--hkbc-surface);
}

#offcanvas .ct-panel-inner {
	width: 100%;
	max-width: none;
}

#offcanvas :where(.ct-toggle-close, .ct-toggle-dropdown-mobile),
#header .ct-header-trigger {
	min-width: 2.75rem;
	min-height: 2.75rem;
}

#offcanvas .mobile-menu .ct-menu-link {
	padding-block: .8rem;
	color: var(--hkbc-ink) !important;
	font-size: 1.1rem;
	font-weight: 600;
}

#offcanvas .mobile-menu .hkbc-menu-cta > a {
	width: max-content;
	margin-left: calc(-1 * var(--hkbc-gutter));
	padding: .85rem 2.25rem .85rem var(--hkbc-gutter);
	border-radius: 0 var(--hkbc-radius-pill) var(--hkbc-radius-pill) 0;
	background: var(--hkbc-crimson);
	color: var(--hkbc-ink-inverse) !important;
}

#offcanvas .mobile-menu .sub-menu {
	margin-block: .35rem .75rem;
	padding: .35rem .75rem;
	border-radius: var(--hkbc-radius-md);
	background: var(--hkbc-crimson);
}

#offcanvas .mobile-menu .sub-menu .ct-menu-link {
	color: var(--hkbc-ink-inverse) !important;
}

body .hkbc-private-stage-banner {
	inset: auto auto .65rem .65rem !important;
	width: max-content;
	max-width: calc(100% - 1.3rem);
	padding: .3rem .58rem !important;
	transform: none;
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: var(--hkbc-radius-pill);
	background: rgba(98, 6, 115, .82) !important;
	box-shadow: var(--hkbc-shadow-sm) !important;
	backdrop-filter: blur(12px);
	font-size: .55rem !important;
	letter-spacing: .08em !important;
	opacity: .82;
}

/* Bloom-inspired homepage sequence, expressed with HKBC content and components. */
.entry-content > .hkbc-bloom-home {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
}

.hkbc-bloom-home {
	overflow: clip;
	background: var(--hkbc-surface);
	color: var(--hkbc-ink-muted);
}

.hkbc-bloom-section {
	position: relative;
	padding: clamp(6.5rem, 10vw, 9.5rem) var(--hkbc-gutter);
}

.hkbc-bloom-section > * {
	position: relative;
	z-index: 1;
}

.hkbc-home-copy {
	max-width: 48rem;
	margin: 0 auto clamp(3.25rem, 6vw, 5rem);
	text-align: center;
}

.hkbc-home-copy .hkbc-eyebrow {
	margin-bottom: 1rem;
	color: var(--hkbc-burgundy);
}

.hkbc-home-copy h2,
.hkbc-home-connect h2 {
	margin: 0;
	color: var(--hkbc-navy);
	font-size: clamp(2.75rem, 5vw, 4.6rem);
	letter-spacing: -.055em;
	line-height: .98;
}

.hkbc-home-copy > p:not(.hkbc-eyebrow) {
	max-width: 42rem;
	margin: 1.4rem auto 0;
	font-size: clamp(1rem, 1.45vw, 1.2rem);
	line-height: 1.75;
}

.hkbc-home-pattern::before {
	position: absolute;
	inset: 0;
	background:
		repeating-radial-gradient(ellipse at 4% 42%, transparent 0 2rem, rgba(142, 36, 170, .055) 2.06rem 2.14rem),
		repeating-radial-gradient(ellipse at 98% 16%, transparent 0 2.3rem, rgba(142, 36, 170, .035) 2.36rem 2.43rem);
	content: "";
	-webkit-mask-image: linear-gradient(90deg, #000, transparent 47%, #000);
	mask-image: linear-gradient(90deg, #000, transparent 47%, #000);
	pointer-events: none;
}

.hkbc-home-welcome {
	padding-top: clamp(7rem, 11vw, 10rem);
	background: linear-gradient(180deg, #fff 0%, #fcfafd 100%);
}

.hkbc-home-welcome .hkbc-home-copy {
	margin-bottom: 0;
}

.hkbc-home-values {
	background: #fff;
}

.hkbc-home-values .hkbc-home-copy h2 {
	color: var(--hkbc-crimson);
	font-size: clamp(2.5rem, 4.4vw, 4rem);
	letter-spacing: -.04em;
	line-height: 1.06;
}

.hkbc-home-values .hkbc-home-copy {
	max-width: 42rem;
}

.hkbc-home-values .hkbc-home-copy > p:not(.hkbc-eyebrow) {
	max-width: 34rem;
	line-height: 1.65;
}

.hkbc-value-grid {
	max-width: 76rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
}

.hkbc-value-card {
	--hkbc-value-accent: var(--hkbc-crimson);
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(17, 24, 39, .055);
	border-radius: 1.25rem;
	background: #fff;
	box-shadow: 0 .9rem 2.5rem rgba(17, 24, 39, .085);
	transition: transform var(--hkbc-motion-normal) var(--hkbc-easing), box-shadow var(--hkbc-motion-normal) var(--hkbc-easing);
}

.hkbc-value-card:nth-child(2) { --hkbc-value-accent: var(--hkbc-blue); }
.hkbc-value-card:nth-child(3) { --hkbc-value-accent: var(--hkbc-rose); }
.hkbc-value-card:nth-child(4) { --hkbc-value-accent: var(--hkbc-navy); }

/* Keep the decorative rose while giving small labels sufficient contrast. */
.hkbc-value-card:nth-child(3) :is(.hkbc-value-card__number, .hkbc-value-card__action) {
	color: var(--hkbc-rose-dark);
}

.hkbc-value-card:hover,
.hkbc-value-card:focus-within {
	transform: translateY(-.45rem);
	box-shadow: 0 1.4rem 3.4rem rgba(17, 24, 39, .13);
}

.hkbc-value-card summary {
	position: relative;
	min-height: 25rem;
	padding: 1.75rem;
	display: flex;
	list-style: none;
	cursor: pointer;
	flex-direction: column;
}

.hkbc-value-card summary::-webkit-details-marker {
	display: none;
}

.hkbc-value-card summary:focus-visible {
	outline: 3px solid var(--hkbc-focus);
	outline-offset: -5px;
}

.hkbc-value-card__number {
	position: relative;
	z-index: 1;
	color: var(--hkbc-value-accent);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.hkbc-value-card__mark {
	position: absolute;
	top: 2.25rem;
	right: -2.5rem;
	width: 11rem;
	height: 11rem;
	transform: rotate(18deg);
	border: 1.25rem solid color-mix(in srgb, var(--hkbc-value-accent) 20%, transparent);
	border-radius: 40% 60% 62% 38% / 50% 35% 65% 50%;
}

.hkbc-value-card__title {
	margin: auto 0 .7rem;
	display: block;
	color: var(--hkbc-ink);
	font-size: clamp(1.65rem, 2.3vw, 2.15rem);
	font-weight: 700;
	letter-spacing: -.04em;
}

.hkbc-value-card__summary {
	margin: 0;
	display: block;
	color: var(--hkbc-ink-muted);
	line-height: 1.55;
}

.hkbc-value-card__action {
	margin-top: 1.5rem;
	color: var(--hkbc-value-accent);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.hkbc-value-card__action::after {
	margin-left: .5rem;
	content: "+";
}

.hkbc-value-card[open] .hkbc-value-card__action::after {
	content: "−";
}

.hkbc-value-card__more {
	padding: 0 1.75rem 1.75rem;
	border-top: 1px solid color-mix(in srgb, var(--hkbc-value-accent) 22%, transparent);
}

.hkbc-value-card__more p {
	margin: 1.25rem 0 0;
	line-height: 1.65;
}

.hkbc-home-programmes {
	background: linear-gradient(180deg, #f8f5fa, #fff);
}

.hkbc-programme-explorer {
	max-width: 72rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
	grid-template-areas: "panels tabs";
	gap: clamp(3rem, 7vw, 7rem);
	align-items: center;
}

.hkbc-programme-panels {
	grid-area: panels;
	min-width: 0;
}

.hkbc-programme-panel {
	position: relative;
	min-height: 32rem;
	padding: clamp(2.5rem, 5vw, 4rem);
	overflow: hidden;
	/* Keep the content inside the curved edge, including its keyboard link. */
	border-radius: 2rem 5rem 7rem 2rem;
	background: var(--hkbc-navy);
	color: rgba(255, 255, 255, .82);
	overflow-wrap: anywhere;
	box-shadow: 0 1.6rem 4rem rgba(98, 6, 115, .2);
}

.hkbc-programme-panel::before,
.hkbc-programme-panel::after {
	position: absolute;
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.hkbc-programme-panel::before {
	top: -5rem;
	right: -3rem;
	width: 15rem;
	height: 15rem;
	border: 2.3rem solid rgba(215, 182, 226, .22);
}

.hkbc-programme-panel::after {
	right: 4rem;
	bottom: -4rem;
	width: 9rem;
	height: 9rem;
	background: rgba(142, 36, 170, .5);
}

.hkbc-programme-panel > * {
	position: relative;
	z-index: 1;
}

.hkbc-programme-panel__number {
	display: block;
	color: var(--hkbc-sky);
	font-size: 4rem;
	font-weight: 800;
	letter-spacing: -.06em;
	line-height: 1;
}

.hkbc-programme-panel__stage {
	margin: 5.5rem 0 .6rem;
	color: var(--hkbc-sky);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.hkbc-programme-panel h3 {
	margin: 0 0 1rem;
	color: #fff;
	font-size: clamp(2rem, 3.2vw, 2.8rem);
	letter-spacing: -.05em;
	line-height: 1;
	overflow-wrap: anywhere;
	word-break: normal;
}

.hkbc-programme-panel p:not(.hkbc-programme-panel__stage) {
	max-width: 29rem;
	font-size: 1.04rem;
	line-height: 1.68;
}

.hkbc-programme-panel .hkbc-text-link {
	color: #fff;
}

.hkbc-programme-tabs {
	grid-area: tabs;
	min-width: 0;
	display: grid;
}

.hkbc-programme-tab > span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.hkbc-programme-panel:focus-visible {
	outline: 3px solid var(--hkbc-focus);
	outline-offset: 5px;
}

.hkbc-programme-tab {
	width: 100%;
	padding: 1.6rem .25rem;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	border: 0;
	border-bottom: 1px solid rgba(17, 24, 39, .16);
	background: transparent;
	color: rgba(17, 24, 39, .68);
	font: inherit;
	font-size: clamp(1.8rem, 3.6vw, 3.3rem);
	font-weight: 700;
	letter-spacing: -.045em;
	line-height: 1.05;
	text-align: left;
	cursor: pointer;
	transition: color var(--hkbc-motion-fast) var(--hkbc-easing), border-color var(--hkbc-motion-fast) var(--hkbc-easing);
}

.hkbc-programme-tab small {
	padding-top: .2rem;
	font-size: .9rem;
	font-weight: 800;
	letter-spacing: .08em;
}

.hkbc-programme-tab:is(:hover, :focus-visible, .is-active) {
	border-bottom-color: var(--hkbc-burgundy);
	color: var(--hkbc-ink);
}

.hkbc-programme-tab:focus-visible {
	outline: 3px solid var(--hkbc-focus);
	outline-offset: 4px;
}

.hkbc-text-link {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	color: var(--hkbc-burgundy);
	font-weight: 800;
	text-decoration: none;
}

.hkbc-text-link span {
	width: 2.25rem;
	height: 2.25rem;
	display: inline-grid;
	place-items: center;
	border: 1px solid currentColor;
	border-radius: 50%;
	transition: transform var(--hkbc-motion-fast) var(--hkbc-easing), background var(--hkbc-motion-fast) var(--hkbc-easing);
}

.hkbc-text-link:is(:hover, :focus-visible) span {
	transform: translateX(.25rem);
	background: color-mix(in srgb, currentColor 10%, transparent);
}

.hkbc-home-team {
	background: #fff;
}

.hkbc-team-feature {
	max-width: 72rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
	gap: clamp(3rem, 7vw, 7rem);
	align-items: center;
}

.hkbc-team-feature blockquote {
	position: relative;
	margin: 0;
	padding: 3.25rem;
	border-radius: 1.5rem;
	background: #f8f6ef;
	color: var(--hkbc-ink);
}

.hkbc-team-feature blockquote::before {
	position: absolute;
	top: -2rem;
	left: 1.25rem;
	color: rgba(142, 36, 170, .18);
	content: "“";
	font-family: Georgia, serif;
	font-size: 10rem;
	line-height: 1;
}

.hkbc-team-feature blockquote p {
	position: relative;
	margin: 0;
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	font-weight: 650;
	letter-spacing: -.025em;
	line-height: 1.45;
}

.hkbc-team-feature cite {
	margin-top: 1.5rem;
	display: block;
	color: var(--hkbc-burgundy);
	font-size: .84rem;
	font-style: normal;
	letter-spacing: .03em;
	line-height: 1.5;
}

.hkbc-team-feature cite strong,
.hkbc-team-feature cite span {
	display: block;
}

.hkbc-team-feature cite strong {
	font-weight: 800;
}

.hkbc-team-feature cite span {
	margin-top: .2rem;
	color: var(--hkbc-ink-muted);
}

.hkbc-team-visuals {
	display: grid;
	grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
	gap: clamp(1rem, 2.3vw, 2rem);
	align-items: end;
}

.hkbc-team-visuals figure {
	margin: 0;
}

.hkbc-team-visuals picture {
	display: block;
	overflow: hidden;
	box-shadow: 0 1.2rem 3.2rem rgba(17, 24, 39, .14);
}

.hkbc-team-visuals img {
	width: 100%;
	height: 100%;
	display: block;
}

.hkbc-supervisor-feature picture {
	aspect-ratio: 3 / 4;
	border-radius: 48% 52% 46% 54% / 55% 43% 57% 45%;
	background:
		radial-gradient(circle at 50% 22%, rgba(255, 255, 255, .8), transparent 44%),
		var(--hkbc-surface-sky);
}

.hkbc-supervisor-feature img {
	object-fit: contain;
	object-position: center bottom;
}

.hkbc-leadership-event {
	transform: translateY(2.5rem);
}

.hkbc-leadership-event picture {
	aspect-ratio: 4 / 3;
	border-radius: 54% 46% 49% 51% / 45% 58% 42% 55%;
}

.hkbc-leadership-event img {
	object-fit: cover;
	object-position: center;
}

.hkbc-team-visuals figcaption {
	margin-top: 1rem;
	color: var(--hkbc-ink-muted);
	font-size: .78rem;
	line-height: 1.55;
}

.hkbc-home-life {
	background:
		radial-gradient(circle at 9% 20%, rgba(215, 182, 226, .26) 0 6rem, transparent 6.1rem),
		radial-gradient(circle at 92% 78%, rgba(142, 36, 170, .13) 0 9rem, transparent 9.1rem),
		#fcfafd;
}

.hkbc-carousel {
	max-width: 76rem;
	margin: 0 auto;
}

.hkbc-carousel__track {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.hkbc-carousel__track::-webkit-scrollbar {
	display: none;
}

.hkbc-carousel__track:focus-visible {
	outline: 3px solid var(--hkbc-focus);
	outline-offset: 5px;
}

.hkbc-carousel__slide {
	flex: 0 0 min(85%, 62rem);
	margin: 0;
	overflow: hidden;
	border-radius: 1.5rem;
	background: var(--hkbc-navy);
	box-shadow: 0 1.2rem 3rem rgba(17, 24, 39, .13);
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.hkbc-carousel__slide picture {
	display: block;
}

.hkbc-carousel__slide img {
	width: 100%;
	aspect-ratio: 16 / 9;
	display: block;
	object-fit: cover;
}

.hkbc-carousel__slide figcaption {
	min-height: 5rem;
	padding: 1.15rem 1.35rem;
	display: flex;
	gap: 1rem;
	align-items: center;
	color: var(--hkbc-ink-inverse);
}

.hkbc-carousel__slide figcaption span {
	color: var(--hkbc-sky);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.hkbc-carousel__slide figcaption strong {
	font-size: clamp(1.15rem, 2vw, 1.55rem);
	letter-spacing: -.02em;
	line-height: 1.25;
}

.hkbc-carousel__controls {
	margin-top: 1.5rem;
	display: none;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
}

.hkbc-carousel.is-enhanced .hkbc-carousel__controls {
	display: flex;
}

.hkbc-carousel__arrows,
.hkbc-carousel__dots {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.hkbc-carousel__dots {
	max-width: 100%;
	flex-wrap: wrap;
}

.hkbc-carousel__arrow {
	width: 3rem;
	height: 3rem;
	padding: 0;
	display: inline-grid;
	place-items: center;
	border: 1px solid var(--hkbc-navy);
	border-radius: 50%;
	background: transparent;
	color: var(--hkbc-navy);
	font-size: 1.25rem;
	cursor: pointer;
	transition: background-color var(--hkbc-motion-fast) var(--hkbc-easing), color var(--hkbc-motion-fast) var(--hkbc-easing), opacity var(--hkbc-motion-fast) var(--hkbc-easing);
}

.hkbc-carousel__arrow:is(:hover, :focus-visible):not(:disabled) {
	background: var(--hkbc-navy);
	color: var(--hkbc-ink-inverse);
}

.hkbc-carousel__arrow:disabled {
	cursor: not-allowed;
	opacity: .35;
}

.hkbc-carousel__dots button {
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	display: grid;
	place-items: center;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.hkbc-carousel__dots button::before {
	width: .55rem;
	height: .55rem;
	border-radius: var(--hkbc-radius-pill);
	background: rgba(98, 6, 115, .35);
	content: "";
	transition: width var(--hkbc-motion-fast) var(--hkbc-easing), background-color var(--hkbc-motion-fast) var(--hkbc-easing);
}

.hkbc-carousel__dots button[aria-current="true"]::before {
	width: 1.8rem;
	background: var(--hkbc-burgundy);
}

.hkbc-home-connect {
	padding: clamp(5rem, 8vw, 8rem) max(var(--hkbc-gutter), calc((100vw - 72rem) / 2));
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 3rem;
	align-items: center;
	background: var(--hkbc-navy);
	color: rgba(255, 255, 255, .8);
}

.hkbc-home-connect .hkbc-eyebrow {
	color: var(--hkbc-sky);
}

.hkbc-home-connect h2 {
	max-width: 44rem;
	color: #fff;
}

.hkbc-home-connect p:not(.hkbc-eyebrow) {
	max-width: 42rem;
	margin: 1.25rem 0 0;
	font-size: 1.1rem;
	line-height: 1.7;
}

.hkbc-home-connect__actions {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: .85rem;
}

.hkbc-home-connect .hkbc-button {
	min-width: 15rem;
	justify-content: center;
}

.hkbc-home-connect .hkbc-button--outline {
	border-color: rgba(255, 255, 255, .7);
	background: transparent;
	color: #fff;
}

.hkbc-home-connect .hkbc-button--outline:is(:hover, :focus-visible) {
	border-color: #fff;
	background: #fff;
	color: var(--hkbc-ink);
}

.hkbc-home-footer {
	padding: clamp(4rem, 7vw, 6rem) max(var(--hkbc-gutter), calc((100vw - 72rem) / 2)) 2rem;
	background: #fff;
}

.hkbc-home-footer__grid {
	display: grid;
	grid-template-columns: 1.45fr 1fr 1fr;
	gap: clamp(2.5rem, 6vw, 6rem);
}

.hkbc-home-footer strong {
	margin-bottom: 1rem;
	display: block;
	color: var(--hkbc-burgundy);
	font-size: 1rem;
}

.hkbc-home-footer p {
	max-width: 26rem;
	margin: 0;
	line-height: 1.65;
}

.hkbc-home-footer nav {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: .65rem;
}

.hkbc-home-footer nav a {
	color: var(--hkbc-ink-muted);
	text-decoration: none;
}

.hkbc-home-footer nav a:is(:hover, :focus-visible) {
	color: var(--hkbc-burgundy);
	text-decoration: underline;
	text-underline-offset: .2em;
}

.hkbc-home-footer__base {
	margin-top: 3.5rem;
	padding-top: 1.5rem;
	display: flex;
	justify-content: space-between;
	gap: 2rem;
	border-top: 1px solid rgba(142, 36, 170, .35);
	color: var(--hkbc-ink-muted);
	font-size: .86rem;
}

.hkbc-home-footer__base a {
	color: var(--hkbc-burgundy);
	font-weight: 800;
	text-decoration: none;
}

.hkbc-front-page #footer {
	display: none;
}

@media (max-width: 64rem) {
	.hkbc-programme-explorer {
		grid-template-areas: "tabs" "panels";
	}

	.hkbc-value-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hkbc-programme-explorer,
	.hkbc-team-feature {
		grid-template-columns: 1fr;
	}

	.hkbc-programme-panels,
	.hkbc-team-feature blockquote,
	.hkbc-team-visuals {
		width: min(100%, 38rem);
		margin-inline: auto;
	}

	.hkbc-home-connect {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.hkbc-home-connect h2,
	.hkbc-home-connect p:not(.hkbc-eyebrow) {
		margin-inline: auto;
	}

	.hkbc-home-connect__actions {
		flex-direction: row;
		justify-content: center;
	}
}

@media (max-width: 48rem) {
	.hkbc-bloom-section {
		padding: 5.25rem 1.25rem;
	}

	.hkbc-home-copy {
		margin-bottom: 2.8rem;
	}

	.hkbc-home-copy h2,
	.hkbc-home-connect h2 {
		font-size: clamp(2.25rem, 11vw, 3.3rem);
		line-height: 1.02;
	}

	.hkbc-home-copy > p:not(.hkbc-eyebrow) {
		font-size: 1rem;
	}

	.hkbc-home-values .hkbc-home-copy h2 {
		font-size: clamp(2.15rem, 9.5vw, 3rem);
		line-height: 1.08;
	}

	.hkbc-value-grid {
		width: calc(100% + 1.25rem);
		margin-right: -1.25rem;
		padding-right: 1.25rem;
		display: grid;
		grid-auto-columns: minmax(82%, 1fr);
		grid-auto-flow: column;
		grid-template-columns: none;
		overflow-x: auto;
		scroll-padding-inline: 0;
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
	}

	.hkbc-value-card {
		scroll-snap-align: start;
	}

	.hkbc-value-card summary {
		min-height: 22rem;
	}

	.hkbc-programme-panel {
		min-height: 27rem;
		padding: clamp(1.25rem, 6vw, 2.4rem);
		border-radius: 2rem 2rem 7rem 2rem;
	}

	.hkbc-programme-panel h3 {
		font-size: clamp(1.65rem, 7.5vw, 2rem);
		line-height: 1.12;
	}

	.hkbc-programme-panel__stage {
		margin-top: 3.5rem;
	}

	.hkbc-programme-tab {
		padding-block: 1.25rem;
		font-size: clamp(1.35rem, 6.5vw, 2rem);
	}

	.hkbc-team-feature blockquote {
		padding: 2.3rem;
	}

	.hkbc-team-visuals {
		width: min(100%, 32rem);
		grid-template-columns: 1fr;
	}

	.hkbc-leadership-event {
		transform: none;
	}

	.hkbc-carousel__track {
		width: calc(100% + 1.25rem);
		padding-right: 1.25rem;
	}

	.hkbc-carousel__slide {
		flex-basis: 88%;
		border-radius: 1.1rem;
	}

	.hkbc-carousel__slide figcaption {
		min-height: 4.75rem;
		padding: 1rem 1.1rem;
	}

	.hkbc-home-connect {
		padding: 5rem 1.25rem;
	}

	.hkbc-home-connect__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.hkbc-home-connect .hkbc-button {
		width: 100%;
		min-width: 0;
	}

	.hkbc-home-footer {
		padding: 4rem 1.25rem 1.5rem;
	}

	.hkbc-home-footer__grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.hkbc-home-footer__base {
		align-items: flex-start;
		flex-direction: column;
		gap: .75rem;
	}
}

@media (min-width: 72.501rem) {
	.hkbc-hero h1 {
		max-width: none;
		font-size: clamp(3.5rem, 5.1vw, 5rem);
		white-space: nowrap;
	}
}

.hkbc-reading > :where(section, div[id]) {
	scroll-margin-top: 7rem;
}

.hkbc-reading > section {
	margin-top: var(--hkbc-space-12);
	padding-top: var(--hkbc-space-8);
	border-top: 1px solid var(--hkbc-border);
}

#footer {
	border-top: .25rem solid var(--hkbc-burgundy);
}

.entry-content > :where(.hkbc-hero, .hkbc-section, .hkbc-private-note) {
	max-width: none;
}

@media (max-width: 72.5rem) {
	#header [data-device="desktop"] {
		display: none !important;
	}

	#header [data-device="mobile"] {
		display: block !important;
	}

	.hkbc-front-page #header [data-device="mobile"] [data-row="middle"] {
		background: transparent !important;
		box-shadow: none;
	}

	.hkbc-front-page #header.hkbc-header--solid [data-device="mobile"] [data-row="middle"] {
		background: rgba(255, 255, 255, .98) !important;
		box-shadow: 0 .8rem 2rem rgba(17, 24, 39, .12);
	}
}

@media (max-width: 64rem) {
	.hkbc-hero__inner,
	.hkbc-feature-split {
		grid-template-columns: 1fr;
	}

	.hkbc-hero {
		min-height: clamp(36rem, 88svh, 48rem);
	}

	.hkbc-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hkbc-cta__inner {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 48rem) {
	.hkbc-front-page #header [data-device="mobile"] [data-row="middle"] {
		background: transparent !important;
		box-shadow: none;
	}

	.hkbc-front-page #header.hkbc-header--solid [data-device="mobile"] [data-row="middle"] {
		background: rgba(255, 255, 255, .98) !important;
		box-shadow: 0 .8rem 2rem rgba(17, 24, 39, .12);
	}

	.hkbc-hero {
		min-height: 40.5rem;
	}

	.hkbc-hero__inner {
		padding-block: 9rem 8rem;
	}

	.hkbc-hero h1 {
		font-size: clamp(2.55rem, 12vw, 4.25rem);
	}

	.hkbc-hero__lead {
		font-size: var(--hkbc-font-lg);
	}

	#header .site-title a::after {
		display: none;
	}

	#header .site-title {
		min-width: auto;
	}

	#header .site-title a {
		width: auto;
	}

	.hkbc-pathway {
		grid-template-columns: 1fr;
	}

	.hkbc-pathway::before {
		display: none;
	}

	.hkbc-pathway__step {
		padding: 0;
		display: grid;
		grid-template-columns: 4.5rem 1fr;
		gap: var(--hkbc-space-4);
		text-align: left;
	}

	.hkbc-pathway__step::before {
		grid-row: span 2;
	}

}

@media (max-width: 30rem) {
	.hkbc-card-grid {
		grid-template-columns: 1fr;
	}

	.hkbc-trust-strip {
		margin-top: 0;
		padding-top: var(--hkbc-space-4);
		background: var(--hkbc-surface-sky);
	}

	.hkbc-trust-strip__inner {
		grid-template-columns: 1fr;
	}

	.hkbc-trust-item + .hkbc-trust-item {
		border-top: 1px solid var(--hkbc-border);
		border-left: 0;
	}

	.hkbc-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.hkbc-button,
	.wp-block-button.hkbc-button .wp-block-button__link {
		width: 100%;
	}

	.hkbc-hero .hkbc-button {
		padding-inline: 1rem;
		font-size: .78rem;
		white-space: nowrap;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .001ms !important;
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media (forced-colors: active) {
	:where(a, button, input, select, textarea, [tabindex]):focus-visible {
		outline: 2px solid CanvasText;
		box-shadow: none;
	}
}

@media print {
	.hkbc-private-note,
	.hkbc-private-stage-banner,
	.hkbc-actions,
	#header,
	#footer { display: none !important; }

	.hkbc-section { padding-block: 1.5rem; }
	.hkbc-card { break-inside: avoid; box-shadow: none; }
	.hkbc-carousel__controls { display: none !important; }
	.hkbc-carousel__track { overflow: visible; }
	.hkbc-carousel__slide { break-inside: avoid; }
	details:not([open]) > :not(summary) { display: block !important; }
	thead { display: table-header-group; }
}

/* Core pages 0.5.5: authentic photography, shared navigation, readable bilingual copy. */
body.hkbc-core-page #header {
	position: sticky;
	top: var(--hkbc-admin-bar-offset, 0px);
	z-index: 1000;
}
body.hkbc-core-page #header [data-row="middle"],
body.hkbc-core-page #header:is(:hover, :focus-within, .hkbc-header--solid) [data-row="middle"] {
	background: rgba(255, 255, 255, .98) !important;
	box-shadow: 0 1px 0 rgba(98, 6, 115, .1);
}
body.hkbc-core-page #header:not(:hover):not(:focus-within):not(.hkbc-header--solid) :where(.site-title a, [data-id="menu"] > ul > li:not(.hkbc-menu-cta) > a, .ct-header-search, .ct-header-trigger) {
	color: var(--hkbc-navy) !important;
}
.hkbc-core-page #main { padding-top: 0; }
.hkbc-core-page #footer { display: block; }
.hkbc-core-page .hkbc-full-bleed { padding: 0; }
.hkbc-core-content {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	background: #fff;
	color: var(--hkbc-ink-muted);
	font-size: 1.125rem;
	line-height: 1.8;
	overflow-wrap: anywhere;
}
:lang(zh-Hant-HK) .hkbc-core-content { line-height: 1.95; }
.hkbc-core-content :where(h1, h2, h3, h4) { color: var(--hkbc-navy); text-wrap: balance; }
.hkbc-core-content h1 { font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 1.12; letter-spacing: -.035em; }
.hkbc-core-content h2 { font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1.22; letter-spacing: -.025em; }
.hkbc-core-content h3 { font-size: clamp(1.4rem, 2vw, 1.8rem); line-height: 1.35; }
:lang(zh-Hant-HK) .hkbc-core-content :where(h1, h2, h3) { line-height: 1.5; letter-spacing: .015em; }
.hkbc-core-content :where(p, ul, ol) { margin-top: 0; margin-bottom: 1.3em; }
.hkbc-core-content :where(p, li) { max-width: 72ch; }
.hkbc-core-content :where(section, [id]) { scroll-margin-top: 9rem; }
.hkbc-core-content :where(a, button, summary):focus-visible { outline: 3px solid var(--hkbc-focus); outline-offset: 5px; }
.hkbc-core-content [hidden] { display: none !important; }
.hkbc-core-container { width: min(100%, 75rem); margin-inline: auto; }
.hkbc-core-section { padding: clamp(3.5rem, 6vw, 6rem) var(--hkbc-gutter); }
.hkbc-core-section:nth-of-type(even) { background: #f8f7f5; }
.hkbc-core-section .hkbc-home-copy { margin-bottom: 2.75rem; }
.hkbc-core-content .hkbc-home-copy h2 { font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1.25; letter-spacing: -.025em; }
:lang(zh-Hant-HK) .hkbc-core-content .hkbc-home-copy h2 { line-height: 1.5; letter-spacing: .015em; }
.hkbc-core-content .hkbc-home-copy > p:not(.hkbc-eyebrow) { font-size: 1.125rem; line-height: 1.8; }
.hkbc-core-content .hkbc-eyebrow { color: var(--hkbc-burgundy); font-size: .8125rem; font-weight: 750; letter-spacing: .11em; line-height: 1.6; text-transform: uppercase; }
.hkbc-story-hero {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
	align-items: center;
	gap: clamp(2rem, 4vw, 4rem);
	width: min(100%, calc(75rem + var(--hkbc-gutter) * 2));
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4.5rem) var(--hkbc-gutter);
}
.hkbc-story-hero__copy { min-width: 0; }
.hkbc-story-hero:not(:has(.hkbc-story-hero__media)) { grid-template-columns: minmax(0, 1fr); }
.hkbc-story-hero:not(:has(.hkbc-story-hero__media)) h1 { max-width: 24ch; }
.hkbc-story-hero:not(:has(.hkbc-story-hero__media)) p { max-width: 65ch; }
.hkbc-story-hero__copy h1 { margin: .5rem 0 1.5rem; }
.hkbc-story-hero__copy p { max-width: 42ch; }
.hkbc-story-hero__media { min-width: 0; margin: 0; }
.hkbc-core-content picture { display: block; }
.hkbc-core-content img { display: block; width: 100%; height: auto; border-radius: .625rem; }
.hkbc-story-hero__media img { aspect-ratio: 4 / 3; object-fit: contain; background: #f4f1ea; }
.hkbc-core-content figure { margin: 0; min-width: 0; }
.hkbc-core-content figcaption { padding-top: .8rem; color: var(--hkbc-ink-muted); font-size: .875rem; line-height: 1.65; }
.hkbc-core-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.hkbc-core-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.hkbc-core-grid > * { min-width: 0; }
.hkbc-core-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hkbc-core-grid article, .hkbc-core-card { padding: 2rem; border: 1px solid #dddfe5; border-radius: .625rem; background: #fff; }
.hkbc-core-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.6rem; }
.hkbc-core-actions a { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; max-width: 100%; padding: .7rem 1.3rem; border: 1px solid var(--hkbc-burgundy); border-radius: .35rem; color: var(--hkbc-burgundy); text-decoration: none; font-size: 1rem; font-weight: 700; line-height: 1.5; }
.hkbc-core-actions a:first-child { color: #fff; background: var(--hkbc-burgundy); }
.hkbc-core-actions a:is(:hover, :focus-visible) { color: #fff; background: var(--hkbc-navy); border-color: var(--hkbc-navy); }
.hkbc-core-content .hkbc-value-card { border-radius: .625rem; box-shadow: none; }
.hkbc-core-content .hkbc-value-card:nth-child(3) :where(.hkbc-value-card__number, .hkbc-value-card__action) { color: var(--hkbc-rose-dark); }
.hkbc-core-content .hkbc-programme-explorer { gap: 2.5rem; max-width: 75rem; }
.hkbc-core-content .hkbc-programme-explorer:not(.is-enhanced) { display: block; }
.hkbc-core-content .hkbc-programme-explorer:not(.is-enhanced) .hkbc-programme-panels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; width: 100%; max-width: none; }
.hkbc-core-content .hkbc-programme-panel { min-height: 25rem; padding: clamp(1.5rem, 3vw, 2.75rem); border-radius: .625rem; }
.hkbc-core-content .hkbc-programme-panel::before, .hkbc-core-content .hkbc-programme-panel::after { display: none; }
.hkbc-core-content .hkbc-programme-panel :where(h3, .hkbc-programme-panel__stage) { overflow-wrap: anywhere; }
.hkbc-core-content .hkbc-programme-panel p:not(.hkbc-programme-panel__stage) { font-size: 1.125rem; line-height: 1.8; }
.hkbc-core-content .hkbc-programme-tab { border-radius: .625rem; }
.hkbc-core-content .hkbc-leader-preview { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); gap: 1.5rem; align-items: center; padding: 1.5rem; border: 1px solid #e0dcd6; border-radius: .625rem; background: #fff; }
.hkbc-leader-preview picture { align-self: end; }
.hkbc-leader-preview img { max-height: 23rem; width: 100%; object-fit: contain; object-position: bottom; border-radius: 0; }
.hkbc-leader-message { display: grid; grid-template-columns: minmax(12rem, .65fr) minmax(0, 1.35fr); align-items: start; gap: clamp(2rem, 5vw, 4.5rem); }
.hkbc-leader-message > figure img { max-height: 36rem; object-fit: contain; object-position: top; border-radius: 0; }
.hkbc-leader-message blockquote { margin: 0; padding: 0; border: 0; color: inherit; font-size: inherit; }
.hkbc-core-content .hkbc-leadership-event { width: min(100%, 56.25rem); margin-inline: auto; }
.hkbc-core-content .hkbc-source-note { color: #59616e; font-size: .875rem; line-height: 1.65; }
.hkbc-core-table-wrap { width: 100%; overflow-x: auto; margin: 1.75rem 0; border: 1px solid #d7dbe3; border-radius: .5rem; }
.hkbc-core-table { width: 100%; min-width: 32rem; margin: 0; border-collapse: collapse; font-size: 1rem; line-height: 1.7; }
.hkbc-core-table-wrap:focus-visible { outline: 3px solid var(--hkbc-focus); outline-offset: 4px; }
.hkbc-table-help { font-size: .875rem; color: var(--hkbc-ink-muted); }
.hkbc-core-table caption { padding: 1rem 1.25rem; text-align: left; color: var(--hkbc-navy); font-weight: 750; background: #ede1f1; }
.hkbc-core-table :where(th, td) { padding: 1rem 1.25rem; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid #d7dbe3; overflow-wrap: anywhere; }
.hkbc-core-table th { color: var(--hkbc-navy); background: #f8f5fa; font-weight: 700; }
.hkbc-core-table tbody tr:last-child > * { border-bottom: 0; }
.hkbc-core-content .hkbc-carousel__controls { flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.hkbc-core-content .hkbc-carousel__slide img { aspect-ratio: 4 / 3; object-fit: contain; background: #f2f0eb; }
.hkbc-core-content .hkbc-carousel__slide { border-radius: .625rem; }
.hkbc-core-content .hkbc-home-footer { padding: 4rem var(--hkbc-gutter) 2rem; font-size: 1rem; }
.hkbc-core-content .hkbc-home-footer__grid, .hkbc-core-content .hkbc-home-footer__base { max-width: 75rem; margin-inline: auto; }
.hkbc-core-content .hkbc-home-footer p { font-size: 1rem; }
.hkbc-core-content .hkbc-home-footer a { overflow-wrap: anywhere; }
@media (max-width: 64rem) {
	.hkbc-core-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hkbc-core-content .hkbc-programme-explorer:not(.is-enhanced) .hkbc-programme-panels { grid-template-columns: 1fr; }
	.hkbc-core-content .hkbc-programme-panels { max-width: none; width: 100%; }
}
@media (max-width: 48rem) {
	.hkbc-story-hero, .hkbc-core-split, .hkbc-leader-message { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.hkbc-story-hero { padding-top: 2rem; }
	.hkbc-story-hero__media img { width: 100%; height: auto; aspect-ratio: 4 / 3; }
	.hkbc-core-grid { grid-template-columns: minmax(0, 1fr); }
	.hkbc-leader-message > figure { width: min(100%, 22rem); margin-inline: auto; }
	.hkbc-core-content .hkbc-leader-preview { grid-template-columns: minmax(0, 1fr); }
	.hkbc-leader-preview picture { width: min(100%, 14rem); margin-inline: auto; }
	.hkbc-core-table :where(th, td) { padding: .8rem .65rem; }
	.hkbc-core-content .hkbc-carousel__controls { justify-content: center; }
	.hkbc-core-content .hkbc-value-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.hkbc-core-page *, .hkbc-core-page *::before, .hkbc-core-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Final visual QA: readable text on navy and an intact event photograph. */
.hkbc-core-content .hkbc-carousel__slide figcaption { color: #fff; }
.hkbc-core-content .hkbc-home-connect .hkbc-eyebrow { color: var(--hkbc-sky); }
.hkbc-core-content .hkbc-home-connect .hkbc-eyebrow::before { background: currentColor; }
.hkbc-core-content .hkbc-home-connect .hkbc-text-link { color: #fff; }
.hkbc-core-content .hkbc-leadership-event { transform: none; }
.hkbc-core-content .hkbc-leadership-event picture { border-radius: .625rem; overflow: visible; }
.hkbc-core-content .hkbc-leadership-event img { object-fit: contain; }

/* 0.5.6: Bloom's homepage sequence and original arc, with Oxbridge's
 * two-row navigation and portrait/message leadership presentation. */
.hkbc-home-utility { background: var(--hkbc-navy); color: #fff; }
.hkbc-home-utility__inner { width: min(calc(100% - 4rem), 75rem); min-height: 6.5rem; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.hkbc-home-utility a { color: #fff; text-decoration: none; }
.hkbc-utility-brand { display: flex; align-items: center; gap: 1rem; max-width: 24rem; font-size: 1.25rem; font-weight: 700; line-height: 1.35; }
.hkbc-utility-brand__mark { display: grid; place-items: center; flex: 0 0 5rem; height: 3.5rem; border: 2px solid currentColor; border-radius: .25rem; font-size: 1.6rem; font-weight: 850; letter-spacing: -.04em; }
.hkbc-home-utility nav { display: flex; align-items: center; gap: 1.5rem; }
.hkbc-home-utility nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .7rem 1rem; font-size: 1rem; font-weight: 650; }
.hkbc-home-utility .hkbc-utility-visit { background: var(--hkbc-burgundy); border: 1px solid var(--hkbc-purple-light); border-radius: .25rem; }
.hkbc-home-utility .hkbc-utility-contact { border: 1px solid #fff; border-radius: .25rem; }
.hkbc-home-utility a:focus-visible { outline: 3px solid var(--hkbc-sky); outline-offset: 4px; }
body.hkbc-core-page.hkbc-front-page #header { position: sticky; }
body.hkbc-core-page.hkbc-front-page #header [data-device="desktop"] [data-id="logo"] { display: none; }
body.hkbc-core-page.hkbc-front-page #header [data-device="desktop"] [data-row="middle"] { --height: 4rem; }
body.hkbc-core-page.hkbc-front-page #header [data-device="desktop"] [data-row="middle"] > div { min-height: 4rem; }
body.hkbc-core-page.hkbc-front-page #header [data-device="desktop"] [data-column="end"] { flex: 1; justify-content: center; }
body.hkbc-core-page.hkbc-front-page #header [data-device="desktop"] [data-id="menu"] > ul { justify-content: center; }
body.hkbc-core-page.hkbc-front-page #footer { display: block; }
.hkbc-core-content.hkbc-bloom-home { overflow: clip; }
.hkbc-bloom-home .hkbc-core-section { position: relative; padding: clamp(4.5rem, 7vw, 6.5rem) var(--hkbc-gutter); background: #fff; }
.hkbc-bloom-home .hkbc-core-container { max-width: 68.75rem; }
.hkbc-bloom-home .hkbc-home-copy { max-width: 52rem; margin: 0 auto 2.75rem; text-align: center; }
.hkbc-bloom-home .hkbc-home-copy > .hkbc-eyebrow:empty { display: none; }
.hkbc-bloom-home .hkbc-home-copy h2 { font-size: clamp(2rem, 4.25vw, 3.5rem); line-height: 1.16; letter-spacing: -.04em; }
.hkbc-bloom-home .hkbc-home-copy > p:not(.hkbc-eyebrow) { max-width: 44rem; margin: 2rem auto 0; font-size: 1.125rem; line-height: 1.8; }
:lang(zh-Hant-HK) .hkbc-bloom-home .hkbc-home-copy h2 { line-height: 1.45; letter-spacing: .01em; }
.hkbc-bloom-home .hkbc-home-section-link { margin: -1rem auto 3.5rem; text-align: center; }
.hkbc-bloom-home .hkbc-home-section-link .hkbc-text-link { justify-content: center; }
.hkbc-bloom-home .hkbc-home-hero { min-height: clamp(35rem, 85svh, 48rem); padding: 0; display: grid; place-items: center; }
.hkbc-bloom-home .hkbc-home-hero__photo { position: absolute; inset: 0; z-index: 0; }
.hkbc-bloom-home .hkbc-home-hero__photo :is(picture, img) { width: 100%; height: 100%; border-radius: 0; }
.hkbc-bloom-home .hkbc-home-hero__photo img { object-fit: cover; object-position: 50% 52%; }
.hkbc-bloom-home .hkbc-home-hero::before { z-index: 1; background: linear-gradient(180deg, rgba(10, 18, 54, .12), rgba(10, 18, 54, .48) 45%, rgba(10, 18, 54, .15)); }
.hkbc-home-hero__copy { position: relative; z-index: 2; width: min(calc(100% - 2rem), 70rem); padding: 3rem 0 5rem; text-align: center; }
.hkbc-bloom-home .hkbc-home-hero h1 { max-width: none; margin: 0 auto 2rem; color: #fff; font-size: clamp(2rem, 4.8vw, 4rem); line-height: 1.15; white-space: normal; text-shadow: 0 2px 20px rgba(0,0,0,.4); }
.hkbc-bloom-home .hkbc-home-hero .hkbc-button { width: auto; max-width: 100%; min-height: 54px; padding: .9rem 1.6rem; border: 2px solid #fff; border-radius: 100px; background: transparent; color: #fff; font-size: 1rem; white-space: normal; }
.hkbc-bloom-home .hkbc-home-hero .hkbc-button:is(:hover, :focus-visible) { background: #fff; color: var(--hkbc-navy); transform: none; }
.hkbc-bloom-home .hkbc-home-welcome { padding-top: 2rem; }
.hkbc-bloom-home .hkbc-home-welcome > .hkbc-core-container { position: relative; z-index: 1; }
.hkbc-bloom-home .hkbc-home-introduction { max-width: 48rem; margin: 0 auto 3rem; text-align: center; }
.hkbc-bloom-home .hkbc-home-introduction p { margin-inline: auto; }
.hkbc-bloom-home .hkbc-home-welcome-media { width: min(100%, 64rem); margin: auto; }
.hkbc-bloom-home .hkbc-home-welcome-media img { aspect-ratio: 4000 / 2252; object-fit: contain; border-radius: 1rem; }
.hkbc-bloom-home .hkbc-home-welcome-media figcaption { text-align: center; }
.hkbc-bloom-home .hkbc-home-values .hkbc-home-copy h2 { color: var(--hkbc-burgundy); }
.hkbc-bloom-home .hkbc-value-card { border-radius: 1.25rem; box-shadow: 0 .4rem 1.5rem rgba(17,24,39,.075); }
.hkbc-bloom-home .hkbc-value-card summary { min-height: 23rem; padding: 1.6rem; }
.hkbc-bloom-home .hkbc-programme-explorer { gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.hkbc-bloom-home .hkbc-programme-panel { padding: 0; min-height: 0; border: 0; border-radius: 0; background: none; color: var(--hkbc-ink-muted); box-shadow: none; overflow: visible; }
.hkbc-bloom-home .hkbc-programme-panel h3 { color: var(--hkbc-navy); font-size: 1.75rem; line-height: 1.3; }
.hkbc-bloom-home .hkbc-programme-panel__stage { margin: 1.25rem 0 .5rem; color: var(--hkbc-burgundy); }
.hkbc-bloom-home .hkbc-programme-panel .hkbc-text-link { color: var(--hkbc-burgundy); }
.hkbc-bloom-home .hkbc-home-programme-photo img { aspect-ratio: 4 / 3; object-fit: contain; border-radius: 1.25rem 4rem 1.25rem 1.25rem; background: #f4f1ea; }
.hkbc-bloom-home .hkbc-programme-tab { gap: .75rem; padding: 1.75rem 0; border: 0; border-radius: 0; background: none; color: var(--hkbc-ink-muted); }
.hkbc-bloom-home .hkbc-programme-tab > span { font-size: clamp(1.5rem, 3.15vw, 2.65rem); font-weight: 750; line-height: 1.25; }
.hkbc-bloom-home .hkbc-programme-tab > small { color: var(--hkbc-burgundy); font-size: 1.15rem; }
.hkbc-bloom-home .hkbc-programme-tab:is(:hover, :focus-visible, .is-active) { color: var(--hkbc-navy); background: none; transform: none; }
.hkbc-bloom-home .hkbc-programme-tab.is-active > span { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: .09em; }
.hkbc-bloom-home .hkbc-home-recognition-note { max-width: 58rem; margin: 4rem auto 0; padding-top: 2rem; display: grid; grid-template-columns: 11rem minmax(0, 1fr); align-items: center; gap: 2rem; border-top: 1px solid #e0e2e7; }
.hkbc-bloom-home .hkbc-home-recognition-note h3 { font-size: 1.25rem; }
.hkbc-bloom-home .hkbc-home-recognition-note p { margin-bottom: .7rem; font-size: 1rem; }
.hkbc-bloom-home .hkbc-home-leadership { max-width: 62.5rem; margin: auto; }
.hkbc-bloom-home .hkbc-home-leader { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: center; gap: clamp(2rem, 5vw, 4rem); padding: 1rem 0 3rem; }
.hkbc-bloom-home .hkbc-home-leader + .hkbc-home-leader { padding-top: 3.5rem; border-top: 1px solid #e0e2e7; }
.hkbc-bloom-home .hkbc-home-leader figure { align-self: end; }
.hkbc-bloom-home .hkbc-home-leader img { width: 100%; max-height: 28rem; object-fit: contain; object-position: bottom; border-radius: 0; }
.hkbc-bloom-home .hkbc-home-leader h3 { margin: .5rem 0 1rem; font-size: clamp(1.75rem, 2.8vw, 2.4rem); }
.hkbc-bloom-home .hkbc-home-leader__name { color: var(--hkbc-navy); font-weight: 750; }
.hkbc-bloom-home .hkbc-home-life .hkbc-carousel { width: min(100%, 62.5rem); margin: auto; }
.hkbc-bloom-home .hkbc-carousel__slide { border-radius: 1rem; }
.hkbc-bloom-home .hkbc-home-contact-panel { max-width: 58rem; margin: 0 auto; padding: clamp(1.5rem, 4vw, 3.5rem); display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 3rem; border: 1px solid #e0e2e7; border-radius: 1rem; background: #faf9f7; }
.hkbc-home-contact-details strong { display: block; margin-bottom: .25rem; color: var(--hkbc-navy); }
.hkbc-home-contact-details a { overflow-wrap: anywhere; }
.hkbc-home-contact-details .hkbc-button { color: #fff; }
@media (max-width: 72.5rem) {
 .hkbc-home-utility { display: none; }
}
@media (max-width: 48rem) {
 .hkbc-bloom-home .hkbc-home-hero { min-height: clamp(30rem, 72svh, 38rem); align-items: end; }
 .hkbc-bloom-home .hkbc-home-hero__photo img { object-fit: cover; object-position: 55% 50%; }
 .hkbc-home-hero__copy { padding: 1.5rem 0 5.5rem; }
 .hkbc-bloom-home .hkbc-home-hero h1 { margin-bottom: 1.25rem; font-size: clamp(1.6rem, 7vw, 2.75rem); }
 .hkbc-bloom-home .hkbc-home-hero .hkbc-button { min-height: 44px; padding: .6rem 1.1rem; font-size: .875rem; }
 .hkbc-bloom-home .hkbc-core-section { padding-block: 3.5rem; }
 .hkbc-bloom-home .hkbc-home-welcome { padding-top: 2rem; }
 .hkbc-bloom-home .hkbc-home-copy { margin-bottom: 2rem; }
 .hkbc-bloom-home .hkbc-home-copy h2 { font-size: clamp(1.8rem, 7.2vw, 2.75rem); }
 .hkbc-bloom-home .hkbc-home-section-link { margin-bottom: 2.5rem; }
 .hkbc-bloom-home .hkbc-home-recognition-note { grid-template-columns: 1fr; gap: 1rem; }
 .hkbc-bloom-home .hkbc-home-recognition-note figure { max-width: 18rem; }
 .hkbc-bloom-home .hkbc-home-leader { grid-template-columns: 1fr; gap: 2rem; }
 .hkbc-bloom-home .hkbc-home-leader figure { width: min(100%, 15rem); margin: auto; }
 .hkbc-bloom-home .hkbc-home-contact-panel { grid-template-columns: 1fr; gap: 2rem; }
 .hkbc-bloom-home .hkbc-programme-tab { padding: 1rem 0; }
 .hkbc-bloom-home .hkbc-programme-tab > span { font-size: 1.45rem; }
}

/* Compact tablet/phone rhythm; desktop geometry and the hero arc stay intact. */
@media (max-width: 64rem) {
	.hkbc-section, .hkbc-section--compact,
	.hkbc-core-section, .hkbc-bloom-home .hkbc-core-section,
	.hkbc-bloom-section { padding-block: 2.5rem; }
	.hkbc-story-hero { padding-block: 2.5rem; gap: 2rem; }
	.hkbc-bloom-home .hkbc-home-welcome { padding-top: 2rem; }
	.hkbc-core-section .hkbc-home-copy,
	.hkbc-bloom-home .hkbc-home-copy { margin-bottom: 2rem; }
	.hkbc-bloom-home .hkbc-home-copy > p:not(.hkbc-eyebrow) { margin-top: 1.25rem; }
	.hkbc-bloom-home .hkbc-home-introduction { margin-bottom: 2rem; }
	.hkbc-bloom-home .hkbc-home-section-link { margin: -.5rem auto 2rem; }
	.hkbc-core-content .hkbc-value-card summary { min-height: 0; padding: 1.5rem; }
	.hkbc-core-content .hkbc-value-card__title { margin-top: 1.5rem; }
	.hkbc-core-content .hkbc-value-card__mark { top: 1rem; width: 8rem; height: 8rem; border-width: 1rem; }
	.hkbc-core-content .hkbc-programme-panel { min-height: 0; }
	.hkbc-core-content:not(.hkbc-bloom-home) .hkbc-programme-panel__stage { margin-top: 0; }
	.hkbc-core-content .hkbc-programme-explorer { gap: 2rem; }
	.hkbc-bloom-home .hkbc-home-recognition-note { margin-top: 2rem; padding-top: 1.5rem; }
	.hkbc-bloom-home .hkbc-home-leader { padding-block: 0 1.5rem; gap: 2rem; }
	.hkbc-bloom-home .hkbc-home-leader + .hkbc-home-leader { padding-top: 1.5rem; }
	.hkbc-bloom-home .hkbc-home-leader:last-child { padding-bottom: 0; }
	.hkbc-home-connect { padding-block: 2.5rem; gap: 2rem; }
	.hkbc-home-footer, .hkbc-core-content .hkbc-home-footer { padding-block: 2.5rem 1.5rem; }
	.hkbc-home-footer__grid { gap: 2rem; }
	.hkbc-home-footer__base { margin-top: 1.5rem; }
	.hkbc-reading > section { margin-top: 1.5rem; padding-top: 1.25rem; }
	.hkbc-core-section > .hkbc-core-inner > :last-child,
	.hkbc-core-split > div > :last-child,
	.hkbc-leader-message blockquote > :last-child,
	.hkbc-home-leader > div > :last-child,
	.hkbc-story-hero__copy > :last-child { margin-bottom: 0; }
}

@media (max-width: 48rem) {
	.hkbc-section, .hkbc-section--compact,
	.hkbc-core-section, .hkbc-bloom-home .hkbc-core-section,
	.hkbc-bloom-section { padding-block: 2rem; }
	.hkbc-story-hero { padding-block: 2rem; }
	.hkbc-story-hero, .hkbc-core-split, .hkbc-leader-message { gap: 1.5rem; }
	.hkbc-core-section .hkbc-home-copy,
	.hkbc-bloom-home .hkbc-home-copy { margin-bottom: 1.5rem; }
	.hkbc-life-feature .hkbc-home-copy { margin-bottom: 0; }
	.hkbc-bloom-home .hkbc-home-introduction { margin-bottom: 1.5rem; }
	.hkbc-bloom-home .hkbc-home-section-link { margin: -.25rem auto 1.5rem; }
	/* Reset every inherited horizontal-track rule when stacking disclosure cards. */
	.hkbc-core-content .hkbc-value-grid {
		width: 100%; margin-inline: 0; padding-right: 0;
		grid-auto-flow: row; grid-auto-columns: auto;
		grid-template-columns: minmax(0, 1fr); gap: 1rem;
		overflow-x: visible; scroll-snap-type: none;
	}
	.hkbc-core-content .hkbc-value-card summary { padding: 1.25rem; }
	.hkbc-core-content .hkbc-value-card__title { margin-top: 1.25rem; }
	.hkbc-core-content .hkbc-value-card__action { margin-top: 1rem; }
	.hkbc-core-content .hkbc-programme-explorer { gap: 1.5rem; }
	.hkbc-bloom-home .hkbc-home-recognition-note { margin-top: 1.5rem; padding-top: 1.25rem; }
	.hkbc-bloom-home .hkbc-home-leader { gap: 1.5rem; }
	.hkbc-bloom-home .hkbc-home-contact-panel { gap: 1.5rem; }
	.hkbc-core-grid article, .hkbc-core-card { padding: 1.5rem; }
	.hkbc-home-connect { padding-block: 2rem; gap: 1.5rem; }
	.hkbc-home-footer, .hkbc-core-content .hkbc-home-footer { padding-top: 2rem; }
	.hkbc-home-footer__grid { gap: 1.5rem; }
}

/* Homepage 0.6.0. Oxbridge's measured five-section composition, in HKBC purple.
 * Scope is deliberately limited to the three home routes. Inner pages retain
 * their approved content, responsive spacing and existing Blocksy navigation. */
body.hkbc-front-page #header { display: none !important; }
.hkbc-ox-header, .hkbc-oxbridge-home, .hkbc-ox-footer { --ox-inner: 87.5rem; --ox-gutter: 3.25%; }
.hkbc-ox-header { position: relative; z-index: 1001; font-size: 1.125rem; line-height: 1.5; }
.hkbc-ox-header :where(a, summary, button):focus-visible { outline: 3px solid var(--hkbc-focus); outline-offset: 4px; }
.hkbc-ox-header a { text-decoration: none; }
.hkbc-ox-header-top { background: var(--hkbc-purple-deep); color: white; }
.hkbc-ox-header-inner { width: min(93.5%, var(--ox-inner)); min-height: 6.6rem; margin: auto; display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.hkbc-ox-brand { display: flex; flex-direction: column; flex: 0 1 18rem; color: white !important; line-height: 1.05; }
.hkbc-ox-brand > span { font-size: 3rem; letter-spacing: .15em; font-weight: 700; }
.hkbc-ox-brand small { font-size: .86rem; margin-top: .4rem; letter-spacing: .015em; }
.hkbc-ox-header-actions { display: flex; align-items: center; gap: 1.4rem; }
.hkbc-ox-header-actions a { color: white; font-size: 1.125rem; padding: .76rem 1.3rem; border: 1px solid transparent; border-radius: .3rem; }
.hkbc-ox-header-actions .hkbc-ox-visit-button { background: var(--hkbc-purple); border-color: var(--hkbc-purple-light); }
.hkbc-ox-header-actions .hkbc-ox-contact-button { border-color: white; }
.hkbc-ox-header-actions a:hover { background: white; color: var(--hkbc-purple-deep); }
.hkbc-ox-navigation { background: #fff; border-bottom: 1px solid #e9e0ec; }
.hkbc-ox-navigation-inner { min-height: 3.94rem; width: min(93.5%, var(--ox-inner)); margin: auto; display: flex; align-items: stretch; justify-content: center; gap: clamp(.25rem, 1.15vw, 1.3rem); }
.hkbc-ox-navigation-inner > a, .hkbc-ox-nav-group > summary { min-height: 3.94rem; padding: .8rem .4rem; display: flex; align-items: center; gap: .55rem; color: var(--hkbc-purple-deep); cursor: pointer; font-size: 1rem; white-space: nowrap; }
.hkbc-ox-nav-group { position: relative; border: 0; padding: 0; margin: 0; }
.hkbc-ox-nav-group > summary { list-style: none; }
.hkbc-ox-nav-group > summary::-webkit-details-marker { display: none; }
.hkbc-ox-nav-group > summary::after { content: ''; width: .38rem; height: .38rem; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg) translateY(-2px); }
.hkbc-ox-nav-group[open] > summary::after { transform: rotate(225deg); }
.hkbc-ox-submenu { position: absolute; top: 100%; left: -.75rem; min-width: 15rem; padding: .5rem; background: white; box-shadow: 0 .7rem 1.5rem #21012724; border-top: 3px solid var(--hkbc-purple); }
.hkbc-ox-submenu a { display: block; padding: .8rem; color: var(--hkbc-purple-deep); font-size: 1rem; }
.hkbc-ox-navigation a:hover, .hkbc-ox-nav-group > summary:hover { background: var(--hkbc-surface-rose); color: var(--hkbc-purple-deep); }
.hkbc-ox-languages { display: flex; align-items: center; gap: .25rem; }
.hkbc-ox-languages a { color: var(--hkbc-purple-deep); padding: .6rem .35rem; min-width: 2rem; text-align: center; font-size: .85rem; }
.hkbc-ox-languages a[aria-current] { text-decoration: underline; text-underline-offset: .3em; font-weight: 700; }
.hkbc-ox-menu-toggle { display: none; width: 3.25rem; min-height: 3rem; padding: .5rem; border: 0; background: transparent; color: white; border-radius: .2rem; }
.hkbc-ox-menu-icon { position: relative; display: block; width: 2.5rem; height: 1.5rem; border-block: 2px solid currentColor; }
.hkbc-ox-menu-icon::after { content: ''; position: absolute; top: calc(50% - 1px); left: 0; width: 100%; border-top: 2px solid; }
.hkbc-oxbridge-home { overflow: clip; line-height: 1.5; }
:lang(zh-Hant-HK) .hkbc-oxbridge-home { line-height: 1.8; }
.hkbc-ox-inner { width: min(93.5%, var(--ox-inner)); margin-inline: auto; }
.hkbc-oxbridge-home :where(h1,h2,h3) { margin: 0 0 1.2rem; font-weight: 500; letter-spacing: -.015em; text-wrap: pretty; }
.hkbc-oxbridge-home h2 { font-size: 2.25rem; line-height: 1.3; }
.hkbc-oxbridge-home h3 { font-size: 1.46rem; line-height: 1.3; }
.hkbc-oxbridge-home :where(p,li) { max-width: none; }
.hkbc-oxbridge-home p { margin-bottom: 1.125rem; }
.hkbc-oxbridge-home img { border-radius: 0; }
.hkbc-oxbridge-home .hkbc-button { width: auto; max-width: 100%; min-height: 3.45rem; padding: .76rem 1.4rem; border-radius: .3rem; font-size: 1.125rem; font-weight: 500; line-height: 1.5; white-space: normal; text-align: center; border: 1px solid var(--hkbc-purple); box-shadow: none; transform: none; }
.hkbc-oxbridge-home .hkbc-text-link { font-weight: 500; text-decoration: underline; text-underline-offset: .2em; }
.hkbc-ox-hero { position: relative; background: var(--hkbc-purple-deep); color: #fff; isolation: isolate; }
.hkbc-ox-slides { display: grid; }
.hkbc-ox-slide { grid-area: 1/1; position: relative; display: grid; min-height: 40rem; background: linear-gradient(180deg, var(--hkbc-purple), var(--hkbc-purple-deep) 55%, #26082e); }
.hkbc-ox-hero.is-enhanced .hkbc-ox-slide { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .65s ease, visibility .65s; }
.hkbc-ox-hero.is-enhanced .hkbc-ox-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 1; }
.hkbc-ox-hero-copy { position: relative; z-index: 2; width: min(38%, 33rem); margin-left: max(7.6%, calc((100% - 80rem)/2)); padding-block: 5.5rem 11.5rem; align-self: start; }
.hkbc-ox-hero-copy :is(h1,h2) { font-size: clamp(2.1rem, 3.15vw, 2.8125rem); color: #fff; line-height: 1.2; margin: 0 0 1.4rem; }
.hkbc-ox-hero-copy p { font-size: 1.125rem; line-height: 1.5; max-width: 28rem; }
.hkbc-ox-hero-copy .hkbc-eyebrow { color: white; font-size: 1.125rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0; margin-bottom: .5rem; }
.hkbc-ox-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.hkbc-ox-hero-copy .hkbc-ox-hero-actions .hkbc-button { margin: 0; }
.hkbc-ox-hero-copy .hkbc-eyebrow::before { display: none; }
.hkbc-ox-hero-copy .hkbc-button { color: white; border-color: var(--hkbc-purple-light); background: var(--hkbc-purple); margin: .25rem .5rem .25rem 0; }
.hkbc-ox-hero-copy .hkbc-button:is(:hover,:focus-visible) { color: var(--hkbc-purple-deep); background: white; }
.hkbc-ox-hero-photo { position: absolute; z-index: 0; inset: 0 0 0 43%; border-left: 1rem solid var(--hkbc-purple-light); border-radius: 18% 0 0 18% / 55% 0 0 45%; overflow: hidden; }
.hkbc-ox-hero-photo :is(picture,img) { width: 100%; height: 100%; }
.hkbc-ox-hero-photo img { object-fit: cover; object-position: 52% center; }
.hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-photo img { object-fit: contain; }
.hkbc-ox-wave { display: block; position: absolute; z-index: 3; bottom: -1px; left: 0; width: 100%; height: 6.25rem; pointer-events: none; }
.hkbc-ox-hero > .hkbc-ox-wave { color: #f2eef4; }
.hkbc-ox-why > .hkbc-ox-wave { color: var(--hkbc-purple-deep); }
.hkbc-ox-hero-controls { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.hkbc-ox-hero-controls button { pointer-events: auto; display: inline-flex; justify-content: center; align-items: center; color: white; background: var(--hkbc-purple-deep); border: 1px solid var(--hkbc-purple-light); padding: .35rem; box-shadow: none; }
.hkbc-ox-hero-controls [data-hkbc-hero-prev], .hkbc-ox-hero-controls [data-hkbc-hero-next] { position: absolute; top: calc(50% - 3rem); width: 3.125rem; height: 3.125rem; border-radius: 50%; font-size: 1.7rem; }
.hkbc-ox-hero-controls [data-hkbc-hero-prev] { left: .5rem; }
.hkbc-ox-hero-controls [data-hkbc-hero-next] { right: .5rem; }
.hkbc-ox-hero-dots { position: absolute; bottom: 6.6rem; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: .2rem; }
.hkbc-ox-hero-controls [data-hkbc-hero-dot] { width: 2.75rem; height: 2.75rem; padding: 0; background: transparent; border: 0; border-radius: 50%; }
.hkbc-ox-hero-controls [data-hkbc-hero-dot]::before { content: ''; width: .7rem; height: .7rem; border: 1px solid white; border-radius: 50%; background: var(--hkbc-purple-deep); }
.hkbc-ox-hero-controls [data-hkbc-hero-dot][aria-current="true"]::before { background: white; }
.hkbc-ox-hero-controls [data-hkbc-hero-pause] { position: absolute; bottom: 6.6rem; right: 3.25%; min-height: 2.75rem; padding: .4rem .8rem; border-radius: .25rem; font-size: .8rem; }
.hkbc-ox-welcome { position: relative; background: #f2eef4; padding: 2rem; isolation: isolate; }
.hkbc-ox-welcome::after { content: 'HKBC' / ''; position: absolute; z-index: -1; bottom: -1rem; right: 1rem; color: #ffffffa6; font-size: clamp(6rem, 19vw, 19rem); font-weight: 800; line-height: 1; letter-spacing: -.075em; pointer-events: none; }
.hkbc-ox-welcome > .hkbc-ox-inner { width: 100%; display: grid; grid-template-columns: 25% minmax(0,1fr); align-items: start; }
.hkbc-ox-principal-photo { width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #fff; margin-top: 1rem; }
.hkbc-ox-principal-photo :is(picture,img) { width: 100%; height: 100%; }
.hkbc-ox-principal-photo img { object-fit: contain; object-position: center bottom; }
.hkbc-ox-principal-copy { padding: 2rem 2rem 2rem 4rem; }
.hkbc-ox-principal-copy h2 { font-size: 2.8125rem; line-height: 1.3; }
.hkbc-ox-principal-copy > p { font-size: 1.46rem; color: var(--hkbc-purple-deep); }
.hkbc-ox-principal-name > span { display: block; margin-top: .35rem; font-size: 1.125rem; }
.hkbc-ox-principal-columns { columns: 2; column-gap: 2.75rem; }
.hkbc-ox-principal-columns p { orphans: 3; widows: 3; }
.hkbc-ox-principal-columns .hkbc-text-link { display: inline; }
.hkbc-ox-discover { padding: 4rem 0 3rem; text-align: center; }
.hkbc-ox-discover > .hkbc-ox-inner > p { margin: 0 auto 1.125rem; max-width: 73rem; }
.hkbc-ox-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5%; margin-block: 2.8rem 3.1rem; }
.hkbc-ox-values h3 { color: var(--hkbc-purple); text-transform: uppercase; font-size: 2.15rem; font-weight: 650; }
.hkbc-ox-values p { margin-bottom: 0; }
.hkbc-ox-portals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3rem; align-items: stretch; }
.hkbc-ox-portal { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border-radius: 1rem 0 1rem 0; color: #fff; background: var(--hkbc-purple); box-shadow: 0 .6rem 1.4rem #21012724; text-decoration: none; }
.hkbc-ox-portal:nth-child(2) { background: var(--hkbc-purple-deep); }
.hkbc-ox-portal:hover { color: white; box-shadow: 0 .7rem 1.5rem #2101273b; }
.hkbc-ox-portal-photo { position: relative; }
.hkbc-ox-portal-photo img { aspect-ratio: 3/2; object-fit: contain; background: #f2eef4; }
.hkbc-ox-portal-photo h3 { position: absolute; bottom: 0; left: 0; width: 100%; margin: 0; padding: 1rem; color: white; background: linear-gradient(transparent, #24042ccf); text-shadow: 0 1px 3px #000; }
.hkbc-ox-portal:last-child .hkbc-ox-portal-photo img { object-fit: contain; background: #f2eef4; }
.hkbc-ox-portal-copy { flex: 1; padding: 1.5rem; }
.hkbc-ox-portal-copy :last-child { margin-bottom: 0; }
.hkbc-ox-portal-copy .hkbc-text-link { color: white; }
.hkbc-core-content .hkbc-ox-footer a { color: white; }
.hkbc-ox-news { padding: 2.25rem 0; }
.hkbc-ox-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-bottom: 3.75rem; }
.hkbc-ox-section-heading h2 { margin: 0; }
.hkbc-ox-section-heading .hkbc-button { background: transparent; color: var(--hkbc-purple-deep); }
.hkbc-ox-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2.5rem; }
.hkbc-ox-news-card { display: flex; flex-direction: column; min-width: 0; }
.hkbc-ox-news-card > picture img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.hkbc-ox-news-card:last-child > picture img { object-fit: contain; background: #f2eef4; }
.hkbc-ox-news-copy { position: relative; flex: 1; overflow: hidden; isolation: isolate; padding: 2rem 1.5rem; background: #f2eef4; text-align: center; }
.hkbc-ox-news-copy::after { content: 'HKBC' / ''; position: absolute; z-index: -1; color: #fff; font-size: 7rem; font-weight: 750; line-height: 1; bottom: -.5rem; right: -1rem; opacity: .7; }
.hkbc-ox-news-copy > :first-child { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hkbc-purple-deep); }
.hkbc-ox-news-copy h3 { color: var(--hkbc-purple-deep); }
.hkbc-ox-news-copy > :last-child { color: var(--hkbc-purple-deep); text-decoration: underline; text-underline-offset: .2em; margin-bottom: 0; }
.hkbc-ox-why { position: relative; isolation: isolate; background: var(--hkbc-purple-deep); color: white; min-height: 30.7rem; }
.hkbc-ox-why > picture { position: absolute; inset: 0; }
.hkbc-ox-why > picture img { height: 100%; width: 100%; object-fit: cover; object-position: 50% 75%; }
.hkbc-ox-why-content { position: relative; z-index: 1; margin-top: 10rem; padding: 2rem 2rem 6rem; background: #3d074dde; display: flow-root; }
.hkbc-ox-why { display: flow-root; }
.hkbc-ox-why-content > .hkbc-ox-inner { width: 100%; }
.hkbc-ox-why h2 { color: white; }
.hkbc-ox-why-columns { display: grid; grid-template-columns: 2fr 2fr 1fr; gap: 2rem; align-items: start; }
.hkbc-ox-why-columns p { margin: 0; }
.hkbc-ox-why .hkbc-button { color: white; background: var(--hkbc-purple); border-color: var(--hkbc-purple-light); }
.hkbc-ox-why .hkbc-button:hover { background: white; color: var(--hkbc-purple-deep); }
.hkbc-core-content .hkbc-home-footer.hkbc-ox-footer { padding: 1.5rem 0 0; background: var(--hkbc-purple-deep); color: white; line-height: 1.5; }
.hkbc-ox-footer :is(h2,h3,strong,a) { color: white; }
.hkbc-ox-footer a { text-decoration: none; }
.hkbc-ox-footer a:hover { text-decoration: underline; text-underline-offset: .25em; }
.hkbc-ox-footer-brand { display: flex; flex-direction: column; align-items: center; gap: .5rem; margin-bottom: 2rem; text-align: center; }
.hkbc-ox-footer-brand > :first-child { display: flex; flex-direction: column; gap: .4rem; }
.hkbc-ox-footer-brand strong { margin: 0; font-size: 3rem; letter-spacing: .15em; line-height: 1; }
.hkbc-ox-footer-brand span { font-size: .86rem; }
.hkbc-ox-partner-placeholder { display: flex; align-items: center; justify-content: center; width: min(100%, 12.5rem); min-height: 6.25rem; margin: 1rem 0 0; padding: .75rem; border: 1px dashed var(--hkbc-purple-light); font-size: .75rem !important; color: #f0dff5; }
.hkbc-ox-footer-identity { display: flex; flex-direction: column; align-items: center; padding-bottom: 2rem; }
.hkbc-ox-footer-identity .hkbc-ox-footer-brand { margin-bottom: 0; }
.hkbc-ox-footer-brand strong { font-size: 1.65rem; letter-spacing: .12em; }
.hkbc-ox-footer-brand > p { margin: .2rem 0 0; font-size: .8rem !important; }
.hkbc-ox-partner-placeholder { flex-direction: column; gap: .35rem; text-align: center; }
.hkbc-ox-footer-quicklinks { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4rem; padding-bottom: 2rem; }
.hkbc-ox-footer-quicklinks h3 { font-size: 1.46rem; font-weight: 500; text-transform: uppercase; margin: 0 0 .5rem; }
.hkbc-ox-footer-quicklinks :is(p,a) { font-size: .985rem !important; line-height: 1.5; margin: 0; }
.hkbc-ox-footer nav.hkbc-ox-footer-nav { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: center; gap: .6rem 1.8rem; min-height: 3.75rem; padding: .75rem 3.25%; border-block: 1px solid #d7b6e250; margin: 0; }
.hkbc-ox-footer-nav a { font-size: .985rem; }
.hkbc-ox-footer-nav > .hkbc-ox-inner { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.8rem; }
.hkbc-ox-footer-base { width: min(82%, 73rem); margin: auto; display: flex; justify-content: space-between; gap: 3rem; padding: 2rem 0 3rem; }
.hkbc-ox-footer-base p { font-size: .875rem !important; line-height: 1.6; margin-bottom: .8rem; }
.hkbc-ox-footer-base address { font-style: normal; font-size: .875rem; max-width: 36rem; }
.hkbc-ox-footer-base > :last-child { max-width: 22rem; }
.hkbc-ox-footer-contact p > a, .hkbc-ox-footer-legal > a { display: inline-block; margin-right: 1rem; padding-block: .2rem; }
@media (min-width: 1100px) {
	.hkbc-ox-nav-group:hover > .hkbc-ox-submenu { display: block; }
}
@media (max-width: 1099.98px) {
	.hkbc-ox-header-inner { min-height: 5.3rem; width: 90%; gap: .75rem; }
	.hkbc-ox-brand { flex-basis: 13rem; min-width: 0; overflow-wrap: anywhere; }
	.hkbc-ox-brand > span { font-size: clamp(1rem, 8vw, 2rem); }
	.hkbc-ox-brand small { font-size: .65rem; }
	.hkbc-ox-header-actions { display: none; }
	.hkbc-ox-header.is-enhanced { position: fixed; inset: var(--hkbc-admin-bar-offset, 0px) 0 auto; }
	body.hkbc-ox-menu-ready { padding-top: 5.3rem; }
	.hkbc-ox-menu-toggle:not([hidden]) { display: flex; align-items: center; justify-content: center; }
	.hkbc-ox-header.is-enhanced .hkbc-ox-navigation { display: none; }
	.hkbc-ox-header.is-enhanced.is-open .hkbc-ox-navigation { display: block; max-height: calc(100svh - 5.3rem - var(--hkbc-admin-bar-offset, 0px)); overflow-y: auto; overscroll-behavior: contain; }
	.hkbc-ox-navigation-inner { display: block; width: 90%; padding-block: .75rem; }
	.hkbc-ox-navigation-inner > a, .hkbc-ox-nav-group > summary { min-height: 3rem; padding: .75rem .25rem; white-space: normal; }
	.hkbc-ox-nav-group > summary { justify-content: space-between; }
	.hkbc-ox-submenu { position: static; box-shadow: none; padding: 0 .75rem .5rem; border-top: 0; border-left: 2px solid var(--hkbc-purple-light); }
	.hkbc-ox-submenu a { padding: .65rem; }
	.hkbc-ox-languages { border-top: 1px solid #e9e0ec; padding-block: .5rem; }
	.hkbc-ox-inner { width: 90%; }
	.hkbc-ox-slide { min-height: 31.25rem; }
	.hkbc-ox-hero-copy { margin-left: 11.5%; width: 46%; padding-block: 2rem 6rem; }
	.hkbc-ox-hero-copy :is(h1,h2) { font-size: 1.5rem; line-height: 1.1; }
	.hkbc-ox-hero-photo { left: 56%; border-radius: 28% 0 0 10% / 55% 0 0 45%; }
	.hkbc-ox-welcome > .hkbc-ox-inner { grid-template-columns: minmax(0,1fr); }
	.hkbc-ox-principal-photo { width: min(100%,18.75rem); margin: 1rem auto; }
	.hkbc-ox-principal-copy { padding: 2rem 2rem 2rem 4rem; }
	.hkbc-ox-principal-copy h2 { font-size: 2.25rem; }
	.hkbc-ox-principal-columns { columns: auto; }
	.hkbc-ox-portals { gap: 1.5rem; }
	.hkbc-ox-values { gap: 2rem; }
	.hkbc-ox-values h3 { font-size: 1.7rem; }
	.hkbc-ox-news-grid { gap: 1.5rem; }
	.hkbc-ox-why-columns { grid-template-columns: 1fr 1fr; }
	.hkbc-ox-why-columns > :last-child { grid-column: 1/-1; justify-self: start; }
	.hkbc-ox-footer-quicklinks { gap: 2rem; }
}
@media (max-width: 767.98px) {
	.hkbc-oxbridge-home h2 { font-size: 2rem; }
	.hkbc-ox-slide { min-height: 30rem; }
	.hkbc-ox-hero-copy { width: 90%; margin-inline: auto; padding-block: 2.25rem 10.5rem; align-self: start; }
	.hkbc-ox-hero-copy :is(h1,h2) { max-width: 90%; font-size: 1.65rem; line-height: 1.22; margin-bottom: 1rem; }
	.hkbc-ox-hero-copy p { max-width: 28rem; }
	.hkbc-ox-hero-copy .hkbc-eyebrow { font-size: .9rem; }
	.hkbc-ox-hero-copy .hkbc-button { font-size: 1rem; min-height: 3rem; padding: .65rem 1rem; }
	.hkbc-ox-hero-photo { inset: 0; border: 0; border-radius: 0; }
	.hkbc-ox-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #350542ed, #350542a6 65%, #35054250); }
	.hkbc-ox-hero-photo img { object-position: 60% center; }
	.hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-photo { top: auto; height: 45%; }
	.hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-photo img { object-fit: contain; object-position: center bottom; }
	.hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-photo::after { background: linear-gradient(#620673bb, transparent 35%); }
	.hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-copy { padding-bottom: 15rem; }
	.hkbc-ox-hero-controls [data-hkbc-hero-prev], .hkbc-ox-hero-controls [data-hkbc-hero-next] { display: none; }
	.hkbc-ox-hero-dots { bottom: .5rem; left: 5%; transform: none; }
	.hkbc-ox-hero-controls [data-hkbc-hero-dot]::before { border-color: var(--hkbc-purple-deep); background: white; }
	.hkbc-ox-hero-controls [data-hkbc-hero-dot][aria-current="true"]::before { background: var(--hkbc-purple-deep); }
	.hkbc-ox-hero-controls [data-hkbc-hero-pause] { bottom: .5rem; right: 5%; }
	.hkbc-ox-welcome { padding: 2rem; }
	.hkbc-ox-welcome > .hkbc-ox-inner { grid-template-columns: minmax(0,1fr); }
	.hkbc-ox-principal-photo { width: min(100%, 17.2rem); margin: 0 auto; }
	.hkbc-ox-principal-copy { padding: 2rem 0; }
	.hkbc-ox-principal-copy h2 { font-size: 2rem; }
	.hkbc-ox-principal-columns { columns: auto; }
	.hkbc-ox-discover { padding-block: 4rem 3rem; }
	.hkbc-ox-values { grid-template-columns: minmax(0,1fr); gap: 2rem; margin-block: 2.5rem 3rem; }
	.hkbc-ox-values h3 { font-size: 2rem; margin-bottom: .6rem; }
	.hkbc-ox-portals, .hkbc-ox-news-grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
	.hkbc-ox-section-heading { align-items: start; flex-wrap: wrap; margin-bottom: 2rem; }
	.hkbc-ox-news-copy { padding: 2rem 1.5rem; }
	.hkbc-ox-why { min-height: 0; }
	.hkbc-ox-why > picture { position: static; }
	.hkbc-ox-why > picture img { height: auto; aspect-ratio: 2.9/1; object-position: 50% 75%; }
	.hkbc-ox-why-content { margin-top: 0; padding: 2rem 2rem 6rem; background: var(--hkbc-purple-deep); }
	.hkbc-ox-why-columns { grid-template-columns: minmax(0,1fr); gap: 1.125rem; }
	.hkbc-ox-footer-quicklinks { grid-template-columns: minmax(0,1fr); gap: 2rem; }
	.hkbc-ox-footer-brand { margin-bottom: 2rem; }
	.hkbc-ox-footer-base { width: 90%; display: block; padding-bottom: 2rem; }
	.hkbc-ox-footer-base > :last-child { max-width: none; margin-top: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
	.hkbc-ox-hero.is-enhanced .hkbc-ox-slide { transition: none; }
}
@media print {
	.hkbc-ox-header, .hkbc-ox-hero-controls { display: none !important; }
	body.hkbc-ox-menu-ready { padding-top: 0; }
	.hkbc-ox-hero-copy { width: auto; margin: 0; padding: 2rem; }
}
