/* LBBC World Class 12.0 — flat editorial system and direct Elementor editing. */

:root {
	--lbbc-navy: #020b48;
	--lbbc-navy-dark: #010735;
	--lbbc-navy-soft: #10245a;
	--lbbc-red: #8c0101;
	--lbbc-red-dark: #700101;
	--lbbc-ink: #171b31;
	--lbbc-muted: #5f6678;
	--lbbc-light: #f3f4f7;
	--lbbc-cream: #f7f4f0;
	--lbbc-line: #d6dae3;
	--lbbc-border: #d6dae3;
	--lbbc-section-background: transparent;
}

html { scroll-behavior: smooth; }
body { background: #fff; color: var(--lbbc-ink); font-size: 15px; line-height: 1.65; }
body,
button,
input,
select,
textarea { font-family: Arial, Helvetica, sans-serif; }
h1,
h2,
h3,
h4,
h5,
h6 { color: var(--lbbc-navy); font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: -.018em; }
a { text-underline-offset: 3px; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible { outline: 3px solid #d9a1a1; outline-offset: 3px; }

/* A precise two-level institutional header. */
.utility-bar { background: var(--lbbc-navy); }
.utility-bar__inner { min-height: 36px; }
.utility-menu,
.utility-bar__contact { gap: 20px; }
.utility-menu a,
.utility-bar__contact a { color: #fff; font-size: .67rem; font-weight: 650; letter-spacing: .025em; opacity: .86; }
.utility-menu a:hover,
.utility-bar__contact a:hover { color: #fff; opacity: 1; }
.site-header { position: sticky; top: 0; border-bottom: 3px solid var(--lbbc-red); background: #fff; box-shadow: 0 5px 18px rgba(2,11,72,.07); }
.admin-bar .site-header { top: 32px; }
.site-header__inner { grid-template-columns: minmax(205px,248px) minmax(0,1fr) auto; gap: clamp(18px,2.4vw,38px); min-height: 82px; }
.lbbc-brand-logo img,
.custom-logo { max-width: 226px; max-height: 58px; }
.primary-menu { justify-content: flex-end; gap: clamp(11px,1.12vw,20px); }
.primary-menu > li > a,
.mega-menu-trigger { position: relative; padding: 32px 0 29px; color: var(--lbbc-navy) !important; font-size: .69rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; white-space: nowrap; }
.primary-menu > li > a::after,
.mega-menu-trigger::after { position: absolute; right: 0; bottom: 22px; left: 0; height: 2px; background: var(--lbbc-red); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.primary-menu > li > a:hover::after,
.primary-menu > .current-menu-item > a::after,
.mega-menu-trigger:hover::after,
.mega-menu-trigger[aria-expanded="true"]::after { transform: scaleX(1); }
.menu-caret { margin-left: 5px; font-size: .7rem; }
.header-actions { gap: 10px; }
.site-search-toggle { min-width: 60px; height: 40px; padding: 0 12px; border: 1px solid var(--lbbc-line); color: var(--lbbc-navy); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.header-apply { min-height: 40px; padding-inline: 17px; }
.mega-menu-panel { border-top: 3px solid var(--lbbc-red); background: #fff; box-shadow: 0 20px 38px rgba(2,11,72,.12); }
.mega-menu-column { border-right-color: var(--lbbc-line); }
.mega-menu-column h3::after { height: 2px; border-radius: 0; background: var(--lbbc-red); }
.mega-menu-feature,
.mega-feature-card { border-radius: 0; }

/* Restrained type and spacing across front and inner pages. */
.section { padding-block: clamp(64px,7vw,96px); }
.section-heading { margin-bottom: clamp(30px,4vw,48px); }
.section-heading h2 { font-size: clamp(2rem,3.3vw,3.25rem); line-height: 1.08; }
.section-heading p { max-width: 700px; color: var(--lbbc-muted); font-size: .94rem; }
.eyebrow,
.hero-eyebrow { color: var(--lbbc-red); font-size: .66rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.button { min-height: 43px; border-radius: 0; font-size: .68rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.text-link { color: var(--lbbc-red); font-size: .68rem; font-weight: 800; text-transform: uppercase; }

/* Homepage hero: intentional editorial balance, with no decorative icon column. */
.hero-section { background: var(--lbbc-navy); }
.hero-section__inner--three-column { grid-template-columns: minmax(310px,.95fr) minmax(390px,1.18fr) minmax(180px,.4fr); min-height: clamp(610px,72vh,760px); }
.hero-copy { padding: clamp(55px,6vw,88px) clamp(30px,4.6vw,72px) clamp(55px,6vw,88px) 0; }
.hero-copy h1 { max-width: 680px; color: #fff; font-size: clamp(2.65rem,4.8vw,5.3rem); line-height: .98; }
.hero-copy > p:not(.hero-eyebrow) { max-width: 590px; color: rgba(255,255,255,.82); font-size: .98rem; }
.hero-media { min-height: 100%; border-left: 1px solid rgba(255,255,255,.18); border-right: 1px solid rgba(255,255,255,.18); }
.hero-media::after { background: rgba(2,11,72,.2); }
.hero-stats { padding: clamp(34px,4vw,58px) 0 clamp(34px,4vw,58px) clamp(26px,2.8vw,42px); background: var(--lbbc-navy-soft); }
.hero-stat { border-bottom-color: rgba(255,255,255,.2); }
.hero-stat::before { display: none; }
.hero-stat small { color: rgba(255,255,255,.7); font-size: .59rem; letter-spacing: .08em; }
.hero-stat strong { color: #fff; font-size: clamp(1.65rem,2.4vw,2.3rem); }

/* Finder patterned after a real university task flow, kept distinctly LBBC. */
.programme-discovery { background: var(--lbbc-light); }
.programme-discovery__grid { grid-template-columns: minmax(270px,.66fr) minmax(0,1.7fr); }
.programme-discovery__paths { padding-right: clamp(38px,5vw,76px); border-right: 1px solid #c9ced9; }
.programme-discovery__paths h2 { font-size: clamp(2.25rem,4.3vw,4.2rem); line-height: 1.02; }
.programme-discovery__finder { padding-left: clamp(38px,5vw,76px); }
.programme-discovery__intro { max-width: 850px; color: #353b4f; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.18rem,2vw,1.8rem); line-height: 1.45; }
.programme-discovery__form input,
.programme-discovery__form select { min-height: 58px; border: 1px solid #cbd0db; border-radius: 0; background: #fff; }
.programme-subject-strip a { border: 1px solid #cbd0db; border-bottom: 3px solid var(--lbbc-navy); border-radius: 0; background: #fff; box-shadow: none; }
.programme-subject-strip a:nth-child(even) { border-bottom-color: var(--lbbc-red); }
.trust-section { padding-block: clamp(58px,6vw,82px); }
.trust-section__heading { align-items: end; margin-bottom: 34px; padding-bottom: 28px; border-bottom: 1px solid var(--lbbc-line); }
.trust-section__heading > p { max-width: 620px; }

/* Flat, readable cards that feel maintained by a real institution. */
.programme-card,
.school-card,
.pathway-card,
.benefit-item,
.staff-card,
.news-card,
.event-card,
.enquiry-form-card { border: 1px solid var(--lbbc-line); border-radius: 0; background: #fff; box-shadow: none; }
.programme-card:hover,
.school-card:hover,
.pathway-card:hover,
.benefit-item:hover,
.staff-card:hover { box-shadow: none; transform: translateY(-2px); }
.programme-card__image,
.school-card__image,
.staff-card__image { border-radius: 0; }
.programme-card__body,
.school-card__body,
.staff-card__body { padding: 24px; }
.pathway-card { border-top: 3px solid var(--lbbc-navy); }
.pathway-card:nth-child(even) { border-top-color: var(--lbbc-red); }
.benefit-item { border-left: 3px solid var(--lbbc-red); }
.benefit-item::before,
.pathway-card::before { display: none; }

/* Inner pages use a consistent editorial title band and calmer content canvas. */
.inner-page-hero,
.inner-hero { min-height: 300px; background: var(--lbbc-navy); color: #fff; }
.inner-page-hero::after { display: none; }
.inner-page-hero__inner { min-height: 300px; padding-block: clamp(58px,7vw,84px); }
.inner-page-hero h1,
.inner-hero h1 { max-width: 950px; color: #fff; font-size: clamp(2.55rem,5.2vw,5rem); line-height: 1; }
.inner-page-hero__text,
.inner-hero p,
.inner-hero .archive-description { max-width: 760px; color: rgba(255,255,255,.8); font-size: .96rem; }
.page-content-shell,
.prose-content { color: #2d3345; }
.prose-content h2 { padding-top: .45em; border-top: 1px solid var(--lbbc-line); font-size: clamp(1.7rem,2.7vw,2.55rem); }
.staff-filter,
.programme-filter-panel { border: 1px solid var(--lbbc-line); border-radius: 0; background: var(--lbbc-light); box-shadow: none; }
.staff-filter input,
.staff-filter select,
.programme-filter-panel input,
.programme-filter-panel select { border-radius: 0; background: #fff; }
.staff-grid { gap: 22px; }
.staff-card__placeholder { background: var(--lbbc-light); }

/* News desk and events board retain hierarchy with exact brand colours. */
.campus-pulse { background: #fff; }
.campus-pulse__header h2 { font-size: clamp(2.15rem,3.5vw,3.5rem); }
.campus-feature,
.campus-news-list { border-radius: 0; box-shadow: none; }
.campus-event-board { background: var(--lbbc-navy); }
.inside-lbbc { background: var(--lbbc-navy); }
.inside-lbbc__intro h2 { font-size: clamp(2.4rem,4vw,4.2rem); }
.inside-story { border: 1px solid rgba(255,255,255,.2); }
.student-life-banner { border-radius: 0; box-shadow: none; }
.student-life-banner__content { background: var(--lbbc-navy); }
.enquiry-section { background: var(--lbbc-navy); }

/* Elementor: the selected section is visibly editable but unchanged for visitors. */
.lbbc-elementor-section-control { width: 100%; min-width: 0; background: var(--lbbc-section-background); }
.lbbc-elementor-section-control > section { margin: 0; }
.elementor-editor-active .lbbc-elementor-section-control { position: relative; }
.elementor-editor-active .elementor-widget-lbbc-dynamic-section.elementor-element-editable > .elementor-widget-container { outline: 1px dashed rgba(140,1,1,.48); outline-offset: 4px; }

@media (max-width: 1180px) {
	.site-header__inner { grid-template-columns: 205px minmax(0,1fr) auto; gap: 15px; }
	.lbbc-brand-logo img,
	.custom-logo { max-width: 196px; }
	.primary-menu { gap: 10px; }
	.primary-menu > li > a,
	.mega-menu-trigger { font-size: .61rem; }
	.hero-section__inner--three-column { grid-template-columns: minmax(300px,.9fr) minmax(360px,1.1fr) 175px; }
}

@media (max-width: 960px) {
	.admin-bar .site-header { top: 46px; }
	.site-header__inner { min-height: 72px; }
	.primary-navigation { top: 72px; }
	.primary-menu > li > a,
	.mega-menu-trigger { padding: 15px 20px; font-size: .74rem; }
	.primary-menu > li > a::after,
	.mega-menu-trigger::after { display: none; }
	.hero-section__inner--three-column { display: grid; grid-template-columns: 1fr; min-height: 0; }
	.hero-copy { padding: 60px 0 44px; }
	.hero-media { min-height: 430px; border: 0; }
	.hero-stats { display: grid; grid-template-columns: repeat(2,1fr); padding: 10px 24px 28px; }
	.hero-stat { padding: 24px 12px; }
	.hero-stats__link { grid-column: 1/-1; }
	.programme-discovery__grid { grid-template-columns: 1fr; }
	.programme-discovery__paths { padding: 60px 0 36px; border-right: 0; border-bottom: 1px solid #c9ced9; }
	.programme-discovery__finder { padding: 42px 0 60px; }
}

@media (max-width: 680px) {
	body { font-size: 14px; }
	.site-header { top: 0; }
	.admin-bar .site-header { top: 46px; }
	.header-apply { display: none; }
	.hero-copy h1 { font-size: clamp(2.45rem,13vw,3.8rem); }
	.hero-media { min-height: 330px; }
	.hero-stats { grid-template-columns: 1fr 1fr; padding-inline: 14px; }
	.programme-discovery__paths h2 { font-size: 2.55rem; }
	.programme-discovery__form { grid-template-columns: 1fr; }
	.programme-subject-strip { grid-template-columns: 1fr 1fr; }
	.section { padding-block: 58px; }
	.inner-page-hero,
	.inner-page-hero__inner,
	.inner-hero { min-height: 245px; }
}

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