/* KAKTS motion — content stays visible unless JS has added .kakts-motion to <html>. */
:root { --kakts-ease: cubic-bezier(0.22, 1, 0.36, 1); }

/* Scroll reveal (matches the Next.js Reveal component). */
.kakts-motion [data-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.9s var(--kakts-ease), transform 0.9s var(--kakts-ease);
	will-change: opacity, transform;
}
.kakts-motion [data-reveal].is-visible { opacity: 1; transform: none; }

/* Hero: slow settle of the photo, then text rises in sequence. */
.kakts-motion .wp-block-cover .wp-block-cover__image-background {
	animation: kakts-settle 2.4s var(--kakts-ease) both;
}
.kakts-motion .wp-block-cover .wp-block-cover__inner-container > * {
	animation: kakts-rise 1s var(--kakts-ease) both;
}
.kakts-motion .wp-block-cover .wp-block-cover__inner-container > *:nth-child(1) { animation-delay: 0.15s; }
.kakts-motion .wp-block-cover .wp-block-cover__inner-container > *:nth-child(2) { animation-delay: 0.3s; }
.kakts-motion .wp-block-cover .wp-block-cover__inner-container > *:nth-child(3) { animation-delay: 0.45s; }
.kakts-motion .wp-block-cover .wp-block-cover__inner-container > *:nth-child(4) { animation-delay: 0.6s; }
@keyframes kakts-settle { from { transform: scale(1.06); } to { transform: scale(1); } }
@keyframes kakts-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

/* Product photos: soft zoom on hover, like the product cards on the Next.js site. */
.kakts-card figure, .wp-block-latest-posts__featured-image { overflow: hidden; }
.kakts-card img, .wp-block-latest-posts__featured-image img { transition: transform 0.7s var(--kakts-ease); }
.kakts-card:hover img, .wp-block-latest-posts li:hover .wp-block-latest-posts__featured-image img { transform: scale(1.03); }
.kakts-card { transition: box-shadow 0.5s var(--kakts-ease), transform 0.5s var(--kakts-ease); }
.kakts-card:hover { box-shadow: 0 14px 34px -18px rgba(31, 42, 31, 0.35); transform: translateY(-2px); }

/* Buttons and links ease instead of snapping. */
.wp-element-button, .wp-block-button__link { transition: background-color 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out; }
.wp-block-navigation a { transition: color 0.3s ease-out; }
.wp-block-navigation a:hover { color: var(--wp--preset--color--accent-1); }
.wp-block-details summary { cursor: pointer; transition: color 0.3s ease-out; }
.wp-block-details summary:hover { color: var(--wp--preset--color--accent-1); }

@media (prefers-reduced-motion: reduce) {
	.kakts-motion [data-reveal] { opacity: 1; transform: none; transition: none; }
	.kakts-motion .wp-block-cover *, .kakts-card, .kakts-card img { animation: none !important; transition: none !important; }
}

/* Hero copy lines up with the header and content columns. */
.wp-block-cover.kakts-hero.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto !important;
	padding-inline: var(--wp--preset--spacing--50, 1.5rem);
	box-sizing: border-box;
}
@media (min-width: 1300px) { .wp-block-cover.kakts-hero.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container { padding-inline: 0; } }
