/* Hero video-end reveal — overlay slide states.
   Class contract used by js/hero-reveal.js. */

.hr-pinned {
	position: fixed;
	left: 0;
	z-index: 1000;
	margin: 0;
}

.hr-animating {
	transition: top 0.8s ease;
	will-change: top;
}

.hr-hidden {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.hr-animating {
		transition: none;
	}
}

/* Header gated on the hero video.
   Front page only (body.home is printed by PHP, so the header is hidden with
   zero flash and without depending on JS). js/hero-reveal.js adds
   html.hr-header-shown when the video ends (or the fallback timer fires),
   which reveals it. Same specificity as the hide rule, so source order wins.

   Target the whole location-header wrapper, NOT just #hide-header: the header
   template holds two sibling containers (the sticky #hide-header AND a second
   non-sticky block, e.g. .elementor-element-bc060fe). Gating only #hide-header
   left the second one visible during the video. Ancestor opacity also hides the
   position:fixed #hide-header child. */
body.home header.elementor-location-header {
	opacity: 0;
	pointer-events: none;
}

html.hr-header-shown header.elementor-location-header {
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.6s ease;
}

@media (prefers-reduced-motion: reduce) {
	html.hr-header-shown header.elementor-location-header {
		transition: none;
	}
}
