/* ============================================================
   GCDTR Website — Global Stylesheet
   Georgia Center for Diabetes Translation Research
   Built Feb 2026 · Inspired by Emory SPH & WashU CDTR
   ============================================================ */

/* ---------- CSS Custom Properties ---------- */
:root {
  /* Brand palette — extracted from GCDTR hand logo */
  --blue-light:   #6BB8E3;  /* light cerulean from logo top */
  --blue:         #3D8EC9;  /* cerulean blue — logo's main blue */
  --blue-dark:    #1F5F8B;  /* deep cerulean */
  --navy:         #12263A;  /* darkest blue for text & footer */
  --gold:         #E2B230;  /* warm gold — logo's yellow circle */
  --gold-light:   #F2CE5B;  /* light gold highlight */
  --magenta:      #8B1A6F;  /* plum — logo's magenta circle */
  --magenta-dark: #5C1049;  /* deep plum */
  --purple:       #6B3FA0;  /* blue-purple blend from logo */

  /* Neutral palette */
  --white:        #FFFFFF;
  --gray-50:      #F9FAFB;
  --gray-100:     #F3F4F6;
  --gray-200:     #E5E7EB;
  --gray-300:     #D1D5DB;
  --gray-400:     #9CA3AF;
  --gray-500:     #6B7280;
  --gray-600:     #4B5563;
  --gray-700:     #374151;
  --gray-800:     #1F2937;
  --gray-900:     #111827;
  --black:        #000000;

  /* Gradients */
  --grad-brand: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%);
  --grad-hero:  linear-gradient(135deg, var(--navy) 0%, var(--blue-dark) 50%, var(--blue) 100%);
  --grad-gold:  linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);
  --grad-accent:linear-gradient(135deg, var(--blue) 0%, var(--purple) 100%);
  --grad-warm:  linear-gradient(135deg, var(--gold) 0%, var(--magenta) 100%);

  /* Typography */
  --font-heading: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-body:    'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-accent:  'Georgia', 'Times New Roman', serif;

  /* Spacing scale */
  --space-xs:  0.25rem;
  --space-sm:  0.5rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;

  /* Layout */
  --max-width:    1280px;
  --max-narrow:   900px;
  --header-h:     130px;
  --radius:       2px;
  --radius-lg:    3px;
  --shadow-sm:    0 1px 2px rgba(0,0,0,.05);
  --shadow-md:    0 2px 8px rgba(0,0,0,.08);
  --shadow-lg:    0 4px 16px rgba(0,0,0,.1);
  --shadow-xl:    0 8px 30px rgba(0,0,0,.12);
  --transition:   0.3s cubic-bezier(.4,0,.2,1);
}

/* ---------- About redesign (2026–2031 cycle) ---------- */
.about-redesign { color: #4b5563; background: #fff; }
.about-redesign h1, .about-redesign h2, .about-redesign h3 { font-family: 'Lora', Georgia, serif; font-weight: 400; color: #12263a; }
.about-redesign p { margin-bottom: 0; }
.about-hero { height: 600px; min-height: 600px; margin-top: var(--header-h); display: grid; grid-template-columns: minmax(0, 41%) minmax(0, 59%); background: #102a44; }
.about-hero__copy { padding: 58px 0 0 clamp(2rem, 5vw, 4.75rem); color: #dce6ef; display: flex; flex-direction: column; align-items: flex-start; }
.about-kicker { font-family: Inter, sans-serif; font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; line-height: 1.5; }
.about-hero h1 { color: #fff; font-size: 56px; line-height: 66px; margin: 0 0 2rem; }
.about-hero__intro { max-width: 500px; font-size: 1.125rem; line-height: 1.72; }
.about-hero__actions { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 3.3rem; }
.about-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .8rem 1.25rem; border-radius: 6px; font-size: .875rem; font-weight: 700; color: #fff; }
.about-button--primary { background: #8b1a6f; min-width: 192px; }.about-button--primary:hover { background:#5c1049; color:#fff; }.about-button--secondary { min-width: 180px; border: 1px solid #6d8aa4; background: #163c5f; }.about-button--secondary:hover { color:#fff; background:#214d76; }
.about-hero__image { position: relative; min-height: 600px; overflow: hidden; }.about-hero__image > img { width:100%; height:100%; object-fit:cover; object-position:32% center; }.about-vision-callout { position:absolute; right:clamp(1.5rem, 8vw, 8rem); bottom:3.5rem; width:min(400px, calc(100% - 3rem)); padding:1.3rem 1.85rem 1.55rem; background:#fff; border-left:7px solid #e2b230; border-radius:10px; box-shadow:0 14px 26px rgba(0,0,0,.2); }.about-vision-callout span { color:#8b1a6f; font-size:.6875rem; text-transform:uppercase; font-weight:800; }.about-vision-callout h2 { margin: .65rem 0 .9rem; font-size:1.45rem; }.about-vision-callout p { font-size:.75rem; line-height:1.45; color:#5b6878; }
.about-section { padding: 4.1rem 0; }.about-section h2, .about-impact h2, .about-explore h2 { margin:.9rem 0 .7rem; font-size:clamp(2rem,3.35vw,2.75rem); line-height:1.25; }.about-kicker { color:#2a6397; }.about-lead { max-width:1080px; font-size:1.06rem; line-height:1.65; }.about-pair { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; margin-top:3.2rem; }.about-panel { min-height:327px; padding:2.1rem 2.35rem; border:1px solid #dce3ea; border-left:9px solid #3d8ec9; border-radius:14px; }.about-panel h3 { font-size:1.9rem; line-height:1.35; margin:1.15rem 0 1.3rem; }.about-panel p { line-height:1.7; }.about-panel--vision { color:#dce6ef; background:#102a44; border-left-color:#e2b230; }.about-panel--vision h3 { color:#fff; }.about-panel--vision .about-kicker { color:#e2b230; }.about-panel--mission { background:#f6f8fb; }.about-panel--mission strong { display:block; color:#1f7b5e; font-size:.7rem; text-transform:uppercase; letter-spacing:.09em; margin-top:1.3rem; }
.about-priorities { background:#f6f8fb; padding-bottom:5.3rem; }.about-card-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2.1rem 3.5rem; margin-top:3rem; }.about-priority { position:relative; min-height:316px; padding:2rem 2rem 2rem; background:#fff; border:1px solid #dce3ea; border-top:7px solid #3d8ec9; border-radius:0 0 14px 14px; }.about-priority > b { display:inline-flex; align-items:center; justify-content:center; width:62px; height:62px; margin-right:1.15rem; background:#3d8ec9; color:#fff; border-radius:50%; font-size:1.1rem; vertical-align:middle; }.about-priority .about-kicker { display:inline-block; vertical-align:middle; }.about-priority h3 { margin:1.35rem 0 1.7rem; font-size:1.68rem; line-height:1.3; }.about-priority p:last-child { font-size:.94rem; line-height:1.72; }.about-priority--green { border-top-color:#1f7b5e; }.about-priority--green>b { background:#1f7b5e; }.about-priority--green .about-kicker { color:#1f7b5e; }.about-priority--navy { border-top-color:#2e6ca6; }.about-priority--navy>b { background:#2e6ca6; }.about-priority--gold { border-top-color:#e2b230; }.about-priority--gold>b { background:#e2b230; }.about-priority--gold .about-kicker { color:#d39e0f; }
.about-impact { padding:4rem 0 4.6rem; background:#102a44; color:#dce6ef; }.about-impact h2 { color:#fff; }.about-impact .about-kicker { color:#e2b230; }.about-impact .about-lead { margin-bottom:2.35rem; }.about-impact__steps { display:grid; grid-template-columns:repeat(4,1fr); gap:2.1rem; }.about-impact__steps article { min-height:345px; position:relative; padding:1.35rem 1.25rem; background:#1c466b; border:1px solid #4b7698; border-radius:12px; }.about-impact__steps b { display:inline-flex; width:54px; height:54px; justify-content:center; align-items:center; color:#fff; background:#e2b230; border-radius:50%; }.about-impact__steps article:nth-child(2) b { background:#3d8ec9; }.about-impact__steps article:nth-child(3) b { background:#1f7b5e; }.about-impact__steps p { color:#f2ce5b; font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; margin:1.6rem 0 .85rem; }.about-impact__steps h3 { color:#fff; font-size:1.52rem; line-height:1.25; margin-bottom:1.2rem; }.about-impact__steps span { font-size:.87rem; line-height:1.65; }
.about-success { padding-bottom:4.5rem; }.about-success__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-top:2.3rem; }.about-success__grid article { min-height:230px; padding:1.4rem 1.25rem; background:#f6f8fb; border:1px solid #dce3ea; border-top:7px solid #2e6ca6; }.about-success__grid article:nth-child(2) { border-top-color:#1f7b5e; }.about-success__grid article:nth-child(3) { border-top-color:#e2b230; }.about-success__grid article:nth-child(4) { border-top-color:#3d8ec9; }.about-success__grid b { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:#2e6ca6; margin-bottom:1.35rem; }.about-success__grid b::after { content:''; width:10px; height:10px; background:#fff; border-radius:50%; }.about-success__grid article:nth-child(2) b { background:#1f7b5e; }.about-success__grid article:nth-child(3) b { background:#e2b230; }.about-success__grid article:nth-child(4) b { background:#3d8ec9; }.about-success__grid h3 { font-size:1.38rem; line-height:1.3; margin-bottom:.85rem; }.about-success__grid p { font-size:.83rem; line-height:1.6; }
.about-explore { padding:3.5rem 0; background:#f6f8fb; }.about-explore>.container { display:flex; align-items:center; gap:3rem; padding:2.1rem 2.4rem; color:#dce6ef; background:#102a44; border-left:9px solid #e2b230; border-radius:14px; }.about-explore h2 { color:#fff; font-size:2rem; }.about-explore .about-kicker { color:#e2b230; }.about-explore p:not(.about-kicker) { line-height:1.7; max-width:600px; }.about-explore nav { display:flex; gap:1.35rem; margin-left:auto; }.about-explore nav a { display:flex; align-items:center; justify-content:center; min-width:145px; min-height:50px; padding:.7rem 1rem; background:#fff; border-radius:6px; font-size:.78rem; font-weight:700; color:#12263a; text-align:center; }.about-explore nav a:last-child { min-width:180px; }
@media (max-width: 1000px) { .about-hero { height:auto; grid-template-columns:1fr; }.about-hero__copy { min-height:480px; padding-right:clamp(2rem, 5vw, 4.75rem); }.about-hero h1 { font-size:clamp(2.65rem, 6vw, 3.5rem); line-height:1.15; }.about-hero__image { min-height:440px; }.about-impact__steps, .about-success__grid { grid-template-columns:repeat(2,1fr); }.about-explore>.container { display:block; }.about-explore nav { margin:2rem 0 0; } }
@media (max-width: 700px) { .about-hero__copy { padding:58px 1.25rem 3.5rem; }.about-hero__intro { font-size:1rem; }.about-hero__actions { margin-top:3.3rem; gap:.75rem; }.about-hero__image { min-height:370px; }.about-vision-callout { right:1rem; bottom:1rem; }.about-section, .about-impact { padding:3rem 0; }.about-pair, .about-card-grid, .about-impact__steps, .about-success__grid { grid-template-columns:1fr; gap:1.25rem; }.about-panel, .about-priority { min-height:0; padding:1.6rem; }.about-panel h3, .about-priority h3 { font-size:1.55rem; }.about-impact__steps article { min-height:0; }.about-explore { padding:2rem 0; }.about-explore>.container { padding:1.7rem; }.about-explore nav { flex-direction:column; gap:.75rem; }.about-explore nav a, .about-explore nav a:last-child { min-width:0; } }

/* ---------- Enrichment redesign (Figma, node 71:2) ---------- */
.enrichment-redesign { color:#526176; background:#fff; }
.enrichment-redesign .container { width:90%; max-width:1392px; }
.enrichment-redesign h1, .enrichment-redesign h2 { font-family:'Lora', Georgia, serif; font-weight:400; color:#12263a; }
.enrichment-redesign h3 { font-family:Inter, sans-serif; font-weight:700; color:#12263a; }
.enrichment-redesign p { margin-bottom:0; }
.enrichment-hero { height:600px; margin-top:var(--header-h); display:grid; grid-template-columns:46.55% 53.45%; background:#102a44; }
.enrichment-hero__copy { padding:58px 4rem 54px 5vw; color:#dce6ef; }
.enrichment-kicker { font-family:Inter, sans-serif; font-size:.75rem; font-weight:800; letter-spacing:.14em; line-height:1.5; text-transform:uppercase; }
.enrichment-kicker { color:#348fd0; }
.enrichment-hero h1 { margin:0 0 2.7rem; color:#fff; font-size:56px; line-height:1.15; letter-spacing:-.02em; }
.enrichment-hero__copy>p { max-width:548px; font-size:18px; line-height:30px; }
.enrichment-hero__actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.1rem; }
.enrichment-btn { min-height:51px; display:inline-flex; align-items:center; justify-content:center; padding:.78rem 1.2rem; border-radius:5px; font-size:.88rem; font-weight:700; text-decoration:none; }
.enrichment-btn--primary { background:#95167a; color:#fff; }
.enrichment-btn--primary:hover { background:#6d105a; color:#fff; }
.enrichment-btn--secondary { border:1px solid #87a7c2; background:#1b496e; color:#fff; }
.enrichment-btn--secondary:hover { background:#24577f; color:#fff; }
.enrichment-btn--outline-magenta { border:1px solid #95167a; background:#fff; color:#95167a; }
.enrichment-btn--outline-magenta:hover { background:#fdf4f9; color:#95167a; }
.enrichment-hero__media { overflow:hidden; }
.enrichment-hero__media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.enrichment-section { padding:60px 0 70px; }
.enrichment-section h2 { margin:.9rem 0 1.2rem; font-size:39px; line-height:1.23; letter-spacing:-.02em; }
.enrichment-lead { font-size:16px; line-height:1.76; }
.enrichment-section--overview { padding-top:59px; padding-bottom:60px; background:#fff; }
.enrichment-overview-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(430px,.98fr); gap:72px; align-items:center; }
.enrichment-overview-copy h2 { max-width:630px; margin-top:1.2rem; }
.enrichment-overview-copy .enrichment-lead { max-width:650px; }
.enrichment-center-role { background:#f8fafc; border:1px solid #dce5ef; border-radius:9px; box-shadow:0 10px 20px rgba(18,38,58,.055); padding:30px; }
.enrichment-center-role__kicker { color:#95167a; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.enrichment-center-role h3 { margin:.8rem 0 1.15rem; font-size:1.4rem; line-height:1.3; }
.enrichment-center-role p { font-size:.9rem; line-height:1.55; }
.enrichment-center-role ul { margin-top:1.35rem; display:grid; gap:.82rem; }
.enrichment-center-role li { position:relative; padding-left:1.75rem; font-weight:700; font-size:.84rem; line-height:1.45; }
.enrichment-center-role li::before { content:""; position:absolute; left:0; top:.17rem; width:4px; height:27px; border-radius:2px; background:#3d9bd8; }
.enrichment-center-role li:nth-child(even)::before { background:#95167a; }

.enrichment-section--aims, .enrichment-section--workflow, .enrichment-section--participate { background:#f6f8fb; }
.enrichment-section--aims { padding-top:55px; padding-bottom:72px; }
.enrichment-aim-grid { margin-top:2rem; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.enrichment-aim-grid article { min-height:250px; background:#fff; border:1px solid #dde6ef; border-radius:9px; box-shadow:0 9px 18px rgba(18,38,58,.055); padding:27px 23px; }
.enrichment-aim-label { color:#348fd0; font-size:.72rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.enrichment-aim-label--magenta { color:#95167a; }
.enrichment-aim-grid h3 { margin:1rem 0 1.65rem; font-size:1.08rem; line-height:1.35; }
.enrichment-aim-grid p { font-size:.84rem; line-height:1.6; }

.enrichment-section--leadership { padding-top:57px; padding-bottom:70px; background:#fff; }
.enrichment-section--leadership h2 { max-width:770px; }
.enrichment-section--leadership .enrichment-lead { max-width:1080px; }
.enrichment-leaders { margin-top:2rem; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.enrichment-leader { display:grid; grid-template-columns:170px 1fr; gap:28px; min-height:210px; padding:23px; border:1px solid #dce5ef; border-radius:9px; background:#fff; text-decoration:none; color:inherit; box-shadow:0 9px 18px rgba(18,38,58,.055); }
.enrichment-leader img { width:170px; height:197px; border-radius:7px; object-fit:cover; object-position:center top; }
.enrichment-leader span { color:#348fd0; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.enrichment-leader:nth-child(2) span { color:#95167a; }
.enrichment-leader h3 { margin:.75rem 0 .85rem; padding-bottom:.85rem; border-bottom:1px solid #dce5ef; font-size:1.4rem; line-height:1.25; }
.enrichment-leader p { line-height:1.6; font-size:.84rem; }
.enrichment-leader strong { display:inline-block; margin-top:.78rem; color:#348fd0; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.enrichment-leader strong::after, .enrichment-resource-panel__links a::after { content:"  →"; }
.enrichment-leader:nth-child(2) strong { color:#95167a; }

.enrichment-section--workflow { padding-top:58px; padding-bottom:72px; }
.enrichment-section--workflow .enrichment-lead { max-width:1250px; }
.enrichment-pathways { margin-top:2rem; display:grid; grid-template-columns:repeat(3,1fr); gap:23px; }
.enrichment-pathway { min-height:445px; padding:27px; border:1px solid #dce5ef; border-top:4px solid #348fd0; border-radius:8px; background:#fff; box-shadow:0 9px 18px rgba(18,38,58,.055); }
.enrichment-pathway h3 { margin:.2rem 0 1rem; font-size:1.26rem; line-height:1.3; }
.enrichment-pathway p { font-size:.86rem; line-height:1.6; }
.enrichment-pathway-label { margin-top:1.25rem; color:#348fd0; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.enrichment-pathway ul { margin-top:1.2rem; display:grid; gap:1.35rem; }
.enrichment-pathway li { position:relative; padding-left:1.35rem; font-size:.81rem; line-height:1.45; }
.enrichment-pathway li::before { content:""; position:absolute; left:0; top:.45rem; width:6px; height:6px; border-radius:50%; background:#348fd0; }
.enrichment-pathway--magenta { border-top-color:#95167a; }
.enrichment-pathway--magenta .enrichment-pathway-label { color:#95167a; }
.enrichment-pathway--magenta li::before { background:#95167a; }
.enrichment-pathway--gold { border-top-color:#e6af1b; }
.enrichment-pathway--gold .enrichment-pathway-label { color:#d79d0e; }
.enrichment-pathway--gold li::before { background:#e6af1b; }

.enrichment-section--strategy { padding-top:58px; padding-bottom:65px; background:#fff; }
.enrichment-section--strategy h2 { margin-bottom:.8rem; }
.enrichment-strategy-grid { margin-top:2rem; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.enrichment-strategy-grid article { min-height:130px; padding:25px 20px; border:1px solid #dce5ef; background:#f8fafc; border-radius:9px; box-shadow:0 9px 18px rgba(18,38,58,.05); }
.enrichment-strategy-grid h3 { margin-bottom:.7rem; font-size:1rem; line-height:1.3; }
.enrichment-strategy-grid h3::after { content:""; display:block; width:45px; height:3px; margin-top:1.6rem; background:#348fd0; }
.enrichment-strategy-grid p { font-size:.76rem; line-height:1.45; }

.enrichment-section--participate { padding:42px 0 46px; }
.enrichment-section--participate h2 { margin:12px 0 12px; font-size:35px; line-height:44px; }
.enrichment-section--participate .enrichment-lead { max-width:1000px; font-size:14.8px; line-height:24px; }
.enrichment-participate-grid { margin-top:2.15rem; display:grid; grid-template-columns:minmax(0,850fr) minmax(0,520fr); gap:22px; align-items:stretch; }
.enrichment-upcoming-section { position:relative; height:214px; min-height:214px; padding:0; border:1px solid #dce5ef; border-radius:9px; background:#fff; box-shadow:0 7px 16px rgba(18,38,58,.05); }
.enrichment-upcoming-kicker { position:absolute; top:25px; left:27px; margin:0; color:#95167a; font-size:10.8px; font-weight:800; letter-spacing:1.2px; line-height:16px; text-transform:uppercase; }
.enrichment-upcoming-section h3 { position:absolute; top:53px; left:27px; margin:0; font-size:22px; line-height:29px; }
.enrichment-upcoming-section > p:not(.enrichment-upcoming-kicker) { position:absolute; top:94px; left:27px; width:min(650px, calc(100% - 54px)); margin:0; color:#4b5563; font-size:13.5px; line-height:22px; }
.enrichment-resource-panel { height:214px; min-height:214px; padding:25px 27px; border:1px solid #e2e8f0; border-radius:9px; background:#12263a; box-shadow:0 7px 16px rgba(18,38,58,.05); }
.enrichment-resource-panel__kicker { color:#f2ce5b; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.enrichment-resource-panel h3 { margin:.65rem 0 .7rem; color:#fff; font-size:21px; line-height:28px; }
.enrichment-resource-panel p { color:#d6e1eb; font-size:13.2px; line-height:21px; }
.enrichment-resource-panel__links { margin-top:1rem; display:flex; gap:2.6rem; flex-wrap:wrap; }
.enrichment-resource-panel__links a { color:#f2ce5b; font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.enrichment-resource-panel__links a:last-child { color:#fff; }
.enrichment-actions-row { position:absolute; top:149px; left:27px; margin:0; display:flex; flex-wrap:wrap; gap:12px; }
.enrichment-actions-row .enrichment-btn { min-height:38px; height:38px; padding:0 16px; font-size:12.3px; }
@media (max-width:1100px) {
  .enrichment-hero { height:auto; grid-template-columns:1fr; }
  .enrichment-hero__copy { min-height:480px; }
  .enrichment-hero__media { min-height:430px; }
  .enrichment-overview-grid { grid-template-columns:1fr; gap:2rem; }
  .enrichment-aim-grid, .enrichment-strategy-grid { grid-template-columns:repeat(2,1fr); }
  .enrichment-leaders, .enrichment-pathways { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .enrichment-hero__copy { padding:50px 1.25rem 3rem; min-height:0; }
  .enrichment-hero h1 { margin:0 0 2rem; font-size:44px; }
  .enrichment-hero__copy>p { font-size:16px; line-height:26px; }
  .enrichment-hero__media { min-height:315px; }
  .enrichment-section { padding:45px 0; }
  .enrichment-section h2 { font-size:30px; line-height:1.25; }
  .enrichment-aim-grid, .enrichment-leaders, .enrichment-pathways, .enrichment-strategy-grid, .enrichment-participate-grid { grid-template-columns:1fr; }
  .enrichment-aim-grid article { min-height:0; }
  .enrichment-leader { grid-template-columns:96px 1fr; gap:16px; padding:16px; }
  .enrichment-leader img { width:96px; height:120px; }
  .enrichment-leader h3 { font-size:1.1rem; }
  .enrichment-pathway { min-height:0; }
}

/* ---------- Reset & Base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-body);
  color: var(--gray-800);
  background: var(--white);
  line-height: 1.7;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a   { color: var(--blue); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--blue-dark); }
ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--navy);
}

h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 4vw, 2.75rem); }
h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); }
h4 { font-size: 1.25rem; }
p  { margin-bottom: 1rem; }

/* ---------- Utility ---------- */
.container       { width: 90%; max-width: var(--max-width); margin: 0 auto; }
.container-narrow{ width: 90%; max-width: var(--max-narrow); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.text-center { text-align: center; }
.text-white  { color: var(--white); }
.italic { font-family: var(--font-accent); font-style: italic; }

/* Section spacing */
.section {
  padding: var(--space-4xl) 0;
}
.section-sm {
  padding: var(--space-3xl) 0;
}

/* Tighten the first content block after a hero so pages don't feel hollow */
.page-header + .section {
  padding-top: var(--space-3xl);
}
.page-header + .section-sm {
  padding-top: var(--space-2xl);
}

/* Section headers */
.section-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: var(--space-sm);
}
.section-title {
  margin-bottom: var(--space-md);
}
.section-subtitle {
  font-size: 1.125rem;
  color: var(--gray-600);
  max-width: 680px;
  line-height: 1.8;
}
.section-subtitle.centered {
  margin-left: auto;
  margin-right: auto;
}

/* Divider accent */
.accent-bar {
  width: 60px;
  height: 4px;
  background: var(--grad-warm);
  border-radius: 0;
  margin-bottom: var(--space-lg);
}
.accent-bar.centered { margin-left: auto; margin-right: auto; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.8rem;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 2px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition);
  text-decoration: none;
  line-height: 1;
}
.btn svg { width: 16px; height: 16px; }
.btn-primary {
  background: var(--blue);
  color: var(--white);
  border-color: var(--blue);
}
.btn-primary:hover {
  background: var(--blue-dark);
  border-color: var(--blue-dark);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.btn-secondary {
  background: transparent;
  color: var(--white);
  border-color: var(--white);
}
.btn-secondary:hover {
  background: var(--white);
  color: var(--blue-dark);
  transform: translateY(-2px);
}
.btn-outline {
  background: transparent;
  color: var(--blue);
  border-color: var(--blue);
}
.btn-outline:hover {
  background: var(--blue);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.btn-gold {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
}
.btn-gold:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.btn-dark {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}
.btn-dark:hover {
  background: var(--gray-900);
  border-color: var(--gray-900);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.btn-sm {
  padding: 0.55rem 1.2rem;
  font-size: 0.8rem;
}
.btn-lg {
  padding: 1rem 2.4rem;
  font-size: 1rem;
}

/* ---------- HEADER / NAV (Winship-inspired two-row) ---------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--header-h);
  background: var(--white);
  box-shadow: 0 1px 0 rgba(0,0,0,0.06);
  transition: all var(--transition);
  overflow: visible;
}
.site-header.scrolled {
  box-shadow: var(--shadow-md);
  height: 80px;
}

.header-inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  height: 100%;
  gap: 0;
  max-width: 1600px;
  width: 95%;
}

/* Logo panel — white card with original logo colors */
.logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  flex-shrink: 0;
  align-self: stretch;
  background: var(--white);
  border-right: 1px solid var(--gray-200);
  padding: 0.75rem 2rem 0.75rem 0;
  margin-left: 0;
  position: relative;
  z-index: 1;
}
.logo img {
  height: 95px;
  width: auto;
  transition: height var(--transition);
}
.site-header.scrolled .logo {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}
.site-header.scrolled .logo img {
  height: 54px;
}

/* Right side: unified executive nav row */
.header-right {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  gap: var(--space-md);
  padding-right: 0.5rem;
  height: 100%;
}

/* Search utility integrated into the nav row */
.header-cta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0;
  border-bottom: 0;
  order: 2;
  margin-left: auto;
  height: 100%;
  padding-right: 0.25rem;
}
.header-search-btn {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
  border: 1px solid rgba(18, 38, 58, 0.18);
  cursor: pointer;
  display: grid;
  place-items: center;
  color: var(--navy);
  box-shadow: 0 6px 14px rgba(15, 27, 61, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.85);
  margin-right: 0.25rem;
  transition: all var(--transition);
  backdrop-filter: blur(6px);
}
.header-search-btn svg {
  width: 19px;
  height: 19px;
  stroke-width: 2.2;
}
.header-search-btn:hover {
  background: linear-gradient(180deg, #1f5f8b 0%, #12263a 100%);
  border-color: #16344d;
  color: var(--white);
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 10px 18px rgba(18, 38, 58, 0.28);
}
.header-search-btn:focus-visible {
  outline: 2px solid rgba(61, 142, 201, 0.7);
  outline-offset: 2px;
}

/* Main nav — executive row */
.main-nav {
  display: flex;
  align-items: center;
  flex: 1;
  order: 1;
  min-height: 56px;
}
.nav-list {
  display: flex;
  align-items: center;
  gap: 0.28rem;
  width: 100%;
  justify-content: flex-start;
  padding: 0.28rem 0;
  min-height: 56px;
}
.nav-item {
  position: relative;
  display: flex;
  align-items: stretch;
  border-radius: 999px;
  overflow: visible;
  transition: transform var(--transition);
  min-height: 56px;
}
.nav-item:hover,
.nav-item:focus-within {
  transform: translateY(-1px);
}
.nav-link {
  display: flex;
  align-items: center;
  padding: 0 clamp(0.7rem, 1.2vw, 1.45rem);
  min-height: 54px;
  font-size: clamp(0.78rem, 0.85vw, 0.9rem);
  font-weight: 600;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: color var(--transition);
  white-space: nowrap;
  position: relative;
  height: 100%;
  line-height: 1.05;
  border-radius: 999px;
  cursor: pointer;
}
.nav-link:hover,
.nav-item.active > .nav-link {
  color: var(--gold);
}
/* Executive underline accent */
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 1.15rem;
  right: 1.15rem;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-light), var(--gold));
  transform: scaleX(0);
  transition: transform var(--transition);
  border-radius: 999px;
}
.nav-item.active > .nav-link::after {
  transform: scaleX(1);
}
.nav-link:hover::after {
  transform: scaleX(1);
  background: var(--gold);
}
.nav-toggle {
  display: none;
}
.nav-item > .nav-link::before {
  content: '';
  position: absolute;
  inset: 0.42rem 0.32rem;
  border-radius: 999px;
  background: transparent;
  border: 0;
  opacity: 0;
  z-index: -1;
  display: none;
}

/* Dropdown panel */
.dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  min-width: 260px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  box-shadow:
    0 24px 45px -18px rgba(18, 38, 58, 0.22),
    0 8px 18px -8px rgba(18, 38, 58, 0.12);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.22s cubic-bezier(.4,0,.2,1),
    transform 0.22s cubic-bezier(.4,0,.2,1),
    visibility 0.22s;
  padding: 0.6rem 0;
  z-index: 9999;
  pointer-events: none;
}
/* Remove dropdown arrow notch for executive minimalism */
.dropdown::before {
  display: none;
}
/* Invisible bridge so cursor can travel from nav-link to dropdown */
.dropdown::after {
  content: '';
  position: absolute;
  top: -18px;
  left: 0;
  right: 0;
  height: 18px;
}

/* Show on hover or keyboard focus */
.nav-item:hover > .dropdown,
.nav-item:focus-within > .dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
.nav-item.dropdown-open > .dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

/* Dropdown category label (first link = section overview) */
.dropdown a:first-child {
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--navy);
  padding: 0.72rem 1.4rem;
  min-height: 46px;
  border-bottom: 1px solid var(--gray-100);
  margin-bottom: 0.25rem;
  position: relative;
}
.dropdown a:first-child::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5rem;
  bottom: 0.5rem;
  width: 3px;
  background: var(--gold);
  border-radius: 0 3px 3px 0;
}

/* Dropdown links */
.dropdown a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.72rem 1.4rem;
  font-size: 0.84rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: var(--gray-600);
  transition: all 0.18s ease;
  position: relative;
  min-height: 45px;
}
.dropdown a:not(:first-child)::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gray-300);
  flex-shrink: 0;
  transition: all 0.18s ease;
}
.dropdown a:hover {
  color: var(--gold);
  background: linear-gradient(90deg, rgba(226,178,48,0.10) 0%, transparent 100%);
}
.dropdown a:not(:first-child):hover::before {
  background: var(--gold);
  transform: scale(1.5);
}
.dropdown a:first-child:hover {
  color: var(--gold);
  background: linear-gradient(90deg, rgba(226,178,48,0.08) 0%, transparent 100%);
}

/* Separator between groups — add via utility class */
.dropdown .dropdown-sep {
  height: 1px;
  background: var(--gray-100);
  margin: 0.35rem 1.2rem;
}

/* Mega dropdown — for nav items with many links (Resources) */
.dropdown.dropdown-mega {
  min-width: 700px;
  padding: 0.75rem 0;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
}
.dropdown.dropdown-mega a:first-child {
  grid-column: 1 / -1;
}
.nav-item:hover > .dropdown.dropdown-mega {
  transform: translateX(-50%) translateY(0);
}
.dropdown-mega .dropdown-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.dropdown-mega .dropdown-col-head {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gray-400);
  padding: 0.7rem 1.4rem 0.25rem;
  pointer-events: none;
}
.dropdown-mega .dropdown-columns a {
  padding: 0.45rem 1.4rem;
}

/* Mobile toggle */
.mobile-toggle {
  display: none;
  width: 44px;
  height: 44px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  align-self: center;
}
.mobile-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--navy);
  border-radius: 2px;
  transition: all var(--transition);
}
.mobile-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-toggle.active span:nth-child(2) { opacity: 0; }
.mobile-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- HERO MODERN (Rollins-inspired) ---------- */
.hero-modern {
  position: relative;
  margin-top: var(--header-h);
  min-height: 85vh;
  overflow: visible;
}
.hero-modern::before {
  display: none;
}
.hero-modern::after {
  display: none;
}

/* Full visible background image — no dark cover */
.hero-modern-img {
  position: relative;
  width: 100%;
  height: 85vh;
  overflow: hidden;
}
.hero-modern-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

/* Navy overlay card — left side, vertically centered */
.hero-overlay-card {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 4%;
  transform: translateY(-50%);
  background: rgba(15, 27, 61, 0.55);
  color: var(--white);
  padding: 2.8rem 2.5rem 3.5rem;
  max-width: 480px;
  width: 38%;
  min-width: 340px;
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border: 1px solid rgba(255,255,255,0.06);
  border-left: 4px solid var(--gold);
  overflow: visible;
}
.hero-overlay-label {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gold);
  margin-bottom: 1rem;
}
.hero-overlay-card h2 {
  color: var(--white);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 0.85rem;
}
.hero-overlay-card p {
  font-size: 0.88rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.78);
  margin-bottom: 0;
}
.hero-overlay-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--gold);
  color: var(--navy);
  border-radius: 0;
  transition: all var(--transition);
  position: absolute;
  bottom: 0;
  right: 0;
}
.hero-overlay-arrow:hover {
  background: var(--gold-light);
  color: var(--navy);
}

/* White promo card — right side, floating over the image */
.hero-promo-card {
  position: absolute;
  z-index: 2;
  top: 58%;
  right: 4%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.52);
  border-top: 4px solid var(--gold);
  padding: 2.8rem 2.5rem 2.8rem;
  max-width: 440px;
  width: 35%;
  min-width: 320px;
  backdrop-filter: blur(12px) saturate(1.3);
  -webkit-backdrop-filter: blur(12px) saturate(1.3);
  box-shadow: 0 20px 60px rgba(0,0,0,0.10), 0 0 0 1px rgba(255,255,255,0.35) inset;
  overflow: visible;
}
.hero-promo-card h2 {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--navy);
  margin-bottom: 1rem;
}
.hero-promo-card h2 em {
  font-family: var(--font-accent);
  font-style: italic;
  color: var(--navy);
  font-weight: 400;
}
.hero-promo-card p {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--gray-700);
  margin-bottom: 1.75rem;
}


/* ── Hero funding callout badge ─────────────────────────────────────────── */
.hero-funding-badge {
  position: absolute;
  top: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255,255,255,0.52);
  backdrop-filter: blur(12px) saturate(1.3);
  -webkit-backdrop-filter: blur(12px) saturate(1.3);
  border: 1.5px solid rgba(255,255,255,0.45);
  border-radius: 9999px;
  padding: 0.55rem 1.25rem 0.55rem 0.8rem;
  font-size: 0.87rem;
  font-weight: 500;
  color: var(--navy);
  text-decoration: none;
  box-shadow: 0 4px 24px rgba(0,0,0,0.18), 0 1px 4px rgba(0,0,0,0.08);
  white-space: nowrap;
  transition: box-shadow 0.2s, transform 0.2s;
  z-index: 10;
}
.hero-funding-badge:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.26);
  transform: translateX(-50%) translateY(-2px);
  color: var(--navy);
  text-decoration: none;
}
.hero-funding-badge__dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e85d04;
  flex-shrink: 0;
  animation: hero-badge-pulse 1.6s ease-in-out infinite;
}
@keyframes hero-badge-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(232,93,4,0.7); }
  60% { box-shadow: 0 0 0 7px rgba(232,93,4,0); }
}
.hero-funding-badge__text strong {
  color: #e85d04;
}
.hero-funding-badge svg {
  flex-shrink: 0;
  color: var(--blue);
}
@media (max-width: 640px) {
  .hero-funding-badge {
    font-size: 0.77rem;
    padding: 0.45rem 0.9rem 0.45rem 0.65rem;
    top: 1rem;
    white-space: normal;
    text-align: center;
    max-width: 88vw;
  }
}
/* ─────────────────────────────────────────────────────────────────────────── */

/* Hero bottom stats strip */
/* ---------- STATS CARDS (Rollins-inspired tall cards) ---------- */
.stats-section {
  position: relative;
  z-index: 3;
  padding: var(--space-xl) 0 var(--space-3xl);
  background: var(--white);
}
.stats-title {
  text-align: center;
  margin: var(--space-xl) auto var(--space-xl);
  max-width: 920px;
  position: relative;
  padding-top: 0.25rem;
}
.stats-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--blue);
  font-size: 0.73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 0.7rem;
}
.stats-kicker::before,
.stats-kicker::after {
  content: '';
  width: 34px;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), var(--blue));
}
.stats-title-heading {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.9rem, 3.9vw, 2.5rem);
  font-weight: 400;
  color: var(--navy);
  line-height: 1.14;
  margin: 0 0 0.55rem;
}
.stats-title-copy {
  max-width: 760px;
  margin: 0 auto;
  color: var(--gray-600);
  font-size: 1rem;
  line-height: 1.7;
}
.stats-accent-ribbon {
  margin: 1.1rem auto 0;
  width: min(340px, 78vw);
  height: 4px;
  border-radius: 999px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(226, 178, 48, 0.18), rgba(37,99,235,0.2), rgba(226, 178, 48, 0.18));
}
.stats-accent-ribbon::after {
  content: '';
  position: absolute;
  inset: 0;
  width: 38%;
  background: transparent;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-xl);
}
.stat-card {
  position: relative;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  padding: 0;
  overflow: hidden;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.08);
}
.stat-card::before {
  content: none;
}
/* Gold accent line at top */
.stat-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-light) 100%);
}
.stat-card-inner {
  padding: 1rem 2rem 2.5rem;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.stat-number {
  font-size: clamp(3rem, 5vw, 4.5rem);
  font-weight: 800;
  color: var(--blue);
  line-height: 1;
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
}
.stat-label {
  font-size: 0.92rem;
  color: var(--gray-600);
  font-weight: 400;
  line-height: 1.6;
  max-width: 260px;
}
.stat-label em {
  font-style: italic;
  color: var(--gray-400);
  font-size: 0.85rem;
}
.stats-source {
  text-align: center;
  font-size: 0.75rem;
  color: var(--gray-400);
  margin-top: var(--space-2xl);
  letter-spacing: 0.02em;
}

/* ---------- CARDS ---------- */
.card {
  background: var(--white);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all var(--transition);
  border: 1px solid var(--gray-100);
}
.card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
.card-img {
  height: 220px;
  overflow: hidden;
}
.card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition);
}
.card:hover .card-img img {
  transform: scale(1.05);
}
.card-body {
  padding: var(--space-xl);
}
.card-body h3 {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}
.card-body p {
  color: var(--gray-600);
  font-size: 0.95rem;
}
.card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--blue);
  margin-top: 0.75rem;
}
.card-link:hover { gap: 0.7rem; }
.card-link svg { width: 16px; height: 16px; transition: transform var(--transition); }
.card-link:hover svg { transform: translateX(3px); }

/* Icon card variant */
.icon-card {
  padding: var(--space-2xl);
  text-align: center;
}
.icon-card .icon-wrap {
  width: 72px;
  height: 72px;
  border-radius: 4px;
  display: grid;
  place-items: center;
  margin: 0 auto var(--space-lg);
  font-size: 1.75rem;
  background: var(--gray-50);
  color: var(--blue);
  transition: all var(--transition);
}
.icon-card:hover .icon-wrap {
  background: var(--blue);
  color: var(--white);
  transform: scale(1.1);
}

/* Executive stat card (minimalist) */
.exec-stat-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: var(--space-2xl) var(--space-xl);
  text-align: center;
  transition: all var(--transition);
}
.exec-stat-card:hover {
  border-color: var(--blue);
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.exec-stat-number {
  display: block;
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--blue);
  line-height: 1;
  margin-bottom: var(--space-sm);
  letter-spacing: -0.02em;
}
.exec-stat-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--gray-900);
  margin-bottom: 0.25rem;
}
.exec-stat-desc {
  font-size: 0.85rem;
  color: var(--gray-500);
  margin: 0;
}

/* Feature card (horizontal) */
.feature-card {
  display: flex;
  gap: var(--space-xl);
  align-items: center;
  padding: var(--space-2xl);
}
.feature-card .feature-icon {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: var(--radius);
  background: var(--grad-brand);
  display: grid;
  place-items: center;
  color: var(--white);
  font-size: 2rem;
}

/* ---------- GRIDS ---------- */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2xl); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2xl); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-xl); }

/* ---------- SERVICES/WHAT WE PROVIDE ---------- */
.services-section {
  background: linear-gradient(135deg, #f8f9fc 0%, var(--gray-50) 100%);
  background-attachment: fixed;
  background-size: cover;
}

/* --- Executive Pillar Cards --- */
.exec-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 2.75rem 2.5rem 2.5rem;
  background: var(--white);
  border-radius: 2px;
  border: none;
  border-bottom: 3px solid transparent;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: all 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.exec-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(18,38,58,0.10), 0 4px 12px rgba(18,38,58,0.04);
  border-bottom-color: var(--blue);
}
.exec-card--gold:hover  { border-bottom-color: var(--gold); }
.exec-card--purple:hover { border-bottom-color: var(--purple); }

/* Top accent bar */
.exec-card-accent {
  position: absolute;
  top: 0; left: 0;
  width: 48px;
  height: 3px;
  background: var(--blue);
  transition: width 0.4s ease;
}
.exec-card:hover .exec-card-accent { width: 100%; }
.exec-card--gold .exec-card-accent  { background: var(--gold); }
.exec-card--purple .exec-card-accent { background: var(--purple); }

/* Card heading */
.exec-card h3 {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.85rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

/* Card body text */
.exec-card p {
  font-size: 0.93rem;
  color: var(--gray-600);
  line-height: 1.75;
  margin-bottom: 2rem;
  flex: 1;
}

/* CTA */
.exec-card-cta {
  display: inline-block;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 2px;
  margin-top: auto;
  transition: color 0.3s ease;
}
.exec-card-cta::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0;
  height: 1.5px;
  background: currentColor;
  transition: width 0.35s ease;
}
.exec-card:hover .exec-card-cta::after { width: 100%; }
.exec-card--gold .exec-card-cta  { color: #9a7a0a; }
.exec-card--gold:hover .exec-card-cta { color: var(--navy); }
.exec-card--purple .exec-card-cta { color: var(--purple); }

@media (max-width: 768px) {
  .exec-card { padding: 2rem 1.75rem 1.75rem; }
}

/* ---------- CORES ---------- */
.cores-section {
  background: linear-gradient(180deg, var(--gray-50) 0%, var(--white) 50%, var(--gray-50) 100%);
  background-attachment: fixed;
  background-size: cover;
}
.core-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--gray-200);
  transition: all var(--transition);
}
.core-card:hover {
  border-color: var(--blue);
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.core-card-top {
  height: 8px;
  background: var(--grad-brand);
}
.core-card:nth-child(2) .core-card-top { background: var(--grad-warm); }
.core-card:nth-child(3) .core-card-top { background: var(--grad-gold); }
.core-card-body {
  padding: var(--space-2xl);
}
.core-card-body h3 {
  font-size: 1.15rem;
  margin-bottom: 0.75rem;
}
.core-card-body p {
  font-size: 0.9rem;
  color: var(--gray-600);
  margin-bottom: 1rem;
}

/* ---------- CTA BAND ---------- */
.cta-band {
  background: var(--grad-hero);
  background-attachment: fixed;
  background-size: cover;
  padding: var(--space-4xl) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-band::before {
  content: '';
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 0;
  background: var(--gold);
  opacity: 0.05;
  right: -200px;
  top: -200px;
}
.cta-band h2 {
  color: var(--white);
  margin-bottom: var(--space-md);
}
.cta-band p {
  color: rgba(255,255,255,0.85);
  max-width: 600px;
  margin: 0 auto var(--space-2xl);
  font-size: 1.1rem;
}
.cta-actions {
  display: flex;
  gap: var(--space-md);
  justify-content: center;
  flex-wrap: wrap;
}

/* ---------- NEWS ---------- */
.news-card {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--gray-100);
  transition: all var(--transition);
}
.news-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.news-card-img {
  height: 200px;
  background: var(--grad-accent);
  display: grid;
  place-items: center;
  color: var(--white);
  font-size: 2.5rem;
  position: relative;
  overflow: hidden;
}
.news-card-body {
  padding: var(--space-xl);
}
.news-tag {
  display: inline-flex;
  max-width: 100%;
  padding: 0.25rem 0.75rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--blue);
  background: rgba(37,99,235,0.08);
  border-radius: 2px;
  margin-bottom: 0.75rem;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
}
.news-card-body h3 {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.news-meta {
  display: block;
  max-width: 100%;
  font-size: 0.8rem;
  color: var(--gray-400);
  overflow-wrap: anywhere;
}

/* ---------- FIXED BACKGROUND PARALLAX ---------- */
.section--fixed-bg {
  background-attachment: fixed !important;
  background-size: cover;
  background-position: center;
}
/* Keep positioning context */
.stats-section.section--fixed-bg,
.cores-section.section--fixed-bg { position: relative; }
.quote-section.section--fixed-bg {
  background-attachment: fixed !important;
}

/* ---------- PARTNERS SECTION (Dynamic Marquee) ---------- */
.partners-section {
  padding: var(--space-4xl) 0 var(--space-3xl);
  background: var(--white);
  position: relative;
  overflow: hidden;
}
.partners-header {
  text-align: center;
  margin-bottom: var(--space-2xl);
}
.partners-marquee-wrap {
  position: relative;
  overflow: hidden;
  contain: paint;
  width: 100%;
  max-width: 100%;
  padding: var(--space-lg) 0;
}
/* Fade edges */
.partners-marquee-wrap::before,
.partners-marquee-wrap::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.partners-marquee-wrap::before {
  left: 0;
  background: linear-gradient(90deg, var(--white) 0%, transparent 100%);
}
.partners-marquee-wrap::after {
  right: 0;
  background: linear-gradient(270deg, var(--white) 0%, transparent 100%);
}
.partners-marquee {
  overflow: hidden;
  contain: paint;
  width: 100%;
  max-width: 100%;
}
.partners-marquee-track {
  display: flex;
  gap: var(--space-3xl);
  animation: marqueeScroll 40s linear infinite;
  width: max-content;
  max-width: none;
}
.partners-marquee-track:hover { animation-play-state: paused; }
@keyframes marqueeScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.partner-logo-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  flex-shrink: 0;
  min-width: 180px;
  padding: 1.25rem 1.5rem;
  border-radius: 8px;
  background: var(--gray-50);
  border: 1px solid transparent;
  transition: all 0.35s ease;
}
.partner-logo-item:hover {
  background: var(--white);
  border-color: var(--gray-200);
  box-shadow: 0 8px 30px rgba(0,0,0,0.06);
  transform: translateY(-4px);
}
.partner-logo-item img {
  width: clamp(120px, 16vw, 170px);
  height: auto;
  max-height: 60px;
  object-fit: contain;
  display: block;
  object-position: center;
  filter: grayscale(100%) opacity(0.7);
  transition: filter 0.35s ease;
}
.partner-logo-item.partner-logo-fallback img {
  display: none;
}
.partner-logo-fallback-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--gray-700);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-align: center;
  white-space: nowrap;
  max-width: 180px;
}
.partner-logo-item:hover .partner-logo-fallback-label {
  color: var(--gray-900);
}
.partner-logo-item .partner-logo-fallback-label + span {
  display: block;
}
.partner-logo-item {
  min-height: 140px;
}
.partner-logo-item:hover img {
  filter: grayscale(0%) opacity(1);
}
.partner-logo-item span {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gray-400);
  transition: color 0.3s;
  text-align: center;
  white-space: nowrap;
}
.partner-logo-item:hover span { color: var(--gray-700); }

/* ---------- FEED TABS + CAROUSEL ---------- */
.feed-tabs {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: var(--space-2xl);
}
.feed-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.5rem;
  border: 2px solid var(--gray-200);
  background: var(--white);
  border-radius: 50px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--gray-500);
  cursor: pointer;
  transition: all 0.3s ease;
}
.feed-tab:hover {
  border-color: var(--gray-300);
  color: var(--gray-700);
}
.feed-tab.active {
  border-color: var(--blue);
  color: var(--blue);
  background: rgba(37,99,235,0.04);
}
.feed-tab svg { opacity: 0.7; }
.feed-tab.active svg { opacity: 1; }

.feed-carousel-wrapper { position: relative; }
.feed-panel {
  display: none;
  animation: feedPanelIn 0.4s ease;
}
.feed-panel--active { display: block; }
@keyframes feedPanelIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* LinkedIn carousel */
.feed-carousel {
  overflow: hidden;
  position: relative;
}
.feed-carousel-track {
  display: flex;
  gap: var(--space-xl);
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.feed-carousel-track .li-card {
  flex: 0 0 calc(33.333% - var(--space-xl) * 2 / 3);
  min-width: 0;
}
.feed-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: var(--space-lg);
}
.feed-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--gray-300);
  cursor: pointer;
  transition: all 0.3s;
  padding: 0;
}
.feed-dot.active {
  background: var(--blue);
  width: 24px;
  border-radius: 4px;
}

/* YouTube embed layout */
.yt-channel-embed {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--space-xl);
  align-items: start;
}
.yt-main-player {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
  border-radius: 8px;
  overflow: hidden;
  background: var(--gray-900);
  box-shadow: 0 8px 40px rgba(0,0,0,0.12);
}
.yt-main-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.yt-sidebar {
  padding: var(--space-xl);
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  height: var(--yt-sidebar-height, auto);
  max-height: var(--yt-sidebar-height, none);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  scrollbar-gutter: stable;
}
.yt-sidebar::-webkit-scrollbar {
  width: 10px;
}
.yt-sidebar::-webkit-scrollbar-track {
  background: rgba(148, 163, 184, 0.12);
  border-radius: 999px;
}
.yt-sidebar::-webkit-scrollbar-thumb {
  background: rgba(15, 43, 77, 0.28);
  border-radius: 999px;
}
.yt-sidebar::-webkit-scrollbar-thumb:hover {
  background: rgba(15, 43, 77, 0.42);
}
.yt-sidebar-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--gray-900);
  margin-bottom: 0.75rem;
}
.yt-sidebar-desc {
  font-size: 0.9rem;
  color: var(--gray-500);
  line-height: 1.65;
  margin-bottom: 1.5rem;
}
.yt-video-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-bottom: 1.25rem;
  flex: 1 1 auto;
}
.yt-video-item {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 0.8rem;
  align-items: start;
  text-decoration: none;
  padding: 0.55rem;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
  background: #fff;
}
.yt-video-item:hover {
  border-color: rgba(37,99,235,0.25);
  box-shadow: 0 10px 24px rgba(15,23,42,0.08);
  transform: translateY(-2px);
}
.yt-video-item img {
  width: 96px;
  height: 54px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  background: var(--gray-100);
}
.yt-video-item strong {
  display: block;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--gray-900);
  margin-bottom: 0.25rem;
}
.yt-video-item span {
  font-size: 0.74rem;
  color: var(--gray-500);
}
.yt-video-item--loading,
.yt-video-item--error {
  display: block;
  padding: 0.9rem 1rem;
  font-size: 0.85rem;
  color: var(--gray-500);
}
.yt-sub-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #FF0000;
  color: var(--white) !important;
  border-color: #FF0000 !important;
  font-size: 0.82rem;
  font-weight: 600;
}
.yt-sidebar-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: auto;
  padding-top: 0.25rem;
  position: sticky;
  bottom: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 22%, #fff 100%);
}
.yt-sidebar-btn {
  width: 100%;
  justify-content: center;
}
.yt-sub-btn:hover {
  background: #CC0000 !important;
  border-color: #CC0000 !important;
  color: var(--white) !important;
}

/* Social CTAs */
.feed-social-ctas {
  display: flex;
  justify-content: center;
  gap: var(--space-md);
  margin-top: var(--space-2xl);
  flex-wrap: wrap;
}
.yt-follow-btn {
  border-color: #FF0000;
  color: #FF0000;
}
.yt-follow-btn:hover {
  background: #FF0000;
  color: var(--white);
  border-color: #FF0000;
}

/* Webinar Archive */
.webinar-archive-header {
  margin-bottom: var(--space-xl);
  max-width: none;
}
.webinar-archive-title {
  margin: 0 0 0.7rem;
  font-size: clamp(2rem, 3vw, 2.85rem);
  line-height: 1.08;
  color: var(--gray-900);
  letter-spacing: -0.02em;
  max-width: 22ch;
}
.webinar-archive-subtitle {
  max-width: 78ch;
  margin: 0;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--gray-500);
}
.webinar-featured-actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}
.webinar-archive-controls {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) 220px auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.1rem;
  margin-bottom: 1.4rem;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(15, 43, 77, 0.03) 0%, rgba(15, 43, 77, 0.01) 100%);
  border: 1px solid rgba(148, 163, 184, 0.18);
}
.webinar-search-group input,
.webinar-filter-group select {
  width: 100%;
  height: 56px;
  padding: 0 1rem;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  background: #fff;
  color: var(--gray-900);
  font-size: 1rem;
}
.webinar-search-group input:focus,
.webinar-filter-group select:focus {
  outline: none;
  border-color: rgba(37, 99, 235, 0.42);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1);
}
.webinar-results-chip {
  justify-self: end;
  padding: 0.8rem 1rem;
  border-radius: 999px;
  background: rgba(15, 43, 77, 0.92);
  color: #fff;
  font-weight: 700;
  white-space: nowrap;
}
.webinar-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
}
.webinar-video-card {
  display: grid;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  text-decoration: none;
}
.webinar-video-card:hover {
  transform: translateY(-4px);
  border-color: rgba(37, 99, 235, 0.28);
  box-shadow: 0 24px 56px rgba(15, 23, 42, 0.12);
}
.webinar-video-thumb {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  background: linear-gradient(135deg, #113558 0%, #246fb1 100%);
  cursor: pointer;
}
.webinar-video-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  opacity: 0.78;
}
.webinar-video-play {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  border: 2px solid rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(6px);
  color: #fff;
}
.webinar-video-play svg {
  width: 30px;
  height: 30px;
  margin-left: 4px;
}
.webinar-video-body {
  padding: var(--space-xl);
  min-height: 0;
}
.webinar-video-date {
  display: inline-block;
  margin-bottom: 0.9rem;
  font-size: 0.95rem;
  color: var(--gray-400);
}
.webinar-video-body h3 {
  margin-bottom: 0;
  font-size: 1.5rem;
  line-height: 1.25;
  color: var(--gray-900);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.webinar-video-card--message {
  grid-column: 1 / -1;
  display: block;
  padding: var(--space-xl);
  color: var(--gray-500);
  font-size: 1rem;
}
.webinar-load-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: var(--space-2xl);
}
.webinar-load-more-wrap.hidden {
  display: none;
}
#webinarLoadMoreBtn {
  min-width: 220px;
}
.webinar-detail-player {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 28px 60px rgba(15, 23, 42, 0.14);
  margin-bottom: var(--space-xl);
}
.webinar-detail-player iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}
.webinar-detail-copy {
  padding: 1.75rem;
  margin-bottom: var(--space-2xl);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(15, 43, 77, 0.04) 0%, rgba(15, 43, 77, 0.01) 100%);
  border: 1px solid rgba(148, 163, 184, 0.16);
}
.webinar-detail-copy p {
  color: var(--gray-500);
  line-height: 1.85;
  margin-bottom: 1.25rem;
  white-space: pre-line;
}
.webinar-related-section {
  margin-top: var(--space-xl);
}

@media (max-width: 991px) {
  .webinar-video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .webinar-archive-controls {
    grid-template-columns: 1fr;
  }
  .webinar-results-chip {
    justify-self: start;
  }
}

@media (max-width: 767px) {
  .webinar-video-grid {
    grid-template-columns: 1fr;
  }
  .webinar-video-play {
    width: 64px;
    height: 64px;
  }
  .webinar-video-body {
    padding: 1.4rem;
  }
  .webinar-video-body h3 {
    font-size: 1.35rem;
  }
  .webinar-archive-title {
    max-width: none;
  }
  .webinar-archive-subtitle {
    max-width: none;
  }
}

/* ---------- LINKEDIN FEED ---------- */
.linkedin-feed-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-xl);
}
.li-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.li-card:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
  transform: translateY(-3px);
}
.li-card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.25rem 1.25rem 0;
}
.li-card-logo {
  width: 40px;
  height: 40px;
  border-radius: 4px;
  background: var(--navy);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.li-card-logo svg {
  width: 22px;
  height: 22px;
  fill: var(--white);
}
.li-card-org {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--gray-800);
  line-height: 1.3;
}
.li-card-org span {
  display: block;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--gray-400);
}
.li-card-body {
  padding: 1rem 1.25rem;
  flex: 1;
}
.li-card-body p {
  font-size: 0.9rem;
  color: var(--gray-700);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.li-card-image {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}
.li-card-footer {
  padding: 0.75rem 1.25rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--gray-100);
  font-size: 0.78rem;
  color: var(--gray-400);
}
.li-card-footer a {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--blue);
}
.li-card-footer a:hover {
  text-decoration: underline;
}
/* Skeleton loading animation */
.li-card--skeleton {
  padding: 1.5rem;
  min-height: 260px;
}
.li-skel-bar {
  height: 14px;
  background: var(--gray-100);
  border-radius: 4px;
  margin-bottom: 0.75rem;
  animation: liSkelPulse 1.5s ease-in-out infinite;
}
.li-skel-bar:first-child {
  height: 10px;
  margin-bottom: 1.25rem;
}
@keyframes liSkelPulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}
/* Follow button */
.li-follow-btn {
  border-color: #0A66C2;
  color: #0A66C2;
}
.li-follow-btn:hover {
  background: #0A66C2;
  color: var(--white);
  border-color: #0A66C2;
}
/* Responsive */
@media (max-width: 900px) {
  .linkedin-feed-grid { grid-template-columns: repeat(2, 1fr); }
  .linkedin-feed-grid .li-card:nth-child(n+3) { display: none; }
  .feed-carousel-track .li-card { flex: 0 0 calc(50% - var(--space-xl) / 2); }
  .yt-channel-embed { grid-template-columns: 1fr; }
  .yt-sidebar { max-height: none; }
  .yt-video-item { grid-template-columns: 88px minmax(0, 1fr); }
  .yt-video-item img { width: 88px; height: 50px; }
  .partner-logo-item { min-width: 150px; }
  .partner-logo-item img { height: 42px; }
}
@media (max-width: 600px) {
  .linkedin-feed-grid { grid-template-columns: 1fr; }
  .linkedin-feed-grid .li-card:nth-child(n+2) { display: none; }
  .feed-carousel-track .li-card { flex: 0 0 100%; }
  .feed-tabs { gap: 0.25rem; }
  .feed-tab { padding: 0.5rem 1rem; font-size: 0.8rem; }
  .partner-logo-item { min-width: 130px; padding: 1rem; }
  .partner-logo-item img { height: 36px; }
  .feed-social-ctas { flex-direction: column; align-items: center; }
  /* Disable fixed bg on mobile for perf */
  .section--fixed-bg { background-attachment: scroll; }
}

/* ---------- EVENTS ---------- */
.event-item {
  display: flex;
  width: 100%;
  gap: var(--space-xl);
  padding: var(--space-xl) 0;
  border-bottom: 1px solid var(--gray-200);
  transition: all var(--transition);
}
.event-item:hover {
  padding-left: var(--space-md);
}
.event-date {
  flex-shrink: 0;
  width: 70px;
  text-align: center;
}
.event-info {
  flex: 1 1 0;
  min-width: 0;
}
.event-date .month {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: var(--blue);
}
.event-date .day {
  font-size: 2rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1;
}
.event-info h4 {
  font-size: 1.05rem;
  margin-bottom: 0.25rem;
  color: var(--navy);
}
.event-info p {
  font-size: 0.88rem;
  color: var(--gray-500);
  margin: 0;
}

/* ---------- ENRICHMENT EVENT GALLERIES ---------- */
.enrichment-photo-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-xl);
}

.enrichment-photo-card {
  position: relative;
  display: block;
  background: linear-gradient(150deg, rgba(255,255,255,0.98), #f4f7fb);
  border: 1px solid rgba(10,24,36,0.08);
  border-radius: var(--radius-lg);
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 22px 45px rgba(17, 53, 82, 0.08);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.enrichment-photo-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(196, 155, 61, 0.15);
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--transition);
}

.enrichment-photo-card:hover {
  transform: translateY(-5px);
  border-color: rgba(10, 24, 36, 0.16);
  box-shadow: 0 28px 60px rgba(17, 53, 82, 0.16);
}

.enrichment-photo-card:hover::after {
  opacity: 1;
}

.enrichment-photo-card-cover {
  position: relative;
  height: 230px;
  overflow: hidden;
  background: linear-gradient(135deg, #eef1f6 0%, #d8dde7 100%);
}

.enrichment-photo-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition);
}

.enrichment-photo-card:hover .enrichment-photo-card-cover img {
  transform: scale(1.04);
}

.enrichment-photo-card-cover-fallback {
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--gray-600);
  font-size: 0.86rem;
  text-align: center;
  padding: 0 var(--space-md);
}

.enrichment-photo-card-body {
  padding: var(--space-lg);
}

.enrichment-photo-card-label {
  margin: 0 0 0.4rem;
  color: var(--blue);
  font-size: 0.78rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  font-weight: 600;
}

.enrichment-photo-card-body h4 {
  margin: 0 0 0.6rem;
  font-size: 1.05rem;
}

.enrichment-photo-card-body p {
  margin: 0;
  color: var(--gray-600);
  font-size: 0.92rem;
}

.enrichment-gallery-event-header {
  margin-bottom: var(--space-lg);
}

.event-photo-event-label {
  margin: 0 0 0.35rem;
  color: var(--blue);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.event-photo-count {
  margin-top: 0.35rem;
  color: var(--gray-600);
}

.event-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-lg);
}

.event-photo-card {
  margin: 0;
  border: 1px solid rgba(10, 24, 36, 0.09);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: linear-gradient(155deg, #ffffff 0%, #f8f9fc 100%);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  box-shadow: 0 10px 28px rgba(11, 24, 35, 0.07);
}

.event-photo-card:hover {
  transform: translateY(-4px);
  border-color: rgba(10, 24, 36, 0.16);
  box-shadow: 0 18px 38px rgba(11, 24, 35, 0.12);
}

.event-photo-card img {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
  transition: transform var(--transition);
}

.event-photo-card:hover img {
  transform: scale(1.03);
}

.event-photo-card figcaption {
  padding: 0.85rem;
  color: var(--gray-600);
  font-size: 0.82rem;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}

.event-photo-number {
  color: var(--blue);
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.event-photo-card figcaption strong {
  color: var(--navy);
  font-size: 0.92rem;
}

.event-photo-empty {
  margin: 0;
  color: var(--gray-500);
}

.enrichment-photo-portal {
  display: grid;
  gap: var(--space-2xl);
}

.enrichment-photo-hero {
  display: grid;
  grid-template-columns: minmax(260px, 1.2fr) minmax(280px, 0.9fr);
  gap: var(--space-2xl);
  align-items: center;
  padding: var(--space-3xl);
  border: 1px solid rgba(10, 24, 36, 0.08);
  background: linear-gradient(145deg, #f8fbff 0%, #eef4ff 40%, #fff 100%);
  position: relative;
  overflow: hidden;
}

.enrichment-photo-hero::before,
.enrichment-photo-hero::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
  filter: blur(1px);
}

.enrichment-photo-hero::before {
  width: 260px;
  height: 260px;
  top: -130px;
  left: -80px;
  background: radial-gradient(circle, rgba(226, 178, 48, 0.22), rgba(226, 178, 48, 0));
}

.enrichment-photo-hero::after {
  width: 220px;
  height: 220px;
  right: -80px;
  bottom: -120px;
  background: radial-gradient(circle, rgba(61, 142, 201, 0.22), rgba(61, 142, 201, 0));
}

.enrichment-photo-orbit-wrap {
  position: relative;
  width: 390px;
  margin: 0 auto;
}

.enrichment-photo-orbit-track {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  z-index: 1;
}

.enrichment-photo-orbit-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 72px;
  height: 72px;
  padding: 0;
  transform: translate(-50%, -50%) rotate(var(--angle)) translate(178px) rotate(calc(-1 * var(--angle)));
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.85);
  background: #fff;
  box-shadow: 0 8px 18px rgba(14, 27, 44, 0.24);
  transition: all var(--transition);
  cursor: pointer;
  opacity: 0.8;
  pointer-events: all;
  appearance: none;
}

.enrichment-photo-orbit-dot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.enrichment-photo-orbit-dot.is-active {
  transform: translate(-50%, -50%) rotate(var(--angle)) translate(178px) rotate(calc(-1 * var(--angle))) scale(1.12);
  border-color: var(--gold);
  box-shadow: 0 10px 24px rgba(226, 178, 48, 0.42);
  opacity: 1;
}

.enrichment-photo-orbit-dot::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.6);
}

.enrichment-photo-orbit-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(10, 24, 36, 0.12);
  background: linear-gradient(145deg, #10253a, #1f4f74);
  box-shadow: 0 26px 45px rgba(5, 27, 53, 0.28);
  animation: enrichmentOrbitFloat 8s ease-in-out infinite;
  z-index: 2;
}

.enrichment-photo-orbit-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 18%;
  display: block;
}

.enrichment-photo-orbit-meta {
  position: absolute;
  inset: auto 0 0 0;
  padding: 1rem;
  color: var(--white);
  background: linear-gradient(180deg, rgba(16, 44, 69, 0), rgba(12, 29, 50, 0.9));
}

.enrichment-photo-orbit-meta p:last-child {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.86rem;
}

.enrichment-upcoming-section {
  padding: 0;
}

.enrichment-upcoming-section #upcomingEventsList {
  display: grid;
  gap: var(--space-lg);
  margin-top: var(--space-lg);
}

.enrichment-upcoming-item {
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
  background: var(--white);
  padding: var(--space-xl);
}

.enrichment-upcoming-item:hover {
  border-color: rgba(10, 24, 36, 0.2);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.08);
}

.enrichment-event-story-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--space-lg);
}

.enrichment-event-story-card {
  border: 1px solid rgba(10, 24, 36, 0.09);
  background: linear-gradient(155deg, #ffffff 0%, #f6f7fc 100%);
  padding: var(--space-sm);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.enrichment-event-story-cover {
  border: 1px solid rgba(10, 24, 36, 0.08);
  overflow: hidden;
  background: #dce4f1;
  aspect-ratio: 16 / 9;
}

.enrichment-event-story-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 18%;
  transition: transform var(--transition);
}

.enrichment-event-story-card:hover .enrichment-event-story-cover img {
  transform: scale(1.04);
}

.enrichment-event-story-card .event-photo-event-label {
  margin-bottom: 0.35rem;
}

.enrichment-event-story-card h3 {
  margin-bottom: 0.55rem;
}

.enrichment-event-story-card p {
  color: var(--gray-600);
  margin-bottom: 0.7rem;
}

.event-gallery-shell {
  display: grid;
  gap: 2rem;
}

.event-gallery-overview {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  gap: 2rem;
  align-items: stretch;
  padding: clamp(1.5rem, 2vw, 2rem);
  border-radius: 28px;
  border: 1px solid rgba(30, 71, 112, 0.1);
  background:
    radial-gradient(circle at 12% 14%, rgba(235, 197, 76, 0.12) 0%, transparent 24%),
    radial-gradient(circle at 90% 88%, rgba(64, 139, 196, 0.12) 0%, transparent 26%),
    linear-gradient(180deg, #f8fbfe 0%, #f1f6fb 100%);
  box-shadow: 0 22px 60px rgba(18, 43, 76, 0.08);
  overflow: hidden;
}

.event-gallery-overview-copy {
  display: grid;
  gap: 1rem;
  align-content: start;
  padding: 0.5rem 0;
}

.event-gallery-overview-copy h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.05;
  color: var(--navy);
}

.event-gallery-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.event-gallery-overview-figure {
  position: relative;
  min-height: 100%;
  margin: 0;
  border-radius: 24px;
  overflow: hidden;
  background: #dce9f5;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.6);
}

.event-gallery-overview-figure img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
  display: block;
}

.event-gallery-grid-wrap {
  display: grid;
  gap: 1.3rem;
}

.event-gallery-grid-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 1.5rem;
  align-items: end;
}

.event-gallery-grid-head h3 {
  margin: 0.2rem 0 0;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  line-height: 1.08;
  color: var(--navy);
}

.event-gallery-grid-copy {
  margin: 0;
  color: #5f7187;
  font-size: 0.98rem;
  line-height: 1.72;
}

.event-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 220px));
  gap: 0.9rem;
  justify-content: start;
}

.event-gallery-thumb {
  position: relative;
  padding: 0;
  border: none;
  border-radius: 22px;
  overflow: hidden;
  cursor: pointer;
  background: #dce5ee;
  aspect-ratio: 1 / 1;
  box-shadow: 0 14px 28px rgba(16, 38, 67, 0.08);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.event-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}

.event-gallery-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 24, 45, 0.04) 8%, rgba(7, 18, 33, 0.7) 100%);
  opacity: 0.82;
  transition: opacity 0.28s ease;
}

.event-gallery-thumb:hover,
.event-gallery-thumb:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 22px 46px rgba(16, 38, 67, 0.16);
}

.event-gallery-thumb:hover img,
.event-gallery-thumb:focus-visible img {
  transform: scale(1.04);
}

.event-gallery-thumb:hover::after,
.event-gallery-thumb:focus-visible::after {
  opacity: 1;
}

.event-gallery-thumb-overlay {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 1;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1rem 0.95rem;
  color: var(--white);
}

.event-gallery-thumb-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.3rem;
  height: 2.3rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(12px);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.event-gallery-thumb-text {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.event-gallery-empty {
  display: grid;
  gap: 0.95rem;
  max-width: 720px;
  padding: 2rem;
  border-radius: 24px;
  border: 1px solid rgba(30, 71, 112, 0.1);
  background: linear-gradient(180deg, #f8fbfe 0%, #f1f6fb 100%);
  box-shadow: 0 18px 40px rgba(18, 43, 76, 0.08);
}

.event-gallery-empty h2,
.event-gallery-empty p {
  margin: 0;
}

.event-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2100;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}

.event-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.event-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 18%, rgba(235, 197, 76, 0.08) 0%, transparent 28%),
    radial-gradient(circle at 82% 82%, rgba(73, 145, 206, 0.12) 0%, transparent 26%),
    rgba(6, 16, 29, 0.92);
  backdrop-filter: blur(18px);
}

.event-lightbox-dialog {
  position: relative;
  z-index: 1;
  width: min(1240px, calc(100vw - 2rem));
  margin: 1rem auto;
  padding: 1.15rem;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(8, 23, 42, 0.96), rgba(7, 19, 34, 0.98));
  border: 1px solid rgba(150, 190, 222, 0.16);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.42);
  overflow: hidden;
}

.event-lightbox-dialog::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 22%, rgba(236, 196, 63, 0.08) 0%, transparent 22%),
    radial-gradient(circle at 84% 78%, rgba(70, 146, 212, 0.12) 0%, transparent 24%);
  pointer-events: none;
}

.event-lightbox-topbar {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.2rem 3.5rem 0.9rem 0.2rem;
}

.event-lightbox-eyebrow {
  margin: 0 0 0.3rem;
  color: rgba(224, 236, 249, 0.7);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.event-lightbox-topbar h2 {
  margin: 0;
  color: var(--white);
  font-size: clamp(1.2rem, 2.2vw, 1.7rem);
}

.event-lightbox-counter {
  display: inline-flex;
  align-items: center;
  min-height: 2.6rem;
  padding: 0.55rem 0.95rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: rgba(236, 244, 252, 0.94);
  font-size: 0.9rem;
  font-weight: 700;
}

.event-lightbox-close,
.event-lightbox-nav {
  border: none;
  cursor: pointer;
  transition: transform 0.22s ease, background 0.22s ease, opacity 0.22s ease;
}

.event-lightbox-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.1);
  color: var(--white);
  font-size: 1.8rem;
  line-height: 1;
  z-index: 2;
}

.event-lightbox-close:hover,
.event-lightbox-nav:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,0.18);
}

.event-lightbox-stage {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 64px;
  gap: 1rem;
  align-items: center;
  min-height: min(80vh, 920px);
}

.event-lightbox-nav {
  width: 64px;
  height: 64px;
  border-radius: 999px;
  background: rgba(255,255,255,0.1);
  color: var(--white);
  font-size: 2rem;
  position: relative;
  z-index: 2;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
}

.event-lightbox-nav[disabled] {
  opacity: 0.45;
  cursor: default;
}

.event-lightbox-figure {
  margin: 0;
  height: 100%;
}

.event-lightbox-image-wrap {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  align-items: stretch;
  min-height: min(74vh, 860px);
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.02) 100%);
  border: 1px solid rgba(160, 193, 221, 0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
  overflow: hidden;
}

.event-lightbox-image-accent {
  position: absolute;
  border-radius: 999px;
  filter: blur(10px);
  opacity: 0.55;
  pointer-events: none;
}

.event-lightbox-image-accent--gold {
  top: 1.2rem;
  left: 1.2rem;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(236, 196, 63, 0.28) 0%, rgba(236, 196, 63, 0) 72%);
}

.event-lightbox-image-accent--blue {
  right: 1.2rem;
  bottom: 1.2rem;
  width: 160px;
  height: 160px;
  background: radial-gradient(circle, rgba(70, 146, 212, 0.24) 0%, rgba(70, 146, 212, 0) 74%);
}





.event-lightbox-image-stage {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  min-height: 0;
}

.event-lightbox-figure img {
  width: 100%;
  max-height: min(74vh, 860px);
  object-fit: contain;
  border-radius: 22px;
  background: rgba(255,255,255,0.03);
  box-shadow: 0 24px 52px rgba(0, 0, 0, 0.28);
}

body.lightbox-open {
  overflow: hidden;
}

@keyframes enrichmentOrbitFloat {
  0% { transform: translateY(0); }
  50% { transform: translateY(10px); }
  100% { transform: translateY(0); }
}

/* ---------- TESTIMONIAL / QUOTE ---------- */
.quote-section {
  background: linear-gradient(135deg, #0A1824 0%, var(--navy) 50%, #1A3550 100%);
  background-attachment: fixed;
  background-size: cover;
  padding: calc(var(--space-4xl) * 0.7) 0;
  position: relative;
  overflow: hidden;
}
.quote-section::before {
  content: none;
}
.quote-text {
  font-size: clamp(1.15rem, 2.5vw, 1.5rem);
  color: var(--white);
  font-family: var(--font-accent);
  font-style: italic;
  line-height: 1.8;
  max-width: 720px;
  margin: 0 auto calc(var(--space-xl) * 0.75);
  text-align: center;
}
.quote-author {
  text-align: center;
  color: var(--gold-light);
  font-size: 1.425rem;
  font-weight: 600;
  line-height: 1.35;
  max-width: 760px;
  margin: 0 auto;
}
.quote-author span {
  display: block;
  font-weight: 400;
  color: rgba(255,255,255,0.5);
  font-size: 0.95rem;
  line-height: 1.55;
  margin-top: 0.8rem;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

/* ---------- PUBLICATIONS ---------- */
.section-label--light {
  color: rgba(255, 255, 255, 0.78);
}

.btn-outline--light {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.btn-outline--light:hover {
  border-color: rgba(255, 255, 255, 0.44);
  background: rgba(255, 255, 255, 0.08);
}

.publications-hero,
.publication-detail-hero {
  background:
    linear-gradient(135deg, #0a1824 0%, #0d2740 58%, #143450 100%);
  color: #fff;
  margin-top: var(--header-h);
  padding: calc(var(--space-3xl) * 1.05) 0 calc(var(--space-2xl) * 1.1);
}

.publications-hero-copy h1,
.publication-detail-header h1 {
  color: #fff;
  font-size: clamp(1.2rem, 2.3vw, 2rem);
  line-height: 1.08;
  margin: 0.55rem 0 1rem;
}

.publications-hero-copy p,
.publication-detail-header p {
  color: rgba(255, 255, 255, 0.78);
  font-size: 1rem;
  line-height: 1.8;
  max-width: 820px;
}

.publications-hero-actions,
.publication-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: var(--space-xl);
}

.publications-stat-card,
.publication-side-card,
.publication-detail-card {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.98));
  box-shadow: 0 18px 50px rgba(14, 27, 44, 0.08);
}

.publications-shell,
.publication-detail-shell,
.publication-related-shell {
  background: linear-gradient(180deg, #f6f8fb 0%, #ffffff 28%);
  padding: var(--space-3xl) 0;
}

.publications-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 0.85rem;
  margin-bottom: 1rem;
}

.publications-toolbar-controls {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
}

.publications-view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.publications-view-label {
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray-500);
  font-weight: 700;
  padding: 0 0.55rem 0 0.7rem;
}

.publications-view-btn {
  height: 34px;
  padding: 0 0.85rem;
  border: 0;
  background: transparent;
  color: var(--navy);
  font-weight: 700;
  font-size: 0.84rem;
  border-radius: 999px;
  cursor: pointer;
}

.publications-view-btn.is-active {
  background: #0f2b4d;
  color: #fff;
}

.publications-search {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 6px;
  padding: 0 0.9rem;
  min-height: 48px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.publications-search svg {
  width: 18px;
  height: 18px;
  color: var(--gray-500);
  flex-shrink: 0;
}

.publications-search input,
.publications-select {
  width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  min-height: 48px;
  font-size: 0.94rem;
  color: var(--navy);
}

.publications-select {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 6px;
  background: #fff;
  padding: 0 0.85rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.publication-tag-filter,
.publication-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.publication-tag-filter {
  border: 1px solid rgba(15, 23, 42, 0.09);
  background: #fff;
  color: var(--navy);
  min-height: 38px;
  padding: 0 0.95rem;
}

.publication-tag-filter.is-active {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.publications-results-header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.publications-results-header h2 {
  margin-bottom: 0.2rem;
}

.publications-results-header p {
  margin: 0;
  color: var(--gray-500);
  font-size: 0.98rem;
}

.publications-results-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.publications-toolbar-link {
  align-self: center;
  min-height: 42px;
  padding: 0 1rem;
}

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

.publications-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.9rem;
  margin-top: 1.5rem;
}

.publications-page-btn {
  min-width: 108px;
  height: 42px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 6px;
  background: #fff;
  color: var(--navy);
  font-weight: 700;
  cursor: pointer;
}

.publications-page-btn:disabled {
  opacity: 0.45;
  cursor: default;
}

.publications-page-status {
  color: var(--gray-500);
  font-size: 0.9rem;
}

.publications-grid--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.publications-table-wrap[hidden] {
  display: none !important;
}

.publications-table-shell {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
}

.publications-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.publications-table th,
.publications-table td {
  padding: 0.95rem 1rem;
  text-align: left;
  vertical-align: top;
}

.publications-table th:nth-child(1),
.publications-table td:nth-child(1) {
  width: 50%;
}

.publications-table th:nth-child(2),
.publications-table td:nth-child(2) {
  width: 17%;
}

.publications-table th:nth-child(3),
.publications-table td:nth-child(3) {
  width: 12%;
}

.publications-table th:nth-child(4),
.publications-table td:nth-child(4) {
  width: 5%;
}

.publications-table th:nth-child(5),
.publications-table td:nth-child(5) {
  width: 7%;
}

.publications-table th:nth-child(6),
.publications-table td:nth-child(6) {
  width: 9%;
}

.publications-table thead th {
  background: #0f2b4d;
  color: #fff;
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
}

.publications-table tbody tr:nth-child(odd) {
  background: #fafbfd;
}

.publications-table tbody tr:nth-child(even) {
  background: #ffffff;
}

.publications-table tbody tr {
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.publications-table-title {
  color: var(--navy);
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  display: inline-block;
  max-width: none;
}

.publications-table-link {
  color: var(--blue);
  text-decoration: none;
}

.publication-card,
.publications-empty-card {
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.publication-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  min-height: 260px;
  padding: 1.35rem 1.35rem 1.2rem;
  color: inherit;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
  overflow: hidden;
}

.publication-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: #002d62;
}

.publication-card:hover {
  transform: translateY(-2px);
  border-color: rgba(18, 38, 58, 0.18);
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
}

.publications-empty-card {
  padding: 2rem;
  text-align: center;
}

.publication-card-topline,
.publication-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  width: 100%;
  margin-bottom: 0.95rem;
}

.publication-year-pill {
  background: #edf1f5;
  color: var(--navy);
  border-radius: 999px;
  padding: 0.3rem 0.8rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.publication-card-date {
  color: var(--gray-500);
  font-size: 0.86rem;
}

.publication-card h3 {
  font-size: 1.06rem;
  line-height: 1.46;
  margin: 0 0 0.75rem;
  text-align: left;
  color: var(--navy);
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 6rem;
}

.publication-card-subline {
  margin: 0 0 0.45rem;
  color: var(--blue);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.publication-card-authors {
  margin: 0 0 0.95rem;
  color: var(--gray-600);
  font-size: 0.9rem;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.8rem;
}

.publication-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: auto;
  margin-bottom: 0.9rem;
}

.publication-detail-layout {
  display: flex;
  align-items: flex-start;
  gap: 1.75rem;
}

.publication-detail-header {
  max-width: 1040px;
}

.publication-detail-breadcrumb {
  margin-bottom: 1rem;
}

.publication-card-link {
  color: var(--navy);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.publication-detail-authors {
  font-size: 1rem;
  font-weight: 600;
}

.publication-detail-citation {
  font-size: 0.98rem;
}

.publication-detail-main {
  flex: 1 1 auto;
  display: grid;
  gap: 0.95rem;
  width: 100%;
  min-width: 0;
  position: relative;
  z-index: 1;
}

.publication-detail-main > * ,
.publication-article-section,
.publication-rich-text,
.publication-article-rich-text {
  min-width: 0;
  max-width: 100%;
}

.publication-detail-card,
.publication-side-card {
  padding: 1.15rem 1.2rem;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.publication-detail-card h2,
.publication-side-card h3 {
  margin: 0 0 0.7rem;
  font-size: 0.98rem;
  line-height: 1.2;
  letter-spacing: 0;
  font-weight: 700;
  color: var(--navy);
  text-transform: none;
}

.publication-detail-card h2,
.publication-side-card h3,
.publication-detail-disclosure summary,
.publication-side-disclosure summary {
  margin-bottom: 0.7rem;
}

.publication-abstract {
  color: var(--gray-700);
  line-height: 1.75;
  max-height: 18rem;
  overflow: auto;
}

.publication-rich-text {
  color: var(--gray-700);
}

.publication-rich-text p {
  margin: 0 0 1rem;
  line-height: 1.85;
  font-size: 1.04rem;
  overflow-wrap: anywhere;
}

.publication-rich-text p:last-child {
  margin-bottom: 0;
}

.publication-text-section + .publication-text-section,
.publication-rich-text > p + .publication-text-section,
.publication-rich-text > .publication-text-section + p {
  margin-top: 1.6rem;
}

.publication-text-heading {
  margin: 0 0 0.8rem;
  color: var(--navy);
  line-height: 1.3;
  scroll-margin-top: calc(var(--header-h) + 2.75rem);
}

.publication-text-heading--major,
.publication-text-heading--minor {
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(94, 134, 170, 0.55);
}

.publication-text-heading--major {
  font-size: 1.1rem;
}

.publication-text-heading--minor {
  font-size: 0.96rem;
}

.publication-figure-section {
  display: grid;
  gap: 1rem;
}

.publication-figure-section[hidden] {
  display: none !important;
}

.publication-table-section[hidden] {
  display: none !important;
}

.publication-figure-header {
  display: grid;
  gap: 0.2rem;
}

.publication-figure-header p {
  margin: 0;
  color: var(--gray-500);
}

.publication-figure-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.publication-table-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.publication-asset-card {
  width: 100%;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.99), rgba(247,250,252,0.98));
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.06);
  padding: 1rem;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  text-align: left;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.publication-asset-card:hover {
  transform: translateY(-2px);
  border-color: rgba(31, 95, 139, 0.2);
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.1);
}

.publication-asset-thumb {
  width: 132px;
  height: 132px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, #f8fbff 0%, #eef3f8 100%);
  display: grid;
  place-items: center;
}

.publication-asset-thumb--figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.publication-asset-thumb--table {
  padding: 0.55rem;
}

.publication-table-thumb {
  width: 100%;
  height: 100%;
  display: grid;
  gap: 0.3rem;
}

.publication-table-thumb-row {
  display: grid;
  grid-template-columns: repeat(var(--publication-table-columns, 3), minmax(0, 1fr));
  gap: 0.22rem;
}

.publication-table-thumb-cell {
  min-height: 1.25rem;
  border-radius: 6px;
  background: rgba(18, 38, 58, 0.07);
  padding: 0.2rem 0.3rem;
  font-size: 0.52rem;
  line-height: 1.2;
  color: var(--gray-700);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.publication-table-thumb-cell--head {
  background: rgba(31, 95, 139, 0.12);
  color: var(--navy);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.publication-asset-copy {
  min-width: 0;
  display: grid;
  gap: 0.45rem;
}

.publication-asset-kicker {
  color: var(--blue);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.publication-asset-copy strong {
  color: var(--navy);
  font-size: 1.05rem;
  line-height: 1.35;
}

.publication-asset-text {
  color: var(--gray-600);
  line-height: 1.65;
  font-size: 0.94rem;
}

.publication-asset-link {
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.publication-asset-modal-open {
  overflow: hidden;
}

.publication-asset-modal-backdrop {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(9, 19, 31, 0.68);
  backdrop-filter: blur(14px);
  z-index: 2600;
}

.publication-asset-modal-backdrop.is-active {
  display: flex;
}

.publication-asset-modal-dialog {
  width: min(1180px, 100%);
  max-height: min(88vh, 920px);
  overflow: hidden;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.99), rgba(247,250,252,0.98));
  border: 1px solid rgba(255,255,255,0.6);
  box-shadow: 0 30px 80px rgba(0,0,0,0.22);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  position: relative;
}

.publication-asset-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255,255,255,0.92);
  color: var(--navy);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  z-index: 1;
}

.publication-asset-modal-header {
  padding: 1.6rem 1.75rem 1.2rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.publication-asset-modal-kicker {
  display: inline-block;
  margin-bottom: 0.55rem;
  color: var(--blue);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.publication-asset-modal-header h2 {
  margin: 0 0 0.65rem;
  font-size: clamp(1.5rem, 2vw, 2.2rem);
}

.publication-asset-modal-caption {
  margin: 0;
  color: var(--gray-600);
  line-height: 1.7;
  max-width: 78ch;
}

.publication-asset-modal-body {
  overflow: auto;
  padding: 1.5rem 1.75rem 1.75rem;
  background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

.publication-asset-modal-image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.publication-asset-modal-table-shell {
  overflow: auto;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  background: #fff;
}

.publication-asset-modal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.96rem;
}

.publication-asset-modal-table th,
.publication-asset-modal-table td {
  border: 1px solid #d8e0ea;
  padding: 0.8rem 0.9rem;
  text-align: left;
  vertical-align: top;
}

.publication-asset-modal-table th {
  background: #f4f7fb;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.76rem;
  color: var(--navy);
}

.publication-asset-modal-table tr:nth-child(even) td {
  background: #fbfcfe;
}

.publication-data-shell {
  overflow-x: auto;
}

.publication-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.94rem;
}

.publication-data-table th,
.publication-data-table td {
  padding: 0.75rem 0.95rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(15, 23, 42, 0.07);
}

.publication-data-table th {
  color: var(--navy);
  background: #f7f9fc;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.publication-asset-disclosure {
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, #fbfcfe 0%, #f7f9fc 100%);
  scroll-margin-top: calc(var(--header-h) + 1.5rem);
}

.publication-asset-disclosure summary {
  list-style: none;
  cursor: pointer;
  padding: 0.9rem 1rem;
  color: var(--navy);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  position: relative;
  scroll-margin-top: calc(var(--header-h) + 1.5rem);
}

.publication-asset-disclosure summary::-webkit-details-marker {
  display: none;
}

.publication-asset-disclosure summary::after {
  content: '+';
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: var(--gray-500);
}

.publication-asset-disclosure[open] summary::after {
  content: '−';
}

.publication-asset-panel {
  padding: 0 1rem 1rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.publication-asset-media {
  margin-top: 1rem;
}

.publication-asset-media img {
  width: 100%;
  max-width: 560px;
  display: block;
  background: #edf2f7;
}

.publication-graphical-card {
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #f7f4e9;
  padding: 1rem;
}

.publication-graphical-card img {
  width: 100%;
  display: block;
  background: #fff;
}

.publication-graphical-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.9rem;
}

.publication-asset-caption {
  margin: 0.9rem 0 0;
  color: var(--gray-700);
  line-height: 1.65;
}

.publication-asset-actions {
  display: flex;
  gap: 0.7rem;
  margin-top: 0.9rem;
}

.publication-author-list {
  display: grid;
  gap: 0.9rem;
}

.publication-author-item {
  padding-bottom: 0.9rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.publication-author-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.publication-author-item p {
  margin: 0.35rem 0 0;
  color: var(--gray-500);
  line-height: 1.7;
}

.publication-detail-sidebar {
  flex: 0 0 340px;
  display: grid;
  gap: 0.9rem;
  position: sticky;
  top: 110px;
  align-self: start;
  justify-self: end;
  width: 100%;
  max-width: 340px;
  min-width: 0;
}

.publication-toc {
  display: grid;
  gap: 0.65rem;
  padding-left: 0.9rem;
  border-left: 2px solid rgba(15, 23, 42, 0.12);
}

.publication-toc a {
  display: block;
  color: #0b5ea8;
  text-decoration: none;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.publication-toc a:hover {
  color: var(--navy);
}

.publication-meta-row {
  display: grid;
  gap: 0.25rem;
  padding: 0.8rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.publication-meta-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.publication-meta-row span {
  color: var(--gray-500);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.publication-meta-row strong {
  color: var(--navy);
  line-height: 1.5;
}

.publication-side-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  color: var(--gray-700);
  line-height: 1.65;
}

.publication-detail-disclosure,
.publication-side-disclosure {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  scroll-margin-top: calc(var(--header-h) + 2.75rem);
}

.publication-detail-disclosure summary,
.publication-side-disclosure summary {
  list-style: none;
  cursor: pointer;
  padding: 1.1rem 1.2rem;
  font-weight: 700;
  font-size: 0.98rem;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--navy);
  position: relative;
  margin: 0;
}

.publication-detail-disclosure summary::-webkit-details-marker,
.publication-side-disclosure summary::-webkit-details-marker {
  display: none;
}

.publication-detail-disclosure summary::after,
.publication-side-disclosure summary::after {
  content: '+';
  position: absolute;
  right: 1.2rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: var(--gray-500);
}

.publication-detail-disclosure[open] summary::after,
.publication-side-disclosure[open] summary::after {
  content: '−';
}

.publication-detail-card--disclosure,
.publication-side-card--disclosure {
  border: 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 0;
  box-shadow: none;
  background: #fff;
}

@media (max-width: 1280px) {
  .publications-grid,
  .publications-grid--compact {
    grid-template-columns: 1fr;
  }

  .publication-detail-layout {
    flex-direction: column;
  }

  .publication-detail-sidebar {
    flex: 1 1 auto;
    position: static;
    max-width: none;
  }
}

@media (max-width: 760px) {
  .publications-toolbar {
    grid-template-columns: 1fr;
  }

  .publications-toolbar-controls {
    grid-template-columns: 1fr;
  }

  .publications-results-header,
  .publications-results-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .publications-table-shell {
    overflow-x: auto;
  }

  .publication-figure-grid {
    grid-template-columns: 1fr;
  }

  .publication-asset-card {
    grid-template-columns: 1fr;
  }

  .publication-asset-thumb {
    width: 100%;
    max-width: 180px;
    height: 140px;
  }

  .publication-asset-modal-dialog {
    width: 100%;
    max-height: 92vh;
    border-radius: 18px;
  }

  .publication-asset-modal-header,
  .publication-asset-modal-body {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .publication-inline-assets {
    grid-template-columns: 1fr;
  }

  .publications-hero,
  .publication-detail-hero,
  .publications-shell,
  .publication-detail-shell,
  .publication-related-shell {
    padding: var(--space-2xl) 0;
  }

  .publication-card,
  .publication-detail-card,
  .publication-side-card,
  .publications-empty-card,
  .publication-detail-disclosure,
  .publication-side-disclosure {
    border-radius: 8px;
  }
}

/* ---------- (partners-bar replaced by partners-section above) ---------- */

/* ---------- BACK TO TOP BUTTON ---------- */
.back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 48px;
  height: 48px;
  background: var(--grad-brand);
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: all 0.3s ease;
  z-index: 999;
  overflow: hidden;
}
.back-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  background: var(--blue-dark);
}
.back-to-top:active {
  transform: translateY(-1px);
}
.back-to-top svg {
  width: 24px;
  height: 24px;
  transition: transform 0.3s ease;
}
.back-to-top.clicked svg {
  animation: arrowLaunch 0.6s ease-out;
}
.back-to-top.clicked::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: pulseRing 0.6s ease-out;
}
@keyframes arrowLaunch {
  0% { transform: translateY(0); }
  30% { transform: translateY(-8px); }
  50% { transform: translateY(-12px); opacity: 0; }
  51% { transform: translateY(12px); opacity: 0; }
  70% { transform: translateY(4px); opacity: 1; }
  100% { transform: translateY(0); }
}
@keyframes pulseRing {
  0% { transform: scale(0.5); opacity: 1; }
  100% { transform: scale(2); opacity: 0; }
}
@media (max-width: 768px) {
  .back-to-top {
    width: 44px;
    height: 44px;
    bottom: 1.5rem;
    right: 1.5rem;
  }
  .back-to-top svg {
    width: 20px;
    height: 20px;
  }
}

/* ---------- FOOTER ---------- */
.site-footer {
  position: relative;
  background: linear-gradient(160deg, #050D18 0%, #0A1628 35%, var(--navy) 100%);
  color: rgba(255,255,255,0.7);
  padding: 0;
  margin-top: 0;
  overflow: visible;
}

/* ── Flat top edge ── */
.site-footer::before {
  content: none;
}

.site-footer > .container {
  position: relative;
  z-index: 2;
}

/* ── Top bar: logo + social icons ── */
.footer-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-2xl) 0 var(--space-xl);
}

.footer-logo {
  height: 76px;
  width: auto;
  opacity: 0.92;
  transition: opacity 0.3s ease;
}
.footer-logo:hover { opacity: 1; }

.footer-social-icons {
  display: flex;
  gap: 0.75rem;
}

.footer-social-icons a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.55);
  transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.footer-social-icons a:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(226,178,48,0.3);
}

/* ── Gold gradient divider ── */
.footer-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255,255,255,0.06) 10%, var(--gold) 50%, rgba(255,255,255,0.06) 90%, transparent);
  border: none;
  margin: 0;
}

/* ── Main content grid ── */
.footer-main-grid {
  display: grid;
  grid-template-columns: 1.3fr repeat(6, 1fr);
  gap: var(--space-xl);
  padding: var(--space-2xl) 0 var(--space-xl);
  align-items: start;
}

/* Info / address column */
.footer-info-col {
  padding-right: var(--space-xl);
}

.footer-address {
  font-size: 0.9rem;
  line-height: 1.9;
  color: rgba(255,255,255,0.6);
  margin-bottom: var(--space-lg);
}

.footer-tagline {
  font-size: 0.82rem;
  line-height: 1.75;
  color: rgba(255,255,255,0.35);
}

/* ── Link columns ── */
.footer-col h4 {
  color: var(--gold);
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: var(--space-lg);
  padding-bottom: 0.7rem;
  position: relative;
}

.footer-col h4::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 20px;
  height: 2px;
  background: var(--gold);
  transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.footer-col:hover h4::after {
  width: 40px;
}

.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-col ul li {
  margin-bottom: 0.55rem;
}

.footer-col ul a {
  font-size: 0.87rem;
  color: rgba(255,255,255,0.48);
  transition: all 0.25s ease;
  display: inline-block;
  position: relative;
}

.footer-col ul a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--gold-light);
  transition: width 0.3s ease;
}

.footer-col ul a:hover {
  color: var(--white);
  transform: translateX(4px);
}

.footer-col ul a:hover::after {
  width: 100%;
}

/* ── Bottom bar ── */
.footer-bottom {
  margin-top: var(--space-md);
  padding: var(--space-xl) 0;
  border-top: 1px solid rgba(255,255,255,0.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
  font-size: 0.78rem;
  color: rgba(255,255,255,0.28);
}

.footer-bottom a {
  color: rgba(255,255,255,0.4);
  transition: color 0.25s ease;
}

.footer-bottom a:hover {
  color: var(--gold-light);
}

.niddk-notice {
  font-size: 0.76rem;
  color: rgba(255,255,255,0.35);
  max-width: 600px;
  line-height: 1.6;
}

/* ── Footer responsive ── */
@media (max-width: 1024px) {
  .footer-main-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .footer-info-col {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .site-footer { margin-top: 0; }
  .footer-top {
    flex-direction: column;
    gap: var(--space-lg);
    text-align: center;
  }
  .footer-main-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
  }
  .footer-info-col { grid-column: 1 / -1; }
  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .site-footer { margin-top: 0; }
  .footer-main-grid { grid-template-columns: 1fr; }
  .footer-logo { height: 56px; }
}

/* ---------- PAGE HEADER (Interior — Winship-inspired split hero) ---------- */

/* Diamond texture pattern via inline SVG — reusable background */
.texture-bg {
  background-color: #ECEEF2;
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 0L40 20L20 40L0 20Z' fill='none' stroke='%23D1D5DB' stroke-width='0.5' opacity='0.5'/%3E%3C/svg%3E");
  background-size: 40px 40px;
}

/* Breadcrumb bar — full-width blue strip above hero content */
.page-header-breadcrumb {
  background: var(--blue);
  padding: 0.5rem 0;
}
.page-header-breadcrumb .breadcrumb {
  margin: 0;
}
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-family: Inter, sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: none;
}
.breadcrumb a {
  color: var(--gold-light);
  font-weight: 600;
}
.breadcrumb a:hover { color: var(--white); text-decoration: underline; }
.breadcrumb span { color: rgba(242,206,91,0.45); }

/* ── Split hero header — consistent across all pages ── */
.page-header {
  margin-top: var(--header-h);
  position: relative;
  overflow: hidden;
  display: grid;
  /* The shared public-site hero: the same full split treatment used by About. */
  grid-template-columns: 43% 57% !important;
  height: 600px;
  min-height: 600px;
  background: #102a44;
}
.page-header::before {
  content: none;
}
.page-header::after {
  content: none;
}
/* Column-split variants via data attribute */
.page-header[data-hero-split="50-50"] { grid-template-columns: 50% 50%; }
.page-header[data-hero-split="60-40"] { grid-template-columns: 60% 40%; }
.page-header[data-hero-split="40-60"] { grid-template-columns: 40% 60%; }
.page-header[data-hero-split="65-35"] { grid-template-columns: 65% 35%; }
.page-header[data-hero-split="70-30"] { grid-template-columns: 70% 30%; }

/* Text side */
.page-header-content {
  background: transparent;
  /* Match the About page: breadcrumb begins near the top and the title has a deliberate, stable offset below it. */
  padding: 58px clamp(2rem, 5vw, 4.75rem) 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  position: relative;
  z-index: 1;
}
.page-header-content::before {
  content: none;
}
.page-header-content .breadcrumb {
  margin: 0 0 4.55rem;
  position: relative;
}
.page-header-content .breadcrumb a { color: var(--gold-light); font-weight: 600; }
.page-header-content .breadcrumb a:hover { color: var(--white); }
.page-header-content .breadcrumb span { color: rgba(242,206,91,0.45); }
.about-hero__copy .breadcrumb,
.enrichment-hero__copy .breadcrumb {
  margin: 0 0 4.55rem;
  color: rgba(255,255,255,.8);
}
.about-hero__copy .breadcrumb a,
.enrichment-hero__copy .breadcrumb a { color: var(--gold-light); font-weight:600; }
.about-hero__copy .breadcrumb > span:nth-child(2),
.enrichment-hero__copy .breadcrumb > span:nth-child(2) { color: rgba(242,206,91,.45); }
.about-hero__copy .breadcrumb > span:last-child,
.enrichment-hero__copy .breadcrumb > span:last-child { color: rgba(255,255,255,.8); }
.page-header-content h1 {
  font-family: Lora, Georgia, var(--font-accent);
  font-size: clamp(2.8rem, 4vw, 4rem);
  color: var(--white);
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 2rem;
  position: relative;
}
.page-header-content .accent-line {
  display: none;
  position: relative;
}
.page-header-content p {
  color: rgba(255,255,255,0.8);
  font-size: 1.125rem;
  line-height: 1.68;
  max-width: 540px;
  position: relative;
}
.page-header-content p.page-header-sub {
  margin-top: 0.75rem;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.55);
}

.page-header--photo-story .page-header-content {
  max-width: min(1240px, 100%);
  padding-right: 6%;
}

.page-header--photo-story .page-header-content p {
  max-width: min(1180px, 100%);
  font-size: 1.08rem;
}

/* Photo / placeholder side */
.page-header-image {
  position: relative;
  overflow: hidden;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  /* Enforce the shared hero height even when the page editor adds an inline pixel height. */
  height: 100% !important;
  min-height: 0;
  z-index: 1;
}
.page-header-image::before {
  content: none;
}
.page-header-image img {
  /* Override legacy per-page inline "height:auto" declarations. */
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  position: relative;
  z-index: 1;
}
/* Neutral placeholder when no page-specific hero image has been selected.
   Never use another page's photograph as a fallback. */
.page-header-image--pattern {
  background-color: #1c466b;
  background-image:
    linear-gradient(135deg, rgba(226,178,48,.22) 0 1px, transparent 1px 52px),
    linear-gradient(45deg, rgba(255,255,255,.06) 0 1px, transparent 1px 52px),
    linear-gradient(135deg, #24567e, #102a44);
  background-size: 52px 52px, 52px 52px, 100% 100%;
}
.page-header-image--pattern::before {
  content: none;
}
.page-header-image--pattern::after {
  content: none;
}
/* Large decorative icon inside pattern panel */
.page-header-icon {
  position: relative;
  z-index: 1;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-header-icon svg {
  width: 52px;
  height: 52px;
  color: rgba(226,178,48,0.5);
  stroke-width: 1.2;
}

/* ── Legacy fallback — old pages not yet converted ── */
.page-header:not(:has(.page-header-content)) {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--navy);
  min-height: clamp(260px, 36vh, 340px);
  padding: 0;
  position: relative;
}
.page-header:not(:has(.page-header-content))::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 1L59 30L30 59L1 30Z' fill='none' stroke='%23ffffff' stroke-width='0.6' opacity='0.04'/%3E%3C/svg%3E");
  background-size: 60px 60px;
  pointer-events: none;
}
.page-header:not(:has(.page-header-content)) > .container {
  padding-top: 3rem;
  padding-bottom: 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.page-header:not(:has(.page-header-content)) h1 {
  font-family: 'Georgia', var(--font-accent);
  color: var(--white);
  font-weight: 400;
  margin-bottom: var(--space-md);
}
.page-header:not(:has(.page-header-content)) p {
  color: rgba(255,255,255,0.8);
  font-size: 1.05rem;
  max-width: 650px;
}
.page-header:not(:has(.page-header-content)) .breadcrumb a {
  color: var(--gold-light);
  font-weight: 600;
}
.page-header:not(:has(.page-header-content)) .breadcrumb a:hover { color: var(--white); }
.page-header:not(:has(.page-header-content)) .breadcrumb span { color: rgba(242,206,91,0.45); }

/* ---------- SIDEBAR LAYOUT ---------- */
.content-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--space-3xl);
}
.content-layout--topdown {
  grid-template-columns: minmax(0, 1fr);
}
.content-layout--topdown .sidebar {
  position: static;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--space-xl);
  margin-top: var(--space-2xl);
}
.content-layout--topdown .sidebar-widget,
.content-layout--topdown .sidebar-cta {
  margin: 0;
}
.sidebar {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
  align-self: start;
}
.sidebar-widget {
  background: var(--gray-50);
  border-radius: var(--radius);
  padding: var(--space-xl);
  margin-bottom: var(--space-xl);
}
.sidebar-widget h4 {
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--space-md);
  color: var(--navy);
}
.sidebar-widget ul li {
  margin-bottom: 0.5rem;
}
.sidebar-widget ul a {
  font-size: 0.9rem;
  color: var(--gray-600);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sidebar-widget ul a:hover {
  color: var(--blue);
}
.sidebar-cta {
  background: var(--grad-hero);
  border-radius: var(--radius);
  padding: var(--space-2xl);
  text-align: center;
}
.sidebar-cta-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.85rem;
  padding: 0.32rem 0.75rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.sidebar-cta h4 {
  color: var(--white);
  margin-bottom: 0.5rem;
}
.sidebar-cta p {
  color: rgba(255,255,255,0.75);
  font-size: 0.88rem;
  margin-bottom: var(--space-md);
}
.sidebar-cta--youtube {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(226, 178, 48, 0.14), transparent 34%),
    linear-gradient(180deg, rgba(18, 38, 58, 0.96) 0%, rgba(31, 95, 139, 0.96) 100%);
  box-shadow: 0 18px 38px rgba(18, 38, 58, 0.14);
  text-align: left;
}
.sidebar-cta--youtube::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.08), transparent 42%);
  pointer-events: none;
}
.sidebar-cta--youtube .sidebar-cta-kicker {
  position: relative;
  background: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.84);
  border: 1px solid rgba(255,255,255,0.12);
}
.sidebar-cta--youtube h4,
.sidebar-cta--youtube p,
.sidebar-cta--youtube a {
  position: relative;
}
.sidebar-cta--youtube h4 {
  font-size: 1.75rem;
  line-height: 1.12;
  margin-bottom: 0.75rem;
}
.sidebar-cta--youtube p {
  color: rgba(255,255,255,0.82);
  line-height: 1.72;
  margin-bottom: 1.15rem;
}
.sidebar-youtube-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100%;
  background: rgba(255,255,255,0.12);
  color: var(--white) !important;
  border: 1px solid rgba(255,255,255,0.18);
  font-weight: 700;
  letter-spacing: 0.01em;
}
.sidebar-youtube-btn svg {
  color: #ff4d4d;
}
.sidebar-youtube-btn:hover {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.28);
  color: var(--white) !important;
}

/* ---------- FORMS ---------- */
.form-group {
  margin-bottom: var(--space-lg);
}
.form-group label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--gray-700);
  margin-bottom: 0.4rem;
}
.form-input,
.form-textarea,
.form-select {
  width: 100%;
  padding: 0.8rem 1rem;
  border: 2px solid var(--gray-200);
  border-radius: var(--radius);
  font-size: 0.95rem;
  font-family: var(--font-body);
  color: var(--gray-800);
  background: var(--white);
  transition: border-color var(--transition);
}
.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--blue);
}
.form-textarea {
  min-height: 140px;
  resize: vertical;
}

/* ---------- TEAM / PEOPLE ---------- */
.team-card {
  text-align: center;
  padding: var(--space-2xl);
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--gray-100);
  transition: all var(--transition);
}
.team-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.team-avatar {
  width: 120px;
  height: 120px;
  border-radius: 4px;
  object-fit: cover;
  margin: 0 auto var(--space-md);
  border: 4px solid var(--gray-100);
}
.team-card h4 {
  font-size: 1.05rem;
  margin-bottom: 0.25rem;
}
.team-card .team-role {
  font-size: 0.82rem;
  color: var(--blue);
  font-weight: 500;
  margin-bottom: 0.5rem;
}
.team-card .team-inst {
  font-size: 0.8rem;
  color: var(--gray-500);
}

/* ---------- LEADERSHIP PAGE (Dynamic) ---------- */

/* Director Section */
.leader-director-section {
  padding: var(--space-4xl) 0 var(--space-3xl);
  position: relative;
  overflow: hidden;
}
.leader-director-section::before {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37,99,235,0.1) 0%, rgba(37,99,235,0.05) 45%, transparent 70%);
  top: -200px; right: -200px;
  animation: dirPulse 7s ease-in-out infinite;
}
.leader-director-section::after {
  content: '';
  position: absolute;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,160,23,0.09) 0%, rgba(212,160,23,0.04) 44%, transparent 70%);
  bottom: -100px; left: -100px;
  animation: dirPulse 9s ease-in-out infinite reverse;
}
@keyframes dirPulse {
  0%, 100% { transform: translate(0, 0) scale(1); filter: blur(0px); }
  25% { transform: translate(16px, -8px) scale(1.02); filter: blur(0px); }
  50% { transform: translate(-8px, 10px) scale(0.98); filter: blur(1px); }
  75% { transform: translate(10px, -14px) scale(1.01); filter: blur(0.2px); }
}
.leader-director {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: var(--space-3xl);
  align-items: center;
  position: relative;
}
.leader-director-img { position: relative; }
.leader-director-img img {
  width: 320px; height: 400px;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  border-radius: 4px;
  box-shadow: 0 20px 60px rgba(15,27,61,0.15);
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.leader-director:hover .leader-director-img img { transform: scale(1.02); }
/* Gold + blue corner accents on director photo */
.leader-director-img::before {
  content: '';
  position: absolute;
  top: -8px; left: -8px;
  width: 60px; height: 60px;
  border-left: 3px solid var(--gold);
  border-top: 3px solid var(--gold);
  z-index: 2;
  transition: all 0.4s ease;
}
.leader-director-img::after {
  content: '';
  position: absolute;
  bottom: -8px; right: -8px;
  width: 60px; height: 60px;
  border-right: 3px solid var(--blue);
  border-bottom: 3px solid var(--blue);
  z-index: 2;
  transition: all 0.4s ease;
}
.leader-director:hover .leader-director-img::before,
.leader-director:hover .leader-director-img::after {
  width: 80px; height: 80px;
}
.leader-badge {
  display: inline-block;
  background: var(--grad-brand);
  color: var(--white);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.4rem 1.2rem;
  border-radius: 2px;
  margin-bottom: 1.25rem;
}
.leader-director-content h2 {
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--gray-900);
  margin-bottom: 0.75rem;
}
.leader-director-content h2 a {
  color: var(--gray-900);
  text-decoration: none;
  transition: color 0.3s;
}
.leader-director-content h2 a:hover { color: var(--blue); }
.leader-accent-line {
  width: 50px; height: 3px;
  background: var(--grad-gold);
  margin-bottom: 1.25rem;
  position: relative;
  overflow: hidden;
}
.leader-accent-line::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
  animation: shimmer 2.5s ease infinite;
}
@keyframes shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
.leader-director-role {
  font-size: 0.95rem;
  color: var(--gray-600);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 0.15rem;
}
.leader-director-bio {
  font-size: 0.95rem;
  color: var(--gray-500);
  line-height: 1.8;
  margin-top: 1.25rem;
}

/* Team Section (Executive Leadership) */
.leader-team-section {
  padding: var(--space-4xl) 0;
  background: var(--gray-50);
  position: relative;
}
.leader-team-section::before {
  content: '';
  position: absolute;
  top: -40px; left: 0; right: 0;
  height: 80px;
  background: var(--gray-50);
  clip-path: polygon(0 50%, 100% 0, 100% 100%, 0 100%);
}
.leader-team-header {
  text-align: left;
  margin-bottom: var(--space-3xl);
}
.leader-section-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 0.75rem;
}
.leader-section-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 2.4rem;
  font-weight: 400;
  color: var(--gray-900);
  margin-bottom: 0.75rem;
}
.leader-section-desc {
  font-size: 1.05rem;
  color: var(--gray-500);
  max-width: 580px;
  margin: 0;
  line-height: 1.7;
}

/* Team Card Grid — photo-forward with hover overlays */
.leader-team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 310px));
  justify-content: center;
  gap: 1.5rem;
  align-items: stretch;
}
.leader-team-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 39, 64, 0.1);
  box-shadow: 0 10px 28px rgba(15, 39, 64, 0.06);
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}
.leader-team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(15, 39, 64, 0.1);
  border-color: rgba(15, 39, 64, 0.18);
}
.leader-team-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad-gold);
  opacity: 1;
}
.leader-team-card-media {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #fff;
}
.leader-team-card-media::after {
  content: none;
}
.leader-team-card-media {
  aspect-ratio: 1 / 1;
}
.leader-team-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  padding: 0;
  transition: transform 0.25s ease;
}
.leader-team-card:hover .leader-team-card-media img {
  transform: scale(1.01);
}
.leader-team-card-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0.72rem;
  padding: 1.3rem 1.35rem 1.4rem;
  min-height: 210px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  border-top: 1px solid rgba(15, 39, 64, 0.08);
}
.leader-team-card-role {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.6;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: #1f5ea3;
}
.leader-team-card-panel h4 {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.26;
  letter-spacing: -0.01em;
}
.leader-team-card-panel h4 a {
  color: var(--gray-900);
  text-decoration: none;
  font-weight: 700;
  transition: color 0.3s;
}
.leader-team-card-panel h4 a:hover { color: var(--blue); }
.leader-team-card-inst {
  margin: 0;
  font-size: 0.9rem;
  color: #5f6f82;
  display: block;
  line-height: 1.7;
  font-weight: 400;
}
.leader-team-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  width: fit-content;
  margin-top: auto;
  padding-top: 0.1rem;
  color: var(--navy);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
}

.leader-team-card-panel > * + .leader-team-card-cta {
  margin-top: 0.35rem;
}
.leader-team-card-cta::after {
  content: '→';
  transition: transform 0.25s ease;
}
.leader-team-card:hover .leader-team-card-cta::after {
  transform: translateX(4px);
}

.leader-team-card--staff {
  text-decoration: none;
}

.leader-team-card--staff .leader-team-card-panel h4,
.leader-team-card--staff .leader-team-card-panel h4 a {
  font-size: 1.06rem;
}

.leader-team-card-media--placeholder {
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,0.22) 0%, transparent 28%),
    linear-gradient(135deg, #eef3f8 0%, #dbe4ee 100%);
  display: grid;
  place-items: center;
}

.staff-placeholder {
  width: 112px;
  height: 112px;
  border-radius: 999px;
  border: 1px solid rgba(31, 94, 163, 0.14);
  background: rgba(255,255,255,0.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
  display: grid;
  place-items: center;
}

.staff-placeholder span {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #1f5ea3;
}

/* Staff Section */
.leader-staff-section {
  padding: var(--space-4xl) 0;
  position: relative;
}
.staff-categories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 310px));
  justify-content: center;
  gap: 1.5rem;
  align-items: stretch;
}

/* Responsive Leadership */
@media (max-width: 900px) {
  .leader-director { grid-template-columns: 240px 1fr; gap: var(--space-xl); }
  .leader-director-img img { width: 240px; height: 300px; }
  .leader-team-grid { grid-template-columns: repeat(2, minmax(0, 310px)); }
  .staff-categories { grid-template-columns: repeat(2, minmax(0, 310px)); }
}
@media (max-width: 600px) {
  .leader-director { grid-template-columns: 1fr; text-align: center; }
  .leader-director-img { margin: 0 auto; }
  .leader-director-img img { width: 220px; height: 280px; }
  .leader-director-img::before,
  .leader-director-img::after { display: none; }
  .leader-accent-line { margin: 0 auto 1.25rem; }
  .leader-badge { margin-bottom: 1rem; }
  .leader-team-grid { grid-template-columns: 1fr; gap: 1.2rem; }
  .leader-team-card { width: 100%; }
  .leader-team-card-media { aspect-ratio: 1 / 1; }
  .leader-team-card-panel { min-height: 0; }
  .leader-team-card-panel h4 { font-size: 1.08rem; }
  .leader-team-card-role { font-size: 0.66rem; }
  .leader-team-card-inst { font-size: 0.9rem; }
  .staff-categories { grid-template-columns: 1fr; }
}

/* ---------- PUBLICATIONS TABLE ---------- */
.pub-list {
  list-style: none;
}
.pub-item {
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--gray-200);
}
.pub-item:last-child { border-bottom: none; }
.pub-title {
  font-weight: 600;
  font-size: 1rem;
  color: var(--navy);
  margin-bottom: 0.25rem;
}
.pub-authors {
  font-size: 0.88rem;
  color: var(--gray-500);
}
.pub-journal {
  font-size: 0.85rem;
  color: var(--gray-400);
  font-style: italic;
}

/* ---------- SEARCH OVERLAY ---------- */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background:
    radial-gradient(circle at 84% 14%, rgba(226,178,48,0.16) 0%, transparent 34%),
    radial-gradient(circle at 12% 85%, rgba(61,142,201,0.2) 0%, transparent 38%),
    rgba(7,18,33,0.94);
  backdrop-filter: blur(12px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition);
  overflow-y: auto;
  padding: clamp(5.5rem, 11vh, 7rem) 1rem 2rem;
}
.search-overlay.active {
  opacity: 1;
  visibility: visible;
}
.search-overlay-inner {
  width: 90%;
  max-width: 980px;
  text-align: left;
  background: linear-gradient(180deg, rgba(9, 28, 50, 0.9), rgba(8, 22, 41, 0.92));
  border: 1px solid rgba(148, 178, 204, 0.28);
  border-radius: 18px;
  padding: 1.15rem;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
}
.search-overlay input {
  width: 100%;
  padding: 0.95rem 1.1rem;
  border: 1px solid rgba(159, 191, 219, 0.34);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.05);
  font-size: 1.08rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--white);
  outline: none;
  font-family: var(--font-body);
  transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
}
.search-overlay input:focus {
  border-color: rgba(107, 184, 227, 0.9);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 0 0 3px rgba(61, 142, 201, 0.2);
}
.search-overlay input::placeholder {
  color: rgba(231, 241, 255, 0.52);
}
.search-close {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  width: 42px;
  height: 42px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 999px;
  color: var(--white);
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
  transition: all var(--transition);
}
.search-close:hover {
  background: rgba(255, 255, 255, 0.22);
  transform: rotate(90deg);
}
.search-close:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.8);
  outline-offset: 2px;
}

.search-results {
  margin-top: 0.9rem;
  display: grid;
  gap: 0.55rem;
  max-height: min(60vh, 620px);
  overflow-y: auto;
  padding-right: 0.25rem;
}
.search-empty {
  color: rgba(236, 246, 255, 0.76);
  font-size: 0.96rem;
  padding: 1.1rem 0.7rem;
}
.search-result-item {
  display: block;
  border: 1px solid rgba(152, 187, 217, 0.24);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  padding: 0.8rem 0.9rem;
  color: var(--white);
  text-decoration: none;
  transition: all var(--transition);
}
.search-result-item:hover {
  border-color: rgba(107, 184, 227, 0.85);
  background: rgba(61, 142, 201, 0.16);
  transform: translateY(-1px);
}
.search-result-title {
  font-size: 1rem;
  font-weight: 700;
  color: #f7fbff;
  margin-bottom: 0.1rem;
}
.search-result-url {
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(197, 223, 243, 0.75);
  margin-bottom: 0.28rem;
}
.search-result-snippet {
  font-size: 0.92rem;
  line-height: 1.55;
  color: rgba(224, 239, 255, 0.88);
}

/* ---------- ANIMATIONS ---------- */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}
.fade-in {
  opacity: 0;
  transition: opacity 0.6s ease;
}
.fade-in.visible {
  opacity: 1;
}
.slide-right {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.slide-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Stagger children */
.stagger > * { transition-delay: calc(var(--i, 0) * 0.1s); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .stats-title-heading { font-size: clamp(1.7rem, 4.5vw, 2.2rem); }
  .stats-title-copy { font-size: 0.92rem; }
  .section--fixed-bg { background-attachment: scroll !important; }
  .site-footer { background-attachment: scroll; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > .footer-col { transform: none; }
  .footer-brand img { height: 84px; }
  .content-layout { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .enrichment-photo-orbit-wrap { width: 340px; }
}

@media (max-width: 768px) {
  :root { --header-h: 70px; }

  .logo { padding: 0.5rem 1rem 0.5rem 0.75rem; margin-left: 0; }
  .logo img { height: 42px; }
  .site-header.scrolled .logo img { height: 36px; }

  .header-right {
    width: 100%;
    padding-right: 0;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
  }
  .header-cta {
    order: 2;
    margin-left: auto;
    padding: 0;
    border-bottom: none;
  }
  .header-search-btn {
    width: 40px;
    height: 40px;
    border-color: rgba(18, 38, 58, 0.16);
    box-shadow: 0 4px 10px rgba(15, 27, 61, 0.1);
  }

  .search-overlay {
    padding-top: calc(var(--header-h) + 1.1rem);
  }
  .search-overlay-inner {
    width: 94%;
    padding: 0.8rem;
    border-radius: 14px;
  }
  .search-overlay input {
    font-size: 1rem;
    padding: 0.85rem 0.95rem;
  }
  .search-results {
    max-height: 56vh;
    gap: 0.45rem;
  }
  .search-result-item {
    border-radius: 10px;
    padding: 0.72rem 0.75rem;
  }
  .search-result-title {
    font-size: 0.94rem;
  }
  .search-result-snippet {
    font-size: 0.86rem;
  }

  /* Show CTA + toggle inline */
  .mobile-toggle { display: flex; }

  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--white);
    flex-direction: column;
    padding: 1rem 1.25rem 2rem;
    transform: translateX(100%);
    transition: transform var(--transition);
    overflow-y: auto;
  }
  .main-nav.open {
    transform: translateX(0);
  }
  .nav-list {
    flex-direction: column;
    width: 100%;
    gap: 0.15rem;
  }
  .nav-link {
    padding: 0.8rem 0.3rem;
    font-size: 1rem;
    border-bottom: 0;
  }
  .nav-item {
    width: 100%;
    flex-wrap: wrap;
    min-height: 0;
    border-bottom: 1px solid var(--gray-100);
  }
  .nav-item > .nav-link {
    flex: 1;
  }
  .nav-toggle {
    display: none;
  }
  .nav-item.dropdown-open {
    background: var(--gray-50);
    border-radius: 0.5rem;
    border-bottom-color: transparent;
  }
  .nav-link::after { display: none; }
  .dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none !important;
    box-shadow: none;
    margin: 0.1rem 0 0.7rem;
    padding: 0.35rem 0.5rem 0.4rem 0.85rem;
    display: none;
    min-width: 0;
    border-radius: 0;
    pointer-events: auto;
    z-index: auto;
    width: 100%;
    background: var(--white);
    border-left: 3px solid var(--gold);
    border-radius: 0 0.35rem 0.35rem 0;
  }
  .dropdown::before,
  .dropdown::after {
    display: none;
  }
  .dropdown a:first-child {
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: none;
    letter-spacing: 0;
    border-bottom: none;
    margin-bottom: 0;
    min-height: 40px;
    padding: 0.55rem 0.5rem;
  }
  .dropdown a:first-child::before {
    display: none;
  }
  .dropdown a:not(:first-child)::before {
    display: none;
  }
  .dropdown a {
    min-height: 40px;
    padding: 0.55rem 0.5rem;
    font-size: 0.9rem;
    color: var(--gray-600);
    border-bottom: 1px solid var(--gray-50);
  }
  .dropdown a:hover {
    background: none;
    color: var(--gold);
  }
  .nav-item.dropdown-open > .dropdown {
    display: block;
  }
  .dropdown.dropdown-mega {
    min-width: 0;
  }
  .dropdown-mega .dropdown-columns {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
  .dropdown-mega .dropdown-col-head {
    display: block;
    padding: 0.55rem 0.5rem 0.2rem;
    font-size: 0.68rem;
    line-height: 1.25;
    letter-spacing: 0.08em;
  }
  .header-cta { display: none; }

  .hero { min-height: 70vh; }
  .hero-content { padding-bottom: calc(var(--space-2xl) + 120px); }
  .hero-content h1 { font-size: 2rem; }
  .hero-bottom-inner { flex-direction: column; text-align: center; gap: var(--space-md); }
  .hero-bottom-label { white-space: normal; font-size: 0.72rem; }
  .hero-bottom-logos { gap: var(--space-lg); flex-wrap: wrap; justify-content: center; }
  .hero-bottom-logos img { height: 28px; }

  /* Hero modern responsive */
  .hero-modern { min-height: auto; }
  .hero-modern-img { height: 60vh; }
  .hero-overlay-card {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    max-width: 100%;
    width: 100%;
    min-width: 0;
    padding: 2rem 1.5rem;
    border-left: 4px solid var(--gold);
  }
  .hero-overlay-card::before { display: none; }
  .hero-overlay-card::after { display: none; }
  .hero-overlay-card h2 { font-size: 1.3rem; }
  .hero-promo-card {
    position: relative;
    top: auto;
    right: auto;
    transform: none;
    max-width: 100%;
    width: 100%;
    min-width: 0;
    padding: 2rem 1.5rem;
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  }
  .hero-promo-card::before { display: none; }
  .hero-promo-card h2 { font-size: 1.4rem; }
  /* Page header responsive */
  .page-header, .page-header[data-hero-split] { grid-template-columns: 1fr !important; height: auto; min-height: auto; margin-top: var(--header-h); }
  .page-header-content { padding: 2.5rem 1.5rem 2rem; }
  .page-header-image { height: auto !important; min-height: 180px; }
  .page-header-image--pattern { min-height: 140px; }
  .page-header-icon { width: 80px; height: 80px; }
  .page-header-icon svg { width: 36px; height: 36px; }
  .page-header:not(:has(.page-header-content)) { min-height: clamp(220px, 34vh, 280px); padding: 0; }
  .page-header + .section { padding-top: var(--space-2xl); }
  .page-header + .section-sm { padding-top: var(--space-xl); }

  .enrichment-photo-hero {
    grid-template-columns: 1fr;
    padding: var(--space-xl);
    gap: var(--space-xl);
  }
  .enrichment-photo-orbit-wrap {
    width: 340px;
    margin: 0 auto;
  }
  .enrichment-photo-orbit-dot {
    width: 64px;
    height: 64px;
    transform: translate(-50%, -50%) rotate(var(--angle)) translate(152px) rotate(calc(-1 * var(--angle)));
  }
  .enrichment-photo-orbit-dot.is-active {
    transform: translate(-50%, -50%) rotate(var(--angle)) translate(152px) rotate(calc(-1 * var(--angle))) scale(1.1);
  }
  .enrichment-event-story-grid {
    grid-template-columns: 1fr;
  }
  .event-gallery-overview,
  .event-gallery-grid-head {
    grid-template-columns: 1fr;
  }
  .event-gallery-overview-figure img {
    min-height: 280px;
  }
  .event-gallery-grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 190px));
  }
  .event-lightbox-dialog {
    width: min(100vw - 1rem, 1040px);
    margin: 0.5rem auto;
    padding: 0.9rem;
  }
  .event-lightbox-stage {
    grid-template-columns: 52px minmax(0, 1fr) 52px;
    gap: 0.65rem;
  }
  .event-lightbox-nav {
    width: 52px;
    height: 52px;
  }
  .event-lightbox-image-wrap {
    min-height: min(68vh, 760px);
  }

  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-card { min-height: 220px; }
  .stat-card::before { height: 28px; }
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .site-footer { margin-top: 50px; }
  .site-footer::before { top: -50px; height: 50px; }
  .feature-card { flex-direction: column; text-align: center; }
}

@media (max-width: 600px) {
  .enrichment-photo-orbit-wrap {
    width: 280px;
  }
  .enrichment-photo-orbit-dot {
    transform: translate(-50%, -50%) rotate(var(--angle)) translate(122px) rotate(calc(-1 * var(--angle)));
    width: 58px;
    height: 58px;
  }
  .enrichment-photo-orbit-dot.is-active {
    transform: translate(-50%, -50%) rotate(var(--angle)) translate(122px) rotate(calc(-1 * var(--angle))) scale(1.06);
  }
  .event-gallery-overview {
    padding: 1.2rem;
    border-radius: 24px;
  }
  .event-gallery-grid {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  .event-gallery-thumb {
    border-radius: 20px;
  }
  .event-lightbox-dialog {
    width: calc(100vw - 0.5rem);
    min-height: 100vh;
    margin: 0;
    border-radius: 0;
    padding: 0.85rem 0.55rem 0.75rem;
  }
  .event-lightbox-topbar {
    padding-right: 3rem;
  }
  .event-lightbox-stage {
    grid-template-columns: 1fr;
  }
  .event-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
  }
  .event-lightbox-nav--prev {
    left: 0.65rem;
  }
  .event-lightbox-nav--next {
    right: 0.65rem;
  }
  .event-lightbox-figure img {
    max-height: 68vh;
  }
  .event-lightbox-image-meta {
    min-height: 2.2rem;
    padding: 0.45rem 0.72rem;
    font-size: 0.72rem;
  }
  .event-lightbox-image-head {
    padding-bottom: 0.75rem;
  }

  .stats-title { margin-bottom: var(--space-xl); }
  .stats-kicker { font-size: 0.66rem; }
  .stats-kicker::before,
  .stats-kicker::after { width: 22px; }
  .stats-title-heading { font-size: 1.55rem; }
  .stats-title-copy { font-size: 0.88rem; }
  .stats-accent-ribbon { margin-top: 0.9rem; width: min(270px, 82vw); }
}

@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stat-card { min-height: 180px; }
  .stat-card::before { height: 20px; }
  .hero-content h1 { font-size: 2rem; }
}

/* ---------- PRINT ---------- */
@media print {
  .site-header, .site-footer, .cta-band, .search-overlay { display: none; }
  body { color: #000; background: #fff; }
}

/* ============================================================
   MOBILE OPTIMIZATION — Comprehensive fixes
   Prevents horizontal overflow and improves mobile UX
   ============================================================ */

/* Fix iOS Safari horizontal scroll: body overflow-x alone is insufficient */
html {
  overflow-x: hidden;
}

/* Ensure sections and containers never bleed beyond viewport */
.section,
.section-sm,
.section-lg,
.container,
.container-narrow,
.site-header,
.site-footer,
.page-header,
.hero-modern,
.partners-section,
.stats-section,
.cta-band {
  max-width: 100vw;
}

/* Partners marquee: ensure scroll wrapper clips correctly */
.partners-marquee-wrap,
.partners-marquee {
  overflow: hidden;
  max-width: 100vw;
}

/* Hero: prevent absolute cards from leaking past viewport on resize edge cases */
.hero-modern {
  overflow-x: hidden;
}

/* ---------- Phone (≤ 480px) ---------- */
@media (max-width: 480px) {

  /* Tighten section padding */
  .section     { padding: var(--space-2xl) 0; }
  .section-sm  { padding: var(--space-xl) 0; }
  .section-lg  { padding: var(--space-2xl) 0; }

  /* Containers breathe but don't over-pad */
  .container,
  .container-narrow { width: 94%; }

  /* Hero modern — stack cards cleanly */
  .hero-modern-img { height: 46vh; }
  .hero-overlay-card,
  .hero-promo-card {
    padding: 1.5rem 1.25rem;
    min-width: 0;
    width: 100%;
  }
  .hero-overlay-card h2 { font-size: 1.15rem; }
  .hero-promo-card h2  { font-size: 1.2rem; }

  /* Hero funding badge */
  .hero-funding-badge {
    font-size: 0.72rem;
    padding: 0.4rem 0.8rem 0.4rem 0.6rem;
    max-width: 92vw;
    white-space: normal;
    text-align: center;
  }

  /* Stats */
  .stats-grid { grid-template-columns: 1fr; }

  /* Footer — single column, tighter */
  .footer-main-grid  { grid-template-columns: 1fr; gap: var(--space-lg); }
  .footer-info-col   { padding-right: 0; }
  .footer-logo       { height: 52px; }
  .footer-social-icons a { width: 48px; height: 48px; }
  .footer-bottom     { font-size: 0.72rem; gap: var(--space-sm); }
  .niddk-notice      { font-size: 0.7rem; }

  /* Event list */
  .event-item { gap: var(--space-md); padding: var(--space-lg) 0; }
  .event-date { width: 52px; }
  .event-date .day { font-size: 1.6rem; }

  /* Nav mobile: larger tap targets */
  .nav-link { padding: 1rem 0; font-size: 1rem; }
  .dropdown a { padding: 0.7rem 0; font-size: 0.9rem; }

  /* CTA buttons full-width */
  .cta-actions { flex-direction: column; align-items: stretch; }
  .cta-actions .btn { text-align: center; justify-content: center; }

  /* Partner logos smaller */
  .partner-logo-item { min-width: 120px; padding: 0.75rem 1rem; }
  .partner-logo-item img { max-height: 36px; }

  /* YouTube embed — prevent overflow */
  .yt-channel-embed { grid-template-columns: 1fr; }
  .yt-sidebar { max-height: none; }

  /* Back-to-top button */
  .back-to-top { width: 40px !important; height: 40px !important; bottom: 1rem !important; right: 1rem !important; }

  /* Page header */
  .page-header-content { padding: 1.75rem 1.25rem 1.5rem; }
  .page-header h1 { font-size: clamp(1.5rem, 6vw, 2rem); }

  /* Consultation / form pages */
  .grid { grid-template-columns: 1fr !important; }
  .field-full { grid-column: 1 / -1; }

  /* Newsletter CTA buttons: go full width when stacked */
  .newsletter-cta-actions {
    width: 100% !important;
    align-items: stretch !important;
  }
  .newsletter-cta-actions .btn {
    width: 100% !important;
    justify-content: center;
  }
}

/* ---------- Touch improvements for all mobile ---------- */
@media (hover: none) and (pointer: coarse) {
  /* Enlarge touch targets */
  .btn, button, a.nav-link, .dropdown a {
    min-height: 44px;
  }
  /* Disable hover animations that look odd on touch */
  .stat-card:hover,
  .news-card:hover,
  .core-card:hover,
  .enrichment-photo-card:hover,
  .li-card:hover,
  .partner-logo-item:hover {
    transform: none;
  }
  /* Faster scroll for marquee on touch */
  .partners-marquee-track {
    animation-duration: 28s;
  }
}

/* ---------- Width safety net: prevent any direct child of body from overflowing ---------- */
body > * {
  max-width: 100vw;
  overflow-x: hidden;
}

/* ============================================================
   MOBILE HARDENING — site-wide responsive safety layer
   ============================================================ */

html {
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 320px;
}

body.nav-open {
  overflow: hidden;
  touch-action: none;
}

iframe,
video,
embed,
object {
  max-width: 100%;
}

main,
section,
article,
aside,
.container,
.container-narrow,
.card,
.exec-card,
.publication-card,
.publication-detail-card,
.publication-side-card,
.publications-empty-card {
  min-width: 0;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

input,
select,
textarea {
  font-size: 16px;
}

table {
  max-width: 100%;
}

.publications-table-shell,
.publication-asset-modal-table-shell,
.publication-data-table,
.event-gallery-grid-wrap,
.table-wrap {
  -webkit-overflow-scrolling: touch;
}

.publications-table,
.publication-asset-modal-table,
.publication-data-table {
  min-width: 720px;
}

.btn,
button,
[role="button"],
input[type="submit"],
input[type="button"] {
  touch-action: manipulation;
}

@media (max-width: 1024px) {
  .page-header,
  .publications-hero,
  .publication-detail-hero,
  .enrichment-photo-hero,
  .event-gallery-overview,
  .publications-shell,
  .publication-detail-shell,
  .publication-related-shell {
    overflow-x: hidden;
  }

  .section,
  .section-sm,
  .publications-shell,
  .publication-detail-shell,
  .publication-related-shell {
    padding-left: max(0px, env(safe-area-inset-left));
    padding-right: max(0px, env(safe-area-inset-right));
  }
}

@media (max-width: 768px) {
  .site-header,
  .site-header.scrolled {
    height: var(--header-h);
  }

  .header-inner {
    align-items: center;
    width: min(94%, var(--max-width));
  }

  .logo {
    border-right: 0;
    padding-left: 0;
    padding-right: 0.75rem;
  }

  .mobile-toggle {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 999px;
  }

  .mobile-toggle:focus-visible {
    outline: 3px solid rgba(61, 142, 201, 0.45);
    outline-offset: 2px;
  }

  .main-nav {
    z-index: 999;
    height: calc(100dvh - var(--header-h));
    padding: 1rem max(1rem, env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    overscroll-behavior: contain;
    visibility: hidden;
  }

  .main-nav.open {
    visibility: visible;
  }

  .nav-list {
    align-items: stretch;
    min-height: 0;
  }

  .nav-item {
    display: block;
    min-height: 0;
    border-radius: 0;
    overflow: visible;
    transform: none !important;
  }

  .nav-link {
    min-height: 52px;
    height: auto;
    white-space: normal;
    line-height: 1.25;
  }

  .dropdown {
    width: 100%;
    background: rgba(249, 250, 251, 0.92);
    border: 0;
    margin: 0 0 0.45rem;
  }

  .dropdown a {
    min-height: 48px;
    line-height: 1.35;
  }

  .hero-modern-img {
    height: min(58vh, 520px);
  }

  .hero-overlay-card,
  .hero-promo-card {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .hero-promo-card .btn,
  .cta-actions .btn,
  .newsletter-cta-actions .btn,
  .publications-toolbar-link {
    width: 100%;
    justify-content: center;
  }

  .feed-tabs,
  .publications-view-toggle,
  .publications-pagination {
    overflow-x: auto;
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
  }

  .feed-tab,
  .publication-tag-filter,
  .publications-view-btn,
  .publications-page-btn {
    min-height: 44px;
    flex: 0 0 auto;
  }

  .yt-sidebar,
  .search-results {
    overscroll-behavior: contain;
  }

  .publications-table-shell,
  .publication-asset-modal-table-shell {
    overflow-x: auto;
  }
}

@media (max-width: 600px) {
  h1 { font-size: clamp(1.85rem, 9vw, 2.35rem); }
  h2 { font-size: clamp(1.45rem, 7vw, 1.9rem); }
  h3 { font-size: clamp(1.15rem, 5.5vw, 1.45rem); }

  .section,
  .section-sm {
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
  }

  .container,
  .container-narrow {
    width: min(92%, 34rem);
  }

  .section-subtitle,
  .stats-title-copy,
  .card-body p,
  .exec-card p {
    font-size: 0.95rem;
    line-height: 1.65;
  }

  .btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
    padding: 0.85rem 1rem;
    white-space: normal;
    text-align: center;
  }

  .btn-sm {
    min-height: 44px;
  }

  .card-body,
  .icon-card,
  .exec-card {
    padding: 1.35rem;
  }

  .feature-card {
    padding: 1.35rem;
    gap: 1rem;
  }

  .stat-card-inner {
    padding: 1.25rem;
  }

  .stat-number {
    font-size: clamp(2.4rem, 14vw, 3.4rem);
  }

  .hero-modern-img {
    height: min(48vh, 420px);
  }

  .hero-overlay-card,
  .hero-promo-card {
    padding: 1.35rem;
  }

  .search-close {
    width: 48px;
    height: 48px;
  }

  .search-overlay {
    padding-left: 0;
    padding-right: 0;
  }

  .search-results {
    max-height: 62dvh;
  }

  .yt-video-item {
    grid-template-columns: 1fr;
  }

  .yt-video-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .publications-pagination {
    width: 100%;
    gap: 0.5rem;
  }

  .publications-page-btn {
    min-width: 0;
    flex: 1 1 0;
  }
}

/* ============================================================
   MOBILE LAYOUT REPAIR — fix real clipping instead of masking it
   ============================================================ */

body > * {
  overflow-x: visible;
}

.content-layout,
.content-layout > *,
.content-layout [style],
.section [style*="display:grid"],
.section [style*="display:flex"],
.section [style*="grid-template-columns"],
.section [style*="padding:var(--space-2xl)"],
.section [style*="padding:var(--space-xl)"] {
  max-width: 100%;
  min-width: 0;
}

.section p,
.section li,
.section h1,
.section h2,
.section h3,
.section h4,
.section a,
.section strong {
  overflow-wrap: anywhere;
  word-break: normal;
}

.section .btn,
.section button {
  overflow-wrap: normal;
}

@media (max-width: 1100px) {
  .content-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: var(--space-2xl);
  }

  .content-layout .sidebar {
    position: static;
    width: 100%;
  }
}

@media (max-width: 820px) {
  .page-header,
  .page-header[data-hero-split] {
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto;
    min-height: auto;
    width: 100%;
    max-width: 100%;
  }

  .page-header-content,
  .page-header-image {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .page-header-content .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.45rem;
    max-width: 100%;
  }

  .page-header-content h1,
  .page-header-content p {
    max-width: 100%;
  }

  .container,
  .container-narrow {
    width: min(92%, 42rem);
  }

  .section [style*="grid-template-columns:1fr 1fr"],
  .section [style*="grid-template-columns: 1fr 1fr"],
  .section [style*="grid-template-columns:repeat(2"],
  .section [style*="grid-template-columns: repeat(2"],
  .section [style*="grid-template-columns:repeat(3"],
  .section [style*="grid-template-columns: repeat(3"],
  .section [style*="grid-template-columns:repeat(4"],
  .section [style*="grid-template-columns: repeat(4"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .section article.card[style*="grid-template-columns"],
  .section [style*="grid-template-columns:280px"],
  .section [style*="grid-template-columns: 280px"],
  .section [style*="grid-template-columns:260px"],
  .section [style*="grid-template-columns: 260px"],
  .section [style*="grid-template-columns:320px"],
  .section [style*="grid-template-columns: 320px"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .content-layout > div > .fade-up[style*="grid-template-columns"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .content-layout [style*="display:flex"] {
    flex-wrap: wrap;
  }

  .section [style*="display:flex"][style*="box-shadow"],
  .section [style*="display:flex"][style*="border-radius"] {
    max-width: 100%;
  }

  .content-layout [style*="display:flex"] > div,
  .content-layout [style*="display:flex"] > a,
  .content-layout [style*="display:flex"] > p {
    min-width: 0;
  }

  .content-layout > div > .fade-up[style*="grid-template-columns"] > div[style*="display:flex"][style*="linear-gradient"] {
    width: 100%;
  }

  .content-layout > div > .fade-up[style*="border-left"] {
    padding: 1.5rem !important;
  }

  .content-layout > div > .fade-up[style*="border-left"] .btn {
    width: 100%;
    justify-content: center;
  }

  .sidebar-widget,
  .sidebar-cta {
    padding: 1.35rem;
  }
}

@media (max-width: 560px) {
  .stagger > .fade-up[style*="display:flex"],
  .stagger > .fade-up[style*="display: flex"] {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .stagger > .fade-up[style*="display:flex"] > div,
  .stagger > .fade-up[style*="display: flex"] > div {
    width: 100%;
    min-width: 0 !important;
  }

  .section [style*="padding:var(--space-2xl)"],
  .section [style*="padding: var(--space-2xl)"] {
    padding: 1.35rem !important;
  }

  .section [style*="padding:var(--space-xl)"],
  .section [style*="padding: var(--space-xl)"] {
    padding: 1.15rem !important;
  }

  .content-layout > div > .fade-up[style*="grid-template-columns"] > div[style*="display:flex"][style*="linear-gradient"] {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 1rem !important;
  }

  .content-layout > div > .fade-up[style*="grid-template-columns"] > div[style*="display:flex"][style*="linear-gradient"] > div:first-child {
    width: 78px !important;
    height: 78px !important;
  }

  .content-layout > div > .fade-up[style*="grid-template-columns"] > div[style*="display:flex"][style*="linear-gradient"] h3 {
    font-size: 1.05rem !important;
    line-height: 1.25;
  }

  .content-layout > div > .fade-up[style*="grid-template-columns"] > div[style*="display:flex"][style*="linear-gradient"] p {
    font-size: 0.86rem !important;
    line-height: 1.55;
  }

  .content-layout [style*="display:flex"][style*="box-shadow"] {
    align-items: flex-start !important;
  }

  .section > .container > .fade-up[style*="display:flex"],
  .section [style*="display:flex"][style*="gap:var(--space-2xl)"] {
    flex-direction: column;
  }

  .section [style*="min-width:140px"] {
    min-width: 0 !important;
    width: 100% !important;
    height: auto !important;
  }

  .section [style*="max-width:234px"],
  .section [style*="max-width: 234px"] {
    max-width: 100% !important;
  }

  .content-layout [style*="display:flex"][style*="box-shadow"] > div:last-child {
    flex: 1 1 12rem;
  }

  .content-layout ol,
  .content-layout ul {
    padding-left: 1.15rem !important;
  }
}

@media (max-width: 430px) {
  .container,
  .container-narrow {
    width: calc(100% - 2rem);
  }

  .page-header-content {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .page-header-image {
    min-height: 110px;
  }

  .enrichment-photo-hero {
    padding: 1rem;
  }

  .enrichment-photo-orbit-wrap {
    width: min(238px, 100%);
  }

  .enrichment-photo-orbit-dot {
    width: 48px;
    height: 48px;
    transform: translate(-50%, -50%) rotate(var(--angle)) translate(102px) rotate(calc(-1 * var(--angle)));
  }

  .enrichment-photo-orbit-dot.is-active {
    transform: translate(-50%, -50%) rotate(var(--angle)) translate(102px) rotate(calc(-1 * var(--angle))) scale(1.06);
  }

  .content-layout {
    gap: 1.5rem;
  }

  .content-layout > div > h2 {
    line-height: 1.08;
  }
}

/* ---------- Leadership redesign (Figma, 2026–2031 cycle) ---------- */
.leadership-redesign { background:#fff; color:#4b5563; font-family:Inter,sans-serif; }.leadership-redesign h1,.leadership-redesign h2,.leadership-redesign h3,.leadership-redesign h4 { font-family:Lora,Georgia,serif; color:#12263a; }.leadership-redesign p { margin-bottom:0; }.leadership-wrap { width:min(1360px,90%); margin:0 auto; }.leadership-hero { height:600px; margin-top:var(--header-h); display:grid; grid-template-columns:41% 59%; background:#102a44; }.leadership-hero__copy { padding:58px 4rem 2rem clamp(2rem,5vw,4.75rem); color:#dce6ef; }.leadership-eyebrow,.leadership-kicker { color:#7030a0; font-size:.69rem; font-weight:800; letter-spacing:.16em; line-height:1.5; text-transform:uppercase; }.leadership-eyebrow { color:#f2ce5b; }.leadership-hero h1 { margin:4.55rem 0 2rem; color:#fff; font-size:56px; font-weight:400; letter-spacing:-.01em; line-height:66px; }.leadership-hero__copy p { max-width:500px; font-size:18px; line-height:30px; }.leadership-hero__image { overflow:hidden; }.leadership-hero__image img { width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }.leadership-scale { padding:42px 0; background:#f7f4fa; }.leadership-scale__layout { display:grid; grid-template-columns:430px 1fr; align-items:center; gap:45px; }.leadership-scale h2 { margin-top:1rem; font-size:34px; font-weight:600; line-height:42px; color:#241a29; }.leadership-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }.leadership-stat { position:relative; min-height:214px; padding:28px 27px 18px; background:white; border:1px solid #e0d6e8; border-radius:18px; box-shadow:0 8px 24px rgba(26,13,36,.1); overflow:hidden; }.leadership-stat:before { content:''; position:absolute; width:64px; height:5px; left:23px; top:21px; border-radius:3px; background:#f2ce5b; }.leadership-stat:after { content:'•'; position:absolute; color:#f2ce5b; font-size:34px; right:18px; top:21px; }.leadership-stat--blue:before,.leadership-stat--blue:after { background:#8cc7f2; color:#8cc7f2; }.leadership-stat b { display:block; margin-top:8px; color:#6b2f8a; font-family:Lora,Georgia,serif; font-size:42px; line-height:48px; }.leadership-stat strong { display:block; margin-top:8px; color:#3b2745; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }.leadership-stat p { margin-top:14px; color:#62546a; font-size:14px; line-height:22px; }.leadership-feature { padding:62px 0 50px; background:#fbfcfd; }.leadership-feature h2,.leadership-admin h2,.leadership-cores h2,.leadership-staff h2 { max-width:760px; margin:15px 0 34px; font-size:38px; font-weight:600; line-height:48px; }.leadership-feature__card { display:grid; grid-template-columns:360px 1fr; min-height:360px; overflow:hidden; color:#12263a; background:#fff; border:1px solid #e3e8ed; border-radius:16px; box-shadow:0 10px 24px rgba(15,31,51,.1); }.leadership-feature__card>img { width:100%; height:100%; object-fit:cover; object-position:50% 16%; }.leadership-feature__card>div { padding:43px 48px; }.leadership-feature__card span,.leadership-person span,.leadership-core>span,.leadership-core-people b,.leadership-staff span { display:inline-block; color:#1f5ea3; font-size:9px; font-weight:800; letter-spacing:.09em; line-height:16px; text-transform:uppercase; }.leadership-feature__card span { padding:6px 13px; border-radius:15px; color:#fff; background:#1f5ea3; }.leadership-feature__card h3 { margin:14px 0 5px; font-size:25px; }.leadership-feature__card small { display:block; color:#52667a; font-size:11px; line-height:16px; }.leadership-feature__card p { margin:23px 0 10px; font-size:13px; line-height:19px; }.leadership-feature__card em { color:#52667a; font-size:10px; font-style:normal; }.leadership-admin { padding:62px 0 50px; }.leadership-subhead { max-width:1040px; color:#62546a; font-size:14px; line-height:22px; }.leadership-group-title { margin:42px 0 28px; font-size:27px; }.leadership-person-grid { display:grid; gap:24px; }.leadership-person-grid--four { grid-template-columns:repeat(4,1fr); }.leadership-person { min-height:424px; padding:10px 12px 18px; color:#12263a; border:1px solid #dddde9; border-radius:12px; box-shadow:0 7px 15px rgba(15,31,51,.08); }.leadership-person>img,.leadership-person--initial>div { width:100%; height:160px; margin-bottom:14px; object-fit:cover; border-bottom:3px solid #f2ce5b; }.leadership-person--initial>div { display:grid; place-items:center; color:#1f5ea3; background:#e9f3fb; font-family:Inter,sans-serif; font-size:20px; font-weight:800; }.leadership-person h4 { margin:13px 0 18px; font-size:18px; line-height:23px; }.leadership-person p { min-height:52px; color:#637083; font-size:10px; line-height:15px; }.leadership-person strong,.leadership-staff strong { display:block; margin-top:16px; font-size:10px; font-weight:500; line-height:15px; }.leadership-outcomes { margin-top:50px; padding:23px 28px; border-radius:11px; color:#fff; background:#102a44; }.leadership-outcomes>p { color:#f2ce5b; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }.leadership-outcomes>div { display:grid; grid-template-columns:repeat(3,1fr); margin-top:17px; }.leadership-outcomes article { padding:0 27px; border-left:1px solid #36516c; }.leadership-outcomes article:first-child { padding-left:0; border:0; }.leadership-outcomes h4 { color:#fff; font-size:16px; }.leadership-outcomes span { display:block; margin-top:9px; color:#b5c4d2; font-size:11px; line-height:16px; }.leadership-cores { padding:62px 0; background:#f4f7fa; }.leadership-cores h2 { color:#241a29; }.leadership-core-grid { display:grid; grid-template-columns:1fr 1fr; gap:27px 38px; margin-top:32px; }.leadership-core { padding:20px 25px 17px; background:#fff; border-top:4px solid #1f70c1; border-radius:11px; box-shadow:0 8px 17px rgba(15,31,51,.1); }.leadership-core--green { border-top-color:#188f72; }.leadership-core--gold { border-top-color:#efb614; }.leadership-core--enrichment { grid-column:1 / -1; width:50%; justify-self:center; }.leadership-core h3 { margin:8px 0; font-size:25px; line-height:31px; }.leadership-core>p { min-height:36px; color:#637083; font-size:11px; line-height:16px; }.leadership-core-people { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:20px; }.leadership-core-people a { overflow:hidden; padding-bottom:15px; color:#12263a; background:#fff; border:1px solid #e3e8ed; border-radius:8px; }.leadership-core-people img,.leadership-core-people .leadership-person--initial>div { width:100%; height:183px; margin:0 0 12px; object-fit:cover; border-bottom:3px solid #f2ce5b; }.leadership-core-people b,.leadership-core-people h4 { margin-left:13px; }.leadership-core-people h4 { margin-top:6px; font-size:14px; }.leadership-staff { padding:62px 0 35px; }.leadership-staff-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:30px; }.leadership-staff-grid>a,.leadership-staff__initial { display:grid; grid-template-columns:165px 1fr; min-height:190px; overflow:hidden; color:#12263a; border:1px solid #dddde9; border-radius:10px; box-shadow:0 6px 14px rgba(15,31,51,.08); }.leadership-staff-grid>a img,.leadership-staff__initial>div { width:100%; height:100%; object-fit:cover; }.leadership-staff__initial>div { display:grid; place-items:center; color:#1f5ea3; background:#e9f3fb; border-right:3px solid #55a3df; font-size:22px; font-weight:800; }.leadership-staff-grid>a>div,.leadership-staff__initial section { padding:22px 20px; }.leadership-staff h3 { margin:14px 0 10px; font-size:21px; }.leadership-staff p { color:#637083; font-size:11px; line-height:16px; }.leadership-closing { padding:62px 0 76px; color:#dce6ef; background:#102a44; }.leadership-closing .leadership-kicker { color:#f2ce5b; }.leadership-closing h2 { max-width:750px; margin:16px 0 25px; color:#fff; font-size:38px; line-height:48px; }.leadership-closing p:last-child { max-width:900px; font-size:14px; line-height:22px; }
.leadership-redesign + .page-header,.leadership-redesign ~ .leader-director-section,.leadership-redesign ~ .leader-team-section,.leadership-redesign ~ .leader-staff-section,.leadership-redesign ~ .cta-band { display:none; }

/* Shared public-site hero standard: use the About split and center the copy block. */
.page-header {
  grid-template-columns: 41% 59% !important;
}
.page-header-content {
  padding: 0 2rem 0 clamp(2rem, 5vw, 4.75rem);
  justify-content: center;
}
.page-header-content .breadcrumb,
.about-hero__copy .breadcrumb,
.enrichment-hero__copy .breadcrumb,
.leadership-hero__copy .breadcrumb {
  margin-bottom: 2rem;
}
.about-hero__copy,
.enrichment-hero__copy,
.leadership-hero__copy {
  position: relative;
  padding: 0 2rem 0 clamp(2rem, 5vw, 4.75rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.about-hero__actions {
  margin-top: 2rem;
}
.enrichment-hero {
  grid-template-columns: 41% 59%;
}
.enrichment-hero__copy {
  padding-right: 0;
}
.enrichment-hero h1,
.leadership-hero h1 {
  margin-top: 0;
  margin-bottom: 2rem;
}
@media (max-width: 1000px) {
  .page-header {
    grid-template-columns: 1fr !important;
  }
  .enrichment-hero {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 700px) {
  .page-header-content,
  .about-hero__copy,
  .enrichment-hero__copy,
  .leadership-hero__copy {
    padding: 3rem 1.25rem;
  }
}
@media (min-width: 701px) {
  .page-header-content .breadcrumb,
  .about-hero__copy .breadcrumb,
  .enrichment-hero__copy .breadcrumb,
  .leadership-hero__copy .breadcrumb,
  .leadership-hero__copy .leadership-eyebrow {
    position: absolute;
    top: 58px;
    left: clamp(2rem, 5vw, 4.75rem);
    margin: 0;
  }
  .about-hero__actions {
    position: absolute;
    right: 2rem;
    bottom: 3.5rem;
    left: clamp(2rem, 5vw, 4.75rem);
  }
  .enrichment-hero__actions {
    position: absolute;
    right: 0;
    bottom: 1.25rem;
    left: clamp(2rem, 5vw, 4.75rem);
    flex-wrap: nowrap;
  }
}

/* Shared desktop hero action line: every public hero action begins at the same
   horizontal inset and sits 58px above the hero edge. */
@media (min-width: 1001px) {
  /* Shared hero copy line: titles start at 107px and summaries flow directly
     below them. This preserves the same visual starting point while allowing
     long titles and summaries to take the vertical space they need. */
  .page-header-content,
  .about-hero__copy,
  .enrichment-hero__copy,
  .leadership-hero__copy {
    box-sizing: border-box;
    display: block;
    height: 600px;
    padding: 107px 2rem 150px clamp(2rem, 5vw, 4.75rem);
  }
  .page-header-content h1,
  .about-hero h1,
  .enrichment-hero h1,
  .leadership-hero h1 {
    margin: 0 0 1.25rem;
  }
  .page-header-content > p,
  .about-hero__intro,
  .enrichment-hero__copy > p,
  .leadership-hero__copy > p {
    margin: 0;
  }
  .about-hero__actions,
  .enrichment-hero__actions {
    right: 2rem;
    bottom: 58px;
    left: clamp(2rem, 5vw, 4.75rem);
  }
  .enrichment-hero__copy > p { font-size:16px; line-height:26px; }
  .enrichment-hero__actions { flex-wrap:nowrap; gap:10px; }
  .enrichment-hero__actions .enrichment-btn {
    padding:14px 12px;
    font-size:12px;
    line-height:1.2;
    white-space:nowrap;
  }
  .leadership-hero { grid-template-columns: 43% 57%; }
}
@media (max-width:1000px) { .leadership-hero { height:auto; grid-template-columns:1fr; }.leadership-hero__copy { min-height:500px; }.leadership-hero__image { height:430px; }.leadership-scale__layout { grid-template-columns:1fr; }.leadership-stat-grid,.leadership-person-grid--four { grid-template-columns:repeat(2,1fr); }.leadership-core--enrichment { width:100%; }.leadership-feature__card { grid-template-columns:280px 1fr; }.leadership-staff-grid { grid-template-columns:1fr; } }
@media (max-width:700px) { .leadership-wrap { width:calc(100% - 2.5rem); }.leadership-hero__copy { min-height:0; padding:48px 1.25rem 3rem; }.leadership-hero h1 { margin:0 0 2rem; font-size:48px; line-height:1.15; }.leadership-hero__copy p { font-size:16px; line-height:26px; }.leadership-hero__image { height:340px; }.leadership-scale,.leadership-feature,.leadership-admin,.leadership-cores,.leadership-staff { padding:45px 0; }.leadership-feature h2,.leadership-admin h2,.leadership-cores h2,.leadership-staff h2,.leadership-closing h2 { font-size:30px; line-height:37px; }.leadership-stat-grid,.leadership-person-grid--four,.leadership-core-grid,.leadership-core-people,.leadership-staff-grid { grid-template-columns:1fr; }.leadership-feature__card { grid-template-columns:1fr; }.leadership-feature__card>img { height:300px; }.leadership-feature__card>div { padding:30px 24px; }.leadership-outcomes>div { grid-template-columns:1fr; gap:20px; }.leadership-outcomes article { padding:0; border:0; }.leadership-core--enrichment { grid-column:auto; }.leadership-staff-grid>a,.leadership-staff__initial { grid-template-columns:120px 1fr; }.leadership-closing { padding:48px 0; } }

/* Exact Figma KPI ornament assets. */
.leadership-stat:before,.leadership-stat:after { content:none; }
.leadership-stat { padding-top:29px; }
.leadership-stat__rule { position:absolute; top:21px; left:23px; width:64px; height:5px; border-radius:3px; background:#f2ce5b; }
.leadership-stat__ring { position:absolute; top:17px; left:157px; width:74px; height:74px; max-width:none; }
.leadership-stat__dot { position:absolute; top:48px; left:196px; width:12px; height:12px; max-width:none; }
.leadership-stat--blue .leadership-stat__rule { background:#8cc7f2; }
.leadership-stat b { margin-top:0; }
.leadership-stat strong { margin-top:14px; }
.leadership-stat p { margin-top:18px; }

/* Figma portrait cards use square image frames, not short landscape crops. */
.leadership-person>img { height:auto; aspect-ratio:1 / 1; object-fit:cover; object-position:center top; }
.leadership-core-people img { height:auto; aspect-ratio:1 / 1; object-fit:cover; object-position:center top; }
.leadership-core-people a { display:flex; min-height:465px; flex-direction:column; }
.leadership-core-people a p { margin:12px 13px 0; color:#637083; font-size:10px; line-height:15px; }
.leadership-core-people a strong { display:block; margin:15px 13px 0; color:#12263a; font-size:10px; font-weight:500; line-height:15px; }
.leadership-core-photo { display:block; width:100%; aspect-ratio:1 / 1; margin:0 0 12px; overflow:hidden; border-bottom:3px solid #f2ce5b; }
.leadership-core-people .leadership-core-photo img { display:block; width:100%; height:100%; margin:0; border:0; object-fit:cover; }
.leadership-core-photo--megha img { transform:scale(1.16); transform-origin:center 58%; }
@media (max-width:700px) { .leadership-person>img,.leadership-core-people img { height:auto; aspect-ratio:1 / 1; } }

/* Readability pass: the Figma hierarchy is retained, with usable text sizes in production. */
.leadership-feature__card small { font-size:12px; line-height:18px; }
.leadership-feature__card p { font-size:14px; line-height:21px; }
.leadership-person p { font-size:12px; line-height:18px; }
.leadership-person strong { font-size:12px; line-height:17px; }
.leadership-outcomes span { font-size:13px; line-height:19px; }
.leadership-core>p { font-size:13px; line-height:19px; }
.leadership-core-people b { font-size:10px; line-height:15px; }
.leadership-core-people h4 { font-size:16px; line-height:21px; }
.leadership-core-people a p { font-size:12px; line-height:18px; }
.leadership-core-people a strong { font-size:12px; line-height:17px; }
.leadership-staff p { font-size:12px; line-height:18px; }
.leadership-staff strong { font-size:12px; line-height:17px; }

/* Give the featured leader card and all profile metadata the visual weight the layout needs. */
.leadership-feature__card { min-height:330px; }
.leadership-feature__card>img { height:330px; }
.leadership-feature__card>div { padding:34px 48px; }
.leadership-feature__card h3 { margin:15px 0 8px; font-size:30px; line-height:37px; }
.leadership-feature__card small { font-size:14px; line-height:20px; }
.leadership-feature__card p { margin:25px 0 13px; color:#1f5ea3; font-size:17px; line-height:25px; }
.leadership-feature__card em { font-size:13px; line-height:18px; }
.leadership-person p { font-size:14px; line-height:20px; }
.leadership-person strong { font-size:13px; line-height:19px; }
.leadership-core>p { font-size:14px; line-height:20px; }
.leadership-core-people a p { font-size:14px; line-height:20px; }
.leadership-core-people a strong { font-size:13px; line-height:19px; }
.leadership-staff p { font-size:14px; line-height:20px; }
.leadership-staff strong { font-size:13px; line-height:19px; }
@media (max-width:700px) { .leadership-feature__card>img { height:300px; }.leadership-feature__card>div { padding:28px 24px; }.leadership-feature__card h3 { font-size:25px; line-height:32px; }.leadership-feature__card p { font-size:16px; line-height:24px; } }

/* About-page Figma implementation: scoped so the shared navigation, hero, and footer remain unchanged. */
.about-redesign .container { max-width:1360px; }
.about-redesign .about-section { padding:58px 0 47px; }
.about-redesign .about-section h2,
.about-redesign .about-impact h2 { margin:12px 0 8px; font-size:44px; line-height:54px; }
.about-redesign .about-lead { font-size:17px; line-height:28px; }
.about-redesign .about-pair { gap:56px; margin-top:60px; }
.about-redesign .about-panel { min-height:327px; padding:34px 38px; border-radius:14px; }
.about-redesign .about-panel h3 { margin:16px 0 24px; font-size:31px; line-height:42px; }
.about-redesign .about-priorities { padding:58px 0 62px; }
.about-redesign .about-card-grid { gap:40px 56px; margin-top:58px; }
.about-redesign .about-priority { display:grid; grid-template-columns:55.2% 1fr; height:240px; min-height:240px; padding:0; overflow:hidden; border:1px solid #dce3ea; border-radius:14px; }
.about-redesign .about-priority>img { display:block; width:100%; height:240px; object-fit:cover; }
.about-redesign .about-priority>div { padding:18px 20px; border-left:5px solid #3d8ec9; }
.about-redesign .about-priority .about-kicker { display:block; color:#2a6397; font-size:10.5px; letter-spacing:1.3px; }
.about-redesign .about-priority h3 { margin:6px 0 12px; font-size:19px; line-height:24px; }
.about-redesign .about-priority p:last-child { font-size:12.5px; line-height:18px; }
.about-redesign .about-priority--green>div { border-color:#1f7b5e; }
.about-redesign .about-priority--green .about-kicker { color:#1f7b5e; }
.about-redesign .about-priority--navy>div { border-color:#2a6397; }
.about-redesign .about-priority--gold>div { border-color:#e2b230; }
.about-redesign .about-priority--gold .about-kicker { color:#a57000; }
.about-redesign .about-impact { padding:58px 0 56px; }
.about-redesign .about-impact__steps { gap:22px; margin-top:38px; }
.about-redesign .about-impact__steps article { min-height:238px; padding:18px 20px; border-radius:6px; }
.about-redesign .about-impact__steps b { width:28px; height:28px; font-size:10px; }
.about-redesign .about-impact__steps p { margin:15px 0 7px; font-size:10.5px; letter-spacing:1.2px; }
.about-redesign .about-impact__steps h3 { margin:0 0 12px; font-size:18px; line-height:24px; }
.about-redesign .about-impact__steps span { font-size:12px; line-height:18px; }
.about-redesign .about-success { padding:58px 0 56px; }
.about-redesign .about-success__grid { gap:22px; margin-top:38px; }
.about-redesign .about-success__grid article { min-height:212px; padding:24px 20px; border-top-width:4px; border-radius:6px; }
.about-redesign .about-success__grid h3 { margin:12px 0 11px; font-size:18px; line-height:24px; }
.about-redesign .about-success__grid p { font-size:12px; line-height:18px; }
.about-redesign .about-explore { padding:48px 0; }
.about-redesign .about-explore>.container { min-height:156px; padding:28px 36px; border-left-width:6px; border-radius:6px; }
.about-redesign .about-explore h2 { margin:8px 0 10px; font-size:26px; line-height:33px; }
.about-redesign .about-explore p { font-size:13px; line-height:19px; }
.about-redesign .about-explore nav { gap:8px; }
.about-redesign .about-explore nav a { min-width:90px; min-height:32px; padding:.5rem .6rem; font-size:10px; }
@media (max-width:1000px) {
  .about-redesign .about-card-grid { gap:24px; }
  .about-redesign .about-priority { grid-template-columns:48% 1fr; }
}
@media (max-width:700px) {
  .about-redesign .about-section h2,
  .about-redesign .about-impact h2 { font-size:32px; line-height:40px; }
  .about-redesign .about-pair,
  .about-redesign .about-card-grid { grid-template-columns:1fr; gap:24px; margin-top:32px; }
  .about-redesign .about-priority { grid-template-columns:1fr; height:auto; min-height:0; }
  .about-redesign .about-priority>img { height:210px; }
  .about-redesign .about-priority>div { border-top:5px solid #3d8ec9; border-left:0; }
  .about-redesign .about-priority--green>div { border-color:#1f7b5e; }
  .about-redesign .about-priority--navy>div { border-color:#2a6397; }
  .about-redesign .about-priority--gold>div { border-color:#e2b230; }
}

/* Retired page: keep legacy navigation/footer markup from exposing Mission & Aims. */
a[href="mission.html"] { display:none !important; }

/* Membership application: Figma-aligned layout, scoped to the membership page. */
.membership-renewal { background:#f5f8fb; }
.membership-renewal .container { max-width:1360px; }
.membership-renewal .content-layout--topdown { display:block; }
.membership-renewal .sidebar { display:none; }
.membership-renewal .content-layout--topdown>div { width:100%; }
.membership-renewal .section-label { color:#3d8ec9; font-size:.76rem; font-weight:800; letter-spacing:.12em; }
.membership-renewal h2 { max-width:800px; margin:12px 0 18px; font-size:clamp(2.2rem,4vw,3.6rem); line-height:1.08; }
.membership-renewal .membership-categories { margin-top:52px; }
.membership-renewal .membership-categories h3 { margin:0; font-size:1rem; color:#12263a; letter-spacing:.08em; text-transform:uppercase; }
.membership-renewal .membership-categories>div { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px !important; }
.membership-renewal .membership-categories .card { min-height:182px; padding:30px !important; border:1px solid #d8e1ea !important; border-left:6px solid #3d8ec9 !important; border-radius:12px; box-shadow:0 10px 26px rgba(18,38,58,.07); }
.membership-renewal .membership-categories .card:nth-child(2) { border-left-color:#e2b230 !important; }
.membership-renewal .membership-categories h4 { color:#12263a; font-size:1.18rem !important; text-transform:none !important; }
.membership-renewal .membership-categories .card p { max-width:40rem; font-size:1rem !important; line-height:1.65; }
.membership-renewal #membership-form-section { max-width:1180px; margin:90px auto 0 !important; }
.membership-renewal #membership-form-section>h3 { font-size:clamp(2rem,3vw,2.8rem); line-height:1.15; }
.membership-application-grid { display:grid; grid-template-columns:310px minmax(0,1fr); gap:38px; align-items:start; }
.membership-application-guide { position:sticky; top:2rem; padding:28px; border:1px solid #d8e1ea; border-radius:12px; background:#12263a; box-shadow:0 12px 24px rgba(18,38,58,.12); }
.membership-application-guide .section-label { color:#e2b230; }
.membership-application-guide h4 { margin:14px 0 24px; color:#fff; font-size:1.45rem; }
.membership-application-guide ol { margin:0; padding:0; list-style:none; counter-reset:member-guide; }
.membership-application-guide li { position:relative; min-height:75px; padding:0 0 24px 48px; color:#d9e4ee; counter-increment:member-guide; font-size:.9rem; line-height:1.5; }
.membership-application-guide li:last-child { padding-bottom:0; }
.membership-application-guide li:before { position:absolute; left:0; top:0; display:grid; width:30px; height:30px; place-items:center; border:1px solid #e2b230; border-radius:50%; color:#e2b230; content:counter(member-guide, decimal-leading-zero); font-size:.68rem; font-weight:800; }
.membership-application-guide strong,.membership-application-guide span { display:block; }
.membership-application-guide strong { margin-bottom:4px; color:#fff; }
.membership-renewal #membershipForm { display:grid; gap:20px; }
.membership-renewal #membershipForm fieldset { min-width:0; margin:0 !important; padding:28px !important; border:1px solid #d8e1ea !important; border-radius:12px; background:#fff; box-shadow:0 7px 18px rgba(18,38,58,.045); }
.membership-renewal #membershipForm legend { display:block; width:100% !important; margin:0 0 25px !important; padding:0 0 15px !important; border-bottom:1px solid #d8e1ea !important; color:#12263a !important; font-size:1.15rem !important; }
.membership-renewal #membershipForm legend small { display:block; margin-top:6px; color:#637083; font-size:.88rem; font-weight:400; line-height:1.45; }
.membership-renewal #membershipForm .form-group { margin-bottom:18px; }
.membership-renewal #membershipForm .form-group:last-child { margin-bottom:0; }
.membership-renewal #membershipForm label { color:#24384d; font-weight:700; }
.membership-renewal #membershipForm .form-input,.membership-renewal #membershipForm .form-select { min-height:48px; border-color:#cfd9e4; border-radius:7px; }
.membership-renewal #membershipForm .form-input:focus,.membership-renewal #membershipForm .form-select:focus { border-color:#3d8ec9; box-shadow:0 0 0 3px rgba(61,142,201,.15); }
.membership-renewal #membershipForm input[name="cores"]:checked { accent-color:#3d8ec9; }
.membership-renewal #membershipForm>div:last-child { padding:8px 0 0; }
@media (max-width:900px) {
  .membership-application-grid { grid-template-columns:1fr; }
  .membership-application-guide { position:static; }
}
@media (max-width:650px) {
  .membership-renewal .membership-categories>div { grid-template-columns:1fr; }
  .membership-renewal #membership-form-section { margin-top:60px !important; }
  .membership-renewal #membershipForm fieldset { padding:20px !important; }
  .membership-renewal #membershipForm .grid-2 { grid-template-columns:1fr; }
}

/* Exact 2026–2031 Membership composition from the approved Figma page. */
body:has(.membership-renewal) .page-header { grid-template-columns:43% 57% !important; }

/* Research Cores landing page — approved Figma composition. Scoped so shared
   navigation, the user-selected hero image, and other public pages stay intact. */
.research-cores-page .page-header-content { padding-top:58px; }
.research-cores-page .page-header-content .breadcrumb { margin-bottom:4.55rem; }
.research-cores-page .page-header-content h1 { margin-bottom:1.3rem; }
.research-cores-page .page-header-content p { max-width:550px; margin:0; }
.research-cores-hero-cta,
.research-cores-consultation__cta {
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:max-content;
  margin-top:30px;
  padding:14px 20px;
  border-radius:4px;
  background:#8b1a6f;
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:background .2s ease, transform .2s ease;
}
.research-cores-hero-cta:hover { background:#72145c; color:#fff; transform:translateY(-1px); }
.research-cores-figma { background:#fff; }
.research-cores-intro { padding:88px 0 72px; }
.research-cores-intro > .container,
.research-cores-consultation > .container { width:90%; max-width:1564px; }
.research-cores-section-heading { max-width:1160px; }
.research-cores-eyebrow {
  margin:0 0 15px;
  color:#d6a81d;
  font-size:12px;
  font-weight:800;
  letter-spacing:.105em;
  line-height:1.2;
  text-transform:uppercase;
}
.research-cores-section-heading h2,
.research-cores-consultation h2 {
  margin:0;
  color:#12263a;
  font-family:Inter,sans-serif;
  font-size:clamp(2rem,3.1vw,2.75rem);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1.14;
}
.research-cores-section-heading > p:last-child {
  max-width:1045px;
  margin:22px 0 0;
  color:#536274;
  font-size:17px;
  line-height:1.65;
}
.research-cores-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px;
  margin-top:48px;
}
.research-core-card {
  min-height:430px;
  overflow:hidden;
  border:1px solid #e0e7ef;
  border-top:6px solid #8b1a6f;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 20px rgba(18,38,58,.07);
}
.research-core-card--community { border-top-color:#1f8a70; }
.research-core-card--technology { border-top-color:#e2b230; }
.research-core-card__body { display:flex; flex-direction:column; height:100%; padding:31px 30px 29px; }
.research-core-card__label {
  display:block;
  margin-bottom:17px;
  color:#8b1a6f;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  line-height:1;
  text-transform:uppercase;
}
.research-core-card--community .research-core-card__label { color:#1f8a70; }
.research-core-card--technology .research-core-card__label { color:#b78d0c; }
.research-core-card h3 {
  min-height:64px;
  margin:0;
  color:#12263a;
  font-family:Inter,sans-serif;
  font-size:23px;
  font-weight:800;
  letter-spacing:-.025em;
  line-height:1.2;
}
.research-core-card p {
  margin:18px 0 0;
  color:#596879;
  font-size:14px;
  line-height:1.63;
}
.research-core-card__capabilities { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.research-core-card__capabilities span {
  padding:7px 9px;
  border-radius:999px;
  background:#f7edf4;
  color:#8b1a6f;
  font-size:11px;
  font-weight:700;
  line-height:1;
}
.research-core-card--community .research-core-card__capabilities span { background:#eaf5f1; color:#176e5a; }
.research-core-card--technology .research-core-card__capabilities span { background:#fff7df; color:#96720b; }
.research-core-card a {
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:auto;
  padding-top:26px;
  color:#8b1a6f;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.research-core-card--community a { color:#176e5a; }
.research-core-card--technology a { color:#96720b; }
.research-core-card a:hover { color:#12263a; }
.research-cores-consultation { padding:0 0 88px; }
.research-cores-consultation > .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  padding:42px 48px;
  border:1px solid #e0e7ef;
  border-radius:10px;
  background:#f8fafc;
}
.research-cores-consultation > .container > div { max-width:900px; }
.research-cores-consultation h2 { font-size:clamp(1.65rem,2.35vw,2.15rem); }
.research-cores-consultation h2 + p { max-width:850px; margin:15px 0 0; color:#596879; font-size:15px; line-height:1.62; }
.research-cores-consultation__cta { flex:0 0 auto; margin:0; background:#e2b230; color:#12263a; }
.research-cores-consultation__cta:hover { background:#c99b1c; color:#12263a; transform:translateY(-1px); }
@media (max-width:1000px) {
  .research-cores-grid { grid-template-columns:1fr; gap:20px; }
  .research-core-card { min-height:0; }
  .research-core-card h3 { min-height:0; }
  .research-cores-consultation > .container { align-items:flex-start; flex-direction:column; gap:26px; }
}
@media (max-width:700px) {
  .research-cores-page .page-header-content { padding-bottom:48px; }
  .research-cores-page .page-header-content .breadcrumb { margin-bottom:2rem; }
  .research-cores-intro { padding:60px 0 52px; }
  .research-cores-intro > .container,.research-cores-consultation > .container { width:calc(100% - 40px); }
  .research-cores-section-heading > p:last-child { font-size:16px; }
  .research-cores-grid { margin-top:34px; }
  .research-core-card__body { padding:26px 23px; }
  .research-cores-consultation { padding-bottom:60px; }
  .research-cores-consultation > .container { padding:30px 24px; }
}
.membership-renewal { background:#fff; }
.membership-renewal>.container { max-width:none; padding:0; }
.membership-renewal .content-layout--topdown>div { width:100%; }
.membership-renewal .content-layout--topdown { display:block; }
.membership-renewal .sidebar { display:none; }
.membership-renewal .membership-categories,.membership-renewal .membership-benefits { max-width:none; margin:0; padding:64px max(5.8vw,24px) 40px; background:#fff; }
.membership-renewal .membership-categories>div { display:block !important; }
.membership-renewal .membership-section-heading { max-width:1120px; }
.membership-renewal .membership-section-heading .section-label,.membership-benefits>.section-label { display:block; margin:0 0 17px; color:#3d8ec9; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.membership-renewal .membership-section-heading h2,.membership-renewal .membership-benefits h2 { max-width:1050px; margin:0 0 10px; color:#12263a; font-family:Inter,sans-serif; font-size:42px; font-weight:800; line-height:1.2; letter-spacing:-.03em; }
.membership-renewal .membership-section-heading p,.membership-renewal .membership-benefits>p { max-width:1120px; margin:0; color:#5c6978; font-size:17px; line-height:1.65; }
.membership-renewal .membership-categories>.membership-category-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px !important; max-width:1336px; margin:36px auto 0; }
.membership-renewal .membership-category { min-height:540px; padding:30px 34px; border:1px solid #e0e8f0; border-radius:12px; background:#fff; box-shadow:0 8px 20px rgba(13,31,51,.08); }
.membership-renewal .membership-category-rule { width:100%; height:4px; margin-bottom:15px; border-radius:2px; background:#e2b230; }
.membership-renewal .membership-category--affiliate .membership-category-rule { background:#3d8ec9; }
.membership-renewal .membership-category-kicker,.membership-renewal .membership-category h4 { display:block; color:#e2b230; font-size:10.8px; font-weight:800; letter-spacing:.115em; line-height:16px; text-transform:uppercase; }
.membership-renewal .membership-category--affiliate .membership-category-kicker,.membership-renewal .membership-category--affiliate h4 { color:#3d8ec9; }
.membership-renewal .membership-category h3 { margin:15px 0; color:#12263a; font-family:Inter,sans-serif; font-size:26px; font-weight:800; line-height:32px; }
.membership-renewal .membership-category>p { min-height:46px; margin:0; color:#5c6978; font-size:14px; line-height:21px; }
.membership-renewal .membership-category hr { height:1px; margin:15px 0; border:0; background:#e0e8f0; }
.membership-renewal .membership-category h4 { margin:0 0 9px; }
.membership-renewal .membership-category ul { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.membership-renewal .membership-category li { position:relative; padding-left:17px; color:#1f2937; font-size:13px; line-height:20px; }
.membership-renewal .membership-category li:before { position:absolute; left:0; color:#e2b230; content:'•'; font-weight:900; }
.membership-renewal .membership-category--affiliate li:before { color:#3d8ec9; }
.membership-renewal .membership-benefits { padding-top:58px; padding-bottom:62px; background:#f4f8fb; }
.membership-renewal .membership-benefits h2 { max-width:1020px; margin-bottom:9px; font-size:32px; }
.membership-renewal .membership-benefits>p { font-size:14px; line-height:22px; }
.membership-renewal .membership-benefits-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; max-width:1336px; margin:34px auto 0; }
.membership-renewal .membership-benefits-grid article { min-height:168px; padding:20px 18px; border-top:3px solid #e2b230; border-radius:5px; background:#fff; box-shadow:0 4px 12px rgba(13,31,51,.05); }
.membership-renewal .membership-benefits-grid article:nth-child(2),.membership-renewal .membership-benefits-grid article:nth-child(4) { border-top-color:#3d8ec9; }
.membership-renewal .membership-benefits-grid article:nth-child(3) { border-top-color:#b34c99; }
.membership-renewal .membership-benefits-grid span { color:#3d8ec9; font-size:10px; font-weight:800; letter-spacing:.1em; }
.membership-renewal .membership-benefits-grid h3 { margin:12px 0 9px; color:#12263a; font-family:Inter,sans-serif; font-size:16px; line-height:20px; }
.membership-renewal .membership-benefits-grid p { margin:0; color:#5c6978; font-size:11px; line-height:17px; }
.membership-renewal #membership-form-section { max-width:1336px; margin:0 auto !important; padding:64px 0 58px; }
.membership-renewal #membership-form-section>h3 { margin:0 0 8px !important; color:#12263a; font-family:Inter,sans-serif; font-size:32px; font-weight:800; line-height:1.2; }
.membership-renewal #membership-form-section>.accent-bar { display:none; }
.membership-renewal #membership-form-section>p { max-width:900px; margin-bottom:30px !important; font-size:14px; line-height:22px; }
.membership-application-grid { grid-template-columns:240px minmax(0,1fr); gap:28px; }
.membership-application-guide { padding:22px 18px; border-radius:6px; background:#102a44; box-shadow:none; }
.membership-application-guide h4 { margin:11px 0 20px; font-family:Inter,sans-serif; font-size:18px; }
.membership-application-guide li { min-height:66px; padding-left:37px; padding-bottom:17px; font-size:11px; line-height:16px; }
.membership-application-guide li:before { width:24px; height:24px; font-size:9px; }
.membership-renewal #membershipForm { gap:16px; }
.membership-renewal #membershipForm fieldset { padding:22px !important; border-color:#e0e8f0 !important; border-radius:6px; box-shadow:none; }
.membership-renewal #membershipForm legend { margin-bottom:18px !important; padding-bottom:11px !important; font-size:14px !important; }
.membership-renewal #membershipForm legend small { font-size:11px; }
.membership-renewal #membershipForm .form-group { margin-bottom:13px; }
.membership-renewal #membershipForm label { font-size:11px; }
.membership-renewal #membershipForm .form-input,.membership-renewal #membershipForm .form-select { min-height:38px; font-size:12px; }
.membership-questions { padding:46px max(5.8vw,24px); background:linear-gradient(100deg,#102a44,#2471a8); color:#fff; }
.membership-questions>.container { display:flex; max-width:1336px; padding:0; align-items:center; justify-content:space-between; gap:34px; }
.membership-questions span { color:#f2ce5b; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.membership-questions h2 { margin:10px 0; color:#fff; font-family:Inter,sans-serif; font-size:27px; line-height:34px; }
.membership-questions p { max-width:690px; margin:0; color:#d7e8f4; font-size:14px; line-height:21px; }
.membership-questions> .container>div:last-child { display:flex; gap:12px; flex-wrap:wrap; }
.membership-questions .btn-outline-light { border-color:rgba(255,255,255,.7); color:#fff; }
@media (max-width:900px) { .membership-renewal .membership-category-grid,.membership-renewal .membership-benefits-grid { grid-template-columns:1fr 1fr; }.membership-renewal .membership-category { min-height:auto; }.membership-questions>.container { display:block; }.membership-questions>.container>div:last-child { margin-top:20px; } }
@media (max-width:650px) { .membership-renewal .membership-categories,.membership-renewal .membership-benefits { padding:44px 24px; }.membership-renewal .membership-section-heading h2,.membership-renewal .membership-benefits h2 { font-size:30px; }.membership-renewal .membership-category-grid,.membership-renewal .membership-benefits-grid { grid-template-columns:1fr; }.membership-renewal .membership-category { padding:24px; }.membership-renewal #membership-form-section { padding:44px 24px; }.membership-application-grid { grid-template-columns:1fr; }.membership-questions { padding:40px 24px; } }

/* ── Header on the site's page frame (Jeff, 2026-10-04: one standard template, Leadership's
   margins: 90%, at most 1360px). The full menu from 1280px; below that the phone header
   (see the 769-1279px block after this). ── */
@media (min-width: 1280px) {
  .header-inner { width: min(1360px, 90%); max-width: none; }
  .logo { padding-right: 1.5rem; }
  .header-right { gap: 0.75rem; padding-right: 0; }
  .nav-list { gap: 0.1rem; }
  .nav-link { padding: 0 clamp(0.5rem, 0.8vw, 1rem); letter-spacing: 0.04em; }
  .nav-link::after { left: clamp(0.5rem, 0.8vw, 1rem); right: clamp(0.5rem, 0.8vw, 1rem); }
  .header-cta { padding-right: 0; }
  .header-search-btn { margin-right: 0; }
}
@media (min-width: 1280px) and (max-width: 1439px) {
  .logo img { height: 72px; }
}

/* Small laptops and tablets (769-1279px): the full menu cannot fit on the page frame, so
   they get the phone header and menu (the 768px rules above, header and menu only).
   main.js opens the phone menu up to the same width (NAV_PHONE_MAX). */
@media (min-width: 769px) and (max-width: 1279px) {
  :root { --header-h: 70px; }
  .logo { padding: 0.5rem 1rem 0.5rem 0.75rem; margin-left: 0; }
  .logo img { height: 42px; }
  .site-header.scrolled .logo img { height: 36px; }
  .header-right {
    width: 100%;
    padding-right: 0;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
  }
  .header-cta {
    order: 2;
    margin-left: auto;
    padding: 0;
    border-bottom: none;
  }
  .header-search-btn {
    width: 40px;
    height: 40px;
    border-color: rgba(18, 38, 58, 0.16);
    box-shadow: 0 4px 10px rgba(15, 27, 61, 0.1);
  }
  .mobile-toggle { display: flex; }
  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--white);
    flex-direction: column;
    padding: 1rem 1.25rem 2rem;
    transform: translateX(100%);
    transition: transform var(--transition);
    overflow-y: auto;
  }
  .main-nav.open {
    transform: translateX(0);
  }
  .nav-list {
    flex-direction: column;
    width: 100%;
    gap: 0.15rem;
  }
  .nav-link {
    padding: 0.8rem 0.3rem;
    font-size: 1rem;
    border-bottom: 0;
  }
  .nav-item {
    width: 100%;
    flex-wrap: wrap;
    min-height: 0;
    border-bottom: 1px solid var(--gray-100);
  }
  .nav-item > .nav-link {
    flex: 1;
  }
  .nav-toggle {
    display: none;
  }
  .nav-item.dropdown-open {
    background: var(--gray-50);
    border-radius: 0.5rem;
    border-bottom-color: transparent;
  }
  .nav-link::after { display: none; }
  .dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none !important;
    box-shadow: none;
    margin: 0.1rem 0 0.7rem;
    padding: 0.35rem 0.5rem 0.4rem 0.85rem;
    display: none;
    min-width: 0;
    border-radius: 0;
    pointer-events: auto;
    z-index: auto;
    width: 100%;
    background: var(--white);
    border-left: 3px solid var(--gold);
    border-radius: 0 0.35rem 0.35rem 0;
  }
  .dropdown::before,
  .dropdown::after {
    display: none;
  }
  .dropdown a:first-child {
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: none;
    letter-spacing: 0;
    border-bottom: none;
    margin-bottom: 0;
    min-height: 40px;
    padding: 0.55rem 0.5rem;
  }
  .dropdown a:first-child::before {
    display: none;
  }
  .dropdown a:not(:first-child)::before {
    display: none;
  }
  .dropdown a {
    min-height: 40px;
    padding: 0.55rem 0.5rem;
    font-size: 0.9rem;
    color: var(--gray-600);
    border-bottom: 1px solid var(--gray-50);
  }
  .dropdown a:hover {
    background: none;
    color: var(--gold);
  }
  .nav-item.dropdown-open > .dropdown {
    display: block;
  }
  .dropdown.dropdown-mega {
    min-width: 0;
  }
  .dropdown-mega .dropdown-columns {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
  .dropdown-mega .dropdown-col-head {
    display: block;
    padding: 0.55rem 0.5rem 0.2rem;
    font-size: 0.68rem;
    line-height: 1.25;
    letter-spacing: 0.08em;
  }
  .header-cta { display: none; }
  .site-header,
  .site-header.scrolled {
    height: var(--header-h);
  }
  .header-inner {
    align-items: center;
    width: min(94%, var(--max-width));
  }
  .logo {
    border-right: 0;
    padding-left: 0;
    padding-right: 0.75rem;
  }
  .mobile-toggle {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 999px;
  }
  .mobile-toggle:focus-visible {
    outline: 3px solid rgba(61, 142, 201, 0.45);
    outline-offset: 2px;
  }
  .main-nav {
    z-index: 999;
    height: calc(100dvh - var(--header-h));
    padding: 1rem max(1rem, env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    overscroll-behavior: contain;
    visibility: hidden;
  }
  .main-nav.open {
    visibility: visible;
  }
  .nav-list {
    align-items: stretch;
    min-height: 0;
  }
  .nav-item {
    display: block;
    min-height: 0;
    border-radius: 0;
    overflow: visible;
    transform: none !important;
  }
  .nav-link {
    min-height: 52px;
    height: auto;
    white-space: normal;
    line-height: 1.25;
  }
  .dropdown {
    width: 100%;
    background: rgba(249, 250, 251, 0.92);
    border: 0;
    margin: 0 0 0.45rem;
  }
  .dropdown a {
    min-height: 48px;
    line-height: 1.35;
  }
}
/* The phone header on the page frame too. */
@media (max-width: 1279px) {
  .header-inner { width: min(1360px, 90%); }
}
/* Small laptops and tablets keep site search beside the menu button. */
@media (min-width: 769px) and (max-width: 1279px) {
  .header-cta { display: flex; order: 1; margin-left: auto; height: auto; }
  .header-right { display: flex; align-items: center; gap: 0.75rem; flex: 1; justify-content: flex-end; }
  .mobile-toggle { order: 2; }
}
