/* ==========================================================================
   BestHome – main stylesheet
   1. Tokens  2. Base  3. Layout & utilities  4. Components
   5. Header & navigation  6. Footer
   Page-specific styles are appended in later sections.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--c-primary: #005b36;
	--c-primary-dark: #01452f;
	--c-primary-hover: #004529;
	--c-green-50: #f3f7f2;
	--c-green-25: #f7faf6;
	--c-green-100: #e3eee6;
	--c-cream: #faf3eb;
	--c-cream-light: #fcf8f1;
	--c-red-50: #fdf1f1;
	--c-red: #c62828;
	--c-purple: #6b2fd6;
	--c-amber: #b45309;
	--c-ink: #16211b;
	--c-text: #2c3631;
	--c-muted: #4a5650;
	--c-border: #e2e8e3;
	--c-white: #fff;

	--f-heading: Merriweather, Georgia, "Times New Roman", serif;
	--f-body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--radius-sm: 6px;
	--radius: 10px;
	--radius-lg: 14px;
	--shadow-sm: 0 1px 2px rgba(22, 33, 27, .06);
	--shadow: 0 4px 18px rgba(22, 33, 27, .08);

	--container: 1200px;
	--gutter: 16px;
	--header-h: 72px;
	--focus: 0 0 0 3px #fff, 0 0 0 5px var(--c-primary);
}

@media (min-width: 768px) {
	:root { --gutter: 24px; }
}

/* 2. Base ------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }

body {
	margin: 0;
	font-family: var(--f-body);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--c-text);
	background: var(--c-white);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--f-heading);
	color: var(--c-ink);
	line-height: 1.25;
	font-weight: 700;
	margin: 0 0 .5em;
}
h1 { font-size: clamp(2rem, 4.2vw, 3rem); font-weight: 800; letter-spacing: -.01em; }
h2 { font-size: clamp(1.4rem, 2.4vw, 1.75rem); }
h3 { font-size: 1.15rem; }

p { margin: 0 0 1em; }
a { color: var(--c-primary); text-underline-offset: 2px; }
a:hover { color: var(--c-primary-hover); }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
ul, ol { padding-left: 1.25em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

:focus-visible { outline: none; box-shadow: var(--focus); border-radius: 4px; }

.icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	vertical-align: middle;
}

/* 3. Layout & utilities ----------------------------------------------------- */
.container {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed !important;
	top: 8px;
	left: 8px;
	z-index: 1000;
	width: auto;
	height: auto;
	padding: 10px 16px;
	margin: 0;
	clip: auto;
	background: var(--c-white);
	color: var(--c-primary);
	font-weight: 600;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow);
}

.section { padding-block: 48px; }
.section--green { background: var(--c-green-50); }
.section--cream { background: var(--c-cream-light); }
@media (min-width: 1024px) { .section { padding-block: 64px; } }

/* 4. Components ------------------------------------------------------------- */

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 44px;
	padding: .65em 1.25em;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font-family: var(--f-body);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn .icon { width: 1.05em; height: 1.05em; }
.btn--primary { background: var(--c-primary); color: var(--c-white); }
.btn--primary:hover { background: var(--c-primary-hover); color: var(--c-white); }
.btn--light { background: var(--c-green-50); color: var(--c-primary); }
.btn--light:hover { background: var(--c-green-100); color: var(--c-primary-hover); }
.btn--outline { background: var(--c-white); color: var(--c-primary); border-color: var(--c-primary); }
.btn--outline:hover { background: var(--c-green-50); }
.btn--block { width: 100%; }

/* Badges (content types) */
.badge {
	display: inline-block;
	padding: .2em .65em;
	border-radius: 4px;
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--c-white);
	background: var(--c-primary);
	white-space: nowrap;
}
.badge--purple { background: var(--c-purple); }
.badge--amber { background: var(--c-amber); }
.badge--soft { background: var(--c-green-50); color: var(--c-primary); }

/* Pill label above hero titles */
.eyebrow {
	display: inline-block;
	padding: .25em .8em;
	border-radius: 999px;
	background: var(--c-green-50);
	color: var(--c-primary);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* Section heading: icon + serif title + subtitle + "view all" link */
.section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px 24px;
	margin-bottom: 24px;
}
.section-head__title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}
.section-head__title .icon { width: 30px; height: 30px; color: var(--c-primary); }
.section-head__sub { margin: 4px 0 0; color: var(--c-muted); font-size: .95rem; }
.section-head__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: .9rem;
	text-decoration: none;
}
.section-head__link .icon { width: 16px; height: 16px; }

/* Breadcrumbs */
.breadcrumbs { font-size: .85rem; color: var(--c-muted); margin-bottom: 12px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li:not(:last-child)::after { content: "›"; margin-left: 6px; color: var(--c-muted); }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }

/* Card base */
.card {
	display: flex;
	flex-direction: column;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

/* Search form */
.search-form {
	display: flex;
	align-items: stretch;
	position: relative;
	width: 100%;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
}
.search-form:focus-within { border-color: var(--c-primary); }
.search-form__icon {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--c-muted);
	pointer-events: none;
	display: flex;
}
.search-form__icon .icon { width: 18px; height: 18px; }
.search-form__input {
	flex: 1;
	min-width: 0;
	min-height: 44px;
	padding: 8px 12px 8px 40px;
	border: 0;
	background: transparent;
	font-size: .9rem;
}
.search-form__input:focus { outline: none; }
.search-form__input::placeholder { color: #6b7570; }
.search-form__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	border: 0;
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	margin: -1px -1px -1px 0;
	background: var(--c-primary);
	color: var(--c-white);
}
.search-form__submit:hover { background: var(--c-primary-hover); }

/* 5. Header & navigation ---------------------------------------------------- */
.site-header {
	position: relative;
	z-index: 50;
	background: var(--c-white);
	border-bottom: 1px solid var(--c-border);
}
.site-header__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: var(--header-h);
}

.site-logo { display: inline-flex; flex: none; margin-right: 8px; text-decoration: none; }
.site-logo img { height: 36px; width: auto; }
.site-logo--header img { height: 40px; }
@media (max-width: 599px) {
	.site-logo--header img { height: 30px; }
}
.site-logo .custom-logo { max-height: 48px; width: auto; }

.nav-toggle {
	display: none;
	margin-left: auto;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	background: var(--c-white);
	color: var(--c-ink);
}
.nav-toggle .icon { width: 24px; height: 24px; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: flex; }

.primary-nav .menu { list-style: none; margin: 0; padding: 0; }
.primary-nav a {
	color: var(--c-ink);
	text-decoration: none;
	font-weight: 500;
}
.primary-nav a:hover,
.primary-nav .current-menu-item > a,
.primary-nav .current-menu-ancestor > a,
.primary-nav .current-cat > a { color: var(--c-primary); }
.submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: none;
	color: var(--c-muted);
	padding: 0;
}
.submenu-toggle .icon { width: 14px; height: 14px; transition: transform .15s ease; }
.submenu-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.primary-nav .sub-menu { list-style: none; margin: 0; padding: 0; }

/* Desktop: inline menu with dropdowns */
@media (min-width: 1200px) {
	.site-panel {
		display: flex;
		align-items: center;
		flex: 1;
		gap: 20px;
		min-width: 0;
	}
	.primary-nav { flex: 1; min-width: 0; }
	.primary-nav .menu {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-wrap: nowrap;
		gap: 0 14px;
	}
	.primary-nav .menu > li {
		position: relative;
		display: flex;
		align-items: center;
		gap: 2px;
	}
	.primary-nav .menu > li > a { font-size: .85rem; padding: 10px 0; white-space: nowrap; }
	.submenu-toggle { width: 24px; height: 32px; margin-right: -6px; } /* 24px target (WCAG 2.5.8), same footprint */
	.primary-nav .sub-menu {
		position: absolute;
		top: 100%;
		left: -12px;
		min-width: 220px;
		padding: 8px;
		background: var(--c-white);
		border: 1px solid var(--c-border);
		border-radius: var(--radius);
		box-shadow: var(--shadow);
		opacity: 0;
		visibility: hidden;
		transform: translateY(4px);
		transition: opacity .15s ease, transform .15s ease, visibility .15s;
	}
	.primary-nav .menu > li:hover > .sub-menu,
	.primary-nav .menu > li.is-open > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.primary-nav .sub-menu a {
		display: block;
		padding: 8px 12px;
		border-radius: var(--radius-sm);
		font-size: .9rem;
	}
	.primary-nav .sub-menu a:hover { background: var(--c-green-50); }
	.site-header__search { flex: 0 0 250px; }
	.site-logo--header img { height: 36px; }
	.search-form--header { background: var(--c-green-25); }
}
@media (min-width: 1200px) and (max-width: 1279px) {
	.site-header__search { flex-basis: 190px; }
	.primary-nav .menu { gap: 0 10px; }
	.site-header__inner { gap: 12px; }
}

/* Tablet & mobile: toggle opens a full-width panel under the bar */
@media (max-width: 1199px) {
	.nav-toggle { display: inline-flex; }
	.site-panel {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		max-height: calc(100vh - var(--header-h));
		overflow-y: auto;
		padding: 16px var(--gutter) 24px;
		background: var(--c-white);
		border-bottom: 1px solid var(--c-border);
		box-shadow: var(--shadow);
	}
	.site-panel.is-open { display: flex; flex-direction: column; }
	.site-header__search { order: -1; margin-bottom: 12px; }
	.primary-nav .menu > li {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		border-bottom: 1px solid var(--c-border);
	}
	.primary-nav .menu > li > a { flex: 1; padding: 12px 0; font-size: 1rem; font-weight: 600; }
	.submenu-toggle { width: 44px; height: 44px; }
	.primary-nav .sub-menu { display: none; width: 100%; padding: 0 0 8px 12px; }
	.primary-nav li.is-open > .sub-menu { display: block; }
	.primary-nav .sub-menu a { display: block; padding: 10px 0; font-size: .95rem; color: var(--c-muted); }
}

/* 6. Footer ----------------------------------------------------------------- */
.site-footer {
	background: var(--c-primary-dark);
	color: #d6e4db;
	font-size: .9rem;
}
.site-footer a { color: #e8f0eb; text-decoration: none; }
.site-footer a:hover { color: var(--c-white); text-decoration: underline; }
.site-footer__top {
	display: grid;
	gap: 32px;
	padding-block: 40px;
}
@media (min-width: 600px) {
	.site-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__brand { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
	.site-footer__top { grid-template-columns: 1.6fr 1fr 1.3fr 1fr; gap: 40px; padding-block: 48px; }
	.site-footer__brand { grid-column: auto; }
}
.site-footer__brand .site-logo img { height: 40px; }
.site-footer__about { margin: 12px 0 16px; max-width: 34ch; }
.site-footer__heading {
	font-family: var(--f-body);
	font-size: .95rem;
	font-weight: 700;
	color: var(--c-white);
	margin: 0 0 12px;
}
.footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
@media (min-width: 1024px) {
	.site-footer__col--categories .footer-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
}

.social-links { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0; }
.social-links a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: var(--c-white);
}
.social-links a:hover { background: rgba(255, 255, 255, .22); text-decoration: none; }
.social-links .icon { width: 18px; height: 18px; }

.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .14); }
.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	padding-block: 16px;
	font-size: .82rem;
}
.site-footer__bottom-inner p { margin: 0; }
.site-footer__bottom .footer-menu { display: flex; flex-wrap: wrap; gap: 4px 0; }
.site-footer__bottom .footer-menu li + li::before { content: "|"; margin: 0 12px; opacity: .5; }
.site-footer :focus-visible { box-shadow: 0 0 0 3px var(--c-primary-dark), 0 0 0 5px #fff; }

/* Fallback main area (until page templates are built) */
.site-main { padding-block: 40px; min-height: 40vh; }
.site-main--home { padding-block: 0; }

/* 7. Shared article & category cards --------------------------------------- */
.text-green { color: var(--c-primary); }

.post-grid { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) {
	.post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.post-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
	.post-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.article-card { position: relative; transition: box-shadow .15s ease, transform .15s ease; }
.article-card:hover { box-shadow: var(--shadow); }
.article-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background: var(--c-green-50);
	overflow: hidden;
}
.article-card__media img { width: 100%; height: 100%; object-fit: cover; }
.article-card__placeholder,
.cat-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--c-primary);
	background: linear-gradient(135deg, var(--c-green-50), var(--c-cream-light));
}
.article-card__placeholder .icon { width: 56px; height: 56px; stroke-width: 1.5; opacity: .8; }
.article-card__badge { position: absolute; top: 12px; left: 12px; }
.article-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 6px;
	padding: 16px;
}
.article-card__cat { font-size: .75rem; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--c-primary); }
.article-card__title { font-size: 1.05rem; line-height: 1.35; margin: 0; }
.post-grid--3 .article-card__title { font-size: 1.15rem; }
.article-card__title a { color: var(--c-ink); text-decoration: none; }
.article-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.article-card:hover .article-card__title a { color: var(--c-primary); }
.article-card:focus-within { box-shadow: var(--focus); }
.article-card__title a:focus-visible { box-shadow: none; }
.article-card__excerpt { margin: 0; font-size: .9rem; color: var(--c-muted); line-height: 1.55; }
.article-card__btn { margin-top: auto; align-self: stretch; justify-content: flex-start; font-size: .85rem; min-height: 40px; }
.article-card--solid .article-card__btn { justify-content: center; }
.article-card__excerpt + .article-card__btn { margin-top: 10px; }

/* 8. Homepage --------------------------------------------------------------- */

/* Hero */
.home-hero {
	position: relative;
	overflow: hidden;
	background: var(--c-cream-light);
}
.home-hero__media { position: relative; height: 200px; }
.home-hero__media img,
.home-hero__placeholder { width: 100%; height: 100%; object-fit: cover; }
.home-hero__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(circle at 70% 40%, rgba(255, 255, 255, .9), transparent 55%),
		linear-gradient(135deg, var(--c-green-50) 0%, var(--c-cream) 100%);
	color: var(--c-primary);
}
.home-hero__placeholder .icon { width: 120px; height: 120px; stroke-width: 1; opacity: .25; }
@media (min-width: 1024px) { .home-hero__placeholder { align-items: flex-end; padding-bottom: 48px; } }
.home-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	padding-block: 28px 40px;
}
.home-hero__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	width: fit-content;
	margin: 0 0 16px;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--c-green-50);
	color: var(--c-primary);
	font-size: .75rem;
	font-weight: 600;
}
.home-hero__tags .icon { width: 14px; height: 14px; }
.home-hero__title { margin-bottom: 16px; font-size: clamp(2rem, 4.6vw, 3.25rem); line-height: 1.15; }
.home-hero__text { max-width: 52ch; color: var(--c-text); font-size: 1.05rem; }

.hero-search {
	position: relative;
	display: flex;
	gap: 0;
	max-width: 560px;
	margin-top: 24px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
}
.hero-search:focus-within { border-color: var(--c-primary); }
.hero-search__icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--c-muted); display: flex; }
.hero-search__icon .icon { width: 18px; height: 18px; }
.hero-search__input { flex: 1; min-width: 0; min-height: 52px; padding: 10px 12px 10px 42px; border: 0; background: transparent; }
.hero-search__input:focus { outline: none; }
.hero-search__btn { border-radius: 0 var(--radius-sm) var(--radius-sm) 0; margin: -1px -1px -1px 0; min-height: 54px; padding-inline: 28px; }

.home-hero__popular { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; font-size: .82rem; }
.home-hero__popular-label { font-weight: 600; color: var(--c-ink); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.chip {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 4px 12px;
	border: 1px solid var(--c-border);
	border-radius: 999px;
	background: var(--c-white);
	color: var(--c-text);
	text-decoration: none;
}
.chip:hover { border-color: var(--c-primary); color: var(--c-primary); }
.home-hero__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 18px; font-weight: 600; text-decoration: none; }
.home-hero__cta .icon { width: 16px; height: 16px; }

.trust-card {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 18px;
	list-style: none;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	align-self: start;
}
.trust-card__item { display: flex; gap: 10px; min-width: 0; font-size: .78rem; line-height: 1.4; color: var(--c-muted); }
.trust-card__item strong { display: block; font-size: .82rem; color: var(--c-ink); }
.trust-card__item .icon { width: 26px; height: 26px; color: var(--c-primary); }

@media (max-width: 1023px) {
	.home-hero--no-image .home-hero__media { display: none; }
	.home-hero--no-image .home-hero__inner { padding-top: 40px; }
}
@media (max-width: 599px) {
	.home-posts .post-grid--4 > :nth-child(n+3) { display: none; }
}
@media (max-width: 479px) {
	.trust-card { grid-template-columns: minmax(0, 1fr); }
	.hero-search__btn { padding-inline: 18px; }
}
@media (min-width: 768px) {
	.home-hero__media { height: 260px; }
}
@media (min-width: 1024px) {
	.home-hero { min-height: 520px; }
	.home-hero__media {
		position: absolute;
		inset: 0 0 0 auto;
		width: 58%;
		height: auto;
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 30%);
		mask-image: linear-gradient(to right, transparent 0, #000 30%);
	}
	.home-hero__inner {
		grid-template-columns: minmax(0, 1fr) 400px;
		align-items: start;
		padding-block: 56px 64px;
	}
	.home-hero__content { max-width: 600px; }
	.trust-card { margin-top: 0; }
}

/* Category grid */
.cat-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 768px) { .cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } }
@media (min-width: 1200px) { .cat-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.cat-card { position: relative; }
.cat-card:hover { box-shadow: var(--shadow); }
.cat-card:focus-within { box-shadow: var(--focus); }
.cat-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--c-green-50); }
.cat-card__media img { width: 100%; height: 100%; object-fit: cover; }
.cat-card__icon .icon { width: 44px; height: 44px; stroke-width: 1.6; }
.cat-card__body { display: flex; flex-direction: column; flex: 1; gap: 4px; padding: 12px 14px 14px; }
.cat-card__title { font-size: .98rem; margin: 0; }
.cat-card__title a { color: var(--c-ink); text-decoration: none; }
.cat-card__title a::after { content: ""; position: absolute; inset: 0; }
.cat-card__title a:focus-visible { box-shadow: none; }
.cat-card:hover .cat-card__title a { color: var(--c-primary); }
.cat-card__desc { margin: 0; font-size: .8rem; line-height: 1.45; color: var(--c-muted); }
.cat-card__count {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: fit-content;
	margin-top: auto;
	padding: 4px 10px;
	border-radius: var(--radius-sm);
	background: var(--c-green-50);
	color: var(--c-primary);
	font-size: .78rem;
	font-weight: 600;
}
.cat-card__desc + .cat-card__count { margin-top: 8px; }
.cat-card__count .icon { width: 14px; height: 14px; }

.home-posts + .home-posts { padding-top: 0; }

/* Full-width bands (How We Research / About) */
.home-band {
	display: grid;
	gap: 24px;
	align-items: center;
	padding: 0 var(--gutter) 40px;
}
.home-band--green { background: var(--c-green-50); }
.home-band--cream { background: var(--c-cream); }
.home-band__media { margin-inline: calc(var(--gutter) * -1); height: 180px; overflow: hidden; }
.home-band__media img,
.home-band__placeholder { width: 100%; height: 100%; object-fit: cover; }
.home-band__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c-primary);
	background: linear-gradient(135deg, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0));
}
.home-band__placeholder .icon { width: 72px; height: 72px; stroke-width: 1.2; opacity: .45; }
.home-band__content .section-head__title { margin-bottom: 12px; }
.home-band__content p { color: var(--c-text); max-width: 60ch; }
.home-band__list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 18px;
	list-style: none;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	font-size: .9rem;
}
.home-band__list li { display: flex; align-items: center; gap: 12px; }
.home-band__list .icon { width: 22px; height: 22px; color: var(--c-primary); }
.home-band__list--checks { background: transparent; border: 0; padding: 0; }
@media (min-width: 1024px) {
	.home-band {
		grid-template-columns: 280px minmax(0, 1fr) 340px;
		gap: 40px;
		padding: 0 max(var(--gutter), calc((100vw - var(--container)) / 2)) 0 0;
		min-height: 230px;
	}
	.home-band__media { margin: 0; height: 100%; min-height: 230px; }
	.home-band__content { padding-block: 36px; }
	.home-band__list { margin-block: 32px; }
}

/* How to choose */
.tip-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 600px) { .tip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tip-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.tip-card { flex-direction: row; align-items: flex-start; gap: 12px; padding: 16px; }
.tip-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--c-green-50);
	color: var(--c-primary);
}
.tip-card__icon .icon { width: 22px; height: 22px; }
.tip-card__title { font-family: var(--f-body); font-size: .9rem; margin: 0 0 2px; }
.tip-card__text { margin: 0; font-size: .8rem; line-height: 1.45; color: var(--c-muted); }
@media (min-width: 1024px) {
	.home-cats,
	.home-posts,
	.home-choose { padding-block: 44px; }
	.home-posts + .home-posts { padding-top: 4px; }
}

/* 9. Listing pages (category, search, archives) ----------------------------- */
.site-main--listing { padding-block: 0 48px; }

/* Page hero (shared by category, search and archive pages) */
.page-hero { position: relative; overflow: hidden; background: var(--c-cream-light); }
.page-hero__media { display: none; }
.page-hero__inner { position: relative; padding-block: 20px 32px; }
.page-hero .breadcrumbs { margin-bottom: 14px; }
.eyebrow--plain { background: none; padding: 0; margin: 0 0 8px; font-size: .8rem; }
.page-hero__title { max-width: 18ch; margin-bottom: 12px; font-size: clamp(1.9rem, 4.4vw, 3rem); line-height: 1.15; }
.page-hero__title--search { max-width: 24ch; }
.page-hero__text { max-width: 56ch; color: var(--c-text); font-size: 1.02rem; }
.page-hero__text p:last-child { margin-bottom: 0; }
.page-hero__search { max-width: 520px; margin-top: 16px; }
.page-hero__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--c-primary);
	background:
		radial-gradient(circle at 60% 50%, rgba(255, 255, 255, .85), transparent 60%),
		linear-gradient(135deg, var(--c-green-50), var(--c-cream));
}
.page-hero__placeholder .icon { width: 110px; height: 110px; stroke-width: 1; opacity: .3; }
.page-hero--compact .page-hero__inner { padding-block: 20px 28px; }
@media (min-width: 1024px) {
	.page-hero { min-height: 260px; }
	.page-hero__media {
		display: block;
		position: absolute;
		inset: 0 0 0 auto;
		width: 52%;
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 35%);
		mask-image: linear-gradient(to right, transparent 0, #000 35%);
	}
	.page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
	.page-hero__inner { padding-block: 28px 44px; }
	.page-hero__inner > * { max-width: 600px; }
	.page-hero--search { min-height: 200px; }
	.page-hero--compact { min-height: 0; }
}

/* Sub-category chips */
.subcat-nav { margin-top: 20px; }
.subcat-nav__list {
	display: flex;
	gap: 10px;
	margin: 0;
	padding: 2px 2px 8px;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: thin;
}
.subcat-chip {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 92px;
	min-height: 72px;
	padding: 10px 14px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	background: var(--c-white);
	color: var(--c-ink);
	font-size: .8rem;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}
.subcat-chip .icon { width: 24px; height: 24px; color: var(--c-primary); }
.subcat-chip:hover { border-color: var(--c-primary); color: var(--c-primary); }
.subcat-chip.is-active { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-white); }
.subcat-chip.is-active .icon { color: var(--c-white); }

/* Two/three-column listing layout */
.listing { display: grid; gap: 24px; padding-top: 28px; }
.listing__main { min-width: 0; }
.listing__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 16px; }
.listing__title { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.results-summary { margin: 0; font-size: .85rem; color: var(--c-muted); }
@media (min-width: 1024px) {
	.listing { grid-template-columns: 240px minmax(0, 1fr); gap: 28px; }
	.listing--search { grid-template-columns: 230px minmax(0, 1fr); }
	.listing--single { grid-template-columns: minmax(0, 1fr); }
	.listing__filters { position: sticky; top: 16px; align-self: start; }
}
@media (min-width: 1200px) {
	.listing--search { grid-template-columns: 230px minmax(0, 1fr) 320px; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
	.listing--search .listing__aside { grid-column: 2; }
}
.listing__grid.post-grid--3 { gap: 20px; }
@media (min-width: 1024px) and (max-width: 1199px) {
	.listing__grid.post-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Filter panel */
.filters {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
}
.filters__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 48px;
	padding: 12px 16px;
	cursor: pointer;
	list-style: none;
}
.filters__summary::-webkit-details-marker { display: none; }
.filters__summary::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--c-muted);
	border-bottom: 2px solid var(--c-muted);
	transform: rotate(45deg);
	margin-left: auto;
}
.filters[open] .filters__summary::after { transform: rotate(-135deg); }
.filters__heading { display: flex; align-items: center; gap: 8px; font-family: var(--f-heading); font-weight: 700; color: var(--c-ink); }
.filters__heading .icon { width: 18px; height: 18px; color: var(--c-primary); fill: currentColor; }
.filters__active-count { font-size: .75rem; font-weight: 600; color: var(--c-primary); background: var(--c-green-50); border-radius: 999px; padding: 2px 8px; }
.filters__form { padding: 0 16px 16px; }
.filters__clear { display: inline-block; margin-bottom: 8px; font-size: .85rem; font-weight: 600; }
.filters__group { margin: 0; padding: 14px 0; border: 0; border-top: 1px solid var(--c-border); }
.filters__group legend,
.filters__legend { display: block; margin-bottom: 8px; padding: 0; font-family: var(--f-heading); font-weight: 700; font-size: .92rem; color: var(--c-ink); }
.filters__group legend { float: left; width: 100%; }
.filters__group legend + * { clear: both; }
.filters__option { display: flex; align-items: center; gap: 10px; min-height: 36px; font-size: .88rem; cursor: pointer; }
.filters__option input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-primary); flex: none; }
.filters__count { color: var(--c-muted); }
.filters__select {
	width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	background: var(--c-white);
	font-size: .9rem;
}
.filters__apply { margin-top: 8px; }
.js-filters .filters__apply { display: none; }
@media (min-width: 1024px) {
	.filters__summary { cursor: default; pointer-events: none; }
	.filters__summary::after { display: none; }
}

/* Post meta row on cards */
.post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
	margin: 6px 0 0;
	padding-top: 10px;
	border-top: 1px solid var(--c-border);
	font-size: .76rem;
	color: var(--c-muted);
}
.post-meta span { display: inline-flex; align-items: center; gap: 4px; }
.post-meta .icon { width: 14px; height: 14px; }
.post-meta__author { font-weight: 600; color: var(--c-ink); }
.article-card__excerpt + .post-meta { margin-top: auto; }
.listing__grid .article-card__body { gap: 8px; }
.listing__grid .article-card__excerpt { margin-bottom: 4px; }

/* Search: type tabs */
.type-tabs { margin-bottom: 12px; border-bottom: 1px solid var(--c-border); overflow-x: auto; }
.type-tabs ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.type-tabs__tab {
	display: block;
	padding: 10px 14px;
	border-bottom: 3px solid transparent;
	color: var(--c-muted);
	font-size: .88rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}
.type-tabs__tab:hover { color: var(--c-primary); }
.type-tabs__tab.is-active { color: var(--c-primary); border-bottom-color: var(--c-primary); font-weight: 700; }

/* Search: result rows */
.result-list { display: grid; gap: 14px; margin-top: 12px; }
.article-card--row { flex-direction: row; align-items: stretch; }
.article-card--row .article-card__media { flex: 0 0 34%; max-width: 190px; aspect-ratio: auto; min-height: 120px; }
.article-card--row .article-card__body { padding: 12px 14px; padding-right: 48px; gap: 4px; }
.article-card--row .badge { align-self: flex-start; }
.article-card--row .article-card__title { font-size: 1.02rem; }
.article-card--row .article-card__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.article-card--row .post-meta { border-top: 0; padding-top: 2px; }
.article-card__arrow {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1.5px solid var(--c-primary);
	border-radius: 50%;
	color: var(--c-primary);
}
.article-card__arrow .icon { width: 16px; height: 16px; }
@media (max-width: 479px) {
	.article-card--row .article-card__media { flex-basis: 30%; min-height: 0; }
	.article-card--row .article-card__excerpt { display: none; }
	.article-card--row .article-card__body { padding-right: 14px; }
	.article-card__arrow { display: none; }
}
@media (min-width: 768px) {
	.article-card--row .article-card__body { padding: 16px 18px; padding-right: 60px; }
	.article-card--row .article-card__title { font-size: 1.12rem; }
}

/* Search sidebar boxes */
.listing__aside { display: grid; gap: 16px; align-content: start; }
.side-box { padding: 18px; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-white); }
.side-box--green { background: var(--c-green-25); }
.side-box--cream { background: var(--c-cream-light); border-color: #f0e6d6; }
.side-box__title { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 1.05rem; }
.side-box__title .icon { width: 22px; height: 22px; color: var(--c-primary); }
.side-box p { font-size: .9rem; color: var(--c-muted); }
.mini-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.mini-item { position: relative; display: flex; gap: 12px; align-items: center; }
.mini-item__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 64px;
	height: 56px;
	border-radius: var(--radius-sm);
	overflow: hidden;
	background: var(--c-green-50);
	color: var(--c-primary);
}
.mini-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.mini-item__body { display: grid; gap: 2px; min-width: 0; }
.mini-item__title { font-family: var(--f-heading); font-weight: 700; font-size: .88rem; line-height: 1.35; color: var(--c-ink); text-decoration: none; }
.mini-item__title::after { content: ""; position: absolute; inset: 0; }
.mini-item__title:hover { color: var(--c-primary); }
.mini-item time { font-size: .75rem; color: var(--c-muted); }

/* Pagination */
.pagination { margin-top: 28px; }
.pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 10px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	background: var(--c-white);
	color: var(--c-ink);
	font-weight: 600;
	text-decoration: none;
}
.pagination a.page-numbers:hover { border-color: var(--c-primary); color: var(--c-primary); }
.pagination .page-numbers.current { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-white); }
.pagination .page-numbers.dots { border: 0; min-width: 24px; }
.icon--flip { transform: scaleX(-1); }

/* Empty state */
.empty-state {
	padding: 40px 20px;
	border: 1px dashed var(--c-border);
	border-radius: var(--radius);
	background: var(--c-green-25);
	text-align: center;
}
.empty-state__icon { display: inline-flex; color: var(--c-primary); margin-bottom: 8px; }
.empty-state__icon .icon { width: 48px; height: 48px; stroke-width: 1.5; }
.empty-state__title { font-size: 1.3rem; }
.empty-state p { color: var(--c-muted); }
.empty-state__search { max-width: 460px; margin: 16px auto; text-align: left; }
.empty-state__label { margin: 16px 0 8px; font-weight: 600; }
.chips--center { justify-content: center; }

/* Category buying-tips strip */
.tips-strip { background: var(--c-green-25); margin-top: 48px; padding-block: 40px; }
.tips-strip__list {
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr);
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 600px) { .tips-strip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tips-strip__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tips-strip__item { flex-direction: row; align-items: flex-start; gap: 12px; padding: 16px; }
.tips-strip__num { font-family: var(--f-heading); font-weight: 800; font-size: 1.25rem; color: var(--c-ink); line-height: 1.3; }

/* 9b. Listing density tuned to the approved designs */
.listing__grid .article-card__media { aspect-ratio: 1.9 / 1; }
.listing__grid .article-card__body { padding: 12px 14px 14px; gap: 6px; }
.listing__grid .article-card__title { font-size: .98rem; line-height: 1.35; }
.listing__grid .article-card__excerpt {
	font-size: .82rem;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.listing__grid .post-meta { padding-top: 8px; }
.listing__grid .article-card__badge { top: 10px; left: 10px; }
.listing__grid .article-card__placeholder .icon { width: 40px; height: 40px; }

.article-card--row .article-card__media { max-width: 180px; min-height: 0; aspect-ratio: 1.6 / 1; align-self: center; margin: 10px 0 10px 10px; border-radius: var(--radius-sm); }
.article-card--row .article-card__body { padding: 12px 56px 12px 16px; gap: 3px; }
.article-card--row .article-card__title { font-size: 1rem; }
.article-card--row .article-card__excerpt { font-size: .84rem; line-height: 1.5; }
.article-card--row .article-card__placeholder .icon { width: 36px; height: 36px; }
.result-list { gap: 12px; }

.page-hero--search .page-hero__inner { padding-block: 18px 24px; }
.page-hero__title--search { font-size: clamp(1.7rem, 3.4vw, 2.3rem); max-width: none; }
@media (min-width: 1200px) {
	.page-hero--search { min-height: 0; }
	.page-hero--search .page-hero__search { display: none; } /* The header search already shows the query. */
}
@media (min-width: 1024px) {
	.page-hero--search .page-hero__media { width: 45%; }
	.page-hero__inner { padding-block: 24px 36px; }
}
.chip { font-size: .82rem; }
.listing__grid .post-meta { gap: 2px 10px; font-size: .72rem; }
.listing__grid .post-meta span { white-space: nowrap; }
.tips-strip .tip-card__icon { width: 54px; height: 54px; }
.tips-strip .tip-card__icon .icon { width: 28px; height: 28px; }

/* 10. Article pages ----------------------------------------------------------- */
.article-page { padding-block: 16px 56px; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.article-top, .article-body, .article-aside { min-width: 0; }
.article-aside { display: grid; gap: 16px; align-content: start; }
.only-desktop { display: none; }
@media (min-width: 1024px) {
	.article-layout {
		grid-template-columns: minmax(0, 1fr) 320px;
		grid-template-areas: "top aside" "body aside";
		grid-template-rows: auto 1fr;
		column-gap: 40px;
		row-gap: 24px;
	}
	.article-top { grid-area: top; }
	.article-body { grid-area: body; }
	.article-aside { grid-area: aside; }
	.only-mobile { display: none; }
	.only-desktop { display: grid; gap: 16px; }
}
@media (min-width: 1200px) { .article-layout { grid-template-columns: minmax(0, 1fr) 340px; column-gap: 48px; } }

/* Header */
.article-header { margin-bottom: 20px; }
.article-header__title {
	padding-left: 16px;
	border-left: 4px solid var(--c-primary);
	font-size: clamp(1.7rem, 3.6vw, 2.3rem);
	line-height: 1.2;
	margin-bottom: 10px;
	overflow-wrap: anywhere;
}
.article-header__intro { color: var(--c-text); font-size: 1.02rem; margin-bottom: 12px; max-width: 70ch; }
.article-header__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.article-header .post-meta { margin: 0; padding: 0; border: 0; font-size: .82rem; }
.status-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 600;
	background: var(--c-green-50);
	color: var(--c-primary);
}
.status-pill .icon { width: 15px; height: 15px; }
.status-pill--researched { background: var(--c-cream); color: #7a4a0f; }
.disclosure {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 14px 0 0;
	padding: 10px 14px;
	border-radius: var(--radius-sm);
	background: var(--c-cream-light);
	border: 1px solid #f0e6d6;
	font-size: .82rem;
	color: var(--c-text);
}
.disclosure .icon { width: 18px; height: 18px; color: var(--c-amber); margin-top: 1px; }

.article-hero { margin: 0; border-radius: var(--radius); overflow: hidden; background: var(--c-green-50); }
.article-hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* Section titles */
.article-section { margin-top: 36px; scroll-margin-top: 72px; }
.article-section__title { display: flex; align-items: center; gap: 10px; font-size: clamp(1.3rem, 2.4vw, 1.55rem); margin-bottom: 16px; }
.article-section__title .icon { width: 26px; height: 26px; color: var(--c-primary); }

/* Lists with icons */
.check-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .9rem; }
.check-list li { display: flex; gap: 8px; align-items: flex-start; line-height: 1.5; }
.check-list .icon { width: 18px; height: 18px; margin-top: 2px; color: var(--c-primary); }
.check-list--cross .icon { color: var(--c-red); }
.check-list--small { font-size: .82rem; gap: 6px; }
.check-list--small .icon { width: 15px; height: 15px; }

/* Contents list */
.toc__list { margin: 0; padding-left: 1.4em; display: grid; gap: 6px; font-size: .9rem; }
.toc__list a { text-decoration: none; }
.toc__list a:hover { text-decoration: underline; }
.toc--inline { margin-bottom: 16px; border: 1px solid var(--c-border); border-radius: var(--radius); padding: 0 16px; }
.toc--inline .toc__title { display: flex; align-items: center; gap: 8px; min-height: 48px; font-family: var(--f-heading); font-weight: 700; cursor: pointer; }
.toc--inline .toc__title .icon { color: var(--c-primary); }
.toc--inline[open] { padding-bottom: 14px; }

/* Key takeaways */
.takeaways { padding: 18px; border-radius: var(--radius); background: var(--c-green-50); border: 1px solid var(--c-green-100); margin-bottom: 16px; }
.takeaways__title { display: flex; align-items: center; gap: 8px; font-size: 1.05rem; margin-bottom: 12px; }
.takeaways__title .icon { color: var(--c-amber); }
.takeaways--side { margin-bottom: 0; }

/* Top picks */
.pick-grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
@media (min-width: 560px) { .pick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .pick-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .pick-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pick {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	background: var(--c-white);
	box-shadow: var(--shadow-sm);
}
.pick__badge { align-self: flex-start; padding: 2px 8px; border-radius: 4px; background: var(--c-primary); color: var(--c-white); font-size: .72rem; font-weight: 600; }
.pick--2 .pick__badge { background: #1d4e89; }
.pick--3 .pick__badge { background: var(--c-purple); }
.pick--4 .pick__badge { background: var(--c-amber); }
.pick__media { aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); background: var(--c-green-25); overflow: hidden; }
.pick__media img { width: 100%; height: 100%; object-fit: contain; }
.pick__name { font-size: 1rem; margin: 0; }
.pick__btn { margin-top: auto; font-size: .85rem; }
.img-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 64px; color: var(--c-primary); background: linear-gradient(135deg, var(--c-green-50), var(--c-cream-light)); }
.img-placeholder .icon { width: 40%; max-width: 56px; height: auto; aspect-ratio: 1; stroke-width: 1.5; opacity: .8; }

/* Editor content */
.entry-content { margin-top: 8px; font-size: 1rem; line-height: 1.75; }
.entry-content > * { margin-block: 0 1.1em; }
.entry-content h2 { margin-top: 2em; font-size: clamp(1.3rem, 2.4vw, 1.55rem); scroll-margin-top: 72px; }
.entry-content h3 { margin-top: 1.5em; font-size: 1.12rem; }
.entry-content img { border-radius: var(--radius-sm); }
.entry-content a:not(.wp-block-button__link) { text-decoration: underline; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li + li { margin-top: .35em; }
.wp-block-table { overflow-x: auto; margin-inline: 0; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.wp-block-table th, .wp-block-table td { padding: 10px 12px; border: 1px solid var(--c-border); text-align: left; vertical-align: top; }
.wp-block-table thead th { background: var(--c-green-50); color: var(--c-ink); font-weight: 700; }
.is-style-besthome-compare { border: 1px solid var(--c-border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.is-style-besthome-compare table { min-width: 560px; }
.is-style-besthome-compare th, .is-style-besthome-compare td { border-width: 0 0 1px; }
.is-style-besthome-compare tbody tr:nth-child(even) { background: var(--c-green-25); }
.is-style-besthome-compare td:first-child { font-weight: 600; color: var(--c-ink); }
.wp-block-table figcaption { font-size: .8rem; color: var(--c-muted); }

.bh-cards { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .bh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .bh-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.bh-card { padding: 16px; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-white); }
.bh-card > * { margin: 0 0 .4em; }
.bh-card h3 { margin-top: 0; font-size: 1rem; }
.bh-card p { font-size: .88rem; color: var(--c-muted); line-height: 1.55; }

.is-style-besthome-numbered { list-style: none; counter-reset: bh; padding-left: 0 !important; display: grid; gap: 12px; }
.is-style-besthome-numbered > li { counter-increment: bh; position: relative; padding: 14px 16px 14px 60px; border: 1px solid var(--c-border); border-radius: var(--radius); margin: 0 !important; }
.is-style-besthome-numbered > li::before {
	content: counter(bh);
	position: absolute;
	left: 14px;
	top: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--c-primary);
	color: var(--c-white);
	font-weight: 700;
	font-size: .9rem;
}
.is-style-besthome-check, .is-style-besthome-specs { list-style: none; padding-left: 0 !important; }
.is-style-besthome-check > li, .is-style-besthome-specs > li { position: relative; padding-left: 26px; }
.is-style-besthome-check > li::before { content: ""; position: absolute; left: 4px; top: .45em; width: 6px; height: 11px; border: solid var(--c-primary); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.is-style-besthome-specs > li::before { content: ""; position: absolute; left: 6px; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--c-primary); }
.is-style-besthome-specs { font-size: .9rem; }

.bh-product { padding: 18px; border: 1px solid var(--c-border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.bh-product > h3:first-child { margin-top: 0; }
.bh-product .wp-block-columns { gap: 16px; margin-bottom: 0; }
.bh-pros, .bh-cons { padding: 12px 14px; border-radius: var(--radius-sm); font-size: .9rem; }
.bh-pros { background: var(--c-green-50); }
.bh-cons { background: var(--c-red-50); margin-top: 10px; }
.bh-pros > *, .bh-cons > * { margin: 0 0 .4em; }
.bh-pros ul, .bh-cons ul { margin: 0; }
.bh-callout { padding: 14px 16px; border-radius: var(--radius-sm); border-left: 4px solid var(--c-primary); background: var(--c-green-50); }
.bh-callout > * { margin: 0; }
.bh-callout--safety { border-left-color: var(--c-amber); background: var(--c-cream-light); }
.wp-block-button__link { display: inline-flex; align-items: center; min-height: 44px; padding: .65em 1.25em; border-radius: var(--radius-sm); font-size: .95rem; font-weight: 600; text-decoration: none; }

/* FAQs */
.faqs__list { display: grid; gap: 10px; }
@media (min-width: 768px) { .faqs__list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.faq { border: 1px solid var(--c-border); border-radius: var(--radius-sm); background: var(--c-white); }
.faq__q { display: flex; gap: 8px; align-items: center; min-height: 48px; padding: 10px 14px; cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--c-ink); list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__num { color: var(--c-muted); font-weight: 500; }
.faq__icon { margin-left: auto; width: 18px; height: 18px; color: var(--c-primary); transition: transform .15s ease; }
.faq[open] .faq__icon { transform: rotate(45deg); }
.faq__a { padding: 0 14px 12px 32px; font-size: .9rem; color: var(--c-text); }
.faq__a p:last-child { margin-bottom: 0; }

/* Final verdict */
.verdict {
	display: grid;
	gap: 16px;
	align-items: center;
	padding: 20px;
	border: 1px solid var(--c-green-100);
	border-radius: var(--radius);
	background: var(--c-green-25);
}
.verdict .article-section__title { margin-bottom: 8px; }
.verdict__text p { margin-bottom: .6em; font-size: .95rem; }
.verdict__text p:last-child { margin-bottom: 0; }
@media (min-width: 768px) { .verdict { grid-template-columns: minmax(0, 1fr) auto; } }

/* Author box */
.author-box { display: flex; gap: 14px; margin-top: 32px; padding: 16px; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-white); }
.author-box__icon { display: flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--c-green-50); color: var(--c-primary); }
.author-box__name { margin: 0; font-weight: 700; color: var(--c-ink); }
.author-box__bio { margin: 4px 0; font-size: .88rem; color: var(--c-muted); }
.author-box__links { margin: 4px 0 0; font-size: .85rem; }

/* Sidebar extras */
.side-box--red { background: var(--c-red-50); border-color: #f5d9d9; }
.side-box--red .side-box__title .icon { color: var(--c-red); }
.mini-item__type { font-size: .72rem; color: var(--c-muted); }
.verdict-box__text { font-size: .9rem; color: var(--c-text); }
.verdict-box__note { margin: 8px 0 0; font-size: .75rem; color: var(--c-muted); text-align: center; }
.specs__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin: 0; }
.specs__row { min-width: 0; }
.specs__list dt { font-size: .78rem; color: var(--c-muted); }
.specs__list dd { margin: 0; font-weight: 600; font-size: .9rem; color: var(--c-ink); overflow-wrap: anywhere; }
.score { margin: 4px 0 14px; padding: 12px; border-radius: var(--radius-sm); background: var(--c-white); }
.score__overall { margin: 0 0 8px; }
.score__overall strong { font-family: var(--f-heading); font-size: 1.8rem; color: var(--c-primary); }
.score__label { font-size: .8rem; color: var(--c-muted); }
.score__rows { display: grid; gap: 6px; margin: 0 0 8px; padding: 0; list-style: none; font-size: .8rem; }
.score__rows li { display: grid; grid-template-columns: 1fr 70px 28px; gap: 8px; align-items: center; }
.score__bar { height: 6px; border-radius: 3px; background: var(--c-green-100); overflow: hidden; }
.score__bar span { display: block; height: 100%; background: var(--c-primary); }
.score__method { font-size: .8rem; }
.who-boxes { display: grid; gap: 16px; scroll-margin-top: 72px; }
.recommended__row { display: flex; gap: 12px; align-items: center; }
.recommended__media { flex: none; width: 88px; height: 88px; border-radius: var(--radius-sm); overflow: hidden; background: var(--c-green-25); }
.recommended__media img { width: 100%; height: 100%; object-fit: contain; }
.recommended__name { margin: 0 0 8px; font-family: var(--f-heading); font-weight: 700; color: var(--c-ink); }
.recommended .btn { font-size: .85rem; min-height: 40px; }

/* Review: gallery, tabs, pros/cons, alternatives, parent guide */
.gallery { display: grid; gap: 10px; }
.gallery__main { margin: 0; border-radius: var(--radius); overflow: hidden; background: var(--c-green-25); }
.gallery__main img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.gallery__thumbs { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; overflow-x: auto; }
.gallery__thumb { display: block; width: 72px; height: 72px; border: 2px solid var(--c-border); border-radius: var(--radius-sm); overflow: hidden; }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery__thumb.is-active { border-color: var(--c-primary); }
@media (min-width: 768px) {
	.gallery--multi { grid-template-columns: minmax(0, 1fr) 96px; }
	.gallery--multi .gallery__thumbs { flex-direction: column; overflow: visible; }
	.gallery__thumb { width: 96px; height: 80px; }
}
.section-tabs { position: sticky; top: 0; z-index: 10; margin-bottom: 8px; background: var(--c-white); border-bottom: 1px solid var(--c-border); overflow-x: auto; }
.section-tabs ul { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; }
.section-tabs a { display: block; padding: 12px 12px; white-space: nowrap; font-size: .85rem; font-weight: 500; color: var(--c-text); text-decoration: none; border-bottom: 3px solid transparent; }
.section-tabs a:hover { color: var(--c-primary); border-bottom-color: var(--c-primary); }
.pros-cons { display: grid; gap: 14px; }
@media (min-width: 600px) { .pros-cons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pros-cons__box { padding: 16px; border-radius: var(--radius); }
.pros-cons__box h3 { display: flex; align-items: center; gap: 8px; font-family: var(--f-body); font-size: 1rem; margin-bottom: 10px; }
.pros-cons__box--pros { background: var(--c-green-50); }
.pros-cons__box--pros h3 .icon { color: var(--c-primary); }
.pros-cons__box--cons { background: var(--c-red-50); }
.pros-cons__box--cons h3 .icon { color: var(--c-red); }
.alt-grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .alt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.alt-card { display: flex; gap: 12px; padding: 14px; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-white); }
@media (min-width: 768px) { .alt-card { flex-direction: column; } }
.alt-card__media { flex: none; width: 96px; height: 96px; border-radius: var(--radius-sm); overflow: hidden; background: var(--c-green-25); }
@media (min-width: 768px) { .alt-card__media { width: 100%; height: auto; aspect-ratio: 4 / 3; } }
.alt-card__media img { width: 100%; height: 100%; object-fit: contain; }
.alt-card__body { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; }
.alt-card__name { font-size: 1rem; margin: 0; }
.alt-card .btn { margin-top: auto; font-size: .85rem; min-height: 40px; }
.parent-guide {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 32px;
	padding: 16px;
	border: 1px solid var(--c-green-100);
	border-radius: var(--radius);
	background: var(--c-green-25);
	color: var(--c-ink);
	text-decoration: none;
}
.parent-guide:hover { border-color: var(--c-primary); }
.parent-guide__icon { display: flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--c-white); color: var(--c-primary); }
.parent-guide__label { display: block; font-size: .8rem; color: var(--c-muted); }
.parent-guide__title { display: block; font-family: var(--f-heading); font-weight: 700; }
.parent-guide > .icon { margin-left: auto; color: var(--c-primary); }
.related-grid .listing__grid { margin-top: 0; }

/* Helpful guide: hero with takeaways, things needed, steps */
.guide-hero { position: relative; }
.guide-hero .takeaways { margin-top: 14px; margin-bottom: 0; }
@media (min-width: 1024px) {
	.guide-hero:not(.guide-hero--no-image) .takeaways--overlay {
		position: absolute;
		top: 20px;
		right: 20px;
		width: min(320px, 45%);
		margin: 0;
		background: rgba(255, 255, 255, .96);
		box-shadow: var(--shadow);
	}
}
.needs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .needs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .needs-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.need { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 10px; border: 1px solid var(--c-border); border-radius: var(--radius); text-align: center; font-size: .85rem; }
.need__media { width: 64px; height: 64px; border-radius: var(--radius-sm); overflow: hidden; }
.need__media img { width: 100%; height: 100%; object-fit: cover; }
.need__icon { color: var(--c-primary); }
.need__icon .icon { width: 28px; height: 28px; }
.steps { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.step { position: relative; display: flex; flex-direction: column; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-white); overflow: hidden; scroll-margin-top: 72px; }
.step__num {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--c-primary);
	color: var(--c-white);
	font-weight: 700;
	box-shadow: 0 0 0 3px var(--c-white);
}
.step__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.step__body { padding: 14px 16px 16px; font-size: .9rem; }
.step:not(:has(.step__media)) .step__body { padding-top: 54px; }
.step__title { font-size: 1rem; margin: 0 0 6px; }
.step__body p { margin: 0 0 .6em; color: var(--c-text); }
.safety-note { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 0 !important; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--c-cream-light); border: 1px solid #f0e6d6; font-size: .82rem; }
.safety-note .icon { width: 16px; height: 16px; color: var(--c-amber); margin-top: 2px; }

/* 10b. Article fixes from visual QA */
.article-page--guide .article-hero img,
.guide-hero .article-hero img { aspect-ratio: 16 / 9; }
@media (min-width: 768px) {
	.article-page--guide .article-hero img,
	.guide-hero .article-hero img { aspect-ratio: 2.15 / 1; }
}
.pick__btn { gap: 6px; padding-inline: 10px; font-size: .8rem; white-space: nowrap; }
.pick__btn .icon { width: .95em; height: .95em; }
.top-picks + .entry-content { margin-top: 32px; }
.entry-content h2 { display: flex; align-items: center; gap: 10px; }
.entry-content h2::before {
	content: "";
	flex: none;
	width: 24px;
	height: 24px;
	background: var(--c-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.entry-content--before { margin-top: 24px; }
.entry-content--before > h2:first-child { margin-top: 0; }
.toc__list a { display: inline-block; padding: 3px 0; }
.gallery__main img { aspect-ratio: 3 / 2; }
.need__media { width: 84px; height: 84px; }
/* Theme breakpoints win over the block editor's fixed grid column count. */
.entry-content .bh-cards { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .entry-content .bh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .entry-content .bh-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Compact top-pick cards on phones: image left, details right. */
@media (max-width: 559px) {
	.pick {
		display: grid;
		grid-template-columns: 96px minmax(0, 1fr);
		grid-template-areas: "badge badge" "media name" "media list" "btn btn";
		column-gap: 12px;
		row-gap: 6px;
		align-items: start;
	}
	.pick__badge { grid-area: badge; justify-self: start; }
	.pick__media { grid-area: media; aspect-ratio: 1; }
	.pick__name { grid-area: name; }
	.pick > .check-list { grid-area: list; }
	.pick__btn { grid-area: btn; margin-top: 4px; }
}

/* 11. Icon classes for block patterns (generated from icons.svg) */
.bh-ico::before { content: ""; display: block; width: 28px; height: 28px; margin-bottom: 10px; background: var(--c-primary); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.bh-ico-shield { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5.5c0 4.4 3 8 7 9.5 4-1.5 7-5.1 7-9.5V6z'/%3E%3Cpath d='m9 12 2.2 2.2L15.5 10'/%3E%3C/svg%3E"); }
.bh-ico-doc-search { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 21H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8l4 4v4'/%3E%3Cpath d='M8 8h5M8 12h4'/%3E%3Ccircle cx='16.5' cy='16.5' r='3'/%3E%3Cpath d='m21 21-2.3-2.3'/%3E%3C/svg%3E"); }
.bh-ico-chat { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5h14a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-7l-5 3.5V17H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
.bh-ico-refresh { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8A8 8 0 0 0 5 7.5M4.5 16A8 8 0 0 0 19 16.5'/%3E%3Cpath d='M19.5 3.5V8H15M4.5 20.5V16H9'/%3E%3C/svg%3E"); }
.bh-ico-users { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8.5' r='3.5'/%3E%3Cpath d='M2.5 19.5c.9-3 3.3-4.6 6.5-4.6s5.6 1.6 6.5 4.6'/%3E%3Ccircle cx='17' cy='9.5' r='2.8'/%3E%3Cpath d='M16.5 14.6c2.6.2 4.3 1.6 5 4'/%3E%3C/svg%3E"); }
.bh-ico-user { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20c1.2-3.6 4-5.5 7.5-5.5s6.3 1.9 7.5 5.5'/%3E%3C/svg%3E"); }
.bh-ico-scale { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v16M7 20h10M5 7h14'/%3E%3Cpath d='m5 7-3 6a3 3 0 0 0 6 0zM19 7l-3 6a3 3 0 0 0 6 0z'/%3E%3C/svg%3E"); }
.bh-ico-guide { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h3'/%3E%3C/svg%3E"); }
.bh-ico-star { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3.5 2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z'/%3E%3C/svg%3E"); }
.bh-ico-bulb { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4'/%3E%3Cpath d='M12 3a6 6 0 0 0-3.6 10.8c.6.5 1 1.2 1 2V16h5.2v-.2c0-.8.4-1.5 1-2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E"); }
.bh-ico-tools { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 6.5a4 4 0 0 0 5 5L12 19a2.1 2.1 0 0 1-3-3z'/%3E%3Cpath d='m5 3 3 3-1 2-2 1-3-3'/%3E%3C/svg%3E"); }
.bh-ico-handshake { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 11 4-4 4 2 3-2 3 1 6 4-3 3'/%3E%3Cpath d='m6 7 5 5c.8.8 2 .8 2.6 0M10 14l2 2M8 16l2 2'/%3E%3C/svg%3E"); }
.bh-ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='m3.5 7 8.5 6 8.5-6'/%3E%3C/svg%3E"); }
.bh-ico-info { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E"); }
.bh-ico-tag { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4h8l9 9-8 8z'/%3E%3Ccircle cx='7.5' cy='8.5' r='1.3'/%3E%3C/svg%3E"); }
.bh-ico-home { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 11 12 4l8.5 7'/%3E%3Cpath d='M6 9.5V20h12V9.5'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E"); }
.bh-ico-lock { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3M12 15v2'/%3E%3C/svg%3E"); }
.bh-ico-eye { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.bh-ico-cart { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.5l2.2 11h10.6L20.5 8H7'/%3E%3Ccircle cx='9.5' cy='19' r='1.4'/%3E%3Ccircle cx='17' cy='19' r='1.4'/%3E%3C/svg%3E"); }
.bh-ico-cookie { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 12.5A8.5 8.5 0 1 1 11.5 3.5a3 3 0 0 0 4 4 3 3 0 0 0 5 5z'/%3E%3Cpath d='M8.5 9.5h.01M14.5 15.5h.01M9 15h.01M12 12h.01'/%3E%3C/svg%3E"); }
.bh-ico-gavel { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m14 5 5 5M11.5 7.5l5 5M13 6l-5 5 3 3 5-5M9.5 12.5 3 19l2 2 6.5-6.5M13 20h8'/%3E%3C/svg%3E"); }
.bh-ico-globe { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.8 3.5 5.8 3.5 9s-1 6.2-3.5 9c-2.5-2.8-3.5-5.8-3.5-9s1-6.2 3.5-9z'/%3E%3C/svg%3E"); }
.bh-ico-ban { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m5.6 5.6 12.8 12.8'/%3E%3C/svg%3E"); }
.bh-ico-check-circle { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12.3 2.8 2.8L16.2 9.5'/%3E%3C/svg%3E"); }
.bh-ico-x-circle { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m9 9 6 6M15 9l-6 6'/%3E%3C/svg%3E"); }
.bh-ico-external { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E"); }
.bh-ico-list { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Ccircle cx='4.5' cy='6' r='.9'/%3E%3Ccircle cx='4.5' cy='12' r='.9'/%3E%3Ccircle cx='4.5' cy='18' r='.9'/%3E%3C/svg%3E"); }
.bh-ico-leaf { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-13 15-14-.5 9.5-6 14.5-14 14z'/%3E%3Cpath d='M5 19 13 11'/%3E%3C/svg%3E"); }
.bh-ico-thumbs-up { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 11v9H4v-9zM7 11l4-7c1.4 0 2.3 1 2 2.4L12.4 10H18a2 2 0 0 1 2 2.3l-1.1 6A2 2 0 0 1 16.9 20H7'/%3E%3C/svg%3E"); }
.bh-ico-warning { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4 2.8 19.5h18.4z'/%3E%3Cpath d='M12 10v4M12 17h.01'/%3E%3C/svg%3E"); }
.bh-ico-compare { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h13M13 4l4 4-4 4M20 16H7M11 12l-4 4 4 4'/%3E%3C/svg%3E"); }
.bh-ico-search { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E"); }
.bh-ico-bolt { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 3 5 13.5h6L10 21l8-10.5h-6z'/%3E%3C/svg%3E"); }

/* 12. Static pages ------------------------------------------------------------ */
.page-main { padding-bottom: 56px; }
.page-hero--page .page-hero__title--page { max-width: 15ch; font-size: clamp(2rem, 4.6vw, 3.1rem); }
.page-hero--page .eyebrow { margin-bottom: 10px; }
.page-hero__updated { margin: 10px 0 0; font-size: .85rem; color: var(--c-muted); }
.page-entry { padding-top: 32px; }
.page-entry > * { margin-block: 0 32px; }
.page-entry > .alignfull { margin-inline: calc(50% - 50vw); padding-inline: max(var(--gutter), calc((100vw - var(--container)) / 2)); }
.page-entry h2 { display: block; }
.page-entry h2::before { content: none; }
.page-entry .wp-block-columns { gap: 20px; }
@media (min-width: 782px) {
	.page-entry .bh-cols-2-1 > .wp-block-column:first-child { flex: 0 0 calc(64% - 10px); }
	.page-entry .bh-contact-cols > .wp-block-column:first-child { flex: 0 0 calc(60% - 10px); }
	.page-entry .bh-cols-2-1 > .wp-block-column + .wp-block-column,
	.page-entry .bh-contact-cols > .wp-block-column + .wp-block-column { flex: 1 1 0; }
}

/* Icons applied with bh-ico + bh-ico-{name} classes */
.bh-feature.bh-ico::before,
.bh-card.bh-ico::before,
.bh-section-head.bh-ico::before,
.bh-panel__title.bh-ico::before,
.bh-cta-band.bh-ico::before,
.bh-visual.bh-ico::before {
	content: "";
	display: block;
	background: var(--c-primary);
	-webkit-mask: var(--ico) center / contain no-repeat;
	mask: var(--ico) center / contain no-repeat;
	padding: 0;
	border-radius: 0;
}
.bh-feature.bh-ico::before { width: 30px; height: 30px; margin: 0 auto 12px; }
.bh-card.bh-ico::before { width: 28px; height: 28px; margin: 0 0 10px; }

/* Feature rows */
.bh-features { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); text-align: center; }
@media (min-width: 600px) { .bh-features--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .bh-features--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.bh-feature { position: relative; padding: 18px 12px; }
.bh-feature > * { margin: 0; }
.bh-feature h2, .bh-feature h3 { font-size: 1rem; margin-bottom: 6px; }
.bh-feature p { font-size: .88rem; color: var(--c-muted); line-height: 1.55; }
.bh-features--bordered { border-block: 1px solid var(--c-border); padding-block: 8px; }
.bh-features--plain { text-align: left; }
.bh-features--plain .bh-feature { padding: 12px 0; }
.bh-features--plain .bh-feature.bh-ico::before { margin-left: 0; }
.bh-features--inline { text-align: left; }
.bh-features--inline .bh-feature { padding-left: 52px; }
.bh-features--inline .bh-feature.bh-ico::before { position: absolute; left: 0; top: 18px; margin: 0; }

/* Section heading inside page content */
.bh-section-head { position: relative; padding-left: 44px; margin-bottom: 16px !important; }
.bh-section-head.bh-ico::before { position: absolute; left: 0; top: 2px; width: 30px; height: 30px; }
.bh-section-head > * { margin: 0; }
.bh-section-head h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.bh-sub { color: var(--c-muted); font-size: .95rem; margin-top: 4px !important; }
.bh-kicker { margin: 0 0 6px !important; font-size: .82rem; font-weight: 700; color: var(--c-primary); }
.bh-kicker::before { content: ""; display: inline-block; width: 24px; height: 2px; margin-right: 8px; vertical-align: middle; background: var(--c-primary); }

/* Text + visual split */
.bh-split-media { align-items: center !important; }
.bh-text > * { margin: 0 0 14px; }
.bh-text h2 { font-size: clamp(1.4rem, 2.8vw, 1.9rem); }
.bh-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	border-radius: var(--radius);
	background: linear-gradient(135deg, var(--c-green-50), var(--c-cream));
}
.bh-visual.bh-ico::before { width: 96px; height: 96px; opacity: .35; }
.bh-visual > p { margin: 0; }
@media (min-width: 782px) { .bh-split-media--reverse { flex-direction: row; } .bh-visual { min-height: 280px; } }

/* Full-width bands */
.bh-band { padding-block: 40px; }
.bh-band > * { margin-block: 0 20px; }
.bh-band > :last-child { margin-bottom: 0; }
.bh-band--green { background: var(--c-green-50); }
.bh-band--cream { background: var(--c-cream); }

/* Panels and cards */
.bh-panel { padding: 20px; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-white); }
.bh-panel > * { margin: 0 0 12px; }
.bh-panel > :last-child { margin-bottom: 0; }
.bh-panel--green { background: var(--c-green-25); }
.bh-panel--cream { background: var(--c-cream-light); border-color: #f0e6d6; }
.bh-panel--red { background: #fffafa; }
.wp-block-column > .bh-panel:only-child { height: 100%; }
.wp-block-column > .bh-panel + .bh-panel { margin-top: 16px; }
.bh-panel__title { position: relative; padding-left: 38px; font-size: 1.25rem !important; }
.bh-panel__title.bh-ico::before { position: absolute; left: 0; top: 1px; width: 26px; height: 26px; }
.bh-panel--red .bh-panel__title.bh-ico::before { background: var(--c-red); }
.page-entry .bh-cards { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .page-entry .bh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.page-entry .bh-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.page-entry .bh-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.page-entry .bh-cards--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.page-entry .bh-card { display: flex; flex-direction: column; }
.page-entry .bh-card > * { margin: 0 0 8px; }
.page-entry .bh-card .wp-block-buttons { margin-top: auto; padding-top: 6px; }
.page-entry .bh-card h3 { font-size: 1rem; }
.bh-process { counter-reset: step; }
.bh-process .bh-card { counter-increment: step; position: relative; padding-top: 22px; }
.bh-process .bh-card h3::before { content: counter(step) ". "; color: var(--c-primary); }
.bh-numbered-cards { counter-reset: clause; }
.bh-numbered-cards .bh-card { counter-increment: clause; position: relative; padding-left: 64px; }
.bh-numbered-cards .bh-card::after {
	content: counter(clause);
	position: absolute;
	left: 16px;
	top: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--c-primary);
	color: var(--c-white);
	font-weight: 700;
	font-size: .9rem;
}
.bh-numbered-cards .bh-card.bh-ico::before { display: none; }
.is-style-besthome-cross { list-style: none; padding-left: 0 !important; }
.is-style-besthome-cross > li { position: relative; padding-left: 26px; }
.is-style-besthome-cross > li::before, .is-style-besthome-cross > li::after { content: ""; position: absolute; left: 3px; top: .8em; width: 12px; height: 2px; background: var(--c-red); transform: rotate(45deg); }
.is-style-besthome-cross > li::after { transform: rotate(-45deg); }
.page-entry .is-style-besthome-check, .page-entry .is-style-besthome-cross { display: grid; gap: 8px; font-size: .92rem; }

/* Call-to-action band */
.bh-cta-band {
	position: relative;
	padding: 24px 24px 24px 84px;
	border-radius: var(--radius);
	background: var(--c-green-50);
}
.bh-cta-band > * { margin: 0 0 10px; }
.bh-cta-band > :last-child { margin-bottom: 0; }
.bh-cta-band.bh-ico::before { position: absolute; left: 24px; top: 26px; width: 40px; height: 40px; }
.bh-cta-band--cream { background: var(--c-cream); }
@media (max-width: 599px) { .bh-cta-band { padding-left: 24px; padding-top: 80px; } }

/* Owner notes and small print */
.bh-owner-note { background: #fff3cd; color: #5c4400; padding: 1px 4px; border-radius: 3px; font-size: .9em; }
.bh-note { padding: 12px 16px; border-left: 4px solid var(--c-amber); border-radius: var(--radius-sm); background: var(--c-cream-light); font-size: .92rem; }
.bh-small { font-size: .85rem; color: var(--c-muted); }

/* Core Details blocks as FAQ cards */
.bh-faqs { display: grid; gap: 12px; }
@media (min-width: 768px) { .bh-faqs:not(.bh-faqs--single) { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.bh-faqs > * { margin: 0; }
.wp-block-details.bh-faq { padding: 0; border: 1px solid var(--c-border); border-radius: var(--radius-sm); background: var(--c-white); }
.wp-block-details.bh-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 16px; font-weight: 600; color: var(--c-ink); cursor: pointer; list-style: none; }
.wp-block-details.bh-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.bh-faq summary::after { content: "+"; flex: none; font-size: 1.3rem; line-height: 1; color: var(--c-primary); }
.wp-block-details.bh-faq[open] summary::after { content: "−"; }
.wp-block-details.bh-faq > p { margin: 0; padding: 0 16px 14px; font-size: .92rem; color: var(--c-text); }

/* Link lists and contact list */
.link-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.link-list a { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; font-weight: 600; text-decoration: none; }
.link-list .icon { width: 16px; height: 16px; }
.contact-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.contact-list li { display: flex; gap: 14px; align-items: flex-start; }
.contact-list__icon { display: flex; align-items: center; justify-content: center; flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--c-white); color: var(--c-primary); box-shadow: var(--shadow-sm); }
.contact-list strong { display: block; color: var(--c-ink); }
.contact-list span span { font-size: .88rem; color: var(--c-muted); }

/* Contact form */
.cf { display: grid; gap: 16px; }
.cf-row { display: grid; gap: 16px; }
@media (min-width: 600px) { .cf-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cf-field { display: grid; gap: 6px; }
.cf-field label { font-weight: 600; font-size: .9rem; color: var(--c-ink); }
.cf-req { color: var(--c-red); }
.cf-required-note { margin: 0; font-size: .82rem; color: var(--c-muted); }
.cf input[type="text"], .cf input[type="email"], .cf select, .cf textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid #c9d3cc;
	border-radius: var(--radius-sm);
	background: var(--c-white);
	font-size: .95rem;
}
.cf textarea { min-height: 150px; resize: vertical; }
.cf input:focus-visible, .cf select:focus-visible, .cf textarea:focus-visible { border-color: var(--c-primary); }
.cf [aria-invalid="true"] { border-color: var(--c-red); background: #fffafa; }
.cf-field--check { grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: 10px; }
.cf-field--check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--c-primary); }
.cf-field--check label { font-weight: 400; }
.cf-field--check .cf-error { grid-column: 1 / -1; }
.cf-error { display: flex; gap: 6px; align-items: center; margin: 0; font-size: .85rem; color: var(--c-red); font-weight: 600; }
.cf-error .icon { width: 16px; height: 16px; }
.cf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cf-submit { min-height: 50px; }
.cf-result { display: flex; gap: 12px; padding: 16px; border-radius: var(--radius-sm); }
.cf-result > .icon { width: 24px; height: 24px; flex: none; }
.cf-result p { margin: 0 0 6px; }
.cf-result ul { margin: 6px 0 0; padding-left: 1.1em; }
.cf-result__title { font-weight: 700; color: var(--c-ink); }
.cf-result--ok { background: var(--c-green-50); border: 1px solid var(--c-green-100); }
.cf-result--ok > .icon { color: var(--c-primary); }
.cf-result--error { background: var(--c-red-50); border: 1px solid #f1c9c9; }
.cf-result--error > .icon { color: var(--c-red); }

/* HTML sitemap */
.sitemap__section { margin-bottom: 28px; padding: 20px; border: 1px solid var(--c-border); border-radius: var(--radius); }
.sitemap__section h2 { font-size: 1.25rem; margin-bottom: 12px; }
.sitemap__section h2 a { text-decoration: none; }
.sitemap__section h3 { font-family: var(--f-body); font-size: .9rem; text-transform: uppercase; letter-spacing: .04em; color: var(--c-muted); margin: 0 0 8px; }
.sitemap__types { display: grid; gap: 20px; }
@media (min-width: 768px) { .sitemap__types { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sitemap__list { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; font-size: .92rem; }
.sitemap__list a { padding: 2px 0; }
.sitemap__list li { line-height: 1.5; }
.sitemap__section h2 { margin-top: 0; }
@media (min-width: 768px) { .sitemap__list--cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sitemap__empty { padding: 20px; background: var(--c-green-25); border-radius: var(--radius); }

/* Author page */
.author-hero { display: flex; gap: 20px; align-items: flex-start; }
.author-hero__photo { display: flex; align-items: center; justify-content: center; flex: none; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; background: var(--c-green-50); color: var(--c-primary); }
.author-hero__photo .icon { width: 40px; height: 40px; }
.author-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.author-hero .page-hero__title { max-width: none; }
.author-hero__meta { margin: 8px 0 0; font-size: .9rem; color: var(--c-muted); }

/* 404 */
.error-hero__inner { text-align: center; padding-block: 48px 56px; }
.error-hero__inner > * { margin-inline: auto; }
.error-hero__code { margin: 0 0 4px; font-family: var(--f-heading); font-weight: 900; font-size: clamp(4rem, 12vw, 7rem); line-height: 1; color: var(--c-primary); opacity: .9; }
.error-hero .page-hero__title { max-width: 20ch; }
.error-hero__search { max-width: 520px; margin-top: 20px; }
.error-hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 20px; }
.error-chips { margin-top: 16px; gap: 10px; }
.section--green .listing__grid { margin-top: 20px; }
.page-entry .bh-card h2 { font-size: 1rem; margin-bottom: 6px; }

/* 12b. Icon circles (light green) behind pattern icons, as in the designs */
.bh-feature.bh-ico { background: radial-gradient(circle at 50% 46px, var(--c-green-50) 29px, transparent 30px) no-repeat; padding-top: 30px; }
.bh-feature.bh-ico::before { margin-top: 1px; margin-bottom: 26px; }
.bh-features--inline .bh-feature.bh-ico,
.bh-features--plain .bh-feature.bh-ico { background-position: 0 0; }
.bh-features--inline .bh-feature.bh-ico { background: radial-gradient(circle at 22px 40px, var(--c-white) 22px, transparent 23px) no-repeat; padding-left: 60px; }
.bh-features--inline .bh-feature.bh-ico::before { left: 10px; top: 28px; width: 24px; height: 24px; }
.bh-features--plain .bh-feature.bh-ico { background: radial-gradient(circle at 26px 38px, var(--c-green-50) 25px, transparent 26px) no-repeat; padding-top: 14px; }
.bh-features--plain .bh-feature.bh-ico::before { margin: 12px 0 22px 13px; }
.page-entry .bh-card.bh-ico { background: var(--c-white) radial-gradient(circle at 38px 38px, var(--c-green-50) 24px, transparent 25px) no-repeat; }
.page-entry .bh-card.bh-ico::before { margin: 8px 0 18px 9px; }
.page-entry .bh-numbered-cards .bh-card.bh-ico { background: var(--c-white); }
/* Buttons inside cards: soft green with arrow (design) */
.page-entry .bh-card .wp-block-button.is-style-outline .wp-block-button__link {
	width: 100%;
	justify-content: flex-start;
	border: 0;
	background: var(--c-green-50);
	color: var(--c-primary);
	font-size: .88rem;
}
.page-entry .bh-card .wp-block-button.is-style-outline { width: 100%; }
.page-entry .wp-block-button__link::after { content: "→"; margin-left: 8px; }
.page-entry .wp-block-button__link:hover { filter: brightness(.95); }
/* Grid children: cancel WordPress flow-layout top margins so items align. */
.page-entry .bh-features > *, .page-entry .bh-cards > *, .page-entry .bh-faqs > *,
.entry-content .bh-cards > *, .entry-content .bh-faqs > * { margin-block-start: 0; }
/* Larger icons, as in the designs */
.bh-feature.bh-ico { background: radial-gradient(circle at 50% 50px, var(--c-green-50) 32px, transparent 33px) no-repeat; padding-top: 32px; }
.bh-feature.bh-ico::before { width: 34px; height: 34px; margin: 1px auto 30px; }
.page-entry .bh-card.bh-ico { background: var(--c-white) radial-gradient(circle at 42px 42px, var(--c-green-50) 27px, transparent 28px) no-repeat; }
.page-entry .bh-card.bh-ico::before { width: 30px; height: 30px; margin: 10px 0 20px 11px; }
.bh-panel--form { background: var(--c-green-25); }
.contact-list__icon .icon { width: 22px; height: 22px; }
/* Readability: page body text sizes closer to the designs */
.bh-feature p, .page-entry .bh-card p { font-size: .93rem; }
.bh-panel p, .page-entry .is-style-besthome-check, .page-entry .is-style-besthome-cross { font-size: .97rem; }
.bh-feature h2, .bh-feature h3, .page-entry .bh-card h2, .page-entry .bh-card h3 { font-size: 1.05rem; }
.entry-content .link-list a, .entry-content .contact-list a { text-decoration: none; }
.entry-content .link-list a:hover { text-decoration: underline; }
/* Override core's 3px dark table-head border */
.wp-block-table thead { border-bottom: 1px solid var(--c-border); }
.wp-block-table tfoot { border-top: 1px solid var(--c-border); }

/* Phase 8: swipe hint on horizontal scrollers (class set in main.js). */
.has-more { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent); }
/* Phase 8: parent-guide link title was inheriting the large body size. */
.parent-guide__title { font-size: 1.05rem; line-height: 1.35; }
