@media (max-width: 860px) {
  body { overflow-x:hidden; }
  .nav { height:68px; padding:0 16px; }
  .brand { font-size:.74rem; letter-spacing:.085em; }
  .menu-toggle { width:40px; height:40px; }
  .nav-links { inset:68px 0 auto; padding:20px 20px 24px; gap:.75rem; box-shadow:0 18px 40px rgba(9,11,53,.10); }
  .nav-links a { font-size:1rem; width:100%; padding:.45rem 0; }

  .section { padding:56px 16px; }
  .page-hero { padding:108px 16px 48px; }
  .page-hero .container { gap:1rem; }
  .page-hero h1 { font-size:clamp(2.35rem,12vw,3.5rem); line-height:.98; }
  .page-hero p { font-size:1rem; line-height:1.5; }

  .research-block { padding:54px 16px 58px; }
  .research-block h2 { font-size:clamp(1.9rem,9vw,2.8rem); line-height:1.02; margin-bottom:1rem; }
  .research-block .desc { font-size:.98rem; line-height:1.52; }
  .research-number { font-size:.66rem; line-height:1.35; letter-spacing:.13em; margin-bottom:1rem; }
  .figure-card { margin-top:1.45rem; box-shadow:0 14px 36px rgba(29,25,74,.07); }
  .figure-card img { width:100%; height:auto; }
  .figure-card figcaption { font-size:.56rem; line-height:1.32; padding:.5rem .65rem .58rem; color:#777a82; }
  .figure-card figcaption em { font-size:inherit; }

  .people-layout { gap:28px; }
  .people-layout .pi-photo { width:100%; max-width:none; aspect-ratio:4/3; }
  .people-layout .pi-photo img { object-position:center 36%; }
  .bio h1 { font-size:clamp(2.45rem,12vw,3.7rem); line-height:.96; }
  .bio .role { font-size:1.08rem; margin-top:1rem; }
  .bio .institution { font-size:.96rem; margin-bottom:1.5rem; }
  .bio p { font-size:1rem; line-height:1.6; }

  .simple-content { max-width:none; }
  .simple-content h2 { font-size:clamp(1.75rem,9vw,2.7rem); }
  .simple-content p { font-size:1rem; line-height:1.6; }
  .contact-card { margin-top:2rem; padding:24px 20px; gap:1.6rem; }
  .contact-card a { font-size:1rem; overflow-wrap:anywhere; }

  .site-footer { padding:36px 18px 42px; }
  .footer-grid { gap:.8rem; }
  .footer-right { margin-top:1rem; }

  /* News page: stack date above item text on narrow screens. */
  .simple-content > article[style*="grid-template-columns:140px"] {
    grid-template-columns:1fr !important;
    gap:.55rem !important;
    padding:0 0 2rem !important;
  }
}

@media (max-width: 520px) {
  .section { padding:48px 14px; }
  .page-hero { padding:94px 14px 40px; }
  .research-block { padding:48px 14px 52px; }
  .section-label { font-size:.64rem; letter-spacing:.14em; }
  .research-block h2 { font-size:clamp(1.82rem,8.6vw,2.5rem); }
  .research-block .desc { font-size:.95rem; line-height:1.5; }
  .figure-card { margin-top:1.25rem; }
  .figure-card figcaption { font-size:.52rem; line-height:1.28; padding:.45rem .58rem .5rem; }
  .text-link { margin-top:1.35rem; }
}
