/* ==========================================================================
   BGC 2026 HEADER  (Avada-Child/assets/bgc-header.css)
   Markup: inc/bgc-header.php   Behaviour: assets/bgc-header.js
   States on .bgc-header: --solid, --hidden, bgc-menu-open
   ========================================================================== */

:root {
	--bgc-h-navy: #192733;
	--bgc-h-ink: #141617;
	--bgc-h-red: #A53C3C;
	--bgc-h-solid: rgba(25, 39, 51, 0.97);
	--bgc-h-font: 'Montserrat', Arial, Helvetica, sans-serif;
	--bgc-h-ease: cubic-bezier(.2, .7, .2, 1);
	--bgc-h-height: 96px;
	--bgc-h-height-solid: 72px;
	--bgc-h-pad: 56px;
	--bgc-top: 0px; /* admin-bar offset, kept current by JS */
}

@media (max-width: 1024px) {
	:root {
		--bgc-h-height: 72px;
		--bgc-h-height-solid: 60px;
		--bgc-h-pad: 20px;
	}
}

.bgc-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ---- Bar ---------------------------------------------------------------- */

.bgc-header {
	position: fixed;
	top: var(--bgc-top);
	left: 0;
	right: 0;
	z-index: 10000;
	height: var(--bgc-h-height);
	color: #fff;
	font-family: var(--bgc-h-font);
	background-color: transparent;
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
	transform: translateY(0);
	transition:
		height .35s var(--bgc-h-ease),
		background-color .35s ease,
		border-color .35s ease,
		transform .45s var(--bgc-h-ease);
	-webkit-font-smoothing: antialiased;
}

/* Readability scrim over the hero — only while transparent. */
.bgc-header::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 200px;
	background: linear-gradient(to bottom, rgba(20, 22, 23, 0.55) 0%, rgba(20, 22, 23, 0.22) 55%, rgba(20, 22, 23, 0) 100%);
	pointer-events: none;
	transition: opacity .35s ease;
	z-index: -1;
}

.bgc-header.bgc-header--solid {
	height: var(--bgc-h-height-solid);
	background-color: var(--bgc-h-solid);
	border-bottom-color: transparent;
}
.bgc-header.bgc-header--solid::before,
.bgc-header.bgc-menu-open::before { opacity: 0; }

.bgc-header.bgc-header--hidden { transform: translateY(-100%); }
.bgc-header.bgc-header--hidden::before { opacity: 0; }

.bgc-header *,
.bgc-mnav * { box-sizing: border-box; }

.bgc-header a,
.bgc-mnav a { text-decoration: none; }

.bgc-header__inner {
	display: grid;
	grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr);
	align-items: center;
	column-gap: 32px;
	height: 100%;
	padding: 0 var(--bgc-h-pad);
}

/* ---- Brand -------------------------------------------------------------- */

.bgc-header__brand {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	justify-self: start;
	color: #fff;
	line-height: 1;
}
/* The PNG's artwork fills 75% of its 200px canvas, so the box is sized
   to make the visible crest ≈44px (desktop) / ≈36px (mobile). */
.bgc-header__crest {
	display: block;
	width: 58px;
	height: 58px;
	margin: -8px 0 -8px -9px;
	border-radius: 0;
	transition: width .35s var(--bgc-h-ease), height .35s var(--bgc-h-ease);
}
.bgc-header--solid .bgc-header__crest { width: 53px; height: 53px; }

.bgc-header__wordmark {
	display: flex;
	flex-direction: column;
	gap: 6px;
	text-transform: uppercase;
	white-space: nowrap;
}
.bgc-header__wm-name {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.34em;
	color: #fff;
}
.bgc-header__wm-sub {
	font-size: 9px;
	font-weight: 400;
	letter-spacing: 0.32em;
	color: rgba(255, 255, 255, 0.62);
}

/* ---- Desktop nav -------------------------------------------------------- */

.bgc-nav { height: 100%; }

.bgc-nav__list {
	display: flex;
	align-items: stretch;
	gap: 40px;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bgc-nav__item {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}
.bgc-nav__link {
	position: relative;
	display: inline-block;
	padding: 6px 0;
	color: #fff;
	font-size: 11.5px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	white-space: nowrap;
}
.bgc-nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0.18em; /* trailing letter-spacing */
	bottom: 0;
	height: 1px;
	background: #fff;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .35s var(--bgc-h-ease);
}
.bgc-nav__link:hover,
.bgc-nav__link:focus-visible { color: #fff; }
.bgc-nav__link:hover::after,
.bgc-nav__link:focus-visible::after,
.bgc-nav__item--current > .bgc-nav__link::after,
.bgc-nav__item.is-open > .bgc-nav__link::after { transform: scaleX(1); }

.bgc-nav__link:focus-visible,
.bgc-nav__caret:focus-visible,
.bgc-nav__sublink:focus-visible,
.bgc-header__brand:focus-visible,
.bgc-header__members:focus-visible,
.bgc-header__toggle:focus-visible,
.bgc-btn:focus-visible,
.bgc-mnav a:focus-visible {
	outline: 1px solid #fff;
	outline-offset: 4px;
}

.bgc-nav__caret {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 28px;
	margin: 0 0 0 2px;
	padding: 0;
	color: #fff;
	background: none;
	border: 0;
	border-radius: 0;
	cursor: pointer;
}
.bgc-nav__caret svg { transition: transform .25s ease; }
.bgc-nav__item.is-open .bgc-nav__caret svg { transform: rotate(180deg); }

/* Dropdown */
.bgc-nav__sub {
	position: absolute;
	top: 100%;
	left: -24px;
	width: 230px;
	margin: 0;
	padding: 12px 0;
	list-style: none;
	background: var(--bgc-h-navy);
	border-top: 1px solid var(--bgc-h-red);
	border-radius: 0;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.bgc-nav__sub li { margin: 0; padding: 0; }
.bgc-nav__sublink {
	display: block;
	padding: 10px 24px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transition: color .25s ease, transform .25s ease;
}
.bgc-nav__sublink:hover,
.bgc-nav__sublink:focus-visible,
.bgc-nav__sublink[aria-current="page"] {
	color: #fff;
	transform: translateX(6px);
}

.bgc-nav__item--has-sub:focus-within > .bgc-nav__sub,
.bgc-nav__item--has-sub.is-open > .bgc-nav__sub {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity .25s ease, transform .25s ease, visibility 0s;
}
@media (hover: hover) and (pointer: fine) {
	.bgc-nav__item--has-sub:hover > .bgc-nav__sub {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition: opacity .25s ease, transform .25s ease, visibility 0s;
	}
	.bgc-nav__item--has-sub:hover > .bgc-nav__link::after { transform: scaleX(1); }
}
/* Escape closes a keyboard-opened dropdown even while focus stays on the link. */
.bgc-nav__item--has-sub.is-dismissed > .bgc-nav__sub {
	opacity: 0 !important;
	visibility: hidden !important;
}

/* ---- Utility ------------------------------------------------------------ */

.bgc-header__utility {
	display: flex;
	align-items: center;
	justify-self: end;
	gap: 20px;
}
.bgc-header__members {
	position: relative;
	color: #fff;
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	white-space: nowrap;
	padding: 6px 0;
}
.bgc-header__members::after {
	content: "";
	position: absolute;
	left: 0; right: 0.18em; bottom: 0;
	height: 1px;
	background: #fff;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .35s var(--bgc-h-ease);
}
.bgc-header__members:hover,
.bgc-header__members:focus-visible { color: #fff; }
.bgc-header__members:hover::after,
.bgc-header__members:focus-visible::after { transform: scaleX(1); }

.bgc-header__divider {
	display: block;
	width: 1px;
	height: 18px;
	background: rgba(255, 255, 255, 0.25);
}

/* Buttons (square, hairline) */
.bgc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 22px;
	font-family: var(--bgc-h-font);
	font-size: 11px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	white-space: nowrap;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 0;
	box-shadow: none;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.bgc-btn--ghost { color: #fff; background: transparent; }
.bgc-btn--ghost:hover,
.bgc-btn--ghost:focus-visible { color: var(--bgc-h-navy); background: #fff; border-color: #fff; }
.bgc-btn--solid { color: var(--bgc-h-navy); background: #fff; border-color: #fff; }
.bgc-btn--solid:hover,
.bgc-btn--solid:focus-visible { color: #fff; background: transparent; border-color: rgba(255, 255, 255, 0.55); }
.bgc-btn--block { display: flex; width: 100%; height: 50px; }

/* ---- Toggle (mobile) ---------------------------------------------------- */

.bgc-header__toggle {
	display: none;
	align-items: center;
	justify-self: end;
	gap: 12px;
	min-width: 44px;
	min-height: 44px;
	margin-right: -10px;
	padding: 0 10px;
	color: #fff;
	background: none;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	font-family: var(--bgc-h-font);
	-webkit-tap-highlight-color: transparent;
}
.bgc-header__toggle-label {
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.24em;
	line-height: 1;
	text-transform: uppercase;
}
.bgc-header__toggle-icon {
	position: relative;
	display: block;
	width: 22px;
	height: 8px;
}
.bgc-header__toggle-icon span {
	position: absolute;
	right: 0;
	height: 1px;
	background: #fff;
	transition: transform .35s var(--bgc-h-ease), width .35s var(--bgc-h-ease), top .35s var(--bgc-h-ease);
}
.bgc-header__toggle-icon span:first-child { top: 0; width: 22px; }
.bgc-header__toggle-icon span:last-child { top: 7px; width: 14px; }
.bgc-menu-open .bgc-header__toggle-icon span:first-child { top: 4px; transform: rotate(45deg); }
.bgc-menu-open .bgc-header__toggle-icon span:last-child { top: 4px; width: 22px; transform: rotate(-45deg); }

/* ---- Mobile overlay ----------------------------------------------------- */

.bgc-mnav {
	position: fixed;
	top: 0; right: 0; bottom: 0; left: 0;
	z-index: 9999;
	display: none;
	color: #fff;
	font-family: var(--bgc-h-font);
	background: var(--bgc-h-navy);
	opacity: 0;
	visibility: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	transition: opacity .35s ease, visibility 0s linear .35s;
}
.bgc-mnav.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity .35s ease, visibility 0s;
}
.bgc-mnav__inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: calc(var(--bgc-top) + var(--bgc-h-height) + 12px) 24px 32px;
	transform: translateY(12px);
	transition: transform .35s var(--bgc-h-ease);
}
.bgc-mnav.is-open .bgc-mnav__inner { transform: translateY(0); }

.bgc-mnav__list {
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.09);
}
.bgc-mnav__list li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}
.bgc-mnav__link {
	display: block;
	padding: 15px 0;
	color: #fff;
	font-size: 19px;
	font-weight: 300;
	line-height: 1.3;
	letter-spacing: 0.01em;
	text-transform: none;
	transition: padding-left .25s ease;
}
.bgc-mnav__link:hover,
.bgc-mnav__link:focus-visible,
.bgc-mnav__link[aria-current="page"] { color: #fff; padding-left: 6px; }

.bgc-mnav__cta {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: auto;
}
.bgc-mnav__contact {
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.7;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.7);
}
.bgc-mnav__tel {
	display: inline-block;
	padding: 6px 0;
	color: #fff;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.06em;
}
.bgc-mnav__addr { display: block; }

html.bgc-scroll-lock,
html.bgc-scroll-lock body { overflow: hidden !important; }

/* ---- Breakpoints -------------------------------------------------------- */

@media (min-width: 1025px) and (max-width: 1279px) {
	.bgc-header__inner { --bgc-h-pad: 32px; column-gap: 24px; }
	.bgc-nav__list { gap: 28px; }
	.bgc-header__utility { gap: 16px; }
}

@media (max-width: 1024px) {
	.bgc-header__inner { grid-template-columns: 1fr auto; }
	.bgc-nav,
	.bgc-header__utility { display: none; }
	.bgc-header__toggle { display: inline-flex; }
	.bgc-mnav { display: block; }

	.bgc-header__brand { gap: 6px; }
	.bgc-header__crest { width: 48px; height: 48px; margin: -6px 0 -6px -8px; }
	.bgc-header--solid .bgc-header__crest { width: 43px; height: 43px; }
	.bgc-header__wordmark { gap: 5px; }
	.bgc-header__wm-name { font-size: 11px; letter-spacing: 0.3em; }
	.bgc-header__wm-sub { font-size: 8px; letter-spacing: 0.28em; }

	.bgc-header.bgc-menu-open {
		background-color: transparent;
		border-bottom-color: rgba(255, 255, 255, 0.09);
	}
}

/* ---- Pages without a dark hero: header is solid from the start --------- */

body.bgc-solid-start #wrapper { padding-top: var(--bgc-h-height-solid); }

/* ---- Reduced motion: no slide/ease, just show/hide --------------------- */

@media (prefers-reduced-motion: reduce) {
	.bgc-header,
	.bgc-header *,
	.bgc-header::before,
	.bgc-mnav,
	.bgc-mnav * {
		transition: none !important;
	}
	.bgc-mnav__inner { transform: none !important; }
	.bgc-header.bgc-header--hidden { transform: none; visibility: hidden; }
}

@media print {
	.bgc-header, .bgc-mnav { display: none !important; }
}
