/*
Theme Name: Macsteel Global
Theme URI: https://macsteelglobal.com/
Author: Macsteel Global
Author URI: https://macsteelglobal.com/
Description: Institutional block theme for Macsteel Global Limited — a governance, verification and credibility platform. Merchant-bank aesthetic on deep navy and warm off-white, Spectral serif with Inter UI and JetBrains Mono accents.
Version: 0.10.3
Requires at least: 6.4
Tested up to: 6.5
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: macsteel-global
Tags: full-site-editing, block-theme, one-column
*/

:root {
	/* Corporate blue — aligned to the official logo */
	--navy-900: #0f2c54;
	--navy-800: #143462;
	--navy-700: #1d4582;
	--navy-500: #2f5ea6;
	--navy-300: #8ea6c9;
	--navy-100: #d9e1ef;

	--paper:    #f5f0e6;
	--paper-2:  #ede7d9;
	--paper-3:  #e4dcc8;
	--ink:      #121826;
	--ink-2:    #2a3244;
	--ink-3:    #4a5268;
	--rule:     #c9c0ab;
	--rule-soft:#e0d8c6;

	--accent:   #9c7a35;

	--ff-display: "Spectral", Georgia, serif;
	--ff-body:    "Spectral", Georgia, serif;
	--ff-ui:      "Inter", system-ui, sans-serif;
	--ff-mono:    "JetBrains Mono", ui-monospace, monospace;

	--display-weight: 500;
	--display-tracking: -0.012em;
	--caps-tracking: 0.22em;

	--maxw: 1280px;
	--maxw-wide: 1440px;
	--gutter: 40px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--ff-body);
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	-webkit-clip-path: inset(50%);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.msg-container,
.wp-block-group.msg-container > .wp-block-group__inner-container {
	max-width: var(--maxw);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.msg-container-wide,
.wp-block-group.msg-container-wide > .wp-block-group__inner-container {
	max-width: var(--maxw-wide);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.msg-caps {
	font-family: var(--ff-ui);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: var(--caps-tracking);
	color: var(--ink-3);
}

hr.msg-rule { border: 0; border-top: 1px solid var(--rule); margin: 0; }
hr.msg-rule-soft { border: 0; border-top: 1px solid var(--rule-soft); margin: 0; }

/* =============================================================
   STATUTORY STRIP + NAV
   ============================================================= */
.msg-statutory-strip {
	background: var(--navy-900);
	color: var(--navy-100);
	font-family: var(--ff-ui);
	font-size: 11.5px;
	letter-spacing: 0.04em;
}
.msg-statutory-strip-inner {
	max-width: var(--maxw-wide);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 34px;
	padding-block: 6px;
	box-sizing: border-box;
	flex-wrap: wrap;
	gap: 12px;
}
/* The right-hand registration link repeats the left block's details, so as the
   bar narrows drop the left block, then the address, rather than let a second
   row spill under the nav. */
@media (max-width: 1180px) {
	.msg-statutory-strip-inner > div:first-child { display: none; }
}
@media (max-width: 720px) {
	.msg-statutory-strip-inner > div:last-child > span { display: none; }
}
.msg-statutory-strip .dot {
	display: inline-block;
	width: 6px; height: 6px; border-radius: 50%;
	background: #7cc48b;
	margin-right: 7px;
	vertical-align: middle;
}
.msg-statutory-strip .sep {
	opacity: 0.35;
	margin: 0 10px;
}
.msg-statutory-strip a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(245, 240, 230, 0.3);
}
.msg-statutory-strip a:hover { color: var(--paper); border-bottom-color: currentColor; }

.msg-nav-wrap {
	position: sticky; top: 0; z-index: 50;
	background: var(--paper);
	border-bottom: 1px solid var(--rule);
	transition: box-shadow .25s ease;
}
.msg-nav-wrap.is-scrolled {
	box-shadow: 0 1px 0 rgba(10,26,51,0.05), 0 10px 30px -20px rgba(10,26,51,0.25);
}
.msg-nav {
	max-width: var(--maxw-wide);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 20px;
	height: 76px;
	min-width: 0;
}
/* Neutralise WP flow-layout block-gap margins so grid children align to the row centre */
.msg-nav > * { margin-block: 0; }
/* Same block-gap margin otherwise opens a paper-coloured strip between the
   header, main and footer, and detaches the mobile drawer from the nav bar. */
.wp-site-blocks > *,
.msg-main > section,
.wp-block-post-content > section,
.wp-block-post-content > .msg-breadcrumbs,
.msg-nav-wrap > .msg-mobile-menu,
.msg-nav-wrap > .msg-mobile-backdrop { margin-block-start: 0; }
.msg-brand {
	display: flex; align-items: center; gap: 14px;
}
.msg-brand-logo {
	flex: none;
	width: 48px; height: 48px;
	border-radius: 50%;
	background: url(assets/images/logo.png) center / cover no-repeat;
	box-shadow: 0 1px 2px rgba(10,26,51,0.12);
}
.msg-brand-name { line-height: 1.05; }
.msg-brand-name .title {
	font-family: var(--ff-display);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -0.012em;
	color: var(--navy-900);
	white-space: nowrap;
}

.msg-nav-wrap .wp-block-navigation {
	justify-content: center;
	font-family: var(--ff-ui);
	font-size: 13px;
	font-weight: 500;
	column-gap: 0;
	min-width: 0;
}
.msg-nav-wrap .wp-block-navigation__container {
	flex-wrap: nowrap;
	justify-content: center;
}
.msg-nav-wrap .wp-block-navigation .wp-block-navigation-item__content {
	padding: 10px 8px;
	color: var(--ink-2);
	border-radius: 2px;
	transition: color .15s ease;
	white-space: nowrap;
}
.msg-nav-wrap .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--navy-900); }
.msg-nav-wrap .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.msg-nav-wrap .wp-block-navigation .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content {
	color: var(--navy-900);
	position: relative;
}
.msg-nav-wrap .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 10px; right: 10px; bottom: 2px;
	height: 2px;
	background: var(--accent);
}

.msg-nav-cta {
	display: flex;
	align-items: center;
	gap: 8px;
}
.msg-nav-cta .msg-btn {
	padding: 9px 14px;
	font-size: 12px;
}
@media (max-width: 1280px) {
	.msg-nav-wrap .msg-brand-name .title { font-size: 18px; }
	.msg-nav-wrap .msg-brand-logo { width: 42px; height: 42px; }
}
/* Small phones (≤ 360px): shrink the lockup so brand + hamburger fit the bar. */
@media (max-width: 360px) {
	.msg-nav-wrap .msg-brand { gap: 10px; }
	.msg-nav-wrap .msg-brand-name .title { font-size: 16px; }
	.msg-nav-wrap .msg-brand-logo { width: 36px; height: 36px; }
}
@media (max-width: 1180px) {
	.msg-nav-cta .msg-btn:not(.msg-btn-primary) { display: none; }
}

/* -------- Mobile menu (hamburger + slide-down drawer) -------- */
.msg-nav { position: relative; z-index: 60; }
.msg-nav-toggle { display: none; }
.msg-mobile-menu,
.msg-mobile-backdrop { display: none; }

@media (max-width: 720px) {
	.msg-nav-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		justify-self: end;
		width: 44px;
		height: 44px;
		margin-right: -10px;
		padding: 0;
		background: transparent;
		border: 0;
		cursor: pointer;
		color: var(--navy-900);
		-webkit-tap-highlight-color: transparent;
	}
	.msg-nav-toggle-bars { position: relative; display: block; width: 22px; height: 14px; }
	.msg-nav-toggle-bars span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
		background: currentColor;
		border-radius: 2px;
		transition: transform .3s ease, opacity .2s ease, top .3s ease;
	}
	.msg-nav-toggle-bars span:nth-child(1) { top: 0; }
	.msg-nav-toggle-bars span:nth-child(2) { top: 6px; }
	.msg-nav-toggle-bars span:nth-child(3) { top: 12px; }

	.msg-mobile-menu {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--paper);
		border-bottom: 1px solid var(--rule);
		box-shadow: 0 26px 42px -30px rgba(10,26,51,0.55);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity .25s ease, transform .25s ease, visibility .25s;
		z-index: 60;
	}
	.msg-mobile-menu-inner {
		max-width: var(--maxw-wide);
		margin: 0 auto;
		padding: 6px var(--gutter) 26px;
		display: flex;
		flex-direction: column;
	}
	.msg-mobile-menu-inner a.msg-m-link {
		display: flex;
		align-items: center;
		gap: 12px;
		font-family: var(--ff-ui);
		font-size: 15px;
		font-weight: 500;
		letter-spacing: 0.01em;
		color: var(--ink-2);
		padding: 15px 2px;
		border-bottom: 1px solid var(--rule-soft);
		transition: color .15s ease;
	}
	.msg-mobile-menu-inner a.msg-m-link::before {
		content: "";
		width: 0;
		height: 1.5px;
		background: var(--accent);
		transition: width .22s ease;
	}
	.msg-mobile-menu-inner a.msg-m-link:hover { color: var(--navy-900); }
	.msg-mobile-menu-inner a.msg-m-link.is-current { color: var(--navy-900); }
	.msg-mobile-menu-inner a.msg-m-link.is-current::before { width: 16px; }
	.msg-mobile-menu-cta {
		display: flex;
		gap: 10px;
		margin-top: 22px;
	}
	.msg-mobile-menu-cta .msg-btn {
		flex: 1;
		text-align: center;
		padding: 13px 10px;
		font-size: 13px;
	}

	.msg-mobile-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(10,26,51,0.30);
		opacity: 0;
		visibility: hidden;
		transition: opacity .25s ease, visibility .25s;
		z-index: 40;
	}

	.msg-nav-wrap.is-menu-open .msg-mobile-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
	.msg-nav-wrap.is-menu-open .msg-mobile-backdrop {
		opacity: 1;
		visibility: visible;
	}
	.msg-nav-wrap.is-menu-open .msg-nav-toggle-bars span:nth-child(1) { top: 6px; transform: rotate(45deg); }
	.msg-nav-wrap.is-menu-open .msg-nav-toggle-bars span:nth-child(2) { opacity: 0; }
	.msg-nav-wrap.is-menu-open .msg-nav-toggle-bars span:nth-child(3) { top: 6px; transform: rotate(-45deg); }
}

@media (prefers-reduced-motion: reduce) {
	.msg-mobile-menu,
	.msg-mobile-backdrop,
	.msg-nav-toggle-bars span { transition: none; }
}

.msg-btn {
	font-family: var(--ff-ui);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 10px 18px;
	border: 1px solid var(--navy-900);
	background: transparent;
	color: var(--navy-900);
	border-radius: 1px;
	transition: background .15s, color .15s, border-color .15s;
	text-transform: uppercase;
	display: inline-block;
	text-decoration: none;
}
.msg-btn:hover { background: var(--navy-900); color: var(--paper); }
.msg-btn-primary {
	background: var(--navy-900);
	color: var(--paper);
}
.msg-btn-primary:hover { background: var(--navy-700); border-color: var(--navy-700); }

.wp-block-button.is-style-msg-btn .wp-block-button__link,
.wp-block-button.is-style-msg-btn-primary .wp-block-button__link {
	font-family: var(--ff-ui);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 10px 18px;
	border: 1px solid var(--navy-900);
	border-radius: 1px;
	text-transform: uppercase;
	transition: background .15s, color .15s, border-color .15s;
}
.wp-block-button.is-style-msg-btn .wp-block-button__link {
	background: transparent;
	color: var(--navy-900);
}
.wp-block-button.is-style-msg-btn .wp-block-button__link:hover {
	background: var(--navy-900); color: var(--paper);
}
.wp-block-button.is-style-msg-btn-primary .wp-block-button__link {
	background: var(--navy-900); color: var(--paper);
}
.wp-block-button.is-style-msg-btn-primary .wp-block-button__link:hover {
	background: var(--navy-700); border-color: var(--navy-700);
}

/* =============================================================
   HERO
   ============================================================= */
.msg-hero {
	position: relative;
	background: var(--navy-900);
	color: var(--paper);
	overflow: hidden;
}
.msg-hero-media {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.msg-hero-media img {
	width: 100%; height: 100%;
	object-fit: cover;
	opacity: 0.55;
	filter: saturate(0.75) contrast(1.05);
}
.msg-hero-media::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15,44,84,0.35) 0%, rgba(15,44,84,0.58) 55%, rgba(15,44,84,0.88) 100%);
}
.msg-hero-inner {
	position: relative;
	max-width: var(--maxw-wide);
	margin: 0 auto;
	padding: 96px var(--gutter) 120px;
	min-height: 640px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.msg-hero.msg-hero-page .msg-hero-inner {
	min-height: 460px;
	padding: 72px var(--gutter) 80px;
}

.msg-hero-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--ff-ui);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--navy-100);
	margin-bottom: 32px;
}
.msg-hero-eyebrow .bar {
	width: 40px; height: 1px; background: var(--accent);
	display: inline-block;
}

.msg-hero h1 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: clamp(40px, 5vw, 76px);
	line-height: 1.04;
	letter-spacing: var(--display-tracking);
	margin: 0 0 16px;
	max-width: 18ch;
	color: #fbf7ef;
}
.msg-hero.msg-hero-page h1 {
	font-size: clamp(32px, 3.9vw, 56px);
	max-width: 20ch;
}
.msg-hero h1 em {
	font-style: italic;
	color: #d8c695;
	font-weight: 400;
}

/* Demoted tagline — sits under the dominant company name */
.msg-hero-tagline {
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(19px, 1.9vw, 28px);
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: #d8c695;
	margin: 0 0 30px;
}

.msg-hero-sub {
	font-family: var(--ff-body);
	font-size: clamp(16px, 1.3vw, 19px);
	max-width: 64ch;
	color: #e8e1cf;
	line-height: 1.6;
	margin: 0 0 18px;
}
.msg-hero-sub-2 {
	color: #d3cbb9;
	margin-bottom: 44px;
}

.msg-hero-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
.msg-hero-actions .msg-btn,
.msg-hero-actions .wp-block-button.is-style-msg-btn .wp-block-button__link {
	color: var(--paper);
	border-color: var(--paper);
	background: transparent;
}
.msg-hero-actions .msg-btn:hover,
.msg-hero-actions .wp-block-button.is-style-msg-btn .wp-block-button__link:hover {
	background: var(--paper);
	color: var(--navy-900);
}
.msg-hero-actions .msg-btn-primary,
.msg-hero-actions .wp-block-button.is-style-msg-btn-primary .wp-block-button__link {
	background: var(--paper);
	color: var(--navy-900);
	border-color: var(--paper);
}
.msg-hero-actions .msg-btn-primary:hover,
.msg-hero-actions .wp-block-button.is-style-msg-btn-primary .wp-block-button__link:hover {
	background: var(--accent);
	color: var(--paper);
	border-color: var(--accent);
}

.msg-hero-meta {
	margin-top: 60px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border-top: 1px solid rgba(245,240,230,0.18);
	padding-top: 24px;
	font-family: var(--ff-ui);
}
.msg-hero-meta .cell {
	padding-right: 24px;
}
.msg-hero-meta .cell + .cell {
	padding-left: 24px;
	border-left: 1px solid rgba(245,240,230,0.14);
}
.msg-hero-meta .k {
	font-size: 10.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(245,240,230,0.55);
	margin-bottom: 8px;
}
.msg-hero-meta .v {
	font-size: 14px;
	color: #efe7d4;
	line-height: 1.3;
	white-space: pre-line;
}

/* =============================================================
   SECTIONS
   ============================================================= */
.msg-section { padding: 110px 0; }
.msg-section-tight { padding: 80px 0; }
.msg-section-dark { background: var(--navy-900); color: var(--paper); }
.msg-section-ink  { background: var(--ink); color: var(--paper); }
.msg-section-alt  { background: var(--paper-2); }

.msg-section-head {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 80px;
	margin-bottom: 64px;
	align-items: start;
}
.msg-section-head .label {
	font-family: var(--ff-ui);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-3);
	padding-top: 10px;
	border-top: 2px solid var(--navy-900);
	display: flex;
	gap: 16px;
	align-items: baseline;
}
.msg-section-head .label .num {
	/* Section numbering removed for a calmer, less fragmented reading flow */
	display: none;
}
.msg-section-dark .msg-section-head .label,
.msg-section-ink .msg-section-head .label {
	color: var(--navy-100);
	border-top-color: var(--paper);
}
.msg-section-head h2 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: clamp(26px, 2.6vw, 40px);
	line-height: 1.14;
	letter-spacing: var(--display-tracking);
	margin: 0;
	max-width: 22ch;
}
/* Smaller, sentence-style section heading (e.g. holding-company statement) */
.msg-section-head h2.msg-h2-statement {
	font-size: clamp(22px, 2.1vw, 31px);
	line-height: 1.25;
	max-width: 26ch;
}
.msg-section-head .lead {
	margin-top: 28px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--ink-2);
	max-width: 58ch;
}
.msg-section-dark .msg-section-head .lead,
.msg-section-ink .msg-section-head .lead { color: #d7dfec; }

/* =============================================================
   OVERVIEW — prose + sticky aside
   ============================================================= */
.msg-overview-grid {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 80px;
}
/* When the aside is removed, keep the prose aligned under the heading */
.msg-overview-grid > .msg-overview-body:only-child { grid-column: 2; }
/* Two-column prose aligned under the heading (right column), matching the
   home Group Overview alignment rather than spanning the full page width. */
.msg-overview-grid > .msg-overview-cols { grid-column: 2; }
.msg-overview-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
}
.msg-overview-cols > .msg-overview-body { max-width: none; }
.msg-overview-aside {
	position: sticky;
	top: 130px;
	align-self: start;
}
.msg-overview-aside .msg-caps { display: block; margin-bottom: 16px; }
.msg-overview-aside .fact {
	font-family: var(--ff-display);
	font-size: 22px;
	line-height: 1.35;
	color: var(--navy-900);
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--rule);
}
.msg-overview-aside .fact:last-child { border-bottom: 0; }
.msg-overview-aside .fact .big {
	display: block;
	font-family: var(--ff-display);
	font-size: 38px;
	line-height: 1;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--navy-900);
	margin-bottom: 8px;
}

.msg-overview-body {
	font-size: 18px;
	line-height: 1.7;
	color: var(--ink-2);
	max-width: 68ch;
}
.msg-overview-body > p { margin: 0 0 22px; }
.msg-overview-body > p.msg-dropcap:first-letter,
.msg-overview-body > p:first-of-type.msg-dropcap:first-letter {
	font-family: var(--ff-display);
	font-size: 3.2em;
	float: left;
	line-height: 0.9;
	padding: 6px 10px 0 0;
	font-weight: 500;
	color: var(--navy-900);
}
.msg-pullquote {
	margin: 44px 0;
	padding: 32px 0;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	font-family: var(--ff-display);
	font-size: 23px;
	line-height: 1.42;
	color: var(--navy-900);
	letter-spacing: -0.005em;
}

/* Mission statement card — used on About page */
.msg-mission-card {
	background: var(--paper);
	border: 1px solid var(--rule);
	padding: 56px 64px;
	max-width: 85ch;
	margin-inline: auto;
}
.msg-mission-card > p {
	font-family: var(--ff-display);
	font-size: 24px;
	line-height: 1.5;
	color: var(--navy-900);
	font-weight: var(--display-weight);
	letter-spacing: -0.005em;
	margin: 0;
}
@media (max-width: 720px) {
	.msg-mission-card { padding: 32px 28px; }
	.msg-mission-card > p { font-size: 20px; }
}

/* MacGlobal Management directors panel */
.msg-mgm-directors {
	background: var(--paper);
	border: 1px solid var(--rule);
	padding: 40px 48px;
}
.msg-mgm-directors > .msg-caps { display: block; margin-bottom: 20px; }

.msg-mgm-directors-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 48px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.msg-mgm-director-card {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 20px;
	align-items: center;
	padding: 22px 0;
	border-top: 1px solid var(--rule-soft);
}
.msg-mgm-director-card:nth-child(-n+2) { border-top: 0; padding-top: 8px; }
.msg-mgm-director-card .monogram {
	width: 56px;
	height: 56px;
	background: var(--navy-900);
	color: var(--paper);
	display: grid;
	place-items: center;
	font-family: var(--ff-display);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.02em;
}
.msg-mgm-director-card .idx {
	display: block;
	font-family: var(--ff-mono);
	font-size: 10.5px;
	color: var(--accent);
	letter-spacing: 0.1em;
	margin-bottom: 4px;
}
.msg-mgm-director-card .name {
	font-family: var(--ff-display);
	font-size: 19px;
	color: var(--navy-900);
	line-height: 1.2;
	font-weight: var(--display-weight);
	letter-spacing: -0.005em;
	margin: 0 0 4px;
}
.msg-mgm-director-card .role {
	font-family: var(--ff-ui);
	font-size: 11.5px;
	color: var(--ink-3);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* =============================================================
   BUSINESS UNITS (grid)
   ============================================================= */
.msg-units-intro {
	display: grid;
	grid-template-columns: 260px 1fr auto;
	gap: 60px;
	align-items: end;
	margin-bottom: 48px;
}
.msg-units-intro h3 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: clamp(24px, 2.3vw, 34px);
	line-height: 1.14;
	margin: 0;
	max-width: 20ch;
	color: var(--paper);
}

.msg-units-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: rgba(245,240,230,0.14);
	border: 1px solid rgba(245,240,230,0.14);
}
.msg-units-grid-3 { grid-template-columns: repeat(3, 1fr); }
.msg-unit-card {
	position: relative;
	background: var(--navy-900);
	padding: 36px 32px 32px;
	min-height: 380px;
	display: flex;
	flex-direction: column;
	transition: background .3s ease;
	text-decoration: none;
	color: inherit;
}
.msg-unit-card:hover { background: var(--navy-700); }
.msg-unit-card .num {
	display: none;
}
.msg-unit-card .tag { margin-top: 8px; }
.msg-unit-card .tag {
	font-family: var(--ff-ui);
	font-size: 10.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--navy-300);
	margin-bottom: 14px;
}
.msg-unit-card h4 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: 24px;
	line-height: 1.2;
	margin: 0 0 14px;
	color: var(--paper);
	letter-spacing: -0.01em;
}
.msg-unit-card p {
	font-size: 14.5px;
	line-height: 1.55;
	color: #c2cce0;
	margin: 0 0 auto;
	max-width: 32ch;
}
.msg-unit-card .foot {
	margin-top: 32px;
	padding-top: 18px;
	border-top: 1px solid rgba(245,240,230,0.15);
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--ff-ui);
	font-size: 11.5px;
	color: var(--navy-300);
	letter-spacing: 0.04em;
}
.msg-unit-card .foot .arrow {
	font-family: var(--ff-mono);
	transition: transform .2s ease;
}
.msg-unit-card:hover .foot .arrow { transform: translateX(4px); color: var(--accent); }
.msg-unit-card .foot .external {
	text-transform: uppercase;
	font-size: 10.5px;
	letter-spacing: 0.18em;
}

/* =============================================================
   CREDENTIALS STRIP
   ============================================================= */
.msg-creds-strip {
	background: var(--paper-2);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	padding: 36px 0;
}
.msg-creds-row {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 40px;
	align-items: center;
}
.msg-creds-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-family: var(--ff-ui);
	padding-left: 16px;
	border-left: 2px solid var(--accent);
}
.msg-creds-item .label {
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.msg-creds-item .value {
	font-family: var(--ff-display);
	font-size: 18px;
	line-height: 1.2;
	color: var(--navy-900);
	font-weight: 500;
}

/* =============================================================
   GOVERNANCE DOC LIST
   ============================================================= */
.msg-gov-block {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}
.msg-doc-list {
	display: flex;
	flex-direction: column;
	border-top: 1px solid rgba(245,240,230,0.2);
}
.msg-doc-row {
	display: grid;
	grid-template-columns: 40px 1fr auto auto;
	gap: 20px;
	align-items: center;
	padding: 18px 0;
	border-bottom: 1px solid rgba(245,240,230,0.14);
	font-family: var(--ff-ui);
	font-size: 14px;
	color: #cdd6e6;
	transition: color .15s;
}
.msg-doc-row:hover .title { color: var(--paper); }
.msg-doc-row:hover .arrow { color: var(--accent); transform: translateX(3px); }
.msg-doc-row .num {
	font-family: var(--ff-mono);
	font-size: 11px;
	color: var(--accent);
	letter-spacing: 0.08em;
}
.msg-doc-row .title {
	font-family: var(--ff-display);
	font-size: 18px;
	color: #efe7d4;
	line-height: 1.25;
}
.msg-doc-row .desc {
	display: block;
	font-family: var(--ff-ui);
	font-size: 12.5px;
	color: rgba(245,240,230,0.5);
	margin-top: 4px;
	letter-spacing: 0.01em;
	line-height: 1.5;
}
.msg-doc-row .meta {
	font-family: var(--ff-mono);
	font-size: 11px;
	color: rgba(245,240,230,0.45);
	text-align: right;
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.msg-doc-row .arrow {
	font-family: var(--ff-mono);
	color: rgba(245,240,230,0.5);
	transition: color .15s, transform .15s;
}
.msg-doc-row.doc-row-full { padding: 22px 0; }

/* =============================================================
   GOVERNANCE DOCUMENT REGISTER (published / internal + sidebar)
   ============================================================= */
.msg-docreg {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 88px;
	align-items: start;
}
.msg-docreg-group + .msg-docreg-group { margin-top: 48px; }
.msg-docreg-grouplabel {
	font-family: var(--ff-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 6px;
}
.msg-docreg-row {
	padding: 22px 0 24px;
	border-bottom: 1px solid rgba(245, 240, 230, 0.12);
}
.msg-docreg-row-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 9px;
}
.msg-docreg-row-head h3 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: 19px;
	line-height: 1.3;
	color: var(--paper);
	margin: 0;
	letter-spacing: -0.005em;
}
.msg-docreg-row p {
	font-family: var(--ff-ui);
	font-size: 13.5px;
	line-height: 1.6;
	color: rgba(245, 240, 230, 0.55);
	margin: 0;
	max-width: 60ch;
}
.msg-docreg-row p a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
	transition: color .15s;
}
.msg-docreg-row p a:hover { color: #c2a05c; }

/* Status tags */
.msg-docreg-tag {
	flex: none;
	font-family: var(--ff-mono);
	font-size: 9.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1;
	padding: 6px 11px 5px;
	border-radius: 3px;
	white-space: nowrap;
	margin-top: 3px;
}
.msg-docreg-tag.is-statutory {
	background: rgba(156, 122, 53, 0.18);
	color: #cba85f;
}
.msg-docreg-tag.is-retained {
	background: var(--accent);
	color: var(--navy-900);
	font-weight: 600;
}
.msg-docreg-tag.is-internal {
	background: transparent;
	border: 1px solid rgba(245, 240, 230, 0.28);
	color: rgba(245, 240, 230, 0.6);
	padding: 5px 10px 4px;
}

/* Sidebar */
.msg-docreg-aside {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 120px;
}
.msg-docreg-card {
	padding-left: 26px;
	border-left: 2px solid var(--accent);
}
.msg-docreg-card.is-light { border-left-color: rgba(245, 240, 230, 0.55); }
.msg-docreg-card + .msg-docreg-card {
	margin-top: 34px;
	padding-top: 34px;
	border-top: 1px solid rgba(245, 240, 230, 0.12);
}
.msg-docreg-card h4 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: 18px;
	line-height: 1.25;
	color: var(--paper);
	margin: 0 0 14px;
	letter-spacing: -0.005em;
}
.msg-docreg-card p {
	font-family: var(--ff-ui);
	font-size: 13.5px;
	line-height: 1.7;
	color: rgba(245, 240, 230, 0.55);
	margin: 0 0 14px;
}
.msg-docreg-card p:last-child { margin-bottom: 0; }
.msg-docreg-email a {
	font-family: var(--ff-mono);
	font-size: 13px;
	color: var(--accent);
	letter-spacing: 0.01em;
	text-decoration: none;
	transition: color .15s;
}
.msg-docreg-email a:hover { color: #c2a05c; }

@media (max-width: 920px) {
	.msg-docreg { grid-template-columns: 1fr; gap: 56px; }
	.msg-docreg-aside { position: static; }
}
@media (max-width: 560px) {
	.msg-docreg-row-head { flex-direction: column; gap: 10px; }
}

/* =============================================================
   LEGAL / LONG-FORM DOCUMENT (privacy, terms)
   ============================================================= */
.msg-legal { max-width: 820px; }
.msg-legal-kicker {
	font-family: var(--ff-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 30px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--rule-soft);
}
.msg-legal-lead {
	font-family: var(--ff-body);
	font-size: 17px;
	font-style: italic;
	line-height: 1.7;
	color: var(--ink);
	margin: 0 0 30px;
	padding-left: 18px;
	border-left: 2px solid var(--accent);
}
.msg-legal ul ul { margin: 10px 0 4px; }
.msg-legal h2 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: clamp(22px, 2vw, 28px);
	line-height: 1.25;
	color: var(--navy-900);
	letter-spacing: -0.01em;
	margin: 52px 0 18px;
}
.msg-legal > h2:first-of-type { margin-top: 0; }
.msg-legal h3 {
	font-family: var(--ff-display);
	font-weight: 600;
	font-size: 19px;
	line-height: 1.3;
	color: var(--ink);
	margin: 34px 0 12px;
}
.msg-legal p {
	font-family: var(--ff-body);
	font-size: 16px;
	line-height: 1.75;
	color: var(--ink-2);
	margin: 0 0 18px;
}
.msg-legal ul {
	margin: 0 0 18px;
	padding-left: 0;
	list-style: none;
}
.msg-legal ul li {
	position: relative;
	font-family: var(--ff-body);
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink-2);
	padding-left: 26px;
	margin-bottom: 12px;
}
.msg-legal ul li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 12px;
	width: 6px;
	height: 6px;
	background: var(--accent);
	border-radius: 50%;
}
.msg-legal a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}
.msg-legal strong { color: var(--ink); font-weight: 600; }
.msg-legal code {
	font-family: var(--ff-mono);
	font-size: 13px;
	background: var(--paper-3);
	padding: 2px 7px;
	border-radius: 3px;
	color: var(--navy-900);
}
.msg-legal-tablewrap { overflow-x: auto; margin: 4px 0 24px; }
.msg-legal-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 560px;
}
.msg-legal-table th {
	text-align: left;
	font-family: var(--ff-ui);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--navy-900);
	background: var(--paper-3);
	padding: 13px 16px;
	border-bottom: 1px solid var(--rule);
	vertical-align: top;
}
.msg-legal-table td {
	font-family: var(--ff-ui);
	font-size: 13.5px;
	padding: 14px 16px;
	line-height: 1.6;
	color: var(--ink-2);
	border-bottom: 1px solid var(--rule-soft);
	vertical-align: top;
}
.msg-legal-table td code {
	font-size: 12.5px;
	background: var(--paper-2);
}

/* =============================================================
   ENTITY / STATUTORY REGISTER (verification)
   ============================================================= */
.msg-entity-register {
	margin-top: 12px;
	border: 1px solid var(--rule-soft);
	background: var(--paper);
}
.msg-entity-head {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 40px;
	background: var(--navy-900);
	color: var(--paper);
	padding: 15px 28px;
	font-family: var(--ff-ui);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
}
.msg-entity-row {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 40px;
	padding: 24px 28px;
	border-top: 1px solid var(--rule-soft);
}
.msg-entity-name {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: 17px;
	line-height: 1.3;
	color: var(--navy-900);
	letter-spacing: -0.005em;
}
.msg-entity-particulars p {
	font-family: var(--ff-ui);
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--ink-2);
	margin: 0 0 12px;
	max-width: 72ch;
}
.msg-entity-particulars p strong { color: var(--navy-900); font-weight: 600; }
.msg-entity-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	row-gap: 8px;
}
.msg-entity-link {
	font-family: var(--ff-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--accent);
	text-decoration: none;
	transition: color .15s;
}
.msg-entity-link:hover { color: #c2a05c; text-decoration: underline; }
.msg-entity-link + .msg-entity-link {
	margin-left: 16px;
	padding-left: 16px;
	border-left: 1px solid var(--rule);
}
.msg-entity-foot {
	margin-top: 22px;
	font-family: var(--ff-mono);
	font-size: 11.5px;
	line-height: 1.6;
	color: var(--ink-3);
	letter-spacing: 0.02em;
	max-width: 92ch;
}
@media (max-width: 820px) {
	.msg-entity-head { display: none; }
	.msg-entity-row { grid-template-columns: 1fr; gap: 10px; padding: 22px; }
	.msg-entity-name { font-size: 18px; }
}

/* =============================================================
   VERIFICATION PANEL
   ============================================================= */
.msg-verify-panel {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	background: var(--paper-2);
	border: 1px solid var(--rule);
	padding: 48px;
}
.msg-verify-panel h4 {
	font-family: var(--ff-display);
	font-size: 28px;
	line-height: 1.15;
	margin: 0 0 20px;
	color: var(--navy-900);
	font-weight: var(--display-weight);
	letter-spacing: -0.01em;
}
.msg-verify-panel p {
	color: var(--ink-2);
	font-size: 15.5px;
	line-height: 1.6;
	margin: 0 0 22px;
}
.msg-verify-details {
	font-family: var(--ff-mono);
	font-size: 12.5px;
	line-height: 1.9;
	color: var(--ink-2);
	background: var(--paper);
	padding: 22px 24px;
	border-left: 2px solid var(--accent);
	margin-bottom: 22px;
}
/* Two-column rows so a long value wraps within its own column rather than
   back under the label on narrow screens. */
.msg-verify-details > div {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	align-items: baseline;
}
.msg-verify-details .k {
	display: inline-block;
	width: 120px;
	color: var(--ink-3);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 10.5px;
}
.msg-verify-details .status-ok { color: #5a7f4a; }

.msg-verify-links {
	display: flex;
	flex-direction: column;
}
.msg-verify-link {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	padding: 16px 0;
	border-top: 1px solid var(--rule);
	font-family: var(--ff-ui);
	font-size: 14px;
	color: var(--ink);
	transition: padding .2s ease;
}
.msg-verify-link:first-child { border-top: 0; }
.msg-verify-link:hover { padding-left: 8px; }
.msg-verify-link .name {
	font-family: var(--ff-display);
	font-size: 17px;
	color: var(--navy-900);
}
.msg-verify-link .co {
	display: block;
	font-family: var(--ff-mono);
	font-size: 11px;
	color: var(--ink-3);
	margin-top: 3px;
	letter-spacing: 0.04em;
}
.msg-verify-link .go {
	font-family: var(--ff-ui);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
}

/* =============================================================
   SUBSIDIARIES — logo grid + detail cards
   ============================================================= */
.msg-logo-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	background: var(--rule);
	border: 1px solid var(--rule);
}
.msg-logo-grid-3 { grid-template-columns: repeat(3, 1fr); }
.msg-logo-tile {
	background: var(--paper);
	padding: 36px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-align: left;
	transition: background .2s ease;
	min-height: 200px;
	text-decoration: none;
	color: inherit;
}
.msg-logo-tile:hover { background: #faf7ef; }
.msg-logo-mark {
	display: inline-grid;
	place-items: center;
	width: 64px; height: 64px;
	background: var(--navy-900);
	color: var(--paper);
	font-family: var(--ff-display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.msg-logo-img {
	height: 52px;
	width: auto;
	max-width: 180px;
	object-fit: contain;
	object-position: left center;
	display: block;
}
.msg-logo-name {
	font-family: var(--ff-display);
	font-size: 18px;
	line-height: 1.2;
	color: var(--navy-900);
	font-weight: var(--display-weight);
	letter-spacing: -0.005em;
	margin-top: auto;
}
.msg-logo-role {
	font-family: var(--ff-ui);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-3);
}

.msg-unit-detail {
	background: var(--paper);
	border: 1px solid var(--rule);
	padding: 44px 48px;
}
.msg-unit-detail-head {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 32px;
	align-items: center;
}
.msg-unit-detail-head .num {
	font-family: var(--ff-mono);
	font-size: 12px;
	color: var(--accent);
	letter-spacing: 0.08em;
}
.msg-unit-detail-head h3 {
	font-family: var(--ff-display);
	font-size: clamp(24px, 2.3vw, 34px);
	line-height: 1.14; margin: 0;
	color: var(--navy-900);
	font-weight: var(--display-weight);
	letter-spacing: -0.01em;
}
.msg-unit-detail-body {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 60px;
	align-items: start;
}
.msg-unit-detail-body p {
	font-family: var(--ff-body);
	font-size: 17px;
	line-height: 1.7;
	color: var(--ink-2);
	margin: 0;
}
.msg-unit-services {
	list-style: none;
	padding: 0;
	margin: 0;
}
.msg-unit-services li {
	padding: 10px 0;
	border-top: 1px solid var(--rule-soft);
	font-family: var(--ff-ui);
	font-size: 13.5px;
	color: var(--ink-2);
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: 10px;
}
.msg-unit-services li::before {
	content: "▸";
	font-family: var(--ff-mono);
	font-size: 10px;
	color: var(--accent);
	padding-top: 3px;
}
.msg-unit-detail-meta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	padding-top: 20px;
}
.msg-unit-detail-meta .k {
	display: block;
	font-family: var(--ff-mono);
	font-size: 10px;
	color: var(--ink-3);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.msg-unit-detail-meta .v {
	font-family: var(--ff-display);
	font-size: 16px;
	color: var(--navy-900);
	font-weight: var(--display-weight);
}

/* =============================================================
   CONTACT
   ============================================================= */
.msg-contact-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}
.msg-contact-grid-3 { grid-template-columns: repeat(3, 1fr); }
.msg-contact-grid:not(.msg-contact-grid-3) .msg-contact-card { max-width: 520px; }
.msg-contact-card {
	background: var(--paper-2);
	border: 1px solid var(--rule);
	padding: 36px 36px 32px;
}
.msg-contact-card .name {
	font-family: var(--ff-display);
	font-size: 22px;
	color: var(--navy-900);
	line-height: 1.2;
	margin: 10px 0 20px;
	font-weight: var(--display-weight);
	letter-spacing: -0.005em;
}
.msg-contact-meta {
	display: grid;
	/* minmax(0, …) lets long unbroken emails/URLs wrap instead of widening the card */
	grid-template-columns: 92px minmax(0, 1fr);
	gap: 10px 18px;
	font-family: var(--ff-ui);
	font-size: 13.5px;
	color: var(--ink-2);
}
.msg-contact-meta .k {
	font-family: var(--ff-mono);
	font-size: 10.5px;
	color: var(--ink-3);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding-top: 3px;
}
.msg-contact-meta .v { line-height: 1.55; }
.msg-contact-meta .v .line { display: block; }
.msg-contact-meta a {
	font-family: var(--ff-mono);
	font-size: 13px;
	color: var(--accent);
	overflow-wrap: anywhere;
}

/* =============================================================
   DIRECTORATE
   ============================================================= */
.msg-directorate-photo {
	position: relative;
	margin-bottom: 48px;
}
.msg-directorate-photo img {
	width: 100%;
	filter: contrast(1.02) saturate(0.92);
	border: 1px solid var(--rule);
}
.msg-directorate-photo .caption {
	position: absolute;
	bottom: 0; left: 0;
	background: var(--navy-900);
	color: var(--paper);
	padding: 10px 16px;
	font-family: var(--ff-mono);
	font-size: 10.5px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.msg-directors-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.msg-director-card {
	background: var(--paper);
	border: 1px solid var(--rule);
	padding: 28px;
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 28px;
	align-items: start;
}
.msg-director-card > *:not(.portrait):not(.portrait-placeholder):not(dialog) {
	grid-column: 2;
}
.msg-director-card .portrait,
.msg-director-card .portrait-placeholder {
	grid-column: 1;
	grid-row: 1;
	width: 140px;
	height: 175px;
	object-fit: cover;
	object-position: center 15%;
	background: var(--navy-900);
	filter: saturate(0.9) contrast(1.02);
	border: 1px solid var(--rule-soft);
}
.msg-director-card .portrait-placeholder {
	color: var(--paper);
	display: grid;
	place-items: center;
	font-family: var(--ff-display);
	font-size: 36px;
	letter-spacing: -0.02em;
	font-weight: 500;
	filter: none;
}
.msg-director-card .idx {
	font-family: var(--ff-mono);
	font-size: 10.5px;
	color: var(--accent);
	letter-spacing: 0.1em;
	display: block;
	margin-bottom: 8px;
}
.msg-director-card .name {
	font-family: var(--ff-display);
	font-size: 22px;
	line-height: 1.15;
	color: var(--navy-900);
	font-weight: var(--display-weight);
	letter-spacing: -0.005em;
	margin: 0 0 6px;
}
.msg-director-card .role {
	font-family: var(--ff-ui);
	font-size: 11.5px;
	color: var(--ink-3);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 16px;
}
.msg-director-card .bio {
	font-family: var(--ff-body);
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ink-2);
	margin: 0;
	padding-top: 14px;
	border-top: 1px solid var(--rule-soft);
}
.msg-read-bio {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	justify-self: start;
	background: transparent;
	border: 0;
	padding: 12px 0 0;
	cursor: pointer;
	font-family: var(--ff-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	transition: color .15s ease, transform .15s ease;
}
.msg-read-bio:hover { color: var(--navy-900); }
.msg-read-bio .arrow {
	font-family: var(--ff-mono);
	transition: transform .15s ease;
}
.msg-read-bio:hover .arrow { transform: translateX(3px); }

/* ---- Director modal ---- */
.msg-director-modal {
	padding: 0;
	border: 1px solid var(--rule);
	background: var(--paper);
	color: var(--ink);
	max-width: 760px;
	width: calc(100% - 48px);
	max-height: calc(100vh - 48px);
	margin: auto;
	box-shadow: 0 40px 80px -30px rgba(10, 26, 51, 0.5);
}
.msg-director-modal::backdrop {
	background: rgba(15, 44, 84, 0.72);
	backdrop-filter: blur(2px);
}
.msg-director-modal[open] {
	display: grid;
}
.msg-director-modal-inner {
	padding: 48px 52px;
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 32px;
	align-items: start;
	overflow-y: auto;
}
.msg-director-modal .close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	background: transparent;
	border: 0;
	font-size: 24px;
	line-height: 1;
	color: var(--ink-3);
	cursor: pointer;
	transition: color .15s ease;
}
.msg-director-modal .close:hover { color: var(--navy-900); }
.msg-director-modal .eyebrow {
	grid-column: 1 / -1;
	font-family: var(--ff-mono);
	font-size: 11px;
	color: var(--accent);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 8px;
}
.msg-director-modal .portrait {
	width: 140px;
	height: 180px;
	object-fit: cover;
	object-position: center 15%;
	border: 1px solid var(--rule-soft);
	filter: saturate(0.92) contrast(1.02);
}
.msg-director-modal h3 {
	font-family: var(--ff-display);
	font-size: 30px;
	line-height: 1.1;
	letter-spacing: -0.01em;
	font-weight: var(--display-weight);
	color: var(--navy-900);
	margin: 0 0 6px;
}
.msg-director-modal .role {
	font-family: var(--ff-ui);
	font-size: 11.5px;
	color: var(--ink-3);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 18px;
}
.msg-director-modal .rule-soft {
	border: 0;
	border-top: 1px solid var(--rule-soft);
	margin: 0 0 18px;
}
.msg-director-modal .bio {
	font-family: var(--ff-body);
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink-2);
	margin: 0 0 14px;
}
.msg-director-modal .bio:last-child { margin-bottom: 0; }

@media (max-width: 720px) {
	.msg-director-modal-inner {
		padding: 32px 24px;
		grid-template-columns: 1fr;
		gap: 20px;
		justify-items: start;
	}
	.msg-director-modal .portrait { width: 120px; height: 150px; }
	.msg-director-modal h3 { font-size: 24px; }
}

.msg-directors-compact {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 40px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.msg-directors-compact li {
	display: grid;
	grid-template-columns: 36px 1fr;
	gap: 18px;
	align-items: center;
	padding: 16px 4px;
	border-top: 1px solid var(--rule-soft);
}
.msg-directors-compact li:nth-child(-n+2) { border-top: 0; }
.msg-directors-compact .idx {
	font-family: var(--ff-mono);
	font-size: 11px;
	color: var(--accent);
	letter-spacing: 0.08em;
}
.msg-directors-compact .name {
	display: block;
	font-family: var(--ff-display);
	font-size: 18px;
	color: var(--navy-900);
	line-height: 1.2;
	font-weight: var(--display-weight);
}
.msg-directors-compact .role {
	display: block;
	font-family: var(--ff-ui);
	font-size: 12.5px;
	color: var(--ink-3);
	margin-top: 3px;
}

/* =============================================================
   ORGANOGRAM
   ============================================================= */
.msg-organogram {
	background: var(--paper-2);
	border: 1px solid var(--rule);
	padding: 56px 40px 64px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.msg-org-node {
	padding: 18px 20px;
	min-width: 180px;
	text-align: center;
	font-family: var(--ff-display);
	background: var(--paper);
	color: var(--navy-900);
	border: 1px solid var(--rule);
}
.msg-org-node.wide { min-width: 220px; }
.msg-org-node.parent { background: var(--navy-900); color: var(--paper); border-color: var(--navy-900); }
.msg-org-node .title {
	font-size: 13.5px;
	font-weight: var(--display-weight);
	line-height: 1.25;
	letter-spacing: -0.005em;
}
.msg-org-node .sub {
	font-family: var(--ff-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-top: 6px;
	color: var(--ink-3);
}
.msg-org-node.parent .sub { color: #d8c695; }
.msg-org-line {
	width: 1px;
	background: var(--ink-3);
}
.msg-org-line.h { height: 1px; width: 70%; }
.msg-org-pct {
	display: inline-block;
	font-family: var(--ff-mono);
	font-size: 10.5px;
	color: var(--accent);
	border: 1px solid var(--accent);
	background: var(--paper);
	padding: 2px 8px;
	letter-spacing: 0.06em;
}
.msg-org-caption {
	margin-top: 40px;
	font-family: var(--ff-mono);
	font-size: 10.5px;
	color: var(--ink-3);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Plain organogram — uniform light nodes on the section background, no
   outer container box, matching the legacy group-structure chart. */
.msg-organogram.msg-organogram-plain {
	background: transparent;
	border: 0;
	padding: 28px 0 8px;
}
.msg-organogram-plain .msg-org-node {
	background: var(--paper);
	color: var(--navy-900);
	border-color: var(--rule);
	box-shadow: 0 1px 2px rgba(10, 26, 51, 0.05);
}
.msg-organogram-plain .msg-org-node .sub { color: var(--ink-3); }
/* Uniform leaf nodes — every operating-company box is the same width and
   height regardless of how its name wraps, with content centred. */
.msg-organogram-plain .msg-org-node:not(.wide) {
	width: 230px;
	min-height: 88px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}
/* The two parent nodes share one fixed size, wide enough for the longer
   "Group Services" subtitle so both boxes match. */
.msg-organogram-plain .msg-org-node.wide {
	width: 420px;
	min-width: 0;
	min-height: 96px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}
/* Whole chart on one symmetric 3-column grid. Every centre-spine segment
   (nodes + connectors) lives in column 2, so they share an identical centre
   and the vertical line stays perfectly straight at any viewport width.
   min-width:0 on every cell keeps the three tracks equal even though the
   parent boxes are wider than their track (they overflow, centred). */
.msg-orgchart {
	display: grid;
	/* minmax(0, 1fr) forces three genuinely equal tracks at every viewport (a
	   plain 1fr lets the wide parent / leaf boxes size their own track, which
	   shifts the column centres). Equal tracks mean each column centre sits at a
	   fixed fraction (1/6, 1/2, 5/6) of the chart, so the connectors, badges and
	   the horizontal bar all line up regardless of width. */
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-items: center;
	align-items: start;
	width: 70%;
}
.msg-orgchart > * { min-width: 0; }
/* Stretch nodes to fill their grid row so siblings on the same row share one
   height. Without this a single-line box (e.g. MUR Shipping) sits shorter than
   its two-line neighbours, leaving a gap between the box and the connector that
   drops from it. */
.msg-orgchart .msg-org-node { align-self: stretch; }
/* Connectors that drop past the intermediate holding level (MUR Shipping) so
   the three operating Business Units share one bottom row. They span the grid
   rows between the split bar and that leaf row, stretching to whatever height
   the intermediate level happens to take. */
.msg-orgchart .msg-org-line-span {
	align-self: stretch;
	height: auto;
}
.msg-orgchart .msg-org-bar {
	grid-column: 1 / -1;
	justify-self: stretch;
	/* With three equal columns, the outer column centres sit at 1/6 and 5/6 of
	   the chart width. Insetting each end by 1/6 lands the bar exactly on MUR
	   Shipping's and Macsteel Service Centres' vertical lines at any width. */
	margin: 0 16.6667%;
	height: 1px;
	background: var(--ink-3);
}

/* Narrow-screen tree — the 3-column chart can't fit below 1100px, and a single
   stacked column would wrongly read as one ownership chain. So the markup
   carries a second, nested-list version: Global → MacGlobal as a centred spine,
   then the three subsidiaries branching off one rail (MUR Group BV nested under
   MUR Shipping). Only one of the two is ever displayed. */
.msg-orgtree { display: none; }
.msg-orgtree ul { list-style: none; margin: 0; padding: 0; }
.msg-orgtree-link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
}
.msg-orgtree-link::before,
.msg-orgtree li::before,
.msg-orgtree li::after {
	content: "";
	position: absolute;
	background: var(--ink-3);
}
.msg-orgtree-link::before { left: 50%; top: 0; bottom: 0; width: 1px; }
.msg-orgtree-link .msg-org-pct,
.msg-orgtree li > .msg-org-pct { position: relative; z-index: 1; }
/* Rail drops from the parent box; each branch ticks across to its % badge. */
.msg-orgtree-branches { margin-left: 24px; }
.msg-orgtree li { position: relative; padding: 18px 0 0 28px; }
.msg-orgtree li ul { margin-left: 24px; }
.msg-orgtree li::before { left: 0; top: 0; bottom: 0; width: 1px; }
.msg-orgtree li:last-child::before { bottom: auto; height: 30px; }
.msg-orgtree li::after { left: 0; top: 30px; width: 28px; height: 1px; }
.msg-orgtree li > .msg-org-pct { margin-bottom: 8px; }
.msg-organogram-plain .msg-orgtree .msg-org-node,
.msg-organogram-plain .msg-orgtree .msg-org-node.wide {
	width: 100%;
	min-height: 0;
}
.msg-organogram-plain .msg-orgtree li .msg-org-node {
	text-align: left;
	padding: 14px 16px;
}

@media (max-width: 1100px) {
	.msg-orgchart { display: none; }
	.msg-orgtree {
		display: block;
		width: 100%;
		max-width: 440px;
		margin: 0 auto;
	}
}

/* =============================================================
   ABOUT — board of directors (clean executive-summary profiles)
   ============================================================= */
/* Stacked, left-aligned section intro (kicker → heading → brass rule → lead) */
.msg-board-intro {
	margin-bottom: 48px;
	max-width: 920px;
}
.msg-board-intro .kicker {
	font-family: var(--ff-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 18px;
}
.msg-board-intro h2 {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: clamp(26px, 2.6vw, 40px);
	line-height: 1.14;
	letter-spacing: var(--display-tracking);
	color: var(--navy-900);
	margin: 0;
}
.msg-board-intro .rule {
	display: block;
	width: 48px;
	height: 2px;
	background: var(--accent);
	margin: 24px 0 26px;
}
.msg-board-intro .lead {
	font-size: 18px;
	line-height: 1.6;
	color: var(--ink-2);
	max-width: 56ch;
	margin: 0;
}
/* Directorate — ruled accordion of expandable director profiles (no imagery) */
.msg-directorate {
	margin-top: 8px;
	border-top: 1px solid var(--rule);
}
.msg-director {
	border-bottom: 1px solid var(--rule-soft);
}
.msg-director:last-child {
	border-bottom: 1px solid var(--rule);
}
.msg-director-head {
	display: grid;
	grid-template-columns: 46px 1fr 28px;
	align-items: baseline;
	column-gap: 26px;
	padding: 26px 4px 26px 0;
	cursor: pointer;
	list-style: none;
	transition: background-color .25s ease, padding-left .25s ease;
}
.msg-director-head::-webkit-details-marker { display: none; }
.msg-director-head:hover {
	background: linear-gradient(90deg, rgba(156,122,53,0.05), transparent 60%);
	padding-left: 12px;
}
.msg-director-head:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}
.msg-director-idx {
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--accent);
	padding-top: 4px;
}
.msg-director-id {
	display: block;
}
.msg-director-role {
	display: block;
	font-family: var(--ff-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 8px;
	transition: color .25s ease;
}
.msg-director[open] .msg-director-role,
.msg-director-head:hover .msg-director-role {
	color: var(--accent);
}
.msg-director-name {
	display: block;
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	font-size: clamp(21px, 2vw, 26px);
	line-height: 1.15;
	letter-spacing: var(--display-tracking);
	color: var(--navy-900);
}
.msg-director-toggle {
	position: relative;
	width: 15px;
	height: 15px;
	justify-self: end;
	align-self: center;
}
.msg-director-toggle::before,
.msg-director-toggle::after {
	content: "";
	position: absolute;
	background: var(--navy-900);
	transition: transform .3s cubic-bezier(.2,.7,.2,1), opacity .3s ease;
}
.msg-director-toggle::before { top: 7px; left: 0; width: 15px; height: 1.5px; }
.msg-director-toggle::after  { left: 7px; top: 0; width: 1.5px; height: 15px; }
.msg-director[open] .msg-director-toggle::after { transform: scaleY(0); opacity: 0; }
.msg-director[open] .msg-director-toggle::before { background: var(--accent); }
.msg-director-bio {
	max-width: 74ch;
	padding: 0 28px 34px 72px;
	animation: msg-director-open .4s ease both;
}
.msg-director-bio p {
	font-size: 16px;
	line-height: 1.72;
	color: var(--ink-2);
	margin: 0 0 16px;
}
.msg-director-bio p:last-child { margin-bottom: 0; }
.msg-director-bio p:first-child::first-letter {
	font-family: var(--ff-display);
	font-weight: var(--display-weight);
	color: var(--navy-900);
}
@keyframes msg-director-open {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}
@media (max-width: 720px) {
	.msg-director-head {
		grid-template-columns: 34px 1fr 24px;
		column-gap: 16px;
	}
	.msg-director-bio { padding: 0 0 30px 50px; }
}
@media (prefers-reduced-motion: reduce) {
	.msg-director-bio { animation: none; }
	.msg-director-toggle::before,
	.msg-director-toggle::after { transition: none; }
}

/* =============================================================
   BREADCRUMBS
   ============================================================= */
.msg-breadcrumbs {
	background: var(--paper);
	border-bottom: 1px solid var(--rule-soft);
	padding: 14px 0;
}
.msg-breadcrumbs-inner {
	max-width: var(--maxw-wide);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ff-ui);
	font-size: 11.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.msg-breadcrumbs-inner .sep { color: var(--rule); }
.msg-breadcrumbs-inner .current { color: var(--navy-900); }

/* =============================================================
   FOOTER
   ============================================================= */
.msg-footer {
	background: var(--ink);
	color: #c2cce0;
	padding: 80px 0 40px;
	font-family: var(--ff-ui);
}
.msg-footer-inner {
	max-width: var(--maxw-wide);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.msg-footer-top {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 60px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(245,240,230,0.1);
}
.msg-footer h5 {
	font-family: var(--ff-ui);
	font-size: 10.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--navy-300);
	margin: 0 0 18px;
	font-weight: 600;
}
.msg-footer a {
	display: block;
	padding: 6px 0;
	color: #c2cce0;
	font-size: 13.5px;
	transition: color .15s;
}
.msg-footer a:hover { color: var(--accent); }
.msg-footer-lockup {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}
.msg-footer-logo {
	flex: none;
	width: 52px; height: 52px;
	border-radius: 50%;
	background: var(--paper);
	display: grid;
	place-items: center;
	box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.msg-footer-logo .mark {
	width: 42px; height: 42px;
	border-radius: 50%;
	background: url(assets/images/logo.png) center / cover no-repeat;
}
.msg-footer-brand .lock {
	font-family: var(--ff-display);
	font-size: 26px;
	color: var(--paper);
	margin-bottom: 0;
	letter-spacing: -0.01em;
}
.msg-footer-brand p {
	font-size: 13.5px;
	color: #a8b3c8;
	margin: 0 0 18px;
	max-width: 44ch;
	line-height: 1.6;
}
.msg-footer-brand .stat {
	font-family: var(--ff-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: #8190aa;
	line-height: 1.9;
	max-width: none;
}
.msg-footer-brand .stat .k {
	display: inline-block;
	width: 130px;
	color: var(--navy-300);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 10px;
}
.msg-footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 32px;
	font-size: 12px;
	color: #8190aa;
	letter-spacing: 0.03em;
	flex-wrap: wrap;
	gap: 20px;
}
.msg-footer-bottom .legal a {
	display: inline;
	padding: 0;
	color: #8190aa;
	margin-right: 18px;
}
.msg-footer-bottom .legal a:hover { color: var(--accent); }

/* =============================================================
   REVEAL
   ============================================================= */
.msg-reveal { transition: opacity .7s ease, transform .7s ease; }
.msg-reveal.is-pending { opacity: 0; transform: translateY(14px); }
.msg-reveal.is-in { opacity: 1; transform: none; }

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 1100px) {
	.msg-hero-meta { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
	.msg-hero-meta .cell + .cell { border-left: 0; padding-left: 0; }
	.msg-units-grid, .msg-logo-grid { grid-template-columns: repeat(2, 1fr); }
	.msg-creds-row { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
	.msg-section-head, .msg-overview-grid, .msg-units-intro { grid-template-columns: 1fr; gap: 32px; }
	.msg-overview-aside { position: static; }
	.msg-overview-grid > .msg-overview-body:only-child { grid-column: auto; }
	.msg-overview-grid > .msg-overview-cols { grid-column: auto; }
	.msg-overview-cols { grid-template-columns: 1fr; gap: 28px; }
	.msg-gov-block, .msg-verify-panel, .msg-unit-detail-body, .msg-contact-grid { grid-template-columns: 1fr; gap: 40px; }
	.msg-footer-top { grid-template-columns: 1fr 1fr; }
	.msg-directors-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
	:root { --gutter: 24px; }
	.msg-nav { grid-template-columns: auto 1fr; }
	.msg-nav-cta { display: none; }
	.msg-nav-wrap .wp-block-navigation { display: none; }
	.msg-section { padding: 72px 0; }
	.msg-hero-inner { padding: 72px var(--gutter) 88px; min-height: 520px; }
	.msg-units-grid, .msg-logo-grid, .msg-creds-row, .msg-hero-meta, .msg-footer-top { grid-template-columns: 1fr; }
	.msg-unit-detail { padding: 28px; }
	/* Stack the unit name above its "Visit website" button, and the
	   Head Office / Role / Website facts one per row. */
	.msg-unit-detail-head { grid-template-columns: 1fr; gap: 20px; justify-items: start; }
	.msg-unit-detail-meta { grid-template-columns: 1fr; gap: 16px; }
	.msg-unit-detail-meta .v { overflow-wrap: anywhere; }
	.msg-contact-card { padding: 28px 24px 26px; }
	.msg-verify-panel { padding: 28px; }
	.msg-director-card {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 24px;
	}
	.msg-director-card > *:not(.portrait):not(.portrait-placeholder):not(dialog) {
		grid-column: 1;
	}
	.msg-director-card .portrait,
	.msg-director-card .portrait-placeholder {
		grid-column: 1;
		width: 140px;
		height: 175px;
	}
	.msg-directors-compact { grid-template-columns: 1fr; }
	.msg-directors-compact li:nth-child(-n+2) { border-top: 1px solid var(--rule-soft); }
	.msg-directors-compact li:first-child { border-top: 0; }
	.msg-mgm-directors { padding: 28px 24px; }
	.msg-mgm-directors-grid { grid-template-columns: 1fr; gap: 0; }
	.msg-mgm-director-card:nth-child(-n+2) { border-top: 1px solid var(--rule-soft); padding-top: 22px; }
	.msg-mgm-director-card:first-child { border-top: 0; padding-top: 8px; }
}
