/*
Theme Name: MBS V1 Mirror
Theme URI: http://localhost:8881/
Author: Morton Bookkeeping Services
Description: Local V1 mirror theme for Morton Bookkeeping Services, scaffolded by Studio Code. Private local reproduction of the existing public Home page. Benchmark reference only — not for publication.
Version: 0.1.2
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mbs-v1-mirror
*/

/* ===== 0. RESET / BASE ===== */
:where(.wp-site-blocks) > * { margin-block-start: 0; margin-block-end: 0; }
body { -webkit-font-smoothing: antialiased; }
/* Measured from the validated 1440 live capture:
   section container 1160px max (52px min side padding, matching the verified 1040 render);
   inner narrow column 65% of the container (= 608px at 1040, = 754px at 1440). */
:root {
	--mbs-container-max: 1116px;
	--mbs-narrow-pct: 65%;
}
.mbs-narrow { width: var(--mbs-narrow-pct); margin-left: auto; margin-right: auto; }

/* ===== 1. ANNOUNCEMENT BAR ===== */
.mbs-announce { background: #163E64; padding: 4px 24px; }
.mbs-announce p { color: #fff; font-size: 16px; line-height: 24px; text-align: center; margin: 0; }

/* ===== 2. HEADER BAND (logo animation area) ===== */
.mbs-header-band {
	position: relative;
	z-index: 0;
	isolation: isolate;
	background: #fff;
	overflow: hidden;
	height: 564px;
}
.mbs-header-band .mbs-video {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: #fff;
	overflow: hidden;
	contain: paint;
	pointer-events: none;
}
.mbs-header-band .mbs-video iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 259%;
	height: 100%;
	border: 0;
	display: block;
}
.mbs-header-band .mbs-video-fallback {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
}
.mbs-header-nav {
	position: absolute;
	top: 16px;
	left: 0;
	right: 0;
	z-index: 2;
}
/* Verified live computed styles: 12px / ls 2.004px / lh 24px, items separated
   by a 32px gap with no padding on the first item. */
.mbs-header-nav .wp-block-navigation {
	justify-content: center;
	/* Live computed gap is 32px at a 1040 inspection viewport, but at the validated
	   1440 capture the eight-item span measures 949px. With the live 12px/2.004px
	   type the labels total 641px, so 7 gaps x 44px = 308px reaches 949px. */
	gap: 44px;
}
.mbs-header-nav .wp-block-navigation a.wp-block-navigation-item__content {
	color: #163E64;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 2.004px;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0;
	line-height: 24px;
}
.mbs-header-nav .wp-block-navigation-item__content:hover { text-decoration: underline; }
/* Current-page marker: the live source renders the active item as “– HOME”.
   Core does not emit .current-menu-item on custom-URL navigation links, so the
   active item is matched CSS-only by href within the home body class. */
.mbs-header-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::before,
body.home .mbs-header-nav .wp-block-navigation-item__content[href="/"]::before,
body.page-id-15 .mbs-header-nav .wp-block-navigation-item__content[href*="taxes"]::before,
body.page-id-18 .mbs-header-nav .wp-block-navigation-item__content[href="/pricing"]::before,
body.page-id-21 .mbs-header-nav .wp-block-navigation-item__content[href="/about-us"]::before,
body.page-id-27 .mbs-header-nav .wp-block-navigation-item__content[href="/faq"]::before,
body.page-id-30 .mbs-header-nav .wp-block-navigation-item__content[href="/contact"]::before,
body.page-id-3 .mbs-header-nav .wp-block-navigation-item__content[href="/privacy"]::before,
body.page-id-46 .mbs-header-nav .wp-block-navigation-item__content[href="/blog"]::before,
body.single-post .mbs-header-nav .wp-block-navigation-item__content[href="/blog"]::before {
	content: "\2013\00a0";
}

/* ===== 3. SCROLLING MARQUEE ===== */
/* +6px here lifts the hero start from y=671 to the live y=677 without altering
   the animation band (and therefore without rescaling the logo). */
.mbs-marquee { position: relative; z-index: 1; overflow: hidden; background: #fff; padding: 6px 0 0; }
.mbs-marquee-track {
	display: flex;
	width: max-content;
	animation: mbsMarquee 55s linear infinite;
}
.mbs-marquee-track h1 {
	white-space: nowrap;
	font-size: 30px;
	line-height: 75px;
	letter-spacing: 2.73px;
	text-transform: uppercase;
	color: #163E64;
	margin: 0;
	padding-right: 0;
}
@keyframes mbsMarquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* ===== 4. HERO BANNER ===== */
.mbs-hero {
	position: relative;
	z-index: 1;
	background-image: linear-gradient(rgba(0,0,0,0.24), rgba(0,0,0,0.24)), var(--mbs-hero-img);
	background-size: cover;
	background-position: center;
	min-height: 340px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mbs-hero .mbs-hero-inner {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	text-align: center;
	padding: 0;
}
.mbs-hero h1,
.mbs-hero h2 {
	color: #fff;
	font-size: 44px;
	line-height: 49.5px;
	letter-spacing: 4px;
	text-transform: uppercase;
	margin: 0;
	padding-bottom: 25px;
}

/* ===== 5. BUTTONS (verified: 1px border, 56px min-height, ls 2px, 14/700) ===== */
.mbs-btn .wp-block-button__link,
.mbs-btn a.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 8px 16px;
	border: 1px solid #163E64;
	border-radius: 0;
	background: transparent;
	color: #163E64;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
.mbs-btn .wp-block-button__link::before { content: "\2014\00a0"; }
.mbs-btn .wp-block-button__link::after  { content: "\00a0\2014"; }
.mbs-btn .wp-block-button__link:hover,
.mbs-btn .wp-block-button__link:focus-visible { background: #163E64; color: #fff; }
.mbs-btn.mbs-btn-light a.wp-block-button__link {
	border-color: #fff;
	color: #fff;
	width: 247px;
}
.mbs-btn.mbs-btn-light a.wp-block-button__link:hover { background: #fff; color: #163E64; }
.mbs-btn-wide { padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 40px; }
.mbs-btn-wide .wp-block-buttons { justify-content: center; width: var(--mbs-narrow-pct); margin: 0 auto; }
.mbs-btn-wide .wp-block-button,
.mbs-btn-wide .wp-block-button__link { width: 100%; max-width: none; }

/* ===== 6. WE'RE ACCURATE AND RESPONSIVE ===== */
.mbs-section { padding: 48px max(52px, calc((100% - var(--mbs-container-max)) / 2)); }
/* Live Accurate section is 423px tall with its heading 8px lower in the block. */
.mbs-accurate { padding-top: 56px; }
.mbs-section > .wp-block-group__inner-container,
.mbs-section .mbs-container { max-width: var(--mbs-container-max); margin: 0 auto; }
/* Major-heading tier — matched to the live capture (What We Do 232x23,
   How It Works 271x23, Commonly Searched Questions 642x23). */
.mbs-section-title {
	text-align: center;
	margin: 0 0 40px;
	text-transform: uppercase;
	font-size: 32px;
	letter-spacing: 2.9px;
}
/* Lower-heading tier — the live source uses a distinctly smaller heading for
   Contact Us (157x16), Connect With Us (234x16) and New Service Areas (263x16). */
.mbs-contact > .mbs-section-title,
.mbs-social > .mbs-section-title,
.mbs-areas > .mbs-section-title {
	font-size: 22px;
	letter-spacing: 2px;
}
/* Live core-pixel colours: Connect With Us #5E5E5E, New Service Areas rgb(89,89,89). */
.mbs-social > .mbs-section-title { color: #5E5E5E; }
.mbs-areas > .mbs-section-title { color: rgb(89, 89, 89); }
.mbs-accurate-grid { display: flex; align-items: flex-start; gap: 48px; }
.mbs-accurate-grid .mbs-accurate-text { flex: 1 1 auto; }
.mbs-accurate-grid .mbs-accurate-text p { margin: 0; font-size: 16px; line-height: 24px; color: #5E5E5E; }
.mbs-accurate-grid .mbs-accurate-media { flex: 0 0 31.5%; }
.mbs-img-placeholder {
	background: #E9E9E9;
	border: 1px dashed #C9C9C9;
	aspect-ratio: 280 / 187;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mbs-img-placeholder p {
	margin: 0; font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
	color: #8A8A8A; text-align: center; padding: 8px;
}

/* ===== 7. REVIEWS — STRUCTURAL PLACEHOLDER ONLY (no content) ===== */
.mbs-reviews {
	background-image: linear-gradient(rgba(0,0,0,0.24), rgba(0,0,0,0.24)), var(--mbs-reviews-img);
	background-size: cover;
	background-position: center;
	padding: 54px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 130px;
}
.mbs-reviews .mbs-section-title { color: #fff; margin-bottom: 53px; }
.mbs-reviews-stage { position: relative; max-width: 966px; margin: 0 auto; }
.mbs-reviews-cards { display: flex; gap: 48px; justify-content: center; }
.mbs-review-card {
	flex: 1 1 0;
	max-width: none;
	background: #fff;
	min-height: 366px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.mbs-review-card p {
	margin: 0; text-align: center; font-size: 11px; letter-spacing: 1px;
	text-transform: uppercase; color: #9A9A9A;
}
.mbs-reviews-arrow {
	position: absolute; top: 50%; transform: translateY(calc(-50% - 16px));
	color: #fff; font-size: 42px; line-height: 1; opacity: .85; user-select: none;
}
.mbs-reviews-arrow.is-prev { left: -72px; }
.mbs-reviews-arrow.is-next { right: -72px; }
.mbs-reviews-dots { display: flex; justify-content: center; margin-top: 48px; min-height: 12px; }
.mbs-reviews-dots span {
	width: 8px; height: 8px; border-radius: 50%;
	background: rgba(255,255,255,.55); display: block;
}
.mbs-reviews-dots span:first-child { background: #fff; }
/* Seven pagination dots verified in the live 1440 capture: one active white dot
   followed by six inactive grey dots. Non-functional — no carousel behaviour. */
.mbs-reviews-dots::before {
	content: "";
	display: block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #ffffff;
	transform: translateX(-84px);
	box-shadow:
		28px 0 0 0 rgba(255, 255, 255, 0.55),
		56px 0 0 0 rgba(255, 255, 255, 0.55),
		84px 0 0 0 rgba(255, 255, 255, 0.55),
		112px 0 0 0 rgba(255, 255, 255, 0.55),
		140px 0 0 0 rgba(255, 255, 255, 0.55),
		168px 0 0 0 rgba(255, 255, 255, 0.55);
}

/* ===== 8. WHAT WE DO ===== */
/* Live vertical distribution relative to the first CTA bottom: heading 122,
   services 199 / 395 / 567 / 787 / 1007, second CTA 1304. */
.mbs-whatwedo { padding-top: 72px; padding-bottom: 68px; }
.mbs-whatwedo .mbs-narrow > h3 { margin: 0 0 26px; }
.mbs-whatwedo .mbs-narrow > p {
	margin: 0 0 26px;
	font-size: 16px;
	line-height: 24px;
	color: #5E5E5E;
}
.mbs-whatwedo .mbs-narrow > p:last-child { margin-bottom: 0; }

/* ===== 9. HOW IT WORKS ===== */
/* Live: heading 122 and third CTA 667, both relative to the second CTA bottom. */
.mbs-howitworks { padding-top: 72px; padding-bottom: 93px; }
.mbs-howitworks-grid { display: flex; gap: 48px; align-items: flex-start; }
.mbs-howitworks-grid .mbs-step { flex: 1 1 0; text-align: center; }
.mbs-howitworks-grid .mbs-step figure { margin: 0 0 28px; }
.mbs-howitworks-grid .mbs-step img {
	display: block;
	margin: 0 auto;
	width: 100%;
	max-width: 339px;
	height: auto;
	aspect-ratio: 280 / 140;
	object-fit: cover;
	object-position: center;
}
.mbs-howitworks-grid .mbs-step h4 { margin: 0 0 20px; }
.mbs-howitworks-grid .mbs-step p { margin: 0; font-size: 16px; line-height: 24px; color: #5E5E5E; }

/* ===== 10. FAQ (native core/details) ===== */
/* Live, relative to the third CTA bottom: heading 122, first row 265,
   last row 954, Contact Us heading 1119. */
.mbs-faq { padding-top: 72px; padding-bottom: 64px; }
.mbs-faq-intro { text-align: center; font-size: 16px; line-height: 24px; color: #5E5E5E; margin: 0 0 15px; }
.mbs-faq .wp-block-details { border-bottom: 1px solid #DDDDDD; padding: 24px 0; margin: 0; }
.mbs-faq .wp-block-details summary {
	list-style: none; cursor: pointer;
	display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
	font-size: 22px; line-height: 27.5px; color: #163E64;
}
.mbs-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.mbs-faq .wp-block-details summary::after {
	content: "\203A"; transform: rotate(90deg); font-size: 20px; color: #163E64; line-height: 1;
}
.mbs-faq .wp-block-details[open] summary::after { transform: rotate(-90deg); }
.mbs-faq .wp-block-details p { font-size: 16px; line-height: 24px; color: #5E5E5E; margin: 12px 0 0; }

/* ===== 11. CONTACT (visual, non-submitting) ===== */
.mbs-form-title { text-align: center; margin: 0 0 32px; }
.mbs-field {
	border: 1px solid #DDDDDD; background: #fff; padding: 11px 12px; margin-bottom: 24px;
}
.mbs-field p { margin: 0; font-size: 16px; line-height: 24px; color: #9A9A9A; }
.mbs-field.is-textarea { min-height: 181px; }
.mbs-form-actions { display: flex; justify-content: center; margin-top: 24px; }
.mbs-form-actions .wp-block-button__link { min-width: 133px; }
.mbs-recaptcha-note { text-align: center; font-size: 12px; line-height: 18px; color: #8A8A8A; margin: 28px 0 0; }
.mbs-recaptcha-note a { color: #8A8A8A; text-decoration: underline; }
.mbs-contact-info { text-align: center; margin-top: 56px; }
.mbs-contact-info h3 { margin: 0 0 16px; }
.mbs-contact-info p { margin: 0 0 8px; font-size: 16px; line-height: 24px; color: #5E5E5E; }

/* ===== 12. SOCIAL ===== */
/* Live gap from the contact email link to this heading is 147px (was 107). */
.mbs-social { padding-top: 88px; }
/* Live: 40px icon boxes on 96px centres. Core sizes the box at 1.5em, so a
   26.67px font-size yields the 40px box; gap = 96 - 40 = 56px. */
.mbs-social .wp-block-social-links { justify-content: center; gap: 56px; font-size: 26.67px; }

/* ===== 13. NEW SERVICE AREAS ===== */
/* Live: 130px gap above from the social icons, 86px below to the footer. */
.mbs-areas { padding-top: 76px; padding-bottom: 74px; }
/* The live service-area lists sit on the wider outer section geometry, not the
   726px narrow column: column centres measured at x=428 and x=1007 of 1440. */
.mbs-areas-grid {
	display: flex;
	gap: 52px;
	justify-content: space-between;
	width: 100%;
	max-width: var(--mbs-container-max);
	margin: 0 auto;
}
.mbs-areas-grid .wp-block-list {
	list-style: none; margin: 0; padding: 0; text-align: center; flex: 1 1 0;
}
.mbs-areas-grid .wp-block-list li { margin: 0; font-size: 16px; line-height: 24px; }
.mbs-areas-grid a { color: #163E64; text-decoration: underline; }

/* ===== 14. FOOTER ===== */
.mbs-footer {
	background: #333333;
	/* The live footer top row uses a wider geometry than the 1116px main container:
	   copyright core span starts at x=113 of 1440, i.e. a 1214px row. */
	padding: 68px max(52px, calc((100% - 1214px) / 2)) 62px;
}
.mbs-footer .mbs-footer-top { max-width: 1214px; margin: 0 auto; }
.mbs-footer .mbs-copyright {
	margin: 0;
	color: rgb(169, 169, 169);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 1.85px;
	text-transform: uppercase;
}
/* Live absolutes inside the 216px footer: copyright glyph top 71, nav glyph top 139.
   68 top padding + 18 copyright + 48 margin + 20 nav + 62 bottom = 216. */
.mbs-footer .wp-block-navigation { justify-content: center; gap: 0; margin-top: 48px; }
/* Raised specificity: core ships `.wp-block-navigation .wp-block-navigation-item__content
   { color: inherit }` at equal weight and can win on load order. */
.mbs-footer .wp-block-navigation a.wp-block-navigation-item__content {
	color: rgb(169, 169, 169); font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase;
	text-decoration: none; padding: 0 12px; line-height: 20px;
}
.mbs-footer .wp-block-navigation a.wp-block-navigation-item__content:hover { text-decoration: underline; }

/* =========================================================================
   16. INTERIOR SHELL + BOOKKEEPING, TAXES & MORE PAGE
   Scoped to the interior header modifier and .mbs-btm-* only.
   No approved Home selector is touched.
   ========================================================================= */

/* Interior header: reuses the approved announcement bar and nav typography,
   but sits in normal flow (no Home video band, no marquee). */
.mbs-header-nav--interior {
	position: static;
	padding: 16px 0;
	background: #fff;
}

/* Page title — live: h1 38px / lh 53.2 / ls 3.458 / navy / centred / mb 40. */
.mbs-btm-title {
	text-align: center;
	font-size: 38px;
	line-height: 53.2px;
	letter-spacing: 3.458px;
	color: #163E64;
	margin: 0 0 40px;
}

/* Section wrapper — same container geometry as the approved shell. */
.mbs-btm-section {
	padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0;
}
.mbs-btm-section:last-of-type { padding-bottom: 0; }

/* Feature rows — live: image 280px, copy column 608px, 48px gutter. */
.mbs-btm-row {
	display: flex;
	align-items: flex-start;
	gap: 48px;
	padding-bottom: 56px;
}
.mbs-btm-row .mbs-btm-media { flex: 0 0 280px; }
.mbs-btm-row .mbs-btm-copy { flex: 1 1 auto; }
.mbs-btm-row.is-media-right { flex-direction: row-reverse; }

/* Live: h4 22px / 700 / lh 27.5 / navy / left / mb 24; body 16/24 #5E5E5E. */
.mbs-btm-copy h4 {
	margin: 0 0 24px;
	font-size: 22px;
	font-weight: 700;
	line-height: 27.5px;
	letter-spacing: normal;
	color: #163E64;
	text-align: left;
}
.mbs-btm-copy p {
	margin: 0;
	font-size: 16px;
	line-height: 24px;
	color: #5E5E5E;
	text-align: left;
}
/* Source body copy carries bold emphasis and two underlined inline links. */
.mbs-btm-copy p strong { font-weight: 700; color: #5E5E5E; }
.mbs-btm-copy p a { color: #163E64; text-decoration: underline; }
.mbs-btm-copy p a strong { color: #163E64; }

/* Getty-licensed source images are withheld; neutral placeholders hold the
   exact source crop ratio measured at 280px wide. */
.mbs-btm-ph {
	width: 100%;
	background: #E9E9E9;
	border: 1px dashed #C9C9C9;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mbs-btm-ph p {
	margin: 0;
	padding: 8px;
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #8A8A8A;
	text-align: center;
}
.mbs-btm-ph.is-r1 { aspect-ratio: 280 / 210.5; }
.mbs-btm-ph.is-r2,
.mbs-btm-ph.is-r3,
.mbs-btm-ph.is-r4 { aspect-ratio: 280 / 186.7; }
.mbs-btm-ph.is-r5 { aspect-ratio: 280 / 230.1; }

/* CTA strip — reuses the approved outlined button treatment. */
/* Live CTA region between two feature rows measures 280px: 112 above the
   button, 56 button, 112 below. Row padding supplies 56 of each side. */
.mbs-btm-cta { padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 56px; }
.mbs-btm-cta .wp-block-buttons { justify-content: center; width: var(--mbs-narrow-pct); margin: 0 auto; }
.mbs-btm-cta .wp-block-button,
.mbs-btm-cta .wp-block-button__link { width: 100%; max-width: none; }

/* Connect With Us — approved CP1 treatment reused verbatim. */
.mbs-btm-social { padding: 32px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 64px; }
.mbs-btm-social .mbs-section-title {
	text-align: center;
	text-transform: uppercase;
	font-size: 22px;
	letter-spacing: 2px;
	color: #5E5E5E;
	margin: 0 0 40px;
}
.mbs-btm-social .wp-block-social-links { justify-content: center; gap: 56px; font-size: 26.67px; }

/* =========================================================================
   17. PRICING PAGE (page-scoped)
   Card content and visual treatment reproduced from the owner-validated
   Pricing reference pack; surrounding geometry from live computed styles.
   ========================================================================= */

.mbs-pricing-title {
	text-align: center;
	font-size: 38px;
	line-height: 53.2px;
	letter-spacing: 3.458px;
	color: #163E64;
	margin: 0 0 40px;
}
.mbs-pricing-section {
	padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0;
}

/* Intro block sits in the approved 65% narrow column, left aligned. */
.mbs-pricing-intro { width: var(--mbs-narrow-pct); margin: 0 auto; }
.mbs-pricing-intro h2 {
	margin: 0 0 24px;
	font-size: 22px;
	font-weight: 700;
	line-height: 27.5px;
	letter-spacing: normal;
	color: #163E64;
	text-align: left;
}
.mbs-pricing-intro p {
	margin: 0;
	font-size: 16px;
	line-height: 24px;
	color: #5E5E5E;
	text-align: left;
}
.mbs-pricing-intro p em strong,
.mbs-pricing-intro p strong em { font-weight: 700; font-style: italic; }

/* Monthly grid: reference row measures 1.206x the CTA column width. */
.mbs-pricing-grid {
	display: flex;
	align-items: stretch;
	gap: 18px;
	width: 78.4%;
	margin: 40px auto 0;
}
.mbs-pricing-card {
	flex: 1 1 0;
	min-width: 0;
	background: #FFFFFF;
	border-radius: 6px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.13);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
	z-index: 1;
}
.mbs-pricing-card.is-featured {
	margin-top: -14px;
	margin-bottom: -14px;
	z-index: 2;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
}
.mbs-pricing-card-head {
	background: #4C7CA8;
	padding: 14px 10px;
}
.mbs-pricing-card.is-featured .mbs-pricing-card-head { background: #2E5A82; }
.mbs-pricing-card-head h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: normal;
	color: #FFFFFF;
	text-align: center;
}
.mbs-pricing-card-body {
	padding: 14px 12px 20px;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.mbs-pricing-price {
	margin: 0 0 14px;
	text-align: center;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	color: #4C7CA8;
}
.mbs-pricing-price .mbs-qual { font-size: 13px; font-weight: 400; }
.mbs-pricing-price::first-letter { font-size: 0.6em; font-weight: 600; }

/* Feature list: reference shows a blue check on every item except the two
   “Multiple … - Ok” lines, which render without one. */
.mbs-pricing-features {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
}
.mbs-pricing-features li {
	position: relative;
	margin: 0 0 9px;
	padding: 0 0 0 18px;
	font-size: 12px;
	line-height: 16px;
	color: #5B7C9C;
	text-align: center;
}
.mbs-pricing-features li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: 1px;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: #4C7CA8;
	color: #FFFFFF;
	font-size: 9px;
	line-height: 13px;
	text-align: center;
}
.mbs-pricing-features li.is-nocheck::before { content: none; }
.mbs-pricing-features li strong { font-weight: 700; color: #4C7CA8; }

.mbs-pricing-card-action { margin-top: auto; }
.mbs-pricing-card-action .wp-block-buttons { justify-content: center; }
.mbs-pricing-card-action .wp-block-button__link {
	display: inline-block;
	background: transparent;
	border: 1px solid #4C7CA8;
	border-radius: 4px;
	color: #4C7CA8;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: normal;
	text-transform: none;
	padding: 8px 18px;
	min-height: 0;
	cursor: default;
}
.mbs-pricing-card.is-featured .mbs-pricing-card-action .wp-block-button__link {
	background: #163E64;
	border-color: #163E64;
	color: #FFFFFF;
}

/* Additional Services */
.mbs-additional-services { padding-top: 64px; }
.mbs-additional-title {
	text-align: center;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: normal;
	color: #163E64;
	margin: 0 0 40px;
}
.mbs-additional-grid {
	display: flex;
	align-items: stretch;
	gap: 18px;
	width: 60.6%;
	margin: 0 auto;
}
.mbs-additional-card {
	flex: 1 1 0;
	min-width: 0;
	background: #FFFFFF;
	border-radius: 6px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.13);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.mbs-additional-card .mbs-pricing-card-head { background: #5589C6; }
.mbs-additional-card .mbs-pricing-card-body { padding: 16px 14px 20px; }
.mbs-additional-price {
	margin: 0 0 12px;
	text-align: center;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	color: #5589C6;
}
.mbs-additional-price .mbs-qual { font-size: 13px; font-weight: 400; }
.mbs-additional-price .mbs-range { font-size: 17px; font-weight: 700; }
.mbs-additional-price::first-letter { font-size: 0.6em; font-weight: 600; }
.mbs-additional-copy {
	margin: 0 0 18px;
	text-align: center;
	font-size: 12px;
	line-height: 17px;
	font-style: italic;
	color: #5B7C9C;
}
.mbs-additional-copy strong { font-weight: 700; font-style: italic; }
.mbs-additional-card .mbs-pricing-card-action .wp-block-button__link {
	border-color: #5589C6;
	color: #5589C6;
}

/* Full-width Schedule A Call strips — approved outlined treatment reused. */
.mbs-pricing-cta { padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0; }
.mbs-pricing-cta .wp-block-buttons { justify-content: center; width: var(--mbs-narrow-pct); margin: 0 auto; }
.mbs-pricing-cta .wp-block-button,
.mbs-pricing-cta .wp-block-button__link { width: 100%; max-width: none; }

/* Connect With Us — approved CP2 treatment reused. */
.mbs-pricing-social { padding: 64px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 64px; }
.mbs-pricing-social .mbs-section-title {
	text-align: center;
	text-transform: uppercase;
	font-size: 22px;
	letter-spacing: 2px;
	color: #5E5E5E;
	margin: 0 0 40px;
}
.mbs-pricing-social .wp-block-social-links { justify-content: center; gap: 56px; font-size: 26.67px; }

/* =========================================================================
   18. ABOUT US PAGE (page-scoped)
   Scoped to .mbs-about-* only. No approved Home, Pricing, or BTM selector
   is touched.
   ========================================================================= */

.mbs-about-title-section {
	padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0;
}
.mbs-about-title {
	text-align: center;
	text-transform: uppercase;
	font-size: 38px;
	line-height: 53.2px;
	letter-spacing: 3.458px;
	color: #163E64;
	margin: 0;
}

/* Wide scenic hero image — Getty asset 2162383464 withheld; neutral
   placeholder holds the exact source crop ratio (rs=w:1240,h:620 = 2:1). */
.mbs-about-hero {
	padding: 40px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0;
}
.mbs-about-hero-ph {
	width: 100%;
	aspect-ratio: 1240 / 620;
	background: #E9E9E9;
	border: 1px dashed #C9C9C9;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mbs-about-hero-ph p {
	margin: 0;
	padding: 8px;
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #8A8A8A;
	text-align: center;
}

/* Generic About-page section wrapper — same container geometry as the
   approved shell, reused across Our Story / Meet the Team / Connect. */
.mbs-about-section {
	padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0;
}

/* Section titles (Our Story / Meet the Team) — live: 30px / lh 42 / ls 2.73 /
   navy / centred / mb 40. */
.mbs-about-section-title {
	text-align: center;
	text-transform: uppercase;
	font-size: 30px;
	line-height: 42px;
	letter-spacing: 2.73px;
	color: #163E64;
	margin: 0 0 40px;
}

.mbs-about-story p {
	margin: 0 0 24px;
	font-size: 16px;
	line-height: 24px;
	color: #5E5E5E;
	text-align: center;
}
.mbs-about-story p:last-child { margin-bottom: 0; }
.mbs-about-story p strong { font-weight: 700; }

/* CTA strips — reuse the approved outlined button treatment. */
.mbs-about-cta { padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 56px; }
.mbs-about-cta .wp-block-buttons { justify-content: center; width: var(--mbs-narrow-pct); margin: 0 auto; }
.mbs-about-cta .wp-block-button,
.mbs-about-cta .wp-block-button__link { width: 100%; max-width: none; }

/* Team rows — live: photo column 444px, copy column 444px, 48px gutter,
   at a 936px container (1040 viewport); alternates media side per row. */
.mbs-about-team-row {
	display: flex;
	align-items: center;
	gap: 48px;
	padding-bottom: 56px;
}
.mbs-about-team-row:last-of-type { padding-bottom: 0; }
.mbs-about-team-row .mbs-about-team-media { flex: 0 0 47.44%; }
.mbs-about-team-row .mbs-about-team-copy { flex: 1 1 auto; }
.mbs-about-team-row.is-media-right { flex-direction: row-reverse; }

.mbs-about-team-copy h4 {
	margin: 0 0 24px;
	font-size: 30px;
	font-weight: 400;
	line-height: 37.5px;
	letter-spacing: normal;
	color: #163E64;
	text-align: center;
}
.mbs-about-team-copy p {
	margin: 0;
	font-size: 16px;
	line-height: 24px;
	color: #5E5E5E;
	text-align: center;
}

/* Personal team photos withheld (same neutral-placeholder convention as the
   Getty asset); live crop ratio measured at 444 / 222 = 2:1. */
.mbs-about-team-ph {
	width: 100%;
	aspect-ratio: 2 / 1;
	background: #E9E9E9;
	border: 1px dashed #C9C9C9;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mbs-about-team-ph p {
	margin: 0;
	padding: 8px;
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #8A8A8A;
	text-align: center;
}

/* Team photos — locally imported first-party assets (blob-6422fb3.png /
   blob-b8e4482.png), cropped via object-fit:cover to reproduce the live
   source's centred 2:1 crop from each portrait original (verified: the
   source crop window is vertically centred on both originals, which is
   exactly what object-fit:cover with default centred position produces). */
.mbs-about-team-photo img {
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Connect With Us — approved treatment reused verbatim on this page. */
.mbs-about-social { padding: 32px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 64px; }
.mbs-about-social-title {
	text-align: center;
	text-transform: uppercase;
	font-size: 22px;
	letter-spacing: 2px;
	color: #5E5E5E;
	margin: 0 0 40px;
}
.mbs-about-social .wp-block-social-links { justify-content: center; gap: 56px; font-size: 26.67px; }

/* ===== 19. FAQ PAGE (page-scoped) =====
   Source: /faq. Reuses the Home page's native core/details accordion
   convention (see .mbs-faq rules above) under new page-scoped selectors
   since .mbs-faq belongs to Home and must not be edited. */
.mbs-faqpage { padding-top: 72px; padding-bottom: 64px; }
.mbs-faqpage-title {
	text-align: center;
	text-transform: uppercase;
	color: #163E64;
	font-size: 38px;
	letter-spacing: 3.458px;
	margin: 0 0 32px;
}
.mbs-faqpage-intro { text-align: center; font-size: 16px; line-height: 24px; color: #5E5E5E; margin: 0 0 15px; }
.mbs-faqpage .wp-block-details { border-bottom: 1px solid #DDDDDD; padding: 24px 0; margin: 0; }
.mbs-faqpage .wp-block-details summary {
	list-style: none; cursor: pointer;
	display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
	font-size: 16px; line-height: 24px; color: #163E64;
}
.mbs-faqpage .wp-block-details summary::-webkit-details-marker { display: none; }
.mbs-faqpage .wp-block-details summary::after {
	content: "\203A"; transform: rotate(90deg); font-size: 18px; color: #163E64; line-height: 1; flex-shrink: 0;
}
.mbs-faqpage .wp-block-details[open] summary::after { transform: rotate(-90deg); }
.mbs-faqpage .wp-block-details p { font-size: 16px; line-height: 24px; color: #5E5E5E; margin: 12px 0 0; }

/* ===== 20. CONTACT US PAGE (page-scoped) =====
   Source: /contact. Reuses the established .mbs-field / .mbs-btn /
   .mbs-recaptcha-note form treatment verbatim (those selectors are global,
   not Home-scoped) since the live source's field geometry, textarea height,
   and button size match that pattern exactly. */
.mbs-contactpage { padding-top: 72px; padding-bottom: 64px; }
.mbs-contactpage-title {
	text-align: center;
	text-transform: uppercase;
	color: #163E64;
	font-size: 38px;
	letter-spacing: 3.458px;
	margin: 0 0 32px;
}
.mbs-contactpage-question {
	text-align: center;
	font-size: 14px;
	line-height: 17.5px;
	font-weight: 700;
	color: #1B1B1B;
	margin: 0 0 24px;
}
.mbs-contactpage-info { text-align: center; margin-top: 56px; }
.mbs-contactpage-info p { margin: 0; font-size: 16px; line-height: 24px; color: #5E5E5E; }
/* Live source measures a 72px gap between the standalone lead sentence and
   the three-line location block below it. */
.mbs-contactpage-info p:first-child { margin-bottom: 72px; }

/* ===== 21. PRIVACY POLICY PAGE (page-scoped) ===== */
.mbs-privacypage { padding: 72px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 64px; }
.mbs-privacypage-title {
	text-align: center;
	text-transform: uppercase;
	color: #163E64;
	font-size: 38px;
	letter-spacing: 3.458px;
	margin: 0 0 40px;
}
.mbs-privacypage-date {
	text-align: center;
	color: #163E64;
	font-size: 38px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	margin: 0 0 40px;
}
.mbs-privacypage p { font-size: 16px; line-height: 24px; color: #5E5E5E; margin: 0; }
/* Live source runs sections 1-11 as one continuous flow with no inter-paragraph
   gap; the single blank-line gap in the source sits only between the intro
   and "1. Our Commitment to Privacy". Scoped through body.page-id-3 so this
   beats the .mbs-privacypage p { margin: 0; } rule above on specificity
   instead of relying on source order. */
body.page-id-3 .mbs-privacypage-intro-end { margin-bottom: 24px; }
.mbs-privacypage-email a,
.mbs-privacypage p a { color: #5E5E5E; text-decoration: underline; }

/* ===== 22. BLOG INDEX PAGE (page-scoped) ===== */
.page-id-46 .mbs-blogindex-title {
	text-align: center;
	color: #163E64;
	font-size: 38px;
	letter-spacing: 3.458px;
	margin: 72px 0 40px;
}
.page-id-46 .mbs-blogindex-grid { padding: 0 max(52px, calc((100% - var(--mbs-container-max)) / 2)) 48px; }
.page-id-46 .mbs-blogindex-grid ul.wp-block-post-template { gap: 32px; }
.page-id-46 .mbs-blogindex-card-title {
	font-size: 16px;
	font-weight: 700;
	color: #1B1B1B;
	text-align: center;
	margin: 16px 0 8px;
}
.page-id-46 .mbs-blogindex-card-date {
	font-size: 14px;
	color: #595959;
	text-align: center;
}
.page-id-46 .mbs-blogindex-cta { padding: 0 0 64px; }
/* Neutral structural placeholders for the two index cards whose source
   featured images resolved to GoDaddy/Airo stock-photo library assets
   (img1.wsimg.com/isteam/stock/...). core/post-featured-image renders
   nothing when a post has no featured image, so the placeholder is drawn
   with a ::before pseudo-element on the Query Loop item itself, addressed
   by the post-ID class WordPress already applies via post_class(). This
   keeps the approved Query Loop and post-template markup untouched. */
.page-id-46 .wp-block-post.post-44::before,
.page-id-46 .wp-block-post.post-45::before {
	content: "";
	display: block;
	width: 100%;
	margin-bottom: 16px;
	background: #E7EBEF;
	border: 1px dashed #B7C4D1;
	box-sizing: border-box;
}
.page-id-46 .wp-block-post.post-44::before { aspect-ratio: 479 / 330; }
.page-id-46 .wp-block-post.post-45::before { aspect-ratio: 479 / 370; }

/* ===== 23. BLOG SINGLE POST (post-scoped) ===== */
.single-post .mbs-blogpost-layout { align-items: flex-start; padding: 40px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0; gap: 48px; }
.single-post .mbs-blogpost-inner { padding: 0; max-width: 720px; margin: 0; flex: 1 1 auto; min-width: 0; }
.single-post .mbs-blogpost-sidebar { width: 300px; flex: 0 0 300px; }
.single-post .mbs-blogpost-sidebar-title { color: #163E64; font-size: 20px; margin: 0 0 24px; }
.single-post .mbs-blogpost-sidebar-list ul.wp-block-post-template { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 32px; }
.single-post .mbs-blogpost-sidebar-item { gap: 12px; align-items: flex-start; }
.single-post .mbs-blogpost-sidebar-img { flex: 0 0 64px; margin: 0; }
.single-post .mbs-blogpost-sidebar-img img { width: 64px; height: 64px; object-fit: cover; }
.single-post .wp-block-post:not(.has-post-thumbnail) .mbs-blogpost-sidebar-img { display: block; width: 64px; height: 64px; background: #E7EBEF; border: 1px dashed #B7C4D1; box-sizing: border-box; }
.single-post .mbs-blogpost-sidebar-item-title { font-size: 14px; margin: 0 0 4px; line-height: 18px; }
.single-post .mbs-blogpost-sidebar-item-title a { color: #163E64; text-decoration: none; }
.single-post .mbs-blogpost-sidebar-item-date { font-size: 12px; color: #595959; }
.single-post .mbs-blogpost-allposts a { color: #163E64; text-decoration: none; font-size: 14px; }
.single-post .mbs-blogpost-title { font-size: 30px; color: #163E64; margin: 16px 0 4px; }
.single-post .mbs-blogpost-meta { font-size: 14px; color: #595959; gap: 8px; margin-bottom: 24px; }
.single-post .mbs-blogpost-featured { margin: 0 0 32px; }
.single-post .mbs-blogpost-featured img { width: 100%; height: auto; }
.single-post .wp-block-post-content { font-size: 16px; line-height: 24px; color: #333; max-width: 720px; margin: 0 auto; }
.single-post .wp-block-post-content p { margin: 0 0 24px; }
.single-post .wp-block-post-content ul,
.single-post .wp-block-post-content ol { margin: 0 0 24px; padding-left: 24px; }
.single-post .wp-block-post-content li { margin: 0 0 8px; }
.single-post .wp-block-post-content h2 { color: #163E64; font-size: 24px; margin: 40px 0 16px; }
.single-post .wp-block-post-content h3 { color: #163E64; font-size: 19px; margin: 32px 0 12px; }
.single-post .mbs-blogpost-cta { padding: 24px 0 64px; }
/* Neutral structural placeholders for source featured images resolved to
   GoDaddy/Airo stock-photo library assets (img1.wsimg.com/isteam/stock/...),
   which are not first-party Morton Bookkeeping assets and are therefore not
   downloaded, hotlinked, or substituted with a generated image. */
.mbs-blogpost-placeholder { background: #E7EBEF; border: 1px dashed #B7C4D1; max-width: 720px; margin: 0 auto; }
.mbs-blogpost-placeholder-330 { aspect-ratio: 479 / 330; }
.mbs-blogpost-placeholder-370 { aspect-ratio: 479 / 370; }

/* ===== 24. CATCH UP BOOKKEEPING PAGE (page-scoped) =====
   Source: /catch-up-bookkeeping. Reuses the approved interior title,
   .mbs-section / .mbs-narrow / .mbs-section-title, .mbs-btn CTA, FAQ
   .wp-block-details, and Connect With Us treatments verbatim. */
.mbs-catchup-title-section {
	padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0;
}
.mbs-catchup-title {
	text-align: center;
	text-transform: uppercase;
	font-size: 48px;
	letter-spacing: 4.368px;
	color: #163E64;
	margin: 0 0 40px;
}
.mbs-catchup-behind,
.mbs-catchup-qualify,
.mbs-catchup-whatis,
.mbs-catchup-qbo,
.mbs-catchup-process,
.mbs-catchup-matters,
.mbs-catchup-tax,
.mbs-catchup-need,
.mbs-catchup-who,
.mbs-catchup-why,
.mbs-catchup-ready { text-align: left; }
.mbs-catchup-process-list li { margin: 0 0 16px; font-size: 16px; line-height: 24px; color: #5E5E5E; }
.mbs-catchup-list li { margin: 0 0 10px; font-size: 16px; line-height: 24px; color: #5E5E5E; }
.mbs-catchup-faq .wp-block-details { border-bottom: 1px solid #E3E3E3; padding: 16px 0; }
.mbs-catchup-faq .wp-block-details summary { font-size: 16px; font-weight: 700; color: #163E64; cursor: pointer; }
.mbs-catchup-faq .wp-block-details p { font-size: 16px; line-height: 24px; color: #5E5E5E; margin: 12px 0 0; }

/* ===== 25. SMALL BUSINESS BOOKKEEPING PAGE (page-scoped) =====
   Source: /bookkeeping-small-biz. Reuses the approved .mbs-section /
   .mbs-narrow / .mbs-section-title / .mbs-btn / .mbs-img-placeholder /
   .mbs-social treatments verbatim. Hero photo is a licensed source image
   (not first-party isteam/ip) and is withheld per placeholder policy;
   a solid brand-navy scrim stands in for the photo without altering the
   live hero's measured geometry (327px tall, 56px vertical padding). */
.mbs-smallbiz-hero { background: #163E64; padding: 56px max(52px, calc((100% - var(--mbs-container-max)) / 2)); }
.mbs-smallbiz-hero-inner { max-width: var(--mbs-container-max); margin: 0 auto; text-align: center; }
.mbs-smallbiz-h1 {
	color: #fff;
	font-size: 38px;
	font-weight: 400;
	line-height: 42.75px;
	letter-spacing: 3.458px;
	text-align: center;
	margin: 0 0 25px;
}
.mbs-smallbiz-why-grid,
.mbs-smallbiz-services-grid,
.mbs-smallbiz-areas-grid,
.mbs-smallbiz-reviews-grid,
.mbs-smallbiz-faq-grid { align-items: flex-start; gap: 48px; }
.mbs-smallbiz-why-grid > .mbs-smallbiz-why-media,
.mbs-smallbiz-areas-grid > .mbs-smallbiz-areas-media,
.mbs-smallbiz-faq-grid > .mbs-smallbiz-faq-media { flex: 0 0 31.5%; }
.mbs-smallbiz-services-grid > .mbs-smallbiz-services-media,
.mbs-smallbiz-reviews-grid > .mbs-smallbiz-reviews-media { flex: 0 0 31.5%; order: 2; }
.mbs-smallbiz-services-grid > .mbs-smallbiz-services-text,
.mbs-smallbiz-reviews-grid > .mbs-smallbiz-reviews-text { order: 1; }
.mbs-smallbiz-why-text p,
.mbs-smallbiz-services-text p,
.mbs-smallbiz-areas-text p,
.mbs-smallbiz-reviews-text p,
.mbs-smallbiz-faq-text p {
	margin: 0 0 16px; font-size: 16px; line-height: 24px; color: #5E5E5E;
}
.mbs-smallbiz-why-text p:last-child,
.mbs-smallbiz-services-text p:last-child,
.mbs-smallbiz-areas-text p:last-child,
.mbs-smallbiz-reviews-text p:last-child,
.mbs-smallbiz-faq-text p:last-child { margin-bottom: 0; }
.mbs-smallbiz-why { background: #DCE6EF; }
.mbs-smallbiz-areas { background: #DCE6EF; }
.mbs-smallbiz-faq { background: #DCE6EF; }
.mbs-smallbiz-faq-text strong { color: #163E64; }

/* ===== 26. CITY LANDING PAGES (page-scoped) =====
   Source: /bookkeeping-sb-<city>-<state> (18 standard cities). Reuses the
   approved .mbs-section / .mbs-narrow / .mbs-section-title / .mbs-btn /
   .mbs-img-placeholder / .mbs-social treatments verbatim. Live hero uses a
   licensed map photo with a dark overlay; withheld per placeholder policy
   and replaced with a solid brand-navy field sized to the measured hero
   proportions (large vertical padding, centered white H1). Shared across
   all 18 city pages; no per-city CSS beyond this file. */
.mbs-city-hero { background: #163E64; padding: 96px max(52px, calc((100% - var(--mbs-container-max)) / 2)); text-align: center; }
.mbs-city-h1 {
	color: #fff;
	font-size: 34px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 1px;
	text-align: center;
	margin: 0;
}
.mbs-city-why-grid,
.mbs-city-solutions-grid,
.mbs-city-benefits-grid,
.mbs-city-serving-grid,
.mbs-city-reviews-grid { align-items: flex-start; gap: 48px; }
.mbs-city-why-grid > .mbs-city-why-media,
.mbs-city-benefits-grid > .mbs-city-benefits-media,
.mbs-city-reviews-grid > .mbs-city-reviews-media { flex: 0 0 31.5%; }
.mbs-city-solutions-grid > .mbs-city-solutions-media,
.mbs-city-serving-grid > .mbs-city-serving-media { flex: 0 0 31.5%; order: 2; }
.mbs-city-solutions-grid > .mbs-city-solutions-text,
.mbs-city-serving-grid > .mbs-city-serving-text { order: 1; }
.mbs-city-why-text p,
.mbs-city-solutions-text p,
.mbs-city-benefits-text p,
.mbs-city-serving-text p,
.mbs-city-reviews-text p {
	margin: 0 0 16px; font-size: 16px; line-height: 24px; color: #5E5E5E;
}
.mbs-city-why-text p:last-child,
.mbs-city-solutions-text p:last-child,
.mbs-city-benefits-text p:last-child,
.mbs-city-serving-text p:last-child,
.mbs-city-reviews-text p:last-child { margin-bottom: 0; }
.mbs-city-why { background: #DCE6EF; }
.mbs-city-benefits { background: #DCE6EF; }
.mbs-city-reviews { background: #DCE6EF; }

/* ===== 27. MIAMI CITY VARIANT (page-scoped: bookkeeping-sb-miami-fl only) =====
   Source: https://mortonbookkeeping.com/bookkeeping-sb-miami-fl — a variant
   layout distinct from the 18 standard city pages, so these classes are
   Miami-only and do not modify the shared .mbs-city-* rules above. Hero uses
   a licensed map photo; withheld per placeholder policy, solid brand-navy
   background retained at the measured proportions. Content images are
   Getty-licensed; withheld and replaced with the approved neutral
   placeholder. */
.mbs-miami-hero { background:#163E64; padding:96px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 64px; }
.mbs-miami-h1 { color:#fff; font-size:34px; font-weight:400; line-height:1.2; letter-spacing:1px; text-align:left; max-width:760px; margin:0 0 48px; }
.mbs-miami-hero > .wp-block-buttons {
    justify-content: center;
    width: 100%;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
.mbs-miami-strip { background:#163E64; padding:40px max(52px, calc((100% - var(--mbs-container-max)) / 2)); }
.mbs-miami-strip .wp-block-buttons { justify-content:center; }
.mbs-miami-row { background:#fff; padding:48px max(52px, calc((100% - var(--mbs-container-max)) / 2)); }
.mbs-miami-row.mbs-miami-row-alt { background:#C7D8EB; }
.mbs-miami-section-title { text-align:center; color:#163E64; font-size:22px; font-weight:400; letter-spacing:2px; text-transform:none; margin:0 0 40px; }
.mbs-miami-row-grid { align-items:center; gap:48px; }
.mbs-miami-row-grid > .mbs-miami-row-media { flex:0 0 31.5%; }
.mbs-miami-row-grid > .mbs-miami-row-text p { margin:0 0 16px; font-size:16px; line-height:24px; color:#393D42; }
.mbs-miami-row-grid > .mbs-miami-row-text p:last-child { margin-bottom:0; }
.mbs-miami-row-grid.mbs-miami-row-reverse > .mbs-miami-row-media { order:2; }
.mbs-miami-row-grid.mbs-miami-row-reverse > .mbs-miami-row-text { order:1; }
.mbs-miami-faq { background:#fff; }
.mbs-miami-faq-grid { gap:48px; align-items:flex-start; }
.mbs-miami-faq-grid > .mbs-miami-faq-media { flex:0 0 31.5%; }
.mbs-miami-faq-grid > .mbs-miami-faq-text h3 { font-size:16px; font-weight:700; margin:0 0 4px; color:#000; }
.mbs-miami-faq-grid > .mbs-miami-faq-text p { margin:0 0 24px; font-size:16px; line-height:24px; color:#393D42; }
.mbs-miami-next { background:#fff; text-align:center; }
.mbs-miami-next p { color:#393D42; }

/* ===== 28. ATLANTA CITY VARIANT (page-scoped: bookkeeping-sb-atl-ga only) =====
   Source: https://mortonbookkeeping.com/bookkeeping-sb-atl-ga — a variant
   layout distinct from the 18 standard city pages and from Miami, so these
   classes are Atlanta-only and do not modify the shared .mbs-city-* or
   .mbs-miami-* rules above. Hero uses a licensed map photo; withheld per
   placeholder policy, solid brand-navy background retained at the measured
   proportions. Content images are Getty-licensed; withheld and replaced
   with the approved neutral placeholder. */
.mbs-atlanta-hero { background:#163E64; padding:96px max(52px, calc((100% - var(--mbs-container-max)) / 2)); text-align:center; }
.mbs-atlanta-h1 { color:#fff; font-size:34px; font-weight:400; line-height:1.2; letter-spacing:1px; text-align:center; margin:0; }
.mbs-atlanta-hero .wp-block-buttons { justify-content:center; margin-top:48px; }
.mbs-atlanta-intro { background:#fff; padding:48px max(52px, calc((100% - var(--mbs-container-max)) / 2)) 0; }
.mbs-atlanta-intro p { margin:0 0 16px; font-size:16px; line-height:24px; color:#000; }
.mbs-atlanta-intro p:last-child { margin-bottom:0; }
.mbs-atlanta-pricing,
.mbs-atlanta-why,
.mbs-atlanta-reviews { background:#DCE6EF; }
.mbs-atlanta-profits,
.mbs-atlanta-serving,
.mbs-atlanta-closing { background:#fff; }
.mbs-atlanta-row { align-items:flex-start; gap:48px; }
.mbs-atlanta-row > .mbs-atlanta-media { flex:0 0 31.5%; }
.mbs-atlanta-copy p { margin:0 0 16px; font-size:16px; line-height:24px; color:#393D42; }
.mbs-atlanta-copy p:last-child { margin-bottom:0; }
.mbs-atlanta-subhead { font-size:16px; font-weight:700; color:#1B1B1B; margin:16px 0 4px; text-transform:none; letter-spacing:normal; }
.mbs-atlanta-reviews .mbs-atlanta-copy p:first-child { font-style:italic; }

/* =========================================================================
   16. HOME RESPONSIVE PASS 1 — global header/nav + Home sections only.
   Every rule below is scoped to a Home-only selector or gated inside a
   max-width:1039px query, so nothing here changes the approved >=1040
   desktop mirror. See report for the widths verified.
   ========================================================================= */

/* Safety net only — does not change any element's intended width. */
@media (max-width: 1039px) {
	html { overflow-x: hidden; }
}

/* Header nav: force the native WP hamburger for the whole sub-desktop range.
   Core's overlayMenu:"mobile" only swaps to the overlay below 600px, but this
   nav's natural row width (~800px) also overflows the 768px tablet row, so
   the toggle must stay on through 1039px. At 1040+ this query never matches,
   so the approved inline desktop row (core's own >=600px behaviour) is untouched. */
@media (min-width: 600px) and (max-width: 1039px) {
	.mbs-header-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.mbs-header-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* Larger tap target for the hamburger toggle below 1040px (icon size unchanged). */
@media (max-width: 1039px) {
	.mbs-header-nav .wp-block-navigation__responsive-container-open,
	.mbs-header-nav .wp-block-navigation__responsive-container-close {
		padding: 10px;
		margin: -10px;
	}
}

/* Mobile-only: sections that use a fixed 65% narrow column (sized for the
   1116px desktop container) are too cramped at phone widths — widen to the
   full available width. Scoped to the Home sections that use it. */
@media (max-width: 599px) {
	.mbs-whatwedo .mbs-narrow,
	.mbs-faq .mbs-narrow,
	.mbs-contact .mbs-narrow {
		width: 100%;
	}
}

/* Mobile-only: stack the two-column Accurate/Responsive row (text above the
   image placeholder, matching source DOM order) instead of squeezing both
   columns into ~110px each. */
@media (max-width: 599px) {
	.mbs-accurate-grid {
		flex-direction: column;
	}
	.mbs-accurate-grid .mbs-accurate-media {
		flex: 0 0 auto;
		width: 60%;
		margin: 0 auto;
	}
}

/* Mobile-only: the review cards and How It Works steps were shrinking below
   their content's min-content width, overflowing the viewport on both sides
   (measured: card 1 left edge at x=-57px against a 390px viewport). Stack
   both into a mobile-safe single column, same source order. The decorative,
   non-functional prev/next glyphs are hidden — they are static placeholders
   with no carousel behind them, and their fixed -72px offsets only fit the
   wide desktop stage. */
@media (max-width: 599px) {
	.mbs-reviews-cards {
		flex-direction: column;
		gap: 24px;
	}
	.mbs-review-card {
		width: 100%;
		max-width: 100%;
		min-height: 0;
	}
	.mbs-reviews-arrow {
		display: none;
	}
	.mbs-howitworks-grid {
		flex-direction: column;
		gap: 40px;
	}
	.mbs-howitworks-grid .mbs-step img {
		max-width: 160px;
	}
}

/* ===== 15. MOTION PREFERENCES ===== */
@media (prefers-reduced-motion: reduce) {
	.mbs-marquee-track { animation: none; }
	.mbs-btn .wp-block-button__link { transition: none; }
	html { scroll-behavior: auto; }
}

/* =========================================================================
   29. CORE INTERIOR RESPONSIVE BATCH — Page 15 (BTM), Page 21 (About Us),
   Page 27 (FAQ), Page 30 (Contact), Page 3 (Privacy) only.
   FAQ, Contact, and Privacy already render without horizontal overflow at
   390px (verified) — no rules needed for them here. The defect on BTM and
   About Us: their feature/team rows use flex-direction:row with a fixed-
   width media column (280px / 47.44%) and flex-wrap:nowrap, so below the
   680px combined content width the row does not shrink (flex items don't
   shrink under min-content by default) and overflows the 286px available
   width, driving text into a squeezed sliver. Live-source mobile stacking
   order for alternating rows could not be reached for verification (public
   site request timed out from this environment); stacking uses DOM order
   (media, then copy) for every row, matching the convention already
   established and approved for Home's .mbs-accurate-grid fix. This is a
   carried-forward, conservative choice, not a confirmed source match. */
@media (max-width: 599px) {
	.mbs-btm-row,
	.mbs-btm-row.is-media-right {
		flex-direction: column;
	}
	.mbs-btm-row .mbs-btm-media,
	.mbs-btm-row.is-media-right .mbs-btm-media {
		flex: 0 0 auto;
		width: 100%;
	}
	.mbs-btm-row .mbs-btm-copy,
	.mbs-btm-row.is-media-right .mbs-btm-copy {
		width: 100%;
	}

	.mbs-about-team-row,
	.mbs-about-team-row.is-media-right {
		flex-direction: column;
		align-items: stretch;
	}
	.mbs-about-team-row .mbs-about-team-media,
	.mbs-about-team-row.is-media-right .mbs-about-team-media {
		flex: 0 0 auto;
		width: 100%;
	}
	.mbs-about-team-row .mbs-about-team-copy,
	.mbs-about-team-row.is-media-right .mbs-about-team-copy {
		width: 100%;
	}
}

/* =========================================================================
   30. PRICING RESPONSIVE PASS — Page 18 (Pricing) only.
   Desktop (>=1040px) is untouched: 4-up monthly row and 3-up Additional
   Services row, Premier's negative-margin elevation, and all copy/prices
   are unchanged. Defect at 390px: .mbs-pricing-grid and .mbs-additional-grid
   are flex rows with flex:1 1 0 and no wrap, so at narrow widths every card
   is compressed into an unreadable sliver instead of shrinking below
   min-content. Fix stacks both grids to one column below 600px. 768px could
   not be directly rendered or inspected in this environment (no arbitrary-
   width viewport available) — the 600–1039px rules below are a conservative
   reasoned two-column layout sized from the existing card gap/min-width
   values, not a verified tablet capture. */
@media (max-width: 1039px) {
	body.page-id-18 .mbs-pricing-card.is-featured,
	body.page-id-18 .mbs-additional-card.is-featured {
		margin-top: 0;
		margin-bottom: 0;
	}
}

@media (min-width: 600px) and (max-width: 1039px) {
	body.page-id-18 .mbs-pricing-grid {
		flex-wrap: wrap;
		width: 92%;
		row-gap: 24px;
	}
	body.page-id-18 .mbs-pricing-card {
		flex: 1 1 45%;
		min-width: 260px;
	}
	body.page-id-18 .mbs-additional-grid {
		flex-wrap: wrap;
		justify-content: center;
		width: 92%;
		row-gap: 24px;
	}
	body.page-id-18 .mbs-additional-card {
		flex: 0 1 45%;
		min-width: 240px;
	}
}

@media (max-width: 599px) {
	body.page-id-18 .mbs-pricing-grid,
	body.page-id-18 .mbs-additional-grid {
		flex-direction: column;
		width: 100%;
		gap: 24px;
	}
	body.page-id-18 .mbs-pricing-card,
	body.page-id-18 .mbs-additional-card {
		width: 100%;
		flex: 0 0 auto;
	}
	body.page-id-18 .mbs-pricing-cta {
		padding-left: 24px;
		padding-right: 24px;
	}
	body.page-id-18 .mbs-pricing-social {
		padding-left: 24px;
		padding-right: 24px;
	}
	body.page-id-18 .mbs-pricing-social .wp-block-social-links {
		gap: 32px;
	}
}

/* =========================================================================
   25. BLOG RESPONSIVE PASS (page-id-46 index + single-post, <1040px only)
   Scoped to existing Blog classes and breakpoints below the frozen 1040px
   desktop rendering. No desktop rule above is modified.
   ========================================================================= */

/* --- Blog index: two-column card grid, 600-1039px --- */
@media (min-width: 600px) and (max-width: 1039px) {
	.page-id-46 .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* --- Blog index: one column per row, below 600px --- */
@media (max-width: 599px) {
	.page-id-46 .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
	.page-id-46 .mbs-blogindex-cta {
		padding-left: 24px;
		padding-right: 24px;
	}
}

/* --- Single post: stack article above Recent Posts, below 1040px ---
   Fixes the frozen nowrap two-column flex row, which otherwise forces the
   article column to a computed 0px width and wraps text one letter per
   line on any viewport under ~1040px. */
@media (max-width: 1039px) {
	.single-post .mbs-blogpost-layout {
		flex-direction: column;
		flex-wrap: wrap;
	}
	.single-post .mbs-blogpost-inner,
	.single-post .mbs-blogpost-sidebar {
		width: 100%;
		max-width: 100%;
		flex: 1 1 auto;
	}
	.single-post .mbs-blogpost-sidebar {
		margin-top: 40px;
	}
}

/* --- Single post + index: safe text wrapping below 1040px, no clipping,
   no horizontal overflow from long words, URLs, or narrow flex children --- */
@media (max-width: 1039px) {
	.mbs-blogpost-title,
	.mbs-blogpost-sidebar-item-title,
	.mbs-blogindex-card-title,
	.single-post .wp-block-post-content {
		overflow-wrap: break-word;
		word-break: break-word;
	}
	.single-post .mbs-blogpost-sidebar-item {
		min-width: 0;
	}
	.single-post .mbs-blogpost-sidebar-item > .wp-block-group {
		min-width: 0;
	}
}

/* =========================================================================
   31. LONG-FORM SERVICE RESPONSIVE BATCH — Page 48 (Catch Up Bookkeeping)
   and Page 50 (Bookkeeping Services for Small Business) only.
   Desktop (>=1040px) is untouched: every rule below sits inside a
   max-width:599px query scoped to body.page-id-48 / body.page-id-50, so the
   approved desktop mirror and all copy/links/CTAs/FAQs/testimonials are
   unchanged. 390px verified directly; 768px could not be directly rendered
   or inspected in this environment (no arbitrary-width viewport available)
   — classified UNVERIFIED. No 600-1039px rule is added for these two
   defects because both are reasoned safe at 768px from the verified 390 and
   frozen >=1040 states (see report): .mbs-narrow at 65% of a 768px
   container still yields a comfortably readable ~430px column, and the
   Catch Up H1 easily fits "BOOKKEEPING" within the wider tablet content
   width, so no tablet-only override is needed.

   Defect 1 — unreadably narrow content column (both pages): long-form
   paragraphs and lists are nested in .mbs-narrow, a fixed 65%-of-container
   column sized for the 1116px desktop container. At 390px this leaves only
   ~186px of text width with ~50px of unused margin on each side (measured
   on Page 48's Who We Help / Why Choose lists and Catch Up FAQ intro, and
   Page 50's intro and closing CTA paragraphs). Widened to the full section
   width below 600px, matching the existing approved Home-page pattern for
   the same fixed-65% class (see rule 16 above, Home-scoped, untouched).

   Defect 2 — mid-word heading break (Page 48 only): .mbs-catchup-title (H1)
   renders at 48px / uppercase / 4.368px letter-spacing. At the 286px mobile
   content width "BOOKKEEPING" does not fit on one line and the browser
   breaks it mid-word ("BOOKKEEPIN" / "G") — the one-letter-per-line defect
   this batch must eliminate. Scaled down below 600px so every word fits on
   its own line; heading level, copy, and desktop rendering are unchanged. */

@media (max-width: 599px) {
	body.page-id-48 .mbs-narrow,
	body.page-id-50 .mbs-narrow {
		width: 100%;
	}
	/* .mbs-catchup-faq carries no .mbs-section side padding of its own on
	   desktop — it relies solely on .mbs-narrow's centered 65% column for
	   side spacing. Add matching mobile-only side padding so its now
	   full-width .mbs-narrow does not run edge-to-edge against the viewport. */
	body.page-id-48 .mbs-catchup-faq {
		padding-left: 24px;
		padding-right: 24px;
	}
	body.page-id-48 .mbs-catchup-title {
		font-size: 30px;
		letter-spacing: 2px;
		margin: 0 0 24px;
	}
}

/* =========================================================================
   32. STANDARD CITY RESPONSIVE BATCH — the 18 shared-archetype city pages
   only (IDs 51,53,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70). Uses
   only the existing .mbs-city-* classes from section 26 above; no markup,
   copy, section order, or >=1040px rule is touched. Miami (.mbs-miami-*)
   and Atlanta (.mbs-atlanta-*) use separate classes and are untouched by
   this batch.

   390px verified directly on all 4 representative pages (Tampa, Charlotte,
   Nashville, Birmingham) plus the longest-in-set H1 (Cape Coral–Ft Myers,
   68 chars): html/body already sit at exactly the 390px viewport width
   with zero horizontal overflow, every H1 and section-title wraps cleanly
   at their existing font sizes, and core's built-in column-stacking
   (flex-wrap:wrap, matching source DOM order for every row in this shared
   template) already stacks each media/text pair into one column below
   ~700px with no clipped or distorted placeholder. The rules below
   formalize that behaviour under the .mbs-city-* names instead of relying
   on core's incidental default, add mobile breathing room to the hero and
   section titles, and add the belt-and-suspenders word-wrap guard the
   longest city names (Sarasota-Bradenton, Cape Coral–Ft Myers, West Palm
   Beach) do not currently need but should never be able to break.

   768px could not be directly rendered or inspected in this environment
   (no arbitrary-width viewport available) — classified UNVERIFIED. No
   600-1039px override is added: at that width the shared .mbs-section
   container is >=664px (max(52px, (100% - 1116px)/2) side padding), so
   the existing 31.5%/68.5% media/text split still yields a >=200px media
   column and a >=400px text column — both comfortably above the mobile
   values already verified safe, so two columns remain readable and no
   tablet-only stacking rule is needed. This is a conservative, reasoned
   extrapolation from the verified 390 and frozen >=1040 states, not a
   direct tablet capture.

   No Birmingham-only exception was needed: its longer uppercase section
   titles (e.g. "Our Small Business Bookkeeping Solutions for BIRMINGHAM,
   AL") were verified at 390px and wrap cleanly under the same shared
   mobile font-size rule below. */
@media (max-width: 599px) {
	.mbs-city-hero {
		padding-top: 56px;
		padding-bottom: 56px;
	}
	.mbs-city-h1 {
		font-size: 26px;
		line-height: 1.3;
		overflow-wrap: break-word;
		word-break: break-word;
	}
	.mbs-city-why .mbs-section-title,
	.mbs-city-solutions .mbs-section-title,
	.mbs-city-benefits .mbs-section-title,
	.mbs-city-serving .mbs-section-title,
	.mbs-city-reviews .mbs-section-title,
	.mbs-city-closing .mbs-section-title {
		font-size: 24px;
		letter-spacing: 2px;
		line-height: 1.35;
		overflow-wrap: break-word;
		word-break: break-word;
	}
	.mbs-city-why-grid,
	.mbs-city-solutions-grid,
	.mbs-city-benefits-grid,
	.mbs-city-serving-grid,
	.mbs-city-reviews-grid {
		flex-direction: column;
		gap: 24px;
	}
	.mbs-city-why-grid > .mbs-city-why-media,
	.mbs-city-why-grid > .mbs-city-why-text,
	.mbs-city-solutions-grid > .mbs-city-solutions-media,
	.mbs-city-solutions-grid > .mbs-city-solutions-text,
	.mbs-city-benefits-grid > .mbs-city-benefits-media,
	.mbs-city-benefits-grid > .mbs-city-benefits-text,
	.mbs-city-serving-grid > .mbs-city-serving-media,
	.mbs-city-serving-grid > .mbs-city-serving-text,
	.mbs-city-reviews-grid > .mbs-city-reviews-media,
	.mbs-city-reviews-grid > .mbs-city-reviews-text {
		flex: 0 0 auto;
		width: 100%;
	}
	/* DOM order is preserved exactly as authored (no order overrides here):
	   Why = media,text; Solutions = text,media; Benefits = media,text;
	   Serving = text,media; Reviews = media,text. */
	.mbs-city-why-grid > .mbs-city-why-media,
	.mbs-city-solutions-grid > .mbs-city-solutions-media,
	.mbs-city-benefits-grid > .mbs-city-benefits-media,
	.mbs-city-serving-grid > .mbs-city-serving-media,
	.mbs-city-reviews-grid > .mbs-city-reviews-media {
		max-width: 320px;
		margin-left: auto;
		margin-right: auto;
	}
	.mbs-city-solutions-grid > .mbs-city-solutions-media { order: 2; }
	.mbs-city-solutions-grid > .mbs-city-solutions-text { order: 1; }
	.mbs-city-serving-grid > .mbs-city-serving-media { order: 2; }
	.mbs-city-serving-grid > .mbs-city-serving-text { order: 1; }
}

/* =========================================================================
   33. MIAMI & ATLANTA RESPONSIVE BATCH (page-scoped: page IDs 71 and 73
   only). Uses only the existing .mbs-miami-* and .mbs-atlanta-* classes
   from sections 27-28 above; no markup, copy, section order, or >=1040px
   rule is touched. The 18 standard city pages (.mbs-city-*), Home, Pricing,
   Blog, and the long-form pages are untouched by this batch.

   390px verified directly on both pages. html/body already sit at exactly
   the 390px viewport width with zero horizontal overflow. Core's built-in
   columns behaviour (flex-wrap:wrap with a sub-782px flex-basis:100%
   override) already stacks every .mbs-miami-row-grid, .mbs-miami-faq-grid,
   and .mbs-atlanta-row media/text pair into one column in existing DOM
   order, with no clipped or distorted placeholder — verified directly, so
   no explicit flex-direction/width override is added here (adding one
   would only duplicate core's default without changing rendering).
   mbs-miami-row-reverse already carries an unconditional (non-media-query)
   order:1/2 rule, so its text-before-media visual order is preserved
   automatically at every width, including here. The rules below add only
   the belt-and-suspenders word-wrap guard the longest headings in this set
   (e.g. "FL write-offs & Miami equipment realities near West Kendall") do
   not currently need but should never be able to break, plus the one real
   mobile defect found.

   One real mobile defect was found and fixed: .mbs-narrow (used in the
   Miami "Next Step" section and the Atlanta intro/closing sections) is
   65%-wide by default with no existing mobile override for these two page
   IDs, which measured at ~186px on a 390px viewport — an unreadably
   narrow column. The fix mirrors the identical, already-approved
   body.page-id-48/50 .mbs-narrow mobile rule from section 31, extended to
   page IDs 71 and 73.

   768px could not be directly rendered or inspected in this environment
   (no arbitrary-width viewport available) — classified UNVERIFIED. No
   600-1039px override is added: at that width the shared .mbs-miami-row /
   .mbs-atlanta-* section padding is still max(52px, (100% - 1116px)/2),
   which resolves to the 52px floor for any viewport under 1116px, so the
   content column is >=664px wide at 768px — comfortably wide enough for
   the existing 31.5%/68.5% media/text split to remain readable in two
   columns. This is the same conservative extrapolation already used and
   verified safe for the 18 standard city pages in section 32, not a
   direct tablet capture. */
@media (max-width: 599px) {
	body.page-id-71 .mbs-narrow,
	body.page-id-73 .mbs-narrow {
		width: 100%;
	}
	.mbs-miami-h1,
	.mbs-atlanta-h1 {
		overflow-wrap: break-word;
		word-break: break-word;
	}
	.mbs-miami-section-title,
	.mbs-miami-faq-text h3,
	body.page-id-73 .mbs-section-title,
	.mbs-atlanta-subhead {
		overflow-wrap: break-word;
		word-break: break-word;
	}
}

/* ==========================================================================
   34. HOME REVIEW SLIDER — APPROVED CARD DEPTH AND NAME CONTRAST
   Scoped to the existing Home review-stage wrapper only.
   ========================================================================== */

.mbs-reviews-stage .indrevdiv.wprevpro_t1_DIV_2 {
   box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22),
               0 6px 12px rgba(0, 0, 0, 0.14);
}

.mbs-reviews-stage .wprevpro_t1_SPAN_5 {
   color: #ffffff;
   font-weight: 700;
   text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}

.mbs-reviews-stage .wprevpro_t1_SPAN_5 .wprev_showdate_T1 {
   color: #ffffff;
   font-weight: 400;
}

/* ==========================================================================
   35. HOME REVIEW SLIDER — PAGINATION DOT CONTRAST
   Scoped to the existing Home review-stage wrapper only.
   ========================================================================== */

.mbs-reviews-stage #wprev-slider-1 .slickwprev-dots li button::before {
   color: #E8F0F6;
   opacity: 0.72;
}

.mbs-reviews-stage #wprev-slider-1 .slickwprev-dots li.slickwprev-active button::before,
.mbs-reviews-stage #wprev-slider-1 .slickwprev-dots li button:hover::before,
.mbs-reviews-stage #wprev-slider-1 .slickwprev-dots li button:focus-visible::before {
   color: #FFFFFF;
   opacity: 1;
}

/* ===== 36. FINAL V1 REPLACEMENT PHOTOGRAPHY ===== */
.mbs-replacement-loaded {
    background: transparent;
    border: 0;
    overflow: hidden;
}
.mbs-replacement-loaded > .wp-block-image {
    width: 100%;
    height: 100%;
    margin: 0;
    flex: 1 1 auto;
}
.mbs-replacement-loaded > .wp-block-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

/* ===== 37. BLOG INDEX PLACEHOLDER RETIREMENT ===== */
.page-id-46 .wp-block-post.post-44::before,
.page-id-46 .wp-block-post.post-45::before {
    content: none;
    display: none;
}

/* ===== 38. SEO PARITY SEMANTIC HEADING PRESERVATION ===== */
.mbs-marquee-copy {
    white-space: nowrap;
    font-size: 30px;
    font-weight: 400;
    line-height: 75px;
    letter-spacing: 2.73px;
    text-transform: uppercase;
    color: #163E64;
    margin: 0;
    padding-right: 0;
}

.mbs-privacypage-date {
    line-height: 1.25;
}

/* ===== 39. PRIVACY POLICY VISUAL PARITY CORRECTION (page-scoped) =====
   Restores GoDaddy-source heading line-height (38px * 1.4 = 53.2px,
   vs. the 1.25 above) and the whitespace the source layout carried
   between the heading group and the footer. Page-id-3 only. */
body.page-id-3 .mbs-privacypage-title,
body.page-id-3 .mbs-privacypage-date {
    line-height: 1.4;
}
body.page-id-3 .mbs-privacypage-title {
    margin-bottom: 64px;
}
body.page-id-3 .mbs-privacypage {
    /* Measured live: local final-line-to-footer gap was 113px vs public's
       169px (last email-line bottom to dark footer top, same viewport).
       Raised to close the remaining ~56px page-end whitespace deficit. */
    padding-bottom: 169px;
}

/* ===== 40. PRIVACY HEADING GLYPH-SIZE MATCH (desktop only, page-scoped) =====
   Declared font-size/family were already identical to the public source, but
   rendered glyph width still measured ~15.6-15.7% narrower locally. Raising
   font-size to compensate; line-height pinned to the accepted 53.2px so the
   heading line boxes and surrounding vertical gaps do not shift. Mobile
   (<600px) is untouched. */
@media (min-width: 600px) {
    body.page-id-3 .mbs-privacypage-title {
        font-size: 44px;
        line-height: 53.2px;
        font-weight: 400;
        letter-spacing: 4px;
    }
    body.page-id-3 .mbs-privacypage-date {
        font-size: 43px;
        line-height: 53.2px;
        font-weight: 400;
        letter-spacing: normal;
    }
}

/* ===== 41. CITY-PAGE CTA EXTERNAL SPACING =====
   Adds separation above direct CTA groups without changing button size,
   internal padding, labels, destinations, section content, or hero imagery. */
.mbs-city-hero > .wp-block-buttons,
.mbs-city-solutions > .wp-block-buttons,
.mbs-city-serving > .wp-block-buttons,
.mbs-city-closing > .wp-block-buttons,
.mbs-miami-row > .wp-block-buttons,
.mbs-atlanta-profits > .wp-block-buttons,
.mbs-atlanta-serving > .wp-block-buttons,
.mbs-atlanta-closing > .wp-block-buttons {
    margin-top: 48px;
}


/* MBS_HOME_REVIEWS_IMAGE_ONLY_20260912_V1
   Approved lossless derivative of blob-0c92c40.png; same dimensions and pixels.
   Only the Home review-background URL changes. Original PNG remains available.
   Keep the existing overlay, sizing, position, spacing, and review behavior. */
body.home .mbs-reviews {
    --mbs-reviews-img: url("assets/mbs-home-reviews-background-lossless-20260912.webp");
}
