/* D3 follows the sub-direction map and study rows used by D1, D2 and D4.
   All rules are scoped to this page. */
.page-research-ecosystems .ecosystems-introduction { max-width:940px; margin:24px 0 0; color:var(--muted); font-size:1.0625rem; line-height:1.75; }
.page-research-ecosystems .theme-label { margin:0 0 12px; color:var(--muted); font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.page-research-ecosystems .sub-map { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:64px; }
.page-research-ecosystems .sub-map a { display:flex; flex-direction:column; gap:6px; padding:20px 20px 22px; border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:0 0 14px 14px; background:white; transition:background .2s,border-color .2s; }
.page-research-ecosystems .sub-map a:hover,
.page-research-ecosystems .sub-map a:focus-visible { border-color:var(--blue); background:var(--pale); }
.page-research-ecosystems .sub-map span { color:var(--blue); font-size:.8125rem; font-weight:700; }
.page-research-ecosystems .sub-map b { font-size:1.0625rem; line-height:1.35; letter-spacing:-.01em; }
.page-research-ecosystems .sub-map small { color:var(--muted); font-size:.875rem; line-height:1.55; }
.page-research-ecosystems .ecosystems-theme + .ecosystems-theme::before { content:""; display:block; height:1px; margin-bottom:64px; background:var(--line); }
.page-research-ecosystems .theme-study-block { margin-bottom:28px; }
.page-research-ecosystems .theme-study { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.page-research-ecosystems .theme-study li { padding:14px 0; border-bottom:1px solid var(--line); }
.page-research-ecosystems .theme-study h3 { margin:0; font-size:1rem; line-height:1.4; letter-spacing:-.01em; }
.page-research-ecosystems .theme-study p { margin:4px 0 0; color:var(--muted); font-size:.875rem; line-height:1.55; }
/* Column widths follow each image's aspect ratio, so a row of mixed images shares one height. */
.page-research-ecosystems .theme-banner { display:grid; gap:16px; margin-bottom:28px; }
.page-research-ecosystems .theme-banner.cols-3 { grid-template-columns:4fr 4fr 5.67fr; align-items:start; }
.page-research-ecosystems .theme-banner.cols-2 { grid-template-columns:2.47fr 1.78fr; align-items:start; }
.page-research-ecosystems .theme-banner figure { min-width:0; margin:0; }
.page-research-ecosystems .theme-banner a { display:block; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:white; cursor:zoom-in; }
.page-research-ecosystems .theme-banner img { display:block; width:100%; height:auto; }
.page-research-ecosystems .theme-banner figcaption { margin-top:8px; color:var(--muted); font-size:.8125rem; line-height:1.55; }
.page-research-ecosystems .theme-banner figcaption span { display:block; margin-top:2px; font-size:.75rem; }
.page-research-ecosystems .project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.page-research-ecosystems .project-card { display:flex; flex-direction:column; min-width:0; padding:24px; border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:0 0 14px 14px; background:white; }
.page-research-ecosystems .project-card.is-joint { border-top-color:var(--blue); background:var(--pale); }
.page-research-ecosystems .work-team { margin:0 0 10px; color:var(--blue); font-size:.75rem; font-weight:600; }
.page-research-ecosystems .project-lead { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.page-research-ecosystems .project-lead .work-team { margin:0; }
.page-research-ecosystems .lead-avatars { display:flex; flex-shrink:0; }
.page-research-ecosystems .lead-avatars img { display:block; width:40px; height:40px; border:2px solid white; border-radius:50%; box-shadow:0 0 0 1px var(--line); object-fit:cover; object-position:50% 20%; }
.page-research-ecosystems .lead-avatars img + img { margin-left:-12px; }
.page-research-ecosystems .joint-tag { display:inline-block; margin-left:6px; padding:2px 8px; border-radius:999px; background:var(--blue); color:white; font-size:.6875rem; font-weight:600; letter-spacing:.02em; vertical-align:1px; }
.page-research-ecosystems .project-card h3 { margin:0 0 12px; font-size:1.25rem; line-height:1.3; letter-spacing:-.01em; }
.page-research-ecosystems .project-card > p:not(.work-team):not(.project-meta) { margin:0; color:var(--muted); font-size:.9375rem; line-height:1.7; }
.page-research-ecosystems .project-meta { margin:14px 0 0; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:.75rem; }
.page-research-ecosystems .project-card .text-link { margin-top:auto; padding-top:18px; font-size:.875rem; }
.page-research-ecosystems .theme-boundary { margin:20px 0 0; padding:16px 20px; border-left:4px solid var(--accent); border-radius:0 12px 12px 0; background:var(--pale); color:var(--muted); font-size:.9375rem; line-height:1.65; }
.page-research-ecosystems .theme-boundary b { color:var(--ink); }
.page-research-ecosystems .theme-boundary a { color:var(--blue); }
.page-research-ecosystems .ecosystems-detail::before { content:""; grid-column:1/-1; height:1px; background:var(--line); }
.page-research-ecosystems .ecosystems-detail .priorities p { margin:8px 0 0; font-size:1rem; }
.page-research-ecosystems .ecosystems-detail .priorities a:hover { color:var(--blue); }
@media(max-width:1000px) {
  .page-research-ecosystems .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .page-research-ecosystems .ecosystems-introduction { font-size:1rem; }
  .page-research-ecosystems .sub-map,
  .page-research-ecosystems .theme-banner.cols-2,
  .page-research-ecosystems .theme-banner.cols-3,
  .page-research-ecosystems .theme-study,
  .page-research-ecosystems .project-grid { grid-template-columns:1fr; }
  .page-research-ecosystems .sub-map { gap:10px; margin-bottom:44px; }
  .page-research-ecosystems .sub-map a { padding:16px 18px 18px; }
  .page-research-ecosystems .ecosystems-theme + .ecosystems-theme::before { margin-bottom:44px; }
  .page-research-ecosystems .theme-study { gap:0; }
  .page-research-ecosystems .project-card { padding:22px; }
}
@media(prefers-reduced-motion:reduce) {
  .page-research-ecosystems .sub-map a { transition:none; }
}
