@media (max-width: 1120px) {
  .main-nav a { font-size: .8rem; padding: .42rem .48rem; }
  .grid-4 { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 860px) {
  .nav-toggle { display: inline-block; }
  .main-nav {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: #fff;
    border-bottom: 1px solid #dfe4ef;
    padding: .8rem;
    flex-direction: column;
    align-items: stretch;
    gap: .4rem;
  }
  .main-nav a,
  .main-nav .official-btn { text-align: left; }
  .main-nav.open { display: flex; }

  .grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grid-3,
  .grid-2,
  .footer-grid { grid-template-columns: 1fr; }

  .hero { min-height: 64vh; }
  .hero-content { padding: 4rem 0; }
}

@media (max-width: 560px) {
  .section { padding: 2.7rem 0; }
  .page-hero { padding: 2.4rem 0 1.6rem; }
  .page-hero.museum-hero { background-position: center 42%; }
  .hero h1 { font-size: 1.62rem; }
  .brand-cn { font-size: .86rem; }
  .brand-en { font-size: .66rem; }
  .btn { width: 100%; text-align: center; }
  .btn-row { flex-direction: column; }
  .card { padding: 1rem; }
}
