/* ══════════════════════════════════════
   FIX: Override main.css .sd-section-head
   conflicts using higher specificity
══════════════════════════════════════ */
.layout-wrapper .sd-section-head,
.sub-page-content .sd-section-head {
  display: flex;
  align-items: center;
  gap: .875rem;
  margin-bottom: 1.5rem;
}

.layout-wrapper .sd-section-icon,
.sub-page-content .sd-section-icon {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  background: var(--primary-gradient);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: #fff;
  flex-shrink: 0;
}

.layout-wrapper .sd-section-head h2,
.sub-page-content .sd-section-head h2 {
  font-family: var(--font-title);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--brand-navy);
  margin: 0;
}

[data-theme="dark"] .layout-wrapper .sd-section-head h2,
[data-theme="dark"] .sub-page-content .sd-section-head h2 {
  color: #F2F8FD;
}


/* ══════════════════════════════════════
   HERO — research center banner
══════════════════════════════════════ */
.rc-hero { position:relative; background:var(--primary-gradient); overflow:hidden; padding:3.5rem 0 0; isolation:isolate; }
.rc-hero-bg { position:absolute; inset:0; pointer-events:none; }
.hero-shape { position:absolute; border-radius:50%; filter:blur(100px); opacity:.15; }
.shape-1 { width:500px; height:500px; background:linear-gradient(135deg,#0055B3,#61B9F0); top:-150px; right:-100px; animation:shapeFloat 15s ease-in-out infinite; }
.shape-2 { width:350px; height:350px; background:linear-gradient(135deg,#FF6C00,#FF9240); bottom:-100px; left:5%; animation:shapeFloat 20s ease-in-out infinite reverse; }
@keyframes shapeFloat { 0%,100%{transform:translate(0,0);} 50%{transform:translate(40px,-40px);} }

.rc-hero-inner { max-width:1400px; margin:0 auto; padding:0 2rem; position:relative; z-index:2; }

/* Breadcrumb */
.rc-breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.8rem; color:rgba(255,255,255,.65); margin-bottom:1.5rem; flex-wrap:wrap; }
.rc-breadcrumb a { color:rgba(255,255,255,.75); transition:color .25s; }
.rc-breadcrumb a:hover { color:#fff; }
.rc-breadcrumb i { font-size:.65rem; }
.rc-breadcrumb span { color:#fff; font-weight:600; }

/* Center identity */
.rc-identity { display:flex; align-items:flex-start; gap:1.75rem; margin-bottom:2.5rem; }
.rc-logo-wrap { width:96px; height:96px; border-radius:20px; background:rgba(255,255,255,.15); border:3px solid rgba(255,255,255,.3); backdrop-filter:blur(10px); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; }
.rc-logo-wrap img { width:100%; height:100%; object-fit:contain; padding:6px; }
.rc-logo-initials { font-family:var(--font-title); font-size:2rem; font-weight:900; color:#fff; letter-spacing:-2px; }
.rc-identity-info { flex:1; }
.rc-title { font-family:var(--font-title); font-size:clamp(1.5rem,3.5vw,2.3rem); font-weight:900; color:#fff; line-height:1.15; margin:0 0 .5rem; }
.rc-short-name { font-size:.95rem; color:rgba(255,255,255,.8); margin-bottom:.75rem; }
.rc-tagline { font-size:.9rem; color:rgba(255,255,255,.75); font-style:italic; margin-bottom:.875rem; }
.rc-meta { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; font-size:.82rem; color:rgba(255,255,255,.8); margin-bottom:1rem; }
.rc-meta span { display:flex; align-items:center; gap:.4rem; }
.rc-meta i { color:var(--brand-blue-light); font-size:.85rem; }
.rc-meta a { color:rgba(255,255,255,.85); }
.rc-meta a:hover { color:#fff; }

.brochure-link { display:inline-flex; align-items:center; gap:.5rem; padding:.55rem 1.1rem; background:rgba(255,255,255,.15); border:1.5px solid rgba(255,255,255,.3); border-radius:10px; color:#fff; font-size:.82rem; font-weight:700; transition:all .3s; }
.brochure-link:hover { background:rgba(255,255,255,.25); color:#fff; }

/* Stats strip */
.stats-container { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:2.5rem; padding-bottom:2.5rem; }
.stat-card { background:rgba(255,255,255,.10); border:2px solid rgba(255,255,255,.18); border-radius:18px; padding:1.5rem; display:flex; align-items:center; gap:1rem; backdrop-filter:blur(10px); transition:all .4s; }
.stat-card:hover { background:rgba(255,255,255,.18); transform:translateY(-4px); }
.stat-icon { width:52px; height:52px; border-radius:14px; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:24px; color:#fff; flex-shrink:0; }
.stat-content { text-align:left; }
.stat-number { font-family:var(--font-title); font-size:1.75rem; font-weight:900; color:#fff; line-height:1; margin-bottom:.15rem; }
.stat-label { font-size:.72rem; color:rgba(255,255,255,.75); font-weight:500; text-transform:uppercase; letter-spacing:.06em; }

/* ══════════════════════════════════════
   LAYOUT — grid with left icon nav
══════════════════════════════════════ */
.sd-grid {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 2rem;
  align-items: start;
}
.sd-main { min-width: 0; }

/* ══════════════════════════════════════
   LEFT SECTION NAV — vertical icon sidebar
══════════════════════════════════════ */
.sd-section-nav {
  position: sticky;
  top: calc(var(--header-h, 72px) + 1.5rem);
  align-self: start;
  z-index: 900;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.snav-mob-btn { display: none; }

.sd-section-nav-inner {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  background: linear-gradient(135deg,#001a3d 0%,#00377B 100%);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 22px;
  padding: .5rem .45rem;
  box-shadow: 0 8px 32px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.1);
}

.snav-item { position: relative; }

.snl {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  color: rgba(255,255,255,.5) !important;
  cursor: pointer;
  transition: background .2s, color .2s, box-shadow .2s;
  text-decoration: none !important;
}
.snl i {
  width: 32px;
  height: 32px;
  background: rgba(255,255,255,.07);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .88rem;
  color: #61B9F0 !important;
  pointer-events: none;
  flex-shrink: 0;
  transition: background .2s, color .2s;
}
.snl:hover {
  background: rgba(97,185,240,.12);
}
.snl:hover i {
  background: rgba(97,185,240,.25);
  color: #fff !important;
}
.snl.active {
  background: rgba(0,55,123,.6);
  box-shadow: 0 4px 16px rgba(0,55,123,.4);
}
.snl.active i {
  background: rgba(97,185,240,.35);
  color: #fff !important;
}

/* Tooltip panel — appears to the right */
.snl-panel {
  position: absolute;
  left: calc(100% + .75rem);
  top: 50%;
  transform: translateY(-50%) translateX(-8px);
  width: 220px;
  background: var(--bg-primary);
  border: 1.5px solid var(--border-color);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0,0,0,.22), 0 4px 12px rgba(0,0,0,.14);
  padding: .85rem 1rem;
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s, transform .2s;
  z-index: 1001;
  white-space: normal;
}
[data-theme="dark"] .snl-panel {
  background: #1A3554;
  border-color: rgba(97,185,240,.25);
  box-shadow: 0 12px 40px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.3);
}
.snl-panel::before {
  content: '';
  position: absolute;
  left: -5px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 9px;
  height: 9px;
  background: var(--bg-primary);
  border-left: 1.5px solid var(--border-color);
  border-bottom: 1.5px solid var(--border-color);
}
[data-theme="dark"] .snl-panel::before {
  background: #1A3554;
  border-color: rgba(97,185,240,.25);
}
.snav-item:hover .snl-panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}
.snlp-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}
/* Dark mode: override hardcoded light icon backgrounds */
[data-theme="dark"] .snlp-icon { background: rgba(97,185,240,.15) !important; }
[data-theme="dark"] .snlp-icon i { color: #61B9F0 !important; }

.snlp-name {
  font-family: var(--font-title);
  font-weight: 700;
  font-size: .82rem;
  color: var(--text-primary);
  line-height: 1.3;
  margin-bottom: .2rem;
}
.snlp-desc {
  font-size: .72rem;
  color: var(--text-tertiary);
  line-height: 1.45;
}

/* ══════════════════════════════════════
   LAYOUT
══════════════════════════════════════ */
.layout-wrapper { max-width:1400px; margin:0 auto; padding:3rem 2rem 5rem; position:relative; z-index:1; }

/* ══════════════════════════════════════
   SECTIONS
══════════════════════════════════════ */
.sd-section { background:var(--bg-primary); border:2px solid var(--border-color); border-radius:20px; padding:2rem; margin-bottom:2rem; box-shadow:var(--shadow-sm); }

/* Section head — high-specificity to beat main.css */
.sd-section > .sd-section-head { display:flex; align-items:center; gap:.875rem; margin-bottom:1.5rem; }
.sd-section > .sd-section-head > .sd-section-icon {
  width:44px; height:44px; border-radius:13px;
  background:var(--primary-gradient);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; color:#fff; flex-shrink:0;
}
.sd-section > .sd-section-head > h2 {
  font-family:var(--font-title); font-size:1.3rem; font-weight:700;
  color:var(--brand-navy); margin:0;
}
[data-theme="dark"] .sd-section > .sd-section-head > h2 { color:#F2F8FD; }

.sd-count { font-size:.9rem; font-weight:500; color:var(--text-tertiary); }
.sd-divider { height:1px; background:var(--border-color); margin:1.75rem 0; }
.sd-sub-head { font-family:var(--font-title); font-size:1rem; font-weight:700; color:var(--brand-navy); margin:1.5rem 0 1rem; display:flex; align-items:center; gap:.5rem; }
[data-theme="dark"] .sd-sub-head { color:#F2F8FD; }

/* Overview text */
.rc-overview-text { font-size:.95rem; color:var(--text-secondary); line-height:2; }

/* ── Pills ── */
.pill { display:inline-flex; align-items:center; padding:.4rem .9rem; border-radius:50px; font-size:.78rem; font-weight:600; }
.pill-done     { background:rgba(46,204,113,.15); color:#27ae60; border:1.5px solid rgba(46,204,113,.35); }
.pill-pending  { background:rgba(245,158,11,.15); color:#d97706; border:1.5px solid rgba(245,158,11,.35); }
.pill-ongoing  { background:rgba(59,130,246,.15); color:#2563eb; border:1.5px solid rgba(59,130,246,.35); }
.pill-archived { background:rgba(107,114,128,.15); color:#6b7280; border:1.5px solid rgba(107,114,128,.35); }
.pill-info     { background:var(--brand-pale-blue); color:var(--brand-navy); border:1.5px solid var(--brand-soft-blue); }
.pill-highlight{ background:rgba(255,108,0,.12); color:var(--brand-orange); border:1.5px solid rgba(255,108,0,.3); }

/* ── View-all button ── */
.sd-view-all-btn { display:inline-flex; align-items:center; gap:.5rem; padding:.65rem 1.3rem; background:transparent; border:2px solid var(--brand-navy,#00377B); border-radius:12px; color:var(--brand-navy,#00377B); font-family:var(--font-body); font-size:.85rem; font-weight:700; transition:all .3s; cursor:pointer; text-decoration:none; }
.sd-view-all-btn:hover { background:var(--primary-gradient); border-color:transparent; color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-md); }
.va-row { display:flex; justify-content:center; margin-top:1.75rem; padding-top:1.25rem; border-top:1.5px solid var(--border-color); }

/* ══════════════════════════════════════
   RESEARCH AREA / OBJECTIVE CARDS
══════════════════════════════════════ */
.cards-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.ra-card { background:var(--bg-tertiary); border:2px solid var(--border-color); border-left:4px solid var(--brand-navy); border-radius:14px; padding:1.25rem 1.5rem; transition:all .3s; }
.ra-card:hover { border-left-color:var(--brand-orange); background:var(--brand-pale-blue); transform:translateX(4px); box-shadow:var(--shadow-md); }
.ra-card.alt { border-left-color:var(--brand-orange); }
.ra-card.alt:hover { border-left-color:var(--brand-navy); }
.ra-card-title { font-family:var(--font-title); font-size:.92rem; font-weight:700; color:var(--brand-navy); margin-bottom:.5rem; display:flex; align-items:flex-start; gap:.5rem; }
[data-theme="dark"] .ra-card-title { color:var(--text-primary); }
.ra-card-body { font-size:.85rem; color:var(--text-secondary); line-height:1.75; margin:0; }

/* ══════════════════════════════════════
   PROJECT CARDS
══════════════════════════════════════ */
.proj-card { background:var(--bg-tertiary); border:2px solid var(--border-color); border-top:4px solid var(--brand-navy); border-radius:16px; padding:1.5rem; margin-bottom:1.25rem; transition:all .3s; }
.proj-card:last-child { margin-bottom:0; }
.proj-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.proj-header { display:flex; justify-content:space-between; align-items:flex-start; gap:.875rem; margin-bottom:.875rem; flex-wrap:wrap; }
.proj-title { font-family:var(--font-title); font-size:1rem; font-weight:700; color:var(--brand-navy); flex:1; }
[data-theme="dark"] .proj-title { color:var(--text-primary); }
.proj-status { display:inline-flex; align-items:center; padding:.35rem .875rem; border-radius:50px; font-size:.72rem; font-weight:700; white-space:nowrap; flex-shrink:0; }
.proj-status.ongoing   { background:rgba(46,204,113,.15); color:#27ae60; border:1.5px solid rgba(46,204,113,.35); }
.proj-status.completed { background:rgba(0,55,123,.12); color:var(--brand-navy); border:1.5px solid rgba(0,55,123,.3); }
.proj-body { font-size:.88rem; color:var(--text-secondary); line-height:1.85; margin-bottom:1rem; }
.proj-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.proj-chip { display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .875rem; background:var(--bg-primary); border:1.5px solid var(--border-color); border-radius:50px; font-size:.78rem; font-weight:600; color:var(--text-secondary); }
.proj-chip i { color:var(--brand-orange); font-size:.75rem; }
.proj-extra { background:var(--bg-primary); border:1.5px solid var(--border-color); border-radius:12px; padding:1.25rem; margin-top:1rem; }
.proj-extra-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1rem; }
.proj-field-lbl { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--text-tertiary); margin-bottom:.3rem; }
.proj-field-val { font-size:.88rem; font-weight:600; color:var(--text-primary); }
.proj-field-text { font-size:.85rem; color:var(--text-secondary); line-height:1.7; }

/* ══════════════════════════════════════
   PEOPLE CARDS
══════════════════════════════════════ */
.people-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.people-card { display:flex; gap:0; background:var(--bg-primary); border:2px solid var(--border-color); border-radius:16px; overflow:hidden; transition:all .3s; box-shadow:var(--shadow-sm); }
.people-card:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--brand-blue-light); }
.people-img { width:110px; min-width:110px; object-fit:cover; align-self:stretch; }
.people-ph { width:110px; min-width:110px; background:var(--primary-gradient); display:flex; align-items:center; justify-content:center; font-family:var(--font-title); font-size:2.2rem; font-weight:900; color:#fff; }
.people-body { padding:1.25rem; flex:1; display:flex; flex-direction:column; justify-content:center; }
.people-role-tag { display:inline-block; background:var(--brand-pale-blue); color:var(--brand-navy); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; padding:.25rem .65rem; border-radius:6px; margin-bottom:.625rem; width:fit-content; }
.people-name { font-family:var(--font-title); font-size:.95rem; font-weight:700; color:var(--brand-navy); margin-bottom:.25rem; }
[data-theme="dark"] .people-name { color:var(--text-primary); }
.people-role-text { font-size:.82rem; color:var(--brand-orange); font-weight:600; margin-bottom:.25rem; }
.people-org { font-size:.78rem; color:var(--text-tertiary); display:flex; align-items:center; gap:.35rem; margin-bottom:.5rem; }
.people-link { font-size:.78rem; font-weight:700; color:var(--brand-navy); display:inline-flex; align-items:center; gap:.3rem; transition:color .2s; text-decoration:none; }
.people-link:hover { color:var(--brand-orange); }
[data-theme="dark"] .people-link { color:var(--brand-blue-light); }

/* ══════════════════════════════════════
   PUBLICATIONS (accordion)
══════════════════════════════════════ */
.pub-accordion { border:2px solid var(--border-color); border-radius:14px; overflow:hidden; }
.pub-item { border-bottom:1.5px solid var(--border-color); }
.pub-item:last-child { border-bottom:none; }
.pub-toggle { width:100%; display:flex; justify-content:space-between; align-items:center; padding:1.1rem 1.5rem; background:none; border:none; cursor:pointer; text-align:left; font-family:var(--font-title); font-size:.9rem; font-weight:700; color:var(--brand-navy); gap:1rem; transition:background .2s; }
.pub-toggle:hover { background:var(--brand-pale-blue); }
[data-theme="dark"] .pub-toggle { color:var(--text-primary); }
.pub-chevron { font-size:.75rem; color:var(--text-tertiary); transition:transform .3s; flex-shrink:0; }
.pub-item.open .pub-chevron { transform:rotate(180deg); }
.pub-body { display:none; padding:1.25rem 1.5rem; background:var(--bg-tertiary); border-top:1.5px solid var(--border-color); }
.pub-item.open .pub-body { display:block; }
.pub-badges { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:.875rem; }
.pub-year-badge { display:inline-flex; align-items:center; padding:.3rem .75rem; background:var(--accent-gradient); color:#fff; border-radius:8px; font-size:.75rem; font-weight:700; }
.pub-type-badge { display:inline-flex; align-items:center; padding:.3rem .75rem; background:var(--bg-primary); border:1.5px solid var(--border-color); border-radius:8px; font-size:.75rem; font-weight:600; color:var(--text-secondary); }
.pub-authors { font-size:.88rem; color:var(--text-secondary); margin-bottom:.625rem; }
.pub-citation { font-size:.82rem; color:var(--text-tertiary); line-height:1.7; }

/* ══════════════════════════════════════
   PATENT CARDS
══════════════════════════════════════ */
.patent-card { background:var(--bg-tertiary); border:2px solid var(--border-color); border-left:4px solid var(--brand-navy); border-radius:14px; padding:1.5rem; margin-bottom:1.25rem; transition:all .3s; }
.patent-card:last-child { margin-bottom:0; }
.patent-card:hover { box-shadow:var(--shadow-md); transform:translateX(4px); }
.patent-title { font-family:var(--font-title); font-size:.95rem; font-weight:700; color:var(--brand-navy); margin-bottom:.625rem; }
[data-theme="dark"] .patent-title { color:var(--text-primary); }
.patent-desc { font-size:.875rem; color:var(--text-secondary); line-height:1.8; margin-bottom:1rem; }
.patent-chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.patent-chip { display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .875rem; background:var(--bg-primary); border:1.5px solid var(--border-color); border-radius:50px; font-size:.78rem; font-weight:600; color:var(--text-secondary); }
.patent-chip i { color:var(--brand-blue-light); font-size:.75rem; }

/* ══════════════════════════════════════
   FUNDING CARDS
══════════════════════════════════════ */
.fund-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.fund-card { background:var(--bg-tertiary); border:2px solid var(--border-color); border-top:4px solid var(--brand-navy); border-radius:16px; padding:1.5rem; transition:all .3s; display:flex; flex-direction:column; }
.fund-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.fund-card.ext { border-top-color:var(--brand-orange); }
.fund-agency { font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--text-tertiary); margin-bottom:.75rem; }
.fund-amount { font-family:var(--font-title); font-size:2rem; font-weight:900; color:var(--brand-navy); line-height:1; }
.fund-card.ext .fund-amount { color:var(--brand-orange); }
.fund-cr { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--text-tertiary); margin-bottom:.75rem; }
.fund-desc { font-size:.8rem; color:var(--text-secondary); line-height:1.7; margin:0; padding-top:.875rem; border-top:1px solid var(--border-color); }
.fund-total { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.25rem; border-radius:12px; margin-top:1.25rem; }
.fund-total.pesu { background:var(--brand-pale-blue); border:2px solid var(--brand-soft-blue); }
.fund-total.ext  { background:rgba(255,108,0,.08); border:2px solid rgba(255,108,0,.2); }
.fund-total-lbl { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--text-tertiary); }
.fund-total-val { font-family:var(--font-title); font-size:1.3rem; font-weight:900; color:var(--brand-navy); }
.fund-total.ext .fund-total-val { color:var(--brand-orange); }

/* ══════════════════════════════════════
   COLLABORATION PILLS
══════════════════════════════════════ */
.rc-group-title { font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--text-tertiary); margin-bottom:1rem; display:flex; align-items:center; gap:.5rem; }
.rc-group-title i { color:var(--brand-orange); }
.collab-pill { display:inline-flex; align-items:center; gap:.5rem; padding:.45rem 1rem; background:var(--bg-tertiary); border:1.5px solid var(--border-color); border-radius:50px; font-size:.82rem; font-weight:600; color:var(--text-secondary); margin:.3rem; transition:all .2s; }
.collab-pill i { color:var(--brand-blue-light); font-size:.75rem; }
.collab-pill:hover { background:var(--brand-pale-blue); border-color:var(--brand-blue-light); color:var(--brand-navy); }

/* ══════════════════════════════════════
   SOFTWARE / TECHNOLOGY
══════════════════════════════════════ */
.sw-card { background:var(--bg-tertiary); border:2px solid var(--border-color); border-top:3px solid var(--brand-orange); border-radius:12px; padding:1rem 1.25rem; margin-bottom:.75rem; }
.sw-title { font-size:.9rem; font-weight:700; color:var(--brand-navy); margin-bottom:.4rem; }
[data-theme="dark"] .sw-title { color:var(--text-primary); }
.sw-body { font-size:.82rem; color:var(--text-secondary); line-height:1.7; margin:0; }
.tech-tag { display:inline-flex; align-items:center; padding:.4rem .875rem; background:var(--primary-gradient); color:#fff; border-radius:50px; font-size:.75rem; font-weight:700; margin:.3rem; }

/* ══════════════════════════════════════
   GALLERY
══════════════════════════════════════ */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.875rem; }
.gal-wrap { border-radius:14px; overflow:hidden; position:relative; aspect-ratio:4/3; border:2px solid var(--border-color); }
.gal-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.gal-wrap:hover .gal-img { transform:scale(1.06); }
.gal-overlay { position:absolute; inset:0; background:rgba(0,55,123,.35); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.gal-wrap:hover .gal-overlay { opacity:1; }
.gal-overlay i { font-size:1.5rem; color:#fff; }

/* ══════════════════════════════════════
   VIDEO
══════════════════════════════════════ */
.video-wrap { border-radius:14px; overflow:hidden; border:2px solid var(--border-color); }

/* ══════════════════════════════════════
   SUB-PAGE HEADER
══════════════════════════════════════ */
.sub-page-hero { position:relative; background:var(--primary-gradient); overflow:hidden; padding:2.5rem 0; }
.sub-page-hero::after { content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); pointer-events:none; z-index:0; }
.sub-page-hero-inner { max-width:1400px; margin:0 auto; padding:0 2rem; position:relative; z-index:1; }
.sub-page-hero h1 { font-family:var(--font-title); font-size:clamp(1.6rem,3vw,2.2rem); font-weight:900; color:#fff; margin:0 0 .5rem; }
.sub-page-tagline { font-size:.95rem; color:rgba(255,255,255,.8); margin:0 0 1rem; font-style:italic; }
.sub-breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.8rem; color:rgba(255,255,255,.65); flex-wrap:wrap; }
.sub-breadcrumb a { color:var(--brand-blue-light); text-decoration:none; }
.sub-breadcrumb a:hover { color:#fff; }
.sub-breadcrumb i { font-size:.6rem; }
.sub-breadcrumb span { color:rgba(255,255,255,.85); }

.sub-page-content { max-width:1400px; margin:0 auto; padding:3rem 2rem 5rem; position:relative; z-index:1; }

/* ══════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════ */
[data-animate] { opacity:0; transform:translateY(24px); animation:fadeInUp .7s ease-out forwards; }
[data-animate]:nth-child(2) { animation-delay:.1s; }
[data-animate]:nth-child(3) { animation-delay:.2s; }
@keyframes fadeInUp { to{opacity:1; transform:translateY(0);} }

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width:1100px) {
  .cards-grid-2 { grid-template-columns:1fr; }
  .people-grid { grid-template-columns:1fr; }
  .fund-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .proj-extra-grid { grid-template-columns:1fr 1fr; }
  .stats-container { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  :root { --header-h:64px; }
  .rc-hero-inner { padding:0 1.25rem; }
  .rc-title { font-size:1.6rem; }
  .rc-logo-wrap { width:70px; height:70px; }
  .stats-container { grid-template-columns:1fr 1fr; gap:.875rem; }
  .layout-wrapper { padding:1.5rem 1.25rem 4rem; }
  .sub-page-content { padding:1.5rem 1.25rem 4rem; }
  .fund-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .proj-extra-grid { grid-template-columns:1fr; }

  /* Left nav — fixed full-width bar on mobile */
  .sd-grid { grid-template-columns:1fr; gap:0; }
  .sd-section-nav {
    position:fixed;
    top:var(--header-h, 64px);
    left:0; right:0; width:100%;
    z-index:900;
    align-items:stretch;
    transition:top .35s cubic-bezier(.4,0,.2,1);
  }
  /* push sd-main below the fixed nav bar (~50px) */
  .sd-main { padding-top:3.5rem; }

  /* ─ Toggle bar ─ */
  .snav-mob-btn {
    display:flex; width:100%; align-items:center; gap:.75rem;
    padding:.6rem 1rem;
    background:linear-gradient(135deg,#001a3d 0%,#00377B 100%);
    border:none; cursor:pointer; color:#fff;
    border-bottom:1px solid rgba(97,185,240,.2);
    box-shadow:0 2px 12px rgba(0,0,0,.4);
    position:relative; z-index:1;
  }
  .snav-mob-icon {
    width:32px; height:32px; flex-shrink:0;
    background:rgba(97,185,240,.18); border-radius:9px;
    display:flex; align-items:center; justify-content:center;
    font-size:.85rem; color:#61B9F0;
    transition:background .2s, color .2s;
  }
  .snav-mob-btn > span { flex:1; text-align:left; font-size:.85rem; font-weight:600; }
  .snav-mob-caret { font-size:.7rem!important; color:rgba(255,255,255,.5)!important; transition:transform .25s; }
  .snav-mob-btn.open .snav-mob-caret { transform:rotate(180deg); }
  .snav-mob-btn.open .snav-mob-icon { background:rgba(97,185,240,.35); color:#fff; }

  /* ─ Dropdown panel ─ */
  .sd-section-nav-inner {
    position:absolute; top:100%; left:0; right:0;
    display:none; flex-direction:column; gap:0;
    background:#09172e;
    border-radius:0 0 14px 14px;
    padding:.4rem;
    box-shadow:0 16px 40px rgba(0,0,0,.55);
    z-index:2; max-height:70vh; overflow-y:auto;
  }
  .sd-section-nav-inner.open { display:flex; }
  .snav-item { width:100%; }
  .snl {
    width:100%; height:auto; border-radius:10px;
    padding:.5rem .75rem; justify-content:flex-start; gap:.75rem;
    color:rgba(255,255,255,.8)!important; font-size:.84rem; font-weight:500;
    border:none; margin-bottom:2px; display:flex; align-items:center;
  }
  .snl i {
    width:32px; height:32px; min-width:32px;
    background:rgba(255,255,255,.07); border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    font-size:.8rem; color:#61B9F0!important;
    pointer-events:none; flex-shrink:0;
    transition:background .2s, color .2s;
  }
  .snl::after { content:attr(aria-label); font-size:.84rem; }
  .snl:hover { background:rgba(97,185,240,.1); color:#fff!important; }
  .snl:hover i { background:rgba(97,185,240,.2); }
  .snl.active { background:rgba(0,55,123,.45); color:#fff!important; }
  .snl.active i { background:rgba(97,185,240,.25); color:#fff!important; }
  .snl-panel { display:none!important; }
}
@media (max-width:480px) {
  .stats-container { grid-template-columns:1fr; }
  .rc-identity { flex-direction:column; }
  .sd-section { padding:1.25rem; }
  .gallery-grid { grid-template-columns:1fr; }
  .cards-grid-2 { grid-template-columns:1fr; }
}