/*
Theme Name: Peshev
Theme URI: https://mariopeshev.com/
Author: Mario Peshev
Description: The mariopeshev.com block theme. No parent theme, no page builder, no theme JavaScript. Tokens live in theme.json; this file draws the components the patterns use and keeps the classes older content carries (Ollie's block styles and helpers) rendering as they did.
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.1
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: peshev
*/

/* ---------- tokens the components share (the palette itself is in theme.json) ---------- */
:root {
	--ink: var(--wp--preset--color--main);
	--ink-3: #2a2541;
	--green: var(--wp--preset--color--primary);
	--green-ink: var(--wp--preset--color--primary-dark);
	--green-tint: var(--wp--preset--color--primary-tint);
	--green-glow: #49c08a;
	--text: var(--wp--preset--color--body); /* not "text": core puts has-text-color on every block with a colour, so a "text" slug would recolour them all */
	--muted: var(--wp--preset--color--secondary);
	--muted-2: #8a88a3;
	--line: var(--wp--preset--color--border-light);
	--line-2: #d6d3e3;
	--mint: var(--wp--preset--color--tertiary);
	--lilac: var(--wp--preset--color--wash);
	--sage: var(--wp--preset--color--primary-accent);
	--on-dark: #dcd9e8;
	--on-dark-muted: #c3bfd6;
	--radius: 18px;
	--shadow: var(--wp--preset--shadow--card);
	--shadow-lg: var(--wp--preset--shadow--lifted);
	--serif: var(--wp--preset--font-family--serif);
	--sans: var(--wp--preset--font-family--primary);
	--header-h: 72px;
}

/* ---------- base ---------- */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; border-radius: 6px; }
:where(figure) { margin: 0; }

/* Template regions butt against each other; every section sets its own padding. */
.wp-site-blocks > * + *,
.site-main > * + *,
.site-main.is-layout-flow > * { margin-block-start: 0; }
.site-main { margin: 0; }

/* ---------- small type helpers used by patterns ---------- */
.eyebrow,
.eyebrow-terms {
	display: inline-flex; align-items: center; gap: 8px; margin: 0;
	font: 600 12px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--green);
}
.eyebrow::before,
.eyebrow-terms::before { content: ""; width: 18px; height: 1.5px; background: currentColor; flex: none; }
.eyebrow-terms a { color: inherit; text-decoration: none; }
.eyebrow-terms a:not(:first-of-type),
.eyebrow-terms .wp-block-post-terms__separator { display: none; }
/* The guide trail (hive/pillar-trail, hive-pillars mu-plugin) takes the eyebrow's place on an article in a guide:
   every link is shown, unlike the category eyebrow, which keeps only the first term. */
.pillar-trail.eyebrow-terms { flex-wrap: wrap; row-gap: 6px; }
.pillar-trail.eyebrow-terms a:not(:first-of-type) { display: inline; }
.pillar-trail a:hover { text-decoration: underline; text-underline-offset: 3px; }
.pillar-trail__sep { opacity: .45; }
.lede { font-size: 1.25rem; line-height: 1.6; color: var(--text); }
.link-arrow { margin: 0; }
.link-arrow a { font: 600 15px/1 var(--sans); color: var(--green); text-decoration: none; display: inline-flex; gap: 8px; align-items: center; }
.link-arrow a::after { content: "\2192"; transition: transform .15s; }
.link-arrow a:hover { color: var(--green-ink); }
.link-arrow a:hover::after { transform: translateX(3px); }
h3.is-sans { font: 600 20px/1.3 var(--sans); letter-spacing: -.005em; }

/* ---------- buttons ---------- */
.wp-block-button__link { transition: background .15s, color .15s, border-color .15s, transform .15s; white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.has-arrow .wp-block-button__link::after { content: "\2192"; transition: transform .15s; }
.wp-block-button.has-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-ink .wp-block-button__link { background: var(--ink); color: #fff; }
.wp-block-button.is-style-ink .wp-block-button__link:hover { background: var(--ink-3); }
.wp-block-button.is-style-outline .wp-block-button__link { background: #fff; color: var(--ink); border: 1px solid var(--line-2); outline: 0; padding: 13px 20px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--ink); background: #fff; color: var(--ink); }
.is-dark .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .28); }
.is-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: #fff; }
.wp-block-button.is-small .wp-block-button__link { padding: 11px 18px; font-size: 14.5px; }

/* ---------- header ---------- */
.site-header-wrap { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; margin: 0; }
.site-header {
	background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: saturate(160%) blur(12px); backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid var(--line);
}
.site-header__bar { min-height: var(--header-h); gap: 28px; justify-content: flex-start !important; }
.logo { margin: 0; flex: none; }
.logo a { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; font: 600 19px/1 var(--serif); letter-spacing: -.01em; white-space: nowrap; }
.logo a::before {
	content: "M"; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex: none;
	font: 600 15px/1 var(--serif); color: #fff;
	background: radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), var(--green-glow) 0 3px, transparent 3.5px), var(--ink);
}
.site-nav { margin-left: 4px; }
.site-nav .wp-block-navigation-item__content { padding: 10px 12px; border-radius: 999px; color: var(--text); text-decoration: none; }
.site-nav .wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content { background: var(--lilac); color: var(--ink); }
.site-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--green); }
.site-nav .wp-block-navigation__submenu-icon { margin-left: -6px; margin-right: 6px; }
.site-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--line) !important; border-radius: 14px; padding: 8px !important; min-width: 270px !important;
	box-shadow: var(--shadow); background: #fff !important;
}
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 9px 12px; border-radius: 10px; width: 100%; }
.site-nav .only-in-overlay { display: none; }
/* Core's flex layout zeroes child margins with .is-layout-flex > :is(*, div), which outranks one class. */
.site-header__bar > .site-header__cta { margin-left: auto; }
.site-header__cta { gap: 14px; flex: none; }
.site-header__text-link { margin: 0; }
.site-header__text-link a { font: 500 15px/1 var(--sans); color: var(--text); text-decoration: none; }
.site-header__text-link a:hover { color: var(--ink); }

/* The overlay is set to "always" in the markup and opened back up here at 1080px rather than core's fixed
   600px: six items plus the logo and the call to action do not fit a 600-1079px bar. */
.site-nav .wp-block-navigation__responsive-container-open { width: 42px; height: 42px; border: 1px solid var(--line-2); border-radius: 999px; display: grid; place-items: center; }
@media (min-width: 1080px) {
	.site-nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) { display: block; position: relative; width: 100%; z-index: auto; background-color: inherit; }
	.site-nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
	.site-nav .wp-block-navigation__responsive-container-open.always-shown { display: none; }
}
@media (max-width: 1079px) {
	.site-nav { order: 3; margin-left: 0; }
	.site-header__text-link { display: none; }
	.site-header__bar { gap: 12px; }
}
.site-nav .is-menu-open { padding: 24px clamp(18px, 4vw, 28px) !important; }
.site-nav .is-menu-open .wp-block-navigation__container { gap: 2px !important; }
.site-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.125rem; padding: 12px 8px; }
.site-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 8px 14px !important; min-width: 0 !important; }
.site-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; color: var(--muted); padding: 8px; }
.site-nav .is-menu-open .only-in-overlay { display: block; }

/* ---------- sections ---------- */
.section { padding-block: clamp(72px, 9vw, 104px); }
.section.is-tight { padding-block: clamp(56px, 7vw, 80px); }
.section.is-flush-top { padding-top: 0; }
.section.is-mint { background: var(--mint); }
.section.is-lilac { background: var(--lilac); }
.is-dark { background: var(--ink); color: var(--on-dark); }
.is-dark :where(h1, h2, h3, h4) { color: #fff; }
.is-dark .eyebrow { color: var(--green-glow); }
.is-dark a:where(:not(.wp-element-button)) { color: #fff; }
.section > .alignwide > * + * { margin-block-start: 0; }

.section-head { margin-bottom: 44px; gap: 32px !important; align-items: flex-end !important; }
.section-head__left { max-width: 680px; }
.section-head__left > * { margin: 0; }
.section-head__left h2 { margin-top: 14px; }
.section-head__sub { margin-top: 14px !important; color: var(--muted); font-size: 18px; }
.section-head .link-arrow { margin-bottom: 6px; }

/* ---------- hero (front page) ---------- */
.hero { position: relative; overflow: hidden; padding-block: 0; }
.hero::before { content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(700px 420px at 82% 18%, rgba(8, 114, 55, .38), transparent 70%), radial-gradient(520px 380px at 8% 100%, rgba(208, 204, 222, .12), transparent 70%); }
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 56px 56px; -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, .9), transparent 85%); mask-image: linear-gradient(180deg, rgba(0, 0, 0, .9), transparent 85%); }
.hero > .alignwide { position: relative; z-index: 1; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 64px; align-items: center; padding: 88px 0 96px; }
.hero__grid > *, .hero__copy > * { margin: 0; }
.hero__title { color: #fff; margin-top: 22px !important; font-size: clamp(2.5rem, 1.5rem + 2.8vw, 3.625rem); line-height: 1.04; letter-spacing: -.025em; }
.hero .lede { color: #c9c5da; max-width: 600px; margin: 26px 0 34px !important; }
.hero__proof { display: flex; flex-wrap: wrap; gap: 22px 28px; margin-top: 42px !important; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .1); }
.hero__proof > p { margin: 0; font: 500 14px/1.4 var(--sans); color: #b4afc9; }
.hero__proof strong { display: block; font: 500 26px/1.1 var(--serif); color: #fff; letter-spacing: -.01em; margin-bottom: 4px; }
.portrait { position: relative; border-radius: 26px; overflow: hidden; aspect-ratio: 4 / 4.6; box-shadow: 0 40px 80px rgba(0, 0, 0, .4); }
.portrait > * { margin: 0; }
.portrait .wp-block-image { height: 100%; }
.portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 30%; }
.portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(20, 17, 31, .55)); pointer-events: none; }
.portrait__card {
	position: absolute; left: 20px; right: 20px; bottom: 20px; z-index: 2; margin: 0 !important;
	padding: 14px 16px 14px 68px; border-radius: 16px; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	color: var(--ink); font: 500 14px/1.4 var(--sans);
}
.portrait__card::before { content: "D"; position: absolute; left: 16px; top: 50%; margin-top: -19px; width: 38px; height: 38px; border-radius: 12px; background: var(--green); display: grid; place-items: center; color: #fff; font: 600 16px/1 var(--serif); flex: none; }
.portrait__card strong { font-weight: 650; }

/* ---------- press logos ---------- */
.press { padding-block: 34px; border-bottom: 1px solid var(--line); }
.press__row { gap: 26px 40px !important; align-items: center !important; }
.press__row > * { margin: 0 !important; }
.press__label { font: 600 12px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted-2); }
.press .wp-block-image img { height: 30px; width: auto; max-width: 128px; object-fit: contain; filter: grayscale(1) contrast(1.1); opacity: .62; }
.press .wp-block-image.is-tall img { height: 38px; }

/* ---------- offers ---------- */
.offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.offers > * { margin: 0 !important; }
.offer { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 30px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); transition: box-shadow .2s, transform .2s, border-color .2s; }
.offer > * { margin: 0 !important; }
.offer:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-color: var(--line-2); }
.offer .offer__num { font: 500 14px/1 var(--serif); color: var(--green); }
.offer h3 { font-size: 26px; line-height: 1.15; letter-spacing: -.012em; }
.offer h3 a { color: var(--ink); text-decoration: none; }
.offer h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.offer p { color: var(--muted); font-size: 16px; line-height: 1.6; }
.offer .offer__tag { margin-top: auto !important; padding-top: 14px; border-top: 1px dashed var(--line-2); display: flex; justify-content: space-between; font: 600 14px/1 var(--sans); color: var(--ink); }
.offer__tag::after { content: "\2192"; color: var(--green); }
.offer.is-featured { background: var(--ink); border-color: var(--ink); }
.offer.is-featured h3 a { color: #fff; }
.offer.is-featured p { color: var(--on-dark-muted); }
.offer.is-featured .offer__tag { color: #fff; border-color: rgba(255, 255, 255, .18); }
.offer.is-featured .offer__tag::after { color: var(--green-glow); }

/* ---------- split band and check list ---------- */
.band, .feature { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.feature { grid-template-columns: 1.05fr .95fr; }
.band > *, .feature > *, .band__copy > *, .feature__copy > * { margin: 0; }
.band__copy > * + *, .feature__copy > * + * { margin-top: 18px; }
.band__copy h2, .feature__copy h2 { margin-top: 14px; }
.band__media { border-radius: 24px; overflow: hidden; background: var(--sage); }
.band__media img { width: 100%; height: 100%; object-fit: cover; padding: 30px 20px 0; }
.is-style-checks { list-style: none; padding: 0; margin: 24px 0 30px !important; display: grid; gap: 12px; }
.is-style-checks li { position: relative; padding-left: 30px; }
.is-style-checks li::before { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 16px; border-radius: 50%; background: var(--green-tint); box-shadow: inset 0 0 0 4px var(--green-tint), inset 0 0 0 9px var(--green); }
.feature__copy > p:not(.eyebrow) { color: var(--on-dark-muted); font-size: 18px; }
.feature__media { border-radius: 22px; overflow: hidden; box-shadow: 0 30px 70px rgba(0, 0, 0, .35); }
.feature__media img { width: 100%; display: block; }
.chips { gap: 8px !important; margin: 22px 0 30px !important; }
.chips > .chip { margin: 0; font: 500 13.5px/1 var(--sans); padding: 9px 12px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .16); color: var(--on-dark); }

/* ---------- guide covers ---------- */
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.grid-4 > * { margin: 0 !important; }
.grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.grid-5 .guide h3 { font-size: 21px; }
.guide { position: relative; display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid var(--line); transition: box-shadow .2s, transform .2s; }
.guide:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.guide > * { margin: 0 !important; }
.guide__media { aspect-ratio: 4 / 3; overflow: hidden; }
.guide__media img { width: 100%; height: 100%; object-fit: cover; }
.guide__body { padding: 22px 22px 24px; }
.guide__body > * { margin: 0; }
.guide__count { font: 600 12px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2); }
.guide h3 { font-size: 24px; line-height: 1.2; margin: 10px 0 8px; letter-spacing: -.01em; }
.guide h3 a { color: var(--ink); text-decoration: none; }
.guide h3 a::after { content: ""; position: absolute; inset: 0; }
.guide__body p:not(.guide__count) { color: var(--muted); font-size: 15px; line-height: 1.55; }

/* ---------- post cards (query loops) ---------- */
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; margin: 0; padding: 0; }
.cards > li { margin: 0; display: flex; min-width: 0; }
.card { position: relative; display: flex; flex-direction: column; width: 100%; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.card > * { margin: 0 !important; }
.card__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--mint); }
.card__media img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .5s; }
.card:hover .card__media img { transform: scale(1.035); }
.card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.card__body > * { margin: 0 !important; }
.card__kicker { position: relative; z-index: 1; font: 600 12px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.card__kicker a { color: var(--green); text-decoration: none; }
.card__kicker a:not(:first-of-type), .card__kicker .wp-block-post-terms__separator { display: none; }
.card__title { font: 500 22px/1.25 var(--serif); letter-spacing: -.01em; }
.card__title a { color: var(--ink); text-decoration: none; }
.card__title a::after { content: ""; position: absolute; inset: 0; }
.card__excerpt p { margin: 0; color: var(--muted); font-size: 15.5px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card__meta { margin-top: auto !important; padding-top: 10px; font: 500 13.5px/1 var(--sans); color: var(--muted-2); }

/* The first card of the homepage grid and of a listing runs across two columns, image beside text. */
.is-writing-grid .cards > li:first-child,
.is-card-grid .cards > li:first-child { grid-column: span 2; }
.is-writing-grid .cards > li:first-child .card,
.is-card-grid .cards > li:first-child .card { flex-direction: row; }
/* Featured images here are 1200x630 title cards with text baked in: the large card shows the whole image at
   16:9 beside the text instead of cropping it to the card's height. */
.is-writing-grid .cards > li:first-child .card__media,
.is-card-grid .cards > li:first-child .card__media { flex: 1.25; align-self: center; margin: 24px 0 24px 24px !important; border-radius: 12px; }
.is-writing-grid .cards > li:first-child .card__body,
.is-card-grid .cards > li:first-child .card__body { flex: 1; padding: 34px; justify-content: center; }
.is-writing-grid .cards > li:first-child .card__title,
.is-card-grid .cards > li:first-child .card__title { font-size: 32px; line-height: 1.15; }
.is-writing-grid .cards > li:not(:first-child) .card__excerpt { display: none; }
.is-related .card__excerpt { display: none; }

.pager { margin-top: 48px; gap: 8px; }
.pager a, .pager .page-numbers { min-width: 42px; height: 42px; padding: 0 14px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--line-2); text-decoration: none; font: 600 14px/1 var(--sans); color: var(--ink); }
.pager .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.pager .page-numbers.dots { border: 0; }
.no-results { color: var(--muted); font-size: 18px; }

/* ---------- testimonials ---------- */
.quotes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.quotes > * { margin: 0 !important; }
.quote { padding: 32px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 22px; }
.quote > * { margin: 0 !important; }
.quote__text { font: 400 21px/1.5 var(--serif); color: var(--ink); letter-spacing: -.005em; }
.quote__text::before { content: "\201C"; display: block; font: 500 54px/.6 var(--serif); color: var(--green); margin-bottom: 14px; }
.quote__by { margin-top: auto !important; gap: 14px !important; align-items: center !important; }
.quote__by > * { margin: 0 !important; }
.quote__photo img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.quote__who { font: 500 14px/1.3 var(--sans); color: var(--muted); }
.quote__who strong { display: block; font: 650 15px/1.3 var(--sans); color: var(--ink); }

/* ---------- book ---------- */
.book { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: center; background: linear-gradient(135deg, var(--green-tint), var(--mint)); border: 1px solid #d4e6db; border-radius: 28px; padding: 48px; }
.book > *, .book__copy > * { margin: 0; }
.book__copy > * + * { margin-top: 14px; }
.book .lede { font-size: 18px; }
.book__pull { margin-top: 26px !important; padding-left: 18px; border-left: 2px solid var(--green); font: 400 18px/1.55 var(--serif); color: var(--ink); }
.book__pull span { display: block; margin-top: 8px; font: 500 14px/1.4 var(--sans); color: var(--muted); }
.book__copy .wp-block-buttons { margin-top: 28px; }

/* ---------- stats, CTA, FAQ ---------- */
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.stats > * { margin: 0 !important; }
.stat { padding: 30px 28px; border-right: 1px solid var(--line); }
.stat:last-child { border-right: 0; }
.stat > * { margin: 0; }
.stat__n { font: 500 44px/1 var(--serif); color: var(--ink); letter-spacing: -.02em; margin-bottom: 10px !important; }
.stat__l { font: 500 14.5px/1.45 var(--sans); color: var(--muted); }
.cta { background: var(--ink); color: var(--on-dark); border-radius: 28px; padding: clamp(28px, 5vw, 48px); gap: 28px !important; position: relative; overflow: hidden; }
.cta::before { content: ""; position: absolute; right: -120px; top: -120px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(8, 114, 55, .5), transparent 70%); pointer-events: none; }
.cta > * { position: relative; margin: 0 !important; }
.cta__copy { max-width: 640px; }
.cta__copy > * { margin: 0; }
.cta__copy h2 { color: #fff; margin: 14px 0 12px; }
.cta .eyebrow { color: var(--green-glow); }
.cta .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .28); }
.section.is-narrow > .alignwide { max-width: 860px; }
.faq .section-head { margin-bottom: 24px; }
.wp-block-details { border-bottom: 1px solid var(--line); padding: 18px 0; }
.wp-block-details summary { cursor: pointer; list-style: none; font: 600 18px/1.4 var(--sans); color: var(--ink); display: flex; justify-content: space-between; gap: 18px; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font: 400 24px/1 var(--sans); color: var(--green); transition: transform .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: 12px; color: var(--muted); }

/* ---------- page hero ---------- */
.page-hero { padding-block: 76px 56px; background: linear-gradient(180deg, var(--lilac), #fff); border-bottom: 1px solid var(--line); }
.page-hero > .alignwide > * { margin: 0; }
.page-hero h1, .page-hero .wp-block-query-title { margin-top: 18px !important; max-width: 900px; }
.page-hero .lede, .page-hero .wp-block-term-description { max-width: 700px; margin-top: 22px !important; color: var(--text); font-size: 1.25rem; }
.page-hero .site-search { margin-top: 28px !important; max-width: 560px; }
.page-hero.is-404 + * { padding-top: 64px; }
.is-page > .page-hero + .page-content { padding-top: clamp(40px, 6vw, 64px); }
.is-page > .page-content { padding-bottom: clamp(56px, 8vw, 96px); }
.site-search .wp-block-search__input { border: 1px solid var(--line-2); border-radius: 999px; padding: 13px 18px; font: 16px var(--sans); background: #fff; }
.site-search .wp-block-search__button { border-radius: 999px; margin-left: 8px; }

/* ---------- newsletter band ---------- */
.newsletter-wrap { margin: 0; }
.news { display: grid; grid-template-columns: 1.25fr 1fr; gap: 20px; }
.news > * { margin: 0 !important; }
.news-card { border-radius: 26px; padding: 44px; position: relative; overflow: hidden; color: #c9c5da; }
.news-card::before { content: ""; position: absolute; right: -120px; top: -120px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(8, 114, 55, .55), transparent 70%); pointer-events: none; }
.news-card > * { position: relative; margin: 0; }
.news-card h2 { margin: 14px 0 12px; }
.news-embed { margin-top: 26px !important; max-width: 520px; }
.news-embed iframe { display: block; width: 100%; height: 52px; border: 0; margin: 0; background: transparent; border-radius: 0 !important; }
.news-note { margin-top: 12px !important; font-size: 13.5px; color: #8f8aa8; }
.yt-card { border-radius: 26px; padding: 36px; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 14px; }
.yt-card > * { margin: 0 !important; }
.yt-thumb { position: relative; border-radius: 16px; overflow: hidden; aspect-ratio: 16 / 9; background: var(--ink); }
.yt-thumb a { display: block; height: 100%; }
.yt-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.yt-thumb::after { content: "\25B6"; position: absolute; left: 50%; top: 50%; width: 62px; height: 62px; margin: -31px 0 0 -31px; border-radius: 50%; background: rgba(255, 255, 255, .95); display: grid; place-items: center; color: var(--ink); font-size: 20px; padding-left: 4px; box-shadow: var(--shadow); pointer-events: none; }

/* ---------- article ---------- */
.article { padding-bottom: clamp(56px, 8vw, 88px); }
.article-head { padding-block: 64px 36px; }
.article-head > * { margin: 0; }
.article-title { margin: 16px 0 22px !important; font-size: clamp(2.125rem, 1.5rem + 2.4vw, 3.25rem); line-height: 1.08; letter-spacing: -.022em; }
.byline { gap: 6px 14px !important; font: 500 14.5px/1.4 var(--sans); color: var(--muted); }
.byline > * { margin: 0 !important; }
.byline__author { color: var(--ink); font-weight: 650; }
.byline__author::before { content: "By "; color: var(--muted); font-weight: 500; }
.byline__date { font-size: 14.5px; display: flex; flex-wrap: wrap; gap: 6px 14px; }
/* 22 published items have no author account (post_author 0): no name, so no separator before the first date. */
.byline__date:first-child > span:first-child::before { content: none; }
.byline__date > span::before, .card__meta .date-modified::before { content: "\00B7"; margin-right: 14px; color: var(--muted-2); }
.card__meta { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.card__meta .date-modified::before { margin-right: 10px; }
.article-hero { border-radius: 24px; overflow: hidden; margin-block: 8px 56px !important; }
/* Core's .wp-block-post-featured-image img { height: auto } prints after this file; one more class keeps the frame filled. */
.wp-block-post-featured-image.article-hero img, .wp-block-post-featured-image.card__media img { width: 100%; height: 100%; object-fit: cover; }
.article-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px !important; }
.article-tags .wp-block-post-terms__separator { display: none; }

/* Reading column. Applies to every post body, and to pages through .page-content where it is plain text. */
.prose { font-size: 19px; line-height: 1.75; color: var(--text); }
.prose > * + * { margin-block-start: 22px; }
.prose :where(h2) { font-size: 32px; line-height: 1.2; letter-spacing: -.015em; margin-block: 52px 16px; }
.prose :where(h3) { font-size: 25px; line-height: 1.25; margin-block: 40px 12px; }
.prose :where(h4) { margin-block: 32px 10px; }
.prose :where(h2, h3, h4) + * { margin-block-start: 0; }
.prose :where(p) { margin-block-end: 0; }
.prose a:where(:not(.wp-element-button)) { color: var(--green); }
.prose :where(ul, ol) { padding-left: 22px; }
.prose :where(li) { margin-bottom: 10px; }
.prose :where(li)::marker { color: var(--green); }
.prose :where(figure img) { border-radius: 16px; }
.prose :where(table) { width: 100%; border-collapse: collapse; font-size: 16px; }
.prose :where(th) { text-align: left; font: 600 13px/1.3 var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--line-2); padding: 10px 12px; }
.prose :where(td) { border-bottom: 1px solid var(--line); padding: 14px 12px; vertical-align: top; }
.prose .wp-block-quote { border-radius: 16px; }
.prose .wp-block-quote cite { display: block; margin-top: 10px; font: 600 14px/1.4 var(--sans); font-style: normal; color: var(--muted); }
.prose iframe, .page-content iframe, .prose embed, .prose object { max-width: 100%; }
.prose iframe[src*="youtube"], .prose iframe[src*="youtu.be"], .prose iframe[src*="vimeo"],
.prose iframe[nitro-og-src*="youtube"], .prose iframe[nitro-lazy-src*="youtube"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.wp-block-table table { border-collapse: collapse; }
.wp-block-table :where(th, td) { border: 1px solid var(--line); padding: 10px 12px; }

.author-box { gap: 20px !important; padding: 28px; border-radius: 20px; background: var(--lilac); border: 1px solid var(--line); margin-top: 48px !important; align-items: center !important; }
.author-box > * { margin: 0 !important; }
.author-box__photo img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; object-position: 66% 25%; display: block; }
.author-box__text > * { margin: 0; }
.author-box__name { font: 650 16px/1.3 var(--sans); color: var(--ink); }
.author-box__text p:not(.author-box__name):not(.author-box__links) { margin: 6px 0 0; font-size: 15.5px; color: var(--muted); }
.author-box__links { margin-top: 10px !important; display: flex; flex-wrap: wrap; gap: 6px 18px; font: 600 14.5px/1.4 var(--sans); }
.author-box__links a { color: var(--green); text-decoration: none; }

/* ---------- footer ---------- */
.site-footer { background: var(--ink); color: #a9a4c0; padding-block: 80px 40px; }
.site-footer__cols { display: grid; grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr)); gap: 40px; }
.site-footer__cols > * { margin: 0 !important; }
.site-footer__about > * { margin: 0; }
.site-footer__about p:not(.logo) { margin-top: 18px; max-width: 320px; font-size: 15px; line-height: 1.6; }
.site-footer .logo a { color: #fff; }
.site-footer .logo a::before { color: var(--ink); background: radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), var(--green) 0 3px, transparent 3.5px), #fff; }
.site-footer__social { margin-top: 22px !important; gap: 14px !important; }
.site-footer__social .wp-social-link { color: #a9a4c0; }
.site-footer__social .wp-social-link:hover { color: #fff; }
.site-footer__h { margin: 0 0 16px; font: 600 13px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: #fff; }
.site-footer .wp-block-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer .wp-block-list li { margin: 0; }
.site-footer a { text-decoration: none; color: #a9a4c0; font-size: 15px; }
.site-footer a:hover { color: #fff; }
.site-footer__legal { margin-top: 56px !important; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13.5px; }
.site-footer__legal > * { margin: 0; }
.site-footer__legal a { font-size: 13.5px; }

/* ---------- core's default palette ----------
   theme.json turns the default palette off so the editor offers only the brand colours, which also stops
   WordPress printing these classes; older content still uses white and cyan-bluish-gray, so they are kept. */
:root { --wp--preset--color--black: #000; --wp--preset--color--white: #fff; --wp--preset--color--cyan-bluish-gray: #abb8c3; }
.has-black-color { color: #000000 !important; }
.has-black-background-color { background-color: #000000 !important; }
.has-black-border-color { border-color: #000000 !important; }
.has-cyan-bluish-gray-color { color: #abb8c3 !important; }
.has-cyan-bluish-gray-background-color { background-color: #abb8c3 !important; }
.has-cyan-bluish-gray-border-color { border-color: #abb8c3 !important; }
.has-white-color { color: #ffffff !important; }
.has-white-background-color { background-color: #ffffff !important; }
.has-white-border-color { border-color: #ffffff !important; }
.has-pale-pink-color { color: #f78da7 !important; }
.has-pale-pink-background-color { background-color: #f78da7 !important; }
.has-pale-pink-border-color { border-color: #f78da7 !important; }
.has-vivid-red-color { color: #cf2e2e !important; }
.has-vivid-red-background-color { background-color: #cf2e2e !important; }
.has-vivid-red-border-color { border-color: #cf2e2e !important; }
.has-luminous-vivid-orange-color { color: #ff6900 !important; }
.has-luminous-vivid-orange-background-color { background-color: #ff6900 !important; }
.has-luminous-vivid-orange-border-color { border-color: #ff6900 !important; }
.has-luminous-vivid-amber-color { color: #fcb900 !important; }
.has-luminous-vivid-amber-background-color { background-color: #fcb900 !important; }
.has-luminous-vivid-amber-border-color { border-color: #fcb900 !important; }
.has-light-green-cyan-color { color: #7bdcb5 !important; }
.has-light-green-cyan-background-color { background-color: #7bdcb5 !important; }
.has-light-green-cyan-border-color { border-color: #7bdcb5 !important; }
.has-vivid-green-cyan-color { color: #00d084 !important; }
.has-vivid-green-cyan-background-color { background-color: #00d084 !important; }
.has-vivid-green-cyan-border-color { border-color: #00d084 !important; }
.has-pale-cyan-blue-color { color: #8ed1fc !important; }
.has-pale-cyan-blue-background-color { background-color: #8ed1fc !important; }
.has-pale-cyan-blue-border-color { border-color: #8ed1fc !important; }
.has-vivid-cyan-blue-color { color: #0693e3 !important; }
.has-vivid-cyan-blue-background-color { background-color: #0693e3 !important; }
.has-vivid-cyan-blue-border-color { border-color: #0693e3 !important; }
.has-vivid-purple-color { color: #9b51e0 !important; }
.has-vivid-purple-background-color { background-color: #9b51e0 !important; }
.has-vivid-purple-border-color { border-color: #9b51e0 !important; }

/* ---------- classes older content carries (Ollie's block styles and helpers, as Ollie drew them) ---------- */
.is-style-background-blur { -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.is-style-column-box-shadow { box-shadow: 0 8px 40px -20px rgb(21 14 41 / 12%); transition: .4s ease; }
.is-style-column-box-shadow:hover { box-shadow: 0 12px 60px -20px rgb(21 14 41 / 16%); }
.wp-block-separator { opacity: 1; }
.wp-block-separator:not(.is-style-dots), .wp-block-separator.has-background:not(.is-style-dots) { border: 0; border-bottom: 1px solid currentColor; height: 1px; }
hr.is-style-separator-dotted { width: 100% !important; height: 1px !important; border: none !important; background: repeating-linear-gradient(90deg, currentColor, currentColor 2px, transparent 2px, transparent 5px) !important; }
.is-style-term-button a { display: inline-block; padding: 6px 12px; border-radius: 999px; background-color: var(--mint); font-size: var(--wp--preset--font-size--x-small); color: var(--green); line-height: 1.4; text-decoration: none; }
.taxonomy-post_tag.is-style-term-button { display: flex; gap: 8px; flex-wrap: wrap; }
.taxonomy-post_tag.is-style-term-button .wp-block-post-terms__separator { display: none; }
.wp-block-image.is-style-rounded img, .wp-block-image .is-style-rounded img { border-radius: 10px; }
.wp-block-image.is-style-rounded-full img, .wp-block-image .is-style-rounded-full img { border-radius: 1000px; }
.is-style-rounded-cover img { border-radius: 5px; }
div[class*="is-style-excerpt-truncate-"], div[class*="is-style-excerpt-truncate-"] .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.is-style-excerpt-truncate-2, .is-style-excerpt-truncate-2 .wp-block-post-excerpt__excerpt { -webkit-line-clamp: 2; }
.ollie-row-stack > .wp-block-buttons, .ollie-no-shrink { flex-shrink: 0; }
.wp-block-group.ollie-sticky-top { top: calc(20px + var(--wp-admin--admin-bar--position-offset, 0px)); }
.wp-block-post-content :where(ul, ol) li { margin-bottom: var(--wp--preset--spacing--small); }
@media (max-width: 781px) {
	.ollie-row-stack { flex-direction: column; align-items: flex-start !important; }
	.ollie-row-stack > * { flex-basis: 100% !important; }
	.ollie-flex-start { align-items: flex-start !important; }
	.ollie-justify-start { justify-content: flex-start !important; }
	.ollie-swap-order { flex-direction: column-reverse; }
	.ollie-row-reverse { flex-direction: row-reverse; }
	.wp-block-cover:not(.has-aspect-ratio) { min-height: 430px !important; }
}
@media only screen and (max-width: 600px) {
	.is-layout-flow .wp-block-image.alignleft, .is-layout-flow .wp-block-image.alignright { float: none; margin-left: auto; margin-right: auto; }
}

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
	.hero__grid, .band, .feature, .book, .news { grid-template-columns: 1fr; }
	.hero__grid { padding: 64px 0 72px; gap: 44px; }
	.portrait { max-width: 520px; }
	.offers, .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.stats { grid-template-columns: 1fr 1fr; }
	.stat:nth-child(2) { border-right: 0; }
	.stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
	.site-footer__cols { grid-template-columns: 1fr 1fr; }
	.site-footer__about { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
	body { font-size: 16.5px; }
	.offers, .cards, .grid-4, .quotes { grid-template-columns: 1fr; }
	.is-writing-grid .cards > li:first-child, .is-card-grid .cards > li:first-child { grid-column: auto; }
	.is-writing-grid .cards > li:first-child .card, .is-card-grid .cards > li:first-child .card { flex-direction: column; }
	.is-writing-grid .cards > li:first-child .card__media, .is-card-grid .cards > li:first-child .card__media { flex: none; align-self: stretch; margin: 0 !important; border-radius: 0; }
	.is-writing-grid .cards > li:first-child .card__body, .is-card-grid .cards > li:first-child .card__body { padding: 22px; }
	.is-writing-grid .cards > li:first-child .card__title, .is-card-grid .cards > li:first-child .card__title { font-size: 24px; }
	.stat { padding: 22px 18px; }
	.stat__n { font-size: 34px; }
	.section-head { display: block !important; }
	.section-head .link-arrow { margin-top: 18px; }
	.book, .news-card, .yt-card, .cta { padding: 26px; }
	.press__row { justify-content: center !important; gap: 22px 26px !important; }
	.press .wp-block-image img { height: 24px; }
	.press .wp-block-image.is-tall img { height: 30px; }
	.article-head { padding-block: 40px 24px; }
	.article-hero { aspect-ratio: 16 / 10 !important; margin-bottom: 36px !important; border-radius: 16px; }
	.prose { font-size: 18px; }
	.prose :where(h2) { font-size: 27px; margin-top: 40px; }
	.site-footer__cols { grid-template-columns: 1fr; }
	.logo a { font-size: 17px; gap: 9px; }
	.site-header__cta .wp-block-button__link { padding: 10px 13px; font-size: 13.5px; }
	.author-box { flex-wrap: wrap !important; }
}

/* ── mp-* components (2026-10-27) ──────────────────────────────────────
   The money pages (/fractional-cto/, /technical-due-diligence/,
   /post-merger-integration-consulting/, /go-to-market-consultant/,
   /ai-for-private-equity/), the hubs /guides/hiring-an-advisor/ and
   /guides/ai-operations/ and the Ollie-era homepage draft (page 34501) carry
   mp-* classes. On Ollie they are styled by the hive:mp-redesign block in
   global styles; this is the same CSS with Newsreader for display, so the
   pages render the same after the switch. Source:
   tools/wordpress/mariopeshev/mp_redesign.css. */
/* Mario 2026-10-26: "fix mariopeshev.com as UI and hubs". Styles only the
   mp-* classes the redesigned homepage, guide hubs and post furniture carry,
   so nothing else on the site moves. Brand stays: Mona Sans (expanded width
   for display), primary green, main ink, tertiary tint. */
.mp-hero, .mp-sec { --mp-ink: var(--wp--preset--color--main, #14111f); --mp-green: var(--wp--preset--color--primary, #087237); --mp-tint: var(--wp--preset--color--tertiary, #f3f8f8); --mp-muted: var(--wp--preset--color--secondary, #636381); --mp-rule: var(--wp--preset--color--border-light, #dadee3); --mp-display: var(--wp--preset--font-family--serif, Newsreader, Georgia, serif); }
.mp-hero { padding-top: clamp(40px, 6vw, 88px); padding-bottom: clamp(32px, 4vw, 56px); padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); background: linear-gradient(180deg, var(--mp-tint), #fff); margin-top: 0 !important; }
.mp-hero__cols { gap: clamp(28px, 4vw, 64px) !important; align-items: center !important; margin-bottom: 0 !important; }
.mp-eyebrow { font-size: 0.95rem; font-weight: 650; color: var(--mp-green); margin: 0 0 14px; }
.mp-h1 { font-family: var(--mp-display); font-size: clamp(2.1rem, 1.4rem + 2.6vw, 3.6rem) !important; line-height: 1.06; letter-spacing: -0.02em; font-weight: 750; text-wrap: balance; margin: 0; color: var(--mp-ink); }
.mp-lede { font-size: clamp(1.1rem, 1rem + 0.35vw, 1.3rem); line-height: 1.55; color: #33303f; margin: 20px 0 0; max-width: 62ch; }
.mp-ctas { margin-top: 28px !important; gap: 12px !important; }
.mp-btn .wp-block-button__link { border-radius: 10px; padding: 14px 22px; font-weight: 650; font-size: 1rem; line-height: 1.2; border: 2px solid var(--mp-green); }
.mp-btn--primary .wp-block-button__link { background: var(--mp-green); color: #fff; }
.mp-btn--primary .wp-block-button__link:hover { background: #065c2c; border-color: #065c2c; }
.mp-btn--ghost .wp-block-button__link { background: transparent; color: var(--mp-ink); border-color: var(--mp-ink); }
.mp-btn--ghost .wp-block-button__link:hover { background: var(--mp-ink); color: #fff; }
.mp-stats { list-style: none; padding: 0; margin: 32px 0 0; display: flex; flex-wrap: wrap; gap: 12px 32px; font-size: 0.95rem; color: var(--mp-muted); }
.mp-stats strong { display: block; font-family: var(--mp-display); font-size: 1.6rem; line-height: 1.1; color: var(--mp-ink); }
.mp-portrait { margin: 0; }
.mp-portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 72% 30%; border-radius: 18px; box-shadow: 0 20px 50px rgba(20, 17, 31, 0.14); }
.mp-press { margin-top: clamp(28px, 4vw, 48px) !important; padding-top: 20px; border-top: 1px solid var(--mp-rule); gap: 18px 32px !important; align-items: center; }
.mp-press__label { font-size: 0.85rem; font-weight: 600; color: var(--mp-muted); margin: 0; }
.mp-press__logo { margin: 0 !important; }
.mp-press__logo img { width: auto; object-fit: contain; filter: grayscale(1); opacity: 0.7; }
.mp-sec { padding-top: clamp(48px, 6vw, 96px); padding-bottom: clamp(48px, 6vw, 96px); padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); margin-top: 0 !important; margin-bottom: 0 !important; }
.mp-sec--tint { background: var(--mp-tint); }
.mp-sec--dark { background: var(--mp-ink); color: #fff; }
.mp-sec--dark a { color: #fff; }
.mp-h2 { font-family: var(--mp-display); font-size: clamp(1.7rem, 1.2rem + 1.5vw, 2.5rem) !important; line-height: 1.12; letter-spacing: -0.015em; font-weight: 720; margin: 0 0 12px; text-wrap: balance; }
.mp-sub { color: var(--mp-muted); font-size: 1.1rem; max-width: 62ch; margin: 0 0 32px; }
.mp-sec--dark .mp-sub { color: rgba(255, 255, 255, 0.72); }
.mp-cards, .mp-rows, .mp-quotes, .mp-follow { display: grid !important; gap: 16px; }
.mp-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
/* Card counts that would leave one card alone on the last row. */
.mp-cards:has(> :nth-child(5):last-child) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
@media (min-width: 782px) { .mp-rows:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mp-card { position: relative; padding: 24px; border: 1px solid var(--mp-rule); border-radius: 14px; background: #fff; transition: border-color .15s, transform .15s, box-shadow .15s; margin: 0 !important; }
.mp-card:hover { border-color: var(--mp-ink); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(20, 17, 31, 0.08); }
.mp-card h3, .mp-row h3, .mp-follow__item h3 { font-size: 1.2rem !important; line-height: 1.3; margin: 0 0 8px; font-weight: 680; }
.mp-card h3 a, .mp-row h3 a { color: var(--mp-ink); text-decoration: none; }
.mp-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.mp-card p, .mp-row p { margin: 0; color: var(--mp-muted); font-size: 1rem; }
.mp-card h3 a::before, .mp-row h3 a::before { content: none; }
.mp-rows { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 0 40px; }
.mp-row { padding: 20px 0; border-top: 1px solid var(--mp-rule); margin: 0 !important; }
.mp-row h3 a { text-decoration: underline; text-decoration-color: var(--mp-green); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.mp-bio { gap: clamp(24px, 4vw, 64px) !important; }
.mp-facts { padding-left: 1.1em; color: #33303f; }
.mp-facts li { margin: 6px 0; }
.mp-head { align-items: baseline; margin-bottom: 20px; }
.mp-head p a, .mp-bio a { color: var(--mp-green); font-weight: 650; }
.mp-memos.wp-block-latest-posts { gap: 16px; margin: 0; padding: 0; }
.mp-memos.wp-block-latest-posts li { padding: 22px; background: #fff; border: 1px solid var(--mp-rule); border-radius: 14px; margin: 0; }
.mp-memos .wp-block-latest-posts__post-title { font-weight: 680; font-size: 1.1rem; line-height: 1.35; color: var(--mp-ink); text-decoration: none; display: block; }
.mp-memos .wp-block-latest-posts__post-date { color: var(--mp-muted); font-size: 0.85rem; margin-top: 6px; }
.mp-memos .wp-block-latest-posts__post-excerpt { color: var(--mp-muted); font-size: 0.95rem; margin-top: 10px; }
.mp-quotes { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.mp-quote { margin: 0 !important; padding: 22px 24px !important; border: 0 !important; border-left: 4px solid var(--mp-green) !important; background: var(--mp-tint); border-radius: 0 12px 12px 0; }
.mp-quote p { font-size: 1.05rem; line-height: 1.55; margin: 0 0 12px; }
.mp-quote cite { font-style: normal; font-size: 0.9rem; font-weight: 600; color: var(--mp-muted); }
.mp-follow { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 28px; }
.mp-follow__item { margin: 0 !important; padding-top: 18px; border-top: 2px solid var(--mp-green); }
.mp-follow__item p { color: rgba(255, 255, 255, 0.75); margin: 0; }
.mp-follow__item h3 a { text-decoration: none; }
/* Width: every redesigned band holds its content at 1180px, whatever the
   theme's 740px content size says, so the hero and grids have room. */
.mp-hero > *, .mp-sec > * { max-width: min(1180px, 100%) !important; margin-left: auto !important; margin-right: auto !important; }
.mp-memos.wp-block-latest-posts, .mp-memos.wp-block-latest-posts li { list-style: none !important; }
.mp-memos.wp-block-latest-posts.is-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.mp-memos.wp-block-latest-posts.is-grid li { width: auto !important; }
.mp-press__logo img { height: 22px !important; max-width: 120px; }
.mp-stats li { min-width: 140px; }
/* Posts: one reading column, author box after the article. */
.mp-article { padding-top: clamp(32px, 5vw, 64px); padding-bottom: 32px; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); --mp-ink: var(--wp--preset--color--main, #14111f); --mp-green: var(--wp--preset--color--primary, #087237); --mp-tint: var(--wp--preset--color--tertiary, #f3f8f8); --mp-muted: var(--wp--preset--color--secondary, #636381); --mp-rule: var(--wp--preset--color--border-light, #dadee3); }
.mp-article__terms { font-size: 0.9rem; font-weight: 600; }
.mp-article__terms a { color: var(--mp-green); text-decoration: none; }
.mp-article__title { font-family: var(--wp--preset--font-family--serif, Newsreader, Georgia, serif); font-size: clamp(2rem, 1.4rem + 2.2vw, 3.1rem) !important; line-height: 1.1; letter-spacing: -0.02em; text-wrap: balance; margin-top: 10px !important; }
.mp-article__meta { gap: 6px 14px !important; color: var(--mp-muted); font-size: 0.95rem; margin-top: 14px !important; }
.mp-article__meta > * + *::before { content: " B7"; margin-right: 14px; }
.mp-article__image { margin-top: 28px !important; }
.mp-article__image img { border-radius: 14px; }
.mp-article__body { font-size: 1.125rem; line-height: 1.7; margin-top: 28px !important; }
.mp-article__body > :first-child { margin-top: 0 !important; }
.mp-article__body h2 { margin-top: 2em; }
.mp-article__tags { margin-top: 32px !important; }
.mp-author { margin-top: 40px !important; padding: 22px; gap: 18px !important; border: 1px solid var(--mp-rule); border-radius: 14px; background: var(--mp-tint); }
.mp-author__photo { margin: 0 !important; flex: none; }
.mp-author__text p { margin: 0 0 8px; font-size: 1rem; color: #33303f; }
.mp-author__name { font-weight: 700; color: var(--mp-ink) !important; }
.mp-author__links a { color: var(--mp-green); font-weight: 650; margin-right: 16px; }
/* Money pages and hubs: steps, reading list, FAQ, newsletter line. */
.mp-steps { display: grid !important; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); counter-reset: mpstep; }
.mp-step { margin: 0 !important; padding-top: 16px; border-top: 2px solid var(--mp-ink); counter-increment: mpstep; }
.mp-step h3::before { content: counter(mpstep, decimal-leading-zero); display: block; font-family: monospace; font-size: 0.85rem; color: var(--mp-green); margin-bottom: 6px; }
.mp-step h3 { font-size: 1.15rem !important; margin: 0 0 6px; }
.mp-step p { margin: 0; color: var(--mp-muted); }
.mp-reading { padding-left: 1.1em; columns: 2 320px; column-gap: 40px; }
.mp-reading li { margin: 0 0 12px; break-inside: avoid; }
.mp-reading a { color: var(--mp-ink); text-decoration-color: var(--mp-green); text-decoration-thickness: 2px; text-underline-offset: 4px; font-weight: 550; }
.mp-faq { max-width: 860px; }
.mp-faq__item { border-top: 1px solid var(--mp-rule); padding: 0; margin: 0 !important; }
.mp-faq__item:last-child { border-bottom: 1px solid var(--mp-rule); }
.mp-faq__item summary { cursor: pointer; padding: 18px 0; font-weight: 650; font-size: 1.08rem; list-style: none; display: flex; justify-content: space-between; gap: 20px; }
.mp-faq__item summary::-webkit-details-marker { display: none; }
.mp-faq__item summary::after { content: "+"; color: var(--mp-green); font-weight: 700; }
.mp-faq__item[open] summary::after { content: "2"; }
.mp-faq__item p { margin: 0 0 18px; color: #33303f; max-width: 70ch; }
.mp-sec--dark .mp-btn--primary .wp-block-button__link { border-color: #fff; }
.mp-magnet__h { margin-top: 40px !important; font-size: 1.2rem !important; color: #fff; }
.mp-magnet { color: rgba(255, 255, 255, 0.78); max-width: 62ch; }
.mp-magnet a { color: #fff; font-weight: 650; }
@media (max-width: 781px) {
	.mp-hero__media { order: -1; }
	.mp-portrait img { aspect-ratio: 16 / 10; object-position: 70% 25%; }
	.mp-ctas .wp-block-button { flex: 1 1 100%; }
	.mp-ctas .wp-block-button__link { width: 100%; text-align: center; }
	.mp-press__logo img { height: 18px !important; }
	.mp-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; font-size: 0.85rem; }
	.mp-stats li { min-width: 0; }
	.mp-stats strong { font-size: 1.35rem; }
}
@media (prefers-reduced-motion: reduce) { .mp-card { transition: none; } .mp-card:hover { transform: none; } }

/* ---------- guide hubs (templates/page-hub.html + hive/pillar-list from the hive-pillars mu-plugin) ---------- */
.hub-hero .crumbs a { color: var(--muted); text-decoration: none; }
.hub-hero .crumbs { margin-bottom: 0 !important; }
.hub-byline { margin-top: 26px !important; }
.hub-byline .byline__author a { color: var(--ink); text-decoration: none; }
.hub-content { padding-block: clamp(40px, 6vw, 72px) clamp(56px, 8vw, 96px); }
.hub-content > * + * { margin-block-start: 0; }
.hub-summary { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: baseline; padding-bottom: 28px; margin-bottom: 40px !important; border-bottom: 1px solid var(--line); }
.hub-summary > * { margin: 0 !important; }
.hub-summary .hive-pillar-list.is-summary { font: 600 13px/1.4 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--muted-2); }
.hub-start { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 64px !important; }
.hub-start > * { margin: 0 !important; }
.hub-start__item { position: relative; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; transition: box-shadow .2s, transform .2s; }
.hub-start__item:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.hub-start__item > * { margin: 0 !important; }
.hub-start__item .eyebrow { margin-bottom: 10px !important; }
.hub-start__item h3 { font-size: 20px; line-height: 1.3; }
.hub-start__item h3 a { color: var(--ink); text-decoration: none; }
.hub-start__item h3 a::after { content: ""; position: absolute; inset: 0; }
.hub-body { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 56px; align-items: start; }
.hub-body > * { margin: 0 !important; }
.hub-toc { position: sticky; top: calc(var(--header-h) + 28px + var(--wp-admin--admin-bar--height, 0px)); font: 500 14px/1.4 var(--sans); }
.hub-toc > * { margin: 0 !important; }
.hub-toc .hub-label { margin-bottom: 14px !important; }
.hub-toc ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; counter-reset: toc; }
.hub-toc li { margin: 0; }
.hub-toc a { display: block; padding: 7px 0 7px 14px; border-left: 2px solid var(--line); color: var(--muted); text-decoration: none; }
.hub-toc a:hover { border-color: var(--green); color: var(--ink); }
.hub-main { max-width: 780px; }
.hub-main > * + * { margin-block-start: 0; }
.hub-label { font: 600 12px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2); }
.hub-chapter { padding-top: 8px; margin-bottom: 64px !important; scroll-margin-top: calc(var(--header-h) + 24px); }
.hub-chapter > * { margin: 0; }
.hub-chapter > * + * { margin-top: 18px; }
.hub-chapter h2 { font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem); scroll-margin-top: calc(var(--header-h) + 24px); }
.hub-chapter p, .hub-chapter li { font-size: 18px; line-height: 1.7; }
.hub-chapter .wp-block-list { padding-left: 22px; }
.hub-chapter .wp-block-list li { margin-bottom: 8px; }
.hub-chapter .wp-block-list li::marker { color: var(--green); }
.hub-chapter .hub-label { margin-top: 32px !important; font-size: 12px; line-height: 1; }
.hub-chapter .wp-block-table { margin-top: 26px !important; }
.hub-chapter .wp-block-table table { font-size: 15.5px; width: 100%; }
.hub-chapter .wp-block-table th { text-align: left; background: var(--lilac); font: 600 13px/1.3 var(--sans); letter-spacing: .03em; color: var(--ink); }
.hub-chapter .wp-block-table :where(th, td) { border: 1px solid var(--line) !important; padding: 12px 14px; vertical-align: top; }
.hub-chapter .wp-block-table thead { border-bottom: 0; }
.hub-chapter .wp-block-table td:first-child { font-weight: 600; color: var(--ink); }
.hub-defs { padding: 26px 28px; border-radius: 18px; background: var(--mint); border: 1px solid #dce9e8; }
.hub-defs dl, .hub-defs .wp-block-list { margin: 0; }
.hub-defs p { font-size: 16.5px !important; }
.hub-defs strong { color: var(--ink); }
.hub-related { margin-top: 24px !important; }

.hive-pillar-list__items { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--line); }
.hive-pillar-item { display: grid; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--line); margin: 0 !important; }
.hive-pillar-item__title { font: 500 19px/1.35 var(--serif); color: var(--ink); text-decoration: none; letter-spacing: -.005em; }
.hive-pillar-item__title:hover { color: var(--green); }
.hive-pillar-item__excerpt { font-size: 15.5px; line-height: 1.55; color: var(--muted); }
.hive-pillar-item__meta { font: 500 13px/1.3 var(--sans); color: var(--muted-2); }
.hive-pillar-list__cap { font-size: 14px; color: var(--muted); }
.hive-pillar-list__short { margin-top: 14px; padding: 14px 18px; border-radius: 12px; background: var(--lilac); border: 1px solid var(--line); }
.hive-pillar-list__short summary { cursor: pointer; font: 600 14.5px/1.4 var(--sans); color: var(--ink); }
.hive-pillar-list__short ul { margin: 12px 0 4px; padding-left: 18px; display: grid; gap: 8px; }
.hive-pillar-list__short li { font-size: 15px !important; line-height: 1.5 !important; margin: 0 !important; }
.hive-pillar-list__short a { color: var(--text); text-decoration-color: var(--line-2); }
.hive-pillar-chapter + .hive-pillar-chapter { margin-top: 40px; }
.hive-pillar-chapter__title { font: 600 18px/1.3 var(--sans); color: var(--ink); margin: 0; letter-spacing: -.005em; }
.hive-pillar-list.is-missing { padding: 14px; border: 1px dashed #c33; color: #a22; }
@media (max-width: 1080px) {
	.hub-body { grid-template-columns: 1fr; }
	.hub-toc { position: static; padding: 20px; border: 1px solid var(--line); border-radius: 16px; }
	.hub-start { grid-template-columns: 1fr; }
}

/* ---------- about page ---------- */
.about-tiles .logo-tile { padding: 24px; border-radius: 16px; border: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; gap: 10px; position: relative; transition: box-shadow .2s, transform .2s; }
.about-tiles .logo-tile:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.about-tiles .logo-tile > * { margin: 0 !important; }
.logo-tile__mono { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font: 600 17px/1 var(--serif); color: #fff; background: var(--ink); }
.about-tiles .logo-tile h3 { font: 600 17px/1.3 var(--sans); }
.about-tiles .logo-tile h3 a { color: var(--ink); text-decoration: none; }
.about-tiles .logo-tile h3 a::after { content: ""; position: absolute; inset: 0; }
.about-tiles .logo-tile p:not(.logo-tile__mono) { color: var(--muted); font-size: 14.5px; line-height: 1.5; }
.about-background { max-width: 860px; }
.about-background .is-style-checks li { font-size: 18px; }
.about-links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.about-links li { margin: 0; }
.about-links a { display: inline-block; padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; font: 500 14.5px/1 var(--sans); }
.about-links a:hover { border-color: var(--ink); }
