.cse-page { background: var(--gr-paper); }
.cse-back { display: inline-flex; align-items: center; gap: 12px; color: var(--maroon); font-size: .82rem; font-weight: 700; }
.cse-back span { font-size: 1.2rem; transition: var(--transition); }
.cse-back:hover span { transform: translateX(4px); }
.cse-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 60px; padding-top: 58px; padding-bottom: 90px; }
.cse-layout--full { display: block; }
.cse-layout--full .cse-content { min-width: 0; }
.cse-sidebar { position: sticky; top: 115px; align-self: start; padding-right: 28px; border-right: 1px solid var(--gr-line); }
.cse-sidebar__eyebrow { color: var(--gr-gold); font-size: .68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.cse-sidebar h2 { margin: 10px 0 28px; color: var(--maroon); font-family: var(--gr-serif); font-size: 1.25rem; line-height: 1.35; }
.cse-sidebar nav { display: grid; gap: 2px; }
.cse-sidebar nav a { position: relative; padding: 10px 12px; color: var(--gray); font-size: .8rem; font-weight: 600; transition: var(--transition); }
.cse-sidebar nav a:hover, .cse-sidebar nav a.is-active { color: var(--maroon); background: rgba(182,134,44,.1); }
.cse-sidebar nav a.is-active::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--gr-gold); }
.cse-sidebar__footer { margin-top: 38px; padding-top: 20px; border-top: 1px solid var(--gr-line); }
.cse-sidebar__footer span { display: block; color: var(--gray); font-size: .65rem; letter-spacing: 1px; text-transform: uppercase; }
.cse-sidebar__footer a { display: block; margin-top: 8px; color: var(--maroon); font-size: .76rem; font-weight: 700; overflow-wrap: anywhere; }
.cse-sidebar__footer small { display: block; margin-top: 7px; color: var(--gray); font-size: .72rem; line-height: 1.5; }
.cse-content { min-width: 0; }
.cse-hero { display: grid; grid-template-columns: .8fr 1.2fr; min-height: 450px; background: var(--white); }
.cse-hero--plain { grid-template-columns: 1fr; min-height: 0; }
.cse-hero--plain .cse-hero__copy { padding: 64px 54px; }
/* .gr-btn--line's colour depends on load order elsewhere in grand.css (it
   is redefined for the light home hero later in the stylesheet), so a
   dedicated on-dark variant is used here instead of relying on it inside a
   dark cse-hero/cse-dark panel. */
.gr-btn--on-dark { border-color: rgba(255,255,255,.4); color: var(--white); }
.gr-btn--on-dark:hover { border-color: var(--gr-gold); color: var(--gr-gold-light); }
.cse-hero__image { min-height: 450px; overflow: hidden; }
.cse-hero__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); }
.cse-hero__copy { display: flex; justify-content: center; flex-direction: column; padding: 58px 54px; background: linear-gradient(145deg, var(--gr-ink), var(--maroon-dark)); }
.cse-hero__copy .gr-eyebrow { margin-bottom: 22px; }
.cse-hero h1 { color: var(--white); font-family: var(--gr-serif); font-size: clamp(2.2rem, 4.5vw, 4.4rem); line-height: 1.08; }
.cse-hero h1 em { color: var(--gr-gold-light); font-style: normal; }
.cse-hero__copy > p:not(.gr-eyebrow) { max-width: 500px; margin-top: 22px; color: rgba(255,255,255,.74); font-size: .95rem; }
.cse-hero__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 42px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); }
.cse-hero__facts strong { display: block; color: var(--gr-gold-light); font-family: var(--gr-serif); font-size: 1.3rem; }
.cse-hero__facts span { display: block; margin-top: 5px; color: rgba(255,255,255,.62); font-size: .67rem; line-height: 1.35; }
.cse-section { padding-top: 100px; }
.cse-intro { max-width: 780px; }
.cse-intro h2, .cse-section__heading h2, .cse-careers h2 { color: var(--black); font-family: var(--gr-serif); font-size: clamp(1.8rem, 3.3vw, 2.8rem); }
.cse-intro > p:not(.gr-eyebrow) { margin-top: 18px; color: var(--charcoal); font-size: .95rem; }
.cse-accreditation { display: grid; grid-template-columns: 150px 1fr; gap: 18px; margin-top: 34px; padding: 18px 0; border-top: 1px solid var(--gr-line); border-bottom: 1px solid var(--gr-line); }
.cse-accreditation span { color: var(--gr-gold); font-size: .68rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.cse-accreditation strong { color: var(--maroon); font-size: .83rem; }
.cse-section__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 34px; }
.cse-section__count { color: var(--gr-gold); font-family: var(--gr-serif); font-size: .95rem; }
.cse-programmes__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--gr-line); border: 1px solid var(--gr-line); }
.cse-programmes article { min-height: 250px; padding: 28px; background: var(--white); transition: var(--transition); }
.cse-programmes article:hover { background: var(--gr-ink); color: var(--white); }
.cse-programmes article > span { color: var(--gr-gold); font-family: var(--gr-serif); font-size: 1.1rem; }
.cse-programmes h3 { margin: 34px 0 12px; color: var(--black); font-family: var(--gr-serif); font-size: 1.08rem; }
.cse-programmes article:hover h3 { color: var(--white); }
.cse-programmes p { min-height: 48px; color: var(--gray); font-size: .82rem; }
.cse-programmes article:hover p { color: rgba(255,255,255,.65); }
.cse-programmes a { display: block; margin-top: 22px; color: var(--maroon); font-size: .75rem; font-weight: 700; }
.cse-programmes article:hover a { color: var(--gr-gold-light); }
.cse-details { padding-right: 16%; }
.cse-details__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; }
.cse-details h3 { margin-bottom: 18px; color: var(--maroon); font-family: var(--gr-serif); font-size: 1.1rem; }
.cse-details li { position: relative; margin-bottom: 12px; padding-left: 20px; color: var(--charcoal); font-size: .83rem; }
.cse-details li::before { content: ""; position: absolute; left: 0; top: .65em; width: 9px; height: 1px; background: var(--gr-gold); }
.cse-specialisations { padding-right: 7%; }
.cse-specialisations__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cse-specialisations article { padding: 26px 22px; border-top: 2px solid var(--gr-gold); background: var(--white); }
.cse-specialisations article > span { color: var(--maroon); font-family: var(--gr-serif); font-size: 1.05rem; }
.cse-specialisations p { margin-top: 15px; color: var(--gray); font-size: .8rem; }
.cse-specialisations small { display: block; margin-top: 22px; color: var(--charcoal); font-size: .7rem; line-height: 1.5; }
.cse-careers { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 100px; padding: 46px; color: var(--white); background: linear-gradient(125deg, var(--gr-ink), var(--maroon-dark)); }
.cse-careers h2 { color: var(--white); }
.cse-careers p:not(.gr-eyebrow) { max-width: 610px; margin-top: 16px; color: rgba(255,255,255,.72); font-size: .86rem; }
.cse-footer { padding: 25px 0; color: rgba(255,255,255,.7); background: var(--black); font-size: .78rem; }
.cse-footer .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cse-footer a { color: var(--gr-gold-light); font-weight: 700; }
.cse-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 34px 0; border-top: 1px solid var(--gr-line); border-bottom: 1px solid var(--gr-line); }
.cse-stats__item span { display: block; color: var(--gr-gold); font-size: .68rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.cse-stats__item strong { display: block; margin-top: 8px; color: var(--maroon); font-family: var(--gr-serif); font-size: 1.6rem; }
.cse-stats__item strong i { font-size: .8rem; font-style: normal; }
.cse-stats__item small { display: block; margin-top: 4px; color: var(--gray); font-size: .76rem; }
.cse-content table { width: 100%; margin: 22px 0 34px; border-collapse: collapse; font-size: .82rem; }
.cse-content th, .cse-content td { padding: 11px 14px; border: 1px solid var(--gr-line); text-align: left; color: var(--charcoal); }
.cse-content thead th { color: var(--white); background: var(--gr-ink); font-size: .74rem; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
.cse-content tbody tr:nth-child(even) { background: rgba(182,134,44,.06); }
.cse-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--gr-line); border: 1px solid var(--gr-line); }
.cse-steps > div { padding: 26px 24px; background: var(--white); }
.cse-steps > div > span { color: var(--gr-gold); font-family: var(--gr-serif); font-size: 1.1rem; }
.cse-steps h3 { margin: 16px 0 10px; color: var(--maroon); font-family: var(--gr-serif); font-size: 1.02rem; }
.cse-steps p { color: var(--gray); font-size: .8rem; }
.cse-dark { padding: 60px 46px; color: rgba(255,255,255,.85); background: linear-gradient(145deg, var(--gr-ink), var(--maroon-dark)); }
.cse-dark .cse-section__heading h2, .cse-dark h2 { color: var(--white); }
.cse-dark .cse-steps > div { color: var(--charcoal); }
.cse-faq { display: grid; gap: 10px; }
.cse-faq details { padding: 18px 22px; border: 1px solid var(--gr-line); background: var(--white); }
.cse-faq summary { cursor: pointer; color: var(--maroon); font-weight: 700; font-size: .88rem; }
.cse-faq details p { margin-top: 12px; color: var(--charcoal); font-size: .84rem; line-height: 1.6; }
.cse-contact-cta { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 60px; padding: 40px 46px; color: var(--white); background: var(--black); }
.cse-contact-cta h2 { color: var(--white); font-family: var(--gr-serif); font-size: 1.6rem; }
.cse-contact-cta p:not(.gr-eyebrow) { margin-top: 10px; color: rgba(255,255,255,.7); font-size: .86rem; }
.cse-contact-cta__links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.cse-contact-cta__links a:not(.gr-btn) { color: var(--gr-gold-light); font-weight: 700; }
@media (max-width: 1050px) { .cse-layout { gap: 36px; } .cse-stats, .cse-steps { grid-template-columns: repeat(2, 1fr); } .cse-hero { grid-template-columns: 1fr; } .cse-hero__image { min-height: 280px; max-height: 320px; } .cse-hero__copy { padding: 44px; } .cse-details { padding-right: 0; } .cse-specialisations { padding-right: 0; } }
@media (max-width: 760px) { .cse-layout { display: block; padding-top: 25px; } .cse-sidebar { position: static; margin-bottom: 35px; padding: 18px 0 0; border-right: 0; border-top: 1px solid var(--gr-line); } .cse-sidebar h2 { max-width: 390px; margin-bottom: 18px; } .cse-sidebar nav { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 10px; } .cse-sidebar nav a { flex-shrink: 0; border: 1px solid var(--gr-line); } .cse-sidebar__footer { display: none; } .cse-hero__copy { padding: 38px 28px; } .cse-hero__facts { gap: 10px; } .cse-section { padding-top: 74px; } .cse-programmes__grid, .cse-details__grid, .cse-specialisations__grid { grid-template-columns: 1fr; } .cse-careers { align-items: flex-start; flex-direction: column; margin-top: 74px; padding: 32px 25px; } .cse-footer .container { align-items: flex-start; flex-direction: column; } }
@media (max-width: 520px) { .cse-back { font-size: 0; } .cse-back span { font-size: 1.3rem; } .cse-hero__facts { grid-template-columns: 1fr; } .cse-accreditation { grid-template-columns: 1fr; gap: 8px; } .cse-section__heading { align-items: flex-start; flex-direction: column; } .cse-stats, .cse-steps { grid-template-columns: 1fr; } .cse-contact-cta { align-items: flex-start; flex-direction: column; padding: 30px 24px; } }