@media (max-width: 1024px) {
  .category-grid { grid-template-columns: repeat(3, 1fr); }
  .group-grid, .article-grid { grid-template-columns: repeat(2, 1fr); }
  .group-detail, .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .nav-toggle {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 48px; height: 48px; min-width: 48px; min-height: 48px;
    border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 12px;
  }
  .nav-toggle span { display: block; height: 2px; background: var(--ink); border-radius: 2px; }
  .site-nav {
    display: none; position: absolute; left: 0; right: 0; top: var(--header);
    background: #fff; border-bottom: 1px solid var(--line);
    flex-direction: column; align-items: stretch; padding: .8rem 1rem 1.1rem; gap: .2rem;
  }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: .7rem .4rem; }
  .nav-cta { margin: .4rem 0 0; text-align: center; }
  .header-inner { position: relative; }
  .category-grid, .group-grid, .article-grid, .footer-grid, .group-detail { grid-template-columns: 1fr; }
  .search-box { flex-direction: column; border-radius: 18px; }
  .search-box .btn { width: 100%; }
  .hero { padding: 2rem 0 1.6rem; }
  .type-choice { grid-template-columns: 1fr; }
  .group-card-media img { width: 64px; height: 64px; }
}

@media (max-width: 425px) {
  .container { width: min(100% - 24px, 1180px); }
  .group-card-actions { flex-direction: column; }
  .group-card-actions .btn { width: 100%; }
  .hero-actions .btn { width: 100%; }
}

@media (min-width: 1440px) {
  .container { width: min(1240px, calc(100% - 48px)); }
}
