/* フェードイン前 */
.fade-in-section > *:not(.section-bg) {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: calc(var(--delay-index, 0) * 0.08s);
  will-change: opacity, transform;
}

/* 表示 */
.fade-in-section.is-visible > *:not(.section-bg) {
  opacity: 1;
  transform: translateY(0);
  will-change: auto;
  transition-delay: 0s;
}

/* モバイル：アニメーションは控えめに */
@media (max-width: 768px) {
  .fade-in-section > *:not(.section-bg) {
    transform: translateY(20px);
    transition-delay: calc(var(--delay-index, 0) * 0.04s);
  }

  /* モバイルでも is-visible 後は遅延リセット */
  .fade-in-section.is-visible > *:not(.section-bg) {
    transition-delay: 0s;
  }
}

/* ホバーズーム効果 */
.pictureCard-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
  will-change: transform;
}

.pictureCard-img:hover img {
  transform: scale(1.1);
}

/* アニメーション軽減 */
@media (prefers-reduced-motion: reduce) {
  .fade-in-section > *:not(.section-bg) {
    transition: none;
    transform: none;
    opacity: 1;
    will-change: auto;
  }

  .pictureCard-img img {
    transition: none;
    transform: none;
    will-change: auto;
  }

  .pictureCard-img:hover img {
    transform: none;
  }
}
