/* --- RESPONSIVE --- */
@media (max-width: 768px) {
  header { padding: 1rem 1.5rem; }
  nav { display: none; }
  .hamburger { display: block; }
  .section { padding: 5rem 1.5rem; }
  .section-grid, .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .topics-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .topic-card { gap: 1rem; }
  .faq-section, .contact-section { padding: 5rem 1.5rem; }
  .footer-link-band { padding: 2rem 1.25rem; }
  .footer-links { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; gap: 1.5rem; text-align: center; }
  .section-number { font-size: clamp(3rem, 12vw, 7rem); }
  .section-visual a img {
    filter: grayscale(0) brightness(1) contrast(1);
  }
  .hero-stats {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    width: calc(100% - 3rem);
    padding: 1rem 1.1rem;
  }
  .hero-stat + .hero-stat {
    border-left: none;
    border-top: 1px solid rgba(245,245,240,0.08);
    padding-top: 0.75rem;
  }
}

@media (max-width: 480px) {
  body { font-size: 17px; }
  .hero-copy {
    padding: 1.5rem 1.2rem;
    margin-inline: 1rem;
  }
  .hero .hero-title {
    font-size: clamp(1.6rem, 7vw, 2.2rem);
  }
  .hero-sub {
    font-size: 0.9rem;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }
  .scroll-indicator {
    font-size: 0.78rem;
  }
  /* h3→h2に昇格済み（見出し階層最適化 Step 2） */
  .section-text h2 {
    font-size: 1.55rem;
    line-height: 1.35;
  }
  .section-text p,
  .section-text ul li,
  .contact-message {
    font-size: 1rem;
    line-height: 1.85;
  }
  .section-cta,
  .footer-link-list a,
  .footer-link-list span,
  .contact-form input,
  .contact-form textarea,
  .contact-form select,
  .faq-question-text,
  .faq-answer p {
    font-size: 0.95rem;
  }

  
  .topic-card-title {
    font-size: 0.9rem;
  }
  .topic-card {
    grid-template-columns: auto 1fr auto;
    gap: 0.8rem;
  }
  .topic-date-md {
    font-size: 1.35rem;
  }
  
  .footer-link-heading,
  .pattern-tag {
    font-size: 0.72rem;
  }
  .contact-form {
    gap: 1.15rem;
  }
  .faq-question {
    gap: 1rem;
    padding: 1.1rem 0;
  }
}

/* タッチデバイスではティッカー速度を落としてGPU負荷軽減 */
@media (hover: none) and (pointer: coarse) {
  .hero-ticker-row {
    animation-duration: 50s !important;
  }
  .hero-ticker-row.is-reverse {
    animation-duration: 55s !important;
  }
}