/* ============================================================
   Sturmlechner Lab — Responsive overrides
   MUST be loaded LAST on every page (after base.css and the
   page-specific stylesheet) so these media-query rules win the
   CSS cascade regardless of selector specificity ties with
   desktop rules defined earlier in the cascade.
   ============================================================ */
    /* ══ RESPONSIVE (updated) ════════════════════════════ */
    @media (max-width: 960px) {
      .about-grid, .pi-grid { grid-template-columns: 1fr; }
      .r-row { flex-direction: column; }
      .r-row-fig { flex: none; width: 100%; height: 220px; }
      .r-row-img { height: 100%; }
      .r-row-text, .r-row-text-only { padding: 1.4rem 1.4rem 1.4rem 1.8rem; }
      .join-grid { grid-template-columns: 1fr; }
      .contact-inner { grid-template-columns: 1fr; gap: 2rem; }
      .cell-wrap { display: none; }
      nav { padding: 1rem 1.5rem; }
      section.content { padding: 4.5rem 1.5rem; }
      #contact { padding: 4rem 1.5rem; }
      #hero::after { display: none; }
    }
    @media (max-width: 640px) {
      .nav-toggle { display: flex; }
      .nav-logo { font-size: 1.3rem; }
      .nav-brand-logo { height: 44px; }
      .nav-links {
        display: none;
        position: fixed; top: 94px; left: 0; right: 0;
        flex-direction: column; gap: 0;
        max-height: calc(100vh - 94px); overflow-y: auto;
        background: rgba(10, 22, 40, 0.98);
        backdrop-filter: blur(14px);
        padding: 0.5rem 1.5rem 1.5rem;
        box-shadow: 0 8px 20px rgba(0,0,0,0.25);
      }
      .nav-links.open { display: flex; }
      .nav-links li { border-top: 1px solid rgba(255,255,255,0.1); }
      .nav-links li:first-child { border-top: none; }
      .nav-links a { display: block; padding: 0.9rem 0; font-size: 1rem; }
      .nav-dropdown { position: static; }
      .nav-drop-toggle { display: block; padding: 0.9rem 0 0.4rem; }
      .nav-drop-menu {
        display: block; position: static; transform: none;
        padding-top: 0; min-width: 0;
      }
      .nav-drop-menu-inner {
        background: transparent; border: none; box-shadow: none;
        padding: 0 0 0.4rem;
      }
      .nav-drop-menu li { border-top: none; }
      .nav-drop-menu li a {
        padding: 0.6rem 0 0.6rem 1.2rem;
        font-size: 0.95rem; color: rgba(255,255,255,0.65);
        white-space: normal;
      }
      .nav-drop-menu li a:hover { background: transparent; color: white; }

      .hero-inner { padding: 0 1.5rem; }
      h1.hero-title { font-size: 2.6rem; }
      .hero-scroll-hint { display: none; }
      .team-subnav { padding: 0 1rem; overflow-x: auto; }
    }
    @media (max-width: 480px) {
      .pub-link { grid-template-columns: 2.5rem 1fr; gap: 0.9rem; }
      .news-row { grid-template-columns: 70px 1fr; }
    }
  