/* ═══════════════════════════════════════════════════════════════════════
   SPAV Design System — v2 (RF53, 2026-10-24)   [RF51 → RF52 → RF53]
   Loaded LAST in header.php so it settles the cascade.

   §0  Tokens — palette, type, spacing, motion
   §1  Shell (all pages) — shared container, nav, focus, cookie notice
   §2  Home page (body.home) — sections in page order
   §3  Responsive
   §4  Reduced motion

   Units: rem for all type, so the A- / A / A+ controls and the browser's
   own text-size setting both scale the page (spav.min.js sets the root
   size as a percentage since RF53).
   !important is used only where an older rule it must beat is itself
   !important (spav.min.css html.font-* sizes, spav-refine.css, inline
   blocks in header.php). New components (hp-*) avoid it.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── §0 TOKENS ───────────────────────────────────────────────────────── */
:root{
  /* Layout — one grid for every section, header and footer */
  --hp-content: 1440px;
  --hp-gutter: 40px;
  --hp-container: calc(var(--hp-content) + 2 * var(--hp-gutter));
  --hp-measure: 68ch;                       /* readable line length */
  --hp-sec-y: clamp(56px, 5.6vw, 96px);

  /* Palette — derived from the SPAV identity: deep navy + logo ochre */
  --hp-ink:      #0f1e33;   /* deep navy — dark band, footer, headings */
  --hp-navy:     #17325a;   /* primary */
  --hp-navy-2:   #22477a;   /* hover */
  --hp-blue:     #1d4a8f;   /* secondary institutional blue (social band) */
  --hp-blue-2:   #173d77;
  --hp-brass:    #b08a3e;   /* accent rules, icons, focus ring */
  --hp-brass-ink:#7a5b1e;   /* accent text on light  (6.1:1 on white) */
  --hp-brass-lt: #e3c98f;   /* accent text on navy   (8.9:1 on #17325a) */
  --hp-brass-bg: #f5ecd8;

  --hp-white:    #ffffff;
  --hp-warm:     #faf8f4;   /* About surface */
  --hp-paper:    #f4f1ea;   /* warm off-white sections */
  --hp-cool:     #eef2f7;   /* leadership tier (navy-tinted) */
  --hp-line:     #e2ddd2;
  --hp-line-2:   #ece8e0;
  --hp-line-strong: #c9bfa9;
  --hp-cool-line:#d8e0eb;
  --hp-text:     #1f2937;
  --hp-muted:    #556070;   /* 6.2:1 on white, 5.6:1 on --hp-paper */

  --hp-ok:       #276942;  --hp-ok-bg:   #e4f1e8;
  --hp-soon:     #7d4f0c;  --hp-soon-bg: #fbeed5;

  /* Shape & depth */
  --hp-radius:    12px;
  --hp-radius-sm: 6px;
  --hp-shadow:    0 1px 2px rgba(15,30,51,.05);
  --hp-shadow-h:  0 14px 30px -18px rgba(15,30,51,.45);

  /* Type */
  --hp-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --hp-sans:  'Noto Sans', 'DM Sans', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;

  /* Motion — one timing for every interaction */
  --hp-dur:  200ms;
  --hp-ease: cubic-bezier(.2,.7,.2,1);
  --hp-lift: translateY(-3px);
}
@media (max-width:1279px){ :root{ --hp-gutter: 32px; } }
@media (max-width:1023px){ :root{ --hp-gutter: 24px; } }
@media (max-width:600px) { :root{ --hp-gutter: 20px; } }
@media (max-width:360px) { :root{ --hp-gutter: 16px; } }

/* ── §1 SHELL (all pages) ────────────────────────────────────────────── */
#topbar .inner,
#site-header .hdr-inner,
#desktop-nav .dnav-inner,
#site-footer .ft-inner,
.sc{
  max-width: var(--hp-container) !important;
  padding-left: var(--hp-gutter) !important;
  padding-right: var(--hp-gutter) !important;
  margin-left: auto; margin-right: auto;
  box-sizing: border-box;
}

/* Navigation: first/last items align with the content edge */
#desktop-nav{ background: var(--hp-ink) !important; }
#desktop-nav::before{ animation: none !important; background: var(--hp-brass) !important; }
#desktop-nav .dnav-inner{ justify-content: space-between; }
@media (min-width:1024px){
  #desktop-nav .dnav-link{ padding-left: 12px; padding-right: 12px; }
  #desktop-nav .dnav-item:first-child > .dnav-link{ padding-left: 0; }
  #desktop-nav .dnav-item:last-child  > .dnav-link{ padding-right: 0; }
  #desktop-nav .dnav-item:first-child > .dnav-link::after{ left: 0; }
  #desktop-nav .dnav-item:last-child  > .dnav-link::after{ right: 0; }
}
@media (min-width:1024px) and (max-width:1599px){
  #desktop-nav .dnav-link{ padding-left: 8px; padding-right: 8px; letter-spacing: .01em; }
}
@media (min-width:1024px) and (max-width:1439px){
  #desktop-nav .dnav-link{ padding-left: 6px; padding-right: 6px; letter-spacing: 0; font-size: .78125rem !important; }
}
/* Below 1300px the eleven top-level items cannot share one row → hamburger */
@media (min-width:1024px) and (max-width:1299px){
  #desktop-nav{ display: none !important; }
  #site-header .hbg-btn{ display: flex !important; }
}
/* A+ text setting: nav wraps to a second row rather than overflowing */
html.font-lg #desktop-nav .dnav-inner{ flex-wrap: wrap !important; justify-content: center !important; }
html.font-lg #desktop-nav .dnav-item:first-child > .dnav-link{ padding-left: 12px; }
html.font-lg #desktop-nav .dnav-item:last-child > .dnav-link{ padding-right: 12px; }

/* Right-most dropdowns open leftwards (no horizontal overflow) */
#desktop-nav .dnav-item:nth-last-child(-n+3) > .dnav-dd{ left: auto; right: 0; }

#desktop-nav .dnav-item.dd-dismissed > .dnav-dd{ opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }

/* Nav hover / keyboard focus — formal: underline + colour, no glow */
#desktop-nav .dnav-link{ transition: color var(--hp-dur) var(--hp-ease); }
#desktop-nav .dnav-item:hover > .dnav-link,
#desktop-nav .dnav-item:focus-within > .dnav-link{ color: var(--hp-brass-lt) !important; }
#desktop-nav .dnav-item:focus-within > .dnav-link::after{ transform: scaleX(1); }
#desktop-nav .dnav-link:focus-visible{ outline: 2px solid var(--hp-brass-lt) !important; outline-offset: -4px; border-radius: 4px; }
#desktop-nav .dnav-dd{ border-top-color: var(--hp-brass) !important; border-radius: 0 0 10px 10px !important; }
#desktop-nav .dnav-dd li a:focus-visible{ outline: 2px solid var(--hp-navy) !important; outline-offset: -2px; background: var(--hp-paper); color: var(--hp-ink); }

/* Top bar on one line once there is room for it */
@media (min-width:1400px){
  #topbar .inner{ flex-wrap: nowrap !important; }
  #topbar .tb-left, #topbar .tb-right{ flex-wrap: nowrap !important; }
  #topbar .tb-left{ gap: 0 !important; }
  #topbar .tb-left a{ letter-spacing: 0 !important; margin: 0 !important; padding: 4px 7px !important; }
  #topbar .tb-left a:first-child{ padding-left: 0 !important; }
  #topbar .tb-right{ gap: 6px !important; }
}

/* Header portal badges — quieter frame, same footprint */
#site-header .hdr-portals img{ border: 1px solid var(--hp-line) !important; border-radius: 6px !important; box-shadow: none !important; }
#site-header .hdr-portals a:hover img,
#site-header .hdr-portals a:focus-visible img{ border-color: var(--hp-brass) !important; transform: none !important; }

/* Phones: keep the full bilingual wordmark visible */
@media (max-width:640px){
  html #site-header .hdr-brand{ min-width: 0; flex: 1 1 auto; }
  html #site-header .hdr-brand img{ height: auto !important; width: 100% !important; max-width: 300px !important; max-height: 52px !important; object-fit: contain; object-position: left center; }
}

/* Header search submit: the icon was absolutely positioned, leaving the
   focusable button 0×0 (focus disappeared). The button now owns the icon area. */
#site-header .hdr-search-btn{ position: absolute; left: 2px; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; z-index: 2; border-radius: 6px; }
#site-header .hdr-search-btn .si{ position: static !important; transform: none !important; }
#site-header .hdr-search-btn:focus-visible{ outline: 2px solid var(--hp-navy) !important; outline-offset: 0; }

/* Skip link — visible when focused (GIGW / WCAG 2.4.1) */
.skip-nav:focus,
.skip-nav:focus-visible{
  position: fixed !important; top: 12px !important; left: 12px !important;
  width: auto !important; height: auto !important; clip: auto !important; overflow: visible !important;
  z-index: 100000 !important; padding: 10px 16px !important;
  background: var(--hp-ink) !important; color: #fff !important; border-radius: 6px;
  outline: 3px solid var(--hp-brass-lt) !important; outline-offset: 2px;
}

/* Focus ring for every interactive element in page content */
main a:focus-visible,
main button:focus-visible,
main [tabindex]:focus-visible,
#site-footer a:focus-visible{
  outline: 2px solid var(--hp-navy) !important;
  outline-offset: 3px;
  border-radius: 4px;
}
.hp-sec--royal a:focus-visible, .hp-sec--royal button:focus-visible,
.hp-sec--dark a:focus-visible,  .hp-sec--dark button:focus-visible,
.hp-leadership .hp-director:focus-visible,
#site-footer a:focus-visible{ outline-color: var(--hp-brass-lt) !important; }
.hp-soc-panel a:focus-visible, .hp-soc-panel button:focus-visible{ outline-color: var(--hp-navy) !important; }

/* Cookie notice — accept button met only 2.4:1 (white on #d4a017) */
#spav-cookie-accept{ background: var(--hp-navy) !important; border-color: var(--hp-navy) !important; color: #fff !important; }
#spav-cookie-accept:hover{ background: var(--hp-navy-2) !important; }

/* Footer — column headings are h2 for the outline (RF53); keep them small caps
   (spav.min.css sizes every h2 with !important) */
#site-footer h2.ft-col-head{ font-family: var(--hp-sans) !important; font-size: .8125rem !important; line-height: 1.4 !important; letter-spacing: .12em !important; color: #e3c98f !important; }

/* Footer — spav-refine.css adds 68px top padding; spav.min.css forces every
   p / li to the small text size with !important */
#site-footer{ padding-top: 0 !important; }
#site-footer p.ft-brand-name{ font-size: 1.25rem !important; line-height: 1.35 !important; }
#site-footer .ft-brand p:not(.ft-brand-name),
#site-footer .ft-col li,
#site-footer .ft-col li a,
#site-footer .ft-addr{ font-size: .9375rem !important; }
#site-footer p.ft-copy-text{ font-size: .8125rem !important; }

/* Footer grid (footer.php owns the rest of the footer styling) */
#site-footer .ft-grid{ grid-template-columns: minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) !important; gap: 40px 56px !important; }
#site-footer .ft-main{ padding: clamp(48px, 5vw, 72px) 0 clamp(36px, 4vw, 56px) !important; }
@media (max-width:960px){ #site-footer .ft-grid{ grid-template-columns: 1fr 1fr !important; gap: 32px !important; } }
@media (max-width:560px){ #site-footer .ft-grid{ grid-template-columns: 1fr !important; } }

/* ── §2 HOME PAGE ────────────────────────────────────────────────────── */
body.home{ background: var(--hp-white); }

/* 2.1 Section rhythm
   About (warm) · Notices (paper) · Quick Access (white) · Social (blue) ·
   Events (white) · Campus Life (navy) · Gov. Initiatives (paper) · Footer (navy) */
body.home .hp-sec{
  position: relative;
  padding: var(--hp-sec-y) 0 !important;
  margin: 0 !important;
  background: var(--hp-white) !important;
  font-family: var(--hp-sans);
  color: var(--hp-text);
  border: 0;
}
body.home .hp-sec::before,
body.home .hp-sec::after{ content: none !important; }
body.home .hp-sec--warm { background: var(--hp-warm) !important; }
body.home .hp-sec--paper{ background: var(--hp-paper) !important; border-top: 1px solid var(--hp-line-2); }
body.home .hp-sec--dark { background: var(--hp-ink) !important; color: #e6eaf0; }

/* 2.2 Section header — eyebrow → title → lead, left-aligned, action at right */
body.home .hp-sec-head{
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px 40px; flex-wrap: wrap;
  margin: 0 0 clamp(28px, 2.8vw, 40px);
}
body.home .hp-sec-head > div{ max-width: 820px; }
body.home .hp-eyebrow{
  display: flex; align-items: center; gap: 12px;
  margin: 0 0 12px !important;
  font-family: var(--hp-sans);
  font-size: .75rem !important; line-height: 1.4 !important;
  font-weight: 700; letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--hp-brass-ink);
}
body.home .hp-eyebrow::before{ content: ''; width: 28px; height: 2px; background: var(--hp-brass); flex: none; }
body.home .hp-eyebrow--light{ color: var(--hp-brass-lt); }
body.home .hp-title{
  margin: 0 !important;
  font-family: var(--hp-serif) !important;
  font-weight: 700 !important;
  font-size: clamp(1.65rem, 1.1rem + 1.35vw, 2.5rem) !important;
  line-height: 1.16 !important;
  letter-spacing: -.01em;
  color: var(--hp-ink) !important;
  text-wrap: balance;
}
body.home .hp-sec--dark .hp-title{ color: #fff !important; }
body.home .hp-sec-lead{
  margin: 12px 0 0 !important; max-width: var(--hp-measure);
  font-size: 1.0625rem !important; line-height: 1.65 !important; color: var(--hp-muted);
}
body.home .hp-sec--dark .hp-sec-lead{ color: #c3ccd8; }

/* 2.3 Interaction system ------------------------------------------------
   Text links with arrows: .hp-link-more · .more-a · .hp-qa-btn ·
   .hp-btn · .hp-director-cta — colour change + arrow moves 3px.
   Cards: lift 3px + stronger border + soft shadow (200ms).           */
body.home .hp-link-more,
body.home .hp-nfl .more-a,
body.home .hp-qa-btn{
  display: inline-flex !important; align-items: center; gap: 8px;
  padding: 4px 0 !important; margin: 0;
  border: 0 !important; border-bottom: 1px solid var(--hp-brass) !important; border-radius: 0 !important;
  background: none !important;
  font-family: var(--hp-sans);
  font-size: .9375rem !important; font-weight: 600 !important; line-height: 1.4 !important;
  color: var(--hp-navy) !important; text-decoration: none !important; white-space: nowrap;
  transition: color var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease);
}
body.home .hp-link-more i,
body.home .hp-nfl .more-a i,
body.home .hp-btn i,
body.home .hp-director-cta i{ font-size: .75em; transition: transform var(--hp-dur) var(--hp-ease); }
body.home .hp-qa-btn::after{ content: '\2192'; transition: transform var(--hp-dur) var(--hp-ease); }
body.home .hp-link-more:hover, body.home .hp-link-more:focus-visible,
body.home .hp-nfl .more-a:hover, body.home .hp-nfl .more-a:focus-visible{ color: var(--hp-brass-ink) !important; border-bottom-color: var(--hp-navy) !important; }
body.home .hp-link-more:hover i, body.home .hp-link-more:focus-visible i,
body.home .hp-nfl .more-a:hover i, body.home .hp-nfl .more-a:focus-visible i,
body.home .hp-btn:hover i, body.home .hp-btn:focus-visible i,
body.home .hp-qa-card:hover .hp-qa-btn::after, body.home .hp-qa-btn:focus-visible::after,
body.home .hp-director:hover .hp-director-cta i, body.home .hp-director:focus-visible .hp-director-cta i{ transform: translateX(3px); }

body.home .hp-btn{
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 22px; border-radius: var(--hp-radius-sm);
  font-size: .9375rem; font-weight: 600; letter-spacing: .01em;
  text-decoration: none !important; cursor: pointer;
  transition: background var(--hp-dur) var(--hp-ease), color var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease);
}
body.home .hp-btn--outline{ border: 1px solid var(--hp-navy); color: var(--hp-navy) !important; background: transparent; }
body.home .hp-btn--outline:hover{ background: var(--hp-navy); color: #fff !important; }

/* 2.4 Hero slider + ticker ---------------------------------------------- */
body.home #slider .sld-btn,
body.home #slider .sld-pause{
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(15,30,51,.66); color: #fff;
  border: 1px solid rgba(255,255,255,.35);
  transition: background var(--hp-dur) var(--hp-ease);
}
body.home #slider .sld-btn:hover{ background: rgba(15,30,51,.9); transform: translateY(-50%); }
body.home #slider .sld-pause{
  position: absolute; right: 14px; bottom: 14px; z-index: 21;
  display: grid; place-items: center; cursor: pointer; font-size: .75rem; line-height: 1;
}
body.home #slider .sld-pause:hover{ background: rgba(15,30,51,.9); }
body.home #slider .sld-btn:focus-visible,
body.home #slider .sld-pause:focus-visible,
body.home #slider .sdot:focus-visible{ outline: 3px solid #fff !important; outline-offset: 2px; box-shadow: 0 0 0 5px var(--hp-ink); }
body.home #slider .sdot{ width: 10px; height: 10px; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px rgba(15,30,51,.4); }
body.home #slider .sdot.on{ background: #fff; transform: none; width: 24px; border-radius: 5px; }
body.home #ticker{
  background: var(--hp-ink) !important;
  border-top: 0 !important; border-bottom: 1px solid rgba(255,255,255,.08) !important;
}
body.home #ticker .ticker-lbl{
  background: var(--hp-brass-ink) !important; color: #fff !important;
  font-family: var(--hp-sans) !important; letter-spacing: .16em;
}
body.home #ticker .ticker-live-dot{ background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.25); }
body.home #ticker .ticker-inner a{ color: #e6eaf0; font-family: var(--hp-sans); }
body.home #ticker .ticker-inner a:hover{ color: #fff; text-decoration: underline; }
body.home #ticker .ticker-sep{ color: var(--hp-brass); }
/* Tablet / phone: keep the posters' wide proportion instead of a tall crop */
@media (max-width:1023px){
  body.home .hero-wrapper{ height: auto !important; min-height: 0 !important; max-height: none !important; }
  body.home #slider{ flex: none !important; }
  body.home #slider .slide{ height: max(200px, 44vw) !important; min-height: 0 !important; max-height: 480px !important; }
}

/* 2.5 About SPAV + Academic Leadership — ONE institutional card ---------
   Tier 1 (white): campus photograph | profile, facts, link
   Tier 2 (navy-tinted): Director | five Deans
   The image column and the Director column share the same 5/12 track,
   so both tiers read as one composition.                               */
body.home .hp-intro{
  background: var(--hp-white);
  border: 1px solid var(--hp-line);
  border-radius: calc(var(--hp-radius) + 4px);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15,30,51,.04), 0 24px 48px -36px rgba(15,30,51,.35);
}
body.home .hp-about-intro{
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: stretch;
}
body.home .hp-about-media{
  margin: 0; position: relative; min-height: 420px;
  background: var(--hp-paper); overflow: hidden;
}
body.home .hp-about-media img{
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 60% 30%; display: block;
  transition: transform .8s var(--hp-ease);
}
body.home .hp-about-intro:hover .hp-about-media img{ transform: scale(1.02); }
body.home .hp-about-body{
  padding: clamp(32px, 4vw, 64px) clamp(28px, 4.4vw, 72px);
  display: flex; flex-direction: column; justify-content: center;
}
body.home .hp-about-body .hp-title{ margin-bottom: 18px !important; }
body.home .hp-lead{
  margin: 0 0 32px !important; max-width: var(--hp-measure);
  font-size: 1.0625rem !important; line-height: 1.75 !important; color: var(--hp-muted);
}
body.home .hp-facts{
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 32px; padding: 22px 0;
  border-top: 1px solid var(--hp-line); border-bottom: 1px solid var(--hp-line);
}
body.home .hp-fact{ display: flex; flex-direction: column; gap: 6px; padding: 0 24px; border-left: 1px solid var(--hp-line); }
body.home .hp-fact:first-child{ padding-left: 0; border-left: 0; }
body.home .hp-fact-num{ font-family: var(--hp-serif); font-size: 2rem; font-weight: 700; line-height: 1.05; color: var(--hp-navy); }
body.home .hp-fact-lbl{ font-size: .875rem; line-height: 1.4; color: var(--hp-muted); }
body.home .hp-about-body .hp-btn{ align-self: flex-start; }

/* Tier 2 — leadership, navy-tinted surface continuing the same card */
body.home .hp-leadership{
  position: relative;
  background: var(--hp-cool);
  border-top: 1px solid var(--hp-cool-line);
  padding: clamp(28px, 3.4vw, 48px) clamp(24px, 3.4vw, 48px) clamp(28px, 3.4vw, 48px);
  color: var(--hp-text);
}
body.home .hp-leadership::before{                /* brass seam between the tiers */
  content: ''; position: absolute; top: -1px; left: clamp(24px, 3.4vw, 48px); width: 64px; height: 3px;
  background: var(--hp-brass);
}
body.home .hp-ldr-head{
  display: flex; align-items: flex-end; justify-content: space-between; gap: 8px 32px; flex-wrap: wrap;
  margin-bottom: 24px;
}
body.home .hp-ldr-title{
  margin: 0 !important; font-family: var(--hp-serif) !important; font-weight: 700 !important;
  font-size: clamp(1.35rem, 1.1rem + .6vw, 1.75rem) !important; line-height: 1.2 !important; color: var(--hp-ink) !important;
}
body.home .hp-ldr-sub{ margin: 0 !important; font-size: .9375rem !important; color: var(--hp-muted); }

body.home .hp-ldr-grid{
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(20px, 2.4vw, 36px);
  align-items: stretch;
}
/* Director — prominent, compact */
body.home .hp-director{
  display: grid; grid-template-columns: 64px minmax(0,1fr); column-gap: 20px; align-content: start;
  padding: 28px; border-radius: var(--hp-radius);
  background: var(--hp-navy); color: #e8edf4;
  border: 1px solid var(--hp-navy);
  text-decoration: none !important;
  transition: transform var(--hp-dur) var(--hp-ease), box-shadow var(--hp-dur) var(--hp-ease), background var(--hp-dur) var(--hp-ease);
}
body.home .hp-director:hover{ transform: var(--hp-lift); box-shadow: var(--hp-shadow-h); background: var(--hp-navy-2); }
body.home .hp-director > *:not(.hp-director-mono){ grid-column: 2; }
body.home .hp-director-mono{
  grid-row: 1 / span 6;
  width: 64px; height: 64px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--hp-serif); font-size: 1.35rem; font-weight: 700; color: var(--hp-ink);
  background: var(--hp-brass-lt);
}
body.home .hp-director-badge{ font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hp-brass-lt); }
body.home .hp-director-name{ margin-top: 6px; font-family: var(--hp-serif); font-size: 1.5rem; font-weight: 700; line-height: 1.25; color: #fff; }
body.home .hp-director-qual{ margin-top: 6px; font-size: .875rem; color: #c8d2df; }
body.home .hp-director-desc{ margin-top: 14px; font-size: .9375rem; line-height: 1.7; color: #dde4ee; max-width: 52ch; }
body.home .hp-director-cta{
  margin-top: 20px; display: inline-flex; align-items: center; gap: 8px;
  font-size: .9375rem; font-weight: 600; color: var(--hp-brass-lt);
}
/* Deans — compact two-column list (5 items: last spans both columns) */
body.home .hp-deans{
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
body.home .hp-deans li{ margin: 0 !important; padding: 0; display: flex; font-size: inherit !important; }
body.home .hp-deans li:last-child:nth-child(odd){ grid-column: 1 / -1; }
body.home .hp-dean{
  flex: 1; display: grid; grid-template-columns: 44px minmax(0,1fr) 16px; align-items: center; gap: 16px;
  padding: 16px 18px; border-radius: var(--hp-radius-sm);
  background: var(--hp-white); border: 1px solid var(--hp-cool-line);
  text-decoration: none !important; color: inherit;
  transition: transform var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease), box-shadow var(--hp-dur) var(--hp-ease);
}
body.home .hp-dean:hover{ transform: var(--hp-lift); border-color: var(--hp-navy); box-shadow: var(--hp-shadow-h); }
body.home .hp-dean-ico{
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  color: var(--hp-navy); background: var(--hp-cool); border: 1px solid var(--hp-cool-line);
}
body.home .hp-dean-ico svg{ width: 19px; height: 19px; }
body.home .hp-dean-text{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body.home .hp-dean-role{ font-size: 1rem; font-weight: 700; color: var(--hp-ink); line-height: 1.35; }
body.home .hp-dean-desc{ font-size: .875rem; color: var(--hp-muted); line-height: 1.45; }
body.home .hp-dean-arrow{ font-size: .75rem; color: var(--hp-navy); opacity: .55; transition: opacity var(--hp-dur), transform var(--hp-dur) var(--hp-ease); }
body.home .hp-dean:hover .hp-dean-arrow, body.home .hp-dean:focus-visible .hp-dean-arrow{ opacity: 1; transform: translateX(3px); }

/* 2.6 Notifications + Important Links ----------------------------------- */
body.home .hp-nfl .nfl-grid{
  display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 28px; align-items: stretch;
}
body.home .hp-nfl .nfl-notices-col,
body.home .hp-nfl .nfl-links-col{
  background: var(--hp-white); border: 1px solid var(--hp-line); border-radius: var(--hp-radius);
  box-shadow: var(--hp-shadow); overflow: hidden; height: 540px;
  display: flex; flex-direction: column;
}
body.home .hp-nfl .home-notices-box{
  flex: 1; min-height: 0; display: flex; flex-direction: column;
  margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; background: transparent !important; height: auto !important;
}
body.home .hp-nfl .tab-nav{
  display: flex !important; gap: 4px !important; flex-shrink: 0;
  padding: 0 24px !important; margin: 0 !important;
  border-bottom: 1px solid var(--hp-line) !important; background: var(--hp-white) !important;
  overflow-x: auto; scrollbar-width: none;
}
body.home .hp-nfl .tab-nav::-webkit-scrollbar{ display: none; }
body.home .hp-nfl .tab-btn{
  flex: 0 0 auto !important;
  display: inline-flex !important; align-items: center; gap: 8px;
  padding: 17px 14px 14px !important; margin: 0 0 -1px !important;
  background: none !important; border: 0 !important; border-bottom: 3px solid transparent !important; border-radius: 0 !important;
  font-family: var(--hp-sans) !important; font-size: .9375rem !important; font-weight: 500 !important;
  letter-spacing: 0 !important; text-transform: none !important;
  color: var(--hp-muted) !important; box-shadow: none !important; white-space: nowrap; cursor: pointer;
  transition: color var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease);
}
body.home .hp-nfl .tab-btn:hover{ color: var(--hp-navy) !important; border-bottom-color: var(--hp-line-strong) !important; }
/* Active tab: weight + 3px underline + colour (not colour alone, WCAG 1.4.1) */
body.home .hp-nfl .tab-btn.on,
body.home .hp-nfl .tab-btn[aria-selected="true"]{ color: var(--hp-ink) !important; font-weight: 700 !important; border-bottom-color: var(--hp-brass) !important; }
body.home .hp-nfl .tab-btn:focus-visible{ outline: 2px solid var(--hp-navy) !important; outline-offset: -4px; border-radius: 6px !important; }
body.home .hp-nfl .tab-ico{ display: inline-flex !important; margin: 0 !important; color: var(--hp-brass-ink) !important; }
body.home .hp-nfl .tab-ico svg{ width: 15px; height: 15px; }
body.home .hp-nfl .tab-panel{
  flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 4px 0 0 !important;
  scrollbar-width: thin; scrollbar-color: #d2cab9 transparent;
}
body.home .hp-nfl .tab-panel.on:not([hidden]){ display: flex !important; flex-direction: column; }
body.home .hp-nfl .ni-list{ list-style: none; margin: 0 !important; padding: 0 !important; flex: 1 0 auto; }
body.home .hp-nfl .ni{
  position: relative;
  display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; align-items: start;
  margin: 0 !important; padding: 15px 24px !important;
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--hp-line-2) !important;
  border-radius: 0 !important; box-shadow: none !important; transform: none !important;
  font-size: inherit !important;
  transition: background var(--hp-dur) var(--hp-ease);
}
body.home .hp-nfl .ni::before{
  content: '' !important; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--hp-brass); transform: scaleY(0); transition: transform var(--hp-dur) var(--hp-ease);
}
body.home .hp-nfl .ni:last-child{ border-bottom: 0 !important; }
body.home .hp-nfl .ni:hover,
body.home .hp-nfl .ni:focus-within{ background: var(--hp-warm) !important; }
body.home .hp-nfl .ni:hover::before,
body.home .hp-nfl .ni:focus-within::before{ transform: scaleY(1); }
body.home .hp-nfl .ni-ico{ display: none !important; }
body.home .hp-nfl .ni-body{ min-width: 0; }
body.home .hp-nfl .ni-body a{
  color: var(--hp-text) !important; font-size: 1rem !important; line-height: 1.55 !important; font-weight: 500 !important;
  text-decoration: none !important; border: 0 !important; background: none !important; padding: 0 !important;
  overflow-wrap: anywhere;
}
body.home .hp-nfl .ni-body a:hover{ color: var(--hp-navy-2) !important; text-decoration: underline !important; text-underline-offset: 3px; }
body.home .hp-nfl .ni-date{
  display: block !important; margin-top: 6px !important; padding: 0 !important; border: 0 !important;
  font-family: var(--hp-sans) !important; font-size: .875rem !important; color: var(--hp-muted) !important; letter-spacing: 0 !important;
}
body.home .hp-nfl .ntag{
  margin-top: 3px !important; padding: 2px 8px !important; border-radius: 4px !important;
  background: var(--hp-brass-bg) !important; color: var(--hp-brass-ink) !important; border: 1px solid #e6d6b1 !important;
  font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .08em; line-height: 1.5 !important;
  box-shadow: none !important; animation: none !important;
}
body.home .hp-nfl .more-a{ flex-shrink: 0; align-self: flex-start; margin: 14px 24px 20px !important; }

body.home .hp-nfl .nfl-links-col{ overflow-y: auto; scrollbar-width: thin; scrollbar-color: #d2cab9 transparent; }
body.home .hp-nfl .nfl-links-box{ padding: 0 24px 12px; }
body.home .hp-nfl .nfl-links-hdg{
  position: sticky; top: 0; z-index: 1;
  margin: 0 -24px 4px !important; padding: 18px 24px 16px !important;
  background: var(--hp-white); border-bottom: 1px solid var(--hp-line) !important;
  font-family: var(--hp-sans) !important; font-size: .9375rem !important; font-weight: 700 !important;
  letter-spacing: 0 !important; text-transform: none !important; color: var(--hp-ink) !important;
}
body.home .hp-nfl .nfl-litem{
  display: flex; align-items: center; gap: 14px;
  padding: 11px 6px !important; margin: 0 -6px; border-radius: 6px;
  border-bottom: 1px solid var(--hp-line-2) !important;
  font-size: 1rem !important; font-weight: 500; color: var(--hp-text) !important; text-decoration: none !important;
  transition: color var(--hp-dur) var(--hp-ease), background var(--hp-dur) var(--hp-ease);
}
body.home .hp-nfl .nfl-litem:last-child{ border-bottom: 0 !important; }
body.home .hp-nfl .nfl-litem:hover{ color: var(--hp-navy-2) !important; background: var(--hp-warm); }
body.home .hp-nfl .nfl-litem-ico{
  width: 30px; height: 30px; border-radius: 6px; flex: none;
  display: grid; place-items: center;
  background: var(--hp-paper); color: var(--hp-brass-ink); font-size: .8rem;
  transition: background var(--hp-dur), color var(--hp-dur);
}
/* The self-hosted icon font falls back to colour emoji; render as one quiet set */
body.home .hp-nfl .nfl-litem-ico i{ filter: grayscale(1) contrast(1.1); opacity: .75; }
body.home .hp-nfl .nfl-litem:hover .nfl-litem-ico{ background: var(--hp-navy); }
body.home .hp-nfl .nfl-litem:hover .nfl-litem-ico i{ filter: grayscale(1) brightness(3); opacity: 1; }
body.home .hp-nfl .nfl-lnew{
  margin-left: auto; padding: 1px 7px; border-radius: 4px;
  background: var(--hp-brass-bg); color: var(--hp-brass-ink); border: 1px solid #e6d6b1;
  font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}

/* 2.7 Quick Access ------------------------------------------------------- */
body.home .hp-qa-grid{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
body.home .hp-qa-card{
  position: relative; display: flex; flex-direction: column; align-items: flex-start;
  padding: 32px 30px 28px;
  background: var(--hp-white); border: 1px solid var(--hp-line); border-radius: var(--hp-radius);
  box-shadow: var(--hp-shadow);
  transition: transform var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease), box-shadow var(--hp-dur) var(--hp-ease);
}
body.home .hp-qa-card::before{
  content: ''; position: absolute; left: 30px; right: 30px; top: -1px; height: 3px;
  background: var(--hp-brass); transform: scaleX(0); transform-origin: left; transition: transform var(--hp-dur) var(--hp-ease);
}
body.home .hp-qa-card:hover,
body.home .hp-qa-card:focus-within{ transform: var(--hp-lift); border-color: var(--hp-line-strong); box-shadow: var(--hp-shadow-h); }
body.home .hp-qa-card:hover::before,
body.home .hp-qa-card:focus-within::before{ transform: scaleX(1); }
body.home .hp-qa-ico{
  width: 56px; height: 56px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 24px;
  background: var(--hp-navy); color: #fff;
}
body.home .hp-qa-ico svg{ width: 24px !important; height: 24px !important; max-width: none !important; max-height: none !important; color: #fff !important; }
body.home .hp-qa-title{
  margin: 0 0 8px !important; font-family: var(--hp-serif) !important; font-size: 1.375rem !important;
  font-weight: 700 !important; color: var(--hp-ink) !important; line-height: 1.25 !important;
}
body.home .hp-qa-desc{ margin: 0 0 24px !important; font-size: 1rem !important; line-height: 1.6 !important; color: var(--hp-muted); }
body.home .hp-qa-btn{ margin-top: auto; }
body.home .hp-qa-btn::before{ content: ''; position: absolute; inset: 0; border-radius: var(--hp-radius); }   /* whole card is the hit area */

/* 2.8 In Social Media — institutional-blue band, four feed panels ------- */
:root{ --hp-soc-h: 500px; }
body.home .hp-sec--royal{
  background: var(--hp-blue) !important;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.08)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 120px) !important;
  color: #fff;
}
body.home .hp-social .hp-sec-head{ margin-bottom: clamp(24px, 2.6vw, 36px); }
body.home .hp-social-title{ display: flex; align-items: center; gap: 16px; color: #fff !important; }
body.home .hp-social-title-ico{
  width: 48px; height: 48px; flex: none; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--hp-brass-lt); color: var(--hp-blue-2);
}
body.home .hp-soc-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
body.home .hp-soc-panel{
  position: relative;
  display: flex; flex-direction: column; min-width: 0;
  background: #fff; border-radius: var(--hp-radius); overflow: hidden;
  box-shadow: 0 1px 2px rgba(5,18,45,.25), 0 16px 32px -22px rgba(5,18,45,.7);
  color: var(--hp-text);
}
body.home .hp-soc-head{
  display: flex; align-items: center; gap: 12px;
  min-height: 68px; padding: 14px 18px; border-bottom: 1px solid var(--hp-line-2); background: #fff;
}
body.home .hp-soc-ico{ width: 38px; height: 38px; flex: none; border-radius: 9px; display: grid; place-items: center; color: #fff; }
body.home .hp-soc-ico--x{ background: #0f1419; }
body.home .hp-soc-ico--youtube{ background: #d61f15; }
body.home .hp-soc-ico--facebook{ background: #1877f2; }
body.home .hp-soc-ico--instagram{ background: #d6249f; background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
body.home .hp-soc-name{ display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.25; }
body.home .hp-soc-platform{ margin: 0 !important; font-family: var(--hp-serif) !important; font-weight: 700 !important; font-size: 1.125rem !important; line-height: 1.25 !important; color: var(--hp-ink) !important; }
body.home .hp-soc-handle{ font-size: .8125rem; color: var(--hp-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.home .hp-soc-follow{
  flex: none; padding: 7px 14px; border-radius: 999px;
  border: 1px solid var(--hp-line-strong); font-size: .8125rem; font-weight: 600;
  color: var(--hp-navy) !important; text-decoration: none !important;
  transition: background var(--hp-dur), border-color var(--hp-dur), color var(--hp-dur);
}
body.home .hp-soc-follow:hover{ background: var(--hp-navy); border-color: var(--hp-navy); color: #fff !important; }

body.home .hp-soc-body{
  position: relative; height: var(--hp-soc-h); overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: #cfd6e4 transparent;
}
body.home .hp-soc-body:focus-visible{ outline: 2px solid var(--hp-navy) !important; outline-offset: -2px; }
body.home .hp-soc-body--frame{ overflow: hidden; }
body.home .hp-soc-body--frame .hp-soc-embed{ height: 100%; }
body.home .hp-soc-body--frame .hp-soc-embed iframe{ display: block; width: 100% !important; max-width: 100%; height: 100% !important; border: 0; }

/* Facebook: official Page Plugin (header) + link card */
body.home .hp-soc-body--fb{ display: flex; flex-direction: column; }
body.home .hp-soc-fbwrap{ position: relative; flex: none; height: 130px; border-bottom: 1px solid var(--hp-line-2); background: var(--hp-paper); }
body.home .hp-soc-fbwrap .hp-soc-state{ background: var(--hp-paper); padding: 16px; gap: 10px; }
body.home .hp-soc-fbwrap .hp-soc-state p{ font-size: .8125rem !important; }
body.home .hp-soc-fbwrap .hp-soc-state-ico{ display: none; }
body.home .hp-soc-fbwrap .hp-soc-embed{ display: flex; justify-content: center; height: 100%; }
body.home .hp-soc-fbwrap .hp-soc-embed iframe{ display: block; border: 0; max-width: 100%; }
body.home .hp-soc-body .hp-soc-state.hp-soc-state--inline{ position: static; inset: auto; flex: 1; }

/* YouTube: uploads-playlist player, caption, optional recent list */
body.home .hp-yt-player{ position: relative; aspect-ratio: 16 / 9; background: var(--hp-ink); }
body.home .hp-yt-player .hp-soc-state{ background: var(--hp-ink); padding: 16px; gap: 10px; }
body.home .hp-yt-player .hp-soc-state p{ color: #dde4ee; font-size: .875rem !important; }
body.home .hp-yt-player .hp-soc-state-ico{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #fff; width: 44px; height: 44px; }
body.home .hp-yt-player .hp-soc-embed,
body.home .hp-yt-player iframe{ position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
body.home .hp-yt-caption{ margin: 0 !important; padding: 12px 18px 0; font-size: .875rem !important; line-height: 1.55 !important; color: var(--hp-muted); }
body.home .hp-yt-sub{ margin: 0 !important; padding: 18px 18px 4px; font-family: var(--hp-sans) !important; font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--hp-brass-ink) !important; }
body.home .hp-soc-more{ padding: 18px; display: flex; justify-content: center; }

/* Server-rendered posts (Graph API / X API cache via cron) */
body.home .hp-post-list{ list-style: none; margin: 0 !important; padding: 0 !important; }
body.home .hp-post{ margin: 0 !important; border-bottom: 1px solid var(--hp-line-2); font-size: inherit !important; }
body.home .hp-post-link{ display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; color: var(--hp-text) !important; text-decoration: none !important; transition: background var(--hp-dur); }
body.home .hp-post-link:hover{ background: var(--hp-warm); }
body.home .hp-post-img{ width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; display: block; background: var(--hp-paper); }
body.home .hp-post-text{ font-size: .9375rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }

/* Panel states: idle (link card, default) · loading (skeleton) · error */
body.home .hp-soc-state{
  position: absolute; inset: 0; padding: 28px 24px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center;
  background: #fff;
}
body.home .hp-soc-state[hidden]{ display: none !important; }
body.home .hp-soc-state p{ margin: 0 !important; max-width: 30ch; font-size: .9375rem !important; line-height: 1.6 !important; color: var(--hp-muted); }
body.home .hp-soc-state p.hp-soc-note{ font-size: .8125rem !important; }
body.home .hp-soc-state-ico{
  width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center;
  background: var(--hp-paper); color: var(--hp-navy); border: 1px solid var(--hp-line);
}
body.home .hp-soc-state-ico svg{ width: 22px; height: 22px; }
body.home .hp-soc-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 18px; border-radius: var(--hp-radius-sm); border: 1px solid var(--hp-navy);
  background: var(--hp-navy); color: #fff !important; font: 600 .875rem/1.3 var(--hp-sans);
  text-decoration: none !important; cursor: pointer;
  transition: background var(--hp-dur), border-color var(--hp-dur), color var(--hp-dur);
}
body.home .hp-soc-btn:hover{ background: var(--hp-navy-2); border-color: var(--hp-navy-2); }
body.home .hp-soc-btn.hp-soc-btn--ghost{ background: transparent; color: var(--hp-navy) !important; border-color: var(--hp-line-strong); }
body.home .hp-soc-btn.hp-soc-btn--ghost:hover{ background: var(--hp-navy); border-color: var(--hp-navy); color: #fff !important; }
html:not(.js-enabled) body.home .hp-soc-jsonly{ display: none !important; }
body.home .hp-soc-link{ font-size: .8125rem; font-weight: 600; color: var(--hp-navy) !important; }
/* Skeleton — shown only while an embed is loading (≤10 s, then error card) */
body.home .hp-soc-skel{ display: flex; flex-direction: column; gap: 10px; width: min(220px, 80%); }
body.home .hp-soc-skel i{ display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #eceff4 0%, #f6f7fa 50%, #eceff4 100%); background-size: 200% 100%; animation: hp-skel 1.2s linear infinite; }
body.home .hp-soc-skel i:nth-child(1){ width: 60%; height: 14px; }
body.home .hp-soc-skel i:nth-child(4){ width: 75%; }
body.home .hp-soc-skel--video{ width: 64px; height: 44px; border-radius: 10px; background: rgba(255,255,255,.12); animation: hp-pulse 1.2s ease-in-out infinite; }
@keyframes hp-skel{ to{ background-position: -200% 0; } }
@keyframes hp-pulse{ 50%{ opacity: .4; } }
/* YouTube list */
body.home .hp-yt-list{ list-style: none; margin: 0 !important; padding: 0 !important; }
body.home .hp-yt-item{
  display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 12px; align-items: start;
  margin: 0 !important; padding: 12px 18px !important; border-bottom: 1px solid var(--hp-line-2); font-size: inherit !important;
}
body.home .hp-yt-item:last-child{ border-bottom: 0; }
body.home .hp-yt-thumb,
body.home .hp-yt-frame{
  position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 6px;
  overflow: hidden; background: var(--hp-ink); cursor: pointer;
}
body.home .hp-yt-thumb img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--hp-ease); }
body.home .hp-yt-thumb:hover img{ transform: scale(1.03); }
body.home .hp-yt-play{
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 30px; height: 21px; border-radius: 6px; display: grid; place-items: center;
  background: rgba(214,31,21,.95); color: #fff;
}
body.home .hp-yt-meta{ display: flex; flex-direction: column; gap: 4px; min-width: 0; }
body.home .hp-yt-title{
  font-size: .875rem; font-weight: 600; line-height: 1.4; color: var(--hp-ink) !important; text-decoration: none !important;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
body.home .hp-yt-title:hover{ color: var(--hp-navy-2) !important; text-decoration: underline !important; }
body.home .hp-soc-date{ font-size: .8125rem; color: var(--hp-muted); }
/* Instagram grid (when the Graph API feed is configured) */
body.home .hp-ig-grid{ list-style: none; margin: 0 !important; padding: 12px !important; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body.home .hp-ig-grid li{ margin: 0 !important; font-size: inherit !important; }
body.home .hp-ig-item{ position: relative; display: block; aspect-ratio: 1; border-radius: 6px; overflow: hidden; background: var(--hp-paper); }
body.home .hp-ig-item img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--hp-ease); }
body.home .hp-ig-item:hover img{ transform: scale(1.03); }
body.home .hp-ig-text{ display: block; padding: 10px; font-size: .8125rem; line-height: 1.4; color: var(--hp-text); }

/* RF54 — featured posts (official per-post embeds) */
body.home .hp-soc-body--feat{ display: flex; flex-direction: column; }
body.home .hp-feat-note{
  flex: none; margin: 0 !important; padding: 10px 18px !important;
  font-size: .8125rem !important; line-height: 1.4 !important; color: var(--hp-muted);
  background: var(--hp-warm); border-bottom: 1px solid var(--hp-line-2);
}
body.home .hp-feat-stage{ position: relative; flex: 1 0 auto; min-height: calc(var(--hp-soc-h) - 120px); }
body.home .hp-feat-list{ list-style: none; margin: 0 !important; padding: 12px !important; display: flex; flex-direction: column; gap: 12px; }
body.home .hp-feat-item{ margin: 0 !important; font-size: inherit !important; min-width: 0; }
body.home .hp-feat-item iframe,
body.home .hp-feat-item .instagram-media,
body.home .hp-feat-item .twitter-tweet{ display: block; width: 100% !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; border-radius: 8px; }
body.home .hp-feat-item iframe{ border: 0; }
body.home .hp-feat-fallback[hidden]{ display: none !important; }
body.home .hp-feat-fallback{ display: inline-block; padding: 6px 0; font-size: .875rem; font-weight: 600; color: var(--hp-navy) !important; }
/* While loading, the overlay covers the stage; the list stays rendered (embeds
   must be visible to size themselves) but is clipped to the panel height. */
html.js-enabled body.home .hp-soc-panel:not(.is-loaded) .hp-feat-stage{ overflow: hidden; max-height: calc(var(--hp-soc-h) - 40px); }

/* 2.9 Recent & Upcoming Events ------------------------------------------ */
body.home .hp-events-grid{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; align-items: stretch; }
body.home .hp-events-grid .ev-card{
  display: flex !important; flex-direction: column; overflow: hidden; height: 100%;
  background: var(--hp-white) !important; border: 1px solid var(--hp-line) !important; border-radius: var(--hp-radius) !important;
  box-shadow: var(--hp-shadow) !important; text-decoration: none !important; color: inherit;
  transition: transform var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease), box-shadow var(--hp-dur) var(--hp-ease) !important;
}
body.home .hp-events-grid .ev-card:hover,
body.home .hp-events-grid .ev-card:focus-visible{ transform: var(--hp-lift) !important; border-color: var(--hp-line-strong) !important; box-shadow: var(--hp-shadow-h) !important; }
body.home .hp-events-grid .ev-img-wrap{
  position: relative; aspect-ratio: 16 / 9; height: auto !important; overflow: hidden;
  background: var(--hp-paper) repeating-linear-gradient(135deg, transparent 0 14px, rgba(176,138,62,.08) 14px 15px);
  border-bottom: 1px solid var(--hp-line-2);
}
body.home .hp-events-grid .ev-img-wrap img{
  position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: top center;
  color: transparent; font-size: 0;          /* hide alt text if an image file is missing */
  transition: transform .6s var(--hp-ease);
}
body.home .hp-events-grid .ev-card:hover .ev-img-wrap img{ transform: scale(1.03); }
body.home .hp-events-grid .ev-date{
  position: absolute; top: 16px; left: 16px; z-index: 1;
  min-width: 60px; padding: 8px 10px !important; border-radius: 8px !important;
  background: var(--hp-white) !important; border: 1px solid var(--hp-line) !important; box-shadow: 0 2px 8px rgba(15,30,51,.16) !important;
  text-align: center; color: var(--hp-ink) !important; backdrop-filter: none !important;
}
body.home .hp-events-grid .ev-day{ font-family: var(--hp-serif) !important; font-size: 1.2rem !important; font-weight: 700 !important; line-height: 1.1 !important; color: var(--hp-ink) !important; }
body.home .hp-events-grid .ev-mon{ margin-top: 2px; font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase; color: var(--hp-brass-ink) !important; }
body.home .hp-events-grid .ev-body{ display: flex; flex-direction: column; gap: 12px; padding: 24px 26px 28px !important; flex: 1; }
body.home .hp-events-grid .ev-title{
  margin: 0 !important; font-family: var(--hp-serif) !important; font-size: 1.3rem !important; font-weight: 700 !important;
  line-height: 1.35 !important; color: var(--hp-ink) !important;
}
body.home .hp-events-grid .ev-desc{
  margin: 0 !important; font-size: 1rem !important; line-height: 1.65 !important; color: var(--hp-muted) !important;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
body.home .hp-pill{
  display: inline-block; margin-left: 8px; padding: 2px 9px; border-radius: 4px; vertical-align: 3px;
  font-family: var(--hp-sans); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; line-height: 1.5;
}
body.home .hp-pill--done{ background: var(--hp-ok-bg); color: var(--hp-ok); border: 1px solid #bcdcc7; }
body.home .hp-pill--soon{ background: var(--hp-soon-bg); color: var(--hp-soon); border: 1px solid #ecd2a3; }

/* 2.10 Campus Life (videos) — deep navy band --------------------------- */
body.home .hp-vid-grid{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
body.home .hp-vid-card{
  display: flex; flex-direction: column; overflow: hidden; text-decoration: none !important; color: inherit;
  background: #16263f; border: 1px solid rgba(255,255,255,.12); border-radius: var(--hp-radius);
  transition: transform var(--hp-dur) var(--hp-ease), border-color var(--hp-dur) var(--hp-ease), box-shadow var(--hp-dur) var(--hp-ease);
}
body.home .hp-vid-card:hover,
body.home .hp-vid-card:focus-visible{ transform: var(--hp-lift); border-color: rgba(227,201,143,.6); box-shadow: 0 16px 32px -20px rgba(0,0,0,.8); }
body.home .hp-vid-card .vid-thumb{ position: relative; aspect-ratio: 16 / 9; overflow: hidden; height: auto !important; }
body.home .hp-vid-card .vid-thumb img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--hp-ease); }
body.home .hp-vid-card:hover .vid-thumb img{ transform: scale(1.03); }
body.home .hp-vid-card .vid-overlay{
  position: absolute; inset: 0; display: grid; place-items: center;
  background: linear-gradient(to top, rgba(10,20,36,.35), rgba(10,20,36,0) 55%) !important; opacity: 1 !important;
}
body.home .hp-vid-card .vid-play{
  width: 60px !important; height: 60px !important; border-radius: 50% !important;
  display: grid !important; place-items: center; padding-left: 3px;
  background: rgba(255,255,255,.95) !important; color: var(--hp-ink) !important; border: 0 !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.3) !important; transform: none !important; font-size: 1rem;
  transition: transform var(--hp-dur) var(--hp-ease), background var(--hp-dur) !important;
}
body.home .hp-vid-card:hover .vid-play,
body.home .hp-vid-card:focus-visible .vid-play{ transform: scale(1.05) !important; background: var(--hp-brass-lt) !important; }
body.home .hp-vid-card .vid-info{ padding: 20px 24px 24px; }
body.home .hp-vid-card .vid-title{ margin: 0 !important; font-family: var(--hp-serif) !important; font-size: 1.2rem !important; font-weight: 700 !important; color: #fff !important; line-height: 1.3 !important; }
body.home .hp-vid-card .vid-sub{ margin: 6px 0 0 !important; font-size: .9375rem !important; line-height: 1.55 !important; color: #c3ccd8 !important; }

/* 2.11 Government Initiatives ------------------------------------------- */
body.home .hp-logos .hp-logo-wrap{
  display: flex !important; align-items: center; gap: 12px; margin: 0 !important; padding: 0 !important;
  background: none !important; border: 0 !important; box-shadow: none !important;
}
body.home .hp-logos .logo-track{
  flex: 1; min-width: 0; display: flex !important; gap: 20px !important; overflow-x: auto; scroll-snap-type: x proximity;
  padding: 6px 4px 10px !important; scrollbar-width: none; mask-image: none !important; -webkit-mask-image: none !important;
}
body.home .hp-logos .logo-track::-webkit-scrollbar{ display: none; }
body.home .hp-logos .logo-item{
  flex: 0 0 auto !important; width: 196px !important; height: 112px !important; padding: 16px 22px !important;
  display: grid !important; place-items: center; scroll-snap-align: start;
  background: var(--hp-white) !important; border: 1px solid var(--hp-line) !important; border-radius: var(--hp-radius) !important;
  box-shadow: none !important; opacity: 1 !important; transform: none !important;
  transition: border-color var(--hp-dur) var(--hp-ease), box-shadow var(--hp-dur) var(--hp-ease), transform var(--hp-dur) var(--hp-ease) !important;
}
body.home .hp-logos .logo-item:hover,
body.home .hp-logos .logo-item:focus-visible{ border-color: var(--hp-line-strong) !important; box-shadow: var(--hp-shadow-h) !important; transform: var(--hp-lift) !important; }
body.home .hp-logos .logo-item img{
  max-width: 100% !important; max-height: 72px !important; width: auto !important; height: auto !important; object-fit: contain;
  filter: none !important; opacity: 1 !important;
}
body.home .hp-logos .logo-arr,
body.home .hp-logos .logo-pause{
  flex: none; width: 44px !important; height: 44px !important; border-radius: 50% !important;
  display: grid !important; place-items: center; position: static !important; transform: none !important;
  background: var(--hp-white) !important; border: 1px solid var(--hp-line-strong) !important; color: var(--hp-navy) !important;
  box-shadow: none !important; cursor: pointer; font-size: .75rem;
  transition: background var(--hp-dur), color var(--hp-dur), border-color var(--hp-dur);
}
body.home .hp-logos .logo-pause{ order: 3; }
body.home .hp-logos .logo-arr:hover,
body.home .hp-logos .logo-pause:hover{ background: var(--hp-navy) !important; border-color: var(--hp-navy) !important; color: #fff !important; }
body.home .hp-logos .reveal{ opacity: 1 !important; transform: none !important; }   /* never hidden */

/* ── §3 RESPONSIVE ───────────────────────────────────────────────────── */
@media (max-width:1439px){
  body.home .hp-nfl .nfl-grid{ grid-template-columns: minmax(0, 1fr) 360px; }
}
@media (max-width:1279px){
  body.home .hp-soc-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  :root{ --hp-soc-h: 460px; }
  body.home .hp-qa-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  body.home .hp-qa-card{ display: grid; grid-template-columns: 56px minmax(0,1fr); column-gap: 20px; }
  body.home .hp-qa-ico{ grid-row: 1 / span 3; margin: 0; }
  body.home .hp-qa-desc{ margin-bottom: 14px !important; }
  body.home .hp-qa-btn{ justify-self: start; }
  body.home .hp-ldr-grid{ grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); }
  body.home .hp-deans{ grid-template-columns: 1fr; gap: 10px; }
  body.home .hp-dean{ padding: 12px 16px; }
}
@media (max-width:1023px){
  body.home .hp-about-intro{ grid-template-columns: 1fr; }
  body.home .hp-about-media{ min-height: 0; aspect-ratio: 16 / 8; }
  body.home .hp-ldr-grid{ grid-template-columns: 1fr; }
  body.home .hp-deans{ grid-template-columns: 1fr 1fr; gap: 12px; }
  body.home .hp-nfl .nfl-grid{ grid-template-columns: 1fr; }
  body.home .hp-nfl .nfl-notices-col{ height: 540px; }
  body.home .hp-nfl .nfl-links-col{ height: auto; overflow: visible; }
  body.home .hp-nfl .nfl-llinks{ display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
  body.home .hp-nfl .nfl-litem:nth-last-child(2){ border-bottom: 0 !important; }
  body.home .hp-nfl .nfl-links-hdg{ position: static; }
  body.home .hp-events-grid,
  body.home .hp-vid-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
  body.home .hp-events-grid > :last-child:nth-child(odd),
  body.home .hp-vid-grid > :last-child:nth-child(odd){ grid-column: 1 / -1; }
  body.home .hp-events-grid > :last-child:nth-child(odd) .ev-img-wrap,
  body.home .hp-vid-grid > :last-child:nth-child(odd) .vid-thumb{ aspect-ratio: 21 / 9; }
}
@media (max-width:767px){
  body.home .hp-qa-grid{ grid-template-columns: 1fr; gap: 12px; }
  body.home .hp-qa-card{ padding: 22px; }
  body.home .hp-deans{ grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width:640px){
  body.home .hp-sec-head{ align-items: flex-start; }
  body.home .hp-intro{ border-radius: var(--hp-radius); }
  body.home .hp-about-media{ aspect-ratio: 4 / 3; }
  body.home .hp-about-body{ padding: 28px 22px; }
  body.home .hp-facts{ grid-template-columns: 1fr 1fr; row-gap: 18px; }
  body.home .hp-fact{ padding: 0 16px; }
  body.home .hp-fact:nth-child(3){ padding-left: 0; border-left: 0; }
  body.home .hp-fact-num{ font-size: 1.6rem; }
  body.home .hp-leadership{ padding: 28px 18px; }
  body.home .hp-director{ padding: 22px; grid-template-columns: 52px minmax(0,1fr); column-gap: 16px; }
  body.home .hp-director-mono{ width: 52px; height: 52px; font-size: 1.1rem; }
  body.home .hp-director-name{ font-size: 1.3rem; }
  body.home .hp-dean{ grid-template-columns: 40px minmax(0,1fr) 14px; gap: 14px; }
  body.home .hp-dean-ico{ width: 40px; height: 40px; }
  body.home .hp-nfl .nfl-notices-col{ height: 500px; }
  body.home .hp-nfl .tab-ico{ display: none !important; }
  body.home .hp-nfl .tab-nav{ padding: 0 8px !important; }
  body.home .hp-nfl .tab-btn{ padding: 15px 8px 12px !important; font-size: .875rem !important; }
  body.home .hp-nfl .ni{ padding: 14px 18px !important; }
  body.home .hp-nfl .nfl-links-box{ padding: 0 18px 10px; }
  body.home .hp-nfl .nfl-links-hdg{ margin: 0 -18px 4px !important; padding: 16px 18px 14px !important; }
  body.home .hp-nfl .nfl-llinks{ grid-template-columns: 1fr; }
  body.home .hp-nfl .nfl-litem:nth-last-child(2){ border-bottom: 1px solid var(--hp-line-2) !important; }
  body.home .hp-events-grid,
  body.home .hp-vid-grid{ grid-template-columns: 1fr; gap: 18px; }
  body.home .hp-events-grid > :last-child:nth-child(odd) .ev-img-wrap,
  body.home .hp-vid-grid > :last-child:nth-child(odd) .vid-thumb{ aspect-ratio: 16 / 9; }
  body.home .hp-logos .logo-arr{ display: none !important; }
  body.home .hp-logos .logo-item{ width: 150px !important; height: 92px !important; padding: 12px 16px !important; }
  body.home .hp-logos .logo-item img{ max-height: 60px !important; }
  /* Social: swipeable row of full-height panels */
  :root{ --hp-soc-h: 480px; }
  body.home .hp-soc-grid{
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 86%;
    gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin: 0 calc(var(--hp-gutter) * -1); padding: 2px var(--hp-gutter) 14px;
    scroll-padding-left: var(--hp-gutter); scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.5) transparent;
  }
  body.home .hp-soc-panel{ scroll-snap-align: start; }
  body.home .hp-social-title-ico{ width: 40px; height: 40px; }
}

@media (max-width:600px){
  /* 26 slide dots collide with the pause control on phones; prev / next / pause remain */
  body.home #slider #slider-dots{ display: none; }
}
@media (max-width:480px){
  body.home .hp-director{ grid-template-columns: 1fr; }
  body.home .hp-director > *:not(.hp-director-mono){ grid-column: 1; }
  body.home .hp-director-mono{ grid-row: auto; margin-bottom: 14px; }
  /* Notice tabs wrap onto two rows instead of hiding the last tab */
  body.home .hp-nfl .tab-nav{ flex-wrap: wrap !important; overflow: visible; justify-content: flex-start; }
  body.home .hp-nfl .tab-btn{ flex: 1 1 auto !important; justify-content: center; }
  body.home .hp-dean{ grid-template-columns: 36px minmax(0,1fr); }
  body.home .hp-dean-arrow{ display: none; }
  body.home .hp-dean-ico{ width: 36px; height: 36px; }
}

/* ── §4 REDUCED MOTION ───────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto !important; }
  body.home .reveal{ opacity: 1 !important; transform: none !important; transition: none !important; }
  body.home *, body.home *::before, body.home *::after{
    transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important;
  }
  body.home .ticker-inner{ animation: none !important; }
  body.home .hp-soc-skel i, body.home .hp-soc-skel--video{ animation: none !important; }
}
