/* ============================================================
   リッチアニメーション（TOP・各トップページ用）
   IntersectionObserver連動 / prefers-reduced-motion 自動無効
   ============================================================ */

/* ---- スクロールイン（fade-up） ---- */
[data-anim] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 720ms var(--ease), transform 720ms var(--ease);
  will-change: opacity, transform;
}
[data-anim="fade"]   { transform: none; }
[data-anim="left"]   { transform: translateX(-32px); }
[data-anim="right"]  { transform: translateX(32px); }
[data-anim="zoom"]   { transform: scale(0.94); }
[data-anim].is-inview {
  opacity: 1;
  transform: none;
}

/* stagger（子要素を順番に） */
[data-anim-stagger] > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 640ms var(--ease), transform 640ms var(--ease);
}
[data-anim-stagger].is-inview > * { opacity: 1; transform: none; }
[data-anim-stagger].is-inview > *:nth-child(1) { transition-delay: 60ms; }
[data-anim-stagger].is-inview > *:nth-child(2) { transition-delay: 160ms; }
[data-anim-stagger].is-inview > *:nth-child(3) { transition-delay: 260ms; }
[data-anim-stagger].is-inview > *:nth-child(4) { transition-delay: 360ms; }
[data-anim-stagger].is-inview > *:nth-child(5) { transition-delay: 460ms; }
[data-anim-stagger].is-inview > *:nth-child(6) { transition-delay: 560ms; }

/* ---- ヒーロー見出しのワイプ／スライドイン ---- */
.anim-hero__line {
  display: inline-block; overflow: hidden; vertical-align: top;
}
.anim-hero__line > span {
  display: inline-block;
  transform: translateY(110%);
  transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}
.anim-hero.is-inview .anim-hero__line > span { transform: translateY(0); }
.anim-hero.is-inview .anim-hero__line:nth-child(2) > span { transition-delay: 120ms; }

/* ヒーローのeyebrow/leadは遅延フェード */
.anim-hero__eyebrow, .anim-hero__lead, .anim-hero__sub, .anim-hero__badge {
  opacity: 0; transform: translateY(18px);
  transition: opacity 800ms var(--ease), transform 800ms var(--ease);
}
.anim-hero.is-inview .anim-hero__eyebrow { transition-delay: 80ms; opacity: 1; transform: none; }
.anim-hero.is-inview .anim-hero__lead    { transition-delay: 520ms; opacity: 1; transform: none; }
.anim-hero.is-inview .anim-hero__sub     { transition-delay: 600ms; opacity: 1; transform: none; }
.anim-hero.is-inview .anim-hero__badge   { transition-delay: 700ms; opacity: 1; transform: none; }

/* TOP 60周年バッジは軽く回転フェードイン */
.anim-hero__badge { transform: translateY(18px) scale(0.85) rotate(-8deg); }
.anim-hero.is-inview .anim-hero__badge { transform: none; }

/* ---- パララックス（背景の視差移動。JSでtranslateY付与） ---- */
[data-parallax] { will-change: transform; }

/* ---- カウントアップ数字（チラつき防止で初期min-width確保のみ） ---- */
.is-counting { font-variant-numeric: tabular-nums; }

/* ---- ホバーリッチ化（カード画像ズーム） ---- */
.p-business-card__media, .p-catalog-card__cover, .c-card__media, .p-figure {
  overflow: hidden;
}
.p-business-card__media img, .p-catalog-card__cover img, .c-card__media img {
  transition: transform 600ms var(--ease);
}
.p-business-card:hover .p-business-card__media img,
.p-catalog-card:hover .p-catalog-card__cover img,
.c-card:hover .c-card__media img { transform: scale(1.06); }

/* ---- reduced-motion：すべて即時表示 ---- */
@media (prefers-reduced-motion: reduce) {
  [data-anim], [data-anim-stagger] > *,
  .anim-hero__line > span, .anim-hero__eyebrow,
  .anim-hero__lead, .anim-hero__sub, .anim-hero__badge {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  [data-parallax] { transform: none !important; }
}
