/* Optional motion only. Layout, type, colors and focus-ring geometry stay in component styles. */
@media (prefers-reduced-motion: no-preference) {
	:where(.home-button, .home-professions__cta, .home-agency-network__cta, .home-agency-panel__cta, .home-employer-cta__button, .home-faq__cta, .home-resources__cta, .home-newsletter__submit, .job-button, .agency-button, .site-header__cta) {
		transition: color 180ms ease-out, background-color 180ms ease-out, border-color 180ms ease-out, transform 180ms ease-out;
	}

	:where(.home-sector-link, .home-profession-link) {
		transition: border-color 180ms ease-out, background-color 180ms ease-out, box-shadow 180ms ease-out, transform 180ms ease-out;
	}

	.home-sector-link::before,
	:where(.home-sector-link__arrow, .home-profession-link__arrow) {
		transition: transform 180ms ease-out;
	}

	:where(.home-resource-card__title a, .home-resource-card__link, .home-journey__cta, .job-card__title a, .agency-card__title a, .site-menu a, .site-mega-menu a, .mobile-menu a, .site-header__mobile-toggle, .site-menu__toggle, .mobile-menu__toggle, .home-faq__question) {
		transition: color 180ms ease-out, background-color 180ms ease-out, border-color 180ms ease-out;
	}

	:where(.home-job-search input, .home-job-search select, .home-newsletter__field input, .job-search input, .job-search select, .agency-search select, .application-form input, .application-form textarea) {
		transition: border-color 180ms ease-out, background-color 180ms ease-out;
	}

	:where(.job-card, .agency-card, .home-resource-card, .home-agency-panel) {
		transition: border-color 180ms ease-out;
	}

	/* Never translate an article/panel unless the whole surface is a link. */
	@media (hover: hover) and (pointer: fine) {
		:where(.home-button, .home-professions__cta, .home-agency-network__cta, .home-agency-panel__cta, .home-employer-cta__button, .home-faq__cta, .home-resources__cta, .home-newsletter__submit, .job-button, .agency-button, .site-header__cta):not(:disabled):hover {
			transform: translateY(-1px);
		}

		.home-sector-link:hover,
		.home-profession-link:hover {
			transform: translateY(-2px);
		}

		/* Linked titles/CTAs get emphasis; their multi-link containers stay still. */
		:where(.job-card, .agency-card, .home-resource-card, .home-agency-panel):has(a[href]:hover) {
			border-color: var(--recruitment-color-primary-strong);
		}

		.site-menu a:hover,
		.site-mega-menu a:hover {
			color: var(--recruitment-color-primary-strong);
		}

		.site-header__mobile-toggle:hover,
		.mobile-menu__toggle:hover {
			background-color: var(--recruitment-color-primary-soft);
			border-color: var(--recruitment-color-primary-strong);
		}
	}

	:is(.home-button, .home-professions__cta, .home-agency-network__cta, .home-agency-panel__cta, .home-employer-cta__button, .home-faq__cta, .home-resources__cta, .home-newsletter__submit, .job-button, .agency-button, .site-header__cta):active {
		transform: none;
	}

	.has-motion .reveal-on-scroll {
		transition: opacity 400ms ease-out, translate 400ms ease-out, border-color 180ms ease-out, background-color 180ms ease-out, box-shadow 180ms ease-out, transform 180ms ease-out;
	}

	.has-motion .reveal-on-scroll:not(.is-revealed) {
		opacity: 0.94;
		translate: 0 16px;
	}

	.has-motion .reveal-on-scroll.is-revealed {
		opacity: 1;
		transition-delay: var(--recruitment-reveal-delay, 0ms), var(--recruitment-reveal-delay, 0ms), 0ms, 0ms, 0ms, 0ms;
	}

	/* Keyboard focus is immediate, with no stagger or movement of the focused control. */
	.has-motion .reveal-on-scroll:focus-within {
		opacity: 1;
		translate: none;
		transform: none;
		transition: none;
	}

	:is(.home-button, .home-professions__cta, .home-agency-network__cta, .home-agency-panel__cta, .home-employer-cta__button, .home-faq__cta, .home-resources__cta, .home-newsletter__submit, .job-button, .agency-button, .site-header__cta):focus-visible,
	.home-sector-link:focus-visible,
	.home-profession-link:focus-visible {
		transform: none;
		transition: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	/* Preserve structural transforms (e.g. the centered native FAQ indicator). */
	:where(.site-header, .site-main, .site-footer) *,
	:where(.site-header, .site-main, .site-footer) *::before,
	:where(.site-header, .site-main, .site-footer) *::after {
		transition: none;
		animation: none;
	}

	.has-motion .reveal-on-scroll,
	.has-motion .reveal-on-scroll:not(.is-revealed),
	:where(.home-sector-link, .home-profession-link, .home-button, .home-professions__cta, .home-agency-network__cta, .home-agency-panel__cta, .home-employer-cta__button, .home-faq__cta, .home-resources__cta, .home-newsletter__submit, .job-button, .agency-button, .site-header__cta):hover,
	.home-sector-link:hover,
	.home-profession-link:hover,
	.home-sector-link:hover::before,
	.home-sector-link:hover .home-sector-link__arrow,
	.home-profession-link:hover .home-profession-link__arrow {
		opacity: 1;
		translate: none;
		transform: none;
	}

	html {
		scroll-behavior: auto;
	}
}
