
/* ---------------------------------------------------------------------------
 * WHY THERE IS !important HERE, AFTER I SAID THERE WOULD NOT BE.
 *
 * The 0.4.0 claim was that namespacing removes the need to out-specify anything.
 * That was wrong, for two reasons found on the live site:
 *
 *   1. SOURCE ORDER. This block is injected where the captured <header> used to
 *      be, and TWO of the capture's <style> blocks sit AFTER that point in the
 *      document. Any rule of equal specificity in those blocks beats this one on
 *      order alone, no matter how the selectors are written.
 *   2. INHERITED COLOR. body carries .elementor-kit-191, which sets the document
 *      text colour to the dark navy brand text. Anything here that failed to win
 *      inherited near-black onto a near-black bar. That is the black-on-dark nav.
 *
 * Namespacing protects against CLASS collisions. It does nothing about source
 * order or inheritance. So: every selector is still .btu- scoped, AND the
 * visual-critical declarations are marked. Both, not one.
 * ------------------------------------------------------------------------- */
.btu-hdr{
	--btu-primary:#0A4D85;--btu-accent:#FF7B00;--btu-text:#041020;--btu-second:#24B5F0;
	--btu-ink:#ffffff;--btu-panel:#062F52;--btu-panel-2:#0B4677;
	/* FIXED on every device, overlaying the hero. The bar is a scrim, not a
	   band: one colour at varying alpha, ending at ZERO so the photo behind is
	   fully visible at the lower edge. The previous version ramped toward a
	   lighter blue, which over a bright hero read as a fade to white. */
	position:fixed!important;top:0;left:0;right:0;z-index:1000!important;
	background:linear-gradient(180deg,
		rgba(4,16,32,.88) 0%,
		rgba(4,16,32,.62) 38%,
		rgba(4,16,32,.30) 72%,
		rgba(4,16,32,.10) 90%,
		rgba(4,16,32,0) 100%)!important;
	transition:box-shadow .25s ease;
	font-family:Exo,system-ui,-apple-system,sans-serif!important;
	color:var(--btu-ink)!important;
}
/* The 46px feather strip that used to live here was drawn at top:100% with a
 * z-index above the flyout, so it painted a translucent band across the top of
 * the Services dropdown and across the first row of the mobile panel. That is
 * the sliced orange hover. It is not needed any more: the bar's own gradient
 * now ends at zero alpha, so there is no hard edge to soften. Removed.
 *
 * Solid state, faded in on scroll. Painted on ::before rather than swapping the
 * background, because gradients do not transition. */
.btu-hdr::before{
	content:"";position:absolute;inset:0;z-index:-1;
	background:linear-gradient(180deg,var(--btu-primary) 0%,#083A63 100%);
	opacity:0;transition:opacity .25s ease;
}
.btu-hdr.is-stuck::before{opacity:1;}
.btu-hdr.is-stuck{box-shadow:0 6px 22px rgba(4,16,32,.32);}
/* Spacer for routes whose first section is NOT a hero. Sized by script; zero
 * when the header is overlaying something tall enough to sit under. */
.btu-hdr__spacer{height:0;}
/* Reset inherited link/button styling INSIDE the header only. */
.btu-hdr a,.btu-hdr button{
	color:inherit!important;text-decoration:none!important;font-family:inherit!important;
	background-image:none!important;box-shadow:none!important;
}
.btu-hdr button{border:0!important;background-color:transparent!important;cursor:pointer;}
.btu-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.btu-skip{position:absolute;left:-9999px;top:0;z-index:100000;background:#fff!important;color:#041020!important;padding:12px 18px;font-weight:800!important;}
.btu-skip:focus{left:8px;top:8px;outline:3px solid var(--btu-accent);}

/* ---- bar ---------------------------------------------------------------- */
.btu-hdr__bar{
	display:flex!important;align-items:center!important;gap:18px!important;
	max-width:1240px!important;margin:0 auto!important;padding:12px 24px!important;
	min-height:128px;box-sizing:border-box;
}
.btu-hdr__logo{display:flex!important;align-items:center;flex:0 0 auto;margin-right:auto!important;line-height:0;}
.btu-hdr__logo img{display:block;width:auto;height:104px;max-width:100%;filter:drop-shadow(0 3px 10px rgba(0,0,0,.35));transition:transform .18s ease;}
.btu-hdr__logo:hover img{transform:scale(1.03);}
.btu-hdr__wordmark{color:var(--btu-ink)!important;font-weight:900!important;font-size:22px;letter-spacing:.5px;line-height:1;}
.btu-hdr__nav{flex:0 0 auto;}
.btu-hdr__actions{display:flex!important;align-items:center!important;gap:12px!important;flex:0 0 auto;}

/* ---- phone + CTA: same height, same rhythm, actually visible -------------- */
.btu-hdr__tel{
	display:inline-flex!important;align-items:center!important;gap:9px!important;
	height:46px;padding:0 6px;color:var(--btu-ink)!important;
	font-weight:800!important;font-size:16px!important;white-space:nowrap;
}
.btu-hdr__tel svg{width:22px;height:22px;fill:var(--btu-ink)!important;flex:0 0 auto;}
.btu-hdr__tel{border-radius:8px!important;transition:background-color .15s ease,color .15s ease;}
.btu-hdr__tel:hover,.btu-hdr__tel:focus{background-color:rgba(255,255,255,.12)!important;color:var(--btu-second)!important;}
.btu-hdr__tel:hover svg,.btu-hdr__tel:focus svg{fill:var(--btu-second)!important;}
.btu-hdr__cta{
	display:inline-flex!important;align-items:center!important;justify-content:center;
	height:46px;padding:0 22px!important;
	background:var(--btu-accent)!important;color:#fff!important;
	font-weight:900!important;text-transform:uppercase;letter-spacing:.6px;font-size:14px!important;
	border-radius:6px!important;box-shadow:0 4px 14px rgba(255,123,0,.32)!important;
	transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.btu-hdr__cta:hover,.btu-hdr__cta:focus{
	filter:brightness(1.08);transform:translateY(-2px);
	box-shadow:0 9px 24px rgba(255,123,0,.45)!important;
}
.btu-hdr__cta:active{transform:translateY(0) scale(.98);}

/* ---- toggle ------------------------------------------------------------- */
.btu-hdr__toggle{
	display:none;align-items:center;justify-content:center;
	width:48px!important;height:48px!important;padding:0!important;
	background-color:transparent!important;border-radius:8px!important;color:var(--btu-ink)!important;
}
.btu-hdr__toggle:hover,.btu-hdr__toggle:focus{background-color:rgba(255,255,255,.12)!important;}
.btu-hdr__bars{position:relative;display:block;width:28px;height:20px;}
.btu-hdr__bars i{position:absolute;left:0;right:0;height:3px;border-radius:2px;background:#fff!important;
	transition:transform .2s ease,opacity .15s ease,top .2s ease;}
.btu-hdr__bars i:nth-child(1){top:0;}
.btu-hdr__bars i:nth-child(2){top:8.5px;}
.btu-hdr__bars i:nth-child(3){top:17px;}
.btu-hdr__toggle[aria-expanded=true] .btu-hdr__bars i:nth-child(1){top:8.5px;transform:rotate(45deg);}
.btu-hdr__toggle[aria-expanded=true] .btu-hdr__bars i:nth-child(2){opacity:0;}
.btu-hdr__toggle[aria-expanded=true] .btu-hdr__bars i:nth-child(3){top:8.5px;transform:rotate(-45deg);}
.btu-hdr :focus-visible{outline:3px solid var(--btu-accent)!important;outline-offset:2px;}

/* ---- desktop menu ------------------------------------------------------- */
.btu-hdr .btu-menu{list-style:none!important;margin:0!important;padding:0!important;}
.btu-hdr .btu-menu__link,.btu-hdr .btu-sub__link{
	color:var(--btu-ink)!important;font-weight:800!important;
	text-transform:uppercase;letter-spacing:.6px;
}
.btu-hdr .btu-menu--bar{display:flex!important;align-items:center!important;gap:2px!important;}
.btu-hdr .btu-menu--bar>li{position:relative;display:flex;align-items:center;}
.btu-hdr .btu-menu--bar .btu-menu__link{
	position:relative;padding:12px 14px 14px!important;font-size:15px!important;border-radius:6px;
	transition:color .16s ease;
}
/* Underline grows from the centre rather than the colour just swapping. */
.btu-hdr .btu-menu--bar .btu-menu__link::after{
	content:"";position:absolute;left:14px;right:14px;bottom:6px;height:3px;border-radius:2px;
	background:var(--btu-accent);transform:scaleX(0);transform-origin:center;
	transition:transform .2s cubic-bezier(.4,0,.2,1);
}
.btu-hdr .btu-menu--bar .btu-menu__link:hover,
.btu-hdr .btu-menu--bar .btu-menu__link:focus{color:var(--btu-second)!important;}
.btu-hdr .btu-menu--bar .btu-menu__link:hover::after,
.btu-hdr .btu-menu--bar .btu-menu__link:focus::after{transform:scaleX(1);}
.btu-hdr .btu-menu--bar>li:hover>.btu-menu__link::after{transform:scaleX(1);}
.btu-hdr .btu-menu--bar .btu-menu__link.is-current{color:var(--btu-second)!important;}
.btu-hdr .btu-menu--bar .btu-menu__link.is-current::after{transform:scaleX(1);background:var(--btu-second);}
.btu-hdr .btu-menu--bar .btu-menu__caret{display:inline-flex;align-items:center;padding:0 8px 0 0!important;color:var(--btu-ink)!important;}
.btu-hdr .btu-menu--bar .btu-menu__caret svg{width:16px;height:16px;fill:none!important;stroke:currentColor!important;
	stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease;}
.btu-hdr .btu-menu--bar>li:hover .btu-menu__caret svg{transform:rotate(180deg);}
.btu-hdr .btu-menu--bar .btu-sub{
	list-style:none!important;margin:0!important;padding:8px 0!important;
	position:absolute;top:100%;left:0;min-width:16em;z-index:20;overflow:hidden;
	background:var(--btu-panel-2)!important;border-radius:0 0 10px 10px;
	box-shadow:0 18px 40px rgba(4,16,32,.45);
	opacity:0;visibility:hidden;transform:translateY(-6px);
	transition:opacity .15s ease,transform .15s ease,visibility .15s;
}
.btu-hdr .btu-menu--bar>li:hover>.btu-sub,.btu-hdr .btu-menu--bar>li:focus-within>.btu-sub{opacity:1;visibility:visible;transform:none;}
.btu-hdr .btu-menu--bar .btu-sub__link{display:block;padding:13px 22px!important;font-size:14px!important;white-space:nowrap;}
.btu-hdr .btu-menu--bar .btu-sub__link:hover,.btu-hdr .btu-menu--bar .btu-sub__link:focus{
	background:var(--btu-accent)!important;color:#fff!important;padding-left:26px!important;}
.btu-hdr .btu-menu--bar .btu-sub__link{transition:background-color .14s ease,padding-left .14s ease;}

/* ---- mobile panel: high contrast, big targets ---------------------------- */
.btu-hdr__panel{
	position:absolute;top:100%;left:0;right:0;width:100%;z-index:20;
	background:var(--btu-panel)!important;color:var(--btu-ink)!important;
	box-shadow:0 20px 44px rgba(4,16,32,.5);
	max-height:calc(100vh - 100%);overflow-y:auto;-webkit-overflow-scrolling:touch;
	padding-bottom:18px;border-top:3px solid var(--btu-accent)!important;
}
.btu-hdr__panel[hidden]{display:none!important;}
.btu-hdr .btu-menu--stack>li{
	display:flex!important;flex-wrap:wrap;align-items:stretch;
	border-bottom:1px solid rgba(255,255,255,.16)!important;
}
.btu-hdr .btu-menu--stack .btu-menu__link{
	flex:1 1 auto;display:flex;align-items:center;
	min-height:58px;padding:16px 22px!important;font-size:17px!important;
	color:var(--btu-ink)!important;border-left:4px solid transparent!important;
}
.btu-hdr .btu-menu--stack .btu-menu__link.is-current{
	color:#fff!important;border-left-color:var(--btu-accent)!important;
	background:rgba(255,255,255,.07)!important;
}
.btu-hdr .btu-menu--stack .btu-menu__link:active{background:rgba(255,255,255,.12)!important;}
.btu-hdr .btu-menu--stack .btu-menu__caret{
	flex:0 0 64px;display:flex;align-items:center;justify-content:center;
	background-color:rgba(255,255,255,.10)!important;
	border-left:1px solid rgba(255,255,255,.16)!important;color:var(--btu-ink)!important;
}
.btu-hdr .btu-menu--stack .btu-menu__caret svg{width:24px;height:24px;fill:none!important;stroke:#fff!important;
	stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease;}
.btu-hdr .btu-menu--stack .btu-menu__caret[aria-expanded=true] svg{transform:rotate(180deg);}
.btu-hdr .btu-menu--stack .btu-sub{
	flex:1 0 100%;list-style:none!important;margin:0!important;padding:0!important;
	background:var(--btu-panel-2)!important;
}
.btu-hdr .btu-menu--stack .btu-sub[hidden]{display:none!important;}
.btu-hdr .btu-menu--stack .btu-sub__link{
	display:block;min-height:52px;padding:15px 22px 15px 40px!important;
	font-size:15px!important;color:#E8F2FA!important;
	border-top:1px solid rgba(255,255,255,.12)!important;
}
.btu-hdr__panel-tel,.btu-hdr__panel-cta{
	display:block;margin:16px 22px 0!important;padding:17px!important;text-align:center;
	border-radius:8px!important;font-weight:900!important;text-transform:uppercase;
	letter-spacing:.6px;font-size:15px!important;
}
.btu-hdr__panel-tel{background:transparent!important;color:#fff!important;border:2px solid rgba(255,255,255,.55)!important;}
.btu-hdr__panel-cta{background:var(--btu-accent)!important;color:#fff!important;}

/* ---- breakpoints: Elementor's, so the header turns over with the body ---- */
@media (max-width:1024px){
	.btu-hdr__bar{padding:10px 16px!important;min-height:112px;gap:10px!important;}
	.btu-hdr__logo img{height:96px;}
	.btu-hdr__nav{display:none!important;}
	.btu-hdr__toggle{display:inline-flex!important;}
	/* logo LEFT, phone + burger RIGHT. The 0.4.0 rule keyed the actions block to
	   an adjacent-sibling nav that is display:none but still in the DOM, so the
	   selector kept matching and pinned everything to the left. Killed. */
	.btu-hdr__logo{margin-right:auto!important;}
	.btu-hdr__cta{padding:0 16px!important;font-size:13px!important;}
	/* Order in the DOM is tel, cta, toggle. On a phone the call button belongs
	   at the far right edge under the thumb, with the burger inboard of it. */
	.btu-hdr__actions{gap:10px!important;}
	.btu-hdr__toggle{order:1;}
	.btu-hdr__cta{order:2;}
	.btu-hdr__tel{order:3;}
	.btu-hdr__tel{
		width:52px;height:52px;justify-content:center;padding:0!important;
		background:var(--btu-accent)!important;border-radius:10px!important;
		box-shadow:0 4px 14px rgba(255,123,0,.38)!important;
		transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;
	}
	.btu-hdr__tel:hover,.btu-hdr__tel:focus{filter:brightness(1.08);transform:translateY(-1px);
		box-shadow:0 7px 20px rgba(255,123,0,.5)!important;}
	.btu-hdr__tel:active{transform:translateY(0) scale(.96);}
	.btu-hdr__tel .btu-hdr__telnum{display:none!important;}
	.btu-hdr__tel svg{width:26px;height:26px;fill:#fff!important;}
}
@media (max-width:600px){
	.btu-hdr__bar{gap:10px!important;padding:10px 14px!important;min-height:104px;}
	.btu-hdr__logo img{height:88px;}
	.btu-hdr__cta{display:none!important;}
}
@media (prefers-reduced-motion:reduce){
	.btu-hdr *{transition:none!important;}
}
