/* HOMEID animation layer (switched by body classes from the customizer). */
@keyframes mo-probe { to { opacity: .99; } }
@keyframes mo-kenburns { from { transform: scale(1); } to { transform: scale(1.06); } }
@keyframes mo-spin { to { transform: rotate(360deg); } }
@keyframes mo-shine { to { transform: translateX(-260%) skewX(-20deg); } }
@keyframes mo-bump { 0% { transform: scale(1); } 30% { transform: scale(1.22) rotate(-8deg); } 60% { transform: scale(.94); } 100% { transform: scale(1); } }
@keyframes mo-marquee { from { transform: translateX(0); } to { transform: translateX(50%); } }
.mo-probe { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); pointer-events: none; animation: mo-probe 1000s linear infinite; }
.is-off, .is-off *, .is-off *::before, .is-off *::after { animation-play-state: paused !important; }

/* Reveal on scroll (classes added by JS – without JS everything stays visible). */
.mo-reveal .mo-rv { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--d, 0s); }
.mo-reveal .mo-rv.mo-in { opacity: 1; transform: none; }

/* Hero: slow zoom on the active slide. */
.mo-hero.mo-ready .slide.is-active img { animation: mo-kenburns 9s ease-out forwards; }

/* Category image zoom. */
.mo-zoom .cat-card a:hover .cat-img img, .mo-zoom .cat-card a:focus-visible .cat-img img { transform: scale(1.07); }

/* Second product image on hover (pointer devices only). */
@media (hover: hover) and (pointer: fine) {
	.mo-swap .woocommerce ul.products li.product:hover .pc-media img.pc-alt { opacity: 1; }
	.mo-lift .woocommerce ul.products li.product:hover .pc-media { transform: translateY(-5px); box-shadow: 0 22px 34px -24px rgba(14, 71, 68, .55); }
}

/* Sale seal turns slowly. */
.mo-badge.mo-ready .woocommerce span.onsale::before { animation: mo-spin 22s linear infinite; }

/* Button shine on hover. */
.mo-shine .btn, .mo-shine .woocommerce a.button, .mo-shine .woocommerce button.button { position: relative; overflow: hidden; isolation: isolate; }
.mo-shine .btn::after, .mo-shine .woocommerce a.button::after, .mo-shine .woocommerce button.button:not(.loading)::after { content: ""; position: absolute; top: 0; bottom: 0; left: 110%; width: 40%; z-index: 1; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent); transform: skewX(-20deg); }
.mo-shine .btn:hover::after, .mo-shine .btn:focus-visible::after, .mo-shine .woocommerce a.button:hover::after, .mo-shine .woocommerce button.button:not(.loading):hover::after { animation: mo-shine .8s ease forwards; }

/* Cart bump after adding a product. */
.mo-cart .hdr-cart.is-bump .hdr-ico { animation: mo-bump .6s ease; }

/* Perks marquee (small screens). */
.mo-marquee .perks-list.is-marquee { width: max-content; overflow: visible; scroll-snap-type: none; animation: mo-marquee 26s linear infinite; }
.mo-marquee .perks-list.is-marquee:hover, .mo-marquee .perks-list.is-marquee:focus-within { animation-play-state: paused; }
[dir="ltr"] .mo-marquee .perks-list.is-marquee { animation-direction: reverse; }

/* Full stop (accessibility tool, or window.moAnim.stop()). */
html.mo-stopped *:not(.mo-probe), html.mo-stopped *::before, html.mo-stopped *::after { animation: none !important; }
html.mo-stopped .mo-rv { opacity: 1 !important; transform: none !important; transition: none !important; }
html.mo-stopped .perks-list.is-marquee { width: auto; overflow-x: auto; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.mo-rv { opacity: 1 !important; transform: none !important; }
}
html.mo-stopped .perks-list [aria-hidden="true"] { display: none; }
