/* ==========================================================================
   NOA – motion styles. Hidden states only apply when JS is running
   (html.noa-js) and are removed for reduced-motion visitors.
   ========================================================================== */

:root {
	--noa-ease-out: cubic-bezier(.16, 1, .3, 1);
	--noa-dur: 1.1s;
}

/* Page fade-in */
html.noa-js body.noa-site { animation: noaPageIn .9s var(--noa-ease-out) both; }
@keyframes noaPageIn { from { opacity: 0; } to { opacity: 1; } }

/* Pre-hide likely targets before JS tags them (avoids a flash). */
html.noa-js:not(.noa-motion-ready) .elementor .e-heading-base,
html.noa-js:not(.noa-motion-ready) .elementor .e-paragraph-base,
html.noa-js:not(.noa-motion-ready) .elementor .e-button-base { opacity: 0; }

/* ---- Reveal states ---- */
html.noa-js [data-noa-reveal] {
	transition:
		opacity var(--noa-dur) var(--noa-ease-out),
		transform var(--noa-dur) var(--noa-ease-out),
		clip-path 1.4s var(--noa-ease-out),
		filter var(--noa-dur) var(--noa-ease-out);
	transition-delay: var(--noa-delay, 0ms);
}

html.noa-js [data-noa-reveal="up"]      { opacity: 0; transform: translate3d(0, 34px, 0); }
html.noa-js [data-noa-reveal="rise"]    { opacity: 0; transform: translate3d(0, 46px, 0); filter: blur(6px); }
html.noa-js [data-noa-reveal="card"]    { opacity: 0; transform: translate3d(0, 60px, 0) scale(.97); }
html.noa-js [data-noa-reveal="curtain"] { opacity: 0; transform: scale(1.06); }
html.noa-js [data-noa-reveal="line"]    { opacity: 0; transform: scaleX(0); transform-origin: left center; }
html.noa-js.rtl [data-noa-reveal="line"],
html.noa-js[dir="rtl"] [data-noa-reveal="line"] { transform-origin: right center; }

html.noa-js [data-noa-reveal].is-in {
	opacity: 1;
	transform: none;
	clip-path: inset(0 0 0 0);
	filter: none;
}

/* Cards keep their own hover lift after revealing. */
html.noa-js .noa-pcard[data-noa-reveal].is-in:hover { transform: translateY(-6px); }
html.noa-js .woocommerce ul.products li.product[data-noa-reveal].is-in:hover { transform: translateY(-6px); }
html.noa-js [data-noa-reveal="card"].is-in { transition-property: opacity, transform, box-shadow; transition-duration: var(--noa-dur), var(--noa-dur), .45s; }

/* ---- Hero ---- */
.noa-hero .noa-parallax-wrap { clip-path: inset(0 0 0 0); }
html.noa-js .noa-hero .noa-parallax-wrap { clip-path: inset(0 0 0 100%); transition: clip-path 1.6s var(--noa-ease-out) .15s; }
html.noa-js.rtl .noa-hero .noa-parallax-wrap { clip-path: inset(0 100% 0 0); }
html.noa-js .noa-hero.is-loaded .noa-parallax-wrap { clip-path: inset(-120px -120px -120px -120px); }

html.noa-js .noa-hero .noa-parallax { --noa-ps: 1.28; }
html.noa-js .noa-hero.is-loaded .noa-parallax { --noa-ps: 1.12; }

/* ---- Parallax images ---- */
@property --noa-ps { syntax: '<number>'; inherits: false; initial-value: 1.12; }

.noa-parallax {
	--noa-py: 0%;
	transform: translate3d(0, var(--noa-py), 0) scale(var(--noa-ps, 1.12));
	transition: --noa-ps 2.6s var(--noa-ease-out);
	will-change: transform;
}

/* ---- Marquee ---- */
.noa-marquee { overflow: hidden; }
.noa-marquee__track {
	display: flex;
	inline-size: max-content;
	animation: noaMarquee var(--noa-marquee-dur, 36s) linear infinite;
}
.noa-marquee:hover .noa-marquee__track { animation-play-state: paused; }
.noa-marquee__group { display: flex; align-items: center; gap: 34px; padding-inline-end: 34px; flex-shrink: 0; }
@keyframes noaMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.rtl .noa-marquee__track { animation-name: noaMarqueeRtl; }
@keyframes noaMarqueeRtl { from { transform: translateX(0); } to { transform: translateX(50%); } }

/* ---- Header shrink ---- */
.noa-header__inner { transition: min-block-size .4s var(--noa-ease-out); }
.noa-logo__img { transition: inline-size .4s var(--noa-ease-out); }
.noa-header.is-compact .noa-header__inner { min-block-size: 64px; }
.noa-header.is-compact .noa-logo__img { inline-size: 104px; }
@media (max-width: 1024px) {
	.noa-header.is-compact .noa-header__inner { min-block-size: 58px; }
	.noa-header.is-compact .noa-logo__img { inline-size: 88px; }
}

/* ---- Micro-interactions ---- */
.noa-btn, .noa-btn-outline, .noa-pcard__btn,
.elementor .e-button-base { position: relative; overflow: hidden; isolation: isolate; }
.noa-pcard__btn::before,
.elementor .e-button-base::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, .18);
	transform: translateX(-101%) skewX(-12deg);
	transition: transform .6s var(--noa-ease-out);
}
.noa-pcard__btn:hover::before,
.elementor .e-button-base:hover::before { transform: translateX(0) skewX(0); }

.noa-announce__item .noa-icon { animation: noaTwinkle 3.2s ease-in-out infinite; }
@keyframes noaTwinkle { 0%, 100% { opacity: .55; transform: scale(.85) rotate(0); } 50% { opacity: 1; transform: scale(1.1) rotate(45deg); } }

.woocommerce ul.products li.product a img { transition: transform 1s var(--noa-ease-out), opacity .4s; }
.woocommerce ul.products li.product a:first-child { display: block; overflow: hidden; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.05); }

.noa-header__cart .noa-cart-count { transition: transform .4s var(--noa-ease-out); }
.noa-header__cart.is-bump .noa-cart-count { transform: scale(1.35); }

/* ---- Reduced motion: everything static ---- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	[data-noa-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; filter: none !important; }
	.noa-parallax { transform: none !important; }
}
