@media (max-width: 1024px) {
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-3 {
    grid-template-columns: 1fr;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .split,
  .footer-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px) {
  /* 上段の言語切替はスマホでは非表示 */
  .header-top {
    display: none;
  }

  .header-inner {
    min-height: 72px;
  }

  .menu-toggle {
    display: inline-flex;
  }

  .site-nav {
    display: none;
    position: absolute;
    top: 72px;
    left: 0;
    width: 100%;
    background: rgba(79, 107, 70, 0.98);
    border-bottom: 1px solid rgba(255,255,255,0.12);
    padding: 12px 16px 18px;
  }

  .site-nav.is-open {
    display: block;
  }

  .site-nav ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .site-nav a {
    color: var(--color-cream);
  }

  .hero-home-inner {
    padding: 72px 0 56px;
  }

  .page-hero {
    padding: 72px 0 56px;
  }

  .news-card {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

@media (max-width: 640px) {
  .container,
  .narrow {
    width: min(100% - 24px, var(--max-width));
  }

  .section {
    padding: 64px 0;
  }

  .grid-4,
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .panel-content,
  .card-body {
    padding: 20px;
  }

  .panel-title {
    font-size: 28px;
  }

  .card-title,
  .news-title {
    font-size: 22px;
  }

  .hero-title {
    font-size: clamp(34px, 10vw, 52px);
  }

  .button-row {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    width: 100%;
  }
}