@media (max-width: 768px) {

  /* ── Header ── */
  header {
    padding: 24px 20px;
  }

  .logo {
    font-size: 22px;
  }

  nav {
    gap: 20px;
  }

  nav a {
    font-size: 10px;
  }

  /* ── Page title ── */
  .page-title {
    padding: 12px 20px;
  }

  /* ── Index intro ── */
  .intro {
    padding: 28px 20px;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .intro-text {
    font-size: 13px;
    line-height: 1.8;
  }

  /* ── Index tagline ── */
  .tagline {
    padding: 10px 20px;
  }

  /* ── Index cards ── */
  .cards {
    grid-template-columns: 1fr;
  }

  .card-img {
    aspect-ratio: 3 / 2;
  }

  /* ── Section ── */
  .section {
    padding: 32px 20px;
  }

  .divider {
    margin: 0 20px;
  }

  /* ── Regular grid (DJ) → フェードカルーセル ── */
  .regular-grid {
    display: block;
    position: relative;
    background: none;
    border: none;
    overflow: hidden;
  }

  .regular-card {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    opacity: 0;
    transition: opacity 1.2s ease;
    pointer-events: none;
    border: none;
    border-bottom: 1px solid var(--border);
    padding: 24px 20px;
  }

  .regular-card.active {
    position: relative;
    opacity: 1;
    pointer-events: auto;
  }

  /* ── Event filter (DJ) ── */
  .event-filter {
    flex-wrap: wrap;
    gap: 10px;
  }

  .filter-search {
    width: 100%;
    margin-left: 0;
  }

  .filter-search input {
    width: 100%;
  }

  /* ── Events scroll (DJ) ── */
  .upcoming-scroll {
    padding: 16px 20px 24px;
    margin: 0 -20px;
    gap: 10px;
  }

  .upcoming-card {
    flex: 0 0 200px;
  }

  /* ── Works grid ── */
  .grid {
    grid-template-columns: 1fr 1fr;
  }

  /* ── About content ── */
  .content {
    padding: 40px 20px;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  /* ── Work detail header ── */
  .work-header {
    padding: 40px 20px 32px;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .work-title {
    font-size: 32px;
  }

  /* ── Work detail sections ── */
  .work-section {
    padding: 32px 20px;
  }

  .section-body {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .section-body.three,
  .section-body.four {
    grid-template-columns: 1fr 1fr;
  }

  /* ── Footer ── */
  footer {
    padding: 20px;
  }
}

@media (max-width: 480px) {

  nav a {
    font-size: 9px;
  }

  .upcoming-card {
    flex: 0 0 160px;
  }

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

  .section-body.three,
  .section-body.four {
    grid-template-columns: 1fr 1fr;
  }
}
