/**
 * Rich & Well motion — visible scroll reveals + flush section seams.
 *
 * Important: do NOT put opacity/transform !important on the "in" state.
 * That locks the end values and makes keyframe/transition motion invisible.
 */

/* Shared motion base — transition drives the reveal */
.raw-motion {
	will-change: opacity, transform;
	transition:
		opacity 1.15s cubic-bezier(0.16, 1, 0.3, 1),
		transform 1.15s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Pending — clearly hidden until scrolled into view */
.raw-motion-pending {
	opacity: 0 !important;
	transform: translate3d(0, 56px, 0) !important;
	filter: none;
	transition: none !important;
	/* If reveal JS never loads (hosting blocks assets/), show content after a short delay. */
	animation: raw-motion-failsafe 0.01s linear 2.5s forwards !important;
}

@keyframes raw-motion-failsafe {
	to {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
	}
}

.raw-motion-pending.raw-motion--fade {
	transform: none !important;
}

.raw-motion-pending.raw-motion--left {
	transform: translate3d(-52px, 0, 0) !important;
}

.raw-motion-pending.raw-motion--right {
	transform: translate3d(52px, 0, 0) !important;
}

.raw-motion-pending.raw-motion--zoom {
	transform: scale(0.9) !important;
}

/* Visible — transition from pending values (no !important on these) */
.raw-motion-in {
	opacity: 1;
	transform: none;
	animation: none;
}

/* Stagger via transition-delay */
.raw-motion-in.delay1,
.raw-motion.delay1.raw-motion-in {
	transition-delay: 0.12s;
}
.raw-motion-in.delay2,
.raw-motion.delay2.raw-motion-in {
	transition-delay: 0.24s;
}
.raw-motion-in.delay3,
.raw-motion.delay3.raw-motion-in {
	transition-delay: 0.36s;
}
.raw-motion-in.delay4,
.raw-motion.delay4.raw-motion-in {
	transition-delay: 0.48s;
}
.raw-motion-in.delay5,
.raw-motion.delay5.raw-motion-in {
	transition-delay: 0.6s;
}

/* Soften Animate It defaults when they leak onto non-theme nodes */
.eds-scroll-hidden:not(.raw-motion-pending):not(.raw-motion) {
	opacity: 0;
}

.eds-scroll-visible:not(.raw-motion-in) {
	opacity: 1;
}

/* Catalog must never stay opacity:0 on mobile (tall section + IO threshold) */
.raw-catalog-root,
.raw-catalog-root.raw-motion-pending,
.raw-catalog-root .raw-motion-pending,
.raw-catalog-root .reveal-up,
.raw-catalog-root .eds-scroll-hidden,
.raw-catalog-root .raw-catalog-card,
.raw-catalog-root .card-gradient,
.raw-catalog-root .raw-catalog-section {
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
	visibility: visible !important;
}
/*
 * Light html/body canvas — residual seams never become thick navy bands.
 * Top strip seals live in admin-bar-seal.php (#raw-top-seal).
 */
html {
	background-color: var(--bg-primary, #f8f9fb) !important;
	margin: 0 !important;
	padding: 0 !important;
}

html.dark {
	background-color: var(--bg-dark, #050e17) !important;
}

body.gradient-bg:not(.light-hero),
body.light-hero.gradient-bg,
body:not(.gradient-bg) {
	background-color: var(--bg-primary, #f8f9fb) !important;
}

html.dark body.gradient-bg,
html.dark body.light-hero.gradient-bg {
	background-color: var(--bg-dark, #050e17) !important;
}

#page.site,
#primary.site-main,
.entry-content,
.wpb-content-wrapper,
.raw-page,
.raw-about,
.raw-opportunity,
.raw-wd-catalog,
.raw-woocommerce {
	background: transparent !important;
}

.vc_row,
.vc_row-fluid,
.wpb_row,
.vc_section,
.wpb-content-wrapper > .vc_row,
.entry-content .raw-vc-section-row,
.entry-content .vc_row.raw-vc-section-row,
main section,
.site-main > section,
.entry-content > section,
.entry-content section,
.wpb-content-wrapper section,
.raw-home > section,
#primary section,
.values-section-wrap,
#wellness-devices,
#opportunity,
#testimonials,
#faq,
#about,
.wd-hero-section,
.faq-hero,
.testi-hero,
.contact-hero {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.entry-content .raw-vc-section-row .wpb_content_element,
.wpb-content-wrapper .wpb_content_element,
.entry-content .raw-vc-element,
.wpb-content-wrapper .raw-vc-element {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* WPBakery full-width spacer — remove from layout entirely */
.vc_row-full-width,
.vc_row-full-width.vc_clearfix {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	background: transparent !important;
}

body.vc_editor .raw-motion-pending,
body.compose-mode .raw-motion-pending,
body.raw-vc-editing .raw-motion-pending {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.raw-motion,
	.raw-motion-pending,
	.raw-motion-in,
	.eds-scroll-hidden,
	.animated,
	.reveal-up {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
		transition: none !important;
		filter: none !important;
	}
}
