/* LBBC World Class 10.0 — official identity, institutional header and editorial homepage */

:root {
	--lbbc-navy: #020b48;
	--lbbc-navy-dark: #010735;
	--lbbc-navy-deep: #010735;
	--lbbc-navy-soft: #10245a;
	--lbbc-navy-hero: #020b48;
	--lbbc-navy-panel: #10245a;
	--lbbc-red: #8c0101;
	--lbbc-red-dark: #740102;
	--lbbc-maroon: #8c0101;
	--lbbc-maroon-dark: #740102;
	--lbbc-light: #f4f5f8;
	--lbbc-line: #d8dce5;
	--lbbc-border: #d8dce5;
	--lbbc-muted: #5f6678;
	--lbbc-ink: #171b31;
}

body { color: var(--lbbc-ink); font-size: 15px; }
.eyebrow { color: var(--lbbc-red); }
.button--primary { border-color: var(--lbbc-red) !important; background: var(--lbbc-red) !important; }
.button--primary:hover { border-color: var(--lbbc-red-dark) !important; background: var(--lbbc-red-dark) !important; }

/* Original two-level LBBC header: compact service bar, calm white academic navigation. */
.utility-bar { position: relative; z-index: 102; border: 0; background: var(--lbbc-navy); }
.utility-bar__inner { min-height: 34px; }
.utility-menu a,
.utility-bar__contact a,
.utility-social a { color: rgba(255,255,255,.8); font-size: .64rem; letter-spacing: .035em; }
.utility-bar__contact { padding-left: 20px; border-left: 1px solid rgba(255,255,255,.2); }
.utility-social { display: none; }

.site-header {
	border: 0;
	border-bottom: 4px solid var(--lbbc-red);
	background: #fff;
	box-shadow: 0 8px 24px rgba(2,11,72,.08);
}
.site-header__inner { grid-template-columns: 270px minmax(0,1fr) auto; min-height: 86px; }
.site-branding a { display: inline-flex; align-items: center; }
.lbbc-brand-logo img,
.custom-logo { display: block; width: auto; max-width: 238px; max-height: 59px; object-fit: contain; }
.primary-menu { gap: clamp(10px,1.05vw,18px); }
.primary-menu > li > a,
.mega-menu-trigger { padding: 34px 0 31px; color: var(--lbbc-navy) !important; font-size: clamp(.64rem,.62vw,.73rem); font-weight: 760; }
.primary-menu > li > a:hover,
.mega-menu-trigger:hover,
.mega-menu-trigger[aria-expanded="true"] { color: var(--lbbc-red) !important; }
.menu-caret { color: var(--lbbc-red); font-size: .78rem; }
.site-search-toggle { height: 42px; padding: 0 11px; border-left: 1px solid var(--lbbc-line); color: var(--lbbc-navy); font-size: .68rem; }
.site-search-toggle:hover { color: var(--lbbc-red); }
.header-apply { min-height: 42px; padding-inline: 18px; }
.mega-menu-panel { top: 100%; border-top-color: var(--lbbc-red); box-shadow: 0 22px 50px rgba(2,11,72,.15); }
.site-search-panel { border: 0; background: var(--lbbc-navy); }
.site-search-panel input[type="search"] { border-radius: 0; }
.site-search-panel input[type="submit"] { background: var(--lbbc-red); }

/* Keep the programme finder in the exact LBBC palette. */
.programme-discovery { background: #f0f2f6; }
.programme-discovery__paths { border-right-color: #cbd0dc; }
.programme-subject-strip a { border-bottom-color: var(--lbbc-navy); }
.programme-subject-strip a:nth-child(even) { border-bottom-color: var(--lbbc-red); }

/* Inside LBBC: human stories with robust media handling and no decorative icon language. */
.inside-lbbc { overflow: hidden; padding-block: clamp(72px,8vw,112px); background: var(--lbbc-navy); color: #fff; }
.inside-lbbc__layout { display: grid; grid-template-columns: minmax(250px,.72fr) minmax(0,1.75fr); gap: clamp(50px,7vw,105px); align-items: start; }
.inside-lbbc .eyebrow { color: #ffb3b3; }
.inside-lbbc__intro h2 { margin: 0 0 24px; color: #fff; font-size: clamp(2.35rem,4.4vw,4.8rem); line-height: .98; }
.inside-lbbc__lead { max-width: 470px; color: rgba(255,255,255,.82); font-size: clamp(.95rem,1.15vw,1.12rem); line-height: 1.75; }
.inside-lbbc__note { display: grid; gap: 7px; margin: 34px 0; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); }
.inside-lbbc__note strong { font-family: Georgia,"Times New Roman",serif; font-size: 1.05rem; }
.inside-lbbc__note span { color: rgba(255,255,255,.62); font-size: .73rem; line-height: 1.65; }
.button--outline-light { border: 1px solid rgba(255,255,255,.68); border-radius: 0; background: transparent; color: #fff; }
.button--outline-light:hover { border-color: #fff; background: #fff; color: var(--lbbc-navy); }
.inside-lbbc__topline { display: flex; min-height: 50px; align-items: flex-start; justify-content: space-between; gap: 24px; border-bottom: 1px solid rgba(255,255,255,.25); }
.inside-lbbc__topline p { margin: 0; color: rgba(255,255,255,.75); font-size: .67rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.inside-lbbc__controls { display: flex; gap: 18px; }
.inside-lbbc__controls button { padding: 0 0 8px; border: 0; border-bottom: 1px solid rgba(255,255,255,.45); background: transparent; color: #fff; font-size: .66rem; font-weight: 750; text-transform: uppercase; }
.inside-lbbc__controls button:hover { border-bottom-color: #fff; }
.inside-lbbc__carousel { margin-top: 28px; }
.inside-lbbc__track { display: flex; gap: 20px; padding-bottom: 12px; }
.inside-story { flex: 0 0 min(320px,42%); min-width: 0; background: #fff; color: var(--lbbc-ink); scroll-snap-align: start; }
.inside-story__media { position: relative; aspect-ratio: 4/4.55; overflow: hidden; background: #e9ebf0; }
.inside-story__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.inside-story:hover .inside-story__media img { transform: scale(1.025); }
.inside-story__action { position: absolute; right: 0; bottom: 0; min-width: 112px; padding: 13px 16px; border: 0; background: var(--lbbc-red); color: #fff; font-size: .64rem; font-weight: 800; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.inside-story__action:hover { background: var(--lbbc-red-dark); color: #fff; }
.inside-story__body { min-height: 112px; padding: 21px 22px 23px; border-bottom: 3px solid var(--lbbc-red); }
.inside-story__body h3 { margin: 0 0 8px; color: var(--lbbc-navy); font-size: 1.12rem; line-height: 1.25; }
.inside-story__body p { margin: 0; color: var(--lbbc-muted); font-size: .72rem; }
.inside-lbbc .lbbc-carousel__footer { justify-content: flex-start; margin-top: 18px; }
.inside-lbbc .lbbc-carousel__dot { background: rgba(255,255,255,.45); }
.inside-lbbc .lbbc-carousel__dot.is-active { background: #fff; }

/* News and Events: newsroom hierarchy with a separate date-led calendar. */
.campus-pulse { padding-block: clamp(75px,8vw,112px); background: #fff; }
.campus-pulse__header { display: grid; grid-template-columns: .72fr 1fr auto; gap: clamp(34px,5vw,75px); align-items: end; margin-bottom: 44px; padding-bottom: 28px; border-bottom: 1px solid var(--lbbc-line); }
.campus-pulse__header h2 { margin: 0; font-size: clamp(2.2rem,3.5vw,3.8rem); }
.campus-pulse__header > p { margin: 0; color: var(--lbbc-muted); font-size: .9rem; line-height: 1.75; }
.campus-pulse__header nav { display: flex; gap: 20px; }
.campus-pulse__header nav a { padding-bottom: 7px; border-bottom: 1px solid var(--lbbc-red); color: var(--lbbc-navy); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.campus-pulse__grid { display: grid; grid-template-columns: 1.18fr .88fr .84fr; gap: 24px; align-items: stretch; }
.campus-feature { border: 1px solid var(--lbbc-line); background: #fff; }
.campus-feature__image { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--lbbc-light); }
.campus-feature__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.campus-feature:hover img { transform: scale(1.02); }
.campus-feature__body { padding: 27px 29px 31px; }
.campus-story-meta { display: flex; gap: 11px; margin: 0 0 12px; color: var(--lbbc-red); font-size: .61rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.campus-story-meta span { padding-left: 11px; border-left: 1px solid var(--lbbc-line); color: var(--lbbc-muted); }
.campus-feature h3 { margin: 0 0 13px; font-size: clamp(1.3rem,1.8vw,1.75rem); line-height: 1.2; }
.campus-feature h3 a,
.campus-news-item h3 a { color: var(--lbbc-navy); }
.campus-feature__body > p:not(.campus-story-meta),
.campus-news-item > div > p:not(.campus-story-meta) { color: var(--lbbc-muted); font-size: .78rem; line-height: 1.65; }
.campus-story-link { color: var(--lbbc-red); font-size: .65rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.campus-news-list { display: flex; flex-direction: column; border-top: 4px solid var(--lbbc-navy); }
.campus-news-list__title { display: flex; align-items: baseline; justify-content: space-between; padding: 20px 0 18px; border-bottom: 1px solid var(--lbbc-line); }
.campus-news-list__title h3 { margin: 0; font-size: 1.12rem; }
.campus-news-list__title span { color: var(--lbbc-muted); font-size: .58rem; text-transform: uppercase; }
.campus-news-item { display: grid; grid-template-columns: 122px minmax(0,1fr); gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--lbbc-line); }
.campus-news-item__image { aspect-ratio: 1/1; overflow: hidden; background: var(--lbbc-light); }
.campus-news-item__image img { width: 100%; height: 100%; object-fit: cover; }
.campus-news-item h3 { margin: 0 0 7px; font-size: 1rem; line-height: 1.28; }
.campus-news-item > div > p:not(.campus-story-meta) { display: none; }
.campus-news-item .campus-story-link { font-size: .58rem; }
.campus-news-list__all { margin-top: auto; padding: 20px 0; color: var(--lbbc-navy); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.campus-event-board { display: flex; flex-direction: column; padding: 30px; background: var(--lbbc-navy); color: #fff; }
.campus-event-board__head { padding-bottom: 22px; border-bottom: 1px solid rgba(255,255,255,.22); }
.campus-event-board__head p { margin: 0 0 6px; color: #ffb3b3; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.campus-event-board__head h3 { margin: 0; color: #fff; font-size: 1.55rem; }
.campus-event { display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 16px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.18); color: #fff; }
.campus-event time { display: flex; flex-direction: column; align-items: center; padding-right: 15px; border-right: 1px solid var(--lbbc-red); }
.campus-event time strong { font-family: Georgia,"Times New Roman",serif; font-size: 1.65rem; line-height: 1; }
.campus-event time span { margin-top: 5px; color: rgba(255,255,255,.7); font-size: .57rem; font-weight: 800; }
.campus-event > span { display: flex; flex-direction: column; }
.campus-event small { margin-bottom: 5px; color: #ffb3b3; font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.campus-event b { color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: .95rem; line-height: 1.28; }
.campus-event em { margin-top: 8px; color: rgba(255,255,255,.62); font-size: .62rem; font-style: normal; line-height: 1.45; }
.campus-event-board__all { margin-top: auto; padding-top: 24px; color: #fff; font-size: .64rem; font-weight: 800; text-transform: uppercase; }

@media (max-width: 1180px) {
	.site-header__inner { grid-template-columns: 225px minmax(0,1fr) auto; gap: 15px; }
	.lbbc-brand-logo img,.custom-logo { max-width: 205px; }
	.primary-menu { gap: 11px; }
	.primary-menu > li > a,.mega-menu-trigger { font-size: .62rem; }
	.campus-pulse__grid { grid-template-columns: 1.1fr .9fr; }
	.campus-event-board { grid-column: 1/-1; }
}

@media (max-width: 960px) {
	.utility-bar { display: none; }
	.site-header { border-bottom-width: 3px; }
	.site-header__inner { display: flex; min-height: 74px; }
	.site-branding { margin-right: auto; }
	.lbbc-brand-logo img,.custom-logo { max-width: 195px; max-height: 50px; }
	.menu-toggle { border: 1px solid var(--lbbc-line); background: #fff; color: var(--lbbc-navy); }
	.primary-navigation { top: 74px; border-top: 3px solid var(--lbbc-red); background: #fff; }
	.primary-menu > li > a,.mega-menu-trigger { padding: 15px 20px; color: var(--lbbc-navy) !important; }
	.header-actions { margin-left: 8px; }
	.site-search-toggle { border: 0; }
	.inside-lbbc__layout { grid-template-columns: 1fr; gap: 50px; }
	.inside-lbbc__intro { max-width: 650px; }
	.campus-pulse__header { grid-template-columns: 1fr 1fr; }
	.campus-pulse__header nav { grid-column: 1/-1; }
}

@media (max-width: 680px) {
	.site-header .lbbc-container { width: min(100% - 28px,var(--lbbc-header-max)); }
	.lbbc-brand-logo img,.custom-logo { max-width: 166px; }
	.header-actions .site-search-toggle { display: none; }
	.header-apply { min-height: 38px; padding-inline: 12px; font-size: .61rem; }
	.inside-story { flex-basis: min(285px,84vw); }
	.inside-lbbc__topline { align-items: center; }
	.inside-lbbc__controls { gap: 11px; }
	.campus-pulse__header { grid-template-columns: 1fr; gap: 22px; }
	.campus-pulse__header nav { grid-column: auto; flex-wrap: wrap; }
	.campus-pulse__grid { grid-template-columns: 1fr; }
	.campus-event-board { grid-column: auto; padding: 26px 22px; }
	.campus-news-item { grid-template-columns: 100px minmax(0,1fr); }
}
