/* School release 0.7.0: shared shell and editable core blocks.
 * Loaded after the retained historical presentation for rollback compatibility. */
body.hkbc-core-page {
	--hkbc-content: 83.25rem;
	--hkbc-font-base: 1.125rem;
	--hkbc-section-space: 4rem;
	--hkbc-gutter: clamp(1rem, 3.25vw, 2.75rem);
	font-size: 1.125rem;
	line-height: 1.75;
}
body.hkbc-core-page #header { display: none !important; }
.hkbc-core-page :is(.hkbc-ox-header,.hkbc-oxbridge-home,.hkbc-ox-footer) { --ox-inner: 83.25rem; }
.hkbc-core-page .hkbc-full-bleed { margin: 0; }
.hkbc-core-page #main > .ct-container-full { padding-block: 0; }
.hkbc-core-content { font-size: 1.125rem; line-height: 1.8; }
.hkbc-core-content :where(section,[id]) { scroll-margin-top: var(--hkbc-anchor-offset,2rem); }
.hkbc-core-container, .hkbc-core-content .hkbc-programme-explorer { width: min(100%,83.25rem); max-width: 83.25rem; margin-inline: auto; }
.hkbc-core-section { padding: var(--hkbc-section-space) var(--hkbc-gutter); margin-block: 0; }
.hkbc-core-section > .hkbc-core-container { margin-block: 0; }
.hkbc-core-container > :first-child { margin-top: 0; }
.hkbc-core-container > :last-child { margin-bottom: 0; }
.hkbc-core-content :is(.hkbc-core-container,.hkbc-core-section,.hkbc-core-card,.hkbc-staff-card).is-layout-constrained > * { max-width: none; }
.hkbc-core-content .hkbc-core-section .hkbc-home-copy { margin-bottom: 2rem; }
.hkbc-core-content .wp-block-heading { margin-bottom: 1rem; }
.hkbc-core-content .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .75rem 1.25rem; border: 1px solid var(--hkbc-purple); border-radius: .35rem; background: var(--hkbc-purple); color: white; font-size: 1.125rem; line-height: 1.5; text-decoration: none; }
.hkbc-core-content .wp-block-button__link:visited { color: white; }
.hkbc-core-content .wp-block-button__link:is(:hover,:focus-visible) { color: white; background: var(--hkbc-purple-deep); border-color: var(--hkbc-purple-deep); }
.hkbc-core-content .wp-block-group { box-sizing: border-box; }
.hkbc-core-content .wp-block-group > .wp-block-group__inner-container { width: 100%; }
/* Standalone section copy fills its container; columns, cards and verse keep their own layout.
 * Support both native blocks and WordPress's additional group inner wrapper. */
.hkbc-core-content .hkbc-core-section:not(#lyrics-zh):not(#lyrics-en) .hkbc-core-container > :is(p,ul,ol),
.hkbc-core-content .hkbc-core-section:not(#lyrics-zh):not(#lyrics-en) .hkbc-core-container > .wp-block-group__inner-container > :is(p,ul,ol),
.hkbc-core-content .hkbc-core-section .hkbc-core-container > :is(ul,ol) li,
.hkbc-core-content .hkbc-core-section .hkbc-core-container > .wp-block-group__inner-container > :is(ul,ol) li { max-width: none; }
/* Dated statements occupy their existing content container in both languages. */
.hkbc-core-content #statements .hkbc-school-statement :is(p,ul,ol,li) { max-width: none; }
/* Forum titles use the available width, with readable wrapping on small screens. */
.hkbc-core-content .hkbc-media-forum-list,
.hkbc-core-content .hkbc-media-forum-list > li { max-width: none; }
.hkbc-core-content .hkbc-media-forum-list > li + li { margin-top: .5rem; }
.hkbc-core-content .hkbc-media-forum-list a { overflow-wrap: anywhere; }
.hkbc-core-content .hkbc-leadership-event { width: 100%; max-width: none; }
/* Gutenberg supplies an inner container; the legacy outer two-column grid no longer applies. */
.hkbc-core-content .hkbc-core-section.hkbc-leader-message { display: block; }
.hkbc-leader-message .wp-block-columns.hkbc-core-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); align-items: start; gap: clamp(1.5rem,3.5vw,3rem); margin-block: 0; }
.hkbc-leader-message .hkbc-leader-portrait { width: min(100%,22rem); margin-inline: auto; }
.hkbc-core-content .hkbc-leader-message > .hkbc-core-container > h2 { max-width: none; margin: 0 0 1.75rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--hkbc-purple-light); font-size: clamp(1.875rem,3vw,2.5rem); line-height: 1.3; text-wrap: balance; }
.hkbc-leader-message .wp-block-column { min-width: 0; }
.hkbc-leader-message .wp-block-column:last-child { width: 100%; max-width: none; }
.hkbc-core-content .hkbc-leader-message .wp-block-column:last-child :is(p,li) { max-width: none; }
.hkbc-leader-message .wp-block-column:last-child > p { margin: 0 0 1.25em; line-height: 1.9; }
.hkbc-core-content .hkbc-leader-message .wp-block-column > h3 { margin: 2rem 0 .875rem; font-size: 1.25rem; line-height: 1.5; }
.hkbc-core-content .hkbc-leader-message .wp-block-column > h3:first-child { margin-top: 0; font-size: 1.5rem; color: var(--hkbc-purple-deep); }
.hkbc-leader-message .wp-block-column > ul { padding-left: 1.25em; margin: 0; }
.hkbc-leader-message .wp-block-column > ul > li { margin-block: .625em; line-height: 1.75; }
.hkbc-leader-message figcaption { text-align: center; }
:lang(zh-Hant-HK) .hkbc-leader-message .wp-block-column:last-child > p { line-height: 1.95; }
@media (max-width: 781.98px) {
	.hkbc-leader-message .wp-block-columns.hkbc-core-split { grid-template-columns: minmax(0,1fr); }
}
.hkbc-core-content :is(.hkbc-core-split,.hkbc-core-grid) > .wp-block-group { min-width: 0; margin-block: 0; }
.hkbc-core-content .wp-block-table { max-width: 100%; overflow-x: auto; }
.hkbc-core-content .wp-block-table.hkbc-core-table { min-width: 0; }
.hkbc-core-content .wp-block-table:focus-visible { outline: 3px solid var(--hkbc-focus); outline-offset: 4px; }
.hkbc-core-content .wp-block-table table { min-width: 32rem; width: 100%; border-collapse: collapse; font-size: 1rem; }
.hkbc-core-content .wp-block-table :is(th,td) { padding: .875rem 1rem; text-align: left; vertical-align: top; border: 1px solid var(--hkbc-border); }
.hkbc-core-content .wp-block-table th { background: var(--hkbc-surface-rose); color: var(--hkbc-purple-deep); }
.hkbc-core-content .wp-block-table figcaption { font-size: .9rem; }
.hkbc-core-content audio { display: block; width: min(100%,40rem); margin-block: 1.5rem; }
.hkbc-core-content .hkbc-school-song-video { width: 100%; margin: 1.5rem 0 0; }
.hkbc-school-song-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #17121b; border-radius: .35rem; }
.hkbc-school-song-video video:focus-visible { outline: 3px solid var(--hkbc-focus); outline-offset: 4px; }
.hkbc-core-content .hkbc-pending-notice { padding: 1rem 1.25rem; border-left: 3px solid var(--hkbc-purple-light); background: var(--hkbc-surface-soft); color: var(--hkbc-ink-muted); font-size: 1rem; }
.hkbc-core-content .hkbc-org-chart { padding-left: 1.5rem; border-left: 2px solid var(--hkbc-purple-light); }
.hkbc-org-chart li { margin-block: .75rem; }
.hkbc-staff-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.hkbc-staff-card { padding: 1.5rem; background: white; border: 1px solid var(--hkbc-border); border-radius: .625rem; min-width: 0; margin: 0; }
.hkbc-staff-card picture, .hkbc-staff-card .wp-block-image { max-width: 20rem; margin: 0 0 1.5rem; }
.hkbc-staff-card img { max-height: 25rem; object-fit: contain; object-position: left center; }
.hkbc-core-content .hkbc-staff-card .hkbc-staff-portrait { width: min(100%,14rem); margin: 0 0 1.5rem; }
.hkbc-staff-card .hkbc-staff-portrait picture { width: 100%; max-width: none; aspect-ratio: 4/5; margin: 0; overflow: hidden; border-radius: .625rem; background: var(--hkbc-surface-soft); }
.hkbc-staff-card .hkbc-staff-portrait img { width: 100%; height: 100%; max-height: none; object-fit: contain; object-position: center top; }
.hkbc-staff-card .hkbc-staff-labelled-portrait picture { aspect-ratio: auto; background: transparent; border-radius: 0; }
.hkbc-core-content .hkbc-staff-card .hkbc-staff-labelled-portrait { width: min(100%,11rem); }
.hkbc-staff-card .hkbc-staff-labelled-portrait img { width: auto; max-width: 100%; height: auto; }
.hkbc-staff-card > :last-child { margin-bottom: 0; }

/* School-supplied portraits preserve their complete native proportions. */
.hkbc-core-content .hkbc-staff-card.hkbc-staff-composite { padding: clamp(.75rem,2vw,1.5rem); }
.hkbc-core-content .hkbc-staff-composite .hkbc-staff-composite-image,
.hkbc-core-page .hkbc-leader-composite .hkbc-leader-composite-image { width: 100%; max-width: 640px; margin: 0 auto 1rem; }
.hkbc-core-content .hkbc-staff-composite .hkbc-staff-composite-image picture,
.hkbc-core-page .hkbc-leader-composite .hkbc-leader-composite-image picture { display: block; position: static; width: 100%; max-width: none; height: auto; aspect-ratio: auto; margin: 0; overflow: visible; border-radius: 0; background: transparent; }
.hkbc-core-content .hkbc-staff-composite .hkbc-staff-composite-image img,
.hkbc-core-page .hkbc-leader-composite .hkbc-leader-composite-image img { display: block; position: static; inset: auto; width: 100%; max-width: 100%; height: auto; max-height: none; object-fit: contain; object-position: center; border-radius: 0; }
.hkbc-core-page .hkbc-profile-enlarge { display: inline-block; margin-block: .25rem 1rem; text-underline-offset: .2em; overflow-wrap: anywhere; }
.hkbc-core-page .hkbc-profile-text { width: 100%; min-width: 0; max-width: none; margin-block: .5rem 1rem; text-align: left; }
.hkbc-core-page .hkbc-profile-text > summary { padding-block: .5rem; cursor: pointer; color: var(--hkbc-purple-deep); font-weight: 600; }
.hkbc-core-page .hkbc-profile-text > summary:focus-visible,
.hkbc-core-page .hkbc-profile-enlarge:focus-visible { outline: 3px solid var(--hkbc-focus); outline-offset: 4px; }
.hkbc-core-page .hkbc-profile-text :is(p,ul) { max-width: none; font-size: 1rem; overflow-wrap: anywhere; }
.hkbc-core-page .hkbc-profile-text ul { padding-left: 1.25em; }
.hkbc-core-page .hkbc-profile-text li { margin-block: .5em; }
.hkbc-core-page .hkbc-leader-composite-card { min-width: 0; }
.hkbc-core-page .hkbc-ox-welcome > .hkbc-ox-inner.hkbc-leader-composite,
.hkbc-core-content .hkbc-leader-message .wp-block-columns.hkbc-core-split.hkbc-leader-composite { grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
.hkbc-core-content #school-profile .hkbc-core-container > p,
.hkbc-core-content #school-profile .hkbc-core-container > .wp-block-group__inner-container > p { width: 100%; max-width: none; }

/* A light identity row preserves the colour and outlined lettering of the school logo. */
.hkbc-school-utility { background: var(--hkbc-purple-deep); color: white; }
.hkbc-school-utility-inner { width: min(calc(100% - 2 * var(--hkbc-gutter)),83.25rem); margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0 .75rem; }
.hkbc-school-utility-inner > a { margin-left: auto; }
.hkbc-school-utility a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem .75rem; color: white; font-size: 1rem; line-height: 1.5; text-decoration: underline; text-underline-offset: .2em; }
.hkbc-school-utility a:is(:visited,:hover,:focus-visible) { color: white; }
.hkbc-school-utility a:hover { background: var(--hkbc-purple); }
.hkbc-school-utility a:focus-visible { outline: 2px solid white; outline-offset: -4px; }
.hkbc-school-header .hkbc-ox-header-top { background: white; color: var(--hkbc-purple-deep); border-bottom: 1px solid #eee6f0; }
.hkbc-school-header .hkbc-ox-header-inner { width: min(calc(100% - 2 * var(--hkbc-gutter)),83.25rem); min-height: 6.5rem; gap: 1.5rem; padding-block: .875rem; }
.hkbc-school-header .hkbc-ox-brand { display: block; flex: 0 1 25rem; min-width: 0; }
.hkbc-ox-brand img { display: block; width: 100%; max-width: 25rem; height: auto; border-radius: 0; }
.hkbc-school-header .hkbc-ox-header-actions { gap: .5rem; }
.hkbc-school-header .hkbc-ox-header-actions a { color: var(--hkbc-purple-deep); padding: .7rem 1rem; font-size: 1rem; }
.hkbc-school-header .hkbc-ox-header-actions .hkbc-ox-visit-button { color: white; background: var(--hkbc-purple); border-color: var(--hkbc-purple); }
.hkbc-school-header .hkbc-ox-header-actions .hkbc-ox-contact-button { border-color: var(--hkbc-purple); }
.hkbc-school-header .hkbc-ox-header-actions a:hover { color: white; background: var(--hkbc-purple-deep); }
.hkbc-school-header .hkbc-ox-menu-toggle { color: var(--hkbc-purple-deep); flex-shrink: 0; }
.hkbc-school-header .hkbc-ox-navigation-inner { width: min(calc(100% - 2 * var(--hkbc-gutter)),83.25rem); position: relative; gap: .75rem; justify-content: space-between; }
.hkbc-school-menu { list-style: none; padding: 0; margin: 0; }
.hkbc-school-menu li { margin: 0; padding: 0; min-width: 0; }
.hkbc-school-menu--level-0 { display: flex; flex-wrap: wrap; min-width: 0; align-items: stretch; justify-content: space-between; flex: 1; gap: .25rem; }
.hkbc-school-menu--level-0 > li { display: flex; align-items: stretch; }
.hkbc-school-menu--level-0 > li > a, .hkbc-school-menu--level-0 > li > details > summary { display: flex; align-items: center; min-height: 3.75rem; padding: .75rem .45rem; font-size: .9375rem; white-space: normal; font-weight: 600; }
.hkbc-school-header .hkbc-ox-nav-group { position: static; max-width: 100%; }
.hkbc-school-header .hkbc-ox-nav-group > summary { line-height: 1.4; }
.hkbc-school-header .hkbc-ox-nav-group > summary::after { flex: 0 0 .38rem; }
.hkbc-school-header .hkbc-ox-nav-group:not([open]) > .hkbc-ox-submenu { display: none; }
.hkbc-school-header .hkbc-ox-submenu { left: 0; right: 0; top: 100%; padding: 1.25rem 1.5rem; max-height: calc(100svh - 11rem); overflow-y: auto; border-top: 3px solid var(--hkbc-purple); }
.hkbc-school-menu--level-1 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem 1.5rem; align-items: start; }
.hkbc-school-header .hkbc-ox-submenu a { min-height: 2.75rem; padding: .65rem .75rem; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; font-size: 1rem; }
.hkbc-school-header .hkbc-ox-submenu > .hkbc-nav-overview { font-weight: 700; border-bottom: 1px solid #e9e0ec; margin-bottom: .875rem; }
.hkbc-school-menu--level-1 summary { padding: .75rem; min-height: 2.75rem; font-size: 1rem; white-space: normal; }
.hkbc-school-header .hkbc-school-menu--level-1 .hkbc-ox-submenu { position: static; padding: 0 0 .25rem .5rem; border: 0; border-left: 2px solid var(--hkbc-purple-light); box-shadow: none; max-height: none; overflow: visible; }
.hkbc-school-header .hkbc-school-menu--level-1 .hkbc-nav-overview { border: 0; margin: 0; font-weight: 500; }
.hkbc-school-menu a[aria-current="page"] { font-weight: 700; text-decoration: underline; text-underline-offset: .25em; }

/* Full 4:3 student photographs; curved transitions occupy their own space. */
.hkbc-core-page .hkbc-ox-slide { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); grid-template-areas: "copy photo"; align-items: center; gap: 3rem; min-height: 0; padding: 3rem max(var(--hkbc-gutter),calc((100% - 83.25rem)/2)) 0; }
.hkbc-core-page .hkbc-ox-hero-copy { grid-area: copy; margin: 0; padding: 1rem 0; width: auto; max-width: none; align-self: center; }
.hkbc-core-page .hkbc-ox-hero-copy :is(h1,h2) { font-size: clamp(2.25rem,3.5vw,3.5rem); line-height: 1.2; max-width: none; }
.hkbc-core-page .hkbc-ox-hero-copy p { max-width: 36rem; }
.hkbc-core-page .hkbc-ox-hero-photo { grid-area: photo; position: relative; inset: auto; width: 100%; max-width: 43.75rem; height: auto; aspect-ratio: 4/3; border: 0; border-radius: .625rem; justify-self: end; background: #3d074d; }
.hkbc-core-page .hkbc-ox-hero-photo::after { display: none; }
.hkbc-core-page .hkbc-ox-hero-photo :is(picture,img) { width: 100%; height: 100%; }
.hkbc-core-page .hkbc-ox-hero-photo img, .hkbc-core-page .hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-photo img { object-fit: contain; object-position: center; }
.hkbc-core-page .hkbc-ox-hero { padding-bottom: 7.5rem; }
.hkbc-core-page .hkbc-ox-hero > .hkbc-ox-wave { height: 3.5rem; }
.hkbc-core-page .hkbc-ox-hero-controls { inset: auto 0 3.65rem; height: 3.125rem; display: flex; justify-content: center; align-items: center; gap: .4rem; }
.hkbc-core-page .hkbc-ox-hero-controls[hidden] { display: none; }
.hkbc-core-page .hkbc-ox-hero-controls :is([data-hkbc-hero-prev],[data-hkbc-hero-next],[data-hkbc-hero-pause]), .hkbc-core-page .hkbc-ox-hero-dots { position: static; inset: auto; transform: none; }
.hkbc-core-page .hkbc-ox-hero-controls :is([data-hkbc-hero-prev],[data-hkbc-hero-next]) { display: inline-flex; width: 2.75rem; height: 2.75rem; flex-shrink: 0; }
.hkbc-core-page .hkbc-ox-hero-dots { display: flex; }
.hkbc-core-page .hkbc-ox-hero-controls [data-hkbc-hero-dot]::before { background: transparent; border-color: white; }
.hkbc-core-page .hkbc-ox-hero-controls [data-hkbc-hero-dot][aria-current="true"]::before { background: white; }
.hkbc-core-page .hkbc-ox-hero-controls [data-hkbc-hero-pause] { min-width: 4.5rem; }
@media (max-width: 374.98px) {
	.hkbc-core-page .hkbc-ox-hero-controls [data-hkbc-hero-pause] { font-size: .75rem; line-height: 1.3; padding: .25rem .375rem; }
}
.hkbc-core-page :is(.hkbc-ox-welcome,.hkbc-ox-discover,.hkbc-ox-news) { padding: var(--hkbc-section-space) var(--hkbc-gutter); }
.hkbc-core-page :is(.hkbc-ox-welcome,.hkbc-ox-discover,.hkbc-ox-news) > .hkbc-ox-inner { width: min(100%,83.25rem); }
.hkbc-core-page .hkbc-ox-welcome > .hkbc-ox-inner { grid-template-columns: minmax(0,1fr) minmax(0,3fr); gap: 3rem; }
.hkbc-core-page .hkbc-ox-principal-photo { aspect-ratio: auto; border-radius: .625rem; margin: 0; align-self: start; background: transparent; }
.hkbc-core-page .hkbc-ox-principal-photo :is(picture,img) { height: auto; }
/* E30: crop the existing responsive image, leaving face, shoulders and hand intact. */
.hkbc-core-page :is(.hkbc-ox-welcome,#supervisor) .hkbc-leader-portrait picture { display: block; position: relative; aspect-ratio: 4/5; height: auto; overflow: hidden; border-radius: .625rem; background: var(--hkbc-surface-soft); }
.hkbc-core-page :is(.hkbc-ox-welcome,#supervisor) .hkbc-leader-portrait picture img { display: block; position: absolute; top: 4%; left: 4%; width: 92%; height: auto; max-height: none; object-fit: initial; }
.hkbc-core-page .hkbc-ox-principal-copy { padding: 0; }
.hkbc-core-page .hkbc-ox-principal-copy > :last-child { margin-bottom: 0; }
.hkbc-core-page .hkbc-ox-principal-columns { column-gap: 2rem; }
.hkbc-core-page .hkbc-ox-values { grid-template-columns: repeat(2,minmax(0,1fr)); margin-block: 2rem; gap: 2rem; text-align: left; }
.hkbc-core-page .hkbc-ox-values > details { min-width: 0; }
.hkbc-core-page .hkbc-ox-values h3 { font-size: clamp(1.4rem,2.4vw,2rem); }
.hkbc-core-page .hkbc-ox-section-heading { margin-bottom: 2rem; }
.hkbc-core-page .hkbc-ox-news-grid, .hkbc-core-page .hkbc-ox-portals { gap: 1.5rem; }
.hkbc-core-page .hkbc-ox-portal :is(h2,h3,p,a,a:visited) { color: white; }
.hkbc-core-page .hkbc-ox-portal > :not(figure) { margin-inline: 1.25rem; }
.hkbc-core-page .hkbc-ox-portal > h3 { margin-top: 1.25rem; }
.hkbc-core-page .hkbc-ox-portal > :last-child { margin-bottom: 1.25rem; }
.hkbc-core-page .hkbc-ox-portal a { text-decoration: underline; text-underline-offset: .2em; }
.hkbc-core-page .hkbc-ox-news-copy > h3 { font-size: 1.5rem; line-height: 1.35; text-transform: none; letter-spacing: -.015em; }
.hkbc-core-page .hkbc-ox-news-card > picture img { object-fit: contain; background: var(--hkbc-surface-soft); }
.hkbc-core-page .hkbc-ox-news-card > .hkbc-core-figure img { aspect-ratio: 3/2; object-fit: contain; background: var(--hkbc-surface-soft); }
.hkbc-core-page .hkbc-ox-why { min-height: 0; }
.hkbc-core-page .hkbc-ox-why :is(h2,h3,p) { color: white; }
.hkbc-core-page .hkbc-ox-why a:not(.hkbc-button):not(.wp-block-button__link) { color: white; }
.hkbc-core-page .hkbc-ox-why .wp-block-button__link { color: white; border-color: var(--hkbc-purple-light); }
.hkbc-core-page .hkbc-ox-why .wp-block-button__link:is(:hover,:focus-visible) { color: var(--hkbc-purple-deep); background: white; }
.hkbc-core-page .hkbc-ox-why-content { margin-top: 12rem; padding: var(--hkbc-section-space) var(--hkbc-gutter) 5rem; }
.hkbc-core-page .hkbc-ox-why-content > .hkbc-ox-inner { width: min(100%,83.25rem); }
.hkbc-core-page .hkbc-ox-why > .hkbc-ox-wave { height: 3rem; }

.hkbc-core-content .hkbc-school-footer { padding-top: var(--hkbc-section-space); }
.hkbc-school-footer .hkbc-school-footer-logo { flex: none; display: block; width: min(100%,26rem); background: white; padding: 1rem; border-radius: .4rem; }
.hkbc-school-footer .hkbc-ox-footer-identity { gap: 1rem; }
.hkbc-school-footer .hkbc-ox-footer-identity p { margin: 0; }
.hkbc-school-footer .hkbc-ox-footer-quicklinks { gap: 2rem; }
.hkbc-school-footer .hkbc-ox-footer-quicklinks h3 { font-size: 1.1rem; line-height: 1.4; margin-bottom: .75rem; text-transform: none; }
.hkbc-school-footer .hkbc-ox-footer-quicklinks ul { list-style: none; margin: 0; padding: 0; }
.hkbc-school-footer .hkbc-ox-footer-quicklinks a { display: inline-block; padding-block: .4rem; }
.hkbc-school-footer .hkbc-ox-footer-base { width: min(calc(100% - 2 * var(--hkbc-gutter)),83.25rem); padding: 2rem 0; }
.hkbc-school-footer .hkbc-ox-languages { justify-content: start; border: 0; margin-bottom: .5rem; }
.hkbc-school-footer .hkbc-ox-languages a { color: white; }

@media (max-width: 1099.98px) {
	body.hkbc-core-page { --hkbc-section-space: 2.5rem; }
	body.hkbc-core-page.hkbc-ox-menu-ready { padding-top: 0; }
	.hkbc-school-header.is-enhanced { position: sticky; inset: var(--hkbc-admin-bar-offset,0px) 0 auto; }
	.hkbc-school-header.is-enhanced.is-open .hkbc-ox-navigation { max-height: max(0px,calc(100svh - var(--hkbc-school-top-height,12rem) - var(--hkbc-admin-bar-offset,0px))); }
	.hkbc-school-header .hkbc-ox-header-inner { min-height: 5.3rem; padding-block: .75rem; }
	.hkbc-school-header .hkbc-ox-brand { flex-basis: 22rem; }
	.hkbc-school-header .hkbc-ox-navigation-inner { padding-block: .5rem; }
	.hkbc-school-menu--level-0 { display: block; }
	.hkbc-school-menu--level-0 > li { display: block; border-bottom: 1px solid #eee6f0; }
	.hkbc-school-menu--level-0 > li > a, .hkbc-school-menu--level-0 > li > details > summary { min-height: 3rem; font-size: 1rem; }
	.hkbc-school-menu--level-1 { display: block; }
	.hkbc-school-header .hkbc-ox-submenu { position: static; max-height: none; padding: 0 .25rem .5rem .75rem; border-top: 0; box-shadow: none; overflow: visible; }
	.hkbc-school-header .hkbc-ox-submenu a { padding: .65rem .25rem; }
	.hkbc-school-menu--level-1 summary { padding: .65rem .25rem; }
	.hkbc-core-page .hkbc-ox-slide { gap: 2rem; padding-top: 2rem; }
	.hkbc-core-page .hkbc-ox-hero-copy :is(h1,h2) { font-size: clamp(2rem,3.6vw,3rem); }
	.hkbc-core-page .hkbc-ox-welcome > .hkbc-ox-inner { grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 2rem; }
	.hkbc-core-page .hkbc-ox-principal-columns { columns: auto; }
	.hkbc-school-footer .hkbc-ox-footer-quicklinks { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767.98px) {
	body.hkbc-core-page { --hkbc-section-space: 1.75rem; }
	.hkbc-school-header .hkbc-ox-header-inner { gap: .5rem; }
	.hkbc-school-header .hkbc-ox-brand { flex-basis: 19rem; }
	.hkbc-core-page .hkbc-ox-slide { grid-template-columns: minmax(0,1fr); grid-template-areas: "copy" "photo"; gap: 1.25rem; padding-top: 1.5rem; }
	.hkbc-core-page .hkbc-ox-hero-copy { padding: 0; }
	.hkbc-core-page .hkbc-ox-hero-copy :is(h1,h2) { font-size: clamp(2rem,6.5vw,2.75rem); }
	.hkbc-core-page .hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-copy { padding-bottom: 0; }
	.hkbc-core-page .hkbc-ox-slide:not(:first-child) .hkbc-ox-hero-photo { height: auto; top: auto; }
	.hkbc-core-page .hkbc-ox-hero-photo { justify-self: center; }
	.hkbc-core-page .hkbc-ox-hero-controls { gap: .1rem; }
	.hkbc-core-page .hkbc-ox-welcome > .hkbc-ox-inner { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
	.hkbc-core-page .hkbc-ox-principal-photo { width: min(100%,19rem); margin-inline: auto; }
	.hkbc-core-page .hkbc-ox-principal-copy h2 { font-size: 2rem; }
	.hkbc-core-page .hkbc-ox-values { grid-template-columns: minmax(0,1fr); gap: 1.5rem; margin-block: 1.5rem; }
	.hkbc-core-page .hkbc-ox-why > picture img { aspect-ratio: auto; height: auto; object-fit: contain; }
	.hkbc-core-page .hkbc-ox-why-content { margin-top: 0; padding-top: var(--hkbc-section-space); }
	.hkbc-staff-grid { grid-template-columns: minmax(0,1fr); }
	.hkbc-school-footer .hkbc-ox-footer-quicklinks { gap: 1.5rem; }
	.hkbc-school-footer .hkbc-ox-footer-base { gap: 1.5rem; }
}
@media (max-width: 1023.98px) {
	.hkbc-staff-grid { grid-template-columns: minmax(0,1fr); }
	.hkbc-core-page .hkbc-ox-welcome > .hkbc-ox-inner.hkbc-leader-composite,
	.hkbc-core-content .hkbc-leader-message .wp-block-columns.hkbc-core-split.hkbc-leader-composite { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
	.hkbc-core-page .hkbc-leader-composite-card { width: 100%; }
}
@media (max-width: 479.98px) {
	.hkbc-school-footer .hkbc-ox-footer-quicklinks { grid-template-columns: minmax(0,1fr); }
}
/* Full school group above the welcome, with uncropped community photographs. */
.hkbc-core-page .hkbc-ox-welcome > .hkbc-ox-inner.hkbc-welcome-community { display: block; }
.hkbc-core-page .hkbc-welcome-community > :is(.hkbc-welcome-group-photo,.hkbc-welcome-video) { width: 100%; max-width: none; margin: 0 0 clamp(1.5rem,3vw,2.5rem); }
.hkbc-core-page .hkbc-welcome-group-photo :is(picture,img),
.hkbc-core-content .hkbc-community-gallery :is(picture,img) { display: block; width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; }
.hkbc-core-page .hkbc-welcome-group-photo img { border-radius: .4rem; }
/* WordPress auto sizes uses size containment, so keep an explicit source ratio. */
.hkbc-core-page .hkbc-welcome-group-photo img { aspect-ratio: 16 / 9; }
.hkbc-core-content .hkbc-community-gallery img { aspect-ratio: 6048 / 4024; }
.hkbc-core-content .hkbc-community-gallery picture[data-hkbc-media-id="community0710-interview-group"] img { aspect-ratio: 941 / 706; }
.hkbc-core-content .hkbc-community-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 1.5rem; margin-top: 1.5rem; }
.hkbc-core-content .hkbc-community-gallery > figure { width: 100%; min-width: 0; margin: 0; }
@media (max-width: 1023.98px) {
	.hkbc-core-content .hkbc-community-gallery { grid-template-columns: minmax(0,1fr); gap: 1rem; }
}
@media print {
	.hkbc-school-header, .hkbc-school-footer { display: none !important; }
	.hkbc-core-page .hkbc-ox-hero { padding-bottom: 0; }
	.hkbc-core-page .hkbc-ox-slide { display: block; padding: 1rem; }
	.hkbc-core-page .hkbc-ox-slide:not(:first-child) { display: none; }
	.hkbc-core-page .hkbc-ox-hero-photo { max-width: 30rem; }
}
