@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css');
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* ══════════════════════════════════════════════════════════════════════
   TMU — presentation layer
   Colour, type and surface treatment only. No page in this project has
   had its markup, copy or section order changed to make this work.
   Loaded after each page's own stylesheet so equal-specificity rules
   resolve here.
   ══════════════════════════════════════════════════════════════════════ */

:root {
  /* brand */
  --c-navy:     #002a54;
  --c-navy-mid: #00457f;
  --c-blue:     #00457f;
  --c-maroon:   #9e1b31;
  --c-red:      #9e1b31;
  --c-gold:     #c98a12;
  --c-gold-lt:  #fbf3e2;

  /* surfaces */
  --c-white:    #ffffff;
  --c-offwhite: #f4f6f8;
  --c-slate:    #5b6b7c;
  --c-text:     #16202c;
  --c-border:   #dde4ea;

  /* header.php token set — --primary/--secondary are left alone: some pages
     (and bootstrap) define those names as full colours of their own */
  --background: 0 0% 100%;
  --foreground: 213 33% 13%;
  --card: 0 0% 100%;
  --primary-foreground: 0 0% 100%;
  --muted: 210 20% 94%;
  --muted-foreground: 212 15% 42%;
  --accent: 39 83% 43%;
  --destructive: 350 70% 36%;
  --tmu-red: 350 70% 36%;
  --tmu-gold: 39 83% 43%;
  --tmu-blue: 211 100% 25%;
  --tmu-blue-light: 211 80% 40%;
  --tmu-blue-dark: 211 100% 17%;
  --border: 210 18% 87%;
  --input: 210 18% 87%;
  --ring: 211 100% 25%;

  /* type */
  --ff-serif: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --ff-sans:  'Source Sans 3', 'Segoe UI', sans-serif;
  --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Source Sans 3', 'Segoe UI', sans-serif;
  --ff-mono: 'IBM Plex Mono', ui-monospace, monospace;

  --ease-expo: cubic-bezier(0.2, 0, 0, 1);
  --ease-back: cubic-bezier(0.2, 0, 0, 1);

  /* shape — square-ish, hairline-led */
  --radius-sm: 2px;
  --radius-md: 3px;
  --radius-lg: 4px;
  --radius-xl: 4px;
  --radius: 3px;

  --t-rule: 1px solid var(--c-border);
  --shadow-card: none;
  --shadow-float: 0 1px 2px rgba(0, 42, 84, .08);
  --shadow-hero: none;
}

/* ── Type scale ─────────────────────────────────────────────────────── */
body { font-family: var(--ff-sans); font-size: 1rem; line-height: 1.62; letter-spacing: 0.001em; }
/* several templates hardcode 'Playfair Display' on their heading classes rather
   than going through --ff-serif, so the swap has to win by weight, not order */
h1, h2, h3, h4, h5, h6,
[class*="-h1"], [class*="-h2"], [class*="-h3"], [class*="-h4"],
[class*="title"], [class*="heading"] {
  font-family: var(--font-display) !important; font-weight: 600; letter-spacing: -0.022em; line-height: 1.14;
}

.tmu-h1 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.08; }
.tmu-h2 { font-size: clamp(24px, 2.5vw, 34px); font-weight: 600; letter-spacing: -0.026em; color: var(--c-navy); line-height: 1.12; }
.tmu-h3 { font-size: clamp(17px, 1.5vw, 20px); font-weight: 600; letter-spacing: -0.018em; color: var(--c-navy); }

.tmu-label {
  font-family: var(--ff-mono);
  font-size: 11px; font-weight: 500; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--c-maroon);
  gap: 9px; margin-bottom: 12px;
}
.tmu-label::before { width: 16px; height: 1px; background: var(--c-maroon); border-radius: 0; }

.tmu-section-sub, .tmu-section-center .tmu-section-sub { font-size: 1.0625rem; line-height: 1.65; color: var(--c-slate); }

/* ── Rhythm ─────────────────────────────────────────────────────────── */
.tmu-section { padding: 72px 0; }
.tmu-section + .tmu-section { border-top: var(--t-rule); }
.tmu-section-alt { background: var(--c-offwhite); }
.tmu-divider { background: var(--c-border); }

/* section headers read as a template when every one of them is centred —
   set them left, on the text column, with a rule under them. where a header
   carries a description, run the title and the description as two columns
   on a shared baseline instead of stacking them */
.tmu-section-center {
  text-align: left !important;
  max-width: none !important;
  margin: 0 0 40px !important;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--c-border);
}
.tmu-section-center .tmu-label { justify-content: flex-start !important; margin-bottom: 14px; }
.tmu-section-center .tmu-h1,
.tmu-section-center .tmu-h2 { max-width: 20ch !important; margin: 0 0 12px !important; }
.tmu-section-center .tmu-section-sub {
  max-width: 62ch !important; margin: 0 !important;
  font-size: 1.0625rem; line-height: 1.6; color: var(--c-slate);
}
.tmu-section-center:has(.tmu-section-sub) {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  column-gap: 56px;
  align-items: end;
}
.tmu-section-center:has(.tmu-section-sub) > .tmu-label { grid-column: 1; grid-row: 1; margin-bottom: 10px; }
.tmu-section-center:has(.tmu-section-sub) > .tmu-h1,
.tmu-section-center:has(.tmu-section-sub) > .tmu-h2,
.tmu-section-center:has(.tmu-section-sub) > .tmu-h3 { grid-column: 1; grid-row: 2; margin: 0 !important; max-width: 18ch !important; }
.tmu-section-center:has(.tmu-section-sub) > .tmu-section-sub {
  grid-column: 2; grid-row: 2; max-width: 56ch !important;
  padding-bottom: 3px; font-size: 1rem; line-height: 1.55;
}
/* the "view all" band under most sections is centred by an inline style;
   pull it back onto the text column the header above it sets */
.tmu-container > div[style*="text-align:center"],
.tmu-container > div[style*="text-align: center"],
[class*="-container"] > div[style*="text-align:center"],
[class*="-container"] > div[style*="text-align: center"] { text-align: left !important; margin-top: 36px !important; }
/* the "no rows yet" bands arrive with a 48px icon and 60px of air; bring them
   down to the size of the content they stand in for */
[class*="-container"] > div[style*="text-align:center"] { padding: 28px 0 !important; }
[class*="-container"] > div[style*="text-align:center"] > i {
  font-size: 1.5rem !important; color: var(--c-maroon) !important; margin-bottom: 12px !important;
}
[class*="-container"] > div[style*="text-align:center"] > h3 { font-size: 1.0625rem !important; }
[class*="-container"] > div[style*="text-align:center"] > p { font-size: 0.9375rem !important; }

/* ── Buttons: rectangular, no lift, no glow ─────────────────────────── */
.tmu-btn,
.tmu-btn-primary,
.tmu-btn-gold,
.tmu-btn-outline,
.tmu-btn-outline-white,
.tmu-btn-white {
  border-radius: var(--radius-md);
  font-family: var(--font-display);
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em;
  padding: 12px 22px;
  border: 1px solid transparent;
  box-shadow: none !important;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
  transform: none !important;
}
.tmu-btn:hover, .tmu-btn-primary:hover, .tmu-btn-gold:hover,
.tmu-btn-outline:hover, .tmu-btn-outline-white:hover, .tmu-btn-white:hover { transform: none !important; }

.tmu-btn-primary { background: var(--c-blue); color: #fff; }
.tmu-btn-primary:hover { background: var(--c-navy); color: #fff; }
.tmu-btn-gold { background: var(--c-gold); color: var(--c-navy); }
.tmu-btn-gold:hover { background: #b0780c; color: var(--c-navy); filter: none; }
.tmu-btn-outline { background: transparent; color: var(--c-navy); border-color: #b9c5d1; }
.tmu-btn-outline:hover { background: var(--c-navy); color: #fff; border-color: var(--c-navy); }
.tmu-btn-outline-white, .tmu-btn-white { background: transparent; color: #fff; border-color: rgba(255,255,255,.42); }
.tmu-btn-outline-white:hover, .tmu-btn-white:hover { background: #fff; color: var(--c-navy); border-color: #fff; }

.tmu-btn i, .tmu-btn svg { font-size: .85em; }

/* ── Header chrome ──────────────────────────────────────────────────── */
/* the brand band belongs at the page edge, where all three colours sit on
   white and read as one device; under the nav the blue third fell on the
   hero and looked like a stray accent */
.tmu-header { position: sticky; z-index: 50; }
.tmu-header::before {
  content: ''; display: block; height: 3px;
  background: linear-gradient(90deg,
    var(--c-blue) 0 33.333%, var(--c-maroon) 33.333% 66.666%, var(--c-gold) 66.666% 100%);
}
.tmu-topbar { background: var(--c-navy); }
.tmu-topbar-inner { font-family: var(--ff-mono); font-size: 0.75rem; letter-spacing: 0.01em; }
.tmu-topbar-right a { font-weight: 400; }
.tmu-topbar-right a:hover { color: var(--c-gold); }

.tmu-mainnav {
  background: #fff;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  border-bottom: 1px solid var(--c-border);
  box-shadow: none;
}
.tmu-mainnav::after { content: none; display: none; }
.tmu-mainnav-inner { padding-top: 10px; padding-bottom: 10px; }
.tmu-brand img { width: 44px; height: 44px; }
.tmu-brand-name { font-size: 1.0625rem; font-weight: 700; letter-spacing: -0.02em; color: var(--c-navy); }
.tmu-brand-tagline { font-style: normal; font-family: var(--ff-mono); font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-slate); }

.tmu-nav-link {
  font-family: var(--font-display);
  font-size: 0.875rem; font-weight: 500; letter-spacing: -0.005em;
  padding: 8px 11px; border-radius: var(--radius-sm);
}
.tmu-nav-link:hover { color: var(--c-blue); background: var(--c-offwhite); }

.tmu-dropdown {
  width: 16rem; margin-top: 2px;
  border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-float);
  padding: 6px;
}
.tmu-dropdown a { font-size: 0.875rem; font-weight: 500; padding: 8px 10px; border-radius: var(--radius-sm); }
.tmu-dropdown a:hover { background: var(--c-offwhite); color: var(--c-blue); }

.tmu-btn-apply, .tmu-btn-apply-sm {
  background: var(--c-maroon); color: #fff !important;
  border-radius: var(--radius-md);
  font-family: var(--font-display); font-weight: 600;
  padding: 8px 15px; font-size: 0.875rem;
  transition: background-color .16s ease, transform 0s;
}
.tmu-btn-apply:hover, .tmu-btn-apply-sm:hover { background: var(--c-navy); color: #fff !important; transform: none; }

.tmu-mobile-drawer { box-shadow: 2px 0 12px rgba(0,42,84,.14); }
.tmu-mobile-drawer-head { font-family: var(--font-display); letter-spacing: -0.02em; }
.tmu-mobile-inner a { font-weight: 600; }

/* ── Hero (homepage) ────────────────────────────────────────────────── */
/* everything here is scoped to #tmu-hero; the subpage heroes further down
   reuse the same .tmu-hero-* class names and need their own treatment */
/* the sticky chrome sits above the hero in flow, so the slideshow has to be
   the viewport minus that band; --tmu-head-h is measured by the shared script */
#tmu-hero { min-height: calc(100vh - 112px); min-height: calc(100svh - var(--tmu-head-h, 112px)); background: #00152a; }
/* the countdown column only renders while a key event is scheduled; when it
   is absent the text block takes the row instead of leaving a 380px hole */
#tmu-hero .tmu-hero-inner > :only-child { grid-column: 1 / -1; }
#tmu-hero-bg { transition: opacity 1.1s ease; }
/* two-layer scrim: a vertical base so no crop is unreadable, then the
   horizontal weight that carries the headline column */
#tmu-hero-bg::after {
  background:
    linear-gradient(0deg, rgba(0,18,38,.72) 0%, rgba(0,18,38,.18) 42%, rgba(0,18,38,.30) 100%),
    linear-gradient(90deg, rgba(0,22,44,.95) 0%, rgba(0,22,44,.86) 34%, rgba(0,22,44,.52) 62%, rgba(0,22,44,.20) 100%);
}
#tmu-hero .tmu-hero-inner { padding: 72px 24px 64px; gap: 48px; }

#tmu-hero .tmu-hero-eyebrow {
  background: none; border: none; border-radius: 0;
  padding: 0; margin-bottom: 20px;
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,.86);
}
#tmu-hero .tmu-hero-eyebrow span { border-radius: 0; width: 20px; height: 2px; background: var(--c-gold); animation: none; }

#tmu-hero .tmu-hero-title {
  font-size: clamp(30px, 3.7vw, 50px); font-weight: 600;
  letter-spacing: -0.03em; line-height: 1.1;
  text-shadow: none; max-width: 32ch; margin-bottom: 22px;
  transition: opacity .4s ease;
}
#tmu-hero .tmu-hero-sub {
  font-size: 1.0625rem; line-height: 1.62; color: rgba(255,255,255,.80);
  max-width: 46ch; margin-bottom: 32px;
  transition: opacity .4s ease .05s;
}
#tmu-hero .tmu-hero-text-wrap.fading { opacity: 0; transform: none; }
#tmu-hero .tmu-hero-actions { gap: 12px; }
/* indicators sit on the text column, not floating mid-photograph */
#tmu-hero .tmu-hero-dots {
  left: 0; right: 0; transform: none; bottom: 26px; gap: 6px;
  padding-left: max(24px, calc(50% - 596px));
}
#tmu-hero .tmu-hero-dot {
  width: 26px; height: 3px; border-radius: 0;
  background: rgba(255,255,255,.30); transform: none !important;
  transition: background-color .25s ease;
}
#tmu-hero .tmu-hero-dot.active { background: var(--c-gold); transform: none !important; }

/* countdown card — flat panel, no glass, no radial blob */
.tmu-ke-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.20);
  border-radius: var(--radius-lg);
  box-shadow: none;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  padding: 22px;
}
.tmu-ke-card::before { display: none; }
.tmu-ke-badge {
  background: none; border: none; border-radius: 0; padding: 0;
  margin-bottom: 12px;
  font-family: var(--ff-mono); font-size: 10px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-gold);
}
.tmu-ke-badge-dot { border-radius: 0; width: 12px; height: 2px; background: var(--c-gold); animation: none; }
.tmu-ke-name { font-size: 1.25rem; font-weight: 600; letter-spacing: -0.02em; }
.tmu-ke-chip { border-radius: var(--radius-sm) !important; font-family: var(--ff-mono) !important; font-size: 11px !important; letter-spacing: .01em; }
.tmu-ke-box { border-radius: var(--radius-md) !important; background: rgba(255,255,255,.10) !important; box-shadow: none !important; }
.tmu-ke-num { font-family: var(--ff-mono) !important; font-weight: 500 !important; letter-spacing: -0.02em; }
.tmu-ke-lbl { font-family: var(--ff-mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; opacity: .7; }
.tmu-ke-cta { border-radius: var(--radius-md) !important; font-family: var(--font-display) !important; font-weight: 600 !important; letter-spacing: 0; transform: none !important; }

/* ── Subpage hero ───────────────────────────────────────────────────── */
/* the templates give these a 140px band; a short, tight banner reads less
   like a landing page and more like a section head for the page below it */
.tmu-hero { min-height: 0; }
.tmu-hero .tmu-hero-overlay { background: linear-gradient(90deg, rgba(0,32,64,.92) 0%, rgba(0,32,64,.72) 55%, rgba(0,32,64,.34) 100%); }
.tmu-hero .tmu-hero-inner { display: block; padding: 88px 24px 76px; text-align: left; }
.tmu-hero .tmu-hero-divider { width: 28px; height: 2px; margin: 0 0 18px; background: var(--c-gold); }
.tmu-hero .tmu-hero-eyebrow {
  background: none; border: none; border-radius: 0; padding: 0;
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,.72);
  margin-bottom: 16px;
}
.tmu-hero .tmu-hero-eyebrow span { width: 18px; height: 2px; border-radius: 0; background: var(--c-gold); animation: none; }
.tmu-hero .tmu-hero-title {
  font-size: clamp(30px, 3.6vw, 44px); font-weight: 600;
  letter-spacing: -0.03em; line-height: 1.08;
  text-shadow: none; max-width: 20ch; margin-bottom: 14px;
}
.tmu-hero .tmu-hero-sub { font-size: 1.0625rem; line-height: 1.6; max-width: 56ch; color: rgba(255,255,255,.82); margin-left: 0; }

/* ── Cards: hairline boxes, no float, no lift ───────────────────────── */
.tmu-card,
.tmu-service-item,
.tmu-research-card,
.tmu-stat-card,
.tmu-step-card,
.tmu-life-card,
.tmu-prog-card,
.tmu-grid-card,
.tmu-list-item {
  border: var(--t-rule) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  background: #fff;
  transform: none !important;
  transition: border-color .16s ease, background-color .16s ease;
}
.tmu-card:hover,
.tmu-service-item:hover,
.tmu-research-card:hover,
.tmu-stat-card:hover,
.tmu-step-card:hover,
.tmu-life-card:hover,
.tmu-prog-card:hover,
.tmu-grid-card:hover,
.tmu-list-item:hover {
  border-color: #9fb3c6 !important;
  box-shadow: none !important;
  transform: none !important;
  background: #fff;
}

/* icon-in-circle is the single most recognisable generated-site tell */
.tmu-card-icon, .tmu-stat-icon, .tmu-service-item i, .tmu-life-icon, .tmu-grid-icon {
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  width: auto !important; height: auto !important;
  display: block !important;
  margin: 0 0 14px !important;
  color: var(--c-maroon) !important;
  font-size: 1.25rem !important;
}
/* the subpage card variants centre everything; one left-aligned card system
   runs across the site instead */
.tmu-card, .tmu-stat-card, .tmu-philosophy-card, .tmu-step-card,
.tmu-grid-card, .tmu-values-card { text-align: left !important; }
.tmu-card { border-top: 2px solid var(--c-navy) !important; }
.tmu-card:hover { border-top-color: var(--c-maroon) !important; }
.tmu-card h3, .tmu-stat-card h3 { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.02em; }
.tmu-stat-card h3 { font-size: 1.75rem !important; }
.tmu-values-tags { justify-content: flex-start !important; }
.tmu-values-tags span {
  background: #fff !important; border: 1px solid var(--c-border) !important;
  color: var(--c-navy) !important; border-radius: var(--radius-sm) !important;
  font-family: var(--ff-mono); font-size: 11px; letter-spacing: .04em; padding: 4px 9px;
}
.tmu-philosophy-card {
  max-width: 74ch !important; margin: 0 !important;
  border: var(--t-rule) !important; border-top: 2px solid var(--c-navy) !important;
  border-radius: 0 !important; box-shadow: none !important; padding: 34px 36px !important;
}
.tmu-section[style*="text-align:center"],
.tmu-section[style*="text-align: center"] { text-align: left !important; }
.tmu-service-item { border-top: 2px solid var(--c-navy) !important; }
.tmu-service-item:hover { border-top-color: var(--c-maroon) !important; }
.tmu-service-item h4 { font-size: 1rem; font-weight: 600; letter-spacing: -0.015em; color: var(--c-navy); }

/* the small-tile grids on the interior pages repeat three tells: centred text,
   an icon in a filled circle, and a coloured rule on the wrong edge */
.tmu-service-item, .tmu-vmv-card, .tmu-goal-card, .tmu-achieve-card,
.tmu-grid-card, .tmu-life-card, .tmu-prog-card, .tmu-list-item { text-align: left !important; }
.tmu-vmv-icon, .tmu-service-icon, .tmu-goal-icon, .tmu-grid-icon, .tmu-life-icon,
.tmu-prog-icon, .tmu-achieve-icon {
  width: auto !important; height: auto !important;
  border-radius: 0 !important; background: none !important;
  color: var(--c-maroon) !important;
  display: block !important; margin: 0 0 14px !important;
  font-size: 1.25rem !important;
}
.tmu-vmv-card {
  border: var(--t-rule) !important;
  border-top: 2px solid var(--c-navy) !important;
  border-radius: var(--radius-lg) !important;
  padding: 24px !important;
}
.tmu-vmv-card:hover { border-top-color: var(--c-maroon) !important; }

/* stat band */
#tmu-stats { background: #fff !important; border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); }
.tmu-stats, .tmu-stat-grid, .tmu-stats-grid { gap: 0 !important; background: #fff; }
.tmu-stat-card, .tmu-stat-item, .tmu-adm-stat {
  border: none !important; border-right: 1px solid var(--c-border) !important;
  border-radius: 0 !important;
  background: #fff !important; padding: 30px 28px !important;
  gap: 16px !important; align-items: center !important;
}
.tmu-stat-item:last-child, .tmu-stat-card:last-child { border-right: none !important; }
.tmu-stat-item:hover { background: #fff !important; }
.tmu-stat-icon { font-size: 1.125rem !important; }
.tmu-stat-num, .tmu-stat-card h3, .tmu-adm-stat-num {
  font-family: var(--ff-mono) !important; font-weight: 500 !important;
  font-size: 1.75rem !important; letter-spacing: -0.045em; line-height: 1;
  color: var(--c-navy) !important; font-variant-numeric: tabular-nums;
}
.tmu-stat-lbl, .tmu-adm-stat-lbl, .tmu-stat-card p {
  font-size: 0.8125rem !important; color: var(--c-slate) !important;
  letter-spacing: 0.01em; text-transform: none; margin-top: 5px;
}

/* steps */
.tmu-step-num {
  border-radius: 0 !important; width: auto !important; height: auto !important;
  background: none !important; color: var(--c-maroon) !important;
  font-family: var(--ff-mono) !important; font-size: 0.8125rem !important; font-weight: 600;
  letter-spacing: 0.08em; margin: 0 0 10px !important;
  display: block !important;
}
.tmu-step-num::before { content: 'STEP '; color: var(--c-slate); font-weight: 400; }

/* CTA bands: flat, not gradient */
.tmu-cta, .tmu-section-dark { background: var(--c-navy) !important; }
.tmu-cta { padding: 56px 0; text-align: left; }
.tmu-cta p { max-width: 62ch; }
.tmu-cta-buttons { justify-content: flex-start; }
.tmu-cta h2 { font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -0.028em; }
.tmu-cta::before { opacity: .07 !important; }

/* ── Media ──────────────────────────────────────────────────────────── */
.tmu-card img, .tmu-research-card img, .tmu-prog-card img, .tmu-life-card img,
.tmu-list-item img, .tmu-grid-card img { border-radius: 0; }
.tmu-research-img, .tmu-prog-img, .tmu-life-img, .tmu-card-media { border-radius: 0; overflow: hidden; }
.tmu-research-card:hover img, .tmu-prog-card:hover img, .tmu-life-card:hover img, .tmu-card:hover img { transform: none !important; }
.tmu-card__media img, .tmu-card img { object-fit: cover; }

/* several records point at image files that are not in this copy; a tinted
   frame makes the gap read as a placeholder instead of a hole in the card */
.tmu-blog-img, .tmu-evt-img, .tmu-life-img, .tmu-acad-img, .tmu-prog-img,
.tmu-research-img, .tmu-card-media, .tmu-grid-img {
  background: #e6ecf2;
  position: relative;
}
.tmu-blog-img img, .tmu-evt-img img, .tmu-life-img img { color: transparent; font-size: 0; }

/* card interiors: even padding, a rule above the action, tighter titles */
.tmu-blog-body, .tmu-evt-body, .tmu-life-body, .tmu-acad-body, .tmu-prog-body { padding: 22px 24px 24px; }
.tmu-blog-body p, .tmu-evt-body p, .tmu-life-body p, .tmu-acad-body p {
  font-size: 0.9375rem; line-height: 1.6; color: var(--c-slate);
}
.tmu-blog-read, .tmu-evt-join, .tmu-life-body a, .tmu-acad-link {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 0.8125rem; letter-spacing: 0.02em;
}
.tmu-card-actions, .tmu-blog-foot { border-top: 1px solid var(--c-border); padding-top: 14px; }

/* research figures: the superscript plus floats; tuck it to the numeral */
.tmu-research-card { padding: 28px 26px !important; }
.tmu-research-num sup { font-size: 0.75em !important; top: 0.35em; color: var(--c-gold); }
.tmu-research-card h3 { font-size: 1rem; font-weight: 600; letter-spacing: -0.018em; color: var(--c-navy); }
.tmu-research-card p { font-size: 0.9375rem; line-height: 1.6; color: var(--c-slate); }

/* the testimonials band has no rows in this database; without a slide it is a
   tall empty navy block, so let it close up until the CMS has content */
#tmu-testimonials:not(:has(.tmu-testi-card)) { padding: 44px 0 !important; }
#tmu-testimonials:not(:has(.tmu-testi-card)) .tmu-testi-track,
#tmu-testimonials:not(:has(.tmu-testi-card)) .tmu-testi-dots { display: none; }
#tmu-testimonials:not(:has(.tmu-testi-card)) .tmu-section-center {
  border-bottom: none !important; padding-bottom: 0 !important; margin-bottom: 0 !important;
}
#tmu-testimonials:not(:has(.tmu-testi-card)) .tmu-h2 { margin-bottom: 0 !important; }

/* ── Tables, filters, pagination ────────────────────────────────────── */
.tmu-filter-bar, .tmu-view-toggle, .tmu-dl-btn, .tmu-pagination button, .tmu-pagination a {
  border-radius: var(--radius-md) !important;
  box-shadow: none !important;
  transform: none !important;
  font-family: var(--font-display);
}
.tmu-status { border-radius: var(--radius-sm) !important; font-family: var(--ff-mono) !important; letter-spacing: .06em; text-transform: uppercase; font-size: 10px !important; font-weight: 500 !important; }
/* the bootstrap pastels read as an admin dashboard; keep the semantic split
   but pull the chips into the brand palette */
.tmu-status.open { background: var(--c-gold-lt) !important; color: #7a5308 !important; }
.tmu-status.closed { background: #f7ecec !important; color: var(--c-maroon) !important; }
.tmu-status.awarded { background: #eaf1f7 !important; color: var(--c-navy) !important; }
.tmu-list-item h3, .tmu-grid-card h3 { font-size: 0.9375rem !important; font-weight: 600 !important; letter-spacing: -0.014em; }
.tmu-result-count { font-family: var(--ff-mono); font-size: 0.8125rem; color: var(--c-slate); }
table { font-variant-numeric: tabular-nums; }

/* ── Motion: fade only, and get out of the way ──────────────────────── */
.tmu-reveal {
  opacity: 0; transform: none;
  transition: opacity .5s ease;
}
.tmu-reveal.visible { opacity: 1; transform: none; }
.tmu-reveal-delay-1, .tmu-reveal-delay-2, .tmu-reveal-delay-3,
.tmu-reveal-delay-4, .tmu-reveal-delay-5 { transition-delay: 0s; }
@keyframes dotPulse { 0%, 100% { opacity: 1; } }
@keyframes heroDot { 0%, 100% { opacity: 1; } }

/* ── Footer ─────────────────────────────────────────────────────────── */
footer, .tmu-footer { font-size: 0.9375rem; }

/* triple wave divider: the loudest template tell on the site */
.footer-wave { display: none !important; }
.tmu-footer { margin-top: 0 !important; background-color: #16202c; }

.footer-main-content { background-color: #16202c; padding: 56px 0 44px; }
.footer-main-content::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg,
    var(--c-blue) 0 33.333%, var(--c-maroon) 33.333% 66.666%, var(--c-gold) 66.666% 100%);
}
.footer-container { padding: 0 24px; }

.footer-logo img { width: 190px; margin-bottom: 18px; }
.university-motto { font-style: normal; color: rgba(255,255,255,.62); font-size: .9375rem; }

.footer-title {
  font-family: var(--font-display); font-size: .8125rem !important; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.9);
  margin-bottom: 18px; padding-bottom: 12px;
}
.footer-title::after { width: 26px; height: 2px; background-color: var(--c-gold); }

.footer-link { font-size: .9375rem !important; color: rgba(255,255,255,.68); padding: 4px 0; }
.footer-link:hover { color: var(--c-gold); transform: none; }

.quick-access { margin-left: 0; gap: 12px; }
.quick-access-btn {
  background: transparent; border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-sm);
  backdrop-filter: none; -webkit-backdrop-filter: none;
  font-family: var(--font-display); font-size: .875rem; font-weight: 500; letter-spacing: .01em;
  width: auto; padding: 10px 18px; transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
.quick-access-btn:hover {
  background: transparent; border-color: var(--c-gold); color: var(--c-gold);
  transform: none; box-shadow: none;
}

.footer-nav a { color: rgba(255,255,255,.68); font-weight: 400; }
.footer-nav a:hover { color: var(--c-gold); }
.legal-links a:hover { color: var(--c-gold); }

.contact-icon { fill: var(--c-gold); }
.contact-item { font-size: .9375rem; color: rgba(255,255,255,.68); }

/* The footer reuses .contact-item, which the card rules further down paint as a
   white panel — on the navy footer that turns its own white text invisible. */
.tmu-footer .contact-item {
  background: transparent !important; background-image: none !important;
  border: none !important; box-shadow: none !important; border-radius: 0 !important;
  padding: 0 !important; text-align: left !important; transform: none !important;
}
.tmu-footer .contact-item:hover { border: none !important; box-shadow: none !important; transform: none !important; }
.tmu-footer .contact-item :is(a, span) { color: rgba(255,255,255,.72) !important; }
.tmu-footer .contact-item a:hover { color: var(--c-gold) !important; }
.tmu-footer .contact-item svg { fill: var(--c-gold) !important; }

.social-icon {
  width: 34px; height: 34px; border-radius: var(--radius-sm);
  background-color: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
  transition: background-color .2s ease, border-color .2s ease;
}
.social-icon:hover {
  background-color: var(--c-maroon); border-color: var(--c-maroon);
  transform: none; box-shadow: none;
}
.social-icon svg { width: 16px; height: 16px; }

.footer-bottom { background-color: #101822; border-top: 1px solid rgba(255,255,255,.08); padding: 26px 0; }
.university-title {
  font-family: var(--font-display); font-weight: 600 !important;
  letter-spacing: .18em; text-transform: uppercase; font-size: 1rem !important;
}
.copyright, .developer-credit { font-family: var(--ff-mono); letter-spacing: .01em; }

/* ══════════════════════════════════════════════════════════════════════
   Pattern sweep — the recurring tells, caught by shape rather than name
   ══════════════════════════════════════════════════════════════════════ */

/* no card or image moves on hover */
[class*="card"]:hover, [class*="-item"]:hover, [class*="-tile"]:hover { transform: none !important; }
[class*="card"]:hover img, [class*="-img"]:hover img, [class*="-media"]:hover img { transform: none !important; }

/* no 60px soft glow on hover either */
[class*="card"], [class*="card"]:hover, [class*="-member"], [class*="-member"]:hover,
[class*="-tile"]:hover, [class*="btn"]:hover { box-shadow: none !important; }
.tmu-popup, .tmu-popup-card { box-shadow: 0 20px 50px rgba(0, 20, 40, .35) !important; }

/* no 100px pills anywhere */
[class*="badge"], [class*="-pill"], [class*="chip"], [class*="status"] {
  border-radius: var(--radius-sm) !important;
  letter-spacing: 0.08em !important;
  font-weight: 600 !important;
}
.tmu-acad-img-badge, .tmu-blog-date, .tmu-list-badge, .tmu-grid-badge,
.tmu-popup-hero-badge, .tmu-popup-btn-red, .tmu-popup-btn-outline, .tmu-popup-x,
.tmu-ke-badge, .tmu-ke-chip, .tmu-ke-cta, .tmu-ke-arrow, .tmu-ke-card::before,
.tmu-btn, .tmu-dl-btn, .tmu-gv-btn, .tmu-gv-btn-outline, .tmu-status,
.tmu-hero-eyebrow, .tmu-hero-eyebrow span, .tmu-gv-hero-eyebrow span,
.tmu-card-icon, .tmu-fac-icon, .tmu-feature-icon, .tmu-gv-lead-icon, .tmu-stat-icon,
.tmu-step-num, .tmu-hero-dot, .tmu-testi-dot, .tmu-timeline-item::before,
.tmu-values-tags span, .tmu-card ul li::before, .tmu-gv-func ul li::before {
  border-radius: var(--radius-sm) !important;
}
.tmu-card ul li::before, .tmu-gv-func ul li::before, .tmu-timeline-item::before {
  width: 5px; height: 5px; background: var(--c-maroon);
  border: none !important; box-shadow: none !important; border-radius: 0 !important;
}
.tmu-timeline::before {
  background: var(--c-border) !important; background-image: none !important; width: 1px !important;
}
.tmu-hero-dot { border-radius: 0 !important; }
.tmu-testi-avatar { border-radius: var(--radius-sm) !important; }

/* no icon-in-coloured-circle */
[class*="-icon"], [class*="avatar"] {
  border-radius: var(--radius-sm) !important;
  box-shadow: none !important;
}

/* no gradient fills on rules, bars and badges */
[class*="-bar"], [class*="-rule"], [class*="-badge"], [class*="-strip"] { background-image: none !important; }

/* no glassmorphism, no dropped text shadows */
*, *::before, *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  text-shadow: none !important;
}

/* gradient headline text and decorative glow blobs — the two loudest tells */
* {
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
}
#tmu-testimonials::before, #tmu-testimonials::after,
.tmu-ke-box::before, .tmu-cta::before { display: none; }
#tmu-testimonials { background: var(--c-navy) !important; }
.tmu-ke-name { background: none !important; color: #fff !important; font-weight: 600; letter-spacing: -0.02em; }
.tmu-ke-box { background: rgba(255,255,255,.09) !important; border-radius: var(--radius-md) !important; }
.tmu-ke-cta { background: var(--c-gold) !important; box-shadow: none !important; letter-spacing: 0 !important; text-transform: none !important; font-size: 0.875rem !important; }
/* faculty tiles: centred icon-in-a-grey-box is the tell; set them left,
   white, with a navy rule across the top */
.tmu-fac-card {
  align-items: flex-start !important; text-align: left !important;
  background: #fff !important;
  border: 1px solid var(--c-border) !important;
  border-top: 2px solid var(--c-navy) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 24px !important;
}
.tmu-fac-card:hover {
  border-top-color: var(--c-maroon) !important;
  transform: none !important; box-shadow: none !important; background: #fff !important;
}
.tmu-fac-icon {
  width: auto !important; height: auto !important;
  background: none !important; border: none !important;
  margin: 0 0 14px !important;
  font-size: 1.25rem !important; color: var(--c-maroon) !important;
}
.tmu-fac-card:hover .tmu-fac-icon { background: none !important; color: var(--c-maroon) !important; }
.tmu-fac-name { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.02em; flex: 1 1 auto; margin-bottom: 14px; }
.tmu-fac-arrow {
  font-family: var(--ff-mono); font-size: 10.5px; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 500; color: var(--c-slate) !important;
  margin-top: 0;
}
.tmu-blog-date {
  font-family: var(--ff-mono) !important; font-weight: 500 !important;
  font-size: 10px !important; letter-spacing: 0.08em !important;
  box-shadow: none !important;
  background: var(--c-gold-lt) !important; color: var(--c-navy) !important;
  padding: 4px 8px !important;
}
.tmu-blog-title { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.02em; line-height: 1.32; }
.tmu-blog-read { font-family: var(--font-display); font-weight: 600; font-size: 0.875rem; letter-spacing: 0; }
.tmu-card ul li::before, .tmu-gv-func ul li::before { background: var(--c-maroon) !important; }

/* ══════════════════════════════════════════════════════════════════════
   Homepage specifics
   ══════════════════════════════════════════════════════════════════════ */

/* stat band: ruled light strip with hairline dividers, not a navy slab */
#tmu-stats { background: #fff; border-bottom: var(--t-rule); padding: 0; }
.tmu-stats-grid { border: none; background: none; gap: 0; }
.tmu-stat-item {
  display: flex !important; align-items: center; gap: 14px;
  border: none !important; border-right: var(--t-rule) !important;
  border-radius: 0 !important; background: none !important;
  box-shadow: none !important; transform: none !important;
  padding: 26px 28px !important;
}
.tmu-stat-item:last-child { border-right: none !important; }
.tmu-stat-item:hover { background: none !important; }
.tmu-stat-icon {
  width: auto !important; height: auto !important; margin: 0 !important;
  background: none !important; border: none !important;
  color: var(--c-maroon) !important; font-size: 1.125rem !important;
}
.tmu-stat-num { font-size: 1.75rem !important; color: var(--c-navy) !important; }
.tmu-stat-lbl {
  font-family: var(--ff-sans) !important; font-size: 0.875rem !important;
  font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important;
  color: var(--c-slate) !important;
}

/* mission */
.tmu-mission-img-wrap { border-radius: 0 !important; box-shadow: none !important; border: var(--t-rule); }
.tmu-mission-img-wrap:hover img { transform: none !important; }
.tmu-mission-img-badge {
  border-radius: 0 !important; box-shadow: none !important;
  background: var(--c-navy); padding: 12px 16px;
}
.tmu-mission-img-badge strong { font-family: var(--ff-mono); font-weight: 500; color: var(--c-gold); }
.tmu-pillar {
  background: none !important;
  border: none !important; border-top: var(--t-rule) !important;
  border-radius: 0 !important;
  padding: 13px 0 !important; gap: 12px;
}
.tmu-mission-pillars { gap: 0 !important; border-bottom: var(--t-rule); }
.tmu-pillar i { color: var(--c-maroon) !important; }
.tmu-pillar span { font-family: var(--font-display); font-weight: 500; font-size: 0.9375rem; }

/* cards */
.tmu-acad-card, .tmu-blog-card, .tmu-evt-card, .tmu-life-card {
  border: var(--t-rule) !important; border-radius: var(--radius-lg) !important;
  box-shadow: none !important; background: #fff;
}
/* testimonial and admissions cards sit on the navy band and carry light text */
.tmu-testi-card, .tmu-adm-card {
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  background: rgba(255,255,255,.06) !important;
}
.tmu-acad-card:hover, .tmu-blog-card:hover, .tmu-evt-card:hover,
.tmu-life-card:hover, .tmu-adm-card:hover, .tmu-testi-card:hover {
  border-color: rgba(255,255,255,.4) !important; box-shadow: none !important; transform: none !important;
}
.tmu-adm-body h3 { font-size: 1.25rem !important; }
.tmu-adm-body p { color: rgba(255,255,255,.7) !important; }
.tmu-acad-img, .tmu-blog-img, .tmu-evt-img, .tmu-adm-img, .tmu-life-img { border-radius: 0; }
.tmu-acad-img img, .tmu-blog-img img, .tmu-evt-img img, .tmu-adm-img img, .tmu-life-img img { transition: none; }
.tmu-adm-img img { opacity: 1 !important; }
.tmu-acad-body h3, .tmu-blog-title, .tmu-evt-title, .tmu-adm-body h3, .tmu-life-body h3 {
  font-size: 1.125rem; font-weight: 600; letter-spacing: -0.02em;
}
.tmu-acad-img-badge, .tmu-evt-join { font-family: var(--ff-mono) !important; }
.tmu-research-num { font-family: var(--ff-mono) !important; letter-spacing: -0.04em; }
.tmu-adm-stats { border-top: var(--t-rule); }
.tmu-adm-stat-num { font-family: var(--ff-mono) !important; font-weight: 500 !important; letter-spacing: -0.04em; }
.tmu-adm-stat-lbl { font-size: 0.8125rem !important; letter-spacing: 0 !important; text-transform: none !important; }
.tmu-full-img { border-radius: 0 !important; }
.tmu-divider { height: 1px; }

/* testimonials */
.tmu-testi-quote-icon { background: none !important; color: var(--c-gold) !important; box-shadow: none !important; }
.tmu-testi-avatar { border-radius: 50% !important; }
.tmu-testi-name { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.015em; }
.tmu-testi-role { font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.tmu-testi-dots button, .tmu-testi-dot { border-radius: 0 !important; width: 20px !important; height: 2px !important; }

/* the events feed currently returns a single upcoming record; a lone card in a
   three-column grid reads as a mistake, so let it run as a wide banner row */
.tmu-evt-grid > .tmu-evt-card:only-child:only-of-type {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
}
.tmu-evt-grid > .tmu-evt-card:only-child:only-of-type .tmu-evt-img { height: 100%; min-height: 240px; border-radius: 0; }
.tmu-evt-grid > .tmu-evt-card:only-child:only-of-type .tmu-evt-body { padding: 30px 34px; }
.tmu-evt-grid > .tmu-evt-card:only-child:only-of-type .tmu-evt-title { font-size: 1.375rem; max-width: 34ch; }
.tmu-evt-grid > .tmu-evt-card:only-child:only-of-type .tmu-evt-desc { max-width: 72ch; }

/* photographs come from a dozen different shoots; a light common grade
   keeps the grid from reading as eleven unrelated files */
.tmu-acad-img img, .tmu-blog-img img, .tmu-evt-img img,
.tmu-life-img img, .tmu-prog-img img, .tmu-research-img img, .tmu-card-media img {
  filter: saturate(.93) contrast(1.03);
}
.tmu-acad-card:hover, .tmu-blog-card:hover, .tmu-evt-card:hover, .tmu-life-card:hover {
  border-color: #b9c5d1 !important;
}
.tmu-acad-card:hover img, .tmu-blog-card:hover img, .tmu-evt-card:hover img, .tmu-life-card:hover img {
  filter: none;
}

/* popup notice */
.tmu-popup-card { border-radius: var(--radius-lg) !important; box-shadow: 0 24px 64px rgba(0,42,84,.28) !important; border: var(--t-rule); overflow: hidden; }
.tmu-popup-bar { height: 3px; background: var(--c-blue) !important; }
.tmu-popup-x { border-radius: var(--radius-sm) !important; transform: none !important; }
.tmu-popup-x:hover { transform: none !important; }
.tmu-popup-hero { height: 12rem; }
.tmu-popup-hero-overlay { background: linear-gradient(180deg, transparent 40%, rgba(0,32,64,.72) 100%) !important; }
.tmu-popup-hero-badge { font-family: var(--ff-mono) !important; letter-spacing: 0.1em !important; }
.tmu-popup-icon { background: var(--c-maroon) !important; border-radius: var(--radius-sm) !important; box-shadow: none !important; }
.tmu-popup-brand { font-family: var(--ff-mono); font-size: 10px !important; letter-spacing: 0.14em !important; }
.tmu-popup-heading { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.03em; }
.tmu-popup-desc { font-size: 1rem !important; line-height: 1.6; color: var(--c-slate); }
.tmu-popup-info { border-radius: var(--radius-sm) !important; border: var(--t-rule); background: #fff !important; box-shadow: none !important; }
.tmu-popup-info-icon { border-radius: var(--radius-sm) !important; background: none !important; color: var(--c-maroon) !important; }
.tmu-popup-info-label { letter-spacing: 0.1em; font-family: var(--ff-mono); }
.tmu-popup-btn-red, .tmu-popup-btn-outline {
  border-radius: var(--radius-md) !important; box-shadow: none !important;
  font-family: var(--font-display); font-weight: 600; letter-spacing: 0;
  transform: none !important;
}
.tmu-popup-btn-red { background: var(--c-maroon) !important; }
.tmu-popup-btn-red:hover { background: var(--c-navy) !important; transform: none !important; }
.tmu-popup-hint { font-family: var(--ff-mono); font-size: 11px; }

/* ══════════════════════════════════════════════════════════════════════
   Shared subpage bands
   ══════════════════════════════════════════════════════════════════════ */
/* italic lead quotes and italic signatures are set upright; the gold rule
   already says "quotation" without the type doing it twice */
blockquote { font-style: normal; }
.tmu-hod-text blockquote {
  font-family: var(--font-display) !important; font-style: normal !important;
  font-size: 1.125rem !important; font-weight: 500; letter-spacing: -0.018em;
  color: var(--c-navy) !important; line-height: 1.45;
  border-left: 2px solid var(--c-gold) !important; padding-left: 18px;
}
.tmu-hod-signature {
  font-style: normal !important; font-family: var(--font-display);
  font-weight: 600; font-size: 0.9375rem; color: var(--c-navy) !important;
}

/* panels and accordions: a solid blue slab as the header of a white card reads
   as an admin dashboard, so the header goes quiet and the label carries it */
.tmu-core-card, .tmu-accordion {
  background: #fff; border: var(--t-rule) !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important; overflow: hidden;
}
.tmu-core-head, .tmu-accordion-head {
  background: var(--c-offwhite) !important; color: var(--c-navy) !important;
  border-bottom: var(--t-rule);
  font-family: var(--font-display) !important; font-weight: 600 !important;
  letter-spacing: -0.01em; padding: 15px 20px !important;
}
.tmu-core-head i, .tmu-accordion-head i { color: var(--c-maroon) !important; }
.tmu-accordion-head:hover { background: #eaeef3 !important; color: var(--c-navy) !important; }
.tmu-accordion-head.open { border-bottom: var(--t-rule); }
.tmu-accordion-body { background: #fff !important; }
.tmu-table th {
  background: var(--c-offwhite) !important; color: var(--c-navy) !important;
  font-family: var(--ff-mono); font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  border-bottom: 1px solid var(--c-border) !important;
}
.tmu-table td { border-bottom: 1px solid var(--c-border) !important; }

.tmu-quote { background: var(--c-navy) !important; background-image: none !important; padding: 60px 0; }
.tmu-quote::before { display: none; }
.tmu-quote-text {
  font-family: var(--font-display) !important; font-style: normal !important;
  font-weight: 500; color: #fff !important; letter-spacing: -0.022em;
  font-size: clamp(20px, 2.6vw, 30px) !important; line-height: 1.4;
}
.tmu-quote-text::before {
  content: ''; display: block; width: 32px; height: 2px;
  background: var(--c-gold); margin: 0 auto 24px;
}

/* glass panels that overlap the hero: make them solid so light text stays legible */
.tmu-feature-card, .tmu-vision-card {
  background: var(--c-navy) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  text-align: left !important;
}
.tmu-feature-card:hover, .tmu-vision-card:hover {
  background: var(--c-navy-mid) !important; transform: none !important; box-shadow: none !important;
}
.tmu-feature-icon, .tmu-vision-card .icon {
  width: auto !important; height: auto !important; margin: 0 0 14px !important;
  background: none !important; color: var(--c-gold) !important; font-size: 1.375rem !important;
  display: block !important;
}
.tmu-feature-card h3, .tmu-vision-card h3 { font-size: 1.125rem !important; font-weight: 600 !important; letter-spacing: -0.02em; }

/* ══════════════════════════════════════════════════════════════════════
   Campus life — a standalone template with its own class vocabulary,
   built on the same tells the rest of the site was: centred headers with
   a rule under them, icons in filled circles, gradient bands
   ══════════════════════════════════════════════════════════════════════ */
.campus-hero-banner {
  padding: 0 !important; min-height: 0 !important;
  display: block !important; text-align: left !important;
}
.campus-hero-banner .hero-content {
  text-align: left !important; max-width: 1240px; margin: 0 auto !important;
  padding: 88px 24px 76px !important;
}
.campus-hero-banner .hero-subtitle { margin-left: 0 !important; margin-right: 0 !important; }
.campus-hero-banner h1 {
  font-size: clamp(30px, 3.6vw, 44px) !important; font-weight: 600 !important;
  letter-spacing: -0.03em; line-height: 1.08; max-width: 20ch; margin-bottom: 14px !important;
}
.campus-hero-banner .hero-subtitle {
  font-size: 1.0625rem !important; line-height: 1.6; max-width: 56ch;
  color: rgba(255,255,255,.82) !important; margin-bottom: 28px !important;
}
/* the short rule under every centred heading is the tell; the gold dash in
   the eyebrow position carries the same pause without the symmetry */
.campus-hero-banner .divider, .section-header .divider { display: none !important; }
.cta-button, .learn-more-btn, .service-link {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-blue) !important; color: #fff !important;
  border: 1px solid var(--c-blue) !important; border-radius: var(--radius-md) !important;
  box-shadow: none !important; text-decoration: none !important;
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em;
  padding: 11px 20px !important; transform: none !important;
}
.cta-button:hover, .learn-more-btn:hover, .service-link:hover {
  background: var(--c-navy) !important; border-color: var(--c-navy) !important; transform: none !important;
}
.service-link, .learn-more-btn {
  background: none !important; border-color: transparent !important;
  color: var(--c-navy) !important; padding: 0 !important; font-size: 0.875rem;
}
.service-link:hover, .learn-more-btn:hover { background: none !important; color: var(--c-maroon) !important; }

/* every block on this page brings its own container width; put them all on
   the 1192/24 column the rest of the site uses so the left edges line up.
   the header is only pulled into that column when it is the direct child of
   a full-bleed band — on the department pages it already sits inside a
   padded container and would pick up the 24px twice */
.quick-stats-section, .student-life-section, .services-section,
.gallery-section, .testimonials-section, .cta-section {
  padding-left: 0 !important; padding-right: 0 !important;
}
.stats-container, .life-highlights, .services-grid,
.gallery-grid, .testimonials-container, .cta-content,
.quick-stats-section > .section-header, .student-life-section > .section-header,
.services-section > .section-header, .gallery-section > .section-header,
.testimonials-section > .section-header, .cta-section > .section-header {
  max-width: 1240px !important;
  margin-left: auto !important; margin-right: auto !important;
  padding-left: 24px !important; padding-right: 24px !important;
}
.quick-stats-section > .section-header, .student-life-section > .section-header,
.services-section > .section-header, .gallery-section > .section-header,
.testimonials-section > .section-header, .cta-section > .section-header {
  margin-top: 0 !important; margin-bottom: 40px !important; padding-top: 0 !important;
}
.stat-card { margin: 0 !important; }
.stats-container { gap: 20px; }
.section-header h2 { font-size: clamp(24px, 2.5vw, 34px) !important; font-weight: 600 !important; letter-spacing: -0.026em; color: var(--c-navy) !important; margin-bottom: 10px !important; }
.section-header p { max-width: 62ch; margin: 0 !important; font-size: 1.0625rem; line-height: 1.6; color: var(--c-slate); }

.quick-stats-section { background: #fff; }
.stat-card {
  background: #fff !important; border: var(--t-rule) !important;
  border-top: 2px solid var(--c-navy) !important; border-radius: 0 !important;
  box-shadow: none !important; text-align: left !important;
  padding: 22px 24px !important; transform: none !important;
}
.stat-card:hover { transform: none !important; box-shadow: none !important; border-top-color: var(--c-maroon) !important; }
.stat-number { font-family: var(--ff-mono) !important; font-weight: 500 !important; font-size: 1.75rem !important; letter-spacing: -0.045em; color: var(--c-navy) !important; }
.stat-label { font-size: 0.8125rem !important; color: var(--c-slate) !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }

.highlight-card {
  background: #fff !important; border: var(--t-rule) !important; border-radius: 0 !important;
  box-shadow: none !important; overflow: hidden;
}
.highlight-card:hover { transform: none !important; box-shadow: none !important; }
.highlight-image { border-radius: 0 !important; filter: saturate(.93) contrast(1.03); }
.highlight-content { text-align: left !important; padding: 26px 28px !important; }
.highlight-content h3 { font-size: 1.125rem !important; font-weight: 600 !important; letter-spacing: -0.02em; color: var(--c-navy) !important; }
.highlight-content p { font-size: 0.9375rem; line-height: 1.65; color: var(--c-slate); }

.service-card {
  background: #fff !important; border: var(--t-rule) !important;
  border-top: 2px solid var(--c-navy) !important; border-radius: 0 !important;
  box-shadow: none !important; text-align: left !important; padding: 24px !important;
  transform: none !important;
}
.service-card:hover { transform: none !important; box-shadow: none !important; border-top-color: var(--c-maroon) !important; }
.service-icon {
  width: auto !important; height: auto !important; border-radius: 0 !important;
  background: none !important; box-shadow: none !important;
  display: block !important; margin: 0 0 14px !important;
  color: var(--c-maroon) !important; font-size: 1.25rem !important;
}
.service-card h3 { font-size: 1.0625rem !important; font-weight: 600 !important; letter-spacing: -0.02em; color: var(--c-navy) !important; }
.service-card p { font-size: 0.9375rem; line-height: 1.6; color: var(--c-slate); }

.gallery-item { border-radius: 0 !important; box-shadow: none !important; }
.gallery-item:hover { transform: none !important; }
.gallery-caption {
  background: rgba(0,21,42,.78) !important; border-radius: 0 !important;
  font-family: var(--ff-mono); font-size: 10.5px !important; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase; padding: 8px 12px !important;
}

.testimonials-section, .cta-section {
  background: var(--c-navy) !important; background-image: none !important;
}
.testimonial-card {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  text-align: left !important;
}
.testimonial-content p { font-style: normal !important; font-size: 0.9375rem !important; line-height: 1.65; color: rgba(255,255,255,.82) !important; }
.testimonial-author img { border-radius: 0 !important; border: 1px solid rgba(255,255,255,.4) !important; }
.testimonial-author p { font-family: var(--ff-mono); font-size: 11px !important; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-gold) !important; }
.cta-content { text-align: left !important; }
.cta-content h2, .cta-section h2 { font-size: clamp(22px, 2.4vw, 30px) !important; letter-spacing: -0.028em; }
.cta-content p { max-width: 54ch; margin-left: 0 !important; }
.cta-buttons { justify-content: flex-start !important; }
.cta-section .cta-button, .testimonials-section .cta-button { background: var(--c-gold) !important; border-color: var(--c-gold) !important; color: var(--c-navy) !important; }
.cta-section .cta-button:hover { background: #b0780c !important; border-color: #b0780c !important; }

/* ══════════════════════════════════════════════════════════════════════
   Governance / Senate / Council
   Three pages off the same bespoke kit: a centred Playfair header with a
   gold dash above it, icons in filled blue circles, cards that lift on
   hover, blue left-rules on every panel. Brought onto the same column,
   grid and rule language the rest of the site uses.
   ══════════════════════════════════════════════════════════════════════ */
.tmu-gv-hero, .tmu-sn-hero, .tmu-cl-hero { min-height: 0; background: var(--c-navy); }
.tmu-gv-hero::after, .tmu-sn-hero::after, .tmu-cl-hero::after {
  background: linear-gradient(90deg, rgba(0,32,64,.92) 0%, rgba(0,32,64,.72) 55%, rgba(0,32,64,.34) 100%) !important;
}
.tmu-gv-hero-inner, .tmu-sn-hero-inner, .tmu-cl-hero-inner {
  text-align: left; max-width: 1240px; padding: 88px 24px 76px;
}
.tmu-gv-hero-eyebrow, .tmu-sn-hero-eyebrow, .tmu-cl-hero-eyebrow {
  gap: 10px; font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; color: rgba(255,255,255,.72); margin-bottom: 16px;
}
.tmu-gv-hero-eyebrow span, .tmu-sn-hero-eyebrow span, .tmu-cl-hero-eyebrow span {
  width: 18px; height: 2px; border-radius: 0; background: var(--c-gold); animation: none;
}
.tmu-gv-hero h1, .tmu-sn-hero h1, .tmu-cl-hero h1 {
  font-size: clamp(30px, 3.6vw, 44px); font-weight: 600; letter-spacing: -0.03em;
  line-height: 1.08; text-shadow: none; max-width: 20ch; margin-bottom: 14px;
}
.tmu-gv-hero p, .tmu-sn-hero p, .tmu-cl-hero p {
  font-size: 1.0625rem; line-height: 1.6; max-width: 62ch; color: rgba(255,255,255,.82);
}

.tmu-gv-section, .tmu-sn-section, .tmu-cl-section { padding: 68px 0; }
.tmu-gv-container, .tmu-sn-container, .tmu-cl-container { max-width: 1240px; }
.tmu-gv-section-alt, .tmu-sn-section-alt, .tmu-cl-section-alt { background: var(--c-offwhite); }

/* section headers: the same left-weighted, baseline-ruled band as elsewhere */
.tmu-gv-center, .tmu-sn-center, .tmu-cl-center {
  text-align: left; max-width: none; margin: 0 0 40px;
  padding-bottom: 24px; border-bottom: 1px solid var(--c-border);
}
.tmu-gv-label, .tmu-sn-label, .tmu-cl-label {
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.13em; color: var(--c-maroon); gap: 9px; margin-bottom: 12px;
}
.tmu-gv-label::before, .tmu-sn-label::before, .tmu-cl-label::before {
  width: 16px; height: 1px; border-radius: 0; background: var(--c-maroon);
}
.tmu-gv-h2, .tmu-sn-h2, .tmu-cl-h2 {
  font-size: clamp(24px, 2.5vw, 34px) !important; font-weight: 600 !important;
  letter-spacing: -0.026em; line-height: 1.12; color: var(--c-navy); margin: 0 0 12px;
}
.tmu-gv-sub, .tmu-sn-sub { font-size: 1.0625rem; line-height: 1.6; color: var(--c-slate); margin-top: 0; max-width: 62ch; }

/* cards */
.tmu-gv-lead-card, .tmu-sn-member-card, .tmu-cl-card, .tmu-sn-stat {
  background: #fff; border: var(--t-rule); border-top: 2px solid var(--c-navy);
  border-radius: var(--radius-lg); box-shadow: none;
  text-align: left; transition: border-color .16s ease;
}
.tmu-gv-lead-card { padding: 26px 26px 28px; display: block; color: inherit; text-decoration: none; }
.tmu-gv-lead-card:hover, .tmu-sn-member-card:hover, .tmu-cl-card:hover, .tmu-sn-stat:hover {
  transform: none; box-shadow: none; border-top-color: var(--c-maroon);
}
.tmu-gv-lead-icon {
  width: auto; height: auto; border-radius: 0; background: none; color: var(--c-maroon);
  display: block; margin: 0 0 14px; font-size: 1.375rem;
}
.tmu-gv-lead-card:hover .tmu-gv-lead-icon { background: none; color: var(--c-maroon); }
.tmu-gv-lead-card h3 { font-size: 1.0625rem !important; font-weight: 600 !important; letter-spacing: -0.02em; color: var(--c-navy); margin-bottom: 6px; }
.tmu-gv-lead-card p, .tmu-gv-func p { font-size: 0.875rem; line-height: 1.65; color: var(--c-slate); }

/* panels that carried a coloured left rule */
.tmu-gv-func, .tmu-cl-intro, .tmu-sn-intro {
  background: #fff; border: var(--t-rule); border-left: 2px solid var(--c-navy) !important;
  border-radius: var(--radius-lg); box-shadow: none; padding: 26px 28px;
  max-width: none; margin: 0 0 16px;
}
.tmu-gv-func h3, .tmu-gv-func ul li, .tmu-cl-intro p, .tmu-sn-intro p { font-size: 0.9375rem; }
.tmu-gv-func ul li::before { width: 4px; height: 4px; border-radius: 0; background: var(--c-gold); top: 11px; }
.tmu-gv-func ul li, .tmu-cl-intro p, .tmu-sn-intro p { color: var(--c-slate); }

/* governance member tiles */
.tmu-gv-members { gap: 16px; }
.tmu-gv-member {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: none; overflow: hidden; text-align: left;
  transition: border-color .16s ease;
}
.tmu-gv-member:hover { transform: none; box-shadow: none; border-color: #b9c5d1; }
.tmu-gv-member-img { height: 150px; background: #dfe6ed; }
.tmu-gv-member-img img { filter: saturate(.93) contrast(1.03); }
.tmu-gv-member-img .initials { font-family: var(--ff-mono); font-size: 1.25rem; font-weight: 500; color: #9aabbb; }
.tmu-gv-member-body { padding: 16px 18px 18px; }
.tmu-gv-member-body h4 { font-size: 0.9375rem !important; font-weight: 600 !important; letter-spacing: -0.014em; color: var(--c-navy); margin-bottom: 4px; }
.tmu-gv-member-body .title {
  font-family: var(--ff-mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-gold);
}

/* senate function list: rows of a table, not a stack of shadowed boxes */
.tmu-sn-func-list {
  max-width: none; margin: 0; background: #fff;
  border: var(--t-rule); border-radius: var(--radius-lg); overflow: hidden;
}
.tmu-sn-func-list li {
  background: none; border: none; border-bottom: var(--t-rule); border-radius: 0;
  box-shadow: none; margin: 0; padding: 14px 22px;
  font-size: 0.9375rem; line-height: 1.6; color: var(--c-slate);
}
.tmu-sn-func-list li:last-child { border-bottom: none; }
.tmu-sn-note {
  background: var(--c-gold-lt); border: var(--t-rule); border-left: 2px solid var(--c-gold);
  border-radius: 0; padding: 14px 18px; font-size: 0.875rem; line-height: 1.6;
  color: var(--c-navy); max-width: none; margin: 20px 0 0;
}

/* council members */
.tmu-cl-grid, .tmu-gv-lead-grid, .tmu-sn-member-grid { gap: 20px; }
.tmu-cl-card { overflow: hidden; }
.tmu-cl-img { background: #e6ecf2; }
.tmu-cl-img img { filter: saturate(.93) contrast(1.03); }
.tmu-cl-img .badge {
  border-radius: 0; padding: 4px 8px; top: 12px; right: 12px;
  font-family: var(--ff-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.08em;
}
.tmu-cl-badge-chair { background: var(--c-gold); color: var(--c-navy); }
.tmu-cl-badge-member { background: var(--c-navy); color: #fff; }
.tmu-cl-badge-secretary { background: var(--c-maroon); color: #fff; }
.tmu-cl-badge-alternate { background: #eaeef3; color: var(--c-slate); }
.tmu-cl-body { padding: 18px 20px 20px; }
.tmu-cl-body h3, .tmu-sn-member-card h3 { font-size: 1rem !important; font-weight: 600 !important; letter-spacing: -0.018em; color: var(--c-navy); margin-bottom: 4px; }
.tmu-cl-body .title, .tmu-sn-member-card .title {
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.04em; color: var(--c-gold);
}
.tmu-sn-member-card { padding: 24px; }
.tmu-sn-member-img {
  width: 76px; height: 76px; border-radius: 0; margin: 0 0 16px;
  background: #e6ecf2; border: var(--t-rule);
}
.tmu-sn-member-img i { font-size: 1.5rem; color: var(--c-slate); }
.tmu-sn-member-card .category {
  background: none; border: 1px solid var(--c-border); border-radius: var(--radius-sm);
  font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.06em;
  color: var(--c-slate); padding: 3px 8px;
}

/* buttons */
.tmu-gv-btn, .tmu-gv-btn-outline {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 20px;
  padding: 11px 20px; border-radius: var(--radius-md); box-shadow: none;
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em;
  background: var(--c-blue) !important; color: #fff !important; border: 1px solid var(--c-blue) !important;
  text-decoration: none; transition: background-color .16s ease, border-color .16s ease;
}
.tmu-gv-btn:hover, .tmu-gv-btn-outline:hover { background: var(--c-navy) !important; border-color: var(--c-navy) !important; color: #fff !important; transform: none; }
.tmu-gv-btn-outline { background: #fff !important; color: var(--c-navy) !important; border-color: #b9c5d1 !important; }
.tmu-gv-btn-outline:hover { background: var(--c-navy) !important; color: #fff !important; }

/* ══════════════════════════════════════════════════════════════════════
   VC profile, management council board, departments A-Z
   ══════════════════════════════════════════════════════════════════════ */
.tmu-profile {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: none; overflow: hidden;
}
.tmu-profile-img {
  padding: 32px; text-align: left; align-items: flex-start; justify-content: flex-start;
  border-right: var(--t-rule);
}
.tmu-profile-img img {
  width: 176px; height: 176px; border: none; border-radius: 0; box-shadow: none;
  object-fit: cover; filter: saturate(.93) contrast(1.03);
}
.tmu-profile-img h3 { font-size: 1.0625rem !important; font-weight: 600 !important; margin-top: 18px; }
.tmu-profile-img .role { font-size: 0.8125rem; color: var(--c-slate); font-weight: 500; }
.tmu-profile-img .role span {
  font-family: var(--ff-mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.08em; color: var(--c-gold);
}
.tmu-profile-text { padding: 36px 40px; }
.tmu-profile-text p { font-size: 0.9375rem; line-height: 1.75; color: var(--c-slate); }
.tmu-profile-signature {
  font-family: var(--font-display); font-style: normal; font-size: 0.9375rem;
  font-weight: 600; color: var(--c-navy);
}

.tmu-about-card {
  background: #fff; border: var(--t-rule); border-top: 2px solid var(--c-navy);
  border-radius: var(--radius-lg); padding: 26px 28px; box-shadow: none;
  transition: border-color .16s ease;
}
.tmu-about-card.gold { border: var(--t-rule); border-top: 2px solid var(--c-navy); }
.tmu-about-card:hover { transform: none; box-shadow: none; border-top-color: var(--c-maroon); }
.tmu-about-card h3 { font-size: 1.0625rem !important; font-weight: 600 !important; margin-bottom: 14px; }
.tmu-about-card h3 i { color: var(--c-maroon) !important; font-size: 1rem; }
.tmu-about-card p, .tmu-about-card ul li { font-size: 0.875rem; line-height: 1.7; color: var(--c-slate); }
.tmu-about-card ul li::before { width: 4px; height: 4px; border-radius: 0; background: var(--c-gold); top: 11px; }

/* the four VC credentials are one measuring strip, not four floating tiles */
.tmu-facts-grid {
  grid-template-columns: repeat(4, 1fr); gap: 0; background: #fff;
  border: var(--t-rule); border-radius: var(--radius-lg); overflow: hidden;
}
.tmu-fact-card {
  background: #fff; border: none; border-right: var(--t-rule); border-radius: 0;
  box-shadow: none; padding: 22px 24px; text-align: left;
}
.tmu-fact-card:last-child { border-right: none; }
.tmu-fact-card:hover { transform: none; box-shadow: none; }
.tmu-fact-card .icon { font-size: 1.125rem; color: var(--c-maroon); margin-bottom: 12px; }
.tmu-fact-card h4 {
  font-family: var(--ff-mono) !important; font-size: 1.25rem; font-weight: 500;
  letter-spacing: -0.04em; color: var(--c-navy); margin-bottom: 4px;
}
.tmu-fact-card p { font-size: 0.75rem; line-height: 1.5; }

.tmu-board-grid { gap: 20px; }
.tmu-board-card {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: none; overflow: hidden; transition: border-color .16s ease;
}
.tmu-board-card:hover { transform: none; box-shadow: none; border-color: #b9c5d1; }
.tmu-board-card-img {
  background: #dfe6ed; background-image: none; height: 200px;
}
.tmu-board-card-img img { filter: saturate(.93) contrast(1.03); }
.tmu-board-card-img .initials {
  font-family: var(--ff-mono); font-size: 1.5rem; font-weight: 500; color: #9aabbb;
}
.tmu-board-card-body { padding: 20px 22px 22px; text-align: left; }
.tmu-board-card-body h3 { font-size: 1rem !important; font-weight: 600 !important; letter-spacing: -0.018em; margin-bottom: 5px; }
.tmu-board-card-body .role {
  font-family: var(--ff-mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.07em; color: var(--c-gold); margin-bottom: 10px;
}
.tmu-board-card-body p { font-size: 0.875rem; line-height: 1.65; color: var(--c-slate); }

.tmu-dept-card {
  background: #fff; border: var(--t-rule); border-left: 2px solid var(--c-navy);
  border-radius: var(--radius-lg); box-shadow: none; padding: 18px 22px;
  transition: border-color .16s ease;
}
.tmu-dept-card:hover { transform: none; box-shadow: none; border-left-color: var(--c-maroon); }
.tmu-dept-icon {
  width: auto; height: auto; border-radius: 0; background: none;
  color: var(--c-maroon); font-size: 1.0625rem; flex-shrink: 0;
}
.tmu-dept-card h3 { font-size: 0.9375rem !important; font-weight: 600 !important; letter-spacing: -0.012em; }

.tmu-intro { max-width: 62ch; margin: 0 0 44px; text-align: left; }
.tmu-intro p { font-size: 1.0625rem; line-height: 1.65; color: var(--c-slate); }

/* ══════════════════════════════════════════════════════════════════════
   Notice list/detail, council·staff·member detail, faculty programmes
   Six pages that each re-invent the same kit (nt / nd / cd / sd / md / fp):
   a 35vh Playfair banner, a 16px-rounded profile slab with a drop shadow,
   pill buttons, pill badges and a gold rule under every sidebar heading
   ══════════════════════════════════════════════════════════════════════ */
.tmu-nt-hero, .tmu-nd-hero, .tmu-cd-hero, .tmu-sd-hero, .tmu-md-hero, .tmu-fp-hero {
  min-height: 0; background: var(--c-navy); align-items: center;
}
.tmu-nt-hero::after, .tmu-nd-hero::after, .tmu-cd-hero::after,
.tmu-sd-hero::after, .tmu-md-hero::after, .tmu-fp-hero::after {
  background: linear-gradient(90deg, rgba(0,32,64,.92) 0%, rgba(0,32,64,.72) 55%, rgba(0,32,64,.34) 100%);
}
.tmu-nt-hero-inner, .tmu-nd-hero-inner, .tmu-cd-hero-inner,
.tmu-sd-hero-inner, .tmu-md-hero-inner, .tmu-fp-hero-inner {
  text-align: left; max-width: 1240px; padding: 72px 24px 64px;
}
.tmu-nt-hero-eyebrow, .tmu-cd-hero-eyebrow, .tmu-sd-hero-eyebrow, .tmu-fp-hero-eyebrow {
  gap: 10px; font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; color: rgba(255,255,255,.72); margin-bottom: 14px;
}
.tmu-nt-hero-eyebrow span, .tmu-cd-hero-eyebrow span,
.tmu-sd-hero-eyebrow span, .tmu-fp-hero-eyebrow span {
  width: 18px; height: 2px; border-radius: 0; background: var(--c-gold); animation: none;
}
.tmu-nt-hero h1, .tmu-nd-hero h1, .tmu-cd-hero h1,
.tmu-sd-hero h1, .tmu-md-hero h1, .tmu-fp-hero h1 {
  font-size: clamp(28px, 3.2vw, 40px); font-weight: 600; letter-spacing: -0.03em;
  line-height: 1.1; max-width: 24ch; color: #fff;
}
.tmu-nt-hero h1 { margin-bottom: 0; }
.tmu-fp-hero p, .tmu-md-hero .sub {
  font-size: 1rem; line-height: 1.6; max-width: 56ch; margin-top: 10px;
  color: rgba(255,255,255,.78);
}
.tmu-nd-breadcrumb, .tmu-md-breadcrumb, .tmu-sd-breadcrumb, .tmu-cd-hero .breadcrumb {
  font-family: var(--ff-mono); font-size: 10.5px; letter-spacing: 0.06em;
  text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 14px;
}
.tmu-nd-breadcrumb a, .tmu-md-breadcrumb a, .tmu-sd-breadcrumb a, .tmu-cd-hero .breadcrumb a {
  color: rgba(255,255,255,.75);
}
.tmu-nd-breadcrumb i, .tmu-md-breadcrumb i, .tmu-sd-breadcrumb i, .tmu-cd-hero .breadcrumb i {
  font-size: 7px; color: var(--c-gold);
}

/* profile slabs */
.tmu-cd-profile, .tmu-sd-profile, .tmu-md-profile {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: none; overflow: hidden;
}
.tmu-cd-img, .tmu-sd-img, .tmu-md-img { min-height: 340px; background: #dfe6ed; }
.tmu-cd-img img, .tmu-sd-img img, .tmu-md-img img { filter: saturate(.93) contrast(1.03); }
.tmu-cd-img i, .tmu-sd-img i, .tmu-md-img i { font-size: 1.75rem; color: #9aabbb; }
.tmu-cd-text, .tmu-sd-text, .tmu-md-text { padding: 34px 36px; }
.tmu-cd-text h2, .tmu-sd-text h2, .tmu-md-text h2 { font-size: 1.375rem !important; font-weight: 600 !important; letter-spacing: -0.026em; color: var(--c-navy); margin-bottom: 6px; }
.tmu-cd-text .title-text, .tmu-sd-text .dept, .tmu-md-text .title {
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.07em; text-transform: uppercase; color: var(--c-gold); margin-bottom: 16px;
}
.tmu-cd-text .desc, .tmu-sd-text p, .tmu-md-text .desc { font-size: 0.9375rem; line-height: 1.75; color: var(--c-slate); }
.tmu-sd-text a, .tmu-md-text .email { color: var(--c-blue); font-weight: 600; }
.tmu-cd-text .role-badge {
  display: inline-block; padding: 4px 8px; border-radius: 0; margin-bottom: 14px;
  font-family: var(--ff-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.08em;
}

/* publications and list rows */
.tmu-sd-pub {
  background: #fff; border: var(--t-rule); border-left: 2px solid var(--c-navy);
  border-radius: var(--radius-lg); box-shadow: none; padding: 16px 20px; margin-bottom: 10px;
  font-size: 0.875rem; line-height: 1.7; color: var(--c-slate);
}
.tmu-nt-item, .tmu-fp-list-item {
  background: #fff; border: none; border-bottom: var(--t-rule);
  box-shadow: none; padding: 18px 0; margin: 0; text-decoration: none;
  transition: background-color .16s ease;
}
.tmu-nt-item:hover, .tmu-fp-list-item:hover { transform: none; box-shadow: none; background: #fbfcfd; }
.tmu-nt-item h3, .tmu-fp-list-item h3 { font-size: 1rem !important; font-weight: 600 !important; letter-spacing: -0.018em; color: var(--c-navy); margin-bottom: 5px; }
.tmu-nt-info p, .tmu-fp-card .desc { font-size: 0.875rem; line-height: 1.65; color: var(--c-slate); }
.tmu-nt-thumb { background: #e6ecf2; }
.tmu-nt-thumb img { filter: saturate(.93) contrast(1.03); }
.tmu-nt-info .date, .tmu-nt-sidebar .d {
  font-family: var(--ff-mono); font-size: 10.5px; letter-spacing: 0.06em;
  text-transform: uppercase; color: #8a5f0c;
}
.tmu-nt-list, .tmu-fp-list-item + .tmu-fp-list-item { border-top: none; }
.tmu-nt-list { gap: 0; border-top: var(--t-rule); }

/* search and filter bars */
.tmu-nt-search, .tmu-fp-bar {
  background: #fff; border: var(--t-rule); box-shadow: none;
  border-radius: var(--radius-lg); padding: 12px 14px; gap: 8px;
}
.tmu-fp-bar { margin-top: -24px; }
.tmu-nt-search input, .tmu-fp-bar input, .tmu-fp-bar select {
  border: 1px solid var(--c-border); border-radius: var(--radius-md);
  padding: 9px 12px; font-size: 0.875rem; font-family: var(--ff-sans); color: var(--c-text);
}
.tmu-nt-search input:focus, .tmu-fp-bar input:focus, .tmu-fp-bar select:focus { border-color: var(--c-blue); }
.tmu-nt-search button, .tmu-fp-btn {
  border-radius: var(--radius-md); padding: 9px 16px;
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.01em;
  background: var(--c-blue); color: #fff; border: 1px solid var(--c-blue); cursor: pointer;
}
.tmu-nt-search button:hover, .tmu-fp-btn-search:hover { background: var(--c-navy); border-color: var(--c-navy); }
.tmu-fp-btn-reset { background: #fff; color: var(--c-slate); border-color: var(--c-border); }
.tmu-fp-view a {
  border-radius: var(--radius-md); border: 1px solid var(--c-border);
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; color: var(--c-slate);
}
.tmu-fp-view a.act { background: var(--c-navy); color: #fff; border-color: var(--c-navy); }
.tmu-fp-count, .tmu-nt-count { font-family: var(--ff-mono); font-size: 0.8125rem; color: var(--c-slate); }

/* programme cards */
.tmu-fp-card {
  background: #fff; border: var(--t-rule); border-top: 2px solid var(--c-navy);
  border-radius: var(--radius-lg); box-shadow: none; padding: 24px;
  transition: border-color .16s ease;
}
.tmu-fp-card:hover { transform: none; box-shadow: none; border-top-color: var(--c-maroon); }
.tmu-fp-card h3 { font-size: 1rem !important; font-weight: 600 !important; letter-spacing: -0.018em; color: var(--c-navy); }
.tmu-fp-lvl {
  border-radius: 0; padding: 3px 8px; align-self: flex-start;
  font-family: var(--ff-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.07em;
}
.tmu-fp-lvl-Undergraduate { background: #eaf1f7; color: var(--c-navy); }
.tmu-fp-lvl-Postgraduate { background: var(--c-gold-lt); color: #7a5308; }
.tmu-fp-lvl-Diploma { background: #f7ecec; color: var(--c-maroon); }
.tmu-fp-lvl-Certificate { background: #eaeef3; color: var(--c-slate); }

/* sidebar panels */
.tmu-nd-main, .tmu-nt-sb-card, .tmu-nd-sb-card {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: none;
}
.tmu-nd-main { padding: 34px 36px; }
.tmu-nd-img { border-radius: 0; margin-bottom: 24px; }
.tmu-nd-content { font-size: 0.9375rem; line-height: 1.8; color: var(--c-slate); }
.tmu-nt-sb-card, .tmu-nd-sb-card { padding: 22px 24px; }
.tmu-nt-sb-card h3, .tmu-nd-sb-card h3 {
  font-size: 0.9375rem !important; font-weight: 600 !important; letter-spacing: -0.014em;
  color: var(--c-navy); margin-bottom: 12px; padding-bottom: 10px;
  border-bottom: var(--t-rule) !important;
}
.tmu-nt-sb-card ul li .d, .tmu-nd-sb-card ul li .d {
  font-family: var(--ff-mono); font-size: 10.5px; letter-spacing: 0.04em; color: var(--c-gold);
}
.tmu-nd-sb-info li i { color: var(--c-maroon); font-size: 0.8125rem; width: 16px; }

/* pagination: a left-aligned row of squares, not a centred strip of chips */
.tmu-nt-pagination, .tmu-fp-pagination { justify-content: flex-start; padding: 24px 0 0; gap: 4px; }
.tmu-nt-pagination a, .tmu-nt-pagination span,
.tmu-fp-pagination a, .tmu-fp-pagination span {
  border-radius: var(--radius-md); font-family: var(--ff-mono); font-weight: 500;
  min-width: 34px; height: 34px; font-size: 0.8125rem;
}
.tmu-nt-pagination a:hover, .tmu-fp-pagination a:hover { background: var(--c-navy); color: #fff; }
.tmu-nt-pagination span.act, .tmu-fp-pagination span.act { background: var(--c-navy); color: #fff; }

/* buttons */
.tmu-nd-dl, .tmu-nd-back, .tmu-cd-btn, .tmu-sd-btn, .tmu-md-btn, .tmu-fp-back {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 20px; border-radius: var(--radius-md) !important; box-shadow: none;
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em;
  background: var(--c-blue); color: #fff; border: 1px solid var(--c-blue); text-decoration: none;
  transition: background-color .16s ease, border-color .16s ease;
}
.tmu-nd-dl:hover, .tmu-cd-btn:hover, .tmu-sd-btn:hover, .tmu-md-btn:hover, .tmu-fp-back:hover {
  background: var(--c-navy); border-color: var(--c-navy); color: #fff; transform: none;
}
.tmu-nd-back { background: #fff; color: var(--c-navy); border-color: #b9c5d1; }
.tmu-nd-back:hover { background: var(--c-navy); color: #fff; border-color: var(--c-navy); }

/* centred section headers on the staff detail page */
.tmu-sd-center {
  text-align: left; max-width: none; margin: 0 0 40px;
  padding-bottom: 24px; border-bottom: 1px solid var(--c-border);
}
.tmu-sd-label {
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.13em; color: var(--c-maroon); gap: 9px; margin-bottom: 12px;
}
.tmu-sd-label::before { width: 16px; height: 1px; border-radius: 0; background: var(--c-maroon); }
.tmu-sd-h2 { font-size: clamp(24px, 2.5vw, 34px) !important; font-weight: 600 !important; letter-spacing: -0.026em; color: var(--c-navy); }

/* faculty staff detail — profile slab layout (page keeps only shared classes) */
.tmu-sd-hero h1 { max-width: 34ch; }
.tmu-sd-section { padding: 56px 0 64px; background: var(--c-offwhite); }
.tmu-sd-container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.tmu-sd-profile { display: grid; grid-template-columns: 320px minmax(0, 1fr); }
.tmu-sd-img { min-height: 360px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.tmu-sd-img img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; object-position: center 18%; display: block; }
.tmu-sd-text { padding: 40px 44px; }
.tmu-sd-text h2 { font-size: 1.5rem !important; margin-bottom: 8px; }
.tmu-sd-text .dept { margin-bottom: 18px; color: #8a5f0c; }
.tmu-sd-text p { margin-bottom: 12px; }
.tmu-sd-text p:last-child { margin-bottom: 0; }
.tmu-sd-pubs { margin-top: 36px; padding-top: 34px; border-top: 1px solid var(--c-border); }
.tmu-sd-pub:last-child { margin-bottom: 0; }
.tmu-sd-back { padding-top: 32px; text-align: left !important; }
@media (max-width: 860px) {
  .tmu-sd-section { padding: 40px 0 48px; }
  .tmu-sd-container { padding: 0 18px; }
  .tmu-sd-profile { grid-template-columns: minmax(0, 1fr); }
  .tmu-sd-img, .tmu-sd-img img { min-height: 0; }
  .tmu-sd-img img { height: clamp(260px, 66vw, 380px); }
  .tmu-sd-text { padding: 28px 24px 30px; }
}

/* ══════════════════════════════════════════════════════════════════════
   Faculty & staff directory — quick-access tiles with filled icon circles,
   spotlight cards with pill badges, a blue date block, a lozenge signup box
   ══════════════════════════════════════════════════════════════════════ */
.tmu-quick-card {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg);
  box-shadow: none; padding: 18px 20px;
}
.tmu-quick-card:hover { transform: none; box-shadow: none; background: #fff; border-color: #b9c5d1; }
.tmu-quick-icon {
  width: auto !important; height: auto !important; border-radius: 0 !important;
  background: none !important; color: var(--c-maroon) !important;
  font-size: 1.125rem; flex-shrink: 0;
}
.tmu-quick-card h3 { font-size: 0.9375rem !important; font-weight: 600 !important; letter-spacing: -0.014em; }
.tmu-quick-card p { font-size: 0.8125rem; }

.tmu-spotlight-card, .tmu-news-card {
  background: #fff; border: var(--t-rule); border-radius: var(--radius-lg); box-shadow: none;
}
.tmu-spotlight-card:hover, .tmu-news-card:hover { transform: none; box-shadow: none; }
.tmu-spotlight-img { border-radius: 0; }
.tmu-spotlight-img img, .tmu-news-img img { filter: saturate(.93) contrast(1.03); }
.tmu-spotlight-card:hover .tmu-spotlight-img img { transform: none; }
.tmu-spotlight-img-badge {
  background: var(--c-maroon); border-radius: 0; padding: 4px 8px;
  font-family: var(--ff-mono); font-weight: 500; letter-spacing: 0.08em; font-size: 10px;
}
.tmu-spotlight-body { padding: 24px 26px 26px; }
.tmu-spotlight-body h3 { font-size: 1.125rem !important; font-weight: 600 !important; letter-spacing: -0.022em; }
.tmu-spotlight-dept {
  font-family: var(--ff-mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.07em; text-transform: uppercase; color: var(--c-gold);
}
.tmu-spotlight-read, .tmu-news-link {
  font-family: var(--ff-mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-navy);
}

.tmu-news-date {
  background: var(--c-gold-lt) !important; color: var(--c-navy) !important;
  min-width: 66px; padding: 14px 14px; text-align: left; align-items: flex-start;
}
.tmu-news-day { font-family: var(--ff-mono) !important; font-size: 1.25rem !important; font-weight: 500 !important; letter-spacing: -0.04em; }
.tmu-news-mon { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.1em; margin-top: 3px; }
.tmu-news-content h3 { font-size: 0.9375rem !important; font-weight: 600 !important; letter-spacing: -0.014em; }

.tmu-newsletter { background: var(--c-navy) !important; background-image: none !important; }
.tmu-newsletter-form {
  max-width: 440px; border: 1px solid rgba(255,255,255,.24);
  border-radius: var(--radius-md); overflow: hidden;
}
.tmu-newsletter-form input {
  border-radius: 0; padding: 12px 16px; background: rgba(255,255,255,.08); color: #fff;
}
.tmu-newsletter-form input::placeholder { color: rgba(255,255,255,.5); }
.tmu-newsletter-form button {
  border-radius: 0; background: var(--c-gold); padding: 12px 20px;
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.01em;
}
.tmu-newsletter-form button:hover { background: #b0780c; }
.tmu-newsletter-img { border-radius: var(--radius-lg); box-shadow: none; }

/* ══════════════════════════════════════════════════════════════════════
   Department and directorate pages
   Hand-written blocks bolted onto the WordPress export: gradient rule bars
   under centred headings, gradient left-stripes on cards, ✓ and • bullets in
   theme blue, 16px radii, 30px shadows, translateY hovers, Segoe UI body text
   ══════════════════════════════════════════════════════════════════════ */
/* the gradient bar under every heading — the section rule already does this */
[class*="divider"]:not([class*="elementor"]):not(.tmu-divider):not(.tmu-hero-divider) {
  display: none !important;
}

.hr-section, .ict-section, .finance-section, .security-section,
.sports-section, .transport-section, .history-section, .hostels-section,
.contact-section, .achievements-section, .audit-container,
.about-section, .director-section, .bio-section, .faq-section {
  font-family: var(--ff-sans) !important; font-weight: 400; color: var(--c-text);
  max-width: 1240px; margin: 0 auto; padding: 24px;
  line-height: 1.62;
}

.section-header {
  text-align: left !important; max-width: none !important;
  margin: 52px 0 32px !important; padding-bottom: 24px;
  border-bottom: 1px solid var(--c-border);
}
.section-header h2, .section-title, .ict-section-title, .audit-section-title,
.ict-section-header h2, .contact-title {
  font-family: var(--font-display) !important;
  font-size: clamp(20px, 2vw, 26px) !important; font-weight: 600 !important;
  letter-spacing: -0.022em; color: var(--c-navy) !important; line-height: 1.18;
}
.section-title { font-size: 1.375rem !important; display: block; gap: 0; margin-bottom: 16px; }
.section-subtitle, .ict-section-subtitle { color: var(--c-slate) !important; font-size: 1.0625rem; max-width: 62ch; margin: 0; }

/* cards */
.content-card, .ict-card, .overview-card, .department-card, .link-card,
.value-item, .stat-item, .sport-item, .personnel-item, .faq-card,
.director-card, .profile-card, .audit-contact-card, .audit-highlight-card,
.audit-function-text, .timeline-item, .audit-timeline-item, .contact-item {
  background: #fff !important; background-image: none !important;
  border: var(--t-rule) !important; border-top: 2px solid var(--c-navy) !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  transform: none !important; text-align: left !important;
  transition: border-color .16s ease;
}
.content-card:hover, .ict-card:hover, .overview-card:hover, .department-card:hover,
.link-card:hover, .faq-card:hover, .director-card:hover, .profile-card:hover,
.sport-item:hover, .personnel-item:hover, .stat-item:hover, .value-item:hover,
.timeline-item:hover, .audit-timeline-item:hover, .contact-item:hover {
  transform: none !important; box-shadow: none !important;
  border-top-color: var(--c-maroon) !important;
}
.content-card h3, .ict-card h3, .overview-card h3, .department-card h3,
.link-card h3, .faq-card h3, .value-content h3, .sport-item h3 {
  font-size: 1.0625rem !important; font-weight: 600 !important; letter-spacing: -0.02em;
  color: var(--c-navy) !important;
}
.content-card h3::after { display: none !important; }
.content-card p, .ict-card-text, .link-card p, .department-card p,
.value-content p, .overview-card p, .faq-card-content p { font-size: 0.9375rem; line-height: 1.7; color: var(--c-slate); }
.cards-container, .ict-cards-container, .sports-grid { gap: 20px; margin: 32px 0; }

/* bullets */
.card-list, .feature-list { margin: 18px 0; }
.card-list li, .feature-list li { font-size: 0.9375rem; line-height: 1.65; color: var(--c-slate); font-weight: 400; }
.card-list li::before, .feature-list li::before {
  content: '' !important; width: 5px; height: 5px; border-radius: 0 !important;
  background: var(--c-maroon) !important; color: transparent !important;
  font-size: 0 !important; left: 0 !important; top: 10px !important;
}
.card-list li { padding-left: 18px; }
.feature-list li { padding-left: 18px; }

/* HOD / director profiles */
.hod-container, .audit-leader-message, .director-message {
  background: #fff !important; background-image: none !important;
  border: var(--t-rule) !important; border-radius: var(--radius-lg) !important;
  box-shadow: none !important; padding: 28px !important; margin-bottom: 32px;
}
.hod-card, .audit-leader-profile, .dvc-profile-section {
  background: #fff !important; border: var(--t-rule) !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  overflow: hidden; padding: 0 !important;
}
.hod-card::before, .audit-leader-profile::before {
  content: none !important;
}
.hod-image, .director-image, .audit-leader-portrait, .profile-image img {
  border-radius: 0 !important; box-shadow: none !important;
  filter: saturate(.93) contrast(1.03);
}
.hod-title, .director-caption, .profile-card .role {
  background: var(--c-navy) !important; background-image: none !important;
  border-radius: 0 !important; color: #fff !important; font-family: var(--ff-mono); font-size: 10.5px;
  font-weight: 500; letter-spacing: 0.07em; text-transform: uppercase;
  padding: 10px 14px !important; text-align: left !important;
}
.hod-content p, .director-message p, .profile-content p, .about-text p {
  font-size: 0.9375rem; line-height: 1.75; color: var(--c-slate);
}
.director-signature, .profile-signature {
  font-family: var(--font-display); font-style: normal; font-weight: 600;
  font-size: 0.9375rem; color: var(--c-navy);
}

/* the gradient welcome banner */
.welcome-msg, .welcome-message {
  background: var(--c-gold-lt) !important; background-image: none !important;
  border: var(--t-rule); border-left: 2px solid var(--c-gold);
  border-radius: 0 !important; color: var(--c-navy) !important;
  font-weight: 500; font-size: 0.9375rem; text-align: left !important;
  padding: 14px 18px !important; margin-top: 20px;
}

/* personnel and stats */
.personnel-name { font-family: var(--font-display); font-size: 0.9375rem; font-weight: 600; color: var(--c-navy) !important; }
.personnel-title, .audit-function-details { font-size: 0.8125rem; color: var(--c-slate); }
.stat-number, .audit-stat-number {
  font-family: var(--ff-mono) !important; font-weight: 500 !important;
  font-size: 1.75rem !important; letter-spacing: -0.045em; color: var(--c-navy) !important;
}
.stat-label, .audit-stat-label { font-size: 0.8125rem; color: var(--c-slate); text-transform: none; letter-spacing: 0; }
.timeline-year { font-family: var(--ff-mono); font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--c-gold); }
.timeline-event, .leadership-timeline { font-size: 0.9375rem; color: var(--c-slate); }

/* action rows and contact blocks */
.action-buttons { justify-content: flex-start; gap: 12px; }
.action-button, .audit-btn, .faq-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 20px; border-radius: var(--radius-md) !important; box-shadow: none !important;
  background: var(--c-blue) !important; color: #fff !important; border: 1px solid var(--c-blue) !important;
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em;
  text-decoration: none; transform: none !important;
}
.action-button:hover, .audit-btn:hover { background: var(--c-navy) !important; border-color: var(--c-navy) !important; transform: none !important; }
.contact-item svg, .audit-contact-item svg { fill: var(--c-maroon) !important; width: 18px; height: 18px; }
.contact-item h4, .audit-contact-item h4 { font-size: 0.9375rem !important; font-weight: 600 !important; color: var(--c-navy); }
.contact-item p, .contact-item a { font-size: 0.875rem; color: var(--c-slate); }
.value-icon, .audit-timeline-marker { color: var(--c-maroon) !important; font-size: 1.25rem !important; background: none !important; border-radius: 0 !important; }

/* Elementor page banners: a photo with a heading floating in the middle of it */
.elementor-widget-container[style*="text-align: center"],
.elementor-widget-container[style*="text-align:center"],
.tm-modern-heading, .heading-primary-wrap, .heading-description-wrap {
  text-align: left !important;
}
.elementor-widget-wrap[style*="padding:20%"], .elementor-widget-wrap[style*="padding: 20%"] { padding: 0 !important; }
.elementor-background-overlay[style*="padding"] { padding: 0 !important; }
.elementor-section:has(> .elementor-background-overlay) .elementor-container,
.campus-hero-banner .hero-content, .hero-banner .hero-content, .dvc-hero-banner .hero-content {
  padding: 88px 24px 76px !important;
}
.elementor-background-overlay {
  box-shadow: inset 460px 0 240px -150px rgba(0,21,42,.92), inset -220px 0 240px -150px rgba(0,21,42,.5);
}
.heading-primary, .hero-banner h1, .dvc-hero-banner h1, .hero-content h1 {
  font-family: var(--font-display) !important;
  font-size: clamp(30px, 3.6vw, 44px) !important; font-weight: 600 !important;
  letter-spacing: -0.03em; line-height: 1.08; color: #fff !important;
  text-shadow: none !important; max-width: 22ch; margin-bottom: 12px !important;
}
.heading-description, .hero-subtitle, .hero-content p {
  font-size: 1.0625rem !important; line-height: 1.6; max-width: 56ch;
  color: rgba(255,255,255,.82) !important;
}

/* ── inline styles on the legacy pages ────────────────────────────────
   Three thousand-odd of these carry the old UI blue, pill radii and soft
   shadows inside style="" attributes, which outrank every class rule
   above. The markup stays untouched, so the attribute values are matched. */
[style*="color: hsl(211 100% 25%)"] { color: var(--c-navy) !important; }
/* "background-color: …" also contains "color: …", so the fill rules have to
   restate the foreground or blue buttons end up navy-on-blue */
[style*="background-color: hsl(211 100% 25%)"] { background-color: var(--c-blue) !important; color: #fff !important; }
[style*="background: hsl(211 100% 25%)"] { background: var(--c-blue) !important; color: #fff !important; }
[style*="border: 3px solid hsl(211 100% 25%)"] { border: 1px solid var(--c-navy) !important; }
[style*="border-top: 5px solid hsl(211 100% 25%)"] { border-top: 2px solid var(--c-navy) !important; }
[style*="border-left: 4px solid hsl(211 100% 25%)"] { border-left: 2px solid var(--c-navy) !important; }
[style*="border-bottom: 4px solid hsl(211 100% 25%)"] { border-bottom: 1px solid var(--c-navy) !important; }
svg[fill*="hsl(211 100% 25%)"] { fill: var(--c-navy) !important; }
/* only elements that pair the old blue with a radius are the legacy widgets */
[style*="border-radius"][style*="hsl(211 100% 25%)"] {
  border-radius: var(--radius-md) !important; box-shadow: none !important;
}
[style*="background-color: #f9f9f9"] { background-color: var(--c-offwhite) !important; }

/* the same card recipe repeated as an inline style: grey fill, 10px corners,
   a soft shadow and a thick blue edge along the top */
[style*="border-radius"][style*="box-shadow"]:not(a):not(button) {
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  border: var(--t-rule) !important; background: #fff !important; background-image: none !important;
}
a[style*="border-radius"], button[style*="border-radius"] {
  border-radius: var(--radius-md) !important; box-shadow: none !important;
}
[style*="border-top: 4px solid hsl(211 100% 25%)"] { border-top: 2px solid var(--c-navy) !important; }
[style*="border-top: 3px solid hsl(211 100% 25%)"] { border-top: 2px solid var(--c-navy) !important; }
[style*="border-radius: 50%"]:not(img) { border-radius: var(--radius-sm) !important; }
[style*="background: #f0e6e8"], [style*="background: #f9f2f3"],
[style*="background: rgba(154, 30, 49"], [style*="background-color: rgba(154, 30, 49"] {
  background: var(--c-offwhite) !important;
}

/* anything in the page body that was centred by hand */
body div[style*="text-align: center"], body div[style*="text-align:center"],
:is(h1, h2, h3, h4, h5)[style*="text-align: center"],
p[style*="text-align: center"] { text-align: left !important; }
header div[style*="text-align: center"], footer div[style*="text-align: center"],
[class*="popup"] div[style*="text-align: center"] { text-align: center !important; }
i[class*="fa-check"], i[class*="fa-circle-check"] { color: var(--c-maroon) !important; font-size: 0.625rem !important; }

/* centred heading + button blocks bolted onto section wrappers */
[class*="section"] > div[style*="text-align: center"] { text-align: left !important; }
[class*="section"] > div[style*="text-align: center"] > p { max-width: 62ch; margin-left: 0 !important; }
[class*="section"] > div[style*="text-align: center"] [style*="justify-content: center"] { justify-content: flex-start !important; }
[class*="section"] h2[style*="text-align: center"] { text-align: left !important; }

/* short rule bars used as heading decoration */
:is(div, span)[style*="height: 2px"][style*="background"],
:is(div, span)[style*="height: 3px"][style*="background"],
:is(div, span)[style*="height: 4px"][style*="background"],
:is(div, span)[style*="height: 5px"][style*="background"],
:is(div, span)[style*="height: 6px"][style*="background"] { display: none !important; }
div[style*="background-color: hsl(211 100% 25%)"][style*="text-align: center"],
div[style*="background: hsl(211 100% 25%)"][style*="text-align: center"] { text-align: left !important; }

/* emoji stuck in front of a heading */
.section-title .icon { display: none !important; }

/* ── the department bodies as a group ─────────────────────────────────
   Each of these pages ships a page <style> block that re-declares its own
   font stack, the old UI blue on every heading, centred symmetry and lifted
   cards. They all sit inside one identifiable wrapper, so the sweep is scoped
   to that rather than repeated class by class. */
:is(.hr-section, .ict-redesign, .finance-section, .security-section,
    .transport-section, .sports-section, .tm-estates-section, .audit-container,
    .hostels-section, .department-section, .history-section, .about-section,
    .director-section, .faq-section, .contact-section, .achievements-section) {
  font-family: var(--ff-sans) !important; font-weight: 400; color: var(--c-text);
  line-height: 1.62;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section,
    .transport-section, .sports-section, .tm-estates-section, .audit-container,
    .hostels-section, .department-section, .history-section, .about-section,
    .director-section, .faq-section, .contact-section, .achievements-section) :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-display) !important; font-weight: 600 !important;
  letter-spacing: -0.022em; color: var(--c-navy) !important; text-align: left !important;
  line-height: 1.22;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section,
    .transport-section, .sports-section, .tm-estates-section, .audit-container,
    .hostels-section, .department-section) p { text-align: left !important; }
:is(.hr-section, .ict-redesign, .finance-section, .security-section,
    .transport-section, .sports-section, .tm-estates-section, .audit-container,
    .hostels-section, .department-section) { text-align: left; }
:is(.hr-section, .ict-redesign, .finance-section, .security-section,
    .transport-section, .sports-section, .tm-estates-section, .audit-container,
    .hostels-section) :is(.stat-item, .audit-stat-item, .team-stat, .sport-item, .unit-card,
    .vm-card, .vp-card, .rp-card, .ach-card, .audit-mandate-card, .audit-metric-card,
    .audit-team-member, .audit-timeline-item, .audit-contact-hours, .gallery-item,
    .gallery-caption, .image-caption, .hod-card, .hod-badge, .contact-header,
    .ict-section-header, .ict-card-title, .ict-button-container, .ict-gallery-caption,
    .ict-hod-figure, .tm-section-title, .welcome-message, .ict-welcome-message,
    .ach-overlay, .timeline-event, .tm-overview-card, .tm-contact-card, .achievement-card) {
  text-align: left !important;
}
/* every "card" in these bodies is the same rounded, shadowed, lifted white box */
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) [class*="-card"]:not([class*="elementor"]) {
  background: #fff !important; background-image: none !important;
  border: var(--t-rule) !important; border-top: 2px solid var(--c-navy) !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  transform: none !important; transition: border-top-color .18s ease !important;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section) [class*="-card"]:hover {
  transform: none !important; box-shadow: none !important;
  border-top-color: var(--c-maroon) !important;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) [class*="-card"]::before,
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container) [class*="-card"] > h3::after,
:is(.finance-section, .security-section, .transport-section, .sports-section) .section-header h2::after {
  content: none !important; display: none !important;
}
/* photographs keep their hard corners and lose the drop shadow */
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section) img {
  border-radius: 0 !important; box-shadow: none !important;
  filter: saturate(.93) contrast(1.03);
}
/* the ✓ / coloured-dot bullet lists */
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) :is(ul, ol) li::before {
  content: '' !important; position: absolute; left: 0; top: 10px;
  width: 5px; height: 5px; border-radius: 0 !important;
  background: var(--c-maroon) !important; background-image: none !important;
  color: transparent !important;
  font-size: 0 !important; font-family: var(--ff-sans) !important;
  transform: none !important; box-shadow: none !important;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) li { position: relative; padding-left: 18px; }
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) li strong { color: var(--c-navy) !important; font-weight: 600; }
/* gradient banners, badge pills and the blue tab state */
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section) [class*="welcome"] {
  background: var(--c-gold-lt) !important; background-image: none !important;
  border: var(--t-rule) !important; border-left: 2px solid var(--c-gold) !important;
  border-radius: 0 !important; color: var(--c-navy) !important;
  font-weight: 500; text-align: left !important; padding: 14px 18px !important;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section) [class*="badge"] {
  background: var(--c-navy) !important; background-image: none !important;
  border-radius: 0 !important; color: #fff !important; font-family: var(--ff-mono);
  font-size: 10.5px; letter-spacing: 0.07em; text-transform: uppercase;
  text-align: left !important; padding: 8px 12px !important;
}
:is(.finance-section, .security-section, .transport-section, .sports-section,
    .ict-redesign, .tm-estates-section, .audit-container, .hostels-section) :is(a[class*="button"], button) {
  border-radius: var(--radius-md) !important; box-shadow: none !important;
  background: var(--c-blue) !important; color: #fff !important;
  border: 1px solid var(--c-blue) !important; font-family: var(--font-display);
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em; transform: none !important;
}
:is(.finance-section, .security-section, .transport-section, .sports-section,
    .ict-redesign, .tm-estates-section, .audit-container, .hostels-section) :is(a[class*="button"]:hover) {
  background: var(--c-navy) !important; border-color: var(--c-navy) !important;
  transform: none !important; box-shadow: none !important;
}
:is(.ict-redesign, .tm-estates-section, .audit-container, .finance-section,
    .security-section, .transport-section, .sports-section, .hostels-section) [class*="contact"] {
  color: var(--c-slate);
}
/* the icon-in-a-coloured-circle motif */
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) [class*="-icon"] {
  width: auto !important; height: auto !important; background: none !important;
  background-image: none !important; border-radius: 0 !important; box-shadow: none !important;
  display: block !important; margin: 0 0 12px !important; padding: 0 !important;
  color: var(--c-maroon) !important; font-size: 1.25rem !important; line-height: 1;
}
:is(.hr-section, .ict-redesign, .finance-section, .security-section, .transport-section,
    .sports-section, .tm-estates-section, .audit-container, .hostels-section,
    .department-section) [class*="-icon"] svg {
  fill: var(--c-maroon) !important; width: 20px; height: 20px;
}

/* page-local widths and gutters brought onto the site column */
.ict-redesign, .tm-container, .hod-portrait, .leader-portrait, .audit-leader-portrait {
  max-width: 1240px !important; margin-left: auto !important; margin-right: auto !important;
}
.ict-hod-container { background: var(--c-offwhite) !important; border-radius: 0 !important; padding: 32px 24px !important; }
.ict-section-header { margin-bottom: 32px; }
.ict-contact-section { border-left: 2px solid var(--c-navy) !important; max-width: none; }

/* small stat pills bolted under a paragraph */
:is(.transport-section, .sports-section, .security-section, .finance-section,
    .audit-container, .hostels-section, .ict-redesign, .tm-estates-section) :is(
    [class*="-stat"], [class*="stats"] span, [class*="stat-item"]) {
  background: #fff !important; background-image: none !important;
  border: var(--t-rule) !important; border-radius: 0 !important;
  box-shadow: none !important; padding: 12px 16px !important; text-align: left !important;
}

/* the person-silhouette placeholder that stands in for a missing photo */
.security-section .profile-icon, .audit-container .profile-icon {
  width: 100% !important; height: 210px !important; background: #dfe6ed !important;
  background-image: none !important; display: flex !important; align-items: center;
  justify-content: center; margin: 0 !important; box-shadow: none !important;
}
.security-section .profile-icon svg, .audit-container .profile-icon svg { width: 46px !important; height: 46px !important; fill: #9aa9b8 !important; }

/* sports packs its placeholder and its badge into one stretch-height column,
   so the frame fills the portrait slot and the badge sits under it */
.sports-section .hod-image-container {
  padding-bottom: 0 !important; display: flex !important; flex-direction: column;
}
.sports-section .hod-image-container .profile-icon {
  width: 100% !important; height: auto !important; flex: 1 1 auto; min-height: 240px;
  background: #dfe6ed !important; background-image: none !important;
  display: flex !important; align-items: center; justify-content: center;
  margin: 0 !important; padding: 0 !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.sports-section .hod-image-container .profile-icon svg {
  width: 46px !important; height: 46px !important; fill: #9aa9b8 !important;
}
.sports-section .hod-image-container .hod-badge { position: static !important; margin: 0 !important; }

/* the coloured band these pages lay over a photograph */
:is(.security-section, .transport-section, .sports-section, .finance-section,
    .hostels-section, .tm-estates-section, .ict-redesign, .audit-container) [class*="caption"] {
  font-style: normal !important; font-size: 0.8125rem;
  text-align: left !important; color: var(--c-slate);
}
:is(.security-section, .transport-section, .sports-section, .finance-section,
    .hostels-section, .tm-estates-section, .ict-redesign, .audit-container) :is(
    [class*="overlay"], .gallery-caption, .image-caption) {
  background: rgba(0, 26, 48, .86) !important; color: #fff !important;
  font-family: var(--ff-mono); font-size: 10.5px !important; font-weight: 500;
  letter-spacing: 0.07em; text-transform: uppercase;
  text-align: left !important; padding: 9px 12px !important;
}

/* the tinted column these pages put a portrait in */
.tm-leader-profile, .audit-leader-details, .hod-image-container {
  background: var(--c-offwhite) !important; background-image: none !important;
}
/* the function tabs read as a ruled tab strip, not a blue button bar */
.audit-container .audit-functions-tabs {
  background: none !important; border-bottom: var(--t-rule); gap: 0;
}
.audit-container .audit-tab {
  background: none !important; color: var(--c-navy) !important;
  border: none !important; border-bottom: 2px solid transparent !important;
  border-radius: 0 !important; padding: 11px 16px !important; font-size: 0.8125rem;
}
.audit-container .audit-tab:hover, .audit-container .audit-tab.active {
  background: none !important; color: var(--c-navy) !important;
  border-bottom-color: var(--c-maroon) !important;
}
.audit-container .audit-contact-hours {
  background: var(--c-offwhite) !important; border-left: 2px solid var(--c-navy) !important;
}

/* grey inset boxes that were used to break up a card's body copy */
.message-content, .history-content, .responsibility-content, .staff-content, .about-content {
  background: none !important; border-radius: 0 !important; padding: 0 !important;
}
.call-to-action {
  color: var(--c-navy) !important; font-weight: 500; font-size: 0.9375rem;
  border-left: 2px solid var(--c-maroon) !important; padding-left: 14px !important;
}
/* the tinted pull-quote under a vision/purpose card */
:is(.finance-section, .security-section, .transport-section, .sports-section,
    .ict-redesign, .audit-container, .hostels-section, .tm-estates-section) :is(
    [class*="highlight"]:not([class*="image"]):not([class*="content"]):not([class*="card"])) {
  background: var(--c-offwhite) !important; background-image: none !important;
  border-radius: 0 !important; border-left: 2px solid var(--c-gold) !important;
  color: var(--c-navy) !important; font-style: normal !important;
  text-align: left !important; font-weight: 500;
}

/* ── ODeL directorate ───────────────────────────────────────────────
   Everything on this page is namespaced under one id, so it gets its own
   block rather than another entry in the sweep lists above. */
#odel-directorate-page { font-family: var(--ff-sans); color: var(--c-text); line-height: 1.62; }
#odel-directorate-page .odel-hero {
  background-image: linear-gradient(90deg, rgba(0, 26, 48, .93) 0%, rgba(0, 26, 48, .74) 46%, rgba(0, 26, 48, .3) 100%),
                    url("../../wp-content/uploads/A&LHB2jpg.jpg") !important;
  text-align: left !important; padding: 96px 24px 84px !important;
}
#odel-directorate-page .odel-hero h1 {
  font-family: var(--font-display) !important; font-weight: 600 !important;
  font-size: clamp(30px, 3.6vw, 44px) !important; letter-spacing: -0.03em;
  line-height: 1.08; max-width: 22ch; margin: 0 0 14px !important;
}
#odel-directorate-page .odel-hero .lead {
  font-size: 1.0625rem !important; font-weight: 400; max-width: 56ch;
  margin: 0 !important; color: rgba(255, 255, 255, .82) !important;
}
#odel-directorate-page .section-header { text-align: left !important; margin-bottom: 32px !important; }
#odel-directorate-page .section-header h2 {
  display: block !important; color: var(--c-navy) !important;
  font-family: var(--font-display) !important; font-weight: 600 !important;
  font-size: clamp(22px, 2.4vw, 30px) !important; letter-spacing: -0.024em;
}
#odel-directorate-page .section-header h2::after,
#odel-directorate-page .mv-card::before { content: none !important; display: none !important; }
#odel-directorate-page :is(.mv-card, .faq-card, .link-card, .director-card, .contact-section) {
  background: #fff !important; background-image: none !important;
  border: var(--t-rule) !important; border-top: 2px solid var(--c-navy) !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  transform: none !important; text-align: left !important;
}
#odel-directorate-page :is(.mv-card h3, .faq-card h3, .link-card h3, .director-message h2) {
  color: var(--c-navy) !important; font-family: var(--font-display) !important;
  font-weight: 600 !important; font-size: 1.0625rem !important; text-align: left !important;
}
#odel-directorate-page .mv-icon {
  font-size: 1.25rem !important; color: var(--c-maroon) !important; margin-bottom: 12px !important;
}
#odel-directorate-page .faq-icon {
  width: auto !important; height: auto !important; background: none !important;
  border-radius: 0 !important; display: inline-block !important; margin-right: 10px !important;
  color: var(--c-maroon) !important; font-size: 1.125rem !important;
}
#odel-directorate-page .sub-section {
  background: var(--c-offwhite) !important; border-radius: 0 !important;
  border-left: 2px solid var(--c-navy) !important; padding: 14px 16px !important;
  text-align: left !important;
}
#odel-directorate-page .stats-section {
  background: var(--c-navy) !important; text-align: left !important; padding: 60px 0 !important;
}
#odel-directorate-page .stats-section h2 { color: #fff !important; text-align: left !important; }
#odel-directorate-page .stat { text-align: left !important; }
#odel-directorate-page .stat-number {
  color: #fff !important; font-family: var(--ff-mono) !important; font-weight: 500 !important;
  font-size: 2rem !important; letter-spacing: -0.045em; margin-bottom: 6px !important;
}
#odel-directorate-page .stat-label { color: rgba(255, 255, 255, .72) !important; font-size: 0.875rem !important; }
#odel-directorate-page .director-caption {
  display: block !important; margin-top: 0 !important; padding: 10px 14px !important;
  background: var(--c-navy) !important; color: #fff !important; border-radius: 0 !important;
  font-family: var(--ff-mono) !important; font-size: 10.5px !important; font-weight: 500;
  letter-spacing: 0.07em; text-transform: uppercase; text-align: left !important;
}
#odel-directorate-page .director-caption::after { content: none !important; }
#odel-directorate-page .director-portrait, #odel-directorate-page .director-image-wrapper {
  background: var(--c-offwhite) !important; border-radius: 0 !important; box-shadow: none !important;
}
#odel-directorate-page img { border-radius: 0 !important; box-shadow: none !important; filter: saturate(.93) contrast(1.03); }
#odel-directorate-page li { position: relative; padding-left: 18px; list-style: none; }
#odel-directorate-page ul li::before {
  content: '' !important; position: absolute; left: 0; top: 10px; width: 5px; height: 5px;
  background: var(--c-maroon) !important; color: transparent !important; font-size: 0 !important;
}
#odel-directorate-page li > i:first-child {
  font-size: 0 !important; display: inline-block !important; width: 5px; height: 5px;
  background: var(--c-maroon) !important; color: transparent !important;
  margin: 0 8px 2px 0 !important; vertical-align: middle;
}
#odel-directorate-page .container { max-width: 1240px !important; padding-left: 24px !important; padding-right: 24px !important; }
#odel-directorate-page .quick-links { background: var(--c-navy) !important; }
#odel-directorate-page .quick-links h2 {
  text-align: left !important; font-family: var(--font-display) !important;
  font-weight: 600 !important; font-size: clamp(20px, 2.2vw, 26px) !important;
  letter-spacing: -0.022em; margin-bottom: 28px !important;
}
#odel-directorate-page .feature {
  background: #fff !important; border: var(--t-rule) !important;
  border-left: 2px solid var(--c-navy) !important; border-radius: 0 !important;
  text-align: left !important;
}
#odel-directorate-page .feature h4 { color: var(--c-navy) !important; font-size: 0.9375rem !important; }
#odel-directorate-page .feature p { color: var(--c-slate) !important; font-size: 0.8125rem !important; }
#odel-directorate-page .feature i { color: var(--c-maroon) !important; font-size: 1.125rem !important; margin-bottom: 10px !important; }

/* ── pages assembled in the builder ──────────────────────────────────
   Several directorates are Elementor exports, so their alignment comes from
   inline styles on generic widget wrappers rather than page classes. */
section[style*="text-align: center"], .elementor-column-wrap[style*="text-align: center"] {
  text-align: left !important;
}
section[style*="justify-content: center"] { justify-content: flex-start !important; }
/* full-bleed bands that hold their copy in a narrow centred column */
section[style*="text-align: center"] > div[style*="margin: 0 auto"] {
  max-width: 1240px !important; margin: 0 auto !important; text-align: left !important;
  padding-left: 24px !important; padding-right: 24px !important;
}
section[style*="text-align: center"] > div[style*="margin: 0 auto"] > [style*="justify-content: center"] {
  justify-content: flex-start !important;
}
.hero-content[style*="margin-top"], .dvc-hero-content[style*="margin-top"] { margin-top: 0 !important; }
p[style*="margin: 0 auto"] { margin-left: 0 !important; max-width: 56ch; }
/* headings inside one of these inline-styled blue bands inherit the page's
   navy heading colour unless they are pushed back to white */
section[style*="hsl(211 100% 25%)"] :is(h1, h2, h3, h4, h5) { color: #fff !important; }
.hero-content[style*="margin: 0 auto"], .dvc-hero-content[style*="margin: 0 auto"] {
  max-width: 1240px !important; margin: 0 auto !important;
  padding-left: 24px !important; padding-right: 24px !important;
}
.hero-banner, .hero-content, .dvc-hero-banner { text-align: left !important; }
.hero-banner .hero-content h1, .hero-content h1 { margin-left: 0 !important; }
.elementor-widget-icon-box, .elementor-widget-icon-list { text-align: left !important; }
.elementor-widget-icon-box .elementor-icon {
  background: none !important; background-image: none !important;
  border-radius: 0 !important; box-shadow: none !important;
  color: var(--c-maroon) !important; width: auto !important; height: auto !important;
}
.elementor-widget-icon-box .elementor-icon i,
.elementor-widget-icon-box .elementor-icon svg { color: var(--c-maroon) !important; fill: var(--c-maroon) !important; }
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-title a {
  font-family: var(--font-display) !important; font-weight: 600 !important;
  letter-spacing: -0.02em; color: var(--c-navy) !important; text-align: left !important;
}
.elementor-widget-icon-box .elementor-icon-box-description {
  color: var(--c-slate) !important; font-size: 0.9375rem; text-align: left !important;
}
.elementor-icon-list-icon i { color: var(--c-maroon) !important; font-size: 0.625rem !important; }
.elementor-icon-list-text { font-size: 0.9375rem; color: var(--c-slate); }
.elementor-widget-divider { display: none !important; }
.director-container { text-align: left !important; }
.director-container > div { text-align: left !important; }
.director-container p { text-align: left !important; }

/* ── DVC-ARSA ──────────────────────────────────────────────────────── */
.vision-points { background: var(--c-navy) !important; text-align: left !important; }
.vision-points h2, .vision-points h3 { color: #fff !important; text-align: left !important; }
.vision-item {
  background: rgba(255, 255, 255, .05) !important; background-image: none !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-left: 2px solid var(--c-gold) !important; border-radius: 0 !important;
  box-shadow: none !important; backdrop-filter: none !important; text-align: left !important;
}
.vision-item p { color: rgba(255, 255, 255, .74) !important; font-size: 0.9375rem !important; }
.profile-card, .publication-item, .qualifications, .research-focus { text-align: left !important; }
.profile-image img { border-radius: 0 !important; box-shadow: none !important; }
.profile-card .role { color: #fff !important; }
.page-main-content a, .page-content a { color: var(--c-blue); }
.page-main-content a:hover, .page-content a:hover { color: var(--c-maroon); }
/* the pastel "Status: Awarded" chip on the contracts board */
.contract-cards-section .status {
  display: inline-block; background: var(--c-gold-lt) !important; color: #7a5308 !important;
  border-radius: 0 !important; font-family: var(--ff-mono); font-size: 10.5px;
  letter-spacing: 0.06em; text-transform: uppercase; padding: 5px 10px !important;
}

/* a heading written with an inline white colour sits on one of the dark bands;
   the navy sweeps above are !important, so the exemption has to be too */
:is(h1, h2, h3, h4, h5, h6)[style*="color: white"],
:is(h1, h2, h3, h4, h5, h6)[style*="color:#fff"],
:is(h1, h2, h3, h4, h5, h6)[style*="color: #fff"] { color: #fff !important; }
/* the navy name plates under the portraits carry a heading of their own */
:is(.hod-title, .director-caption, .profile-card .role) :is(h1, h2, h3, h4, h5, h6) {
  color: #fff !important;
}
/* the billing panel on the giving page is written entirely for a dark ground —
   labels, headings and its translucent inputs */
#billing-container {
  background: var(--c-navy) !important; color: #fff !important;
  border-radius: var(--radius-lg) !important; box-shadow: none !important;
  border: none !important; max-width: 700px; width: 100% !important;
}
#billing-container :is(h1, h2, h3, h4, h5, h6) { color: #fff !important; }
#billing-container [style*="border-radius"] { border-radius: var(--radius-md) !important; }
#billing-container [style*="background: linear-gradient(45deg, #10b981"] {
  background: var(--c-gold) !important; color: var(--c-navy) !important; box-shadow: none !important;
  transform: none !important;
}
body:has(#billing-container) .text-center { text-align: left !important; }
body:has(#billing-container) .max-w-3xl { max-width: 62ch; margin-left: 0 !important; }

/* ══════════════════════════════════════════════════════════════════════
   Language Centre (short courses)
   ══════════════════════════════════════════════════════════════════════ */
/* the page's whole identity is one pink gradient token; retarget it and the
   buttons, table head, badges and rules all fall into the palette at once */
body:has(.fees-table) {
  --gradient: var(--c-navy);
  --primary-light: var(--c-navy-mid);
  font-family: var(--ff-sans) !important;
}
body:has(.fees-table) .hero-section { background-attachment: scroll !important; }
body:has(.fees-table) .hero-section::before { background: rgba(0, 26, 48, .74) !important; }
body:has(.fees-table) .hero-content { text-align: left !important; }
body:has(.fees-table) .hero-title {
  font-family: var(--font-display) !important; font-weight: 600 !important;
  font-size: clamp(30px, 4vw, 46px) !important; letter-spacing: -0.03em !important;
  text-transform: none !important; text-align: left !important;
  background: none !important; -webkit-text-fill-color: #fff !important;
  color: #fff !important; text-shadow: none !important;
}
body:has(.fees-table) .hero-subtitle {
  font-size: 1.0625rem !important; font-weight: 400 !important; text-align: left !important;
  margin-left: 0 !important; max-width: 56ch; color: rgba(255, 255, 255, .82) !important;
}
body:has(.fees-table) .section-header { text-align: left !important; margin-bottom: 34px !important; }
body:has(.fees-table) .section-title {
  display: block !important; font-family: var(--font-display) !important; font-weight: 600 !important;
  font-size: clamp(22px, 2.5vw, 30px) !important; letter-spacing: -0.028em !important;
  color: var(--c-navy) !important; text-align: left !important; margin-bottom: 26px !important;
}
body:has(.fees-table) .section-title::after {
  left: 0 !important; transform: none !important; width: 28px !important; height: 2px !important;
  border-radius: 0 !important; background: var(--c-gold) !important;
}
body:has(.fees-table) :is(.info-card, .level-card) {
  background: #fff !important; border: var(--t-rule) !important;
  border-top: 2px solid var(--c-navy) !important; border-radius: 0 !important;
  box-shadow: none !important; transform: none !important; padding: 28px !important;
}
body:has(.fees-table) :is(.info-card, .level-card):hover {
  transform: none !important; box-shadow: none !important; border-top-color: var(--c-maroon) !important;
}
body:has(.fees-table) :is(.video-section, .cta-section, .info-card, .level-card)::before {
  content: none !important; display: none !important;
}
body:has(.fees-table) :is(.card-icon-wrapper, .contact-icon-wrapper) {
  width: 44px !important; height: 44px !important; border-radius: 0 !important;
  background: var(--c-offwhite) !important; margin-bottom: 18px !important;
}
body:has(.fees-table) .level-badge {
  width: 40px !important; height: 40px !important; border-radius: 0 !important;
  background: var(--c-navy) !important; margin-right: 14px !important;
  font-family: var(--ff-mono) !important; font-size: 0.8125rem !important; font-weight: 500 !important;
}
body:has(.fees-table) .card-icon {
  font-size: 1.125rem !important; background: none !important;
  -webkit-text-fill-color: var(--c-maroon) !important; color: var(--c-maroon) !important;
}
body:has(.fees-table) .contact-icon { color: var(--c-maroon) !important; font-size: 1.125rem !important; }
body:has(.fees-table) :is(.card-title, .level-title) {
  font-family: var(--font-display) !important; font-weight: 600 !important;
  font-size: 1.125rem !important; letter-spacing: -0.018em; color: var(--c-navy) !important;
}
body:has(.fees-table) :is(.btn, .app-button, .cta-button) {
  background: var(--c-blue) !important; border-radius: var(--radius-md) !important;
  box-shadow: none !important; font-family: var(--font-display) !important;
  font-size: 0.8125rem !important; letter-spacing: 0.02em; padding: 12px 22px !important;
  min-width: 0 !important; gap: 9px;
}
body:has(.fees-table) :is(.btn, .app-button, .cta-button)::before { content: none !important; display: none !important; }
body:has(.fees-table) :is(.btn, .app-button, .cta-button):hover {
  background: var(--c-navy) !important; transform: none !important; box-shadow: none !important;
}
body:has(.fees-table) .fees-table {
  border: var(--t-rule) !important; border-radius: 0 !important; box-shadow: none !important;
  max-width: 700px !important;
}
body:has(.fees-table) .fees-table th {
  background: var(--c-navy) !important; font-family: var(--font-display) !important;
  font-size: 11px !important; letter-spacing: 0.07em; padding: 12px 18px !important;
}
body:has(.fees-table) .fees-table td { padding: 12px 18px !important; }
body:has(.fees-table) .cta-section {
  background: var(--c-navy) !important; text-align: left !important; padding: 64px 0 !important;
}
body:has(.fees-table) .cta-content { text-align: left !important; }
body:has(.fees-table) .cta-title {
  background: none !important; -webkit-text-fill-color: #fff !important; color: #fff !important;
  font-family: var(--font-display) !important; font-weight: 600 !important;
  font-size: clamp(22px, 2.6vw, 30px) !important; letter-spacing: -0.028em !important;
  text-align: left !important;
}
body:has(.fees-table) .cta-subtitle {
  color: rgba(255, 255, 255, .74) !important; text-align: left !important;
  margin-left: 0 !important; max-width: 56ch; font-size: 1rem !important;
}
body:has(.fees-table) .cta-button { background: var(--c-gold) !important; color: var(--c-navy) !important; }
body:has(.fees-table) .cta-button:hover { background: #b0780c !important; }
body:has(.fees-table) :is(.intro-content, .levels-intro, .fees-intro, .ausbildung-content) {
  text-align: left !important; max-width: 62ch !important; margin-left: 0 !important;
  font-size: 1rem !important; line-height: 1.75 !important;
}
body:has(.fees-table) :is(.intro-content p, .ausbildung-content p, .level-features li)::before {
  content: '' !important; font-family: inherit !important; font-weight: 400 !important;
  width: 5px; height: 5px; top: 10px; background: var(--c-maroon) !important; font-size: 0 !important;
}
body:has(.fees-table) .level-features li { padding-left: 18px !important; margin-bottom: 9px !important; font-size: 0.9375rem !important; }
body:has(.fees-table) .intro-content p, body:has(.fees-table) .ausbildung-content p { padding-left: 18px !important; }
body:has(.fees-table) .certification-note {
  background: var(--c-gold-lt) !important; border-left: 2px solid var(--c-gold) !important;
  border-radius: 0 !important; padding: 20px 24px !important; margin-top: 34px !important;
}
body:has(.fees-table) .video-container {
  border-radius: 0 !important; box-shadow: none !important; border: var(--t-rule) !important;
  max-width: 900px !important; margin-left: 0 !important;
}
body:has(.fees-table) :is(.application-intro, .contact-intro) {
  text-align: left !important; max-width: 62ch !important; margin-left: 0 !important;
  font-size: 1rem !important; line-height: 1.75 !important;
}
body:has(.fees-table) .application-buttons { justify-content: flex-start !important; gap: 12px !important; }
body:has(.fees-table) .fees-table-container { max-width: 700px !important; margin-left: 0 !important; }
body:has(.fees-table) .fees-note {
  max-width: 700px !important; margin-left: 0 !important; background: var(--c-offwhite) !important;
  border-left: 2px solid var(--c-maroon) !important; border-radius: 0 !important;
  padding: 16px 20px !important; font-size: 0.9375rem !important;
}
body:has(.fees-table) .contact-items {
  background: #fff !important; border: var(--t-rule) !important;
  border-top: 2px solid var(--c-navy) !important; border-radius: 0 !important;
  box-shadow: none !important; transform: none !important; text-align: left !important;
  align-items: flex-start !important; padding: 22px !important;
}
body:has(.fees-table) .contact-items:hover { transform: none !important; box-shadow: none !important; border-top-color: var(--c-maroon) !important; }
body:has(.fees-table) .contact-icon-wrapper { margin-bottom: 14px !important; }

/* ══════════════════════════════════════════════════════════════════════
   Motion — driven by assets/js/tmu-motion.js
   ══════════════════════════════════════════════════════════════════════ */
.tmu-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 100;
  background: linear-gradient(90deg, var(--c-gold), var(--c-maroon));
  transform-origin: 0 50%; transform: scaleX(0); pointer-events: none;
}
/* reveal variants start offset or scaled, which briefly widens the document */
html { overflow-x: clip; }
.tmu-reveal-up, .tmu-reveal-left, .tmu-reveal-right, .tmu-reveal-scale,
.tmu-reveal-wipe, .tmu-reveal-curtain {
  opacity: 0; will-change: opacity, transform;
  transition: opacity .72s cubic-bezier(.22, 1, .36, 1), transform .82s cubic-bezier(.16, 1, .3, 1),
              clip-path .9s cubic-bezier(.16, 1, .3, 1);
}
.tmu-reveal-up    { transform: translateY(42px); }
.tmu-reveal-left  { transform: translateX(-54px); }
.tmu-reveal-right { transform: translateX(54px); }
.tmu-reveal-scale { transform: translateY(22px) scale(.955); }
.tmu-reveal-wipe  { transform: translateX(-22px); clip-path: inset(0 100% 0 0); }
.tmu-reveal-curtain { transform: scale(1.06); clip-path: inset(0 0 100% 0); }
.tmu-reveal-up.is-in, .tmu-reveal-left.is-in, .tmu-reveal-right.is-in,
.tmu-reveal-scale.is-in, .tmu-reveal-wipe.is-in, .tmu-reveal-curtain.is-in {
  opacity: 1; transform: none; clip-path: inset(0 0 0 0);
}
html.tmu-motion-off :is(.tmu-reveal-up, .tmu-reveal-left, .tmu-reveal-right,
                         .tmu-reveal-scale, .tmu-reveal-wipe, .tmu-reveal-curtain) {
  opacity: 1; transform: none; clip-path: none;
}
/* section rules draw across as the block enters */
.tmu-nt-board, .tmu-blog-grid, .tmu-fac-grid, .tmu-evt-grid { position: relative; }
/* the sticky band tightens once the page starts moving */
.tmu-header { transition: box-shadow .22s ease, background-color .22s ease; }
.tmu-header.is-scrolled .tmu-topbar { max-height: 0; overflow: hidden; opacity: 0; }
.tmu-topbar { max-height: 60px; transition: max-height .28s ease, opacity .2s ease; }
.tmu-header.is-scrolled .tmu-brand, .tmu-header.is-scrolled .tmu-nav-link { padding-top: 4px; padding-bottom: 4px; }
.tmu-header.is-scrolled { box-shadow: 0 6px 22px rgba(0, 20, 38, .12); }
/* hero entrance, keyed off the class the script puts on <html> */
html.tmu-motion #tmu-hero .tmu-hero-eyebrow,
html.tmu-motion #tmu-hero .tmu-hero-title,
html.tmu-motion #tmu-hero .tmu-hero-sub,
html.tmu-motion #tmu-hero .tmu-hero-actions { animation: tmuHeroIn .78s cubic-bezier(.16, 1, .3, 1) both; }
html.tmu-motion #tmu-hero .tmu-hero-title { animation-delay: .08s; }
html.tmu-motion #tmu-hero .tmu-hero-sub { animation-delay: .16s; }
html.tmu-motion #tmu-hero .tmu-hero-actions { animation-delay: .24s; }
@keyframes tmuHeroIn { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
/* the slideshow breathes while it cross-fades */
#tmu-hero-bg { animation: tmuKenBurns 18s ease-in-out infinite alternate; }
@keyframes tmuKenBurns { from { scale: 1; } to { scale: 1.055; } }
html.tmu-motion .tmu-stat-item, html.tmu-motion .tmu-life-card, html.tmu-motion .tmu-fac-card,
html.tmu-motion .tmu-blog-card, html.tmu-motion .tmu-evt-card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
html.tmu-motion :is([class*="-card"], .tmu-tile, .tmu-life-card, .gallery-item, .unit-card):hover {
  transform: translateY(-2px) !important;
}
/* notice popups: the plate springs up, then its parts follow in order */
html.tmu-motion #tmu-popup-overlay.open .tmu-popup-card {
  animation: tmuPopIn .55s cubic-bezier(.18, 1.02, .32, 1) both;
}
html.tmu-motion #tmu-popup-overlay.open .tmu-popup-hero { animation: tmuPopRise .5s cubic-bezier(.16, 1, .3, 1) both; }
html.tmu-motion #tmu-popup-overlay.open .tmu-popup-body { animation: tmuPopRise .5s .09s cubic-bezier(.16, 1, .3, 1) both; }
html.tmu-motion #tmu-popup-overlay.open .tmu-popup-actions { animation: tmuPopRise .45s .2s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes tmuPopIn { from { opacity: 0; transform: translateY(28px) scale(.93); } to { opacity: 1; transform: none; } }
@keyframes tmuPopRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
/* the header ticker hands over downwards, picks up from below */
.tmu-noticeboard-item.is-exit { transform: translateY(-70%); opacity: 0; }
/* slideshow dots grow into their active state */
.tmu-hero-dots button, .tmu-hero-dots span { transition: width .3s ease, background-color .3s ease, opacity .3s ease; }

/* ══════════════════════════════════════════════════════════════════════
   Notice board — header ticker and homepage list
   ══════════════════════════════════════════════════════════════════════ */
.tmu-noticeboard {
  background: var(--c-navy); border-top: 1px solid rgba(255, 255, 255, .09);
  color: #fff; font-size: .8125rem;
}
.tmu-noticeboard-inner { display: flex; align-items: center; gap: 14px; height: 40px; }
.tmu-noticeboard-tag {
  flex: none; display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--ff-mono); font-size: .6875rem; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase; color: var(--c-gold);
}
.tmu-noticeboard-tag svg { flex: none; }
.tmu-noticeboard-live { position: relative; flex: 1 1 auto; min-width: 0; height: 40px; overflow: hidden; }
.tmu-noticeboard-item {
  position: absolute; left: 0; right: 0; top: 0; height: 40px;
  display: flex; align-items: center; gap: 12px;
  color: rgba(255, 255, 255, .86); text-decoration: none;
  opacity: 0; transform: translateY(70%); pointer-events: none;
  transition: opacity .5s ease, transform .6s cubic-bezier(.16, 1, .3, 1), color .18s ease;
}
.tmu-noticeboard-item.is-active { opacity: 1; transform: none; pointer-events: auto; }
.tmu-noticeboard-item.is-exit { opacity: 0; transform: translateY(-70%); }
.tmu-noticeboard-item:hover { color: var(--c-gold); }
.tmu-noticeboard-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tmu-noticeboard-date { flex: none; font-family: var(--ff-mono); font-size: .6875rem; color: rgba(255, 255, 255, .5); }
.tmu-noticeboard-all {
  flex: none; display: inline-flex; align-items: center; gap: 6px;
  font-size: .75rem; font-weight: 600; letter-spacing: .02em;
  color: #fff; text-decoration: none;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--radius-md);
  padding: 5px 11px; transition: background-color .16s ease, border-color .16s ease;
}
.tmu-noticeboard-all:hover { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-navy); }

#tmu-notices { background: var(--c-offwhite); }
.tmu-nt-head {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
  gap: 40px; align-items: end; margin-bottom: 34px;
}
.tmu-nt-board { border-top: 1px solid var(--c-border); }
.tmu-nt-row {
  display: grid; grid-template-columns: 86px minmax(0, 1fr) 22px;
  align-items: center; gap: 22px;
  padding: 20px 0 20px 0; border-bottom: 1px solid var(--c-border);
  color: var(--c-text); text-decoration: none;
  transition: padding-left .22s ease, background-color .22s ease;
}
.tmu-nt-row:hover { padding-left: 14px; background: #fff; }
.tmu-nt-date {
  display: flex; flex-direction: column; gap: 2px;
  border-left: 2px solid var(--c-maroon); padding-left: 13px;
}
.tmu-nt-day { font-family: var(--ff-serif); font-size: 1.5rem; font-weight: 600; line-height: 1; color: var(--c-navy); }
.tmu-nt-mon { font-family: var(--ff-mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-slate); }
.tmu-nt-title { font-family: var(--font-display); font-size: 1rem; font-weight: 600; letter-spacing: -.01em; color: var(--c-text); }
.tmu-nt-row:hover .tmu-nt-title { color: var(--c-navy); }
.tmu-nt-flag {
  font-family: var(--ff-mono); font-size: .625rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--c-navy); background: var(--c-gold-lt); border: 1px solid rgba(201, 138, 18, .35);
  padding: 3px 8px; border-radius: var(--radius-sm);
}
.tmu-nt-arrow { color: var(--c-maroon); display: inline-flex; transform: translateX(-4px); opacity: .35; transition: transform .22s ease, opacity .22s ease; }
.tmu-nt-row:hover .tmu-nt-arrow { transform: none; opacity: 1; }
.tmu-nt-foot { margin-top: 30px; }

/* ══════════════════════════════════════════════════════════════════════
   Small screens
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .tmu-section { padding: 44px 0; }
  .tmu-hero .tmu-hero-inner { padding: 64px 20px 54px; }
  #tmu-hero .tmu-hero-inner { padding: 56px 20px 50px; }
  .tmu-hero .tmu-hero-title { font-size: clamp(26px, 7vw, 36px); }
  #tmu-hero .tmu-hero-title { font-size: clamp(28px, 6.4vw, 38px); }
  /* the base sheet keeps the desktop 1fr/380px hero grid on phones: the text
     column is crushed and the countdown card hangs off the screen. Stack it. */
  #tmu-hero .tmu-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 30px; align-items: start; }
  #tmu-hero .tmu-ke-card { width: 100%; max-width: 100%; }
  #tmu-hero .tmu-hero-title { max-width: none; }
  #tmu-hero .tmu-hero-sub { max-width: none; font-size: 1rem; margin-bottom: 24px; }
  #tmu-hero .tmu-hero-dots { padding-left: 20px; bottom: 18px; }
  /* on phones the desktop grid and a 3:2 photo fight the portrait crop.
     Run the photo as a top band that fades into navy, and let the countdown
     card sit on the solid colour below it. */
  #tmu-hero-bg {
    inset: 0 0 auto 0;
    height: 560px;
    background-position: 58% 38% !important;
    -webkit-mask-image: linear-gradient(#000 68%, transparent 100%);
    mask-image: linear-gradient(#000 68%, transparent 100%);
  }
  .tmu-section-center:has(.tmu-section-sub) { grid-template-columns: minmax(0, 1fr); }
  .tmu-section-center:has(.tmu-section-sub) > .tmu-label { grid-row: 1; }
  .tmu-section-center:has(.tmu-section-sub) > .tmu-h1,
  .tmu-section-center:has(.tmu-section-sub) > .tmu-h2,
  .tmu-section-center:has(.tmu-section-sub) > .tmu-h3 { grid-row: 2; max-width: 24ch !important; }
  .tmu-section-center:has(.tmu-section-sub) > .tmu-section-sub { grid-column: 1; grid-row: 3; margin-top: 12px !important; }
  .tmu-stats, .tmu-stat-grid { grid-template-columns: 1fr 1fr !important; }
  .tmu-gv-hero-inner, .tmu-sn-hero-inner, .tmu-cl-hero-inner { padding: 64px 20px 54px; }
  .tmu-gv-hero h1, .tmu-sn-hero h1, .tmu-cl-hero h1 { font-size: clamp(26px, 6.6vw, 36px); }
  .tmu-gv-section, .tmu-sn-section, .tmu-cl-section { padding: 44px 0; }
  .tmu-profile-img { border-right: none; border-bottom: var(--t-rule); }
  .tmu-facts-grid { grid-template-columns: 1fr 1fr; }
  .tmu-fact-card { border-bottom: var(--t-rule); }
  /* legacy blocks carry inline padding without border-box, so they spill out
     of a phone-width viewport by exactly their own padding */
  :is([style*="padding"][style*="24px"], [style*="padding"][style*="20px"], [style*="padding"][style*="32px"]) {
    box-sizing: border-box !important; max-width: 100% !important;
  }
  /* the portal strip is the only thing on the site that reliably overflowed a
     phone: no dividers, tighter gaps, smaller type */
  .tmu-topbar-inner { padding-left: 16px; padding-right: 16px; }
  .tmu-topbar .tmu-topbar-right { gap: 7px !important; font-size: 11px !important; }
  .tmu-topbar .tmu-topbar-right a { font-size: 11px !important; }
  .tmu-topbar .tmu-topbar-sep { display: none !important; }
  .tmu-topbar { overflow: hidden; }
  .tmu-container, .tmu-hero-inner { padding-left: 18px; padding-right: 18px; }
  /* notice board: the strip keeps one line, the board keeps one column of text */
  .tmu-noticeboard-inner { gap: 10px; padding-left: 16px; padding-right: 16px; }
  .tmu-noticeboard-all, .tmu-noticeboard-date { display: none; }
  .tmu-nt-head { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .tmu-nt-row { grid-template-columns: 74px minmax(0, 1fr) 20px; gap: 14px; padding: 16px 0; }
  .tmu-nt-flag { display: none; }
  .tmu-nt-day { font-size: 22px; }
}
@media (max-width: 560px) {
  .tmu-noticeboard-tag { font-size: 0; gap: 0; }
  .tmu-noticeboard-item { font-size: 12.5px; }
  .tmu-nt-row { grid-template-columns: 62px minmax(0, 1fr) 18px; gap: 12px; }
  .tmu-acad-img-badge { font-size: 11px !important; }
}
@media (max-width: 400px) {
  /* "Apply" lives in the drawer too, so the strip can drop it on the narrowest phones */
  .tmu-topbar .tmu-topbar-right .hide-sm { display: none !important; }
  .tmu-topbar .tmu-topbar-right { gap: 9px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .tmu-reveal { opacity: 1; transition: none; }
  * { animation-duration: .001ms !important; }
}

/* ═══ Legacy skins ════════════════════════════════════════════════════
   Two old Elementor pages keep their markup (and copy) but get the same
   photo-hero / card language as the rest of the site. Scoped by body id. */

/* Students (page-id-1380) */
.page-id-1380 #page-content { background: #fff; }
.page-id-1380 .elementor-element-f2c7348 {
  min-height: 74vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 96px 24px 84px !important;
  border-radius: 0 0 32px 32px;
  overflow: hidden;
  background-image:
    linear-gradient(118deg, rgba(0, 21, 42, .94) 0%, rgba(0, 42, 84, .78) 52%, rgba(0, 69, 127, .58) 100%),
    url('/wp-content/uploads/2024/11/4T3A1243-scaled-1170x520.jpg') !important;
  background-size: cover !important;
  background-position: center 35% !important;
}
.page-id-1380 .elementor-element-f2c7348::before { background-color: transparent !important; }
.page-id-1380 .elementor-element-f2c7348 > .elementor-element-61118d6,
.page-id-1380 .elementor-element-f2c7348 > .elementor-element-26c9b16,
.page-id-1380 .elementor-element-f2c7348 > .elementor-element-76b1638 { display: none !important; }
.page-id-1380 .elementor-element-27dc1ac .elementor-heading-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.5rem, 4.6vw, 3.9rem) !important; font-weight: 700 !important;
  letter-spacing: -.02em; line-height: 1.05; color: #fff !important;
}
.page-id-1380 .elementor-element-3735a66 {
  color: rgba(255, 255, 255, .84) !important;
  font-size: clamp(1.05rem, 1.45vw, 1.3rem) !important;
  max-width: 640px; margin: 0 auto 8px;
}
.page-id-1380 .elementor-element-87867d2 {
  display: block !important; width: 100%; max-width: 1100px; margin-top: 34px;
}
.page-id-1380 .elementor-element-87867d2 > .e-con-inner {
  display: grid !important; width: 100% !important; max-width: none !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.page-id-1380 .elementor-element-87867d2 .tm-icon-box {
  height: 100%; padding: 26px 18px 22px;
  border-radius: 16px; border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .07);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: transform .35s ease, background .35s ease, border-color .35s ease;
}
.page-id-1380 .elementor-element-87867d2 .tm-icon-box:hover {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, .13);
  border-color: rgba(201, 138, 18, .65);
}
.page-id-1380 .elementor-element-87867d2 .icon { color: #e8b54b !important; }
.page-id-1380 .elementor-element-87867d2 .heading {
  color: #fff !important; font-size: 1rem !important; font-weight: 600 !important;
}
.page-id-1380 .elementor-element-87867d2 .description {
  color: rgba(255, 255, 255, .72) !important; font-size: .86rem !important; line-height: 1.5;
}
.page-id-1380 #page-content .elementor-top-section { padding-top: 64px !important; padding-bottom: 58px !important; }
.page-id-1380 #page-content .elementor-section .elementor-widget-heading .elementor-heading-title {
  position: relative; margin: 0 0 10px !important; padding-bottom: 14px;
  font-family: var(--font-display); font-size: clamp(1.3rem, 1.9vw, 1.65rem) !important;
  font-weight: 700 !important; letter-spacing: .06em; line-height: 1.25;
  color: var(--c-navy) !important;
}
.page-id-1380 #page-content .elementor-section .elementor-widget-heading .elementor-heading-title::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 54px; height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--c-gold), rgba(201, 138, 18, .22));
}
.page-id-1380 #page-content .unicamp-list .item {
  margin-bottom: 12px; padding: 16px 18px !important;
  border: 1px solid #e6ebf2 !important; border-radius: 12px;
  background: #fff;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.page-id-1380 #page-content .unicamp-list .item::after,
.page-id-1380 #page-content .unicamp-list .text-wrap::after { display: none !important; }
.page-id-1380 #page-content .unicamp-list .item:hover {
  transform: translateY(-2px);
  border-color: rgba(0, 69, 127, .32) !important;
  box-shadow: 0 12px 28px rgba(0, 42, 84, .08);
}
.page-id-1380 #page-content .unicamp-list a.link { display: block; color: inherit !important; text-decoration: none !important; }
.page-id-1380 #page-content .unicamp-list .text {
  font-family: var(--font-body); font-size: 1rem; font-weight: 600;
  letter-spacing: normal; color: var(--c-navy) !important;
  text-decoration: none !important; border-bottom: 0 !important;
  background: none !important; padding-bottom: 0 !important;
}
.page-id-1380 #page-content .unicamp-list .item:hover .text { color: var(--c-blue) !important; }
.page-id-1380 #page-content .unicamp-list .description {
  margin-top: 4px; font-size: .875rem; line-height: 1.5; color: #5b6b7c !important;
}
.page-id-1380 #page-content .heading-primary {
  max-width: none !important; color: var(--c-navy) !important;
  font-family: var(--font-display) !important; text-shadow: none !important;
}
.page-id-1380 #page-content .heading-primary mark { background: none; color: var(--c-blue) !important; }
.page-id-1380 #page-content .tm-slider-widget .post-wrapper {
  height: 100%; overflow: hidden; border-radius: 16px;
  border: 1px solid #e9edf3; background: #fff;
  box-shadow: 0 8px 22px rgba(0, 42, 84, .06);
}
.page-id-1380 #page-content .tm-slider-widget .post-caption { padding: 18px 18px 20px; }
.page-id-1380 #page-content .tm-slider-widget .post-title a { color: var(--c-navy); }
.page-id-1380 #page-content .tm-slider-widget .post-title a:hover { color: var(--c-blue); }
.page-id-1380 #page-content .unicamp-event-box {
  padding: 26px 26px 10px;
  border: 1px solid #e9edf3; border-radius: 18px; background: #fff;
  box-shadow: 0 14px 34px rgba(0, 42, 84, .08);
}
.page-id-1380 #page-content .unicamp-event-box .box-title {
  font-family: var(--font-display); font-size: 1.4rem !important; color: var(--c-navy) !important;
}
.page-id-1380 #page-content .unicamp-event-box .post-item { padding: 16px 0; border-top: 1px solid #edf1f6; }
.page-id-1380 #page-content .unicamp-event-box .event-date--day { color: var(--c-blue); font-weight: 700; }
.page-id-1380 #page-content .unicamp-event-box .post-title a { color: #1c2b3a; font-size: .98rem; line-height: 1.4; }
.page-id-1380 #page-content .unicamp-event-box .post-title a:hover { color: var(--c-blue); }
.page-id-1380 #page-content .unicamp-event-box .event-time { font-size: .8rem; color: #6b7b8c; }
.page-id-1380 .elementor-element-c13b68f {
  background-color: var(--c-navy) !important;
  background-image: linear-gradient(118deg, var(--c-navy) 0%, var(--c-blue) 100%) !important;
}
.page-id-1380 #page-content .elementor-element-c13b68f .heading-primary { color: #fff !important; }
.page-id-1380 #page-content .elementor-element-c13b68f .heading-primary mark { background: none; color: var(--c-gold) !important; }
.page-id-1380 #page-content .elementor-element-948822c .tm-modern-heading,
.page-id-1380 #page-content .elementor-element-948822c .heading-primary {
  width: auto !important; max-width: 700px; text-align: center !important;
}
.page-id-1380 .elementor-element-c13b68f .mc4wp-form { max-width: 640px; margin: 32px auto 0; }
.page-id-1380 .elementor-element-c13b68f .form-item-wrap {
  display: flex; gap: 10px; padding: 8px;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 12px;
  background: rgba(255, 255, 255, .08);
}
.page-id-1380 .elementor-element-c13b68f .form-input {
  flex: 1; padding: 12px 16px !important; border: 0 !important;
  background: transparent !important; color: #fff !important;
  font-size: .95rem; outline: none;
}
.page-id-1380 .elementor-element-c13b68f .form-input::placeholder { color: rgba(255, 255, 255, .6); }
.page-id-1380 .elementor-element-c13b68f .button-submit {
  padding: 12px 26px !important; border: 0; border-radius: 8px !important;
  background: var(--c-gold) !important; color: #161616 !important;
  font-weight: 600; font-size: .95rem;
}
@media (max-width: 960px) {
  .page-id-1380 .elementor-element-87867d2 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 560px) {
  .page-id-1380 .elementor-element-f2c7348 { min-height: 0; padding: 64px 18px 56px !important; border-radius: 0 0 22px 22px; }
  .page-id-1380 .elementor-element-87867d2 > .e-con-inner { grid-template-columns: 1fr !important; }
  .page-id-1380 .elementor-element-c13b68f .form-item-wrap { flex-direction: column; padding: 10px; }
  .page-id-1380 .elementor-element-c13b68f .button-submit { width: 100%; }
}

/* Alumni (page-id-1458) */
.page-id-1458 .page-title-bar-inner { min-height: 48vh; display: flex; align-items: center; }
.page-id-1458 .page-title-bar-bg {
  background:
    linear-gradient(118deg, rgba(0, 21, 42, .9) 0%, rgba(0, 42, 84, .72) 55%, rgba(0, 69, 127, .5) 100%),
    url('/wp-content/uploads/bg/DJI_0036-scaled.jpg') center/cover !important;
  opacity: 1;
}
.page-id-1458 .page-title-bar .heading {
  display: inline-block; margin: 0 !important; padding-top: 0 !important;
  font-family: var(--font-display) !important;
  font-size: clamp(2.6rem, 5vw, 4.2rem) !important; font-weight: 700;
  letter-spacing: -.02em; line-height: 1; color: #fff !important;
}
.page-id-1458 .page-title-bar .heading::after {
  content: ''; display: block; width: 64px; height: 3px; margin: 20px auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--c-gold), rgba(201, 138, 18, .3));
}
.page-id-1458 #page-content .elementor-top-section > .elementor-container > div,
.page-id-1458 #page-content .elementor-top-section .elementor-column { min-width: 0; }
.page-id-1458 #page-content img { max-width: 100%; height: auto; }

/* Student Council — legacy centred banner with a percentage top pad */
.student-council-component .hero-section {
  min-height: 46vh; display: flex; align-items: center;
  padding: 84px 24px 72px !important;
  background-image:
    linear-gradient(100deg, rgba(0, 21, 42, .94) 0%, rgba(0, 42, 84, .8) 58%, rgba(0, 42, 84, .44) 100%),
    url('/wp-content/uploads/bg/DSC00019.jpg') !important;
  background-size: cover !important; background-position: center 40% !important;
  text-align: left !important;
}
.student-council-component .hero-section .container {
  max-width: 1240px; margin: 0 auto; width: 100%; text-align: left;
}
.student-council-component .hero-title {
  font-family: var(--font-display) !important; font-size: clamp(2.4rem, 4.2vw, 3.6rem) !important;
  font-weight: 600 !important; letter-spacing: -0.03em; line-height: 1.06;
  color: #fff !important; text-align: left !important; text-shadow: none !important;
  margin: 0 !important;
}
.student-council-component .header-divider {
  width: 54px !important; height: 3px !important; margin: 18px 0 16px !important;
  border-radius: 0 !important; box-shadow: none !important; background: var(--c-gold) !important;
}
.student-council-component .hero-subtitle {
  color: rgba(255, 255, 255, .82) !important; font-size: 1.0625rem !important;
  text-align: left !important; margin: 0 !important;
}
