/*
 * MPF Supplier Directory styles.
 * Enqueued only on supplier views. Tokens defined once here with the
 * --mpfs- namespace so nothing collides with editorial --mfl- vars.
 * Orange is an accent: primary CTAs, active chips, featured badge,
 * link hover. Never a background wash.
 */

:root {
	--mpfs-navy: #0B4169;
	--mpfs-navy-deep: #072E4A;
	--mpfs-navy-tint: #E8EEF4;
	--mpfs-orange: #F26925;
	--mpfs-orange-soft: #FBB686;
	--mpfs-orange-wash: #FCCDAD;
	--mpfs-orange-tint: #FDE7D2;
	--mpfs-n0: #FFFFFF;
	--mpfs-n1: #F7F8FA;
	--mpfs-n2: #E4E7EB;
	--mpfs-n3: #9AA5B1;
	--mpfs-n4: #4A5568;
	--mpfs-n5: #1A202C;
	--mpfs-radius-ctl: 4px;
	--mpfs-radius-card: 8px;
	--mpfs-shadow-1: 0 1px 2px rgba(11, 65, 105, 0.06);
	--mpfs-shadow-2: 0 4px 12px rgba(11, 65, 105, 0.10);
	--mpfs-serif: "Source Serif 4", Georgia, serif;
	--mpfs-sans: "Source Sans 3", "Segoe UI", Arial, sans-serif;
}

/* ---------- layout shell ---------- */
.mpfs-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 16px 64px;
	font-family: var(--mpfs-sans);
	color: var(--mpfs-n5);
}

.mpfs-breadcrumbs {
	font-size: 14px;
	color: var(--mpfs-n4);
	margin: 16px 0 8px;
}
.mpfs-breadcrumbs a { color: var(--mpfs-navy); text-decoration: none; }
.mpfs-breadcrumbs a:hover { color: var(--mpfs-orange); }

/* ---------- directory masthead (profile/shortlist/compare) ---------- */
.mpfs-masthead {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	background: var(--mpfs-navy);
	padding: 20px 16px 18px;
}
.mpfs-masthead-name {
	font-family: var(--mpfs-serif);
	font-size: 36px;
	font-weight: 600;
	color: var(--mpfs-n0);
	text-decoration: none;
	text-align: center;
}
.mpfs-masthead-name:hover { color: var(--mpfs-orange-soft); }
.mpfs-masthead-search { position: relative; width: 100%; max-width: 520px; }
.mpfs-masthead-search input[type="search"] {
	width: 100%;
	font-size: 15px;
	padding: 9px 14px;
	border: none;
	background: var(--mpfs-orange-tint);
	border-radius: var(--mpfs-radius-ctl);
	font-family: var(--mpfs-sans);
	color: var(--mpfs-n5);
}

/* ---------- hub hero ---------- */
.mpfs-hero {
	background: var(--mpfs-navy);
	color: var(--mpfs-n0);
	padding: 48px 16px;
	text-align: center;
}
.mpfs-hero h1 {
	font-family: var(--mpfs-serif);
	font-size: 40px;
	line-height: 1.15;
	margin: 0 0 8px;
	color: var(--mpfs-n0);
}
.mpfs-hero p {
	font-size: 18px;
	margin: 0 auto 24px;
	max-width: 560px;
	color: var(--mpfs-navy-tint);
}
.mpfs-hero-search {
	max-width: 640px;
	margin: 0 auto;
}
.mpfs-hero-search input[type="search"] {
	width: 100%;
	font-size: 18px;
	padding: 14px 18px;
	border: none;
	border-radius: var(--mpfs-radius-ctl);
	font-family: var(--mpfs-sans);
	color: var(--mpfs-n5);
	background: var(--mpfs-orange-tint);
}

/* the theme main adds top padding that varies by breakpoint; navy
   directory heroes should sit flush against the site header. The
   fixed -16px is the fallback; :has() removes the padding exactly. */
.mfl-main > .mpfs-hero:first-child,
.mfl-main > .mpfs-masthead:first-child { margin-top: -16px; }
@supports selector(:has(*)) {
	.mfl-main:has(> .mpfs-hero:first-child),
	.mfl-main:has(> .mpfs-masthead:first-child) { padding-top: 0; }
	.mfl-main > .mpfs-hero:first-child,
	.mfl-main > .mpfs-masthead:first-child { margin-top: 0; }
}
.mpfs-hero-count {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	color: var(--mpfs-orange-soft);
}

/* ---------- category index ---------- */
.mpfs-cat-index {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px 32px;
	margin: 40px 0;
}
@media (min-width: 640px)  { .mpfs-cat-index { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .mpfs-cat-index { grid-template-columns: 1fr 1fr 1fr; } }
.mpfs-cat-block h2 {
	font-family: var(--mpfs-serif);
	font-size: 20px;
	margin: 0 0 6px;
	border-left: 3px solid var(--mpfs-orange);
	padding-left: 10px;
}
.mpfs-cat-block h2 a { color: var(--mpfs-navy); text-decoration: none; }
.mpfs-cat-block h2 a:hover { color: var(--mpfs-orange); }
.mpfs-cat-block ul { list-style: none; margin: 0; padding: 0 0 0 13px; }
.mpfs-cat-block li { margin: 3px 0; }
.mpfs-cat-block li a {
	color: var(--mpfs-n4);
	font-size: 15px;
	text-decoration: none;
}
.mpfs-cat-block li a:hover { color: var(--mpfs-orange); }
.mpfs-cat-block .mpfs-cat-count { color: var(--mpfs-n3); font-size: 13px; }

/* ---------- category icons + subcat expander ---------- */
.mpfs-cat-icon {
	width: 26px;
	height: 26px;
	color: var(--mpfs-orange);
	vertical-align: -5px;
	margin-right: 8px;
	flex: 0 0 auto;
}
.mpfs-cat-block h2 { display: flex; align-items: center; }
.mpfs-cat-block h2 .mpfs-cat-icon { color: var(--mpfs-navy); }
.mpfs-cat-block:hover h2 .mpfs-cat-icon { color: var(--mpfs-orange); }
.mpfs-cat-header h1 { display: flex; align-items: center; gap: 10px; }
.mpfs-cat-header h1 .mpfs-cat-icon { width: 32px; height: 32px; color: var(--mpfs-orange); }
.mpfs-more-subcats { margin: 4px 0 0 13px; }
.mpfs-more-subcats summary {
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	color: var(--mpfs-navy);
	list-style: none;
	padding: 4px 0;
	min-height: 28px;
}
.mpfs-more-subcats summary::-webkit-details-marker { display: none; }
.mpfs-more-subcats summary::after { content: " ▾"; font-weight: 400; }
.mpfs-more-subcats[open] summary::after { content: " ▴"; }
.mpfs-more-subcats summary:hover { color: var(--mpfs-orange); }
.mpfs-more-subcats ul { list-style: none; margin: 2px 0 0; padding: 0; }
.mpfs-more-subcats li { margin: 3px 0; }
.mpfs-more-subcats li a { color: var(--mpfs-n4); font-size: 15px; text-decoration: none; }
.mpfs-more-subcats li a:hover { color: var(--mpfs-orange); }

/* ---------- section headings ---------- */
.mpfs-section-title {
	font-family: var(--mpfs-serif);
	font-size: 24px;
	color: var(--mpfs-navy);
	margin: 48px 0 16px;
}

/* ---------- card grid ---------- */
.mpfs-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
@media (min-width: 640px)  { .mpfs-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .mpfs-grid { grid-template-columns: 1fr 1fr 1fr; } }

/* ---------- supplier card ----------
 * One component, one visual form, fixed height within a row.
 */
.mpfs-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
	padding: 16px;
	min-height: 250px;
	box-shadow: var(--mpfs-shadow-1);
	transition: box-shadow 150ms ease;
}
.mpfs-card:hover,
.mpfs-card:focus-within { box-shadow: var(--mpfs-shadow-2); }

.mpfs-card-logo {
	width: 100%;
	height: 104px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-n1);
	border-radius: var(--mpfs-radius-ctl);
	padding: 10px;
	margin-bottom: 12px;
}
.mpfs-card-logo img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.mpfs-monogram {
	width: 160px;
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mpfs-navy);
	color: var(--mpfs-n0);
	border-radius: var(--mpfs-radius-ctl);
	font-family: var(--mpfs-serif);
	font-size: 32px;
	margin-bottom: 12px;
}

.mpfs-card h3 {
	font-family: var(--mpfs-sans);
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 6px;
	line-height: 1.3;
}
.mpfs-card h3 a {
	color: var(--mpfs-navy);
	text-decoration: none;
}
/* full-card click target */
.mpfs-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.mpfs-card h3 a:hover { color: var(--mpfs-orange); }

.mpfs-card-desc {
	font-size: 15px;
	line-height: 1.45;
	color: var(--mpfs-n4);
	margin: 0 0 10px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.mpfs-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.mpfs-chip {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	font-size: 12px;
	line-height: 1;
	padding: 5px 11px;
	border-radius: 999px;
	background: var(--mpfs-navy-tint);
	color: var(--mpfs-navy);
	text-decoration: none;
	position: relative;
	z-index: 1; /* stays clickable above the full-card overlay */
}
.mpfs-chip:hover { background: var(--mpfs-navy); color: var(--mpfs-n0); }
.mpfs-chip--more { background: var(--mpfs-n1); color: var(--mpfs-n4); }
.mpfs-chip--active { background: var(--mpfs-orange); color: var(--mpfs-n0); }

.mpfs-card-foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	color: var(--mpfs-n3);
	border-top: 1px solid var(--mpfs-n1);
	padding-top: 10px;
}
.mpfs-badge-contract {
	font-size: 12px;
	padding: 3px 8px;
	border-radius: var(--mpfs-radius-ctl);
	background: var(--mpfs-n1);
	color: var(--mpfs-n4);
	white-space: nowrap;
}
/* One tier-badge look everywhere: soft orange pill, always in normal
   flow (never absolutely positioned, so it can't land on a logo) */
.mpfs-badge-featured,
.mpfs-badge-partner {
	display: inline-block;
	align-self: flex-start;
	margin: 0 0 10px;
	padding: 2px 10px;
	border: 1px solid rgba(226, 106, 38, 0.35);
	border-radius: 999px;
	background: #fdeee3;
	color: var(--mpfs-orange);
	font-family: var(--mpfs-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.7;
	white-space: nowrap;
}
.mpfs-badge-partner {
	border-color: var(--mpfs-n2);
	background: var(--mpfs-n1);
	color: var(--mpfs-navy);
}

/* ---------- category page ---------- */
.mpfs-cat-header h1 {
	font-family: var(--mpfs-serif);
	font-size: 32px;
	color: var(--mpfs-navy);
	margin: 8px 0 10px;
}
.mpfs-cat-intro {
	max-width: 720px;
	font-size: 16px;
	line-height: 1.55;
	color: var(--mpfs-n4);
	margin: 0 0 24px;
}
.mpfs-result-count {
	font-size: 14px;
	color: var(--mpfs-n4);
	margin: 0 0 12px;
}
.mpfs-subcat-nav { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 28px; }
/* subcategory pills: same prominent treatment as search's Matching
   Categories, per Eric (white pill, orange outline, navy text, no counts) */
.mpfs-subcat-pill {
	display: inline-block;
	font-family: var(--mpfs-sans);
	font-size: 15px;
	font-weight: 600;
	padding: 10px 22px;
	border: 1.5px solid var(--mpfs-orange);
	border-radius: 999px;
	color: var(--mpfs-navy);
	background: var(--mpfs-n0);
	text-decoration: none;
}
.mpfs-subcat-pill:hover { background: var(--mpfs-orange); color: var(--mpfs-n0); }

/* ---------- profile page ---------- */
.mpfs-profile-header {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	padding: 24px 0;
	border-bottom: 3px solid transparent;
	border-image: linear-gradient(90deg, var(--mpfs-orange), var(--mpfs-orange-soft) 40%, var(--mpfs-navy-tint) 100%) 1;
	margin-bottom: 24px;
}
@media (max-width: 640px) {
	.mpfs-profile-header { padding: 16px 0; gap: 12px 16px; }
	.mpfs-profile-logo { flex-basis: 170px !important; height: 88px !important; }
	.mpfs-profile-title h1 { font-size: 26px !important; }
	.mpfs-profile-tagline { font-size: 15px; }
}
.mpfs-profile-logo {
	flex: 0 0 250px;
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
	padding: 12px;
}
.mpfs-profile-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.mpfs-profile-logo.mpfs-monogram { font-size: 40px; }
.mpfs-profile-title { flex: 1; }
.mpfs-profile-title h1 {
	font-family: var(--mpfs-serif);
	font-size: 32px;
	color: var(--mpfs-navy);
	margin: 0 0 4px;
}
.mpfs-profile-hq { color: var(--mpfs-n4); font-size: 15px; margin: 0 0 10px; }
.mpfs-btn {
	display: inline-block;
	font-family: var(--mpfs-sans);
	font-size: 16px;
	font-weight: 600;
	padding: 10px 20px;
	border-radius: var(--mpfs-radius-ctl);
	background: var(--mpfs-orange);
	color: var(--mpfs-n0);
	text-decoration: none;
	min-height: 44px;
}
.mpfs-btn:hover { background: var(--mpfs-navy); color: var(--mpfs-n0); }

/* keyword results page (supplier_q) */
.mpfs-search-cats { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; }
.mpfs-search-cat {
	display: inline-block;
	font-family: var(--mpfs-sans);
	font-size: 15px;
	font-weight: 600;
	padding: 8px 16px;
	border: 1.5px solid var(--mpfs-orange);
	border-radius: 999px;
	color: var(--mpfs-navy);
	text-decoration: none;
	background: var(--mpfs-n0);
}
.mpfs-search-cat:hover { background: var(--mpfs-orange); color: var(--mpfs-n0); }
.mpfs-search-empty { color: var(--mpfs-n4); font-size: 16px; margin: 8px 0 32px; }

/* Mobile-first: the action card (aside) is first in the DOM so it
   lands right under the header on phones; on desktop the grid sends
   it to a sticky right rail. */
.mpfs-profile-cols { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) {
	.mpfs-profile-cols {
		grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
		gap: 40px;
	}
	.mpfs-profile-cols .mpfs-glance { order: 2; }
	.mpfs-profile-cols .mpfs-profile-main { order: 1; }
}
.mpfs-profile-tagline {
	font-size: 17px;
	line-height: 1.5;
	color: var(--mpfs-n4);
	margin: 0 0 12px;
	max-width: 640px;
}
.mpfs-btn-block {
	display: block;
	text-align: center;
	margin-bottom: 10px;
}
.mpfs-btn-secondary {
	display: block;
	text-align: center;
	font-family: var(--mpfs-sans);
	font-size: 15px;
	font-weight: 600;
	padding: 10px 20px;
	border: 1px solid var(--mpfs-navy);
	border-radius: var(--mpfs-radius-ctl);
	color: var(--mpfs-navy);
	text-decoration: none;
	margin-bottom: 16px;
	min-height: 44px;
}
.mpfs-btn-secondary:hover { border-color: var(--mpfs-orange); color: var(--mpfs-orange); }
.mpfs-profile-star { width: 100%; background: var(--mpfs-n0); cursor: pointer; }
.mpfs-profile-star .mpfs-star-ico { color: var(--mpfs-orange); }
.mpfs-profile-star.is-on { border-color: var(--mpfs-orange); color: var(--mpfs-orange); }

.mpfs-profile-main h2 {
	font-family: var(--mpfs-serif);
	font-size: 24px;
	color: var(--mpfs-navy);
	margin: 28px 0 10px;
}
.mpfs-profile-main { font-size: 16px; line-height: 1.6; }
.mpfs-key-products { list-style: none; margin: 0; padding: 0; }
.mpfs-key-products li {
	padding: 6px 0 6px 22px;
	position: relative;
}
.mpfs-key-products li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 14px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--mpfs-orange);
}

/* At a Glance sidebar. Sticky is desktop-only: on phones the card sits
   above the content in one column, and pinning it there traps the
   scroll and slides the copy underneath it. */
.mpfs-glance {
	background: var(--mpfs-n1);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
	padding: 20px;
	font-size: 15px;
	align-self: start;
}
@media (min-width: 900px) {
	.mpfs-glance { position: sticky; top: 90px; }
}
.mpfs-glance h2 {
	font-family: var(--mpfs-serif);
	font-size: 18px;
	color: var(--mpfs-navy);
	margin: 0 0 12px;
}
.mpfs-glance dl { margin: 0; }
.mpfs-glance dt {
	font-weight: 600;
	color: var(--mpfs-n5);
	margin-top: 12px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.mpfs-glance dd { margin: 2px 0 0; color: var(--mpfs-n4); overflow-wrap: anywhere; }
.mpfs-glance a { color: var(--mpfs-navy); }
.mpfs-glance a:hover { color: var(--mpfs-orange); }
.mpfs-contract-row { margin: 4px 0; }
.mpfs-contract-num { color: var(--mpfs-n5); font-weight: 600; }

/* verification pill mirrors the green and amber convention */
.mpfs-verified { color: #0B7A3E; font-weight: 600; }
.mpfs-unverified { color: #946200; }

/* compact search on category pages */
.mpfs-inline-search { margin: 16px 0 4px; max-width: 480px; }
.mpfs-inline-search input[type="search"] {
	width: 100%;
	font-size: 15px;
	padding: 10px 14px;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	font-family: var(--mpfs-sans);
	color: var(--mpfs-n5);
}

/* ---------- search dropdown ---------- */
.mpfs-search-drop {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 60;
	margin-top: 6px;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
	box-shadow: var(--mpfs-shadow-2);
	max-height: 420px;
	overflow-y: auto;
	text-align: left;
	color: var(--mpfs-n5);
}
.mpfs-drop-group { padding: 6px 0; border-bottom: 1px solid var(--mpfs-n1); }
.mpfs-drop-group:last-child { border-bottom: none; }
.mpfs-drop-label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mpfs-n3);
	padding: 8px 14px 4px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.mpfs-drop-sub { padding-top: 10px; }
.mpfs-drop-item {
	display: block;
	width: 100%;
	text-align: left;
	padding: 9px 14px;
	font-size: 15px;
	color: var(--mpfs-n5);
	text-decoration: none;
	border: none;
	background: none;
	cursor: pointer;
	font-family: var(--mpfs-sans);
}
.mpfs-drop-item strong { color: var(--mpfs-navy); font-weight: 600; display: block; }
.mpfs-drop-item span {
	display: block;
	font-size: 13px;
	color: var(--mpfs-n4);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.mpfs-drop-item em { color: var(--mpfs-n3); font-style: normal; font-size: 13px; }
.mpfs-drop-item:hover,
.mpfs-drop-item.is-active { background: var(--mpfs-navy-tint); }
.mpfs-recent-clear {
	font-size: 12px;
	color: var(--mpfs-navy);
	background: none;
	border: none;
	cursor: pointer;
	text-transform: none;
	letter-spacing: 0;
}
.mpfs-recent-clear:hover { color: var(--mpfs-orange); }
.mpfs-zero-form { padding: 8px 14px 12px; }
.mpfs-zero-form label { display: block; font-size: 13px; color: var(--mpfs-n4); }
.mpfs-zero-form input {
	display: block;
	width: 100%;
	margin: 6px 0 8px;
	padding: 8px 10px;
	font-size: 14px;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	font-family: var(--mpfs-sans);
}
.mpfs-btn-small { font-size: 14px; padding: 7px 14px; min-height: 0; border: none; cursor: pointer; }
.mpfs-zero-sent { display: block; margin-top: 6px; font-size: 13px; color: #0B7A3E; }
.mpfs-zero-sent[hidden] { display: none; }

/* ---------- browse layout: rail + results ---------- */
.mpfs-browse { display: block; }
@media (min-width: 900px) {
	.mpfs-browse { display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start; }
	.mpfs-filters-toggle { display: none; }
}
.mpfs-filters-toggle { margin: 0 0 12px; }
.mpfs-filter-rail { display: none; }
.mpfs-filter-rail.is-open { display: block; }
@media (min-width: 900px) { .mpfs-filter-rail { display: block; position: sticky; top: 90px; } }
/* bottom sheet on mobile: dimmed backdrop behind, close button in a
   sticky header, sticky "Show N suppliers" button at the foot. The
   sheet chrome is JS-injected and only shows here. */
.mpfs-rail-head,
.mpfs-rail-foot,
.mpfs-rail-backdrop { display: none; }
@media (max-width: 899px) {
	.mpfs-filter-rail.is-open {
		position: fixed;
		left: 0; right: 0; bottom: 0;
		max-height: 75vh;
		overflow-y: auto;
		background: var(--mpfs-n0);
		border-top: 2px solid var(--mpfs-navy);
		border-radius: 12px 12px 0 0;
		box-shadow: 0 -8px 24px rgba(11, 65, 105, 0.18);
		padding: 0 16px;
		z-index: 80;
	}
	.mpfs-rail-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(7, 46, 74, 0.45);
		z-index: 79;
	}
	.mpfs-rail-backdrop[hidden] { display: none; }
	.mpfs-filter-rail.is-open .mpfs-rail-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		position: sticky;
		top: 0;
		background: var(--mpfs-n0);
		margin: 0 -16px 12px;
		padding: 14px 16px 10px;
		border-bottom: 1px solid var(--mpfs-n2);
		z-index: 1;
		font-family: var(--mpfs-sans);
		font-weight: 700;
		color: var(--mpfs-navy);
	}
	.mpfs-rail-close {
		border: none;
		background: none;
		font-size: 26px;
		line-height: 1;
		color: var(--mpfs-n4);
		cursor: pointer;
		padding: 2px 8px;
	}
	.mpfs-filter-rail.is-open .mpfs-rail-foot {
		display: block;
		position: sticky;
		bottom: 0;
		background: var(--mpfs-n0);
		margin: 12px -16px 0;
		padding: 10px 16px 14px;
		border-top: 1px solid var(--mpfs-n2);
	}
	.mpfs-rail-apply { width: 100%; }
	body.mpfs-rail-lock { overflow: hidden; }
}
.mpfs-filter-group { border: none; margin: 0 0 20px; padding: 0; }
.mpfs-filter-group legend {
	font-family: var(--mpfs-sans);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mpfs-navy);
	margin-bottom: 6px;
}
.mpfs-filter-opt {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--mpfs-n4);
	padding: 4px 0;
	min-height: 28px;
	cursor: pointer;
}
.mpfs-filter-opt input { width: 16px; height: 16px; accent-color: var(--mpfs-orange); }
.mpfs-filter-opt .mpfs-filter-count { margin-left: auto; font-size: 12px; color: var(--mpfs-n3); }
.mpfs-filter-opt.is-dimmed { opacity: 0.45; cursor: default; }
.mpfs-clear-all {
	font-size: 13px;
	color: var(--mpfs-navy);
	background: none;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	padding: 6px 12px;
	cursor: pointer;
}
.mpfs-clear-all:hover { color: var(--mpfs-orange); border-color: var(--mpfs-orange-soft); }

.mpfs-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}
.mpfs-toolbar-controls { display: flex; align-items: center; gap: 12px; }
.mpfs-sort-label { font-size: 14px; color: var(--mpfs-n4); }
.mpfs-sort {
	font-family: var(--mpfs-sans);
	font-size: 14px;
	padding: 6px 8px;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	margin-left: 6px;
}
.mpfs-view-toggle { display: inline-flex; border: 1px solid var(--mpfs-n2); border-radius: var(--mpfs-radius-ctl); overflow: hidden; }
.mpfs-view-btn {
	font-family: var(--mpfs-sans);
	font-size: 13px;
	padding: 7px 12px;
	background: var(--mpfs-n0);
	border: none;
	cursor: pointer;
	color: var(--mpfs-n4);
	min-height: 32px;
}
.mpfs-view-btn.is-active { background: var(--mpfs-navy); color: var(--mpfs-n0); }
.mpfs-applied-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.mpfs-applied-chips .mpfs-chip { border: none; cursor: pointer; font-family: var(--mpfs-sans); }
.mpfs-chip-clearall { background: none; color: var(--mpfs-n4); text-decoration: underline; }

/* ---------- compact table view ---------- */
.mpfs-table-wrap { overflow-x: auto; }
.mpfs-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.mpfs-table th, .mpfs-table td {
	text-align: left;
	padding: 10px 12px;
	border-bottom: 1px solid var(--mpfs-n2);
	height: 40px;
	vertical-align: middle;
}
.mpfs-table thead th {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mpfs-n3);
	border-bottom: 2px solid var(--mpfs-navy-tint);
}
.mpfs-table td a { color: var(--mpfs-navy); font-weight: 600; text-decoration: none; }
.mpfs-table td a:hover { color: var(--mpfs-orange); }
.mpfs-table-actions { white-space: nowrap; }
.mpfs-compare-table th[scope="row"] { width: 140px; color: var(--mpfs-navy); vertical-align: top; }
.mpfs-compare-table td { vertical-align: top; height: auto; }

/* ---------- card action buttons ----------
 * hover-reveal on fine pointers, always visible on touch
 */
.mpfs-card-actions {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	gap: 4px;
	z-index: 2;
}
/* card badges sit in flow above the logo; the absolute-positioned
   card actions stay clear of them in the top-right corner */
.mpfs-card .mpfs-badge-featured,
.mpfs-card .mpfs-badge-partner { margin-right: 64px; }
.mpfs-chip-tier {
	display: inline-block;
	margin-left: 6px;
	padding: 0 7px;
	border-radius: 999px;
	border: 1px solid var(--mpfs-n2);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--mpfs-navy);
	background: var(--mpfs-n1);
	vertical-align: 1px;
}
.mpfs-chip-tier--featured {
	border-color: rgba(226, 106, 38, 0.35);
	color: var(--mpfs-orange);
	background: #fdeee3;
}
/* paid tiers carry a light wash in both views, same family as the
   tiers matrix: enhanced faint, featured a shade warmer */
.mpfs-card--enhanced { background: #fdf9f4; }
.mpfs-card--featured { background: #fdf3ea; border-color: rgba(226, 106, 38, 0.35); }
.mpfs-table tr.mpfs-row--enhanced td { background: #fdf9f4; }
.mpfs-table tr.mpfs-row--featured td { background: #fdf3ea; }

/* ---------- tier weighting in results ----------
 * A tint alone does not read as a tier when you are scanning. Featured buys
 * size: a wider card, a bigger logo well, larger type. Free listings shrink
 * so the difference is legible without anyone reading a badge. Enhanced is
 * the baseline card and is deliberately left alone — it is the middle.
 *
 * grid-auto-flow: dense is load-bearing. Under A-Z or Recently Added the
 * featured cards are no longer first, so a two-column card can land mid-grid;
 * without dense packing its span leaves a visible hole in the row above.
 *
 * align-items: start is the other half of it. The grid default stretches
 * every card to the tallest in its row, so beside a featured card the free
 * ones inflated to match it and the whole point was lost. Cards now take
 * their own height. This trades away the uniform row the original card
 * comment describes; that uniformity is what was hiding the tier.
 */
.mpfs-grid { grid-auto-flow: dense; align-items: start; }

/* free tier — everything with no tier modifier */
.mpfs-card:not(.mpfs-card--featured):not(.mpfs-card--enhanced) {
	min-height: 196px;
	padding: 13px;
}
.mpfs-card:not(.mpfs-card--featured):not(.mpfs-card--enhanced) .mpfs-card-logo {
	height: 66px;
	padding: 7px;
	margin-bottom: 9px;
}
.mpfs-card:not(.mpfs-card--featured):not(.mpfs-card--enhanced) h3 { font-size: 15.5px; }
.mpfs-card:not(.mpfs-card--featured):not(.mpfs-card--enhanced) .mpfs-card-desc {
	font-size: 13.5px;
	margin-bottom: 8px;
}

/* featured tier — larger at every width, wider once there is room */
.mpfs-card--featured { padding: 22px; }
.mpfs-card--featured .mpfs-card-logo { height: 132px; }
.mpfs-card--featured h3 { font-size: 22px; }
.mpfs-card--featured .mpfs-card-desc { font-size: 16px; -webkit-line-clamp: 3; }

@media (min-width: 640px) {
	.mpfs-card--featured { grid-column: span 2; }
}

/* At three columns a featured card spans two, so it turns horizontal: a tall
   logo well on the left, the copy on the right. Stretched vertically instead
   it would just look like a short, wide card. Every child is given an area —
   an unplaced child would be auto-placed into an implicit row and break it.
   .mpfs-card-actions is absolutely positioned and so stays out of the grid. */
@media (min-width: 1024px) {
	.mpfs-card--featured {
		display: grid;
		grid-template-columns: 264px 1fr;
		grid-template-rows: auto auto auto auto 1fr;
		grid-template-areas:
			"logo badge"
			"logo title"
			"logo desc"
			"logo chips"
			"logo foot";
		column-gap: 22px;
		min-height: 296px;
	}
	.mpfs-card--featured .mpfs-badge-featured { grid-area: badge; justify-self: start; }
	.mpfs-card--featured .mpfs-card-logo {
		grid-area: logo;
		height: 100%;
		margin-bottom: 0;
	}
	.mpfs-card--featured h3 { grid-area: title; }
	.mpfs-card--featured .mpfs-card-desc { grid-area: desc; }
	.mpfs-card--featured .mpfs-chips { grid-area: chips; }
	.mpfs-card--featured .mpfs-card-foot { grid-area: foot; }
}

/* featured keeps a logo in the compact table view */
.mpfs-table-supplier { display: inline-flex; align-items: center; gap: 10px; }
.mpfs-table-logo {
	flex: 0 0 auto;
	width: 68px;
	height: 30px;
	object-fit: contain;
	object-position: left center;
}
.mpfs-act {
	width: 34px;
	height: 34px;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	background: var(--mpfs-n0);
	color: var(--mpfs-n4);
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
}
.mpfs-act:hover { border-color: var(--mpfs-orange); color: var(--mpfs-orange); }
.mpfs-act.is-on { color: var(--mpfs-orange); border-color: var(--mpfs-orange-soft); }
.mpfs-act.is-shake { animation: mpfs-shake 0.3s; }
@keyframes mpfs-shake {
	25% { transform: translateX(-3px); }
	75% { transform: translateX(3px); }
}
@media (hover: hover) and (pointer: fine) {
	/* dimmed at rest, never hidden: visitors have to be able to
	   discover the shortlist and compare actions without guessing */
	.mpfs-card .mpfs-card-actions { opacity: 0.45; transition: opacity 120ms ease; }
	.mpfs-card:hover .mpfs-card-actions,
	.mpfs-card:focus-within .mpfs-card-actions { opacity: 1; }
	/* separate rule: browsers without :has() must not drop the hover rule */
	.mpfs-card:has(.mpfs-act.is-on) .mpfs-card-actions { opacity: 1; }
}

/* ---------- contract reveal + compilation notice ---------- */
.mpfs-reveal-contracts {
	display: inline-block;
	width: auto;
	margin-bottom: 0;
	padding: 7px 14px;
	min-height: 0;
	font-size: 14px;
	cursor: pointer;
	background: none;
}
.mpfs-compilation-note {
	max-width: 680px;
	margin: 48px auto 0;
	padding: 0 16px 8px;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--mpfs-n3);
	text-align: center;
	font-family: var(--mpfs-sans);
}
.mpfs-compilation-note p { margin: 0; }
.mpfs-compilation-note a { color: var(--mpfs-n3); }
.mpfs-terms-dialog {
	max-width: 560px;
	width: calc(100% - 32px);
	border: none;
	border-radius: var(--mpfs-radius-card);
	padding: 28px 28px 24px;
	box-shadow: var(--mpfs-shadow-2);
	font-family: var(--mpfs-sans);
	color: var(--mpfs-n5);
}
.mpfs-terms-dialog::backdrop { background: rgba(7, 46, 74, 0.55); }
.mpfs-terms-dialog h2 {
	font-family: var(--mpfs-serif);
	font-size: 22px;
	margin: 0 0 12px;
	padding-right: 32px;
	color: var(--mpfs-navy);
}
.mpfs-terms-dialog p { font-size: 14.5px; line-height: 1.6; }
.mpfs-terms-close {
	position: absolute;
	top: 10px;
	right: 12px;
	border: none;
	background: none;
	font-size: 26px;
	line-height: 1;
	color: var(--mpfs-n4);
	cursor: pointer;
	padding: 4px 8px;
}
.mpfs-terms-close:hover { color: var(--mpfs-orange); }

/* ---------- featured placement tags (band + sidebar) ----------
   same pill as the card badges for a consistent look site-wide */
.mpfs-ad-featured {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 10px;
	border: 1px solid rgba(226, 106, 38, 0.35);
	border-radius: 999px;
	background: #fdeee3;
	color: var(--mpfs-orange);
	font-family: var(--mpfs-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.7;
	white-space: nowrap;
	vertical-align: 2px;
}
.mpfs-side-recommended {
	display: block;
	margin: 10px 0 12px;
	padding: 10px 12px;
	border: 1px solid rgba(226, 106, 38, 0.25);
	border-radius: var(--mpfs-radius-card);
	background: #fef6f0;
	text-decoration: none;
}
.mpfs-side-rec-label {
	display: inline-block;
	margin-bottom: 4px;
	padding: 2px 10px;
	border: 1px solid rgba(226, 106, 38, 0.35);
	border-radius: 999px;
	background: #fdeee3;
	font-family: var(--mpfs-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.7;
	white-space: nowrap;
	color: var(--mpfs-orange);
}
.mpfs-side-rec-name {
	display: block;
	font-family: var(--mpfs-sans);
	font-weight: 600;
	color: var(--mpfs-navy);
	margin-top: 2px;
}

/* ---------- quiet supplier CTA on the hub ---------- */
.mpfs-supplier-cta {
	margin: 36px 0 0;
	text-align: center;
	font-family: var(--mpfs-sans);
	font-size: 14px;
	color: var(--mpfs-n4);
}
.mpfs-supplier-cta a { color: var(--mpfs-navy); font-weight: 600; }
.mpfs-supplier-cta a:hover { color: var(--mpfs-orange); }

/* ---------- listing tiers page ---------- */
.mpfs-tiers-header { max-width: 640px; margin: 24px auto 28px; text-align: center; }
.mpfs-tiers-header h1 { font-family: var(--mpfs-serif); color: var(--mpfs-navy); margin: 0 0 10px; }
.mpfs-tiers-header p { color: var(--mpfs-n4); font-family: var(--mpfs-sans); }
.mpfs-tiers-table-wrap { overflow-x: auto; }
.mpfs-tiers-table {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	border-collapse: collapse;
	font-family: var(--mpfs-sans);
	font-size: 14.5px;
	color: var(--mpfs-n5);
}
.mpfs-tiers-table th, .mpfs-tiers-table td { padding: 10px 14px; border-bottom: 1px solid var(--mpfs-n2); text-align: center; }
.mpfs-tiers-table td:first-child { text-align: left; }
.mpfs-tier-name { display: block; font-family: var(--mpfs-serif); font-size: 18px; color: var(--mpfs-navy); }
.mpfs-tier-price { display: block; font-size: 12.5px; color: var(--mpfs-n4); font-weight: 400; }
.mpfs-tier-enhanced-col { background: #fdf7f1; }
.mpfs-tier-featured-col { background: #fdeee3; }
.mpfs-tier-yes { color: var(--mpfs-orange); font-weight: 700; }
.mpfs-tier-no { color: var(--mpfs-n3); }
.mpfs-tiers-form-section { max-width: 640px; margin: 40px auto 0; }
.mpfs-tiers-form-section h2 { font-family: var(--mpfs-serif); color: var(--mpfs-navy); }
.mpfs-upgrade-form .mpfs-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.mpfs-upgrade-form label { display: block; font-family: var(--mpfs-sans); font-size: 13.5px; font-weight: 600; color: var(--mpfs-n5); }
.mpfs-upgrade-form input, .mpfs-upgrade-form select, .mpfs-upgrade-form textarea {
	width: 100%;
	margin-top: 4px;
	padding: 9px 10px;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	font-family: var(--mpfs-sans);
	font-size: 14.5px;
}
.mpfs-upgrade-form .mpfs-form-full { display: block; margin: 12px 0; }
.mpfs-upgrade-form .mpfs-btn { border: none; cursor: pointer; }
.mpfs-form-note { font-family: var(--mpfs-sans); color: var(--mpfs-navy); font-weight: 600; }
@media (max-width: 560px) { .mpfs-upgrade-form .mpfs-form-grid { grid-template-columns: 1fr; } }

/* ---------- homepage featured partners row ---------- */
.mpfs-featured-row { margin: 34px 0 8px; text-align: center; }
.mpfs-featured-row h2 { font-family: var(--mpfs-serif); color: var(--mpfs-navy); font-size: 22px; margin-bottom: 14px; }
.mpfs-featured-logos { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; align-items: center; }
.mpfs-featured-logos a {
	display: inline-flex;
	width: 150px;
	height: 84px;
	align-items: center;
	justify-content: center;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
	padding: 10px 14px;
}
.mpfs-featured-logos img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ---------- profile story cards ---------- */
.mpfs-story-cards {
	/* one row of four on desktop, two-up on phones */
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin: 6px 0 4px;
}
@media (min-width: 900px) {
	.mpfs-story-cards { grid-template-columns: repeat(4, 1fr); }
}
.mpfs-story-card {
	display: block;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
	overflow: hidden;
	text-decoration: none;
	box-shadow: var(--mpfs-shadow-1);
	transition: box-shadow 120ms ease, transform 120ms ease;
}
.mpfs-story-card:hover { box-shadow: var(--mpfs-shadow-2); transform: translateY(-2px); }
.mpfs-story-card-img { aspect-ratio: 16 / 9; overflow: hidden; background: var(--mpfs-n1); }
.mpfs-story-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mpfs-story-card-img--empty {
	background: var(--mpfs-n0);
	border-bottom: 1px solid rgba(226, 106, 38, 0.25);
	background-image: linear-gradient(135deg, #fef6f0 0%, #fdeee3 100%);
}
.mpfs-story-card-body { display: block; padding: 12px 14px 14px; }
.mpfs-story-card-kicker {
	display: block;
	font-family: var(--mpfs-sans);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mpfs-orange);
	margin-bottom: 4px;
}
.mpfs-story-card-title {
	display: block;
	font-family: var(--mpfs-serif);
	font-size: 16px;
	line-height: 1.35;
	color: var(--mpfs-navy);
	font-weight: 700;
}
.mpfs-story-more { margin: 14px 0 0; }
.mpfs-story-more .mpfs-btn-secondary { display: inline-block; }

/* ---------- profile social row ---------- */
.mpfs-social-row { display: flex; gap: 10px; align-items: center; }
.mpfs-social {
	display: inline-flex;
	width: 30px;
	height: 30px;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	color: var(--mpfs-navy);
	background: var(--mpfs-n1);
	border: 1px solid var(--mpfs-n2);
}
.mpfs-social svg { width: 16px; height: 16px; fill: currentColor; }
/* element+class selector so the generic action-card link hover (which
   turns links orange) cannot paint the glyph orange on orange */
a.mpfs-social:hover,
.mpfs-glance a.mpfs-social:hover {
	color: var(--mpfs-n0);
	background: var(--mpfs-orange);
	border-color: var(--mpfs-orange);
}

/* ---------- rail tools (shortlist + compare links in the filter rail) ---------- */
.mpfs-rail-tools {
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid var(--mpfs-n2);
	display: grid;
	gap: 8px;
}
.mpfs-rail-tool {
	font-size: 14px;
	font-weight: 600;
	color: var(--mpfs-navy);
	text-decoration: none;
}
.mpfs-rail-tool:hover { color: var(--mpfs-orange); }
.mpfs-rail-count { color: var(--mpfs-n3); font-weight: 400; }
.mpfs-rail-tool.has-items .mpfs-rail-count { color: var(--mpfs-orange); font-weight: 600; }

/* ---------- shortlist badge + compare bar ---------- */
.mpfs-shortlist-badge {
	position: fixed;
	right: 16px;
	bottom: 76px;
	z-index: 70;
	background: var(--mpfs-navy);
	color: var(--mpfs-n0);
	font-family: var(--mpfs-sans);
	font-size: 14px;
	font-weight: 600;
	padding: 9px 14px;
	border-radius: 999px;
	text-decoration: none;
	box-shadow: var(--mpfs-shadow-2);
}
.mpfs-shortlist-badge:hover { background: var(--mpfs-orange); color: var(--mpfs-n0); }
.mpfs-shortlist-badge.is-pulse { animation: mpfs-badge-pulse 450ms ease; }
@keyframes mpfs-badge-pulse {
	0% { transform: scale(1); }
	40% { transform: scale(1.12); background: var(--mpfs-orange); }
	100% { transform: scale(1); }
}
.mpfs-compare-bar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 75;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	background: var(--mpfs-navy-deep);
	color: var(--mpfs-n0);
	padding: 12px 16px;
	font-family: var(--mpfs-sans);
	font-size: 15px;
}
.mpfs-compare-bar[hidden] { display: none; }
.mpfs-compare-clear {
	background: none;
	border: none;
	color: var(--mpfs-orange-soft);
	font-size: 14px;
	cursor: pointer;
}
.mpfs-compare-go.is-disabled { pointer-events: none; opacity: 0.5; }
.mpfs-shortlist-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; align-items: center; }

#mpfs-contact { scroll-margin-top: 110px; }

/* ---------- lead forms ---------- */
.mpfs-lead-form {
	margin: 32px 0 8px;
	padding: 24px;
	background: var(--mpfs-n1);
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-card);
}
.mpfs-lead-form h2 { margin-top: 0 !important; }
.mpfs-lead-note { font-size: 14px; color: var(--mpfs-n4); margin: 4px 0 16px; }
.mpfs-lead-grid { display: grid; grid-template-columns: 1fr; gap: 12px 16px; }
@media (min-width: 640px) { .mpfs-lead-grid { grid-template-columns: 1fr 1fr; } }
/* Field formatting mirrors the newsletter signup (.mfl-ea-row label /
   .mfl-ea-input in style.css) per Eric 2026-09-01, so the three lead-capture
   forms (newsletter, resource gate, directory) read as one family. The
   mfl-* variables come from style.css :root and are global. */
.mpfs-lead-form label {
	display: block;
	font-family: var(--mfl-font-sans, var(--mpfs-sans));
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--mfl-ink, var(--mpfs-n5));
}
.mpfs-lead-form input[type="text"],
.mpfs-lead-form input[type="email"],
.mpfs-lead-form input[type="tel"],
.mpfs-lead-form select,
.mpfs-lead-form textarea {
	display: block;
	width: 100%;
	margin-top: 0.25rem;
	padding: 0.55rem 0.85rem;
	font-size: 0.95rem;
	font-weight: 400;
	font-family: var(--mfl-font-sans, var(--mpfs-sans));
	border: 1.5px solid var(--mfl-border, #f0b98a);
	border-radius: 0.55rem;
	background: #ffffff;
	color: var(--mfl-ink, var(--mpfs-n5));
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	box-sizing: border-box;
}
.mpfs-lead-form input::placeholder,
.mpfs-lead-form textarea::placeholder { color: #a8b6c4; }
.mpfs-lead-form input:focus,
.mpfs-lead-form select:focus,
.mpfs-lead-form textarea:focus {
	outline: none;
	border-color: #e26a26;
	box-shadow: 0 0 0 3px rgba(226, 106, 38, 0.14);
}
.mpfs-lead-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23e26a26' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 10px 6px;
	padding-right: 2.1rem;
}
.mpfs-lead-full { margin-top: 12px; }
.mpfs-lead-check {
	display: flex !important;
	align-items: center;
	gap: 8px;
	/* checkbox labels read as sentences, not field captions: keep them at
	   body-ish size rather than the 0.75rem field-label size above */
	font-size: 0.88rem !important;
	font-weight: 400 !important;
	margin: 12px 0;
	min-height: 28px;
}
.mpfs-lead-check input { width: 16px; height: 16px; accent-color: var(--mpfs-orange); }
/* The label's display:block outranks the UA [hidden] rule (same trap as
   .mpfs-load-more), so the "Other — please specify" rows need it explicit. */
.mpfs-lead-form .mpfs-lead-other[hidden] { display: none; }
/* Matches .mfl-pdf-consent on the resource gate so the two lead forms read alike. */
.mpfs-lead-consent {
	font-size: 12px;
	line-height: 1.5;
	color: var(--mpfs-n4);
	margin: 4px 0 12px;
}
.mpfs-lead-consent a { color: #c2541a; }
.mpfs-lead-form .mpfs-btn { border: none; cursor: pointer; }
.mpfs-lead-status { font-size: 15px; color: var(--mpfs-navy); font-weight: 600; min-height: 1.4em; }
.mpfs-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.mpfs-rfq { margin-top: 40px; }
.mpfs-rfq-note { font-size: 14px; color: var(--mpfs-n4); }
.mpfs-rfq-picks { display: grid; grid-template-columns: 1fr; gap: 0; }
@media (min-width: 640px) { .mpfs-rfq-picks { grid-template-columns: 1fr 1fr; } }

/* ---------- load more (page numbers retired; server links stay for crawlers) ---------- */
.mpfs-pagination-slot { text-align: center; }
.mpfs-shown-count { color: var(--mpfs-n4); font-size: 14px; margin: 24px 0 0; }
.mpfs-load-more { display: block; margin: 12px auto 0; border: none; cursor: pointer; }
/* display:block would beat the UA [hidden] rule; keep exhausted state gone */
.mpfs-load-more[hidden],
.mpfs-pagination-slot .navigation[hidden] { display: none; }
.mpfs-scroll-sentinel { height: 1px; }

/* ---------- print (shortlist + compare into a procurement file) ---------- */
@media print {
	header, footer, nav, .mpfs-shortlist-actions, .mpfs-compare-bar, .mpfs-shortlist-badge,
	.mpfs-card-actions, .mpfs-breadcrumbs, .mpfs-print { display: none !important; }
	.mpfs-wrap { max-width: none; padding: 0; }
	.mpfs-card { break-inside: avoid; box-shadow: none; }
	.mpfs-table th, .mpfs-table td { padding: 6px 8px; }
	body::after {
		content: "Source: Modern Public Fleet Supplier Directory, modernpublicfleet.com/suppliers";
		display: block;
		margin-top: 24px;
		font-size: 11px;
		color: #4A5568;
	}
}

/* ---------- claim listing ---------- */
.mpfs-claim-box { margin-top: 14px; }
.mpfs-claim-box > summary {
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--mpfs-navy);
}
.mpfs-claim-box > summary:hover { color: var(--mpfs-orange); }
.mpfs-claim-intro { margin: 10px 0 4px; font-size: 13.5px; line-height: 1.55; color: var(--mpfs-n4); }
.mpfs-claim-form { margin-top: 10px; display: grid; gap: 10px; }
.mpfs-claim-form label { display: block; font-size: 14px; font-weight: 600; color: var(--mpfs-navy); }
.mpfs-claim-form input[type="text"],
.mpfs-claim-form input[type="email"] {
	display: block;
	width: 100%;
	margin-top: 4px;
	padding: 8px 10px;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	font-size: 15px;
}
.mpfs-claim-hint { font-size: 13px; color: var(--mpfs-n4); margin: 0; }
.mpfs-claim-status { font-size: 14px; color: var(--mpfs-navy); }
.mpfs-claim-confirmed { color: #1a7f37; font-weight: 600; }
.mpfs-claim-failed { color: #b42318; font-weight: 600; }

/* ---------- claim note ---------- */
.mpfs-claim-note {
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--mpfs-n2);
	font-size: 13px;
}
.mpfs-claim-note a { color: var(--mpfs-n4); }
.mpfs-claim-note a:hover { color: var(--mpfs-orange); }

/* ---------- article mention links + bottom module ----------
 * Editorial band, not a widget: top rule matching More Coverage,
 * orange kicker, serif title, clean divided rows.
 */
.mpfs-mention-link { border-bottom: 1px dotted var(--mpfs-orange-soft); text-decoration: none; }
.mpfs-article-directory {
	margin-top: 3rem;
	padding-top: 2.25rem;
	border-top: 1px solid rgba(0, 17, 43, 0.08);
	font-family: var(--mpfs-sans);
}
.mpfs-ad-kicker {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mpfs-orange);
	margin: 0 0 6px;
}
.mpfs-ad-title {
	font-family: var(--mpfs-serif);
	font-size: 1.45rem;
	color: var(--mfl-ink, #00112b);
	margin: 0 0 18px;
}
.mpfs-ad-list { display: flex; flex-direction: column; }
.mpfs-ad-row {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 14px 2px;
	border-bottom: 1px solid rgba(0, 17, 43, 0.08);
	text-decoration: none;
	color: var(--mpfs-n5);
}
.mpfs-ad-row:first-child { border-top: 1px solid rgba(0, 17, 43, 0.08); }
.mpfs-ad-logo {
	flex: 0 0 124px;
	height: 62px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mpfs-ad-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.mpfs-ad-copy { min-width: 0; flex: 1; }
.mpfs-ad-name {
	display: block;
	font-weight: 700;
	font-size: 1.02rem;
	color: var(--mfl-ink, #00112b);
	line-height: 1.3;
}
.mpfs-ad-desc {
	font-size: 0.88rem;
	color: var(--mpfs-n4);
	line-height: 1.45;
	margin-top: 2px;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.mpfs-ad-arrow {
	flex: 0 0 auto;
	color: var(--mpfs-n3);
	font-size: 1.1rem;
	transition: transform 150ms ease, color 150ms ease;
}
.mpfs-ad-row:hover .mpfs-ad-name { color: var(--mpfs-orange); }
.mpfs-ad-row:hover .mpfs-ad-arrow { color: var(--mpfs-orange); transform: translateX(3px); }

/* ---------- featured lead row (Eric, 2026-09-03) ----------
   A featured partner should not read as one more line item. It takes the
   first row as a tinted panel with a noticeably larger logo and room for a
   fuller description; everything below it shrinks to a compact box with a
   smaller logo, so the difference is obvious at a glance rather than resting
   on the pill alone. Featured already sorts first, so the lead row IS the
   featured one. */
.mpfs-ad-row--featured {
	background: var(--mpfs-orange-tint);
	border: 1px solid rgba(226, 106, 38, 0.35);
	border-radius: 12px;
	padding: 20px 18px;
	margin-bottom: 12px;
	gap: 22px;
}
/* The plain rows sit inside a bordered list; the featured panel provides its
   own frame, so it must not also draw the list's dividing lines. */
.mpfs-ad-row--featured,
.mpfs-ad-row--featured:first-child { border-top: 1px solid rgba(226, 106, 38, 0.35); border-bottom: 1px solid rgba(226, 106, 38, 0.35); }
.mpfs-ad-row--featured .mpfs-ad-logo { flex: 0 0 190px; height: 96px; }
.mpfs-ad-row--featured .mpfs-ad-name { font-size: 1.32rem; }
.mpfs-ad-row--featured .mpfs-ad-desc {
	font-size: 0.95rem;
	-webkit-line-clamp: 3;
	margin-top: 5px;
}
.mpfs-ad-row--featured .mpfs-ad-arrow { font-size: 1.35rem; color: var(--mpfs-orange); }

/* Non-featured rows step down so the contrast is real. Scoped to lists that
   actually contain a featured row, so a band with no featured partner keeps
   its original even weighting rather than shrinking for no reason. */
.mpfs-ad-list:has(.mpfs-ad-row--featured) .mpfs-ad-row:not(.mpfs-ad-row--featured) {
	padding: 10px 2px;
}
.mpfs-ad-list:has(.mpfs-ad-row--featured) .mpfs-ad-row:not(.mpfs-ad-row--featured) .mpfs-ad-logo {
	flex: 0 0 92px;
	height: 44px;
}
.mpfs-ad-list:has(.mpfs-ad-row--featured) .mpfs-ad-row:not(.mpfs-ad-row--featured) .mpfs-ad-name {
	font-size: 0.95rem;
}
@media (max-width: 480px) {
	.mpfs-ad-row--featured { padding: 16px 14px; gap: 14px; }
	.mpfs-ad-row--featured .mpfs-ad-logo { flex-basis: 130px; height: 70px; }
	.mpfs-ad-row--featured .mpfs-ad-name { font-size: 1.12rem; }
}
@media (max-width: 480px) {
	.mpfs-ad-logo { flex-basis: 92px; height: 50px; }
	.mpfs-ad-row { gap: 12px; }
}
.mpfs-ad-cats {
	margin: 16px 0 0;
	font-size: 0.9rem;
	color: var(--mpfs-n4);
	line-height: 1.9;
}
.mpfs-ad-cats > span:first-child { font-weight: 700; color: var(--mfl-ink, #00112b); margin-right: 2px; }
.mpfs-ad-cats a {
	color: var(--mpfs-navy);
	text-decoration: none;
	font-weight: 600;
	border-bottom: 1px solid var(--mpfs-navy-tint);
}
.mpfs-ad-cats a:hover { color: var(--mpfs-orange); border-bottom-color: var(--mpfs-orange-soft); }
.mpfs-ad-dot { margin: 0 8px; color: var(--mpfs-n3); }

/* ---------- archive sidebar: rides the theme section card ---------- */
.mpfs-sidebar-directory .mfl-sidebar-list a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}
.mpfs-side-count {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--mpfs-n3);
}
.mpfs-side-all {
	display: inline-block;
	margin-top: 0.65rem;
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--mpfs-orange);
	text-decoration: none;
}
.mpfs-side-all:hover { color: var(--mpfs-navy); }

/* ---------- accessibility ---------- */
.mpfs-wrap a:focus-visible,
.mpfs-hero input:focus-visible,
.mpfs-btn:focus-visible {
	outline: 3px solid var(--mpfs-orange);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.mpfs-card { transition: none; }
}

/* ---------- profile screenshot gallery ---------- */
/* phones get a swipeable snap strip with the next card peeking in;
   desktop gets a three-across grid. Tap or click any shot to enlarge. */
.mpfs-gallery {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding: 4px 2px 10px;
	margin: 0 0 8px;
}
.mpfs-gallery-item {
	flex: 0 0 78%;
	max-width: 340px;
	margin: 0;
	scroll-snap-align: start;
}
@media (min-width: 900px) {
	.mpfs-gallery {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		overflow: visible;
		padding: 0;
	}
	.mpfs-gallery-item { max-width: none; }
}
.mpfs-gallery-open {
	display: block;
	width: 100%;
	padding: 0;
	border: 1px solid var(--mpfs-n2);
	border-radius: var(--mpfs-radius-ctl);
	background: var(--mpfs-n0);
	cursor: zoom-in;
	overflow: hidden;
	transition: box-shadow 150ms ease, border-color 150ms ease;
}
.mpfs-gallery-open:hover { border-color: var(--mpfs-orange-soft); box-shadow: var(--mpfs-shadow-1); }
.mpfs-gallery-open img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: top;
}
.mpfs-gallery-item figcaption {
	margin-top: 7px;
	font-family: var(--mpfs-sans);
	font-size: 13px;
	line-height: 1.45;
	color: var(--mpfs-n4);
}

/* enlarge view */
.mpfs-lightbox {
	border: none;
	background: transparent;
	padding: 0;
	max-width: min(1080px, 94vw);
	outline: none;
}
.mpfs-lightbox::backdrop { background: rgba(4, 22, 38, 0.86); }
.mpfs-lightbox figure { margin: 0; text-align: center; }
.mpfs-lightbox img {
	max-width: min(1080px, 94vw);
	max-height: 78vh;
	width: auto;
	height: auto;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
}
.mpfs-lightbox figcaption {
	margin-top: 12px;
	color: #fff;
	font-family: var(--mpfs-sans);
	font-size: 14px;
	line-height: 1.5;
}
.mpfs-lightbox figcaption[hidden] { display: none; }
.mpfs-lightbox-close,
.mpfs-lightbox-nav {
	position: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	z-index: 1;
}
.mpfs-lightbox-close { top: 14px; right: 14px; }
.mpfs-lightbox-nav { top: 50%; transform: translateY(-50%); }
.mpfs-lightbox-prev { left: 10px; }
.mpfs-lightbox-next { right: 10px; }
.mpfs-lightbox-close:hover,
.mpfs-lightbox-nav:hover { background: rgba(255, 255, 255, 0.28); }
@media (max-width: 640px) {
	/* thumbs reach the bottom corners more easily than mid-screen */
	.mpfs-lightbox-nav { top: auto; bottom: 18px; transform: none; }
	.mpfs-lightbox-prev { left: 18px; }
	.mpfs-lightbox-next { right: 18px; }
}

/* ---------- Solutions Guide wordmark ----------
   "PUBLIC FLEET" tracks out to span the width of the main words.
   Sizes are em-based so the same lockup scales from the hero h1 to
   the compact masthead link. Colors inherit: white on navy contexts,
   with the overline in the soft orange accent. */
.mpfs-wordmark {
	display: inline-block;
	text-align: center;
	line-height: 1;
	text-decoration: none;
}
.mpfs-wordmark-over {
	display: block;
	font-family: var(--mpfs-sans);
	font-size: 0.30em;
	font-weight: 600;
	letter-spacing: 1.7em;
	padding-left: 1.7em; /* balances the last glyph's trailing tracking, keeping the centered line optically true */
	text-transform: uppercase;
	color: var(--mpfs-orange-soft);
	margin-bottom: 0.5em;
	white-space: nowrap;
}
.mpfs-wordmark-main {
	display: block;
	font-family: var(--mpfs-serif);
	font-weight: 600;
	white-space: nowrap;
}
.mpfs-hero h1.mpfs-wordmark { margin: 0 0 10px; }
a.mpfs-masthead-name .mpfs-wordmark-main { font-size: 1em; }
a.mpfs-masthead-name:hover .mpfs-wordmark-main { color: var(--mpfs-orange-soft); }

/* ---------- guide nav (under the wordmark, every navy header) ---------- */
.mpfs-guide-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 2px;
	font-family: var(--mpfs-sans);
	font-size: 13.5px;
	letter-spacing: 0.02em;
	color: rgba(232, 238, 244, 0.55);
}
.mpfs-guide-nav a {
	color: var(--mpfs-navy-tint);
	text-decoration: none;
	padding: 2px 2px;
	min-height: 0;
}
.mpfs-guide-nav a:hover { color: var(--mpfs-orange-soft); }
.mpfs-hero .mpfs-guide-nav { margin: 0 0 18px; }

/* ---------- section rule ----------
   the same hairline the article band uses, separating the profile
   body from the Similar Suppliers section */
.mpfs-section-rule {
	border: none;
	/* the editorial site's light blue (#3d6ba8 accent), not the gray
	   navy hairline, per Eric */
	border-top: 1px solid rgba(61, 107, 168, 0.22);
	margin: 3rem 0 0;
}
.mpfs-section-rule + .mpfs-section-title { margin-top: 2.25rem; }

/* ---------- supplier logo frames ----------
   one thin light-orange border everywhere a supplier logo appears:
   cards (grid/shortlist/similar), profile header, homepage Featured
   Partners row, and the article band rows */
.mpfs-card-logo,
.mpfs-profile-logo,
.mpfs-featured-logos a {
	border-color: var(--mpfs-orange-wash);
}
.mpfs-ad-logo {
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-orange-wash);
	border-radius: var(--mpfs-radius-ctl);
	padding: 6px;
	box-sizing: border-box;
}
.mpfs-ad-logo img { max-width: 100%; max-height: 100%; }

/* ---------- MPF Coverage rows ----------
   compact rows with a small article thumb, deliberately quieter than
   the full story cards further down the page */
.mpfs-coverage-list {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 6px 24px;
}
@media (min-width: 720px) {
	.mpfs-coverage-list { grid-template-columns: 1fr 1fr; }
}
.mpfs-coverage-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 0;
	text-decoration: none;
}
.mpfs-coverage-thumb {
	flex: 0 0 96px;
	height: 66px;
	border-radius: var(--mpfs-radius-ctl);
	overflow: hidden;
	background: var(--mpfs-orange-tint);
}
.mpfs-coverage-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.mpfs-coverage-title {
	font-family: var(--mpfs-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--mpfs-navy);
}
.mpfs-coverage-row:hover .mpfs-coverage-title { color: var(--mpfs-orange); }


/* logos used as featured images scale down to fit their thumbnail
   boxes instead of being cropped like photos */
.mpfs-coverage-thumb.is-logo,
.mpfs-story-card-img.is-logo { background: var(--mpfs-n0); border: 1px solid var(--mpfs-orange-wash); }
.mpfs-coverage-thumb.is-logo img,
.mpfs-story-card-img.is-logo img {
	object-fit: contain;
	padding: 5px;
	box-sizing: border-box;
}

/* ---------- back link (profile, category, search results) ---------- */
.mpfs-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 2px 0 14px;
	font-family: var(--mpfs-sans);
	font-size: 15.5px;
	font-weight: 600;
	color: var(--mpfs-navy);
	text-decoration: none;
}
.mpfs-back:hover { color: var(--mpfs-orange); }
.mpfs-back span { font-size: 17px; line-height: 1; }

/* ---------- homepage Featured Partners tiles ----------
   logo + name only, deliberately smaller and simpler than cards */
.mpfs-featured-tiles {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: flex-start;
}
.mpfs-featured-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-decoration: none;
}
.mpfs-featured-tile-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 180px;
	height: 96px;
	padding: 8px 12px;
	background: var(--mpfs-n0);
	border: 1px solid var(--mpfs-orange-wash);
	border-radius: var(--mpfs-radius-card);
	box-sizing: border-box;
}
.mpfs-featured-tile-logo img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.mpfs-featured-tile-name {
	font-family: var(--mpfs-sans);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--mpfs-navy);
	text-align: center;
	max-width: 168px;
	line-height: 1.3;
}
.mpfs-featured-tile:hover .mpfs-featured-tile-name { color: var(--mpfs-orange); }
.mpfs-featured-tile:hover .mpfs-featured-tile-logo { box-shadow: var(--mpfs-shadow-1); }

/* ---------- Resource Library tie-ins ---------- */
.mpfs-resource-callout {
	margin: 28px 0 8px;
	padding: 14px 16px;
	background: var(--mpfs-orange-tint);
	border: 1px solid var(--mpfs-orange-wash);
	border-radius: var(--mpfs-radius-card);
}
.mpfs-resource-kicker {
	margin: 0 0 6px;
	font-family: var(--mpfs-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--mpfs-orange);
}
.mpfs-resource-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 5px 0;
	text-decoration: none;
}
.mpfs-resource-title {
	font-family: var(--mpfs-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--mpfs-navy);
}
.mpfs-resource-row:hover .mpfs-resource-title { color: var(--mpfs-orange); }
.mpfs-resource-arrow { color: var(--mpfs-orange); }
.mpfs-rail-resource {
	display: block;
	margin: 16px 0 0;
	padding: 12px 14px;
	background: var(--mpfs-orange-tint);
	border: 1px solid var(--mpfs-orange-wash);
	border-radius: var(--mpfs-radius-card);
	text-decoration: none;
}
.mpfs-rail-resource .mpfs-resource-kicker { display: block; margin-bottom: 4px; }
.mpfs-rail-resource-title {
	display: block;
	font-family: var(--mpfs-sans);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--mpfs-navy);
}
.mpfs-rail-resource:hover .mpfs-rail-resource-title { color: var(--mpfs-orange); }

/* ---------- Solutions Guide logo boxes: permanent size guarantee ----------
   Directory logos live in purpose-built framed boxes that already supply
   their own padding. Global, site-wide thumbnail rules (notably
   .mfl-logo-fit, added by a post_thumbnail_html filter for ARTICLE cards)
   must never reach inside them: its `padding: 7%` resolves against the
   element WIDTH, so a wide short logo like Geotab (592x90) got ~21px of
   padding on a 46px-tall image and collapsed to a few pixels.
   functions.php now skips mpf_supplier outright; this block is the belt to
   that suspenders, so a future global rule cannot shrink logos again.
   Logos also SCALE UP to fill their box here: max-width/max-height alone
   never enlarges an image smaller than its frame, which is the other way
   these marks silently render small. */
.mpfs-card-logo img,
.mpfs-profile-logo img,
.mpfs-ad-logo img,
.mpfs-featured-tiles img,
.mpfs-featured-logos img {
	padding: 0 !important;
	background: none !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: center;
}
