/* My Perfect Franchises: styles theme.json cannot express. */

:root {
	--mpf-radius: 10px;
	--mpf-line: #D5E6E6;
	--mpf-ink-soft: #4A4F4F;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
img { height: auto; }

/* Header */
.mpf-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--mpf-line); }
.admin-bar .mpf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mpf-header { top: 0; position: relative; } }
.mpf-logo { display: inline-flex; line-height: 0; }
.mpf-logo img { width: 128px; height: auto; }
.mpf-footer .mpf-logo img { width: 150px; margin-bottom: 1rem; }
.mpf-nav a { text-decoration: none; }
.mpf-nav a:hover, .mpf-nav .current-menu-item > a { color: var(--wp--preset--color--teal); }
.mpf-nav .wp-block-navigation-item__content { padding-block: .35rem; border-bottom: 2px solid transparent; }
.mpf-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--wp--preset--color--gold); }
@media (max-width: 599px) {
	.mpf-header-cta { display: none; }
	.mpf-logo img { width: 110px; }
}
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.25rem; }

/* Type helpers */
.mpf-eyebrow, .mpf-eyebrow a {
	font-family: var(--wp--preset--font-family--inter);
	font-size: .8rem !important;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--teal);
	text-decoration: none;
	margin-bottom: .25rem;
}
.has-teal-background-color .mpf-eyebrow, .has-charcoal-background-color .mpf-eyebrow,
.has-teal-darker-background-color .mpf-eyebrow, .wp-block-cover .mpf-eyebrow { color: var(--wp--preset--color--gold); }
.mpf-lede { color: var(--mpf-ink-soft); }
.is-layout-flow > .mpf-lede, .is-layout-default > .mpf-lede { max-width: 46rem; }
.has-white-color .mpf-lede, .wp-block-cover .mpf-lede { color: rgba(255,255,255,.9); }
.mpf-muted { color: rgba(255,255,255,.72); }
.mpf-muted-dark { color: var(--mpf-ink-soft); }
.mpf-footer-heading {
	font-family: var(--wp--preset--font-family--inter) !important;
	font-size: .8rem !important; font-weight: 600 !important;
	letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--gold) !important;
}
.mpf-footer-list { list-style: none; padding: 0; margin: 0; }
.mpf-footer-list li { margin: .5rem 0; font-size: .95rem; }
.mpf-footer a { text-decoration: none; }
.mpf-footer a:hover { text-decoration: underline; }
.mpf-footer-rule { border-color: rgba(255,255,255,.15) !important; opacity: 1; }

/* Hero */
.wp-block-cover.mpf-hero.mpf-hero .wp-block-cover__inner-container { width: 100% !important; max-width: var(--wp--style--global--wide-size); margin-inline: auto !important; }
.mpf-hero .wp-block-cover__inner-container > .alignwide { max-width: none !important; width: 100%; margin-inline: 0 !important; }
.mpf-hero h1 { color: #fff; max-width: 17ch; }
.mpf-hero .mpf-lede { max-width: 34rem; }
.wp-block-cover.mpf-hero .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg, rgba(14,43,43,.88) 0%, rgba(14,43,43,.62) 42%, rgba(14,43,43,.12) 78%) !important; }
@media (max-width: 781px) { .wp-block-cover.mpf-hero .wp-block-cover__background { background: rgba(14,43,43,.7) !important; } }
.mpf-hero .wp-block-cover__image-background { object-position: 70% 40%; }

/* Buttons */
.wp-block-button.is-style-teal-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--teal-darker);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--teal);
}
.wp-block-button.is-style-teal-outline .wp-block-button__link:hover { background: var(--wp--preset--color--teal-lighter); }
.wp-block-cover .wp-block-button.is-style-teal-outline .wp-block-button__link,
.has-teal-background-color .wp-block-button.is-style-teal-outline .wp-block-button__link,
.has-charcoal-background-color .wp-block-button.is-style-teal-outline .wp-block-button__link {
	color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.8);
}
.wp-block-cover .wp-block-button.is-style-teal-outline .wp-block-button__link:hover,
.has-teal-background-color .wp-block-button.is-style-teal-outline .wp-block-button__link:hover { background: rgba(255,255,255,.1); }
.wp-element-button { transition: background-color .15s ease, transform .15s ease; }
.wp-element-button:active { transform: translateY(1px); }

/* Cards */
.mpf-card, .wp-block-group.is-style-card {
	background: #fff;
	border: 1px solid var(--mpf-line);
	border-radius: var(--mpf-radius);
	overflow: hidden;
	height: 100%;
	transition: box-shadow .2s ease, transform .2s ease;
}
.wp-block-group.is-style-card { padding: 1.75rem; height: auto; }
.mpf-card:hover, a.mpf-hub-card:hover { box-shadow: var(--wp--preset--shadow--soft); transform: translateY(-2px); }
.mpf-card .wp-block-post-featured-image { margin: 0 0 1rem; }
.mpf-card .wp-block-post-title a { text-decoration: none; color: inherit; }
.mpf-card .wp-block-post-title a:hover { color: var(--wp--preset--color--teal); }
.mpf-card-grid { gap: 1.5rem !important; }
@media (max-width: 900px) { .mpf-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .mpf-card-grid { grid-template-columns: 1fr !important; } }

/* Industry hub cards (server-rendered grid) */
.mpf-hub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.25rem; }
a.mpf-hub-card {
	display: flex; flex-direction: column; text-decoration: none; color: inherit;
	background: #fff; border: 1px solid var(--mpf-line); border-radius: var(--mpf-radius); overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}
.mpf-hub-card img { aspect-ratio: 3/2; object-fit: cover; width: 100%; display: block; }
.mpf-hub-card span { display: block; padding: 1rem 1.25rem .25rem; font-family: var(--wp--preset--font-family--lora); font-weight: 600; font-size: 1.15rem; }
.mpf-hub-card small { display: block; padding: 0 1.25rem 1.25rem; color: var(--mpf-ink-soft); font-size: .9rem; line-height: 1.5; }

/* Numbered process */
.mpf-steps { counter-reset: mpf-step; }
.mpf-steps > .wp-block-column { counter-increment: mpf-step; position: relative; padding-top: 3.25rem; }
.mpf-steps > .wp-block-column::before {
	content: counter(mpf-step, decimal-leading-zero);
	position: absolute; top: 0; left: 0;
	font-family: var(--wp--preset--font-family--lora); font-weight: 600; font-size: 1.9rem;
	color: var(--wp--preset--color--gold); line-height: 1;
}
.mpf-steps > .wp-block-column::after {
	content: ""; position: absolute; top: .95rem; left: 3.2rem; right: 0; height: 1px; background: var(--mpf-line);
}
.has-teal-background-color .mpf-steps > .wp-block-column::after { background: rgba(255,255,255,.25); }

/* Check list */
.mpf-checks { list-style: none; padding-left: 0; }
.mpf-checks li { position: relative; padding-left: 2rem; margin: .7rem 0; }
.mpf-checks li::before {
	content: ""; position: absolute; left: 0; top: .3rem; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--wp--preset--color--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 62% no-repeat;
}
.has-teal-background-color .mpf-checks li::before { background-color: var(--wp--preset--color--gold); }
.mpf-crosses { list-style: none; padding-left: 0; }
.mpf-crosses li { position: relative; padding-left: 2rem; margin: .7rem 0; color: var(--mpf-ink-soft); }
.mpf-crosses li::before {
	content: ""; position: absolute; left: 0; top: .3rem; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: #C9CFCF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round'%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3C/svg%3E") center / 55% no-repeat;
}

/* Comparison panels */
.mpf-compare > .wp-block-column { border-radius: var(--mpf-radius); padding: 2rem; }
.mpf-compare > .wp-block-column:first-child { background: #F4F6F6; }

/* Stat / fact row */
.mpf-fact { border-top: 2px solid var(--wp--preset--color--gold); padding-top: 1rem; }
.mpf-fact strong { display: block; font-family: var(--wp--preset--font-family--lora); font-size: 1.3rem; margin-bottom: .35rem; }

/* Rounded media */
.mpf-rounded img, .wp-block-image.mpf-rounded img { border-radius: var(--mpf-radius); }
.wp-block-media-text.mpf-rounded .wp-block-media-text__media img { border-radius: var(--mpf-radius); }

/* FAQ */
.mpf-faq details { border-bottom: 1px solid var(--mpf-line); padding: 1.1rem 0; }
.mpf-faq summary { cursor: pointer; font-family: var(--wp--preset--font-family--lora); font-weight: 600; font-size: 1.15rem; list-style: none; position: relative; padding-right: 2rem; }
.mpf-faq summary::-webkit-details-marker { display: none; }
.mpf-faq summary::after { content: "+"; position: absolute; right: 0; top: -.1rem; font-family: var(--wp--preset--font-family--inter); font-size: 1.5rem; color: var(--wp--preset--color--teal); }
.mpf-faq details[open] summary::after { content: "\2212"; }
.mpf-faq details > *:not(summary) { margin-top: .75rem; color: var(--mpf-ink-soft); }

/* Content awaiting real client material. Visible on purpose so it is never shipped by accident. */
.mpf-placeholder { outline: 2px dashed var(--wp--preset--color--gold); outline-offset: 6px; position: relative; }
.mpf-placeholder::before {
	content: "Placeholder: replace with real client content";
	position: absolute; top: -1.9rem; left: 0; font: 600 .7rem/1 var(--wp--preset--font-family--inter);
	letter-spacing: .08em; text-transform: uppercase; background: var(--wp--preset--color--gold); color: #222; padding: .3rem .5rem; border-radius: 3px;
}

/* Blog content rhythm */
.wp-block-post-content h2 { margin-top: 2.5rem; }
.wp-block-post-content h3 { margin-top: 2rem; }
.wp-block-post-featured-image img { border-radius: var(--mpf-radius); }
.mpf-card .wp-block-post-featured-image img { border-radius: 0; }

/* Focus visibility */
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--wp--preset--color--cobalt); outline-offset: 3px; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; }
}

/* Second row of a split process continues the numbering */
.mpf-steps.mpf-steps--second { counter-reset: mpf-step 2; }

/* Placeholder tag needs room above it */
.mpf-placeholder { margin-top: 2.25rem !important; }

/* Full-width footer rule */
.mpf-footer .wp-block-separator.mpf-footer-rule { width: 100%; max-width: var(--wp--style--global--wide-size); border-width: 1px 0 0; }

/* Breadcrumb eyebrow over photos */
.wp-block-cover .mpf-eyebrow a { color: var(--wp--preset--color--gold); }
.wp-block-cover .mpf-eyebrow a:hover { text-decoration: underline; }

/* Hub card without a photo yet: brand panel instead of an empty gap */
.mpf-hub-card__blank {
	display: block; aspect-ratio: 3/2;
	background: var(--wp--preset--color--teal-lighter) url("../images/mpf-mark-teal.png") center / 22% no-repeat;
}

/* Back to top */
.mpf-top {
	position: fixed; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem); z-index: 60;
	width: 3rem; height: 3rem; border-radius: 50%; border: 0; cursor: pointer;
	display: grid; place-items: center;
	background: var(--wp--preset--color--teal); color: #fff;
	box-shadow: 0 6px 18px rgba(34,34,34,.22);
	opacity: 0; visibility: hidden; transform: translateY(.5rem);
	transition: opacity .2s ease, transform .2s ease, visibility .2s, background-color .15s ease;
}
.mpf-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.mpf-top:hover { background: var(--wp--preset--color--teal-darker); }
.mpf-top:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 3px; }
@media print { .mpf-top { display: none; } }

/* ================================================================== */
/* ACF blocks                                                           */
/* ================================================================== */

.mpf-block { box-sizing: border-box; }
.mpf-block :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote) { margin: 0; }
.wp-block-post-content > .mpf-block { margin-block: 0 !important; }
.mpf-sec { padding-block: var(--wp--preset--spacing--60); }
.mpf-sec--tight { padding-block: var(--wp--preset--spacing--50); }
.mpf-in {
	box-sizing: content-box;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
}
.mpf-narrow { max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.mpf-in.mpf-narrow { max-width: var(--wp--style--global--content-size); }
.mpf-stack > * + * { margin-top: 1.1rem; }
.mpf-stack > .mpf-eyebrow + * { margin-top: .35rem; }
.mpf-intro { margin-bottom: var(--wp--preset--spacing--40); }
.mpf-block .mpf-eyebrow { margin-bottom: 0; }

.mpf-grid { display: grid; gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.mpf-stack > .mpf-grid, .mpf-stack > .mpf-hub-grid { margin-top: var(--wp--preset--spacing--40); }
.mpf-grid--wide-gap { gap: var(--wp--preset--spacing--60); }
@media (max-width: 1000px) { .mpf-grid { grid-template-columns: repeat(min(var(--cols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 640px) { .mpf-grid { grid-template-columns: 1fr; } }

.mpf-split { display: grid; grid-template-columns: var(--a, 1fr) var(--b, 1fr); gap: var(--wp--preset--spacing--60); align-items: start; }
.mpf-split.is-centered { align-items: center; }
.mpf-split.is-reversed > :first-child { order: 2; }
@media (max-width: 860px) {
	.mpf-split { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--50); }
	.mpf-split.is-reversed > :first-child { order: 0; }
}

.mpf-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.mpf-stack > .mpf-btns { margin-top: 1.75rem; }
.mpf-btns.is-vertical { flex-direction: column; align-items: flex-start; }
.mpf-btns.is-vertical > .mpf-btns { flex-direction: column; align-items: flex-start; }
.mpf-block .wp-block-button__link { display: inline-block; text-decoration: none; }

.mpf-block.is-dark, .mpf-block.is-dark :where(h1, h2, h3) { color: #fff; }
.mpf-block.is-dark .mpf-lede { color: rgba(255,255,255,.9); }
.mpf-block.is-dark a:not(.wp-element-button) { color: #fff; }
.mpf-block.is-dark .mpf-checks li::before { background-color: var(--wp--preset--color--gold); }
.mpf-block.is-dark .wp-block-button.is-style-teal-outline .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.8); }
.mpf-block.is-dark .wp-block-button.is-style-teal-outline .wp-block-button__link:hover { background: rgba(255,255,255,.1); }

.mpf-rounded img { border-radius: var(--mpf-radius); display: block; height: auto; }
.mpf-card-box { background: #fff; border: 1px solid var(--mpf-line); border-radius: var(--mpf-radius); padding: 1.75rem; color: var(--wp--preset--color--charcoal); }
.mpf-card-box > * + * { margin-top: .75rem; }
.mpf-card-box .mpf-eyebrow { margin-top: .35rem; }

/* Prose from the rich text fields */
.mpf-prose > * + * { margin-top: 1rem; }
.mpf-prose h2 { margin-top: 2rem; }
.mpf-prose h3 { margin-top: 1.75rem; font-size: var(--wp--preset--font-size--large); }
.mpf-prose > :first-child { margin-top: 0; }
.mpf-prose ul { list-style: none; padding-left: 0; }
.mpf-prose ul li { position: relative; padding-left: 2rem; margin: .7rem 0; }
.mpf-prose ul li::before {
	content: ""; position: absolute; left: 0; top: .3rem; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--wp--preset--color--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 62% no-repeat;
}
.mpf-prose ol { padding-left: 1.25rem; }
.is-small-print .mpf-prose { font-size: var(--wp--preset--font-size--small); color: var(--mpf-ink-soft); }

/* Hero block */
.mpf-hero-b {
	position: relative; display: flex; align-items: center; overflow: hidden;
	min-height: var(--mpf-hero-h, 560px);
	padding-block: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--teal-darker); color: #fff;
}
.mpf-hero-b__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 70% 40%; }
.mpf-hero-b.has-photo::before {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(90deg, rgba(14,43,43,.88) 0%, rgba(14,43,43,.62) 42%, rgba(14,43,43,.12) 78%);
}
@media (max-width: 781px) { .mpf-hero-b.has-photo::before { background: rgba(14,43,43,.7); } }
.mpf-hero-b__in { position: relative; z-index: 2; width: 100%; }
.mpf-hero-b__in > * + * { margin-top: 1.1rem; }
.mpf-hero-b__in > .mpf-eyebrow + * { margin-top: .5rem; }
.mpf-hero-b__in > .mpf-btns { margin-top: 1.75rem; }
.mpf-hero-b :where(h1, h2) { color: #fff; max-width: 17ch; }
.mpf-hero-b .mpf-lede { color: rgba(255,255,255,.9); max-width: 34rem; }
.mpf-hero-b .mpf-eyebrow, .mpf-hero-b .mpf-eyebrow a { color: var(--wp--preset--color--gold); }
.mpf-hero-b .wp-block-button.is-style-teal-outline .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.8); }
.mpf-hero-b .wp-block-button.is-style-teal-outline .wp-block-button__link:hover { background: rgba(255,255,255,.1); }

/* Steps block */
.mpf-stepgrid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem var(--wp--preset--spacing--40); counter-reset: mpf-step; }
.mpf-stepgrid > li { counter-increment: mpf-step; position: relative; padding-top: 3.25rem; }
.mpf-stepgrid > li > * + * { margin-top: .6rem; }
.mpf-stepgrid > li::before {
	content: counter(mpf-step, decimal-leading-zero); position: absolute; top: 0; left: 0;
	font-family: var(--wp--preset--font-family--lora); font-weight: 600; font-size: 1.9rem; color: var(--wp--preset--color--gold); line-height: 1;
}
.mpf-stepgrid > li::after { content: ""; position: absolute; top: .95rem; left: 3.2rem; right: 0; height: 1px; background: var(--mpf-line); }
@media (max-width: 640px) { .mpf-stepgrid { grid-template-columns: 1fr; } }

/* Comparison block */
.mpf-compare-col { border-radius: var(--mpf-radius); padding: 2rem; }
.mpf-compare-col.is-old { background: #F4F6F6; }
.mpf-compare-col > * + * { margin-top: 1rem; }

/* Client stories */
.mpf-quote { border-left: 3px solid var(--wp--preset--color--gold); padding-left: 1.5rem; }
.mpf-quote p { font-family: var(--wp--preset--font-family--lora); font-style: italic; font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.mpf-quote cite { display: block; margin-top: .75rem; font-style: normal; font-size: var(--wp--preset--font-size--small); color: var(--mpf-ink-soft); }
.mpf-quote.mpf-placeholder { margin-top: 2.25rem !important; }

/* Page header block keeps the original band */
.mpf-page-head.mpf-block { padding-bottom: var(--wp--preset--spacing--50); }

/* Editor-only hint for empty blocks */
.mpf-empty-hint { padding: 1rem; border: 1px dashed var(--mpf-line); color: var(--mpf-ink-soft); font-size: .9rem; }

/* WCAG 1.4.3: small labels need 4.5:1. Base teal on light teal is 4.47:1, gold on teal 2.4:1, light teal on teal 4.48:1. */
.mpf-eyebrow, .mpf-eyebrow a { color: var(--wp--preset--color--teal-darker); }
.has-teal-background-color .mpf-eyebrow, .has-teal-background-color .mpf-eyebrow a { color: #fff; }

/* WCAG 1.4.3 over photos: on phones the overlay is flat, so strengthen it and keep small labels white. */
@media (max-width: 781px) {
	.mpf-hero-b.has-photo::before { background: rgba(14,43,43,.8); }
	.mpf-hero-b .mpf-eyebrow, .mpf-hero-b .mpf-eyebrow a { color: #fff; }
}

/* WCAG 1.4.10 reflow: long URLs and email addresses wrap instead of forcing sideways scrolling at 320px. */
.wp-block-post-content, .mpf-prose { overflow-wrap: anywhere; }

/* Franchise Buyer's Toolkit library: on-screen documents that print one per page. */
.mpf-toolkit-nav ol { columns: 2; column-gap: 2.5rem; padding-left: 1.3rem; }
@media (max-width: 640px) { .mpf-toolkit-nav ol { columns: 1; } }
.mpf-toolkit-doc { scroll-margin-top: 6rem; }
.mpf-toolkit-doc .mpf-doc-label { text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; font-weight: 600; color: #006664; margin: 0 0 .3rem; }
.mpf-worksheet { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: .95rem; }
.mpf-worksheet th, .mpf-worksheet td { border: 1px solid #BFCFCF; padding: .55rem .7rem; text-align: left; vertical-align: top; }
.mpf-worksheet thead th { background: #E4F1F1; }
.mpf-worksheet td:empty::after { content: "\00a0"; }
.mpf-worksheet-wrap { overflow-x: auto; }
.mpf-checklist { list-style: none; padding-left: 0; }
.mpf-checklist li { position: relative; padding-left: 1.9rem; margin: .45rem 0; }
.mpf-checklist li::before { content: ""; position: absolute; left: 0; top: .2rem; width: 1.05rem; height: 1.05rem; border: 2px solid #007A78; border-radius: 3px; }
.mpf-print-button { margin-top: 1rem; }
@media print {
	header.wp-block-template-part, footer.wp-block-template-part, .mpf-no-print, .mpf-back-to-top { display: none !important; }
	.mpf-toolkit-doc { break-before: page; padding-top: 0 !important; }
	.mpf-worksheet th, .mpf-worksheet td { border-color: #555; }
	a { color: inherit; text-decoration: none; }
}

/* WCAG 1.4.11: cobalt focus rings vanish on teal and dark sections (about 1.1:1 on teal), so go white there. */
:is(.is-dark, .has-teal-background-color, .has-teal-darker-background-color, .has-charcoal-background-color, .mpf-hero-b.has-photo, .wp-block-cover, footer.wp-block-template-part) :is(a, button, input, select, textarea, summary):focus-visible { outline-color: #fff; }

/* ------------------------------------------------------------------ */
/* Industry, subcategory and profile landing pages (page-industry)      */
/* ------------------------------------------------------------------ */
.mpf-ind-hero {
	position: relative; display: flex; align-items: center; overflow: hidden;
	min-height: 440px; padding-block: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--teal-darker); color: #fff;
}
/* Crop toward the top: in these photos faces sit high, and the bottom of the frame is floor and furniture. */
.mpf-ind-hero__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 70% 15%; }
.mpf-ind-hero.has-photo::before {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(90deg, rgba(14,43,43,.92) 0%, rgba(14,43,43,.78) 45%, rgba(14,43,43,.3) 85%);
}
.mpf-ind-hero__in { position: relative; z-index: 2; width: 100%; }
.mpf-ind-hero__in > * + * { margin-top: 1rem; }
.mpf-ind-hero h1 { color: #fff; max-width: 22ch; margin-top: .4rem; }
.mpf-ind-hero .mpf-lede { color: rgba(255,255,255,.92); max-width: 38rem; }
/* WCAG 1.4.3: gold on teal is 3.1:1 at this size, so the label is white (7.2:1 on teal-darker). */
.mpf-ind-hero .mpf-eyebrow { color: #fff; margin-top: 1.25rem; }
.mpf-ind-hero .mpf-btns { margin-top: 1.75rem; }
.mpf-ind-hero .wp-block-button.is-style-teal-outline .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); background: transparent; }
.mpf-ind-hero .wp-block-button.is-style-teal-outline .wp-block-button__link:hover { background: rgba(255,255,255,.1); }
.mpf-ind-hero :is(a, button):focus-visible { outline-color: #fff; }
@media (max-width: 781px) {
	.mpf-ind-hero.has-photo::before { background: rgba(14,43,43,.84); }
	.mpf-ind-hero .mpf-eyebrow { color: #fff; }
}

.mpf-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; font-size: .9rem; }
.mpf-crumbs li { display: flex; align-items: center; gap: .5rem; }
.mpf-crumbs li + li::before { content: "/"; opacity: .7; }
.mpf-crumbs a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.mpf-crumbs [aria-current] { color: rgba(255,255,255,.92); }

.mpf-ind-body { padding-block: var(--wp--preset--spacing--60); }
.mpf-ind-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
@media (max-width: 960px) { .mpf-ind-layout { grid-template-columns: minmax(0, 1fr); } }
.mpf-ind-main { max-width: 46rem; }
.mpf-ind-main > * + * { margin-top: 1.1rem; }
.mpf-ind-main h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; }
.mpf-ind-main h2:first-child { margin-top: 0; }
.mpf-ind-main h3 { font-size: 1.15rem; margin-top: 1.5rem; }
.mpf-ind-main .mpf-why { list-style: none; padding: 0; display: grid; gap: 1rem; }
.mpf-ind-main .mpf-why li { background: var(--wp--preset--color--teal-lighter); border-radius: var(--mpf-radius); padding: 1rem 1.25rem; }
.mpf-ind-main .mpf-why strong { display: block; font-family: var(--wp--preset--font-family--lora); font-size: 1.1rem; margin-bottom: .25rem; }
.mpf-ind-main details { border: 1px solid var(--mpf-line); border-radius: 8px; padding: .9rem 1.1rem; }
.mpf-ind-main details + details { margin-top: .6rem; }
.mpf-ind-main summary { font-weight: 600; cursor: pointer; }
.mpf-ind-main details > p { margin-top: .6rem; }

.mpf-ind-side { display: grid; gap: 1.25rem; position: sticky; top: 6.5rem; }
@media (max-width: 960px) { .mpf-ind-side { position: static; } }
.mpf-ind-side__card { border: 1px solid var(--mpf-line); border-radius: var(--mpf-radius); padding: 1.25rem 1.35rem; background: #fff; }
.mpf-ind-side__match { background: var(--wp--preset--color--teal-lighter); border-color: #C9DEDE; }
.mpf-ind-side__match p { margin: .5rem 0 1rem; font-size: .95rem; }
.mpf-ind-side__title { font-size: 1.1rem; margin: 0 0 .75rem; }
.mpf-ind-side__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.mpf-ind-side__list a { display: block; padding: .35rem 0; color: var(--wp--preset--color--charcoal); text-decoration: underline; text-decoration-color: var(--mpf-line); text-underline-offset: 4px; }
.mpf-ind-side__list a:hover, .mpf-ind-side__list a[aria-current] { color: var(--wp--preset--color--teal-darker); text-decoration-color: currentColor; }
.mpf-ind-side__list a[aria-current] { font-weight: 600; }
.mpf-ind-side__more { margin: 1rem 0 0; font-size: .92rem; }
.mpf-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
a.mpf-tag {
	display: inline-flex; align-items: center; min-height: 2.25rem; padding: .3rem .85rem;
	border: 1px solid #9CC3C2; border-radius: 999px; font-size: .9rem; line-height: 1.2;
	color: var(--wp--preset--color--teal-darker); text-decoration: none; background: #fff;
}
a.mpf-tag:hover { background: var(--wp--preset--color--teal-lighter); border-color: var(--wp--preset--color--teal-darker); }
a.mpf-tag[aria-current] { background: var(--wp--preset--color--teal-darker); border-color: var(--wp--preset--color--teal-darker); color: #fff; }

.mpf-ind-more { padding-block: var(--wp--preset--spacing--60); background: var(--wp--preset--color--teal-lighter); }
.mpf-ind-more h2 { margin: 0 0 1.5rem; }
.mpf-ind-more .mpf-ind-more__sub { margin-top: 2.5rem; font-size: var(--wp--preset--font-size--x-large); }
.mpf-ind-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.25rem; }
.mpf-ind-card a {
	display: flex; flex-direction: column; height: 100%; overflow: hidden; background: #fff;
	border: 1px solid var(--mpf-line); border-radius: var(--mpf-radius); color: var(--wp--preset--color--charcoal); text-decoration: none;
	transition: box-shadow .2s, transform .2s;
}
.mpf-ind-card a:hover { box-shadow: var(--wp--preset--shadow--soft); transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .mpf-ind-card a { transition: none; } .mpf-ind-card a:hover { transform: none; } }
.mpf-ind-card img, .mpf-ind-card__blank { display: block; width: 100%; aspect-ratio: 3/2; object-fit: cover; background: #C9DEDE; }
.mpf-ind-card__title { display: block; margin: 0; padding: 1rem 1.15rem .3rem; font-family: var(--wp--preset--font-family--lora); font-size: 1.1rem; font-weight: 600; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.mpf-ind-card a:hover .mpf-ind-card__title, .mpf-ind-card a:focus-visible .mpf-ind-card__title { text-decoration-color: currentColor; }
.mpf-ind-card__text { display: block; padding: 0 1.15rem 1.15rem; color: var(--mpf-ink-soft); font-size: .9rem; line-height: 1.5; }
.mpf-ind-links { list-style: none; margin: 0; padding: 0; columns: 3 15rem; column-gap: 2rem; }
.mpf-ind-links li { break-inside: avoid; padding: .3rem 0; }
.mpf-ind-links span { color: var(--mpf-ink-soft); font-size: .85rem; }

.mpf-dir__jump ul { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.mpf-dir__jump a { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; min-height: 2.5rem; border: 1px solid var(--mpf-line); border-radius: 6px; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--teal-darker); }
.mpf-dir__jump a:hover { background: var(--wp--preset--color--teal-lighter); }
.mpf-dir__letter { font-size: var(--wp--preset--font-size--x-large); margin: 2.25rem 0 1rem; padding-bottom: .4rem; border-bottom: 2px solid var(--wp--preset--color--teal-lighter); scroll-margin-top: 6rem; }
.mpf-dir__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem 2rem; }
.mpf-dir__item h3 { font-size: 1.15rem; margin: 0 0 .3rem; }
.mpf-dir__item > p { margin: 0 0 .5rem; color: var(--mpf-ink-soft); font-size: .9rem; }
.mpf-dir__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .9rem; font-size: .9rem; }
.mpf-dir__subs a { color: var(--wp--preset--color--teal-darker); }
