/* ==========================================================================
   BMA — design system
   ========================================================================== */

:root {
	--bma-blue: #00b1f9;
	--bma-blue-soft: #e6f7ff;
	--bma-dark-blue: #00266c;
	--bma-navy: #001a4d;
	--bma-accent: #00b1f9;
	--bma-accent-light: #8fd9fb;
	--bma-accent-text: #006fa8;
	--bma-white: #ffffff;
	--bma-light-grey: #f4f7fb;
	--bma-text: #0e1b33;
	--bma-muted: #52607a;
	--bma-border: #e2e8f2;
	--bma-ok: #0f8a5f;
	--bma-warn: #b7791f;

	--grad-blue: linear-gradient(135deg, var(--bma-dark-blue) 0%, #0a4a9c 55%, #0096dc 100%);
	--grad-accent: linear-gradient(135deg, #6fd0fb 0%, var(--bma-accent) 55%, #0088cc 100%);

	--font-head: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

	--radius-sm: 10px;
	--radius: 18px;
	--radius-lg: 28px;
	--shadow-sm: 0 1px 2px rgba(7, 27, 71, .06), 0 2px 8px rgba(7, 27, 71, .05);
	--shadow: 0 10px 30px -12px rgba(7, 27, 71, .18), 0 2px 6px rgba(7, 27, 71, .05);
	--shadow-lg: 0 30px 60px -24px rgba(7, 27, 71, .28), 0 8px 18px -8px rgba(7, 27, 71, .1);
	--ease: cubic-bezier(.2, .7, .2, 1);

	--container: 1240px;
	--gutter: clamp(16px, 4vw, 32px);
	--section: clamp(64px, 9vw, 120px);
	--header-h: 76px;
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
	margin: 0;
	background: var(--bma-white);
	color: var(--bma-text);
	font: 400 1rem/1.65 var(--font-body);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--bma-dark-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--bma-blue); }
h1, h2, h3, h4 { font-family: var(--font-head); color: var(--bma-navy); line-height: 1.15; letter-spacing: -.02em; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; }
:focus-visible { outline: 3px solid var(--bma-blue); outline-offset: 3px; border-radius: 4px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 1000; background: var(--bma-navy); color: #fff; padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { top: 12px; color: #fff; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: 860px; }
.container--article { max-width: 820px; }
.center { text-align: center; }
.icon { width: 1.25em; height: 1.25em; flex: none; }

.text-gradient {
	background: linear-gradient(100deg, var(--bma-dark-blue) 10%, var(--bma-blue) 60%, var(--bma-accent) 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---------- Buttons ---------- */

.btn {
	--mx: 0px; --my: 0px;
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 48px; padding: .75em 1.35em; border-radius: 999px; border: 1px solid transparent;
	font: 600 .95rem/1.2 var(--font-body); text-decoration: none; cursor: pointer; white-space: nowrap;
	transform: translate(var(--mx), var(--my));
	transition: transform .35s var(--ease), box-shadow .3s var(--ease), background-color .3s, color .3s, border-color .3s;
}
.btn .icon { width: 1.05em; height: 1.05em; transition: transform .3s var(--ease); }
.btn:hover .icon { transform: translateX(3px); }
.btn--primary { background: var(--grad-blue); color: #fff; box-shadow: 0 10px 24px -10px rgba(11, 43, 111, .6); }
.btn--primary:hover { color: #fff; box-shadow: 0 16px 32px -12px rgba(11, 43, 111, .7); }
.btn--accent { background: var(--grad-accent); color: var(--bma-navy); box-shadow: 0 10px 24px -12px rgba(0, 110, 170, .65); }
.btn--accent:hover { color: var(--bma-navy); box-shadow: 0 16px 30px -12px rgba(0, 110, 170, .75); }
.btn--ghost { background: rgba(255, 255, 255, .7); color: var(--bma-dark-blue); border-color: var(--bma-border); backdrop-filter: blur(6px); }
.btn--ghost:hover { border-color: var(--bma-dark-blue); color: var(--bma-dark-blue); }
.btn--ghost-light { color: #fff; border-color: rgba(255, 255, 255, .35); }
.btn--ghost-light:hover { color: #fff; border-color: #fff; background: rgba(255, 255, 255, .08); }
.btn--sm { min-height: 40px; padding: .5em 1em; font-size: .88rem; }
.btn--lg { min-height: 54px; padding: .9em 1.7em; }

/* ---------- Header / navigation ---------- */

.site-header {
	position: sticky; top: 0; z-index: 100; height: var(--header-h);
	background: rgba(255, 255, 255, .82); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s, height .3s;
}
.site-header.is-scrolled { border-color: var(--bma-border); box-shadow: 0 6px 24px -18px rgba(7, 27, 71, .35); }
.site-header__inner { height: 100%; display: flex; align-items: center; gap: 24px; }
.site-header__brand { display: flex; align-items: center; text-decoration: none; flex: none; }
.site-header__actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }

.logo img { height: 48px; width: auto; }
.logo--footer img { height: 56px; }
.logo-placeholder {
	display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 14px;
	border: 1.5px dashed var(--bma-blue); border-radius: 10px; color: var(--bma-dark-blue);
	font: 800 .8rem/1 var(--font-head); letter-spacing: .08em; background: var(--bma-blue-soft);
}

.nav { margin-left: auto; }
.nav__list { list-style: none; display: flex; align-items: center; gap: 4px; }
.nav__list > li { position: relative; }
.nav__list > li > a, .nav__toggle {
	display: inline-flex; align-items: center; gap: 4px; padding: 10px 12px; border-radius: 10px;
	background: none; border: 0; color: var(--bma-text); font-weight: 500; font-size: .95rem; text-decoration: none; cursor: pointer;
}
.nav__list > li > a:hover, .nav__toggle:hover, .nav__list > li > a[aria-current="page"] { color: var(--bma-dark-blue); background: var(--bma-light-grey); }
.nav__toggle .icon { width: 16px; height: 16px; transition: transform .25s; }
.nav__toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }

.nav__panel {
	position: absolute; top: calc(100% + 10px); left: 50%; width: 400px; padding: 10px;
	background: #fff; border: 1px solid var(--bma-border); border-radius: var(--radius); box-shadow: var(--shadow-lg);
	opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .2s, transform .25s var(--ease), visibility .2s;
}
.nav__panel::before { content: ""; position: absolute; inset: -12px 0 auto; height: 12px; }
.has-sub.is-open .nav__panel, .has-sub:focus-within .nav__panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
@media (hover: hover) and (min-width: 1081px) { .has-sub:hover .nav__panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); } }
.nav__panel ul { list-style: none; }
.nav__panel li a { display: flex; gap: 12px; padding: 10px; border-radius: 12px; text-decoration: none; color: var(--bma-text); }
.nav__panel li a:hover { background: var(--bma-light-grey); }
.nav__panel strong { display: block; font-family: var(--font-head); color: var(--bma-navy); font-size: .95rem; }
.nav__panel small { display: block; color: var(--bma-muted); font-size: .8rem; line-height: 1.4; }
.nav__icon { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--bma-blue-soft); color: var(--bma-dark-blue); }
.nav__panel--accent .nav__icon { background: #e8eef9; color: var(--bma-accent-text); }
.nav__all { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; padding: 12px; border-top: 1px solid var(--bma-border); font-weight: 600; font-size: .88rem; text-decoration: none; }
.nav__all .icon { width: 16px; }
.nav__mobile-contact { display: none; }
.menu-button { display: none; }

@media (max-width: 1080px) {
	.site-header__actions .btn { display: none; }
	.menu-button {
		display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px;
		border: 1px solid var(--bma-border); background: #fff; color: var(--bma-navy); cursor: pointer;
	}
	.menu-button__close, .nav-open .menu-button__open { display: none; }
	.nav-open .menu-button__close { display: block; }
	.nav {
		position: fixed; inset: var(--header-h) 0 0; margin: 0; padding: 16px var(--gutter) 120px; overflow-y: auto;
		background: #fff; opacity: 0; visibility: hidden; transform: translateY(-8px);
		transition: opacity .25s, transform .3s var(--ease), visibility .25s;
	}
	.nav-open .nav { opacity: 1; visibility: visible; transform: none; }
	.nav-open { overflow: hidden; }
	/* backdrop-filter would make the header the containing block for the fixed menu */
	.nav-open .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; }
	.nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.nav__list > li { border-bottom: 1px solid var(--bma-border); }
	.nav__list > li > a, .nav__toggle { width: 100%; justify-content: space-between; padding: 16px 4px; font-size: 1.1rem; font-family: var(--font-head); font-weight: 700; color: var(--bma-navy); }
	.nav__list > li > a:hover, .nav__toggle:hover { background: none; }
	.nav__panel { position: static; width: auto; padding: 0 0 12px; border: 0; box-shadow: none; transform: none; opacity: 1; visibility: visible; display: none; }
	.has-sub.is-open .nav__panel { display: block; transform: none; }
	.has-sub:focus-within .nav__panel { transform: none; }
	.nav__mobile-contact { display: grid; gap: 10px; margin-top: 24px; }
	.nav__mobile-contact a { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 12px; background: var(--bma-light-grey); text-decoration: none; font-weight: 600; }
}

/* ---------- Reveal / motion ---------- */

.js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* ---------- Sections ---------- */

.section { position: relative; padding-block: var(--section); }
.section--tight { padding-block: clamp(32px, 5vw, 56px); }
.section--tint { background: var(--bma-light-grey); }
.section--dark { background: radial-gradient(120% 120% at 0% 0%, #12409a 0%, var(--bma-navy) 55%, #050f2c 100%); color: #cdd8ee; }
.section--dark .section-title, .section--dark h3 { color: #fff; }
.section--dark .section-lead { color: #b8c6e2; }
.section--dark .eyebrow { color: var(--bma-accent-light); }
.section--solutions { background: linear-gradient(180deg, #fff 0%, #f7f9fd 40%, #fff 100%); }

.section-head { max-width: 720px; margin-bottom: clamp(32px, 5vw, 56px); }
.section-head.is-center { margin-inline: auto; text-align: center; }
.section-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(32px, 5vw, 56px); }
.section-head-row .section-head { margin-bottom: 0; }
.eyebrow { margin: 0 0 14px; color: var(--bma-accent-text); font: 700 .78rem/1.2 var(--font-body); letter-spacing: .16em; text-transform: uppercase; }
.eyebrow--dot { display: inline-flex; align-items: center; gap: 10px; }
.eyebrow--dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--grad-accent); box-shadow: 0 0 0 4px rgba(0, 177, 249, .18); }
.section-title { font-size: clamp(1.9rem, 3.6vw, 2.9rem); font-weight: 800; }
.section-lead { font-size: clamp(1.02rem, 1.4vw, 1.15rem); color: var(--bma-muted); margin: 0; }

.grid { display: grid; gap: clamp(16px, 2vw, 24px); }
.grid--services { display: flex; flex-wrap: wrap; justify-content: center; }
.grid--services > * { flex: 1 1 280px; max-width: calc((100% - 2 * clamp(16px, 2vw, 24px)) / 3); }
@media (min-width: 1200px) { .grid--core > * { flex-basis: 240px; max-width: calc((100% - 3 * clamp(16px, 2vw, 24px)) / 4); } }
@media (max-width: 900px) { .grid--services > * { max-width: calc((100% - clamp(16px, 2vw, 24px)) / 2); } }
@media (max-width: 600px) { .grid--services > * { max-width: 100%; } }
.grid--features { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.grid--related { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.grid--related-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.grid--industries { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.grid--why { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.grid--posts { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.grid--offices { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }

.split { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.split--reverse .split__copy { order: 2; }
@media (max-width: 900px) {
	.split { grid-template-columns: 1fr; }
	.split--reverse .split__copy { order: 0; }
}

/* ---------- Hero ---------- */

.hero { position: relative; padding: clamp(28px, 5vw, 64px) 0 clamp(48px, 6vw, 80px); overflow: hidden; }
.hero__bg {
	position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(45% 55% at 78% 45%, rgba(0, 177, 249, .12), transparent 70%),
		radial-gradient(35% 40% at 92% 10%, rgba(0, 177, 249, .12), transparent 70%),
		linear-gradient(180deg, #fbfcfe 0%, #fff 100%);
}
.hero__bg::after {
	content: ""; position: absolute; inset: 0;
	background-image: linear-gradient(rgba(11, 43, 111, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(11, 43, 111, .045) 1px, transparent 1px);
	background-size: 56px 56px;
	mask-image: radial-gradient(70% 70% at 70% 40%, #000 20%, transparent 75%);
	-webkit-mask-image: radial-gradient(70% 70% at 70% 40%, #000 20%, transparent 75%);
}
.hero__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.hero__title { font-size: clamp(2.2rem, 4.6vw, 3.6rem); font-weight: 800; letter-spacing: -.035em; margin-bottom: 18px; }
.hero__title .text-gradient { display: block; }
.hero__slogan { font: 700 clamp(1.1rem, 1.8vw, 1.35rem)/1.3 var(--font-head); color: var(--bma-dark-blue); margin-bottom: 12px; }
.hero__text { font-size: clamp(1.02rem, 1.4vw, 1.15rem); color: var(--bma-muted); max-width: 540px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 32px; }
.hero__actions.is-center { justify-content: center; }
.hero__index { display: grid; gap: 10px; padding-top: 22px; border-top: 1px solid var(--bma-border); max-width: 560px; }
.hero__index p { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; }
.hero__index span { width: 78px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--bma-muted); }
.hero__index a { padding: 4px 10px; border-radius: 999px; background: var(--bma-blue-soft); color: var(--bma-dark-blue); font-size: .84rem; font-weight: 600; text-decoration: none; transition: background .2s; }
.hero__index a:hover { background: #cdeefe; }
.hero__index a.is-accent { background: #e8eef9; color: var(--bma-accent-text); }
.hero__index a.is-accent:hover { background: #d6e0f3; }

/* Universe */
.universe { --sun: 26.9cqw; container-type: inline-size; position: relative; width: 100%; max-width: 760px; aspect-ratio: 5 / 4; margin-inline: auto; }
.universe__canvas, .universe__labels, .universe__static { position: absolute; inset: 0; }
.universe__canvas canvas { width: 100% !important; height: 100% !important; display: block; }
.universe__labels { pointer-events: none; z-index: 3; }
.universe__static { transition: opacity .25s ease-out; }
.universe.is-3d .universe__static { opacity: 0; visibility: hidden; transition: opacity .25s ease-out, visibility 0s .25s; }
.universe__canvas, .universe__labels { opacity: 0; transition: opacity .7s var(--ease) .2s; }
.universe.is-3d .universe__canvas, .universe.is-3d .universe__labels { opacity: 1; }
.universe__static img { width: 100%; height: 100%; object-fit: contain; }
.orbit { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 1px solid rgba(0, 38, 108, .16); transform: translate(-50%, -50%); }
.orbit--sun { width: 32%; height: 27%; border-color: rgba(0, 177, 249, .3); }
.orbit--inner { width: 53.8%; height: 45%; }
.orbit--outer { width: 82.6%; height: 69%; border-color: rgba(0, 177, 249, .45); border-style: dashed; }
.u-node, .u-label {
	position: absolute; display: inline-flex; align-items: center; gap: 6px;
	padding: 5px 11px 5px 6px; border-radius: 999px; background: rgba(255, 255, 255, .92); backdrop-filter: blur(6px);
	border: 1px solid var(--bma-border); box-shadow: 0 4px 14px -8px rgba(0, 38, 108, .35); white-space: nowrap;
	font: 700 .74rem/1 var(--font-head); color: var(--bma-navy); letter-spacing: .01em;
}
.u-node { transform: translate(-50%, -50%); }
.u-node i, .u-label i { width: 9px; height: 9px; border-radius: 50%; background: var(--bma-dark-blue); box-shadow: 0 0 0 3px rgba(0, 38, 108, .12); }
.u-node--accent i, .u-label--accent i { background: var(--bma-blue); box-shadow: 0 0 0 3px rgba(0, 177, 249, .18); }
.u-label { left: 0; top: 0; will-change: transform, opacity; }
.u-label--accent, .u-node--accent { color: var(--bma-accent-text); }

.universe__core { position: absolute; left: 50%; top: 50%; z-index: 2; transform: translate(-50%, -50%); pointer-events: none; }
.universe__sun {
	display: grid; place-items: center; width: var(--sun); aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #fff 0%, #fff 55%, #f1f8fe 100%);
	box-shadow: 0 0 0 1px rgba(0, 177, 249, .18), 0 0 0 14px rgba(0, 177, 249, .06), 0 24px 50px -18px rgba(0, 38, 108, .35);
}
.logo--core { display: block; width: 78%; }
.logo--core img { width: 100%; height: auto; max-width: none; }
.logo--core .logo-placeholder { height: 44px; font-size: .8rem; white-space: nowrap; }

@media (max-width: 980px) {
	.hero__grid { grid-template-columns: 1fr; }
	.universe { max-width: 640px; order: 2; }
}
@media (max-width: 560px) {
	.universe { max-width: 100%; aspect-ratio: 1 / .95; }
	.u-node, .u-label { font-size: .62rem; padding: 3px 7px 3px 4px; gap: 4px; }
	.u-label--accent, .u-node--accent { display: none; }
	.u-node i, .u-label i { width: 7px; height: 7px; }
	.hero__index span { width: 100%; }
}

/* ---------- Clients marquee ---------- */

.clients { border-block: 1px solid var(--bma-border); background: #fff; overflow: hidden; }
.clients__head { text-align: center; margin-bottom: 22px; }
.clients__title { margin: 0; font: 700 .8rem/1.3 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--bma-muted); }
.clients__rail { display: grid; gap: 14px; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee { display: flex; width: max-content; animation: marquee var(--duration, 40s) linear infinite; }
.marquee--reverse { animation-direction: reverse; }
.clients__rail:hover .marquee, .clients__rail:focus-within .marquee { animation-play-state: paused; }
.marquee__group { list-style: none; display: flex; align-items: center; gap: 14px; padding-right: 14px; }
.marquee__item { flex: none; }
@keyframes marquee { to { transform: translateX(-50%); } }
.client-logo { display: grid; place-items: center; width: 170px; height: 84px; padding: 14px 20px; border-radius: 14px; background: #fff; border: 1px solid var(--bma-border); transition: border-color .3s, box-shadow .3s; }
.client-logo img { max-height: 52px; width: auto; object-fit: contain; filter: grayscale(1) opacity(.7); transition: filter .3s; }
.client-logo:hover { border-color: rgba(0, 177, 249, .45); box-shadow: var(--shadow-sm); }
.client-logo:hover img { filter: none; }
.client-name { display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 22px; border-radius: 999px; background: var(--bma-light-grey); border: 1px solid var(--bma-border); font: 700 .95rem var(--font-head); color: var(--bma-dark-blue); white-space: nowrap; }
.client-name--sector::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--grad-accent); }
@media (prefers-reduced-motion: reduce) {
	.marquee { animation: none; width: auto; }
	.marquee__group { flex-wrap: wrap; justify-content: center; padding: 0; }
	.marquee__group[aria-hidden] { display: none; }
	.clients__rail { mask-image: none; -webkit-mask-image: none; }
}

/* ---------- Team ---------- */

.team-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.team-stat { padding: 20px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); text-align: center; }
.team-stat strong { display: block; font: 800 2rem/1 var(--font-head); color: var(--bma-dark-blue); }
.team-stat span { font-size: .84rem; color: var(--bma-muted); }
@media (max-width: 640px) { .team-stats { grid-template-columns: repeat(2, 1fr); } }

.team__leaders { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 330px)); justify-content: center; gap: clamp(16px, 2vw, 24px); }
.team__experts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 240px)); justify-content: center; gap: clamp(12px, 2vw, 20px); }
.team--full .team__leaders, .team--full .team__experts { justify-content: start; }
.team__subhead { margin: clamp(40px, 5vw, 56px) 0 20px; font-size: 1.25rem; }
.person { --rx: 0deg; --ry: 0deg; position: relative; display: flex; flex-direction: column; border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--bma-border); overflow: hidden; box-shadow: var(--shadow-sm); transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)); transition: box-shadow .35s var(--ease), transform .5s var(--ease), opacity .8s var(--ease); }
.js .person[data-reveal] { transform: perspective(900px) translateY(24px); }
.js .person[data-reveal].is-in { transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)); }
.person:hover { box-shadow: var(--shadow-lg); }
.person__photo { position: relative; aspect-ratio: 4 / 5; display: grid; place-items: center; overflow: hidden; background: linear-gradient(180deg, #eef4fb 0%, #e3ecf7 100%); }
/* Soft edge where the photo meets the name block, so any crop looks intentional. */
.person__photo::after { content: ""; position: absolute; inset: auto 0 0; height: 12%; background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .4)); pointer-events: none; }
.person--no-photo .person__photo { background: radial-gradient(80% 70% at 50% 15%, #f4f8fd 0%, #e6eef8 60%, #dce7f5 100%); }
.person--no-photo .person__photo::after { display: none; }
.person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .6s var(--ease); }
.person:hover .person__photo img { transform: scale(1.04); }
.person__initials { display: grid; place-items: center; width: 4.6rem; height: 4.6rem; border-radius: 50%; background: #fff; box-shadow: 0 6px 18px -8px rgba(0, 38, 108, .35); font: 800 1.5rem/1 var(--font-head); color: var(--bma-dark-blue); letter-spacing: .04em; }
.person__body { padding: 18px 20px 22px; }
.person__role { margin: 0 0 4px; font: 700 .72rem var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--bma-accent-text); }
.person__name { margin: 0; font-size: 1.2rem; }
.person__bio { margin: 8px 0 0; font-size: .9rem; color: var(--bma-muted); }
.person--sm .person__photo { aspect-ratio: 1; }
.person--sm .person__initials { width: 3.4rem; height: 3.4rem; font-size: 1.15rem; }
.person--sm .person__body { padding: 14px 16px 16px; }
.person--sm .person__name { font-size: 1rem; }
.person--sm .person__role { min-height: 2.1em; }
.team__associates { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.team__associates li { display: inline-flex; align-items: center; gap: 10px; padding: 6px 16px 6px 6px; border-radius: 999px; background: #fff; border: 1px solid var(--bma-border); font-weight: 600; font-size: .92rem; color: var(--bma-navy); }
.team__dot { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bma-blue-soft); color: var(--bma-dark-blue); font: 800 .72rem var(--font-head); }
.team__dot--photo { width: 36px; height: 36px; object-fit: cover; object-position: top center; border: 1px solid var(--bma-border); }
.team__more { margin-top: 36px; }
@media (max-width: 900px) { .team__experts { grid-template-columns: repeat(2, 1fr); } .person--lg .person__photo { aspect-ratio: 1; } }
@media (max-width: 680px) { .team__leaders { grid-template-columns: 1fr; } .person--lg { flex-direction: row; } .person--lg .person__photo { width: 36%; aspect-ratio: auto; min-height: 160px; flex: none; } .person--lg .person__initials { font-size: 2rem; } }

/* ---------- Cards ---------- */

.card {
	--rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 0%;
	position: relative; display: flex; flex-direction: column; padding: 26px; border-radius: var(--radius);
	background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%); border: 1px solid var(--bma-border); box-shadow: var(--shadow-sm);
	transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d;
	transition: box-shadow .35s var(--ease), border-color .35s, transform .5s var(--ease), opacity .8s var(--ease);
	isolation: isolate; overflow: hidden;
}
.js .card[data-reveal] { transform: perspective(900px) translateY(24px); }
.js .card[data-reveal].is-in { transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)); }
.card:hover { box-shadow: var(--shadow-lg); border-color: rgba(0, 177, 249, .5); }
.card::after { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--grad-accent); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.card:hover::after { transform: scaleX(1); }
.card__glow { position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .35s; background: radial-gradient(420px circle at var(--gx) var(--gy), rgba(0, 177, 249, .1), transparent 45%); }
.card:hover .card__glow { opacity: 1; }
.card__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.card__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--grad-blue); color: #fff; box-shadow: 0 10px 20px -10px rgba(11, 43, 111, .6); transition: transform .45s var(--ease); }
.card:hover .card__icon { transform: translateZ(30px) translateY(-3px) rotate(-4deg); }
.card__num { font: 800 .85rem/1 var(--font-head); color: #b7c2d6; }
.card__title { font-size: 1.3rem; margin-bottom: 8px; }
.card__title a { color: inherit; text-decoration: none; }
.card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__text { color: var(--bma-muted); font-size: .94rem; }
.card__list { list-style: none; display: grid; gap: 6px; margin: 4px 0 22px; }
.card__list li { display: flex; gap: 8px; font-size: .88rem; color: var(--bma-text); }
.card__list .icon { width: 16px; color: var(--bma-blue); margin-top: 4px; }
.card__link { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .9rem; color: var(--bma-dark-blue); }
.card__link .icon { width: 16px; transition: transform .3s var(--ease); }
.card:hover .card__link .icon { transform: translateX(4px); }
.card--solution .card__icon { background: var(--grad-accent); color: var(--bma-navy); }
.card--compact .card__list { display: none; }

/* ---------- Solutions ---------- */

.solutions { display: grid; gap: clamp(28px, 4vw, 40px); }
.solution {
	display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(24px, 5vw, 64px);
	padding: clamp(24px, 4vw, 48px); border-radius: var(--radius-lg); background: #fff;
	border: 1px solid var(--bma-border); box-shadow: var(--shadow); position: relative; overflow: hidden;
}
.solution::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--grad-accent); }
.solution.is-flipped .solution__visual { order: 2; }
.solution__num { font: 700 .75rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--bma-accent-text); margin-bottom: 12px; }
.solution__title { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.solution__lead { color: var(--bma-muted); font-size: 1.05rem; }
.chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 26px; }
.chips li { padding: 6px 12px; border-radius: 999px; background: var(--bma-light-grey); border: 1px solid var(--bma-border); font-size: .82rem; font-weight: 600; color: var(--bma-dark-blue); }
@media (max-width: 860px) {
	.solution { grid-template-columns: 1fr; }
	.solution.is-flipped .solution__visual { order: 0; }
}

/* ---------- Visual components ---------- */

.viz { position: relative; width: 100%; }
.viz svg { width: 100%; height: auto; overflow: visible; }
.viz__note { position: absolute; right: 0; bottom: 0; margin: 0; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bma-muted); }

/* Wheel */
.viz--wheel { max-width: 460px; margin-inline: auto; }
.wheel__track { fill: none; stroke: rgba(0, 177, 249, .35); stroke-dasharray: 2 6; }
.wheel__seg { fill: #eef3fa; stroke: #fff; stroke-width: 2; transition: fill .6s var(--ease), filter .6s; transition-delay: calc(var(--i) * 140ms + 200ms); }
.is-in .wheel__seg:nth-of-type(odd) { fill: var(--bma-dark-blue); }
.is-in .wheel__seg:nth-of-type(even) { fill: var(--bma-blue); }
.wheel__label { font: 700 14px var(--font-head); fill: #9aa6bb; transition: fill .6s; transition-delay: calc(var(--i) * 140ms + 200ms); }
.is-in .wheel__label { fill: var(--bma-navy); }
.wheel__core { fill: #fff; stroke: url(#wheelAccent); stroke-width: 3; filter: drop-shadow(0 12px 22px rgba(7, 27, 71, .15)); }
.wheel__title { font: 800 17px var(--font-head); fill: var(--bma-navy); letter-spacing: .06em; }
.wheel__pulse { fill: none; stroke: var(--bma-accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 220; stroke-dashoffset: 220; }
.is-in .wheel__pulse { animation: draw 1.6s 1.2s var(--ease) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }

/* Network */
.viz--network { max-width: 480px; margin-inline: auto; padding-bottom: 18px; }
.net__line { stroke: var(--bma-blue); stroke-width: 1.5; stroke-dasharray: 4 6; opacity: .5; }
.is-in .net__line { animation: dash 12s linear infinite; }
.net__ring { stroke: var(--bma-border); stroke-width: 1; }
@keyframes dash { to { stroke-dashoffset: -200; } }
.net__node circle { fill: #fff; stroke: var(--bma-dark-blue); stroke-width: 2; transform-box: fill-box; transform-origin: center; transform: scale(.4); opacity: 0; transition: transform .6s var(--ease), opacity .6s; transition-delay: calc(var(--i) * 110ms + 150ms); }
.is-in .net__node circle { transform: none; opacity: 1; }
.net__node.is-flag circle { stroke: var(--bma-accent); fill: #e6f6fe; }
.net__node text { font: 700 12px var(--font-head); fill: var(--bma-navy); }
.net__hub { fill: var(--bma-dark-blue); filter: drop-shadow(0 14px 26px rgba(11, 43, 111, .35)); }
.net__hub-text { font: 800 11px var(--font-head); fill: #fff; letter-spacing: .08em; }

/* Steps */
.viz--steps { list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; position: relative; padding-top: 8px; }
.viz--steps::before { content: ""; position: absolute; left: 8%; right: 8%; top: 36px; height: 2px; background: var(--bma-border); }
.viz--steps::after { content: ""; position: absolute; left: 8%; right: 8%; top: 36px; height: 2px; background: var(--grad-accent); transform: scaleX(0); transform-origin: left; transition: transform 1.6s var(--ease) .2s; }
.viz--steps.is-in::after { transform: scaleX(1); }
.viz--steps li { position: relative; z-index: 1; display: grid; justify-items: center; gap: 12px; text-align: center; }
.viz-steps__dot { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #fff; border: 2px solid var(--bma-border); font: 800 .85rem var(--font-head); color: var(--bma-muted); transition: all .5s var(--ease); transition-delay: calc(var(--i) * 280ms + 200ms); }
.viz--steps.is-in .viz-steps__dot { background: var(--bma-dark-blue); border-color: var(--bma-dark-blue); color: #fff; box-shadow: 0 10px 20px -10px rgba(11, 43, 111, .7); }
.viz--steps.is-in li:last-child .viz-steps__dot { background: var(--grad-accent); border-color: var(--bma-accent); color: var(--bma-navy); }
.viz-steps__label { font: 700 .85rem/1.25 var(--font-head); color: var(--bma-navy); }
@media (max-width: 520px) {
	.viz--steps { grid-auto-flow: row; gap: 14px; }
	.viz--steps::before, .viz--steps::after { left: 27px; right: auto; top: 28px; bottom: 28px; width: 2px; height: auto; }
	.viz--steps::after { transform: scaleY(0); transform-origin: top; }
	.viz--steps.is-in::after { transform: scaleY(1); }
	.viz--steps li { grid-template-columns: 56px 1fr; justify-items: start; align-items: center; text-align: left; }
}

/* Journey */
.viz--journey { display: flex; align-items: flex-end; gap: 12px; height: 320px; padding: 20px; }
.journey__block { flex: 1; height: calc(30% + var(--i) * 22%); border-radius: 14px 14px 6px 6px; background: linear-gradient(180deg, #fff, #eef3fa); border: 1px solid var(--bma-border); box-shadow: var(--shadow); display: flex; align-items: flex-start; justify-content: center; padding-top: 14px; transform-origin: bottom; transform: scaleY(.2); opacity: 0; transition: transform .8s var(--ease), opacity .6s; transition-delay: calc(var(--i) * 180ms); }
.viz--journey.is-in .journey__block { transform: none; opacity: 1; }
.journey__block:last-child { background: var(--grad-blue); border-color: transparent; }
.journey__block span { font: 700 .8rem var(--font-head); color: var(--bma-navy); }
.journey__block:last-child span { color: #fff; }

/* Hub */
/* Radius must resolve against the container: a % inside translate() would resolve against each label's own width. */
.viz--hub { --r: 150px; --r: 34cqw; container-type: inline-size; aspect-ratio: 1; max-width: 460px; margin-inline: auto; }
.hub__ring { position: absolute; inset: 16%; border-radius: 50%; border: 1px dashed rgba(11, 43, 111, .2); }
.hub__core { position: absolute; left: 50%; top: 50%; width: 30%; aspect-ratio: 1; transform: translate(-50%, -50%); display: grid; place-items: center; border-radius: 50%; background: var(--grad-blue); color: #fff; font: 800 clamp(1.2rem, 3vw, 1.8rem) var(--font-head); box-shadow: 0 20px 40px -16px rgba(11, 43, 111, .6), 0 0 0 10px rgba(0, 177, 249, .1); }
.hub__node { position: absolute; left: 50%; top: 50%; transform: rotate(var(--a)) translate(var(--r)) rotate(calc(var(--a) * -1)); }
.hub__node span { display: block; transform: translate(-50%, -50%) scale(.6); opacity: 0; padding: 7px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow-sm); font: 700 .78rem var(--font-head); color: var(--bma-navy); white-space: nowrap; transition: transform .6s var(--ease), opacity .6s; transition-delay: calc(var(--i) * 100ms + 200ms); }
.viz--hub.is-in .hub__node span { transform: translate(-50%, -50%); opacity: 1; }

/* Document → dashboard */
.viz--doc { display: grid; grid-template-columns: 1fr auto 1.2fr; align-items: center; gap: 18px; padding: 24px; }
.doc__sheet { display: grid; gap: 10px; padding: 26px 20px; border-radius: 12px; background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow); aspect-ratio: 3/4; align-content: start; }
.doc__sheet i { height: 8px; border-radius: 4px; background: #e6ebf3; }
.doc__sheet i:nth-child(1) { width: 60%; background: var(--bma-dark-blue); }
.doc__sheet i:nth-child(3) { width: 80%; }
.doc__sheet i:nth-child(5) { width: 45%; background: var(--bma-accent-light); }
.doc__arrow { color: var(--bma-accent); }
.doc__dash { display: flex; align-items: flex-end; gap: 10px; height: 200px; padding: 20px; border-radius: 16px; background: var(--bma-navy); box-shadow: var(--shadow-lg); }
.doc__dash span { flex: 1; height: var(--h); border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, var(--bma-blue), #1760c4); transform: scaleY(0); transform-origin: bottom; transition: transform .9s var(--ease); }
.doc__dash span:last-child { background: var(--grad-accent); }
.viz--doc.is-in .doc__dash span { transform: none; }
.viz--doc.is-in .doc__dash span:nth-child(2) { transition-delay: .1s; }
.viz--doc.is-in .doc__dash span:nth-child(3) { transition-delay: .2s; }
.viz--doc.is-in .doc__dash span:nth-child(4) { transition-delay: .3s; }
.viz--doc.is-in .doc__dash span:nth-child(5) { transition-delay: .4s; }

/* Building */
.viz--building { position: relative; height: 380px; }
.bld__tower { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; flex-direction: column-reverse; gap: 6px; width: 150px; }
.bld__tower i { height: 60px; border-radius: 8px; background: linear-gradient(90deg, var(--bma-dark-blue) 0 50%, #12459e 50%); box-shadow: var(--shadow); position: relative; }
.bld__tower i::after { content: ""; position: absolute; inset: 18px 18px; background: repeating-linear-gradient(90deg, rgba(0, 177, 249, .7) 0 14px, transparent 14px 26px); border-radius: 2px; }
.bld__tower i:last-child { width: 70%; margin-inline: auto; }
.bld__doc { position: absolute; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow); font: 700 .78rem var(--font-head); color: var(--bma-navy); animation: float 6s ease-in-out infinite; animation-delay: calc(var(--i) * -1.4s); }
.bld__doc .icon { width: 16px; color: var(--bma-accent); }
.bld__doc:nth-of-type(1) { left: 4%; top: 12%; }
.bld__doc:nth-of-type(2) { right: 4%; top: 22%; }
.bld__doc:nth-of-type(3) { left: 0; top: 56%; }
.bld__doc:nth-of-type(4) { right: 0; top: 64%; }
@keyframes float { 50% { transform: translateY(-10px); } }

/* Reconciliation dashboard */
.dash { border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow-lg); padding: 18px; transform: perspective(1400px) rotateY(-6deg) rotateX(3deg); transition: transform .8s var(--ease), opacity .8s; }
.dash:hover { transform: perspective(1400px) rotateY(0) rotateX(0); }
.dash__bar { display: flex; align-items: center; gap: 6px; margin-bottom: 14px; }
.dash__bar span { width: 10px; height: 10px; border-radius: 50%; background: var(--bma-border); }
.dash__bar b { margin-left: 8px; font: 700 .78rem var(--font-head); color: var(--bma-navy); }
.dash__bar em { margin-left: auto; font-style: normal; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bma-muted); }
.dash__kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; }
.kpi { padding: 12px; border-radius: 12px; background: var(--bma-light-grey); display: grid; gap: 8px; }
.kpi__label { font-size: .78rem; font-weight: 600; color: var(--bma-muted); }
.kpi__bar { height: 6px; border-radius: 3px; background: #e2e8f2; overflow: hidden; }
.kpi__bar i { display: block; height: 100%; width: 70%; background: var(--grad-blue); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease) .3s; }
.kpi.is-up .kpi__bar i { width: 82%; }
.kpi__trend { font: 800 1rem var(--font-head); color: var(--bma-ok); }
.dash.is-in .kpi__bar i { transform: none; }
.dash__chart { padding: 12px; border-radius: 12px; border: 1px solid var(--bma-border); }
.chart__grid { stroke: var(--bma-border); stroke-dasharray: 3 4; }
.chart__bar { fill: var(--bma-dark-blue); transform-box: fill-box; transform-origin: bottom; transform: scaleY(0); transition: transform .8s var(--ease); transition-delay: calc(var(--i) * 80ms + 200ms); }
.chart__bar--alt { fill: #9ddcfb; }
.dash.is-in .chart__bar { transform: none; }
.chart__axis { font: 600 10px var(--font-body); fill: var(--bma-muted); }
.chart__line { fill: none; stroke: var(--bma-accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 600; stroke-dashoffset: 600; }
.dash.is-in .chart__line { animation: draw 1.8s .9s var(--ease) forwards; }
.chart__legend { display: flex; gap: 14px; margin-top: 8px; font-size: .74rem; color: var(--bma-muted); }
.chart__legend span::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.chart__legend .is-rev::before { background: var(--bma-dark-blue); }
.chart__legend .is-exp::before { background: #9ddcfb; }
.chart__legend .is-profit::before { background: var(--bma-accent); height: 3px; vertical-align: 3px; }
.dash__mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.mini { display: grid; gap: 6px; font-size: .76rem; font-weight: 600; color: var(--bma-muted); }
.mini__track { height: 6px; border-radius: 3px; background: var(--bma-light-grey); overflow: hidden; }
.mini__track i { display: block; height: 100%; width: var(--w); background: var(--grad-accent); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease); transition-delay: calc(var(--i) * 150ms + 600ms); }
.dash.is-in .mini__track i { transform: none; }
@media (max-width: 900px) { .dash { transform: none; } }

/* Business Health View */
.health { display: grid; grid-template-columns: 200px 1fr; gap: 24px; align-items: center; padding: clamp(20px, 3vw, 32px); border-radius: var(--radius-lg); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(10px); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6); }
.health__gauge { position: relative; }
.gauge__track { fill: none; stroke: rgba(255, 255, 255, .1); stroke-width: 14; }
.gauge__value { fill: none; stroke: var(--bma-accent-light); stroke-width: 14; stroke-linecap: round; stroke-dasharray: 503; stroke-dashoffset: 503; transform: rotate(-90deg); transform-origin: center; transition: stroke-dashoffset 1.8s var(--ease) .3s; }
.health.is-in .gauge__value { stroke-dashoffset: 110; }
.gauge__text { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.gauge__text strong { color: #fff; font: 800 1rem var(--font-head); }
.gauge__text span { font-size: .78rem; color: #9fb0d2; }
.health__list { list-style: none; display: grid; gap: 8px; }
.health__row { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); opacity: 0; transform: translateX(12px); transition: opacity .5s, transform .6s var(--ease); transition-delay: calc(var(--i) * 90ms + 200ms); }
.health.is-in .health__row, .no-js .health__row { opacity: 1; transform: none; }
.health__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: rgba(0, 177, 249, .15); color: #8fd9fb; }
.health__icon .icon { width: 18px; }
.health__name { font: 700 .95rem var(--font-head); color: #fff; }
.status { padding: 4px 10px; border-radius: 999px; font-size: .74rem; font-weight: 700; white-space: nowrap; }
.status--ok { background: rgba(38, 194, 129, .16); color: #6fe0ae; }
.status--warn { background: rgba(143, 217, 251, .18); color: var(--bma-accent-light); }
.status--info { background: rgba(0, 177, 249, .16); color: #8fd9fb; }
.disclaimer-note { grid-column: 1 / -1; margin: 4px 0 0; font-size: .78rem; color: #9fb0d2; }
@media (max-width: 600px) { .health { grid-template-columns: 1fr; } .health__gauge { max-width: 160px; margin-inline: auto; } }

/* Map */
.map { position: relative; aspect-ratio: 1; max-width: 520px; margin-inline: auto; border-radius: var(--radius-lg); background: radial-gradient(60% 60% at 55% 50%, #eef6fc, #fff 70%); border: 1px solid var(--bma-border); overflow: hidden; }
.map__grid { position: absolute; inset: 0; background-image: radial-gradient(rgba(11, 43, 111, .18) 1.3px, transparent 1.3px); background-size: 16px 16px; mask-image: radial-gradient(50% 55% at 52% 52%, #000 45%, transparent 80%); -webkit-mask-image: radial-gradient(50% 55% at 52% 52%, #000 45%, transparent 80%); }
.map__links { position: absolute; inset: 0; width: 100%; height: 100%; }
.map__links path { fill: none; stroke: var(--bma-accent); stroke-width: 2; stroke-dasharray: 100; stroke-dashoffset: 100; vector-effect: non-scaling-stroke; }
.map.is-in .map__links path { animation: draw 2s .6s var(--ease) forwards; }
.map__pin { position: absolute; transform: translate(-50%, -50%); display: grid; justify-items: center; gap: 6px; }
.map__pin i { width: 16px; height: 16px; border-radius: 50%; background: var(--bma-blue); box-shadow: 0 0 0 6px rgba(0, 177, 249, .18); position: relative; }
.map__pin i::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--bma-blue); opacity: 0; }
.map.is-in .map__pin i::after { animation: ping 2.6s ease-out infinite; animation-delay: calc(var(--i) * .6s); }
.map__pin.is-hq i { background: var(--bma-dark-blue); width: 20px; height: 20px; }
.map__pin b { padding: 4px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow-sm); font: 700 .78rem var(--font-head); color: var(--bma-navy); }
@keyframes ping { 0% { opacity: .8; transform: scale(.6); } 100% { opacity: 0; transform: scale(2.2); } }

/* ---------- Content blocks ---------- */

.ticks { list-style: none; display: grid; gap: 14px; margin: 0 0 28px; }
.ticks li { display: flex; gap: 12px; }
.ticks .icon { flex: none; width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--bma-blue-soft); color: var(--bma-dark-blue); }
.ticks strong { color: var(--bma-navy); }

.mini-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 28px; }
.mini-card { padding: 18px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); }
.mini-card .icon { color: var(--bma-accent); margin-bottom: 10px; }
.mini-card h3 { font-size: 1rem; margin-bottom: 4px; }
.mini-card p { margin: 0; font-size: .88rem; color: var(--bma-muted); }
@media (max-width: 480px) { .mini-cards { grid-template-columns: 1fr; } }

.journey-line { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; position: relative; margin-bottom: 40px; }
.journey-line::before { content: ""; position: absolute; top: 28px; left: 12%; right: 12%; height: 2px; background: linear-gradient(90deg, var(--bma-dark-blue), var(--bma-blue), var(--bma-accent)); transform: scaleX(0); transform-origin: left; transition: transform 1.6s var(--ease) .2s; }
.journey-line.is-in::before, .no-js .journey-line::before { transform: scaleX(1); }
.journey-line li { position: relative; text-align: center; }
.journey-line__dot { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 16px; border-radius: 50%; background: #fff; border: 2px solid var(--bma-dark-blue); font: 800 .9rem var(--font-head); color: var(--bma-dark-blue); position: relative; z-index: 1; }
.journey-line li:last-child .journey-line__dot { border-color: var(--bma-accent); background: var(--grad-accent); color: var(--bma-navy); }
.journey-line h3 { font-size: 1.2rem; margin-bottom: 6px; }
.journey-line p { color: var(--bma-muted); font-size: .92rem; margin: 0; }
@media (max-width: 760px) {
	.journey-line { grid-template-columns: 1fr; gap: 20px; }
	.journey-line::before { left: 27px; right: auto; top: 20px; bottom: 20px; width: 2px; height: auto; transform: scaleY(0); transform-origin: top; }
	.journey-line.is-in::before { transform: scaleY(1); }
	.journey-line li { display: grid; grid-template-columns: 56px 1fr; column-gap: 16px; text-align: left; }
	.journey-line__dot { margin: 0; grid-row: span 2; }
}

.industry { display: flex; gap: 16px; padding: 22px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); transition: border-color .3s, box-shadow .3s, transform .3s var(--ease); }
.industry:hover { border-color: rgba(0, 177, 249, .4); box-shadow: var(--shadow); }
.industry__icon { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--bma-blue-soft); color: var(--bma-dark-blue); }
.industry h2, .industry h3 { font-size: 1.05rem; margin-bottom: 4px; }
.industry p { margin: 0; font-size: .9rem; color: var(--bma-muted); }

.why { padding: 26px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); position: relative; }
.why__num { font: 800 2rem/1 var(--font-head); background: var(--grad-accent); -webkit-background-clip: text; background-clip: text; color: transparent; display: block; margin-bottom: 14px; }
.why h3 { font-size: 1.1rem; margin-bottom: 6px; }
.why p { margin: 0; color: var(--bma-muted); font-size: .94rem; }

.locations { list-style: none; display: grid; gap: 10px; }
.locations li { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--bma-border); }
.locations .icon { color: var(--bma-dark-blue); }
.locations strong { display: block; font-family: var(--font-head); color: var(--bma-navy); }
.locations small { color: var(--bma-muted); }
.locations .is-virtual { background: var(--bma-blue-soft); border-color: transparent; }

.process { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: p; position: relative; }
.process::before { content: ""; position: absolute; top: 34px; left: 10%; right: 10%; height: 2px; background: repeating-linear-gradient(90deg, var(--bma-accent) 0 8px, transparent 8px 16px); transform: scaleX(0); transform-origin: left; transition: transform 1.6s var(--ease) .2s; }
.process.is-in::before { transform: scaleX(1); }
.process li { position: relative; padding: 24px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); }
.process__num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--grad-blue); color: #fff; font: 800 .9rem var(--font-head); margin-bottom: 16px; }
.process h3 { font-size: 1.15rem; margin-bottom: 6px; }
.process p { margin: 0; color: var(--bma-muted); font-size: .92rem; }
@media (max-width: 860px) { .process { grid-template-columns: repeat(2, 1fr); } .process::before { display: none; } }
@media (max-width: 480px) { .process { grid-template-columns: 1fr; } }

/* ---------- Answer block (AEO) ---------- */

.answer { position: relative; padding: 22px 24px 22px 28px; border-radius: var(--radius); background: linear-gradient(135deg, #f5fbfe, #fff); border: 1px solid #cdeefe; margin: 0 0 28px; }
.answer::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 4px; border-radius: 0 4px 4px 0; background: var(--bma-blue); }
.answer__q { margin: 0 0 6px; font: 800 .8rem var(--font-body); text-transform: uppercase; letter-spacing: .12em; color: var(--bma-dark-blue); }
.answer__a { margin: 0; font-size: 1.05rem; color: var(--bma-text); }

/* ---------- FAQ ---------- */

.faq__list { display: grid; gap: 10px; }
.faq__item { border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); transition: border-color .3s, box-shadow .3s; }
.faq__item[open] { border-color: rgba(0, 177, 249, .35); box-shadow: var(--shadow); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none; font: 700 1.02rem/1.35 var(--font-head); color: var(--bma-navy); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary .icon { flex: none; transition: transform .3s var(--ease); color: var(--bma-blue); }
.faq__item[open] summary .icon { transform: rotate(180deg); }
.faq__answer { padding: 0 22px 18px; color: var(--bma-muted); }
.faq__answer p { margin: 0; }

/* ---------- CTA band ---------- */

.cta-band { padding-block: clamp(40px, 6vw, 72px); }
.cta-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; padding: clamp(28px, 5vw, 56px); border-radius: var(--radius-lg); color: #c8d4ec; background: radial-gradient(80% 140% at 100% 0%, rgba(0, 177, 249, .28), transparent 50%), var(--grad-blue); box-shadow: var(--shadow-lg); position: relative; overflow: hidden; }
.cta-band__inner > div:first-child { max-width: 620px; }
.cta-band__title { color: #fff; font-size: clamp(1.6rem, 3vw, 2.3rem); }
.cta-band__inner p { margin: 0; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Page hero ---------- */

.page-hero { position: relative; padding: clamp(24px, 4vw, 40px) 0 clamp(40px, 6vw, 72px); overflow: hidden; }
.page-hero__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
.page-hero--media .page-hero__grid { grid-template-columns: 1.05fr 1fr; }
.page-hero__title { font-size: clamp(2.1rem, 4.6vw, 3.5rem); font-weight: 800; letter-spacing: -.03em; max-width: 900px; }
.page-hero__lead { font-size: clamp(1.02rem, 1.5vw, 1.2rem); color: var(--bma-muted); max-width: 680px; }
.page-hero .hero__actions { margin-bottom: 0; }
@media (max-width: 900px) { .page-hero--media .page-hero__grid { grid-template-columns: 1fr; } }

.breadcrumbs { margin-bottom: clamp(20px, 3vw, 36px); }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: .85rem; color: var(--bma-muted); }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 8px; color: #b7c2d6; }
.breadcrumbs a { color: var(--bma-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--bma-dark-blue); text-decoration: underline; }
.breadcrumbs [aria-current] { color: var(--bma-navy); font-weight: 600; }

/* ---------- Media slots ---------- */

.media { position: relative; margin: 0; aspect-ratio: var(--ratio, 4/3); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); background: var(--bma-light-grey); }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media-placeholder {
	position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 20px; text-align: center;
	background: radial-gradient(60% 60% at 70% 30%, rgba(0, 177, 249, .14), transparent 70%), radial-gradient(40% 40% at 20% 90%, rgba(0, 177, 249, .16), transparent 70%), linear-gradient(135deg, #f7f9fd, #eaf0f8);
	border: 1.5px dashed rgba(11, 43, 111, .22); border-radius: inherit;
}
.media-placeholder__tag { padding: 3px 10px; border-radius: 999px; background: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bma-accent-text); }
.media-placeholder__label { font: 800 clamp(.9rem, 1.6vw, 1.1rem)/1.3 var(--font-head); color: var(--bma-dark-blue); }
.media-placeholder__file { font: 500 .75rem ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--bma-muted); }

.notice-placeholder { padding: 24px; border-radius: var(--radius); border: 1.5px dashed var(--bma-accent); background: #f0f9ff; color: var(--bma-text); }

/* ---------- Offering pages ---------- */

.feature { padding: 22px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); transition: box-shadow .3s, border-color .3s; }
.feature:hover { box-shadow: var(--shadow); border-color: rgba(0, 177, 249, .35); }
.feature__icon { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 14px; border-radius: 10px; background: var(--bma-blue-soft); color: var(--bma-dark-blue); }
.feature__icon .icon { width: 18px; }
.feature h3 { font-size: 1.05rem; margin-bottom: 6px; }
.feature p { margin: 0; font-size: .92rem; color: var(--bma-muted); }
.numbered { counter-reset: n; list-style: none; display: grid; gap: 12px; }
.numbered li { counter-increment: n; display: flex; align-items: center; gap: 14px; font-weight: 600; color: var(--bma-navy); }
.numbered li::before { content: counter(n, decimal-leading-zero); display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 12px; background: #fff; border: 1px solid var(--bma-border); font: 800 .8rem var(--font-head); color: var(--bma-accent-text); }

.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.fact { padding: 22px; border-radius: var(--radius); background: var(--bma-light-grey); }
.fact__label { display: block; margin-bottom: 8px; font: 800 .75rem var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--bma-accent-text); }
.fact p { margin: 0; font-size: .94rem; }

/* ---------- Departmental issues ---------- */

.section--dept { background: linear-gradient(180deg, #fff 0%, #f3f8fe 100%); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.issues__title { margin: clamp(40px, 5vw, 64px) 0 18px; font-size: 1.25rem; }
.issues { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.issue { padding: 18px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); border-top: 3px solid var(--bma-dark-blue); transition: box-shadow .3s, transform .3s var(--ease), border-color .3s; }
.issue:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-top-color: var(--bma-blue); }
.issue h4 { margin: 10px 0 6px; font-size: 1rem; }
.issue p { margin: 0; font-size: .86rem; color: var(--bma-muted); }
@media (max-width: 1000px) { .issues { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .issues { grid-template-columns: 1fr; } }

/* ---------- Compliance calendar ---------- */

.cal-home__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 40px); align-items: start; }
@media (max-width: 900px) { .cal-home__grid { grid-template-columns: 1fr; } }
.cal-home__label { margin: 0 0 12px; font: 700 .78rem var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--bma-accent-text); }
.cal-card { padding: clamp(16px, 2.5vw, 24px); border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow); }
.cal-card__month { margin: 0 0 14px; font: 800 1.2rem var(--font-head); color: var(--bma-navy); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.cal-grid__dow { text-align: center; font-size: .72rem; font-weight: 700; color: var(--bma-muted); text-transform: uppercase; letter-spacing: .06em; padding-bottom: 4px; }
.cal-grid__cell { position: relative; display: grid; place-items: center; align-content: center; aspect-ratio: 1; border-radius: 10px; background: var(--bma-light-grey); color: var(--bma-text); text-decoration: none; font-size: .9rem; transition: transform .2s var(--ease), box-shadow .2s; }
.cal-grid__cell.is-blank { background: transparent; }
.cal-grid__cell b { font-weight: 600; }
.cal-grid__cell i { font-style: normal; font-size: .58rem; font-weight: 700; line-height: 1; color: var(--bma-accent-text); }
.cal-grid__cell.has-due { background: var(--bma-blue-soft); border: 1px solid rgba(0, 177, 249, .35); }
.cal-grid__cell.has-due b { color: var(--bma-dark-blue); font-weight: 800; }
.cal-grid__cell.has-due:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); color: var(--bma-dark-blue); }
.cal-grid__cell.is-past { opacity: .55; }
.cal-grid__cell.is-today { background: var(--grad-blue); color: #fff; box-shadow: 0 8px 18px -8px rgba(0, 38, 108, .6); }
.cal-grid__cell.is-today b, .cal-grid__cell.is-today i { color: #fff; }
@media (max-width: 480px) { .cal-grid { gap: 3px; } .cal-grid__cell { border-radius: 6px; font-size: .78rem; } .cal-grid__cell i { display: none; } }
.cal-legend { list-style: none; display: flex; gap: 16px; margin-top: 14px; font-size: .8rem; color: var(--bma-muted); }
.cal-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 4px; margin-right: 6px; vertical-align: -1px; }
.cal-legend .is-due { background: var(--bma-blue-soft); border: 1px solid rgba(0, 177, 249, .5); }
.cal-legend .is-today { background: var(--grad-blue); }

.cal-image { position: relative; display: block; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--bma-border); box-shadow: var(--shadow); background: #fff; }
.cal-image img { width: 100%; height: auto; transition: transform .6s var(--ease); }
.cal-image:hover img { transform: scale(1.02); }
.cal-image__zoom { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: rgba(0, 26, 77, .85); color: #fff; font-size: .8rem; font-weight: 600; }
.cal-image__zoom .icon { width: 15px; }

.due-list { list-style: none; display: grid; gap: 8px; }
.due { display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 14px; background: #fff; border: 1px solid var(--bma-border); scroll-margin-top: calc(var(--header-h) + 24px); transition: border-color .3s, box-shadow .3s, opacity .3s; }
.due__date { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 12px; background: var(--bma-light-grey); line-height: 1; }
.due__date b { font: 800 1.25rem var(--font-head); color: var(--bma-navy); }
.due__date span { font-size: .68rem; font-weight: 700; text-transform: uppercase; color: var(--bma-muted); }
.due__title { margin: 0; font: 700 .96rem/1.3 var(--font-head); color: var(--bma-navy); }
.due__detail { margin: 2px 0 0; font-size: .84rem; color: var(--bma-muted); }
.due__meta { display: grid; justify-items: end; gap: 6px; }
.due__tag { display: inline-block; padding: 3px 8px; border-radius: 6px; font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: var(--bma-light-grey); color: var(--bma-dark-blue); }
.tag--gst { background: #e6f7ff; color: #005f8f; }
.tag--tds { background: #e8eef9; color: #00266c; }
.tag--income-tax { background: #eef0ff; color: #2b3a9a; }
.tag--roc { background: #e9f5f3; color: #0f6b5c; }
.tag--payroll { background: #f1f3f7; color: #45536b; }
.due__status { font-size: .74rem; font-weight: 700; color: var(--bma-muted); white-space: nowrap; }
.due.is-past { opacity: .5; }
.due.is-today { border-color: var(--bma-dark-blue); box-shadow: 0 0 0 3px rgba(0, 38, 108, .1); }
.due.is-today .due__date { background: var(--grad-blue); }
.due.is-today .due__date b, .due.is-today .due__date span { color: #fff; }
.due.is-today .due__status { color: var(--bma-dark-blue); }
.due.is-soon { border-color: rgba(0, 177, 249, .55); }
.due.is-soon .due__date { background: var(--bma-blue-soft); }
.due.is-soon .due__status { color: var(--bma-accent-text); }
.due.is-next { box-shadow: var(--shadow); }
.due.is-hidden { display: none; }
.due:target { border-color: var(--bma-blue); box-shadow: 0 0 0 4px rgba(0, 177, 249, .2); }
@media (max-width: 520px) { .due { grid-template-columns: 48px 1fr; } .due__date { width: 48px; height: 48px; } .due__meta { grid-column: 2; justify-items: start; grid-auto-flow: column; justify-content: start; } }
.cal-note { margin: 14px 0 0; font-size: .8rem; color: var(--bma-muted); }

.cal-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.cal-page { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 48px); align-items: start; }
.cal-page__side { display: grid; gap: 20px; position: sticky; top: calc(var(--header-h) + 16px); }
.cal-page__heading { font-size: 1.3rem; margin-bottom: 14px; }
@media (max-width: 900px) { .cal-page { grid-template-columns: 1fr; } .cal-page__side { position: static; } }

/* ---------- Instagram ---------- */

.ig { overflow: hidden; }
.ig__admin-note { margin: -24px 0 20px; padding: 10px 14px; border-radius: 10px; background: #f0f9ff; border: 1px dashed var(--bma-blue); font-size: .85rem; }
.ig__rail { mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); padding: 10px 0 20px; }
.ig__rail:hover .marquee, .ig__rail:focus-within .marquee { animation-play-state: paused; }
.ig-card { position: relative; display: block; width: clamp(200px, 22vw, 280px); aspect-ratio: 1; border-radius: 20px; overflow: hidden; background: var(--bma-light-grey); box-shadow: var(--shadow); transform: rotate(var(--tilt, 0deg)); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.marquee__item:nth-child(odd) .ig-card { --tilt: -1.5deg; }
.marquee__item:nth-child(even) .ig-card { --tilt: 1.5deg; transform: rotate(var(--tilt)) translateY(14px); }
.ig-card:hover, .ig-card:focus-visible { transform: rotate(0) translateY(-8px) scale(1.03); box-shadow: var(--shadow-lg); z-index: 2; }
.ig-card img { width: 100%; height: 100%; object-fit: cover; }
.ig-card__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding: 16px; background: linear-gradient(180deg, transparent 35%, rgba(0, 26, 77, .88)); color: #fff; opacity: 0; transition: opacity .35s; }
.ig-card:hover .ig-card__overlay, .ig-card:focus-visible .ig-card__overlay { opacity: 1; }
.ig-card__caption { font-size: .84rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.ig-card__date { font-size: .72rem; opacity: .8; }
.ig-card__badge { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(0, 26, 77, .7); color: #fff; font-size: .7rem; }
.ig-card--placeholder { display: grid; place-items: center; background: radial-gradient(70% 70% at 30% 20%, rgba(0, 177, 249, .25), transparent 60%), var(--grad-blue); border: 1.5px dashed rgba(255, 255, 255, .5); }
.ig-card__ph { display: grid; justify-items: center; gap: 10px; color: #fff; font-size: .78rem; text-align: center; }
.ig-card__ph .icon { width: 36px; height: 36px; }
@media (prefers-reduced-motion: reduce) { .ig-card, .marquee__item:nth-child(even) .ig-card { transform: none; } }

/* ---------- Page meta, offices, local reference ---------- */

.page-meta { margin: -12px 0 0; font-size: .86rem; color: var(--bma-muted); }
.page-meta a { font-weight: 600; }
.glance { padding-top: clamp(32px, 5vw, 56px); padding-bottom: 0; }
.glance .answer { margin: 0; }
.loc-solutions { margin-top: clamp(16px, 2vw, 24px); }

.office-card { padding: clamp(24px, 3vw, 36px); border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--bma-border); box-shadow: var(--shadow-lg); }
.office-card__city { margin: 8px 0 10px; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.office-card__address { font-style: normal; color: var(--bma-muted); margin-bottom: 20px; line-height: 1.6; }
.office-card__list { list-style: none; display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--bma-border); }
.office-card__list li { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.office-card__list .icon { color: var(--bma-blue); }
.office--link { display: block; text-decoration: none; color: inherit; transition: border-color .3s, box-shadow .3s; }
.office--link:hover { border-color: rgba(0, 177, 249, .45); box-shadow: var(--shadow); color: inherit; }
.office__city { margin: 6px 0 8px; font-size: 1.3rem; }
.office__city a { color: inherit; text-decoration: none; }
.office__city a:hover { color: var(--bma-dark-blue); text-decoration: underline; }

.ref-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--bma-border); border-radius: var(--radius); overflow: hidden; font-size: .95rem; }
.ref-table th, .ref-table td { padding: 16px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--bma-border); }
.ref-table tr:last-child th, .ref-table tr:last-child td { border-bottom: 0; }
.ref-table th { width: 38%; font: 700 .82rem var(--font-body); letter-spacing: .04em; color: var(--bma-navy); background: var(--bma-light-grey); }
.ref-table strong { font-size: 1.1rem; color: var(--bma-dark-blue); }
@media (max-width: 560px) { .ref-table th, .ref-table td { display: block; width: auto; } .ref-table th { border-bottom: 0; padding-bottom: 4px; } }

/* ---------- Forms / contact ---------- */

.panel { padding: clamp(22px, 4vw, 40px); border-radius: var(--radius-lg); background: rgba(255, 255, 255, .92); border: 1px solid var(--bma-border); box-shadow: var(--shadow-lg); backdrop-filter: blur(10px); }
.panel__title { font-size: 1.4rem; margin-bottom: 20px; }
.section--contact { background: linear-gradient(180deg, #fff, var(--bma-light-grey)); }
.contact-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
@media (max-width: 900px) { .contact-split { grid-template-columns: 1fr; } }
.contact-list { list-style: none; display: grid; gap: 14px; }
.contact-list li { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.contact-list .icon { color: var(--bma-accent); }

.contact-page { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.contact-page__visual { margin: 28px 0; max-width: 420px; }
.contact-cards { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.contact-cards li { display: flex; gap: 12px; padding: 14px; border-radius: 14px; background: #fff; border: 1px solid var(--bma-border); font-weight: 600; font-size: .92rem; }
.contact-cards small { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--bma-muted); }
.contact-cards__icon { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--bma-blue-soft); color: var(--bma-dark-blue); }
@media (max-width: 900px) { .contact-page { grid-template-columns: 1fr; } .contact-page__visual { display: none; } }
@media (max-width: 480px) { .contact-cards { grid-template-columns: 1fr; } }

.office { padding: 24px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); }
.office__role { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bma-accent-text); }
.office h3 { margin: 6px 0 4px; font-size: 1.3rem; }
.office p, .office address { margin: 0 0 12px; color: var(--bma-muted); font-style: normal; font-size: .92rem; }
.office__map { font-size: .85rem; font-weight: 600; }
.office--virtual { background: var(--bma-blue-soft); border-color: transparent; }

.form__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.field { display: grid; gap: 6px; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .86rem; font-weight: 600; color: var(--bma-navy); }
.field label span { color: #b42318; }
.field input, .field select, .field textarea {
	width: 100%; min-height: 50px; padding: 12px 14px; border-radius: 12px; border: 1px solid #cfd8e6; background: #fff;
	font: 400 1rem/1.4 var(--font-body); color: var(--bma-text); transition: border-color .2s, box-shadow .2s; appearance: none;
}
.field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%230b2b6f' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; }
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--bma-blue); box-shadow: 0 0 0 4px rgba(0, 177, 249, .15); }
.field [aria-invalid="true"] { border-color: #b42318; box-shadow: 0 0 0 3px rgba(180, 35, 24, .1); }
.field__error { margin: 0; font-size: .82rem; color: #b42318; }
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__footer { display: grid; gap: 12px; margin-top: 20px; }
.form__footer .btn { justify-self: start; }
.form__footer .btn[disabled] { opacity: .7; cursor: progress; }
.form__note { margin: 0; font-size: .8rem; color: var(--bma-muted); }
.enquiry__alert { margin-bottom: 16px; padding: 12px 16px; border-radius: 12px; background: #fef3f2; border: 1px solid #fecdca; color: #912018; font-weight: 600; }
.enquiry__success { padding: 28px; border-radius: var(--radius); background: #ecfdf3; border: 1px solid #abefc6; text-align: center; }
.enquiry__success-icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 12px; border-radius: 50%; background: var(--bma-ok); color: #fff; }
.enquiry__success h3 { color: #05603a; }
.enquiry__alt { font-size: .9rem; color: var(--bma-muted); margin: 0; }
@media (max-width: 560px) { .form__grid { grid-template-columns: 1fr; } .form__footer .btn { justify-self: stretch; } }

/* ---------- Blog ---------- */

.page-hero--blog .page-hero__lead { margin-bottom: 28px; }
.blog-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; border-top: 1px solid var(--bma-border); }
.cat-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.cat-nav a { display: inline-block; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--bma-border); background: #fff; font-size: .86rem; font-weight: 600; text-decoration: none; color: var(--bma-text); transition: all .2s; }
.cat-nav a:hover { border-color: var(--bma-dark-blue); color: var(--bma-dark-blue); }
.cat-nav a[aria-current] { background: var(--bma-dark-blue); border-color: var(--bma-dark-blue); color: #fff; }
.search-form { display: flex; align-items: center; gap: 8px; padding: 5px 5px 5px 14px; border-radius: 999px; border: 1px solid var(--bma-border); background: #fff; min-width: min(100%, 320px); }
.search-form .icon { color: var(--bma-muted); width: 18px; }
.search-form input[type="search"] { flex: 1; min-width: 0; border: 0; outline: 0; font: inherit; background: transparent; padding: 6px 0; }
.search-form:focus-within { border-color: var(--bma-blue); box-shadow: 0 0 0 4px rgba(0, 177, 249, .15); }
.search-404 { max-width: 460px; margin: 32px auto 0; }

.post-card { display: flex; flex-direction: column; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); overflow: hidden; transition: box-shadow .35s var(--ease), transform .35s var(--ease), opacity .8s var(--ease); }
.post-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.post-card__media { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--bma-light-grey); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__fallback { display: grid; place-items: center; width: 100%; height: 100%; color: var(--bma-dark-blue); background: radial-gradient(60% 80% at 80% 20%, rgba(0, 177, 249, .18), transparent 60%), radial-gradient(40% 50% at 10% 100%, rgba(0, 177, 249, .2), transparent 60%), linear-gradient(135deg, #f5f8fc, #e9eff7); }
.post-card__fallback .icon { width: 44px; height: 44px; opacity: .8; }
.post-card__body { display: flex; flex-direction: column; gap: 10px; padding: 22px; flex: 1; }
.tag { align-self: flex-start; display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--bma-blue-soft); color: var(--bma-dark-blue); font-size: .74rem; font-weight: 700; text-decoration: none; letter-spacing: .02em; }
.post-card__title { font-size: 1.15rem; margin: 0; }
.post-card__title a { color: var(--bma-navy); text-decoration: none; }
.post-card__title a:hover { color: var(--bma-dark-blue); text-decoration: underline; }
.post-card__excerpt { margin: 0; color: var(--bma-muted); font-size: .92rem; }
.post-card__meta { margin-top: auto; padding-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: .8rem; color: var(--bma-muted); border-top: 1px solid var(--bma-border); }
.post-card__more { margin-left: auto; font-weight: 600; text-decoration: none; }
.featured-post { margin-bottom: clamp(32px, 5vw, 56px); }
.post-card.featured { flex-direction: row; }
.post-card.featured .post-card__media { flex: 1.2; aspect-ratio: auto; min-height: 320px; }
.post-card.featured .post-card__body { flex: 1; padding: clamp(24px, 4vw, 44px); justify-content: center; }
.post-card.featured .post-card__title { font-size: clamp(1.5rem, 2.6vw, 2rem); }
@media (max-width: 800px) { .post-card.featured { flex-direction: column; } .post-card.featured .post-card__media { min-height: 0; aspect-ratio: 16/10; } }
.list-title { font-size: 1.5rem; margin-bottom: 24px; }
.empty { text-align: center; padding: 60px 0; }

.topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.topic { display: grid; gap: 6px; padding: 20px; border-radius: var(--radius); background: #fff; border: 1px solid var(--bma-border); text-decoration: none; transition: all .3s var(--ease); }
.topic:hover { border-color: var(--bma-accent); box-shadow: var(--shadow); }
.topic__icon { color: var(--bma-dark-blue); }
.topic__name { font: 700 1rem var(--font-head); color: var(--bma-navy); }
.topic__count { font-size: .8rem; color: var(--bma-muted); }

.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pagination .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--bma-border); text-decoration: none; font-weight: 600; }
.pagination .page-numbers.current { background: var(--bma-dark-blue); color: #fff; border-color: var(--bma-dark-blue); }

/* Article */
.page-hero--article { padding-bottom: clamp(24px, 4vw, 40px); }
.article__title { font-size: clamp(2rem, 4.4vw, 3rem); font-weight: 800; letter-spacing: -.03em; margin: 16px 0; }
.article__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .88rem; color: var(--bma-muted); }
.article__image { margin: 0 0 32px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.article__services { margin: 48px 0; padding: clamp(20px, 3vw, 32px); border-radius: var(--radius-lg); background: var(--bma-light-grey); }
.article__author { display: flex; gap: 16px; align-items: center; padding: 24px 0; border-block: 1px solid var(--bma-border); }
.article__author img { border-radius: 50%; }
.article__author p { margin: 0; font-size: .92rem; color: var(--bma-muted); }
.article__author .article__author-name { font: 700 1rem var(--font-head); color: var(--bma-navy); }
.article__disclaimer { margin: 24px 0 64px; font-size: .82rem; color: var(--bma-muted); }

.prose { font-size: 1.06rem; line-height: 1.75; }
.prose h2 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); margin: 1.8em 0 .6em; }
.prose h3 { font-size: 1.3rem; margin: 1.6em 0 .5em; }
.prose ul, .prose ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.prose li { margin-bottom: .4em; }
.prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--bma-accent); color: var(--bma-navy); font-style: italic; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .95rem; display: block; overflow-x: auto; }
.prose th, .prose td { padding: 10px 12px; border: 1px solid var(--bma-border); text-align: left; }
.prose th { background: var(--bma-light-grey); font-family: var(--font-head); }
.prose img { border-radius: var(--radius); }
.prose a { color: var(--bma-dark-blue); text-decoration: underline; }
.updated { margin-top: 40px; font-size: .85rem; color: var(--bma-muted); }

/* ---------- Footer ---------- */

.site-footer { background: var(--bma-navy); color: #aab8d6; padding: clamp(56px, 7vw, 88px) 0 28px; font-size: .94rem; }
.site-footer a { color: #d8e1f2; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
.site-footer__brand .logo img { background: #fff; padding: 10px 14px; border-radius: 14px; }
.site-footer__brand .logo-placeholder { background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 255, 255, .4); }
.site-footer__tagline { margin: 18px 0 8px; font: 700 1.05rem var(--font-head); color: var(--bma-accent-light); }
.site-footer__entity { font-size: .88rem; max-width: 340px; }
.site-footer__heading { margin: 0 0 14px; font: 700 .78rem var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.site-footer__heading--gap { margin-top: 28px; }
.site-footer ul { list-style: none; display: grid; gap: 8px; }
.site-footer__contact a { display: inline-flex; align-items: center; gap: 8px; }
.site-footer__contact .icon { width: 16px; color: var(--bma-accent-light); }
.site-footer__offices { gap: 12px !important; margin-bottom: 10px; }
.site-footer__offices strong { display: block; color: #fff; font-size: .88rem; }
.site-footer__offices address { font-style: normal; font-size: .82rem; line-height: 1.5; }
.site-footer__small { font-size: .84rem; margin: 0; }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .84rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 8px 20px; }
@media (max-width: 960px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer__grid { grid-template-columns: 1fr; } }

/* ---------- Sticky mobile CTA ---------- */

.mobile-cta { display: none; }
@media (max-width: 760px) {
	.mobile-cta {
		position: fixed; left: 16px; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 90;
		display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: 999px;
		background: var(--grad-blue); color: #fff; font-weight: 700; text-decoration: none; box-shadow: 0 16px 30px -10px rgba(7, 27, 71, .55);
		transform: translateY(140%); transition: transform .4s var(--ease);
	}
	.mobile-cta.is-visible { transform: none; }
	.mobile-cta:hover { color: #fff; }
	.site-footer { padding-bottom: 96px; }
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
	.js [data-reveal] { opacity: 1; transform: none; }
	.card, .dash { transform: none !important; }
	.chart__line, .wheel__pulse, .map__links path { stroke-dashoffset: 0 !important; }
}

@media print {
	.site-header, .mobile-cta, .cta-band, .site-footer, .universe { display: none !important; }
}
