/* ==========================================================================
   Long-form content: services / service areas / location pages / legal / blog.
   720px reading column, sticky quote sidebar, brand-styled headings, tables,
   quotes, inline images.
   ========================================================================== */
.mm-article-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	gap: clamp(32px, 6vw, 96px);
	align-items: start;
	max-width: calc(var(--mm-wide) + 2 * var(--mm-gutter));
	margin-inline: auto;
}
.mm-article-layout > * { margin: 0 !important; max-width: none !important; }
.mm-section--prose > .mm-prose { max-width: 820px; }

/* Prose rhythm */
.mm-prose { color: var(--mm-ink); font-size: 1.0625rem; line-height: 1.75; }
.mm-prose > * { margin: 0 !important; }
.mm-prose > * + * { margin-top: 1.15em !important; }
.mm-prose > :is(h2, h3, h4, h5) + * { margin-top: .75em !important; }
.mm-prose > h2 {
	position: relative;
	font-size: var(--wp--preset--font-size--heading-md) !important;
	line-height: .98 !important;
	margin-top: 2.2em !important;
	padding-top: .9em;
}
.mm-prose > h2::before {
	/* brand double slash marker above each article H2 */
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 18px;
	height: 22px;
	background: var(--mm-orange);
	-webkit-mask: url("../../brand/elements/slashes.svg") center / contain no-repeat;
	mask: url("../../brand/elements/slashes.svg") center / contain no-repeat;
}
.mm-prose > h2:first-child { margin-top: 0 !important; }
.mm-prose > h3 { font-size: clamp(1.15rem, 1.5vw, 1.35rem) !important; margin-top: 1.9em !important; color: var(--mm-navy); }
.mm-prose > h4, .mm-prose > h5 { margin-top: 1.6em !important; }
.mm-prose > h5 { color: var(--mm-orange-dark); }
.mm-prose a { font-weight: 500; }
.mm-prose strong { color: var(--mm-navy); }
.mm-prose ul, .mm-prose ol { padding-left: 1.3em; }
.mm-prose li + li { margin-top: .45em; }
.mm-prose > .wp-block-list > li::marker { color: var(--mm-orange); }

/* images inside articles: full column width, sharp, slight angle cut */
.mm-prose .mm-article-media { margin-block: 1.8em !important; }
.mm-prose .mm-article-media img { width: 100%; height: auto; max-height: 560px; object-fit: cover; clip-path: polygon(0 0, 100% 0, 100% 100%, 4% 100%); }

/* tables (blog posts) */
.mm-prose .wp-block-table { margin-block: 1.8em !important; overflow-x: auto; }
.mm-prose table { width: 100%; border-collapse: collapse; font-size: .9688rem; line-height: 1.5; }
.mm-prose th { background: var(--mm-navy); color: #fff; font-family: var(--mm-cond); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .875rem; text-align: left; }
.mm-prose th, .mm-prose td { padding: 14px 16px; border: 1px solid var(--mm-line); vertical-align: top; }
.mm-prose tbody tr:nth-child(even) td { background: var(--mm-sand); }

/* quotes */
.mm-prose .wp-block-quote { margin-block: 1.8em !important; padding: 24px 28px; border-left: 4px solid var(--mm-orange); background: var(--mm-sand); font-size: 1rem; }
.mm-prose .wp-block-quote p { margin: 0; }

/* inline form card inside articles */
.mm-prose .mm-form-card--inline { margin-block: 2em !important; }

/* tables of buttons in prose */
.mm-prose > .wp-block-buttons { margin-top: 1.6em !important; }

/* --------------------------------------------------------------------------
   Sidebar (synced pattern): quote card + areas / services list
   -------------------------------------------------------------------------- */
.mm-sidebar { position: sticky; top: calc(var(--wp--custom--header--compact) + 24px); display: grid; gap: 20px; }
.mm-sidebar > * { margin: 0 !important; }
.mm-sidebar__title { font-family: var(--mm-display) !important; font-weight: 400 !important; font-size: 2rem !important; line-height: 1 !important; letter-spacing: .01em !important; }
.mm-sidebar__quote .mm-sidebar__title { color: #fff; }
.mm-sidebar__links { background: var(--mm-sand); padding: 26px 26px 18px; border-top: 3px solid var(--mm-orange); }
.mm-sidebar__links > * { margin: 0 !important; }
.mm-sidebar__links .mm-sidebar__title { font-size: 1.5rem !important; margin-bottom: .75rem !important; }
.mm-sidebar__list { list-style: none; padding: 0 !important; margin: 0; columns: 2; column-gap: 18px; }
.mm-sidebar__list li { break-inside: avoid; margin: 0 !important; }
.mm-sidebar__list a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	border-bottom: 1px solid var(--mm-line);
	color: var(--mm-navy);
	text-decoration: none;
	font-family: var(--mm-cond);
	font-weight: 600;
	font-size: .9688rem;
	letter-spacing: .02em;
	transition: color .25s, padding .35s var(--mm-ease);
}
.mm-sidebar__list a::before { content: ""; width: 8px; height: 8px; flex: none; background: var(--mm-orange); clip-path: polygon(0 0, 100% 50%, 0 100%); transition: transform .35s var(--mm-ease); }
.mm-sidebar__list a:hover { color: var(--mm-orange-dark); padding-left: 4px; }

@media (max-width: 1024px) {
	.mm-article-layout { grid-template-columns: 1fr; }
	.mm-sidebar { position: static; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}
@media (max-width: 480px) { .mm-sidebar__list { columns: 1; } }

/* Sitemap page lists */
.mm-sitemap ul { columns: 2; column-gap: 32px; }
.mm-sitemap li { break-inside: avoid; }
@media (max-width: 600px) { .mm-sitemap ul { columns: 1; } }
