/* Motion: one load sequence, quiet scroll reveals, hover details. Only runs when html.tlf-js is set (motion allowed, script loaded). */
@media (prefers-reduced-motion: no-preference) {

	@keyframes tlf-up {
		from { opacity: 0; transform: translateY(14px); }
		to { opacity: 1; transform: none; }
	}
	@keyframes tlf-fade {
		from { opacity: 0; }
		to { opacity: 1; }
	}

	/* Hero and page heads on load */
	.tlf-js .tlf-hero-grid .tlf-h1,
	.tlf-js .tlf-page-head .tlf-h1 { animation: tlf-up .7s cubic-bezier(.2, .7, .2, 1) both; }
	.tlf-js .tlf-hero-grid .tlf-lede,
	.tlf-js .tlf-page-head .tlf-lede { animation: tlf-up .7s cubic-bezier(.2, .7, .2, 1) .12s both; }
	.tlf-js .tlf-hero-grid .tlf-actions { animation: tlf-up .7s cubic-bezier(.2, .7, .2, 1) .24s both; }
	.tlf-js .tlf-hero-grid .tlf-portrait { animation: tlf-fade 1s ease-out .3s both; }

	/* Scroll reveals */
	.tlf-js .tlf-band:not(.tlf-tilt-bottom) .tlf-wrap:not(.tlf-contact-grid) > .elementor-element,
	.tlf-js .tlf-groups > .elementor-element,
	.tlf-js .tlf-topics li,
	.tlf-js .tlf-press-list li {
		opacity: 0;
		transform: translateY(12px);
		transition: opacity .6s ease-out, transform .6s cubic-bezier(.2, .7, .2, 1);
	}
	.tlf-js .tlf-band:not(.tlf-tilt-bottom) .tlf-wrap:not(.tlf-contact-grid) > .elementor-element.is-in,
	.tlf-js .tlf-groups > .elementor-element.is-in,
	.tlf-js .tlf-topics li.is-in,
	.tlf-js .tlf-press-list li.is-in {
		opacity: 1;
		transform: none;
	}

	/* Hover details */
	.tlf-band .elementor-button,
	.site-header .site-navigation ul.menu li.tlf-cta a {
		transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
	}
	.tlf-band .tlf-btn-primary .elementor-button:hover,
	.tlf-band .tlf-btn-ghost .elementor-button:hover,
	.tlf-band .tlf-btn-outline .elementor-button:hover,
	.site-header .site-navigation ul.menu li.tlf-cta a:hover { transform: translateY(-1px); }

	.site-header .site-navigation ul.menu li:not(.tlf-cta) > a {
		background-image: linear-gradient(currentColor, currentColor);
		background-repeat: no-repeat;
		background-position: 0 100%;
		background-size: 0 1px;
		transition: background-size .25s ease, color .2s ease;
	}
	.site-header .site-navigation ul.menu li:not(.tlf-cta) > a:hover { background-size: 100% 1px; }

	.tlf-band .tlf-text-link .elementor-button { transition: color .2s ease, text-underline-offset .2s ease; }
	.tlf-band .tlf-text-link .elementor-button:hover { text-underline-offset: 7px; }

	.site-footer .site-navigation ul.menu li a { transition: color .2s ease, text-decoration-color .2s ease; }
}
