/*
Theme Name: Bryan Mound SPR
Theme URI: https://bryanmoundstrategic.com/
Author: Bryan Mound Strategic Petroleum Reserve
Author URI: https://bryanmoundstrategic.com/
Description: Bryan Mound SPR is a professional, industrial-grade corporate WordPress theme built for petroleum reserve operators, tank storage terminals, bulk liquid logistics companies and energy infrastructure firms. It ships with six fully designed page templates (Home, About Us, Services, Tank Storage / Infrastructure, Safety & Compliance, Contact Us), an accessible multi-level dropdown navigation, a multi-slide hero banner, custom Elementor support and ready-made Elementor JSON page templates.
Version: 1.0.1
Requires at least: 5.9
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bryan-mound-spr
Tags: business, corporate, industrial, energy, elementor, custom-logo, custom-menu, featured-images, full-width-template, one-column, two-columns, right-sidebar, translation-ready, block-styles, wide-blocks
*/

/* =========================================================================
   TABLE OF CONTENTS
   1.  Design tokens (CSS custom properties)
   2.  Reset & base
   3.  Typography
   4.  Layout primitives & utilities
   5.  Buttons
   6.  Top bar
   7.  Header & branding
   8.  Navigation (multi-level dropdowns)
   9.  Mobile navigation
   10. Hero slider
   11. Page banner & breadcrumbs
   12. Sections & headings
   13. Cards (service, feature, person, resource)
   14. Stats & counters
   15. Spec tables
   16. Timeline
   17. Tabs & accordion
   18. Certifications / badges
   19. CTA bands
   20. Contact page & forms
   21. Blog / archive / single
   22. Comments & pagination
   23. Footer
   24. Back to top
   25. Accessibility
   26. WordPress core alignment & caption classes
   27. Elementor compatibility
   28. Responsive
   29. Print
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. DESIGN TOKENS
   ---------------------------------------------------------------------- */
:root {
	/* Brand ------------------------------------------------------------- */
	--bm-navy: #021f49;
	--bm-navy-900: #01152f;
	--bm-navy-800: #032a5e;
	--bm-navy-700: #073a7c;
	--bm-steel: #1b4f7e;
	--bm-steel-light: #2f6fa6;
	--bm-gold: #c58716;
	--bm-gold-light: #dfa62c;
	--bm-gold-dark: #9c6a0d;

	/* Neutrals ---------------------------------------------------------- */
	--bm-ink: #0d1620;
	--bm-body: #4c5a6b;
	--bm-body-strong: #2b3745;
	--bm-muted: #7c8a99;
	--bm-line: #dde4ec;
	--bm-line-strong: #c6d1de;
	--bm-mist: #f4f7fb;
	--bm-mist-2: #e9eff7;
	--bm-white: #ffffff;
	--bm-black: #05090e;

	/* Feedback ---------------------------------------------------------- */
	--bm-success: #1e7a4c;
	--bm-error: #b3261e;

	/* Typography -------------------------------------------------------- */
	--bm-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--bm-font-head: "Barlow Condensed", "Oswald", "Arial Narrow", var(--bm-font-body);

	/* Spacing ----------------------------------------------------------- */
	--bm-container: 1240px;
	--bm-container-wide: 1500px;
	--bm-gutter: 24px;
	--bm-section-y: 92px;

	/* Radius / shadow --------------------------------------------------- */
	--bm-radius: 4px;
	--bm-radius-lg: 8px;
	--bm-shadow-sm: 0 1px 2px rgba(13, 22, 32, .06), 0 2px 8px rgba(13, 22, 32, .05);
	--bm-shadow: 0 6px 24px rgba(13, 22, 32, .10);
	--bm-shadow-lg: 0 18px 48px rgba(2, 31, 73, .18);
	--bm-shadow-gold: 0 10px 30px rgba(197, 135, 22, .28);

	/* Motion ------------------------------------------------------------ */
	--bm-ease: cubic-bezier(.22, .61, .36, 1);
	--bm-transition: 260ms var(--bm-ease);

	/* Header ------------------------------------------------------------ */
	--bm-header-h: 86px;
	--bm-topbar-h: 42px;
}

/* -------------------------------------------------------------------------
   2. RESET & BASE
   ---------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--bm-header-h) + 20px);
}

body {
	margin: 0;
	background: var(--bm-white);
	color: var(--bm-body);
	font-family: var(--bm-font-body);
	font-size: 16.5px;
	line-height: 1.75;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.nav-open {
	overflow: hidden;
}

img,
svg,
video,
iframe,
embed,
object {
	max-width: 100%;
	height: auto;
	display: block;
}

figure {
	margin: 0;
}

hr {
	border: 0;
	border-top: 1px solid var(--bm-line);
	margin: 2.2em 0;
}

/* -------------------------------------------------------------------------
   3. TYPOGRAPHY
   ---------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .55em;
	color: var(--bm-navy);
	font-family: var(--bm-font-head);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .005em;
	text-transform: uppercase;
}

h1 { font-size: clamp(2.3rem, 1.6rem + 2.5vw, 3.9rem); }
h2 { font-size: clamp(1.85rem, 1.35rem + 1.7vw, 2.85rem); }
h3 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.85rem); }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.05rem; letter-spacing: .04em; }
h6 { font-size: .92rem; letter-spacing: .08em; color: var(--bm-muted); }

p { margin: 0 0 1.25em; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--bm-steel);
	text-decoration: none;
	transition: color var(--bm-transition);
}

a:hover,
a:focus { color: var(--bm-gold); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--bm-gold);
	outline-offset: 2px;
}

strong, b { font-weight: 700; color: var(--bm-body-strong); }

blockquote {
	margin: 2em 0;
	padding: 4px 0 4px 28px;
	border-left: 4px solid var(--bm-gold);
	color: var(--bm-body-strong);
	font-size: 1.12rem;
	font-style: normal;
}

blockquote cite {
	display: block;
	margin-top: .7em;
	color: var(--bm-muted);
	font-size: .86rem;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

code, kbd, samp, pre {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9em;
}

pre {
	background: var(--bm-navy);
	color: #dbe6f3;
	padding: 22px 24px;
	border-radius: var(--bm-radius);
	overflow-x: auto;
}

code { background: var(--bm-mist-2); padding: .12em .4em; border-radius: 3px; color: var(--bm-navy); }
pre code { background: none; padding: 0; color: inherit; }

::selection { background: var(--bm-gold); color: #fff; }

/* -------------------------------------------------------------------------
   4. LAYOUT PRIMITIVES & UTILITIES
   ---------------------------------------------------------------------- */
.bm-container {
	width: 100%;
	max-width: var(--bm-container);
	margin-inline: auto;
	padding-inline: var(--bm-gutter);
}

.bm-container--wide { max-width: var(--bm-container-wide); }
.bm-container--narrow { max-width: 860px; }

.bm-section { padding-block: var(--bm-section-y); position: relative; }
.bm-section--tight { padding-block: 60px; }
.bm-section--flush { padding-block: 0; }
.bm-section--mist { background: var(--bm-mist); }
.bm-section--navy { background: var(--bm-navy); color: #c3d2e4; }
.bm-section--navy h1, .bm-section--navy h2, .bm-section--navy h3,
.bm-section--navy h4, .bm-section--navy h5 { color: #fff; }
.bm-section--navy h6 { color: var(--bm-gold-light); }
.bm-section--navy a { color: #fff; }
.bm-section--navy a:hover { color: var(--bm-gold-light); }
.bm-section--steel {
	background:
		linear-gradient(rgba(2, 31, 73, .93), rgba(2, 31, 73, .93)),
		url("assets/images/pipeline-manifold.jpg") center/cover no-repeat;
	color: #c3d2e4;
}
.bm-section--steel h2, .bm-section--steel h3 { color: #fff; }

.bm-grid { display: grid; gap: 28px; }
.bm-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bm-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bm-grid--sidebar { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 56px; }
.bm-grid--sidebar-left { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 56px; }
.bm-grid--align-center { align-items: center; }

.bm-flex { display: flex; gap: 28px; align-items: center; }
.bm-flex--between { justify-content: space-between; }
.bm-flex--wrap { flex-wrap: wrap; }

.bm-text-center { text-align: center; }
.bm-text-right { text-align: right; }
.bm-mt-0 { margin-top: 0; }
.bm-mb-0 { margin-bottom: 0; }
.bm-mt-1 { margin-top: 12px; }
.bm-mt-2 { margin-top: 24px; }
.bm-mt-3 { margin-top: 40px; }
.bm-mb-1 { margin-bottom: 12px; }
.bm-mb-2 { margin-bottom: 24px; }
.bm-mb-3 { margin-bottom: 40px; }

.bm-lead {
	font-size: 1.16rem;
	line-height: 1.8;
	color: var(--bm-body-strong);
	max-width: 74ch;
}

.bm-narrow { max-width: 74ch; }

.bm-divider {
	width: 62px;
	height: 4px;
	background: var(--bm-gold);
	border-radius: 2px;
	margin: 0 0 26px;
}

.bm-text-center .bm-divider { margin-inline: auto; }

/* Bullet list used inside intro / media-text sections ----------------- */
.bm-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 13px;
}

.bm-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	line-height: 1.55;
}

.bm-list__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-top: 1px;
	border-radius: 50%;
	background: rgba(197, 135, 22, .14);
	color: var(--bm-gold);
}

.bm-list__icon svg { width: 13px; height: 13px; }

.bm-section--navy .bm-list__icon {
	background: rgba(255, 255, 255, .12);
	color: var(--bm-gold);
}

.bm-section--navy .bm-list li { color: var(--bm-mist-text, rgba(255, 255, 255, .82)); }

.bm-list--inline {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px 30px;
}

.bm-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bm-navy);
}

.bm-link-arrow::after {
	content: "";
	width: 22px;
	height: 2px;
	background: var(--bm-gold);
	transition: width var(--bm-transition);
}

.bm-link-arrow:hover::after { width: 34px; }
.bm-section--navy .bm-link-arrow { color: #fff; }

.bm-overlay-media {
	position: relative;
	overflow: hidden;
	border-radius: var(--bm-radius);
}

.bm-overlay-media img {
	width: 100%;
	transition: transform 700ms var(--bm-ease);
}

.bm-overlay-media:hover img { transform: scale(1.05); }

/* -------------------------------------------------------------------------
   5. BUTTONS
   ---------------------------------------------------------------------- */
.bm-btn,
button.bm-btn,
input[type="submit"],
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
	padding: 15px 32px;
	border: 2px solid transparent;
	border-radius: var(--bm-radius);
	background: var(--bm-gold);
	color: #fff;
	font-family: var(--bm-font-body);
	font-size: .79rem;
	font-weight: 800;
	letter-spacing: .14em;
	line-height: 1.2;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: background var(--bm-transition), color var(--bm-transition),
		border-color var(--bm-transition), transform var(--bm-transition), box-shadow var(--bm-transition);
}

.bm-btn:hover,
button.bm-btn:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover {
	background: var(--bm-gold-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--bm-shadow-gold);
}

.bm-btn:active { transform: translateY(0); }

.bm-btn--navy { background: var(--bm-navy); }
.bm-btn--navy:hover { background: var(--bm-navy-700); box-shadow: var(--bm-shadow-lg); }

.bm-btn--outline {
	background: transparent;
	border-color: rgba(255, 255, 255, .55);
	color: #fff;
}
.bm-btn--outline:hover {
	background: #fff;
	border-color: #fff;
	color: var(--bm-navy);
	box-shadow: var(--bm-shadow);
}

.bm-btn--ghost {
	background: transparent;
	border-color: var(--bm-navy);
	color: var(--bm-navy);
}
.bm-btn--ghost:hover {
	background: var(--bm-navy);
	border-color: var(--bm-navy);
	color: #fff;
	box-shadow: var(--bm-shadow-lg);
}

.bm-btn--sm { padding: 11px 22px; font-size: .72rem; }
.bm-btn--lg { padding: 18px 42px; font-size: .84rem; }
.bm-btn--block { width: 100%; }

.bm-btn.is-loading { opacity: .68; pointer-events: none; }

.bm-btn-group { display: flex; flex-wrap: wrap; gap: 14px; }

/* -------------------------------------------------------------------------
   6. TOP BAR
   ---------------------------------------------------------------------- */
.bm-topbar {
	background: var(--bm-navy-900);
	border-bottom: 1px solid rgba(255, 255, 255, .07);
	color: #93a8c2;
	font-size: .8rem;
	line-height: 1.5;
}

.bm-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: var(--bm-topbar-h);
	padding-block: 6px;
}

.bm-topbar__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Primary list keeps contact details left, secondary holds utilities */
.bm-topbar__list--primary { justify-content: flex-start; min-width: 0; }
.bm-topbar__list--secondary { justify-content: flex-end; }

.bm-topbar__item--address { max-width: 46ch; }
.bm-topbar__item--address span { white-space: normal; }

.bm-topbar__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.bm-topbar__item svg { flex: 0 0 auto; color: var(--bm-gold); }

.bm-topbar a { color: #c3d2e4; font-weight: 600; }
.bm-topbar a:hover { color: var(--bm-gold-light); }

.bm-topbar__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 13px;
	border: 1px solid rgba(197, 135, 22, .45);
	border-radius: 100px;
	background: rgba(197, 135, 22, .12);
	color: var(--bm-gold-light);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
	white-space: nowrap;
}

.bm-topbar__pulse {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #46d17e;
	box-shadow: 0 0 0 0 rgba(70, 209, 126, .7);
	animation: bm-pulse 2.4s infinite;
}

@keyframes bm-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(70, 209, 126, .65); }
	70%  { box-shadow: 0 0 0 9px rgba(70, 209, 126, 0); }
	100% { box-shadow: 0 0 0 0 rgba(70, 209, 126, 0); }
}

/* -------------------------------------------------------------------------
   7. HEADER & BRANDING
   ---------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 900;
	background: var(--bm-white);
	box-shadow: 0 1px 0 var(--bm-line);
	transition: box-shadow var(--bm-transition), background var(--bm-transition);
}

.site-header.is-stuck {
	box-shadow: 0 6px 26px rgba(13, 22, 32, .13);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	min-height: var(--bm-header-h);
	padding-block: 10px;
	transition: min-height var(--bm-transition);
}

.site-header.is-stuck .site-header__inner { min-height: 72px; }

.site-branding { flex: 0 0 auto; min-width: 0; }

.site-branding .custom-logo-link,
.site-branding__logo-link { display: block; }

.site-branding img,
.custom-logo {
	max-height: 58px;
	width: auto;
	transition: max-height var(--bm-transition);
}

.site-header.is-stuck .site-branding img,
.site-header.is-stuck .custom-logo { max-height: 48px; }

.site-branding__text { display: flex; flex-direction: column; gap: 2px; }

.site-title {
	margin: 0;
	font-family: var(--bm-font-head);
	font-size: 1.42rem;
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: .01em;
	text-transform: uppercase;
}

.site-title a { color: var(--bm-navy); }
.site-title a:hover { color: var(--bm-navy); }

.site-description {
	margin: 0;
	color: var(--bm-muted);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}

/* Header right cluster */
.site-header__aside {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: 0 0 auto;
}

.header-search {
	position: relative;
	width: 0;
	overflow: hidden;
	opacity: 0;
	transition: width var(--bm-transition), opacity var(--bm-transition);
}

.header-search.is-open { width: 250px; opacity: 1; }

.header-search input[type="search"] {
	width: 100%;
	padding: 11px 16px;
	border: 1px solid var(--bm-line-strong);
	border-radius: var(--bm-radius);
	background: var(--bm-mist);
	font-size: .88rem;
	font-family: inherit;
}

.search-toggle,
.header-nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	background: var(--bm-white);
	color: var(--bm-navy);
	cursor: pointer;
	transition: all var(--bm-transition);
}

.search-toggle:hover,
.header-nav-toggle:hover {
	background: var(--bm-navy);
	border-color: var(--bm-navy);
	color: #fff;
}

/* -------------------------------------------------------------------------
   8. NAVIGATION (multi-level dropdowns)
   ---------------------------------------------------------------------- */
.main-navigation {
	display: flex;
	align-items: center;
	flex: 1 1 auto;
	justify-content: flex-end;
}

.primary-menu-container { display: flex; align-items: center; }

.main-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.main-navigation .primary-menu {
	display: flex;
	align-items: center;
	gap: 2px;
	flex-wrap: wrap;
}

.main-navigation .primary-menu > li { position: relative; }

.main-navigation .primary-menu > li > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 14px 15px;
	color: var(--bm-navy);
	font-family: var(--bm-font-body);
	font-size: .795rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	white-space: nowrap;
	transition: color var(--bm-transition);
}

.main-navigation .primary-menu > li > a::after {
	content: "";
	position: absolute;
	left: 15px;
	right: 15px;
	bottom: 6px;
	height: 2px;
	background: var(--bm-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--bm-transition);
}

.main-navigation .primary-menu > li > a:hover::after,
.main-navigation .primary-menu > li.is-open > a::after,
.main-navigation .primary-menu > li.current-menu-item > a::after,
.main-navigation .primary-menu > li.current-menu-ancestor > a::after,
.main-navigation .primary-menu > li.current_page_item > a::after,
.main-navigation .primary-menu > li.current_page_parent > a::after,
.main-navigation .primary-menu > li.current_page_ancestor > a::after {
	transform: scaleX(1);
}

.main-navigation .primary-menu > li.current-menu-item > a,
.main-navigation .primary-menu > li.current-menu-ancestor > a,
.main-navigation .primary-menu > li.current_page_item > a,
.main-navigation .primary-menu > li.current_page_parent > a,
.main-navigation .primary-menu > li.current_page_ancestor > a,
.main-navigation .primary-menu > li > a:hover { color: var(--bm-navy-700); }

/* Caret button injected by JS, plus a CSS-only fallback caret ---------- */
.main-navigation .dropdown-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	padding: 0;
	border: 0;
	background: none;
	color: currentColor;
	cursor: pointer;
	opacity: .62;
	transition: transform var(--bm-transition), opacity var(--bm-transition);
}

.main-navigation li.is-open > a > .dropdown-toggle,
.main-navigation li:hover > a > .dropdown-toggle {
	opacity: 1;
	transform: rotate(180deg);
}

.main-navigation .menu-item-has-children > a::before {
	content: "";
	order: 2;
	width: 0;
	height: 0;
}

/* Sub-menus ------------------------------------------------------------ */
.main-navigation .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 950;
	min-width: 258px;
	padding: 10px 0;
	background: var(--bm-white);
	border-top: 3px solid var(--bm-gold);
	border-radius: 0 0 var(--bm-radius) var(--bm-radius);
	box-shadow: 0 22px 50px rgba(2, 31, 73, .18);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity var(--bm-transition), transform var(--bm-transition), visibility var(--bm-transition);
}

.main-navigation li.is-open > .sub-menu,
.main-navigation li:hover > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.main-navigation .sub-menu li { position: relative; }

.main-navigation .sub-menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 11px 22px;
	color: var(--bm-body-strong);
	font-size: .855rem;
	font-weight: 600;
	letter-spacing: .012em;
	line-height: 1.45;
	text-transform: none;
	border-left: 3px solid transparent;
	transition: all var(--bm-transition);
}

.main-navigation .sub-menu a:hover,
.main-navigation .sub-menu li.is-open > a,
.main-navigation .sub-menu .current-menu-item > a {
	background: var(--bm-mist);
	border-left-color: var(--bm-gold);
	color: var(--bm-navy);
	padding-left: 26px;
}

/* Third level ---------------------------------------------------------- */
.main-navigation .sub-menu .sub-menu {
	top: -10px;
	left: 100%;
	border-top: 3px solid var(--bm-gold);
	border-radius: var(--bm-radius);
}

.main-navigation .sub-menu .menu-item-has-children > a > .dropdown-toggle {
	transform: rotate(-90deg);
	width: 16px;
}

.main-navigation .sub-menu .menu-item-has-children:hover > a > .dropdown-toggle,
.main-navigation .sub-menu .menu-item-has-children.is-open > a > .dropdown-toggle {
	transform: rotate(-90deg);
}

/* -------------------------------------------------------------------------
   9. MOBILE NAVIGATION
   ---------------------------------------------------------------------- */
.menu-toggle {
	display: none;
	align-items: center;
	gap: 11px;
	padding: 11px 17px;
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	background: var(--bm-white);
	color: var(--bm-navy);
	font-family: inherit;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
	cursor: pointer;
}

.menu-toggle__bars {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
	width: 19px;
}

.menu-toggle__bars span {
	display: block;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform var(--bm-transition), opacity var(--bm-transition);
}

.nav-open .menu-toggle__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-open .menu-toggle__bars span:nth-child(2) { opacity: 0; }
.nav-open .menu-toggle__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.nav-overlay { display: none; }

/* -------------------------------------------------------------------------
   10. HERO SLIDER
   ---------------------------------------------------------------------- */
.bmspr-slider {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--bm-navy-900);
	isolation: isolate;
}

.bmspr-slider__viewport {
	position: relative;
	width: 100%;
}

.bmspr-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1100ms var(--bm-ease), visibility 1100ms;
	z-index: 1;
}

.bmspr-slide:first-child { position: relative; }

.bmspr-slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 2;
}

.bmspr-slide__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.bmspr-slide__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.08);
	transition: transform 8000ms linear;
}

.bmspr-slide.is-active .bmspr-slide__bg img { transform: scale(1); }

.bmspr-slide__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(100deg, rgba(1, 15, 35, .93) 0%, rgba(2, 31, 73, .82) 42%, rgba(2, 31, 73, .48) 72%, rgba(2, 31, 73, .30) 100%);
}

.bmspr-slide--center .bmspr-slide__scrim {
	background:
		linear-gradient(180deg, rgba(1, 15, 35, .78) 0%, rgba(2, 31, 73, .70) 50%, rgba(1, 15, 35, .85) 100%);
}

.bmspr-slide__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--bm-container);
	margin-inline: auto;
	padding: 130px var(--bm-gutter) 150px;
}

.bmspr-slide--center .bmspr-slide__inner { text-align: center; }
.bmspr-slide--center .bmspr-slide__inner > * { margin-inline: auto; }
.bmspr-slide--center .bmspr-slide__actions { justify-content: center; }

.bmspr-slide__content { max-width: 720px; }

.bmspr-slide__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 22px;
	padding: 8px 18px;
	border: 1px solid rgba(197, 135, 22, .5);
	border-radius: 100px;
	background: rgba(197, 135, 22, .14);
	color: var(--bm-gold-light);
	font-size: .705rem;
	font-weight: 800;
	letter-spacing: .19em;
	text-transform: uppercase;
}

.bmspr-slide__title {
	margin: 0 0 20px;
	color: #fff;
	font-size: clamp(2.1rem, 1.35rem + 3.1vw, 4.05rem);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: .002em;
	text-shadow: 0 3px 28px rgba(0, 0, 0, .35);
}

.bmspr-slide__title em {
	display: block;
	font-style: normal;
	color: var(--bm-gold-light);
}

.bmspr-slide__text {
	margin: 0 0 34px;
	max-width: 62ch;
	color: #d3e0ef;
	font-size: 1.075rem;
	line-height: 1.8;
}

.bmspr-slide--center .bmspr-slide__text { max-width: 66ch; }

.bmspr-slide__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	align-items: center;
}

/* Logo slide ---------------------------------------------------------- */
.bmspr-slide--logo .bmspr-slide__bg { background: var(--bm-navy); }

.bmspr-slide--logo .bmspr-slide__bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .038) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .038) 1px, transparent 1px);
	background-size: 58px 58px;
	z-index: 2;
}

.bmspr-slide--logo .bmspr-slide__inner { padding-block: 84px 96px; }

.bmspr-slide__logo-card {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 26px;
	padding: 46px 62px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--bm-radius-lg);
	background: rgba(255, 255, 255, .055);
	backdrop-filter: blur(7px);
	box-shadow: 0 26px 70px rgba(0, 0, 0, .34);
}

.bmspr-slide__logo-card img {
	width: clamp(230px, 27vw, 360px);
	filter: drop-shadow(0 10px 26px rgba(0, 0, 0, .4));
}

.bmspr-slide__logo-divider {
	width: 108px;
	height: 3px;
	background: linear-gradient(90deg, transparent, var(--bm-gold), transparent);
}

.bmspr-slide__logo-tagline {
	margin: 0;
	color: #d3e0ef;
	font-size: clamp(.95rem, .8rem + .5vw, 1.22rem);
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.5;
}

/* Slider controls ----------------------------------------------------- */
.bmspr-slider__arrows {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	z-index: 20;
	display: flex;
	justify-content: space-between;
	padding-inline: 26px;
	transform: translateY(-50%);
	pointer-events: none;
}

.bmspr-slider__arrow {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 50%;
	background: rgba(2, 31, 73, .42);
	color: #fff;
	cursor: pointer;
	backdrop-filter: blur(6px);
	transition: all var(--bm-transition);
}

.bmspr-slider__arrow:hover {
	background: var(--bm-gold);
	border-color: var(--bm-gold);
	transform: scale(1.08);
}

/* Prev / next arrows sit left and right of the track */
.bmspr-slider__arrow--prev { order: 1; }
.bmspr-slider__arrow--next { order: 2; }
.bmspr-slider__arrow svg { width: 20px; height: 20px; }

.bmspr-slider__footer {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 26px;
	max-width: var(--bm-container);
	margin-inline: auto;
	padding: 0 var(--bm-gutter) 30px;
	pointer-events: none;
}

.bmspr-slider__dots {
	display: flex;
	align-items: center;
	gap: 12px;
	pointer-events: auto;
}

.bmspr-slider__dot {
	display: block;
	width: 46px;
	height: 4px;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: rgba(255, 255, 255, .3);
	cursor: pointer;
	overflow: hidden;
	transition: background var(--bm-transition), width var(--bm-transition);
}

.bmspr-slider__dot:hover { background: rgba(255, 255, 255, .55); }

.bmspr-slider__dot.is-active { background: rgba(255, 255, 255, .28); width: 76px; }

.bmspr-slider__dot-bar {
	display: block;
	width: 0;
	height: 100%;
	background: var(--bm-gold);
	border-radius: 2px;
}

.bmspr-slider__dot.is-active .bmspr-slider__dot-bar {
	animation: bm-dot-progress linear forwards;
	animation-duration: var(--bm-slide-interval, 6.5s);
}

.bmspr-slider.is-paused .bmspr-slider__dot.is-active .bmspr-slider__dot-bar { animation-play-state: paused; }

@keyframes bm-dot-progress {
	from { width: 0; }
	to   { width: 100%; }
}

.bmspr-slider__toggle {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 50%;
	background: rgba(2, 31, 73, .4);
	color: #fff;
	cursor: pointer;
	backdrop-filter: blur(6px);
	transition: all var(--bm-transition);
}

.bmspr-slider__toggle:hover { background: var(--bm-gold); border-color: var(--bm-gold); }
.bmspr-slider__toggle .icon-play { display: none; }
.bmspr-slider.is-paused .bmspr-slider__toggle .icon-play { display: block; }
.bmspr-slider.is-paused .bmspr-slider__toggle .icon-pause { display: none; }

/* Slide entrance animations ------------------------------------------ */
.bmspr-slide [data-animate] {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 780ms var(--bm-ease), transform 780ms var(--bm-ease);
}

.bmspr-slide [data-animate].is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* -------------------------------------------------------------------------
   11. PAGE BANNER & BREADCRUMBS
   ---------------------------------------------------------------------- */
.bm-page-banner {
	position: relative;
	overflow: hidden;
	background: var(--bm-navy);
	color: #c3d2e4;
	padding: 78px 0 66px;
	isolation: isolate;
}

.bm-page-banner__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.bm-page-banner__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bm-page-banner__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(100deg, rgba(1, 15, 35, .95) 0%, rgba(2, 31, 73, .86) 48%, rgba(2, 31, 73, .58) 100%);
}

.bm-page-banner__inner { position: relative; z-index: 2; }

.bm-page-banner__eyebrow {
	margin: 0 0 12px;
	color: var(--bm-gold-light);
	font-size: .73rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.bm-page-banner h1 {
	margin: 0 0 14px;
	color: #fff;
	text-shadow: 0 2px 20px rgba(0, 0, 0, .3);
}

.bm-page-banner__lead {
	margin: 0;
	max-width: 76ch;
	color: #c3d2e4;
	font-size: 1.06rem;
	line-height: 1.75;
}

.bm-breadcrumbs-wrap { margin: 0; }
.bm-breadcrumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 9px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
	color: #93a8c2;
	font-size: .78rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.bm-breadcrumbs li { display: inline-flex; align-items: center; gap: 9px; }
.bm-breadcrumbs li + li::before { content: "/"; color: rgba(255, 255, 255, .3); }
.bm-breadcrumbs a { color: #c3d2e4; font-weight: 600; }
.bm-breadcrumbs a:hover { color: var(--bm-gold-light); }
.bm-breadcrumbs .is-current { color: var(--bm-gold-light); font-weight: 700; }

/* -------------------------------------------------------------------------
   12. SECTIONS & HEADINGS
   ---------------------------------------------------------------------- */
.bm-section-head { max-width: 800px; margin-bottom: 54px; }
.bm-section-head--center { margin-inline: auto; text-align: center; }
.bm-section-head--center .bm-divider { margin-inline: auto; }

.bm-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	color: var(--bm-gold-dark);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.bm-eyebrow::before {
	content: "";
	width: 26px;
	height: 2px;
	background: var(--bm-gold);
}

.bm-section-head--center .bm-eyebrow::after {
	content: "";
	width: 26px;
	height: 2px;
	background: var(--bm-gold);
}

.bm-section--navy .bm-eyebrow,
.bm-section--steel .bm-eyebrow { color: var(--bm-gold-light); }

.bm-section-head h2 { margin: 0 0 20px; }
.bm-section-head p { margin: 0; color: var(--bm-body); font-size: 1.04rem; }
.bm-section--navy .bm-section-head p,
.bm-section--steel .bm-section-head p { color: #b6c7dc; }

/* Section variants used by the contact + aside layouts ---------------- */
.bm-section--contact { background: var(--bm-mist); }

.bm-section__aside-copy {
	color: var(--bm-body);
	font-size: .95rem;
	line-height: 1.75;
}

.bm-section--navy .bm-section__aside-copy,
.bm-section--steel .bm-section__aside-copy { color: #b6c7dc; }

/* Two-column intro / media-text grid ---------------------------------- */
.bm-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
	gap: 62px;
	align-items: center;
}

.bm-intro-grid--reverse .bm-intro-grid__text { order: 2; }
.bm-intro-grid--reverse .bm-intro-grid__media { order: 1; }

.bm-intro-grid__text,
.bm-intro-grid__media { min-width: 0; }

.bm-intro-grid__text h2 { margin: 0 0 20px; }
.bm-intro-grid__text > p,
.bm-intro-grid__body { color: var(--bm-body); font-size: 1.02rem; }

.bm-section--navy .bm-intro-grid__text > p,
.bm-section--steel .bm-intro-grid__text > p,
.bm-section--navy .bm-intro-grid__body,
.bm-section--steel .bm-intro-grid__body { color: #b6c7dc; }

.bm-intro-grid__frame {
	position: relative;
	overflow: hidden;
	border-radius: var(--bm-radius);
	box-shadow: var(--bm-shadow-lg);
}

.bm-intro-grid__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(2, 31, 73, 0) 42%, rgba(2, 31, 73, .5));
	pointer-events: none;
}

.bm-intro-grid__frame img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.bm-intro-grid__badge {
	position: absolute;
	right: -18px;
	bottom: 30px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 176px;
	padding: 21px 26px;
	background: var(--bm-gold);
	border-radius: var(--bm-radius);
	box-shadow: var(--bm-shadow-gold);
}

.bm-intro-grid__badge-value {
	color: #fff;
	font-family: var(--bm-font-head);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
}

.bm-intro-grid__badge-label {
	color: rgba(255, 255, 255, .95);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .16em;
	line-height: 1.5;
	text-transform: uppercase;
}

.bm-intro-grid__extra { position: relative; z-index: 2; }

@media (max-width: 1024px) {
	.bm-intro-grid { gap: 44px; }
}

@media (max-width: 900px) {
	.bm-intro-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.bm-intro-grid--reverse .bm-intro-grid__text,
	.bm-intro-grid--reverse .bm-intro-grid__media { order: initial; }
	.bm-intro-grid__badge { right: 16px; bottom: 16px; min-width: 150px; padding: 17px 20px; }
}

/* Spec list panel ----------------------------------------------------- */
.bm-spec-list-wrap {
	padding: 34px 36px 38px;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-top: 4px solid var(--bm-gold);
	border-radius: var(--bm-radius);
	box-shadow: var(--bm-shadow-sm);
}

.bm-spec-list__title {
	margin: 0 0 20px;
	color: var(--bm-navy);
	font-size: 1.06rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.bm-section--navy .bm-spec-list-wrap {
	background: var(--bm-navy-800);
	border-color: rgba(255, 255, 255, .12);
}

.bm-section--navy .bm-spec-list__title { color: #fff; }

/* Callout body -------------------------------------------------------- */
.bm-callout__body { min-width: 0; flex: 1 1 auto; }

/* Stat prefix (mirrors the suffix styling) ---------------------------- */
.bm-stat__prefix { color: var(--bm-gold); }

/* -------------------------------------------------------------------------
   13. CARDS
   ---------------------------------------------------------------------- */
.bm-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	overflow: hidden;
	transition: transform var(--bm-transition), box-shadow var(--bm-transition), border-color var(--bm-transition);
}

.bm-card:hover {
	transform: translateY(-6px);
	border-color: var(--bm-line-strong);
	box-shadow: var(--bm-shadow-lg);
}

.bm-card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--bm-navy);
}

.bm-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--bm-ease);
}

.bm-card:hover .bm-card__media img { transform: scale(1.06); }

.bm-card__tag {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 6px 13px;
	border-radius: 3px;
	background: var(--bm-gold);
	color: #fff;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.bm-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 13px;
	padding: 30px 30px 32px;
}

.bm-card__body h3 { margin: 0; font-size: 1.28rem; }
.bm-card__body p { margin: 0; color: var(--bm-body); font-size: .95rem; line-height: 1.72; }
.bm-card__body .bm-link-arrow { margin-top: auto; padding-top: 8px; }

.bm-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: var(--bm-radius);
	background: var(--bm-mist);
	color: var(--bm-navy);
	transition: all var(--bm-transition);
}

.bm-card__icon svg { width: 30px; height: 30px; }

.bm-card:hover .bm-card__icon { background: var(--bm-gold); color: #fff; transform: rotate(-4deg); }

.bm-card--plain { border-top: 3px solid transparent; }
.bm-card--plain:hover { border-top-color: var(--bm-gold); }

/* Numbered feature card */
.bm-card--numbered .bm-card__num {
	position: absolute;
	top: 22px;
	right: 24px;
	z-index: 2;
	color: rgba(2, 31, 73, .09);
	font-family: var(--bm-font-head);
	font-size: 4.2rem;
	font-weight: 700;
	line-height: 1;
}

/* Person card */
.bm-person { text-align: center; }
.bm-person__photo {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--bm-mist-2);
}
.bm-person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 700ms var(--bm-ease); }
.bm-person:hover .bm-person__photo img { transform: scale(1.05); }
.bm-person__body { padding: 24px 22px 28px; text-align: center; }
.bm-person__name { margin: 0 0 5px; font-size: 1.14rem; }
.bm-person__role { margin: 0; color: var(--bm-gold-dark); font-size: .73rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.bm-person__bio { margin: 14px 0 0; font-size: .9rem; color: var(--bm-body); }

/* Feature (icon beside text) */
.bm-feature { display: flex; gap: 20px; align-items: flex-start; }
.bm-feature__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: var(--bm-radius);
	background: rgba(197, 135, 22, .13);
	color: var(--bm-gold-dark);
}
.bm-feature__icon svg { width: 25px; height: 25px; }
.bm-feature__body h3 { margin: 0 0 9px; font-size: 1.13rem; }
.bm-feature__body p { margin: 0; font-size: .95rem; color: var(--bm-body); }
.bm-section--navy .bm-feature__icon { background: rgba(223, 166, 44, .18); color: var(--bm-gold-light); }
.bm-section--navy .bm-feature__body p { color: #b6c7dc; }

/* Service list card */
.bm-service-card {
	position: relative;
	display: block;
	padding: 40px 34px 38px;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	color: inherit;
	overflow: hidden;
	transition: all var(--bm-transition);
}

.bm-service-card::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	background: var(--bm-gold);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform var(--bm-transition);
}

.bm-service-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--bm-shadow-lg);
	border-color: transparent;
	color: inherit;
}

.bm-service-card:hover::before { transform: scaleY(1); }

.bm-service-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 22px;
	border-radius: var(--bm-radius);
	background: var(--bm-navy);
	color: var(--bm-gold-light);
	transition: all var(--bm-transition);
}
.bm-service-card__icon svg { width: 31px; height: 31px; }
.bm-service-card:hover .bm-service-card__icon { background: var(--bm-gold); color: #fff; }

.bm-service-card h3 { margin: 0 0 13px; font-size: 1.24rem; }
.bm-service-card p { margin: 0 0 18px; font-size: .95rem; color: var(--bm-body); line-height: 1.72; }
.bm-service-card .bm-link-arrow { font-size: .77rem; }

/* Document / resource row */
.bm-resource {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 24px 28px;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	transition: all var(--bm-transition);
}

.bm-resource:hover { border-color: var(--bm-gold); box-shadow: var(--bm-shadow); transform: translateX(4px); }

.bm-resource__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: var(--bm-radius);
	background: var(--bm-mist);
	color: var(--bm-navy);
}
.bm-resource__icon svg { width: 25px; height: 25px; }

.bm-resource__body { flex: 1 1 auto; min-width: 0; }
.bm-resource__body h3 { margin: 0 0 4px; font-size: 1.03rem; letter-spacing: .01em; }
.bm-resource__meta { margin: 0; color: var(--bm-muted); font-size: .78rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }

/* -------------------------------------------------------------------------
   14. STATS & COUNTERS
   ---------------------------------------------------------------------- */
.bm-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: var(--bm-line);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	overflow: hidden;
}

.bm-stat {
	background: var(--bm-white);
	padding: 38px 30px;
	text-align: center;
	transition: background var(--bm-transition);
}

.bm-stat:hover { background: var(--bm-mist); }

.bm-stat__value {
	margin: 0 0 6px;
	color: var(--bm-navy);
	font-family: var(--bm-font-head);
	font-size: clamp(2.1rem, 1.6rem + 1.7vw, 3.1rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: .01em;
}

.bm-stat__value .bm-stat__suffix { color: var(--bm-gold); }

.bm-stat__label {
	margin: 0;
	color: var(--bm-muted);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
	line-height: 1.5;
}

.bm-section--navy .bm-stats { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .1); }
.bm-section--navy .bm-stat { background: var(--bm-navy-800); }
.bm-section--navy .bm-stat:hover { background: var(--bm-navy-700); }
.bm-section--navy .bm-stat__value { color: #fff; }
.bm-section--navy .bm-stat__label { color: #93a8c2; }

/* -------------------------------------------------------------------------
   15. SPEC TABLES
   ---------------------------------------------------------------------- */
.bm-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	background: var(--bm-white);
	box-shadow: var(--bm-shadow-sm);
}

.bm-table {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	font-size: .93rem;
}

.bm-table caption {
	padding: 20px 26px 0;
	color: var(--bm-navy);
	font-family: var(--bm-font-head);
	font-size: 1.12rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-align: left;
	text-transform: uppercase;
}

.bm-table th,
.bm-table td {
	padding: 15px 24px;
	text-align: left;
	border-bottom: 1px solid var(--bm-line);
}

.bm-table thead th {
	background: var(--bm-navy);
	color: #fff;
	font-size: .73rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.bm-table tbody tr:nth-child(even) { background: var(--bm-mist); }
.bm-table tbody tr:hover { background: var(--bm-mist-2); }
.bm-table tbody tr:last-child td { border-bottom: 0; }

.bm-table td:first-child { color: var(--bm-body-strong); font-weight: 700; }
.bm-table .is-numeric { font-variant-numeric: tabular-nums; text-align: right; }

.bm-table__badge {
	display: inline-block;
	padding: 4px 11px;
	border-radius: 100px;
	background: rgba(30, 122, 76, .12);
	color: var(--bm-success);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

/* Definition list of specs */
.bm-spec-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--bm-line);
}

.bm-spec-list li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	padding: 15px 0;
	border-bottom: 1px solid var(--bm-line);
}

.bm-spec-list__key {
	color: var(--bm-muted);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.bm-spec-list__val {
	color: var(--bm-navy);
	font-weight: 700;
	font-size: .97rem;
	text-align: right;
}

.bm-section--navy .bm-spec-list,
.bm-section--navy .bm-spec-list li { border-color: rgba(255, 255, 255, .13); }
.bm-section--navy .bm-spec-list__val { color: #fff; }
.bm-section--navy .bm-spec-list__key { color: #93a8c2; }

/* -------------------------------------------------------------------------
   16. TIMELINE
   ---------------------------------------------------------------------- */
.bm-timeline {
	position: relative;
	margin: 0;
	padding: 0 0 0 42px;
	list-style: none;
}

.bm-timeline::before {
	content: "";
	position: absolute;
	left: 8px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: linear-gradient(180deg, var(--bm-gold), rgba(197, 135, 22, .1));
}

.bm-timeline__item { position: relative; padding-bottom: 38px; }
.bm-timeline__item:last-child { padding-bottom: 0; }

.bm-timeline__item::before {
	content: "";
	position: absolute;
	left: -42px;
	top: 7px;
	width: 18px;
	height: 18px;
	border: 3px solid var(--bm-gold);
	border-radius: 50%;
	background: var(--bm-white);
}

.bm-timeline__year {
	display: inline-block;
	margin-bottom: 8px;
	padding: 4px 13px;
	border-radius: 3px;
	background: var(--bm-navy);
	color: var(--bm-gold-light);
	font-size: .73rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.bm-timeline__item h3 { margin: 0 0 8px; font-size: 1.22rem; }
.bm-timeline__item p { margin: 0; font-size: .95rem; color: var(--bm-body); }
.bm-section--navy .bm-timeline__item::before { background: var(--bm-navy); }
.bm-section--navy .bm-timeline__item p { color: #b6c7dc; }

/* -------------------------------------------------------------------------
   17. TABS & ACCORDION
   ---------------------------------------------------------------------- */
.bmspr-tabs { margin-block: 8px; }

.bmspr-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 34px;
	padding: 0;
	list-style: none;
	border-bottom: 2px solid var(--bm-line);
}

.bmspr-tabs__tab {
	position: relative;
	padding: 15px 26px;
	border: 0;
	background: none;
	color: var(--bm-muted);
	font-family: var(--bm-font-body);
	font-size: .79rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color var(--bm-transition), background var(--bm-transition);
}

.bmspr-tabs__tab::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 3px;
	background: var(--bm-gold);
	transform: scaleX(0);
	transition: transform var(--bm-transition);
}

.bmspr-tabs__tab:hover { color: var(--bm-navy); background: var(--bm-mist); }
.bmspr-tabs__tab.is-active { color: var(--bm-navy); }
.bmspr-tabs__tab.is-active::after { transform: scaleX(1); }

.bmspr-tabs__panel { display: none; animation: bm-fade-up 460ms var(--bm-ease); }
.bmspr-tabs__panel.is-active { display: block; }

@keyframes bm-fade-up {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: translateY(0); }
}

.bmspr-accordion {
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	overflow: hidden;
	background: var(--bm-white);
}

.bmspr-accordion__item + .bmspr-accordion__item { border-top: 1px solid var(--bm-line); }

.bmspr-accordion__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	width: 100%;
	padding: 23px 28px;
	border: 0;
	background: none;
	color: var(--bm-navy);
	font-family: var(--bm-font-body);
	font-size: 1.02rem;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
	transition: background var(--bm-transition), color var(--bm-transition);
}

.bmspr-accordion__trigger:hover { background: var(--bm-mist); }
.bmspr-accordion__item.is-open .bmspr-accordion__trigger { background: var(--bm-navy); color: #fff; }

.bmspr-accordion__icon {
	flex: 0 0 auto;
	position: relative;
	width: 20px;
	height: 20px;
}

.bmspr-accordion__icon::before,
.bmspr-accordion__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	transform: translateY(-50%);
	transition: transform var(--bm-transition);
}

.bmspr-accordion__icon::after { transform: translateY(-50%) rotate(90deg); }
.bmspr-accordion__item.is-open .bmspr-accordion__icon::after { transform: translateY(-50%) rotate(0deg); }

.bmspr-accordion__panel { padding: 4px 28px 28px; color: var(--bm-body); font-size: .96rem; }

/* -------------------------------------------------------------------------
   18. CERTIFICATIONS / BADGES
   ---------------------------------------------------------------------- */
.bm-badges { display: flex; flex-wrap: wrap; gap: 14px; }

.bm-badge {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	padding: 12px 20px;
	border: 1px solid var(--bm-line-strong);
	border-radius: 100px;
	background: var(--bm-white);
	color: var(--bm-navy);
	font-size: .79rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
	transition: all var(--bm-transition);
}

.bm-badge:hover { border-color: var(--bm-gold); box-shadow: var(--bm-shadow); }
.bm-badge svg { color: var(--bm-gold); flex: 0 0 auto; }
.bm-section--navy .bm-badge { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); color: #fff; }

.bm-cert-card {
	display: flex;
	flex-direction: column;
	gap: 15px;
	padding: 34px 30px;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-top: 3px solid var(--bm-gold);
	border-radius: var(--bm-radius);
	transition: all var(--bm-transition);
}

.bm-cert-card:hover { transform: translateY(-5px); box-shadow: var(--bm-shadow-lg); }
.bm-cert-card__code {
	display: inline-block;
	align-self: flex-start;
	padding: 5px 12px;
	border-radius: 3px;
	background: var(--bm-navy);
	color: var(--bm-gold-light);
	font-size: .71rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.bm-cert-card h3 { margin: 0; font-size: 1.12rem; }
.bm-cert-card p { margin: 0; font-size: .92rem; color: var(--bm-body); line-height: 1.7; }

/* Callout / notice ----------------------------------------------------- */
.bm-callout {
	display: flex;
	gap: 22px;
	padding: 30px 34px;
	border-left: 5px solid var(--bm-gold);
	border-radius: 0 var(--bm-radius) var(--bm-radius) 0;
	background: var(--bm-mist);
}

.bm-callout__icon { flex: 0 0 auto; color: var(--bm-gold-dark); }
.bm-callout__icon svg { width: 32px; height: 32px; }
.bm-callout h3 { margin: 0 0 10px; font-size: 1.14rem; }
.bm-callout p { margin: 0; font-size: .96rem; }

.bm-callout--alert { border-left-color: var(--bm-error); background: #fdf3f2; }
.bm-callout--alert .bm-callout__icon { color: var(--bm-error); }

/* -------------------------------------------------------------------------
   19. CTA BANDS
   ---------------------------------------------------------------------- */
.bm-cta {
	position: relative;
	overflow: hidden;
	background: var(--bm-navy);
	color: #c3d2e4;
	isolation: isolate;
}

.bm-cta__bg { position: absolute; inset: 0; z-index: 0; }
.bm-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.bm-cta__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(1, 15, 35, .96) 0%, rgba(2, 31, 73, .88) 55%, rgba(2, 31, 73, .62) 100%);
}

.bm-cta__inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 34px;
	padding-block: 66px;
}

.bm-cta__body { max-width: 760px; }
.bm-cta h2 { margin: 0 0 14px; color: #fff; }
.bm-cta p { margin: 0; color: #b6c7dc; font-size: 1.03rem; }
.bm-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; flex: 0 0 auto; }

/* Contact strip -------------------------------------------------------- */
.bm-contact-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: var(--bm-radius);
	overflow: hidden;
}

.bm-contact-strip__item {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 34px 30px;
	background: var(--bm-navy-800);
	transition: background var(--bm-transition);
}

.bm-contact-strip__item:hover { background: var(--bm-navy-700); }

.bm-contact-strip__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--bm-radius);
	background: rgba(197, 135, 22, .16);
	color: var(--bm-gold-light);
}
.bm-contact-strip__icon svg { width: 23px; height: 23px; }

.bm-contact-strip__body h3 {
	margin: 0 0 7px;
	color: #fff;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.bm-contact-strip__body p { margin: 0; color: #c3d2e4; font-size: .96rem; line-height: 1.65; }
.bm-contact-strip__body a { color: #fff; font-weight: 600; }
.bm-contact-strip__body a:hover { color: var(--bm-gold-light); }

/* -------------------------------------------------------------------------
   20. CONTACT PAGE & FORMS
   ---------------------------------------------------------------------- */
.bmspr-contact-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.bmspr-contact-form .bm-field--full { grid-column: 1 / -1; }

.bm-field { display: flex; flex-direction: column; gap: 8px; }

.bm-field label {
	color: var(--bm-navy);
	font-size: .77rem;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.bm-field .required { color: var(--bm-error); }

.bm-field input[type="text"],
.bm-field input[type="email"],
.bm-field input[type="tel"],
.bm-field input[type="url"],
.bm-field input[type="number"],
.bm-field select,
.bm-field textarea {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--bm-line-strong);
	border-radius: var(--bm-radius);
	background: var(--bm-white);
	color: var(--bm-body-strong);
	font-family: inherit;
	font-size: .96rem;
	line-height: 1.5;
	transition: border-color var(--bm-transition), box-shadow var(--bm-transition);
}

.bm-field textarea { min-height: 168px; resize: vertical; }

.bm-field input:focus,
.bm-field select:focus,
.bm-field textarea:focus {
	border-color: var(--bm-gold);
	box-shadow: 0 0 0 3px rgba(197, 135, 22, .16);
	outline: none;
}

.bm-field__hint { color: var(--bm-muted); font-size: .8rem; }

.bm-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: .9rem;
	line-height: 1.6;
	color: var(--bm-body);
}

.bm-checkbox input { margin-top: 4px; flex: 0 0 auto; width: 17px; height: 17px; accent-color: var(--bm-gold); }

.bmspr-form-status {
	grid-column: 1 / -1;
	padding: 15px 20px;
	border-radius: var(--bm-radius);
	font-size: .93rem;
	font-weight: 600;
}

.bmspr-form-status.is-success { background: rgba(30, 122, 76, .1); color: var(--bm-success); border: 1px solid rgba(30, 122, 76, .3); }
.bmspr-form-status.is-error { background: rgba(179, 38, 30, .08); color: var(--bm-error); border: 1px solid rgba(179, 38, 30, .28); }
.bmspr-form-status:empty { display: none; }

.bm-form-card {
	padding: 44px 46px 48px;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	box-shadow: var(--bm-shadow);
}

.bm-map {
	border-radius: var(--bm-radius);
	overflow: hidden;
	border: 1px solid var(--bm-line);
	background: var(--bm-mist);
	line-height: 0;
}

.bm-map iframe { width: 100%; height: 440px; border: 0; display: block; }

/* Contact info panel --------------------------------------------------- */
.bm-contact-panel {
	display: flex;
	flex-direction: column;
	gap: 2px;
	background: var(--bm-navy);
	border-radius: var(--bm-radius);
	overflow: hidden;
}

.bm-contact-panel__item {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 28px 30px;
	border-bottom: 1px solid rgba(255, 255, 255, .09);
	transition: background var(--bm-transition);
}
.bm-contact-panel__item:last-child { border-bottom: 0; }
.bm-contact-panel__item:hover { background: var(--bm-navy-800); }

.bm-contact-panel__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: var(--bm-radius);
	background: rgba(197, 135, 22, .16);
	color: var(--bm-gold-light);
}
.bm-contact-panel__icon svg { width: 22px; height: 22px; }

.bm-contact-panel__body { min-width: 0; }
.bm-contact-panel__body h3 {
	margin: 0 0 6px;
	color: #fff;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.bm-contact-panel__body p { margin: 0; color: #c3d2e4; font-size: .95rem; line-height: 1.65; }
.bm-contact-panel__body a { color: #fff; font-weight: 600; word-break: break-word; }
.bm-contact-panel__body a:hover { color: var(--bm-gold-light); }

/* Sidebar widgets ------------------------------------------------------ */
.bm-sidebar { display: flex; flex-direction: column; gap: 30px; }

.bm-widget {
	padding: 30px 30px 34px;
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
}

.bm-widget__title,
.sidebar .widget-title {
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--bm-line);
	color: var(--bm-navy);
	font-size: 1.02rem;
	letter-spacing: .05em;
}

.sidebar ul { margin: 0; padding: 0; list-style: none; }
.sidebar ul li { border-bottom: 1px solid var(--bm-line); }
.sidebar ul li:last-child { border-bottom: 0; }
.sidebar ul a { display: block; padding: 11px 0; color: var(--bm-body-strong); font-size: .94rem; font-weight: 600; }
.sidebar ul a:hover { color: var(--bm-gold-dark); padding-left: 7px; }
.sidebar ul ul { padding-left: 16px; }

.bm-widget--navy { background: var(--bm-navy); border-color: var(--bm-navy); color: #c3d2e4; }
.bm-widget--navy .bm-widget__title { color: #fff; border-bottom-color: rgba(255, 255, 255, .15); }
.bm-widget--navy p { color: #b6c7dc; }

/* Contact section wrapper (page template) ----------------------------- */
.bmspr-contact-wrap { position: relative; }

.bmspr-contact-wrap__intro { max-width: 780px; margin-bottom: 46px; }

.bmspr-contact-wrap__title { margin: 0 0 18px; }

.bm-contact-privacy {
	margin: 18px 0 0;
	color: var(--bm-muted);
	font-size: .79rem;
	line-height: 1.6;
}

/* Search form --------------------------------------------------------- */
.bm-searchform {
	display: flex;
	gap: 10px;
	align-items: stretch;
}

.bm-searchform__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 13px 18px;
	border: 1px solid var(--bm-line-strong);
	border-radius: var(--bm-radius);
	background: var(--bm-white);
	color: var(--bm-ink);
	font-family: inherit;
	font-size: .95rem;
}

.bm-searchform__input:focus {
	outline: 0;
	border-color: var(--bm-steel-light);
	box-shadow: 0 0 0 3px rgba(47, 111, 166, .16);
}

.bm-searchform__submit {
	flex: 0 0 auto;
	padding: 13px 26px;
	border: 0;
	border-radius: var(--bm-radius);
	background: var(--bm-navy);
	color: #fff;
	font-family: inherit;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--bm-transition);
}

.bm-searchform__submit:hover { background: var(--bm-gold); }

/* -------------------------------------------------------------------------
   21. BLOG / ARCHIVE / SINGLE
   ---------------------------------------------------------------------- */
.bm-page-content { padding-block: var(--bm-section-y); }
.bm-page-content--no-sidebar { max-width: 900px; margin-inline: auto; }

.bm-archive-head { margin-bottom: 46px; text-align: center; }

.bm-entry {
	background: var(--bm-white);
	border: 1px solid var(--bm-line);
	border-radius: var(--bm-radius);
	overflow: hidden;
	transition: all var(--bm-transition);
}

.bm-entry:hover { transform: translateY(-5px); box-shadow: var(--bm-shadow-lg); }

.bm-entry__media { display: block; overflow: hidden; aspect-ratio: 16 / 10; background: var(--bm-navy); }
.bm-entry__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--bm-ease); }
.bm-entry:hover .bm-entry__media img { transform: scale(1.05); }

.bm-entry__body { padding: 28px 30px 32px; }
.bm-entry__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-bottom: 13px;
	color: var(--bm-muted);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
}
.bm-entry__meta a { color: var(--bm-gold-dark); }
.bm-entry__title { margin: 0 0 12px; font-size: 1.3rem; }
.bm-entry__title a { color: var(--bm-navy); }
.bm-entry__title a:hover { color: var(--bm-gold-dark); }
.bm-entry__excerpt { margin: 0 0 18px; font-size: .95rem; color: var(--bm-body); line-height: 1.72; }

/* Single post ---------------------------------------------------------- */
.bm-single__header { margin-bottom: 40px; }
.bm-single__header h1 { margin: 0 0 18px; }
.bm-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--bm-line);
	color: var(--bm-muted);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.bm-single__thumb { margin-bottom: 42px; border-radius: var(--bm-radius); overflow: hidden; }
.bm-single__content { font-size: 1.03rem; }
.bm-single__content h2 { margin-top: 1.7em; }
.bm-single__content h3 { margin-top: 1.4em; }
.bm-single__content ul,
.bm-single__content ol { margin: 0 0 1.4em; padding-left: 1.35em; }
.bm-single__content li { margin-bottom: .55em; }
.bm-single__content ul li::marker { color: var(--bm-gold); }
.bm-single__content img { border-radius: var(--bm-radius); margin-block: 1.6em; }
.bm-single__content table { width: 100%; border-collapse: collapse; margin-block: 1.8em; font-size: .94rem; }
.bm-single__content th,
.bm-single__content td { padding: 13px 18px; border: 1px solid var(--bm-line); text-align: left; }
.bm-single__content th { background: var(--bm-mist); color: var(--bm-navy); font-weight: 700; }

.bm-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 40px; }
.bm-tags a {
	display: inline-block;
	padding: 7px 15px;
	border: 1px solid var(--bm-line-strong);
	border-radius: 100px;
	color: var(--bm-body-strong);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.bm-tags a:hover { border-color: var(--bm-gold); color: var(--bm-gold-dark); }

.bm-post-nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin-top: 46px;
	padding-top: 34px;
	border-top: 1px solid var(--bm-line);
}
.bm-post-nav a {
	display: block;
	padding: 24px 26px;
	background: var(--bm-mist);
	border-radius: var(--bm-radius);
	border: 1px solid transparent;
	transition: all var(--bm-transition);
}
.bm-post-nav a:hover { border-color: var(--bm-gold); background: var(--bm-white); box-shadow: var(--bm-shadow); }
.bm-post-nav__label { display: block; margin-bottom: 6px; color: var(--bm-muted); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.bm-post-nav__title { display: block; color: var(--bm-navy); font-weight: 700; font-size: .98rem; line-height: 1.45; }

/* -------------------------------------------------------------------------
   22. COMMENTS & PAGINATION
   ---------------------------------------------------------------------- */
.bm-comments { margin-top: 60px; padding-top: 46px; border-top: 1px solid var(--bm-line); }

/* Comments area used by comments.php ---------------------------------- */
.bm-comments-area { margin-top: 60px; padding-top: 46px; border-top: 1px solid var(--bm-line); }

.bm-comments-title,
.bm-comments-area .comments-title {
	margin: 0 0 28px;
	padding-bottom: 16px;
	border-bottom: 2px solid var(--bm-line);
	color: var(--bm-navy);
	font-size: 1.4rem;
}

.bm-comment-list { margin: 0; padding: 0; list-style: none; }
.bm-comment-list ol,
.bm-comment-list ul.children { margin: 0; padding: 0 0 0 30px; list-style: none; }

.bm-comments-note {
	margin: 0 0 26px;
	color: var(--bm-muted);
	font-size: .84rem;
}

.bm-comments-closed {
	margin: 30px 0 0;
	padding: 20px 24px;
	border-left: 3px solid var(--bm-line-strong);
	background: var(--bm-mist);
	color: var(--bm-body);
	font-size: .9rem;
}
.bm-comments .comment-list { margin: 0; padding: 0; list-style: none; }
.bm-comments .comment-list ol { margin: 0; padding: 0; list-style: none; }
.bm-comments .comment-body {
	padding: 26px 0;
	border-bottom: 1px solid var(--bm-line);
}
.bm-comments .comment-author img { border-radius: 50%; margin-right: 12px; float: left; }
.bm-comments .comment-meta { margin-bottom: 12px; font-size: .82rem; color: var(--bm-muted); }
.bm-comments .comment-metadata a { color: var(--bm-muted); font-size: .78rem; }
.bm-comments .reply a {
	display: inline-block;
	margin-top: 10px;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bm-gold-dark);
}

.pagination,
.navigation.pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 56px;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--bm-line-strong);
	border-radius: var(--bm-radius);
	background: var(--bm-white);
	color: var(--bm-body-strong);
	font-size: .92rem;
	font-weight: 700;
	transition: all var(--bm-transition);
}

.pagination .page-numbers:hover { border-color: var(--bm-gold); color: var(--bm-gold-dark); }
.pagination .page-numbers.current {
	background: var(--bm-navy);
	border-color: var(--bm-navy);
	color: #fff;
}

.post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 46px; }

/* -------------------------------------------------------------------------
   23. FOOTER
   ---------------------------------------------------------------------- */
.site-footer {
	background: var(--bm-navy-900);
	color: #93a8c2;
	font-size: .94rem;
}

.site-footer a { color: #c3d2e4; }
.site-footer a:hover { color: var(--bm-gold-light); }

.site-footer h1, .site-footer h2, .site-footer h3,
.site-footer h4, .site-footer h5, .site-footer h6 { color: #fff; }

.site-footer__main { padding-block: 76px 62px; }

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
	gap: 48px;
}

.site-footer__brand img { max-height: 74px; width: auto; margin-bottom: 24px; }

.site-footer__about { margin: 0 0 26px; max-width: 42ch; line-height: 1.8; color: #93a8c2; }

.site-footer__contact { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 13px; }
.site-footer__contact li { display: flex; gap: 12px; align-items: flex-start; line-height: 1.6; }
.site-footer__contact svg { flex: 0 0 auto; margin-top: 4px; color: var(--bm-gold); }

.site-footer__col h3,
.site-footer .widget-title {
	margin: 0 0 22px;
	padding-bottom: 13px;
	position: relative;
	color: #fff;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.site-footer__col h3::after,
.site-footer .widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 38px;
	height: 2px;
	background: var(--bm-gold);
}

.site-footer__menu { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 11px; }
.site-footer__menu a { display: inline-flex; align-items: center; gap: 9px; font-size: .94rem; }
.site-footer__menu a::before {
	content: "";
	width: 0;
	height: 2px;
	background: var(--bm-gold);
	transition: width var(--bm-transition);
}
.site-footer__menu a:hover::before { width: 14px; }

.site-footer .widget { margin-bottom: 34px; }
.site-footer .widget:last-child { margin-bottom: 0; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer ul li { margin-bottom: 11px; }
.site-footer p { color: #93a8c2; }

.site-footer__newsletter { display: flex; gap: 10px; margin-top: 18px; }
.site-footer__newsletter input[type="email"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 13px 16px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--bm-radius);
	background: rgba(255, 255, 255, .05);
	color: #fff;
	font-family: inherit;
	font-size: .92rem;
}
.site-footer__newsletter input[type="email"]::placeholder { color: #6e83a0; }
.site-footer__newsletter input[type="email"]:focus { border-color: var(--bm-gold); outline: none; }

.bm-social { display: flex; gap: 10px; margin-top: 26px; }
.bm-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--bm-radius);
	color: #c3d2e4;
	transition: all var(--bm-transition);
}
.bm-social a:hover { background: var(--bm-gold); border-color: var(--bm-gold); color: #fff; transform: translateY(-3px); }

.site-footer__bottom {
	padding-block: 26px;
	border-top: 1px solid rgba(255, 255, 255, .09);
}

.site-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px 30px;
	font-size: .85rem;
}

.site-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; }
.site-footer__credit { margin: 0; }

/* -------------------------------------------------------------------------
   24. BACK TO TOP
   ---------------------------------------------------------------------- */
.back-to-top {
	position: fixed;
	right: 26px;
	bottom: 26px;
	z-index: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: var(--bm-radius);
	background: var(--bm-navy);
	color: #fff;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px);
	box-shadow: var(--bm-shadow-lg);
	transition: all var(--bm-transition);
}

.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--bm-gold); }

/* -------------------------------------------------------------------------
   25. ACCESSIBILITY
   ---------------------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: 12px;
	z-index: 10000;
	padding: 14px 22px;
	background: var(--bm-gold);
	color: #fff;
	font-size: .84rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: var(--bm-radius);
	transition: top 200ms ease;
}

.skip-link:focus { top: 12px; color: #fff; }

.reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 780ms var(--bm-ease), transform 780ms var(--bm-ease);
}

.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Graceful degradation: when no script is driving the animation, nothing may
   stay hidden. The class below is added by theme.js the moment it takes over,
   so this rule only applies while JS is absent or has not initialised. */
html:not(.bm-reveal-ready) .reveal,
html:not(.bm-reveal-ready) .bmspr-slide [data-animate] {
	opacity: 1;
	transform: none;
}

@media print {
	.reveal,
	.bmspr-slide [data-animate] { opacity: 1 !important; transform: none !important; }
}

.reveal--d1 { transition-delay: 90ms; }
.reveal--d2 { transition-delay: 180ms; }
.reveal--d3 { transition-delay: 270ms; }
.reveal--d4 { transition-delay: 360ms; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.reveal,
	.bmspr-slide [data-animate] { opacity: 1 !important; transform: none !important; }
}

/* -------------------------------------------------------------------------
   26. WORDPRESS CORE CLASSES
   ---------------------------------------------------------------------- */
.alignleft {
	float: left;
	margin: 6px 32px 22px 0;
}

.alignright {
	float: right;
	margin: 6px 0 22px 32px;
}

.aligncenter {
	clear: both;
	display: block;
	margin: 22px auto;
}

.wp-caption { max-width: 100%; }
.wp-caption-text,
.wp-block-image figcaption,
figcaption {
	margin-top: 10px;
	color: var(--bm-muted);
	font-size: .85rem;
	font-style: italic;
	line-height: 1.6;
}

.sticky .bm-entry__title::after {
	content: "Featured";
	display: inline-block;
	margin-left: 10px;
	padding: 3px 9px;
	border-radius: 3px;
	background: var(--bm-gold);
	color: #fff;
	font-size: .62rem;
	font-family: var(--bm-font-body);
	font-weight: 800;
	letter-spacing: .1em;
	vertical-align: middle;
}

.gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-block: 1.8em; }
.gallery-item img { border-radius: var(--bm-radius); }

.wp-block-quote,
.wp-block-pullquote {
	border-left: 4px solid var(--bm-gold);
	background: var(--bm-mist);
	padding: 28px 32px;
	border-radius: 0 var(--bm-radius) var(--bm-radius) 0;
}

.wp-block-table table { width: 100%; border-collapse: collapse; }
.wp-block-table td, .wp-block-table th { padding: 13px 18px; border: 1px solid var(--bm-line); }

.wp-block-button__link { border-radius: var(--bm-radius); }

.wp-block-separator { border: 0; border-top: 1px solid var(--bm-line); }

.screen-reader-shortcut:focus,
.screen-reader-text:focus {
	display: block;
	clip: auto !important;
	width: auto;
	height: auto;
	padding: 15px 24px;
	background: var(--bm-gold);
	color: #fff;
	font-size: .84rem;
	text-decoration: none;
	z-index: 100000;
}

/* -------------------------------------------------------------------------
   27. ELEMENTOR COMPATIBILITY
   ---------------------------------------------------------------------- */

/* Full-width / no-padding Elementor sections sit flush with the theme header */
.elementor-page .site-content,
.elementor-template-full-width .site-content { padding: 0; }

.bm-elementor-canvas .site-content { padding: 0; max-width: none; }

/* Elementor section defaults inherit the brand palette */
.elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--bm-container); }

.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4 { font-family: var(--bm-font-head); }

.elementor-widget-text-editor p { color: inherit; }

/* Buttons authored in Elementor inherit the theme button language */
.elementor-button {
	font-family: var(--bm-font-body);
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: .79rem;
	border-radius: var(--bm-radius);
}

.elementor-button-content-wrapper { gap: 9px; }

/* Elementor icon boxes / image boxes */
.elementor-widget-icon-box .elementor-icon-box-title { font-family: var(--bm-font-head); text-transform: uppercase; }

/* Keep the built-in Elementor page title bar hidden unless used */
.elementor-location-header .site-header,
.elementor-location-footer .site-footer { margin: 0; }

/* Reset container padding when Elementor builds the header/footer */
.elementor-location-header .elementor-section,
.elementor-location-footer .elementor-section { margin-block: 0; }

/* Elementor editor: keep brand colours visible in the widget panel preview */
body.elementor-editor-active .bm-container { max-width: none; }

/* Elementor canvas template: neutralise theme wrappers */
.elementor-template-canvas .site-header,
.elementor-template-canvas .site-footer,
.elementor-template-canvas .bm-page-banner { display: none !important; }

/* Widget area used by Elementor Pro "Theme Builder" fallbacks */
.bm-elementor-area {
	padding-block: var(--bm-section-y);
}

.bm-elementor-area--flush { padding-block: 0; }

/* Content authored in Elementor inside a theme page template ---------- */
.bm-elementor-content {
	padding-block: var(--bm-section-y);
}

.bm-elementor-content > .elementor,
.bm-elementor-content > .elementor-section { margin-inline: auto; }

/* Elementor full-width page template ---------------------------------- */
.bm-elementor-fullwidth { display: block; width: 100%; }

/* Push the footer down on short pages (sticky-footer behaviour) -------- */
.site { display: flex; flex-direction: column; min-height: 100vh; }
.site-content { flex: 1 1 auto; }

/* -------------------------------------------------------------------------
   28. RESPONSIVE
   ---------------------------------------------------------------------- */
@media (max-width: 1240px) {
	:root { --bm-gutter: 20px; }
	.site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
	.site-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 1080px) {
	:root { --bm-header-h: 74px; }
	.bm-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bm-grid--sidebar,
	.bm-grid--sidebar-left { grid-template-columns: minmax(0, 1fr); gap: 46px; }
	.bm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bm-contact-strip { grid-template-columns: minmax(0, 1fr); }
	.bmspr-slider__arrows { display: none; }
	.bmspr-slide__inner { padding-block: 96px 122px; }
}

@media (max-width: 980px) {
	:root { --bm-section-y: 66px; }

	.menu-toggle { display: inline-flex; }
	.site-header__aside .header-nav-toggle { display: none; }
	.header-search.is-open { width: 190px; }

	.main-navigation {
		position: fixed;
		inset: 0 0 0 auto;
		width: min(400px, 88vw);
		max-width: 100%;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		padding: 26px 0 40px;
		background: var(--bm-white);
		box-shadow: -16px 0 46px rgba(2, 31, 73, .22);
		transform: translateX(105%);
		transition: transform 340ms var(--bm-ease);
		overflow-y: auto;
		z-index: 960;
	}

	body.nav-open .main-navigation { transform: translateX(0); }

	.nav-overlay {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 950;
		background: rgba(1, 15, 35, .58);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--bm-transition), visibility var(--bm-transition);
	}
	body.nav-open .nav-overlay { opacity: 1; visibility: visible; }

	.main-navigation .primary-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
	}

	.main-navigation .primary-menu > li { border-bottom: 1px solid var(--bm-line); }

	.main-navigation .primary-menu > li > a {
		padding: 16px 26px;
		font-size: .88rem;
		letter-spacing: .08em;
	}

	.main-navigation .primary-menu > li > a::after { display: none; }

	.main-navigation .sub-menu {
		position: static;
		min-width: 0;
		width: 100%;
		padding: 0;
		border-top: 0;
		border-radius: 0;
		box-shadow: none;
		background: var(--bm-mist);
		opacity: 1;
		visibility: visible;
		transform: none;
		display: none;
	}

	.main-navigation li.is-open > .sub-menu { display: block; }
	.main-navigation .sub-menu .menu-item-has-children:hover > .sub-menu { display: none; }
	.main-navigation .sub-menu .menu-item-has-children.is-open > .sub-menu { display: block; }

	.main-navigation .sub-menu a {
		padding: 13px 26px 13px 40px;
		font-size: .89rem;
		border-left: 0;
		border-bottom: 1px solid rgba(221, 228, 236, .7);
	}

	.main-navigation .sub-menu a:hover { padding-left: 44px; }

	.main-navigation .sub-menu .sub-menu a { padding-left: 58px; }
	.main-navigation .sub-menu .sub-menu .sub-menu a { padding-left: 74px; }

	.main-navigation .sub-menu .sub-menu {
		position: static;
		left: auto;
		border-radius: 0;
		background: var(--bm-mist-2);
	}

	/* Mobile CTA inside drawer */
	.main-navigation .menu-item--cta { border-bottom: 0; padding: 22px 26px 0; }
	.main-navigation .menu-item--cta > a {
		justify-content: center;
		background: var(--bm-gold);
		color: #fff;
		border-radius: var(--bm-radius);
		padding: 15px 26px;
	}
	.main-navigation .menu-item--cta > a:hover { background: var(--bm-gold-dark); color: #fff; }

	.bm-page-banner { padding: 58px 0 50px; }
}

@media (max-width: 860px) {
	.bm-grid--2,
	.bm-grid--3 { grid-template-columns: minmax(0, 1fr); }
	.bm-flex { flex-direction: column; align-items: stretch; }
	.bmspr-contact-form { grid-template-columns: minmax(0, 1fr); }
	.bm-form-card { padding: 32px 26px 36px; }
	.bm-post-nav { grid-template-columns: minmax(0, 1fr); }
	.post-navigation .nav-links { grid-template-columns: minmax(0, 1fr); }
	.bm-cta__inner { flex-direction: column; align-items: flex-start; }
	.bm-timeline { padding-left: 34px; }
	.bm-timeline__item::before { left: -34px; width: 15px; height: 15px; }
	.gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bm-figure-split { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (max-width: 680px) {
	body { font-size: 16px; }
	:root { --bm-section-y: 56px; --bm-gutter: 18px; }

	.bm-topbar__inner { justify-content: center; }
	.bm-topbar__list--secondary { display: none; }

	.bm-stats { grid-template-columns: minmax(0, 1fr); }
	.bm-grid--4 { grid-template-columns: minmax(0, 1fr); }

	.site-footer__grid { grid-template-columns: minmax(0, 1fr); }

	.bmspr-slide__inner { padding-block: 78px 108px; }
	.bmspr-slide__actions { flex-direction: column; align-items: stretch; }
	.bmspr-slide__actions .bm-btn { width: 100%; }
	.bmspr-slider__footer { padding-bottom: 22px; }
	.bmspr-slider__dot { width: 30px; }
	.bmspr-slider__dot.is-active { width: 52px; }
	.bmspr-slide__logo-card { padding: 32px 26px; }

	.bm-form-card { padding: 26px 20px 30px; }
	.bm-card__body { padding: 24px 22px 26px; }
	.bm-service-card { padding: 32px 26px 30px; }
	.bm-resource { flex-direction: column; align-items: flex-start; gap: 16px; }
	.bm-callout { flex-direction: column; gap: 16px; padding: 26px 24px; }
	.bm-table th, .bm-table td { padding: 13px 16px; }
	.alignleft, .alignright { float: none; margin: 22px auto; }
	.site-footer__main { padding-block: 56px 46px; }
	.back-to-top { right: 16px; bottom: 16px; }
}

/* -------------------------------------------------------------------------
   29. PRINT
   ---------------------------------------------------------------------- */
@media print {
	.bm-topbar,
	.site-header,
	.bmspr-slider__arrows,
	.bmspr-slider__footer,
	.site-footer,
	.back-to-top,
	.menu-toggle { display: none !important; }

	body { color: #000; font-size: 11pt; }
	a { color: #000; text-decoration: underline; }
	.bm-page-banner { padding: 20px 0; background: none; color: #000; }
	.bm-page-banner h1 { color: #000; text-shadow: none; }
	.bm-page-banner__bg, .bm-page-banner__scrim { display: none; }
	.bm-section { padding-block: 18pt; }
	.bm-card, .bm-service-card, .bm-table-wrap { box-shadow: none; border-color: #999; break-inside: avoid; }
}
