/* inner/inner.css — every internal page of the Nalanda Degree College static site.
   Values follow the reference site's second-level templates as measured (recon/inner-pages-spec.md, local):
   a photo hero at 100vh − 16rem with the title over a dark shade (a curved red band on phones), a red intro
   band whose lower edge bows down, a 740 px text column with red EB Garamond h2s and blue list markers,
   flush alternating rows on a warm tint with zooming photos, red stat cards, blue FAQ bars, a blue quote
   band, circle staff cards with a slide-in side panel, 250 px explore tiles and a beige related-stories band.
   Colours are mapped to the college's own palette in styles.css (the reds and cream are shared). */

:root {
  --fs-red: #bf1d24; --fs-red-bright: #d6262d; --fs-red-hover: #c92226; --fs-red-border: #a80c10; --fs-hero-red: #b11a21;
  --fs-stat: #c32026; --fs-stat-hover: #d1282e;
  --fs-blue: #607c9d; --fs-blue-border: #516f91; --fs-blue-hover: #6b89ac; --fs-blue-pale: #9ab4d3;
  --fs-text: #545454; --fs-warm: #897e72; --fs-line: rgba(162, 150, 138, 0.22);
  --fs-peach: #ffb56c; --fs-peach-light: #ffc286; --fs-card: #fafaf7; --fs-panel: #f5f4ef;
  --fs-tint-rows: #e6e3db;      /* rgba(162,150,139,.13) over the page cream */
  --fs-tint-band: #e8e6de;      /* rgba(162,150,139,.10) */
  --fs-tint-form: #e5e2da;      /* rgba(162,150,139,.14) */
  --fs-p: clamp(1.15625rem, 1.06971rem + 0.180288vw, 1.25rem);
  --fs-h2: clamp(2.25rem, 1.15385rem + 2.28365vw, 3.4375rem);
  --fs-shadow: 3px 3px 20px rgba(0, 0, 0, 0.15);
}

.inner-page { background: var(--cream); color: var(--fs-text); }
.inner-page main { display: block; overflow-x: clip; }
.inner-page h2::first-letter, .inner-page .secondlvl li::first-letter { text-transform: uppercase; }

/* ================= Loading screen (red disc shrinks to the centre 250 ms after load) ================= */
.loading-screen { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; background: var(--fs-red); clip-path: circle(100%); transition: clip-path 1.5s ease-in-out; }
.loading-screen__logo { display: grid; place-items: center; width: 10rem; height: 10rem; border-radius: 50%; background: #fff; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2); }
.loading-screen__logo img { width: 62%; height: auto; }
html.js-cp-loaded .loading-screen { clip-path: circle(0); pointer-events: none; }
@media (max-width: 767px) { .loading-screen__logo { width: 8.125rem; height: 8.125rem; } }

/* ================= Buttons ================= */
.inner-page .btn { position: relative; display: inline-block; border: 0; border-radius: 0.4375rem; background: transparent; cursor: pointer; text-decoration: none;
  color: var(--fs-text); font-family: var(--font-ui); font-size: clamp(0.8125rem, 0.697115rem + 0.240385vw, 0.9375rem); font-weight: 700; letter-spacing: clamp(0.08125rem, 0.0754808rem + 0.0120192vw, 0.09375rem);
  line-height: 1.46; text-transform: uppercase; padding: 1.0625rem 2.875rem 1rem 1.875rem; transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out; }
.inner-page .btn::before { content: ""; position: absolute; inset: 0; border: 0.125rem solid var(--fs-line); border-radius: inherit; transition: 0.3s ease-in-out; }
.inner-page .btn .btn__text { position: relative; z-index: 2; color: inherit; }
.inner-page .btn .icon { position: absolute; right: 1.5625rem; top: 50%; transform: translateY(-50%); width: 0.75rem; height: 0.625rem; background: var(--fs-warm); z-index: 2; transition: background 0.3s ease-in-out; }
.inner-page .btn .icon--plus { width: 0.625rem; height: 0.625rem; }
.inner-page .btn:hover { color: var(--fs-red-hover); background: transparent; }
.inner-page .btn:hover::before { background: var(--fs-line); transform: scale(1.01); }
.inner-page .btn:hover .icon { background: var(--fs-red-hover); }
.inner-page .btn--red { background: var(--fs-red); color: var(--fs-card); }
.inner-page .btn--red::before { border-color: var(--fs-red-border); }
.inner-page .btn--red .icon { background: var(--fs-card); }
.inner-page .btn--red:hover { background: var(--fs-red-hover); color: var(--fs-card); }
.inner-page .btn--red:hover::before { background: var(--fs-red-border); }
.inner-page .btn--red:hover .icon { background: var(--fs-card); }
.inner-page .btn--blue { background: var(--fs-blue); color: var(--fs-card); }
.inner-page .btn--blue::before { border-color: var(--fs-blue-border); }
.inner-page .btn--blue .icon { background: var(--fs-card); }
.inner-page .btn--blue:hover { background: var(--fs-blue-hover); color: var(--fs-card); }
.inner-page .btn--blue:hover::before { background: var(--fs-blue-border); }
.inner-page .btn--on-red { color: #fff; }
.inner-page .btn--on-red::before { border-color: rgba(250, 250, 247, 0.2); }
.inner-page .btn--on-red .icon { background: #fff; }
.inner-page .btn--on-red:hover { color: var(--fs-peach); }
.inner-page .btn--on-red:hover::before { background: rgba(250, 250, 247, 0.08); }
.inner-page .btn--on-red:hover .icon { background: var(--fs-peach); }
.inner-page .btn--light { background: var(--cream); }
.inner-page .btn--light:hover { background: var(--cream); }
@media (max-width: 767px) { .inner-page .btn { padding: 0.8125rem 2.5rem 0.6875rem 1.4375rem; } .inner-page .btn .icon { right: 1.25rem; } }
.icon { display: inline-block; width: 1em; height: 1em; background: currentColor; }
.icon--arrow { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.icon--plus, .card__plus::before, .staff-card__plus::before { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7 0h2v7h7v2H9v7H7V9H0V7h7z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7 0h2v7h7v2H9v7H7V9H0V7h7z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ================= Page hero ================= */
.page-hero { position: relative; overflow: hidden; background: var(--fs-hero-red); }
.page-hero__media { position: relative; height: calc(100vh - 16rem); min-height: 22rem; overflow: hidden; }
.page-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.page-hero__media::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 40%; background: linear-gradient(to top, transparent, #000); opacity: 0.68; z-index: 1; pointer-events: none; }
.page-hero__title-area { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 1.875rem 0; }
.page-hero__title-area::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 140%; background: linear-gradient(transparent, #000); opacity: 0.76; pointer-events: none; }
.page-hero__title-inner { position: relative; max-width: 62.5rem; margin: 0 auto; padding: 0 1.25rem; text-align: center; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; justify-content: center; margin: 0 0 0.625rem; padding: 0; list-style: none; }
.breadcrumbs li { color: #fff; font-weight: 700; font-size: clamp(0.875rem, 0.759615rem + 0.240385vw, 1rem); letter-spacing: 0.09rem; line-height: 1.5rem; text-transform: uppercase; }
.breadcrumbs li + li::before { content: "|"; display: inline-block; margin: 0 0.625rem; }
.breadcrumbs a { color: inherit; text-decoration: underline 0.0625rem transparent; text-underline-offset: 0.125rem; transition: color 0.3s, text-decoration-color 0.3s; }
.breadcrumbs a:hover { text-decoration-color: #fff; }
.page-title { margin: 0; color: #fff; font-family: var(--font-display); font-weight: 700; font-size: clamp(2.25rem, -0.230769rem + 5.16827vw, 4.9375rem); line-height: 1.15; text-wrap: balance;
  opacity: 0; transform: translateY(100%); transition: opacity 0.7s ease-out 1.2s, transform 0.7s ease-out 1.2s; }
html.js-cp-loaded .page-title { opacity: 1; transform: none; }

/* No photo (.noHeader): red hero 480 px with the college skyline drawn in the corner */
.page-hero--plain { height: 30rem; }
.page-hero--plain .page-hero__title-area::before { display: none; }
.page-hero__art { position: absolute; right: 0; bottom: 0; width: 50rem; height: 16.875rem; max-width: 70%; opacity: 0.9;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 270'%3E%3Cg fill='%23a0151b'%3E%3Cpath d='M40 270V150h70v120zM130 270V95h110v175zM255 270V120h40V80h50v40h40v150zM400 270V60h24V40h12v20h24v210zM480 270V140h90v130zM590 270V105h60l30-30 30 30h50v165z'/%3E%3C/g%3E%3Cg fill='%23c52a30'%3E%3Cpath d='M145 115h20v20h-20zM180 115h20v20h-20zM215 115h14v20h-14zM145 150h20v20h-20zM180 150h20v20h-20zM145 185h20v20h-20zM180 185h20v20h-20zM270 140h20v18h-20zM305 140h20v18h-20zM340 140h20v18h-20zM270 175h20v18h-20zM305 175h20v18h-20zM340 175h20v18h-20zM414 80h32v14h-32zM414 110h32v14h-32zM414 140h32v14h-32zM414 170h32v14h-32zM495 160h20v20h-20zM530 160h20v20h-20zM495 195h20v20h-20zM530 195h20v20h-20zM610 125h22v22h-22zM650 125h22v22h-22zM690 125h22v22h-22zM610 165h22v22h-22zM650 165h22v22h-22zM690 165h22v22h-22zM666 215h28v55h-28z'/%3E%3C/g%3E%3C/svg%3E") right bottom / contain no-repeat; }
@media (max-width: 991px) { .page-hero--plain { height: 21.875rem; } .page-hero__art { width: 21.875rem; height: 13.125rem; } }

/* Phones: 480 px photo, then a bright-red title band whose curved cap rises into the photo */
@media (max-width: 767px) {
  .page-hero:not(.page-hero--plain) .page-hero__media { height: 30rem; min-height: 30rem; max-height: 30rem; }
  .page-hero:not(.page-hero--plain) .page-hero__title-area { position: static; background: var(--fs-red-bright); padding: 0.625rem 0 1.875rem; }
  .page-hero:not(.page-hero--plain) .page-hero__title-area::before { bottom: auto; top: auto; height: 4.6875rem; transform: translateY(-100%); margin-top: -0.625rem; opacity: 1;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320' preserveAspectRatio='none'%3E%3Cpath d='M0 150c360 150 1080 150 1440 0v170H0z' fill='%23D6262D'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat; }
  .page-hero:not(.page-hero--plain) .page-hero__title-inner { position: relative; }
}

/* ================= Red intro band (.featured-paragraph): the lower edge bows down ~10 px ================= */
.page-intro { position: relative; z-index: 3; background: var(--fs-red); padding: 3.4375rem 1.25rem; text-align: center;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 242.45'%3E%3Cpath d='M0 0h1440v232.213s-359.92 10.234-719.92 10.234S0 232.213 0 232.213z'/%3E%3C/svg%3E") center bottom / cover no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 242.45'%3E%3Cpath d='M0 0h1440v232.213s-359.92 10.234-719.92 10.234S0 232.213 0 232.213z'/%3E%3C/svg%3E") center bottom / cover no-repeat; }
.page-intro__inner { max-width: 53.125rem; margin: 0 auto; }
.page-intro p { margin: 0 0 1.875rem; color: #fff; font-size: clamp(1.28125rem, 0.733173rem + 1.14183vw, 1.875rem); font-weight: 500; line-height: 1.22; text-wrap: balance; }
.page-intro p:last-child { margin-bottom: 0; }
.page-intro__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.9375rem 1.5625rem; }
@media (max-width: 767px) { .page-intro { padding: 1.5625rem 1.25rem; } }

/* ================= Text column (.secondLvlCss in a 780/740 container) ================= */
.text-section { padding: 2.8125rem 1.25rem 2.5rem; scroll-margin-top: 2rem; }
.text-section__inner { max-width: 46.25rem; margin: 0 auto; }
.section-title, .secondlvl h2 { margin: 0 0 2.5rem; padding-top: 0.375rem; color: var(--fs-red); font-family: var(--font-display); font-size: var(--fs-h2); font-weight: 700; line-height: 1.1; text-wrap: balance; }
.section-title, .section-title--center { text-align: center; }
.section-title--left { text-align: left; }
.secondlvl h3 { margin: 0 0 1.5rem; padding-top: 0.375rem; color: var(--fs-text); font-family: var(--font-ui); font-size: clamp(1.25rem, 1.07692rem + 0.360577vw, 1.4375rem); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.secondlvl h4 { margin: 0 0 1.5rem; padding-top: 0.375rem; color: var(--fs-red); font-size: clamp(1.1875rem, 0.725962rem + 0.961538vw, 1.6875rem); font-weight: 500; line-height: 1.18; }
.secondlvl p { margin: 0 0 1.875rem; color: var(--fs-text); font-size: var(--fs-p); font-weight: 400; line-height: 1.25; }
.secondlvl p a { font-weight: 700; }
.secondlvl .featured-paragraph { margin-bottom: 2.1875rem; color: var(--fs-red); font-family: var(--font-display); font-size: clamp(1.40625rem, 1.03125rem + 0.78125vw, 1.8125rem); font-weight: 600; line-height: 1.27; }
.secondlvl ul, .secondlvl ol { margin: 0 0 1.875rem; padding: 0; }
.secondlvl ul li { margin-bottom: 0.9375rem; list-style: none; font-size: var(--fs-p); line-height: 1.25; }
.secondlvl ul li::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; margin-right: 0.625rem; border-radius: 50%; background: var(--fs-blue); transform: translateY(-2px); }
.secondlvl ol { padding-left: 1.25rem; }
.secondlvl ol li { margin-bottom: 0.9375rem; list-style: decimal; font-size: var(--fs-p); line-height: 1.25; padding-left: 0.3rem; }
.secondlvl ol li::marker { color: var(--fs-blue); font-family: var(--font-display); font-weight: 800; }
.secondlvl a:not(.btn) { color: var(--fs-red); font-weight: 500; text-decoration: underline 0.125rem; text-underline-offset: 0.125rem; transition: 0.3s ease-in-out; word-break: break-word; }
.secondlvl a:not(.btn):hover { color: var(--fs-blue); }
.secondlvl blockquote { position: relative; margin: 3.125rem 0; color: var(--fs-text); font-family: var(--font-display); font-size: clamp(1.25rem, 0.730769rem + 1.08173vw, 1.8125rem); font-weight: 600; line-height: 1.27; }
.secondlvl blockquote p { font: inherit; color: inherit; margin: 0; }
.secondlvl blockquote::before, .secondlvl blockquote::after { position: absolute; color: var(--fs-blue); font-size: 2.6rem; line-height: 1; }
.secondlvl blockquote::before { content: "\201C"; left: -3.125rem; top: -0.3rem; }
.secondlvl blockquote::after { content: "\201D"; right: -3.125rem; bottom: -1rem; }
.secondlvl hr { height: 0.125rem; margin: 4.375rem 0; border: 0; background: #a2968a; opacity: 0.4; }
@media (max-width: 991px) { .secondlvl blockquote::before, .secondlvl blockquote::after { position: static; display: block; } .secondlvl blockquote::after { text-align: right; } }
@media (max-width: 767px) { .secondlvl h2, .section-title { margin-bottom: 1.25rem; } .secondlvl h3 { margin-bottom: 1.25rem; } .secondlvl p { margin-bottom: 1.25rem; } .secondlvl blockquote { margin: 2.8125rem 0; } }

/* Facts (program "at a glance") in the reference table style */
.facts { width: 100%; margin: 0 0 1.875rem; border: 0.125rem solid rgba(162, 150, 139, 0.52); border-collapse: separate; border-spacing: 0; border-radius: 0.4375rem; overflow: hidden; }
.facts th, .facts td { padding: 0.9375rem 1.125rem; border-bottom: 0.125rem solid var(--fs-line); text-align: left; vertical-align: top; font-size: var(--fs-p); line-height: 1.25; }
.facts th { width: 32%; background: rgba(162, 150, 139, 0.3); border-right: 0.125rem solid var(--fs-line); font-weight: 500; }
.facts tr:last-child th, .facts tr:last-child td { border-bottom: 0; }

/* Documents as labelled link lists with a file icon */
.doc-list li { display: grid; gap: 0.3rem; }
.doc-list li::before { display: none !important; }
.doc-link { position: relative; display: inline-block; justify-self: start; padding-right: 1.5rem; font-size: var(--fs-p); }
.doc-link::after { content: ""; position: absolute; right: 0; top: 50%; width: 1rem; height: 1rem; transform: translateY(-50%); background: currentColor; transition: opacity 0.3s; }
.doc-link--pdf::after { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 0h7l4 4v12H3zm6 1v4h4zM5 9h2a1.5 1.5 0 0 1 0 3H6v2H5zm1 1v1h1a.5.5 0 0 0 0-1zm3-1h1.5a2 2 0 0 1 0 5H9zm1 1v3h.5a1 1 0 0 0 0-3z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 0h7l4 4v12H3zm6 1v4h4zM5 9h2a1.5 1.5 0 0 1 0 3H6v2H5zm1 1v1h1a.5.5 0 0 0 0-1zm3-1h1.5a2 2 0 0 1 0 5H9zm1 1v3h.5a1 1 0 0 0 0-3z'/%3E%3C/svg%3E") center / contain no-repeat; }
.doc-link--image::after { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 2h14v12H1zm1 1v8l3.5-3.5L8 10l3-3 3 3V3zm8 1.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 2h14v12H1zm1 1v8l3.5-3.5L8 10l3-3 3 3V3zm8 1.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z'/%3E%3C/svg%3E") center / contain no-repeat; }
.doc-link--none { padding-right: 0; font-weight: 500; }
.doc-link--none::after { display: none; }
.doc-meta { font-size: 1rem; line-height: 1.35; color: var(--fs-text); }
.doc-meta em { color: var(--fs-warm); }

/* ================= Alternating rows (.alternated layout08/09, faders layout15/16) ================= */
.split-row { position: relative; display: flex; flex-wrap: wrap; overflow: hidden; background: var(--fs-tint-rows); scroll-margin-top: 2rem; }
.split-row__text, .split-row__media { position: relative; z-index: 2; display: flex; flex: 1 1 25rem; flex-direction: column; justify-content: center; width: 50%; padding: 5.625rem 8%; }
.split-row__text h2 { text-align: left; }
.split-row__text > :last-child { margin-bottom: 0; }
.split-row__media { min-height: 34.375rem; padding-top: 30%; }
.split-row__media > img { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.1); transition: transform 1s ease-in-out; }
.split-row__media > img.in-view { transform: scale(1); }
.split-row--image-left .split-row__media { order: -1; }
/* fader: photos cross-fade, counter n/total and arrows at the foot of the photo */
.split-row__media--fader .fader { position: absolute; inset: 0; z-index: 1; }
.fader .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.fader::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 60%; background: linear-gradient(transparent, #000); opacity: 0.75; z-index: 2; pointer-events: none; }
.fader__controls { position: absolute; left: 50%; bottom: 2rem; z-index: 3; display: flex; align-items: center; justify-content: space-between; width: 7.5rem; transform: translateX(-50%); }
.fader__counter { color: var(--fs-card); font-size: clamp(0.875rem, 0.701923rem + 0.360577vw, 1.0625rem); font-weight: 500; letter-spacing: 0.21875rem; }
.fader__arrow, .quote-band__arrow { width: 1.4rem; height: 1.2rem; padding: 0; border: 0; background: var(--fs-card); cursor: pointer; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; transition: opacity 0.3s; }
.fader__arrow--prev, .quote-band__arrow--prev { transform: scaleX(-1); }
.fader__arrow.swiper-button-disabled, .quote-band__arrow.swiper-button-disabled { opacity: 0.35; cursor: default; }
@media (min-width: 1600px) { .split-row__text { padding-inline: 10%; } }
@media (max-width: 991px) { .fader__controls { width: calc(100% - 2.5rem); } }
@media (max-width: 799px) {
  .split-row__text { padding: 1.875rem 5%; order: 2; }
  .split-row__media, .split-row--image-left .split-row__media { order: 1; min-height: 0; padding: 0; aspect-ratio: 4 / 3; }
  .split-row__media--fader { min-height: 23.4375rem; aspect-ratio: auto; }
}

/* ================= Full-width photo with centred text (layout05 textCenter) ================= */
.image-band { position: relative; overflow: hidden; margin: 4.375rem 0; }
.image-band__media { position: absolute; inset: 0; overflow: hidden; }
.image-band__media img { position: absolute; left: 0; top: 0; width: 100%; height: 140%; object-fit: cover; transform: translateY(-20%); }
.image-band__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--fs-panel); opacity: 0.9; }
.image-band__text { position: relative; z-index: 2; max-width: 47.1875rem; margin: 0 auto; padding: 4.375rem 5%; text-align: center; }
.image-band__text h2 { text-align: center; }
.image-band__text p { color: #343434; }
.image-band__text p:last-child { margin-bottom: 0; }
@media (max-width: 991px) { .image-band__text { padding: 2.8125rem 5%; } }
@media (max-width: 768px) { .image-band__text { padding: 4.6875rem 1.25rem; } }

/* ================= Red stat cards (.stats-grid) ================= */
.stat-cards { margin: 4.375rem 0; padding: 0 1.25rem; }
.stat-cards__grid { display: flex; flex-wrap: wrap; justify-content: center; max-width: 84.375rem; margin: 0 auto; padding: 0; list-style: none; }
.stat-card { flex: 0 0 20.3125rem; padding: 0 0.9375rem 1.875rem; }
.stat-card__inner { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 18.5rem; padding: 1.25rem; border-radius: 0.9375rem; background: var(--fs-stat); box-shadow: 3px 3px 30px rgba(0, 0, 0, 0.184); text-align: center; transition: 0.3s ease-in-out; }
.stat-card__number { margin: 0 0 0.625rem; color: var(--fs-peach-light); font-family: var(--font-display); font-size: clamp(3.125rem, 1.68269rem + 3.00481vw, 4.6875rem); font-weight: 700; line-height: 1; }
.stat-card__label { margin: 0; max-width: 14rem; color: var(--fs-card); font-size: clamp(0.9375rem, 0.879808rem + 0.120192vw, 1rem); line-height: 1.1; }
@media (max-width: 849px) { .stat-card { flex-basis: 50%; } }
@media (max-width: 767px) { .stat-card__inner { min-height: 11.5625rem; padding-bottom: 1.875rem; } .stat-cards { margin: 2.8125rem 0; } }
@media (max-width: 600px) { .stat-card { flex-basis: 100%; } }

/* ================= Blue quote band (.blockquote-fader) ================= */
.quote-band { position: relative; margin: 3.125rem 0; padding: 7.5rem 4.0625rem 5.9375rem; background: var(--fs-blue); overflow: hidden; }
.quote-band::after { content: ""; position: absolute; right: 0; bottom: 0; width: 26rem; height: 9rem; max-width: 50%; opacity: 0.35; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 270'%3E%3Cg fill='%234f6a8a'%3E%3Cpath d='M40 270V150h70v120zM130 270V95h110v175zM255 270V120h40V80h50v40h40v150zM400 270V60h24V40h12v20h24v210zM480 270V140h90v130zM590 270V105h60l30-30 30 30h50v165z'/%3E%3C/g%3E%3C/svg%3E") right bottom / contain no-repeat; }
.quote-band__inner { position: relative; z-index: 1; max-width: 52.8125rem; margin: 0 auto; }
.quote { margin: 0; text-align: center; }
.quote blockquote { position: relative; margin: 0; padding: 0 2.5rem; color: var(--fs-card); font-family: var(--font-display); font-size: clamp(1.25rem, 0.730769rem + 1.08173vw, 1.8125rem); font-weight: 600; line-height: 1.27; }
.quote blockquote p { margin: 0; }
.quote blockquote::before, .quote blockquote::after { position: absolute; color: var(--fs-blue-pale); font-size: 3.2rem; line-height: 1; }
.quote blockquote::before { content: "\201C"; left: -0.5rem; top: -0.8rem; }
.quote blockquote::after { content: "\201D"; right: -0.5rem; bottom: -2rem; }
.quote__author { margin-top: 1.5625rem; color: var(--fs-card); font-size: clamp(1rem, 0.769231rem + 0.480769vw, 1.25rem); font-weight: 500; }
.quote__author span { display: block; margin-top: 0.2rem; opacity: 0.8; font-size: 0.9em; font-weight: 400; }
.quote-band__controls { display: flex; align-items: center; justify-content: center; gap: 2rem; margin-top: 2.5rem; }
.quote-band__counter { color: var(--fs-card); font-size: clamp(0.875rem, 0.701923rem + 0.360577vw, 1.0625rem); font-weight: 500; letter-spacing: 0.21875rem; }
@media (min-width: 992px) { .quote-band__controls { position: static; } }
@media (max-width: 1200px) { .quote-band__inner { max-width: 40.625rem; } }
@media (max-width: 991px) { .quote-band { margin: 2.8125rem 0; padding: 3.75rem 1.25rem 4.375rem; } .quote-band__inner { max-width: 100%; }
  .quote blockquote::before, .quote blockquote::after { position: static; display: block; } .quote blockquote::after { text-align: right; } }

/* ================= Cards (.cards-grid): department cards open the side panel, photo cards are links ================= */
.card-grid { margin: 2.5rem 0 4.375rem; padding: 0 1.25rem; scroll-margin-top: 2rem; }
.card-grid__intro { max-width: 46.25rem; margin: -1.5rem auto 1.5rem; font-size: var(--fs-p); line-height: 1.25; text-align: center; }
.card-grid__list { display: flex; flex-wrap: wrap; justify-content: center; max-width: 84.375rem; margin: 0 auto; padding: 0; list-style: none; }
.card { position: relative; flex: 0 0 20.3125rem; padding: 1.5625rem 0.625rem; }
.card__link { position: absolute; inset: 1.5625rem 0.625rem; z-index: 6; display: block; padding: 0; border: 0; border-radius: 0.9375rem; background: transparent; cursor: pointer; }
.card__inner { height: 100%; overflow: hidden; border-radius: 0.9375rem; background: var(--fs-card); box-shadow: var(--fs-shadow); }
.card__image { position: relative; height: 15rem; overflow: hidden; }
.card__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(149deg, transparent, #000); opacity: 0.35; pointer-events: none; }
.card__photo, .card__art { position: absolute; inset: 0; transition: transform 0.3s ease-in-out; }
.card__photo img { width: 100%; height: 100%; object-fit: cover; }
.card__art { display: grid; place-items: center; color: #fff; background: radial-gradient(circle at 30% 20%, #e3383f 0, var(--fs-red) 45%, #8a1419 100%); }
.card__art svg { width: 38%; height: auto; }
.card__plus { position: absolute; right: 0.625rem; bottom: 0.625rem; z-index: 2; display: grid; place-items: center; width: 1.625rem; height: 1.625rem; border-radius: 50%; background: var(--fs-card); transition: background 0.3s ease-in-out; }
.card__plus::before { content: ""; width: 0.6875rem; height: 0.6875rem; background: var(--fs-red); transition: background 0.3s ease-in-out; }
.card__content { padding: 1.25rem 1.5625rem; }
.card__name { margin: 0 0 0.4375rem; color: var(--fs-text); font-size: clamp(1.25rem, 1.07692rem + 0.360577vw, 1.4375rem); font-weight: 500; line-height: 1.17; transition: color 0.3s ease-in-out; }
.card__description { margin: 0; color: var(--fs-text); font-size: clamp(0.9375rem, 0.879808rem + 0.120192vw, 1.0625rem); line-height: 1.23; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; transition: color 0.3s ease-in-out; }
@media (hover: hover) {
  .card--active:hover .card__photo, .card--active:hover .card__art { transform: scale(1.03); }
  .card--active:hover .card__plus { background: var(--fs-red-hover); }
  .card--active:hover .card__plus::before { background: var(--fs-card); }
  .card--active:hover .card__name, .card--active:hover .card__description { color: var(--fs-red-hover); }
}
.card__link:focus-visible { outline: 3px solid var(--fs-blue); outline-offset: 3px; }
@media (max-width: 849px) { .card { flex-basis: 50%; } }
@media (max-width: 767px) { .card-grid { margin-bottom: 2.8125rem; padding-top: 0.625rem; } .card__plus { width: 1.4375rem; height: 1.4375rem; } }
@media (max-width: 600px) { .card { flex-basis: 100%; padding: 0.625rem 0; } .card__link { inset: 0.625rem 0; } }

/* ================= Staff cards (.staff-grid) ================= */
.staff-grid { margin: 2.5rem 0 3.125rem; padding: 0 1.25rem; }
.staff-grid__list { display: flex; flex-wrap: wrap; justify-content: center; max-width: 84.375rem; margin: 0 auto; padding: 0; list-style: none; }
.staff-card { flex: 0 0 17.8125rem; padding: 1.5625rem 0.625rem; }
.staff-card__btn { display: block; width: 100%; padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; text-align: center; overflow: hidden; }
.staff-card__image { position: relative; display: grid; place-items: center; width: 11.75rem; height: 11.75rem; margin: 0 auto; overflow: hidden; border: 0.25rem solid rgba(162, 150, 138, 0.3); border-radius: 50%; background: var(--fs-blue); }
.staff-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease-in-out; }
.staff-card__initials { color: var(--fs-card); font-family: var(--font-display); font-size: 3.4rem; font-weight: 700; transition: transform 0.3s ease-in-out; }
.staff-card__name { display: flex; align-items: center; justify-content: center; gap: 0.6rem; max-width: 15.625rem; margin: 0 auto 0.5rem; padding: 0.9375rem 0.625rem 0; color: var(--fs-text); font-family: var(--font-display); font-size: clamp(1.3125rem, 1.02404rem + 0.600962vw, 1.625rem); font-weight: 600; line-height: 1; transition: color 0.3s; }
.staff-card__plus { position: relative; flex: none; display: grid; place-items: center; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: rgba(201, 34, 38, 0.12); transition: 0.3s ease-in-out; }
.staff-card__plus::before { content: ""; width: 0.5625rem; height: 0.5625rem; background: var(--fs-red-hover); }
.staff-card__role { display: block; max-width: 15.625rem; margin: 0 auto; padding: 0 0.625rem; color: var(--fs-text); font-size: clamp(1rem, 0.942308rem + 0.120192vw, 1.0625rem); line-height: 1.3; }
.staff-card__btn:hover .staff-card__image img, .staff-card__btn:hover .staff-card__initials { transform: scale(1.03); }
.staff-card__btn:hover .staff-card__name, .staff-card__btn:focus-visible .staff-card__name { color: var(--fs-red); }
.staff-card__btn:hover .staff-card__plus { background: rgba(201, 34, 38, 0.24); }
@media (max-width: 849px) { .staff-card { flex-basis: 33.33%; } }
@media (max-width: 767px) { .staff-card__image { width: 10rem; height: 10rem; } .staff-card__plus { width: 1.0625rem; height: 1.0625rem; } }
@media (max-width: 600px) { .staff-card { flex-basis: 50%; padding: 0.625rem 0 1.25rem; } }
@media (max-width: 475px) { .staff-card { flex-basis: 100%; } }

/* ================= Side panel (section#mediaPopup): staff, department card ================= */
.media-popup { position: fixed; inset: 0; z-index: 9999998; overflow: hidden; background: rgba(0, 0, 0, 0); transition: background-color 0.3s ease-in-out; }
.media-popup.is-open { background: rgba(0, 0, 0, 0.82); }
.media-popup__inner { position: relative; width: 100%; max-width: 46.0625rem; height: 100%; margin: 0 0 0 auto; background: var(--cream); transform: translateX(100%); transition: transform 0.3s ease-in-out; }
.media-popup.is-open .media-popup__inner { transform: none; }
.media-popup__content { height: 100%; overflow-y: auto; overscroll-behavior: contain; }
.media-popup__close { position: absolute; left: -2.1875rem; top: 0.8125rem; z-index: 10; width: 4.375rem; height: 4.375rem; border: 0; border-radius: 50%; background: var(--fs-red-bright); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16); cursor: pointer; transition: background 0.3s; }
.media-popup__close::before, .media-popup__close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.875rem; height: 0.1875rem; background: #fff; transform: translate(-50%, -50%) rotate(45deg); }
.media-popup__close::after { transform: translate(-50%, -50%) rotate(135deg); }
.media-popup__close:hover { background: var(--fs-peach); }
.mp-top { display: flex; align-items: center; min-height: 26rem; }
.mp-photo { flex: none; display: grid; place-items: center; width: 17.375rem; height: 17.375rem; margin: 3.4375rem 2.5rem 1.25rem 4.0625rem; overflow: hidden; border-radius: 50%; background: var(--fs-blue); box-shadow: 5px 5px 40px rgba(149, 137, 125, 0.5); }
.mp-photo img { width: 100%; height: 100%; object-fit: cover; }
.mp-photo span { color: var(--fs-card); font-family: var(--font-display); font-size: 5.5rem; font-weight: 700; }
.mp-text { padding: 2.5rem 4.375rem 2.5rem 0; }
.mp-title { margin: 4.375rem 0 1.25rem; color: var(--fs-red-hover); font-family: var(--font-display); font-size: clamp(2.2rem, 1.6rem + 1.2vw, 2.65rem); font-weight: 600; line-height: 1; }
.mp-subtitle { margin: 0 0 1rem; font-size: 1.2rem; line-height: 1.3; }
.mp-meta { margin: 0; font-size: 1rem; font-weight: 700; letter-spacing: 0.04em; }
.mp-body { padding: 0 4.375rem 2.5rem; }
.mp-body > :last-child { margin-bottom: 0; }
.mp-card-image { position: relative; height: 30.6875rem; display: grid; place-items: center; color: #fff; background: radial-gradient(circle at 30% 20%, #e3383f 0, var(--fs-red) 45%, #8a1419 100%); }
.mp-card-image svg { width: 26%; height: auto; }
.mp-card-text { padding: 2.5rem 4.375rem; }
.mp-card-text .mp-title { margin-top: 0; }
.mp-related { padding: 2.5rem 4.375rem 3rem; background: var(--fs-red); }
.mp-related__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin-bottom: 1.5625rem; }
.mp-related__title { margin: 0; color: #fff; font-size: 1.475rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.mp-related__tag { display: inline-block; padding: 0.25rem 0.8125rem 0.3125rem 0.75rem; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 15px; color: #fff; font-size: 0.975rem; font-weight: 700; }
.mp-related__list { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; margin: 0; padding: 0; list-style: none; }
.mp-related .staff-card__btn { color: #fff; }
.mp-related .staff-card__image { width: 10.3rem; height: 10.3rem; border-color: rgba(240, 239, 231, 0.33); }
.mp-related .staff-card__name, .mp-related .staff-card__role { color: #fff; }
.mp-related .staff-card__plus { background: rgba(255, 255, 255, 0.18); }
.mp-related .staff-card__plus::before { background: #fff; }
.mp-related .staff-card__btn:hover .staff-card__name { color: var(--fs-peach); }
.mp-related .staff-card__btn:hover .staff-card__plus { background: rgba(255, 181, 108, 0.24); }
.mp-related a:not(.btn) { color: #fff; font-weight: 700; }
.mp-programs { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.75rem; }
.mp-programs li::before { display: none; }
html.media-popup-open, html.media-popup-open body { overflow: hidden; }
@media (max-width: 991px) {
  .media-popup__inner { max-width: 100%; }
  .media-popup__close { left: auto; right: 0.625rem; top: 0.625rem; width: 3.625rem; height: 3.625rem; }
  .mp-top { flex-direction: column; align-items: flex-start; min-height: 0; }
  .mp-photo { width: 14.5625rem; height: 14.5625rem; margin: 2.375rem 2.5rem 0.8125rem 1.25rem; }
  .mp-text { padding: 1.5625rem 1.25rem 1rem; }
  .mp-title { margin-top: 0; }
  .mp-body, .mp-card-text { padding: 0 1.25rem 1.5625rem; }
  .mp-card-text { padding-top: 1.5625rem; }
  .mp-card-image { height: 16rem; }
  .mp-related { padding: 1.25rem; }
}

/* ================= Explore-more tiles (.promos-carousel) ================= */
.explore { margin: 1.5rem 0 4.375rem; padding: 0 1.25rem; overflow: hidden; }
.explore__track { display: flex; justify-content: center; margin: 0; padding: 0 0 0 1.875rem; list-style: none; transform: translateX(20%); transition: transform 0.6s ease-in-out; }
.explore.in-view .explore__track { transform: none; }
.explore__item { flex: 0 0 17.5rem; padding: 0 1.875rem 1.25rem 0; }
.explore-tile { position: relative; display: block; width: 15.625rem; height: 15.625rem; overflow: hidden; border-radius: 0.9375rem; box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.184); text-decoration: none; }
.explore-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease-in-out; }
.explore-tile::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 60%; background: linear-gradient(transparent, #000); opacity: 0.7; }
.explore-tile__title { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 1.25rem; color: var(--fs-card); font-family: var(--font-display); font-size: 1.625rem; font-weight: 700; line-height: 1; text-align: center; }
.explore-tile:hover img { transform: scale(1.05); }
@media (max-width: 991px) { .explore__track { justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; } .explore__track::-webkit-scrollbar { display: none; } .explore__item { scroll-snap-align: start; } }
@media (max-width: 767px) { .explore__item { flex-basis: 14.375rem; padding-right: 1.25rem; } .explore-tile { width: 13.125rem; height: 13.125rem; } }

/* ================= Related-stories band (.stories-carousel) ================= */
.related { margin: 0; padding: 4.6875rem 0; overflow: hidden; background: var(--fs-tint-band); }
.related__title { margin: 0 0 2.5rem; padding: 0 1.25rem; color: var(--fs-warm); font-family: var(--font-display); font-size: var(--fs-h2); font-weight: 700; line-height: 1.1; text-align: center; }
.related__carousel { position: relative; padding-left: 11.25rem; }
.related__swiper { overflow: visible; }
.related__swiper::before { content: ""; position: absolute; right: -5.3125rem; top: -25%; z-index: 3; width: 10rem; height: 150%; background: radial-gradient(closest-side, var(--fs-tint-band) 0, transparent 100%); opacity: 0.6; pointer-events: none; }
.related .swiper-slide { width: 20.1875rem; height: auto; padding: 0 1.875rem 2.1875rem 0; }
.related__controls { position: absolute; left: 4.6875rem; top: 50%; z-index: 4; display: flex; flex-direction: column-reverse; gap: 1rem; transform: translateY(-50%); }
.related__arrow { position: relative; width: 3.125rem; height: 3.125rem; padding: 0; border: 0; border-radius: 1.5625rem; background: rgba(136, 125, 114, 0.21); cursor: pointer; transition: background 0.3s ease-in-out; }
.related__arrow::before { content: ""; position: absolute; inset: 0; margin: auto; width: 1.3rem; height: 1rem; background: var(--fs-warm); transition: background 0.3s; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.related__arrow--prev::before { transform: scaleX(-1); }
.related__arrow:hover { background: rgba(136, 125, 114, 0.35); }
.related__arrow:hover::before { background: #fff; }
.related__arrow.swiper-button-disabled { opacity: 0.5; cursor: default; }
.related__more { margin: 1.875rem 0 0; padding: 0 1.25rem; text-align: center; }
/* in-content red variant */
.related--red { margin-bottom: 3.125rem; background: var(--fs-red); }
.related--red .related__title { color: #fff; }
.related--red .related__swiper::before { background: radial-gradient(closest-side, var(--fs-red) 0, transparent 100%); }
.related--red .related__arrow { background: rgba(255, 255, 255, 0.18); }
.related--red .related__arrow::before { background: #fff; }
.related--red .related__arrow:hover { background: rgba(255, 255, 255, 0.32); }
@media (max-width: 767px) {
  .related { padding: 2.8125rem 0; }
  .related--red { background: var(--cream); } .related--red .related__title { color: var(--fs-warm); }
  .related--red .btn--on-red { color: var(--fs-text); } .related--red .btn--on-red::before { border-color: var(--fs-line); } .related--red .btn--on-red .icon { background: var(--fs-warm); }
  .related--red .related__arrow { background: rgba(136, 125, 114, 0.21); } .related--red .related__arrow::before { background: var(--fs-warm); }
  .related__carousel { display: flex; flex-direction: column; padding-left: 1.25rem; }
  .related__controls { position: static; order: 2; flex-direction: row; justify-content: flex-end; gap: 0.75rem; margin: 0 1.25rem 0 0; transform: none; }
  .related .swiper-slide { width: 17.5rem; padding-right: 1.25rem; }
}

/* Story card */
.story-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: 0.9375rem; background: var(--fs-card); box-shadow: var(--fs-shadow); color: var(--fs-text); text-decoration: none; }
.story-card__image { position: relative; display: block; height: 15rem; overflow: hidden; background: var(--fs-tint-rows); }
.story-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease-in-out; }
.story-card__image::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 70%; background: linear-gradient(179deg, transparent, #000); opacity: 0.81; }
.story-card__channel { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; gap: 0.75rem; padding: 0.8125rem 1.125rem; color: #fff; font-size: clamp(0.9375rem, 0.879808rem + 0.120192vw, 1rem); font-weight: 500; }
.story-card__channel-icon { width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #fff url("../assets/ndc-emblem.png") center / 78% no-repeat; flex: none; }
.story-card__content { display: flex; flex: 1; flex-direction: column; justify-content: space-between; padding: 1.0625rem 1.25rem; }
.story-card__text { margin-bottom: 0.9375rem; font-size: clamp(0.9375rem, 0.822115rem + 0.240385vw, 1.0625rem); line-height: 1.23; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; transition: color 0.3s; }
.story-card__text strong { font-weight: 700; }
.story-card__date { font-size: clamp(0.875rem, 0.817308rem + 0.120192vw, 1rem); line-height: 1; opacity: 0.85; }
.story-card:hover .story-card__image img { transform: scale(1.03); }
.story-card:hover .story-card__text { color: var(--fs-red-hover); }
.story-card--masonry .story-card__image { height: auto; }
.story-card--masonry .story-card__image img { height: auto; }
@media (max-width: 767px) { .story-card__channel { padding: 0.75rem 1rem; } }

/* ================= FAQ accordion (.accordion-container) ================= */
.accordion { margin-bottom: 0.9375rem; overflow: hidden; border-radius: 0 0 0.4375rem 0.4375rem; box-shadow: 3px 3px 20px rgba(149, 137, 125, 0.25); }
.accordion__link { position: relative; display: block; width: 100%; padding: 0.9375rem 5.9375rem 0.9375rem 1.75rem; border: 0.1875rem solid var(--fs-blue-border); border-radius: 0.4375rem; background: var(--fs-blue); color: var(--fs-card); cursor: pointer; font: inherit;
  font-size: clamp(1.125rem, 0.894231rem + 0.480769vw, 1.375rem); font-weight: 700; line-height: 1.13; text-align: left; transition: 0.3s ease-in-out; }
.accordion:hover .accordion__link { background: var(--fs-blue-hover); border-color: var(--fs-blue); }
.accordion__chevron { position: absolute; right: 1.25rem; top: 50%; width: 1.2rem; height: 1.2rem; transform: translateY(-50%); }
.accordion__chevron::before { content: ""; position: absolute; inset: 0; background: var(--fs-card); transform: rotate(90deg);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 1l7 7-7 7-1.4-1.4L9.2 8 3.6 2.4z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 1l7 7-7 7-1.4-1.4L9.2 8 3.6 2.4z'/%3E%3C/svg%3E") center / contain no-repeat; }
.accordion.is-active .accordion__chevron::before { transform: rotate(-90deg); }
.accordion__panel { overflow: hidden; border-radius: 0 0 0.4375rem 0.4375rem; background: var(--fs-card); }
.accordion__inner { padding: 0.9375rem 1.75rem 1.375rem; color: var(--fs-text); font-size: clamp(1rem, 0.769231rem + 0.480769vw, 1.25rem); line-height: 1.25; }
.accordion__inner p { font-size: inherit; margin-bottom: 1rem; } .accordion__inner > :last-child { margin-bottom: 0; }
@media (max-width: 767px) { .accordion__link { padding: 0.9375rem 3.4375rem 0.9375rem 1.25rem; } .accordion__inner { padding: 0.9375rem 1.25rem; } }

/* ================= Tables ================= */
.table-section { padding: 2.8125rem 1.25rem 2.5rem; scroll-margin-top: 2rem; }
.table-section__inner { max-width: 62rem; margin: 0 auto; }
.table-wrap { margin: 0 0 1rem; overflow-x: auto; }
.table-wrap table { width: 100%; border: 0.125rem solid rgba(162, 150, 139, 0.52); border-collapse: separate; border-spacing: 0; border-radius: 0.4375rem; overflow: hidden; }
.table-wrap th, .table-wrap td { padding: 0.9375rem 1.125rem; border-bottom: 0.125rem solid var(--fs-line); border-right: 0.125rem solid var(--fs-line); text-align: left; vertical-align: top; }
.table-wrap thead th { background: rgba(162, 150, 139, 0.3); font-size: 1.375rem; font-weight: 500; line-height: 1.13; padding: 0.875rem 1.125rem; }
.table-wrap tbody th { font-weight: 500; }
.table-wrap td, .table-wrap tbody th { font-size: 1.25rem; line-height: 1.25; min-width: 10rem; }
.table-wrap tr > :last-child { border-right: 0; }
.table-wrap tbody tr:last-child > * { border-bottom: 0; }
@media (max-width: 767px) { .table-wrap td, .table-wrap tbody th, .table-wrap thead th { min-width: 14.375rem; } }

/* ================= Enquiry form (contact template .ctForm) ================= */
.enquiry { padding: 2.5rem 0; background: var(--fs-tint-form); scroll-margin-top: 1rem; }
.enquiry__inner { max-width: 83.75rem; margin: 0 auto; padding: 0 1.875rem; }
.enquiry__head { max-width: 46.25rem; margin: 0 auto 1.875rem; text-align: center; }
.enquiry__head p { margin-bottom: 0; }
.enquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.875rem; }
.enquiry-form__column { display: grid; align-content: start; }
.field { position: relative; margin-bottom: 1.875rem; }
.field input, .field select { display: block; width: 100%; height: 3.125rem; padding: 0 1.25rem; border: 0.125rem solid var(--fs-line); border-radius: 0; background: var(--cream); color: var(--fs-text); font: inherit; font-size: 1.125rem; line-height: 3.25rem; transition: 0.3s ease-in-out; }
.field textarea { display: block; width: 100%; min-height: 8.75rem; padding: 1.25rem; border: 0.125rem solid var(--fs-line); border-radius: 0.4375rem; background: var(--cream); color: var(--fs-text); font: inherit; font-size: 1.125rem; resize: none; }
.field select { appearance: none; border-radius: 7px; padding-right: 2.5rem; cursor: pointer;
  background: var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23bf1d24' d='M1 5l7 7 7-7-1.4-1.4L8 9.2 2.4 3.6z'/%3E%3C/svg%3E") right 1rem center / 0.8rem no-repeat; }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--fs-blue); }
/* watermark labels sit inside the field and hide once the visitor types */
.field > label { position: absolute; left: 1.25rem; top: 0; color: var(--fs-text); font-size: 1.125rem; line-height: 3.25rem; pointer-events: none; transition: opacity 0.2s; }
.field--textarea > label { top: 1rem; line-height: 1.4; }
.field--required > label::after { content: " *"; color: var(--fs-red); }
.field input:focus + label, .field input:not(:placeholder-shown) + label, .field textarea:focus + label, .field textarea:not(:placeholder-shown) + label { opacity: 0; }
.field .field__select-label { position: static; display: block; margin-bottom: 0.4rem; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; line-height: 1.2; text-transform: uppercase; }
.field.is-invalid::before { content: ""; position: absolute; left: -0.9rem; top: 0; width: 0.625rem; height: 3.125rem; background: var(--fs-red); }
.field.is-invalid input { border-color: var(--fs-red); }
.field.is-invalid > label { color: var(--fs-red); }
.field__error { margin: 0.5rem 0 0; color: var(--fs-red); font-size: 0.95rem; font-weight: 600; }
.enquiry-form__footer { grid-column: 1 / -1; display: grid; justify-items: center; gap: 1rem; }
.enquiry-form__submit { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; width: 100%; max-width: 14.9375rem; padding: 1.0625rem 0; border: 0.125rem solid var(--fs-red-border); border-radius: 0.4375rem; background: var(--fs-red); color: var(--fs-card); cursor: pointer; font: inherit; font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.09375rem; text-transform: uppercase; transition: background 0.3s ease-in-out; }
.enquiry-form__submit .icon { width: 0.7rem; height: 0.7rem; background: var(--fs-card); }
.enquiry-form__submit:hover { background: var(--fs-red-hover); }
.enquiry-form__status { margin: 0; min-height: 1.4em; color: var(--fs-red); font-weight: 600; text-align: center; }
.enquiry-form.is-sent .enquiry-form__status { color: #2f6b3a; }
.enquiry-form__note { margin: 0; color: var(--fs-warm); font-size: 0.9rem; text-align: center; }
@media (max-width: 1150px) { .enquiry-form { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .enquiry__inner { padding: 0 1.25rem; } }

/* ================= Recruiter logos ================= */
.logo-wall { margin: 0; padding: 4.375rem 1.25rem; background: var(--fs-tint-band); }
.logo-wall .section-title { color: var(--fs-warm); }
.logo-wall__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; max-width: 70rem; margin: 0 auto; padding: 0; list-style: none; }
.logo-wall__list li { display: grid; place-items: center; width: 13rem; height: 6.5rem; padding: 1rem 1.5rem; border-radius: 0.9375rem; background: #fff; box-shadow: var(--fs-shadow); }
.logo-wall__list img { max-height: 3.25rem; width: auto; }

/* ================= Events (.event-list-item) ================= */
.events { padding: 3.75rem 1.25rem 2.5rem; }
.events__list { max-width: 56rem; margin: 0 auto; padding: 0; list-style: none; }
.event-item { margin-bottom: 1.25rem; overflow: hidden; border-radius: 0.9375rem; background: rgba(96, 124, 157, 0.12); }
.event-item__link { position: relative; display: flex; align-items: stretch; color: var(--fs-text); text-decoration: none; }
.event-item__date { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 4.375rem; padding: 0.75rem 0; background: var(--fs-blue); color: var(--fs-card); text-align: center; transition: background 0.3s; }
.event-item__day { font-family: var(--font-display); font-size: clamp(1.5625rem, 1.33654rem + 0.480769vw, 1.875rem); font-weight: 700; line-height: 1; }
.event-item__month { margin-top: 0.2rem; font-size: clamp(0.875rem, 0.759615rem + 0.240385vw, 1.0625rem); font-weight: 700; text-transform: uppercase; }
.event-item__year { font-size: 0.75rem; opacity: 0.85; }
.event-item__content { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: 0.35rem; padding: 0.8125rem 3.5rem 0.8125rem 1.25rem; }
.event-item__content::after { content: ""; position: absolute; right: 1.25rem; top: 50%; width: 1.1rem; height: 0.85rem; transform: translateY(-50%); background: var(--fs-blue); transition: right 0.3s, background 0.3s;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 16'%3E%3Cpath d='M0 7h17.2L11.6 1.4 13 0l8 8-8 8-1.4-1.4L17.2 9H0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.event-item__title { font-size: clamp(1.1875rem, 1.07212rem + 0.240385vw, 1.375rem); font-weight: 500; line-height: 1.13; transition: color 0.3s; }
.event-item__time { font-size: 1rem; line-height: 1.3; transition: color 0.3s; }
.event-item__link:hover .event-item__title, .event-item__link:hover .event-item__time { color: var(--fs-red); }
.event-item__link:hover .event-item__date { background: var(--fs-red); }
.event-item__link:hover .event-item__content::after { right: 0.9375rem; background: var(--fs-red); }
.event-item--featured .event-item__image { flex: 0 0 38%; height: 13rem; overflow: hidden; }
.event-item--featured .event-item__image img { width: 100%; height: 100%; object-fit: cover; }
.event-item--featured .event-item__title { font-size: clamp(1.1875rem, 0.826923rem + 0.961538vw, 1.9375rem); }
@media (max-width: 767px) { .event-item--featured .event-item__link { flex-wrap: wrap; } .event-item--featured .event-item__image { flex-basis: 100%; height: 11rem; } }

/* ================= News wall (media template): filter chips, masonry of story cards, load more ================= */
.news-wall { padding: 3.125rem 1.875rem 5rem 1.875rem; }
.news-wall__filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.625rem 1.25rem; max-width: 83.75rem; margin: 0 auto 2.5rem; padding: 1.25rem 1.875rem; border-radius: 0.4375rem; background: rgba(136, 125, 114, 0.3); }
.news-wall__label { color: #958977; font-size: 0.875rem; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; }
.filter { height: 3.125rem; padding: 0 1.4rem; border: 2px solid var(--fs-line); border-radius: 7px; background: var(--cream); color: #a2968a; cursor: pointer; font: inherit; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.65px; text-transform: uppercase; transition: 0.3s; }
.filter:hover { color: var(--fs-red); }
.filter.is-active { border-color: var(--fs-red); background: var(--fs-red); color: #fff; }
.news-wall__grid { max-width: 83.75rem; margin: 0 auto; padding: 0; list-style: none; columns: 16.5rem auto; column-gap: 1.25rem; }
.news-wall__grid > li { break-inside: avoid; margin-bottom: 1.25rem; }
.news-wall__grid > li[hidden] { display: none; }
.news-wall__more { margin-top: 1.875rem; text-align: center; }
.news-wall__more[hidden] { display: none; }
@media (max-width: 767px) { .news-wall { padding: 2rem 1.25rem 3.5rem; } .news-wall__filters { padding: 1rem; } }

/* ================= Contact (shared contact template) ================= */
.contact-info { padding: 2.5rem 0 1.875rem; }
.contact-info__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.875rem 3.75rem; max-width: 83.75rem; margin: 0 auto; padding: 0 1.875rem; }
.contact-info__inner > h2 { grid-column: 1 / -1; text-align: center; }
.office { font-style: normal; }
.office p { margin-bottom: 0.6rem; }
.contact-map { position: relative; height: 25rem; }
.contact-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.contact-map__container { position: relative; max-width: 83.75rem; height: 100%; margin: 0 auto; padding: 0 1.875rem; display: flex; justify-content: flex-end; align-items: center; pointer-events: none; }
.contact-map__box { width: 18.75rem; padding: 1.25rem 1.875rem 1.5rem; background: rgba(191, 29, 36, 0.8); color: #fafaf7; text-align: center; pointer-events: auto; }
.contact-map__name { margin: 0 0 0.6rem; font-family: var(--font-display); font-size: 2.25rem; font-weight: 700; line-height: 1.05; }
.contact-map__address { margin: 0 0 1rem; font-size: 1rem; line-height: 1.35; }
.contact-map__box a { color: #fff; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: underline 0.125rem var(--fs-peach); text-underline-offset: 0.2rem; }
@media (max-width: 600px) { .contact-map { height: auto; } .contact-map iframe { position: relative; height: 20rem; } .contact-map__container { padding: 0; } .contact-map__box { width: 100%; padding: 1.4375rem 1.25rem 1.875rem; } }

/* ================= Sitemap ================= */
.sitemap { padding: 3.75rem 1.25rem; }
.sitemap__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 2.5rem; max-width: 70rem; margin: 0 auto; }
.sitemap h2 { font-size: 2rem; text-align: left; margin-bottom: 1rem; }

@media (prefers-reduced-motion: reduce) {
  html.respect-reduced-motion .page-title, html.respect-reduced-motion .explore__track, html.respect-reduced-motion .split-row__media > img { transition: none; transform: none; opacity: 1; }
  html.respect-reduced-motion .loading-screen { display: none; }
}

/* The college logo is drawn in brand colours; over the hero shade and the red no-photo hero it is shown in
   white, as the reference shows its own logo on inner pages. */
.inner-page .header .module--header-logo img { filter: brightness(0) invert(1); }
