/* Memorial Plaque Wall — plaques on a marble wall */

.mpw {
	--mpw-serif: "Cormorant Garamond", "EB Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--mpw-caps: "Cinzel", "Trajan Pro", "Cormorant SC", var(--mpw-serif);
	--mpw-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--mpw-red: #b3261e;
	--mpw-red-deep: #7d1812;
	--mpw-ink: #2b241d;
	--mpw-ink-soft: #5e5347;
	--mpw-paper: #f8f4ec;
	--mpw-gold: #d6b46a;

	/* Marble veins: turbulence banded into thin lines */
	--mpw-veins: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900'%3E%3Cfilter id='v'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.0032 .0085' numOctaves='6' seed='19' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .31 0 0 0 0 .30 1 0 0 0 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0 0 0 0 .55 .9 .3 0 0 0 0 0 0 0 0'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23v)'/%3E%3C/svg%3E");
	--mpw-veins-fine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='v'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.006 .016' numOctaves='5' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .39 0 0 0 0 .38 1 0 0 0 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0 0 0 0 0 0 .45 0 0 0 0 0 0 0 0 0 0'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23v)'/%3E%3C/svg%3E");
	--mpw-cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004' numOctaves='4' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 .22'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23c)'/%3E%3C/svg%3E");
	--mpw-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 .18'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--mpw-speckle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 3 0 0 0 -2.05'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23s)' opacity='.35'/%3E%3C/svg%3E");
	/* Joints between the marble slabs */
	--mpw-joints: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='420'%3E%3Cg fill='none'%3E%3Cpath d='M0 1H720M1 0V420M360 0V420' stroke='rgba(40,36,30,.12)' stroke-width='2'/%3E%3Cpath d='M0 3H720M3 2V420M362 2V420' stroke='rgba(255,255,255,.35)' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E");

	--mpw-wall: #ece8e1;
	--mpw-wall-text: #3d3730;
	--mpw-wall-soft: #6d655a;
	--mpw-panel: rgba(255, 253, 249, .72);
	--mpw-panel-line: rgba(60, 50, 40, .16);

	--mpw-width: min(1320px, calc(100vw - 32px));
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	width: var(--mpw-width);
	max-width: none !important;
	margin: 0 0 2rem;
}
/* Break out of the theme's content column (doubled class beats block-theme layout rules). */
.mpw.mpw {
	margin-left: calc((100% - var(--mpw-width)) / 2) !important;
	margin-right: 0 !important;
	color: var(--mpw-wall-text);
	font-family: var(--mpw-serif);
	background-color: var(--mpw-wall);
	background-image:
		radial-gradient(130% 80% at 50% -10%, rgba(255, 255, 255, .7), transparent 60%),
		var(--mpw-joints),
		var(--mpw-veins),
		var(--mpw-veins-fine),
		var(--mpw-cloud),
		var(--mpw-grain);
	background-size: auto, 720px 420px, 900px 900px, 600px 600px, 700px 700px, 200px 200px;
	border-radius: 6px;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06), inset 0 30px 60px -40px rgba(255, 255, 255, .9), inset 0 -40px 80px -50px rgba(60, 48, 36, .35);
}

.mpw--content { --mpw-width: 100%; }
.mpw--full { --mpw-width: calc(100vw - 0px); border-radius: 0; }

.mpw--grey {
	--mpw-wall: #a9a6a1;
	--mpw-wall-text: #23201c;
	--mpw-wall-soft: #3b3731;
	--mpw-panel: rgba(245, 243, 239, .78);
}

.mpw--black {
	--mpw-wall: #1d1c1b;
	--mpw-wall-text: #ece6da;
	--mpw-wall-soft: #b8afa1;
	--mpw-panel: rgba(30, 28, 26, .82);
	--mpw-panel-line: rgba(255, 255, 255, .14);
	background-image:
		radial-gradient(120% 70% at 50% -10%, rgba(255, 255, 255, .1), transparent 60%),
		var(--mpw-speckle),
		var(--mpw-cloud),
		var(--mpw-grain);
	background-size: auto, 160px 160px, 700px 700px, 200px 200px;
}
.mpw--black .mpw-filters,
.mpw--black .mpw-filters select,
.mpw--black .mpw-filters input { color: var(--mpw-wall-text); }

.mpw__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: clamp(18px, 4vw, 48px) clamp(14px, 3.5vw, 44px) clamp(28px, 5vw, 56px);
}

.mpw__title {
	margin: 0 0 1.2rem;
	font: 500 clamp(1.6rem, 3.6vw, 2.5rem)/1.1 var(--mpw-caps);
	letter-spacing: .08em;
	text-align: center;
	text-transform: uppercase;
	color: var(--mpw-wall-text);
	text-shadow: 0 1px 0 rgba(255, 255, 255, .55), 0 -1px 0 rgba(0, 0, 0, .25);
}

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

/* ------------------------------------------------------------------ Filters */
.mpw-filters {
	display: grid;
	gap: 12px;
	margin: 0 0 1.4rem;
	padding: 14px;
	font-family: var(--mpw-sans);
	background: var(--mpw-panel);
	border: 1px solid var(--mpw-panel-line);
	border-radius: 12px;
	box-shadow: 0 10px 30px -18px rgba(30, 20, 10, .45);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.mpw-filters__main {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.mpw-filters__main > * { flex: 1 1 170px; min-width: 0; }
.mpw-filters__main > .mpw-filters__search { flex: 2.4 1 280px; }

.mpw-filters__search {
	position: relative;
	display: block;
	margin: 0;
}
.mpw-filters__search svg {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--mpw-wall-soft);
	pointer-events: none;
}

.mpw-filters input[type="search"],
.mpw-filters input[type="number"],
.mpw-filters select {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 8px 12px;
	font: 400 .95rem/1.3 var(--mpw-sans);
	color: var(--mpw-ink);
	background-color: rgba(255, 255, 255, .92);
	border: 1px solid rgba(60, 50, 40, .25);
	border-radius: 8px;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, .06);
}
.mpw--black .mpw-filters input,
.mpw--black .mpw-filters select { background-color: rgba(0, 0, 0, .35); border-color: rgba(255, 255, 255, .2); }
.mpw-filters input[type="search"] { padding-left: 38px; }
.mpw-filters select { appearance: auto; }
.mpw-filters input:focus,
.mpw-filters select:focus { outline: 2px solid var(--mpw-red); outline-offset: 1px; border-color: transparent; }
.mpw-select { display: block; margin: 0; }

.mpw-filters__more summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 2px;
	font-size: .9rem;
	font-weight: 600;
	color: var(--mpw-wall-text);
	cursor: pointer;
	list-style: none;
}
.mpw-filters__more summary::-webkit-details-marker { display: none; }
.mpw-filters__more summary::before {
	content: "";
	width: 8px; height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(-45deg);
	transition: transform .2s;
}
.mpw-filters__more[open] summary::before { transform: rotate(45deg); }

.mpw-filters__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 10px;
	align-items: center;
	margin-top: 10px;
}

.mpw-years {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
}
.mpw-years legend {
	float: left;
	margin-right: 4px;
	font-size: .85rem;
	white-space: nowrap;
	color: var(--mpw-wall-soft);
}
.mpw-years input { min-width: 0; }
.mpw-check { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; cursor: pointer; }
.mpw-check input { width: 18px; height: 18px; accent-color: var(--mpw-red); }

.mpw-filters__actions { display: flex; align-items: center; gap: 14px; }
.mpw.is-enhanced .mpw-filters [data-mpw-apply] { display: none; }
.mpw-reset { font-size: .88rem; color: var(--mpw-wall-text); text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------------ Buttons */
.mpw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 18px;
	font: 600 .95rem/1 var(--mpw-sans);
	color: #fff;
	text-decoration: none;
	background: linear-gradient(180deg, #c8342b, var(--mpw-red-deep));
	border: 0;
	border-radius: 999px;
	box-shadow: 0 6px 16px -8px rgba(125, 24, 18, .8), inset 0 1px 0 rgba(255, 255, 255, .25);
	cursor: pointer;
	transition: transform .15s, box-shadow .15s;
}
.mpw-btn:hover { transform: translateY(-1px); color: #fff; }
.mpw-btn:focus-visible { outline: 3px solid #2271b1; outline-offset: 2px; }
.mpw-btn--ghost {
	color: var(--mpw-ink);
	background: transparent;
	border: 1px solid rgba(60, 50, 40, .3);
	box-shadow: none;
}
.mpw-btn--ghost:hover { color: var(--mpw-ink); background: rgba(255, 255, 255, .5); }
.mpw-btn--poppy img { width: 26px; height: 26px; margin: -4px 0 -4px -6px; filter: var(--tint, none) drop-shadow(0 1px 1px rgba(0, 0, 0, .4)); }

/* ------------------------------------------------------------------ Results */
.mpw__results { position: relative; transition: opacity .2s; }
.mpw__results.is-loading { opacity: .45; pointer-events: none; }

.mpw-count {
	margin: 0 0 1.1rem;
	font: 500 .78rem/1 var(--mpw-sans);
	letter-spacing: .16em;
	text-align: center;
	text-transform: uppercase;
	color: var(--mpw-wall-soft);
}

.mpw-empty {
	padding: 3rem 1rem;
	font-size: 1.25rem;
	text-align: center;
	font-style: italic;
}

.mpw-wall {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
	gap: clamp(18px, 2.6vw, 34px);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ------------------------------------------------------------------ Plaque */
.mpw-plaque {
	/* bronze (default) */
	--p-bg: #4d3a26;
	--p-bg-2: #2f2316;
	--p-edge-hi: #c79c5a;
	--p-edge-lo: #3a2914;
	--p-text: #e8cf98;
	--p-text-soft: #cfb37a;
	--p-text-shadow: 0 1px 0 rgba(0, 0, 0, .65), 0 -1px 0 rgba(255, 240, 200, .18);
	--p-rule: linear-gradient(90deg, transparent, #c9a764 20%, #c9a764 80%, transparent);
	--p-ring: conic-gradient(from 210deg, #f1d79c, #8a6630, #e0bf7c, #6b4c20, #f1d79c);
	--p-texture: var(--mpw-grain);

	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mpw-finish--granite .mpw-plaque {
	--p-bg: #1b1a19;
	--p-bg-2: #0d0d0c;
	--p-edge-hi: #4a4846;
	--p-edge-lo: #050505;
	--p-text: #dcc07d;
	--p-text-soft: #c5a968;
	--p-text-shadow: 0 1px 1px rgba(0, 0, 0, .8);
	--p-rule: linear-gradient(90deg, transparent, #b9984f 20%, #b9984f 80%, transparent);
	--p-ring: conic-gradient(from 210deg, #f0d792, #8d6a2e, #e5c57f, #6e5123, #f0d792);
	--p-texture: var(--mpw-speckle);
}

.mpw-finish--marble .mpw-plaque {
	--p-bg: #f7f4ef;
	--p-bg-2: #e6e1d8;
	--p-edge-hi: #ffffff;
	--p-edge-lo: #b9b1a4;
	--p-text: #4f473d;
	--p-text-soft: #6c6357;
	--p-text-shadow: 0 1px 0 rgba(255, 255, 255, .9), 0 -1px 0 rgba(0, 0, 0, .28);
	--p-rule: linear-gradient(90deg, transparent, #9d907c 20%, #9d907c 80%, transparent);
	--p-ring: conic-gradient(from 210deg, #e9d8ad, #9c7b40, #e3c98e, #7c5f2c, #e9d8ad);
	--p-texture: var(--mpw-veins-fine);
}

.mpw-plaque__link {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	box-sizing: border-box;
	height: 100%;
	min-height: 330px;
	padding: 26px 18px 22px;
	color: var(--p-text);
	text-align: center;
	text-decoration: none;
	background:
		linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .13) 48%, transparent 60%) no-repeat -220% 0 / 220% 100%,
		var(--p-texture),
		radial-gradient(120% 90% at 30% 10%, rgba(255, 255, 255, .12), transparent 55%),
		linear-gradient(160deg, var(--p-bg), var(--p-bg-2));
	border-radius: 4px;
	box-shadow:
		inset 0 0 0 1px var(--p-edge-lo),
		inset 2px 2px 0 0 var(--p-edge-hi),
		inset -2px -2px 0 0 var(--p-edge-lo),
		inset 0 0 0 7px rgba(0, 0, 0, .05),
		inset 8px 8px 0 -1px rgba(255, 255, 255, .06),
		0 1px 0 rgba(255, 255, 255, .5),
		0 14px 22px -10px rgba(30, 20, 10, .55),
		0 30px 40px -30px rgba(30, 20, 10, .5);
	transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s, background-position .9s ease;
}
/* inner raised border line */
.mpw-plaque__link::before {
	content: "";
	position: absolute;
	inset: 9px;
	border: 1px solid color-mix(in srgb, var(--p-edge-hi) 55%, transparent);
	border-radius: 2px;
	box-shadow: 0 1px 0 color-mix(in srgb, var(--p-edge-lo) 70%, transparent), inset 0 1px 0 color-mix(in srgb, var(--p-edge-lo) 50%, transparent);
	pointer-events: none;
}
.mpw-plaque__link:hover,
.mpw-plaque__link:focus-visible {
	transform: translateY(-3px);
	background-position: 220% 0, 0 0, 0 0, 0 0;
	box-shadow:
		inset 0 0 0 1px var(--p-edge-lo),
		inset 2px 2px 0 0 var(--p-edge-hi),
		inset -2px -2px 0 0 var(--p-edge-lo),
		0 1px 0 rgba(255, 255, 255, .5),
		0 22px 30px -12px rgba(30, 20, 10, .6),
		0 40px 50px -34px rgba(30, 20, 10, .55);
}
.mpw-plaque__link:focus-visible { outline: 3px solid #2271b1; outline-offset: 4px; }

/* corner rosettes */
.mpw-plaque__screws i {
	position: absolute;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #fff7e0, var(--p-edge-hi) 40%, var(--p-edge-lo) 100%);
	box-shadow: 0 1px 1px rgba(0, 0, 0, .55);
}
.mpw-plaque__screws i:nth-child(1) { top: 16px; left: 16px; }
.mpw-plaque__screws i:nth-child(2) { top: 16px; right: 16px; }
.mpw-plaque__screws i:nth-child(3) { bottom: 16px; left: 16px; }
.mpw-plaque__screws i:nth-child(4) { bottom: 16px; right: 16px; }

/* oval cameo for portraits */
.mpw-plaque__frame {
	position: relative;
	display: block;
	flex: none;
	width: 108px;
	height: 136px;
	margin: 4px 0 16px;
	padding: 4px;
	border-radius: 50%;
	background: var(--p-ring);
	box-shadow: 0 3px 6px rgba(0, 0, 0, .45), inset 0 0 0 1px rgba(0, 0, 0, .25);
}
.mpw-plaque__frame img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	object-position: 50% 22%;
	border-radius: 50%;
	background: #2b2722;
	filter: sepia(.18) contrast(1.02);
	box-shadow: inset 0 0 12px rgba(0, 0, 0, .5);
}
/* medals, badges and the emblem sit in a round medallion and are not cropped */
.mpw-plaque--medals .mpw-plaque__frame,
.mpw-plaque--badge .mpw-plaque__frame,
.mpw-plaque--emblem .mpw-plaque__frame { width: 118px; height: 118px; margin: 10px 0 24px; }
.mpw-plaque--medals .mpw-plaque__frame img,
.mpw-plaque--badge .mpw-plaque__frame img {
	object-fit: contain;
	padding: 10px;
	box-sizing: border-box;
	background: radial-gradient(circle at 40% 35%, #3c362f, #1c1915);
	filter: none;
}
.mpw-plaque--emblem .mpw-plaque__frame img { filter: none; }

.mpw-plaque__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	width: 100%;
	text-shadow: var(--p-text-shadow);
}

.mpw-plaque__rank {
	font: 600 .74rem/1.2 var(--mpw-caps);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--p-text-soft);
}
.mpw-plaque__name { display: block; margin-top: 4px; }
.mpw-plaque__given {
	display: block;
	font: 500 1.08rem/1.15 var(--mpw-serif);
	letter-spacing: .02em;
}
.mpw-plaque__surname {
	display: block;
	font: 600 1.32rem/1.12 var(--mpw-caps);
	letter-spacing: .09em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.mpw-plaque__postnom {
	display: block;
	margin-top: 2px;
	font: 600 .72rem/1.2 var(--mpw-caps);
	letter-spacing: .14em;
	color: var(--p-text-soft);
}
.mpw-plaque__known {
	margin-top: 4px;
	font: italic 400 1.02rem/1.2 var(--mpw-serif);
	color: var(--p-text-soft);
}
.mpw-plaque__rule {
	display: block;
	width: 64%;
	height: 1px;
	margin: 12px auto 10px;
	background: var(--p-rule);
	box-shadow: 0 1px 0 rgba(0, 0, 0, .25);
}
.mpw-plaque__corps {
	font: 600 .82rem/1.2 var(--mpw-caps);
	letter-spacing: .18em;
}
.mpw-plaque__dates {
	margin-top: 4px;
	font: 500 1rem/1.2 var(--mpw-serif);
	letter-spacing: .06em;
	font-variant-numeric: lining-nums;
}
.mpw-plaque__ops {
	margin-top: auto;
	padding-top: 10px;
	font: 500 .78rem/1.3 var(--mpw-sans);
	letter-spacing: .04em;
	color: var(--p-text-soft);
}

/* poppy laid on the plaque */
.mpw-plaque__poppy {
	position: absolute;
	top: -14px;
	right: -12px;
	z-index: 2;
	width: 66px;
	height: 66px;
	pointer-events: auto;
	transform: rotate(14deg);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.mpw-plaque:hover .mpw-plaque__poppy { transform: rotate(4deg) scale(1.06); }
.mpw-plaque__poppy img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
	filter: var(--tint, saturate(1)) drop-shadow(0 2px 2px rgba(20, 8, 4, .5)) drop-shadow(2px 9px 8px rgba(20, 8, 4, .35));
}
.mpw-plaque__poppy-count {
	position: absolute;
	right: -2px;
	bottom: 2px;
	min-width: 22px;
	height: 22px;
	padding: 0 5px;
	box-sizing: border-box;
	font: 700 .72rem/22px var(--mpw-sans);
	text-align: center;
	color: #fff;
	background: var(--mpw-red-deep);
	border: 2px solid #fff;
	border-radius: 999px;
	transform: rotate(-14deg);
	box-shadow: 0 2px 4px rgba(0, 0, 0, .35);
}

/* poppy tints (match the Remembrance Wall) */
.rw-tint-natural { --tint: saturate(1.02); }
.rw-tint-purple { --tint: hue-rotate(-78deg) saturate(.7) brightness(.74); }
.rw-tint-white { --tint: grayscale(1) brightness(2.35) contrast(.62); }
.rw-tint-black { --tint: grayscale(1) brightness(.52) contrast(1.15); }
.rw-tint-khaki { --tint: sepia(1) saturate(.85) hue-rotate(18deg) brightness(.82); }

/* ------------------------------------------------------------------ Pagination */
.mpw-pages { margin: 2.2rem 0 0; font-family: var(--mpw-sans); }
.mpw-pages ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.mpw-pages a,
.mpw-pages span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: 0 12px;
	box-sizing: border-box;
	font-size: .92rem;
	color: var(--mpw-wall-text);
	text-decoration: none;
	background: var(--mpw-panel);
	border: 1px solid var(--mpw-panel-line);
	border-radius: 8px;
}
.mpw-pages a:hover { border-color: var(--mpw-red); }
.mpw-pages [aria-current] { color: #fff; background: var(--mpw-red-deep); border-color: var(--mpw-red-deep); }
.mpw-pages__gap { align-self: center; padding: 0 4px; }

/* ------------------------------------------------------------------ Popup */
.mpw-modal {
	width: min(980px, calc(100vw - 24px));
	max-width: none;
	max-height: calc(100dvh - 24px);
	margin: auto;
	padding: 0;
	color: var(--mpw-ink);
	background: transparent;
	border: 0;
	outline: none;
	overflow: visible;
}
.mpw-modal::backdrop {
	background: rgba(18, 14, 10, .72);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}
.mpw-modal[open] { animation: mpw-rise .32s cubic-bezier(.2, .8, .2, 1); }
@keyframes mpw-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } }

.mpw-modal__panel {
	position: relative;
	max-height: calc(100dvh - 24px);
	overflow: auto;
	overscroll-behavior: contain;
	background:
		linear-gradient(rgba(250, 247, 241, .62), rgba(250, 247, 241, .62)),
		var(--mpw-veins-fine),
		var(--mpw-grain),
		linear-gradient(180deg, #fbf8f2, #f1ebe0);
	background-size: auto, 600px 600px, 200px 200px, auto;
	border-radius: 10px;
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7), inset 0 0 0 1px rgba(255, 255, 255, .7);
}
.mpw-modal__close {
	position: sticky;
	top: 10px;
	float: right;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 10px 10px -54px 0;
	padding: 0;
	font: 400 30px/1 var(--mpw-sans);
	color: var(--mpw-ink);
	background: rgba(255, 255, 255, .85);
	border: 1px solid rgba(60, 50, 40, .2);
	border-radius: 50%;
	cursor: pointer;
}
.mpw-modal__close:hover { background: #fff; color: var(--mpw-red); }
.mpw-modal__close:focus-visible { outline: 3px solid #2271b1; outline-offset: 2px; }
.mpw-modal__loading { padding: 4rem 1rem; text-align: center; font-style: italic; color: var(--mpw-ink-soft); }

.mpw-detail { font-family: var(--mpw-serif); }

.mpw-detail__head {
	display: grid;
	grid-template-columns: minmax(180px, 280px) 1fr;
	gap: clamp(20px, 4vw, 40px);
	align-items: center;
	padding: clamp(22px, 4vw, 44px) clamp(20px, 4vw, 48px) clamp(18px, 3vw, 30px);
	color: #f4ead7;
	background:
		var(--mpw-grain),
		radial-gradient(120% 120% at 20% 0%, #5a4430, #2c2117 70%);
	border-radius: 10px 10px 0 0;
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .3);
}
.mpw-detail__photo {
	margin: 0;
	padding: 6px;
	aspect-ratio: 4 / 5;
	border-radius: 50%;
	background: conic-gradient(from 210deg, #f1d79c, #8a6630, #e0bf7c, #6b4c20, #f1d79c);
	box-shadow: 0 16px 30px -12px rgba(0, 0, 0, .75);
}
.mpw-detail__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 22%;
	border-radius: 50%;
	background: #1f1b17;
}
.mpw-detail__photo--medals,
.mpw-detail__photo--badge,
.mpw-detail__photo--emblem { aspect-ratio: 1; }
.mpw-detail__photo--medals img,
.mpw-detail__photo--badge img { object-fit: contain; padding: 16px; box-sizing: border-box; background: radial-gradient(circle at 40% 35%, #3c362f, #1c1915); }

.mpw-detail__rank {
	margin: 0;
	font: 600 .8rem/1.2 var(--mpw-caps);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--mpw-gold);
}
.mpw-detail__name {
	margin: .2rem 0 .3rem;
	padding: 0;
	font: 500 clamp(1.9rem, 4.6vw, 3rem)/1.05 var(--mpw-caps);
	letter-spacing: .03em;
	color: #fff6e4;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}
.mpw-detail__name small {
	display: inline-block;
	margin-left: .2em;
	font-size: .42em;
	letter-spacing: .14em;
	color: var(--mpw-gold);
	vertical-align: middle;
}
.mpw-detail__known { margin: 0 0 .4rem; font-size: 1.2rem; font-style: italic; color: #e4d3b2; }
.mpw-detail__known strong { font-weight: 600; color: #fff1d6; }
.mpw-detail__corps { margin: 0; font-size: 1.15rem; color: #efdfc1; }
.mpw-detail__corps span { color: var(--mpw-gold); font-family: var(--mpw-caps); font-size: .85em; letter-spacing: .1em; }
.mpw-detail__life { margin: .3rem 0 0; font-size: 1.15rem; letter-spacing: .03em; color: #d9c7a5; }

.mpw-detail__poppies {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin-top: 1.2rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(214, 180, 106, .3);
}
.mpw-poppies { display: flex; margin: 0; padding: 0 0 0 10px; list-style: none; }
.mpw-poppies li { margin-left: -10px; }
.mpw-poppies img { display: block; width: 40px; height: 40px; filter: var(--tint, none) drop-shadow(0 2px 3px rgba(0, 0, 0, .5)); }
.mpw-poppies__note { flex: 1 1 200px; margin: 0; font: .88rem/1.35 var(--mpw-sans); color: #e2d2b3; }
.mpw-detail__poppies .mpw-btn--poppy { flex: none; }

.mpw-detail__body {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 40px;
	padding: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 48px) 10px;
}
.mpw-facts,
.mpw-sec--tribute { grid-column: 1 / -1; }

.mpw-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 14px 24px;
	margin: 0 0 8px;
	padding: 0 0 18px;
	border-bottom: 1px solid rgba(60, 50, 40, .14);
}
.mpw-facts div { margin: 0; }
.mpw-facts dt {
	margin: 0 0 2px;
	font: 600 .7rem/1.2 var(--mpw-sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #8a7a64;
}
.mpw-facts dd { margin: 0; font-size: 1.12rem; line-height: 1.3; }

.mpw-sec { min-width: 0; margin: 0 0 18px; }
.mpw-sec h3 {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 10px;
	padding: 0;
	font: 600 .85rem/1.2 var(--mpw-caps);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mpw-red-deep);
}
.mpw-sec h3::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(125, 24, 18, .35), transparent); }
.mpw-sec p { margin: 8px 0 0; font-size: 1.08rem; line-height: 1.5; }

.mpw-tribute {
	position: relative;
	margin: 6px 0 4px;
	padding: 4px 0 4px 26px;
	font-size: clamp(1.12rem, 1.7vw, 1.28rem);
	line-height: 1.6;
	color: #3b3229;
	border-left: 3px solid rgba(179, 38, 30, .55);
}
.mpw-tribute p { margin: 0 0 .7em; }
.mpw-tribute p:last-child { margin-bottom: 0; }

.mpw-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; padding: 0; list-style: none; }
.mpw-chips li {
	padding: 5px 12px;
	font: 500 .85rem/1.2 var(--mpw-sans);
	color: #4a3f33;
	background: rgba(255, 255, 255, .7);
	border: 1px solid rgba(60, 50, 40, .18);
	border-radius: 999px;
}
.mpw-chips--ops li { color: #fff; background: #4d3a26; border-color: #4d3a26; }

.mpw-table-wrap { overflow-x: auto; }
.mpw-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font: .92rem/1.35 var(--mpw-sans);
}
.mpw-table th {
	padding: 6px 8px 6px 0;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-align: left;
	text-transform: uppercase;
	color: #8a7a64;
	border-bottom: 1px solid rgba(60, 50, 40, .2);
}
.mpw-table__years { white-space: nowrap; }
.mpw-table td { padding: 7px 8px 7px 0; vertical-align: top; border: 0; border-bottom: 1px solid rgba(60, 50, 40, .08); }

.mpw-timeline { position: relative; margin: 0; padding: 0 0 0 18px; list-style: none; }
.mpw-timeline::before { content: ""; position: absolute; left: 4px; top: 6px; bottom: 6px; width: 2px; background: rgba(125, 24, 18, .25); }
.mpw-timeline li { position: relative; display: flex; gap: 12px; align-items: baseline; padding: 4px 0; }
.mpw-timeline li::before { content: ""; position: absolute; left: -18px; top: 11px; width: 10px; height: 10px; border-radius: 50%; background: var(--mpw-red); box-shadow: 0 0 0 3px #f6f1e8; }
.mpw-timeline__date { min-width: 84px; font: .85rem/1.3 var(--mpw-sans); color: #8a7a64; }
.mpw-timeline__rank { font-size: 1.1rem; }

.mpw-honours { margin: 0; padding: 0; list-style: none; }
.mpw-honours li { position: relative; padding: 4px 0 4px 26px; font-size: 1.08rem; line-height: 1.35; }
.mpw-honours li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 7px;
	width: 14px;
	height: 18px;
	background:
		radial-gradient(circle at 50% 70%, #e2c37f 0 4px, #9b7633 4.5px 5.5px, transparent 6px),
		linear-gradient(90deg, #7d1812 0 33%, #1c3d6e 33% 66%, #7d1812 66%) top / 100% 7px no-repeat;
}

.mpw-detail__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px clamp(20px, 4vw, 48px) 26px;
	border-top: 1px solid rgba(60, 50, 40, .12);
}
.mpw-detail__lest { margin: 0; font: italic 500 1.25rem/1 var(--mpw-serif); letter-spacing: .04em; color: var(--mpw-red-deep); }

/* ------------------------------------------------------------------ Responsive */
@media (max-width: 680px) {
	.mpw-detail__head { grid-template-columns: 1fr; justify-items: center; text-align: center; }
	.mpw-detail__photo { width: min(50vw, 200px); }
	.mpw-detail__poppies { justify-content: center; }
	.mpw-detail__body { grid-template-columns: 1fr; }
	.mpw-modal { width: 100vw; max-height: 100dvh; }
	.mpw-modal__panel { max-height: 100dvh; border-radius: 0; }
	.mpw-detail__head { border-radius: 0; }
}
@media (max-width: 520px) {
	.mpw-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.mpw-plaque__link { min-height: 270px; padding: 22px 10px 18px; }
	.mpw-plaque__frame { width: 82px; height: 104px; margin-bottom: 12px; }
	.mpw-plaque--medals .mpw-plaque__frame,
	.mpw-plaque--badge .mpw-plaque__frame,
	.mpw-plaque--emblem .mpw-plaque__frame { width: 90px; height: 90px; margin: 6px 0 16px; }
	.mpw-plaque__surname { font-size: 1.02rem; letter-spacing: .06em; }
	.mpw-plaque__given { font-size: .95rem; }
	.mpw-plaque__ops { display: none; }
	.mpw-plaque__poppy { width: 50px; height: 50px; top: -10px; right: -8px; }
	.mpw-plaque__screws i { width: 7px; height: 7px; }
	.mpw-plaque__screws i:nth-child(-n+2) { top: 13px; }
	.mpw-plaque__screws i:nth-child(n+3) { bottom: 13px; }
	.mpw-plaque__screws i:nth-child(odd) { left: 13px; }
	.mpw-plaque__screws i:nth-child(even) { right: 13px; }
}
@media (max-width: 340px) {
	.mpw-wall { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.mpw *, .mpw-modal[open] { transition: none !important; animation: none !important; }
}

@media print {
	.mpw-filters, .mpw-pages, .mpw-modal { display: none !important; }
	.mpw { background: none; box-shadow: none; }
}

/* Guard the plaque poppy against theme rules (Divi and others set img/list styles). */
.mpw .mpw-wall,
.mpw .mpw-wall > li.mpw-plaque { overflow: visible !important; }
.mpw .mpw-wall > li.mpw-plaque { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.mpw .mpw-plaque .mpw-plaque__poppy { display: block !important; visibility: visible !important; opacity: 1 !important; }
.mpw .mpw-plaque .mpw-plaque__poppy img { width: 100% !important; height: 100% !important; max-width: none !important; border: 0 !important; box-shadow: none !important; }

/* ------------------------------------------------------------------ Medal bars */
.mpw-plaque__ribbons {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin: 10px 0 0;
	filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .55));
}
.mpw-plaque__ribbons > span { display: flex; gap: 2px; }
.mpw-plaque__ribbons i {
	display: block;
	width: 28px;
	height: 9px;
	border-radius: 1px;
	box-shadow: inset 0 0 0 .5px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.mpw-sec--medals { grid-column: 1 / -1; }
.mpw-sec--medals .mdb-bar { margin: 4px 0 6px; }
@media (max-width: 520px) {
	.mpw-plaque__ribbons i { width: 18px; height: 6px; }
}
