/*
 * MV+ theme styles. Tokens live in tokens.css.
 *
 * Contents: base · layout · header · drawer & search · ads · sections ·
 * buttons & chips · cards · section layouts · heroes & bands · archives ·
 * article · video · photo story · elections · awards · discover ·
 * footer · Dhivehi · responsive
 */

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

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

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 72px; }

body {
	margin: 0;
	background: var(--surface-page);
	color: var(--text-body);
	font: var(--weight-regular) var(--text-md)/var(--leading-body) var(--font-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	color: var(--text-strong);
	font-family: var(--font-head);
	font-weight: var(--weight-head);
	letter-spacing: var(--track-tight);
	line-height: var(--leading-heading);
	text-wrap: balance;
}

p { margin: 0; text-wrap: pretty; }

a { color: var(--text-link); text-decoration: none; transition: color var(--duration-fast) var(--ease-standard); }
a:hover { color: var(--text-link-hover); }

img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
figure { margin: 0; }
button { font: inherit; color: inherit; }
code, kbd, pre { font-family: var(--font-mono); }

:focus-visible { outline: none; box-shadow: var(--ring-focus); border-radius: var(--radius-xs); }

::selection { background: rgba(0, 201, 216, .3); color: var(--text-strong); }

[hidden] { display: none !important; }

.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;
}

.mv-skip-link {
	position: absolute; top: -100px; left: 16px; z-index: 1000;
	padding: 10px 16px;
	background: var(--action-fill); color: var(--on-action-fill);
	border-radius: var(--radius-pill);
	font-weight: var(--weight-medium);
}
.mv-skip-link:focus { top: 12px; color: var(--on-action-fill); }

.mv-icon { flex: 0 0 auto; display: inline-block; vertical-align: middle; }
[dir="rtl"] .mv-icon--dir { transform: scaleX(-1); }

.mv-muted { color: var(--text-muted); }

.mv-eyebrow {
	display: inline-block;
	font: var(--weight-semibold) var(--text-xs)/1.2 var(--font-display);
	letter-spacing: var(--track-caps);
	text-transform: uppercase;
	color: var(--text-accent);
}
a.mv-eyebrow:hover { color: var(--text-link-hover); }

/* ---------- Layout ---------- */

.mv-container {
	width: 100%;
	max-width: calc(var(--page-max) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.mv-container--narrow { max-width: calc(860px + 2 * var(--gutter)); }

.mv-main { display: block; min-height: 50vh; }

.mv-grid { display: grid; gap: var(--space-8) var(--space-7); }
.mv-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mv-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mv-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.mv-stack { display: grid; gap: var(--space-7); align-content: start; }
.mv-stack--lg { gap: var(--space-8); }

.mv-with-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: var(--space-10);
	align-items: start;
}

.mv-only-mobile { display: none !important; }

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

.mv-header {
	position: relative;
	z-index: 50;
	background: var(--surface-page);
	border-bottom: 1px solid var(--border-subtle);
}

.mv-header__bar {
	display: flex;
	align-items: center;
	gap: var(--space-5);
	height: 68px;
}

.mv-header__spacer { flex: 1 1 auto; }

.mv-header__actions { display: flex; align-items: center; gap: var(--space-2); }

.mv-logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.mv-logo img { width: 124px; height: auto; max-height: 44px; object-fit: contain; }
.mv-logo--drawer img { width: 96px; }
.mv-logo--footer img { width: 112px; }

.mv-icon-btn {
	display: inline-grid;
	place-items: center;
	width: 40px; height: 40px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-pill);
	background: transparent;
	color: var(--text-body);
	cursor: pointer;
	transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
}
.mv-icon-btn:hover { background: var(--surface-hover); color: var(--text-strong); }
.mv-icon-btn:active { background: var(--surface-active); }
.mv-icon-btn--sm { width: 32px; height: 32px; }
.mv-icon-btn--outline { box-shadow: inset 0 0 0 1px var(--border-subtle); }
.mv-icon-btn.is-done { color: var(--success-500); }

.mv-lang-btn {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 var(--space-5);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-pill);
	color: var(--text-body);
	font: var(--weight-medium) var(--text-sm)/1 var(--font-body);
	white-space: nowrap;
}
.mv-lang-btn:hover { border-color: var(--border-strong); color: var(--text-strong); }
.mv-lang-btn[lang="dv"] { font-family: var(--font-dv-body); font-size: var(--text-md); }

.mv-theme-icon { display: inline-grid; }
.mv-theme-icon--moon { display: none; }
[data-theme="light"] .mv-theme-icon--sun { display: none; }
[data-theme="light"] .mv-theme-icon--moon { display: inline-grid; }

.mv-rail { border-top: 1px solid var(--border-hairline); }

.mv-rail__menu,
.mv-sticky__menu {
	display: flex;
	gap: var(--space-8);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}
.mv-rail__menu::-webkit-scrollbar,
.mv-sticky__menu::-webkit-scrollbar { display: none; }

.mv-rail__menu a {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: 50px;
	color: var(--text-body);
	font: var(--weight-semibold) var(--text-md)/1 var(--font-body);
	white-space: nowrap;
}
.mv-rail__menu a:hover,
.mv-rail__menu .current-menu-item > a { color: var(--text-strong); }
.mv-rail__menu .current-menu-item > a::after {
	content: "";
	position: absolute;
	inset: auto 0 -1px;
	height: 2px;
	background: var(--marker);
	border-radius: 2px;
}

/* Compact bar that appears once the full header has scrolled away. */
.mv-sticky {
	position: fixed;
	inset: 0 0 auto;
	z-index: 60;
	background: var(--surface-overlay);
	-webkit-backdrop-filter: var(--blur-glass);
	backdrop-filter: var(--blur-glass);
	border-bottom: 1px solid var(--border-hairline);
	transform: translateY(-100%);
	transition: transform var(--duration-base) var(--ease-out);
	visibility: hidden;
}
.mv-sticky.is-visible { transform: none; visibility: visible; }
.mv-sticky__bar { display: flex; align-items: center; gap: var(--space-6); height: 56px; }
.mv-sticky__logo { display: inline-flex; flex: 0 0 auto; }
.mv-sticky__logo img { width: 40px; height: 40px; border-radius: 7px; }
.mv-sticky__nav { min-width: 0; flex: 1 1 auto; overflow: hidden; }
.mv-sticky__menu { gap: var(--space-6); }
.mv-sticky__menu a { color: var(--text-body); font: var(--weight-medium) var(--text-sm)/56px var(--font-body); white-space: nowrap; }
.mv-sticky__menu a:hover { color: var(--text-strong); }

body.admin-bar .mv-sticky { top: 32px; }

/* ---------- Search & drawer ---------- */

.mv-search { padding: var(--space-5) 0 var(--space-7); border-top: 1px solid var(--border-hairline); }

.mv-search-form {
	position: relative;
	display: flex;
	gap: var(--space-3);
	width: 100%;
	max-width: 640px;
}
.mv-search-form__icon {
	position: absolute;
	inset-inline-start: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--text-muted);
	pointer-events: none;
	display: inline-grid;
}

.mv-input,
.mv-comments input[type="text"],
.mv-comments input[type="email"],
.mv-comments input[type="url"],
.mv-comments textarea {
	width: 100%;
	min-height: 44px;
	padding: 0 var(--space-5);
	background: var(--surface-card);
	color: var(--text-strong);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-pill);
	font: inherit;
}
.mv-search-form .mv-input { padding-inline-start: 44px; }
.mv-comments textarea { padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); min-height: 140px; }
.mv-input:focus { border-color: var(--focus-ring); outline: none; }

.mv-drawer { position: fixed; inset: 0; z-index: 100; }
.mv-drawer__scrim { position: absolute; inset: 0; background: rgba(7, 9, 11, .6); }
.mv-drawer__panel {
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-7);
	width: min(400px, 90vw);
	padding: var(--space-5) var(--space-7) var(--space-8);
	background: var(--surface-page);
	border-inline-start: 1px solid var(--border-subtle);
	overflow-y: auto;
	box-shadow: var(--shadow-3);
	animation: mv-drawer-in var(--duration-base) var(--ease-out);
}
@keyframes mv-drawer-in { from { transform: translateX(24px); opacity: 0; } }
[dir="rtl"] .mv-drawer__panel { animation-name: mv-drawer-in-rtl; }
@keyframes mv-drawer-in-rtl { from { transform: translateX(-24px); opacity: 0; } }

.mv-drawer__head { display: flex; align-items: center; justify-content: space-between; }
.mv-drawer__menu { margin: 0; padding: 0; list-style: none; }
.mv-drawer__menu a {
	display: block;
	padding: var(--space-4) 0;
	border-bottom: 1px solid var(--border-hairline);
	color: var(--text-strong);
	font: var(--weight-semibold) var(--text-xl)/1.25 var(--font-body);
}
.mv-drawer__menu a:hover { color: var(--text-accent); }
.mv-drawer__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin-top: auto; }

body.mv-locked { overflow: hidden; }

/* ---------- Ads ---------- */

.mv-ad { display: grid; justify-items: center; gap: var(--space-2); }
.mv-ad img { margin-inline: auto; border-radius: var(--radius-sm); }
.mv-ad__label {
	font: var(--weight-medium) var(--text-3xs)/1 var(--font-body);
	letter-spacing: var(--track-caps);
	text-transform: uppercase;
	color: var(--text-faint);
}
.mv-ad-band .mv-ad { padding: var(--space-4) var(--gutter); }
.mv-ad--leader { margin-block: var(--space-8); }
.mv-ad--box { padding: var(--space-5); background: var(--surface-sunken); border-radius: var(--radius-card); }
.mv-ad--inline { margin-block: var(--space-8); padding-block: var(--space-5); border-block: 1px solid var(--border-hairline); }

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

.mv-section { padding-block: var(--section-y); }
.mv-section + .mv-section:not(.mv-section--sunken):not(.mv-section--flush) { padding-top: 0; }
.mv-section--sunken + .mv-section { padding-top: var(--section-y) !important; }
.mv-section--tight { padding-block: var(--space-8) var(--section-y); }
.mv-section--flush { padding-block: var(--space-7) 0 !important; }
.mv-section--flush + .mv-section { padding-top: var(--space-8) !important; }
.mv-section--sunken { background: var(--surface-sunken); }
.mv-section--lead { padding-top: var(--space-9); }

.mv-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--space-5);
	margin-bottom: var(--space-7);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--border-subtle);
}
.mv-section-head__titles { display: grid; gap: var(--space-3); }
.mv-section-head__title { font-size: var(--text-3xl); line-height: var(--leading-snug); }
.mv-column .mv-section-head__title { font-size: var(--text-2xl); }
.mv-section-head__links { display: flex; flex-wrap: wrap; gap: var(--space-6); }
.mv-section-head__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: var(--weight-medium) var(--text-sm)/1.3 var(--font-body);
	white-space: nowrap;
}
.mv-section-foot { margin-top: var(--space-7); }

/* ---------- Buttons, tabs, chips ---------- */

.mv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	min-height: 44px;
	padding: 0 var(--space-6);
	border: 0;
	border-radius: var(--radius-pill);
	font: var(--weight-medium) var(--text-sm)/1 var(--font-body);
	white-space: nowrap;
	cursor: pointer;
	transition: box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);
}
.mv-btn:active { transform: scale(.97); }
.mv-btn--primary { background: var(--action-fill); color: var(--on-action-fill); }
.mv-btn--primary:hover { background: var(--action-fill-hover); color: var(--on-action-fill); }
.mv-btn--secondary { background: transparent; color: var(--text-strong); box-shadow: inset 0 0 0 1px var(--border-strong); }
.mv-btn--secondary:hover { color: var(--text-strong); background: var(--surface-hover); }
.mv-btn--sm { min-height: 36px; padding: 0 var(--space-5); font-size: var(--text-xs); }
.mv-btn[disabled] { opacity: .6; cursor: progress; }

.mv-tab {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 var(--space-5);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-pill);
	background: transparent;
	color: var(--text-body);
	font: var(--weight-medium) var(--text-sm)/1 var(--font-body);
	cursor: pointer;
}
.mv-tab:hover { border-color: var(--border-strong); color: var(--text-strong); }
.mv-tab.is-current { background: var(--action-fill); border-color: transparent; color: var(--on-action-fill); }

.mv-chips { display: inline-flex; flex-wrap: wrap; gap: var(--space-3); }
.mv-chip {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 0 var(--space-4);
	border-radius: var(--radius-pill);
	background: var(--surface-active);
	color: var(--text-body);
	font: var(--weight-medium) var(--text-2xs)/1 var(--font-body);
}
.mv-chip:hover { color: var(--text-strong); background: var(--surface-hover); box-shadow: inset 0 0 0 1px var(--border-subtle); }

.mv-load-more { display: flex; justify-content: center; margin-top: var(--space-8); }

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

.mv-media {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-media);
	background: var(--surface-placeholder);
}
.mv-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--duration-slow) var(--ease-out);
}
.mv-media__placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: var(--mv-gradient-soft);
	color: var(--text-faint);
}
.mv-media__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: grid;
	place-items: center;
	width: 56px; height: 56px;
	border-radius: 50%;
	background: var(--action-fill);
	color: var(--on-action-fill);
	box-shadow: var(--shadow-2);
}
a:hover .mv-media img,
.mv-card:hover .mv-media img { transform: scale(1.03); }

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

.mv-card { position: relative; display: grid; gap: var(--space-4); align-content: start; min-width: 0; }
.mv-card__body { display: grid; gap: var(--space-3); align-content: start; min-width: 0; }
.mv-card__media-link { display: block; }
.mv-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }

.mv-card__title {
	color: var(--text-strong);
	font: var(--weight-head) var(--text-xl)/var(--leading-snug) var(--font-head);
	letter-spacing: var(--track-tight);
}
.mv-card__title a { color: inherit; }
.mv-card__title a:hover { color: var(--text-link-hover); }
.mv-card__title--lead { font-weight: var(--weight-title); font-size: clamp(30px, 5.2vw, var(--text-5xl)); line-height: var(--leading-tight); }
.mv-card__title--lg { font-size: var(--text-2xl); }
.mv-card__title--xl { font-size: clamp(26px, 3vw, var(--text-4xl)); line-height: var(--leading-tight); }

.mv-card__excerpt { color: var(--text-muted); font-size: var(--text-sm); line-height: var(--leading-body); }
.mv-card__excerpt--lg { font-size: var(--text-lg); max-width: 56ch; }
.mv-card__time { color: var(--text-muted); font: var(--text-xs)/1.4 var(--font-body); font-variant-numeric: tabular-nums; }
.mv-card__caption { color: var(--text-faint); font-size: var(--text-xs); }
.mv-card__shop { color: var(--text-body); font-weight: var(--weight-medium); }
.mv-card__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4); }

.mv-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-5);
	color: var(--text-muted);
	font-size: var(--text-sm);
}
.mv-byline__author { color: var(--text-strong); font-weight: var(--weight-medium); }
.mv-byline__read { display: inline-flex; align-items: center; gap: 5px; }

.mv-card--lead { gap: var(--space-6); }
/* Category sits tight to the headline; the excerpt and byline step further away. */
.mv-card--lead .mv-card__body { gap: var(--space-4); }
.mv-card--lead .mv-card__excerpt { margin-top: var(--space-2); color: var(--text-body); }
.mv-card--lead .mv-byline { margin-top: var(--space-3); }

.mv-card--compact .mv-card__title { font-size: var(--text-lg); }

.mv-card--text { padding-top: var(--space-6); border-top: 1px solid var(--border-hairline); gap: var(--space-3); }

/* Latest list */
.mv-latest {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--space-10);
	margin: 0;
	padding: 0;
	list-style: none;
}
.mv-latest--tight { grid-template-columns: 1fr; }
.mv-card--list { display: block; border-bottom: 1px solid var(--border-hairline); }
.mv-card--list > a {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: var(--space-5);
	padding-block: var(--space-5);
	color: inherit;
}
.mv-latest--tight .mv-card--list > a { grid-template-columns: 72px minmax(0, 1fr); padding-block: var(--space-4); }
.mv-card--list .mv-card__time { padding-top: 3px; }
.mv-card--list__text { display: grid; gap: var(--space-2); }
.mv-card--list .mv-card__title { font-size: var(--text-md); }
.mv-card--list > a:hover .mv-card__title { color: var(--text-link-hover); }

.mv-card--thumb { display: block; border-bottom: 1px solid var(--border-hairline); }
.mv-card--thumb > a {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: var(--space-5);
	align-items: start;
	padding-block: var(--space-5);
	color: inherit;
}
.mv-card--thumb .mv-media { border-radius: var(--radius-sm); }
.mv-card--thumb .mv-card__title { font-size: var(--text-md); }
.mv-card--thumb > a:hover .mv-card__title { color: var(--text-link-hover); }
.mv-card--thumb .mv-card__caption { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.mv-card--thumb .mv-card__caption > span + .mv-card__time::before { content: "·"; margin-inline-end: var(--space-3); }
.mv-card--thumb .mv-card__time { font-size: inherit; }

/* Photo Stories: full-width band with the 4:5 cover shown whole over a blurred copy. */
.mv-psband {
	position: relative;
	display: block;
	margin-top: var(--space-8);
	overflow: hidden;
	background: var(--ink-1000);
	color: var(--white);
	isolation: isolate;
}
.mv-psband__backdrop {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: blur(48px) saturate(1.2) brightness(.42);
	transform: scale(1.2);
}
.mv-psband__inner {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
	gap: var(--space-11);
	align-items: center;
	padding-block: var(--space-10);
}
.mv-psband__photo .mv-media { border-radius: var(--radius-md); box-shadow: var(--shadow-3); }
.mv-psband__text { display: grid; gap: var(--space-5); max-width: 720px; }
.mv-psband__title {
	font: var(--weight-title) clamp(30px, 3.4vw, 44px)/var(--leading-tight) var(--font-head);
	letter-spacing: var(--track-tight);
}
.mv-psband:hover .mv-psband__title { color: var(--lagoon-300); }
.mv-psband__excerpt { color: var(--grey-200); font-size: var(--text-lg); line-height: var(--leading-body); }
.mv-psband__meta { color: var(--grey-300); font-size: var(--text-sm); }
.mv-psband .mv-eyebrow { color: var(--lagoon-500); }
.mv-photostories__grid { margin-top: var(--space-9); }

.mv-card--photo > a { display: grid; gap: var(--space-4); color: inherit; }
.mv-card--photo .mv-card__title { font-size: var(--text-lg); }
.mv-card--photo > a:hover .mv-card__title { color: var(--text-link-hover); }

/* Numbered list */
.mv-numbered { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; align-content: start; }
.mv-card--numbered {
	grid-template-columns: 44px minmax(0, 1fr) 112px;
	align-items: start;
	gap: var(--space-5);
	padding-block: var(--space-6);
	border-bottom: 1px solid var(--border-hairline);
}
.mv-card--numbered:first-child { padding-top: 0; }
.mv-card__number {
	font: var(--weight-number) var(--text-3xl)/1 var(--font-head);
	color: var(--text-accent);
}
.mv-card--numbered .mv-card__title { font-size: var(--text-lg); }

/* Video rail */
.mv-hscroll {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(260px, 300px);
	gap: var(--space-7);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: var(--space-2);
}
.mv-hscroll::-webkit-scrollbar { display: none; }
.mv-hscroll > * { scroll-snap-align: start; }
.mv-card--row { grid-template-columns: minmax(0, 1fr) 31%; gap: var(--space-5); align-items: start; }
.mv-card--row .mv-card__excerpt { font-size: var(--text-md); }

.mv-card--media > a { display: grid; gap: var(--space-4); color: inherit; }
.mv-card--media .mv-card__title { font-size: var(--text-lg); }
.mv-card--media > a:hover .mv-card__title { color: var(--text-link-hover); }
.mv-section-head--rail { align-items: flex-end; }
.mv-rail-controls { display: flex; gap: var(--space-3); }

/* Overlay */
.mv-card--overlay > a { position: relative; display: block; color: var(--white); }
.mv-card--overlay .mv-media { border-radius: var(--radius-card); }
.mv-card--overlay .mv-media::after { content: ""; position: absolute; inset: 0; background: var(--scrim-bottom); }
.mv-card--overlay .mv-card__body {
	position: absolute;
	inset: auto 0 0;
	z-index: 1;
	padding: var(--space-8);
	gap: var(--space-4);
}
.mv-card--overlay .mv-card__title { color: var(--white); }
.mv-card--overlay .mv-card__excerpt { color: rgba(255, 255, 255, .82); font-size: var(--text-md); max-width: 52ch; }
.mv-card--overlay .mv-card__caption { color: rgba(255, 255, 255, .72); }
.mv-card--overlay .mv-eyebrow { color: var(--lagoon-500); }

/* Tiles */
.mv-tile { display: block; border-radius: var(--radius-media); }

/* ---------- Section layouts ---------- */

.mv-lead {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr);
	gap: var(--space-10);
	align-items: start;
}
.mv-lead__side { display: grid; gap: var(--space-8); }
.mv-lead__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-9) var(--space-10);
	margin-top: var(--space-10);
	padding-top: var(--space-9);
	border-top: 1px solid var(--border-hairline);
}

.mv-columns { display: grid; gap: var(--space-10); }
.mv-columns--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mv-columns--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mv-column { display: grid; gap: var(--space-5); align-content: start; }
.mv-column .mv-section-head { margin-bottom: var(--space-3); }

.mv-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: var(--space-10);
	align-items: start;
}
.mv-feature--photo { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.mv-feature--portrait { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mv-feature--portrait .mv-card--portrait .mv-card__title { font-size: clamp(26px, 2.6vw, var(--text-3xl)); line-height: var(--leading-snug); }
.mv-feature--portrait .mv-card--portrait .mv-card__excerpt { font-size: var(--text-md); }
.mv-lifestyle__list .mv-card--row {
	grid-template-columns: minmax(0, 1fr) 136px;
	gap: var(--space-6);
	padding-bottom: var(--space-8);
	border-bottom: 1px solid var(--border-hairline);
}
.mv-feature .mv-card--standard:first-child .mv-card__title { font-size: var(--text-3xl); line-height: var(--leading-snug); }
.mv-feature .mv-card--standard:first-child .mv-card__excerpt { font-size: var(--text-md); }

.mv-archive-lead { margin-bottom: var(--space-10); padding-bottom: var(--space-10); border-bottom: 1px solid var(--border-hairline); }
.mv-archive-lead .mv-card--lead {
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	align-items: center;
	gap: var(--space-10);
}

/* ---------- Heroes, promo, bands ---------- */

.mv-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(260px, 36vw, 440px);
	overflow: hidden;
	background: var(--surface-sunken);
	isolation: isolate;
}
.mv-hero__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.mv-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--scrim-bottom); }
.mv-hero--plain { min-height: 220px; background: var(--mv-gradient-soft); }
.mv-hero--plain::after { display: none; }
.mv-hero__inner { display: grid; gap: var(--space-4); padding-block: var(--space-10) var(--space-8); }
.mv-hero__title { color: var(--white); font-weight: var(--weight-title); font-size: clamp(32px, 5vw, var(--text-6xl)); line-height: var(--leading-tight); }
.mv-hero--plain .mv-hero__title { color: var(--text-strong); }
.mv-hero__subtitle { color: rgba(255, 255, 255, .82); font-size: var(--text-lg); }
.mv-hero--plain .mv-hero__subtitle { color: var(--text-muted); }
.mv-hero__nav { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-3); }
.mv-hero .mv-tab:not(.is-current) { color: var(--white); border-color: rgba(255, 255, 255, .4); background: rgba(7, 9, 11, .3); -webkit-backdrop-filter: var(--blur-glass); backdrop-filter: var(--blur-glass); }
.mv-hero--plain .mv-tab:not(.is-current) { color: var(--text-body); border-color: var(--border-subtle); background: transparent; }

.mv-promo {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 200px;
	border-radius: var(--radius-card);
	overflow: hidden;
	background: var(--mv-gradient-diag);
	isolation: isolate;
}
.mv-promo__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.mv-promo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7, 9, 11, .82) 0%, rgba(7, 9, 11, .2) 70%); }
.mv-promo__body { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-5); width: 100%; padding: var(--space-8); }
.mv-promo__title { font-size: clamp(28px, 4vw, var(--text-5xl)); line-height: var(--leading-tight); }
.mv-promo__title a { color: var(--white); }
.mv-promo__links { display: flex; gap: var(--space-3); }
.mv-promo .mv-tab { color: var(--white); border-color: rgba(255, 255, 255, .45); }

.mv-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-7);
	padding: var(--space-9);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
	background: var(--mv-gradient-soft);
}
.mv-band > div { display: grid; gap: var(--space-3); max-width: 60ch; }
.mv-band__title { font-size: var(--text-3xl); line-height: var(--leading-snug); }

.mv-awards {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: var(--space-10);
	padding: var(--space-10);
	border-radius: var(--radius-card);
	background: var(--surface-card);
	box-shadow: inset 0 0 0 1px var(--border-hairline);
}
.mv-awards__intro { display: grid; gap: var(--space-5); justify-items: start; align-content: start; }
.mv-awards__title { font-size: var(--text-3xl); line-height: var(--leading-snug); }
.mv-awards__text { color: var(--text-muted); max-width: 56ch; }
.mv-awards__list { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; align-content: start; }
.mv-awards__item {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	align-items: center;
	gap: var(--space-5);
	padding: var(--space-4);
	border-radius: var(--radius-md);
	background: var(--surface-raised);
}
.mv-awards__item > span:last-child { display: grid; gap: var(--space-2); }
.mv-awards__logo { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--white); }
.mv-awards__logo img { width: 100%; height: 100%; object-fit: contain; }
.mv-awards__name { color: var(--text-strong); font: var(--weight-head) var(--text-md)/1.3 var(--font-head); }

/* ---------- Page heads, archives, pagination ---------- */

.mv-page-head { padding-block: var(--space-10) var(--space-7); border-bottom: 1px solid var(--border-hairline); }
.mv-page-head .mv-container { display: grid; gap: var(--space-3); }
.mv-page-head__row { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--space-5) !important; }
.mv-page-head__title { font-weight: var(--weight-title); font-size: clamp(32px, 4.4vw, var(--text-5xl)); line-height: var(--leading-tight); }
.mv-page-head__desc { color: var(--text-muted); font-size: var(--text-lg); max-width: 62ch; }
.mv-page-head__search { margin-top: var(--space-3); min-width: min(100%, 360px); }

.mv-pagination { display: flex; justify-content: center; margin-top: var(--space-10); }
.mv-pagination .nav-links,
.mv-pagination { flex-wrap: wrap; gap: var(--space-2); }
.mv-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 var(--space-3);
	border-radius: var(--radius-pill);
	color: var(--text-body);
	font: var(--weight-medium) var(--text-sm)/1 var(--font-body);
}
.mv-pagination a.page-numbers:hover { background: var(--surface-hover); color: var(--text-strong); }
.mv-pagination .current { background: var(--action-fill); color: var(--on-action-fill); }
.mv-pagination .dots { color: var(--text-faint); }

.mv-notfound .mv-container { display: grid; gap: var(--space-5); justify-items: start; }

/* ---------- Article ---------- */

.mv-article { padding-top: var(--space-10); }

/* Header, photo and body share one centred column, the headline's width. */
.mv-article { --article-max: calc(900px + 2 * var(--gutter)); }
.mv-article__header { display: grid; gap: var(--space-5); max-width: var(--article-max); }
.mv-article__title { font-weight: var(--weight-title); font-size: clamp(30px, 2vw + 20px, 40px); line-height: calc(1em + 6px); } /* web H1: Roboto Bold 40/46 desktop, 30/36 mobile */
.mv-article__dek { color: var(--text-muted); font-size: var(--text-xl); line-height: 1.45; max-width: 60ch; }
.mv-article__byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding-block: var(--space-4);
	border-block: 1px solid var(--border-hairline);
}
.mv-article__tools { display: flex; align-items: center; gap: var(--space-4); }
.mv-share { display: flex; gap: var(--space-1); }

.mv-article__figure { max-width: var(--article-max); margin-top: var(--space-8); }
.mv-article__figure img { width: 100%; border-radius: var(--radius-media); }
.mv-article__figure figcaption { margin-top: var(--space-3); color: var(--text-faint); font-size: var(--text-xs); }

.mv-article__body { max-width: var(--article-max); padding-block: var(--space-9) var(--section-y); }
/* Body lines stay at about 45–75 characters; the headline and photo keep the
   wider column and the text shares their starting edge. */
.mv-article__body .mv-prose { max-width: var(--prose-max); }
.mv-article__ad { margin-top: var(--space-9); }

.mv-aside-block { display: grid; gap: var(--space-4); padding: var(--space-6); border-radius: var(--radius-card); background: var(--surface-card); box-shadow: inset 0 0 0 1px var(--border-hairline); }
.mv-aside-block__title {
	font: var(--weight-medium) var(--text-2xs)/1.2 var(--font-display);
	letter-spacing: var(--track-caps);
	text-transform: uppercase;
	color: var(--text-muted);
}
.mv-aside-block .mv-card--list:last-child { border-bottom: 0; }
.mv-sidebar { display: grid; gap: var(--space-7); }

.mv-article__tags { margin-top: var(--space-9); }

/* Prose */
.mv-prose { color: var(--text-body); font-size: var(--text-lg); line-height: var(--leading-loose); overflow-wrap: break-word; }
/* :where() keeps the reset at zero specificity so the sibling spacing wins. */
.mv-prose :where(p) { margin: 0; }
.mv-prose > * + * { margin-top: 1.15em; }
.mv-prose h2, .mv-prose h3, .mv-prose h4 { margin-top: 1.8em; font-weight: var(--weight-sub); line-height: 1.2; } /* subheads: Roboto Medium 22–28 */
.mv-prose h2 { font-size: 28px; }
.mv-prose h3 { font-size: 24px; }
.mv-prose h4 { font-size: var(--text-xl); }
.mv-prose a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.mv-prose strong { color: var(--text-strong); font-weight: var(--weight-medium); }
.mv-prose ul, .mv-prose ol { padding-inline-start: 1.3em; }
.mv-prose li + li { margin-top: .45em; }
.mv-prose blockquote {
	margin-inline: 0;
	padding-inline-start: var(--space-7);
	border-inline-start: 3px solid var(--text-accent);
	color: var(--text-strong);
	font: var(--weight-head) var(--text-2xl)/1.35 var(--font-head);
}
.mv-prose img, .mv-prose figure img { border-radius: var(--radius-media); }
.mv-prose figcaption, .mv-prose .wp-caption-text, .mv-prose .wp-element-caption { margin-top: var(--space-3); color: var(--text-faint); font-size: var(--text-xs); line-height: 1.5; }
.mv-prose iframe, .mv-prose .wp-block-embed iframe { width: 100%; border: 0; border-radius: var(--radius-media); }
.mv-prose .wp-block-embed.is-type-video iframe, .mv-prose iframe[src*="youtube"] { aspect-ratio: 16 / 9; height: auto; }
.mv-prose table { width: 100%; border-collapse: collapse; font-size: var(--text-md); }
.mv-prose th, .mv-prose td { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--border-hairline); text-align: start; }
.mv-prose hr { border: 0; border-top: 1px solid var(--border-subtle); }
.mv-prose .alignwide { margin-inline: calc(-1 * var(--space-11)); }
.mv-prose--feature h2 { margin-top: 0; font-size: var(--text-4xl); }
.mv-prose--feature h3 { color: var(--text-strong); }
.mv-static-section + .mv-static-section { margin-top: var(--space-12); padding-top: var(--space-10); border-top: 1px solid var(--border-subtle); }

.mv-comments-wrap { padding-bottom: var(--section-y); max-width: calc(var(--prose-max) + 2 * var(--gutter)); margin-inline: 0; }
.mv-comments { display: grid; gap: var(--space-7); }
.mv-comments__list { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-5); }
.mv-comments .comment-body { padding: var(--space-5); border-radius: var(--radius-md); background: var(--surface-card); }
.mv-comments .comment-form { display: grid; gap: var(--space-4); }
.mv-comments label { display: block; margin-bottom: var(--space-2); color: var(--text-muted); font-size: var(--text-sm); }

/* ---------- Video post ---------- */

.mv-video { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-10); align-items: start; padding-bottom: var(--section-y); }
.mv-video__player { position: sticky; top: 80px; }
.mv-video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-card); overflow: hidden; background: var(--surface-sunken); }
.mv-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mv-video__body { display: grid; gap: var(--space-5); align-content: start; }
.mv-video__body .mv-prose { font-size: var(--text-md); }
/* Upright videos: the player takes the video's shape (4:5 by default, 9:16
   for Reels) and is sized to fit the screen, beside a wider story column.
   Landscape posts keep the 16:9 layout above. */
.mv-video--portrait { grid-template-columns: minmax(280px, 480px) minmax(0, 1fr); }
.mv-video--portrait .mv-video__frame {
	aspect-ratio: 4 / 5;
	width: min(100%, calc((100vh - 120px) * 4 / 5));
	margin-inline: auto;
	background: #000;
}
.mv-video--tall { grid-template-columns: minmax(260px, 400px) minmax(0, 1fr); }
.mv-video--tall .mv-video__frame { aspect-ratio: 9 / 16; width: min(100%, calc((100vh - 120px) * 9 / 16)); }

/* ---------- Photo story ---------- */

.mv-photostory__stream { padding-block: var(--space-9) var(--section-y); }
.mv-photostory__stream > * {
	width: 100%;
	max-width: calc(var(--prose-max) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
	color: var(--text-body);
	font-size: var(--text-lg);
	line-height: var(--leading-loose);
}
.mv-photostory__stream > * + * { margin-top: var(--space-8); }
.mv-photostory__stream > .wp-block-image,
.mv-photostory__stream > figure,
.mv-photostory__stream > .wp-block-gallery { max-width: calc(1080px + 2 * var(--gutter)); }
.mv-photostory__stream img { width: 100%; max-height: 92vh; object-fit: contain; margin-inline: auto; border-radius: var(--radius-media); cursor: zoom-in; }
.mv-photostory__stream figcaption { margin-top: var(--space-3); color: var(--text-muted); font-size: var(--text-sm); text-align: center; }
.mv-photostory__stream .mv-ad { max-width: none; }

.mv-lightbox {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	background: rgba(7, 9, 11, .97);
	color: var(--white);
}
.mv-lightbox__bar { display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) var(--space-5); }
.mv-lightbox__bar .mv-icon-btn { color: var(--white); }
.mv-lightbox__counter { font: var(--text-sm)/1 var(--font-mono); color: var(--grey-300); }
.mv-lightbox__figure { display: grid; grid-template-rows: minmax(0, 1fr) auto; place-items: center; gap: var(--space-4); padding: 0 72px var(--space-7); min-height: 0; touch-action: pan-y; }
.mv-lightbox__figure img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius-sm); }
.mv-lightbox__figure figcaption { max-width: 72ch; color: var(--grey-300); font-size: var(--text-sm); text-align: center; }
.mv-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; color: var(--white); background: rgba(255, 255, 255, .08); }
.mv-lightbox__nav:hover { background: rgba(255, 255, 255, .16); color: var(--white); }
.mv-lightbox__nav--prev { left: var(--space-4); }
.mv-lightbox__nav--next { right: var(--space-4); }

/* WP Reactions Lite hardcodes a black inline heading colour. */
.wpra-reactions-wrap { margin-top: var(--space-9); }
.wpra-call-to-action {
	color: var(--text-strong) !important;
	font: var(--weight-head) var(--text-xl)/1.3 var(--font-head) !important;
}

/* ---------- Visual brief (MV+ Quotes, Infographics) ---------- */

.mv-brief__layout {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: var(--space-11);
	align-items: start;
	padding-bottom: var(--section-y);
}
.mv-brief__visual { position: sticky; top: 80px; }
.mv-brief__visual figure { margin: 0; }
.mv-brief__visual img { width: 100%; height: auto; max-height: calc(100vh - 120px); object-fit: contain; border-radius: var(--radius-card); background: var(--surface-placeholder); }
.mv-brief__visual figcaption { margin-top: var(--space-3); color: var(--text-faint); font-size: var(--text-xs); }
.mv-brief__text { display: grid; gap: var(--space-6); align-content: start; max-width: 640px; }
/* The "title" is a summary paragraph, so it's set as a standfirst, not a display headline. */
.mv-brief__title { font-size: clamp(20px, 1.9vw, 26px); line-height: 1.42; letter-spacing: 0; text-wrap: pretty; }
.mv-brief__body { font-size: var(--text-md); }

.mv-card--brief > a { display: grid; gap: var(--space-4); color: inherit; }
.mv-card--brief .mv-card__title { font-size: var(--text-md); line-height: 1.4; }
.mv-card--brief > a:hover .mv-card__title { color: var(--text-link-hover); }

/* Long summary titles are capped at three lines in listings. */
.mv-card--clamp .mv-card__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

/* ---------- Elections ---------- */

.mv-result {
	display: grid;
	gap: var(--space-6);
	padding: var(--space-8);
	border-radius: var(--radius-card);
	background: var(--surface-card);
	box-shadow: inset 0 0 0 1px var(--border-hairline);
}
.mv-result__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-5); }
.mv-result__head > div:first-child { display: grid; gap: var(--space-3); }
.mv-result__code {
	justify-self: start;
	padding: 3px 10px;
	border-radius: var(--radius-pill);
	background: var(--surface-active);
	color: var(--text-accent);
	font: var(--text-xs)/1.3 var(--font-mono);
}
.mv-result__name { font-size: var(--text-3xl); line-height: var(--leading-snug); }
.mv-result__name a { color: inherit; }
.mv-result__name a:hover { color: var(--text-link-hover); }
.mv-result__stats { display: flex; flex-wrap: wrap; gap: var(--space-7); margin: 0; }
.mv-result__stats dt { color: var(--text-faint); font-size: var(--text-xs); }
.mv-result__stats dd { margin: 0; color: var(--text-strong); font: var(--weight-medium) var(--text-lg)/1.3 var(--font-mono); }
.mv-result__stats--wide { margin-bottom: var(--space-8); gap: var(--space-10); }
.mv-result__stats--wide dd { font-size: var(--text-3xl); }
.mv-result__list { display: grid; margin: 0; padding: 0; list-style: none; }

.mv-candidate {
	--bar: var(--grey-400);
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--space-5);
	padding-block: var(--space-5);
	border-top: 1px solid var(--border-hairline);
}
.mv-candidate.is-leading { --bar: var(--data-neutral); }
.mv-candidate__photo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--surface-placeholder); }
.mv-candidate__photo img { width: 100%; height: 100%; object-fit: cover; }
.mv-candidate__info { display: grid; gap: var(--space-2); min-width: 0; }
.mv-candidate__name { color: var(--text-strong); font: var(--weight-head) var(--text-lg)/1.25 var(--font-head); }
.mv-candidate__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); color: var(--text-muted); font-size: var(--text-xs); }
.mv-candidate__no { font-family: var(--font-mono); }
.mv-candidate__party { display: inline-flex; align-items: center; gap: 6px; }
.mv-candidate__party img { width: 18px; height: 18px; object-fit: contain; border-radius: 3px; background: var(--white); }
.mv-candidate__bar { display: block; height: 6px; margin-top: var(--space-2); border-radius: var(--radius-pill); background: var(--surface-active); overflow: hidden; }
.mv-candidate__bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--bar); transition: width var(--duration-slow) var(--ease-out); }
.mv-candidate.is-visible .mv-candidate__bar span, html:not(.js) .mv-candidate__bar span { width: var(--share); }
.mv-candidate__result { display: grid; justify-items: end; gap: 2px; text-align: end; }
.mv-candidate__percent { color: var(--text-strong); font: var(--weight-medium) var(--text-2xl)/1 var(--font-mono); }
.mv-candidate.is-leading .mv-candidate__percent { color: var(--text-accent); }
.mv-candidate__votes { color: var(--text-muted); font-size: var(--text-xs); }

.mv-tally-bar {
	position: relative;
	display: flex;
	height: 16px;
	margin-bottom: var(--space-8);
	border-radius: var(--radius-pill);
	background: var(--surface-active);
	overflow: hidden;
}
.mv-tally-bar__half { position: absolute; inset-block: -4px; left: 50%; z-index: 1; width: 2px; background: var(--text-strong); opacity: .6; }
.mv-tally-bar__seg { height: 100%; }
.mv-tally-bar__seg:nth-of-type(8n+2) { background: var(--series-1); }
.mv-tally-bar__seg:nth-of-type(8n+3) { background: var(--series-2); }
.mv-tally-bar__seg:nth-of-type(8n+4) { background: var(--series-3); }
.mv-tally-bar__seg:nth-of-type(8n+5) { background: var(--series-4); }
.mv-tally-bar__seg:nth-of-type(8n+6) { background: var(--series-5); }
.mv-tally-bar__seg:nth-of-type(8n+7) { background: var(--series-6); }
.mv-tally-bar__seg:nth-of-type(8n+8) { background: var(--series-7); }
.mv-tally-bar__seg:nth-of-type(8n+9) { background: var(--series-8); }

.mv-tally { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
.mv-tally__item {
	display: grid;
	justify-items: center;
	gap: var(--space-2);
	padding: var(--space-6) var(--space-4);
	border-radius: var(--radius-card);
	background: var(--surface-card);
	box-shadow: inset 0 0 0 1px var(--border-hairline);
	text-align: center;
}
.mv-tally__item::before { content: ""; width: 24px; height: 4px; margin-bottom: var(--space-3); border-radius: var(--radius-pill); background: var(--series-8); }
.mv-tally__item:nth-child(8n+1)::before { background: var(--series-1); }
.mv-tally__item:nth-child(8n+2)::before { background: var(--series-2); }
.mv-tally__item:nth-child(8n+3)::before { background: var(--series-3); }
.mv-tally__item:nth-child(8n+4)::before { background: var(--series-4); }
.mv-tally__item:nth-child(8n+5)::before { background: var(--series-5); }
.mv-tally__item:nth-child(8n+6)::before { background: var(--series-6); }
.mv-tally__item:nth-child(8n+7)::before { background: var(--series-7); }
.mv-tally__item img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; background: var(--surface-placeholder); }
.mv-tally__name { margin-top: var(--space-3); color: var(--text-strong); font: var(--weight-head) var(--text-md)/1.25 var(--font-head); }
.mv-tally__percent { color: var(--text-strong); font: var(--weight-medium) var(--text-2xl)/1.1 var(--font-mono); }
.mv-tally__votes { color: var(--text-muted); font-size: var(--text-xs); }

.mv-accordion { display: grid; border-top: 1px solid var(--border-subtle); }
.mv-accordion__item { border-bottom: 1px solid var(--border-subtle); }
.mv-accordion__summary {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-6) var(--space-2);
	color: var(--text-strong);
	font: var(--weight-head) var(--text-xl)/1.2 var(--font-head);
	list-style: none;
	cursor: pointer;
}
.mv-accordion__summary::-webkit-details-marker { display: none; }
.mv-accordion__summary > span:first-child { flex: 1 1 auto; }
.mv-accordion__summary .mv-icon { color: var(--text-muted); transition: transform var(--duration-base) var(--ease-standard); }
.mv-accordion__item[open] .mv-accordion__summary .mv-icon { transform: rotate(180deg); }
.mv-accordion__count { padding: 2px 10px; border-radius: var(--radius-pill); background: var(--surface-active); color: var(--text-muted); font: var(--text-xs)/1.4 var(--font-mono); }
.mv-accordion__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0; padding: 0 0 var(--space-7); list-style: none; }

.mv-const-link {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 2px var(--space-4);
	padding: var(--space-4) var(--space-5);
	border-radius: var(--radius-md);
	background: var(--surface-card);
	color: inherit;
}
.mv-const-link:hover { background: var(--surface-raised); color: inherit; }
.mv-const-link__code { grid-row: span 2; align-self: center; color: var(--text-accent); font: var(--text-sm)/1 var(--font-mono); }
.mv-const-link__name { color: var(--text-strong); font-weight: var(--weight-medium); }
.mv-const-link__date { color: var(--text-faint); font-size: var(--text-xs); }

.mv-candidate-profile { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: var(--space-11); align-items: start; }
.mv-candidate-profile__card { position: relative; display: grid; gap: var(--space-5); padding: var(--space-6); border-radius: var(--radius-card); background: var(--surface-card); box-shadow: inset 0 0 0 1px var(--border-hairline); }
.mv-candidate-profile__number {
	position: absolute;
	top: var(--space-8);
	inset-inline-end: var(--space-8);
	display: grid;
	place-items: center;
	width: 56px; height: 56px;
	border-radius: 50%;
	background: var(--action-fill);
	color: var(--on-action-fill);
	font: var(--weight-head) var(--text-2xl)/1 var(--font-head);
}
.mv-candidate-profile__card .mv-article__title { font-size: var(--text-3xl); }
.mv-candidate-profile__party { color: var(--text-accent); font-weight: var(--weight-medium); }
.mv-candidate-profile__stance { display: grid; gap: var(--space-6); }
.mv-details { display: grid; gap: var(--space-4); margin: 0; padding-top: var(--space-5); border-top: 1px solid var(--border-hairline); }
.mv-details dt { color: var(--text-faint); font-size: var(--text-xs); }
.mv-details dd { margin: 0; color: var(--text-strong); }
.mv-bullets { margin: 0; padding-inline-start: 1.1em; display: grid; gap: var(--space-3); color: var(--text-body); font-size: var(--text-sm); }

/* ---------- Community Impact Awards ---------- */

.mv-filter { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-8); }

.mv-ngo {
	display: grid;
	align-content: start;
	border-radius: var(--radius-card);
	background: var(--surface-card);
	box-shadow: inset 0 0 0 1px var(--border-hairline);
	overflow: hidden;
}
.mv-ngo__visual { position: relative; }
.mv-ngo__visual .mv-media { border-radius: 0; }
.mv-ngo__logo, .mv-card--discover__logo, .mv-discover-single__logo {
	position: absolute;
	inset-inline-start: var(--space-5);
	bottom: calc(-1 * var(--space-7));
	display: grid;
	place-items: center;
	width: 64px; height: 64px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--white);
	box-shadow: 0 0 0 4px var(--surface-card), var(--shadow-2);
}
.mv-ngo__logo img, .mv-card--discover__logo img, .mv-discover-single__logo img { width: 100%; height: 100%; object-fit: contain; }
.mv-ngo__body { display: grid; gap: var(--space-5); padding: var(--space-10) var(--space-6) var(--space-6); }
.mv-ngo__text { color: var(--text-muted); font-size: var(--text-sm); }
.mv-ngo__text > * + * { margin-top: .8em; }
.mv-ngo__donate { display: grid; gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); }
.mv-ngo__label { color: var(--text-muted); font: var(--weight-medium) var(--text-2xs)/1.2 var(--font-display); letter-spacing: var(--track-caps); text-transform: uppercase; }
.mv-account { display: flex; align-items: center; gap: var(--space-4); }
.mv-account__currency { min-width: 36px; color: var(--text-accent); font: var(--weight-medium) var(--text-xs)/1 var(--font-mono); }
.mv-account__number { flex: 1 1 auto; color: var(--text-strong); font-size: var(--text-sm); letter-spacing: .04em; }

.mv-social { display: flex; flex-wrap: wrap; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.mv-social--sm { gap: var(--space-2); }

/* ---------- Discover ---------- */

.mv-card--discover {
	gap: 0;
	border-radius: var(--radius-card);
	background: var(--surface-card);
	box-shadow: inset 0 0 0 1px var(--border-hairline);
	overflow: hidden;
}
.mv-card--discover__visual { position: relative; }
.mv-card--discover .mv-media { border-radius: 0; }
.mv-card--discover .mv-card__body { padding: var(--space-9) var(--space-6) var(--space-6); gap: var(--space-4); }
.mv-card--discover-wide { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
.mv-card--discover-wide .mv-card--discover__logo { bottom: var(--space-5); }
.mv-card--discover-wide .mv-card__body { padding: var(--space-8); align-content: center; }
.mv-embed-discover { margin-block: var(--space-8); font-size: var(--text-md); line-height: var(--leading-body); }
.mv-embed-discover a { text-decoration: none; }

.mv-discover-single { display: grid; gap: var(--space-7); }
.mv-discover-single__head { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-6); align-items: center; }
.mv-discover-single__logo { position: static; width: 96px; height: 96px; box-shadow: var(--shadow-2); }

.mv-term-list, .mv-term-list ul { margin: 0; padding: 0; list-style: none; }
.mv-term-list ul { padding-inline-start: var(--space-5); }
.mv-term-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); padding-block: var(--space-3); border-bottom: 1px solid var(--border-hairline); color: var(--text-faint); font-size: var(--text-sm); }
.mv-term-list li:last-child { border-bottom: 0; }
.mv-term-list a { color: var(--text-body); font-weight: var(--weight-medium); }
.mv-term-list a:hover, .mv-term-list .current-cat > a { color: var(--text-accent); }
.mv-term-list li > ul { flex-basis: 100%; }
.mv-sidebar .mv-search-form { flex-direction: column; }

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

.mv-footer { padding-block: var(--space-11) var(--space-8); background: var(--surface-sunken); border-top: 1px solid var(--border-subtle); }
.mv-footer__top { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: var(--space-10); }
.mv-footer__brand { display: grid; gap: var(--space-5); align-content: start; justify-items: start; }
.mv-footer__blurb { color: var(--text-muted); max-width: 40ch; }
.mv-footer__heading { margin-bottom: var(--space-5); color: var(--text-muted); font: var(--weight-medium) var(--text-2xs)/1.2 var(--font-display); letter-spacing: var(--track-caps); text-transform: uppercase; }
.mv-footer__menu { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.mv-footer__menu a { color: var(--text-body); font-size: var(--text-sm); }
.mv-footer__menu a:hover { color: var(--text-strong); }
.mv-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-11); padding-top: var(--space-7); border-top: 1px solid var(--border-hairline); color: var(--text-faint); font-size: var(--text-xs); }

/* ---------- Dhivehi (Thaana) ---------- */
/* Thaana sets small at Latin sizes; it gets its own faces, a size bump and looser leading. */

/* The Thaana faces have one weight; don't let the browser fake bold. */
[lang="dv"] { font-family: var(--font-dv-body); font-synthesis: none; }
[lang="dv"] h1, [lang="dv"] h2, [lang="dv"] h3, [lang="dv"] h4,
[lang="dv"] .mv-card__title, [lang="dv"] .mv-section-head__title,
[lang="dv"] .mv-page-head__title, [lang="dv"] .mv-article__title {
	font-family: var(--font-dv-display);
	font-weight: normal;
	letter-spacing: 0;
	line-height: 1.5;
}
[lang="dv"] .mv-card__title { font-size: calc(var(--text-xl) * 1.1); }
[lang="dv"] .mv-card__title--lead, [lang="dv"] .mv-article__title { line-height: 1.45; }
[lang="dv"] .mv-card__title--lead { font-size: clamp(28px, 3.4vw, 44px); }
[lang="dv"] .mv-card__excerpt, [lang="dv"] .mv-byline, [lang="dv"] .mv-card__caption { font-size: var(--text-md); line-height: 1.8; }
[lang="dv"] .mv-prose { font-size: 20px; line-height: 2; }
[lang="dv"] .mv-prose blockquote { font-family: var(--font-dv-display); font-weight: normal; }
[lang="dv"] .mv-card__time { font-family: var(--font-dv-body); font-size: var(--text-sm); }
[lang="dv"] .mv-eyebrow { font-family: var(--font-dv-body); letter-spacing: 0; text-transform: none; font-size: var(--text-sm); }
[lang="dv"] .mv-card--list .mv-card__title { font-size: var(--text-lg); }
[lang="dv"] .mv-card--list > a { grid-template-columns: 110px minmax(0, 1fr); }
[lang="en"] { font-family: var(--font-body); }
[lang="en"] .mv-eyebrow { font-family: var(--font-display); }

/* Mixed-direction text reads in its own direction. */
[dir="rtl"] .mv-card__title, [dir="rtl"] .mv-card__excerpt, [dir="rtl"] .mv-prose p, [dir="rtl"] .mv-prose li { unicode-bidi: plaintext; }

/* ---------- Responsive ---------- */

@media (max-width: 1100px) {
	.mv-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mv-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mv-footer__brand { grid-column: 1 / -1; }
	.mv-candidate-profile { grid-template-columns: 320px minmax(0, 1fr); gap: var(--space-9); }
}

@media (max-width: 900px) {
	.mv-only-desktop { display: none !important; }
	.mv-only-mobile { display: inline-grid !important; }
	.mv-ad.mv-only-mobile { display: grid !important; }

	.mv-header__bar { height: 56px; gap: var(--space-2); }
	.mv-header__bar .mv-logo { position: absolute; left: 50%; transform: translateX(-50%); }
	.mv-logo img { width: 96px; }
	.mv-rail__menu { gap: var(--space-6); }
	.mv-rail__menu a { height: 46px; font-size: var(--text-sm); }

	.mv-grid--3, .mv-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.mv-lead, .mv-feature, .mv-feature--photo, .mv-feature--portrait,
	.mv-columns--3, .mv-columns--2, .mv-awards, .mv-video,
	.mv-with-sidebar, .mv-candidate-profile, .mv-brief__layout { grid-template-columns: minmax(0, 1fr); }
	.mv-brief__layout { gap: var(--space-8); }
	.mv-brief__visual { position: static; max-width: 520px; }

	.mv-archive-lead .mv-card--lead { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
	.mv-video__player { position: static; }
	.mv-latest { grid-template-columns: minmax(0, 1fr); }
	.mv-awards { padding: var(--space-7); }
	.mv-band { padding: var(--space-7); }
	.mv-prose .alignwide { margin-inline: 0; }
	.mv-card--discover-wide { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
	.mv-grid--2, .mv-grid--3, .mv-grid--4 { grid-template-columns: minmax(0, 1fr); }
	.mv-lead__row { grid-template-columns: minmax(0, 1fr); }
	.mv-psband__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); padding-block: var(--space-8); }
	.mv-photostories__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mv-card--numbered { grid-template-columns: 36px minmax(0, 1fr) 88px; gap: var(--space-4); }
	.mv-card--row .mv-card__excerpt { display: none; }
	.mv-lifestyle__list .mv-card--row { grid-template-columns: 112px minmax(0, 1fr); gap: var(--space-4); }
	.mv-section-head { flex-wrap: wrap; align-items: flex-start; }
	.mv-section-head__title { font-size: var(--text-2xl); }
	.mv-page-head__row { grid-template-columns: minmax(0, 1fr); }
	.mv-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.mv-article__dek { font-size: var(--text-lg); }
	.mv-prose { font-size: 17px; }
	.mv-result { padding: var(--space-5); }
	.mv-candidate { grid-template-columns: 44px minmax(0, 1fr) auto; gap: var(--space-4); }
	.mv-candidate__photo { width: 44px; height: 44px; }
	.mv-candidate__percent { font-size: var(--text-xl); }
	.mv-accordion__list { grid-template-columns: minmax(0, 1fr); }
	.mv-card--overlay .mv-card__body { padding: var(--space-5); }
	.mv-card--overlay .mv-card__excerpt { display: none; }
	.mv-lightbox__figure { padding-inline: var(--space-3); }
	.mv-lightbox__nav { top: auto; bottom: var(--space-4); transform: none; }
	.mv-search-form { flex-wrap: wrap; }
	.mv-search-form .mv-btn { width: 100%; }
	.mv-search-form__icon { top: 22px; }
	.mv-promo__body { padding: var(--space-6); }
	.mv-awards { padding: var(--space-5); }
	body.admin-bar .mv-sticky { top: 0; }
}

@media print {
	.mv-header, .mv-sticky, .mv-drawer, .mv-footer, .mv-ad, .mv-ad-band, .mv-share, .mv-load-more { display: none !important; }
	body { background: #fff; color: #000; }
}

/* Portrait videos stay beside the story on tablets: the player is narrow. */
@media (min-width: 760px) and (max-width: 1100px) {
	.mv-video--portrait { grid-template-columns: minmax(240px, 340px) minmax(0, 1fr); gap: var(--space-8); }
	.mv-video--portrait .mv-video__player { position: sticky; top: 80px; }
}

/* Byline "Updated" time and the correction box (inc/article-meta.php). */
.mv-byline__updated { color: var(--text-muted); }
.mv-byline__updated time { color: inherit; }
.mv-correction {
	margin: 0 0 var(--space-7);
	padding: var(--space-5) var(--space-6);
	border-radius: var(--radius-md);
	background: color-mix(in srgb, var(--warning-500) 14%, var(--surface-card));
	color: var(--text-strong);
	font-size: var(--text-md);
	line-height: 1.55;
}
.mv-correction__label { margin-inline-end: var(--space-2); }
.mv-correction__label time { font-weight: var(--weight-regular); color: var(--text-muted); }

/* Key points at the top of a story (inc/ai.php). */
.mv-keypoints {
	margin: 0 0 var(--space-8);
	padding: var(--space-6) var(--space-7);
	border-radius: var(--radius-md);
	background: var(--surface-card);
}
.mv-prose .mv-keypoints__title { margin: 0 0 var(--space-4); color: var(--text-accent); font: var(--weight-semibold) var(--text-xs)/1.2 var(--font-display); letter-spacing: var(--track-caps); text-transform: uppercase; }
.mv-prose .mv-keypoints ul { display: grid; gap: var(--space-3); margin: 0; padding-inline-start: var(--space-6); }
.mv-prose .mv-keypoints li { margin: 0; color: var(--text-strong); font-size: var(--text-md); line-height: 1.5; }
.mv-prose .mv-keypoints li::marker { color: var(--text-accent); }
[lang="dv"] .mv-prose .mv-keypoints__title { font-family: var(--font-dv-body); letter-spacing: 0; text-transform: none; font-size: var(--text-md); }

/* ==========================================================================
   Phones (mobile audit, November 2026)
   ========================================================================== */

/* The section menu shows it scrolls: the last link fades at the edge until
   the menu is scrolled to its end (main.js sets .is-end). */
@media (max-width: 900px) {
	.mv-rail__menu { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); }
	.mv-rail__menu.is-end { -webkit-mask-image: none; mask-image: none; }
	.mv-rail__menu li:last-child { padding-inline-end: var(--space-6); }
}

/* Touch screens swipe carousels; the arrow buttons only take room. */
@media (hover: none) {
	.mv-rail-controls { display: none; }
}

@media (max-width: 600px) {
	/* Story header: the byline fits on one row (read time goes; the share
	   icons sit beside the date), so the photo reaches the first screen. */
	.mv-article__header { gap: var(--space-4); }
	.mv-article__byline { flex-wrap: nowrap; padding-block: var(--space-3); gap: var(--space-3); }
	.mv-article__byline .mv-byline { flex-wrap: wrap; gap: 0 var(--space-3); font-size: var(--text-xs); min-width: 0; }
	.mv-article__byline .mv-byline__read { display: none; }
	.mv-article__tools { flex: none; gap: var(--space-2); }
	.mv-article__figure { margin-top: var(--space-6); }

	/* Tap areas of at least about 44px, without changing how things look. */
	.mv-icon-btn--sm { position: relative; }
	.mv-icon-btn--sm::after { content: ""; position: absolute; inset: -6px; }
	.mv-section-head__link { padding-block: 12px; margin-block: -12px; }
	a.mv-eyebrow { padding-block: 8px; margin-block: -8px; }
	.mv-footer__menu { gap: 0; }
	.mv-footer__menu a { display: inline-block; padding-block: 10px; }
	.mv-btn--sm, .mv-tab { min-height: 44px; }

	/* Nothing meant to be read under 13px. */
	.mv-footer__heading { font-size: var(--text-xs); }

	/* Dhivehi section heads: the links drop to their own row under the
	   title instead of crowding beside it. */
	.mv-section--dv .mv-section-head__links { flex-basis: 100%; justify-content: space-between; }

	/* Compact story rows: after the lead, stories are a small picture beside
	   the headline, like "Latest news", instead of a full-width card each.
	   Applies to the homepage lead block and to section and category grids. */
	.mv-grid--4:not(.mv-swipe) > .mv-card--standard:not(:has(.mv-media[style*="4/5"])) {
		grid-template-columns: 112px minmax(0, 1fr);
		gap: var(--space-4);
		align-items: start;
		padding-block: var(--space-5);
		border-bottom: 1px solid var(--border-hairline);
	}
	.mv-grid--4:not(.mv-swipe) > .mv-card--standard:not(:has(.mv-media[style*="4/5"])) .mv-media { aspect-ratio: 4 / 3 !important; border-radius: var(--radius-sm); }
	.mv-grid--4:not(.mv-swipe) > .mv-card--standard:not(:has(.mv-media[style*="4/5"])) .mv-card__title { font-size: var(--text-md); line-height: 1.3; }
	.mv-grid--4:not(.mv-swipe) > .mv-card--standard:not(:has(.mv-media[style*="4/5"])) .mv-card__excerpt { display: none; }
	.mv-grid--4:not(.mv-swipe) > .mv-card--standard:not(:has(.mv-media[style*="4/5"])) .mv-card__body { gap: var(--space-2); }
	.mv-grid--4:not(.mv-swipe):has(> .mv-card--standard:not(:has(.mv-media[style*="4/5"]))) { gap: 0; }
	.mv-grid--4:not(.mv-swipe) > .mv-card--standard:not(:has(.mv-media[style*="4/5"])) { padding-block: var(--space-4); }
	.mv-archive-lead { margin-bottom: var(--space-4); padding-bottom: var(--space-6); }

	/* Video archives (portrait covers): two to a row. */
	.mv-grid--4:not(.mv-swipe):has(.mv-media[style*="4/5"]) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6) var(--space-4); }
	.mv-grid--4:not(.mv-swipe):has(.mv-media[style*="4/5"]) .mv-card__title { font-size: var(--text-md); line-height: 1.3; }
	.mv-grid--4:not(.mv-swipe):has(.mv-media[style*="4/5"]) .mv-card__excerpt { display: none; }
}

/* Phones: the sticky bar's logo is centred, as in the header. */
@media (max-width: 900px) {
	.mv-sticky__bar { position: relative; }
	.mv-sticky__logo { position: absolute; left: 50%; transform: translateX(-50%); }
}

/* ==========================================================================
   Phones and small tablets, up to 900px (mobile pass 2)
   ========================================================================== */

@media (max-width: 900px) {
	/* Homepage: under the lead, the next four stories are a 2 × 2 grid,
	   each with its whole photo on top, then category, headline and date. */
	.mv-lead { gap: var(--space-8); }
	.mv-lead__side { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7) var(--space-5); }
	.mv-lead__side .mv-ad { grid-column: 1 / -1; }
	.mv-lead__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7) var(--space-5); margin-top: var(--space-7); padding-top: 0; border-top: 0; }
	.mv-lead__row .mv-card--row { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
	.mv-lead__row .mv-card--row > .mv-card__media-link { order: -1; }
	.mv-lead__row .mv-card--row .mv-media { aspect-ratio: 16 / 9 !important; }
	.mv-lead__side .mv-card--standard .mv-media { aspect-ratio: 16 / 9 !important; }
	.mv-lead__side .mv-card__title,
	.mv-lead__row .mv-card__title { font-size: var(--text-lg); line-height: 1.25; }
	.mv-lead__side .mv-card__body,
	.mv-lead__row .mv-card__body { gap: var(--space-2); }
	/* Summaries: three even lines at a comfortable size, never a ragged
	   column of single words. */
	.mv-lead__side .mv-card__excerpt,
	.mv-lead__row .mv-card__excerpt {
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
		font-size: var(--text-sm);
		line-height: 1.5;
		color: var(--text-muted);
		hyphens: auto;
	}

	/* Main photo story: picture and text share the width evenly, with a
	   headline sized for the column. */
	.mv-psband__inner { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); gap: var(--space-7); padding-block: var(--space-8); }
	.mv-psband__title { font-size: clamp(22px, 3.4vw, 30px); line-height: 1.15; }
	.mv-psband__excerpt {
		display: -webkit-box;
		-webkit-line-clamp: 4;
		-webkit-box-orient: vertical;
		overflow: hidden;
		font-size: var(--text-md);
		line-height: 1.5;
	}
	.mv-psband__text { gap: var(--space-4); }

	/* Swipeable rows (photo stories, visual briefs): one row that scrolls
	   sideways, running to the screen edge, with the next card peeking. */
	.mv-grid.mv-swipe {
		display: grid;
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: clamp(150px, 40vw, 260px);
		gap: var(--space-5);
		margin-inline: calc(-1 * var(--gutter));
		padding-inline: var(--gutter);
		scroll-padding-inline: var(--gutter);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		overscroll-behavior-x: contain;
	}
	.mv-grid.mv-swipe::-webkit-scrollbar { display: none; }
	.mv-grid.mv-swipe > * { scroll-snap-align: start; }
	.mv-grid.mv-swipe .mv-card__title { font-size: var(--text-md); line-height: 1.3; }
	.mv-photostories__grid.mv-swipe { margin-top: var(--space-7); }
}

@media (max-width: 600px) {
	/* Two narrow columns: headline and date only. */
	.mv-lead__side .mv-card__excerpt,
	.mv-lead__row .mv-card__excerpt { display: none; }
	.mv-lead__side .mv-card__title,
	.mv-lead__row .mv-card__title { font-size: var(--text-md); line-height: 1.3; }
	.mv-lead__side, .mv-lead__row { gap: var(--space-6) var(--space-4); }

	/* Main photo story stacks: picture (capped so it fits the screen), then
	   the text. */
	.mv-psband__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
	.mv-psband__photo { max-width: 300px; }
	.mv-psband__title { font-size: 26px; }
}

@media (max-width: 900px) {
	/* Lifestyle lead: a landscape crop of its portrait cover, so the picture
	   doesn't fill a whole phone screen. */
	.mv-feature--portrait .mv-card--portrait .mv-media { aspect-ratio: 4 / 3 !important; }
}

@media (max-width: 600px) {
	/* Promo boxes (Public Opinion, Community Impact Awards): headings sized
	   for a phone, not a desktop banner. */
	.mv-band__title,
	.mv-awards__title { font-size: var(--text-2xl); line-height: 1.2; }
	.mv-awards__intro p { font-size: var(--text-md); }
}

/* ==========================================================================
   Mobile pass 3
   ========================================================================== */

@media (max-width: 900px) {
	/* Story lists: the picture always sits on the left, as in Latest news.
	   (Dhivehi rows keep theirs on the left already, at the line's end.) */
	.mv-card--row:not([dir="rtl"]) { grid-template-columns: 112px minmax(0, 1fr); gap: var(--space-4); }
	.mv-card--row:not([dir="rtl"]) > .mv-card__media-link { order: -1; }
	.mv-card--row:not([dir="rtl"]) .mv-media { aspect-ratio: 4 / 3 !important; border-radius: var(--radius-sm); }
	.mv-card--row:not([dir="rtl"]) .mv-card__title { font-size: var(--text-md); line-height: 1.3; }
	.mv-card--row:not([dir="rtl"]) .mv-card__excerpt { display: none; }
	/* ...except the lead's second row, which keeps its photo-on-top pair. */
	.mv-lead__row .mv-card--row.mv-card--row { grid-template-columns: minmax(0, 1fr); }
	.mv-lead__row .mv-card--row.mv-card--row .mv-media { aspect-ratio: 16 / 9 !important; }

	/* The sticky bar slides away while reading down and returns on the
	   first scroll up (main.js toggles .is-tucked). */
	.mv-sticky.is-tucked { transform: translateY(-100%); }

	/* "More stories" under an article: one swipeable row. */
	.mv-related .mv-grid.mv-swipe { grid-auto-columns: clamp(200px, 62vw, 280px); }
	.mv-related .mv-swipe .mv-card__excerpt { display: none; }
}

/* Reading progress on stories: a thin line pinned to the top of the screen. */
.mv-progress { position: fixed; inset: 0 0 auto; z-index: 70; height: 3px; pointer-events: none; }
.mv-progress span { display: block; height: 100%; background: var(--action-fill); transform: scaleX(0); transform-origin: left center; }
[dir="rtl"] .mv-progress span, .mv-progress[dir="rtl"] span { transform-origin: right center; }
body.admin-bar .mv-progress { top: 32px; }
@media (max-width: 782px) { body.admin-bar .mv-progress { top: 46px; } }
@media (prefers-reduced-motion: reduce) { .mv-sticky.is-tucked { transition: none; } }

/* ==========================================================================
   Homepage: latest MV+ Awareness issue
   ========================================================================== */

.mv-home-aw { padding-top: 0; }
.mv-home-aw__card { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr); border-radius: var(--radius-xl); background: var(--surface-card); overflow: hidden; }
.mv-home-aw__media { display: block; min-height: 100%; background: var(--surface-placeholder); }
.mv-home-aw__media img { display: block; width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.mv-home-aw__body { display: grid; align-content: center; gap: var(--space-5); padding: clamp(24px, 3.4vw, 48px); }
.mv-home-aw__title { font: var(--weight-head) clamp(26px, 3vw, 38px)/1.12 var(--font-head); letter-spacing: var(--track-tight); color: var(--text-strong); }
.mv-home-aw__title a { color: inherit; text-decoration: none; }
.mv-home-aw__title a:hover { color: var(--text-link-hover); }
.mv-home-aw__text { color: var(--text-body); font-size: var(--text-lg); line-height: 1.5; max-width: 52ch; }
.mv-home-aw__list { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border-hairline); }
.mv-home-aw__list li { border-bottom: 1px solid var(--border-hairline); }
.mv-home-aw__list a { display: block; padding-block: var(--space-4); color: var(--text-strong); font-weight: var(--weight-medium); line-height: 1.35; text-decoration: none; }
.mv-home-aw__list a:hover { color: var(--text-link-hover); }
.mv-home-aw__list li[lang="dv"] a { font-family: var(--font-dv-body); }
.mv-home-aw__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-6); margin-top: var(--space-2); }
.mv-home-aw__all { color: var(--text-link); font-size: var(--text-sm); font-weight: var(--weight-medium); }
.mv-home-aw__card:not(:has(.mv-home-aw__media)) { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 900px) {
	.mv-home-aw__card { grid-template-columns: minmax(0, 1fr); }
	.mv-home-aw__media img { min-height: 0; aspect-ratio: 16 / 9; }
	.mv-home-aw__text { font-size: var(--text-md); }
}

/* ==========================================================================
   Policy pages (Code of Ethics, Editorial Standards) and Contact Us
   ========================================================================== */

.mv-policy__grid { display: grid; grid-template-columns: 240px minmax(0, var(--prose-max)); justify-content: center; gap: clamp(32px, 6vw, 88px); padding-block: var(--section-y); }
.mv-policy__side { position: sticky; top: 88px; align-self: start; display: grid; gap: var(--space-8); max-height: calc(100vh - 110px); overflow-y: auto; }
.mv-policy__toc { display: grid; gap: var(--space-4); }
.mv-policy__toc ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; counter-reset: policy; border-inline-start: 1px solid var(--border-subtle); }
.mv-policy__toc li { counter-increment: policy; }
.mv-policy__toc a { display: block; margin-inline-start: -1px; padding: 6px 0 6px var(--space-5); border-inline-start: 2px solid transparent; color: var(--text-muted); font-size: var(--text-sm); line-height: 1.35; text-decoration: none; }
.mv-policy__toc a::before { content: counter(policy) ". "; font-variant-numeric: tabular-nums; }
.mv-policy__toc a:hover { color: var(--text-strong); }
.mv-policy__toc a.is-current { border-color: var(--marker); color: var(--text-strong); }
.mv-policy__also { color: var(--text-muted); font-size: var(--text-xs); line-height: 1.6; }
.mv-policy__also a { font-size: var(--text-sm); font-weight: var(--weight-medium); }
.mv-policy__body > :first-child, .mv-policy__body .mv-static-section > :first-child { margin-top: 0; }
.mv-policy__body h2, .mv-policy__body h3 { scroll-margin-top: 96px; color: var(--text-strong); }
.mv-policy__body .mv-static-section > p:first-child { color: var(--text-strong); font-size: clamp(19px, 1.7vw, 22px); line-height: 1.5; }
.mv-policy__body li + li { margin-top: var(--space-4); }
.mv-policy__body h2, .mv-policy__body h3 { margin-bottom: var(--space-4); }
.mv-policy__body p + p { margin-top: 1em; }
.mv-policy__body p + ul, .mv-policy__body p + ol { margin-top: var(--space-5); }
.mv-policy__body ol > li > strong:first-child, .mv-policy__body ul > li > strong:first-child { display: block; color: var(--text-strong); }
.mv-policy__contact { background: var(--surface-sunken); border-top: 1px solid var(--border-hairline); }
.mv-policy__contact-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-8); padding-block: var(--space-11); }
.mv-policy__contact h2 { font: var(--weight-head) clamp(22px, 2.4vw, 30px)/1.2 var(--font-head); color: var(--text-strong); }
.mv-policy__contact p { margin-top: var(--space-3); color: var(--text-body); max-width: 52ch; }
.mv-policy__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); }
.mv-policy__actions .mv-btn { gap: var(--space-3); }
.mv-policy__more { color: var(--text-link); font-size: var(--text-sm); font-weight: var(--weight-medium); }

.mv-contact__dek { margin-top: var(--space-4); color: var(--text-body); font-size: var(--text-lg); max-width: 56ch; }
.mv-contact__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.mv-contact__card { display: grid; align-content: start; gap: var(--space-4); padding: clamp(20px, 2.6vw, 32px); border-radius: var(--radius-xl); background: var(--surface-card); }
.mv-contact__card h2, .mv-contact__foot h2 { font: var(--weight-head) var(--text-xl, 22px)/1.25 var(--font-head); color: var(--text-strong); }
.mv-contact__note { color: var(--text-muted); font-size: var(--text-sm); line-height: 1.5; }
.mv-contact__lines { display: grid; gap: var(--space-2); margin: var(--space-2) 0 0; padding: 0; list-style: none; }
.mv-contact__lines a { display: flex; align-items: center; gap: var(--space-4); min-height: 44px; color: var(--text-strong); font-size: var(--text-lg); font-weight: var(--weight-medium); text-decoration: none; overflow-wrap: anywhere; }
.mv-contact__lines a:hover { color: var(--text-link-hover); }
.mv-contact__lines svg { flex: 0 0 auto; color: var(--text-accent); }
.mv-contact__address { color: var(--text-body); font-style: normal; font-size: var(--text-lg); line-height: 1.6; }
.mv-contact__foot { display: flex; flex-wrap: wrap; gap: var(--space-9) clamp(40px, 8vw, 120px); margin-top: var(--space-11); padding-top: var(--space-9); border-top: 1px solid var(--border-hairline); }
.mv-contact__foot > div { display: grid; gap: var(--space-5); align-content: start; }
.mv-contact__links { display: flex; flex-wrap: wrap; gap: var(--space-7); }
.mv-contact__links a { font-weight: var(--weight-medium); }
.mv-contact__body { max-width: var(--prose-max); margin-top: var(--space-11); }

@media (max-width: 900px) {
	.mv-policy__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-9); padding-block: var(--space-9) var(--section-y); }
	.mv-policy__side { position: static; max-height: none; overflow: visible; padding: var(--space-6); border-radius: var(--radius-lg); background: var(--surface-card); }
	.mv-policy__toc a { padding-block: 9px; }
	.mv-contact__grid { grid-template-columns: minmax(0, 1fr); }
	.mv-policy__contact-inner { padding-block: var(--space-9); }
}
@media (min-width: 601px) and (max-width: 900px) {
	.mv-contact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   Footer: the Sections list runs in two columns
   ========================================================================== */

.mv-footer__top { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.7fr) repeat(2, minmax(0, 1fr)); }
.mv-footer__col--wide .mv-footer__menu { display: block; columns: 2; column-gap: var(--space-9); }
.mv-footer__col--wide .mv-footer__menu li { break-inside: avoid; margin-bottom: var(--space-4); }

@media (max-width: 1100px) {
	.mv-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mv-footer__col--wide { grid-column: span 2; }
}
@media (max-width: 600px) {
	.mv-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.mv-footer__col--wide { grid-column: 1 / -1; }
	.mv-footer__col--wide .mv-footer__menu { column-gap: var(--space-6); }
	.mv-footer__col--wide .mv-footer__menu li { margin-bottom: 0; }
}

/* Header calendar button: marked while the calendar is open. */
.mv-icon-btn[aria-current="page"] { color: var(--text-accent); }
