/*
 * ---------------------------------------------------------------------------
 *  alisaadat.ca homepage scroll-reveal
 *
 *  Subtle fade-up + grid stagger driven by IntersectionObserver.
 *  - Hidden initial state ONLY applies when:
 *      (a) JavaScript is enabled, AND
 *      (b) the user has not requested reduced motion in their OS
 *    Both conditions are checked by the inline marker script in <head>,
 *    which adds `.lt-reveal-js` to <html> only when both are true.
 *  - Without the marker (no-JS or reduce-motion), elements render normally —
 *    no fade, no FOUC.
 *
 *  Scoped to body.home / body.page-id-32 so other pages are untouched.
 * ---------------------------------------------------------------------------
 */

.lt-reveal-js body.home .wrapper-lg.bg-custom-home,
.lt-reveal-js body.home .wrapper-md.mls-hero,
.lt-reveal-js body.home .wrapper-md.limelight-ctas,
.lt-reveal-js body.home .wrapper-sm.bg-primary,
.lt-reveal-js body.home .lt-team,
.lt-reveal-js body.home .listing-container,
.lt-reveal-js body.home .ll-searches,
.lt-reveal-js body.home .ll-searches__card,
.lt-reveal-js body.home .card-grid-item,
.lt-reveal-js body.home .limelight-ctas .ll-ctas__card,
.lt-reveal-js body.home main > .wrapper-md[style*="background-color"],
.lt-reveal-js body.home main > section.wrapper-md:not(.mls-hero):not(.limelight-ctas) {
	opacity: 0;
	transform: translate3d(0, 30px, 0);
	transition:
		opacity   600ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

/*
 * [limelight-london-listings] replaces .listing-container nodes via AJAX after
 * homepage-reveal observes the SSR set. Those replacements never get
 * .lt-reveal--in — keep them visible.
 */
.lt-reveal-js body.home .ll-london-listings .listing-container {
	opacity: 1;
	transform: none;
	transition: none;
	will-change: auto;
}

.lt-reveal-js body.home .lt-reveal--in {
	opacity: 1 !important;
	transform: translate3d(0, 0, 0) !important;
}
