/* =========================================================
   Sticky header.
   - Other pages: header is fixed; after a few px of scroll it becomes a compact white bar (.header--stuck).
   - Home: header scrolls away with the dark hero; once the hero (incl. its pinned video expansion)
     has scrolled past, it returns as the compact white bar (.header--stuck), sliding down.
   Behaviour: assets/js/header-sticky.js
   Note: no transform on the header itself — the full-screen menu (.menu, position:fixed) lives inside it,
   and a transformed ancestor would trap it.
   ========================================================= */

/* other pages: fixed from the start (it was absolute at top:0, so nothing moves at scroll 0) */
.header.header--fixed {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	transition: padding .3s ease, background-color .3s ease, box-shadow .3s ease;
}

/* compact white bar */
.header.header--stuck {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding-top: 14px !important;      /* overrides Bootstrap .py-5 */
	padding-bottom: 14px !important;
	background: rgb(255 255 255 / .97);   /* no backdrop-filter: it would trap the fixed menu overlay */
	box-shadow: 0 1px 0 rgb(0 0 0 / .06), 0 10px 30px rgb(0 0 0 / .08);
}

/* home: slides down when it reappears after the hero */
.header.header--stuck.header--slide {
	animation: header-drop .45s cubic-bezier(.2, .7, .2, 1) both;
}

@keyframes header-drop {
	from { top: -110px; }
	to   { top: 0; }
}

.header--stuck > .container > .row:first-child {
	align-items: center;
}

.header--stuck .site-logo {
	height: 46px;
	transition: height .3s ease;
}

.header--stuck .menuCstm {
	margin-bottom: 0;
}

.header--stuck .menuCstm li a {
	font-size: 19px;
}

/* burger: vertically centred in the compact bar (14px padding + half the 46px logo − half its 14px height) */
.header--stuck .burger:not(.burger--close) {
	top: 30px;
}

/* home: the stuck bar is light, so undo the dark-hero white logo/text */
.header--dark-hero.header--stuck .site-logo:not(.site-logo--light) {
	display: inline-block;
}

.header--dark-hero.header--stuck .site-logo--light {
	display: none;
}

.header--dark-hero.header--stuck .menuCstm li a {
	color: #000;
}

.header--dark-hero.header--stuck .menuCstm li a:hover {
	color: #71784B;
}

.header--dark-hero.header--stuck .burger:not(.burger--close) .burger__patty {
	background: #000;
}

@media (max-width: 575.98px) {
	.header--stuck {
		padding-top: 12px !important;
		padding-bottom: 12px !important;
	}

	.header--stuck .site-logo {
		height: 38px;
	}

	.header--stuck .burger:not(.burger--close) {
		top: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.header.header--stuck.header--slide {
		animation: none;
	}
}

/* Hidden while the pinned services showcase fills the screen (its cards travel up to the top edge) */
.header.header--stuck {
	transition: top .35s cubic-bezier(.2, .7, .2, 1), padding .3s ease, box-shadow .3s ease;
}

.header.header--stuck.header--hidden {
	top: -140px !important;
	box-shadow: none;
	pointer-events: none;
}