html {
  scroll-behavior: smooth;
}

body.zpf-readdy-home {
  margin: 0;
  font-family: 'Noto Sans JP', 'DM Sans', sans-serif;
  background: #fff;
  color: #1F2D3A;
}

.admin-bar .zpf-fixed-nav {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .zpf-fixed-nav {
    top: 46px;
  }
}

/* セクションのフェードアップ */
.zpf-anim {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}

.zpf-anim.is-visible {
  opacity: 1;
  transform: none;
}

/* FAQ */
.zpf-faq-a {
  display: none;
}

.zpf-faq-item.is-open .zpf-faq-a {
  display: block;
}

.zpf-faq-item.is-open .zpf-faq-icon {
  transform: rotate(180deg);
}

.zpf-faq-icon {
  transition: transform .3s ease;
}

/* モバイルメニュー */
.zpf-mobile-menu {
  display: none;
}

.zpf-mobile-menu.is-open {
  display: flex;
}

/* SCROLL バウンス */
.zpf-scroll-bounce {
  animation: zpfBounce 2s infinite;
}

@keyframes zpfBounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translate(-50%, 0);
  }
  40% {
    transform: translate(-50%, -8px);
  }
  60% {
    transform: translate(-50%, -4px);
  }
}

/* 動きを減らしたい環境への配慮 */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .zpf-anim {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .zpf-scroll-bounce {
    animation: none;
  }

  .zpf-faq-icon {
    transition: none;
  }
}