/*
 * Header, navigation, Categories mega menu, search, drawer, search overlay.
 * Mobile-first: < 1024px shows menu button · centred wordmark · search button.
 */

/* ---------- Header bar ---------- */
.bdt-header {
	position: relative;
	z-index: var(--bd-z-header);
	background: #fff;
	border-bottom: 1px solid var(--bd-border);
}
.bdt-header__inner {
	display: grid;
	grid-template-columns: 44px 1fr 44px;
	align-items: center;
	gap: var(--bd-space-2);
	min-height: var(--bd-header-h);
}

/* ---------- Wordmark ---------- */
.bdt-brand { margin: 0 !important; justify-self: center; line-height: 1; }
.bdt-brand a { display: inline-block; text-decoration: none; }
.bdt-brand__mark { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.bdt-brand__name {
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--bd-navy-900);
	line-height: 1;
}
.bdt-brand__accent { color: var(--bd-blue-600); }
.bdt-brand__tagline { font-size: 0.75rem; font-weight: var(--bd-fw-medium); color: var(--bd-ink); letter-spacing: 0; }
.bdt-brand__logo { display: block; max-height: 48px; width: auto; }
.bdt-brand__mark--light .bdt-brand__name { color: #fff; }
.bdt-brand__mark--light .bdt-brand__accent { color: #5b9bff; }
.bdt-brand__mark--light .bdt-brand__tagline { color: #c8d3e6; }

/* ---------- Primary nav (desktop) ---------- */
.bdt-nav { display: none; }
.bdt-header__search { display: none; }
.bdt-header__menu { justify-self: start; }
.bdt-header__search-btn { justify-self: end; }

@media (min-width: 1024px) {
	.bdt-header__inner {
		grid-template-columns: auto minmax(0, 1fr) minmax(180px, 340px);
		gap: var(--bd-space-5);
	}
	body.bdt .bdt-header .bdt-header__menu,
	body.bdt .bdt-header .bdt-header__search-btn { display: none; }
	.bdt-brand { justify-self: start; }
	.bdt-brand__mark { align-items: flex-start; }
	.bdt-nav { display: block; justify-self: start; }
	.bdt-header__search { display: block; }
}
.bdt-nav__list {
	display: flex;
	align-items: stretch;
	gap: var(--bd-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}
.bdt-nav__item { margin: 0; }
.bdt-nav__link,
body.bdt a.bdt-nav__link,
body.bdt button.bdt-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	min-height: var(--bd-header-h);
	padding: 0 0.85rem;
	border: 0;
	background: none;
	color: var(--bd-navy-900);
	font: var(--bd-fw-medium) 0.9375rem/1 var(--bd-font-sans);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}
.bdt-nav__link::after {
	content: "";
	position: absolute;
	left: 0.85rem;
	right: 0.85rem;
	bottom: -1px;
	height: 3px;
	border-radius: 3px 3px 0 0;
	background: transparent;
}
.bdt-nav__link:hover { color: var(--bd-blue-600) !important; }
.bdt-nav__link.is-current,
body.bdt a.bdt-nav__link.is-current { color: var(--bd-blue-600); }
.bdt-nav__link.is-current::after,
.bdt-nav__mega-toggle[aria-expanded="true"]::after { background: var(--bd-blue-600); }
.bdt-nav__chev { transition: transform var(--bd-dur) var(--bd-ease); }
.bdt-nav__mega-toggle[aria-expanded="true"] .bdt-nav__chev { transform: rotate(180deg); }

@media (min-width: 1024px) and (max-width: 1199px) {
	/* Specificity matches the base link/button rules so the compact sizing applies. */
	body.bdt .bdt-nav__link,
	body.bdt a.bdt-nav__link,
	body.bdt button.bdt-nav__link { padding-inline: 0.55rem; font-size: 0.875rem; }
	.bdt-nav__link::after { left: 0.55rem; right: 0.55rem; }
	.bdt-header__inner { grid-template-columns: auto minmax(0, 1fr) minmax(170px, 240px); gap: var(--bd-space-4); }
}
@media (min-width: 1200px) {
	.bdt-header__inner { gap: var(--bd-space-8); }
}

/* 1.0.1: larger desktop wordmark / logo (approved; mobile header unchanged). */
@media (min-width: 1024px) {
	.bdt-header .bdt-brand__name { font-size: 1.75rem; }
	.bdt-header .bdt-brand__tagline { font-size: 0.8125rem; }
	.bdt-header .bdt-brand__logo { max-height: 56px; }
}

/* ---------- Mega menu ---------- */
.bdt-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: var(--bd-z-mega);
	background: #fff;
	border-top: 1px solid var(--bd-border);
	border-bottom: 1px solid var(--bd-border);
	box-shadow: var(--bd-shadow-lg);
}
.bdt-mega[hidden] { display: none; }
.bdt-mega__inner { padding-block: var(--bd-space-6); }
.bdt-mega__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--bd-space-6) var(--bd-space-8);
	margin: 0;
	padding: 0;
	list-style: none;
}
.bdt-mega__group { margin: 0; }
.bdt-mega__cat,
body.bdt a.bdt-mega__cat {
	display: flex;
	align-items: center;
	gap: var(--bd-space-3);
	color: var(--bd-navy-900);
	font-weight: var(--bd-fw-semibold);
	text-decoration: none;
}
.bdt-mega__cat:hover span { color: var(--bd-blue-600); text-decoration: underline; }
.bdt-mega__img,
body.bdt img.bdt-mega__img {
	flex: none;
	width: 40px;
	height: 40px;
	object-fit: contain;
	border-radius: var(--bd-radius-sm);
	background: var(--bd-surface-alt);
}
.bdt-mega__img--fallback { display: grid; place-items: center; color: var(--bd-blue-600); }
.bdt-mega__subs { margin: var(--bd-space-2) 0 0 52px; padding: 0; list-style: none; }
.bdt-mega__subs li { margin: 0; }
.bdt-mega__sub,
.bdt-mega__more,
body.bdt a.bdt-mega__sub,
body.bdt a.bdt-mega__more {
	display: inline-block;
	padding: 0.2rem 0;
	color: var(--bd-ink);
	font-size: var(--bd-fs-sm);
	text-decoration: none;
}
.bdt-mega__sub:hover { color: var(--bd-blue-600); text-decoration: underline; }
body.bdt a.bdt-mega__more { color: var(--bd-blue-600); font-weight: var(--bd-fw-semibold); }
.bdt-mega__foot { margin-top: var(--bd-space-6); padding-top: var(--bd-space-4); border-top: 1px solid var(--bd-border); }

/* ---------- Search forms ---------- */
.bdt-search {
	display: flex;
	align-items: stretch;
	width: 100%;
	margin: 0;
}
.bdt-search__field { position: relative; flex: 1; display: flex; align-items: center; }
.bdt-search__lead { position: absolute; left: 0.9rem; color: var(--bd-muted); pointer-events: none; }
.bdt-search__input,
body.bdt input.bdt-search__input {
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 0.6rem 0.9rem;
	border: 1px solid var(--bd-border-strong);
	border-right: 0;
	border-radius: var(--bd-radius-sm) 0 0 var(--bd-radius-sm);
	background: #fff;
	color: var(--bd-navy-900);
	font: var(--bd-fs-sm)/1.2 var(--bd-font-sans);
}
.bdt-search--btn-text .bdt-search__input,
body.bdt .bdt-search--btn-text input.bdt-search__input { padding-left: 2.75rem; font-size: var(--bd-fs-base); }
.bdt-search__input::placeholder { color: var(--bd-muted); opacity: 1; }
.bdt-search__input:focus-visible { outline-offset: -2px !important; }
.bdt-search__submit,
body.bdt button.bdt-search__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.85rem;
	border: 0;
	border-radius: 0 var(--bd-radius-sm) var(--bd-radius-sm) 0;
	background: var(--bd-blue-600);
	color: #fff;
	font: var(--bd-fw-semibold) var(--bd-fs-base)/1 var(--bd-font-sans);
	cursor: pointer;
}
.bdt-search__submit:hover { background: var(--bd-blue-700); }
.bdt-search--btn-text .bdt-search__submit { padding: 0 1.5rem; }

/* ---------- Dialogs (drawer + search overlay) ---------- */
.bdt-dialog {
	position: fixed;
	inset: 0;
	z-index: var(--bd-z-dialog);
}
.bdt-dialog[hidden] { display: none; }
.bdt-dialog__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(11, 27, 63, 0.45);
	animation: bdt-fade var(--bd-dur) var(--bd-ease);
}
@keyframes bdt-fade { from { opacity: 0; } }
@keyframes bdt-slide-in { from { transform: translateX(-100%); } }
@keyframes bdt-drop { from { transform: translateY(-12px); opacity: 0; } }

.bdt-drawer__panel {
	position: absolute;
	inset: 0 auto 0 0;
	width: min(88vw, 360px);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: #fff;
	box-shadow: var(--bd-shadow-lg);
	animation: bdt-slide-in 220ms var(--bd-ease);
}
.bdt-drawer__head {
	position: sticky;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--bd-space-3) var(--bd-space-3) var(--bd-space-3) var(--bd-space-5);
	background: #fff;
	border-bottom: 1px solid var(--bd-border);
}
.bdt-drawer__brand { margin: 0 !important; }
.bdt-drawer__brand .bdt-brand__mark { align-items: flex-start; }
.bdt-drawer__nav { padding: var(--bd-space-2) 0 var(--bd-space-8); }
.bdt-drawer__links,
.bdt-drawer__cats { margin: 0; padding: 0; list-style: none; }
.bdt-drawer__links li,
.bdt-drawer__cats > li { margin: 0; }
.bdt-drawer__links .bdt-nav__link,
body.bdt .bdt-drawer__links a.bdt-nav__link {
	display: flex;
	min-height: 48px;
	padding: 0 var(--bd-space-5);
	font-size: var(--bd-fs-base);
	font-weight: var(--bd-fw-semibold);
}
.bdt-drawer__links .bdt-nav__link::after { display: none; }
.bdt-drawer__links .bdt-nav__link.is-current { background: var(--bd-blue-50); box-shadow: inset 3px 0 0 var(--bd-blue-600); }
.bdt-drawer__label {
	margin: var(--bd-space-4) var(--bd-space-5) var(--bd-space-2) !important;
	font-size: var(--bd-fs-xs);
	font-weight: var(--bd-fw-bold);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bd-muted);
}
.bdt-drawer__cat summary,
.bdt-drawer__cat-link,
body.bdt a.bdt-drawer__cat-link {
	display: flex;
	align-items: center;
	gap: var(--bd-space-3);
	min-height: 52px;
	padding: 0 var(--bd-space-5);
	color: var(--bd-navy-900);
	font-weight: var(--bd-fw-medium);
	text-decoration: none;
	cursor: pointer;
	list-style: none;
}
.bdt-drawer__cat summary::-webkit-details-marker { display: none; }
.bdt-drawer__cat summary span { flex: 1; }
.bdt-drawer__chev { color: var(--bd-muted); transition: transform var(--bd-dur) var(--bd-ease); }
.bdt-drawer__cat[open] .bdt-drawer__chev { transform: rotate(180deg); }
.bdt-drawer .bdt-mega__img,
body.bdt .bdt-drawer img.bdt-mega__img { width: 32px; height: 32px; }
.bdt-drawer__cat ul { margin: 0 0 var(--bd-space-2); padding: 0 0 0 calc(var(--bd-space-5) + 44px); list-style: none; }
.bdt-drawer__cat li { margin: 0; }
.bdt-drawer__cat ul a,
body.bdt .bdt-drawer__cat ul a {
	display: flex;
	align-items: center;
	min-height: 40px;
	color: var(--bd-ink);
	text-decoration: none;
}
body.bdt .bdt-drawer__cat a.bdt-drawer__all { color: var(--bd-blue-600); font-weight: var(--bd-fw-semibold); }

.bdt-search-overlay__panel {
	position: absolute;
	inset: 0 0 auto 0;
	background: #fff;
	padding-block: var(--bd-space-4);
	box-shadow: var(--bd-shadow-lg);
	animation: bdt-drop var(--bd-dur) var(--bd-ease);
}
.bdt-search-overlay__inner { display: flex; align-items: center; gap: var(--bd-space-2); }
.bdt-search-overlay .bdt-search__input { font-size: var(--bd-fs-base); } /* ≥16px: no iOS zoom */
