/* Public website layout: header, navigation, footer, popup, cookie consent (scoped to body.front-site) */
body.front-site {
  --front-dark: #0f172a;
  --front-radius: 16px;
  --front-shadow: 0 10px 30px -12px rgba(15, 23, 42, 0.18);
  background: #fff;
  font-family: var(--front-body-font, 'Inter', sans-serif);
  color: var(--text-main);
  overflow-x: hidden;
}
body.front-site * { font-family: inherit; }
body.front-site .fa-solid, body.front-site .fa-regular, body.front-site .fa-brands, body.front-site .fa-solid::before { font-family: "Font Awesome 6 Free"; }
body.front-site .fa-brands { font-family: "Font Awesome 6 Brands"; }
body.front-site .fa-solid { font-weight: 900; }
body.front-site .fa-regular { font-weight: 400; }
body.front-site h1, body.front-site h2, body.front-site h3, body.front-site h4, body.front-site h5 { font-family: var(--front-heading-font, 'Inter', sans-serif); line-height: 1.25; }
body.front-site a { color: inherit; }
body.front-site .btn-primary { background: var(--primary); box-shadow: 0 6px 18px -6px color-mix(in srgb, var(--primary) 70%, transparent); color: #fff; }
body.front-site .btn-primary:hover { background: var(--primary-hover); color: #fff; }
body.front-site .btn-outline:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }

/* Editorial university layout: a quieter, reading-led composition for the fourth public version. */
body.front-layout-editorial { --editorial-ink: #18231f; --editorial-muted: #66736d; --editorial-paper: #f5f3ed; background: var(--editorial-paper); color: var(--editorial-ink); }
body.front-layout-editorial .front-header, body.front-layout-editorial .front-main { background: var(--editorial-paper); }
body.front-layout-editorial .front-header { border-bottom: 1px solid #d9ddd5; }
body.front-layout-editorial .editorial-masthead { padding: clamp(74px, 10vw, 144px) 0 96px; background: linear-gradient(130deg, #f5f3ed 0%, #eceee7 100%); }
body.front-layout-editorial .editorial-masthead-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(230px, .65fr); gap: clamp(38px, 8vw, 120px); align-items: end; }
body.front-layout-editorial .editorial-kicker { color: var(--primary); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
body.front-layout-editorial .editorial-masthead h1 { max-width: 11ch; margin: 14px 0 22px; font-size: clamp(3.2rem, 7vw, 7.2rem); line-height: .94; letter-spacing: -.07em; }
body.front-layout-editorial .editorial-masthead-copy > p { max-width: 620px; color: var(--editorial-muted); font-size: 1.1rem; line-height: 1.8; }
body.front-layout-editorial .editorial-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 30px; }
body.front-layout-editorial .editorial-text-link { color: var(--editorial-ink); font-size: .84rem; font-weight: 750; text-decoration: none; }
body.front-layout-editorial .editorial-text-link:hover { color: var(--primary); }
body.front-layout-editorial .editorial-masthead-aside { border-left: 1px solid #cfd5cc; padding-left: 30px; color: var(--editorial-muted); }
body.front-layout-editorial .editorial-masthead-aside strong { display: block; margin-top: 18px; color: var(--editorial-ink); font-family: var(--front-heading-font); font-size: 2.5rem; letter-spacing: -.06em; }
body.front-layout-editorial .editorial-aside-label { color: var(--editorial-ink); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
body.front-layout-editorial .editorial-rule { height: 1px; margin: 24px 0; background: #cfd5cc; }
body.front-layout-editorial .editorial-intro { padding-block: 76px; background: #fff; }
body.front-layout-editorial .editorial-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: end; }
body.front-layout-editorial .editorial-intro h2, body.front-layout-editorial .editorial-section-head h2 { max-width: 12ch; margin: 12px 0 0; font-size: clamp(2rem, 4vw, 4rem); line-height: 1; letter-spacing: -.06em; }
body.front-layout-editorial .editorial-intro p { margin: 0; color: var(--editorial-muted); font-size: 1.1rem; line-height: 1.8; }
body.front-layout-editorial .editorial-academics, body.front-layout-editorial .editorial-news { background: var(--editorial-paper); }
body.front-layout-editorial .editorial-programmes { background: #fff; }
body.front-layout-editorial .editorial-section-head { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 34px; }
body.front-layout-editorial .editorial-college-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
body.front-layout-editorial .editorial-college-card { display: flex; min-height: 310px; flex-direction: column; padding: 24px; border-top: 3px solid var(--primary); background: #fff; color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
body.front-layout-editorial .editorial-college-card:hover { transform: translateY(-5px); box-shadow: 0 18px 35px rgba(24, 35, 31, .1); }
body.front-layout-editorial .editorial-college-number { color: #a4ada4; font-size: .75rem; font-weight: 800; }
body.front-layout-editorial .editorial-college-code { margin-top: 44px; color: var(--primary); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
body.front-layout-editorial .editorial-college-card h3 { margin: 9px 0 10px; font-size: 1.25rem; letter-spacing: -.035em; }
body.front-layout-editorial .editorial-college-card p { margin: 0; color: var(--editorial-muted); line-height: 1.6; }
body.front-layout-editorial .editorial-card-meta { margin-top: auto; padding-top: 22px; color: var(--editorial-ink); font-size: .8rem; font-weight: 750; }
body.front-layout-editorial .editorial-card-meta i, body.front-layout-editorial .editorial-news a i { margin-left: 7px; color: var(--primary); }
body.front-layout-editorial .editorial-programme-list { border-top: 1px solid #d9ddd5; }
body.front-layout-editorial .editorial-programme-list a { display: grid; grid-template-columns: 1fr 2fr 1.3fr auto; gap: 20px; align-items: center; padding: 21px 0; border-bottom: 1px solid #d9ddd5; color: inherit; text-decoration: none; }
body.front-layout-editorial .editorial-programme-list a:hover strong { color: var(--primary); }
body.front-layout-editorial .editorial-programme-list span { color: var(--primary); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
body.front-layout-editorial .editorial-programme-list strong { font-size: 1.05rem; }
body.front-layout-editorial .editorial-programme-list small { color: var(--editorial-muted); }
body.front-layout-editorial .editorial-programme-list i { color: var(--primary); }
body.front-layout-editorial .editorial-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
body.front-layout-editorial .editorial-news article { padding: 26px; border: 1px solid #d9ddd5; background: #fff; }
body.front-layout-editorial .editorial-news article > span { color: var(--primary); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
body.front-layout-editorial .editorial-news h3 { margin: 17px 0 11px; font-size: 1.35rem; letter-spacing: -.035em; }
body.front-layout-editorial .editorial-news p { min-height: 70px; color: var(--editorial-muted); line-height: 1.65; }
body.front-layout-editorial .editorial-news a { color: var(--editorial-ink); font-size: .82rem; font-weight: 750; text-decoration: none; }
body.front-layout-editorial .editorial-cta { padding: 56px 0; background: var(--editorial-ink); color: #fff; }
body.front-layout-editorial .editorial-cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 25px; }
body.front-layout-editorial .editorial-cta h2 { margin: 10px 0 0; font-size: clamp(2rem, 4vw, 3.7rem); letter-spacing: -.06em; }
body.front-layout-editorial .editorial-cta .editorial-kicker { color: #a8d99c; }
@media (max-width: 900px) { body.front-layout-editorial .editorial-college-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.front-layout-editorial .editorial-programme-list a { grid-template-columns: 1fr 2fr auto; } body.front-layout-editorial .editorial-programme-list small { display: none; } }
@media (max-width: 640px) { body.front-layout-editorial .editorial-masthead-grid, body.front-layout-editorial .editorial-intro-grid { grid-template-columns: 1fr; gap: 34px; } body.front-layout-editorial .editorial-masthead h1 { font-size: clamp(3rem, 16vw, 5rem); } body.front-layout-editorial .editorial-college-grid, body.front-layout-editorial .editorial-news-grid { grid-template-columns: 1fr; } body.front-layout-editorial .editorial-section-head, body.front-layout-editorial .editorial-cta-inner { align-items: flex-start; flex-direction: column; } body.front-layout-editorial .editorial-programme-list a { grid-template-columns: 1fr auto; } body.front-layout-editorial .editorial-programme-list span { grid-column: 1 / -1; } }

/* Aurora learning journey: luminous cards, guided tabs and a soft interactive atmosphere. */
body.front-aurora { background: #f7f9ff; color: #17213c; }
body.front-aurora .front-header { background: rgba(255,255,255,.88); backdrop-filter: blur(18px); }
body.front-aurora .aurora-hero { position: relative; overflow: hidden; background: linear-gradient(135deg,#f1f5ff 0%,#fff 48%,#eefbfa 100%); }
body.front-aurora .aurora-hero-grid { display:grid; grid-template-columns: minmax(0,1fr) minmax(360px,.9fr); gap:50px; align-items:center; min-height:690px; padding-block:90px; }
body.front-aurora .aurora-glow { position:absolute; width:430px; height:430px; border-radius:50%; filter:blur(4px); opacity:.45; pointer-events:none; }
body.front-aurora .aurora-glow--one { top:-170px; left:-90px; background:#b9caff; }
body.front-aurora .aurora-glow--two { right:-130px; bottom:-170px; background:#a9efe4; }
body.front-aurora .aurora-hero-copy, body.front-aurora .aurora-hero-art { position:relative; z-index:1; }
body.front-aurora .aurora-pill { display:inline-flex; align-items:center; gap:8px; padding:8px 13px; border:1px solid #d8e2ff; border-radius:999px; background:rgba(255,255,255,.75); color:#455fc5; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
body.front-aurora .aurora-hero h1 { max-width:10ch; margin:19px 0 22px; color:#152247; font-size:clamp(3.4rem,7vw,7.3rem); line-height:.94; letter-spacing:-.075em; }
body.front-aurora .aurora-hero-copy > p { max-width:600px; color:#5f6e91; font-size:1.12rem; line-height:1.8; }
body.front-aurora .aurora-actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:30px; }
body.front-aurora .aurora-play-link { display:inline-flex; align-items:center; gap:10px; color:#17213c; font-size:.85rem; font-weight:800; text-decoration:none; }
body.front-aurora .aurora-play-link span { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#fff; color:#657be0; box-shadow:0 8px 22px rgba(48,72,147,.12); }
body.front-aurora .aurora-trust { display:flex; align-items:center; gap:12px; margin-top:34px; color:#7784a0; font-size:.82rem; }
body.front-aurora .aurora-trust p { margin:0; }
body.front-aurora .aurora-avatar-stack { display:flex; }
body.front-aurora .aurora-avatar-stack span { display:grid; place-items:center; width:31px; height:31px; margin-left:-7px; border:2px solid #f1f5ff; border-radius:50%; background:#7d90ec; color:#fff; font-size:.72rem; font-weight:800; }
body.front-aurora .aurora-avatar-stack span:first-child { margin-left:0; background:#2eb6ae; }
body.front-aurora .aurora-avatar-stack span:last-child { background:#f09c65; }
body.front-aurora .aurora-hero-art { min-height:500px; }
body.front-aurora .aurora-orbit { position:absolute; top:50%; left:50%; border:1px solid rgba(102,124,220,.22); border-radius:50%; transform:translate(-50%,-50%); }
body.front-aurora .aurora-orbit--outer { width:min(42vw,510px); height:min(42vw,510px); animation:aurora-spin 28s linear infinite; }
body.front-aurora .aurora-orbit--inner { width:min(28vw,340px); height:min(28vw,340px); border-color:rgba(46,182,174,.25); animation:aurora-spin 19s linear infinite reverse; }
body.front-aurora .aurora-core { position:absolute; top:50%; left:50%; display:flex; width:150px; height:150px; align-items:center; justify-content:center; flex-direction:column; gap:3px; border-radius:48% 52% 50% 50%; background:linear-gradient(145deg,#7586e6,#4c66cc); color:#fff; box-shadow:0 25px 65px rgba(72,93,199,.35); transform:translate(-50%,-50%); }
body.front-aurora .aurora-core i { margin-bottom:4px; font-size:2rem; }
body.front-aurora .aurora-core strong { font-size:1.15rem; }
body.front-aurora .aurora-core small { opacity:.8; }
body.front-aurora .aurora-float { position:absolute; display:grid; grid-template-columns:auto 1fr; column-gap:10px; min-width:150px; padding:13px 15px; border:1px solid rgba(255,255,255,.8); border-radius:15px; background:rgba(255,255,255,.82); box-shadow:0 16px 36px rgba(55,74,143,.12); color:#65718c; font-size:.68rem; backdrop-filter:blur(14px); }
body.front-aurora .aurora-float i { grid-row:span 2; align-self:center; color:#6479df; font-size:1.1rem; }
body.front-aurora .aurora-float strong { color:#17213c; font-size:.78rem; }
body.front-aurora .aurora-float--top { top:9%; left:5%; }
body.front-aurora .aurora-float--right { top:43%; right:0; }
body.front-aurora .aurora-float--bottom { bottom:8%; left:13%; }
@keyframes aurora-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
body.front-aurora .aurora-section-heading { max-width:650px; margin-bottom:34px; }
body.front-aurora .aurora-section-heading--row { display:flex; justify-content:space-between; align-items:end; max-width:none; gap:28px; }
body.front-aurora .aurora-kicker { color:#5e74db; font-size:.7rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
body.front-aurora .aurora-section-heading h2 { margin:11px 0 9px; color:#17213c; font-size:clamp(2rem,4vw,4rem); line-height:1; letter-spacing:-.06em; }
body.front-aurora .aurora-section-heading p { margin:0; color:#71809e; line-height:1.7; }
body.front-aurora .aurora-tabs { padding:25px; border:1px solid #e1e7fb; border-radius:28px; background:#fff; box-shadow:0 18px 45px rgba(76,94,165,.08); }
body.front-aurora .aurora-tab-list { display:flex; gap:8px; margin-bottom:20px; }
body.front-aurora .aurora-tab-list button { border:0; border-radius:999px; padding:10px 17px; background:#f2f5ff; color:#7784a0; cursor:pointer; font:inherit; font-size:.8rem; font-weight:800; }
body.front-aurora .aurora-tab-list button.is-active { background:#6579df; color:#fff; box-shadow:0 8px 18px rgba(101,121,223,.25); }
body.front-aurora .aurora-tab-panel { display:none; grid-template-columns:1.2fr .8fr; gap:28px; align-items:stretch; min-height:280px; padding:27px; border-radius:20px; background:linear-gradient(125deg,#f4f7ff,#f3fffd); }
body.front-aurora .aurora-tab-panel.is-active { display:grid; animation:aurora-fade .28s ease both; }
@keyframes aurora-fade { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
body.front-aurora .aurora-panel-number { color:#8291e8; font-size:.72rem; font-weight:850; letter-spacing:.1em; }
body.front-aurora .aurora-tab-panel h3 { max-width:430px; margin:15px 0 11px; color:#17213c; font-size:clamp(1.55rem,3vw,2.45rem); letter-spacing:-.05em; }
body.front-aurora .aurora-tab-panel p { max-width:500px; color:#697797; line-height:1.7; }
body.front-aurora .aurora-arrow-link { color:#5369d2; font-size:.82rem; font-weight:850; text-decoration:none; }
body.front-aurora .aurora-arrow-link i { margin-left:7px; }
body.front-aurora .aurora-panel-visual { display:grid; min-height:220px; place-items:center; border-radius:18px; background:#dbe4ff; color:#6177e0; font-size:4rem; }
body.front-aurora .aurora-panel-visual--apply { background:#d8f6ee; color:#2ca992; }
body.front-aurora .aurora-panel-visual--grow { background:#fff0d9; color:#e59753; }
body.front-aurora .aurora-colleges { background:#fff; }
body.front-aurora .aurora-college-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
body.front-aurora .aurora-college-card { position:relative; display:flex; min-height:230px; flex-direction:column; padding:23px; overflow:hidden; border:1px solid #e4e8f3; border-radius:21px; background:#fff; color:inherit; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
body.front-aurora .aurora-college-card:hover { transform:translateY(-6px); box-shadow:0 19px 40px rgba(76,94,165,.12); }
body.front-aurora .aurora-college-icon { display:grid; place-items:center; width:43px; height:43px; border-radius:13px; background:#edf0ff; color:#6579df; }
body.front-aurora .aurora-college-code { margin-top:21px; color:#8b97b2; font-size:.66rem; font-weight:850; letter-spacing:.12em; }
body.front-aurora .aurora-college-card h3 { margin:7px 0 9px; color:#17213c; font-size:1.16rem; letter-spacing:-.03em; }
body.front-aurora .aurora-college-card p { margin:0; color:#78849f; font-size:.82rem; }
body.front-aurora .aurora-card-arrow { position:absolute; right:22px; bottom:23px; color:#6579df; }
body.front-aurora .aurora-metric-band { padding:39px 0; background:#17213c; color:#fff; }
body.front-aurora .aurora-metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
body.front-aurora .aurora-metric-grid div { display:grid; gap:5px; border-left:1px solid rgba(255,255,255,.18); padding-left:20px; }
body.front-aurora .aurora-metric-grid strong { font-size:2rem; letter-spacing:-.05em; }
body.front-aurora .aurora-metric-grid span { color:#aeb9d1; font-size:.78rem; }
body.front-aurora .aurora-final-cta { padding:72px 0; background:linear-gradient(110deg,#eff3ff,#e8fbf7); }
body.front-aurora .aurora-final-cta-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; }
body.front-aurora .aurora-final-cta h2 { max-width:600px; margin:11px 0 0; color:#17213c; font-size:clamp(2rem,4vw,4rem); line-height:1; letter-spacing:-.06em; }

/* Studio programme showcase: a confident, editorial catalogue with filters and accordions. */
body.front-studio { background:#f6f2ea; color:#1b1b1d; }
body.front-studio .front-header { background:#f6f2ea; border-bottom:1px solid #d9d1c4; }
body.front-studio .studio-hero { position:relative; overflow:hidden; background:#1b1b1d; color:#fff; }
body.front-studio .studio-hero-inner { position:relative; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(230px,.6fr); gap:70px; align-items:end; min-height:650px; padding-block:100px; z-index:1; }
body.front-studio .studio-hero h1 { max-width:9ch; margin:17px 0 24px; font-size:clamp(3.7rem,8vw,8.3rem); line-height:.86; letter-spacing:-.085em; }
body.front-studio .studio-hero p { max-width:560px; color:#c6c2be; font-size:1.15rem; line-height:1.75; }
body.front-studio .studio-label { color:#f2c27b; font-size:.68rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
body.front-studio .studio-label--dark { color:#bd6a3a; }
body.front-studio .studio-hero-shape { position:absolute; border-radius:50%; opacity:.65; filter:blur(1px); }
body.front-studio .studio-hero-shape--one { width:550px; height:550px; top:-270px; right:-70px; background:radial-gradient(circle,#d27b5c 0,#6e3d45 48%,transparent 70%); }
body.front-studio .studio-hero-shape--two { width:430px; height:430px; bottom:-260px; left:22%; background:radial-gradient(circle,#496b76 0,#1b1b1d 68%); }
body.front-studio .studio-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:23px; margin-top:32px; }
body.front-studio .studio-button { display:inline-flex; align-items:center; gap:10px; padding:14px 19px; border-radius:2px; font-size:.8rem; font-weight:850; text-decoration:none; }
body.front-studio .studio-button--light { background:#f2c27b; color:#1b1b1d; }
body.front-studio .studio-button--light:hover { background:#fff0c9; }
body.front-studio .studio-ghost-link { color:#fff; font-size:.8rem; font-weight:750; text-decoration:underline; text-underline-offset:5px; }
body.front-studio .studio-hero-card { display:grid; gap:15px; max-width:260px; padding:24px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); backdrop-filter:blur(10px); }
body.front-studio .studio-hero-card span { color:#f2c27b; font-size:.68rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
body.front-studio .studio-hero-card strong { font-size:1.4rem; line-height:1.15; letter-spacing:-.04em; }
body.front-studio .studio-hero-card i { color:#f2c27b; }
body.front-studio .studio-heading-row { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:33px; }
body.front-studio .studio-heading-row h2, body.front-studio .studio-faq h2 { max-width:12ch; margin:12px 0 0; font-size:clamp(2.2rem,4.6vw,4.6rem); line-height:.98; letter-spacing:-.075em; }
body.front-studio .studio-heading-row > p { max-width:330px; margin:0; color:#746f69; line-height:1.65; }
body.front-studio .studio-filter-bar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
body.front-studio .studio-filter-bar button { border:1px solid #d8cfc3; border-radius:999px; padding:9px 15px; background:transparent; color:#746f69; cursor:pointer; font:inherit; font-size:.75rem; font-weight:800; }
body.front-studio .studio-filter-bar button.is-active, body.front-studio .studio-filter-bar button:hover { border-color:#bd6a3a; background:#bd6a3a; color:#fff; }
body.front-studio .studio-programme-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
body.front-studio .studio-programme-card { display:flex; min-height:300px; flex-direction:column; padding:21px; border:1px solid #d8cfc3; background:#fbf9f5; color:inherit; text-decoration:none; transition:background .2s ease, transform .2s ease; }
body.front-studio .studio-programme-card:hover { transform:translateY(-6px); background:#fff; }
body.front-studio .studio-programme-card[hidden] { display:none; }
body.front-studio .studio-programme-number { color:#aaa198; font-size:.73rem; font-weight:850; }
body.front-studio .studio-programme-award { margin-top:37px; color:#bd6a3a; font-size:.66rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
body.front-studio .studio-programme-card h3 { margin:9px 0 10px; font-size:1.17rem; line-height:1.15; letter-spacing:-.035em; }
body.front-studio .studio-programme-card p { margin:0; color:#746f69; font-size:.78rem; line-height:1.5; }
body.front-studio .studio-programme-open { margin-top:auto; padding-top:23px; color:#1b1b1d; font-size:.75rem; font-weight:850; }
body.front-studio .studio-programme-open i { margin-left:7px; color:#bd6a3a; }
body.front-studio .studio-empty { grid-column:1 / -1; padding:40px; border:1px dashed #c8bfb3; color:#746f69; text-align:center; }
body.front-studio .studio-signal { padding:100px 0; background:#d9e4df; }
body.front-studio .studio-signal-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
body.front-studio .studio-signal-copy h2 { max-width:9ch; margin:12px 0 17px; font-size:clamp(2.5rem,5vw,5rem); line-height:.93; letter-spacing:-.08em; }
body.front-studio .studio-signal-copy p { max-width:500px; color:#56655e; line-height:1.75; }
body.front-studio .studio-underlined-link { display:inline-flex; gap:9px; margin-top:17px; color:#1b1b1d; font-size:.8rem; font-weight:850; text-decoration:underline; text-underline-offset:5px; }
body.front-studio .studio-signal-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
body.front-studio .studio-signal-cards article { display:grid; min-height:175px; align-content:end; gap:5px; padding:22px; background:#f6f2ea; }
body.front-studio .studio-signal-cards article i { align-self:start; color:#bd6a3a; font-size:1.4rem; }
body.front-studio .studio-signal-cards strong { font-size:2.1rem; letter-spacing:-.07em; }
body.front-studio .studio-signal-cards span { color:#746f69; font-size:.75rem; }
body.front-studio .studio-faq { background:#fbf9f5; }
body.front-studio .studio-faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
body.front-studio .studio-details details { padding:19px 0; border-bottom:1px solid #d8cfc3; }
body.front-studio .studio-details summary { cursor:pointer; list-style:none; font-size:1.1rem; font-weight:800; }
body.front-studio .studio-details summary::-webkit-details-marker { display:none; }
body.front-studio .studio-details summary::after { float:right; content:'+'; color:#bd6a3a; font-size:1.4rem; }
body.front-studio .studio-details details[open] summary::after { content:'−'; }
body.front-studio .studio-details p { max-width:640px; margin:13px 0 0; color:#746f69; line-height:1.7; }
body.front-studio .studio-footer-cta { padding:90px 0; background:#bd6a3a; color:#fff; }
body.front-studio .studio-footer-cta h2 { max-width:9ch; margin:13px 0 28px; font-size:clamp(2.8rem,6vw,6rem); line-height:.9; letter-spacing:-.08em; }
body.front-studio .studio-footer-cta .studio-label { color:#ffe1a8; }

/* Shared institution catalogue block. It appears only for institution or both profiles. */
body.front-site .front-profile-catalogue { background: #fff; }
body.front-site .front-profile-catalogue-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:30px; }
body.front-site .front-profile-catalogue-kicker { color:var(--primary); font-size:.7rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
body.front-site .front-profile-catalogue-heading h2 { max-width:620px; margin:10px 0 8px; font-size:clamp(2rem,4vw,3.8rem); line-height:1; letter-spacing:-.06em; }
body.front-site .front-profile-catalogue-heading p { max-width:620px; margin:0; color:#71809e; line-height:1.7; }
body.front-site .front-profile-catalogue-link { color:var(--primary); font-size:.8rem; font-weight:850; text-decoration:none; white-space:nowrap; }
body.front-site .front-profile-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
body.front-site .front-profile-course-card { display:flex; min-height:245px; flex-direction:column; padding:24px; border:1px solid #e1e7ed; border-radius:18px; background:#fbfdff; color:inherit; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
body.front-site .front-profile-course-card:hover { transform:translateY(-5px); box-shadow:0 18px 35px rgba(36,52,73,.11); }
body.front-site .front-profile-course-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:var(--primary-light); color:var(--primary); }
body.front-site .front-profile-course-label { margin-top:20px; color:var(--primary); font-size:.67rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
body.front-site .front-profile-course-card h3 { margin:9px 0 8px; font-size:1.15rem; letter-spacing:-.03em; }
body.front-site .front-profile-course-card p { margin:0; color:#71809e; line-height:1.55; }
body.front-site .front-profile-course-card strong { display:block; margin-top:auto; padding-top:18px; color:var(--primary); font-size:.82rem; }
body.front-site .front-profile-course-card strong i { margin-left:6px; }
@media (max-width:700px) { body.front-site .front-profile-catalogue-heading { align-items:flex-start; flex-direction:column; } body.front-site .front-profile-course-grid { grid-template-columns:1fr; } }
@media (max-width: 980px) { body.front-aurora .aurora-hero-grid, body.front-studio .studio-hero-inner { grid-template-columns:1fr; } body.front-aurora .aurora-hero-art { min-height:390px; } body.front-studio .studio-hero-card { max-width:320px; } body.front-aurora .aurora-college-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } body.front-studio .studio-programme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) { body.front-aurora .aurora-section-heading--row, body.front-aurora .aurora-final-cta-inner, body.front-studio .studio-heading-row { align-items:flex-start; flex-direction:column; } body.front-aurora .aurora-tab-panel { grid-template-columns:1fr; } body.front-aurora .aurora-metric-grid { grid-template-columns:repeat(2,1fr); } body.front-aurora .aurora-orbit--outer { width:330px; height:330px; } body.front-aurora .aurora-orbit--inner { width:230px; height:230px; } body.front-aurora .aurora-float--right { right:-4px; } body.front-studio .studio-signal-grid, body.front-studio .studio-faq-grid { grid-template-columns:1fr; gap:40px; } body.front-studio .studio-programme-grid { grid-template-columns:1fr; } body.front-studio .studio-signal-cards { grid-template-columns:1fr 1fr; } }
@media (max-width: 460px) { body.front-aurora .aurora-hero-art { min-height:330px; transform:scale(.86); transform-origin:center; margin-inline:-24px; } body.front-aurora .aurora-metric-grid { grid-template-columns:1fr 1fr; gap:16px; } body.front-studio .studio-signal-cards { grid-template-columns:1fr; } }

/* Optional campus showcase layout. Colors come from the existing website theme settings. */
body.front-campus { background: linear-gradient(115deg, #fff 0 61%, color-mix(in srgb, var(--primary) 8%, #fff) 61% 100%); }
body.front-campus .front-header, body.front-campus .front-main, body.front-campus .front-footer { width: min(1480px, calc(100% - 48px)); margin-inline: auto; }
body.front-campus .front-header, body.front-campus .front-main { background: #fff; }
body.front-campus .front-header { margin-top: 28px; border: 1px solid #e8ece7; border-radius: 30px 30px 0 0; box-shadow: 0 24px 70px -48px rgba(20, 45, 32, .35); }
body.front-campus .front-main { box-shadow: 0 24px 70px -48px rgba(20, 45, 32, .35); }
body.front-campus .front-footer { margin-bottom: 28px; border-radius: 0 0 30px 30px; box-shadow: 0 24px 70px -48px rgba(20, 45, 32, .35); }
body.front-campus .front-hero { padding-block: clamp(64px, 9vw, 132px); }
body.front-campus .front-hero--one, body.front-campus .front-hero--two, body.front-campus .front-hero--three { background: #fff; }
body.front-campus .front-hero-inner { gap: clamp(32px, 7vw, 100px); }
body.front-campus .front-hero-title { max-width: 13ch; font-size: clamp(2.75rem, 5.5vw, 5.1rem); letter-spacing: -.055em; line-height: 1.02; }
body.front-campus .front-hero-media { min-height: 370px; }
body.front-campus .front-hero-img { filter: drop-shadow(0 22px 28px rgba(30, 56, 43, .13)); }
body.front-home .front-admission-strip { background: linear-gradient(110deg, #062b88, #075bd4); color: #fff; padding: 28px 0; }
body.front-home .front-admission-strip-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; }
body.front-home .front-admission-strip h2 { margin:4px 0 6px; font-size:clamp(1.6rem,3vw,2.6rem); letter-spacing:-.04em; }
body.front-home .front-admission-strip p { margin:0; color:#dff7ff; max-width:680px; }
body.front-home .front-admission-strip .front-eyebrow { color:#8ee8ff; }
body.front-home .front-admission-actions { display:flex; align-items:center; gap:20px; flex-shrink:0; }
body.front-home .front-admission-actions .front-text-link { color:#fff; }
body.front-home .front-faculty-showcase { background:#e6f8ff; }
body.front-home .front-faculty-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
body.front-home .front-faculty-card { display:flex; flex-direction:column; min-height:245px; padding:26px; border:1px solid #d8e8f5; border-radius:22px; background:#fff; color:inherit; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
body.front-home .front-faculty-card:hover { transform:translateY(-5px); box-shadow:0 18px 38px rgba(7,91,212,.12); border-color:#7bdcf7; }
body.front-home .front-faculty-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:15px; background:#e6f8ff; color:#075bd4; font-size:1.2rem; }
body.front-home .front-faculty-code { margin-top:20px; color:#075bd4; font-size:.72rem; font-weight:800; letter-spacing:.12em; }
body.front-home .front-faculty-card h3 { margin:7px 0 8px; font-size:1.25rem; letter-spacing:-.025em; }
body.front-home .front-faculty-card p { margin:0; color:#52677f; line-height:1.65; }
body.front-home .front-faculty-meta { margin-top:auto; padding-top:22px; color:#075bd4; font-size:.78rem; font-weight:700; }
body.front-home .front-faculty-meta i { margin-left:8px; }
body.front-home .front-programme-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
body.front-home .front-programme-card { padding:24px; min-height:180px; border-radius:18px; background:#fff; border:1px solid #e6e9ef; box-shadow:0 8px 22px rgba(36,52,73,.05); color:inherit; text-decoration:none; }
body.front-home .front-programme-card:hover { border-color:#7bdcf7; box-shadow:0 16px 34px rgba(7,91,212,.10); }
body.front-home .front-programme-award { color:#90651f; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
body.front-home .front-programme-card h3 { margin:14px 0 8px; font-size:1.1rem; }
body.front-home .front-programme-card p { margin:0 0 22px; color:#72808b; font-size:.85rem; }
body.front-home .front-programme-card > span:last-child { color:#075bd4; font-size:.82rem; font-weight:700; }
body.front-home .front-academic-register { background: linear-gradient(180deg,#f7fbff 0,#fff 100%); }
body.front-home .front-academic-summary { display:flex; flex-wrap:wrap; gap:10px; margin:-22px 0 24px; }
body.front-home .front-academic-summary span { padding:8px 14px; border:1px solid #d9e9f4; border-radius:999px; color:#52677f; background:#fff; font-size:.84rem; }
body.front-home .front-academic-summary strong { color:#075bd4; margin-right:4px; }
body.front-home .front-academic-tree { display:grid; gap:14px; }
body.front-home .front-academic-college { border:1px solid #dce8f1; border-radius:18px; background:#fff; overflow:hidden; box-shadow:0 10px 28px rgba(36,52,73,.05); }
body.front-home .front-academic-college > summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 24px; cursor:pointer; list-style:none; color:#102a43; }
body.front-home .front-academic-college > summary::-webkit-details-marker { display:none; }
body.front-home .front-academic-college > summary span { display:flex; align-items:center; gap:12px; font-size:1.12rem; }
body.front-home .front-academic-college > summary i { color:#075bd4; }
body.front-home .front-academic-college > summary small { color:#73859a; font-size:.78rem; }
body.front-home .front-academic-faculties { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:0 18px 18px; }
body.front-home .front-academic-faculty { padding:18px; border:1px solid #e5edf3; border-radius:14px; background:#fbfdff; }
body.front-home .front-academic-node-heading { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
body.front-home .front-academic-node-heading a { color:#102a43; font-weight:750; text-decoration:none; }
body.front-home .front-academic-node-heading a:hover { color:#075bd4; }
body.front-home .front-academic-code { color:#075bd4; font-size:.64rem; font-weight:800; letter-spacing:.1em; }
body.front-home .front-academic-departments { display:grid; gap:10px; margin-top:17px; padding-left:14px; border-left:2px solid #dff2fb; }
body.front-home .front-academic-department { display:grid; gap:9px; }
body.front-home .front-academic-department .front-academic-node-heading a { font-size:.92rem; }
body.front-home .front-academic-programmes { display:grid; gap:7px; padding-left:10px; }
body.front-home .front-academic-programme { display:grid; gap:3px; padding:10px 12px; border-radius:10px; background:#fff; color:#102a43; text-decoration:none; border:1px solid #edf1f4; }
body.front-home .front-academic-programme:hover { border-color:#7bdcf7; box-shadow:0 8px 18px rgba(7,91,212,.08); }
body.front-home .front-academic-programme strong { font-size:.86rem; }
body.front-home .front-academic-programme span, body.front-home .front-academic-programme small { color:#72808b; font-size:.72rem; }
body.front-home .front-academic-programme small { color:#075bd4; }
body.front-home .front-academic-empty { margin:12px 0 0; color:#8392a1; font-size:.8rem; }
@media(max-width:900px){body.front-home .front-admission-strip-inner{align-items:flex-start;flex-direction:column}.front-admission-actions{flex-wrap:wrap}body.front-home .front-faculty-grid,body.front-home .front-programme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body.front-home .front-academic-faculties{grid-template-columns:1fr}}
@media(max-width:560px){body.front-home .front-faculty-grid,body.front-home .front-programme-grid{grid-template-columns:1fr}body.front-home .front-academic-college > summary{align-items:flex-start;flex-direction:column;gap:7px}}

/* Shared MHRT/GCITU content bridge used by every alternate home presentation. */
.front-mhrt-content { background: linear-gradient(180deg, #f7fbff 0, #fff 100%); }
.front-mhrt-pricing { background: linear-gradient(180deg, #f7fbff 0, #fff 100%); }
.front-mhrt-content .front-section-head--left { text-align: left; }
.front-mhrt-tier-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.front-mhrt-tier-card { position:relative; display:flex; flex-direction:column; min-height:100%; padding:26px; overflow:hidden; border:1px solid #dce8f1; border-radius:22px; background:#fff; box-shadow:0 14px 34px rgba(36,52,73,.07); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.front-mhrt-tier-card::before { position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,#075bd4,#36c9e8); content:""; }
.front-mhrt-tier-card:hover { border-color:#a9d7ec; box-shadow:0 20px 42px rgba(36,52,73,.12); transform:translateY(-4px); }
.front-mhrt-tier-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.front-mhrt-tier-number { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#e9f7ff; color:#075bd4; font-size:.86rem; font-weight:900; }
.front-mhrt-tier-label { color:#075bd4; font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.front-mhrt-tier-card h3 { margin:12px 0 8px; color:#102a43; font-size:1.08rem; line-height:1.2; }
.front-mhrt-tier-audience { min-height:44px; color:#52677f; font-weight:700; line-height:1.45; }
.front-mhrt-tier-card p { margin:9px 0 0; color:#63768b; font-size:.82rem; line-height:1.55; }
.front-mhrt-tier-card p strong { color:#102a43; }
.front-mhrt-tier-programmes { margin-top:16px; padding-top:15px; border-top:1px solid #edf2f6; }
.front-mhrt-tier-programmes strong { color:#102a43; font-size:.78rem; }
.front-mhrt-tier-programmes ul { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0 0; padding:0; list-style:none; }
.front-mhrt-tier-programmes li { padding:7px 9px; border:1px solid #d9e9f4; border-radius:999px; background:#f7fbff; color:#52677f; font-size:.72rem; line-height:1.25; }
.front-mhrt-tier-meta { display:grid; gap:10px; margin-top:18px; }
.front-mhrt-tier-meta div { display:grid; gap:3px; }
.front-mhrt-tier-meta span { color:#7a8b9c; font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.front-mhrt-tier-meta strong { color:#102a43; font-size:.82rem; line-height:1.45; }
.front-mhrt-tier-action { align-self:flex-start; margin-top:auto; }
.front-mhrt-lower-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:22px; }
.front-mhrt-article-card,.front-mhrt-facts-card { padding:28px; border-radius:18px; border:1px solid #dce8f1; background:#fff; }
.front-mhrt-article-card h3 { margin:12px 0 10px; color:#102a43; font-size:1.55rem; letter-spacing:-.03em; }
.front-mhrt-article-card p { max-width:650px; margin:0 0 20px; color:#63768b; line-height:1.7; }
.front-mhrt-facts-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px; }
.front-mhrt-facts-grid > div { padding:15px; border-radius:13px; background:#f4f9fc; }
.front-mhrt-facts-grid strong { color:#075bd4; font-size:.78rem; letter-spacing:.12em; }
.front-mhrt-facts-grid h4 { margin:7px 0 4px; color:#102a43; font-size:.95rem; }
.front-mhrt-facts-grid p { margin:0; color:#63768b; font-size:.78rem; line-height:1.5; }
@media(max-width:1100px){.front-mhrt-tier-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:700px){.front-mhrt-tier-grid,.front-mhrt-lower-grid{grid-template-columns:1fr}.front-mhrt-facts-grid{grid-template-columns:1fr}.front-mhrt-tier-card{min-height:0}.front-mhrt-tier-audience{min-height:0}}
body.front-campus .front-hero-placeholder { background: linear-gradient(145deg, color-mix(in srgb, var(--primary) 65%, #000), color-mix(in srgb, var(--primary) 65%, #fff)); color: #fff; }
body.front-campus .front-campus-features { padding: 34px 0; background: color-mix(in srgb, var(--primary) 5%, #fff); }
.front-campus-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.front-campus-feature-grid article { display: flex; align-items: center; gap: 16px; }
.front-campus-feature-grid h2 { margin: 0 0 5px; font-size: 1.08rem; }
.front-campus-feature-grid p { margin: 0; color: var(--text-muted, #647067); font-size: .92rem; line-height: 1.5; }
.front-campus-feature-icon { width: 62px; height: 62px; flex: 0 0 62px; display: grid; place-items: center; border-radius: 16px; color: var(--primary); background: #fff; box-shadow: 0 8px 26px -18px rgba(0,0,0,.4); font-size: 1.35rem; }
body.front-campus .front-section { padding-block: clamp(54px, 7vw, 92px); }
body.front-campus .front-section-head { margin-bottom: 48px; }
body.front-campus .front-section-head h2 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 400; letter-spacing: -.04em; }
body.front-campus .front-testimonials { background: color-mix(in srgb, var(--primary) 5%, #fff); }
body.front-campus .front-testimonial { min-height: 220px; padding: 30px; border: 1px solid color-mix(in srgb, var(--primary) 17%, #e5e7eb); border-radius: 4px; background: #fff; box-shadow: none; }
body.front-campus .front-contact-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); align-items: center; gap: clamp(36px, 8vw, 120px); }
body.front-campus .front-message-form { padding: clamp(24px, 4vw, 52px); border: 1px solid color-mix(in srgb, var(--primary) 13%, #e5e7eb); border-radius: 10px; background: color-mix(in srgb, var(--primary) 8%, #fff); box-shadow: none; }
body.front-campus .front-message-form .form-control { min-height: 52px; border-color: #e1e5e2; border-radius: 7px; background: rgba(255,255,255,.9); }
body.front-campus .front-message-form textarea.form-control { min-height: 150px; }
@media (max-width: 760px) {
  body.front-campus .front-header, body.front-campus .front-main, body.front-campus .front-footer { width: calc(100% - 20px); }
  body.front-campus .front-header { margin-top: 10px; border-radius: 18px 18px 0 0; }
  body.front-campus .front-footer { margin-bottom: 10px; border-radius: 0 0 18px 18px; }
  .front-campus-feature-grid { grid-template-columns: 1fr; gap: 22px; }
  body.front-campus .front-contact-layout { grid-template-columns: 1fr; }
  body.front-campus .front-hero-media { min-height: 0; }
}

/* Refined hero treatments for the two public portal layouts. */
body.front-home.front-layout-classic .front-hero,
body.front-home.front-layout-campus .front-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
body.front-home.front-layout-classic .front-hero::before,
body.front-home.front-layout-campus .front-hero::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  content: "";
}
body.front-home.front-layout-classic .front-hero::after,
body.front-home.front-layout-campus .front-hero::after {
  position: absolute;
  z-index: -1;
  width: 42rem;
  height: 42rem;
  border-radius: 50%;
  pointer-events: none;
  content: "";
}
body.front-home.front-layout-classic .front-hero {
  color: #fff;
  background: linear-gradient(122deg, #06194a 0%, #0a3e91 56%, #075bd4 100%);
}
body.front-home.front-layout-classic .front-hero::before {
  opacity: .26;
  background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, #000, transparent 76%);
}
body.front-home.front-layout-classic .front-hero::after {
  top: -18rem;
  right: -10rem;
  background: radial-gradient(circle, rgba(8,185,238,.48), transparent 68%);
}
body.front-home.front-layout-classic .front-hero-copy { position: relative; z-index: 1; }
body.front-home.front-layout-classic .front-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #bcefff;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
}
body.front-home.front-layout-classic .front-hero-title { max-width: 11ch; color: #fff; text-wrap: balance; }
body.front-home.front-layout-classic .front-hero-text { color: rgba(255,255,255,.8); }
body.front-home.front-layout-classic .front-hero-actions { margin-top: 32px; }
body.front-home.front-layout-classic .front-hero-actions .btn-primary {
  border-color: #36c9e8;
  background: #36c9e8;
  color: #06264f;
  box-shadow: 0 14px 30px rgba(8,185,238,.25);
}
body.front-home.front-layout-classic .front-hero-actions .btn-primary:hover { border-color: #fff; background: #fff; color: #06264f; }
body.front-home.front-layout-classic .front-hero-actions .btn-outline {
  border-color: rgba(255,255,255,.55);
  color: #fff;
}
body.front-home.front-layout-classic .front-hero-actions .btn-outline:hover { border-color: #fff; background: #fff; color: #06264f; }
body.front-home.front-layout-classic .front-hero-note { color: rgba(255,255,255,.72); }
body.front-home.front-layout-classic .front-hero-note i { color: #55dcf5; }
body.front-home.front-layout-classic .front-hero-media { padding: 18px; }
body.front-home.front-layout-classic .front-hero-media::before {
  position: absolute;
  inset: 2% 2% 4% 8%;
  z-index: -1;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 34px;
  background: linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.03));
  box-shadow: 0 28px 70px rgba(0,0,0,.22);
  content: "";
  transform: rotate(4deg);
}
body.front-home.front-layout-classic .front-hero-img,
body.front-home.front-layout-classic .front-hero-placeholder {
  border: 8px solid rgba(255,255,255,.88);
  box-shadow: 0 26px 54px rgba(0,0,0,.22);
}
body.front-home.front-layout-classic .front-hero-float { border: 1px solid rgba(7,91,212,.1); box-shadow: 0 20px 40px rgba(0,0,0,.2); }
body.front-home.front-layout-classic .front-hero-card { border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.12); color: #fff; backdrop-filter: blur(14px); }

body.front-home.front-layout-campus .front-hero {
  background: radial-gradient(circle at 78% 18%, rgba(8,185,238,.15), transparent 24%), linear-gradient(135deg, #fff 0%, #f5fbf7 56%, #eaf7f1 100%);
}
body.front-home.front-layout-campus .front-hero::before {
  opacity: .55;
  background-image: radial-gradient(rgba(7,91,212,.16) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(90deg, transparent, #000 30%, transparent 95%);
}
body.front-home.front-layout-campus .front-hero::after {
  right: -13rem;
  bottom: -24rem;
  background: radial-gradient(circle, rgba(8,185,238,.2), transparent 68%);
}
body.front-home.front-layout-campus .front-hero-copy { position: relative; z-index: 1; }
body.front-home.front-layout-campus .front-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border: 1px solid rgba(7,91,212,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 10px 25px rgba(7,91,212,.08);
}
body.front-home.front-layout-campus .front-hero-title { max-width: 11ch; color: #102a43; text-wrap: balance; }
body.front-home.front-layout-campus .front-hero-text { color: #52677f; }
body.front-home.front-layout-campus .front-hero-actions .btn-primary { box-shadow: 0 14px 26px rgba(7,91,212,.2); }
body.front-home.front-layout-campus .front-hero-media { padding: 18px; }
body.front-home.front-layout-campus .front-hero-media::before {
  position: absolute;
  inset: 0 6% 6% 0;
  z-index: -1;
  border-radius: 38px;
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(223,247,240,.9));
  box-shadow: 0 28px 60px rgba(30,56,43,.13);
  content: "";
  transform: rotate(-3deg);
}
body.front-home.front-layout-campus .front-hero-img,
body.front-home.front-layout-campus .front-hero-placeholder {
  border: 8px solid #fff;
  box-shadow: 0 22px 42px rgba(30,56,43,.16);
}
body.front-home.front-layout-campus .front-hero-float { border: 1px solid #e2eee8; box-shadow: 0 18px 36px rgba(30,56,43,.13); }

@media (max-width: 760px) {
  body.front-home.front-layout-classic .front-hero-media,
  body.front-home.front-layout-campus .front-hero-media { padding: 10px 4px 4px; }
  body.front-home.front-layout-classic .front-hero-title,
  body.front-home.front-layout-campus .front-hero-title { max-width: 12ch; }
  body.front-home.front-layout-classic .front-hero-media::before,
  body.front-home.front-layout-campus .front-hero-media::before { inset: 2% 2% 3% 2%; }
}

/* BCU institutional alternative.
 * This is intentionally scoped so the existing classic and campus layouts remain intact.
 * Palette and hierarchy are based on the public BCU reference: navy, academic gold, admission red and warm cream.
 */
body.front-bcu {
  --bcu-navy: #04043b;
  --bcu-navy-2: #0b0b55;
  --bcu-red: #c51d1d;
  --bcu-gold: #e1bb42;
  --bcu-cream: #f8f7f3;
  --bcu-ink: #262622;
  background: var(--bcu-cream);
  color: var(--bcu-ink);
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  line-height: 1.86;
}
body.front-bcu h1,
body.front-bcu h2,
body.front-bcu h3,
body.front-bcu h4,
body.front-bcu .front-nav-link {
  font-family: 'Amaranth', sans-serif;
}
body.front-bcu .front-header {
  position: relative;
  background: var(--bcu-navy);
  border: 0;
  box-shadow: none;
  color: #fff;
  backdrop-filter: none;
}
body.front-bcu .front-navbar-inner {
  min-height: 106px;
  max-width: 1240px;
  gap: 28px;
}
body.front-bcu .front-brand { color: #fff; }
body.front-bcu .bcu-brand { gap: 10px; min-width: 250px; }
body.front-bcu .bcu-brand-crest {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 2px solid var(--bcu-gold);
  border-radius: 50%;
  color: var(--bcu-gold);
  font-size: 1.35rem;
}
body.front-bcu .bcu-brand-copy {
  display: grid;
  color: var(--bcu-gold);
  font-family: 'Amaranth', sans-serif;
  font-size: 1.06rem;
  line-height: .95;
  letter-spacing: .01em;
}
body.front-bcu .front-nav { margin-left: auto; }
body.front-bcu .front-nav-list { justify-content: flex-end; gap: 0; }
body.front-bcu .front-nav-link {
  padding: 12px 10px;
  color: #fff !important;
  font-family: 'Manrope', sans-serif;
  font-size: .86rem;
  font-weight: 500;
  border-radius: 0;
}
body.front-bcu .front-nav-link:hover,
body.front-bcu .front-nav-link.active {
  color: var(--bcu-gold) !important;
  background: transparent;
}
body.front-bcu .front-nav-link i { color: var(--bcu-gold); font-size: .62rem; }
body.front-bcu .front-dropdown {
  top: calc(100% + 4px);
  border: 0;
  border-radius: 0;
  background: var(--bcu-navy);
  box-shadow: 0 18px 38px rgba(0,0,0,.25);
  padding: 8px;
}
body.front-bcu .front-dropdown-list a {
  color: #fff;
  border-radius: 0;
  font-family: 'Manrope', sans-serif;
  font-size: .85rem;
}
body.front-bcu .front-dropdown-list a:hover { background: var(--bcu-red); color: #fff; }
body.front-bcu .front-header-actions { gap: 0; }
body.front-bcu .front-header-actions .front-search,
body.front-bcu .front-header-actions .front-search-toggle,
body.front-bcu .front-header-actions .front-cart-btn,
body.front-bcu .front-header-actions .front-locale-code,
body.front-bcu .front-header-actions > .front-icon-btn:not(.front-menu-toggle) {
  display: none;
}
body.front-bcu .bcu-login-button {
  min-height: 58px;
  padding: 0 30px;
  border-radius: 0;
  background: var(--bcu-gold);
  color: var(--bcu-navy) !important;
  font-family: 'Manrope', sans-serif;
  font-weight: 800;
}
body.front-bcu .bcu-login-button:hover { background: #f0cd62; color: var(--bcu-navy) !important; }
body.front-bcu .front-menu-toggle {
  display: none;
  border: 1px solid rgba(255,255,255,.3);
  background: transparent;
  color: #fff;
}
body.front-bcu .front-main { min-height: 0; }
body.front-bcu .front-container { max-width: 1240px; }
body.front-bcu .bcu-hero {
  position: relative;
  min-height: 594px;
  overflow: hidden;
  background: var(--bcu-navy);
  color: #fff;
}
body.front-bcu .bcu-hero-backdrop {
  position: absolute;
  inset: 0;
  background-color: var(--bcu-navy);
  background-position: center;
  background-size: cover;
}
body.front-bcu .bcu-hero-inner {
  position: relative;
  z-index: 1;
  min-height: 594px;
  display: flex;
  align-items: center;
}
body.front-bcu .bcu-hero-copy { max-width: 610px; padding: 70px 0; }
body.front-bcu .bcu-hero-year {
  display: block;
  margin-bottom: 4px;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  letter-spacing: -.04em;
}
body.front-bcu .bcu-hero h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(4rem, 8vw, 7rem);
  line-height: .96;
  letter-spacing: -.05em;
}
body.front-bcu .bcu-hero-ribbon {
  width: min(550px, 100%);
  margin: 12px 0 20px;
  padding: 7px 18px;
  background: var(--bcu-red);
  color: #fff;
  font-size: clamp(1.6rem, 3vw, 2.6rem);
  font-weight: 800;
  line-height: 1.05;
  text-align: right;
}
body.front-bcu .bcu-hero-copy p { max-width: 560px; margin: 0 0 26px; color: rgba(255,255,255,.88); font-size: 1rem; line-height: 1.9; }
body.front-bcu .bcu-red-button,
body.front-bcu .bcu-gold-button,
body.front-bcu .bcu-outline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 28px;
  border: 1px solid transparent;
  font-family: 'Manrope', sans-serif;
  font-weight: 800;
  text-decoration: none;
  transition: .2s ease;
}
body.front-bcu .bcu-red-button { background: var(--bcu-red); color: #fff; }
body.front-bcu .bcu-red-button:hover { background: #a61616; color: #fff; transform: translateY(-2px); }
body.front-bcu .bcu-gold-button { background: var(--bcu-gold); color: var(--bcu-navy); }
body.front-bcu .bcu-gold-button:hover { background: #f0cd62; color: var(--bcu-navy); }
body.front-bcu .bcu-outline-button { border-color: var(--bcu-navy); color: var(--bcu-navy); }
body.front-bcu .bcu-outline-button:hover { background: var(--bcu-navy); color: #fff; }
body.front-bcu .bcu-three-up {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1240px;
  margin: -1px auto 0;
}
body.front-bcu .bcu-feature-card {
  min-height: 300px;
  padding: 46px 38px;
  color: #fff;
  background: var(--bcu-navy);
}
body.front-bcu .bcu-feature-card:nth-child(2) { background: #fff; color: var(--bcu-navy); }
body.front-bcu .bcu-feature-card:nth-child(3) { background: var(--bcu-red); }
body.front-bcu .bcu-feature-kicker,
body.front-bcu .bcu-section-label,
body.front-bcu .bcu-news-meta {
  display: block;
  margin-bottom: 14px;
  color: var(--bcu-gold);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
body.front-bcu .bcu-feature-card:nth-child(2) .bcu-feature-kicker { color: var(--bcu-red); }
body.front-bcu .bcu-feature-card h2 { max-width: 320px; margin: 0 0 26px; font-size: 2rem; line-height: 1.1; }
body.front-bcu .bcu-feature-card a,
body.front-bcu .bcu-campus-grid a,
body.front-bcu .bcu-news-grid a { color: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
body.front-bcu .bcu-section { padding: clamp(70px, 9vw, 132px) 0; }
body.front-bcu .bcu-intro { background: var(--bcu-cream); }
body.front-bcu .bcu-intro-grid,
body.front-bcu .bcu-why-grid,
body.front-bcu .bcu-faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 8vw, 120px); align-items: center; }
body.front-bcu .bcu-section-label { color: var(--bcu-red); }
body.front-bcu .bcu-intro h2,
body.front-bcu .bcu-why h2,
body.front-bcu .bcu-colleges h2,
body.front-bcu .bcu-campus h2,
body.front-bcu .bcu-news h2,
body.front-bcu .bcu-faq h2,
body.front-bcu .bcu-cta h2 {
  margin: 0 0 20px;
  color: var(--bcu-navy);
  font-size: clamp(2.5rem, 5vw, 4.4rem);
  line-height: 1.05;
  letter-spacing: -.04em;
}
body.front-bcu .bcu-intro h3 { margin: 0 0 16px; color: var(--bcu-navy); font-size: 2rem; }
body.front-bcu .bcu-intro p { margin: 0 0 18px; }
body.front-bcu .bcu-why { background: #fff; }
body.front-bcu .bcu-why-media { min-height: 480px; background-color: var(--bcu-navy); background-position: center; background-size: cover; }
body.front-bcu .bcu-why-copy h2 { color: var(--bcu-navy); }
body.front-bcu .bcu-check-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px 20px; margin: 25px 0; padding: 0; list-style: none; font-weight: 700; }
body.front-bcu .bcu-check-list li::before { content: '✓'; display: inline-block; margin-right: 9px; color: var(--bcu-red); font-weight: 900; }
body.front-bcu .bcu-text-button { color: var(--bcu-red); font-weight: 800; text-decoration: underline; text-underline-offset: 5px; }
body.front-bcu .bcu-section-lead { max-width: 650px; margin: 0 0 30px; }
body.front-bcu .bcu-college-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
body.front-bcu .bcu-college-card { display: flex; flex-direction: column; min-height: 290px; padding: 25px; border: 1px solid #dfddd4; background: #fff; color: var(--bcu-ink); text-decoration: none; transition: .2s ease; }
body.front-bcu .bcu-college-card:hover { border-color: var(--bcu-red); transform: translateY(-4px); box-shadow: 0 18px 35px rgba(4,4,59,.12); }
body.front-bcu .bcu-college-icon { color: var(--bcu-red); font-size: 1.6rem; }
body.front-bcu .bcu-college-code { margin-top: 22px; color: var(--bcu-red); font-size: .72rem; font-weight: 900; letter-spacing: .12em; }
body.front-bcu .bcu-college-card h3 { margin: 8px 0; color: var(--bcu-navy); font-size: 1.45rem; line-height: 1.12; }
body.front-bcu .bcu-college-card p { margin: 0 0 20px; color: #5d5d55; font-size: .9rem; line-height: 1.6; }
body.front-bcu .bcu-college-card .bcu-text-button { margin-top: auto; }
body.front-bcu .bcu-campus { background: var(--bcu-navy); color: #fff; }
body.front-bcu .bcu-campus h2 { color: #fff; max-width: 680px; }
body.front-bcu .bcu-section-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 40px; }
body.front-bcu .bcu-section-heading-row .bcu-section-label { margin-bottom: 10px; }
body.front-bcu .bcu-campus-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.25); }
body.front-bcu .bcu-campus-grid article { min-height: 250px; padding: 32px; background-color: var(--bcu-navy); background-position: center; background-size: cover; }
body.front-bcu .bcu-campus-grid h3 { margin: 24px 0 8px; color: #fff; font-size: 1.7rem; }
body.front-bcu .bcu-campus-grid p { margin: 0 0 20px; color: rgba(255,255,255,.72); line-height: 1.65; }
body.front-bcu .bcu-campus-number { color: var(--bcu-gold); font-weight: 900; letter-spacing: .1em; }
body.front-bcu .bcu-college-card small { display: block; margin-bottom: 18px; color: #77766f; font-size: .78rem; }
body.front-bcu .bcu-news { background: #fff; }
body.front-bcu .bcu-news h2 { margin-bottom: 0; }
body.front-bcu .bcu-news-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
body.front-bcu .bcu-news-grid article { padding: 30px; border-top: 5px solid var(--bcu-red); background: var(--bcu-cream); }
body.front-bcu .bcu-news-grid h3 { margin: 0 0 12px; color: var(--bcu-navy); font-size: 1.75rem; line-height: 1.16; }
body.front-bcu .bcu-news-grid p { margin: 0 0 20px; }
body.front-bcu .bcu-faq { background: var(--bcu-cream); }
body.front-bcu .bcu-faq-list { border-top: 1px solid #cac8be; }
body.front-bcu .bcu-faq-list details { border-bottom: 1px solid #cac8be; }
body.front-bcu .bcu-faq-list summary { display: flex; justify-content: space-between; gap: 16px; padding: 19px 0; color: var(--bcu-navy); font-weight: 800; cursor: pointer; list-style: none; }
body.front-bcu .bcu-faq-list summary::after { content: '+'; color: var(--bcu-red); font-size: 1.4rem; }
body.front-bcu .bcu-faq-list details[open] summary::after { content: '−'; }
body.front-bcu .bcu-faq-list p { margin: 0 0 18px; }
body.front-bcu .bcu-cta { padding: 90px 0; background: var(--bcu-red); color: #fff; text-align: center; }
body.front-bcu .bcu-cta .bcu-section-label { color: var(--bcu-gold); }
body.front-bcu .bcu-cta h2 { max-width: 760px; margin: 0 auto 18px; color: #fff; }
body.front-bcu .bcu-cta p { max-width: 600px; margin: 0 auto 28px; }
body.front-bcu .front-footer { margin-top: 0; background: var(--bcu-navy); color: rgba(255,255,255,.72); border-radius: 0; }
body.front-bcu .front-footer a { color: rgba(255,255,255,.85); }
body.front-bcu .front-footer a:hover { color: var(--bcu-gold); }
body.front-bcu .front-footer h5 { color: #fff; font-family: 'Amaranth', sans-serif; }
body.front-bcu .front-footer-bottom { border-top-color: rgba(255,255,255,.18); }
body.front-bcu .front-mobile-inner { background: var(--bcu-navy); color: #fff; }
body.front-bcu .front-mobile-head { border-bottom-color: rgba(255,255,255,.18); }
body.front-bcu .front-mobile-search input { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.08); color: #fff; }
body.front-bcu .front-mobile-nav > a,
body.front-bcu .front-mobile-nav summary { color: #fff; border-radius: 0; }
body.front-bcu .front-mobile-nav > a:hover,
body.front-bcu .front-mobile-nav summary:hover { background: var(--bcu-red); color: #fff; }
body.front-bcu .front-mobile-nav details a { color: rgba(255,255,255,.8); }
body.front-bcu .front-mobile-foot { border-top-color: rgba(255,255,255,.18); }
@media (max-width: 1040px) {
  body.front-bcu .front-navbar-inner { gap: 12px; }
  body.front-bcu .bcu-brand { min-width: 210px; }
  body.front-bcu .front-nav-link { padding-inline: 7px; font-size: .78rem; }
  body.front-bcu .bcu-college-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 820px) {
  body.front-bcu .front-navbar-inner { min-height: 76px; }
  body.front-bcu .front-nav { display: none; }
  body.front-bcu .front-menu-toggle { display: inline-flex; }
  body.front-bcu .front-header-actions { margin-left: auto; }
  body.front-bcu .bcu-login-button { min-height: 42px; padding: 0 14px; }
  body.front-bcu .bcu-login-button span { display: none; }
  body.front-bcu .bcu-three-up,
  body.front-bcu .bcu-campus-grid { grid-template-columns: 1fr; }
  body.front-bcu .bcu-feature-card { min-height: 220px; }
  body.front-bcu .bcu-intro-grid,
  body.front-bcu .bcu-why-grid,
  body.front-bcu .bcu-faq-grid { grid-template-columns: 1fr; gap: 42px; }
  body.front-bcu .bcu-why-media { min-height: 320px; order: 2; }
  body.front-bcu .bcu-section-heading-row { align-items: flex-start; flex-direction: column; }
  body.front-bcu .bcu-news-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  body.front-bcu .bcu-brand { min-width: 0; }
  body.front-bcu .bcu-brand-crest { width: 38px; height: 38px; font-size: 1rem; }
  body.front-bcu .bcu-brand-copy { font-size: .82rem; }
  body.front-bcu .bcu-hero { min-height: 530px; }
  body.front-bcu .bcu-hero-inner { min-height: 530px; }
  body.front-bcu .bcu-hero h1 { font-size: 4rem; }
  body.front-bcu .bcu-hero-ribbon { font-size: 1.7rem; }
  body.front-bcu .bcu-hero-copy p { font-size: .9rem; }
  body.front-bcu .bcu-college-grid { grid-template-columns: 1fr; }
  body.front-bcu .bcu-check-list { grid-template-columns: 1fr; }
}


.front-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.front-skip-link { position: absolute; left: -999px; top: 8px; background: #fff; padding: 8px 14px; z-index: 1000; border-radius: 8px; }
.front-skip-link:focus { left: 8px; }
.front-main { min-height: 50vh; }

/* Topbar */
.front-topbar { background: var(--front-dark); color: #cbd5e1; font-size: 0.82rem; }
.front-topbar-inner { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 40px; flex-wrap: wrap; }
.front-topbar ul { display: flex; list-style: none; gap: 18px; align-items: center; }
.front-topbar a { color: #cbd5e1; display: inline-flex; gap: 6px; align-items: center; }
.front-topbar a:hover { color: #fff; }

/* Navbar */
.front-header { position: sticky; top: 0; z-index: 80; background: rgba(255, 255, 255, 0.92); backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid rgba(226, 232, 240, 0.8); transition: box-shadow .2s; }
.front-header.is-scrolled { box-shadow: 0 8px 24px -16px rgba(15, 23, 42, 0.35); }
.front-navbar-inner { display: flex; align-items: center; gap: 24px; min-height: 74px; }
.front-brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.front-brand-logo { max-height: 44px; max-width: 170px; width: auto; }
.front-brand-text { font-weight: 800; font-size: 1.2rem; color: var(--front-dark); display: inline-flex; gap: 8px; align-items: center; }
.front-brand-text i { color: var(--primary); }
.front-nav { flex: 1; min-width: 0; }
.front-nav-list { display: flex; list-style: none; gap: 2px; align-items: center; }
.front-nav-item { position: relative; }
.front-nav-link { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; font-weight: 600; font-size: 0.93rem; color: #334155 !important; background: none; border: 0; cursor: pointer; border-radius: 10px; white-space: nowrap; }
.front-nav-link i { font-size: 0.65rem; opacity: .6; }
.front-nav-link:hover, .front-nav-link.active { color: var(--primary) !important; background: var(--primary-light); }
.front-dropdown { position: absolute; top: calc(100% + 8px); left: 0; min-width: 220px; background: #fff; border: 1px solid var(--border-color); border-radius: 14px; box-shadow: var(--front-shadow); padding: 10px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .18s ease; z-index: 90; }
.front-dropdown::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.front-nav-item:hover > .front-dropdown, .front-nav-item:focus-within > .front-dropdown { opacity: 1; visibility: visible; transform: none; }
.front-dropdown-list a, .front-mega-grid a { display: block; padding: 8px 12px; border-radius: 8px; color: #334155; font-size: 0.9rem; }
.front-dropdown-list a:hover, .front-mega-grid a:hover { background: var(--primary-light); color: var(--primary); }
.front-mega { min-width: 560px; padding: 16px; }
.front-mega-title { font-weight: 700; font-size: 0.8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); padding: 0 12px 10px; border-bottom: 1px solid var(--border-color); margin-bottom: 8px; }
.front-mega-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }
.front-mega-all { display: inline-flex; gap: 6px; align-items: center; margin: 10px 12px 0; font-weight: 600; font-size: 0.88rem; color: var(--primary) !important; }

.front-header-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.front-icon-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 40px; height: 40px; padding: 0 10px; border-radius: 12px; border: 1px solid var(--border-color); background: #fff; color: #334155; cursor: pointer; transition: var(--transition); }
.front-icon-btn:hover { border-color: var(--primary); color: var(--primary); }
.front-locale-code { font-size: 0.75rem; font-weight: 700; }
.front-cart-count { position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--danger); color: #fff; font-size: 0.7rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.front-cart-count.hidden { display: none; }
.front-search { position: relative; display: flex; align-items: center; }
.front-search > i { position: absolute; left: 13px; color: #94a3b8; font-size: 0.85rem; pointer-events: none; }
.front-search input { width: 210px; height: 40px; border-radius: 12px; border: 1px solid var(--border-color); padding: 0 12px 0 36px; font-size: 0.88rem; background: #f8fafc; transition: var(--transition); }
.front-search input:focus { outline: none; width: 260px; border-color: var(--primary); background: #fff; box-shadow: 0 0 0 4px var(--primary-light); }
.front-search-results { position: absolute; top: calc(100% + 8px); right: 0; width: 360px; max-height: 440px; overflow-y: auto; background: #fff; border: 1px solid var(--border-color); border-radius: 14px; box-shadow: var(--front-shadow); padding: 8px; z-index: 95; }
.front-search-group { padding: 6px 0; }
.front-search-group + .front-search-group { border-top: 1px solid var(--border-color); }
.front-search-group h6 { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); padding: 4px 10px; }
.front-search-item { display: flex; gap: 10px; align-items: center; padding: 7px 10px; border-radius: 10px; color: #334155; font-size: 0.88rem; }
.front-search-item:hover { background: #f1f5f9; }
.front-search-item img { width: 40px; height: 40px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.front-search-item small { display: block; color: var(--text-muted); font-size: 0.76rem; }
.front-search-empty { padding: 16px; text-align: center; color: var(--text-muted); font-size: 0.88rem; }
.front-academic-menu { min-width: 520px; padding: 20px; }
.front-academic-selects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.front-academic-selects label { display: grid; gap: 6px; color: var(--text-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.front-academic-selects select { width: 100%; min-height: 40px; border: 1px solid var(--border-color); border-radius: 10px; padding: 0 10px; background: #fff; color: var(--text-main); font-size: .82rem; text-transform: none; letter-spacing: normal; }
.front-academic-selects select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }
.front-academic-selects select:disabled { background: #f8fafc; color: #94a3b8; }
.front-search-toggle, .front-menu-toggle { display: none; }
.front-login-btn { height: 40px; padding: 0 16px; }

.front-user { position: relative; }
.front-user-toggle { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 10px 0 4px; border-radius: 22px; border: 1px solid var(--border-color); background: #fff; cursor: pointer; font-weight: 600; color: #334155; }
.front-user-toggle i { font-size: 0.65rem; opacity: .6; }
.front-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.front-avatar-initials { display: inline-flex; align-items: center; justify-content: center; background: var(--primary); color: #fff; font-size: 0.75rem; font-weight: 700; }
.front-user-menu { position: absolute; right: 0; top: calc(100% + 8px); width: 250px; background: #fff; border: 1px solid var(--border-color); border-radius: 14px; box-shadow: var(--front-shadow); padding: 8px; display: none; z-index: 95; }
.front-user.open .front-user-menu { display: block; }
.front-user-head { padding: 8px 10px 10px; border-bottom: 1px solid var(--border-color); margin-bottom: 6px; }
.front-user-head strong { display: block; font-size: 0.92rem; }
.front-user-head span { font-size: 0.78rem; color: var(--text-muted); word-break: break-all; }
.front-user-menu a, .front-user-menu button { display: flex; width: 100%; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 10px; border: 0; background: none; font-size: 0.9rem; color: #334155; cursor: pointer; text-align: left; }
.front-user-menu a i, .front-user-menu button i { width: 16px; color: var(--text-muted); }
.front-user-menu a:hover, .front-user-menu button:hover { background: #f1f5f9; color: var(--primary); }

/* Mobile panel */
.front-mobile-panel { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.front-mobile-panel.open { visibility: visible; }
.front-mobile-overlay { position: absolute; inset: 0; background: rgba(15, 23, 42, .5); opacity: 0; transition: opacity .2s; }
.front-mobile-panel.open .front-mobile-overlay { opacity: 1; }
.front-mobile-inner { position: absolute; top: 0; bottom: 0; left: 0; width: min(340px, 88vw); background: #fff; display: flex; flex-direction: column; transform: translateX(-100%); transition: transform .25s ease; overflow-y: auto; }
[dir="rtl"] .front-mobile-inner { left: auto; right: 0; transform: translateX(100%); }
.front-mobile-panel.open .front-mobile-inner { transform: none; }
.front-mobile-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--border-color); }
.front-mobile-search { position: relative; margin: 14px 18px 4px; }
.front-mobile-search i { position: absolute; left: 12px; top: 13px; color: #94a3b8; font-size: 0.85rem; }
.front-mobile-search input { width: 100%; height: 42px; border: 1px solid var(--border-color); border-radius: 12px; padding: 0 12px 0 34px; }
.front-mobile-nav { padding: 8px 10px; flex: 1; }
.front-mobile-nav > a, .front-mobile-nav summary { display: block; padding: 12px; border-radius: 10px; font-weight: 600; color: #1e293b; cursor: pointer; }
.front-mobile-nav > a.active, .front-mobile-nav > a:hover, .front-mobile-nav summary:hover { background: var(--primary-light); color: var(--primary); }
.front-mobile-nav details a { display: block; padding: 8px 12px 8px 26px; color: #475569; font-size: 0.92rem; }
.front-mobile-foot { padding: 16px 18px; display: grid; gap: 10px; border-top: 1px solid var(--border-color); }

/* Locale modal */
.front-locale-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.front-locale-title { font-size: 0.95rem; margin-bottom: 10px; }
.front-choice-list { display: grid; gap: 8px; max-height: 320px; overflow-y: auto; }
.front-choice { position: relative; cursor: pointer; }
.front-choice input { position: absolute; opacity: 0; }
.front-choice span { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--border-color); border-radius: 12px; font-weight: 600; font-size: 0.9rem; }
.front-choice span img { width: 22px; height: 16px; object-fit: cover; border-radius: 3px; }
.front-choice small { color: var(--text-muted); font-weight: 400; }
.front-choice input:checked + span { border-color: var(--primary); background: var(--primary-light); color: var(--primary); }
.front-choice input:focus-visible + span { box-shadow: 0 0 0 3px var(--primary-light); }

/* Footer */
.front-footer { background: var(--front-dark); color: #94a3b8; margin-top: 0; }
.front-footer a { color: #cbd5e1; }
.front-footer a:hover { color: #fff; }
.front-footer-top { display: flex; justify-content: space-between; gap: 40px; padding: 56px 0 36px; border-bottom: 1px solid rgba(255, 255, 255, .08); flex-wrap: wrap; }
.front-footer-brand { max-width: 380px; }
.front-footer-logo img { max-height: 48px; max-width: 180px; }
.front-footer-logo .front-brand-text { color: #fff; }
.front-footer-brand p { margin-top: 14px; font-size: 0.92rem; line-height: 1.7; }
.front-social { display: flex; gap: 10px; list-style: none; margin-top: 18px; flex-wrap: wrap; }
.front-social a { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .08); color: #e2e8f0; transition: var(--transition); }
.front-social a:hover { background: var(--primary); color: #fff; transform: translateY(-2px); }
.front-social-dark a { background: #f1f5f9; color: #334155; }
.front-footer-newsletter { flex: 1; max-width: 480px; min-width: 260px; }
.front-footer-newsletter h5 { color: #fff; font-size: 1.1rem; margin-bottom: 14px; }
.front-subscribe-form { display: flex; gap: 8px; flex-wrap: wrap; }
.front-subscribe-form input[type=email] { flex: 1; min-width: 200px; height: 46px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .15); background: rgba(255, 255, 255, .06); color: #fff; padding: 0 16px; font-size: 0.92rem; }
.front-subscribe-form input[type=email]::placeholder { color: #94a3b8; }
.front-subscribe-form input[type=email]:focus { outline: none; border-color: var(--primary); }
.front-subscribe-form .btn { height: 46px; }
.front-footer-widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 32px; padding: 40px 0; }
.front-footer-col h5 { color: #fff; font-size: 1rem; margin-bottom: 16px; }
.front-footer-col ul { list-style: none; display: grid; gap: 10px; font-size: 0.92rem; }
.front-footer-col p { font-size: 0.9rem; margin-bottom: 12px; }
.front-app-links { display: flex; flex-wrap: wrap; gap: 10px; }
.front-store-btn { display: inline-flex; gap: 10px; align-items: center; padding: 8px 14px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .18); color: #fff !important; }
.front-store-btn i { font-size: 1.4rem; }
.front-store-btn span { display: flex; flex-direction: column; line-height: 1.15; font-weight: 600; font-size: 0.92rem; }
.front-store-btn small { font-size: 0.62rem; font-weight: 500; text-transform: uppercase; opacity: .75; }
.front-payment-banner { padding-bottom: 24px; text-align: end; }
.front-payment-banner img { max-height: 36px; }
.front-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); padding: 18px 0; font-size: 0.86rem; text-align: center; }

.front-back-to-top { position: fixed; right: 20px; bottom: 20px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; cursor: pointer; box-shadow: var(--front-shadow); opacity: 0; visibility: hidden; transform: translateY(10px); transition: all .2s; z-index: 70; }
.front-back-to-top.show { opacity: 1; visibility: visible; transform: none; }

/* Qubators logo palette: deep royal blue, electric blue and cyan accents. */
.front-site {
  --logo-blue: #062b88;
  --logo-royal: #075bd4;
  --logo-cyan: #08b9ee;
  --logo-cyan-soft: #e6f8ff;
}
.front-site .front-header,
.front-site .front-mobile-inner { background: #fff; }
.front-site .front-nav-link:hover,
.front-site .front-nav-link.active,
.front-site .front-mobile-nav > a:hover,
.front-site .front-mobile-nav > a.active,
.front-site .front-mobile-nav summary:hover { color: var(--logo-royal); }
.front-site .front-faculty-icon { background: var(--logo-cyan-soft); color: var(--logo-royal); }
.front-site .front-faculty-card:hover { border-color: var(--logo-cyan); box-shadow: 0 18px 38px rgba(7, 91, 212, .14); }
.front-site .front-faculty-code,
.front-site .front-faculty-meta,
.front-site .front-programme-award { color: var(--logo-royal); }
.front-site .front-programme-card:hover { border-color: var(--logo-cyan); box-shadow: 0 16px 34px rgba(7, 91, 212, .12); }
.front-site .front-footer { background: var(--logo-blue); }
.front-site .btn-primary,
.front-site .front-hero-cta,
.front-site .front-section-link { background: var(--logo-royal); border-color: var(--logo-royal); color: #fff; }
.front-site .btn-primary:hover,
.front-site .front-hero-cta:hover,
.front-site .front-section-link:hover { background: var(--logo-blue); border-color: var(--logo-blue); color: #fff; }
.front-site .front-eyebrow,
.front-site .front-text-link,
.front-site .front-card-link { color: var(--logo-royal); }
.front-site .front-hero { background: linear-gradient(135deg, var(--logo-blue), var(--logo-royal)); }
.front-site .front-hero::after { background: radial-gradient(circle, rgba(8, 185, 238, .34), transparent 68%); }
.front-mobile-academic-menu { display: grid; gap: .7rem; padding: .75rem 0 .35rem; }
.front-mobile-academic-menu label { display: grid; gap: .3rem; color: var(--logo-blue); font-size: .78rem; font-weight: 700; }
.front-mobile-academic-menu select { width: 100%; border: 1px solid rgba(6, 43, 136, .22); border-radius: .55rem; padding: .55rem .65rem; background: #fff; color: #173052; font: inherit; }
.front-mobile-academic-menu select:focus { outline: 2px solid rgba(8, 185, 238, .4); border-color: var(--logo-cyan); }
.front-mobile-academic-link { color: var(--logo-royal) !important; font-weight: 700; }

/* Popup */
.front-popup { padding: 0; overflow: hidden; position: relative; max-width: 860px; }
.front-popup-close { position: absolute; top: 12px; right: 14px; z-index: 2; }
.front-popup-grid { display: grid; grid-template-columns: 1fr 1fr; }
.front-popup-media img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; }
.front-popup-body { padding: 40px 32px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.front-popup-body .front-subscribe-form input[type=email] { background: #f8fafc; color: var(--text-main); border-color: var(--border-color); }
.front-popup-dontshow { display: flex; gap: 8px; align-items: center; width: 100%; font-size: 0.85rem; color: var(--text-muted); }

/* Cookie consent */
.front-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 150; display: flex; justify-content: center; }
.front-cookie-inner { max-width: 960px; width: 100%; background: #fff; border: 1px solid var(--border-color); border-radius: 18px; box-shadow: 0 20px 50px -20px rgba(15, 23, 42, .4); padding: 20px 24px; display: flex; gap: 20px; align-items: center; justify-content: space-between; }
.front-cookie h4 { font-size: 1rem; margin-bottom: 4px; }
.front-cookie-text { font-size: 0.88rem; color: var(--text-muted); }
.front-cookie-actions { display: flex; gap: 8px; flex-shrink: 0; }

@media (max-width: 1100px) {
  .front-nav { display: none; }
  .front-menu-toggle { display: inline-flex; }
  .front-search input { width: 180px; }
}
@media (max-width: 760px) {
  .front-search { display: none; }
  .front-search.open { display: flex; position: absolute; left: 12px; right: 12px; top: calc(100% + 6px); }
  .front-search.open input, .front-search.open input:focus { width: 100%; background: #fff; box-shadow: var(--front-shadow); }
  .front-search.open .front-search-results { width: 100%; }
  .front-search-toggle { display: inline-flex; }
  .front-navbar-inner { position: relative; gap: 10px; min-height: 64px; }
  .front-locale-code, .front-user-name, .front-login-btn span { display: none; }
  .front-login-btn { width: 40px; padding: 0; }
  .front-brand-logo { max-height: 36px; max-width: 130px; }
  .front-brand { min-width: 0; flex-shrink: 1; }
  .front-brand-text { font-size: 1rem; min-width: 0; overflow-wrap: anywhere; }
  .front-header-actions { flex-shrink: 0; gap: 5px; }
  .front-locale-grid, .front-popup-grid { grid-template-columns: 1fr; }
  .front-popup-media { display: none; }
  .front-cookie-inner { flex-direction: column; align-items: stretch; }
  .front-topbar-social { display: none !important; }
  .front-payment-banner { text-align: center; }
}
@media (max-width: 1100px) {
  .front-academic-menu { min-width: min(520px, 88vw); }
  .front-academic-selects { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .front-navbar-inner { gap: 6px; }
  .front-header-actions .front-icon-btn { min-width: 34px; padding-inline: 7px; }
  .front-brand-text { font-size: .9rem; gap: 5px; }
}
/* Give a university's full name its own row instead of splitting it into letters. */
@media (min-width: 1101px) {
  .front-navbar-inner { flex-wrap: wrap; gap: 8px 24px; padding-block: 12px; }
  .front-nav { order: 3; flex-basis: 100%; }
  .front-nav-list { justify-content: center; flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .front-navbar-inner { flex-wrap: wrap; padding-block: 12px; row-gap: 10px; }
  .front-brand { flex: 0 0 100%; }
  .front-brand-text { font-size: 1rem; overflow-wrap: normal; }
  .front-header-actions { width: 100%; justify-content: flex-end; }
}
/* Public university directory: colleges -> faculties -> departments -> programmes */
.front-academic-directory .academic-directory-section { background:#f7fbff; min-height:60vh; }
.academic-directory-intro { max-width:820px; margin:0 auto 38px; display:flex; align-items:center; justify-content:center; gap:22px; text-align:left; }
.academic-directory-intro h1 { margin:8px 0 10px; color:#0d2742; font-size:clamp(2rem,4vw,3.3rem); letter-spacing:-.04em; }
.academic-directory-intro p { margin:0; color:#60758a; line-height:1.75; }
.academic-directory-intro--programme { max-width:1040px; display:flex; align-items:flex-end; justify-content:space-between; gap:28px; text-align:left; }
.academic-programme-stats { display:flex; flex-wrap:wrap; gap:12px; }
.academic-programme-stats span { min-width:112px; padding:14px 16px; border:1px solid #dce8f2; border-radius:14px; background:#fff; color:#65788a; font-size:.78rem; text-align:center; }
.academic-programme-stats strong { display:block; color:#075bd4; font-size:1.35rem; }
.academic-directory-head,.academic-course-directory-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:22px; }
.academic-directory-head h2,.academic-course-directory-head h2 { margin:4px 0 0; color:#0d2742; font-size:1.75rem; }
.academic-course-directory-head p { margin:6px 0 0; color:#6c7e90; }
.academic-directory-count { padding:8px 12px; color:#075bd4; background:#e8f4ff; border-radius:999px; font-weight:700; font-size:.82rem; }
.academic-directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.academic-directory-card { display:flex; flex-direction:column; min-height:225px; padding:25px; border:1px solid #dbe7f0; border-radius:20px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 10px 26px rgba(23,64,99,.05); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.academic-directory-card:hover { transform:translateY(-5px); border-color:#72cde8; box-shadow:0 18px 35px rgba(7,91,212,.12); }
.academic-directory-icon { width:48px; height:48px; display:grid; place-items:center; margin-bottom:18px; border-radius:14px; background:#e9f8fb; color:#075bd4; font-size:1.2rem; }
.academic-directory-code { color:#e1532d; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.academic-directory-card h3 { margin:7px 0 8px; color:#0d2742; font-size:1.2rem; letter-spacing:-.02em; }
.academic-directory-card p { margin:0 0 16px; color:#6b7d8e; line-height:1.6; }
.academic-directory-profile { max-width:1040px; margin:0 auto 30px; padding:22px 26px; border-left:4px solid #075bd4; border-radius:0 16px 16px 0; background:#fff; box-shadow:0 8px 22px rgba(23,64,99,.05); }
.academic-directory-profile p { margin:8px 0 0; color:#435466; line-height:1.85; }
.academic-directory-logo { width:92px; height:92px; object-fit:contain; border-radius:16px; background:#fff; padding:10px; box-shadow:0 8px 22px rgba(23,64,99,.08); }
.academic-directory-related { max-width:1040px; margin:34px auto 0; }
.academic-directory-staff-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.academic-directory-staff-card { display:flex; align-items:center; gap:12px; padding:14px; border:1px solid #dbe7f0; border-radius:16px; background:#fff; box-shadow:0 8px 20px rgba(23,64,99,.04); }
.academic-directory-staff-card img { width:46px; height:46px; object-fit:cover; border-radius:50%; background:#eaf2f8; }
.academic-directory-staff-card div { min-width:0; }
.academic-directory-staff-card strong,.academic-directory-staff-card span,.academic-directory-staff-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.academic-directory-staff-card strong { color:#0d2742; }
.academic-directory-staff-card span { margin-top:3px; color:#075bd4; font-size:.82rem; font-weight:700; }
.academic-directory-staff-card small { margin-top:4px; color:#6b7d8e; font-size:.74rem; }
.academic-directory-meta { margin-top:auto; color:#075bd4; font-size:.84rem; font-weight:700; }
.academic-directory-meta i { margin-left:5px; }
.academic-course-grid .front-course-card { background:#fff; }
@media (max-width: 900px) { .academic-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .academic-directory-intro--programme { display:block; } .academic-directory-intro:not(.academic-directory-intro--programme) { flex-direction:column; } .academic-programme-stats { margin-top:24px; } }
@media (max-width: 600px) { .academic-directory-grid,.academic-directory-staff-grid { grid-template-columns:1fr; } .academic-directory-head,.academic-course-directory-head { display:block; } .academic-directory-count { display:inline-block; margin-top:12px; } }

/* Shared College -> Faculty -> Department -> Programme -> Course register. */
.front-academic-pathways { background: #f6f8fb; color: #142236; }
.pathways-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:28px; }
.pathways-heading h2 { max-width:680px; margin:8px 0 12px; font-size:clamp(2rem,4vw,4rem); letter-spacing:-.06em; line-height:1; }
.pathways-heading p { max-width:720px; margin:0; color:#607086; line-height:1.7; }
.pathways-kicker,.atlas-eyebrow,.pulse-kicker,.gallery-label,.orbit-kicker { color:#1769e0; font-size:.7rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.pathways-directory-link,.atlas-section-head a,.pulse-section-head a,.gallery-section-head a,.orbit-heading a { color:#1769e0; font-size:.82rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.pathways-summary { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.pathways-summary span { padding:10px 14px; border:1px solid #dae3ed; border-radius:999px; background:#fff; color:#607086; font-size:.78rem; }
.pathways-summary strong { margin-right:4px; color:#142236; font-size:1rem; }
.pathway-college { margin-bottom:12px; border:1px solid #dbe4ee; border-radius:18px; background:#fff; box-shadow:0 8px 22px rgba(18,46,74,.05); overflow:hidden; }
.pathway-college > summary { display:grid; grid-template-columns:minmax(0,1fr) auto 20px; align-items:center; gap:14px; padding:20px 22px; cursor:pointer; list-style:none; }
.pathway-college > summary::-webkit-details-marker,.pathway-department > summary::-webkit-details-marker { display:none; }
.pathway-summary-title { display:flex; align-items:center; gap:12px; min-width:0; }
.pathway-summary-title i { display:grid; width:38px; height:38px; place-items:center; border-radius:12px; background:#eaf2ff; color:#1769e0; }
.pathway-summary-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pathway-summary-meta,.pathway-count { color:#708096; font-size:.76rem; }
.pathway-chevron { color:#1769e0; transition:transform .2s ease; }
.pathway-college[open] > summary .pathway-chevron,.pathway-department[open] > summary .fa-chevron-down { transform:rotate(180deg); }
.pathway-faculties { display:grid; gap:12px; padding:0 22px 22px; }
.pathway-faculty { padding:17px; border:1px solid #e4eaf2; border-radius:14px; background:#fbfcfe; }
.pathway-node-head { display:flex; align-items:center; gap:11px; flex-wrap:wrap; }
.pathway-node-head a,.pathway-department summary a { color:#172b44; font-weight:800; text-decoration:none; }
.pathway-node-head a:hover,.pathway-department summary a:hover,.pathway-course:hover { color:#1769e0; }
.pathway-code { color:#1769e0; font-size:.65rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.pathway-count { margin-left:auto; }
.pathway-departments { display:grid; gap:8px; margin-top:14px; padding-left:18px; border-left:2px solid #dce7f5; }
.pathway-department { border:1px solid #e3e9f0; border-radius:11px; background:#fff; }
.pathway-department > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 14px; cursor:pointer; list-style:none; }
.pathway-department > summary > span:first-child { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pathway-department > summary .pathway-count { display:flex; align-items:center; gap:8px; }
.pathway-programmes { display:grid; gap:9px; padding:0 14px 14px; }
.pathway-programme { padding:14px; border-radius:10px; background:#f7f9fc; }
.pathway-programme-title { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
.pathway-programme-title a { color:#172b44; text-decoration:none; }
.pathway-programme-title span { color:#708096; font-size:.74rem; }
.pathway-courses { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.pathway-course { display:inline-flex; align-items:center; gap:6px; padding:7px 9px; border:1px solid #d9e3ef; border-radius:8px; background:#fff; color:#33455c; font-size:.74rem; text-decoration:none; transition:border-color .2s ease,color .2s ease; }
.pathway-course span { color:#1769e0; font-size:.63rem; font-weight:850; letter-spacing:.06em; }
.pathway-empty,.pathway-more-courses { display:block; margin:10px 0 0; color:#7b899b; font-size:.75rem; line-height:1.5; }
.pathway-unassigned { background:#fbfcff; }

/* Atlas: carousel-led, reading-first landing page inspired by Booktovia's slide header. */
.front-layout-atlas .front-header { background:#0d1b2d; color:#fff; }
.atlas-hero { position:relative; overflow:hidden; background:#0d1b2d; color:#fff; }
.atlas-hero-backdrop { position:absolute; inset:0; background:radial-gradient(circle at 75% 25%,rgba(40,137,255,.34),transparent 36%),linear-gradient(120deg,#0d1b2d,#122b49); }
.atlas-hero-inner { position:relative; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:70px; min-height:620px; padding-block:80px; }
.atlas-hero-copy { position:relative; z-index:1; }
.atlas-eyebrow { color:#89c3ff; }
.atlas-slide-count { margin:28px 0 12px; color:#8da4bf; font-size:.78rem; letter-spacing:.12em; }
.atlas-slide-count strong { color:#fff; font-size:1.25rem; }
.atlas-slide { display:none; max-width:650px; }
.atlas-slide.is-active { display:block; animation:atlasSlideIn .45s ease both; }
.atlas-slide h1 { margin:0 0 20px; font-size:clamp(3rem,6vw,6.6rem); line-height:.94; letter-spacing:-.075em; }
.atlas-slide p { max-width:560px; color:#bed0e3; font-size:1.08rem; line-height:1.75; }
.atlas-button,.pulse-button,.gallery-button,.orbit-button { display:inline-flex; align-items:center; gap:10px; margin-top:22px; padding:14px 18px; border-radius:999px; background:#8ce48f; color:#10201a; font-size:.83rem; font-weight:850; text-decoration:none; }
.atlas-controls { display:flex; align-items:center; gap:9px; margin-top:46px; }
.atlas-controls button { width:40px; height:40px; border:1px solid rgba(255,255,255,.28); border-radius:50%; background:transparent; color:#fff; cursor:pointer; }
.atlas-controls button:hover,.atlas-controls button.is-active { border-color:#8ce48f; color:#8ce48f; }
.atlas-dots { display:flex; gap:6px; margin-left:9px; }
.atlas-dots button { width:8px; height:8px; border:0; background:#6b829d; }
.atlas-dots button.is-active { width:28px; border-radius:999px; background:#8ce48f; }
.atlas-hero-visual { position:relative; min-height:420px; }
.atlas-slide-image { position:absolute; inset:0; display:none; padding:24px; border:1px solid rgba(255,255,255,.18); border-radius:26px; background:rgba(255,255,255,.08); transform:rotate(2deg); }
.atlas-slide-image.is-active { display:block; animation:atlasImageIn .5s ease both; }
.atlas-slide-image img { width:100%; height:100%; object-fit:cover; border-radius:16px; }
.atlas-image-placeholder { display:grid; height:100%; place-items:center; border-radius:16px; background:linear-gradient(135deg,#276fc0,#81d9b8); font-size:5rem; }
.atlas-fact { position:absolute; right:-20px; bottom:0; max-width:190px; padding:18px; border-radius:16px; background:#fff; color:#132238; box-shadow:0 18px 40px rgba(0,0,0,.2); }
.atlas-fact span,.atlas-fact small { display:block; color:#6b7d91; font-size:.72rem; }
.atlas-fact strong { display:block; margin:4px 0; font-size:2rem; }
.atlas-route,.atlas-stories { background:#fff; }
.atlas-section-head,.pulse-section-head--row,.gallery-section-head,.orbit-heading--row { display:flex; justify-content:space-between; align-items:end; gap:25px; margin-bottom:30px; }
.atlas-section-head h2,.pulse-section-head h2,.gallery-section-head h2,.orbit-heading h2 { max-width:620px; margin:8px 0 0; font-size:clamp(2rem,4vw,4rem); letter-spacing:-.065em; line-height:1; }
.atlas-section-head a,.pulse-section-head a,.gallery-section-head a,.orbit-heading a { color:inherit; }
.atlas-route-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.atlas-route-steps article { min-height:220px; padding:24px; border-radius:18px; background:#eef4fb; }
.atlas-route-steps b { display:block; color:#1769e0; font-size:.8rem; }
.atlas-route-steps i { display:block; margin:32px 0 15px; color:#1769e0; font-size:1.6rem; }
.atlas-route-steps h3 { margin:0 0 8px; }
.atlas-route-steps p,.atlas-story-grid p { margin:0; color:#66778b; line-height:1.6; }
.atlas-story-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.atlas-story-grid article { padding:22px; border-top:3px solid #8ce48f; background:#f4f7fa; }
.atlas-story-grid article > span { color:#1769e0; font-size:.68rem; font-weight:850; text-transform:uppercase; }
.atlas-story-grid h3 { margin:17px 0 12px; font-size:1.1rem; }
.atlas-story-grid a { display:block; margin-top:24px; color:#1769e0; font-size:.78rem; font-weight:800; text-decoration:none; }
@keyframes atlasSlideIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} } @keyframes atlasImageIn { from{opacity:0;transform:rotate(-3deg) scale(.96)} to{opacity:1;transform:rotate(2deg) scale(1)} }

/* Pulse: action-led guidance with an interactive decision switcher. */
.front-layout-pulse { background:#f6f3ff; }
.pulse-hero { overflow:hidden; background:#22134f; color:#fff; }
.pulse-hero-grid { position:relative; display:grid; grid-template-columns:1fr .75fr; align-items:center; gap:50px; min-height:620px; padding-block:80px; }
.pulse-badge { color:#f0c6ff; font-size:.7rem; font-weight:850; letter-spacing:.15em; }
.pulse-hero h1 { max-width:680px; margin:18px 0; font-size:clamp(3.2rem,7vw,7.5rem); line-height:.9; letter-spacing:-.08em; }
.pulse-hero p { max-width:580px; color:#d2c8ea; font-size:1.08rem; line-height:1.75; }
.pulse-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.pulse-button { background:#f4a6ff; }
.pulse-link { color:#fff; font-size:.83rem; font-weight:800; text-decoration:none; }
.pulse-orb { position:relative; width:min(430px,80vw); aspect-ratio:1; margin:auto; border:1px solid rgba(244,166,255,.4); border-radius:50%; background:radial-gradient(circle at 35% 30%,#6844a5,#2a155b 50%,#190d3c); box-shadow:0 0 0 26px rgba(244,166,255,.07),0 0 0 60px rgba(244,166,255,.04); }
.pulse-orb:before,.pulse-orb:after { position:absolute; content:''; inset:13%; border:1px dashed rgba(244,166,255,.35); border-radius:50%; animation:pulseSpin 16s linear infinite; }
.pulse-orb:after { inset:27%; animation-direction:reverse; animation-duration:11s; }
.pulse-orb-inner { position:absolute; inset:34%; display:grid; place-content:center; text-align:center; border-radius:50%; background:#f4a6ff; color:#261143; }
.pulse-orb-inner span,.pulse-orb-inner small { font-size:.63rem; font-weight:850; letter-spacing:.12em; }
.pulse-orb-inner strong { font-size:2.4rem; letter-spacing:-.08em; }
.pulse-orb-icon { position:absolute; top:8%; right:15%; color:#f4a6ff; font-size:1.6rem; }
@keyframes pulseSpin { to{transform:rotate(360deg)} }
.pulse-switcher,.pulse-programmes { background:#fff; }
.pulse-section-head { margin-bottom:28px; }
.pulse-section-head h2 { max-width:700px; }
.pulse-switcher-layout { display:grid; grid-template-columns:260px 1fr; gap:14px; }
.pulse-tabs { display:grid; gap:8px; }
.pulse-tabs button { display:grid; grid-template-columns:32px 1fr; gap:2px 10px; padding:17px; border:1px solid #e5def1; border-radius:14px; background:#faf8ff; color:#5d5572; text-align:left; cursor:pointer; }
.pulse-tabs button i { grid-row:span 2; color:#9d59c6; }
.pulse-tabs button span { color:#2a2140; font-size:.85rem; font-weight:850; }
.pulse-tabs button small { font-size:.72rem; }
.pulse-tabs button.is-active { border-color:#9d59c6; background:#2e185b; color:#e8dafa; }
.pulse-tabs button.is-active span { color:#fff; }
.pulse-panel-wrap { min-height:300px; padding:38px; border-radius:18px; background:linear-gradient(135deg,#f6ecff,#e9f2ff); }
.pulse-panel { display:none; max-width:620px; }
.pulse-panel.is-active { display:block; animation:atlasSlideIn .35s ease both; }
.pulse-panel-icon { display:grid; width:50px; height:50px; place-items:center; border-radius:15px; background:#fff; color:#9d59c6; font-size:1.3rem; }
.pulse-panel h3 { margin:26px 0 10px; font-size:2rem; letter-spacing:-.05em; }
.pulse-panel p { max-width:540px; color:#6c627d; line-height:1.7; }
.pulse-panel a { color:#6d3bab; font-weight:850; text-decoration:none; }
.pulse-programme-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.pulse-programme { position:relative; display:flex; min-height:180px; flex-direction:column; padding:22px; border:1px solid #e6deef; border-radius:16px; background:#faf8ff; color:#281c43; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.pulse-programme:hover { transform:translateY(-5px); box-shadow:0 18px 36px rgba(48,22,89,.1); }
.pulse-programme > span { color:#9d59c6; font-size:.67rem; font-weight:850; text-transform:uppercase; }
.pulse-programme strong { margin:20px 0 8px; font-size:1.05rem; }
.pulse-programme small { color:#756b86; }
.pulse-programme > i { margin-top:auto; align-self:flex-end; color:#9d59c6; }
.pulse-empty { color:#756b86; }
.pulse-cta { background:#2e185b; color:#fff; }
.pulse-cta h2 { max-width:680px; margin:10px 0; font-size:clamp(2.4rem,5vw,5rem); letter-spacing:-.07em; }

/* Gallery: modular catalogue with a filterable collection wall. */
.gallery-hero { background:#f2efe8; }
.gallery-hero-grid { display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:80px; min-height:600px; padding-block:70px; }
.gallery-hero h1 { max-width:650px; margin:17px 0; color:#1b2421; font-size:clamp(3.3rem,7vw,7rem); line-height:.92; letter-spacing:-.09em; }
.gallery-hero p { max-width:530px; color:#68746f; font-size:1.05rem; line-height:1.75; }
.gallery-label--dark { color:#307c6e; }
.gallery-hero-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.gallery-button { background:#e2b955; }
.gallery-text-link { color:#1b2421; font-size:.82rem; font-weight:850; text-decoration:none; }
.gallery-mosaic { display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:1fr 1fr; gap:12px; min-height:390px; transform:rotate(-3deg); }
.gallery-tile { display:flex; flex-direction:column; justify-content:space-between; padding:24px; border-radius:20px; overflow:hidden; }
.gallery-tile--large { grid-row:span 2; background:#307c6e; color:#fff; font-size:2.3rem; }
.gallery-tile--large i { font-size:5rem; opacity:.75; }
.gallery-tile--gold { background:#e2b955; color:#342912; }
.gallery-tile--blue { background:#78a8d8; color:#12283d; }
.gallery-tile--outline { border:1px solid #b7c4ba; background:#fffdf8; color:#307c6e; }
.gallery-tile strong { font-size:3rem; letter-spacing:-.09em; }
.gallery-tile span { font-weight:800; }
.gallery-collection { background:#fffdf8; }
.gallery-section-head h2 { color:#1b2421; }
.gallery-filter { display:flex; flex-wrap:wrap; gap:6px; }
.gallery-filter button { padding:9px 12px; border:1px solid #d8e1d9; border-radius:999px; background:#fffdf8; color:#617069; cursor:pointer; }
.gallery-filter button.is-active { border-color:#307c6e; background:#307c6e; color:#fff; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gallery-card { display:flex; min-height:270px; flex-direction:column; padding:23px; border-radius:18px; color:#1b2421; text-decoration:none; transition:transform .2s ease; }
.gallery-card:hover { transform:translateY(-6px); }
.gallery-card--college { background:#e9f2ec; }
.gallery-card--course { background:#f5ead0; }
.gallery-card-index { font-size:.66rem; font-weight:850; letter-spacing:.13em; }
.gallery-card > i { margin:37px 0 17px; color:#307c6e; font-size:1.6rem; }
.gallery-card h3 { margin:0 0 10px; font-size:1.25rem; letter-spacing:-.035em; }
.gallery-card p { min-height:45px; margin:0; color:#68746f; line-height:1.55; }
.gallery-card > span:last-child { margin-top:auto; color:#307c6e; font-size:.78rem; font-weight:850; }
.gallery-quote { background:#1b2421; color:#fff; text-align:center; }
.gallery-quote .gallery-label { color:#e2b955; }
.gallery-quote blockquote { max-width:780px; margin:20px auto; font-size:clamp(2rem,4vw,4.4rem); line-height:1; letter-spacing:-.07em; }

/* Orbit: dark spatial navigation with a visible five-step journey. */
.orbit-hero { overflow:hidden; background:#071526; color:#fff; }
.orbit-hero-grid { position:relative; display:grid; grid-template-columns:1fr .95fr; align-items:center; gap:70px; min-height:640px; padding-block:80px; }
.orbit-kicker { color:#78e6d0; }
.orbit-hero h1 { max-width:650px; margin:18px 0; font-size:clamp(3.2rem,7vw,7.4rem); line-height:.9; letter-spacing:-.085em; }
.orbit-hero p { max-width:550px; color:#a9bdcf; font-size:1.08rem; line-height:1.75; }
.orbit-button { background:#78e6d0; }
.orbit-link { color:#fff; font-size:.82rem; font-weight:850; text-decoration:none; }
.orbit-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.orbit-system { position:relative; width:min(500px,80vw); aspect-ratio:1; margin:auto; border-radius:50%; background:radial-gradient(circle at 50% 50%,rgba(120,230,208,.17),transparent 32%),radial-gradient(circle at 50% 50%,#102b45,#08192d 60%,#071526); }
.orbit-ring { position:absolute; inset:6%; border:1px solid rgba(120,230,208,.35); border-radius:50%; animation:orbitSpin 18s linear infinite; }
.orbit-ring--middle { inset:20%; border-color:rgba(255,201,112,.35); animation-duration:13s; animation-direction:reverse; }
.orbit-ring--inner { inset:34%; border-color:rgba(120,230,208,.65); animation-duration:9s; }
.orbit-core { position:absolute; inset:40%; display:grid; place-content:center; justify-items:center; border-radius:50%; background:#78e6d0; color:#071526; text-align:center; box-shadow:0 0 60px rgba(120,230,208,.45); }
.orbit-core i { font-size:1.6rem; }.orbit-core span { font-size:.72rem; font-weight:900; }
.orbit-node { position:absolute; display:grid; width:46px; height:46px; place-items:center; border-radius:50%; background:#ffc970; color:#162538; box-shadow:0 0 24px rgba(255,201,112,.35); }
.orbit-node--one { top:3%; left:47%; }.orbit-node--two { right:3%; top:48%; }.orbit-node--three { bottom:5%; left:45%; }
@keyframes orbitSpin { to{transform:rotate(360deg)} }
.orbit-timeline,.orbit-colleges { background:#f7fafc; }
.orbit-heading { max-width:730px; margin-bottom:34px; }.orbit-heading p { max-width:630px; color:#6b7d8d; line-height:1.7; }
.orbit-steps { display:grid; grid-template-columns:repeat(5,1fr); position:relative; gap:10px; }
.orbit-steps:before { position:absolute; top:43px; left:8%; right:8%; height:2px; content:''; background:#c9ddd9; }
.orbit-steps a { position:relative; z-index:1; display:flex; min-height:170px; flex-direction:column; align-items:center; padding:16px 10px; border-radius:16px; color:#183046; text-align:center; text-decoration:none; }
.orbit-steps a:hover { background:#fff; box-shadow:0 12px 26px rgba(14,43,64,.08); }
.orbit-steps span { display:grid; width:56px; height:56px; place-items:center; border:2px solid #78bdb4; border-radius:50%; background:#f7fafc; color:#25766b; font-size:.75rem; font-weight:850; }
.orbit-steps i { margin:18px 0 8px; color:#25766b; }.orbit-steps strong { font-size:.9rem; }.orbit-steps small { margin-top:4px; color:#758697; font-size:.7rem; }
.orbit-heading--row { max-width:none; }.orbit-college-list { border-top:1px solid #d7e1e7; }.orbit-college-list a { display:grid; grid-template-columns:70px 1fr 20px; align-items:center; gap:20px; padding:20px 0; border-bottom:1px solid #d7e1e7; color:#183046; text-decoration:none; }.orbit-college-list a:hover h3 { color:#25766b; }.orbit-college-number { color:#25766b; font-size:.78rem; font-weight:850; }.orbit-college-list small { color:#25766b; font-size:.66rem; font-weight:850; letter-spacing:.12em; }.orbit-college-list h3 { margin:5px 0; font-size:1.35rem; }.orbit-college-list p { margin:0; color:#758697; font-size:.8rem; }.orbit-college-list > a > i { color:#25766b; }.orbit-cta { background:#0b2438; color:#fff; }.orbit-cta .front-container { display:flex; align-items:center; justify-content:space-between; gap:28px; }.orbit-cta h2 { max-width:650px; margin:10px 0 0; font-size:clamp(2.3rem,5vw,5rem); line-height:.95; letter-spacing:-.07em; }

@media (max-width: 900px) { .atlas-hero-inner,.pulse-hero-grid,.gallery-hero-grid,.orbit-hero-grid { grid-template-columns:1fr; gap:40px; } .atlas-hero-visual { min-height:360px; } .atlas-route-steps,.pulse-programme-grid,.gallery-grid { grid-template-columns:repeat(2,1fr); } .atlas-story-grid { grid-template-columns:repeat(2,1fr); } .pulse-switcher-layout { grid-template-columns:1fr; } .orbit-steps { grid-template-columns:repeat(3,1fr); }.orbit-steps:before { display:none; } }
@media (max-width: 600px) { .pathways-heading,.atlas-section-head,.pulse-section-head--row,.gallery-section-head,.orbit-heading--row,.orbit-cta .front-container { display:block; } .pathways-directory-link,.atlas-section-head a,.pulse-section-head a,.gallery-section-head a,.orbit-heading a { display:inline-block; margin-top:18px; } .pathway-college > summary { grid-template-columns:1fr 20px; }.pathway-summary-meta { grid-column:1 / -1; }.pathway-count { margin-left:0; }.pathway-programme-title { display:block; }.pathway-programme-title span { display:block; margin-top:5px; }.atlas-route-steps,.pulse-programme-grid,.gallery-grid,.atlas-story-grid { grid-template-columns:1fr; }.gallery-mosaic { min-height:300px; }.orbit-steps { grid-template-columns:repeat(2,1fr); }.orbit-cta .orbit-button { margin-top:25px; } }

/* Footer layouts are selected from Admin > Website > Theme Options. */
.front-footer--footer-two { background:linear-gradient(145deg,#0b1d35,#123c5e); }
.front-footer--footer-two .front-footer-top { display:grid; grid-template-columns:1fr; justify-items:center; text-align:center; gap:25px; }
.front-footer--footer-two .front-footer-brand { max-width:620px; }
.front-footer--footer-two .front-footer-newsletter { width:min(520px,100%); }
.front-footer--footer-two .front-footer-widgets { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); text-align:center; }
.front-footer--footer-two .front-social { justify-content:center; }
.front-footer--footer-two .front-footer-bottom { background:rgba(0,0,0,.16); }
.front-footer--footer-three { background:#f4f7f4; color:#50645b; border-top:5px solid #287c67; }
.front-footer--footer-three a { color:#2c5e51; }
.front-footer--footer-three a:hover { color:#c08322; }
.front-footer--footer-three .front-footer-top { align-items:flex-end; border-bottom-color:#d7e2da; }
.front-footer--footer-three .front-footer-logo .front-brand-text,.front-footer--footer-three .front-footer-col h5,.front-footer--footer-three .front-footer-newsletter h5 { color:#173b32; }
.front-footer--footer-three .front-footer-widgets { padding-block:32px; }
.front-footer--footer-three .front-footer-bottom { border-top-color:#d7e2da; background:#e9f0eb; color:#557065; }

/* -------------------------------------------------------------------------
   Frontend colour polish
   Each presentation keeps its own personality while sharing the same
   readable ink, muted text, border and focus treatment. Bright colours are
   reserved for actions and wayfinding so the pages stay expressive without
   making long text difficult to read.
------------------------------------------------------------------------- */
body.front-site {
  --front-ink: #17263b;
  --front-muted: #607188;
  --front-border: #dce5ef;
  --front-focus: #08a9df;
  color: var(--front-ink);
}
body.front-site ::selection { background: #b9f0ff; color: #10243a; }
body.front-site :focus-visible { outline: 3px solid color-mix(in srgb, var(--front-focus) 72%, #fff); outline-offset: 3px; }
body.front-site .front-nav-link,
body.front-site .front-dropdown-list a,
body.front-site .front-mega-grid a,
body.front-site .front-user-menu a,
body.front-site .front-user-menu button { color: var(--front-ink); }
body.front-site .front-nav-link:hover,
body.front-site .front-nav-link.active,
body.front-site .front-dropdown-list a:hover,
body.front-site .front-mega-grid a:hover { color: var(--primary); }
body.front-site .front-icon-btn,
body.front-site .front-user-toggle { border-color: var(--front-border); color: var(--front-ink); }
body.front-site .front-icon-btn:hover,
body.front-site .front-user-toggle:hover { border-color: var(--front-focus); box-shadow: 0 0 0 4px color-mix(in srgb, var(--front-focus) 13%, transparent); }
body.front-site .front-text-link,
body.front-site .front-section-link,
body.front-site .front-card-link { text-underline-offset: 4px; }

/* Editorial: terracotta and marigold give the paper layout warmth. */
body.front-layout-editorial {
  --editorial-accent: #bd583e;
  --editorial-highlight: #c99832;
  --editorial-muted: #5e6c66;
}
body.front-layout-editorial .editorial-kicker,
body.front-layout-editorial .editorial-college-code,
body.front-layout-editorial .editorial-programme-list span,
body.front-layout-editorial .editorial-news article > span,
body.front-layout-editorial .editorial-card-meta i,
body.front-layout-editorial .editorial-news a i { color: var(--editorial-accent); }
body.front-layout-editorial .editorial-college-card { border-top-color: var(--editorial-accent); }
body.front-layout-editorial .editorial-cta .editorial-kicker { color: #f1c86c; }

/* Aurora: a crisp indigo core with a turquoise success accent. */
body.front-aurora {
  --aurora-accent: #4f63d8;
  --aurora-teal: #238f83;
  --aurora-ink: #17213c;
}
body.front-aurora .aurora-kicker,
body.front-aurora .aurora-arrow-link,
body.front-aurora .aurora-card-arrow { color: var(--aurora-accent); }
body.front-aurora .aurora-tab-list button.is-active { background: var(--aurora-accent); box-shadow: 0 10px 24px color-mix(in srgb, var(--aurora-accent) 28%, transparent); }
body.front-aurora .aurora-panel-visual--apply { color: var(--aurora-teal); }

/* Studio: orange and saffron accents lift the dark gallery without reducing contrast. */
body.front-studio {
  --studio-accent: #d86f3e;
  --studio-gold: #e8b450;
}
body.front-studio .studio-label { color: var(--studio-gold); }
body.front-studio .studio-label--dark,
body.front-studio .studio-programme-award,
body.front-studio .studio-programme-open { color: var(--studio-accent); }
body.front-studio .studio-button { background: var(--studio-accent); color: #fff; }
body.front-studio .studio-button:hover { background: #b9562d; color: #fff; }

/* Atlas, Pulse, Gallery and Orbit use vivid accents against deliberate dark or
   paper surfaces. The values meet the contrast of their surrounding text. */
body.front-layout-atlas { --atlas-accent: #79e6a8; --atlas-blue: #6fb8ff; }
body.front-layout-atlas .atlas-eyebrow,
body.front-layout-atlas .atlas-route-steps b,
body.front-layout-atlas .atlas-route-steps i,
body.front-layout-atlas .atlas-story-grid article > span,
body.front-layout-atlas .atlas-story-grid a { color: var(--atlas-blue); }
body.front-layout-atlas .atlas-button,
body.front-layout-atlas .atlas-dots button.is-active,
body.front-layout-atlas .atlas-controls button:hover,
body.front-layout-atlas .atlas-controls button.is-active { background: var(--atlas-accent); border-color: var(--atlas-accent); }
body.front-layout-atlas .atlas-button { color: #10251d; }

body.front-layout-pulse { --pulse-accent: #ee9df8; --pulse-blue: #83b7ff; }
body.front-layout-pulse .pulse-badge,
body.front-layout-pulse .pulse-button,
body.front-layout-pulse .pulse-orb-icon { color: var(--pulse-accent); }
body.front-layout-pulse .pulse-button,
body.front-layout-pulse .pulse-orb-inner { background: var(--pulse-accent); color: #27133e; }
body.front-layout-pulse .pulse-tabs button.is-active { border-color: var(--pulse-accent); box-shadow: 0 10px 24px rgba(74, 33, 119, .2); }
body.front-layout-pulse .pulse-panel a { color: #7043bb; }

body.front-layout-gallery { --gallery-accent: #247f72; --gallery-gold: #e1b650; }
body.front-layout-gallery .gallery-label--dark,
body.front-layout-gallery .gallery-card > i,
body.front-layout-gallery .gallery-card > span:last-child { color: var(--gallery-accent); }
body.front-layout-gallery .gallery-filter button.is-active { border-color: var(--gallery-accent); background: var(--gallery-accent); }
body.front-layout-gallery .gallery-button { background: var(--gallery-gold); color: #31250c; }
body.front-layout-gallery .gallery-button:hover { background: #c99a32; color: #241b08; }

body.front-layout-orbit { --orbit-accent: #68e1c8; --orbit-gold: #ffc565; }
body.front-layout-orbit .orbit-kicker,
body.front-layout-orbit .orbit-steps i,
body.front-layout-orbit .orbit-college-number,
body.front-layout-orbit .orbit-college-list small,
body.front-layout-orbit .orbit-college-list > a > i { color: var(--orbit-accent); }
body.front-layout-orbit .orbit-button,
body.front-layout-orbit .orbit-core { background: var(--orbit-accent); }
body.front-layout-orbit .orbit-button { color: #08211d; }
body.front-layout-orbit .orbit-node { background: var(--orbit-gold); }

/* Footer text remains soft, but links and headings stay bright enough to scan. */
body.front-site .front-footer a:hover,
body.front-site .front-footer .front-footer-col h5,
body.front-site .front-footer .front-footer-newsletter h5 { color: #fff; }
body.front-site .front-footer--footer-three a:hover { color: #a45e16; }
/* Dark presentations need light navigation text after the shared nav polish. */
body.front-layout-atlas .front-nav-link { color: #f2f7ff !important; }
body.front-layout-atlas .front-nav-link:hover,
body.front-layout-atlas .front-nav-link.active { color: var(--atlas-accent) !important; background: rgba(255,255,255,.08); }
body.front-layout-atlas .front-brand-text { color: #fff; }
body.front-bcu .front-dropdown-list a,
body.front-bcu .front-mega-grid a,
body.front-bcu .front-user-menu a,
body.front-bcu .front-user-menu button { color: #fff; }

/* Profile choice portal: a bright, focused entry point for mixed-profile sites. */
body.front-layout-profile_select { background: #f4f7ff; color: #17223d; }
.profile-select-hero { position: relative; overflow: hidden; padding: 92px 0 82px; background: linear-gradient(124deg, #172554 0%, #263b91 56%, #126b79 100%); color: #fff; }
.profile-select-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); align-items: center; gap: 56px; }
.profile-select-glow { position: absolute; border-radius: 50%; filter: blur(2px); opacity: .28; pointer-events: none; }
.profile-select-glow--one { width: 330px; height: 330px; top: -180px; right: 16%; background: #81e6d9; }
.profile-select-glow--two { width: 260px; height: 260px; bottom: -170px; left: 8%; background: #a78bfa; }
.profile-select-copy { max-width: 700px; }
.profile-select-kicker { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 18px; color: #a7f3d0; font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.profile-select-copy h1 { max-width: 680px; margin: 0 0 18px; color: #fff; font-size: clamp(2.4rem, 5vw, 4.8rem); line-height: 1.03; letter-spacing: -.04em; }
.profile-select-copy p { max-width: 620px; margin: 0 0 26px; color: #dbeafe; font-size: 1.08rem; line-height: 1.7; }
.profile-select-current { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid rgba(167,243,208,.45); border-radius: 999px; background: rgba(15,118,110,.25); color: #ecfdf5; font-size: .88rem; font-weight: 700; }
.profile-select-current--dark { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.09); }
.profile-select-orbit { position: relative; display: grid; place-items: center; width: min(360px, 80vw); aspect-ratio: 1; margin: auto; }
.profile-select-orbit-ring { position: absolute; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; }
.profile-select-orbit-ring--outer { inset: 3%; border-style: dashed; animation: profileSelectSpin 24s linear infinite; }
.profile-select-orbit-ring--inner { inset: 19%; border-color: rgba(167,243,208,.56); animation: profileSelectSpin 17s linear infinite reverse; }
.profile-select-orbit-core { display: grid; place-items: center; width: 126px; height: 126px; border: 8px solid rgba(255,255,255,.19); border-radius: 50%; background: linear-gradient(145deg, #5eead4, #4f46e5); box-shadow: 0 24px 70px rgba(8,47,73,.45); color: #fff; font-size: 2.8rem; }
@keyframes profileSelectSpin { to { transform: rotate(360deg); } }
.profile-select-options { padding: 80px 0 58px; }
.profile-select-heading { max-width: 720px; margin: 0 auto 34px; text-align: center; }
.profile-select-heading h2 { margin: 8px 0 10px; color: #172554; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.profile-select-heading p { margin: 0; color: #64748b; line-height: 1.65; }
.profile-select-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; max-width: 1060px; margin: auto; }
.profile-select-card { position: relative; min-height: 310px; padding: 30px; overflow: hidden; border: 1px solid #dbe4f5; border-radius: 25px; background: #fff; box-shadow: 0 16px 38px rgba(30,41,89,.08); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.profile-select-card:hover, .profile-select-card.is-selected { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(30,41,89,.16); }
.profile-select-card--university:hover, .profile-select-card--university.is-selected { border-color: #6475e8; }
.profile-select-card--institution:hover, .profile-select-card--institution.is-selected { border-color: #36b9a4; }
.profile-select-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.profile-select-card-icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 17px; font-size: 1.45rem; }
.profile-select-card--university .profile-select-card-icon { background: #e0e7ff; color: #4338ca; }
.profile-select-card--institution .profile-select-card-icon { background: #ccfbf1; color: #0f766e; }
.profile-select-badge { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 999px; background: #ecfdf5; color: #047857; font-size: .75rem; font-weight: 800; }
.profile-select-card-eyebrow { color: #64748b; font-size: .76rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.profile-select-card h3 { margin: 9px 0 12px; color: #172554; font-size: 1.65rem; }
.profile-select-card p { max-width: 440px; min-height: 58px; margin: 0 0 24px; color: #64748b; line-height: 1.65; }
.profile-select-card-link { display: inline-flex; align-items: center; gap: 9px; color: #3730a3; font-weight: 800; text-decoration: none; }
.profile-select-card--institution .profile-select-card-link { color: #0f766e; }
.profile-select-card-link:hover { gap: 13px; }
.profile-select-summary { padding: 26px 0; }
.profile-select-summary .front-container { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 28px 32px; border-radius: 22px; }
.profile-select-summary h2 { margin: 4px 0 8px; color: #172554; font-size: 1.7rem; }
.profile-select-summary p { margin: 0; color: #52617e; }
.profile-select-summary--university .front-container { background: #e9edff; }
.profile-select-summary--institution .front-container { background: #dcf8f1; }
.profile-select-note { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 18px 0 56px; color: #64748b; }
.profile-select-note i { color: #d97706; }
@media (max-width: 760px) {
    .profile-select-hero { padding: 64px 0 58px; }
    .profile-select-hero-inner { grid-template-columns: 1fr; gap: 28px; }
    .profile-select-orbit { width: 230px; }
    .profile-select-orbit-core { width: 92px; height: 92px; font-size: 2rem; }
    .profile-select-grid { grid-template-columns: 1fr; }
    .profile-select-card { min-height: 0; }
    .profile-select-card p { min-height: 0; }
    .profile-select-summary .front-container { align-items: flex-start; flex-direction: column; }
}

/* -------------------------------------------------------------------------
   Shared footer refinement
   The footer is one consistent system across every public frontend layout.
   Layout-specific themes may change the palette, but not its readability,
   spacing, hierarchy or mobile behavior.
------------------------------------------------------------------------- */
body.front-site .front-footer {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, #071b38 0%, #0b2e58 56%, #075b86 100%);
  color: #a9bdd2;
}
body.front-site .front-footer::before,
body.front-site .front-footer::after {
  position: absolute;
  content: '';
  border-radius: 50%;
  pointer-events: none;
}
body.front-site .front-footer::before { width: 420px; height: 420px; top: -260px; right: -120px; background: rgba(8,185,238,.14); filter: blur(4px); }
body.front-site .front-footer::after { width: 280px; height: 280px; bottom: -210px; left: -100px; background: rgba(7,91,212,.2); filter: blur(8px); }
body.front-site .front-footer > .front-container,
body.front-site .front-footer-bottom { position: relative; z-index: 1; }
body.front-site .front-footer-top { align-items: center; gap: clamp(28px, 7vw, 96px); padding: 70px 0 44px; border-bottom-color: rgba(180,220,246,.15); }
body.front-site .front-footer-brand { max-width: 430px; }
body.front-site .front-footer-logo { display: inline-flex; align-items: center; min-height: 52px; }
body.front-site .front-footer-logo img { max-height: 54px; max-width: 210px; object-fit: contain; }
body.front-site .front-footer-brand p { max-width: 390px; margin: 20px 0 0; color: #c4d5e6; font-size: .95rem; line-height: 1.8; }
body.front-site .front-footer-brand-note,
body.front-site .front-footer-kicker { display: inline-flex; align-items: center; gap: 8px; color: #75def8; font-size: .73rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
body.front-site .front-footer-brand-note { margin-top: 18px; color: #9bc4dd; font-size: .76rem; letter-spacing: .04em; text-transform: none; }
body.front-site .front-footer-brand-note i { color: #72e3f7; }
body.front-site .front-social { gap: 9px; margin-top: 22px; }
body.front-site .front-social a { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.08); color: #eaf7ff; }
body.front-site .front-social a:hover { border-color: transparent; background: #08a9df; box-shadow: 0 10px 24px rgba(8,169,223,.3); }
body.front-site .front-footer-newsletter { width: min(510px, 100%); max-width: 510px; padding: 28px; border: 1px solid rgba(181,224,246,.17); border-radius: 22px; background: linear-gradient(135deg, rgba(255,255,255,.1), rgba(255,255,255,.045)); box-shadow: 0 20px 55px rgba(1,14,32,.16); }
body.front-site .front-footer-newsletter h5 { margin: 10px 0 8px; font-size: clamp(1.25rem, 2vw, 1.55rem); letter-spacing: -.02em; }
body.front-site .front-footer-newsletter p { margin: 0 0 18px; color: #b9cee0; font-size: .9rem; line-height: 1.65; }
body.front-site .front-subscribe-form { gap: 9px; }
body.front-site .front-subscribe-form input[type=email] { min-width: 0; border-color: rgba(190,226,244,.25); background: rgba(2,19,40,.36); }
body.front-site .front-subscribe-form input[type=email]:focus { border-color: #71def4; box-shadow: 0 0 0 3px rgba(113,222,244,.14); }
body.front-site .front-subscribe-form .btn { border-radius: 11px; background: #08a9df; border-color: #08a9df; box-shadow: 0 8px 20px rgba(8,169,223,.23); }
body.front-site .front-subscribe-form .btn:hover { background: #39c5ed; border-color: #39c5ed; }
body.front-site .front-footer-widgets { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px; padding: 42px 0 38px; }
body.front-site .front-footer-col { min-width: 0; padding: 21px 20px; border: 1px solid rgba(181,224,246,.12); border-radius: 17px; background: rgba(255,255,255,.045); }
body.front-site .front-footer-col h5 { display: flex; align-items: center; gap: 9px; margin-bottom: 17px; font-size: .88rem; letter-spacing: .04em; text-transform: uppercase; }
body.front-site .front-footer-col h5::before { width: 5px; height: 18px; border-radius: 999px; background: #55d8f4; content: ''; }
body.front-site .front-footer-col ul { gap: 9px; }
body.front-site .front-footer-col li a { display: inline-flex; align-items: flex-start; gap: 7px; color: #bdd0e0; line-height: 1.45; transition: color .2s ease, transform .2s ease; }
body.front-site .front-footer-col li a::before { margin-top: .46em; color: #55d8f4; content: '\f105'; font-family: 'Font Awesome 6 Free'; font-size: .66rem; font-weight: 900; opacity: .8; }
body.front-site .front-footer-col li a:hover { color: #fff; transform: translateX(3px); }
body.front-site .front-footer-col p { color: #b5c9da; line-height: 1.65; }
body.front-site .front-footer-apps { background: linear-gradient(145deg, rgba(8,169,223,.12), rgba(255,255,255,.045)); }
body.front-site .front-store-btn { width: 100%; border-color: rgba(190,226,244,.2); background: rgba(0,12,29,.2); transition: transform .2s ease, border-color .2s ease, background .2s ease; }
body.front-site .front-store-btn:hover { border-color: rgba(113,222,244,.6); background: rgba(8,169,223,.14); transform: translateY(-2px); }
body.front-site .front-payment-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 0 28px; }
body.front-site .front-payment-banner span { display: inline-flex; align-items: center; gap: 8px; color: #9fc1d7; font-size: .78rem; font-weight: 700; }
body.front-site .front-payment-banner span i { color: #73e2c4; }
body.front-site .front-payment-banner img { max-width: min(100%, 340px); height: auto; max-height: 38px; opacity: .9; }
body.front-site .front-footer-bottom { background: rgba(1,12,28,.32); border-top-color: rgba(181,224,246,.13); color: #9fb8cc; }
body.front-site .front-footer-bottom .front-container { padding-inline: 20px; }

/* Footer three is intentionally light, so preserve its airy paper treatment. */
body.front-site .front-footer--footer-three { background: linear-gradient(145deg, #f6fbfa, #edf6f2); color: #587267; border-top: 5px solid #287c67; }
body.front-site .front-footer--footer-three::before { background: rgba(40,124,103,.1); }
body.front-site .front-footer--footer-three::after { background: rgba(192,131,34,.08); }
body.front-site .front-footer--footer-three .front-footer-top { border-bottom-color: #d7e7df; }
body.front-site .front-footer--footer-three .front-footer-brand p,
body.front-site .front-footer--footer-three .front-footer-newsletter p,
body.front-site .front-footer--footer-three .front-footer-col p { color: #60786c; }
body.front-site .front-footer--footer-three .front-footer-brand-note,
body.front-site .front-footer--footer-three .front-footer-kicker { color: #287c67; }
body.front-site .front-footer--footer-three .front-footer-newsletter,
body.front-site .front-footer--footer-three .front-footer-col { border-color: #d8e8df; background: rgba(255,255,255,.58); box-shadow: 0 12px 28px rgba(32,91,69,.06); }
body.front-site .front-footer--footer-three .front-footer-col h5 { color: #173b32; }
body.front-site .front-footer--footer-three .front-footer-col li a { color: #42675a; }
body.front-site .front-footer--footer-three .front-footer-col li a:hover { color: #a45e16; }
body.front-site .front-footer--footer-three .front-store-btn { color: #28584a !important; border-color: #c4ddd1; background: #f8fcfa; }
body.front-site .front-footer--footer-three .front-payment-banner span { color: #587267; }
body.front-site .front-footer--footer-three .front-footer-bottom { background: #e5f0ea; border-top-color: #d2e3d9; color: #587267; }

@media (max-width: 700px) {
  body.front-site .front-footer-top { align-items: stretch; padding: 54px 0 32px; }
  body.front-site .front-footer-newsletter { max-width: none; padding: 23px; }
  body.front-site .front-footer-widgets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 30px 0; }
  body.front-site .front-footer-col { padding: 18px 15px; }
  body.front-site .front-footer-col h5 { font-size: .78rem; }
  body.front-site .front-payment-banner { align-items: flex-start; flex-direction: column; gap: 12px; }
}
@media (max-width: 430px) {
  body.front-site .front-footer-widgets { grid-template-columns: 1fr; }
  body.front-site .front-subscribe-form { display: grid; }
  body.front-site .front-subscribe-form input[type=email], body.front-site .front-subscribe-form .btn { width: 100%; }
}
