/*
 * CIS Base — animations.css
 * スクロール表示・ホバー・ローディングのアニメーション。
 * JS（app.js の IntersectionObserver）が .is-visible を付与します。
 */

/* スクロールで下からフェードイン */
.js-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s var(--cis-ease), transform 0.7s var(--cis-ease);
	will-change: opacity, transform;
}
.js-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* 子要素を順番に表示（stagger） */
.js-reveal-stagger > * {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s var(--cis-ease), transform 0.6s var(--cis-ease);
}
.js-reveal-stagger.is-visible > * {
	opacity: 1;
	transform: translateY(0);
}
.js-reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.08s; }
.js-reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.16s; }
.js-reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.24s; }
.js-reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.32s; }
.js-reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 0.40s; }

/* 見出しの英字キッカーを左からスライド */
.js-reveal .c-sectionHeading__en,
.c-sectionHeading.js-reveal .c-sectionHeading__en {
	display: inline-block;
}

/* リンク下線のスライドイン（本文リンク） */

/* prefers-reduced-motion を尊重 */
@media (prefers-reduced-motion: reduce) {
	.js-reveal,
	.js-reveal-stagger > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.c-card__image img,
	.c-btn,
	.c-moreLink::after {
		transition: none !important;
	}
}

/* ページ初期ロードのフェード */
body.is-loading {
	opacity: 0;
}
body {
	transition: opacity 0.4s var(--cis-ease);
}
