/* ==========================================================================
   TOKENS
   ========================================================================== */
:root{
  --bg:#FFFFFF;
  --bg-soft:#F7F7F7;
  --ink:#171717;
  --ink-soft:#666666;
  --line:#E5E5E5;
  --red:#D0021B;
  --red-dark:#A90016;

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --container: 1240px;
  --gutter: clamp(24px, 5vw, 80px);
  --section-y: clamp(64px, 10vw, 128px);

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3{ margin:0; font-family:var(--serif); font-weight:400; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }

:focus-visible{ outline:2px solid var(--red); outline-offset:3px; }

.container{ max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }

/* ---------- shared bits ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:11px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--red);
  margin:0 0 14px;
}
.rule-red{
  display:block;
  width:56px; height:2px;
  background:var(--red);
  margin:18px 0 22px;
}
.rule-red.small{ width:28px; margin:10px 0 14px; }

.section-heading{
  font-size:clamp(28px, 3.6vw, 44px);
  line-height:1.12;
  letter-spacing:-.01em;
}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px;
  font-size:13px; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  border:1px solid transparent;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .2s var(--ease);
}
.btn .arrow{ transition:transform .25s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn-primary{ background:var(--red); color:#fff; }
.btn-primary:hover{ background:var(--red-dark); }
.btn-secondary{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn-secondary:hover{ border-color:var(--red); color:var(--red); }

.text-link{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color:var(--red); border-bottom:1px solid transparent; padding-bottom:2px;
  transition:border-color .2s var(--ease);
}
.text-link .arrow{ transition:transform .25s var(--ease); }
.text-link:hover{ border-color:var(--red); }
.text-link:hover .arrow{ transform:translateX(4px); }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in-view{ opacity:1; transform:none; }

/* ---------- placeholder imagery ----------
   Intentional architectural-line placeholder used everywhere a real
   photograph should be dropped in. Swap ph-image divs for <img> tags
   when real photography is available. */
.ph-image{
  position:relative;
  width:100%; height:100%;
  background:
    linear-gradient(var(--bg-soft), var(--bg-soft)),
    repeating-linear-gradient(135deg, rgba(23,23,23,.05) 0 1px, transparent 1px 14px);
  border:1px solid var(--line);
  overflow:hidden;
  display:flex; align-items:flex-end;
}
.ph-image::before{
  content:"";
  position:absolute; top:14px; left:14px;
  width:14px; height:14px;
  border-top:2px solid var(--red);
  border-left:2px solid var(--red);
}
.ph-image::after{
  content: attr(data-label);
  position:relative;
  margin:16px;
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.03em;
  color:var(--ink-soft);
  background:rgba(255,255,255,.85);
  padding:6px 10px;
  border:1px solid var(--line);
}
.ph-portrait{ aspect-ratio:4/5; }
.ph-landscape{ aspect-ratio:4/3; }
.ph-wide{ aspect-ratio:16/7; }
.ph-gallery{ aspect-ratio:1/1; }
.ph-slide{ aspect-ratio:4/3; }
.slide-real-img{ display:none; width:100%; height:100%; object-fit:cover; position:relative; z-index:1; }
.ph-image.has-photo{ background:none; }
.ph-image.has-photo::before,
.ph-image.has-photo::after{ display:none; }
.ph-image.has-photo .slide-real-img{ display:block; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.site-header.scrolled{ border-color:var(--line); box-shadow:0 1px 0 rgba(0,0,0,.02); }

.header-inner{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  height:76px;
  display:flex; align-items:center; justify-content:space-between;
}

.brand-mark{ display:flex; align-items:center; gap:12px; }
.brand-text{
  font-family:var(--serif); font-size:19px; font-weight:500; letter-spacing:.01em;
  color:var(--ink);
}

.main-nav{ display:flex; align-items:center; gap:clamp(18px, 2.4vw, 34px); }
.nav-link{
  position:relative;
  font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink); padding:6px 0;
}
.nav-link::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--red); transform:scaleX(0); transform-origin:left;
  transition:transform .25s var(--ease);
}
.nav-link:hover::after,
.nav-link.active-link::after{ transform:scaleX(1); }
.nav-link.active-link{ color:var(--red); }

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:34px; height:34px; background:none; border:none; padding:0;
}
.nav-toggle span{ display:block; width:100%; height:1.5px; background:var(--ink); transition:transform .25s var(--ease), opacity .25s var(--ease); }
.nav-toggle.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{ padding:clamp(40px,7vw,88px) 0 0; }
.hero-inner{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:55% 45%; gap:clamp(24px,4vw,56px);
  align-items:center;
}
.hero-name{
  font-size:clamp(48px, 7vw, 96px);
  line-height:.98;
  letter-spacing:-.01em;
  font-weight:400;
}
.hero-headline{
  font-family:var(--serif); font-size:clamp(19px,2vw,24px); font-weight:400;
  line-height:1.35; max-width:32ch; margin-bottom:16px;
}
.hero-support{ color:var(--ink-soft); max-width:62ch; margin-bottom:16px; font-size:15px; line-height:1.7; }
.hero-support:last-of-type{ margin-bottom:32px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center; }
.hero-media .ph-image{ width:100%; }
.hero-photo{ width:100%; aspect-ratio:4/5; overflow:hidden; }
.hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 50%; }

/* ==========================================================================
   CREDENTIAL STRIP
   ========================================================================== */
.credential-strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; margin-top:clamp(48px,7vw,88px); }
.credential-inner{
  max-width:var(--container); margin:0 auto; padding:26px var(--gutter);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.credential-item{
  display:flex; align-items:center; gap:14px;
  padding:0 22px;
  border-left:1px solid var(--line);
}
.credential-item:first-child{ border-left:none; padding-left:0; }
.cred-icon{ width:26px; height:26px; color:var(--red); flex-shrink:0; }
.credential-item strong{ display:block; font-size:13px; font-weight:600; letter-spacing:.01em; }
.credential-item span{ display:block; font-size:12px; color:var(--ink-soft); margin-top:2px; }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about{ padding:var(--section-y) 0; }
.about-inner{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px);
  align-items:center;
}
.about-photo{ width:100%; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); }
.about-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.about-copy p{ color:var(--ink-soft); margin-bottom:16px; max-width:52ch; }
.about-copy strong{ color:var(--ink); font-weight:600; }
.about-copy .text-link{ margin-top:8px; }

/* ==========================================================================
   EXPERTISE
   ========================================================================== */
.expertise{ padding:var(--section-y) 0; background:var(--bg-soft); }
.expertise-head{
  max-width:var(--container); margin:0 auto var(--section-y); padding:0 var(--gutter);
  display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap;
}
.expertise-lede{ max-width:34ch; color:var(--ink-soft); font-size:15px; }
.ex-num{ font-family:var(--serif); font-size:14px; color:var(--ink-soft); }
.expertise-wheel-wrap{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:340px 1fr; gap:64px; align-items:center;
}
.wheel-svg-holder{ display:flex; justify-content:center; }
.expertise-wheel{ width:100%; max-width:340px; height:auto; overflow:visible; }
.wheel-seg path{
  fill:var(--bg-soft); stroke:var(--bg); stroke-width:2;
  transition:fill .25s var(--ease);
}
.wheel-seg text{
  font-family:var(--serif); font-size:15px; fill:var(--ink-soft);
  transition:fill .25s var(--ease); pointer-events:none;
}
.wheel-seg{ cursor:pointer; outline:none; }
.wheel-seg.active path{ fill:var(--red); }
.wheel-seg.active text{ fill:#fff; }
@media (hover:hover) and (pointer:fine){
  .wheel-seg:hover path, .wheel-seg:focus-visible path{ fill:var(--red); }
  .wheel-seg:hover text, .wheel-seg:focus-visible text{ fill:#fff; }
  .wheel-seg:focus-visible path{ stroke:var(--ink); }
}
.wheel-hub{ fill:var(--bg); stroke:var(--line); stroke-width:1; }
.wheel-hub-count{ font-family:var(--serif); font-size:34px; fill:var(--ink); }
.wheel-hub-label{ font-family:var(--sans); font-size:11px; letter-spacing:.14em; fill:var(--ink-soft); }
.wheel-panel{ min-height:170px; }
.wheel-panel h3{ font-size:24px; font-weight:500; margin:14px 0 12px; }
.wheel-panel p:not(.ex-num){ color:var(--ink-soft); font-size:15px; max-width:42ch; }
@media (max-width:760px){
  .expertise-wheel-wrap{ grid-template-columns:1fr; gap:36px; text-align:center; }
  .wheel-panel p:not(.ex-num){ margin:0 auto; }
}

/* ==========================================================================
   FEATURED PROJECTS SLIDER
   ========================================================================== */
.projects{ padding:var(--section-y) 0 0; }
.projects-head{ max-width:var(--container); margin:0 auto 48px; padding:0 var(--gutter); }

.slider{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(20px,4vw,48px);
}
.slider-media{ overflow:hidden; }
.slider-media .ph-image{ transition:transform .6s var(--ease), opacity .5s var(--ease); }
.slider.fading .slider-media .ph-image{ transform:scale(1.03); opacity:.4; }

.slider-panel{
  border:1px solid var(--line); padding:clamp(24px,3vw,40px);
  display:flex; flex-direction:column; justify-self:stretch;
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.slider.fading .slider-panel{ opacity:0; transform:translateY(6px); }

.slider-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.slide-count{ font-family:var(--serif); font-size:15px; color:var(--ink-soft); }
.slide-count #slideCurrent{ color:var(--red); }
.slider-arrows{ display:flex; gap:8px; }
.arrow-btn{
  width:36px; height:36px; border:1px solid var(--line); background:#fff;
  font-size:15px; color:var(--ink);
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.arrow-btn:hover{ border-color:var(--red); color:var(--red); }

.slide-category{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--red); margin-bottom:12px; }
.slide-title{ font-size:clamp(22px,2.4vw,30px); line-height:1.2; margin-bottom:14px; }
.slide-desc{ color:var(--ink-soft); font-size:14.5px; margin-bottom:20px; }
.slide-role{ margin-bottom:24px; }
.role-label{ display:block; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; }
.slide-role p{ font-size:14px; margin-bottom:2px; }

.slider-pagination{
  max-width:var(--container); margin:32px auto 0; padding:0 var(--gutter) var(--section-y);
  display:flex; gap:22px; flex-wrap:wrap;
}
.pagi-item{
  background:none; border:none; padding:0; display:flex; align-items:center; gap:10px;
  color:var(--ink-soft);
}
.pagi-num{ font-family:var(--serif); font-size:13px; transition:color .2s var(--ease); }
.pagi-track{ width:52px; height:2px; background:var(--line); position:relative; overflow:hidden; }
.pagi-fill{ position:absolute; inset:0; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.pagi-item.active .pagi-num{ color:var(--red); }
.pagi-item.active .pagi-fill{ transform:scaleX(1); }

/* ==========================================================================
   IBEX
   ========================================================================== */
.ibex{ padding:var(--section-y) 0; background:var(--bg-soft); }
.ibex-head{ max-width:760px; margin:0 auto 48px; padding:0 var(--gutter); text-align:center; }
.ibex-logo{ height:78px; width:auto; margin:0 auto 20px; display:block; }
.ibex-sub{ color:var(--ink-soft); margin-top:14px; font-size:15px; }
.ibex-desc{ color:var(--ink-soft); margin-top:18px; font-size:15px; max-width:64ch; margin-left:auto; margin-right:auto; }
.ibex-labs{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
.ibex-lab{
  font-size:12.5px; color:var(--ink); border:1px solid var(--line);
  padding:7px 14px; letter-spacing:.02em;
}

/* ==========================================================================
   TEACHING & CURRICULUM
   ========================================================================== */
.teaching{ padding:var(--section-y) 0; background:#fff; }
.teaching-head{ max-width:760px; margin:0 auto 48px; padding:0 var(--gutter); text-align:center; }
.teaching-grid{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.teaching-item{ padding:36px 32px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.teaching-code{ font-family:var(--serif); font-size:14px; color:var(--ink-soft); }
.teaching-item h3{ font-size:19px; font-weight:500; margin:14px 0 4px; }
.teaching-note{ font-size:12.5px; color:var(--ink-soft); font-style:italic; margin-bottom:14px; }
.teaching-item > p:last-child{ color:var(--ink-soft); font-size:14px; max-width:40ch; }
.teaching-link{
  max-width:var(--container); margin:40px auto 0; padding:0 var(--gutter);
  color:var(--ink-soft); font-size:15px; max-width:70ch;
}
.teaching-link strong{ color:var(--ink); font-weight:600; }

.ibex-grid{
  max-width:var(--container); margin:0 auto 56px; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.ibex-cell{
  padding:26px 22px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  display:flex; flex-direction:column; gap:6px; background:#fff;
  transition:background .2s var(--ease);
}
.ibex-cell:hover{ background:var(--bg-soft); }
.ibex-abbr{ font-family:var(--serif); font-size:19px; }
.ibex-full{ font-size:12.5px; color:var(--ink-soft); line-height:1.4; }

.ibex-slider{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
}
.ibex-slider-media{
  position:relative; width:100%; aspect-ratio:16/8; overflow:hidden; border:1px solid var(--line);
  background:var(--bg-soft);
}
.ibex-slide-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transform:scale(1.03);
  transition:opacity .7s var(--ease), transform 1.1s var(--ease);
  pointer-events:none;
}
.ibex-slide-img.active{ opacity:1; transform:scale(1); pointer-events:auto; }

.ibex-slider-bar{
  display:flex; justify-content:space-between; align-items:flex-end; gap:20px;
  padding:22px 0 18px; flex-wrap:wrap;
}
.ibex-slide-count{ font-family:var(--serif); font-size:14px; color:var(--ink-soft); display:block; margin-bottom:6px; }
.ibex-slide-count #ibexSlideCurrent{ color:var(--red); }
.ibex-slide-name{ font-size:17px; font-weight:500; }
.ibex-slider-controls{ display:flex; gap:8px; }

.ibex-slider-pagination{ display:flex; gap:8px; padding-bottom:var(--section-y); flex-wrap:wrap; }
.ibex-pagi-dot{
  width:34px; height:3px; background:var(--line); border:none; padding:0;
  transition:background .2s var(--ease);
}
.ibex-pagi-dot.active{ background:var(--red); }


/* ==========================================================================
   MCVDC PATHWAY
   ========================================================================== */
.mcvdc{ padding:var(--section-y) 0; background:var(--bg-soft); }
.mcvdc-head{ max-width:760px; margin:0 auto; padding:0 var(--gutter); text-align:center; }
.mcvdc-logo{ height:56px; width:auto; margin:0 auto 20px; display:block; }
.mcvdc-intro{ color:var(--ink-soft); margin:16px auto 0; font-size:15px; max-width:56ch; }

.pathway{
  max-width:var(--container); margin:56px auto 0; padding:0 var(--gutter);
  display:flex; flex-direction:column; align-items:center; gap:0;
}
.pathway-connector{ width:1px; height:32px; background:var(--line); position:relative; }
.pathway-connector::after{
  content:""; position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid var(--line);
}
.pathway-stage{
  border:1px solid var(--line); background:#fff; padding:22px 30px;
  text-align:center; min-width:260px;
}
.pathway-stage.accent{ border-color:var(--red); }
.pathway-stage .stage-label{ display:block; font-weight:600; font-size:14px; letter-spacing:.02em; }
.pathway-stage.accent .stage-label{ color:var(--red); }
.pathway-stage.group{ min-width:340px; }
.pathway-stage.group ul{ margin-top:14px; display:flex; flex-direction:column; gap:6px; }
.pathway-stage.group li{ font-size:13px; color:var(--ink-soft); }

/* ==========================================================================
   INITIATIVES & COLLABORATIONS
   ========================================================================== */
.initiatives{ padding:var(--section-y) 0; background:#fff; }
.initiatives-head{ max-width:640px; margin:0 auto 48px; padding:0 var(--gutter); text-align:center; }
.initiatives-lede{ color:var(--ink-soft); margin-top:14px; font-size:15px; }
.initiatives-grid{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.initiatives-item{ padding:36px 32px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.initiatives-item h3{ font-size:19px; font-weight:500; margin:14px 0 10px; }
.initiatives-item p:last-child{ color:var(--ink-soft); font-size:14px; max-width:36ch; }
.exposure-strip{
  max-width:var(--container); margin:48px auto 0; padding:32px var(--gutter) 0;
  border-top:1px solid var(--line);
}
.exposure-label{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:16px; }
.exposure-list{ display:flex; flex-direction:column; gap:10px; }
.exposure-list li{ font-size:14px; color:var(--ink-soft); max-width:74ch; }
.exposure-list strong{ color:var(--ink); font-weight:600; }

/* ==========================================================================
   RESEARCH PROFILE
   ========================================================================== */
.research-profile{ padding:var(--section-y) 0; background:var(--bg-soft); }
.research-head{ max-width:640px; margin:0 auto 40px; padding:0 var(--gutter); text-align:center; }
.research-metrics{
  max-width:520px; margin:0 auto 40px; padding:0 var(--gutter);
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.metric-card{ background:#fff; padding:28px 24px; text-align:center; }
.metric-source{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:12px; }
.metric-num{ font-family:var(--serif); font-size:40px; line-height:1; color:var(--red); }
.metric-num span{ display:block; font-family:var(--sans, inherit); font-size:12px; color:var(--ink-soft); font-weight:400; margin-top:6px; letter-spacing:.02em; }
.metric-sub{ font-size:13px; color:var(--ink-soft); margin-top:8px; }
.research-ids{
  max-width:640px; margin:0 auto; padding:0 var(--gutter);
  display:flex; flex-direction:column;
}
.research-ids li{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:14px 0; border-top:1px solid var(--line); flex-wrap:wrap;
}
.research-ids li:first-child{ border-top:none; }
.research-ids li span:first-child{ font-size:13px; color:var(--ink-soft); }
.research-ids li a, .research-id-plain{ font-size:14px; color:var(--ink); }
.research-ids li a{ transition:color .2s var(--ease); }
.research-ids li a:hover{ color:var(--red); }

/* ==========================================================================
   HIGHLIGHTS
   ========================================================================== */
.highlights{ padding:var(--section-y) 0; background:#fff; }
.highlights-head{ max-width:640px; margin:0 auto 48px; padding:0 var(--gutter); text-align:center; }
.highlights-grid{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.highlights-item{ padding:36px 32px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.highlights-item h3{ font-size:17px; font-weight:500; margin-bottom:16px; }
.highlights-item ul{ display:flex; flex-direction:column; gap:10px; }
.highlights-item li{ font-size:13.5px; color:var(--ink-soft); line-height:1.5; padding-left:14px; position:relative; }
.highlights-item li::before{ content:""; position:absolute; left:0; top:7px; width:5px; height:1px; background:var(--red); }
@media (max-width:760px){
  .highlights-grid{ grid-template-columns:1fr; }
}

/* ==========================================================================
   KNOWLEDGE
   ========================================================================== */
.knowledge{ padding:var(--section-y) 0; }
.knowledge-head{ max-width:var(--container); margin:0 auto 48px; padding:0 var(--gutter); }
.knowledge-grid{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.knowledge-item{ padding:32px 28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.knowledge-item h3{ font-size:19px; font-weight:500; margin-bottom:10px; }
.knowledge-item > p{ color:var(--ink-soft); font-size:13.5px; margin-bottom:18px; }
.knowledge-list li{ font-size:13px; color:var(--ink-soft); padding:10px 0; border-top:1px solid var(--line); }
.knowledge-list li:first-child{ border-top:none; }

/* ==========================================================================
   COLLABORATION CTA
   ========================================================================== */
.collab{ position:relative; padding:var(--section-y) 0; overflow:hidden; }
.collab-bg{ position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:min(46vw,600px); color:var(--ink); opacity:.05; pointer-events:none; }
.collab-inner{ max-width:640px; margin:0 auto; padding:0 var(--gutter); text-align:center; position:relative; }
.collab-inner p{ color:var(--ink-soft); margin:22px 0 34px; font-size:15.5px; }
.collab-inner .btn{ margin:0 auto; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact{ padding:var(--section-y) 0; border-top:1px solid var(--line); }
.contact-inner{
  max-width:var(--container); margin:0 auto; padding:0 var(--gutter);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px);
}
.contact-inner p{ margin-bottom:18px; color:var(--ink-soft); font-size:15px; line-height:1.55; }
.contact-inner h2{ margin-bottom:24px; }
.contact-details p{ display:flex; flex-direction:column; gap:4px; margin-bottom:20px; }
.contact-label{ font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--red); }
.contact-details a:hover{ color:var(--red); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{ border-top:1px solid var(--line); }
.footer-affiliations{
  max-width:var(--container); margin:0 auto; padding:32px var(--gutter);
  display:flex; flex-wrap:wrap; align-items:center; gap:28px;
  font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);
  border-bottom:1px solid var(--line);
}
.footer-logo{ height:26px; width:auto; }
.footer-logo-ibex{ height:34px; }
.footer-logo-mcvdc{ height:22px; }
.footer-bottom{
  max-width:var(--container); margin:0 auto; padding:22px var(--gutter);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  font-size:12.5px; color:var(--ink-soft);
}
.footer-links{ display:flex; gap:22px; }
.footer-links a:hover{ color:var(--red); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .expertise-grid{ grid-template-columns:repeat(2,1fr); }
  .ibex-grid{ grid-template-columns:repeat(2,1fr); }
  .knowledge-grid{ grid-template-columns:repeat(2,1fr); }
  .slider{ grid-template-columns:1fr; }
}

@media (max-width:860px){
  .main-nav{
    position:fixed; top:76px; left:0; right:0; bottom:0;
    background:#fff; flex-direction:column; align-items:flex-start; gap:0;
    padding:12px var(--gutter) 40px; transform:translateY(-8px);
    opacity:0; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease);
    overflow-y:auto;
  }
  .main-nav.open{ opacity:1; pointer-events:auto; transform:none; }
  .nav-link{ width:100%; padding:16px 0; border-bottom:1px solid var(--line); }
  .nav-toggle{ display:flex; }

  .hero-inner{ grid-template-columns:1fr; }
  .hero-media{ order:-1; }
  .hero-name{ font-size:clamp(40px,12vw,64px); }

  .credential-inner{ grid-template-columns:repeat(2,1fr); row-gap:22px; }
  .credential-item{ border-left:none; padding-left:0; }
  .credential-item:nth-child(2n){ padding-left:22px; border-left:1px solid var(--line); }

  .about-inner{ grid-template-columns:1fr; }

  .ibex-slider-bar{ flex-direction:column; align-items:flex-start; }
  .contact-inner{ grid-template-columns:1fr; }
  .pathway-stage,.pathway-stage.group{ min-width:0; width:100%; }
}

@media (max-width:600px){
  .ibex-slider-media{ aspect-ratio:4/3; }
  .expertise-grid{ grid-template-columns:1fr; }
  .ibex-grid{ grid-template-columns:1fr; }
  .knowledge-grid{ grid-template-columns:1fr; }
  .header-inner{ height:64px; }
  .brand-text{ font-size:16px; }
}
