:root {
	--site-motion-duration-fast: 220ms;
	--site-motion-duration-base: 560ms;
	--site-motion-duration-slow: 680ms;
	--site-motion-ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
	--site-motion-ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
	--site-motion-distance-small: 12px;
	--site-motion-distance-base: 22px;
	--site-motion-distance-large: 30px;
}

.has-site-motion [data-site-motion] {
	transition-duration: var(--site-motion-duration-base);
	transition-property: opacity, transform;
	transition-timing-function: var(--site-motion-ease-standard);
	transition-delay: var(--site-motion-delay, 0ms);
}

.has-site-motion [data-site-motion="fade-up"] {
	opacity: 0;
	transform: translateY(var(--site-motion-distance-base));
}

.has-site-motion [data-site-motion="fade"] {
	opacity: 0;
}

.has-site-motion [data-site-motion="slide-left"] {
	opacity: 0;
	transform: translateX(-20px);
}

.has-site-motion [data-site-motion="slide-right"] {
	opacity: 0;
	transform: translateX(20px);
}

.has-site-motion [data-site-motion="image-reveal"] {
	opacity: 0;
	transform: translateY(var(--site-motion-distance-small)) scale(1.025);
	transition-duration: var(--site-motion-duration-slow);
}

.has-site-motion [data-site-motion].is-site-motion-visible {
	opacity: 1;
	transform: none;
}

.has-site-motion .flow-list[data-site-timeline]::before,
.has-site-motion .fukuoka-lp__flow[data-site-timeline]::before,
.has-site-motion .omuta-premium__timeline[data-site-timeline]::before {
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 900ms var(--site-motion-ease-standard);
}

.has-site-motion .flow-list[data-site-timeline].is-site-motion-visible::before,
.has-site-motion .fukuoka-lp__flow[data-site-timeline].is-site-motion-visible::before,
.has-site-motion .omuta-premium__timeline[data-site-timeline].is-site-motion-visible::before {
	transform: scaleY(1);
}

.home-sample-modal,
.simple-sample-modal {
	transition: opacity var(--site-motion-duration-fast) ease;
}

.home-sample-modal__dialog,
.simple-sample-modal__dialog {
	transform: scale(0.985);
	transition: opacity var(--site-motion-duration-fast) ease, transform var(--site-motion-duration-fast) var(--site-motion-ease-standard);
}

.home-sample-modal.is-open .home-sample-modal__dialog,
.simple-sample-modal.is-open .simple-sample-modal__dialog {
	transform: scale(1);
}

@media (hover: hover) and (pointer: fine) {
	[data-site-motion-card] {
		transition: transform var(--site-motion-duration-fast) var(--site-motion-ease-standard), border-color var(--site-motion-duration-fast) ease, box-shadow var(--site-motion-duration-fast) ease;
	}

	[data-site-motion-card]:hover {
		transform: translateY(-4px);
		border-color: rgba(37, 99, 235, 0.32);
		box-shadow: 0 14px 34px rgba(15, 39, 66, 0.1);
	}

	.home-button:not(.home-button--outline):hover,
	.service-price-cta__button:hover,
	.contact-form__submit:hover,
	.faq-page-cta__button:not(.faq-page-cta__button--line):hover,
	.flow-cta__button--contact:hover,
	.fukuoka-lp__button:not(.fukuoka-lp__button--outline):not(.fukuoka-lp__button--light):hover,
	.omuta-premium__button:not(.omuta-premium__button--outline):not(.omuta-premium__button--light):not(.omuta-premium__button--line):hover {
		transform: translateY(-2px);
	}
}

@media (max-width: 767px) {
	.has-site-motion [data-site-motion] {
		--site-motion-duration-base: 480ms;
		--site-motion-duration-slow: 520ms;
		--site-motion-distance-base: 14px;
		transition-delay: var(--site-motion-delay-mobile, 0ms);
	}

	.has-site-motion [data-site-motion="slide-left"],
	.has-site-motion [data-site-motion="slide-right"],
	.has-site-motion [data-site-motion="image-reveal"] {
		transform: translateY(var(--site-motion-distance-base));
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
	}

	[data-site-motion],
	[data-site-timeline]::before,
	.home-sample-modal,
	.simple-sample-modal,
	.home-sample-modal__dialog,
	.simple-sample-modal__dialog {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		animation: none !important;
	}
}
