/* BNRE utilities layer: loaders, sticky helpers, shared motion rules. */

/* ==========================================================
   BNRE Top Loader (YouTube-style progress line)
   ========================================================== */
.bnre-top-loader {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	z-index: 999999;
	pointer-events: none;
	background: transparent;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.bnre-top-loader__bar {
	display: block;
	width: 100%;
	height: 100%;
	transform-origin: left center;
	transform: scaleX(0);
	background: linear-gradient(90deg, #c6a756 0%, #d5b24c 45%, #e0bf5e 100%);
	box-shadow: 0 0 8px rgba(198, 167, 86, 0.45);
	transition: transform 0.22s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.bnre-top-loader.is-active {
	opacity: 1;
}

.bnre-top-loader.is-complete .bnre-top-loader__bar {
	transition-duration: 0.16s;
}

@media (prefers-reduced-motion: reduce) {
	.bnre-top-loader,
	.bnre-top-loader__bar {
		transition-duration: 0.01ms !important;
	}
}

/* ==========================================================
   Houzez Sticky Behavior Recovery
   Restores sticky classes used by theme JS (without full parent style import)
   ========================================================== */
.search-hidden,
.sticky-nav-area,
.sticky-search-area {
	position: relative;
	width: 100%;
	z-index: 1000;
	top: 0;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, -200px, 0);
}

.houzez-in-view {
	opacity: 1;
	position: fixed !important;
	visibility: visible;
	transition: 0.4s;
	transform: translate3d(0, 0, 0) scale(1);
	animation: 0.4s bnreStickyFadeIn;
}

@keyframes bnreStickyFadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
