:root {
  --navy: #082b63;
  --blue: #0b3f8f;
  --royal: #1358b0;
  --gold: #f1c84b;
  --ink: #111b2e;
  --muted: #5e6878;
  --paper: #f8fafc;
  --line: #dbe3ed;
  --serif: "Libre Caslon Display", serif;
  --sans: "DM Sans", sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 124px;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.65 var(--sans);
}
a {
  color: inherit;
  text-decoration: none;
}
.wrap {
  width: min(1320px, 92vw);
  margin: auto;
}
.skip-link {
  position: absolute;
  left: -999px;
}
.skip-link:focus {
  left: 1rem;
  top: 1rem;
  background: #fff;
  padding: 0.7rem;
  z-index: 999;
}
.topbar {
  background: var(--navy);
  color: #dce8fa;
  font-size: 0.78rem;
}
.topbar-inner {
  min-height: 36px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.topbar-inner > span {
  text-transform: uppercase;
  letter-spacing: 0.11em;
}
.topbar-inner div {
  display: flex;
  gap: 22px;
}
.topbar-inner div a:last-child {
  color: var(--gold);
  font-weight: 700;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: #fff;
  box-shadow: 0 7px 20px rgba(8, 43, 99, 0.09);
}
.masthead {
  height: 94px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand {
  display: flex;
  align-items: center;
  gap: 14px;
}
.brand img {
  width: 76px;
  height: 70px;
  object-fit: contain;
}
.brand span {
  display: flex;
  flex-direction: column;
  line-height: 1.18;
}
.brand small {
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-weight: 700;
  font-size: 0.66rem;
}
.brand strong {
  font: 1.45rem/1.2 var(--serif);
  color: var(--navy);
}
.brand em {
  font-style: normal;
  color: #738096;
  font-size: 0.72rem;
}
.affiliation {
  display: grid;
  grid-template-columns: auto auto;
  gap: 0 12px;
  border-left: 1px solid var(--line);
  padding-left: 28px;
  font-size: 0.74rem;
}
.affiliation b {
  color: var(--navy);
}
.affiliation span {
  color: var(--muted);
}
.nav-band {
  background: var(--blue);
  color: #fff;
}
.nav-row {
  display: flex;
  align-items: stretch;
}
.nav-row nav {
  display: flex;
  flex: 1;
}
.nav-row nav a {
  padding: 14px 15px;
  font-size: 0.81rem;
  font-weight: 600;
  border-bottom: 3px solid transparent;
}
.nav-row nav a:hover,
.nav-row nav a.active {
  background: rgba(255, 255, 255, 0.08);
  border-bottom-color: var(--gold);
}
.apply {
  background: var(--gold);
  color: #142037;
  padding: 14px 22px;
  font-size: 0.82rem;
  font-weight: 800;
}
.menu-toggle {
  display: none;
}
.hero {
  height: 590px;
  position: relative;
  color: #fff;
  overflow: hidden;
}
.hero-image,
.hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-shade {
  background:
    linear-gradient(
      90deg,
      rgba(3, 22, 52, 0.97),
      rgba(5, 44, 98, 0.76) 48%,
      rgba(3, 28, 66, 0.12) 86%
    ),
    linear-gradient(0deg, rgba(3, 18, 42, 0.5), transparent);
}
.hero-inner {
  height: 100%;
  display: flex;
  align-items: center;
  position: relative;
}
.hero-copy {
  max-width: 720px;
  margin-top: -45px;
}
.kicker,
.section-label {
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.74rem;
  font-weight: 800;
  color: var(--blue);
}
.kicker,
.gold-text {
  color: var(--gold);
}
.hero h1 {
  font: clamp(3.8rem, 6.5vw, 6.8rem)/0.98 var(--serif);
  margin: 0.2rem 0 1.25rem;
  max-width: 800px;
}
.hero-copy > p:not(.kicker) {
  font-size: 1.1rem;
  max-width: 600px;
  color: #dce7f5;
}
.hero-actions {
  display: flex;
  gap: 12px;
  margin-top: 28px;
}
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 13px 21px;
  font-weight: 800;
  font-size: 0.85rem;
  border: 1px solid transparent;
  transition: 0.2s;
}
.btn.gold {
  background: var(--gold);
  color: #172033;
}
.btn.line {
  border-color: rgba(255, 255, 255, 0.55);
}
.btn.navy {
  background: var(--navy);
  color: #fff;
}
.btn:hover {
  transform: translateY(-2px);
}
.hero-stats {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(1320px, 92vw);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  color: var(--ink);
  border-top: 4px solid var(--gold);
}
.hero-stats div {
  padding: 19px 28px;
  border-right: 1px solid var(--line);
}
.hero-stats div:last-child {
  border: 0;
}
.hero-stats b,
.hero-stats span {
  display: block;
}
.hero-stats b {
  font: 1.55rem var(--serif);
  color: var(--navy);
}
.hero-stats span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.service-strip {
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.service-grid a {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 25px 22px;
  border-right: 1px solid var(--line);
}
.service-grid a:first-child {
  border-left: 1px solid var(--line);
}
.service-grid i {
  font-style: normal;
  color: var(--royal);
  font-size: 0.7rem;
  font-weight: 700;
}
.service-grid span {
  display: flex;
  flex-direction: column;
}
.service-grid b {
  font-size: 0.9rem;
}
.service-grid small {
  font-size: 0.7rem;
  color: var(--muted);
}
.service-grid strong {
  color: var(--blue);
}
.section {
  padding: 100px 0;
}
.heading-row {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 50px;
  margin-bottom: 38px;
}
.heading-row h2,
.section h2,
.quality h2,
.admission-section h2 {
  font: clamp(2.6rem, 4vw, 4.4rem)/1.05 var(--serif);
  margin: 0;
}
.heading-row > p {
  max-width: 500px;
  color: var(--muted);
}
.notice-zone {
  background: var(--navy);
  color: #fff;
  padding: 88px 0;
}
.notice-zone h2 {
  font: clamp(2.5rem, 4vw, 4.2rem)/1 var(--serif);
  margin: 0;
}
.tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.tabs button {
  font: 600 0.76rem var(--sans);
  padding: 8px 13px;
  border: 1px solid #44618a;
  background: transparent;
  color: #c6d4e8;
  cursor: pointer;
}
.tabs button.active,
.tabs button:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: #14213a;
}
.notice-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 26px;
}
.notice-list {
  border-top: 1px solid #36547d;
}
.notice-item {
  display: grid;
  grid-template-columns: 92px 1fr 58px;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid #36547d;
  padding: 18px 10px;
  transition: 0.2s;
}
.notice-item:hover {
  background: rgba(255, 255, 255, 0.06);
  padding-left: 18px;
}
.notice-item[hidden] {
  display: none;
}
.notice-item time {
  display: flex;
  gap: 9px;
  align-items: center;
}
.notice-item time b {
  font: 2rem var(--serif);
  color: var(--gold);
}
.notice-item time span {
  font-size: 0.63rem;
  line-height: 1.15;
  color: #a8bbd5;
}
.notice-item > div {
  display: flex;
  flex-direction: column;
}
.notice-item em {
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.65rem;
  color: #92b3df;
}
.notice-item strong {
  font-size: 0.96rem;
  font-weight: 600;
}
.download {
  font-size: 0.72rem;
  color: var(--gold);
  font-weight: 700;
}
.notice-help {
  background: var(--gold);
  color: #15203a;
  padding: 30px;
}
.notice-help > span {
  font-size: 0.67rem;
  letter-spacing: 0.16em;
  font-weight: 800;
}
.notice-help h3 {
  font: 2rem/1.1 var(--serif);
  margin: 15px 0;
}
.notice-help p {
  font-size: 0.84rem;
}
.notice-help a {
  display: block;
  border-top: 1px solid rgba(17, 27, 46, 0.2);
  padding: 12px 0;
  font-size: 0.78rem;
  font-weight: 800;
}
.about-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 9vw;
  align-items: start;
}
.about h2 {
  margin-bottom: 25px;
}
.about p {
  color: var(--muted);
}
.about .lead {
  font-size: 1.13rem;
  color: #35445c;
}
.text-link {
  display: inline-block;
  margin-top: 17px;
  color: var(--blue);
  font-weight: 800;
  border-bottom: 2px solid var(--gold);
}
.values-card {
  background: var(--blue);
  color: #fff;
  padding: 48px;
  border-top: 7px solid var(--gold);
}
.values-card > p {
  color: var(--gold);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  font-weight: 800;
}
.values-card blockquote {
  font: 2.1rem/1.3 var(--serif);
  margin: 28px 0;
}
.values-card > span {
  color: #c6d6ec;
  font-size: 0.8rem;
}
.value-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 27px;
}
.value-list b {
  border: 1px solid #5d82b6;
  padding: 6px 10px;
  font-size: 0.7rem;
}
.vision-band {
  background: #e8f0fb;
  border-block: 1px solid #cbd9eb;
  padding: 55px 0;
}
.vision-grid {
  display: grid;
  grid-template-columns: 0.65fr 1.15fr 1.5fr;
}
.vision-grid article {
  padding: 10px 34px;
  border-right: 1px solid #bfd0e5;
}
.vision-grid article:last-child {
  border: 0;
}
.vision-grid span {
  color: var(--blue);
  font-size: 0.7rem;
  font-weight: 800;
}
.vision-grid h3 {
  font: 1.8rem var(--serif);
  color: var(--navy);
  margin: 10px 0;
}
.vision-grid p {
  color: #4b5c73;
  margin: 0;
  font-size: 0.9rem;
}
.programme-cards {
  display: grid;
  grid-template-columns: 1.25fr 0.8fr 0.8fr;
}
.course {
  padding: 36px;
  border: 1px solid var(--line);
  border-left: 0;
  background: #fff;
}
.course:first-child {
  border-left: 1px solid var(--line);
}
.course.main-course {
  background: var(--navy);
  color: #fff;
}
.course-type {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 800;
}
.course h3 {
  font: 2rem/1.1 var(--serif);
  margin: 55px 0 6px;
}
.course-meta {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #7f8ea3;
}
.main-course .course-meta {
  color: #9eb6d7;
}
.course > p:not(.course-meta) {
  font-size: 0.86rem;
  opacity: 0.78;
}
.course ul {
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.86rem;
}
.course details {
  margin-top: 25px;
  border-top: 1px solid #42618b;
  padding-top: 15px;
}
.course summary {
  cursor: pointer;
  color: var(--gold);
  font-size: 0.82rem;
  font-weight: 800;
}
.semester-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 15px;
}
.semester-grid p {
  background: #123d76;
  padding: 12px;
  font-size: 0.72rem;
  margin: 0;
}
.semester-grid b {
  display: block;
  color: var(--gold);
}
.programme-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 22px;
}
.programme-foot p {
  display: flex;
  gap: 18px;
}
.programme-foot p span {
  color: var(--muted);
}
.admission-section {
  background: var(--blue);
  color: #fff;
  padding: 95px 0;
}
.heading-row.light > p {
  color: #c9d8ed;
}
.admission-grid {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 60px;
}
.eligibility {
  background: #fff;
  color: var(--ink);
  padding: 38px;
}
.eligibility h3 {
  font: 2rem var(--serif);
  color: var(--navy);
  margin-top: 0;
}
.eligibility p {
  color: var(--muted);
  font-size: 0.88rem;
}
.eligibility .btn {
  margin-top: 15px;
}
.steps {
  list-style: none;
  padding: 0;
  margin: 0;
}
.steps li {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 18px;
  padding: 19px 0;
  border-bottom: 1px solid #4573ad;
}
.steps li > b {
  font: 1.8rem var(--serif);
  color: var(--gold);
}
.steps li span {
  display: flex;
  flex-direction: column;
}
.steps li small {
  color: #c7d8ee;
}
.documents {
  margin-top: 35px;
  border: 1px solid #5c83b7;
}
.documents summary {
  padding: 18px 22px;
  cursor: pointer;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
}
.doc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #5c83b7;
  border-top: 1px solid #5c83b7;
}
.doc-grid p {
  margin: 0;
  background: #174e96;
  padding: 16px;
  font-size: 0.78rem;
}
.resource-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.resource-grid a {
  display: grid;
  grid-template-columns: 45px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 26px 22px;
  background: #fff;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: 0.2s;
}
.resource-grid a:hover {
  background: #eaf1fa;
  transform: translateY(-2px);
}
.resource-grid span {
  color: var(--royal);
  font: 1.1rem var(--serif);
}
.resource-grid div {
  display: flex;
  flex-direction: column;
}
.resource-grid b {
  font-size: 0.86rem;
}
.resource-grid small {
  font-size: 0.7rem;
  color: var(--muted);
}
.resource-grid i {
  font-style: normal;
  color: var(--blue);
}
.principal {
  background: #0d356b;
  color: #fff;
  padding: 75px 0;
}
.principal-grid {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 50px;
}
.principal-mark {
  font: 12rem/0.8 var(--serif);
  color: var(--gold);
}
.principal blockquote {
  font: 2.25rem/1.25 var(--serif);
  max-width: 1000px;
  margin: 12px 0 20px;
}
.principal p {
  color: #bbcee7;
  max-width: 850px;
}
.principal strong,
.principal span {
  display: block;
}
.principal span {
  color: #9eb6d5;
  font-size: 0.8rem;
}
.principal a {
  display: inline-block;
  color: var(--gold);
  font-size: 0.8rem;
  font-weight: 800;
  margin-top: 20px;
}
.facility-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.facility-grid article {
  padding: 34px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.facility-grid article:nth-child(-n + 3) {
  border-top: 1px solid var(--line);
}
.facility-grid article:nth-child(3n + 1) {
  border-left: 1px solid var(--line);
}
.facility-grid b {
  color: var(--blue);
  font-size: 0.7rem;
}
.facility-grid h3 {
  font: 1.55rem var(--serif);
  margin: 25px 0 8px;
}
.facility-grid p {
  color: var(--muted);
  font-size: 0.83rem;
}
.quality {
  background: var(--navy);
  color: #fff;
  padding: 95px 0;
}
.quality-grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 100px;
  align-items: center;
}
.quality h2 {
  max-width: 800px;
}
.quality p {
  color: #c6d5e8;
  max-width: 740px;
}
.quality-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 25px;
}
.quality-links a {
  border: 1px solid #5274a2;
  padding: 9px 12px;
  font-size: 0.75rem;
}
.grade {
  aspect-ratio: 1;
  border: 2px solid var(--gold);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.grade small {
  letter-spacing: 0.2em;
}
.grade b {
  font: 7rem/1 var(--serif);
  color: var(--gold);
}
.grade span {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
}
.contact-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  background: #eaf1fa;
  padding: 60px;
}
.contact-panel h2 {
  margin-bottom: 22px;
}
.contact-details a {
  display: flex;
  flex-direction: column;
  padding: 14px 0;
  border-bottom: 1px solid #cbd7e6;
}
.contact-details small {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--blue);
  font-size: 0.65rem;
}
.contact-details b {
  font-size: 0.95rem;
}
.contact .btn {
  margin-top: 15px;
}
footer {
  background: #071e43;
  color: #fff;
  padding: 62px 0 20px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: 55px;
}
.footer-brand {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.footer-brand img {
  width: 70px;
  height: 65px;
  object-fit: contain;
}
.footer-brand div {
  display: flex;
  flex-direction: column;
}
.footer-brand b {
  font: 1.25rem var(--serif);
}
.footer-brand span {
  font-size: 0.7rem;
  color: #8ea6c7;
}
.footer-grid h4 {
  font-size: 0.75rem;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.footer-grid > div:not(.footer-brand) a {
  display: block;
  color: #afc0d8;
  font-size: 0.78rem;
  padding: 4px 0;
}
.footer-bottom {
  margin-top: 45px;
  border-top: 1px solid #29466e;
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  color: #8298b7;
  font-size: 0.7rem;
}
@media (max-width: 1060px) {
  .affiliation {
    display: none;
  }
  .nav-row nav {
    display: none;
    position: absolute;
    top: 130px;
    left: 0;
    right: 0;
    background: var(--blue);
    padding: 15px 4vw;
    flex-direction: column;
  }
  .site-header.open nav {
    display: flex;
  }
  .menu-toggle {
    display: flex;
    width: 46px;
    height: 46px;
    border: 0;
    background: var(--navy);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
  }
  .menu-toggle i {
    width: 22px;
    height: 2px;
    background: #fff;
  }
  .menu-toggle b {
    position: absolute;
    clip: rect(0 0 0 0);
  }
  .nav-row {
    justify-content: flex-end;
  }
  .nav-band {
    height: 48px;
  }
  .apply {
    height: 48px;
  }
  .service-grid {
    grid-template-columns: 1fr 1fr;
  }
  .programme-cards {
    grid-template-columns: 1fr 1fr;
  }
  .main-course {
    grid-column: 1/-1;
  }
  .resource-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
  }
  .footer-grid > div:last-child {
    grid-column: 2/-1;
  }
  .quality-grid {
    gap: 50px;
  }
}
@media (max-width: 720px) {
  .topbar-inner > span,
  .topbar-inner div a:not(:last-child) {
    display: none;
  }
  .topbar-inner {
    justify-content: center;
  }
  .masthead {
    height: 82px;
  }
  .brand img {
    width: 57px;
    height: 53px;
  }
  .brand strong {
    font-size: 1rem;
  }
  .brand small,
  .brand em {
    font-size: 0.55rem;
  }
  .nav-row nav {
    top: 118px;
  }
  .hero {
    height: 650px;
  }
  .hero-inner {
    align-items: flex-start;
  }
  .hero-copy {
    margin-top: 75px;
  }
  .hero h1 {
    font-size: 3.6rem;
  }
  .hero-stats {
    grid-template-columns: 1fr 1fr;
  }
  .hero-stats div {
    padding: 13px;
  }
  .service-grid {
    grid-template-columns: 1fr;
  }
  .service-grid a {
    border-left: 1px solid var(--line);
  }
  .heading-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }
  .notice-layout {
    grid-template-columns: 1fr;
  }
  .notice-item {
    grid-template-columns: 72px 1fr 40px;
    gap: 10px;
  }
  .notice-item strong {
    font-size: 0.83rem;
  }
  .notice-help {
    display: none;
  }
  .section {
    padding: 72px 0;
  }
  .about-grid,
  .admission-grid,
  .quality-grid,
  .contact-panel {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .values-card {
    padding: 30px;
  }
  .values-card blockquote {
    font-size: 1.7rem;
  }
  .vision-grid {
    grid-template-columns: 1fr;
  }
  .vision-grid article {
    border-right: 0;
    border-bottom: 1px solid #bfd0e5;
    padding: 24px 8px;
  }
  .programme-cards,
  .resource-grid,
  .facility-grid {
    grid-template-columns: 1fr;
  }
  .main-course {
    grid-column: auto;
  }
  .course {
    border-left: 1px solid var(--line);
  }
  .semester-grid,
  .doc-grid {
    grid-template-columns: 1fr;
  }
  .programme-foot {
    align-items: flex-start;
    flex-direction: column;
  }
  .principal-grid {
    grid-template-columns: 55px 1fr;
    gap: 15px;
  }
  .principal-mark {
    font-size: 6rem;
  }
  .principal blockquote {
    font-size: 1.65rem;
  }
  .facility-grid article,
  .facility-grid article:nth-child(-n + 3) {
    border: 1px solid var(--line);
    border-top: 0;
  }
  .facility-grid article:first-child {
    border-top: 1px solid var(--line);
  }
  .grade {
    max-width: 230px;
  }
  .contact-panel {
    padding: 35px 24px;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }
  .footer-brand {
    grid-column: 1/-1;
  }
  .footer-grid > div:last-child {
    grid-column: auto;
  }
  .footer-bottom {
    gap: 20px;
  }
  .tabs button {
    font-size: 0.68rem;
  }
}

/* Compact Principal's Desk and illustrated facilities */
.principal {
  padding: 62px 0;
}
.principal-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(390px, 0.85fr);
}
.principal-copy {
  padding: 38px 42px 34px;
}
.principal-copy > h2 {
  max-width: 620px;
  margin-bottom: 18px;
  font-size: clamp(2.15rem, 3.2vw, 3.25rem);
}
.principal-copy blockquote {
  margin-bottom: 18px;
  padding: 17px 22px 16px 58px;
}
.principal-copy blockquote > span {
  top: 5px;
  left: 15px;
  font-size: 3.6rem;
}
.principal-copy blockquote p {
  font-size: 1.25rem;
}
.principal-copy > p {
  margin-bottom: 9px;
  font-size: 0.81rem;
  line-height: 1.55;
}
.principal-signature {
  margin-top: 18px;
  padding-top: 15px;
}
.principal-photo {
  min-height: 515px;
}
.facility-grid article {
  padding: 0 0 24px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.facility-grid article:hover {
  z-index: 2;
  transform: translateY(-5px);
  box-shadow: 0 18px 38px rgba(8, 43, 99, 0.14);
}
.facility-grid article > img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.facility-grid article:hover > img {
  transform: scale(1.04);
}
.facility-grid article > b {
  display: block;
  margin: 22px 26px 0;
}
.facility-grid article > h3 {
  margin: 8px 26px 6px;
}
.facility-grid article > p {
  margin: 0 26px;
}
@media (max-width: 1050px) {
  .principal-grid {
    grid-template-columns: 1fr;
  }
  .principal-photo {
    min-height: 360px;
    height: 360px;
  }
}
@media (max-width: 720px) {
  .principal {
    padding: 48px 0;
  }
  .principal-copy {
    padding: 34px 24px 28px;
  }
  .principal-copy > h2 {
    font-size: 2.25rem;
  }
  .principal-photo {
    min-height: 265px;
    height: 265px;
  }
  .facility-grid article > img {
    height: 210px;
  }
}

/* Social media and new events */
.social-events {
  padding: 95px 0;
  background: #eef3f9;
}
.social-events-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  margin-bottom: 34px;
}
.social-events-heading h2 {
  max-width: 760px;
  margin: 0;
  color: var(--navy);
  font: clamp(2.5rem, 4vw, 4rem) / 1.05 var(--serif);
}
.social-events-heading > p {
  max-width: 430px;
  color: var(--muted);
}
.social-events-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 24px;
}
.youtube-panel {
  position: relative;
  min-height: 510px;
  overflow: hidden;
  background: var(--navy);
  color: #fff;
}
.youtube-panel > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.72;
  transition: transform 0.45s ease;
}
.youtube-panel:hover > img {
  transform: scale(1.04);
}
.youtube-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(3, 24, 56, 0.96), rgba(3, 24, 56, 0.05) 75%);
}
.youtube-play {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  background: #c50000;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
  font-size: 1.7rem;
}
.youtube-panel > div {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 34px;
}
.youtube-panel small {
  color: var(--gold);
  font-weight: 800;
  letter-spacing: 0.15em;
}
.youtube-panel h3 {
  margin: 8px 0 4px;
  font: 2rem var(--serif);
}
.youtube-panel p {
  margin: 0;
  color: #d3e0f1;
}
.new-events-list {
  display: grid;
  gap: 12px;
}
.new-events-list article {
  display: grid;
  grid-template-columns: 95px 1fr;
  gap: 20px;
  align-items: center;
  padding: 24px;
  background: #fff;
  border-left: 4px solid var(--gold);
  box-shadow: 0 8px 24px rgba(8, 43, 99, 0.07);
}
.new-events-list time {
  display: flex;
  flex-direction: column;
  color: var(--blue);
}
.new-events-list time b {
  font: 1.8rem var(--serif);
}
.new-events-list time span,
.new-events-list small {
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}
.new-events-list small {
  color: var(--blue);
}
.new-events-list h3 {
  margin: 3px 0;
  color: var(--navy);
  font: 1.45rem var(--serif);
}
.new-events-list p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
}
@media (max-width: 900px) {
  .social-events-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .social-events-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .social-events {
    padding: 70px 0;
  }
  .youtube-panel {
    min-height: 430px;
  }
  .youtube-panel > div {
    padding: 24px;
  }
  .new-events-list article {
    grid-template-columns: 72px 1fr;
    gap: 14px;
    padding: 19px;
  }
}

/* Refined Principal's Desk editorial layout */
.principal {
  padding: 95px 0;
  background: linear-gradient(135deg, #061f49 0%, #0b3f8f 100%);
}
.principal-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  gap: 0;
  align-items: stretch;
  box-shadow: 0 26px 70px rgba(0, 0, 0, 0.24);
}
.principal-copy {
  position: relative;
  z-index: 2;
  padding: 58px 60px 52px;
  background: #fff;
  color: var(--ink);
}
.principal-copy::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 7px;
  background: var(--gold);
}
.principal-copy .section-label {
  color: var(--blue);
}
.principal-copy > h2 {
  max-width: 680px;
  margin: 0 0 26px;
  color: var(--navy);
  font: clamp(2.5rem, 4vw, 4.2rem) / 1.02 var(--serif);
}
.principal-copy blockquote {
  position: relative;
  margin: 0 0 28px;
  padding: 24px 28px 22px 72px;
  border-left: 4px solid var(--gold);
  background: #edf3fb;
  color: var(--navy);
}
.principal-copy blockquote > span {
  position: absolute;
  top: 8px;
  left: 20px;
  color: var(--gold);
  font: 4.5rem / 1 var(--serif);
}
.principal-copy blockquote p {
  margin: 0;
  color: var(--navy);
  font: 1.55rem / 1.35 var(--serif);
}
.principal-copy blockquote cite {
  display: block;
  margin-top: 7px;
  color: var(--blue);
  font: 700 0.75rem var(--sans);
}
.principal-copy > p {
  max-width: 760px;
  margin: 0 0 14px;
  color: #536176;
  font-size: 0.9rem;
  line-height: 1.7;
}
.principal-copy > p strong {
  display: inline;
  color: var(--navy);
}
.principal-signature {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.principal-signature div {
  display: flex;
  flex-direction: column;
}
.principal-signature strong {
  color: var(--navy);
  font-size: 1rem;
}
.principal-signature span {
  color: var(--muted);
  font-size: 0.75rem;
}
.principal-signature a {
  margin: 0;
  padding-bottom: 3px;
  border-bottom: 2px solid var(--gold);
  color: var(--blue);
  white-space: nowrap;
}
.principal-photo {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 650px;
  border: 0;
  background: #dbe4ef;
}
.principal-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.principal-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4, 28, 65, 0.82), transparent 35%);
  pointer-events: none;
}
.principal-photo-caption {
  position: absolute;
  z-index: 2;
  right: 34px;
  bottom: 28px;
  left: 34px;
  display: flex;
  flex-direction: column;
  color: #fff;
}
.principal-photo-caption b {
  font: 1.45rem var(--serif);
}
.principal-photo-caption span {
  color: var(--gold);
  font-size: 0.75rem;
}
@media (max-width: 1050px) {
  .principal-grid {
    grid-template-columns: 1fr;
  }
  .principal-photo {
    min-height: 480px;
  }
}
@media (max-width: 720px) {
  .principal {
    padding: 70px 0;
  }
  .principal-copy {
    padding: 42px 25px 35px;
  }
  .principal-copy > h2 {
    font-size: 2.55rem;
  }
  .principal-copy blockquote {
    padding: 22px 20px 20px 56px;
  }
  .principal-copy blockquote > span {
    left: 13px;
  }
  .principal-copy blockquote p {
    font-size: 1.25rem;
  }
  .principal-signature {
    align-items: flex-start;
    flex-direction: column;
  }
  .principal-photo {
    min-height: 320px;
    height: 320px;
  }
}

/* Multi-video carousel and newspaper feature */
.youtube-carousel {
  min-width: 0;
  background: var(--navy);
}
.youtube-slides {
  position: relative;
  min-height: 510px;
}
.youtube-slides .youtube-panel {
  position: absolute;
  inset: 0;
  display: block;
  min-height: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.youtube-slides .youtube-panel.active {
  opacity: 1;
  pointer-events: auto;
}
.youtube-controls {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: #061f49;
  color: #fff;
}
.youtube-controls button {
  border: 1px solid #5475a2;
  background: transparent;
  color: #fff;
  padding: 8px 12px;
  font: 700 0.75rem var(--sans);
  cursor: pointer;
}
.youtube-controls button:hover {
  border-color: var(--gold);
  color: var(--gold);
}
.youtube-count {
  color: var(--gold);
  font-size: 0.75rem;
  font-weight: 800;
}
.newspaper-card {
  padding: 18px;
  background: #f8f1df;
  border: 1px solid #d8c9a4;
  box-shadow: 0 16px 40px rgba(8, 43, 99, 0.12);
  color: #252018;
  transform: rotate(0.35deg);
}
.newspaper-masthead {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 5px 0 12px;
  border-block: 3px double #363027;
  text-align: center;
}
.newspaper-masthead span {
  font: 1.65rem var(--serif);
  letter-spacing: 0.05em;
}
.newspaper-masthead small {
  font-size: 0.55rem;
  letter-spacing: 0.08em;
}
.newspaper-card > img {
  width: 100%;
  height: 230px;
  margin-top: 15px;
  filter: sepia(0.2) contrast(1.05);
  object-fit: cover;
}
.newspaper-copy {
  padding: 16px 8px 8px;
}
.newspaper-copy small {
  font-weight: 800;
  letter-spacing: 0.12em;
}
.newspaper-copy h3 {
  margin: 7px 0;
  font: 1.75rem / 1.05 var(--serif);
}
.newspaper-copy p {
  font-family: Georgia, serif;
  font-size: 0.83rem;
}
.newspaper-copy a {
  font-size: 0.75rem;
  font-weight: 800;
  text-decoration: underline;
}
.event-row {
  grid-template-columns: repeat(3, 1fr);
  margin-top: 24px;
}
@media (max-width: 900px) {
  .event-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .youtube-slides {
    min-height: 430px;
  }
  .newspaper-card > img {
    height: 190px;
  }
}
.hero-carousel,
.hero-slide,
.hero-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-slide {
  opacity: 0;
  transition: opacity 0.9s ease;
  overflow: hidden;
}
.hero-slide.active {
  opacity: 1;
}
.hero-slide img {
  object-fit: cover;
  transform: scale(1.03);
  transition: transform 7s ease;
}
.hero-slide.active img {
  transform: scale(1.1);
}
.carousel-controls {
  position: absolute;
  z-index: 4;
  bottom: 113px;
  right: max(4vw, calc((100vw - 1320px) / 2));
  display: flex;
  align-items: center;
  gap: 12px;
}
.carousel-controls > button {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: rgba(8, 43, 99, 0.6);
  color: #fff;
  cursor: pointer;
}
.carousel-dots {
  display: flex;
  gap: 7px;
}
.carousel-dots button {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
}
.carousel-dots button.active {
  width: 24px;
  border-radius: 6px;
  background: var(--gold);
}
.founder-card {
  position: relative;
  background: var(--navy);
  min-height: 530px;
  overflow: hidden;
}
.founder-card img {
  width: 100%;
  height: 530px;
  object-fit: cover;
  filter: grayscale(100%);
  opacity: 0.9;
}
.founder-card > div {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 60px 34px 30px;
  background: linear-gradient(transparent, rgba(3, 24, 56, 0.98));
  color: #fff;
}
.founder-card p {
  color: var(--gold);
  font-size: 0.64rem;
  letter-spacing: 0.13em;
  font-weight: 800;
}
.founder-card h3 {
  font: 1.9rem/1.1 var(--serif);
  margin: 7px 0;
}
.founder-card blockquote {
  font-size: 0.82rem;
  margin: 8px 0;
  color: #d5e2f2;
}
.principal-photo {
  align-self: end;
  background: #fff;
  border-bottom: 6px solid var(--gold);
  height: 330px;
  overflow: hidden;
}
.principal-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.chairman {
  background: #edf3fb;
}
.chairman-grid {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 9vw;
}
.chairman blockquote {
  font: 2rem/1.35 var(--serif);
  color: var(--navy);
  margin: 0 0 22px;
}
.chairman p {
  color: var(--muted);
}
.chairman span {
  display: block;
  margin-top: 22px;
  color: var(--blue);
  font-weight: 800;
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.gallery-grid figure {
  position: relative;
  margin: 0;
  height: 310px;
  overflow: hidden;
  background: var(--navy);
}
.gallery-grid .gallery-wide {
  grid-column: 1/-1;
  height: 430px;
}
.gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}
.gallery-grid figure:hover img {
  transform: scale(1.04);
}
.gallery-grid figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 55px 24px 20px;
  background: linear-gradient(transparent, rgba(3, 25, 58, 0.94));
  color: #fff;
  display: flex;
  flex-direction: column;
}
.gallery-grid figcaption b {
  font: 1.35rem var(--serif);
}
.gallery-grid figcaption span {
  font-size: 0.72rem;
  color: #d0dcec;
}
.programme-gallery .text-link {
  margin-top: 25px;
}
.alumni {
  background: var(--blue);
  color: #fff;
  padding: 95px 0;
}
.alumni-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #4776b2;
}
.alumni-grid article {
  background: #0e4a94;
  padding: 34px;
}
.alumni-grid article > span {
  font: 4rem/0.7 var(--serif);
  color: var(--gold);
}
.alumni-grid p {
  min-height: 145px;
  color: #d7e4f5;
}
.alumni-grid b,
.alumni-grid small {
  display: block;
}
.alumni-grid small {
  color: #9db8db;
}
.alumni-cta {
  margin-top: 28px;
  background: var(--navy);
  padding: 22px 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.alumni-cta div {
  display: flex;
  flex-direction: column;
}
.alumni-cta span {
  font-size: 0.76rem;
  color: #a9bdd7;
}
@media (max-width: 720px) {
  .carousel-controls {
    bottom: 128px;
    right: 5vw;
  }
  .founder-card,
  .founder-card img {
    height: 480px;
  }
  .principal-grid {
    grid-template-columns: 1fr;
  }
  .principal-photo {
    width: 190px;
    height: 245px;
  }
  .chairman-grid,
  .gallery-grid,
  .alumni-grid {
    grid-template-columns: 1fr;
  }
  .gallery-grid .gallery-wide {
    grid-column: auto;
    height: 280px;
  }
  .gallery-grid figure {
    height: 250px;
  }
  .alumni-cta {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }
}
.brand strong {
  font-weight: 700;
  font-size: 1.65rem;
  letter-spacing: 0.015em;
}
.hero-shade {
  display: none;
}
.hero-carousel {
  z-index: 0;
}
.hero-slide {
  z-index: 0;
}
.hero-slide.active {
  z-index: 1;
}
.hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      rgba(3, 22, 52, 0.96),
      rgba(5, 44, 98, 0.72) 48%,
      rgba(3, 28, 66, 0.12) 86%
    ),
    linear-gradient(0deg, rgba(3, 18, 42, 0.5), transparent);
}
.slide-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
}
.slide-content h1 {
  font: clamp(3.5rem, 6vw, 6.3rem)/0.98 var(--serif);
  max-width: 850px;
  margin: 0.2rem 0 1.2rem;
}
.slide-content > p:not(.kicker) {
  max-width: 620px;
  color: #dce7f5;
  font-size: 1.08rem;
}
.carousel-controls {
  bottom: 26px;
}
.running-notice {
  display: grid;
  grid-template-columns: 190px 1fr 110px;
  align-items: stretch;
  min-height: 58px;
  background: #fff;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.notice-label {
  background: var(--gold);
  color: var(--navy);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 24px;
  line-height: 1.1;
}
.notice-label span {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.62rem;
  font-weight: 800;
}
.notice-label b {
  font-size: 0.88rem;
}
.notice-track {
  display: flex;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
}
.notice-scroll {
  display: inline-flex;
  gap: 48px;
  padding-left: 100%;
  animation: notice-run 34s linear infinite;
}
.notice-scroll:hover {
  animation-play-state: paused;
}
.notice-scroll a {
  font-size: 0.78rem;
  color: #34435a;
}
.notice-scroll a b {
  color: var(--blue);
  margin-right: 8px;
}
.notice-all {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #edf3fb;
  color: var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
}
@keyframes notice-run {
  to {
    transform: translateX(-100%);
  }
}
.chairman-grid {
  grid-template-columns: 280px 0.72fr 1.18fr;
  gap: 55px;
  align-items: center;
}
.chairman-photo {
  height: 360px;
  border: 10px solid #fff;
  box-shadow: 0 16px 40px rgba(8, 43, 99, 0.14);
  overflow: hidden;
}
.chairman-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.chairman-grid h2 {
  font-size: clamp(2.5rem, 3.5vw, 4rem);
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide,
  .hero-slide img {
    transition: none;
  }
  .notice-scroll {
    animation: none;
    padding-left: 20px;
  }
}
@media (max-width: 1060px) {
  .brand strong {
    font-size: 1.35rem;
  }
  .running-notice {
    grid-template-columns: 165px 1fr 90px;
  }
  .chairman-grid {
    grid-template-columns: 230px 1fr;
  }
  .chairman-grid > div:last-child {
    grid-column: 1/-1;
  }
}
@media (max-width: 720px) {
  .brand strong {
    font-size: 1rem;
  }
  .slide-content {
    justify-content: flex-start;
    padding-top: 72px;
    padding-bottom: 80px;
  }
  .slide-content h1 {
    font-size: 3.15rem;
  }
  .slide-content > p:not(.kicker) {
    font-size: 0.92rem;
  }
  .carousel-controls {
    bottom: 20px;
  }
  .running-notice {
    grid-template-columns: 120px 1fr;
  }
  .notice-label {
    padding: 8px 12px;
  }
  .notice-all {
    display: none;
  }
  .notice-scroll {
    gap: 30px;
  }
  .chairman-grid {
    grid-template-columns: 1fr;
  }
  .chairman-grid > div:last-child {
    grid-column: auto;
  }
  .chairman-photo {
    width: 230px;
    height: 300px;
  }
}
.responsive-banner {
  position: relative;
  width: 100%;
  aspect-ratio: 16/5;
  min-height: 360px;
  max-height: 650px;
  overflow: hidden;
  background: var(--navy);
}
.banner-track,
.banner-slide,
.banner-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.banner-slide {
  margin: 0;
  opacity: 0;
  transition: opacity 0.8s ease;
}
.banner-slide.active {
  opacity: 1;
}
.banner-slide img {
  object-fit: cover;
}
.banner-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 22, 52, 0.62), transparent 55%),
    linear-gradient(0deg, rgba(3, 18, 42, 0.68), transparent 45%);
}
.banner-slide figcaption {
  position: absolute;
  z-index: 2;
  left: max(4vw, calc((100vw - 1320px) / 2));
  bottom: 34px;
  color: #fff;
  display: flex;
  flex-direction: column;
}
.banner-slide figcaption b {
  font: clamp(1.7rem, 3vw, 3rem)/1.1 var(--serif);
}
.banner-slide figcaption span {
  font-size: 0.82rem;
  color: #dce7f5;
}
.banner-controls {
  position: absolute;
  z-index: 4;
  right: max(4vw, calc((100vw - 1320px) / 2));
  bottom: 30px;
  display: flex;
  align-items: center;
  gap: 11px;
}
.banner-controls > button {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  background: rgba(8, 43, 99, 0.7);
  color: #fff;
  cursor: pointer;
}
.banner-controls .carousel-dots {
  display: flex;
  gap: 7px;
}
.banner-controls .carousel-dots button {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: rgba(255, 255, 255, 0.6);
}
.banner-controls .carousel-dots button.active {
  width: 24px;
  border-radius: 7px;
  background: var(--gold);
}
@media (max-width: 720px) {
  .responsive-banner {
    aspect-ratio: 4/3;
    min-height: 360px;
  }
  .banner-slide img {
    object-position: center;
  }
  .banner-slide::after {
    background: linear-gradient(0deg, rgba(3, 18, 42, 0.88), transparent 65%);
  }
  .banner-slide figcaption {
    left: 5vw;
    right: 5vw;
    bottom: 70px;
  }
  .banner-slide figcaption b {
    font-size: 1.75rem;
  }
  .banner-controls {
    left: 5vw;
    right: auto;
    bottom: 20px;
  }
}

/* Header information architecture and leadership layout */
.masthead {
  min-height: 94px;
  height: auto;
  gap: 24px;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 22px;
}
.header-admission {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--gold);
  color: var(--navy);
  padding: 10px 16px;
  border-left: 4px solid var(--blue);
  line-height: 1.25;
  transition: 0.2s;
  white-space: nowrap;
}
.header-admission:hover {
  background: #f7d665;
  transform: translateY(-2px);
}
.header-admission small {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.header-admission b {
  font-size: 0.76rem;
}
.nav-row nav {
  justify-content: space-between;
}
.nav-row nav a {
  padding-inline: 10px;
  font-size: 0.78rem;
  white-space: nowrap;
}
.nav-row nav a span {
  color: var(--gold);
  font-size: 0.9rem;
  margin-left: 2px;
}
.principal-grid {
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 60px;
  align-items: center;
}
.principal-photo {
  align-self: center;
}
.chairman-grid h3 {
  margin: 18px 0 0;
  color: var(--blue);
  font-size: 1.05rem;
}
@media (max-width: 1180px) {
  .header-actions {
    gap: 12px;
  }
  .affiliation {
    padding-left: 16px;
  }
  .header-admission {
    padding: 8px 10px;
  }
  .header-admission b {
    font-size: 0.7rem;
  }
  .nav-row nav a {
    padding-inline: 7px;
    font-size: 0.72rem;
  }
}
@media (max-width: 1060px) {
  .header-actions {
    display: none;
  }
  .nav-row nav {
    justify-content: flex-start;
  }
  .nav-row nav a {
    width: 100%;
    padding: 10px 12px;
    font-size: 0.82rem;
  }
  .nav-row nav a span {
    float: right;
  }
  .principal-grid {
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 35px;
  }
}
@media (max-width: 720px) {
  .principal-grid {
    grid-template-columns: 1fr;
  }
  .principal-copy {
    order: 1;
  }
  .principal-photo {
    order: 2;
    justify-self: start;
    width: 190px;
    height: 245px;
  }
}

/* Reference-style footer */
.reference-footer {
  position: relative;
  background: #074f84;
  color: #fff;
  padding: 0;
}
.footer-main {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  grid-template-areas: "about links" "contact social";
  gap: 48px 100px;
  padding-block: 72px 58px;
}
.footer-main section:nth-child(1) {
  grid-area: about;
}
.important-links {
  grid-area: links;
}
.footer-contact {
  grid-area: contact;
}
.footer-social {
  grid-area: social;
}
.footer-main h3 {
  display: inline-block;
  margin: 0 0 24px;
  color: #08a4ff;
  font: 700 clamp(1.75rem, 2.5vw, 2.5rem)/1.1 var(--sans);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.footer-main p {
  max-width: 310px;
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.55;
}
.important-links a {
  display: block;
  width: max-content;
  max-width: 100%;
  padding: 2px 0;
  font-size: 0.88rem;
}
.important-links a::before {
  content: "›";
  display: inline-block;
  margin-right: 10px;
  color: #8d99a7;
  font-size: 1.25rem;
  font-weight: 800;
}
.important-links a:hover,
.footer-contact a:hover {
  color: var(--gold);
}
.footer-contact address {
  font-style: normal;
  font-size: 0.9rem;
  line-height: 1.55;
  margin-bottom: 6px;
}
.footer-contact > a {
  display: block;
  width: max-content;
  font-size: 0.9rem;
  padding: 2px 0;
}
.footer-social > div {
  display: flex;
  gap: 7px;
}
.footer-social a {
  width: 40px;
  height: 40px;
  border: 1px solid #718393;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #9aa6af;
  font-weight: 800;
  font-size: 0.83rem;
  transition: 0.2s;
}
.footer-social a:hover {
  color: #fff;
  border-color: #08a4ff;
  background: #08a4ff;
}
.footer-legal {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  padding: 22px 0;
  font-size: 0.78rem;
}
.footer-legal .wrap {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.back-top {
  position: absolute;
  right: 16px;
  bottom: 22px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #08a4ff;
  color: #fff;
  font-size: 1.5rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
@media (max-width: 800px) {
  .footer-main {
    grid-template-columns: 1fr;
    grid-template-areas: "about" "links" "contact" "social";
    gap: 38px;
    padding-block: 55px 45px;
  }
  .footer-main h3 {
    margin-bottom: 16px;
  }
  .footer-legal .wrap {
    flex-direction: column;
    gap: 8px;
    padding-right: 62px;
  }
  .back-top {
    bottom: 24px;
  }
}

/* Requested footer colour and tighter section spacing */
.reference-footer {
  background: #082b63;
}
.footer-main {
  row-gap: 22px;
}
@media (max-width: 800px) {
  .footer-main {
    row-gap: 30px;
  }
}

/* Compact requested navigation and admissions promotion */
.header-admission {
  background: #8b0000;
  border-left-color: #5a0000;
  color: #fff;
}
.header-admission:hover {
  background: #a40000;
}
.nav-row nav {
  justify-content: flex-start;
  gap: 2px;
}
.nav-row nav a {
  padding-inline: 13px;
}
.nav-dropdown {
  position: relative;
}
.nav-dropdown summary {
  height: 100%;
  padding: 14px 13px;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  list-style: none;
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
}
.nav-dropdown summary::-webkit-details-marker {
  display: none;
}
.nav-dropdown summary::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 0 3px 8px;
  border: solid var(--gold);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.nav-dropdown[open] summary::after {
  transform: rotate(-135deg);
}
.nav-dropdown[open] summary,
.nav-dropdown summary:hover {
  border-bottom-color: var(--gold);
  background: rgba(255, 255, 255, 0.08);
}
.dropdown-menu {
  position: absolute;
  z-index: 80;
  top: 100%;
  left: 0;
  min-width: 220px;
  padding: 8px 0;
  background: #fff;
  box-shadow: 0 16px 38px rgba(4, 25, 58, 0.22);
  color: var(--navy);
}
.dropdown-menu a {
  display: block;
  padding: 9px 16px !important;
  border: 0 !important;
  font-size: 0.76rem !important;
  white-space: nowrap;
}
.dropdown-menu a:hover {
  background: #edf3fb !important;
  color: var(--blue);
}
.admission-popup {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(2, 18, 43, 0.72);
  backdrop-filter: blur(4px);
}
.popup-card {
  position: relative;
  width: min(520px, 94vw);
  max-height: 92vh;
  padding: 44px 42px 38px;
  overflow: auto;
  background: #fff;
  border-top: 7px solid var(--gold);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
  text-align: center;
}
.popup-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 8px;
  background: #8b0000;
}
.popup-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #edf1f6;
  color: var(--navy);
  font-size: 1.4rem;
  cursor: pointer;
}
.popup-kicker {
  color: #8b0000;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.popup-card h2 {
  margin: 12px 0;
  color: var(--navy);
  font: clamp(2rem, 5vw, 3.2rem) / 1.05 var(--serif);
}
.popup-card p {
  margin: 0 auto 24px;
  max-width: 410px;
  color: var(--muted);
}
.popup-card .popup-round {
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid #edc7c7;
  background: #fff4f4;
  color: #8b0000;
}
.popup-round b,
.popup-round span {
  display: block;
}
.popup-round span {
  margin-top: 3px;
  font-weight: 700;
}
.popup-card > a {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  background: #8b0000;
  color: #fff;
  font-weight: 800;
}
.popup-card small {
  display: block;
  margin-top: 14px;
  color: #758196;
}
@media (max-width: 720px) {
  .popup-card {
    padding: 40px 24px 30px;
  }
}
@media (max-width: 1060px) {
  .nav-dropdown {
    width: 100%;
  }
  .nav-dropdown summary {
    width: 100%;
    height: auto;
    padding: 10px 12px;
    font-size: 0.82rem;
  }
  .nav-dropdown summary::after {
    float: right;
    margin-top: 5px;
  }
  .dropdown-menu {
    position: static;
    min-width: 0;
    padding: 4px 0 7px 14px;
    background: #073477;
    box-shadow: none;
    color: #fff;
  }
  .dropdown-menu a {
    padding: 7px 12px !important;
    color: #dce8f8;
  }
  .dropdown-menu a:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff;
  }
}

/* Image and carousel refinements */
.founder-card img {
  object-position: center top;
}
.principal-grid {
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.9fr);
}
.principal-photo {
  width: 100%;
  height: 390px;
}
.principal-photo img {
  object-position: center center;
}
.programme-gallery .heading-row {
  padding: 34px 38px;
  background: linear-gradient(105deg, var(--navy), var(--blue));
  border-left: 7px solid var(--gold);
  color: #fff;
}
.programme-gallery .heading-row .section-label {
  color: var(--gold);
}
.programme-gallery .heading-row > p {
  color: #cfddf0;
}
.alumni-carousel {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  gap: 18px;
  align-items: center;
}
.alumni-carousel > button {
  width: 48px;
  height: 48px;
  border: 1px solid #6c91c2;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font-size: 1.25rem;
  cursor: pointer;
}
.alumni-carousel > button:hover {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--navy);
}
.alumni-grid {
  display: block;
  background: transparent;
}
.alumni-grid article {
  display: none;
  min-height: 310px;
  grid-template-columns: 180px 50px minmax(0, 1fr);
  grid-template-rows: auto 1fr auto auto;
  gap: 0 24px;
  align-items: start;
}
.alumni-grid article.active {
  display: grid;
}
.alumni-grid article > img {
  grid-row: 1 / 5;
  width: 180px;
  height: 230px;
  border: 5px solid rgba(255, 255, 255, 0.18);
  object-fit: cover;
  object-position: center top;
}
.alumni-grid article > span,
.alumni-grid article > p,
.alumni-grid article > b,
.alumni-grid article > small {
  grid-column: 2 / 4;
}
.alumni-grid article > span {
  grid-row: 1;
}
.alumni-grid article > p {
  grid-row: 2;
  min-height: auto;
}
.alumni-grid article > b {
  grid-row: 3;
}
.alumni-grid article > small {
  grid-row: 4;
}
@media (max-width: 1060px) {
  .principal-grid {
    grid-template-columns: 1fr 42%;
  }
}
@media (max-width: 720px) {
  .principal-grid {
    grid-template-columns: 1fr;
  }
  .principal-photo {
    width: 100%;
    height: 270px;
  }
  .programme-gallery .heading-row {
    padding: 28px 24px;
  }
  .alumni-carousel {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    gap: 8px;
  }
  .alumni-carousel > button {
    width: 38px;
    height: 38px;
  }
  .alumni-grid article,
  .alumni-grid article.active {
    display: block;
    min-height: 0;
    padding: 24px;
  }
  .alumni-grid article:not(.active) {
    display: none;
  }
  .alumni-grid article > img {
    width: 120px;
    height: 145px;
    margin-bottom: 14px;
  }
}

/* Final compact sizing for Principal's Desk */
.principal{padding:62px 0}.principal-grid{grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr)}.principal-copy{padding:38px 42px 34px}.principal-copy>h2{max-width:620px;margin-bottom:18px;font-size:clamp(2.15rem,3.2vw,3.25rem)}.principal-copy blockquote{margin-bottom:18px;padding:17px 22px 16px 58px}.principal-copy blockquote>span{top:5px;left:15px;font-size:3.6rem}.principal-copy blockquote p{font-size:1.25rem}.principal-copy>p{margin-bottom:9px;font-size:.81rem;line-height:1.55}.principal-signature{margin-top:18px;padding-top:15px}.principal-photo{min-height:515px}.facility-grid article{padding:0 0 24px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}.facility-grid article:hover{z-index:2;transform:translateY(-5px);box-shadow:0 18px 38px rgba(8,43,99,.14)}.facility-grid article>img{display:block;width:100%;height:180px;object-fit:cover;transition:transform .4s ease}.facility-grid article:hover>img{transform:scale(1.04)}.facility-grid article>b{display:block;margin:22px 26px 0}.facility-grid article>h3{margin:8px 26px 6px}.facility-grid article>p{margin:0 26px}
@media(max-width:1050px){.principal-grid{grid-template-columns:1fr}.principal-photo{min-height:360px;height:360px}}
@media(max-width:720px){.principal{padding:48px 0}.principal-copy{padding:34px 24px 28px}.principal-copy>h2{font-size:2.25rem}.principal-photo{min-height:265px;height:265px}.facility-grid article>img{height:210px}}

/* Dedicated About pages */
.inner-page{min-height:100vh;background:#f4f7fb}.inner-header{background:#fff;border-bottom:1px solid var(--line)}.inner-header>.wrap{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:25px}.inner-brand{display:flex;align-items:center;gap:14px}.inner-brand img{width:68px;height:64px;object-fit:contain}.inner-brand span{display:flex;flex-direction:column;line-height:1.2}.inner-brand small{color:var(--blue);font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.inner-brand strong{color:var(--navy);font-size:1.18rem}.inner-home{padding:10px 15px;border:1px solid var(--line);color:var(--blue);font-size:.78rem;font-weight:800}.inner-hero{padding:80px 0;background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff;border-bottom:7px solid var(--gold)}.inner-hero p{margin:0;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.18em}.inner-hero h1{margin:10px 0 6px;font:clamp(3.1rem,6vw,6rem)/1 var(--serif)}.inner-hero span{color:#cfddf0}.inner-content{padding:90px 0}.inner-two-column{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:8vw;align-items:start}.inner-content article h2{margin:0 0 24px;color:var(--navy);font:clamp(2.2rem,4vw,3.6rem)/1.05 var(--serif)}.inner-content article p{color:#526075}.inner-content .inner-lead{color:#263750;font-size:1.08rem}.inner-content blockquote{margin:30px 0 0;padding:24px;border-left:5px solid var(--gold);background:#e8f0fb;color:var(--navy);font:1.6rem/1.35 var(--serif)}.inner-portrait{position:relative;margin:0;min-height:570px;overflow:hidden;background:var(--navy)}.inner-portrait img{width:100%;height:570px;object-fit:cover;object-position:center top}.inner-portrait figcaption{position:absolute;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:55px 28px 25px;background:linear-gradient(transparent,rgba(4,27,62,.97));color:#fff}.inner-portrait figcaption b{font:1.55rem var(--serif)}.inner-portrait figcaption span{color:var(--gold);font-size:.72rem}.values-page{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#cbd8e9}.values-page article{min-height:390px;padding:42px;background:#fff;border-top:6px solid var(--gold)}.values-page article>span{color:var(--blue);font-size:.72rem;font-weight:800}.values-page article h2{margin:55px 0 16px}.values-page article p{font-size:.9rem}.inner-footer{padding:25px 0;background:#082b63;color:#fff}.inner-footer>.wrap{display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:.75rem}.inner-footer a{color:var(--gold);font-weight:800}
@media(max-width:800px){.inner-header>.wrap{min-height:82px}.inner-brand img{width:54px;height:50px}.inner-brand strong{font-size:.88rem}.inner-brand small{font-size:.52rem}.inner-home{font-size:.68rem}.inner-hero{padding:60px 0}.inner-content{padding:65px 0}.inner-two-column,.values-page{grid-template-columns:1fr}.inner-portrait,.inner-portrait img{min-height:460px;height:460px}.values-page article{min-height:0}.inner-footer>.wrap{align-items:flex-start;flex-direction:column}}

/* Prominent affiliation and NAAC accreditation panel */
.header-actions .affiliation{display:flex;align-items:stretch;gap:0;padding:0;overflow:hidden;border:0;background:#fff;box-shadow:0 8px 24px rgba(8,43,99,.1)}
.affiliation-item,.accreditation-item{display:flex;min-width:170px;flex-direction:column;justify-content:center;padding:12px 17px}
.affiliation-item{border-right:0}
.accreditation-item{background:linear-gradient(135deg,#fff8df,#fff)}
.affiliation small{margin-bottom:5px;color:#596981;font-size:.58rem;font-weight:800;letter-spacing:.12em;line-height:1;text-transform:uppercase}
.affiliation strong{display:flex;align-items:center;gap:8px;color:#082b63;font-family:var(--serif);font-size:1rem;line-height:1.1;white-space:nowrap}
.accreditation-item strong{font-family:inherit;font-size:.92rem;font-weight:900;letter-spacing:.03em;text-transform:uppercase}
.grade-b{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(244,196,48,.22);color:#082b63;font:900 1.25rem/1 var(--sans)}
@media(max-width:1220px){.affiliation-item,.accreditation-item{min-width:145px;padding:10px 12px}.affiliation strong{font-size:.88rem}.header-admission{padding-right:14px;padding-left:14px}}

/* Shared header state on About pages */
.inner-page .nav-dropdown.current-section>summary{background:rgba(255,255,255,.12);color:#fff}

/* Administration information pages */
.information-content{padding:78px 0 90px}.information-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:48px;align-items:start}.information-article,.information-aside{background:#fff;box-shadow:0 14px 40px rgba(8,43,99,.09)}.information-article{padding:42px 46px;border-top:6px solid var(--gold)}.information-article h2{margin:0 0 18px;color:var(--navy);font:clamp(2rem,3vw,3rem)/1.08 var(--serif)}.information-article h3{margin:32px 0 10px;color:var(--blue);font-size:1.05rem}.information-article p,.information-article li{color:#526075;font-size:1rem;line-height:1.75}.information-article ul{margin:12px 0 0;padding-left:22px}.information-aside{padding:30px;background:#082b63;color:#fff}.information-aside h3{margin:0 0 14px;color:var(--gold);font:1.65rem var(--serif)}.information-aside p{color:#dce8f8;font-size:.92rem;line-height:1.65}.information-aside a{display:block;margin-top:12px;padding:12px 15px;background:var(--gold);color:#082b63;font-weight:800;text-align:center}.information-note{margin-top:26px;padding:18px 20px;border-left:4px solid var(--gold);background:#f3f7fc;color:#263750}
@media(max-width:850px){.information-content{padding:55px 0 65px}.information-grid{grid-template-columns:1fr;gap:24px}.information-article{padding:30px 24px}.information-aside{padding:26px}}

.staff-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}.staff-groups article{padding:24px;border-left:4px solid var(--gold);background:#f3f7fc}.staff-groups h3{margin:0 0 8px;color:var(--navy);font-size:1rem}.staff-groups p{margin:0;font-size:.92rem;line-height:1.6}.staff-contact{margin-top:30px;padding-top:24px;border-top:1px solid #d8e1ed}.staff-contact b{display:block;margin-bottom:6px;color:var(--navy)}
@media(max-width:650px){.staff-groups{grid-template-columns:1fr}}

.faculty-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.faculty-directory article{overflow:hidden;background:#f5f8fc;box-shadow:0 8px 24px rgba(8,43,99,.08)}.faculty-directory img{display:block;width:100%;height:245px;object-fit:cover;object-position:center top;background:#e6edf7}.faculty-directory article>div{padding:18px 18px 20px}.faculty-directory h3{margin:0 0 5px;color:var(--navy);font:1.25rem/1.2 var(--serif)}.faculty-directory p{margin:0;color:var(--blue);font-size:.82rem;font-weight:800;line-height:1.4}.faculty-directory small{display:block;margin-top:9px;color:#66748a;font-size:.72rem;line-height:1.45}.faculty-directory+.staff-contact{margin-top:38px}
@media(max-width:1050px){.faculty-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.faculty-directory{grid-template-columns:1fr}.faculty-directory img{height:310px}}
.faculty-directory h3 small{display:inline;color:#66748a;font:600 .68rem var(--sans)}

/* Allow longer Student Corner menus to remain usable on smaller screens */
.nav-dropdown .dropdown-menu{max-height:min(70vh,520px);overflow-y:auto}

/* Keep long-form homepage copy evenly aligned without affecting navigation,
   headings, buttons, labels, dates, or other compact interface text. */
.home-page main p,
.home-page .footer-main p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.new-badge {
  display: inline-flex;
  align-items: center;
  margin-right: 7px;
  padding: 3px 7px;
  border-radius: 4px;
  background: #b3122f;
  color: #fff;
  font: 800 .66rem/1 "DM Sans", sans-serif;
  letter-spacing: .08em;
  vertical-align: middle;
  animation: new-notice-blink 1s steps(2, start) infinite;
}
.notice-item em .new-badge { margin-left: 7px; margin-right: 0; }
@keyframes new-notice-blink { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .new-badge { animation: none; } }

/* College programmes listing and year-wise gallery */
.all-programmes,.year-gallery{padding:74px 0 92px;background:#f3f7fc}.programme-page-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:28px}.programme-page-heading h2{margin:4px 0 0;color:var(--navy);font:clamp(2rem,4vw,3.5rem)/1.05 var(--serif)}.programme-page-heading>p{max-width:520px;margin:0;color:#5d6a7d;line-height:1.7}.all-programmes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.programme-card{display:flex;min-height:440px;flex-direction:column;background:#fff;color:inherit;text-decoration:none;box-shadow:0 12px 35px rgba(8,43,99,.09);transition:transform .25s ease,box-shadow .25s ease}.programme-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(8,43,99,.16)}.programme-card img{width:100%;height:215px;object-fit:cover}.programme-card>div{display:flex;flex:1;flex-direction:column;padding:24px}.programme-card small{color:#a07500;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.programme-card h3{margin:8px 0;color:var(--navy);font:1.8rem/1.1 var(--serif)}.programme-card p{margin:0 0 20px;color:#617086;line-height:1.65}.programme-card span{margin-top:auto;color:#0b4d91;font-weight:800}.gallery-back{display:inline-flex;margin-bottom:24px;color:#0b4d91;font-weight:800;text-decoration:none}.year-tabs{display:flex;gap:8px;margin-bottom:28px;padding:7px;background:#e5ecf6;border-radius:10px}.year-tabs button{min-width:100px;padding:12px 22px;border:0;border-radius:7px;background:transparent;color:#52627a;font-weight:800}.year-tabs button.active{background:var(--navy);color:#fff;box-shadow:0 7px 18px rgba(8,43,99,.2)}.year-panel{padding:32px;background:#fff;box-shadow:0 14px 40px rgba(8,43,99,.1)}.year-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:24px}.year-panel-heading small{color:#a07500;font-weight:800;text-transform:uppercase}.year-panel-heading h2{margin:4px 0 0;color:var(--navy);font:clamp(1.8rem,3vw,2.8rem)/1.1 var(--serif)}.year-panel-heading>span{color:#6b788a;font-weight:700}.year-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.year-photo-grid figure{position:relative;height:300px;margin:0;overflow:hidden;background:#dfe7f1}.year-photo-grid figure.wide{grid-column:span 2}.year-photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.year-photo-grid figure:hover img{transform:scale(1.035)}.year-photo-grid figcaption{position:absolute;right:0;bottom:0;left:0;padding:40px 18px 16px;background:linear-gradient(transparent,rgba(3,24,54,.9));color:#fff}.year-photo-grid figcaption b,.year-photo-grid figcaption span{display:block}.year-photo-grid figcaption span{font-size:.8rem;color:#dce6f4}
@media(max-width:900px){.all-programmes-grid{grid-template-columns:1fr 1fr}.year-photo-grid{grid-template-columns:1fr 1fr}.year-photo-grid figure.wide{grid-column:span 2}}
@media(max-width:620px){.all-programmes,.year-gallery{padding:50px 0 64px}.programme-page-heading,.year-panel-heading{align-items:flex-start;flex-direction:column}.all-programmes-grid{grid-template-columns:1fr}.programme-card{min-height:0}.year-tabs{overflow-x:auto}.year-tabs button{min-width:86px}.year-panel{padding:18px}.year-photo-grid{grid-template-columns:1fr}.year-photo-grid figure,.year-photo-grid figure.wide{grid-column:auto;height:260px}}

@media(min-width:1061px){.nav-dropdown:hover>summary{border-bottom-color:var(--gold);background:rgba(255,255,255,.08)}.nav-dropdown:hover>summary::after{transform:rotate(-135deg)}}
