/* ==========================================================================
   Clark Theological College ? design system
   "Collegiate editorial": warm paper canvas, scholarly serif display
   (Fraunces) + newspaper-grotesque body (Libre Franklin), navy as
   structure, gold as precision accent. Built on Bootstrap 5, written
   from scratch. Class API preserved so every page restyles cohesively.
   ========================================================================== */

:root {
  /* ---- Brand ------------------------------------------------------------ */
  --ctc-navy:        #1a2e5a;
  --ctc-navy-700:    #15264a;
  --ctc-navy-dark:   #0f1d3a;   /* legacy token name, kept */
  --ctc-navy-900:    #0a142c;
  --ctc-gold:        #c9a84c;
  --ctc-gold-deep:   #a07e2c;   /* gold that passes contrast on paper */
  --ctc-gold-light:  #e7d196;
  --ctc-gold-soft:   #f3e7c4;

  /* Section titles (home + inner pages, e.g. Downloadable Forms). */
  --ctc-section-title-size: clamp(1.8rem, 1.6rem + 1.2vw, 2.4rem);
  /* Home page section h2s — 4px below --ctc-section-title-size. */
  --ctc-home-section-title-size: clamp(calc(1.8rem - 4px), calc(1.6rem + 1.2vw - 4px), calc(2.4rem - 4px));

  /* ---- Warm paper neutral system --------------------------------------- */
  --ctc-paper:       #faf7f0;   /* dominant page canvas */
  --ctc-paper-deep:  #f2ede0;   /* alternating sections */
  --ctc-surface:     #ffffff;   /* raised cards */
  --ctc-white:       #ffffff;   /* legacy token name, kept */
  --ctc-offwhite:    #f2ede0;   /* legacy token name, kept */
  --ctc-ink:         #1d2433;   /* body text */
  --ctc-text:        #1d2433;   /* legacy token name, kept */
  --ctc-muted:       #5b6477;
  --ctc-line:        #e4ddcc;   /* hairline on paper */
  --ctc-line-strong: #d4ccb6;

  /* ---- Type ------------------------------------------------------------- */
  --ff-display: 'Lora', Georgia, serif;
  --ff-sans:    'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-font-sans-serif: var(--ff-sans);
  --bs-body-font-family: var(--ff-sans);
  --bs-body-color: var(--ctc-ink);
  --bs-body-bg: var(--ctc-paper);
  --bs-link-color-rgb: 26, 46, 90;

  /* fluid modular scale */
  --t-eyebrow: .74rem;
  --t-sm:  clamp(.84rem, .81rem + .15vw, .92rem);
  --t-base: clamp(1rem, .97rem + .18vw, 1.075rem);
  --t-lead: clamp(1.1rem, 1.04rem + .35vw, 1.28rem);
  --t-h3:  clamp(1.25rem, 1.12rem + .6vw, 1.6rem);
  --t-h2:  clamp(1.7rem, 1.4rem + 1.5vw, 2.7rem);
  --t-h1:  clamp(2.1rem, 1.6rem + 2.6vw, 3.7rem);

  /* ---- Space ------------------------------------------------------------ */
  --space-section: clamp(3.25rem, 2.2rem + 4.6vw, 6.5rem);

  /* ---- Material --------------------------------------------------------- */
  --radius:    12px;
  --radius-sm: 8px;
  --shadow-sm: 0 1px 2px rgba(10, 20, 44, .05),
               0 3px 10px -4px rgba(10, 20, 44, .08);
  --shadow-md: 0 2px 6px rgba(10, 20, 44, .05),
               0 18px 40px -16px rgba(10, 20, 44, .22);
  --ease:      cubic-bezier(.22, 1, .36, 1);

  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: none;
}

body {
  font-family: var(--ff-sans);
  font-size: var(--t-base);
  line-height: 1.65;
  color: var(--ctc-ink);
  background-color: var(--ctc-paper);
  font-feature-settings: "kern", "liga", "cv11";
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  max-width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: none;
}

/* Faint paper grain for depth ? never noticeable, just felt. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .55;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
}

/* ---- Headings ----------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ff-display);
  font-weight: 600;
  line-height: 1.14;
  color: var(--ctc-navy);
  letter-spacing: -0.012em;
  font-optical-sizing: auto;
}

p { margin-bottom: 1rem; }

a {
  color: var(--ctc-navy);
  text-decoration: none;
  transition: color .18s var(--ease);
}
a:hover { color: var(--ctc-gold-deep); }

::selection { background: var(--ctc-gold-soft); color: var(--ctc-navy-900); }

:focus-visible {
  outline: 2px solid var(--ctc-gold-deep);
  outline-offset: 2px;
  border-radius: 3px;
}

img, svg, video, canvas, iframe { max-width: 100%; }

/* ---- Eyebrow + section head (used where markup allows) ------------------ */
.ctc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-family: var(--ff-sans);
  font-size: var(--t-eyebrow);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ctc-gold-deep);
  line-height: 1.15;
  margin-bottom: .7rem;
}

.text-center .ctc-eyebrow { justify-content: center; }

/* ---- Skip link ---------------------------------------------------------- */
.ctc-skip-link {
  position: absolute;
  left: .75rem;
  top: 0;
  z-index: 2000;
  transform: translateY(-160%);
  background: var(--ctc-gold);
  color: var(--ctc-navy-900);
  padding: .6rem 1.1rem;
  font-weight: 600;
  border-radius: 0 0 var(--radius-sm) 0;
}
.ctc-skip-link:focus { transform: none; }

/* ---- Topbar ------------------------------------------------------------- */
.ctc-topbar {
  background-color: var(--ctc-navy-900);
  color: rgba(255, 255, 255, .68);
  font-size: .8rem;
  letter-spacing: .01em;
  border-bottom: 1px solid rgba(201, 168, 76, .14);
}
.ctc-topbar a { color: rgba(255, 255, 255, .68); text-decoration: none; }
.ctc-topbar a:hover { color: var(--ctc-gold-light); }

/* ---- Navbar ------------------------------------------------------------- */
.ctc-navbar {
  background-color: var(--ctc-navy);
  padding-top: .85rem;
  padding-bottom: .85rem;
  box-shadow: 0 1px 0 rgba(201, 168, 76, .16);
  transition: padding .3s var(--ease), background-color .3s var(--ease),
              box-shadow .3s var(--ease);
}
.ctc-navbar.is-scrolled {
  padding-top: .5rem;
  padding-bottom: .5rem;
  background-color: var(--ctc-navy-900);
  box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .6),
              0 1px 0 rgba(201, 168, 76, .22);
}
.ctc-navbar .navbar-brand { display: flex; align-items: center; gap: .8rem; }
.ctc-navbar .navbar-brand img {
  height: 64px;
  width: auto;
  transition: height .3s var(--ease);
}
.ctc-navbar.is-scrolled .navbar-brand img { height: 58px; }
.ctc-navbar .navbar-brand .ctc-brand-text { color: #fff; line-height: 1.12; }
.ctc-navbar .navbar-brand .ctc-brand-text strong {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: block;
}
.ctc-navbar .navbar-brand .ctc-brand-text span {
  font-family: var(--ff-sans);
  font-size: .68rem;
  font-weight: 500;
  color: var(--ctc-gold-light);
  letter-spacing: .2em;
  text-transform: uppercase;
}
.ctc-navbar .nav-link {
  color: rgba(255, 255, 255, .82);
  font-size: .92rem;
  font-weight: 500;
  padding: .4rem .95rem;
  position: relative;
}
.ctc-navbar .nav-link::after {
  /* Gold mark lives on .ctc-nav-label::after (see home nav styles). */
  content: none;
}
.ctc-navbar .nav-link:hover,
.ctc-navbar .nav-link:focus,
.ctc-navbar .nav-link.active { color: #fff; }
.ctc-navbar .nav-link.dropdown-toggle::after {
  display: none !important;
}
.ctc-navbar .dropdown-chevron {
  width: 10px;
  height: 10px;
  display: inline-block;
  vertical-align: middle;
  transition: transform 0.25s ease;
}
.ctc-navbar .nav-link,
.ctc-navbar .dropdown-item {
  outline: none !important;
  box-shadow: none !important;
}
@media (min-width: 992px) {
  .ctc-navbar .nav-item.dropdown:hover > .dropdown-menu {
    display: block !important;
    margin-top: 0;
  }
  .ctc-navbar .nav-item.dropdown:hover .dropdown-chevron {
    transform: rotate(180deg);
  }
}
.ctc-navbar .dropdown-menu {
  border: none;
  border-top: 2px solid var(--ctc-gold);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  box-shadow: var(--shadow-md);
  padding: 0;
  margin-top: .35rem;
  background: var(--ctc-surface);
}
.ctc-navbar .dropdown-item {
  font-family: var(--ff-sans);
  font-size: .9rem;
  font-weight: 500;
  color: var(--ctc-ink);
  padding: .55rem .9rem;
  border-radius: 6px;
  transition: background-color .16s var(--ease), color .16s var(--ease),
              padding-left .16s var(--ease);
}
.ctc-navbar .dropdown-item:hover,
.ctc-navbar .dropdown-item:focus,
.ctc-navbar .dropdown-item.active {
  background-color: var(--ctc-paper-deep);
  color: var(--ctc-navy);
  padding-left: 1.15rem;
}
.ctc-navbar .dropdown-divider { border-color: var(--ctc-line); opacity: 1; }
.ctc-navbar .navbar-toggler {
  border: 1px solid rgba(255, 255, 255, .25);
  padding: .35rem .55rem;
}
.ctc-navbar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(201, 168, 76, .4); }

@media (max-width: 991.98px) {
  .ctc-navbar .navbar-collapse {
    margin-top: .85rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding-top: .5rem;
  }
  .ctc-navbar .nav-link::after { display: none; }
  .ctc-navbar .dropdown-menu {
    background: transparent;
    border-top: none;
    box-shadow: none;
    padding-left: 1rem;
  }
  .ctc-navbar .dropdown-item { color: rgba(255, 255, 255, .8); }
  .ctc-navbar .dropdown-item:hover,
  .ctc-navbar .dropdown-item:focus,
  .ctc-navbar .dropdown-item.active {
    background: transparent;
    color: var(--ctc-gold-light);
  }
}

/* ---- Interior page header band ------------------------------------------ */
.ctc-page-header {
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(201, 168, 76, .14) 0%, transparent 55%),
    linear-gradient(135deg, var(--ctc-navy) 0%, var(--ctc-navy-900) 100%);
  color: #fff;
  padding: clamp(2.6rem, 1.8rem + 3vw, 4.4rem) 0 clamp(2rem, 1.4rem + 2vw, 3rem);
  position: relative;
}
.ctc-page-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--ctc-gold) 0%, transparent 60%);
}
.ctc-page-header h1 {
  font-family: var(--ff-display);
  font-size: var(--t-h1);
  font-weight: 600;
  color: #fff;
  margin: .15rem 0 .4rem;
}
.ctc-page-header .lead { color: rgba(255, 255, 255, .72); font-size: var(--t-lead); }
.ctc-page-header .breadcrumb { margin-bottom: .65rem; font-size: .82rem; }
.ctc-page-header .breadcrumb-item,
.ctc-page-header .breadcrumb-item a {
  color: rgba(255, 255, 255, .65);
  text-decoration: none;
  font-weight: 500;
}
.ctc-page-header .breadcrumb-item a:hover { color: var(--ctc-gold-light); }
.ctc-page-header .breadcrumb-item.active { color: var(--ctc-gold-light); }
.ctc-page-header .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, .35);
  content: "\27f6";
}

/* ---- Sections & titles -------------------------------------------------- */
.ctc-section { padding: var(--space-section) 0; }

/* Hero → first content: drop stacked galhead + section + block padding. */
.ctc-galhead--compact {
  padding-bottom: clamp(1.4rem, 1rem + 1.2vw, 2rem);
}
.ctc-section--compact-top {
  padding-top: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem);
}
.ctc-section--compact-top > .container > .ctc-deptdir:first-child {
  padding-top: 0;
}

.ctc-section-title {
  font-family: var(--ff-display);
  font-size: var(--t-h2);
  color: var(--ctc-navy);
  font-weight: 600;
  letter-spacing: -0.016em;
  margin-bottom: 1.5rem;
}
/* Refined brand rule ? short, thin, deliberate (not a heavy underline). */
.ctc-section-title::after {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  background: var(--ctc-gold);
  margin-top: .85rem;
}
.ctc-section-title.text-center { margin-bottom: 1.7rem; }
.ctc-section-title.text-center::after { margin-left: auto; margin-right: auto; }
/* When a title follows an eyebrow inside .ctc-section-head, drop the rule. */

/* ---- Cards -------------------------------------------------------------- */
.ctc-card {
  position: relative;
  border: 1px solid var(--ctc-line);
  border-radius: var(--radius);
  background: var(--ctc-surface);
  box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease),
              border-color .35s var(--ease);
  height: 100%;
  overflow: hidden;
}
/* Gold keyline that draws across the top on hover. */
.ctc-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--ctc-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s var(--ease);
}
.ctc-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  border-color: var(--ctc-line-strong);
}
.ctc-card:hover::before { transform: scaleX(1); }
.ctc-card .card-title {
  font-family: var(--ff-display);
  font-weight: 600;
  color: var(--ctc-navy);
  letter-spacing: -0.01em;
}
.ctc-card .card-body { padding: 1.5rem; }
.ctc-card .stretched-link { color: var(--ctc-navy); font-weight: 600; }
.ctc-card .stretched-link .bi {
  transition: transform .25s var(--ease);
  display: inline-block;
}
.ctc-card:hover .stretched-link { color: var(--ctc-gold-deep); }
.ctc-card:hover .stretched-link .bi { transform: translateX(4px); }
.ctc-card .card-img-top { border-radius: 0; }

/* ---- Buttons ------------------------------------------------------------ */
.btn-ctc-primary,
.btn-ctc-outline {
  --bs-btn-padding-x: 1.5rem;
  --bs-btn-padding-y: .65rem;
  font-family: var(--ff-sans);
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: 7px;
  transition: transform .2s var(--ease), background-color .2s var(--ease),
              color .2s var(--ease), box-shadow .2s var(--ease);
}
.btn-ctc-primary {
  background-color: var(--ctc-gold);
  border: 1px solid var(--ctc-gold);
  color: var(--ctc-navy-900);
  box-shadow: 0 8px 20px -10px rgba(201, 168, 76, .8);
}
.btn-ctc-primary:hover,
.btn-ctc-primary:focus {
  background-color: var(--ctc-navy);
  border-color: var(--ctc-navy);
  color: #fff;
  transform: translateY(-2px);
}
.btn-ctc-outline {
  border: 1.5px solid var(--ctc-gold-deep);
  color: var(--ctc-gold-deep);
  background: transparent;
}
.btn-ctc-outline:hover,
.btn-ctc-outline:focus {
  background-color: var(--ctc-navy);
  border-color: var(--ctc-navy);
  color: #fff;
  transform: translateY(-2px);
}

/* On a dark band the outline button needs light strokes. */

/* ---- Badges ------------------------------------------------------------- */
.notification-badge {
  display: inline-block;
  background: transparent;
  color: var(--ctc-gold-deep);
  border: 1px solid var(--ctc-gold);
  font-size: .68rem;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 100px;
  text-transform: uppercase;
  letter-spacing: .07em;
}

/* ---- Gallery ------------------------------------------------------------ */
.ctc-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .85rem;
}
.ctc-gallery-grid a {
  display: block;
  overflow: hidden;
  border-radius: var(--radius-sm);
  aspect-ratio: 4 / 3;
  position: relative;
}
.ctc-gallery-grid a::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(10, 20, 44, .45) 100%);
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.ctc-gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s var(--ease);
}
.ctc-gallery-grid a:hover img { transform: scale(1.07); }
.ctc-gallery-grid a:hover::after { opacity: 1; }
@media (max-width: 575.98px) {
  .ctc-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---- Map strip (legacy base; refined later in the rebuild layer) -------- */
.ctc-map iframe {
  width: 100%;
  min-height: 340px;
  border: 0;
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  display: block;
}

/* ---- Rich text ---------------------------------------------------------- */
.ctc-richtext { line-height: 1.8; font-size: var(--t-base); color: var(--ctc-ink); }
.ctc-richtext h2,
.ctc-richtext h3,
.ctc-richtext h4 {
  font-family: var(--ff-display);
  color: var(--ctc-navy);
  margin-top: 2rem;
  margin-bottom: .65rem;
}
.ctc-richtext a { color: var(--ctc-navy); text-decoration: underline; }
.ctc-richtext a:hover { color: var(--ctc-gold-deep); }
.ctc-richtext img { border-radius: var(--radius-sm); margin: 1rem 0; }
.ctc-richtext blockquote {
  border-left: 3px solid var(--ctc-gold);
  padding: .35rem 0 .35rem 1.25rem;
  margin: 1.5rem 0;
  font-family: var(--ff-display);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--ctc-navy);
}

/* ---- Lightbox (used by gallery album via ctc.js) ------------------------ */
#ctcLightbox .modal-content {
  background: transparent;
  border: none;
}
#ctcLightbox .modal-body {
  padding: 0;
}
#ctcLightbox .modal-dialog {
  width: min(96vw, 1400px);
  max-width: none;
  margin: 1rem auto;
}
#ctcLightbox .modal-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
#ctcLightbox img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: calc(100vh - 5rem);
  height: auto;
  object-fit: contain;
  border-radius: var(--radius);
}
#ctcLightbox .ctc-lightbox-caption {
  color: rgba(255, 255, 255, .85);
  text-align: center;
  margin-top: .75rem;
  font-size: .9rem;
}
.ctc-lightbox-close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: rgba(0, 0, 0, .58);
  color: #fff;
  z-index: 2;
}
.ctc-lightbox-close:hover,
.ctc-lightbox-close:focus-visible {
  background: rgba(0, 0, 0, .78);
  color: #fff;
}
[data-lightbox-src] {
  cursor: zoom-in;
}

/* ---- Footer ------------------------------------------------------------- */
.ctc-footer {
  background: linear-gradient(135deg, #020712 0%, #030d24 100%);
  color: rgba(255, 255, 255, .68);
  padding: clamp(2.75rem, 2rem + 2.5vw, 4rem) 0 1.75rem;
  border-top: 3px solid var(--ctc-gold);
  font-size: .92rem;
}
.ctc-footer h5 {
  color: #fff;
  font-family: var(--ff-display);
  font-size: 1.12rem;
  margin-bottom: 1.15rem;
}
.ctc-footer p { color: rgba(255, 255, 255, .62); }
.ctc-footer a { color: rgba(255, 255, 255, .72); text-decoration: none; }
.ctc-footer a:hover { color: var(--ctc-gold-light); }
.ctc-footer ul { list-style: none; padding-left: 0; margin-bottom: 0; }
.ctc-footer ul li { margin-bottom: .6rem; }
.ctc-footer ul li a { position: relative; padding-left: 1rem; }
.ctc-footer ul li a::before {
  content: "?";
  position: absolute;
  left: 0;
  color: var(--ctc-gold);
}

/* ---- Utilities ---------------------------------------------------------- */

main#main-content { min-height: 50vh; }
.text-muted { color: var(--ctc-muted) !important; }
.text-white-50 { color: rgba(255, 255, 255, .7) !important; }
.alert { border-radius: var(--radius-sm); border: 1px solid var(--ctc-line); }

/* ---- Scroll reveal (progressive enhancement) ---------------------------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
  will-change: opacity, transform;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
[data-reveal][data-reveal-delay="1"] { transition-delay: .08s; }
[data-reveal][data-reveal-delay="2"] { transition-delay: .16s; }
[data-reveal][data-reveal-delay="3"] { transition-delay: .24s; }
[data-reveal][data-reveal-delay="4"] { transition-delay: .32s; }
[data-reveal][data-reveal-delay="5"] { transition-delay: .4s; }
.no-js [data-reveal],
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* ==========================================================================
   Mockup-matched home layout
   ========================================================================== */

:root {
  --ctc-home-navy: #06275a;
  --ctc-home-navy-2: #001f4d;
  --ctc-home-gold: #d9a63f;
  --ctc-home-ink: #051b44;
  --ctc-home-muted: #25314a;
  --ctc-home-line: #e8dfcd;
  --ctc-home-paper: #fffdf8;
  /* Shared vertical rhythm for homepage sections */
  --ctc-home-section-y: clamp(2.5rem, 2rem + 2.2vw, 3.75rem);
}

body {
  background: #fff;
  color: var(--ctc-home-muted);
}

.container {
  max-width: 1120px;
}

.ctc-topbar {
  min-height: 34px;
  background: var(--ctc-home-navy-2);
  border: 0;
  color: #fff;
  font-size: 14px;
}

.ctc-topbar .container {
  display: flex;
  justify-content: flex-end;
}

.ctc-topbar__links {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 34px;
}

.ctc-topbar a {
  color: #fff;
  line-height: 1;
  text-decoration: none;
}

.ctc-topbar a:hover {
  color: var(--ctc-home-gold);
}

.ctc-navbar,
.ctc-navbar.is-scrolled {
  position: relative;
  top: auto;
  background: #fff;
  border-bottom: 1px solid #d9dde6;
  box-shadow: 0 2px 10px rgba(8, 25, 60, .08);
  padding: 10px 0;
}

.ctc-navbar .navbar-brand {
  gap: 16px;
  text-decoration: none;
}

.ctc-navbar .navbar-brand img,
.ctc-navbar.is-scrolled .navbar-brand img {
  height: 64px;
  width: auto;
}

.ctc-navbar .navbar-brand .ctc-brand-text {
  display: flex;
  align-items: center;
  gap: 15px;
  color: var(--ctc-home-ink);
  line-height: 1;
}

.ctc-navbar .navbar-brand .ctc-brand-text strong {
  max-width: 280px;
  font-size: 24px;
  font-weight: 600;
  color: var(--ctc-home-navy-2);
  line-height: 1.15;
}

.ctc-navbar .nav-link {
  color: #111827;
  font-size: 12px;
  font-weight: 700;
  padding: 7px 8px;
  white-space: nowrap;
}

.ctc-navbar .nav-link:hover,
.ctc-navbar .nav-link:focus,
.ctc-navbar .nav-link.active {
  color: var(--ctc-home-navy);
}

.ctc-navbar .dropdown-menu {
  border: 1px solid #e2e6ef;
  border-radius: 4px;
  margin-top: 12px;
  padding: 0;
}

.ctc-navbar .dropdown-item {
  border-radius: 4px;
  font-size: 13px;
}

.ctc-home-hero {
  position: relative;
  min-height: 342px;
  overflow: hidden;
  background: var(--ctc-home-navy-2);
}

.ctc-home-hero__image {
  position: absolute;
  inset: 0;
  background-image: url("../img/hero-main.e12ec251c22a.jpeg");
  background-size: cover;
  background-position: center right;
}

.ctc-home-hero__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(0, 31, 77, .94) 0%,
      rgba(0, 31, 77, .88) 22%,
      rgba(0, 31, 77, .62) 42%,
      rgba(0, 31, 77, .28) 62%,
      rgba(0, 31, 77, .08) 78%,
      rgba(0, 31, 77, 0) 100%
    ),
    linear-gradient(180deg, rgba(0, 31, 77, .18) 0%, rgba(0, 31, 77, .05) 40%, rgba(0, 31, 77, .22) 100%);
}

.ctc-home-hero__inner {
  position: relative;
  min-height: 342px;
  display: flex;
  align-items: center;
}

.ctc-home-hero__copy {
  width: 44%;
  padding-left: 0;
  transform: translateY(14px);
}

.ctc-home-kicker {
  margin: 0 0 18px;
  color: var(--ctc-home-navy-2);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.ctc-home-hero h1 {
  margin: 0 0 18px;
  color: #fff;
  font-size: 42px;
  font-weight: 700;
  line-height: 1.04;
}

.ctc-home-hero h1 span {
  color: var(--ctc-home-gold);
}

.ctc-home-hero__lead {
  max-width: 375px;
  margin: 0 0 24px;
  color: rgba(255, 255, 255, .88);
  font-size: 16px;
  line-height: 1.55;
}

.ctc-home-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 45px;
  padding: 0 21px;
  border-radius: 3px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.ctc-home-btn--primary {
  background: var(--ctc-home-navy-2);
  color: #fff;
}

.ctc-home-btn--primary:hover {
  color: #fff;
  background: #0a336f;
}

.ctc-home-btn--outline {
  /* Inherit the base 45px height so the outline button matches the primary
     button beside it at every width (the desktop query bumps both to 50px).
     A stray 35px here left "Admission" shorter than "Know More" below 992px. */
  border: 1px solid var(--ctc-home-navy);
  color: var(--ctc-home-navy);
  background: #fff;
}

.ctc-home-btn--outline:hover {
  color: #fff;
  background: var(--ctc-home-navy);
}

.ctc-home-stats {
  color: var(--ctc-home-navy-2);
  position: relative;
}

/* Full-bleed divider — spans the section (full viewport width) without 100vw,
   which includes the scrollbar gutter and causes horizontal page scroll. */
.ctc-home-stats::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: rgba(0, 31, 77, .12);
  pointer-events: none;
}

.ctc-home-stats__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  min-height: 89px;
}

.ctc-home-stat {
  display: flex;
  align-items: center;
  gap: 17px;
  padding: 18px 20px;
  border-left: 1px solid rgba(0, 31, 77, .12);
}

.ctc-home-stat:first-child {
  border-left: 0;
}

.ctc-home-stat i {
  color: var(--ctc-home-gold);
  font-size: 35px;
}

.ctc-home-stat strong {
  display: block;
  color: var(--ctc-home-navy-2);
  font-size: 23px;
  line-height: 1;
}

.ctc-home-stat span {
  display: block;
  margin-top: 5px;
  color: var(--ctc-home-navy-2);
  font-size: 12px;
  line-height: 1.2;
}

.ctc-home-intro {
  padding: 80px 0;
  background-color: #ffffff !important;
}

.ctc-home-intro__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 48px;
  align-items: center;
}

.ctc-home-welcome {
  padding: 0;
}

.ctc-home-welcome h2,
.ctc-home-why h2 {
  margin: 0 0 24px;
  color: var(--ctc-home-navy-2);
  font-size: 27px;
  font-weight: 700;
  line-height: 1.1;
}

.ctc-home-welcome h2 {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ctc-home-welcome p {
  margin: 0 0 32px;
  color: #1f2937;
  font-size: 14px;
  line-height: 1.72;
}

.ctc-home-value-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.ctc-home-value-grid div {
  text-align: center;
}

.ctc-home-value-grid i {
  display: block;
  margin-bottom: 8px;
  color: var(--ctc-home-gold);
  font-size: 27px;
}

.ctc-home-value-grid span {
  display: block;
  color: var(--ctc-home-navy-2);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}

.ctc-home-campus-card {
  padding-top: 21px;
}

.ctc-home-campus-card img {
  display: block;
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: 6px;
}

.ctc-home-panels {
  overflow: hidden;
}

.ctc-ticker-bar {
  background: #ffffff;
  border-bottom: 1px solid var(--ctc-line, #e4ddd3);
  color: var(--ctc-navy-900, #0a142c);
  padding: 10px 0;
  overflow: hidden;
  max-width: 100%;
}

.ctc-ticker-bar--navy {
  background: var(--ctc-navy-900, #0a142c);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.ctc-ticker-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.ctc-ticker-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: transparent;
  color: var(--ctc-home-gold, #d9a63f);
  border: 1px solid var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: .35rem .85rem;
  border-radius: 999px;
  flex-shrink: 0;
  line-height: 1.2;
  white-space: nowrap;
}

.ctc-ticker-badge i {
  font-size: .85rem;
  line-height: 1;
  color: inherit;
}

.ctc-ticker-content {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}

.ctc-ticker-link {
  display: block;
  overflow: hidden;
  max-width: 100%;
  color: var(--ctc-navy, #1a2e5a);
  font-family: var(--ff-sans);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}

.ctc-ticker-link:hover {
  color: var(--ctc-home-gold-deep, #a07e2c);
}

.ctc-ticker-marquee {
  display: block;
  overflow: hidden;
  width: 100%;
  min-width: 0;
}

.ctc-ticker-marquee__track {
  display: inline-block;
  width: max-content;
  max-width: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  white-space: nowrap;
}

.ctc-ticker-marquee__item {
  display: inline-block;
  white-space: nowrap;
}

.ctc-ticker-marquee.is-static .ctc-ticker-marquee__track {
  display: block;
  width: auto;
  max-width: 100%;
}

.ctc-ticker-marquee.is-static .ctc-ticker-marquee__item {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  .ctc-ticker-marquee__track {
    display: block;
    width: auto;
    max-width: 100%;
    transform: none !important;
  }

  .ctc-ticker-marquee__item {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

.ctc-ticker-bar--navy .ctc-ticker-badge {
  background: transparent;
  border-color: var(--ctc-home-gold, #d9a63f);
  color: var(--ctc-home-gold, #d9a63f);
}

.ctc-ticker-bar--navy .ctc-ticker-link {
  color: rgba(255, 255, 255, 0.95);
}

.ctc-ticker-bar--navy .ctc-ticker-link:hover {
  color: var(--ctc-home-gold, #d9a63f);
}

.ctc-home-panels__split {
  display: grid;
  grid-template-columns: 40% 60%;
}

.ctc-home-panels__left-col {
  background:
    radial-gradient(90% 130% at 50% -25%, rgba(217, 166, 63, .2), transparent 60%),
    linear-gradient(160deg, #06275a 0%, #001f4d 55%, #00112e 100%);
  display: flex;
  justify-content: flex-end;
}

.ctc-home-panels__right-col {
  background: #ffffff;
  display: flex;
  justify-content: flex-start;
  border-left: 1px solid var(--ctc-home-line, #e6eaf1);
}

.ctc-home-panel-inner {
  width: 100%;
  max-width: 660px;
  padding: 64px 24px;
  box-sizing: border-box;
}

.ctc-home-panel-inner--right {
  max-width: 100%;
  padding-right: 24px;
}

.ctc-home-panel-inner--left h2 {
  color: #ffffff !important;
}

.ctc-home-panel-inner--left .ctc-home-panel__head > a {
  color: rgba(255, 255, 255, 0.65);
}

.ctc-home-panel-inner--left .ctc-home-panel__head > a:hover {
  color: var(--ctc-home-gold);
}

/* Eyebrow spacing fix inside panel heads */
.ctc-home-panel__head .ctc-eyebrow {
  margin-bottom: .25rem;
}

.ctc-eyebrow--light {
  color: var(--ctc-home-gold);
}

.ctc-home-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
}

.ctc-home-panel__head > a {
  color: var(--ctc-home-navy-2);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  flex-shrink: 0;
  padding-top: 4px;
}

.ctc-home-panel__head > a:hover {
  color: var(--ctc-home-gold);
}

.ctc-home-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: start;
}

.ctc-home-panel__head > a {
  color: var(--ctc-home-navy-2);
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
}

.ctc-home-notice-list {
  display: flex;
  flex-direction: column;
}

.ctc-home-notice-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
  color: #fff;
  text-decoration: none;
  transition: gap .18s ease;
}

.ctc-home-notice-item:last-of-type {
  border-bottom: 0;
}

.ctc-home-notice-item:hover {
  gap: 20px;
}

.ctc-home-notice-item__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ctc-home-notice-item__label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ctc-home-gold);
}

.ctc-home-notice-item__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: rgba(255,255,255,.9);
  font-family: var(--ff-sans);
  font-size: 14px;
  font-weight: 400; /* regular ? user-chosen 2026-07-09 */
  line-height: 1.35;
}

.ctc-home-notice-item:hover .ctc-home-notice-item__title,
.ctc-home-panel__head > a:hover {
  color: var(--ctc-home-gold);
}

.ctc-home-event {
  display: flex !important;
  align-items: stretch;
  gap: 14px;
  min-height: 0 !important;
  padding: 14px 0 !important;
  border-bottom: 1px solid var(--ctc-home-line) !important;
}

.ctc-home-event__media {
  flex-shrink: 0;
  width: 130px;
  height: 100%;
  min-height: 80px;
  align-self: center;
  border-radius: 8px;
  overflow: hidden;
  background: var(--ctc-paper-deep);
}

.ctc-home-event__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ctc-home-event__media-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--ctc-line-strong);
  font-size: 20px;
}

.ctc-home-event__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ctc-home-event__label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ctc-home-gold);
}

.ctc-home-event__title {
  color: var(--ctc-home-navy-2);
  font-family: var(--ff-display);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ctc-home-event__excerpt {
  font-size: 13px;
  color: var(--ctc-muted);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ctc-home-event:hover .ctc-home-event__title {
  color: var(--ctc-home-gold);
}

.ctc-home-why {
  padding: var(--ctc-home-section-y) 0;
  background: linear-gradient(160deg, #001a42 0%, #000c24 100%);
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.ctc-home-why h2 {
  font-family: var(--ff-display);
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.015em;
}

.ctc-home-why__row {
  display: flex;
}

.ctc-home-why__item {
  flex: 1 1 0%;
  display: flex;
  flex-direction: column;
  padding-left: 24px;
  padding-right: 24px;
}

.ctc-home-why__item:first-child {
  padding-left: 0;
}

.ctc-home-why__icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-bottom: 14px;
  border: 1.5px solid var(--ctc-home-gold);
  border-radius: 50%;
  color: var(--ctc-home-gold);
  background: transparent;
}

.ctc-home-why__icon-wrap i {
  font-size: 20px;
  line-height: 1;
}

.ctc-home-why__item-body strong {
  display: block;
  color: #fff;
  font-family: var(--ff-sans);
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 4px;
  letter-spacing: 0.01em;
}

.ctc-home-why__item-body span {
  display: block;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.78rem;
  line-height: 1.45;
}

@media (min-width: 992px) {
  .ctc-home-why__item {
    border-right: 1px solid rgba(255, 255, 255, 0.12);
  }
  .ctc-home-why__item:last-child {
    border-right: none;
  }
}

@media (max-width: 991.98px) {
  .ctc-home-why {
    padding: 40px 0;
  }
  .ctc-home-why h2 {
    margin-bottom: 20px;
  }
  .ctc-home-why__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .ctc-home-why__item {
    padding: 0;
    border-right: none;
  }
}

@media (max-width: 575.98px) {
  .ctc-home-why__row {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.ctc-footer {
  margin-top: 0;
  padding: 56px 0 0;
  border-top: 0;
  background: linear-gradient(160deg, #030d24 0%, #010614 100%);
  color: rgba(255,255,255,.76);
}

.ctc-footer__main {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 48px;
  padding: 0 0 40px;
}

.ctc-footer__brand-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.ctc-footer__brand-head img {
  border-radius: 6px;
}

.ctc-footer__brand-head strong {
  display: block;
  color: #fff;
  font-family: var(--ff-display);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
}

.ctc-footer__brand-head span {
  display: block;
  margin-top: 4px;
  color: var(--ctc-home-gold);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.ctc-footer p {
  max-width: 450px;
  margin: 0 0 20px;
  color: rgba(255,255,255,.82);
  font-size: 12px;
  line-height: 1.65;
}

.ctc-footer__social {
  display: flex;
  gap: 12px;
}

.ctc-footer__social a {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  transition: border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}

.ctc-footer__social a:hover {
  color: var(--ctc-navy-900);
  background: var(--ctc-home-gold);
  border-color: var(--ctc-home-gold);
}

.ctc-footer__col {
  padding-left: 40px;
  border-left: 0;
}

.ctc-footer h5 {
  display: flex;
  align-items: center;
  gap: .6rem;
  position: relative;
  margin: 0 0 16px;
  color: var(--ctc-home-gold);
  font-family: var(--ff-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ctc-footer h5 i {
  font-size: 1.2em;
}

.ctc-footer nav a {
  display: block;
  margin-bottom: 14px;
  color: rgba(255,255,255,.82);
  font-size: 15px;
  text-decoration: none;
  transition: color .16s var(--ease);
}

.ctc-footer nav a:hover,
.ctc-footer__bottom a:hover {
  color: var(--ctc-home-gold);
}

.ctc-footer__policies {
  display: flex;
  flex-wrap: wrap;
  gap: 1.75rem;
  padding-bottom: 24px;
}

.ctc-footer__policies span {
  position: relative;
  color: rgba(255,255,255,.78);
  font-size: 13px;
}

.ctc-footer__policies span:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 2px;
  right: -.9rem;
  width: 1px;
  height: 12px;
  background: rgba(255,255,255,.28);
}

.ctc-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 20px 0;
  border-top: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.72);
  font-size: 12px;
}

.ctc-footer__bottom a {
  color: rgba(255,255,255,.72);
  text-decoration: none;
}

.ctc-footer__credit {
  color: var(--ctc-home-gold) !important;
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .ctc-navbar,
  .ctc-navbar.is-scrolled {
    padding: 14px 0;
  }

  .ctc-navbar .navbar-brand .ctc-brand-text strong {
    font-size: 16px;
  }

  .ctc-navbar .navbar-collapse {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #e6eaf1;
  }

  .ctc-navbar .dropdown-menu {
    box-shadow: none;
  }

  .ctc-home-hero__copy {
    width: 62%;
    padding-left: 0;
  }

  .ctc-home-stats__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ctc-home-intro__grid,
.ctc-footer__main {
    grid-template-columns: 1fr;
  }

  .ctc-home-welcome,
.ctc-home-why h2,
.ctc-footer__main,
.ctc-footer__bottom {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
  }

  .ctc-footer__col {
    border-left: 0;
    padding-left: 0;
  }

  .ctc-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 575.98px) {
  .ctc-home-hero {
    min-height: 520px;
  }

  .ctc-home-hero__inner {
    align-items: flex-start;
    min-height: 520px;
    padding-top: 34px;
  }

  .ctc-home-hero__copy {
    width: 100%;
  }

  .ctc-home-hero h1 {
    font-size: 36px;
  }

  .ctc-home-stats__grid,
  .ctc-home-value-grid {
    grid-template-columns: 1fr;
  }

  .ctc-home-stat {
    border-left: 0;
    border-top: 1px solid rgba(0, 31, 77, .12);
  }

  .ctc-home-stat:first-child {
    border-top: 0;
  }
}

/* ==========================================================================
   Rebuild layer (2026-07) ? components for the scraped-content site.
   Later rules override the legacy blocks above at equal specificity.
   ========================================================================== */

/* ---- Topbar: socials left, utility links right -------------------------- */
.ctc-topbar { display: block; }
.ctc-topbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 38px;
}
.ctc-topbar__social { display: flex; gap: .35rem; }
.ctc-topbar__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-size: .78rem;
  color: rgba(255, 255, 255, .75);
  transition: color .18s var(--ease), background .18s var(--ease);
}
.ctc-topbar__social a:hover {
  color: var(--ctc-navy-900);
  background: var(--ctc-gold-light);
}
.ctc-topbar__links { display: flex; gap: 1.35rem; }

/* External-link glyph in dropdowns */
.ctc-ext-icon { font-size: .68em; margin-left: .3em; opacity: .6; }

/* ---- Footer contact block ------------------------------------------------ */
.ctc-footer__contact { margin: 1rem 0 1.1rem; font-style: normal; }
.ctc-footer__contact p {
  display: flex;
  gap: .65rem;
  align-items: baseline;
  margin-bottom: .55rem;
  font-size: var(--t-sm);
}
.ctc-footer__contact i { color: var(--ctc-gold); flex: 0 0 auto; }
.ctc-footer__contact a { color: inherit; }

/* ---- Hero actions -------------------------------------------------------- */
.ctc-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.6rem;
}

.ctc-home-btn--gold {
  background: var(--ctc-gold);
  color: var(--ctc-navy-900);
  border: 1px solid var(--ctc-gold);
}
.ctc-home-btn--gold:hover {
  background: var(--ctc-gold-light);
  border-color: var(--ctc-gold-light);
  color: var(--ctc-navy-900);
}

/* ---- News cards ----------------------------------------------------------- */
.ctc-news-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
.ctc-news-grid--index { grid-template-columns: repeat(3, 1fr); }
.ctc-news-card {
  display: flex;
  flex-direction: column;
  background: var(--ctc-surface);
  border: 1px solid var(--ctc-line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.ctc-news-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.ctc-news-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--ctc-paper-deep);
}
.ctc-news-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s var(--ease);
}
.ctc-news-card:hover .ctc-news-card__media img { transform: scale(1.05); }
.ctc-news-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 2rem;
  color: var(--ctc-line-strong);
}
.ctc-news-card__body {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: 1.05rem 1.2rem 1.25rem;
}
.ctc-news-card__meta {
  font-size: var(--t-eyebrow);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ctc-gold-deep);
  margin: 0;
}
.ctc-news-card__body h3,
.ctc-news-card__body h2 {
  font-size: 1.06rem;
  line-height: 1.35;
  margin: 0;
}
.ctc-news-card__body h3 a,
.ctc-news-card__body h2 a {
  color: var(--ctc-navy);
  text-decoration: none;
}
.ctc-news-card__body h3 a:hover,
.ctc-news-card__body h2 a:hover { color: var(--ctc-gold-deep); }
.ctc-news-card__excerpt {
  font-size: var(--t-sm);
  color: var(--ctc-muted);
  margin: 0;
}

/* News index front page: one big lead story + compact list of recent
   stories beside it; older posts continue in the card grid below.
   The two featured columns stretch to equal height: the rail rows share
   the leftover space evenly so neither column trails dead air. */
.ctc-news-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.25rem;
  flex-wrap: wrap;
  padding-bottom: .95rem;
  border-bottom: 1px solid var(--ctc-line);
}
.ctc-news-toolbar .ctc-filter-chips { margin: 0; }
.ctc-news-toolbar__tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem 1.1rem;
}
/* Pill chrome comes from .ctc-notif-search; here it only needs sizing.
   A fixed width (not a flex basis) so the tools group's intrinsic width
   includes it fully and the count sits beside the pill without wrapping.
   Extra specificity beats .ctc-notif-search's own flex, defined later. */
.ctc-news-toolbar .ctc-news-search {
  flex: 0 0 auto;
  width: 300px;
  max-width: 100%;
  padding-block: .38rem;
}
.ctc-news-search__btn {
  display: inline-flex;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--ctc-muted);
  cursor: pointer;
}
.ctc-news-search__btn:hover { color: var(--ctc-navy); }
.ctc-news-toolbar__count a {
  color: var(--ctc-gold-deep);
  font-weight: 600;
  text-decoration: none;
}
.ctc-news-toolbar__count a:hover { text-decoration: underline; }
.ctc-news-toolbar__count {
  font-family: var(--ff-sans);
  font-size: var(--t-sm);
  color: var(--ctc-muted);
  white-space: nowrap;
  margin: 0;
}
.ctc-news-featured {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: clamp(1.25rem, 1rem + 1.5vw, 2rem);
}
.ctc-news-lead {
  display: flex;
  flex-direction: column;
  background: var(--ctc-surface);
  border: 1px solid var(--ctc-line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.ctc-news-lead:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.ctc-news-lead__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ctc-paper-deep);
}
.ctc-news-lead__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s var(--ease);
}
.ctc-news-lead:hover .ctc-news-lead__media img { transform: scale(1.04); }
.ctc-news-lead__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: .55rem;
  padding: 1.3rem 1.5rem 1.6rem;
}
.ctc-news-lead__badge {
  display: inline-block;
  background: var(--ctc-gold);
  color: var(--ctc-navy-900);
  border-radius: 3px;
  padding: .15rem .5rem;
  margin-right: .5rem;
}
.ctc-news-lead__title {
  font-size: clamp(1.3rem, 1.1rem + 1vw, 1.75rem);
  line-height: 1.3;
  margin: 0;
}
.ctc-news-lead__title a {
  color: var(--ctc-navy);
  text-decoration: none;
}
.ctc-news-lead__title a:hover { color: var(--ctc-gold-deep); }
.ctc-news-lead__excerpt {
  color: var(--ctc-muted);
  margin: 0;
}
.ctc-news-side {
  display: flex;
  flex-direction: column;
  height: 100%;
}
/* Each rail story takes an equal share of the lead card's height, so the
   hairline dividers space themselves evenly and the two columns bottom out
   together. */
.ctc-news-side__item {
  display: flex;
  flex: 1 1 0;
  gap: .9rem;
  align-items: center;
  padding-block: .9rem;
  border-bottom: 1px solid var(--ctc-line);
}
.ctc-news-side__item:first-child { padding-top: 0; }
.ctc-news-side__item:last-child { border-bottom: 0; padding-bottom: 0; }
.ctc-news-side__thumb {
  flex: 0 0 108px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: calc(var(--radius) - 4px);
  background: var(--ctc-paper-deep);
}
.ctc-news-side__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s var(--ease);
}
.ctc-news-side__item:hover .ctc-news-side__thumb img { transform: scale(1.06); }
.ctc-news-side__thumb .ctc-news-card__placeholder { font-size: 1.4rem; }
.ctc-news-side__body {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  min-width: 0;
}
.ctc-news-side__title {
  font-size: .98rem;
  line-height: 1.4;
  margin: 0;
}
.ctc-news-side__title a {
  color: var(--ctc-navy);
  text-decoration: none;
}
.ctc-news-side__title a:hover { color: var(--ctc-gold-deep); }
/* Labelled rule between the featured area and the older-stories grid. */
.ctc-news-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: clamp(1.9rem, 1.5rem + 1.6vw, 2.8rem) 0 1.5rem;
  font-family: var(--ff-sans);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ctc-muted);
}
.ctc-news-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--ctc-line);
}

/* ---- Bands: admissions / alumni ------------------------------------------ */
.ctc-admission-band {
  background:
    radial-gradient(120% 180% at 100% 0%, rgba(201, 168, 76, .18), transparent 55%),
    linear-gradient(120deg, var(--ctc-navy-900), var(--ctc-navy));
  color: #fff;
  padding: clamp(2.2rem, 2rem + 2vw, 3.6rem) 0;
}
.ctc-admission-band__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(2rem, 4vw, 4rem);
}
.ctc-admission-band__copy {
  flex: 1 1 380px;
  max-width: 560px;
}
.ctc-admission-band h2 {
  color: #fff;
  margin: 0;
  font-size: var(--t-h2);
}

.ctc-admission-band__details {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  flex: 1 1 420px;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(201, 168, 76, .3);
  border-radius: 14px;
  background: rgba(201, 168, 76, .06);
}
.ctc-admission-band--light .ctc-admission-band__details {
  border-color: #e3e8f0;
  background: #f7f9fc;
}
.ctc-admission-band__detail {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  width: 100%;
}
.ctc-admission-band__detail-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1.5px solid var(--ctc-gold-light);
  color: var(--ctc-gold-light);
  font-size: 16px;
}
.ctc-admission-band--light .ctc-admission-band__detail-icon {
  border-color: var(--ctc-home-gold);
  color: var(--ctc-home-gold);
}
.ctc-admission-band__detail span {
  display: block;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ctc-gold-light);
  margin-bottom: .3rem;
}
.ctc-admission-band__detail p {
  margin: 0;
  font-size: .95rem;
  font-weight: 400;
  line-height: 1.45;
}
.ctc-admission-band__detail strong { font-weight: 600; }
.ctc-admission-band--light .ctc-admission-band__detail span { color: var(--ctc-home-gold); }
.ctc-admission-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.2rem;
}
.ctc-alumni-band {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--ctc-home-navy-2) 0%, #00265c 60%, #002e6b 100%);
  border-top: none;
  border-bottom: none;
  padding: var(--ctc-home-section-y) 0;
  color: #fff;
}
.ctc-alumni-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 160% at 100% 0%, rgba(217, 166, 63, .16), transparent 55%);
  pointer-events: none;
}
.ctc-alumni-band__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 2.5rem;
  align-items: center;
}
.ctc-alumni-band__copy {
  position: relative;
  padding-left: 2.4rem;
}
.ctc-alumni-band__copy::before {
  content: "\201C";
  position: absolute;
  left: -.4rem;
  top: -2.2rem;
  font-family: var(--ff-display);
  font-size: 7rem;
  line-height: 1;
  color: var(--ctc-home-gold);
  opacity: .45;
}
.ctc-alumni-band .ctc-eyebrow { color: var(--ctc-home-gold); }
.ctc-alumni-band h2 { margin-bottom: .5rem; color: #fff; }
.ctc-alumni-band__text {
  color: rgba(255, 255, 255, .78);
  margin: 0;
  font-size: .95rem;
  line-height: 1.6;
}
.ctc-alumni-band__aside {
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 14px;
  padding: 1.6rem 1.8rem;
}
.ctc-alumni-band__note {
  color: rgba(255, 255, 255, .82);
  margin: 0 0 1.1rem;
  font-size: .92rem;
  line-height: 1.5;
}
.ctc-alumni-band__more {
  display: block;
  margin-top: .9rem;
  font-size: var(--t-sm);
  color: var(--ctc-home-gold);
}
.ctc-alumni-band__more:hover { color: #fff; }

/* ---- Chips / filters / pagination ---------------------------------------- */
.ctc-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ctc-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .9rem;
  border: 1px solid var(--ctc-line-strong);
  border-radius: 999px;
  background: var(--ctc-surface);
  color: var(--ctc-navy);
  font-size: var(--t-sm);
  font-weight: 500;
  text-decoration: none;
  transition: background .18s var(--ease), color .18s var(--ease);
}
.ctc-chip:hover { background: var(--ctc-gold-soft); color: var(--ctc-navy-900); }
.ctc-chip.is-active {
  background: var(--ctc-navy);
  border-color: var(--ctc-navy);
  color: #fff;
}
.ctc-pagination {
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: center;
  margin-top: 2.2rem;
}
.ctc-pagination__status { font-size: var(--t-sm); color: var(--ctc-muted); }

/* ---- Article (news post) --------------------------------------------------- */
.ctc-page-header--article h1.ctc-article-title {
  font-size: clamp(1.5rem, 1.05rem + 1.9vw, 2.4rem);
  max-width: 24ch;
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -.018em;
  text-wrap: balance;
}
.ctc-article-meta {
  font-size: var(--t-eyebrow);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: .5rem;
}
.ctc-page-header .ctc-article-meta,
.ctc-page-header .ctc-article-meta a { color: var(--ctc-gold-light); }
.ctc-notif-detail .ctc-article-meta { color: var(--ctc-gold-deep); }
/* Article reading layout lives in the "News article page" block at the end
   of this file (sidebar layout retired 2026-07-09). */

/* ---- Notifications table ---------------------------------------------------- */
.ctc-notif-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.4rem;
}
.ctc-notif-search {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex: 1 1 260px;
  max-width: 380px;
  background: var(--ctc-surface);
  border: 1px solid var(--ctc-line-strong);
  border-radius: 999px;
  padding: .45rem 1.1rem;
}
.ctc-notif-search i { color: var(--ctc-muted); }
.ctc-notif-search input {
  border: 0;
  outline: 0;
  background: transparent;
  width: 100%;
  font-size: var(--t-sm);
  color: var(--ctc-ink);
}
.ctc-tag {
  display: inline-block;
  padding: .12rem .6rem;
  border-radius: 999px;
  background: var(--ctc-gold-soft);
  color: var(--ctc-navy-900);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.ctc-notif-detail { max-width: 76ch; }

/* ---- Departments ------------------------------------------------------------- */

.ctc-dept-contact {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.6rem;
  align-items: center;
  font-size: var(--t-sm);
  margin-bottom: 1.6rem;
}

/* ---- Faculty profile ----------------------------------------------------------- */
.ctc-profile {
  display: grid;
  grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
  gap: 2.6rem;
  align-items: start;
}
.ctc-profile__photo {
  width: 100%;
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  margin-bottom: 1.1rem;
}
.ctc-profile__facts {
  background: var(--ctc-surface);
  border: 1px solid var(--ctc-line);
  border-radius: var(--radius-sm);
  padding: 1rem 1.2rem;
  margin-bottom: 1rem;
}
.ctc-profile__facts p { margin-bottom: .55rem; font-size: var(--t-sm); }
.ctc-profile__facts p:last-child { margin-bottom: 0; }
.ctc-profile__facts span {
  display: block;
  font-size: var(--t-eyebrow);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ctc-gold-deep);
}
.ctc-profile__body { max-width: 72ch; }
.ctc-backlink {
  font-size: var(--t-sm);
  font-weight: 600;
  text-decoration: none;
}

/* ---- Gallery / album cards ------------------------------------------------------ */
.ctc-album-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.25rem;
}

/* ---- Custom Newsletter Cards ---- */
.ctc-newsletter-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--ctc-line, #e2e6ef);
  border-radius: var(--radius, 12px);
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}
.ctc-newsletter-card__media {
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--ctc-paper-deep, #f3f4f6);
  position: relative;
}
.ctc-newsletter-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ctc-newsletter-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 2.4rem;
  color: var(--ctc-line-strong);
}
.ctc-newsletter-card__body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.ctc-newsletter-card__title {
  margin: 0 0 0.5rem;
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--ctc-navy, #001f4d);
}
.ctc-newsletter-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
  font-family: var(--ff-sans);
  font-size: 0.85rem;
  color: var(--ctc-muted, #6b7280);
}
.ctc-newsletter-card__date {
  font-weight: 400;
}
.ctc-newsletter-card__issue {
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ctc-newsletter-card__actions {
  display: flex;
  gap: 0.75rem;
  margin-top: auto;
}
.ctc-newsletter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  box-sizing: border-box;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: 6px;
  text-decoration: none !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ctc-newsletter-btn--view {
  flex-grow: 1;
  padding: 0 1.25rem;
  background-color: var(--ctc-home-navy-2, #001f4d);
  color: #fff !important;
  border: 1px solid var(--ctc-home-navy-2, #001f4d);
}
.ctc-newsletter-btn--view:hover {
  background-color: #001236;
  border-color: #001236;
}
.ctc-newsletter-btn--view i {
  margin-right: 0.5rem;
}
.ctc-newsletter-btn--download {
  width: 44px;
  padding: 0;
  background-color: transparent;
  color: var(--ctc-home-navy-2, #001f4d) !important;
  border: 1px solid var(--ctc-home-navy-2, #001f4d);
}
.ctc-newsletter-btn--download:hover {
  background-color: rgba(0, 31, 77, 0.06);
}

/* Album photo tiles are buttons (open the lightbox) */
.ctc-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .8rem;
}
.ctc-gallery-grid .ctc-photo-card {
  all: unset;
  cursor: zoom-in;
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
}
.ctc-gallery-grid .ctc-photo-card:focus-visible {
  outline: 2px solid var(--ctc-gold-deep);
  outline-offset: 2px;
}
.ctc-gallery-grid .ctc-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s var(--ease);
}
.ctc-gallery-grid .ctc-photo-card:hover img { transform: scale(1.06); }

/* ---- Prose (scraped page bodies) -------------------------------------------------- */
.ctc-prose { max-width: 100%; }
.ctc-prose h2, .ctc-prose h3 {
  margin-top: 2.1rem;
  margin-bottom: .8rem;
}
.ctc-prose h2:first-child, .ctc-prose h3:first-child { margin-top: 0; }
.ctc-prose h3 {
  font-size: var(--t-h3);
  padding-bottom: .35rem;
  border-bottom: 1px solid var(--ctc-line);
}
.ctc-prose h4 { margin-top: 1.6rem; font-size: 1.1rem; }
.ctc-prose ul, .ctc-prose ol { margin-bottom: 1.1rem; padding-left: 1.4rem; }
.ctc-prose li { margin-bottom: .35rem; }
.ctc-prose figure { margin: 1.6rem 0; }
.ctc-prose figure img,
.ctc-richtext img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
}
.ctc-prose table,
.ctc-richtext table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--t-sm);
  margin: 1.4rem 0;
  background: var(--ctc-surface);
}
.ctc-prose table td, .ctc-prose table th,
.ctc-richtext table td, .ctc-richtext table th {
  border: 1px solid var(--ctc-line-strong);
  padding: .6rem .9rem;
}
.ctc-prose table tr:first-child td,
.ctc-prose table th,
.ctc-richtext table tr:first-child td,
.ctc-richtext table th {
  background: var(--ctc-paper-deep);
  font-weight: 600;
  color: var(--ctc-navy);
}

/* People grids inside prose (administration page) */
.ctc-people-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 1rem;
  margin: 1.4rem 0 2rem;
}
.ctc-person {
  margin: 0;
  background: var(--ctc-surface);
  border: 1px solid var(--ctc-line);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  text-align: center;
}
.ctc-person img {
  width: 100%;
  aspect-ratio: 4 / 4.4;
  object-fit: cover;
  object-position: center 22%;
  border-radius: 0;
  box-shadow: none;
}
.ctc-person figcaption { padding: .8rem .9rem .95rem; }
.ctc-person figcaption strong {
  display: block;
  font-family: var(--ff-display);
  color: var(--ctc-navy);
  font-size: .98rem;
  line-height: 1.3;
}
.ctc-person figcaption span {
  display: block;
  font-size: .8rem;
  color: var(--ctc-muted);
  margin-top: .15rem;
}

/* ---- Map strip ----------------------------------------------------------------------- */
.ctc-map iframe {
  display: block;
  width: 100%;
  height: 340px;
  border: 0;
  filter: grayscale(.25);
}

/* ---- Responsive ------------------------------------------------------------------------ */
@media (max-width: 991.98px) {
  
  .ctc-news-grid, .ctc-news-grid--index { grid-template-columns: repeat(2, 1fr); }
  .ctc-alumni-band__inner { grid-template-columns: 1fr; }
  .ctc-alumni-band__copy { padding-left: 0; }
  .ctc-alumni-band__copy::before { position: static; display: block; margin-bottom: -1.2rem; }
  .ctc-profile { grid-template-columns: 1fr; }
  .ctc-profile__photo { max-width: 320px; }
}

@media (max-width: 639.98px) {
  .ctc-topbar__links { gap: .9rem; }

  .ctc-news-grid, .ctc-news-grid--index { grid-template-columns: 1fr; }
  
  .ctc-admission-band__inner { flex-direction: column; align-items: flex-start; }

  /* Notifications feed on small screens. Keep the row single-line: the body
     has min-width:0 so a long title wraps inside its own column while the
     leading icon and trailing download button stay aligned. (flex-wrap here
     dropped the download button to a new line at the far left on long titles.) */
  .ctc-notif-item { padding: 14px 16px; }
  .ctc-notif-item__chevron { display: none; }
}

/* Standalone button usage (no Bootstrap .btn base class required). */
.btn-ctc-primary,
.btn-ctc-outline {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1.5rem;
  text-decoration: none;
  border-radius: 7px;
  font-weight: 600;
}

/* ==========================================================================
   Reference-theme adjustments (2026-07) ? refinements over the mockup layer.
   ========================================================================== */

/* Clean white canvas ? no paper grain. */
body::before { display: none; }

/* Serif = Fraunces everywhere the mockup layer hardcoded Georgia. */
.ctc-navbar .navbar-brand .ctc-brand-text strong,
.ctc-navbar .nav-link,
.ctc-home-kicker,
.ctc-home-hero h1,
.ctc-home-stat strong,
.ctc-home-welcome h2,
.ctc-home-why h2 {
  font-family: var(--ff-display);
}
.ctc-navbar .nav-link { font-size: 13.5px; }

/* Dark hamburger on the white navbar. */
.ctc-navbar .navbar-toggler { border-color: rgba(0, 31, 77, .35); }
.ctc-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,31,77,0.85)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Four stats instead of the mockup's five. */
.ctc-home-stats__grid { grid-template-columns: repeat(4, 1fr); }
.ctc-home-stat:first-child { border-left: 0; }

/* Hero: two CTAs side by side. */
.ctc-home-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }

/* Welcome quick tiles are links (Courses / Facilities / Activities / Gallery). */
.ctc-home-value-grid a {
  display: block;
  text-align: center;
  text-decoration: none;
  padding: 10px 4px;
  border-radius: 6px;
  transition: background .18s var(--ease), transform .18s var(--ease);
}
.ctc-home-value-grid a:hover { background: #f2f5fa; transform: translateY(-2px); }
.ctc-home-value-grid a i {
  display: block;
  margin-bottom: 8px;
  color: var(--ctc-home-gold);
  font-size: 27px;
}
.ctc-home-value-grid a span {
  display: block;
  color: var(--ctc-home-navy-2);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}
.ctc-home-value-grid a small {
  display: block;
  margin-top: 2px;
  color: var(--ctc-home-muted);
  font-weight: 500;
  font-size: 11px;
}
.ctc-home-welcome__text p { margin: 0 0 14px; color: #1f2937; font-size: 14px; line-height: 1.72; }

/* Announcements card: let content define height; button in normal flow. */

/* Light admissions strip to sit on the white canvas. */
.ctc-admission-band--light {
  background: #fff;
  color: var(--ctc-home-ink);
  border-top: 1px solid #e3e8f0;
  border-bottom: 1px solid #e3e8f0;
}
.ctc-admission-band--light h2 { color: var(--ctc-home-navy-2); }

/* Interior page header aligns with the mockup navy. */
.ctc-page-header {
  background: linear-gradient(120deg, var(--ctc-home-navy-2), #0a336f);
}

@media (max-width: 991.98px) {
  .ctc-home-hero__copy { width: 100%; transform: none; }
  .ctc-home-intro__grid { grid-template-columns: 1fr; }
  .ctc-home-stats__grid { grid-template-columns: repeat(2, 1fr); }
  
}
@media (max-width: 639.98px) {
  .ctc-home-stats__grid { grid-template-columns: 1fr 1fr; }
  .ctc-home-value-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Hero proportions closer to the reference mockup. */
.ctc-home-hero { min-height: 420px; }
.ctc-home-hero__inner { min-height: 420px; }
.ctc-map { background: #eef2f7; }

/* ==========================================================================
   Scale refinements (2026-07) ? the mockup layer was transcribed at the
   reference image's 1024px pixel scale, which reads undersized on a real
   desktop viewport: narrow canvas, squat hero, small type. This layer brings
   the desktop rhythm up to the reference's *proportions* instead.
   ========================================================================== */

/* A flat max-width leaves ever-growing side gutters as the viewport gets
   wider (1200px on a 1920 screen = 360px of dead space per side). Scale the
   canvas with the viewport instead, capped so text lines don't run too long. */
.container {
  width: min(90%, 1440px);
  max-width: min(1440px, 100%);
  margin-inline: auto;
}

/* Four feature cards, not the mockup's five ? no dead column on the right. */

@media (min-width: 992px) {
  /* Top bar + navbar */
  .ctc-topbar { font-size: 14px; }
  .ctc-topbar__links { min-height: 36px; }
  .ctc-navbar,
  .ctc-navbar.is-scrolled { padding: 14px 0; }
  .ctc-navbar .navbar-brand img,
  .ctc-navbar.is-scrolled .navbar-brand img { height: 68px; }
  .ctc-navbar .nav-link { font-size: 15px; padding: 8px 11px; }

  /* Hero */
  .ctc-home-hero,
  .ctc-home-hero__inner { min-height: 480px; }
  .ctc-home-hero__copy { width: 46%; transform: translateY(8px); }
  .ctc-home-kicker { font-size: 19px; margin-bottom: 20px; }
  .ctc-home-hero h1 { font-size: 50px; margin-bottom: 20px; }
  .ctc-home-hero__lead { max-width: 440px; margin-bottom: 28px; font-size: 17px; line-height: 1.6; }

  /* Buttons: one consistent height (the mockup layer left the outline
     variant 10px shorter than the primary next to it). */
  .ctc-home-btn { min-height: 50px; padding: 0 26px; font-size: 15px; }
  .ctc-home-btn--outline { min-height: 50px; }

  /* Stats band */
  .ctc-home-stats__grid { min-height: 116px; }
  .ctc-home-stat { padding: 24px 28px; gap: 18px; }
  .ctc-home-stat i { font-size: 40px; }
  .ctc-home-stat strong { font-size: 34px; }
  .ctc-home-stat span { margin-top: 6px; font-size: 15.5px; }

  /* Welcome / intro */
  .ctc-home-intro__grid { gap: 44px; }
  .ctc-home-welcome { padding: 56px 0 48px; }
  .ctc-home-welcome h2 { font-size: 30px; margin-bottom: 26px; }
  
  .ctc-home-welcome p,
  .ctc-home-welcome__text p { font-size: 15.5px; line-height: 1.75; }
  .ctc-home-welcome__text p { margin-bottom: 16px; }
  .ctc-home-value-grid { gap: 22px; }
  .ctc-home-value-grid a { padding: 12px 6px; }
  .ctc-home-value-grid a i { margin-bottom: 10px; font-size: 31px; }
  .ctc-home-value-grid a span { font-size: 13.5px; }
  .ctc-home-value-grid a small { margin-top: 3px; font-size: 12px; }
  .ctc-home-campus-card { padding-top: 56px; }
  .ctc-home-campus-card img { height: 330px; }

  /* Announcements card */

  /* Departments ? Life at JMC ? News & Events panels */
  .ctc-home-panels { padding-bottom: 0; }

  .ctc-home-panel__head > a { font-size: 12.5px; }
  .ctc-home-event { padding: 12px 0 !important; }
  .ctc-home-event__media { width: 130px; height: 100%; min-height: 80px; align-self: center; }
  .ctc-home-event__title { font-size: 14.5px; line-height: 1.35; }
  
  .ctc-home-notice-item__title { font-size: 15px; }

  /* Why Choose JMC band responsive */
  .ctc-home-why h2 { font-size: 32px; }

  /* Footer rhythm */
  .ctc-footer { padding-top: 48px; }
  .ctc-footer__main { gap: 36px; padding-bottom: 40px; }
  .ctc-footer__bottom { padding: 20px 0; font-size: 13px; }
}

/* ==========================================================================
   Softer edges (2026-07) ? the mockup layer's buttons and boxed elements
   used near-sharp 3?6px corners; round them to match the site's --radius /
   --radius-sm scale (8px / 12px) used elsewhere, so the home page reads
   consistently "softly rounded" rather than sharp.
   ========================================================================== */
.ctc-home-btn { border-radius: var(--radius-sm); }

.ctc-home-campus-card img { border-radius: var(--radius); }

.ctc-home-value-grid a { border-radius: 10px; }

/* ==========================================================================
   Side breathing room (2026-07) ? Bootstrap's default .container gutter
   (12px each side) reads cramped against the site's generous vertical
   rhythm; give every page more air on the left/right regardless of
   viewport width.
   ========================================================================== */
.container {
  padding-inline: clamp(20px, 4vw, 56px);
}

/* News / blog index ? extra breathing room on left and right */
.ctc-section > .container {
  padding-inline: clamp(32px, 7vw, 96px);
}

/* ==========================================================================
   Button weight (2026-07) ? every button class was set to 700 (or the
   .btn-ctc-* family to 600); bold reads heavy/shouty across a page with
   many CTAs. Drop to regular weight everywhere buttons appear.
   ========================================================================== */
.btn-ctc-primary,
.btn-ctc-outline,
.ctc-home-btn {
  font-weight: 400;
}

/* ==========================================================================
   UI refinement pass (2026-07) ? balance, spacing rhythm, type ratio and
   weight. Appended last so it wins the cascade; earlier layers untouched.
   ========================================================================== */

/* ---- Weight ladder --------------------------------------------------------
   700 was carrying almost everything ? nav, kicker, list rows, news titles ?
   which flattens hierarchy and reads heavy. Reserve 700 for real headings;
   drop supporting/interface text to 600. (Home notification titles sit at
   the base layer's 500 ? user-chosen medium weight, 2026-07-09.) */
.ctc-navbar .nav-link,
.ctc-home-panel__head > a,
.ctc-home-event__title {
  font-weight: 600;
}

/* ---- Hero kicker ? eyebrow ------------------------------------------------
   Was 19px/700 navy, competing head-to-head with the H1. Recast it as the
   site's quiet gold, letter-spaced eyebrow (matching the .ctc-eyebrow used in
   the admissions/alumni bands) so the headline clearly leads. */
.ctc-home-kicker {
  display: inline-block;
  font-family: var(--ff-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ctc-gold-deep);
  line-height: 1.15;
  margin-bottom: 16px;
}

/* ---- Hero headline: a touch more air between the two stacked lines --------- */
.ctc-home-hero h1 { line-height: 1.1; letter-spacing: -.01em; }

/* Hero veil / photo wash is defined in the full-bleed navy hero block near
   the end of this file. */

/* ---- Intro triptych: resolve the ragged column heights --------------------
   The middle campus photo ended well above both the text column and the navy
   notifications card, leaving a large void. Stretch all three columns to a
   shared height so the photo and the card land on one clean bottom line. */
.ctc-home-intro__grid { align-items: stretch; }
.ctc-home-campus-card { display: flex; flex-direction: column; }
.ctc-home-campus-card img { flex: 1 1 auto; height: 100%; min-height: 320px; }

@media (min-width: 992px) {
  .ctc-home-campus-card img { min-height: 360px; }
}

/* ---- Panels: give "News & Events" the same gold rule + rhythm as its
   siblings (its heading lives in a flex head, which had swallowed the spacing). */
.ctc-home-panel__head { align-items: baseline; margin-bottom: 24px; }
.ctc-home-panel__head h2 { margin-bottom: 0; }

/* ==========================================================================
   Interior document pages (2026-07-07) ? the page-header title rendered at
   full hero scale (--t-h1, up to ~3.7rem), which overwhelms interior pages
   and long titles ("Admission To BA 1 Course"). And once .ctc-prose was
   centered, the left-aligned header title no longer shared an edge with the
   centered body, so the page read lopsided. Fix both: bring the interior
   title down to an appropriate size, and ? on prose pages only ? put the
   header and the body in one centered reading column so title + content align
   and the page reads as a single balanced document.
   ========================================================================== */

/* Interior title: sized for a page header, not a homepage hero. */
.ctc-page-header h1 {
  font-size: clamp(1.8rem, 1.35rem + 1.4vw, 2.5rem);
  line-height: 1.15;
  letter-spacing: -.01em;
}

/* ==========================================================================
   Title / display face ? Lora (2026-07-07)
   ========================================================================== */
:root {
  --ff-display: 'Lora', Georgia, serif;
}

/* Primary navigation is UI chrome, not a title ? keep it on the sans face so
   the menu stays crisp while headings become serif. */
.ctc-navbar .nav-link { font-family: var(--ff-sans); }

/* Serif display sits optically smaller/tighter than the outgoing sans; drop the
   negative tracking the sans headline needed so Minion breathes at its design
   width. */
.ctc-home-hero h1,
.ctc-page-header h1 { letter-spacing: 0; }

/* ==========================================================================
   Department directory (2026-07-07) ? /departments/ rebuilt as a ledger:
   a left identity rail per department (name, gold rule, contact, count)
   with the faculty as circular portraits on the right. Circles unify the
   mismatched source photos (wide office shots) that the old 4:4.6 card
   crop mangled; the rail absorbs the dead right half the old auto-fill
   grid left behind. The Head of Department carries an offset gold ring.
   .ctc-roster / .ctc-roster__person are shared with the department detail
   page. (Named "roster" ? .ctc-person already belongs to the administration
   page's card grid above, and .ctc-person img outranks any __photo class.)
   ========================================================================== */

/* Jump index under the page header ? six departments make a long scroll. */
.ctc-deptdir-index {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem 1rem;
  padding-bottom: 2rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--ctc-line);
}
.ctc-deptdir-index a {
  font-family: var(--ff-sans);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ctc-navy);
  text-decoration: none;
  padding: .5rem 1.25rem;
  background: var(--ctc-paper-deep);
  border: 1px solid var(--ctc-line-strong);
  border-radius: 100px;
  transition: all .2s var(--ease);
}
.ctc-deptdir-index a:hover,
.ctc-deptdir-index a:focus-visible {
  color: #ffffff;
  background: var(--ctc-navy);
  border-color: var(--ctc-navy);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

/* One department = identity rail + roster. */
.ctc-deptdir {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding-block: clamp(2.2rem, 1.8rem + 1.6vw, 3.4rem);
  scroll-margin-top: 120px;
}
.ctc-deptdir + .ctc-deptdir { border-top: 1px solid var(--ctc-line); }

.ctc-deptdir__rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.ctc-deptdir__rail h2 {
  font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem);
  line-height: 1.22;
  margin: 0;
}
.ctc-deptdir__rail h2::after {
  content: "";
  display: block;
  width: 34px;
  height: 3px;
  background: var(--ctc-gold);
  margin: .8rem auto 0;
}
.ctc-deptdir__tagline {
  font-family: var(--ff-display);
  font-style: italic;
  color: var(--ctc-muted);
  margin: .9rem 0 0;
}
.ctc-deptdir__meta {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
  font-size: var(--t-sm);
  color: var(--ctc-muted);
}
.ctc-deptdir__meta li {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  min-width: 0;
}
.ctc-deptdir__meta i { color: var(--ctc-gold-deep); }
.ctc-deptdir__meta a {
  color: inherit;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.ctc-deptdir__meta a:hover { color: var(--ctc-gold-deep); }
.ctc-deptdir__about {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: 1.3rem;
  font-family: var(--ff-sans);
  font-size: .92rem;
  font-weight: 600;
  color: var(--ctc-navy);
  text-decoration: none;
}
.ctc-deptdir__about i { transition: transform .2s var(--ease); }
.ctc-deptdir__about:hover { color: var(--ctc-gold-deep); }
.ctc-deptdir__about:hover i { transform: translateX(4px); }

/* Roster of circular portraits. */
.ctc-roster {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, 280px);
  justify-content: center;
  gap: 3.5rem 3.5rem;
  align-content: start;
}
.ctc-roster__empty {
  color: var(--ctc-muted);
  grid-column: 1 / -1;
  width: 100%;
  text-align: center;
  justify-self: stretch;
}

/* Empty roster: one full-width row so the message centers with the heading. */
.ctc-roster:has(> .ctc-roster__empty:only-child) {
  grid-template-columns: 1fr;
}

.ctc-roster__person {
  position: relative;
  text-align: center;
  padding: .3rem .2rem;
}
.ctc-roster__photo {
  display: block;
  width: clamp(180px, 12vw + 100px, 240px);
  height: auto; /* beat the height attribute so aspect-ratio can bite */
  aspect-ratio: 1;
  margin-inline: auto;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 28%;
  box-shadow:
    0 0 0 1px var(--ctc-line-strong),
    0 14px 26px -16px rgba(10, 20, 44, .4);
  transition: transform .22s var(--ease), box-shadow .22s var(--ease);
}
.ctc-roster__photo--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ctc-paper-deep);
  color: var(--ctc-line-strong);
  font-size: 2.9rem;
}
/* Head of Department: an offset gold ring ? the one loud mark per roster. */
.ctc-roster__person--hod .ctc-roster__photo {
  box-shadow:
    0 0 0 3px var(--ctc-surface),
    0 0 0 5px var(--ctc-gold),
    0 14px 26px -16px rgba(10, 20, 44, .4);
}
.ctc-roster__name {
  font-size: 1rem;
  line-height: 1.3;
  margin: .85rem 0 .15rem;
}
.ctc-roster__name a {
  color: inherit;
  text-decoration: none;
}
.ctc-roster__role {
  font-family: var(--ff-sans);
  font-size: var(--t-sm);
  color: var(--ctc-muted);
  line-height: 1.4;
  margin: 0;
}
.ctc-roster__cta {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-top: .45rem;
  font-family: var(--ff-sans);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ctc-gold-deep);
}
.ctc-roster__cta i { transition: transform .2s var(--ease); }

/* Whole tile is clickable (stretched-link); echo it on hover/focus. */
.ctc-roster__person:hover .ctc-roster__photo {
  transform: translateY(-3px);
  box-shadow:
    0 0 0 2px var(--ctc-gold-deep),
    0 18px 30px -16px rgba(10, 20, 44, .45);
}
.ctc-roster__person--hod:hover .ctc-roster__photo {
  transform: translateY(-3px);
  box-shadow:
    0 0 0 3px var(--ctc-surface),
    0 0 0 5px var(--ctc-gold-deep),
    0 18px 30px -16px rgba(10, 20, 44, .45);
}
.ctc-roster__person:hover .ctc-roster__name,
.ctc-roster__person:focus-within .ctc-roster__name { color: var(--ctc-gold-deep); }
.ctc-roster__person:hover .ctc-roster__cta i { transform: translateX(3px); }
.ctc-roster__person:focus-within {
  outline: 2px solid var(--ctc-gold-deep);
  outline-offset: 4px;
  border-radius: var(--radius-sm);
}
.ctc-roster__person .stretched-link:focus { outline: none; }

.ctc-roster--page {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3.5rem;
}

.ctc-roster--page > .ctc-roster__person {
  flex: 0 0 280px;
  width: 280px;
  max-width: 100%;
}

@media (max-width: 991.98px) {
  .ctc-roster--page {
    gap: 2.5rem 2rem;
    justify-content: space-evenly;
  }

  .ctc-roster--page > .ctc-roster__person {
    flex: 0 0 calc(50% - 2rem);
    width: calc(50% - 2rem);
    max-width: 260px;
  }
}

@media (max-width: 575.98px) {
  .ctc-roster--page > .ctc-roster__person {
    flex: 0 0 200px;
    width: 200px;
    max-width: 100%;
  }
}

@media (max-width: 767.98px) {
  .ctc-deptdir { grid-template-columns: 1fr; gap: 1.5rem; }
  .ctc-deptdir-index { gap: .4rem 1.2rem; }
  .ctc-roster { grid-template-columns: repeat(auto-fit, 200px); gap: 2.5rem 2rem; }
  .ctc-roster__photo { width: 160px; }
}

@media (prefers-reduced-motion: reduce) {
  .ctc-roster__photo,
  .ctc-roster__cta i,
  .ctc-deptdir__about i { transition: none; }
  .ctc-roster__person:hover .ctc-roster__photo,
  .ctc-roster__person--hod:hover .ctc-roster__photo { transform: none; }
}

/* ==========================================================================
   Secondary (top utility) bar (2026-07-07) ? the topbar read too small/cramped.
   Give it a little more height, larger link text, and bigger social icons.
   ========================================================================== */
/* Phones keep the original compact topbar ? the enlarged links + icons below
   otherwise force the row wider than a ~390px viewport and push the whole
   layout into horizontal overflow. Enlarge only from tablet up. */
@media (min-width: 576px) {
  .ctc-topbar { font-size: 13px; }
  .ctc-topbar .container { min-height: 46px; }
  .ctc-topbar__social a { width: 30px; height: 30px; font-size: .92rem; }
}
@media (min-width: 992px) {
  .ctc-topbar { font-size: 14.5px; }
  .ctc-topbar .container { min-height: 50px; }
  .ctc-topbar__links { gap: 1.6rem; }
  .ctc-topbar__social a { width: 32px; height: 32px; font-size: 1rem; }
}

/* ==========================================================================
   Hover dropdowns (2026-07-07) ? ctc.js opens navbar dropdowns on
   mouseenter at desktop widths. Bootstrap leaves a .125rem gap between the
   toggle and the menu; crossing that gap fires mouseleave and snaps the
   menu shut, so close it up where hover-open is active.
   ========================================================================== */
@media (min-width: 992px) and (hover: hover) {
  .ctc-navbar .dropdown-menu { margin-top: 0; }
}

/* ==========================================================================
   Page-transition skeleton (2026-07-07) ? #ctcSkeleton (base.html include)
   is a fixed overlay sketching the page shell: nav strip, navy header band,
   text lines and a card row. ctc.js toggles .is-active on internal-link
   clicks; sessionStorage + .ctc-nav-pending carry it into the next load.
   ========================================================================== */
html.ctc-nav-pending::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 3999;
  background: var(--ctc-paper, #faf7f0);
  pointer-events: none;
}

.ctc-skeleton {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: none;
  overflow: hidden auto;
  background: var(--ctc-paper, #faf7f0);
}
.ctc-skeleton.is-active {
  display: block;
  pointer-events: none;
  animation: ctc-skel-in .18s var(--ease);
}
@keyframes ctc-skel-in { from { opacity: 0; } to { opacity: 1; } }

.ctc-skeleton__bone {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 6px;
  background: #e9ebf0;
}
.ctc-skeleton__bone::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .6), transparent);
  animation: ctc-shimmer 1.3s infinite;
}
@keyframes ctc-shimmer { to { transform: translateX(100%); } }

/* Variant toggles */
.ctc-skeleton__home-only,
.ctc-skeleton__inner-only { display: none; }
.ctc-skeleton--home .ctc-skeleton__home-only { display: block; }
.ctc-skeleton--inner .ctc-skeleton__inner-only { display: block; }

/* Ticker — mirrors .ctc-ticker-bar--navy */
.ctc-skeleton__ticker {
  background: var(--ctc-navy-900, #0a142c);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  padding: 10px 0;
}
.ctc-skeleton__ticker-inner {
  display: flex;
  align-items: center;
  gap: 16px;
}
.ctc-skeleton__bone--ticker-badge {
  width: 118px;
  height: 28px;
  border-radius: 999px;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, .08);
}
.ctc-skeleton__bone--ticker-text {
  flex: 1;
  height: 14px;
  max-width: min(520px, 70%);
  background: rgba(255, 255, 255, .1);
}
.ctc-skeleton__ticker .ctc-skeleton__bone::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .14), transparent);
}

/* Navbar — mirrors .ctc-navbar */
.ctc-skeleton__nav {
  background: var(--ctc-navy, #1a2e5a);
  box-shadow: 0 1px 0 rgba(201, 168, 76, .16);
}
.ctc-skeleton__nav-inner {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding-block: .85rem;
}
.ctc-skeleton__bone--logo {
  width: 64px;
  height: 64px;
  border-radius: 8px;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, .12);
}
.ctc-skeleton__brand {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.ctc-skeleton__bone--brand-title { width: min(220px, 42vw); height: 20px; background: rgba(255, 255, 255, .16); }
.ctc-skeleton__bone--brand-tag { width: min(160px, 34vw); height: 10px; background: rgba(255, 255, 255, .1); }
.ctc-skeleton__nav .ctc-skeleton__bone::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .14), transparent);
}
.ctc-skeleton__nav-links {
  display: none;
  margin-left: auto;
  align-items: center;
  gap: 18px;
}
.ctc-skeleton__nav-links .ctc-skeleton__bone { width: 52px; height: 12px; background: rgba(255, 255, 255, .12); }
.ctc-skeleton__bone--cta {
  width: 108px;
  height: 40px;
  border-radius: 3px;
  background: rgba(201, 168, 76, .28);
}
@media (min-width: 1200px) {
  .ctc-skeleton__nav-links { display: flex; }
}

/* Home hero — mirrors .ctc-home-hero */
.ctc-skeleton__home-hero {
  position: relative;
  min-height: clamp(342px, 42vw, 480px);
  background: var(--ctc-home-navy-2, #001f4d);
  overflow: hidden;
}
.ctc-skeleton__home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0, 31, 77, .94) 0%, rgba(0, 31, 77, .55) 42%, rgba(0, 31, 77, .12) 72%, rgba(0, 31, 77, 0) 100%),
    linear-gradient(135deg, rgba(255, 255, 255, .06), transparent 55%);
}
.ctc-skeleton__home-hero-inner {
  position: relative;
  z-index: 1;
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: min(100%, 46%);
  padding-block: clamp(36px, 6vw, 64px);
}
.ctc-skeleton__bone--home-title { width: 100%; height: clamp(34px, 5vw, 50px); margin-bottom: 18px; background: rgba(255, 255, 255, .14); }
.ctc-skeleton__bone--home-lead { width: 88%; height: 16px; margin-bottom: 10px; background: rgba(255, 255, 255, .1); }
.ctc-skeleton__home-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 14px; }
.ctc-skeleton__bone--home-btn { width: 156px; height: 45px; border-radius: 3px; background: rgba(217, 166, 63, .35); }
.ctc-skeleton__bone--home-btn-ghost { background: rgba(255, 255, 255, .12); }
.ctc-skeleton__home-hero .ctc-skeleton__bone::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent);
}

/* Home stats — mirrors .ctc-home-stats */
.ctc-skeleton__stats {
  background: var(--ctc-paper, #faf7f0);
  border-bottom: 1px solid rgba(0, 31, 77, .12);
}
.ctc-skeleton__stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  min-height: 89px;
}
@media (min-width: 768px) {
  .ctc-skeleton__stats-grid { grid-template-columns: repeat(4, 1fr); }
}
.ctc-skeleton__stat {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  border-left: 1px solid rgba(0, 31, 77, .12);
}
.ctc-skeleton__stat:first-child { border-left: 0; }
.ctc-skeleton__bone--stat-icon { width: 34px; height: 34px; border-radius: 50%; flex: 0 0 auto; }
.ctc-skeleton__bone--stat-copy { flex: 1; height: 28px; }

/* Home section body */
.ctc-skeleton__home-body { padding-block: clamp(36px, 5vw, 56px); }
.ctc-skeleton__bone--section-eyebrow { width: 120px; height: 12px; margin: 0 auto 12px; }
.ctc-skeleton__bone--section-title { width: min(420px, 72%); height: clamp(28px, 4vw, 36px); margin: 0 auto 28px; }
.ctc-skeleton__home-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}
@media (min-width: 768px) {
  .ctc-skeleton__home-grid { grid-template-columns: 1fr 1fr; }
}
.ctc-skeleton__bone--home-card { height: 220px; border-radius: var(--radius); }

/* Inner galhead — mirrors .ctc-galhead */
.ctc-skeleton__galhead {
  position: relative;
  overflow: hidden;
  padding: clamp(2.8rem, 2rem + 3vw, 4.6rem) 0 clamp(2.4rem, 1.6rem + 2.6vw, 4rem);
  background:
    radial-gradient(90% 130% at 50% -25%, rgba(217, 166, 63, .2), transparent 60%),
    linear-gradient(160deg, #06275a 0%, #001f4d 55%, #00112e 100%);
}
.ctc-skeleton__galhead::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1.4px, transparent 1.6px);
  background-size: 26px 26px;
  pointer-events: none;
}
.ctc-skeleton__galhead-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
.ctc-skeleton__bone--eyebrow { width: 96px; height: 12px; background: rgba(217, 166, 63, .35); }
.ctc-skeleton__bone--galhead-title { width: min(420px, 78%); height: clamp(34px, 5vw, 52px); background: rgba(255, 255, 255, .14); }
.ctc-skeleton__bone--galhead-sub { width: min(320px, 62%); height: 16px; background: rgba(255, 255, 255, .1); }
.ctc-skeleton__galhead .ctc-skeleton__bone::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent);
}

/* Inner page body */
.ctc-skeleton__inner-body { padding-block: clamp(28px, 4vw, 48px); }
.ctc-skeleton__inner-body .ctc-skeleton__bone--line { height: 14px; margin-bottom: 14px; }
.ctc-skeleton__inner-body .ctc-skeleton__bone--line:nth-of-type(1) { width: 46%; }
.ctc-skeleton__inner-body .ctc-skeleton__bone--line:nth-of-type(2) { width: 88%; }
.ctc-skeleton__inner-body .ctc-skeleton__bone--line:nth-of-type(3) { width: 72%; }
.ctc-skeleton__inner-body .ctc-skeleton__bone--line:nth-of-type(4) { width: 84%; }
.ctc-skeleton__inner-body .ctc-skeleton__bone--line:nth-of-type(5) { width: 58%; }
.ctc-skeleton__inner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 18px;
  margin: 26px 0 30px;
}
.ctc-skeleton__bone--inner-card { height: 170px; border-radius: var(--radius); }

@media (max-width: 767.98px) {
  .ctc-skeleton__home-hero-inner { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .ctc-skeleton.is-active { animation: none; }
  .ctc-skeleton__bone::after { animation: none; }
}

/* ==========================================================================
   Gallery ? editorial photo wall (2026-07-07)
   The old gallery was timid white cards in a plain grid with a sea of empty
   space. Rebuilt so the photography leads: a large featured "moment" tile
   plus a tight grid of full-bleed covers with the title + count/year as an
   overlay. Five albums pack cleanly into a 4-col wall with the first spanning
   2x2. Adapts (dense flow) to any album count.
   ========================================================================== */

.ctc-albumwall {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-flow: dense;
  gap: 14px;
}

.ctc-albumtile {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 14px;
  text-decoration: none;
  color: #fff;
  background: var(--ctc-home-navy-2);
  box-shadow: 0 1px 2px rgba(5, 20, 44, .06), 0 14px 30px -20px rgba(5, 20, 44, .4);
  isolation: isolate;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.ctc-albumtile--feature {
  grid-column: span 2;
  grid-row: span 2;
  aspect-ratio: auto;
}
.ctc-albumtile:hover {
  transform: translateY(-3px);
  box-shadow: 0 2px 4px rgba(5, 20, 44, .08), 0 26px 46px -22px rgba(5, 20, 44, .5);
}
.ctc-albumtile:focus-visible {
  outline: 3px solid var(--ctc-home-gold);
  outline-offset: 3px;
}

.ctc-albumtile__media { position: absolute; inset: 0; }
.ctc-albumtile__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease);
}
.ctc-albumtile:hover .ctc-albumtile__media img { transform: scale(1.06); }
.ctc-albumtile__ph {
  display: flex; align-items: center; justify-content: center;
  height: 100%; font-size: 2.6rem; color: rgba(255, 255, 255, .3);
}

/* Bottom scrim + text. A thin gold rule slides in on hover as the accent. */
.ctc-albumtile__overlay {
  position: absolute; inset: 0; z-index: 1;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 20px 20px 18px;
  background: linear-gradient(to top,
    rgba(0, 15, 40, .88) 0%, rgba(0, 15, 40, .5) 32%, rgba(0, 15, 40, 0) 62%);
}
.ctc-albumtile__overlay::before {
  content: "";
  position: absolute; left: 20px; bottom: 0;
  width: 34px; height: 3px;
  background: var(--ctc-home-gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease);
}
.ctc-albumtile:hover .ctc-albumtile__overlay::before,
.ctc-albumtile:focus-visible .ctc-albumtile__overlay::before { transform: scaleX(1); }

.ctc-albumtile__meta {
  font-family: var(--ff-sans);
  font-size: .68rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--ctc-home-gold);
  margin-bottom: .45rem;
}
.ctc-albumtile__title {
  font-family: var(--ff-display);
  font-size: 1.15rem; line-height: 1.15;
  color: #fff;
  text-shadow: 0 1px 10px rgba(0, 10, 30, .4);
}
.ctc-albumtile--feature .ctc-albumtile__title {
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.15rem);
}
.ctc-albumtile__cta {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: .55rem;
  font-family: var(--ff-sans);
  font-size: .78rem; font-weight: 600; letter-spacing: .02em;
  color: #fff;
  opacity: 0; transform: translateY(6px);
  transition: opacity .28s var(--ease), transform .28s var(--ease);
}
.ctc-albumtile__cta i { color: var(--ctc-home-gold); transition: transform .2s var(--ease); }
.ctc-albumtile:hover .ctc-albumtile__cta,
.ctc-albumtile:focus-visible .ctc-albumtile__cta { opacity: 1; transform: none; }
.ctc-albumtile:hover .ctc-albumtile__cta i { transform: translateX(3px); }

/* Tablet: two columns, feature becomes a wide banner across the top. */
@media (max-width: 991.98px) {
  .ctc-albumwall { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ctc-albumtile--feature { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 9; }
  .ctc-albumtile__cta { opacity: 1; transform: none; }   /* no hover on touch */
  .ctc-albumtile__overlay::before { transform: scaleX(1); }
}
/* Phone: single column stack. The feature tile must also drop its span-2
   (inherited from the tablet query) or it stretches across an implicit second
   column ? wider than the rest and misaligned to the left. */
@media (max-width: 575.98px) {
  .ctc-albumwall { grid-template-columns: 1fr; }
  .ctc-albumtile { aspect-ratio: 3 / 2; }
  .ctc-albumtile--feature { grid-column: auto; aspect-ratio: 3 / 2; }
}

/* ---- Album detail: masonry so photos show uncropped at their own heights -- */
.ctc-gallery-grid {
  display: block;
  column-count: 3;
  column-gap: 12px;
}
.ctc-gallery-grid .ctc-photo-card {
  aspect-ratio: auto;
  width: 100%;
  margin: 0 0 12px;
  break-inside: avoid;
  border-radius: 12px;
}
.ctc-gallery-grid .ctc-photo-card img { height: auto; }
@media (max-width: 767.98px) { .ctc-gallery-grid { column-count: 2; } }
@media (max-width: 479.98px) { .ctc-gallery-grid { column-count: 1; } }

/* ==========================================================================
   Sticky main navbar (2026-07-07) ? the slim navy topbar scrolls away and the
   white main navbar pins to the top. ctc.js already adds .is-scrolled past
   24px; use it to lift the bar with a shadow once it's floating.
   ========================================================================== */
.ctc-navbar,
.ctc-navbar.is-scrolled {
  position: sticky;
  top: 0;
  z-index: 1030;
}
.ctc-navbar.is-scrolled {
  box-shadow: 0 4px 20px rgba(8, 25, 60, .14);
}

/* ==========================================================================
   Gallery header + scalable album grid + home preview (2026-07-07)
   - .ctc-galhead: a distinct, centered gallery page header (replaces the
     generic left banner on gallery pages) with a faint contact-sheet dot grid.
   - .ctc-albumgrid: a uniform auto-fill grid for /gallery that scales to any
     number of albums (the featured 2x2 wall only packs nicely at exactly 5).
   - .ctc-home-gallery: the 5-album preview wall on the home page.
   ========================================================================== */

/* ---- Gallery header (centered, modern) ----------------------------------- */
.ctc-galhead {
  position: relative;
  overflow: hidden;
  color: #fff;
  padding: clamp(2.8rem, 2rem + 3vw, 4.6rem) 0 clamp(2.4rem, 1.6rem + 2.6vw, 4rem);
  background:
    radial-gradient(90% 130% at 50% -25%, rgba(217, 166, 63, .2), transparent 60%),
    linear-gradient(160deg, #06275a 0%, #001f4d 55%, #00112e 100%);
}
.ctc-galhead::before {                       /* faint contact-sheet dot grid */
  content: "";
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1.4px, transparent 1.6px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(120% 85% at 50% 0%, #000, transparent 78%);
          mask-image: radial-gradient(120% 85% at 50% 0%, #000, transparent 78%);
  pointer-events: none;
}
.ctc-galhead__inner {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; text-align: center;
}
.ctc-galhead__eyebrow {
  font-family: var(--ff-sans);
  font-size: .72rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ctc-home-gold);
  line-height: 1.15;
  margin: 0 0 .55rem;
}
.ctc-galhead h1 {
  font-family: var(--ff-display);
  font-size: clamp(2rem, 1.5rem + 2.4vw, 3.2rem);
  line-height: 1.08; color: #fff; margin: 0;
}
/* Calling-section gold lines (ornament + short rule) when used in galhead. */
.ctc-galhead .ctc-calling__ornament {
  margin-bottom: 1.15rem;
}
.ctc-galhead h1 + .ctc-calling__ornament {
  margin-top: 1rem;
  margin-bottom: 1.15rem;
}
.ctc-galhead .ctc-calling__rule {
  margin-top: 1rem;
  margin-bottom: 1.15rem;
}
.ctc-galhead .ctc-calling__ornament + .ctc-galhead__sub,
.ctc-galhead .ctc-calling__rule + .ctc-galhead__sub {
  margin-top: 0;
}
.ctc-galhead__sub {
  max-width: 75ch; margin: .95rem auto 0;
  color: rgba(255, 255, 255, .74); font-size: 1rem; line-height: 1.5;
}
/* Breadcrumb, centered and re-coloured for this header. */
.ctc-galhead .breadcrumb {
  display: flex; flex-wrap: wrap; justify-content: center;
  margin-top: 1rem; margin-bottom: 0; font-size: .82rem;
}
.ctc-galhead .breadcrumb-item,
.ctc-galhead .breadcrumb-item a { color: rgba(255, 255, 255, .62); text-decoration: none; font-weight: 500; }
.ctc-galhead .breadcrumb-item a:hover { color: var(--ctc-home-gold); }
.ctc-galhead .breadcrumb-item.active { color: var(--ctc-home-gold); }
.ctc-galhead .breadcrumb-item + .breadcrumb-item::before { content: "\27f6"; color: rgba(255, 255, 255, .32); padding: 0 .5rem; }

/* ---- Scalable album grid (/gallery) -------------------------------------- */
.ctc-albumgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.ctc-albumgrid .ctc-albumtile { aspect-ratio: 4 / 3; }
@media (max-width: 991.98px) {
  .ctc-albumgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
  .ctc-albumgrid { grid-template-columns: 1fr; }
  .ctc-albumgrid .ctc-albumtile { aspect-ratio: 3 / 2; }
}

/* Photo-only tiles (About → Explore CTC): gallery placement, no album overlay. */
.ctc-albumtile--photo {
  display: block;
  cursor: default;
}

/* ---- Home gallery preview ------------------------------------------------- */
.ctc-home-gallery { background: #fff; padding: var(--ctc-home-section-y) 0; }
.ctc-home-gallery__head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem;
  padding-top: clamp(2.75rem, 1.8rem + 3vw, 4.25rem);
  margin-bottom: clamp(1.4rem, 1rem + 1.5vw, 2.1rem);
}
.ctc-home-gallery__head .ctc-eyebrow { margin-bottom: .55rem; }
.ctc-home-gallery h2 {
  font-family: var(--ff-display);
  color: var(--ctc-home-navy-2);
  font-size: clamp(1.7rem, 1.3rem + 1.5vw, 2.3rem);
  line-height: 1.1; margin: 0;
}
.ctc-home-gallery__all {
  display: inline-flex; align-items: center; gap: .4rem; flex: 0 0 auto;
  font-family: var(--ff-sans); font-size: .88rem; font-weight: 600; letter-spacing: .01em;
  color: var(--ctc-home-navy-2); text-decoration: none; white-space: nowrap;
  padding-bottom: .3rem;
}
.ctc-home-gallery__all i { color: var(--ctc-home-gold); transition: transform .2s var(--ease); }
.ctc-home-gallery__all:hover i { transform: translateX(3px); }
@media (max-width: 575.98px) {
  .ctc-home-gallery__head { flex-direction: column; align-items: flex-start; gap: .6rem; }
}

/* Contact page map gets more room than the 340px strip elsewhere. */
.ctc-map--contact iframe { height: clamp(380px, 52vh, 500px); }

/* ==========================================================================
   Editorial Section Ledger Page Layout (2026-07-07)
   ========================================================================== */
.ctc-editorial-quote-box {
  background: var(--ctc-paper-deep);
  border: 1px solid var(--ctc-line);
  border-left: 4px solid var(--ctc-gold);
  padding: 40px;
  border-radius: var(--radius);
  position: relative;
  overflow: hidden;
}
.ctc-quote-decorator {
  font-family: 'Lora', Georgia, serif;
  font-size: 120px;
  color: var(--ctc-gold-soft);
  position: absolute;
  top: -20px;
  left: 20px;
  line-height: 1;
  z-index: 1;
  user-select: none;
}
.ctc-quote-text {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  color: var(--ctc-navy);
  font-style: italic;
  position: relative;
  z-index: 2;
  margin-bottom: 15px;
  line-height: 1.5;
}
.ctc-quote-author {
  font-family: var(--ff-sans);
  font-size: var(--t-eyebrow);
  color: var(--ctc-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 600;
  position: relative;
  z-index: 2;
}

.ctc-section-ledger {
  margin-top: 56px;
}
.ctc-ledger-rail {
  position: sticky;
  top: 100px;
}
.ctc-ledger-title {
  font-family: var(--ff-display);
  font-size: 2.1rem;
  color: var(--ctc-navy);
  font-weight: 600;
  margin-bottom: 1rem;
}
.ctc-ledger-desc {
  color: var(--ctc-muted);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 2rem;
}
.ctc-ledger-divider {
  width: 48px;
  height: 2px;
  background: var(--ctc-gold);
}

.ctc-ledger-cards {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ctc-ledger-card {
  display: flex;
  gap: 32px;
  background: var(--ctc-surface);
  border: 1px solid var(--ctc-line);
  padding: 32px;
  border-radius: var(--radius);
  transition: border-color 0.28s var(--ease), box-shadow 0.28s var(--ease), transform 0.28s var(--ease);
}
.ctc-ledger-card:hover {
  border-color: var(--ctc-gold-light);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.ctc-ledger-card__num {
  font-family: var(--ff-display);
  font-size: 2rem;
  color: var(--ctc-gold-deep);
  font-weight: 600;
  opacity: 0.6;
  line-height: 1;
}
.ctc-ledger-card__body {
  flex-grow: 1;
}
.ctc-ledger-card__title {
  font-family: var(--ff-display);
  font-size: 1.35rem;
  color: var(--ctc-navy);
  margin: 0 0 8px;
  font-weight: 600;
  transition: color 0.2s ease;
}
.ctc-ledger-card:hover .ctc-ledger-card__title {
  color: var(--ctc-gold-deep);
}
.ctc-ledger-card__text {
  color: var(--ctc-muted);
  font-size: 0.9rem;
  margin-bottom: 16px;
  line-height: 1.6;
}
.ctc-ledger-card__link {
  font-family: var(--ff-sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ctc-navy);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color 0.2s ease;
}
.ctc-ledger-card__link .ctc-arrow {
  transition: transform 0.2s var(--ease);
}
.ctc-ledger-card:hover .ctc-ledger-card__link {
  color: var(--ctc-gold-deep);
}
.ctc-ledger-card:hover .ctc-ledger-card__link .ctc-arrow {
  transform: translateX(4px);
}

@media (max-width: 991.98px) {
  .ctc-ledger-card {
    gap: 20px;
    padding: 24px;
  }
  .ctc-ledger-rail {
    position: static;
    margin-bottom: 32px;
  }
}

/* ==========================================================================
   Editorial Sidebar Page Layout (2026-07-07)
   ========================================================================== */
.ctc-page-intro-box {
  background: var(--ctc-paper-deep);
  border-left: 3px solid var(--ctc-gold);
  padding: 20px 24px;
  border-radius: 4px;
}
.ctc-page-intro-lead {
  font-family: var(--ff-sans);
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--ctc-navy);
  margin-bottom: 0;
}

.text-gold {
  color: var(--ctc-gold);
}

/* ==========================================================================
   Annual Events Page (2026-07-07)
   ========================================================================== */

/* ==========================================================================
   Editorial About Us Page Custom Styles (2026-07-07)
   ========================================================================== */
.ctc-about-hero {
  background: linear-gradient(165deg, var(--ctc-navy-900) 0%, var(--ctc-navy) 100%);
  padding: 80px 0;
  border-bottom: 3px solid var(--ctc-gold);
  position: relative;
  overflow: hidden;
}
.ctc-about-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cpath d='M0 0 L100 100 M100 0 L0 100' stroke='rgba(201,168,76,0.03)' stroke-width='1'/%3E%3C/svg%3E");
  pointer-events: none;
}
.ctc-about-hero__logo-wrapper {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  width: 140px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  transition: transform 0.4s var(--ease);
}
.ctc-about-hero__logo-wrapper:hover {
  transform: rotate(5deg) scale(1.04);
}
.ctc-about-hero__logo {
  width: 100px;
  height: auto;
}
.ctc-about-hero__eyebrow {
  font-family: var(--ff-sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  line-height: 1.15;
  margin-bottom: 0.8rem;
}
.ctc-about-hero__title {
  font-family: var(--ff-display);
  font-size: clamp(2rem, 1.8rem + 2vw, 3.2rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin-bottom: 1rem;
}
.ctc-about-hero__lead {
  font-size: clamp(1.05rem, 1rem + 0.3vw, 1.25rem);
  color: rgba(255, 255, 255, 0.88);
  font-family: var(--ff-sans);
  max-width: 70ch;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

/* Sidebar grid (Value-grid replica) */

.ctc-about-value-card {
  background: var(--ctc-surface, #fff);
  border: 1px solid var(--ctc-line, rgba(0,0,0,0.06));
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: var(--ctc-navy);
  text-decoration: none !important;
  transition: all 0.28s var(--ease);
}
.ctc-about-value-card i {
  margin-bottom: 0 !important;
}
.ctc-about-value-card:hover {
  border-color: var(--ctc-gold);
  background: #fffdf7;
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -15px rgba(201, 168, 76, 0.15);
}

/* Feature link cards list */
.ctc-about-feature-card {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #f5f5f5;
  border: none;
  border-radius: var(--radius-sm);
  padding: 28px 20px;
  color: var(--ctc-navy) !important;
  transition: all 0.26s var(--ease);
}
.ctc-about-feature-card__icon {
  font-size: 1.6rem;
  color: var(--ctc-gold-deep);
  display: flex;
  align-items: center;
}
.ctc-about-feature-card__body {
  flex-grow: 1;
}
.ctc-about-feature-card__body h4 {
  font-family: var(--ff-display);
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 8px;
}
.ctc-about-feature-card__body p {
  color: var(--ctc-muted);
  font-size: 14px;
  margin: 0;
  line-height: 1.4;
}
.ctc-about-feature-card__arrow {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--ctc-gold-deep);
  opacity: 0.85;
  transition: transform 0.2s var(--ease);
}
.ctc-about-feature-card:hover {
  background: #ebebeb;
  transform: translateY(-2px);
}
.ctc-about-feature-card:hover .ctc-about-feature-card__arrow {
  transform: translateX(4px);
  opacity: 1;
}

@media (max-width: 575.98px) {
  
  .ctc-about-hero {
    padding: 50px 0;
  }
}

/* Custom Vision & Mission / Core Values cards on the About page */
.ctc-about-vision-card,
.ctc-about-mission-card,
.ctc-about-values-card {
  position: relative;
  padding: 48px;
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
  margin-top: 40px;
  margin-bottom: 40px;
  border: none;
  box-shadow: none;
}
.ctc-about-vision-card {
  background: #fbf6ea; /* Very soft warm gold tint */
}
.ctc-about-mission-card,
.ctc-about-values-card {
  background: #f1f6fa; /* Very soft cool blue tint */
}

.ctc-about-card-quote-icon {
  font-size: 72px;
  position: absolute;
  right: 24px;
  bottom: 0px;
  line-height: 1;
  opacity: 0.08;
  pointer-events: none;
  font-family: 'Lora', Georgia, serif;
}
.ctc-about-vision-card .ctc-about-card-quote-icon {
  color: var(--ctc-gold);
}
.ctc-about-mission-card .ctc-about-card-quote-icon,
.ctc-about-values-card .ctc-about-card-quote-icon {
  color: var(--ctc-navy);
}

.ctc-about-card-title {
  font-family: var(--ff-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--ctc-navy);
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.ctc-about-vision-card .ctc-about-card-title::before {
  content: "👁";
  font-size: 1.3rem;
  opacity: 0.9;
}
.ctc-about-mission-card .ctc-about-card-title::before,
.ctc-about-values-card .ctc-about-card-title::before {
  content: "🎯";
  font-size: 1.3rem;
  opacity: 0.9;
}

.ctc-about-card-rule {
  border: 0;
  border-top: 1px solid rgba(15, 36, 72, .12);
  margin: 0 0 1.15rem;
}

.ctc-about-card-subhead {
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ctc-navy);
  margin: 1.15rem 0 .4rem;
  line-height: 1.3;
}
.ctc-about-card-subhead:first-of-type {
  margin-top: 0;
}

.ctc-about-card-content {
  font-family: var(--ff-sans);
  font-size: var(--t-base);
  line-height: 1.7;
  color: var(--ctc-ink);
  margin: 0;
}

.ctc-about-card-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ctc-about-card-list li {
  position: relative;
  padding-left: 1.15rem;
  margin: 0 0 .65rem;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.7;
  color: #1f2937;
}
.ctc-about-card-list li:last-child {
  margin-bottom: 0;
}
.ctc-about-card-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ctc-gold);
}

/* Degree / certificate program cards on /programs/ */
.ctc-degree-programs__intro {
  max-width: 52rem;
  margin: 0 auto 2.25rem;
  text-align: center;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
  color: #1f2937;
}

/* Admission forms — intro block matched to /programs/ intro scale, left-aligned. */
.ctc-admission-forms__intro {
  max-width: 75ch;
  margin: 0 0 2.25rem;
  text-align: left;
}

.ctc-admission-forms__title {
  margin: 0 0 16px;
  font-family: var(--ff-display);
  font-size: 27px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-admission-forms__lead {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
  color: #1f2937;
}
.ctc-degree-programs__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
}
.ctc-degree-card {
  --ctc-degree-card-icon-offset: calc(44px + .85rem);
  min-width: 0;
  background: #fff;
  border: 1px solid var(--ctc-line, #e2e6ef);
  border-radius: var(--radius-lg, 12px);
  padding: 1.75rem 1.6rem 1.85rem;
}
.ctc-degree-card__head {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin-bottom: .95rem;
}
.ctc-degree-card__icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  background: rgba(201, 168, 76, 0.12);
  color: var(--ctc-gold-deep);
  font-size: 1.15rem;
}
.ctc-degree-card:nth-child(even) .ctc-degree-card__icon {
  background: rgba(0, 31, 77, 0.08);
  color: var(--ctc-navy);
}
.ctc-degree-card__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ctc-home-navy-2, #001f4d);
}

/* Title primary line wraps naturally at all breakpoints. */

@media (max-width: 991.98px) {
  .ctc-degree-card {
    --ctc-degree-card-icon-offset: 0px;
    padding: 1.25rem 1.1rem 1.35rem;
  }

  .ctc-degree-card__head {
    align-items: flex-start;
    margin-bottom: 1rem;
  }

  .ctc-degree-card__title,
  .ctc-degree-card__title * {
    font-size: 1.05rem;
    line-height: 1.3;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .ctc-degree-card__list li {
    margin-bottom: .75rem;
    line-height: 1.6;
    font-size: 0.9rem;
  }
}

@media (max-width: 575.98px) {
  .ctc-degree-programs__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .ctc-degree-card {
    padding: 1.5rem 1.35rem 1.6rem;
  }

  .ctc-degree-card__title,
  .ctc-degree-card__title * {
    font-size: 1.25rem;
  }

  .ctc-degree-card__list li {
    margin-bottom: .95rem;
    line-height: 1.7;
    font-size: 1rem;
  }
}
.ctc-degree-card__desc {
  margin: 0 0 1rem;
  padding-left: var(--ctc-degree-card-icon-offset);
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.7;
  color: #1f2937;
}
.ctc-degree-card__list {
  list-style: none;
  margin: 0;
  padding: 0 0 0 var(--ctc-degree-card-icon-offset);
}
.ctc-degree-card__list li {
  position: relative;
  padding-left: 1.15rem;
  margin: 0 0 .7rem;
  font-family: var(--ff-sans);
  font-size: 15px;
  line-height: 1.65;
  color: #1f2937;
}
.ctc-degree-card__list li:last-child {
  margin-bottom: 0;
}
.ctc-degree-card__detail {
  display: block;
  margin-top: .25rem;
  color: #4b5563;
  font-weight: 400;
}
.ctc-degree-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ctc-gold);
}

@media (max-width: 575.98px) {
  .ctc-degree-card {
    padding: 1.35rem 1.2rem 1.45rem;
  }

  .ctc-degree-card__title {
    font-size: 1.2rem;
  }

  .ctc-degree-card__list li {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }
}

@media (max-width: 991.98px) {
  .ctc-about-vision-card,
  .ctc-about-mission-card,
  .ctc-about-values-card {
    padding: 28px;
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* ==========================================================================
   Infrastructure & Facilities Page ? Premium Layout (2026-07-07)
   ========================================================================== */

/* ?? Hero ??????????????????????????????????????????????????????????????? */
.ctc-infra-hero {
  background: linear-gradient(160deg, var(--ctc-navy-900, #06122e) 0%, var(--ctc-navy) 100%);
  position: relative;
  overflow: hidden;
}
.ctc-infra-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 50%, rgba(201,168,76,0.06) 0%, transparent 60%);
  pointer-events: none;
}
.ctc-infra-hero__content-wrap {
  padding: 80px 0 0;
}
.ctc-infra-hero__eyebrow {
  font-family: var(--ff-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ctc-gold);
  line-height: 1.15;
  margin-bottom: 0.75rem;
}
.ctc-infra-hero__title {
  font-family: var(--ff-display);
  font-size: clamp(2.2rem, 2rem + 2.5vw, 3.6rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}
.ctc-infra-hero__sub {
  color: rgba(255,255,255,0.75);
  font-size: 1.1rem;
  max-width: 60ch;
  line-height: 1.65;
  font-family: var(--ff-sans);
}
.ctc-infra-hero .breadcrumb-item,
.ctc-infra-hero .breadcrumb-item a {
  color: rgba(255,255,255,0.45);
  font-size: 0.78rem;
  text-decoration: none;
  font-family: var(--ff-sans);
}
.ctc-infra-hero .breadcrumb-item a:hover { color: var(--ctc-gold); }
.ctc-infra-hero .breadcrumb-item.active { color: rgba(255,255,255,0.7); }
.ctc-infra-hero .breadcrumb-item + .breadcrumb-item::before {
  content: "?";
  color: rgba(255,255,255,0.2);
}

/* Stat Bar */
.ctc-infra-hero__stat-bar {
  margin-top: 56px;
  background: rgba(0,0,0,0.2);
  border-top: 1px solid rgba(255,255,255,0.07);
  backdrop-filter: blur(8px);
  padding: 22px 0;
}
.ctc-infra-hero__stats {
  display: flex;
  gap: 0;
  justify-content: space-around;
  flex-wrap: wrap;
}
.ctc-infra-hero__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 24px;
  position: relative;
}
.ctc-infra-hero__stat + .ctc-infra-hero__stat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10%;
  height: 80%;
  width: 1px;
  background: rgba(255,255,255,0.12);
}
.ctc-infra-hero__stat-num {
  font-family: var(--ff-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--ctc-gold);
  line-height: 1;
}
.ctc-infra-hero__stat-label {
  font-family: var(--ff-sans);
  font-size: 0.72rem;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* ?? Section Commons ???????????????????????????????????????????????????? */
.ctc-infra-section {
  padding: 96px 0;
}
.ctc-infra-section--alt {
  background: var(--ctc-paper-deep, #f8f5f0);
}
.ctc-infra-divider {
  height: 1px;
  background: var(--ctc-line, #e4ddd3);
  margin: 0;
}

.ctc-infra-section__head {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 56px;
}
.ctc-infra-section__icon-badge {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--ctc-gold), var(--ctc-gold-deep, #a87c28));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: #fff;
  box-shadow: 0 4px 16px rgba(201,168,76,0.3);
  margin-top: 4px;
}
.ctc-infra-section__icon-badge--navy {
  background: linear-gradient(135deg, var(--ctc-navy), #0d2151);
  box-shadow: 0 4px 16px rgba(13,21,81,0.25);
}
.ctc-infra-section__icon-badge--gold {
  background: linear-gradient(135deg, var(--ctc-gold), var(--ctc-gold-deep, #a87c28));
}
.ctc-infra-section__head h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.7rem, 1.5rem + 1.2vw, 2.4rem);
  font-weight: 700;
  color: var(--ctc-navy);
  margin-bottom: 8px;
}
.ctc-infra-section__lead {
  font-family: var(--ff-sans);
  font-size: var(--t-base);
  color: var(--ctc-muted);
  line-height: 1.65;
  max-width: 70ch;
  margin: 0;
}

/* ?? Sports Grid ???????????????????????????????????????????????????????? */
.ctc-infra-sports-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.ctc-infra-sport-card {
  background: var(--ctc-surface, #fff);
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: var(--radius, 10px);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  display: flex;
  flex-direction: column;
}
.ctc-infra-sport-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
}
.ctc-infra-sport-card__img-wrap {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--ctc-paper-deep, #f8f5f0);
}
.ctc-infra-sport-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.ctc-infra-sport-card:hover .ctc-infra-sport-card__img-wrap img {
  transform: scale(1.06);
}
.ctc-infra-sport-card__body {
  padding: 22px 20px 24px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ctc-infra-sport-card__icon {
  font-size: 1.2rem;
  color: var(--ctc-gold-deep, #a87c28);
}
.ctc-infra-sport-card__body h3 {
  font-family: var(--ff-display);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ctc-navy);
  margin: 0;
}
.ctc-infra-sport-card__body p {
  font-family: var(--ff-sans);
  font-size: 0.84rem;
  color: var(--ctc-muted);
  line-height: 1.55;
  margin: 0;
}

/* ?? Photo Mosaic (Classrooms) ?????????????????????????????????????????? */
.ctc-infra-photo-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 40px;
  aspect-ratio: 2 / 1;
}
.ctc-infra-photo-mosaic__main,
.ctc-infra-photo-mosaic__thumb {
  overflow: hidden;
  background: var(--ctc-paper-deep, #f8f5f0);
}
.ctc-infra-photo-mosaic__main { border-radius: var(--radius) 0 0 var(--radius); }
.ctc-infra-photo-mosaic__side {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ctc-infra-photo-mosaic__thumb:first-child { border-radius: 0 var(--radius) 0 0; }
.ctc-infra-photo-mosaic__thumb:last-child { border-radius: 0 0 var(--radius) 0; }
.ctc-infra-photo-mosaic__main img,
.ctc-infra-photo-mosaic__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.ctc-infra-photo-mosaic__side {
  height: 100%;
}
.ctc-infra-photo-mosaic__thumb {
  flex: 1;
}
.ctc-infra-photo-mosaic:hover img { transform: scale(1.04); }

/* Feature pills */
.ctc-infra-features-strip {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.ctc-infra-feature-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--ctc-surface, #fff);
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: 100px;
  font-family: var(--ff-sans);
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--ctc-navy);
  box-shadow: var(--shadow-sm);
}
.ctc-infra-feature-pill i {
  color: var(--ctc-gold-deep, #a87c28);
  font-size: 1rem;
}

/* ?? Library ???????????????????????????????????????????????????????????? */
.ctc-infra-section h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.6rem, 1.4rem + 1vw, 2.2rem);
  font-weight: 700;
  color: var(--ctc-navy);
  margin-bottom: 16px;
}
.ctc-infra-section p {
  font-family: var(--ff-sans);
  font-size: 0.95rem;
  color: var(--ctc-muted);
  line-height: 1.7;
}
.ctc-infra-library-stats {
  display: flex;
  gap: 0;
  margin-top: 32px;
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: var(--radius-sm, 6px);
  overflow: hidden;
}
.ctc-infra-library-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 20px 12px;
  text-align: center;
  border-right: 1px solid var(--ctc-line, #e4ddd3);
  background: var(--ctc-surface, #fff);
}
.ctc-infra-library-stat:last-child { border-right: none; }
.ctc-infra-library-stat strong {
  font-family: var(--ff-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ctc-navy);
}
.ctc-infra-library-stat span {
  font-family: var(--ff-sans);
  font-size: 0.72rem;
  color: var(--ctc-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* ?? Responsive ????????????????????????????????????????????????????????? */

@media (max-width: 767.98px) {
  .ctc-infra-sports-grid { grid-template-columns: 1fr; }
  .ctc-infra-photo-mosaic {
    grid-template-columns: 1fr;
    aspect-ratio: auto;
  }
  .ctc-infra-photo-mosaic__main {
    aspect-ratio: 1020 / 800;
  }
  .ctc-infra-photo-mosaic__thumb {
    aspect-ratio: 1020 / 800;
  }
  .ctc-infra-photo-mosaic__main { border-radius: var(--radius) var(--radius) 0 0; }
  .ctc-infra-photo-mosaic__side {
    flex-direction: row;
  }
  .ctc-infra-photo-mosaic__thumb:first-child { border-radius: 0 0 0 var(--radius); }
  .ctc-infra-photo-mosaic__thumb:last-child { border-radius: 0 0 var(--radius) 0; }
  .ctc-infra-section { padding: 60px 0; }
  
  .ctc-infra-section__head { flex-direction: column; gap: 16px; }
}

/* ==========================================================================
   Flat UI Override (2026-07-07)
   Remove glow / gradient styling from buttons, cards, text, and icons.
   ========================================================================== */
body,
h1, h2, h3, h4, h5, h6,
p, a, span, strong, small,
button,
.bi,
.material-symbols-outlined {
  text-shadow: none !important;
  filter: none !important;
}

.btn,
[class*="btn-ctc"],
.ctc-home-btn,
.ctc-home-gallery__all,
.ctc-backlink,
button {
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
}

.ctc-card,
.ctc-news-card,
.ctc-albumtile,
.ctc-ledger-card,
.ctc-about-value-card,
.ctc-about-feature-card,
.ctc-about-vision-card,
.ctc-about-mission-card,
.ctc-about-values-card,
.ctc-infra-sport-card,
.ctc-infra-feature-pill,
.ctc-profile,
.ctc-notif-feed,
.ctc-gallery-grid .ctc-photo-card {
  background-image: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  filter: none !important;
}

.ctc-card::before,
.ctc-card::after,
.ctc-news-card__media::after,
.ctc-albumtile__overlay::before {
  background-image: none !important;
  box-shadow: none !important;
}

.ctc-infra-section__icon-badge,
.ctc-infra-sport-card__icon,
.ctc-about-feature-card__icon,
.ctc-about-value-card i,
.ctc-about-card-quote-icon,
.ctc-home-event__media,
.ctc-home-stat i,
.ctc-footer__social a {
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/* Keep infrastructure icon badges visible with flat solid fills. */
.ctc-infra-section__icon-badge {
  background: var(--ctc-gold) !important;
  color: #fff !important;
}

.ctc-infra-section__icon-badge--navy {
  background: var(--ctc-navy) !important;
}

.ctc-infra-section__icon-badge--gold {
  background: var(--ctc-gold) !important;
}

/* Newsletters grid — flex centering so partial last rows stay centered */
.ctc-album-grid--newsletters {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
  grid-template-columns: unset !important;
}

.ctc-album-grid--newsletters > .ctc-newsletter-card {
  flex: 0 0 320px;
  width: 320px;
  max-width: 100%;
}

.ctc-album-grid--newsletters > .text-muted {
  flex: 0 0 100%;
  text-align: center;
}

@media (max-width: 991.98px) {
  .ctc-album-grid--newsletters > .ctc-newsletter-card {
    flex: 0 0 280px;
    width: 280px;
  }
}

@media (max-width: 575.98px) {
  .ctc-album-grid--newsletters > .ctc-newsletter-card {
    flex: 0 0 100%;
    width: 100%;
  }
}

/* Style all subpage headers with the same dark blue gradient as the gallery header */
.ctc-page-header,
.ctc-about-hero,
.ctc-infra-hero {
  background:
    radial-gradient(90% 130% at 50% -25%, rgba(217, 166, 63, .2), transparent 60%),
    linear-gradient(160deg, #06275a 0%, #001f4d 55%, #00112e 100%) !important;
}

.ctc-page-header::before,
.ctc-page-header::after,
.ctc-about-hero::before,
.ctc-infra-hero::before {
  background-image: none !important;
}

.ctc-page-header::after {
  background: var(--ctc-gold) !important;
}

/* Home intro image: keep real top and bottom breathing room instead of
   stretching the photo to the full column height. */
.ctc-home-intro__grid {
  align-items: center !important;
}

.ctc-home-campus-card {
  display: block !important;
  padding: 32px 0 !important;
}

.ctc-home-campus-card img {
  display: block;
  height: 380px !important;
  min-height: 0 !important;
  max-height: none !important;
}

@media (min-width: 992px) {
  .ctc-home-campus-card {
    padding: 32px 0 !important;
  }

  .ctc-home-campus-card img {
    height: 360px !important;
  }
}

/* ==========================================================================
   College Clubs Page ? Custom Premium Layout (2026-07-07)
   ========================================================================== */

/* ?? Hero ??????????????????????????????????????????????????????????????? */

/* ?? Section Commons ??????????????????????????????????????????????????? */
.ctc-clubs-section {
  padding: 80px 0;
}
.ctc-clubs-section--alt {
  background: var(--ctc-paper-deep, #f8f5f0);
}

/* Preserve Accommodation Note banner colours against flat UI overrides. */
.ctc-admission-note-card[style*="linear-gradient"] {
  background:
    radial-gradient(120% 180% at 100% 0%, rgba(201, 168, 76, .18), transparent 55%),
    linear-gradient(120deg, var(--ctc-navy-900), var(--ctc-navy)) !important;
}

.ctc-admission-note-card .ctc-home-btn[style*="background: #fff"],
.ctc-admission-note-card .ctc-home-btn[style*="background:#fff"] {
  background: #fff !important;
  color: var(--ctc-home-navy-2) !important;
}

.ctc-admission-note-card .ctc-home-btn[style*="background: #fff"]:hover,
.ctc-admission-note-card .ctc-home-btn[style*="background: #fff"]:focus,
.ctc-admission-note-card .ctc-home-btn[style*="background:#fff"]:hover,
.ctc-admission-note-card .ctc-home-btn[style*="background:#fff"]:focus {
  background: #fff !important;
  color: var(--ctc-home-navy-2) !important;
}

/* ?? Overlapping Image Gallery ????????????????????????????????????????? */
.ctc-clubs-gallery {
  position: relative;
  height: 380px;
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
}
.ctc-clubs-gallery__item {
  position: absolute;
  overflow: hidden;
  border-radius: var(--radius);
  border: 4px solid var(--ctc-surface, #fff);
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), z-index 0s;
}
.ctc-clubs-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ctc-clubs-gallery__item--primary {
  top: 0;
  left: 0;
  width: 75%;
  height: 75%;
  z-index: 1;
}
.ctc-clubs-gallery__item--secondary {
  bottom: 0;
  right: 0;
  width: 65%;
  height: 65%;
  z-index: 2;
}

/* Hover Interactive Effects */
.ctc-clubs-gallery:hover .ctc-clubs-gallery__item--primary {
  transform: translate(-8px, -8px) scale(1.02);
  box-shadow: 0 15px 35px rgba(0,0,0,0.15);
  z-index: 3;
}
.ctc-clubs-gallery:hover .ctc-clubs-gallery__item--secondary {
  transform: translate(8px, 8px) scale(1.02);
  box-shadow: 0 15px 35px rgba(0,0,0,0.15);
}

/* ?? Club Content Styling ????????????????????????????????????????????? */
.ctc-clubs-intro-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(201,168,76,0.12);
  color: var(--ctc-gold-deep, #a07e2c);
  border-radius: 4px;
  font-family: var(--ff-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.ctc-clubs-name {
  font-family: var(--ff-display);
  font-size: var(--ctc-section-title-size);
  font-weight: 700;
  color: var(--ctc-navy);
  margin-bottom: 1.2rem;
}
.ctc-clubs-bullets {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ctc-clubs-bullets li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.ctc-clubs-bullet-icon {
  flex-shrink: 0;
  color: var(--ctc-gold-deep, #a07e2c);
  font-size: 1rem;
  line-height: 1.5;
}
.ctc-clubs-bullet-text {
  font-family: var(--ff-sans);
  font-size: 0.95rem;
  color: var(--ctc-muted);
  line-height: 1.55;
}
.ctc-faith-lead {
  font-family: var(--ff-sans);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ctc-navy);
  margin: 0 0 1.1rem;
  line-height: 1.5;
}

/* Statement of Faith: show the full photo (no crop) beside the long text. */
.ctc-faith-media {
  margin: 0;
  width: 100%;
  position: sticky;
  top: 1.5rem;
}
.ctc-faith-media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  border-radius: var(--radius, 12px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  background: var(--ctc-paper-deep, #f8f5f0);
}
@media (max-width: 1199.98px) {
  .ctc-faith-media {
    position: static;
    max-width: 520px;
    margin: 0 auto;
  }
}

@media (max-width: 767.98px) {
  .ctc-clubs-gallery {
    height: 280px;
    max-width: 380px;
    margin-bottom: 30px;
  }
  .ctc-clubs-section {
    padding: 56px 0;
  }
}

/* ==========================================================================
   Home page section rhythm (2026-07-07)
   Admissions ? About ? Notifications/News were all sitting on ~white
   backgrounds back to back, so the page read as one long undifferentiated
   wall. Give each stop on the scroll its own material: white (the ask) ?
   warm paper (the story) ? cool bulletin wash (the desk) ? navy (campus
   pride) ? navy (the alumni letter). Cards get solid accent bars instead of
   shadows since box-shadow/background-image are stripped with !important
   from .ctc-home-panel elsewhere in this file (Flat UI Override).
   ========================================================================== */
.ctc-home-intro {
  background: var(--ctc-paper-deep);
  border-top: 1px solid var(--ctc-line);
  border-bottom: 1px solid var(--ctc-line);
}

.ctc-home-value-grid a {
  background: #fff;
  border: 1px solid var(--ctc-line);
}
.ctc-home-value-grid a:hover {
  background: #fff;
  border-color: var(--ctc-home-gold);
}

.ctc-home-panels {
  background: #eef2f8;
  border-top: 1px solid #dde5f0;
  border-bottom: 1px solid #dde5f0;
}

.ctc-home-panel__head {
  align-items: center;
}

/* Ensure all form controls and inputs are white only */
.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="password"],
select,
textarea {
  background-color: #ffffff !important;
  color: var(--ctc-ink) !important;
}

/* Container margin alignments for split panels */
@media (min-width: 1400px) {
  .ctc-home-panel-inner--left {
    padding-left: calc((100vw - 1320px) / 2 + 15px) !important;
    padding-right: 64px !important;
    max-width: calc(660px + (100vw - 1320px) / 2) !important;
  }
  .ctc-home-panel-inner--right {
    padding-right: calc((100vw - 1320px) / 2 + 15px) !important;
    padding-left: 64px !important;
    max-width: 100% !important;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .ctc-home-panel-inner--left {
    padding-left: calc((100vw - 1140px) / 2 + 15px) !important;
    padding-right: 48px !important;
    max-width: calc(570px + (100vw - 1140px) / 2) !important;
  }
  .ctc-home-panel-inner--right {
    padding-right: calc((100vw - 1140px) / 2 + 15px) !important;
    padding-left: 48px !important;
    max-width: 100% !important;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .ctc-home-panel-inner--left {
    padding-left: calc((100vw - 960px) / 2 + 15px) !important;
    padding-right: 36px !important;
    max-width: calc(480px + (100vw - 960px) / 2) !important;
  }
  .ctc-home-panel-inner--right {
    padding-right: calc((100vw - 960px) / 2 + 15px) !important;
    padding-left: 36px !important;
    max-width: 100% !important;
  }
}

@media (max-width: 991.98px) {
  .ctc-home-panels__split {
    grid-template-columns: 1fr;
  }
  .ctc-home-panel-inner--left,
  .ctc-home-panel-inner--right {
    max-width: 720px;
    margin: 0 auto;
    padding: 64px 24px !important;
  }
  .ctc-home-panels__right-col {
    border-left: none;
    border-top: 1px solid var(--ctc-home-line, #e6eaf1);
  }
}

/* ==========================================================================
   Layer 5 ? Motion & error pages (added after the mockup-matched layers)
   ========================================================================== */

/* ---- Page-header entrance (interior banners) ---------------------------- */
@keyframes ctcHeadRise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

.js .ctc-galhead__inner > *,
.js .ctc-page-header .container > * {
  animation: ctcHeadRise .55s var(--ease) both;
}
.js .ctc-galhead__inner > *:nth-child(2),
.js .ctc-page-header .container > *:nth-child(2) { animation-delay: .08s; }
.js .ctc-galhead__inner > *:nth-child(3),
.js .ctc-page-header .container > *:nth-child(3) { animation-delay: .16s; }
.js .ctc-galhead__inner > *:nth-child(4),
.js .ctc-page-header .container > *:nth-child(4) { animation-delay: .24s; }

/* ---- Error pages (400 / 403 / 404 / 500) ---------------------------------
   A record card on a cool slate field. Navy is the only accent ? the gold
   belongs to the content pages, and an error is not a moment to celebrate.
   The status code is an outlined watermark so the destinations lead.
   Tokens are local (--err-*) because 500.html must inline the same design
   without ctc.css: keep the two in sync.                                    */
.ctc-errorpage {
  --err-field: #eef1f7;
  --err-card:  #ffffff;
  --err-ink:   #0a142c;
  --err-navy:  #1a2e5a;
  --err-muted: #5b6477;
  --err-rule:  #d8dfeb;

  position: relative;
  background: var(--err-field);
  padding: 4.5rem 0 5.5rem;
  overflow: hidden;
}
.ctc-errorpage .container { position: relative; }

.ctc-errorpage__card {
  background: var(--err-card);
  border: 1px solid var(--err-rule);
  border-top: 3px solid var(--err-navy);
  border-radius: 4px;
  max-width: 60rem;
  margin: 0 auto;
  padding: 3rem clamp(1.5rem, 4vw, 3.25rem);
  display: grid;
  grid-template-columns: minmax(0, 13rem) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}
.js .ctc-errorpage__card { animation: ctcHeadRise .55s var(--ease) both; }

/* Status block ? the signature: a stroked numeral, not a solid slab. */
.ctc-errorpage__status { position: relative; }
.ctc-errorpage__code {
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: clamp(4.5rem, 9vw, 6.5rem);
  line-height: .9;
  letter-spacing: -.02em;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--err-navy);
  margin: 0 0 .9rem;
}
@supports not (-webkit-text-stroke: 1px black) {
  .ctc-errorpage__code { color: var(--err-navy); opacity: .22; }
}
.ctc-errorpage__eyebrow {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .7rem;
  font-weight: 700;
  color: var(--err-navy);
  border: 1px solid var(--err-rule);
  border-radius: 3px;
  padding: .3rem .6rem;
  margin: 0;
}

.ctc-errorpage__body { padding-top: .35rem; }
.ctc-errorpage__title {
  font-size: clamp(1.5rem, 3vw, 1.9rem);
  color: var(--err-ink);
  margin: 0 0 .6rem;
}
.ctc-errorpage__text {
  max-width: 34rem;
  margin: 0 0 1.75rem;
  color: var(--err-muted);
}
.ctc-errorpage__actions {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}
/* The site's primary button is gold; on an error page navy carries the action. */
.ctc-errorpage__actions .btn-ctc-primary {
  background: var(--err-navy);
  border-color: var(--err-navy);
  color: #fff;
}
.ctc-errorpage__actions .btn-ctc-primary:hover,
.ctc-errorpage__actions .btn-ctc-primary:focus-visible {
  background: var(--err-ink);
  border-color: var(--err-ink);
  color: #fff;
}
.ctc-errorpage__actions .btn-ctc-outline {
  border-color: var(--err-rule);
  color: var(--err-navy);
}
.ctc-errorpage__actions .btn-ctc-outline:hover,
.ctc-errorpage__actions .btn-ctc-outline:focus-visible {
  background: var(--err-navy);
  border-color: var(--err-navy);
  color: #fff;
}

/* Destinations ? a 404 exists to hand the reader somewhere to go, so each
   link says what it holds rather than sitting in a naked row. */
.ctc-errorpage__links {
  grid-column: 1 / -1;           /* spans the card, under both columns */
  margin: .75rem 0 0;
  padding: 1.75rem 0 0;
  border-top: 1px solid var(--err-rule);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));   /* six links, two even rows */
  gap: .25rem 1.5rem;
}
.ctc-errorpage__links a {
  display: block;
  padding: .55rem .65rem;
  margin-left: -.65rem;
  border-radius: 3px;
  color: var(--err-navy);
  text-decoration: none;
  font-weight: 600;
  font-size: .95rem;
  transition: background .2s var(--ease);
}
.ctc-errorpage__links a span {
  display: block;
  color: var(--err-muted);
  font-weight: 400;
  font-size: .85rem;
  margin-top: .1rem;
}
.ctc-errorpage__links a:hover,
.ctc-errorpage__links a:focus-visible { background: var(--err-field); }

/* ==========================================================================
   Home page ? body copy set to a consistent 16px across every section
   ========================================================================== */
.ctc-home-hero__lead,
.ctc-admission-band__summary,
.ctc-admission-band__detail p,
.ctc-home-notice-item__title,
.ctc-home-event__excerpt,
.ctc-home-welcome__text p,
.ctc-alumni-band__text,
.ctc-alumni-band__note,
.ctc-home-why__item-body span {
  font-size: 16px !important;
}

/* About page ? prose titles/content and vision/mission cards matched to the
   home page About section (.ctc-home-welcome h2 / .ctc-home-welcome__text p).
   No italics anywhere on this page. */
.ctc-about-content .ctc-prose h2,
.ctc-about-content .ctc-prose h3,
.ctc-about-card-title {
  font-family: var(--ff-display);
  font-size: 27px !important;
  font-weight: 700 !important;
  color: var(--ctc-home-navy-2) !important;
  line-height: 1.1;
  font-style: normal !important;
}
.ctc-about-card-title {
  margin: 0 0 16px !important;
}

.ctc-about-explore-title {
  margin: 0 0 .8rem;
  padding-bottom: .35rem;
  font-family: var(--ff-display);
  font-size: 27px;
  font-weight: 700;
  color: var(--ctc-home-navy-2, #001f4d);
  line-height: 1.1;
  border-bottom: 1px solid var(--ctc-line);
}
.ctc-about-content .ctc-prose p,
.ctc-about-card-content {
  font-family: var(--ff-sans);
  font-size: 16px !important;
  color: #1f2937 !important;
  line-height: 1.72;
  font-style: normal !important;
}

@media (max-width: 991.98px) {
  .ctc-about-content .ctc-prose p,
  .ctc-about-content .ctc-prose li {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }
}
.ctc-about-content .ctc-prose em,
.ctc-about-content .ctc-prose i,
.ctc-about-card-content em,
.ctc-about-card-content i {
  font-style: normal !important;
}

/* Skill Courses page ? section titles/content matched to the home page
   About section (.ctc-home-welcome h2 / .ctc-home-welcome__text p). */
.ctc-skill-courses-container .ctc-clubs-name {
  font-family: var(--ff-display);
  font-size: 27px;
  font-weight: 700;
  color: var(--ctc-home-navy-2);
  line-height: 1.1;
  margin-bottom: 24px;
}
.ctc-skill-courses-container .ctc-infra-section__lead {
  font-family: var(--ff-sans);
  font-size: 16px !important;
  color: #1f2937;
  line-height: 1.72;
  max-width: none;
}

/* College Clubs page ? section titles/content matched to the home page
   About section (.ctc-home-welcome h2 / .ctc-home-welcome__text p). */
.ctc-clubs-container .ctc-clubs-name {
  font-family: var(--ff-display);
  font-size: 27px;
  font-weight: 700;
  color: var(--ctc-home-navy-2);
  line-height: 1.1;
  margin-bottom: 24px;
}
.ctc-clubs-container .ctc-clubs-bullet-text {
  font-family: var(--ff-sans);
  font-size: 16px !important;
  color: #1f2937;
  line-height: 1.72;
}

@media (max-width: 991.98px) {
  .ctc-library-sections .ctc-clubs-bullet-text {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }
}

/* Home About eyebrow gets swept up by the broad ".ctc-home-welcome p" rule
   (color/size meant for body copy) ? restore the standard eyebrow look. */
.ctc-home-welcome .ctc-eyebrow {
  color: var(--ctc-gold-deep) !important;
  font-size: var(--t-eyebrow) !important;
  margin: 0 0 .7rem !important;
}

/* Board of Governors ? Administration page (2026-07) */
.ctc-board-row {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 100%;
  padding: 18px 20px;
  background: #fff;
  border-radius: var(--radius-sm, 10px);
  border: 1px solid var(--ctc-line, #e4ddd3);
}
.ctc-board-row__avatar {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(201, 168, 76, 0.14);
  color: var(--ctc-gold-deep);
  font-family: var(--ff-display);
  font-size: 1.1rem;
  font-weight: 700;
}
.ctc-board-row__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ctc-board-row__name {
  font-family: var(--ff-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--ctc-navy);
  line-height: 1.3;
}
.ctc-board-row__role {
  font-family: var(--ff-sans);
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ctc-muted);
  margin-top: 2px;
}

/* Administrative / Support staff rosters ? Administration page (2026-07) */
.ctc-staff-list {
  background: #fff;
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: var(--radius, 10px);
  overflow: hidden;
}
.ctc-staff-list__row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--ctc-line, #e4ddd3);
}
.ctc-staff-list__row:last-child { border-bottom: none; }
.ctc-staff-list__avatar {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(26, 46, 90, 0.07);
  color: var(--ctc-navy);
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 700;
}
.ctc-staff-list--gold .ctc-staff-list__avatar {
  background: rgba(201, 168, 76, 0.14);
  color: var(--ctc-gold-deep);
}
.ctc-staff-list__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ctc-staff-list__name {
  font-family: var(--ff-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--ctc-navy);
  line-height: 1.3;
}
.ctc-staff-list__role {
  font-family: var(--ff-sans);
  font-size: 13px;
  color: var(--ctc-muted);
  margin-top: 2px;
}

/* Infrastructure & Facilities page ? eyebrow/title/body matched to the
   home page About section (.ctc-home-welcome). */
.ctc-infra-section .ctc-eyebrow {
  font-size: var(--t-eyebrow) !important;
  color: var(--ctc-gold-deep) !important;
}
.ctc-infra-section__head h2,
.ctc-infra-section h2 {
  font-family: var(--ff-display);
  font-size: 27px !important;
  font-weight: 700 !important;
  color: var(--ctc-home-navy-2) !important;
  line-height: 1.1;
}
.ctc-infra-section .ctc-infra-section__lead,
.ctc-infra-section p {
  font-family: var(--ff-sans);
  font-size: 16px !important;
  color: #1f2937 !important;
  line-height: 1.72;
}

/* Annual Events page ? single-image variant of .ctc-clubs-gallery.
   Events only ever have one photo, so it fills the whole frame and
   stretches to match the paired text column instead of the diagonal
   primary/secondary pair used on the clubs page. */
.ctc-clubs-gallery--single {
  position: relative;
  height: auto;
  width: 100%;
  max-width: 560px;
  min-height: 320px;
}
.ctc-clubs-gallery--single .ctc-clubs-gallery__item--full {
  position: static;
  width: 100%;
  height: 100%;
  min-height: inherit;
}
@media (max-width: 991.98px) {
  .ctc-clubs-gallery--single {
    min-height: 280px;
  }
}

/* Document library / notifications feed (2026-07) */
.ctc-notif-sortbar {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: 1rem;
}
.ctc-notif-sortbar__label {
  font-size: var(--t-sm);
  color: var(--ctc-muted);
  margin-right: .2rem;
}
.ctc-notif-feed {
  display: flex;
  flex-direction: column;
  background: var(--ctc-surface, #fff);
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: var(--radius-sm, 10px);
  overflow: hidden;
}
.ctc-notif-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--ctc-line, #e4ddd3);
  transition: background .15s var(--ease);
}
.ctc-notif-item:last-child { border-bottom: none; }
.ctc-notif-item:hover { background: var(--ctc-paper, #f8f5f0); }
.ctc-notif-item.d-none { display: none; }
.ctc-notif-item__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 1.05rem;
  background: rgba(26, 46, 90, 0.07);
  color: var(--ctc-navy);
}
.ctc-notif-item__icon--admission,
.ctc-notif-item__icon--event {
  background: rgba(201, 168, 76, 0.14);
  color: var(--ctc-gold-deep);
}
.ctc-notif-item__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ctc-notif-item__title {
  font-family: var(--ff-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--ctc-navy);
  text-decoration: none;
  line-height: 1.35;
}
.ctc-notif-item:hover .ctc-notif-item__title { color: var(--ctc-gold-deep); }
.ctc-notif-item__meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: var(--t-sm);
  color: var(--ctc-muted);
}
.ctc-notif-item__dot { color: var(--ctc-line-strong); }
.ctc-notif-item__dl {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--ctc-line-strong);
  color: var(--ctc-navy);
  text-decoration: none;
  transition: background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
}
.ctc-notif-item__dl:hover {
  background: var(--ctc-navy);
  border-color: var(--ctc-navy);
  color: #fff;
}
.ctc-notif-item__chevron {
  flex-shrink: 0;
  color: var(--ctc-line-strong);
  font-size: 1rem;
}
.ctc-notif-item__none {
  padding: 24px 22px;
  margin: 0;
}

/* Courses page ? FYUGP category definitions & paper sub-lists (2026-07) */
.ctc-course-terms {
  display: flex;
  flex-direction: column;
  background: var(--ctc-surface, #fff);
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: var(--radius-sm, 10px);
  overflow: hidden;
}
.ctc-course-terms__row {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 16px 22px;
  border-bottom: 1px solid var(--ctc-line, #e4ddd3);
}
.ctc-course-terms__row:last-child { border-bottom: none; }
.ctc-course-terms__term {
  flex: 0 0 150px;
  font-family: var(--ff-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--ctc-gold-deep);
}
.ctc-course-terms__desc {
  font-size: 16px;
  color: #1f2937;
  line-height: 1.6;
}
@media (max-width: 575.98px) {
  .ctc-course-terms__row { flex-direction: column; gap: 4px; }
  .ctc-course-terms__term { flex: none; }
}

/* "Additional University Courses" ? registrar-slip cards (2026-07) */
.ctc-course-paper-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.ctc-course-paper {
  position: relative;
  overflow: hidden;
  padding: 28px 26px;
  background: var(--ctc-surface, #fff);
  border: 1px solid var(--ctc-line, #e4ddd3);
  border-radius: 12px;
}
.ctc-course-paper__mark {
  position: absolute;
  top: -16px;
  right: 6px;
  font-family: var(--ff-display);
  font-size: 108px;
  font-weight: 700;
  line-height: 1;
  color: var(--ctc-navy);
  opacity: .05;
  pointer-events: none;
  user-select: none;
}
.ctc-course-paper__code {
  position: relative;
  display: block;
  font-family: var(--ff-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ctc-gold-deep);
  margin-bottom: 10px;
}
.ctc-course-paper__title {
  position: relative;
  margin: 0 0 8px;
  font-family: var(--ff-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--ctc-navy);
  line-height: 1.3;
}
.ctc-course-paper__desc {
  position: relative;
  margin: 0;
  font-size: 15px;
  color: var(--ctc-muted);
  line-height: 1.6;
}
.ctc-course-paper__sublist {
  position: relative;
  list-style: none;
  margin: 16px 0 0;
  padding: 14px 0 0;
  border-top: 1px dashed var(--ctc-line-strong, #d8cfc0);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ctc-course-paper__sublist li {
  font-size: 14px;
  color: var(--ctc-muted);
  line-height: 1.5;
}
.ctc-course-paper__sublist li b {
  font-family: var(--ff-display);
  font-weight: 700;
  color: var(--ctc-navy);
  margin-right: 2px;
}

@media (max-width: 767.98px) {
  .ctc-course-paper-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   FAQ accordion ? admission page (2026-07-08)
   Moved out of an inline <style> block in admission_page.html.
   ========================================================================== */
.ctc-faq-accordion .accordion-button {
  background-color: var(--ctc-surface, #fff);
  color: var(--ctc-navy);
  border: none;
  box-shadow: none !important;
  padding: 1.25rem 1.5rem;
  transition: background-color 0.2s ease;
}
.ctc-faq-accordion .accordion-button:not(.collapsed) {
  background-color: var(--ctc-paper-deep, #f8f5f0);
  color: var(--ctc-navy);
}
.ctc-faq-accordion .accordion-button::after {
  filter: brightness(0.2);
}
.ctc-faq-accordion .accordion-item {
  border: 1px solid var(--ctc-line) !important;
  background-color: var(--ctc-surface, #fff);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ctc-faq-accordion .accordion-item:hover {
  border-color: var(--ctc-gold) !important;
}
.ctc-faq-accordion .accordion-body {
  padding: 1.25rem 1.5rem;
  background-color: var(--ctc-surface, #fff);
}

/* ==========================================================================
   Layer 7 ? Tablet & mobile pass (2026-07-08)
   Every rule below only tightens layout under 992px; desktop (?992px) is
   untouched. Appended last so it wins the cascade over the earlier layers,
   including the flat-override !important rules it has to counter.
   ========================================================================== */

/* ---- Phones get the full canvas width (the 90% canvas + big gutters left
   only ~295px of content on a 375px screen). 24px gutters also absorb the
   -24px side margins of Bootstrap .g-5 rows, which overflowed by 4px. ------ */
@media (max-width: 575.98px) {
  .container {
    width: 100%;
    max-width: 100%;
    padding-inline: 24px;
  }
}

/* ---- Main navbar: collapsed menu on the white bar ------------------------
   The legacy navy-navbar layer painted mobile dropdown links white ? invisible
   on today's white navbar. Restore dark ink and give the open menu a scroll
   limit so long menus never trap the page.
   Collapse point is xl (1199.98px) to match navbar-expand-xl: the long college
   name + 6-item menu overlap the brand on landscape tablets (~1000px). */
@media (max-width: 1199.98px) {
  /* Keep wrap so .navbar-collapse (flex-basis: 100%) can stack below. */
  .ctc-navbar .navbar-collapse {
    max-height: calc(100vh - 96px);
    overflow-x: hidden;
    overflow-y: auto;
  }
  .ctc-navbar .nav-link { padding: 9px 4px; }
  .ctc-navbar .dropdown-menu {
    background: transparent;
    border: 0;
    box-shadow: none;
    margin: 0;
    padding: 2px 0 8px 14px;
  }
  .ctc-navbar .dropdown-item {
    color: #33415c;
    padding: 7px 10px;
  }
  .ctc-navbar .dropdown-item:hover,
  .ctc-navbar .dropdown-item:focus,
  .ctc-navbar .dropdown-item.active {
    background: #f2f5fa;
    color: var(--ctc-home-navy);
    padding-left: 10px;
  }
}

/* Home hero under 992px uses the full-bleed navy wash defined in the
   "Hero: full-bleed photo + navy left wash" block below. */

/* ---- Home stats band: coherent 2×2 hairline grid on tablets -------------- */
@media (min-width: 640px) and (max-width: 991.98px) {
  .ctc-home-stat {
    border-left: 0;
    border-top: 1px solid rgba(0, 31, 77, .12);
  }
  .ctc-home-stat:nth-child(-n+2) { border-top: 0; }
  .ctc-home-stat:nth-child(even) { border-left: 1px solid rgba(0, 31, 77, .12); }
}

/* ---- Home stats band: coherent 2×2 hairline grid on phones --------------- */
@media (max-width: 639.98px) {
  .ctc-home-stat {
    border-left: 0;
    border-top: 1px solid rgba(0, 31, 77, .12);
    padding: 14px 12px;
    gap: 12px;
  }
  .ctc-home-stat:nth-child(-n+2) { border-top: 0; }
  .ctc-home-stat:nth-child(even) { border-left: 1px solid rgba(0, 31, 77, .12); }
  .ctc-home-stat i { font-size: 26px; }
  .ctc-home-stat strong { font-size: 20px; }
}

/* ---- Home admission band: stacked details card sizes itself -------------- */
@media (max-width: 639.98px) {
  .ctc-admission-band__copy,
  .ctc-admission-band__details {
    flex-basis: auto;
    width: 100%;
  }
}

/* ---- Home split panels: lighter padding on phones ------------------------ */
@media (max-width: 575.98px) {
  .ctc-home-panel-inner--left,
  .ctc-home-panel-inner--right { padding: 44px 20px !important; }
  .ctc-home-event__media { width: 104px; min-height: 68px; }
}

/* ---- Home intro photo: shorter crop on phones ----------------------------- */
@media (max-width: 575.98px) {
  .ctc-home-campus-card img { height: 260px !important; }
}

/* ---- Prose & rich-text tables: scroll instead of overflowing ------------- */
@media (max-width: 767.98px) {
  .ctc-prose table,
  .ctc-richtext table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ---- Courses: registrar-slip cards get a 2-up step on tablets ------------ */
@media (min-width: 768px) and (max-width: 991.98px) {
  .ctc-course-paper-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* ---- Infrastructure: hero stat bar and library counters ------------------ */
/* 2-up grid across phones AND tablet-portrait (?991px): 4-across flex can't
   fit all four stats at ~800px, so "Wi-Fi" would wrap to a lone second row. */
@media (max-width: 991.98px) {
  .ctc-infra-hero__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 0;
  }
  .ctc-infra-hero__stat + .ctc-infra-hero__stat::before { display: none; }
}
@media (max-width: 479.98px) {
  .ctc-infra-library-stats { flex-direction: column; }
  .ctc-infra-library-stat {
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    padding: 12px 16px;
    border-right: 0;
    border-bottom: 1px solid var(--ctc-line);
  }
  .ctc-infra-library-stat:last-child { border-bottom: 0; }
}

/* ---- Section pages: quote box and ledger cards on phones ------------------ */
@media (max-width: 575.98px) {
  .ctc-editorial-quote-box { padding: 28px 22px; }
  .ctc-quote-decorator { font-size: 80px; }
  .ctc-ledger-card {
    flex-direction: column;
    gap: 10px;
    padding: 20px;
  }
}

/* ---- Footer: keep the three columns side by side on tablets -------------- */
@media (min-width: 768px) and (max-width: 991.98px) {
  .ctc-footer__main {
    grid-template-columns: 1.6fr 1fr 1fr;
    gap: 32px;
  }
}

/* ---- Forms & search: 16px inputs stop iOS focus-zoom ---------------------- */
@media (max-width: 575.98px) {
  .ctc-notif-search input,
  .form-control,
  .form-select { font-size: 16px; }
}

/* ---- Blog index featured area (/blog/): the 1.7fr / 1fr desktop split never
   collapsed, so on tablet and phone the lead card and the recent-news rail
   were crushed side-by-side. Stack them below 992px and give a clear gap so
   the featured card and the story list read as two comfortable blocks. ----- */
@media (max-width: 991.98px) {
  .ctc-news-featured {
    grid-template-columns: 1fr;
    gap: clamp(1.75rem, 1.25rem + 2vw, 2.5rem);
  }
  /* Rail no longer has to match the lead card's height once stacked, so let
     each story size to its own content instead of stretching equally. */
  .ctc-news-side { height: auto; }
  .ctc-news-side__item { flex: 0 0 auto; }
}

/* ==========================================================================
   Home News & Events thumbnails (2026-07-09) ? the thumb box used
   height:100%, which resolves to auto inside the flex row, so each thumb
   took its photo's intrinsic aspect ratio (a portrait photo rendered about
   twice as tall as its neighbours). Pin every thumb to one landscape ratio;
   object-fit:cover crops the photo to it.
   ========================================================================== */
.ctc-home-event__media {
  height: auto;
  min-height: 0;
  aspect-ratio: 3 / 2;
  align-self: center;
}

/* The last event in the home News & Events list needs no divider below it
   (the base rule paints border-bottom on every .ctc-home-event with
   !important, so the override must match). */
.ctc-home-event:last-of-type {
  border-bottom: 0 !important;
}

/* ==========================================================================
   News article page (2026-07-15) ? editorial story layout.
   Canonical URL is /blog/<slug>/. The article gets its own masthead and
   media composition rather than reusing the standard interior page header.
   ========================================================================== */
.ctc-story-hero {
  position: relative;
  overflow: clip;
  background: transparent;
  border-bottom: 0;
}
.ctc-story-hero::before {
  content: none;
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(15, 23, 42, .03) 1px, transparent 1px) 0 0 / 34px 34px,
    linear-gradient(rgba(15, 23, 42, .03) 1px, transparent 1px) 0 0 / 34px 34px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.35), transparent 78%);
  pointer-events: none;
}
.ctc-story-hero__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.25rem, 1rem + 1.6vw, 2.5rem);
  padding: 0 0 clamp(.75rem, .55rem + 1vw, 1.25rem);
}
.ctc-story-hero__copy {
  width: 100%;
  max-width: 100%;
  padding: 0;
  text-align: left;
}
.ctc-story-hero__title {
  margin: 0;
  width: 100%;
  max-width: 100%;
  font-family: var(--ff-sans);
  font-size: 1.75rem;
  line-height: 1.12;
  letter-spacing: -.015em;
  font-weight: 600;
  color: #10233f;
  text-wrap: normal;
}
.ctc-story-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.15rem;
  align-items: center;
  justify-content: flex-start;
  margin: 1.25rem 0 0;
  color: #4b5b72;
  font-size: .88rem;
}
.ctc-story-hero__meta-item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.ctc-story-hero__meta-item .bi {
  font-size: 14px;
  color: #8a6a2f;
}
.ctc-story-hero__deck {
  margin: 1.5rem 0 0;
  max-width: 58ch;
  font-size: clamp(1.025rem, 0.98rem + 0.25vw, 1.15rem);
  line-height: 1.85;
  color: #334155;
  border-left: 2px solid var(--ctc-gold);
  padding-left: 1.25rem;
}
.ctc-story-hero__media {
  margin: 0;
  width: 100%;
  position: relative;
}
.ctc-story-hero__media::after {
  content: none;
}
.ctc-story-hero__media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 8px;
  border: 0;
  box-shadow: none;
}

.ctc-article-page {
  padding-top: clamp(2.5rem, 2rem + 2vw, 4rem);
  padding-bottom: clamp(4rem, 3rem + 3vw, 6rem);
}
.ctc-article {
  padding-top: 0;
  padding-bottom: 0;
}
.ctc-article__col {
  width: 100%;
  max-width: min(100%, 920px);
  margin-inline: auto;
}
@media (max-width: 991.98px) {
  .ctc-article__col {
    max-width: 100%;
  }
}
.ctc-story-marker {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin: 0 0 1.15rem;
  color: #7b8798;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ctc-story-marker__line {
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, #b69254, rgba(182, 146, 84, .22));
}
.ctc-article__body {
  font-size: 17.5px;
  line-height: 1.88;
  color: #1f2937;
}
/* Lede: only the article's opening paragraph reads larger with a scholarly drop cap */
.ctc-article__lede > p:first-child {
  font-size: 20px;
  line-height: 1.78;
  color: var(--ctc-navy);
}
.ctc-article__lede > p:first-child::first-letter {
  font-family: var(--ff-display);
  font-size: 3.8rem;
  font-weight: 600;
  float: left;
  line-height: 0.82;
  margin-right: 0.12em;
  margin-top: 0.05em;
  color: var(--ctc-navy);
}
.ctc-article__body p { margin-bottom: 1.25rem; }

@media (max-width: 991.98px) {
  .ctc-story-hero__inner {
    gap: 2rem;
  }
  .ctc-story-hero__title {
    max-width: 100%;
  }
  .ctc-story-hero__media {
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .ctc-story-hero__inner {
    padding-top: 2rem;
    padding-bottom: 1.5rem;
  }
  .ctc-story-hero__title {
    max-width: 100%;
    font-size: clamp(1.85rem, 1.25rem + 3vw, 2.75rem);
  }
  .ctc-story-hero__deck {
    font-size: 1rem;
    line-height: 1.75;
  }
}
.ctc-article-section { margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); } .ctc-article-section__media { display: grid; gap: 1rem; } .ctc-article-section__media img, .ctc-article-section__card img, .ctc-article-section--image-row img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px !important; border: 1px solid rgba(15, 23, 42, .06); box-shadow: var(--shadow-sm); transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease); } .ctc-article-section__media img:hover, .ctc-article-section__card img:hover, .ctc-article-section--image-row img:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } .ctc-article-section--media-text { display: grid; gap: 1.5rem 2.5rem; align-items: start; } @media (min-width: 768px) { .ctc-article-section--media-first { grid-template-columns: 320px minmax(0, 1fr); } .ctc-article-section--media-last { grid-template-columns: minmax(0, 1fr) 320px; } } .ctc-article-section--card-row, .ctc-article-section--two-col { display: grid; gap: 1.75rem 1.5rem; } @media (min-width: 640px) { .ctc-article-section--card-row { grid-template-columns: repeat(3, 1fr); } .ctc-article-section--two-col { grid-template-columns: repeat(2, 1fr); column-gap: clamp(2rem, 3vw, 4rem); } } .ctc-article-section--image-row { display: flex; flex-wrap: wrap; gap: .75rem; } .ctc-article-section--image-row img { flex: 1 1 calc((100% - 1.5rem) / 3); min-width: 180px; max-width: calc(50% - .375rem); } @media (max-width: 480px) { .ctc-article-section--image-row img { min-width: 100%; max-width: 100%; } } .ctc-article-section__card { margin: 0; background: var(--ctc-surface); border: 1px solid var(--ctc-line); border-radius: 14px; padding: 0.8rem; box-shadow: var(--shadow-sm); transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease); } .ctc-article-section__card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } .ctc-article-section__card img { border-radius: 8px !important; } .ctc-article-section__card figcaption { margin-top: .75rem; font-size: .92rem; line-height: 1.6; color: #4b5563; } .ctc-article-section__card figcaption p { margin-bottom: .35rem; }
.ctc-richtext blockquote { border-left: 4px solid var(--ctc-gold) !important; padding: 1.25rem 1.75rem !important; margin: 2.2rem 0 !important; background: rgba(201, 168, 76, 0.045) !important; border-radius: 0 12px 12px 0 !important; font-family: var(--ff-display) !important; font-style: italic !important; font-size: 1.25rem !important; line-height: 1.65 !important; color: var(--ctc-navy) !important; position: relative !important; } .ctc-richtext blockquote::before { content: "?"; position: absolute; left: 10px; top: -10px; font-size: 4rem; color: var(--ctc-gold); opacity: 0.15; font-family: var(--ff-display); } .ctc-article__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: clamp(2.2rem, 1.8rem + 2vw, 3.5rem); padding-top: 1.5rem; border-top: 1px solid var(--ctc-line); } .ctc-article__foot-label { font-family: var(--ff-sans); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ctc-muted); } .ctc-article__share { display: flex; gap: .6rem; } .ctc-article__share a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--ctc-line-strong); color: var(--ctc-navy); font-size: .95rem; transition: background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease); } .ctc-article__share a:hover, .ctc-article__share a:focus-visible { background: var(--ctc-navy); border-color: var(--ctc-navy); color: #fff; transform: translateY(-3px); } .ctc-backlink { font-family: var(--ff-sans); font-weight: 600; color: var(--ctc-navy); font-size: 0.92rem; transition: color 0.2s var(--ease), transform 0.2s var(--ease); display: inline-flex; align-items: center; gap: 6px; text-decoration: none; } .ctc-backlink:hover { color: var(--ctc-gold-deep); transform: translateX(-4px); } .ctc-article-more { background: var(--ctc-paper-deep); border-top: 1px solid var(--ctc-line); padding-block: clamp(2.5rem, 1.8rem + 2.5vw, 4.5rem); } .ctc-article-more__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: clamp(1.2rem, 1rem + 1vw, 2rem); } .ctc-article-more__head .ctc-eyebrow { margin-bottom: .4rem; } .ctc-article-more__head h2 { font-size: clamp(1.5rem, 1.25rem + 1.25vw, 2.2rem); margin: 0; } .ctc-article-more__all { display: inline-flex; align-items: center; gap: .4rem; flex: 0 0 auto; font-family: var(--ff-sans); font-size: .88rem; font-weight: 600; color: var(--ctc-home-navy-2); text-decoration: none; white-space: nowrap; padding-bottom: .3rem; } .ctc-article-more__all i { color: var(--ctc-home-gold); transition: transform .2s var(--ease); } .ctc-article-more__all:hover i { transform: translateX(3px); } @media (max-width: 575.98px) { .ctc-article__body { font-size: 16px; } .ctc-article__body > p:first-child { font-size: 17.5px; } .ctc-article__foot .ctc-backlink { margin-left: 0 !important; width: 100%; } .ctc-article-more__head { flex-direction: column; align-items: flex-start; gap: .5rem; } }
/* ---- News article balance pass (2026-07-15) ----------------------------- */
.ctc-article-more {
  background: transparent;
  border-top: 0;
  padding-top: clamp(2.5rem, 2rem + 2vw, 3.5rem);
}

/* ---- Adaptive grouped-image layouts for news articles ------------------- */
.ctc-article-section--card-row {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.ctc-article-section--card-row > * {
  grid-column: span 4;
}
.ctc-article-section--card-row.ctc-article-section--count-1 > * {
  grid-column: 1 / -1;
}
.ctc-article-section--card-row.ctc-article-section--count-2 > * {
  grid-column: span 6;
}
.ctc-article-section--card-row.ctc-article-section--count-4 > * {
  grid-column: span 6;
}

/* ---- Album: layout_5 (--image-row) orientation-aware mosaic (2026-07-15) -
   Portrait uploads no longer crop. Tiles keep a uniform column width; each
   tile's grid row-span is measured from the image's natural aspect ratio in
   JS (initAlbumMosaic in ctc.js), so the box always matches the photo's
   orientation. grid-auto-rows is a fine track that the row-spans quantise
   against, and grid-auto-flow: dense backfills the gaps that taller portrait
   tiles would otherwise leave. */
.ctc-article-section--image-row {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 8px;
  grid-auto-flow: row dense;
}
.ctc-article-section--image-row > img {
  grid-column: auto;
  grid-row: span 28; /* ~4:3 fallback before JS measures / if JS is off */
  width: 100%;
  height: 100%;
  min-width: 0;
  max-width: none;
  aspect-ratio: auto; /* box now comes from the grid area, not a fixed ratio */
  object-fit: cover;  /* box matches the true ratio, so this only trims rounding */
}

@media (max-width: 767.98px) {
  .ctc-article-section--card-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ctc-article-section--card-row > * {
    grid-column: auto !important;
  }
  .ctc-article-section--card-row.ctc-article-section--count-1 > * {
    grid-column: 1 / -1 !important;
  }
  .ctc-article-section--image-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 479.98px) {
  .ctc-article-section--card-row {
    grid-template-columns: 1fr;
  }
  .ctc-article-section--card-row > * {
    grid-column: 1 / -1 !important;
  }
  .ctc-article-section--image-row {
    grid-template-columns: 1fr;
  }
}

/* ---- Exact grouped-card row patterns for --card-row (1-10 cards) -------- */
@media (min-width: 768px) {
  .ctc-article-section--card-row {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .ctc-article-section--card-row > * {
    grid-column: span 2 !important;
  }

  .ctc-article-section--card-row.ctc-article-section--count-1 > * {
    grid-column: 1 / -1 !important;
  }

  .ctc-article-section--card-row.ctc-article-section--count-2 > *,
  .ctc-article-section--card-row.ctc-article-section--count-4 > * {
    grid-column: span 3 !important;
  }

  .ctc-article-section--card-row.ctc-article-section--count-5 > *:nth-child(-n+2),
  .ctc-article-section--card-row.ctc-article-section--count-7 > *:nth-child(-n+2),
  .ctc-article-section--card-row.ctc-article-section--count-7 > *:nth-last-child(-n+2),
  .ctc-article-section--card-row.ctc-article-section--count-10 > *:nth-child(-n+2),
  .ctc-article-section--card-row.ctc-article-section--count-10 > *:nth-child(6),
  .ctc-article-section--card-row.ctc-article-section--count-10 > *:nth-child(7) {
    grid-column: span 3 !important;
  }

  .ctc-article-section--card-row.ctc-article-section--count-8 > *:nth-child(-n+3),
  .ctc-article-section--card-row.ctc-article-section--count-8 > *:nth-last-child(-n+3) {
    grid-column: span 2 !important;
  }

  .ctc-article-section--card-row.ctc-article-section--count-8 > *:nth-child(4),
  .ctc-article-section--card-row.ctc-article-section--count-8 > *:nth-child(5) {
    grid-column: span 3 !important;
  }

  .ctc-article-section--card-row.ctc-article-section--count-9 > * {
    grid-column: span 2 !important;
  }
}

/* ---- News cover image: respect native orientation (2026-07-15) ----------
   The hero/cover keeps its 16:10 fallback box only until initCoverOrientation
   (ctc.js) measures the image. A landscape cover then shows at its natural
   ratio across the column; a portrait cover is centred at a portrait width and
   capped in height, so neither orientation is ever cropped. */
.ctc-story-hero__media.is-oriented img {
  aspect-ratio: auto;
  width: auto;
  height: auto;
  max-width: 100%;
  margin-inline: auto;
}
.ctc-story-hero__media.is-portrait img {
  max-width: min(100%, 460px);
  max-height: 80vh;
}

/* Error pages ? the status block sits above the copy once the two columns
   no longer fit side by side. */
@media (max-width: 40rem) {
  .ctc-errorpage { padding: 3rem 0 4rem; }
  .ctc-errorpage__card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2.25rem 1.5rem;
  }
  .ctc-errorpage__links { grid-template-columns: 1fr; }
}
@media (min-width: 40.0625rem) and (max-width: 61.9375rem) {
  .ctc-errorpage__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- Navbar: burger now collapses at xl (1200px) instead of lg -------------
   Landscape tablets (~992?1199px) can't fit the long college name beside the
   6-item horizontal menu, so it collapses to the burger there too. Re-apply the
   collapsed-menu cosmetics (smaller brand, divider above the open panel) that
   the ?991.98px layer already gives narrower screens. */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .ctc-navbar .navbar-brand .ctc-brand-text strong { font-size: 16px; }
  .ctc-navbar .navbar-collapse {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #e6eaf1;
  }
  .ctc-navbar .dropdown-menu { box-shadow: none; }
}

/* ==========================================================================
   Home hero + header - full-bleed navy overlay (2026-08)
   Matches the CTC landing composition: white bar, dark left wash, white type,
   gold primary CTA + ghost secondary.
   ========================================================================== */

/* Brand lockup: name over motto */
.ctc-navbar .navbar-brand .ctc-brand-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  color: var(--ctc-home-navy-2);
  line-height: 1.15;
}

.ctc-navbar .navbar-brand .ctc-brand-text strong {
  max-width: none;
  font-family: var(--ff-display);
  font-size: clamp(1.05rem, .9rem + .55vw, 1.35rem);
  font-weight: 700;
  color: var(--ctc-home-navy-2);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

.ctc-navbar .navbar-brand .ctc-brand-text span {
  font-family: var(--ff-sans);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: none;
  color: #5b6477;
}

/* Nav links: small centered gold mark under the label text;
   expands evenly left + right on hover, capped at the text width. */
.ctc-navbar .nav-link {
  font-family: var(--ff-sans) !important;
  font-size: .92rem;
  font-weight: 600;
  color: var(--ctc-home-navy-2);
  padding: .45rem .85rem;
  position: relative;
  display: inline-flex;
  align-items: center;
}

.ctc-navbar .navbar-nav > .nav-item {
  display: flex;
  align-items: center;
}

/* Keep desktop dropdowns below the toggle — never flip upward via Popper. */
@media (min-width: 1200px) {
  .ctc-navbar .nav-item.dropdown {
    position: relative;
  }

  .ctc-navbar .nav-item.dropdown > .dropdown-menu {
    top: 100% !important;
    bottom: auto !important;
    transform: none !important;
  }
}

.ctc-navbar .nav-link .ctc-nav-label {
  position: relative;
  display: inline-block;
  line-height: 1.2;
  padding-bottom: .15rem;
}

.ctc-navbar .nav-link .ctc-nav-label::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1.5px;
  border-radius: 0;
  background: var(--ctc-home-gold);
  transform: none;
  transform-origin: left bottom;
  transition: width .22s var(--ease);
  pointer-events: none;
}

.ctc-navbar .nav-link:hover,
.ctc-navbar .nav-link:focus,
.ctc-navbar .nav-link.active {
  color: var(--ctc-home-navy-2);
}

/* Active: gold rule spans the full label (first letter through last). */
.ctc-navbar .nav-link.active .ctc-nav-label::after {
  width: 100%;
}

.ctc-navbar .nav-link.active:hover .ctc-nav-label::after {
  width: 100%;
}

/* Hide Bootstrap caret; chevron SVG is used instead. */
.ctc-navbar .nav-link.dropdown-toggle::after {
  display: none !important;
}

.ctc-navbar .dropdown-chevron {
  opacity: .7;
  flex: 0 0 auto;
}

/* Apply Now CTA */
.ctc-nav-cta-item {
  margin-left: 1.35rem;
}

.ctc-nav-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1.15rem;
  border-radius: 8px;
  background: var(--ctc-home-navy-2);
  color: #fff !important;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .18s var(--ease), transform .18s var(--ease);
}

.ctc-nav-cta:hover,
.ctc-nav-cta:focus {
  background: #0a336f;
  color: #fff !important;
  transform: translateY(-1px);
}

/* ---- Hero: full-bleed photo + navy left wash ---------------------------- */
.ctc-home-hero {
  position: relative;
  min-height: clamp(480px, 68vh, 640px);
  overflow: hidden;
  background: var(--ctc-home-navy-2);
}

.ctc-home-hero__image {
  position: absolute;
  inset: 0;
  background-image: url("../img/hero-main.e12ec251c22a.jpeg");
  background-size: cover;
  background-position: center right;
}

.ctc-home-hero__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(0, 31, 77, .94) 0%,
      rgba(0, 31, 77, .88) 22%,
      rgba(0, 31, 77, .62) 42%,
      rgba(0, 31, 77, .28) 62%,
      rgba(0, 31, 77, .08) 78%,
      rgba(0, 31, 77, 0) 100%
    ),
    linear-gradient(180deg, rgba(0, 31, 77, .18) 0%, rgba(0, 31, 77, .05) 40%, rgba(0, 31, 77, .22) 100%);
}

.ctc-home-hero__inner {
  position: relative;
  min-height: clamp(480px, 68vh, 640px);
  display: flex;
  align-items: center;
  padding-block: 3.5rem 4rem;
}

.ctc-home-hero__copy {
  width: min(100%, 560px);
  max-width: 560px;
  padding-left: 0;
  transform: none;
}

.ctc-home-hero h1 {
  margin: 0 0 1.1rem;
  color: #fff;
  font-family: var(--ff-display);
  font-size: clamp(1.85rem, 1.45rem + 1.4vw, 2.625rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.ctc-home-hero h1 span {
  color: var(--ctc-home-gold);
}

.ctc-home-hero__lead {
  max-width: 34rem;
  margin: 0 0 1.75rem;
  color: rgba(255, 255, 255, .88);
  font-family: var(--ff-sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
}

.ctc-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  align-items: center;
  margin-top: 0;
}

/* Gold primary CTA on the dark hero ? same gold as Admissions accents */
.ctc-home-hero .ctc-home-btn--gold {
  background: var(--ctc-home-gold);
  border: 1px solid var(--ctc-home-gold);
  color: #0a142c;
  border-radius: 10px;
  font-weight: 700;
  min-height: 48px;
  padding: 0 1.35rem;
}

.ctc-home-hero .ctc-home-btn--gold:hover {
  background: #e6b84a;
  border-color: #e6b84a;
  color: #0a142c;
}

/* Ghost secondary on the dark hero */
.ctc-home-btn--ghost {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, .85);
  color: #fff;
  border-radius: 10px;
  font-weight: 600;
  min-height: 48px;
  padding: 0 1.35rem;
}

.ctc-home-btn--ghost:hover,
.ctc-home-btn--ghost:focus {
  background: rgba(255, 255, 255, .12);
  border-color: #fff;
  color: #fff;
}

@media (min-width: 992px) {
  .ctc-home-hero,
  .ctc-home-hero__inner {
    min-height: clamp(520px, 72vh, 680px);
  }

  .ctc-navbar .nav-link {
    font-size: .95rem;
    padding: .5rem .95rem;
  }

  .ctc-nav-cta {
    min-height: 44px;
    padding: 0 1.35rem;
    font-size: .8rem;
  }
}

@media (max-width: 1199.98px) {
  .ctc-nav-cta-item {
    margin-left: 0;
    margin-top: .85rem;
  }

  .ctc-nav-cta {
    width: 100%;
  }

  /* Brand + hamburger on one row (must follow the desktop brand clamp rules).
     Keep wrap so .navbar-collapse can still stack full-width below. */
  .ctc-navbar > .container {
    align-items: center;
  }

  .ctc-navbar .navbar-brand {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 3.25rem);
    gap: 12px;
    white-space: normal;
  }

  .ctc-navbar .navbar-brand img,
  .ctc-navbar.is-scrolled .navbar-brand img {
    height: 48px;
    flex-shrink: 0;
  }

  .ctc-navbar .navbar-brand .ctc-brand-text {
    min-width: 0;
  }

  .ctc-navbar .navbar-brand .ctc-brand-text strong {
    min-width: 0;
    font-size: 16px;
  }

  .ctc-navbar .navbar-brand .ctc-brand-text span {
    display: block;
    font-size: .65rem;
    letter-spacing: .15em;
  }

  .ctc-navbar .navbar-toggler {
    flex: 0 0 auto;
    margin-left: auto;
  }

  @media (max-width: 575.98px) {
    .ctc-navbar .navbar-brand img,
    .ctc-navbar.is-scrolled .navbar-brand img {
      height: 38px;
    }

    .ctc-navbar .navbar-brand .ctc-brand-text strong {
      font-size: 14px;
    }

    .ctc-navbar .navbar-brand .ctc-brand-text span {
      display: none;
    }
  }

  .ctc-navbar .navbar-collapse {
    flex-basis: 100%;
    width: 100%;
  }

  /* Submenus under parents — the desktop row flex on .nav-item was
     placing open .dropdown-menu beside the toggle instead of below. */
  .ctc-navbar .navbar-nav {
    flex-direction: column;
    align-items: stretch;
  }

  .ctc-navbar .navbar-nav > .nav-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .ctc-navbar .navbar-nav > .nav-item > .nav-link {
    width: 100%;
    justify-content: flex-start;
  }

  .ctc-navbar .dropdown-menu {
    position: static !important;
    float: none;
    transform: none !important;
    inset: auto !important;
    width: 100%;
    min-width: 0;
    margin: 0;
  }
}

@media (max-width: 991.98px) {
  .ctc-home-hero__copy {
    width: 100%;
    max-width: 34rem;
  }

  .ctc-home-hero__image {
    background-position: center;
  }
}

@media (max-width: 575.98px) {
  .ctc-home-hero,
  .ctc-home-hero__inner {
    min-height: 520px;
  }

  .ctc-home-hero__image {
    inset: 0;
  }

  .ctc-home-hero__inner {
    align-items: flex-end;
    padding-block: 2.5rem 2.75rem;
  }

  .ctc-home-hero h1 {
    font-size: clamp(1.85rem, 8vw, 2.35rem);
  }
}

/* ==========================================================================
   Heritage section - image + vision/mission (2026-08)
   ========================================================================== */

.ctc-heritage {
  padding: var(--ctc-home-section-y) 0;
  overflow-x: hidden;
}

.ctc-heritage__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  /* Wide enough that the navy slab clears the cards. */
  gap: clamp(1.5rem, .8rem + 2.4vw, 3.2rem);
  align-items: stretch;
}

.ctc-heritage__copy {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-width: 0;
}

.ctc-heritage__media {
  position: relative;
  display: flex;
  min-height: 100%;
  min-width: 0;
}

/* Navy slab peeking out from behind the photo's upper half. */
.ctc-heritage__backdrop {
  position: absolute;
  left: -0.9rem;
  top: 5%;
  height: 80%;
  width: 4.5rem;
  border-radius: 1.25rem;
  background: var(--ctc-home-navy-2, #001f4d);
  transform: rotate(-2.5deg);
}

.ctc-heritage__frame {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 100%;
  border-radius: 4rem 4rem 4rem 5rem;
  overflow: hidden;
  isolation: isolate;
  background: #e8e4dc;
  box-shadow: 0 22px 45px -30px rgba(10, 20, 44, .5);
}

.ctc-heritage__frame img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.ctc-heritage__head {
  text-align: center;
  margin: 0 auto 2.75rem;
  max-width: 40rem;
}

.ctc-heritage__kicker {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.15rem;
}

.ctc-heritage__eyebrow {
  margin: 0 0 .85rem;
  width: max-content;
  max-width: 100%;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ctc-heritage__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  margin-inline: calc(1ch + 0.16em);
}

.ctc-heritage__rule::before,
.ctc-heritage__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-heritage__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-heritage__head > h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
  line-height: 1.12;
}

.ctc-heritage__title-line {
  display: block;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

/* Heritage cards: compact heading icon + copy aligned under the title. */
.ctc-heritage__card {
  --hv-mark: 1.7rem;
  --hv-mark-gap: .7rem;
  position: relative;
  margin: 0;
  padding: 1.5rem 1.75rem 1.6rem;
  border-radius: 14px;
}

.ctc-heritage__card--vision {
  background: #fff9ec;
  border: 1px solid rgba(217, 166, 63, .45);
}

.ctc-heritage__card--values {
  flex: 1 1 auto;
  background: #f1f2f4;
  border: 1px solid #e1e3e7;
}

.ctc-heritage__card h3.ctc-heritage__card-heading {
  display: grid;
  grid-template-columns: var(--hv-mark) minmax(0, 1fr);
  column-gap: var(--hv-mark-gap);
  align-items: center;
  margin: 0 0 1rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: clamp(1.15rem, 1.02rem + .4vw, 1.35rem);
  font-weight: 700;
  line-height: 1.2;
}

.ctc-heritage__card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--hv-mark);
  height: var(--hv-mark);
  border-radius: 50%;
  background: rgba(217, 166, 63, .14);
  color: var(--ctc-home-gold, #d9a63f);
  font-size: .88rem;
  line-height: 1;
}

.ctc-heritage__card p,
.ctc-heritage__vision-text {
  margin: 0;
  padding-left: calc(var(--hv-mark) + var(--hv-mark-gap));
  color: #223354;
  font-family: var(--ff-sans);
  font-size: .95rem;
  line-height: 1.78;
}

/* Tick bullets: same left column as the heading icon / title. */
.ctc-heritage__values {
  gap: .65rem;
}

.ctc-heritage__values li {
  display: grid;
  grid-template-columns: var(--hv-mark) minmax(0, 1fr);
  column-gap: var(--hv-mark-gap);
  align-items: flex-start;
}

.ctc-heritage__values .ctc-clubs-bullet-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--hv-mark);
  height: var(--hv-mark);
  font-size: 1rem;
  line-height: 1;
}

.ctc-heritage__values .ctc-clubs-bullet-text {
  color: #223354;
}

/* Arch-topped scripture card overlapping the photo. */
.ctc-heritage__quote {
  position: absolute;
  right: 0;
  bottom: -0.55rem;
  z-index: 2;
  width: min(53%, 18rem);
  margin: 0;
  padding: 1.5rem 1.4rem 1.6rem;
  text-align: center;
  color: var(--ctc-home-navy-2, #001f4d);
  background: #f9f3ed;
  border: 1px solid #e3cbad;
  border-radius: 50% 50% 10px 10px / 23% 23% 7px 7px;
  box-shadow: 0 18px 34px -26px rgba(10, 20, 44, .4);
}

.ctc-heritage__quote-emblem {
  display: block;
  color: var(--ctc-home-gold, #d9a63f);
  text-align: center;
  line-height: 1;
}

.ctc-heritage__quote-emblem .bi {
  font-size: 2.15rem;
}

.ctc-heritage__quote-emblem svg {
  display: block;
  width: 3.2rem;
  height: auto;
  margin: 0 auto;
}

.ctc-heritage__quote-mark {
  display: block;
  margin: .45rem 0 -.45rem;
  color: #c28129;
  font-family: var(--ff-display);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
}

.ctc-heritage__quote blockquote {
  margin: 0;
  font-family: var(--ff-display);
  font-size: .95rem;
  font-style: italic;
  line-height: 1.72;
}

.ctc-heritage__quote-rule {
  display: flex;
  align-items: center;
  width: 6.5rem;
  margin: 1rem auto .7rem;
  color: var(--ctc-home-gold, #d9a63f);
}

.ctc-heritage__quote-rule::before,
.ctc-heritage__quote-rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: currentColor;
}

.ctc-heritage__quote-rule span {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin: 0 .35rem;
  background: currentColor;
  transform: rotate(45deg);
}

.ctc-heritage__quote figcaption {
  color: #c58d3a;
  font-family: var(--ff-display);
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

@media (max-width: 991.98px) {
  .ctc-heritage__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .ctc-heritage__media {
    min-height: 0;
  }

  .ctc-heritage__frame {
    min-height: clamp(320px, 62vw, 460px);
  }

  /* Stacked, the media column starts at the container edge — keep the slab
     inside the gutter so it cannot widen the page. */
  .ctc-heritage__backdrop {
    display: none;
  }

  .ctc-heritage__head {
    margin-bottom: 2.15rem;
  }
}

@media (max-width: 575.98px) {
  .ctc-heritage {
    padding: 2.4rem 0;
  }

  .ctc-heritage__card {
    padding: 1.35rem 1.25rem 1.4rem;
  }

  /* Keep the desktop overlay: taller portrait photo, quote pinned to the
     bottom-right. Padding leaves room for the card to hang slightly below. */
  .ctc-heritage__media {
    display: block;
    padding-bottom: .55rem;
  }

  .ctc-heritage__frame {
    min-height: clamp(420px, 118vw, 540px);
    border-radius: 2.25rem 2.25rem 2.25rem 2.75rem;
  }

  .ctc-heritage__backdrop {
    display: none;
  }

  .ctc-heritage__quote {
    position: absolute;
    right: 0;
    bottom: -.4rem;
    z-index: 2;
    width: min(82%, 16.25rem);
    margin: 0;
    padding: 1.15rem 1.05rem 1.2rem;
    border-radius: 50% 50% 10px 10px / 18% 18% 7px 7px;
  }

  .ctc-heritage__quote-emblem .bi {
    font-size: 1.7rem;
  }

  .ctc-heritage__quote-mark {
    margin: .3rem 0 -.3rem;
    font-size: 1.85rem;
  }

  .ctc-heritage__quote blockquote {
    font-size: .86rem;
    line-height: 1.6;
  }

  .ctc-heritage__quote-rule {
    width: 5.25rem;
    margin: .75rem auto .55rem;
  }

  .ctc-heritage__quote figcaption {
    font-size: .8rem;
  }
}

/* ==========================================================================
   Degree programs - 4-card grid (2026-08)
   ========================================================================== */

.ctc-programs {
  padding: var(--ctc-home-section-y) 0;
  background: #f7f5f0;
}

.ctc-programs__head {
  text-align: center;
  margin: 0 auto 2.75rem;
  max-width: 40rem;
}

.ctc-programs__kicker {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.15rem;
}

.ctc-programs__eyebrow {
  margin: 0 0 .85rem;
  width: max-content;
  max-width: 100%;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ctc-programs__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  margin-inline: calc(1ch + 0.16em);
}

.ctc-programs__rule::before,
.ctc-programs__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-programs__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-programs__head h2 {
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-programs__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}

/* Admissions block: centered under degree cards */
.ctc-programs__admission {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 32rem);
  margin: clamp(2.4rem, 2rem + 1.8vw, 3.25rem) auto 0;
  text-align: center;
  color: var(--ctc-home-ink, #1d2433);
}

.ctc-programs__admission .ctc-programs__eyebrow {
  margin: 0 0 .85rem;
}

.ctc-programs__admission h2 {
  margin: 0 0 .7rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: clamp(1.15rem, 1.05rem + .35vw, 1.35rem);
  font-weight: 700;
  line-height: 1.25;
}

.ctc-programs__admission .ctc-admission-band__summary {
  margin: 0;
  max-width: 24rem;
  color: #2f3b52;
  font-family: var(--ff-sans);
  font-size: .95rem;
  line-height: 1.65;
}

.ctc-programs__admission .ctc-admission-band__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 1.35rem;
}

.ctc-program-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 100%;
  padding: 1.55rem 1.4rem 1.45rem;
  background: #fff;
  border: 1px solid rgba(10, 20, 44, .06);
  border-radius: 14px;
  box-shadow: 0 10px 28px -18px rgba(10, 20, 44, .28);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}

.ctc-program-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px -20px rgba(10, 20, 44, .35);
}

.ctc-program-card__badge {
  display: inline-flex;
  align-items: center;
  margin-bottom: 1.05rem;
  padding: .28rem .7rem;
  border: 1px solid var(--ctc-home-gold, #d9a63f);
  border-radius: 999px;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.2;
}

.ctc-program-card h3 {
  margin: 0 0 .7rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: clamp(1.15rem, 1.05rem + .35vw, 1.35rem);
  font-weight: 700;
  line-height: 1.25;
}

.ctc-program-card p {
  flex: 1 1 auto;
  margin: 0 0 1.35rem;
  color: #2f3b52;
  font-family: var(--ff-sans);
  font-size: .92rem;
  line-height: 1.65;
}

.ctc-program-card__link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: auto;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-sans);
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
  transition: color .18s var(--ease), gap .18s var(--ease);
}

.ctc-program-card__link i {
  color: var(--ctc-home-gold, #d9a63f);
  font-size: .95rem;
  transition: transform .18s var(--ease);
}

.ctc-program-card__link:hover,
.ctc-program-card__link:focus {
  color: var(--ctc-home-navy, #06275a);
  gap: .55rem;
}

.ctc-program-card__link:hover i,
.ctc-program-card__link:focus i {
  transform: translateX(2px);
}

@media (max-width: 1199.98px) {
  .ctc-programs__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
  }
}

@media (max-width: 639.98px) {
  .ctc-programs {
    padding: 2.4rem 0;
  }

  .ctc-programs__head {
    margin-bottom: 1.75rem;
  }

  .ctc-programs__grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Principal's Desk - split portrait + navy panel (2026-08)
   ========================================================================== */

.ctc-principal {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); /* 40 : 60 */
  align-items: stretch;
  background: #000b1e;
}

.ctc-principal__media {
  position: relative;
  min-height: clamp(520px, 58vw, 640px);
  overflow: hidden;
  background: #1a2233;
}

.ctc-principal__media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.ctc-principal__panel {
  display: flex;
  align-items: center;
  background: #000b1e;
  color: #fff;
  min-height: clamp(520px, 58vw, 640px);
}

.ctc-principal__inner {
  width: 100%;
  max-width: none;
  padding: clamp(2.75rem, 2.2rem + 2.8vw, 4.5rem) clamp(2rem, 1.5rem + 3.5vw, 4.25rem);
}

.ctc-principal__mark {
  display: block;
  margin: 0 0 .55rem;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: .75;
  letter-spacing: -.04em;
}

.ctc-principal__heading {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 1.5rem;
}

.ctc-principal__heading > h2,
.ctc-principal__inner > h2 {
  margin: 0 0 1.15rem;
  color: #fff;
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-principal__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  max-width: 100%;
  font-family: var(--ff-display);
  font-size: 27px;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin-inline: 1ch;
}

.ctc-principal__rule::before,
.ctc-principal__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-principal__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-principal__quote {
  margin: 0 0 1.35rem;
  max-width: none;
  color: #c8d6e8;
  font-family: var(--ff-sans);
  font-size: 16px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.72;
}

.ctc-principal__body {
  margin: 0 0 1.75rem;
  max-width: none;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  color: #fff;
  font-family: var(--ff-display);
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.72;
}

.ctc-principal__sign {
  padding-top: .35rem;
  margin-left: 0;
}

.ctc-principal__sign strong {
  display: block;
  margin: 0 0 .4rem;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-display);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.25;
}

.ctc-principal__sign span {
  display: block;
  color: rgba(255, 255, 255, .9);
  font-family: var(--ff-display);
  font-size: .92rem;
  font-weight: 500;
  line-height: 1.4;
}

@media (max-width: 991.98px) {
  .ctc-principal {
    grid-template-columns: 1fr;
  }

  .ctc-principal__media {
    min-height: 0;
    height: 0;
    padding-top: min(115%, 660px);
  }

  .ctc-principal__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Shift down to trim empty wall above the head and reveal clasped hands. */
    object-position: center 80%;
  }

  .ctc-principal__panel {
    min-height: 0;
  }

  .ctc-principal__inner {
    max-width: none;
  }

  .ctc-principal__heading {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .ctc-principal__heading > h2 {
    text-align: center;
  }

  .ctc-principal__quote,
  .ctc-principal__body {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }
}

/* ==========================================================================
   Vibrant Campus Life - masonry gallery (2026-08)
   ========================================================================== */

.ctc-campus {
  padding: var(--ctc-home-section-y) 0;
  background: #fff;
}

.ctc-campus__head {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto 2.5rem;
}

.ctc-campus__kicker {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.15rem;
}

.ctc-campus__eyebrow {
  margin: 0 0 .85rem;
  width: max-content;
  max-width: 100%;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ctc-campus__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  margin-inline: calc(1ch + 0.16em);
}

.ctc-campus__rule::before,
.ctc-campus__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-campus__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-campus__head h2 {
  margin: 0 0 .85rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-campus__lead {
  margin: 0 auto 1.5rem;
  max-width: 34rem;
  color: #5b6477;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
}

.ctc-campus__cta,
.ctc-programs__cta,
.ctc-announcements__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.55rem;
  border-radius: 999px;
  background: var(--ctc-home-navy-2, #001f4d);
  color: #fff !important;
  font-family: var(--ff-sans);
  font-size: .92rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .18s var(--ease), transform .18s var(--ease);
}

.ctc-campus__cta:hover,
.ctc-campus__cta:focus,
.ctc-programs__cta:hover,
.ctc-programs__cta:focus,
.ctc-announcements__cta:hover,
.ctc-announcements__cta:focus {
  background: #0a336f;
  color: #fff !important;
  transform: translateY(-1px);
}

.ctc-campus__grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1.15fr 1fr;
  grid-template-rows: minmax(190px, 1fr) minmax(210px, 1.1fr);
  gap: .9rem;
  min-height: clamp(460px, 52vw, 580px);
}

.ctc-campus-tile {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 14px;
  text-decoration: none;
  color: #fff;
  background: #1a2233;
  isolation: isolate;
}

.ctc-campus-tile--graduation { grid-column: 1; grid-row: 1; }
.ctc-campus-tile--foundation { grid-column: 1; grid-row: 2; }
.ctc-campus-tile--chapel { grid-column: 2; grid-row: 1 / span 2; }
.ctc-campus-tile--research { grid-column: 3; grid-row: 1; }
.ctc-campus-tile--heritage { grid-column: 3; grid-row: 2; }
.ctc-campus-tile--faculty { grid-column: 4; grid-row: 1 / span 2; }

.ctc-campus-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .45s var(--ease);
}

.ctc-campus-tile:hover img,
.ctc-campus-tile:focus img {
  transform: scale(1.04);
}

.ctc-campus-tile__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 15, 40, 0) 42%, rgba(0, 12, 32, .78) 100%);
  z-index: 1;
  pointer-events: none;
}

.ctc-campus-tile__meta {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: .65rem;
}

.ctc-campus-tile__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  border-radius: 50%;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: .9rem;
  background: rgba(0, 12, 32, .25);
}

.ctc-campus-tile__title {
  font-family: var(--ff-display);
  font-size: clamp(.92rem, .88rem + .2vw, 1.05rem);
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

@media (max-width: 991.98px) {
  .ctc-campus__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, minmax(180px, 220px));
    min-height: 0;
  }

  .ctc-campus-tile--graduation { grid-column: 1; grid-row: 1; }
  .ctc-campus-tile--chapel { grid-column: 2; grid-row: 1 / span 2; }
  .ctc-campus-tile--foundation { grid-column: 1; grid-row: 2; }
  .ctc-campus-tile--research { grid-column: 1; grid-row: 3; }
  .ctc-campus-tile--heritage { grid-column: 2; grid-row: 3; }
  .ctc-campus-tile--faculty { grid-column: 1 / span 2; grid-row: 4; min-height: 220px; }

  .ctc-campus__grid {
    grid-template-rows: repeat(4, minmax(170px, auto));
  }
}

@media (max-width: 639.98px) {
  .ctc-campus__grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: .75rem;
  }

  .ctc-campus-tile,
  .ctc-campus-tile--graduation,
  .ctc-campus-tile--foundation,
  .ctc-campus-tile--chapel,
  .ctc-campus-tile--research,
  .ctc-campus-tile--heritage,
  .ctc-campus-tile--faculty {
    grid-column: auto;
    grid-row: auto;
    min-height: 210px;
  }

  .ctc-campus-tile--tall {
    min-height: 280px;
  }
}

/* ==========================================================================
   Latest Announcements - notice cards (2026-08)
   ========================================================================== */

.ctc-announcements {
  padding: var(--ctc-home-section-y) 0;
  background: #f7f5f0;
}

.ctc-announcements__head {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto 2.5rem;
}

.ctc-announcements__kicker {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.15rem;
}

.ctc-announcements__eyebrow {
  margin: 0 0 .75rem;
  width: max-content;
  max-width: 100%;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ctc-announcements__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  margin-inline: calc(1ch + 0.16em);
}

.ctc-announcements__rule::before,
.ctc-announcements__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-announcements__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-announcements__head h2 {
  margin: 0 0 .85rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-announcements__lead {
  margin: 0 auto 1.5rem;
  max-width: 34rem;
  color: #5b6477;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
}

.ctc-announcements__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 52rem;
  margin: 0 auto;
}

.ctc-announce-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.15rem;
  padding: 1.05rem 1.25rem;
  background: #fff;
  border: 1px solid #e6eaf1;
  border-radius: 12px;
  box-shadow: 0 8px 22px -16px rgba(10, 20, 44, .28);
  text-decoration: none;
  color: inherit;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease);
}

.ctc-announce-card:hover,
.ctc-announce-card:focus {
  transform: translateY(-2px);
  border-color: #d5dbe6;
  box-shadow: 0 14px 30px -18px rgba(10, 20, 44, .35);
  color: inherit;
}

.ctc-announce-card__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 10px;
  background: #eef1f6;
  color: var(--ctc-home-navy-2, #001f4d);
  line-height: 1.05;
}

.ctc-announce-card--featured .ctc-announce-card__date {
  background: var(--ctc-home-navy-2, #001f4d);
  color: #fff;
}

.ctc-announce-card__month {
  font-family: var(--ff-sans);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ctc-announce-card__day {
  font-family: var(--ff-display);
  font-size: 1.45rem;
  font-weight: 700;
}

.ctc-announce-card__body {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  min-width: 0;
}

.ctc-announce-card__title {
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: clamp(1.05rem, 1rem + .25vw, 1.2rem);
  font-weight: 700;
  line-height: 1.3;
}

.ctc-announce-card__desc {
  color: #5b6477;
  font-family: var(--ff-sans);
  font-size: .9rem;
  line-height: 1.5;
}

.ctc-announce-card__arrow {
  color: var(--ctc-home-navy-2, #001f4d);
  font-size: 1.15rem;
  opacity: .75;
}

.ctc-announcements__empty {
  margin: 0;
  text-align: center;
  color: #5b6477;
  font-size: .95rem;
}

@media (max-width: 575.98px) {
  .ctc-announce-card {
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    padding: .85rem .9rem;
  }

  .ctc-announce-card__date {
    width: 3.15rem;
    height: 3.15rem;
  }

  .ctc-announce-card__day {
    font-size: 1.2rem;
  }

  .ctc-announce-card__title {
    font-size: 1.02rem;
    line-height: 1.35;
  }

  .ctc-announce-card__desc {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .ctc-announce-card__arrow {
    display: none;
  }
}

/* ==========================================================================
   Calling CTA band (2026-08)
   ========================================================================== */

.ctc-calling {
  padding: clamp(3rem, 2.4rem + 3.5vw, 5rem) 0;
  background: #001535;
  color: #fff;
  text-align: center;
}

/* Match Support Desk (admission page) paper background. */
.ctc-calling--paper {
  background: var(--ctc-paper-deep, #f8f5f0);
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-calling--paper .ctc-calling__heading > h2 {
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-calling--paper .ctc-calling__lead {
  color: #5b6477;
}

.ctc-calling--paper .ctc-calling__ornament::before,
.ctc-calling--paper .ctc-calling__ornament::after,
.ctc-calling--paper .ctc-calling__rule {
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-calling--paper .ctc-calling__ornament span {
  border-color: var(--ctc-home-gold, #d9a63f);
  background: transparent;
}

.ctc-calling__inner {
  max-width: 44rem;
  margin: 0 auto;
}

.ctc-calling__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.35rem;
}

.ctc-calling__heading > h2 {
  margin: 0 0 1rem;
  color: #fff;
  font-family: var(--ff-display);
  font-weight: 700;
  text-wrap: balance;
}

.ctc-calling__eyebrow {
  margin: 0 0 .85rem;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ctc-calling__eyebrow + h2 {
  margin-top: 0;
}

.ctc-calling__heading > h2 + .ctc-calling__rule {
  margin: 0 auto;
}

/* Programs CTA: Academic Excellence–style underline under the eyebrow only. */
.ctc-calling__heading:has(.ctc-programs__kicker) {
  margin-bottom: 1.35rem;
}

.ctc-calling__heading .ctc-programs__kicker {
  margin: 0 auto 1.15rem;
}

.ctc-calling__heading:has(.ctc-programs__kicker) > h2 {
  margin-bottom: 0;
}

.ctc-calling__ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 12rem);
  margin: 0 auto 1.5rem;
}

.ctc-calling__ornament::before,
.ctc-calling__ornament::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-calling__ornament span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-calling__inner > h2 {
  margin: 0 0 1rem;
  color: #fff;
  font-family: var(--ff-display);
  font-weight: 700;
  text-wrap: balance;
}

.ctc-calling__rule {
  width: min(100%, 5.5rem);
  height: 1px;
  margin: 0 auto;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-calling__lead {
  margin: 0 auto 2rem;
  max-width: 34rem;
  color: rgba(255, 255, 255, .92);
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
}

.ctc-calling__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
}

.ctc-calling__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: 0 1.4rem;
  border-radius: 8px;
  font-family: var(--ff-sans);
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .18s var(--ease), color .18s var(--ease),
              border-color .18s var(--ease), transform .18s var(--ease);
}

.ctc-calling__btn--gold {
  background: var(--ctc-home-gold, #d9a63f);
  border: 1px solid var(--ctc-home-gold, #d9a63f);
  color: #001535 !important;
}

.ctc-calling__btn--gold:hover,
.ctc-calling__btn--gold:focus {
  background: #e6b84a;
  border-color: #e6b84a;
  color: #001535 !important;
  transform: translateY(-1px);
}

.ctc-calling__btn--ghost {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, .88);
  color: #fff !important;
}

.ctc-calling__btn--ghost:hover,
.ctc-calling__btn--ghost:focus {
  background: rgba(255, 255, 255, .1);
  border-color: #fff;
  color: #fff !important;
  transform: translateY(-1px);
}

@media (max-width: 575.98px) {
  .ctc-calling__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .ctc-calling__btn {
    width: 100%;
  }
}

/* ==========================================================================
   About Our College (2026-08)
   ========================================================================== */

.ctc-about {
  padding: clamp(2.75rem, 2.2rem + 3vw, 4.75rem) 0;
  background: #fff;
}

.ctc-about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(2rem, 1.4rem + 3vw, 3.75rem);
  align-items: center;
}

.ctc-about__heading {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 1.15rem;
}

.ctc-about__eyebrow {
  margin: 0 0 .85rem;
  width: max-content;
  max-width: 100%;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ctc-about__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  max-width: 100%;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  margin-inline: calc(1ch + 0.14em);
}

.ctc-about__rule::before,
.ctc-about__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-about__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-about__copy > h2 {
  margin: 0 0 1.25rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-about__text {
  margin: 0 0 1.75rem;
}

.ctc-about__text p {
  margin: 0 0 1rem;
  color: #3a4558;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
}

.ctc-about__text p:last-child {
  margin-bottom: 0;
}

.ctc-about__links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}

.ctc-about-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 108px;
  padding: 1rem .7rem;
  text-align: center;
  text-decoration: none;
  background: #fff;
  border: 1px solid #e4e8f0;
  border-radius: 12px;
  box-shadow: 0 8px 20px -16px rgba(10, 20, 44, .3);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease),
              border-color .18s var(--ease);
}

.ctc-about-link:hover,
.ctc-about-link:focus {
  transform: translateY(-2px);
  border-color: #d5dbe6;
  box-shadow: 0 14px 28px -18px rgba(10, 20, 44, .35);
}

.ctc-about-link i {
  color: var(--ctc-home-gold, #d9a63f);
  font-size: 1.55rem;
  line-height: 1;
  margin-bottom: .15rem;
}

.ctc-about-link__label {
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
}

.ctc-about-link__sub {
  color: #6b7385;
  font-family: var(--ff-sans);
  font-size: .85rem;
  line-height: 1.3;
}

.ctc-about__media {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 18px 40px -28px rgba(10, 20, 44, .4);
  background: #e8e4dc;
}

.ctc-about__media img {
  display: block;
  width: 100%;
  height: clamp(320px, 34vw + 120px, 480px);
  object-fit: cover;
  object-position: center;
}

@media (max-width: 991.98px) {
  .ctc-about__grid {
    grid-template-columns: 1fr;
  }

  .ctc-about__media {
    order: -1;
  }

  .ctc-about__media img {
    height: clamp(240px, 55vw, 360px);
  }

  .ctc-about__heading {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .ctc-about__copy > h2 {
    text-align: center;
  }

  .ctc-about__text,
  .ctc-about__text p {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }
}

@media (max-width: 639.98px) {
  .ctc-about__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ctc-about__links > :last-child {
    grid-column: 1 / -1;
    width: calc((100% - .85rem) / 2);
    justify-self: center;
  }
}

/* ==========================================================================
   Stay Connected / YouTube (home)
   ========================================================================== */

.ctc-youtube {
  padding: clamp(2.75rem, 2.2rem + 3vw, 4.75rem) 0;
  background: #f7f5f0;
}

.ctc-youtube__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 1.4rem + 3vw, 3.75rem);
  align-items: center;
}

.ctc-youtube__heading {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 1.15rem;
}

.ctc-youtube__eyebrow {
  margin: 0 0 .85rem;
  width: max-content;
  max-width: 100%;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ctc-youtube__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: auto;
  max-width: 100%;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  margin-inline: calc(1ch + 0.14em);
}

.ctc-youtube__rule::before,
.ctc-youtube__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-youtube__rule span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 0 .55rem;
  border: 1.5px solid var(--ctc-home-gold, #d9a63f);
  background: transparent;
  transform: rotate(45deg);
}

.ctc-youtube__copy > h2 {
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-youtube__handle {
  margin: .85rem 0 0;
  color: var(--ctc-muted, #5b6477);
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.4;
}

.ctc-youtube__text {
  margin: 1rem 0 0;
  color: #3a4558;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
}

.ctc-youtube__cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: 1.35rem;
  color: var(--ctc-navy, #1a2e5a);
  font-family: var(--ff-sans);
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
  transition: color .18s var(--ease), gap .18s var(--ease);
}

.ctc-youtube__cta:hover,
.ctc-youtube__cta:focus-visible {
  color: var(--ctc-gold-deep, #a07e2c);
}

.ctc-youtube__cta i {
  font-size: 1rem;
  line-height: 1;
}

.ctc-youtube__frame,
.ctc-youtube__placeholder {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  background: #0a142c;
  box-shadow: 0 18px 40px -28px rgba(10, 20, 44, .4);
}

.ctc-youtube__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.ctc-youtube__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  color: #fff;
  text-decoration: none;
  background:
    radial-gradient(90% 130% at 50% -25%, rgba(217, 166, 63, .2), transparent 60%),
    linear-gradient(160deg, #06275a 0%, #001f4d 55%, #00112e 100%);
}

.ctc-youtube__placeholder i {
  font-size: 2.6rem;
  color: #ff4d4d;
  line-height: 1;
}

.ctc-youtube__placeholder span {
  font-family: var(--ff-sans);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .04em;
}

.ctc-youtube__placeholder:hover,
.ctc-youtube__placeholder:focus-visible {
  color: #fff;
}

@media (max-width: 991.98px) {
  .ctc-youtube__grid {
    grid-template-columns: 1fr;
  }

  .ctc-youtube__heading {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .ctc-youtube__copy > h2,
  .ctc-youtube__handle {
    text-align: center;
  }

  .ctc-youtube__text {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }

  .ctc-youtube__cta {
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Section titles — home page + calling bands (single font-size source). */
.ctc-heritage__head > h2,
.ctc-programs__head h2,
.ctc-principal__heading > h2,
.ctc-principal__inner > h2,
.ctc-campus__head h2,
.ctc-announcements__head h2,
.ctc-about__copy > h2,
.ctc-youtube__copy > h2,
.ctc-calling__heading > h2,
.ctc-calling__inner > h2,
.ctc-calling--admission-forms-queries .ctc-calling__heading > h2,
.ctc-calling--paper .ctc-calling__heading > h2,
.ctc-calling .ctc-calling__heading:has(.ctc-calling__ornament) > h2,
.ctc-contact-officers--programmes .ctc-contact-officers__head h2 {
  font-size: clamp(calc(1.8rem - 10px), calc(1.6rem + 1.2vw - 10px), calc(2.4rem - 10px));
  line-height: 1.1;
  letter-spacing: normal;
}

/* ==========================================================================
   Contact officer cards (2026-08)
   ========================================================================== */

.ctc-contact-intro {
  padding-top: clamp(3rem, 2.2rem + 3vw, 4.5rem);
  padding-bottom: clamp(2rem, 1.6rem + 1.5vw, 3rem);
  background: #fff;
}

.ctc-contact-intro__head {
  max-width: 52rem;
  margin: 0 auto 2.25rem;
  text-align: center;
}

.ctc-contact-intro__kicker {
  margin-left: auto;
  margin-right: auto;
}

.ctc-contact-intro__lead {
  margin: 0 auto;
  max-width: 42rem;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
  color: #1f2937;
}

.ctc-contact-quick__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.ctc-contact-quick-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100%;
  padding: 2rem 1.5rem 2.1rem;
  text-align: center;
  background: #f8f9fb;
  border: 1px solid #e8ebf0;
  border-radius: 14px;
}

.ctc-contact-quick-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: #eef4fb;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: 1.35rem;
  line-height: 1;
}

.ctc-contact-quick-card__title {
  margin: 0 0 .85rem;
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-contact-quick-card__body {
  width: 100%;
  font-family: var(--ff-sans);
  font-size: 15px;
  line-height: 1.65;
  color: #5b6477;
}

.ctc-contact-quick-card__body p {
  margin: 0;
}

.ctc-contact-quick-card__body p + p {
  margin-top: .75rem;
}

.ctc-contact-quick-card__body strong {
  color: var(--ctc-home-navy-2, #001f4d);
  font-weight: 600;
}

.ctc-contact-quick-card__email a,
.ctc-contact-quick-card__phone a {
  color: var(--ctc-home-gold, #d9a63f);
  font-weight: 600;
  text-decoration: none;
  word-break: break-word;
}

.ctc-contact-quick-card__email a:hover,
.ctc-contact-quick-card__email a:focus,
.ctc-contact-quick-card__phone a:hover,
.ctc-contact-quick-card__phone a:focus {
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-contact-quick-card--plain {
  align-items: flex-start;
  text-align: left;
  background: #fff;
}

.ctc-contact-quick-card--finance {
  justify-content: flex-start;
  background: #fff;
  padding: 1.85rem 1.75rem 1.65rem;
}

.ctc-contact-quick-card--plain .ctc-contact-quick-card__title {
  width: 100%;
  margin-bottom: .85rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid rgba(10, 20, 44, .1);
}

.ctc-contact-finance__intro {
  margin: 0;
}

.ctc-contact-finance__name {
  display: inline-block;
  margin-bottom: .15rem;
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-contact-finance__role {
  display: inline-block;
  margin-bottom: .15rem;
  font-family: var(--ff-sans);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--ctc-muted, #5b6477);
}

.ctc-contact-finance__line {
  font-family: var(--ff-sans);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.65;
  color: #5b6477;
}

.ctc-contact-finance-line {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: .75rem 0 0;
}

.ctc-contact-finance-line:first-of-type {
  margin-top: .85rem;
}

.ctc-contact-finance-line__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #eef4fb;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: .85rem;
  line-height: 1;
}

.ctc-contact-finance-line a {
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  text-decoration: none;
  word-break: break-word;
}

.ctc-contact-finance-line a:hover,
.ctc-contact-finance-line a:focus {
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-contact-board__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: 1.25rem;
  align-items: stretch;
  margin-bottom: clamp(2rem, 1.6rem + 1.5vw, 3rem);
}

.ctc-contact-directory-card {
  background: #fff;
  border: 1px solid #e8ebf0;
  border-radius: 14px;
  padding: 1.85rem 1.75rem 1.65rem;
  text-align: left;
}

.ctc-contact-directory-card__title {
  margin: 0 0 .85rem;
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-contact-directory-card__head-rule {
  height: 1px;
  margin: 0 0 .15rem;
  background: rgba(10, 20, 44, .1);
}

.ctc-contact-directory-card__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ctc-contact-directory-card__list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: .95rem 0;
  border-bottom: 1px solid rgba(10, 20, 44, .08);
}

.ctc-contact-directory-card__list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.ctc-contact-directory-card__label {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--ff-sans);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-contact-directory-card__email {
  flex: 0 1 auto;
  max-width: 52%;
  font-family: var(--ff-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  color: var(--ctc-home-gold, #d9a63f);
  text-align: right;
  text-decoration: none;
  word-break: break-word;
}

.ctc-contact-directory-card__email:hover,
.ctc-contact-directory-card__email:focus {
  color: var(--ctc-home-navy-2, #001f4d);
}

@media (max-width: 991.98px) {
  .ctc-contact-board__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .ctc-contact-directory-card__list li {
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
  }

  .ctc-contact-directory-card__email {
    max-width: 100%;
    text-align: left;
  }
}

.ctc-contact-board {
  padding-top: 0;
  padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
  background: #fff;
}

.ctc-touch-board__offices--single {
  grid-template-columns: 1fr;
  padding-top: 0;
  border-top: 0;
}

.ctc-touch-board__offices--single::before {
  display: none;
}

.ctc-touch-board__offices--single .ctc-touch-block--library {
  padding-top: 1.25rem;
  border-top: 1px solid #e6eaf1;
}

.ctc-touch-finance__meta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #eef4fb;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: .85rem;
  line-height: 1;
}

.ctc-contact-board .ctc-touch-finance__meta {
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
}

.ctc-contact-hours-bar {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-top: clamp(2rem, 1.6rem + 1.5vw, 3rem);
  padding: 1.35rem 1.5rem;
  border-radius: 14px;
  background:
    radial-gradient(120% 180% at 100% 0%, rgba(217, 166, 63, .12), transparent 55%),
    linear-gradient(135deg, #06275a 0%, #001f4d 100%);
  color: #fff;
}

.ctc-contact-hours-bar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: 1.35rem;
  line-height: 1;
}

.ctc-contact-hours-bar__content {
  flex: 1 1 auto;
  min-width: 0;
}

.ctc-contact-hours-bar__title {
  margin: 0 0 .55rem;
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
}

.ctc-contact-hours-bar__details {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .65rem .85rem;
}

.ctc-contact-hours-bar__details p {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin: 0;
  font-family: var(--ff-sans);
  font-size: .95rem;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(255, 255, 255, .92);
}

.ctc-contact-hours-bar__details i {
  color: var(--ctc-home-gold, #d9a63f);
  font-size: 1rem;
}

.ctc-contact-hours-bar__sep {
  color: rgba(255, 255, 255, .45);
  font-size: 1rem;
  line-height: 1;
}

@media (max-width: 991.98px) {
  .ctc-contact-quick__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .ctc-contact-hours-bar {
    flex-direction: column;
    align-items: flex-start;
  }

  .ctc-contact-hours-bar__details {
    flex-direction: column;
    align-items: flex-start;
  }

  .ctc-contact-hours-bar__sep {
    display: none;
  }
}

.ctc-contact-officers {
  padding-top: clamp(1.25rem, 1rem + 1vw, 2rem);
  padding-bottom: clamp(2.5rem, 2rem + 2.5vw, 4rem);
  background: #fafafa;
}

.ctc-contact-officers--programmes {
  padding-top: 0;
  background: #fff;
}

.ctc-contact-officers--programmes .ctc-contact-officers__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: none;
  margin: 0 auto 2rem;
  text-align: center;
}

.ctc-contact-officers--programmes .ctc-contact-officers__head .ctc-programs__kicker {
  margin: 0 auto .55rem;
}

.ctc-contact-officers--programmes .ctc-contact-officers__head .ctc-programs__eyebrow {
  margin: 0 0 .45rem;
}

.ctc-contact-officers--programmes .ctc-contact-officers__head h2 {
  margin: 0;
}

.ctc-contact-officers--programmes .ctc-contact-officers__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  max-width: none;
  margin: 0;
}

.ctc-contact-officers--programmes .ctc-programme-query-card {
  display: flex;
  flex-direction: column;
  gap: .95rem;
  min-height: 100%;
  padding: 1.75rem 1.6rem 1.85rem;
  background: #fff;
  border: 1px solid var(--ctc-line, #e2e6ef);
  border-radius: var(--radius-lg, 12px);
  box-shadow: none;
  overflow: visible;
}

.ctc-programme-query-card__row {
  display: flex;
  align-items: center;
  gap: .85rem;
}

.ctc-contact-officers--programmes .ctc-programme-query-card__row .ctc-degree-card__icon {
  flex-shrink: 0;
}

.ctc-contact-officers--programmes .ctc-programme-query-card__row:nth-child(odd) .ctc-degree-card__icon {
  background: rgba(201, 168, 76, 0.12);
  color: var(--ctc-gold-deep);
}

.ctc-contact-officers--programmes .ctc-programme-query-card__row:nth-child(even) .ctc-degree-card__icon {
  background: rgba(0, 31, 77, 0.08);
  color: var(--ctc-navy);
}

.ctc-programme-query-card__content {
  flex: 1 1 auto;
  min-width: 0;
}

.ctc-programme-query-card__name {
  margin: 0;
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-programme-query-card__college,
.ctc-programme-query-card__text {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: 15px;
  line-height: 1.65;
  color: #1f2937;
}

.ctc-programme-query-card__role {
  margin: .25rem 0 0;
  font-family: var(--ff-sans);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--ctc-muted, #5b6477);
}

.ctc-programme-query-card__college {
  margin-top: .15rem;
}

.ctc-programme-query-card__text a {
  color: #1f2937;
  text-decoration: none;
  word-break: break-word;
}

.ctc-programme-query-card__text a:hover,
.ctc-programme-query-card__text a:focus {
  color: var(--ctc-gold-deep);
}

@media (max-width: 991.98px) {
  .ctc-contact-officers--programmes .ctc-contact-officers__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .ctc-contact-officers--programmes .ctc-contact-officers__list {
    grid-template-columns: 1fr;
  }
}

.ctc-contact-officers__head {
  max-width: 920px;
  margin: 0 auto 2rem;
  text-align: center;
}

.ctc-contact-officers__head h2 {
  margin: 0 0 .85rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: clamp(1.8rem, 1.4rem + 1.8vw, 2.8rem);
  font-weight: 700;
  line-height: 1.18;
}

.ctc-contact-officers__lead {
  margin: 0 auto;
  max-width: 42rem;
  color: #5b6477;
  font-family: var(--ff-sans);
  font-size: clamp(.98rem, .94rem + .2vw, 1.08rem);
  line-height: 1.65;
}

.ctc-contact-officers__list {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  max-width: 920px;
  margin: 0 auto;
}

.ctc-officer-card {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e6eaf1;
  box-shadow: 0 10px 28px -20px rgba(10, 20, 44, .35);
  overflow: hidden;
}

.ctc-officer-card__person {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1.35rem 1.5rem;
}

.ctc-officer-card__identity h3 {
  margin: 0 0 .2rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: clamp(1.15rem, 1.05rem + .4vw, 1.4rem);
  font-weight: 700;
  line-height: 1.2;
}

.ctc-officer-card__role {
  margin: 0 0 .2rem;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.35;
}

.ctc-officer-card__college {
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.3;
}

.ctc-officer-card__details {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .75rem;
  padding: 1.25rem 1.5rem;
  border-left: 1px solid #e6eaf1;
}

.ctc-officer-card__line {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-sans);
  font-size: .92rem;
  line-height: 1.45;
}

.ctc-officer-card__line i {
  flex: 0 0 auto;
  margin-top: .15rem;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: .95rem;
}

.ctc-officer-card__line a {
  color: var(--ctc-home-navy-2, #001f4d);
  text-decoration: none;
  word-break: break-all;
}

.ctc-officer-card__line a:hover,
.ctc-officer-card__line a:focus {
  color: var(--ctc-home-gold, #d9a63f);
}

.ctc-officer-card__rule {
  width: 100%;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
  opacity: .55;
}

@media (max-width: 767.98px) {
  .ctc-officer-card {
    grid-template-columns: 1fr;
  }

  .ctc-officer-card__details {
    border-left: 0;
    border-top: 1px solid #e6eaf1;
    padding-top: 1rem;
  }

  .ctc-officer-card__person {
    align-items: flex-start;
    padding-bottom: 1rem;
  }

  .ctc-officer-card__person .ctc-touch-block__icon {
    flex: 0 0 1.75rem;
    width: 1.75rem;
  }

  .ctc-officer-card__line {
    gap: .7rem;
  }

  .ctc-officer-card__line i {
    flex: 0 0 1.75rem;
    width: 1.75rem;
    margin-top: 0;
    text-align: center;
    font-size: 1.15rem;
  }
}

/* ==========================================================================
   Contact Get-in-Touch board (2026-08)
   ========================================================================== */

.ctc-touch-board {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  --ctc-touch-icon-size: 1.75rem;
  --ctc-touch-head-gap: .7rem;
  --ctc-touch-content-indent: calc(var(--ctc-touch-icon-size) + var(--ctc-touch-head-gap));
}

.ctc-touch-board__main {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.ctc-touch-board__offices {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.75rem 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e6eaf1;
  position: relative;
}

.ctc-touch-board__offices::before {
  content: "";
  position: absolute;
  top: calc(1.25rem + .35rem);
  bottom: .35rem;
  left: 50%;
  width: 1px;
  background: #e6eaf1;
  transform: translateX(-50%);
  pointer-events: none;
}

.ctc-touch-block--library {
  padding-top: 0;
  border-top: 0;
}

@media (max-width: 767.98px) {
  .ctc-touch-board__offices {
    grid-template-columns: 1fr;
  }

  .ctc-touch-board__offices::before {
    display: none;
  }

  .ctc-touch-block--library {
    padding-top: 1.25rem;
    border-top: 1px solid #e6eaf1;
  }
}

.ctc-touch-block__head {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: .75rem;
}

.ctc-touch-block--finance .ctc-touch-block__head {
  margin-bottom: 1.05rem;
}

.ctc-touch-block--library .ctc-touch-block__head {
  margin-bottom: 1.05rem;
}

/* Icons match the home page: plain gold glyphs, no badge. */
.ctc-touch-block__icon {
  flex: 0 0 var(--ctc-touch-icon-size, 1.75rem);
  width: var(--ctc-touch-icon-size, 1.75rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ctc-home-gold, #d9a63f);
  font-size: 1.75rem;
  line-height: 1;
}

.ctc-touch-block__head h3 {
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
}

.ctc-touch-block__rule {
  display: flex;
  align-items: center;
  width: min(100%, 9.5rem);
  margin: 0 0 1.15rem;
}

.ctc-touch-block__rule::before,
.ctc-touch-block__rule::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--ctc-home-gold, #d9a63f);
}

.ctc-touch-block__rule span {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin: 0 .4rem;
  background: var(--ctc-home-gold, #d9a63f);
  transform: rotate(45deg);
}

.ctc-touch-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

.ctc-touch-list li {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: baseline;
  gap: .45rem .55rem;
}

.ctc-touch-list__label {
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.35;
}

.ctc-touch-list__sep {
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-touch-list a {
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .98rem;
  font-weight: 600;
  text-decoration: none;
  word-break: break-all;
  line-height: 1.4;
}

.ctc-touch-list a:hover,
.ctc-touch-list a:focus {
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-touch-directory {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ctc-touch-directory li {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1.2fr);
  align-items: baseline;
  gap: .4rem .55rem;
  padding: .7rem 0;
  border-bottom: 1px solid rgba(10, 20, 44, .08);
}

.ctc-touch-directory li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ctc-touch-directory__label {
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.35;
}

.ctc-touch-directory__sep {
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-weight: 700;
}

.ctc-touch-directory a {
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: .92rem;
  font-weight: 600;
  text-decoration: none;
  word-break: break-all;
  line-height: 1.4;
}

.ctc-touch-directory a:hover,
.ctc-touch-directory a:focus {
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-touch-finance__name,
.ctc-touch-finance__title,
.ctc-touch-finance__line {
  margin: 0 0 .15rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.4;
}

.ctc-touch-finance__name {
  font-size: 1.05rem;
  font-weight: 700;
}

.ctc-touch-finance__rule {
  width: 20rem;
  max-width: 70%;
  height: 1px;
  margin: .85rem 0;
  background: rgba(10, 20, 44, .12);
}

.ctc-touch-finance__meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .45rem;
  align-items: baseline;
  margin: 0 0 .4rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.4;
}

.ctc-touch-finance__meta a {
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-weight: 600;
  text-decoration: none;
  word-break: break-all;
}

.ctc-touch-finance__meta a:hover,
.ctc-touch-finance__meta a:focus {
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-touch-finance__phone {
  color: var(--ctc-home-navy-2, #001f4d) !important;
  font-family: var(--ff-display) !important;
}

.ctc-touch-hours {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: .65rem .85rem;
  margin-top: auto;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(217, 166, 63, .35);
}

.ctc-touch-hours__head {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex: 0 0 auto;
}

.ctc-touch-hours__head h3 {
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.ctc-touch-hours__sep {
  display: inline-block;
  flex: 0 0 auto;
  color: var(--ctc-home-gold, #d9a63f);
  font-family: var(--ff-sans);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;
}

.ctc-touch-hours__text {
  margin: 0;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .ctc-touch-directory__label,
  .ctc-touch-directory a,
  .ctc-touch-finance__name,
  .ctc-touch-finance__title,
  .ctc-touch-finance__line,
  .ctc-touch-finance__meta {
    font-size: .88rem;
  }
}

@media (max-width: 767.98px) {
  .ctc-touch-directory li {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "label sep"
      "email email";
  }

  .ctc-touch-directory__label { grid-area: label; }
  .ctc-touch-directory__sep { grid-area: sep; }
  .ctc-touch-directory a { grid-area: email; }

  .ctc-touch-directory,
  .ctc-touch-finance {
    padding-left: var(--ctc-touch-content-indent);
  }

  /* Stack office hours like the other touch blocks so icons share one column. */
  .ctc-touch-hours {
    flex-direction: column;
    align-items: stretch;
    gap: .75rem;
  }

  .ctc-touch-hours__head h3 {
    white-space: normal;
    font-size: 1.25rem;
  }

  .ctc-touch-hours__sep {
    display: none;
  }

  .ctc-touch-hours__text {
    padding-left: var(--ctc-touch-content-indent);
    white-space: normal;
  }
}

/* Library Technical Work & Holdings tables */
.ctc-library-facts__title {
  margin: 0 0 1rem;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
}

.ctc-library-facts-wrap {
  overflow-x: auto;
  border: 1px solid rgba(10, 20, 44, .08);
  border-radius: 10px;
  background: #fff;
}

.ctc-library-facts {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
}

.ctc-library-facts th,
.ctc-library-facts td {
  padding: .85rem 1.1rem;
  border-bottom: 1px solid rgba(10, 20, 44, .08);
  vertical-align: top;
  text-align: left;
}

.ctc-library-facts tr:last-child th,
.ctc-library-facts tr:last-child td {
  border-bottom: 0;
}

.ctc-library-facts th {
  width: 42%;
  color: var(--ctc-home-navy-2, #001f4d);
  font-family: var(--ff-display);
  font-size: .95rem;
  font-weight: 700;
  background: rgba(248, 245, 240, .65);
}

.ctc-library-facts td {
  color: #1f2937;
  font-family: var(--ff-sans);
  font-size: .95rem;
  font-weight: 500;
  line-height: 1.45;
}

.ctc-library-librarian {
  max-width: 960px;
  margin: 0 auto;
}

.ctc-library-librarian__head {
  max-width: 42rem;
  margin: 0 auto 2.25rem;
  text-align: center;
}

.ctc-library-librarian__head .ctc-clubs-name {
  margin: 0 0 .85rem;
  font-size: 27px;
  font-weight: 700;
  color: var(--ctc-home-navy-2, #001f4d);
  line-height: 1.1;
}

.ctc-library-librarian__lead {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.72;
  color: #1f2937;
}

.ctc-library-librarian__panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  background: #fff;
  border: 1px solid var(--ctc-line, #e2e6ef);
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
}

.ctc-library-librarian__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .85rem;
  padding: 2rem 1.5rem 2.1rem;
}

.ctc-library-librarian__cell:not(:last-child) {
  border-right: 1px solid var(--ctc-line, #e2e6ef);
}

.ctc-library-librarian__cell .ctc-degree-card__icon {
  margin: 0;
}

.ctc-library-librarian__cell:nth-child(odd) .ctc-degree-card__icon {
  background: rgba(201, 168, 76, 0.12);
  color: var(--ctc-gold-deep);
}

.ctc-library-librarian__cell:nth-child(even) .ctc-degree-card__icon {
  background: rgba(0, 31, 77, 0.08);
  color: var(--ctc-navy);
}

.ctc-library-librarian__label {
  margin: 0;
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ctc-home-navy-2, #001f4d);
}

.ctc-library-librarian__text {
  margin: 0;
  max-width: 18rem;
  font-family: var(--ff-sans);
  font-size: 15px;
  line-height: 1.65;
  color: #1f2937;
}

.ctc-library-librarian__text a {
  color: var(--ctc-home-navy-2, #001f4d);
  text-decoration: none;
  word-break: break-word;
}

.ctc-library-librarian__text a:hover,
.ctc-library-librarian__text a:focus {
  color: var(--ctc-gold-deep);
}

@media (max-width: 767.98px) {
  .ctc-library-librarian__panel {
    grid-template-columns: 1fr;
  }

  .ctc-library-librarian__cell:not(:last-child) {
    border-right: 0;
    border-bottom: 1px solid var(--ctc-line, #e2e6ef);
  }
}

/* ==========================================================================
   Mobile page lock
   overflow-x: clip is ignored on many phones, so leftover width still lets
   the page pan sideways. Force a hidden viewport and vertical-only touch.
   Appended last so it wins the cascade.
   ========================================================================== */
@media (max-width: 1199.98px) {
  html, body {
    overflow-x: hidden !important;
    width: 100%;
    max-width: 100%;
    overscroll-behavior-x: none;
  }

  .ctc-ticker-bar,
  .ctc-navbar,
  .ctc-home-hero,
  .ctc-heritage,
  .ctc-heritage__media,
  .ctc-programs,
  .ctc-principal,
  .ctc-about,
  .ctc-youtube,
  .ctc-campus,
  .ctc-announcements,
  .ctc-calling,
  .ctc-footer,
  .container {
    max-width: 100%;
  }

  .ctc-ticker-bar,
  .ctc-ticker-inner,
  .ctc-ticker-content,
  .ctc-ticker-link,
  .ctc-ticker-marquee {
    overflow-x: hidden;
    min-width: 0;
  }

  .ctc-navbar .navbar-brand .ctc-brand-text strong {
    overflow-wrap: anywhere;
  }
}
