/*
Theme Name: The Balanced Midlife
Theme URI: https://example.com/balanced-midlife
Author: The Balanced Midlife
Author URI: https://example.com
Description: A calm, warm, editorial blog theme built for The Balanced Midlife — a site about wellness, self-care, and navigating midlife with intention. Custom-built from scratch with a soft sage-and-terracotta palette, readable typography, widgetized footer, and full support for custom logo, menus, and featured images.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: balanced-midlife
Tags: blog, custom-background, custom-logo, custom-menu, featured-images, footer-widgets, threaded-comments, translation-ready
*/

/* =========================================================
   TABLE OF CONTENTS
   1. CSS Variables / Reset
   2. Base Typography
   3. Layout / Container
   4. Header / Branding / Nav
   5. Buttons & Forms
   6. Posts / Content
   7. Pagination
   8. Comments
   9. Sidebar & Widgets
   10. Footer
   11. Utilities
   12. Responsive
========================================================= */

/* ---------- 1. CSS Variables / Reset ---------- */
:root {
	--color-bg: #faf6f0;
	--color-surface: #ffffff;
	--color-text: #33302a;
	--color-text-muted: #6b6459;
	--color-primary: #5f7161;   /* sage green */
	--color-primary-dark: #495a4c;
	--color-accent: #c97b63;    /* warm terracotta */
	--color-accent-dark: #b3634c;
	--color-border: #e7e0d6;
	--color-link: var(--color-primary);
	--font-heading: 'Fraunces', Georgia, 'Times New Roman', serif;
	--font-body: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--container-width: 1120px;
	--radius: 10px;
	--shadow-soft: 0 2px 16px rgba(51, 48, 42, 0.06);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: var(--radius);
}

a {
	color: var(--color-link);
	text-decoration: none;
	transition: color 0.15s ease;
}

a:hover,
a:focus {
	color: var(--color-accent);
}

ul,
ol {
	padding-left: 1.3em;
}

hr {
	border: none;
	border-top: 1px solid var(--color-border);
	margin: 2.5em 0;
}

/* Skip link */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--color-primary);
	color: #fff;
	padding: 0.75em 1.25em;
	z-index: 9999;
}

.skip-link:focus {
	left: 0;
}

/* ---------- 2. Base Typography ---------- */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	line-height: 1.25;
	color: var(--color-text);
	margin: 1.4em 0 0.6em;
}

h1 { font-size: 2.6rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.2rem; }

p {
	margin: 0 0 1.4em;
}

blockquote {
	border-left: 3px solid var(--color-accent);
	margin: 1.6em 0;
	padding: 0.4em 0 0.4em 1.4em;
	font-style: italic;
	color: var(--color-text-muted);
}

code, pre {
	background: #f1ece2;
	border-radius: 6px;
	padding: 0.15em 0.4em;
	font-size: 0.9em;
}

pre {
	padding: 1em;
	overflow-x: auto;
}

/* ---------- 3. Layout / Container ---------- */
.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.container {
	width: 100%;
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 0 24px;
}

.content-area {
	flex: 1 1 auto;
	padding: 48px 0 72px;
}

.site-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 56px;
	align-items: start;
}

.site-layout.no-sidebar {
	grid-template-columns: minmax(0, 1fr);
}

/* ---------- 4. Header / Branding / Nav ---------- */
.site-header {
	background: var(--color-surface);
	border-bottom: 1px solid var(--color-border);
	position: sticky;
	top: 0;
	z-index: 100;
}

.site-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 0;
}

.site-branding {
	display: flex;
	align-items: center;
	gap: 14px;
}

.site-branding img.custom-logo {
	max-height: 56px;
	border-radius: 0;
}

.site-title {
	font-family: var(--font-heading);
	font-size: 1.6rem;
	margin: 0;
	letter-spacing: 0.01em;
}

.site-title a {
	color: var(--color-text);
}

.site-description {
	margin: 2px 0 0;
	font-size: 0.85rem;
	color: var(--color-text-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.menu-toggle {
	display: none;
	background: none;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 8px 12px;
	cursor: pointer;
	font-size: 1.3rem;
	line-height: 1;
}

.primary-menu-container ul {
	display: flex;
	align-items: center;
	gap: 28px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.primary-menu-container li {
	position: relative;
}

.primary-menu-container a {
	color: var(--color-text);
	font-weight: 500;
	font-size: 0.97rem;
}

.primary-menu-container a:hover {
	color: var(--color-accent);
}

.primary-menu-container .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 10px;
	min-width: 200px;
	box-shadow: var(--shadow-soft);
	flex-direction: column;
	gap: 4px;
	z-index: 10;
}

.primary-menu-container li:hover > .sub-menu,
.primary-menu-container li:focus-within > .sub-menu {
	display: flex;
}

.primary-menu-container .sub-menu a {
	display: block;
	padding: 6px 8px;
	border-radius: 6px;
}

.primary-menu-container .sub-menu a:hover {
	background: var(--color-bg);
}

/* ---------- 5. Buttons & Forms ---------- */
.btn,
button,
input[type="submit"] {
	display: inline-block;
	background: var(--color-primary);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 0.7em 1.6em;
	font-family: var(--font-body);
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
}

.btn:hover,
button:hover,
input[type="submit"]:hover {
	background: var(--color-accent);
	transform: translateY(-1px);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="password"],
textarea,
select {
	width: 100%;
	padding: 0.7em 0.9em;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	background: var(--color-surface);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: 1rem;
}

input:focus,
textarea:focus,
select:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 1px;
}

.search-form {
	display: flex;
	gap: 8px;
}

/* ---------- 6. Posts / Content ---------- */
.post-card + .post-card {
	margin-top: 48px;
	padding-top: 48px;
	border-top: 1px solid var(--color-border);
}

.post-card .post-thumbnail {
	margin-bottom: 20px;
	overflow: hidden;
	border-radius: var(--radius);
}

.post-card .post-thumbnail img {
	transition: transform 0.35s ease;
}

.post-card .post-thumbnail:hover img {
	transform: scale(1.03);
}

.entry-meta {
	font-size: 0.85rem;
	color: var(--color-text-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin-bottom: 0.6em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.entry-meta a {
	color: var(--color-text-muted);
}

.entry-meta .cat-links a {
	color: var(--color-accent-dark);
}

.entry-title {
	margin-top: 0;
}

.entry-title a {
	color: var(--color-text);
}

.entry-title a:hover {
	color: var(--color-accent);
}

.entry-summary p:last-child,
.entry-content p:last-child {
	margin-bottom: 0;
}

.read-more {
	display: inline-block;
	margin-top: 8px;
	font-weight: 600;
	font-size: 0.92rem;
	border-bottom: 1px solid currentColor;
}

.entry-content {
	margin-top: 1.5em;
}

.entry-content > * + * {
	margin-top: 1.2em;
}

.entry-footer {
	margin-top: 2.5em;
	padding-top: 1.2em;
	border-top: 1px solid var(--color-border);
	font-size: 0.9rem;
	color: var(--color-text-muted);
}

.tags-links a {
	display: inline-block;
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 999px;
	padding: 0.25em 0.9em;
	margin: 0 6px 6px 0;
	font-size: 0.85rem;
}

.page-header,
.archive-header {
	margin-bottom: 40px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--color-border);
}

.page-header .page-title,
.archive-header .page-title {
	margin-bottom: 0.2em;
}

.archive-description {
	color: var(--color-text-muted);
}

.author-bio {
	display: flex;
	gap: 18px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: 24px;
	margin-top: 3em;
}

.author-bio img {
	border-radius: 50%;
	flex-shrink: 0;
}

.author-bio h3 {
	margin-top: 0;
	font-size: 1.05rem;
}

.author-bio p {
	margin-bottom: 0;
	color: var(--color-text-muted);
	font-size: 0.95rem;
}

/* ---------- 7. Pagination ---------- */
.pagination,
.post-navigation {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 56px;
	gap: 16px;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	width: 100%;
}

.pagination a,
.pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border-radius: 8px;
	border: 1px solid var(--color-border);
	color: var(--color-text);
	font-size: 0.9rem;
}

.pagination .current {
	background: var(--color-primary);
	color: #fff;
	border-color: var(--color-primary);
}

.pagination a:hover {
	background: var(--color-bg);
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
	flex: 1 1 48%;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: 16px;
}

.post-navigation .nav-next {
	text-align: right;
}

.post-navigation .nav-subtitle {
	display: block;
	font-size: 0.78rem;
	text-transform: uppercase;
	color: var(--color-text-muted);
	margin-bottom: 4px;
}

/* ---------- 8. Comments ---------- */
.comments-area {
	margin-top: 56px;
}

.comment-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.comment-list .children {
	list-style: none;
	padding-left: 32px;
	margin: 0;
}

.comment-body {
	padding: 20px 0;
	border-bottom: 1px solid var(--color-border);
}

.comment-author {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 600;
	font-size: 0.95rem;
}

.comment-author img {
	border-radius: 50%;
}

.comment-metadata {
	font-size: 0.8rem;
	color: var(--color-text-muted);
	margin-bottom: 8px;
}

.comment-reply-link {
	font-size: 0.82rem;
	font-weight: 600;
}

#respond input,
#respond textarea {
	margin-bottom: 14px;
}

/* ---------- 9. Sidebar & Widgets ---------- */
.widget {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: 24px;
	margin-bottom: 28px;
}

.widget-title {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-top: 0;
	margin-bottom: 1em;
	color: var(--color-primary-dark);
}

.widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.widget li {
	padding: 8px 0;
	border-bottom: 1px solid var(--color-border);
	font-size: 0.93rem;
}

.widget li:last-child {
	border-bottom: none;
}

/* ---------- 10. Footer ---------- */
.site-footer {
	background: var(--color-primary);
	color: #f1ece2;
	margin-top: auto;
}

.footer-widgets {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	padding: 56px 0 32px;
}

.footer-widgets .widget {
	background: transparent;
	border: none;
	padding: 0;
	color: #f1ece2;
}

.footer-widgets .widget-title {
	color: #fff;
}

.footer-widgets a {
	color: #f1ece2;
}

.footer-widgets a:hover {
	color: #fff;
	text-decoration: underline;
}

.footer-widgets li {
	border-bottom: 1px solid rgba(255,255,255,0.14);
}

.site-footer-bottom {
	border-top: 1px solid rgba(255,255,255,0.16);
	padding: 20px 0;
	font-size: 0.85rem;
}

.site-footer-bottom .container {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
}

.footer-socials a {
	margin-left: 14px;
}

/* ---------- 11. Utilities ---------- */
.screen-reader-text {
	position: absolute;
	left: -9999px;
}

.alignleft {
	float: left;
	margin: 0 1.5em 1em 0;
}

.alignright {
	float: right;
	margin: 0 0 1em 1.5em;
}

.aligncenter {
	display: block;
	margin: 1.5em auto;
}

.wp-caption,
.wp-block-image figcaption,
figcaption {
	font-size: 0.85rem;
	color: var(--color-text-muted);
	margin-top: 8px;
	text-align: center;
}

/* ---------- 12. Responsive ---------- */
@media (max-width: 900px) {
	.site-layout {
		grid-template-columns: 1fr;
	}

	.footer-widgets {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 720px) {
	.menu-toggle {
		display: inline-flex;
		align-items: center;
		gap: 6px;
	}

	.primary-navigation {
		display: none;
		width: 100%;
	}

	.primary-navigation.is-open {
		display: block;
	}

	.site-header-inner {
		flex-wrap: wrap;
	}

	.primary-menu-container ul {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		padding: 12px 0;
	}

	.primary-menu-container .sub-menu {
		position: static;
		border: none;
		padding-left: 14px;
		box-shadow: none;
	}

	.footer-widgets {
		grid-template-columns: 1fr;
	}

	h1 { font-size: 2rem; }
	h2 { font-size: 1.6rem; }

	.post-navigation {
		flex-direction: column;
	}

	.post-navigation .nav-previous,
	.post-navigation .nav-next {
		flex: 1 1 100%;
		text-align: left;
	}
}

/* Shared editorial design — October 2026 */
:root{--color-bg:#FAF8F3;--color-surface:#FAF8F3;--color-text:#000;--color-text-muted:#000;--color-primary:#A59586;--color-primary-dark:#DDD3C5;--color-accent:#B2BDA0;--color-accent-dark:#000;--color-border:#DDD3C5;--color-link:#000;--font-heading:'Libre Baskerville',Georgia,serif;--font-body:'Raleway',Arial,sans-serif;--container-width:1240px;--radius:3px}
body{background:#FAF8F3;color:#000}h1,h2,h3{font-weight:400;letter-spacing:-.025em}a:hover,a:focus{color:#000;text-decoration:underline;text-underline-offset:5px}.site-header{position:relative;background:#FAF8F3}.site-header-inner{min-height:104px;gap:32px}.site-title{font-size:22px;max-width:260px}.site-description{display:none}.primary-menu-container ul{gap:26px}.primary-menu-container a{font-size:14px;color:#000}.primary-menu-container a[href*="get-in-touch"]{background:#A59586;padding:12px 19px;display:inline-block;border-radius:3px}.primary-menu-container a:hover{color:#000}.site-footer{background:#DDD3C5;color:#000}.btn,button,input[type=submit]{background:#A59586;color:#000;border-radius:3px;padding:14px 25px}.btn:hover,button:hover,input[type=submit]:hover{background:#DDD3C5;color:#000;transform:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #000;outline-offset:5px}.content-area{padding:0 0 64px}.page .entry-header{display:none}.page .entry-content{margin-top:0}.page .entry-content>*+*{margin-top:0}.page .entry-footer{display:none}.bm-section{padding:80px 0}.bm-intro{max-width:780px;padding:76px 0 56px}.bm-intro h1{font-size:clamp(38px,5vw,64px);margin:16px 0 24px;line-height:1.12}.bm-intro p{max-width:650px}.bm-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:600;margin:0 0 18px}.bm-eyebrow:before{content:'';display:inline-block;width:28px;height:2px;background:#B2BDA0;margin:0 12px 4px 0}.bm-lead{font-size:20px;line-height:1.8;max-width:650px}.bm-section h2{font-size:clamp(28px,3vw,40px);margin:0 0 24px}.bm-split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.bm-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px}.bm-sand{background:#DDD3C5;padding:56px;border-radius:3px}.bm-grid,.bm-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.bm-card{border-top:2px solid #B2BDA0;padding:28px 0}.bm-card h3{margin:0 0 16px;font-size:24px}.bm-card a,.bm-text-link{text-decoration:underline;text-underline-offset:6px}.bm-post img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:22px}.bm-post h3{font-size:23px;line-height:1.45;margin:0 0 16px}.bm-post .bm-eyebrow{margin-bottom:12px}.bm-empty{grid-column:1/-1;padding:32px;border:1px solid #DDD3C5;max-width:780px}.bm-category{border-top:1px solid #DDD3C5;padding:20px 0}.bm-category summary{font-size:20px;cursor:pointer;font-family:var(--font-heading)}.bm-category li{margin:12px 0}.bm-form{max-width:650px}.bm-form label{display:block;font-size:14px;font-weight:600;margin:0 0 8px}.bm-form input,.bm-form textarea{border:1px solid #A59586;background:#FAF8F3;min-height:48px}.bm-form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.bm-consent{display:flex!important;align-items:flex-start;gap:12px;font-size:13px!important;font-weight:400!important;line-height:1.6;margin:20px 0!important}.bm-consent input{width:18px;min-height:18px;margin:3px 0}.bm-form fieldset{border:0;padding:0;margin:0}.bm-note{font-size:13px;line-height:1.6;margin-top:18px}.bm-form button:disabled,.bm-disabled{cursor:default;opacity:.7}.bm-portrait-placeholder{min-height:380px;display:grid;place-content:center;text-align:center;background:#DDD3C5;border:1px solid #A59586}.bm-portrait-placeholder span{font-family:var(--font-heading);font-size:25px}.bm-portrait-placeholder small{font-size:12px;margin-top:12px}.bm-editor-note{padding:14px 18px;border-left:3px solid #B2BDA0;font-size:13px;background:#DDD3C5}.bm-bio{max-width:570px;margin:0 auto;text-align:center;padding:72px 0}.bm-bio h1{font-size:36px;margin:20px 0}.bm-bio-link{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:20px 24px;margin:14px 0;background:#DDD3C5;border:1px solid #A59586;border-radius:3px;color:#000}.bm-bio-link:hover{background:#A59586}.bm-bio-mark{width:68px;height:68px;border-radius:50%;margin:auto;display:grid;place-content:center;background:#B2BDA0;font-family:var(--font-heading);font-size:24px}.bm-hero{position:relative}.bm-hero video{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}.bm-hero-copy{padding:48px 0 24px;max-width:820px}.bm-hero-copy h1{font-size:clamp(36px,5vw,62px);line-height:1.15;margin:12px 0 22px}.bm-divider{border-top:1px solid #DDD3C5}.bm-footer-links{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;font-size:14px}.bm-form input:disabled{background:#FAF8F3;opacity:1}.bm-form textarea{min-height:150px}.bm-contact-email{font-size:clamp(16px,2.5vw,24px);overflow-wrap:anywhere}.bm-resource-block{padding:35px 0;border-top:1px solid #A59586}.bm-resource-block h3{margin-top:0}.bm-resource-block p{max-width:620px}
@media(max-width:900px){.bm-split{gap:36px}.primary-menu-container ul{gap:16px}.site-title{font-size:20px}.bm-grid,.bm-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bm-section{padding:56px 0}.bm-sand{padding:36px}.site-header-inner{gap:20px}}
@media(max-width:600px){.container{padding:0 20px}.bm-split,.bm-grid,.bm-post-grid,.bm-form-row{grid-template-columns:1fr}.bm-split{gap:30px}.bm-intro{padding:44px 0 32px}.bm-sand{padding:28px 22px}.bm-lead{font-size:18px}.bm-hero-copy{padding:32px 0 12px}.bm-bio{padding:44px 0}.bm-portrait-placeholder{min-height:300px}.site-title{font-size:18px;max-width:220px}.site-header-inner{min-height:84px}.bm-section{padding:44px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.page-card > .entry-title.page-title{display:none}.site-header-inner{padding-left:24px;padding-right:24px}.site-footer-bottom{color:#000}.bm-hero{padding-top:24px}.bm-post-grid .bm-empty{margin-bottom:0}@media(max-width:600px){.site-header-inner{padding-left:0;padding-right:0}.bm-hero{padding-top:12px}}

/* Policy pages and footer links */
.bm-policy{max-width:850px;margin:0 auto;padding:72px 28px 88px;color:#000;overflow-wrap:anywhere}.bm-policy h1{font-family:"Libre Baskerville",serif;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.35;margin:0 0 36px}.bm-policy h2{font-family:"Libre Baskerville",serif;font-size:1.25rem;line-height:1.5;margin:36px 0 16px}.bm-policy p{line-height:1.85;margin:0 0 20px}.bm-policy a{color:#000;text-decoration:underline;text-underline-offset:3px}.bm-policy-nav{padding-top:28px;padding-bottom:12px;border-top:1px solid #B2BDA0}.bm-policy-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 25px;list-style:none;margin:0;padding:0}.bm-policy-links li{margin:0;padding:0}.bm-policy-links a{color:#000;font-size:.85rem;text-decoration:underline;text-underline-offset:4px;line-height:1.7}.bm-policy-links a:hover{color:#51483f}.bm-policy-links a:focus-visible{outline:2px solid #51483f;outline-offset:5px}@media(max-width:600px){.bm-policy{padding:44px 22px 56px}.bm-policy-links{gap:12px 20px}.bm-policy-nav{padding-left:20px;padding-right:20px}}

/* Editable coastal hero: keep the media unfiltered, tint only the left */
.bm-editorial-hero{position:relative;isolation:isolate;min-height:600px;display:flex;align-items:center;width:100vw;max-width:none;margin-left:calc(50% - 50vw);background:#FAF8F3;overflow:hidden}.bm-editorial-hero .bm-hero-media{position:absolute;inset:0;z-index:0;margin:0;width:100%;height:100%}.bm-editorial-hero .bm-hero-media video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;filter:none}.bm-editorial-hero:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(250,248,243,.90) 0%,rgba(250,248,243,.80) 25%,rgba(250,248,243,.50) 38%,rgba(250,248,243,0) 55%)}.bm-editorial-hero .bm-hero-editable-copy{position:relative;z-index:2;width:42%;max-width:470px;margin:0 0 0 max(28px,calc((100vw - 1120px)/2));padding:60px 0 80px}.bm-hero-editable-copy h1{font-family:"Libre Baskerville",serif;font-size:clamp(38px,4.1vw,58px);line-height:1.13;margin:0 0 24px;letter-spacing:-.035em;color:#000}.bm-hero-editable-copy .bm-eyebrow{margin:0 0 22px}.bm-hero-editable-copy .bm-hero-description{font-size:17px;line-height:1.75;margin:0 0 28px;max-width:415px;color:#000}.bm-hero-editable-copy .wp-block-buttons{display:flex;gap:12px;flex-wrap:wrap}.bm-hero-editable-copy .wp-block-button__link{display:inline-block;background:#A59586;color:#000;border:1px solid #A59586;border-radius:2px;padding:14px 19px;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none}.bm-hero-editable-copy .is-style-outline .wp-block-button__link{background:#FAF8F3;border-color:#A59586}.bm-hero-editable-copy .wp-block-button__link:hover{background:#DDD3C5}.bm-hero-editable-copy .wp-block-button__link:focus-visible{outline:2px solid #000;outline-offset:4px}@media(max-width:900px){.bm-editorial-hero{min-height:560px}.bm-editorial-hero .bm-hero-editable-copy{width:43%;margin-left:28px}.bm-hero-editable-copy h1{font-size:40px}}@media(max-width:700px){.bm-editorial-hero{display:flex;flex-direction:column;min-height:0;overflow:visible}.bm-editorial-hero:after{display:none}.bm-editorial-hero .bm-hero-editable-copy{order:0;width:auto;max-width:540px;margin:0;padding:42px 24px 36px;background:#FAF8F3}.bm-hero-editable-copy h1{font-size:clamp(34px,8.6vw,44px)}.bm-hero-editable-copy .bm-hero-description{font-size:16px}.bm-editorial-hero .bm-hero-media{order:1;position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/9}.bm-editorial-hero .bm-hero-media video{height:auto;aspect-ratio:16/9;object-fit:contain}.bm-hero-editable-copy .wp-block-button__link{font-size:13px;padding:13px 16px}}

.bm-editorial-hero>.wp-block-group__inner-container{width:100%;min-width:0}@media(max-width:700px){.bm-editorial-hero>.wp-block-group__inner-container{display:flex;flex-direction:column}}

/* Calm three-column footer */
.bm-column-footer{background:#DDD3C5;color:#000}.bm-column-footer .bm-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.25fr;gap:80px;max-width:1120px;padding:52px 24px 40px;margin:0 auto}.bm-footer-brand{max-width:330px}.bm-column-footer .bm-footer-title{font-family:"Libre Baskerville",Georgia,serif;font-size:18px;line-height:1.5;margin:0 0 14px}.bm-footer-title a{color:#000;text-decoration:none}.bm-footer-brand>p:not(.bm-footer-title){font-size:13px;line-height:1.85;margin:0}.bm-column-footer h2{font-family:"Raleway",Arial,sans-serif;font-size:11px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;margin:0 0 16px;line-height:1.5}.bm-footer-menu{list-style:none;padding:0;margin:0}.bm-footer-menu li{margin:0 0 8px;padding:0}.bm-footer-menu a,.bm-footer-contact>a{font-size:13px;line-height:1.6;color:#000;text-decoration:none}.bm-footer-contact>a{overflow-wrap:anywhere}.bm-footer-menu a:hover,.bm-footer-contact>a:hover{text-decoration:underline;text-underline-offset:4px}.bm-column-footer .bm-policy-nav{border-top:1px solid rgba(0,0,0,.08);max-width:none;padding:20px 24px}.bm-column-footer .bm-policy-links{gap:10px 24px}.bm-column-footer .bm-policy-links a{font-size:11px;text-decoration:none}.bm-column-footer .bm-policy-links a:hover{text-decoration:underline}.bm-column-footer .site-footer-bottom{border-top:1px solid rgba(0,0,0,.08);padding:18px 24px}.bm-column-footer .site-footer-bottom .container{display:block;text-align:center}.bm-column-footer .footer-credit{font-size:11px;margin:0;line-height:1.7}@media(max-width:800px){.bm-column-footer .bm-footer-grid{gap:36px;grid-template-columns:1.3fr 1fr 1.2fr}}@media(max-width:600px){.bm-column-footer .bm-footer-grid{grid-template-columns:1fr;gap:30px;padding:36px 24px 30px}.bm-column-footer .bm-footer-brand{max-width:360px}.bm-column-footer .bm-policy-links{justify-content:flex-start;gap:12px 22px}.bm-column-footer .site-footer-bottom .container{padding:0}}

/* Mobile hero: editable text over the coastal video */
@media(max-width:700px){.bm-editorial-hero{display:block;min-height:600px;overflow:hidden}.bm-editorial-hero>.wp-block-group__inner-container{display:block;width:100%}.bm-editorial-hero .bm-hero-media{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0}.bm-editorial-hero .bm-hero-media video{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:80% center;filter:none;opacity:1}.bm-editorial-hero:after{display:block;background:linear-gradient(180deg,rgba(250,248,243,.92) 0%,rgba(250,248,243,.83) 30%,rgba(250,248,243,.5) 47%,rgba(250,248,243,0) 64%)}.bm-editorial-hero .bm-hero-editable-copy{width:auto;max-width:450px;margin:0;padding:32px 26px 260px;background:transparent}.bm-hero-editable-copy h1{font-size:clamp(29px,8vw,38px);line-height:1.12;margin:0 0 16px}.bm-hero-editable-copy .bm-eyebrow{font-size:10px;letter-spacing:.15em;margin-bottom:16px}.bm-hero-editable-copy .bm-hero-description{font-size:15px;line-height:1.65;margin:0 0 20px}.bm-hero-editable-copy .wp-block-buttons{gap:10px}.bm-hero-editable-copy .wp-block-button__link{font-size:12px;padding:12px 14px}}

/* Homepage introduction: calm, readable editorial columns */
.home .entry-content>.bm-editorial-hero+p:empty{display:none}.home .entry-content>h2.wp-block-heading:first-of-type{float:left;width:38%;margin:0 8% 26px 0;padding-top:78px;font-family:"Libre Baskerville",Georgia,serif;font-size:clamp(28px,3vw,39px);line-height:1.3;letter-spacing:-.025em}.home .entry-content>h2.wp-block-heading:first-of-type:before{content:"";display:block;width:44px;height:3px;background:#B2BDA0;margin-bottom:24px}.home .entry-content>h2.wp-block-heading:first-of-type~p.wp-block-paragraph{margin:0 3% 24px 46%;font-size:17px;line-height:1.9;max-width:62ch;color:#000}.home .entry-content>h2.wp-block-heading:first-of-type+p.wp-block-paragraph{padding-top:78px}.home .entry-content>.wp-block-separator{clear:both;margin:64px 0 48px;border:0;height:1px;opacity:.65}@media(max-width:760px){.home .entry-content>h2.wp-block-heading:first-of-type{float:none;width:auto;max-width:540px;margin:0 0 26px;padding-top:48px;font-size:30px;line-height:1.3}.home .entry-content>h2.wp-block-heading:first-of-type~p.wp-block-paragraph{margin:0 0 22px;font-size:16px;line-height:1.85;max-width:62ch}.home .entry-content>h2.wp-block-heading:first-of-type+p.wp-block-paragraph{padding-top:0}.home .entry-content>.wp-block-separator{margin:40px 0}}

/* About Me (page 12): full-width, left-aligned like the other pages.
   Rules are wrapped in :where() so they carry almost no weight - any font size, color,
   alignment or spacing you set on a block in the WordPress editor will override them. */
:where(.page-id-12) .entry-content{padding:56px 0 32px}
:where(.page-id-12 .entry-content) p{font-size:16px;line-height:1.7;margin:0 0 22px}
:where(.page-id-12 .entry-content) li{font-size:16px;line-height:1.7;margin-bottom:8px}
:where(.page-id-12 .entry-content) :is(h2,h3,h4){font-family:var(--font-heading);font-size:23px;font-weight:400;line-height:1.4;margin:0 0 18px;padding-top:20px}
:where(.page-id-12 .entry-content) h1{margin:0 0 36px}
:where(.page-id-12 .entry-content) .wp-block-image{margin:0 0 30px}
:where(.page-id-12 .entry-content) .wp-block-image+:is(h2,h3,h4){padding-top:0}
:where(.page-id-12 .entry-content) .wp-block-image figure{margin-top:0;margin-bottom:0}
:where(.page-id-12 .entry-content) .wp-block-image.alignleft{margin:6px 40px 24px 0}
:where(.page-id-12 .entry-content) .wp-block-image.alignright{margin:6px 0 24px 40px}
:where(.page-id-12 .entry-content) .wp-block-image img{max-width:100%;height:auto;border-radius:3px}
:where(.page-id-12 .entry-content) .wp-block-spacer+:is(h2,h3,h4){padding-top:0}
@media(max-width:650px){:where(.page-id-12) .entry-content{padding-top:36px}:where(.page-id-12 .entry-content) .wp-block-image:is(.alignleft,.alignright){float:none;margin:0 0 28px;max-width:100%}:where(.page-id-12 .entry-content) .wp-block-image:is(.alignleft,.alignright) img{width:100%!important}:where(.page-id-12 .entry-content) h1{margin-bottom:28px}:where(.page-id-12 .entry-content) :is(h2,h3,h4){padding-top:16px}:where(.page-id-12 .entry-content) .wp-block-spacer{max-height:32px}}


/* Label line with green rule (same look as .bm-eyebrow). Applied automatically to the first line of a Media & Text block on the homepage; add the class bm-eyebrow to any other paragraph for the same look. */
.home .wp-block-media-text__content>p:first-child{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:600;margin:0 0 18px}.home .wp-block-media-text__content>p:first-child:before{content:'';display:inline-block;width:28px;height:2px;background:#B2BDA0;margin:0 12px 4px 0}

/* Page label: a paragraph placed directly above the page title (H1) gets the same look as .bm-eyebrow - small caps text with the green line. */
.page .entry-content>p:first-child:has(+h1){font-family:var(--font-body);font-size:11px;line-height:1.7;text-transform:uppercase;letter-spacing:.2em;font-weight:600;margin:0 0 18px}.page .entry-content>p:first-child:has(+h1):before{content:'';display:inline-block;width:28px;height:2px;background:#B2BDA0;margin:0 12px 4px 0}
.page .entry-content:has(>p:first-child+h1){padding-top:76px}@media(max-width:600px){.page .entry-content:has(>p:first-child+h1){padding-top:44px}}

/* Raleway: use full-height (lining) numbers instead of its default old-style numbers. */
body{font-variant-numeric:lining-nums}

/* Homepage "From the blog" section (inc/home-latest-posts.php) */
.bm-latest{margin:8px 0 72px}
.bm-latest-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:28px}
.bm-latest-head h2{font-family:var(--font-heading);font-size:clamp(28px,3vw,36px);font-weight:400;line-height:1.25;margin:0}
.bm-latest-all{font-size:13px;font-weight:600;color:#000;text-decoration:underline;text-underline-offset:5px;white-space:nowrap}
.bm-latest-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px;align-items:start}
.bm-latest-image{display:block;margin-bottom:22px}
.bm-latest-image img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px;display:block}
.bm-latest-cat{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:#000;margin:0 0 10px}
.bm-latest-cat:before{content:'';display:inline-block;width:20px;height:2px;background:#B2BDA0;margin:0 10px 4px 0}
.bm-latest h3{font-family:var(--font-heading);font-weight:400;letter-spacing:-.01em;margin:0 0 10px}
.bm-latest h3 a{color:#000;text-decoration:none}
.bm-latest h3 a:hover,.bm-latest h3 a:focus{text-decoration:underline;text-underline-offset:5px}
.bm-latest-lead h3{font-size:clamp(24px,2.4vw,30px);line-height:1.3}
.bm-latest-lead .bm-latest-excerpt{font-size:16px;line-height:1.7;margin:0 0 12px;max-width:60ch}
.bm-latest-meta{font-size:13px;margin:0;color:#000;opacity:.75}
.bm-latest-list{border-top:1px solid #DDD3C5}
.bm-latest-item{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:20px;align-items:start;padding:20px 0;border-bottom:1px solid #DDD3C5}
.bm-latest-item h3{font-size:19px;line-height:1.4}
.bm-latest-item .bm-latest-excerpt{font-size:14px;line-height:1.65;margin:0}
.bm-latest-thumb img{width:96px;height:72px;object-fit:cover;border-radius:3px;display:block}
@media(max-width:860px){.bm-latest-grid{grid-template-columns:1fr;gap:28px}}
@media(max-width:600px){.bm-latest{margin-bottom:48px}.bm-latest-head{margin-bottom:20px}.bm-latest-item{grid-template-columns:minmax(0,1fr) 80px;gap:16px}.bm-latest-thumb img{width:80px;height:64px}.bm-latest-item h3{font-size:18px}}

/* Blog page: header above the post grid, and "Browse by category" cards ([bm_articles] in functions.php) */
.bm-grid-head{margin:8px 0 32px}
.bm-grid-head .bm-eyebrow{margin:0 0 12px}
.bm-grid-head h2{font-family:var(--font-heading);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1.25;margin:0}
.bm-cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:8px}
.bm-cat-card{display:block;color:#000;text-decoration:none}
.bm-cat-card:hover,.bm-cat-card:focus{text-decoration:none;color:#000}
.bm-cat-img{display:block;overflow:hidden;border-radius:3px;aspect-ratio:4/3;background:#DDD3C5;margin-bottom:16px}
.bm-cat-img img{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .35s ease}
.bm-cat-card:hover .bm-cat-img img,.bm-cat-card:focus .bm-cat-img img{transform:scale(1.04)}
.bm-cat-text{display:block;border-top:2px solid #B2BDA0;padding-top:14px}
.bm-cat-name{display:block;font-family:var(--font-heading);font-size:21px;line-height:1.35;margin-bottom:6px}
.bm-cat-card:hover .bm-cat-name,.bm-cat-card:focus .bm-cat-name{text-decoration:underline;text-underline-offset:5px}
.bm-cat-meta{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.14em}
@media(max-width:900px){.bm-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
@media(max-width:480px){.bm-cat-grid{grid-template-columns:1fr}.bm-cat-name{font-size:19px}}
/* Five categories: one row of five on wide screens, three across on smaller laptops. "Coming soon" cards are muted and not clickable. */
@media(min-width:1101px){.bm-cat-grid:has(>:nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}}
@media(min-width:901px) and (max-width:1100px){.bm-cat-grid:has(>:nth-child(5):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
.bm-cat-soon .bm-cat-img-empty{background:#EDE7DD}.bm-cat-soon .bm-cat-meta{color:#7a6e63}

/* Homepage intro: an optional label paragraph placed directly above the "Maybe you're ready…" heading.
   It takes over the green line (the heading's own line is hidden) and sits above the heading in the left column. */
.home .entry-content>p:has(+h2.wp-block-heading:first-of-type){float:left;clear:left;width:38%;margin:0 8% 0 0;padding-top:78px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;line-height:1.7}
.home .entry-content>p:has(+h2.wp-block-heading:first-of-type):before{content:"";display:inline-block;width:28px;height:2px;background:#B2BDA0;margin:0 12px 4px 0}
.home .entry-content>p:has(+h2.wp-block-heading:first-of-type)+h2.wp-block-heading{clear:left;padding-top:16px}
.home .entry-content>p:has(+h2.wp-block-heading:first-of-type)+h2.wp-block-heading:before{display:none}
@media(max-width:760px){.home .entry-content>p:has(+h2.wp-block-heading:first-of-type){float:none;width:auto;margin:0;padding-top:48px}.home .entry-content>p:has(+h2.wp-block-heading:first-of-type)+h2.wp-block-heading{padding-top:12px}}

/* "From the blog": when the columns stack, drop the last post's bottom border so it doesn't double up with the divider below */
@media(max-width:860px){.bm-latest-item:last-child{border-bottom:0;padding-bottom:0}}

/* Hero safeguard: if the hero gets wrapped in a Row/Group block, keep it full width with the text on the left, and hide an empty link paragraph in that wrapper. */
.home .entry-content>.wp-block-group:has(>.bm-editorial-hero){display:block;margin:0;padding:0}.home .entry-content>.wp-block-group>.bm-editorial-hero{margin:0 0 0 calc(50% - 50vw)}.home .entry-content>.wp-block-group:has(>.bm-editorial-hero)>p:has(>a:empty){display:none}

/* Resources (14) and Blog (16): the top banner image is set to 450px tall in the editor; on phones use a shorter 4:3 crop instead. */
@media(max-width:700px){:is(.page-id-14,.page-id-16) .entry-content>figure.wp-block-image.is-resized:first-of-type img{height:auto!important;aspect-ratio:4/3}}
/* Social icons: footer Contact column and link-in-bio page. */
.bm-social{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:18px 0 0}
.bm-social li{margin:0;padding:0}
.bm-social a{display:grid;place-content:center;width:40px;height:40px;border:1px solid #A59586;border-radius:50%;color:#000;text-decoration:none;transition:background-color .2s}
.bm-social a:hover,.bm-social a:focus{background:#A59586;text-decoration:none}
.bm-social svg{width:19px;height:19px;display:block}
.bmb .bm-social{justify-content:center;gap:12px;margin:28px 0 18px}
.bmb .bm-social a{width:44px;height:44px;background:#DDD3C5}
.bmb .bm-social a:hover,.bmb .bm-social a:focus{background:#A59586}
