/*
Theme Name: BAUHELFER
Theme URI: https://two-o.com/
Description: Magazin-Layout für BAUHELFER auf Basis von Twenty Twenty-Five, mit hellem und dunklem Design.
Author: BAUHELFER
Template: twentytwentyfive
Version: 1.0.3
Requires at least: 7.1
Tested up to: 7.1
Requires PHP: 8.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bauhelfer
*/

/* ---------------------------------------------------------------------------
 * 1. Light / dark tokens (spec section 7)
 * theme.json holds the light palette. Dark mode only swaps custom properties:
 * an explicit choice via data-theme, otherwise the system setting.
 * ------------------------------------------------------------------------ */

:root {
	color-scheme: light dark;
	--bh-radius: 6px;
	--bh-plaque: transparent;
	--bh-plaque-pad: 0;
	--bh-sun: none;
	--bh-moon: block;
	--bh-footer-bg: var(--wp--preset--color--ink);
	--bh-footer-fg: var(--wp--preset--color--base);
	--bh-footer-plaque: var(--wp--preset--color--base);
}

:root[data-theme="light"] {
	color-scheme: light;
}

:root[data-theme="dark"] {
	color-scheme: dark;
	--wp--preset--color--base: #14181c;
	--wp--preset--color--surface: #1d232a;
	--wp--preset--color--line: #2e363f;
	--wp--preset--color--ink: #f1f3f5;
	--wp--preset--color--text: #cfd6dd;
	--wp--preset--color--muted: #9aa5b1;
	--wp--preset--color--accent: #f0901a;
	--wp--preset--color--on-accent: #1f2933;
	--wp--preset--color--accent-text: #f5a54a;
	--bh-plaque: var(--wp--preset--color--ink);
	--bh-plaque-pad: 6px 10px;
	--bh-sun: block;
	--bh-moon: none;
	--bh-footer-bg: var(--wp--preset--color--surface);
	--bh-footer-fg: var(--wp--preset--color--ink);
	--bh-footer-plaque: var(--wp--preset--color--ink);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--wp--preset--color--base: #14181c;
		--wp--preset--color--surface: #1d232a;
		--wp--preset--color--line: #2e363f;
		--wp--preset--color--ink: #f1f3f5;
		--wp--preset--color--text: #cfd6dd;
		--wp--preset--color--muted: #9aa5b1;
		--wp--preset--color--accent: #f0901a;
		--wp--preset--color--on-accent: #1f2933;
		--wp--preset--color--accent-text: #f5a54a;
		--bh-plaque: var(--wp--preset--color--ink);
		--bh-plaque-pad: 6px 10px;
		--bh-sun: block;
		--bh-moon: none;
		--bh-footer-bg: var(--wp--preset--color--surface);
		--bh-footer-fg: var(--wp--preset--color--ink);
		--bh-footer-plaque: var(--wp--preset--color--ink);
	}
}

/* ---------------------------------------------------------------------------
 * 2. Base
 * ------------------------------------------------------------------------ */

body {
	overflow-wrap: break-word;
}

h1,
h2,
h3,
.wp-block-post-title {
	hyphens: auto;
	overflow-wrap: break-word;
}

:where(.wp-site-blocks) :focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-text);
	outline-offset: 2px;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.bh-main {
	margin-top: 0;
	padding-top: var(--wp--preset--spacing--30);
	padding-bottom: var(--wp--preset--spacing--60);
}

/* ---------------------------------------------------------------------------
 * 3. Header (O1): service bar, logo + search + toggle, section menu
 * ------------------------------------------------------------------------ */

.bh-servicebar {
	background: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--small);
}

.bh-servicenav {
	gap: var(--wp--preset--spacing--30);
	font-weight: 400;
}

.bh-servicenav .wp-block-navigation-item__content {
	display: inline-block;
	padding: 6px 0;
	color: var(--wp--preset--color--text);
}

.bh-masthead {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.bh-masthead .bh-masthead__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--20);
}

.bh-masthead .bh-logo {
	flex: 0 0 auto;
	margin: 0;
}

.bh-logo a {
	display: inline-block;
	padding: var(--bh-plaque-pad);
	border-radius: var(--bh-radius);
	background: var(--bh-plaque);
	line-height: 0;
}

.bh-logo img {
	height: auto;
}

.bh-masthead .bh-search {
	flex: 1 1 280px;
	max-width: 560px;
	margin: 0 auto;
}

.bh-search .wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--base);
	padding: 3px;
}

.bh-search .wp-block-search__input {
	border: 0;
	min-height: 40px;
	background: transparent;
}

.bh-search .wp-block-search__button {
	min-width: 44px;
	min-height: 40px;
	margin-left: 4px;
	padding: 0 10px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

.bh-search .wp-block-search__button svg {
	fill: currentColor;
}

.bh-masthead .bh-mainnav {
	flex: 1 0 100%;
	order: 10;
	border-top: 1px solid var(--wp--preset--color--line);
	gap: var(--wp--preset--spacing--30);
}

.bh-mainnav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 12px 0;
	color: var(--wp--preset--color--ink);
}

.bh-mainnav .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
.bh-mainnav .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--accent);
}

.bh-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	min-width: 220px;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--ink) !important;
	padding: 6px 0;
	font-weight: 400;
}

.bh-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 8px 16px;
}

/* Service links live in the main menu only for the mobile drawer; the desktop has the service bar. */
.wp-block-navigation.bh-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .bh-nav-service {
	display: none;
}

/*
 * Mobile drawer: a panel from the right over a dimmed page. Top-level sections are bold with a
 * chevron button; their subcategories stay collapsed until the button is pressed (core keeps
 * aria-expanded on the button in sync). Service links follow below a rule.
 */
.wp-block-navigation.bh-mainnav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 0;
	background: rgb(20 24 28 / 0.5) !important;
	color: var(--wp--preset--color--ink) !important;
	animation: bh-drawer-fade 0.2s ease-out;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__responsive-close {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(86vw, 360px);
	max-width: none;
	margin: 0;
	overflow-y: auto;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	box-shadow: -8px 0 24px rgb(0 0 0 / 0.18);
	animation: bh-drawer-slide 0.25s ease-out;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__responsive-dialog {
	padding: 64px 24px 32px;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 12px;
	right: 12px;
	color: var(--wp--preset--color--accent-text);
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 32px;
	height: 32px;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 0;
	border-top: 1px solid var(--wp--preset--color--line);
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__container {
	gap: 0;
	align-items: stretch !important;
	width: 100%;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	display: flex;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: center !important;
	justify-content: space-between;
	width: 100%;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	flex: 1 1 auto;
	padding: 10px 0;
	box-shadow: none;
	font-size: var(--wp--preset--font-size--card);
	font-weight: 700;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__container > .bh-nav-home {
	display: none;
}

/* Theme chevron next to each section (core's own toggle cannot close submenus in the overlay). */
.wp-block-navigation.bh-mainnav .bh-subtoggle,
.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation-submenu__toggle {
	display: none !important;
}

.wp-block-navigation.bh-mainnav .is-menu-open .bh-subtoggle {
	display: inline-flex !important;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 36px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	background: transparent;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

.wp-block-navigation.bh-mainnav .is-menu-open .bh-subtoggle svg {
	transition: transform 0.2s ease;
}

.wp-block-navigation.bh-mainnav .is-menu-open .bh-subtoggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__submenu-container {
	flex: 1 0 100%;
	gap: 0;
	padding: 0 0 8px 16px !important;
	background: transparent !important;
	color: var(--wp--preset--color--text) !important;
	font-weight: 400;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation-item:not(.bh-open) > .wp-block-navigation__submenu-container {
	display: none !important;
}

.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 8px 0;
}

/* Service links: smaller, below a rule. */
.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__container > .bh-nav-service > .wp-block-navigation-item__content {
	padding: 8px 0;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.wp-block-navigation.bh-mainnav .is-menu-open .bh-nav-service--first {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--wp--preset--color--line);
}

@keyframes bh-drawer-fade {
	from {
		opacity: 0;
	}
}

@keyframes bh-drawer-slide {
	from {
		transform: translateX(100%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-navigation.bh-mainnav .wp-block-navigation__responsive-container.is-menu-open,
	.wp-block-navigation.bh-mainnav .is-menu-open .wp-block-navigation__responsive-close,
	.wp-block-navigation.bh-mainnav .is-menu-open .bh-subtoggle svg {
		animation: none;
		transition: none;
	}
}

/* Menu buttons: 44 px targets. Core hides the open button from 600 px up; keep that. */
.bh-mainnav .wp-block-navigation__responsive-container-open,
.bh-mainnav .wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	color: var(--wp--preset--color--ink);
}

.bh-mainnav .wp-block-navigation__responsive-container-close {
	display: inline-flex;
}

/* Theme toggle: 44 px touch target, icon chosen by CSS (no flash). */
.bh-toggle {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

.bh-toggle:hover {
	background: var(--wp--preset--color--surface);
}

.bh-toggle__sun {
	display: var(--bh-sun);
}

.bh-toggle__moon {
	display: var(--bh-moon);
}

@media (max-width: 599px) {
	.bh-masthead .bh-masthead__row {
		gap: var(--wp--preset--spacing--10);
		padding-bottom: var(--wp--preset--spacing--10);
	}

	.bh-masthead .bh-logo {
		flex: 1 1 auto;
	}

	.bh-masthead .bh-logo img {
		width: 150px !important;
	}

	.bh-masthead .bh-search {
		flex: 1 0 100%;
		order: 20;
		max-width: none;
	}

	.bh-masthead .bh-mainnav {
		flex: 0 0 auto;
		order: 5;
		border-top: 0;
	}

	.bh-mainnav .wp-block-navigation__responsive-container-open {
		display: inline-flex;
	}

	/* On phones the service links are in the menu drawer. */
	.bh-servicebar {
		display: none;
	}
}

/* ---------------------------------------------------------------------------
 * 4. Cards (O3)
 * ------------------------------------------------------------------------ */

.bh-card,
.bh-card-row__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bh-card > *,
.bh-card-row > *,
.bh-card-row__body > * {
	margin-block: 0 !important;
}

.bh-card .wp-block-post-featured-image {
	margin-bottom: 4px !important;
}

.wp-block-post-featured-image img {
	border-radius: var(--bh-radius);
}

.bh-kicker {
	color: var(--wp--preset--color--accent-text);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.bh-kicker a {
	color: inherit;
	text-decoration: none;
}

.bh-kicker a:hover {
	text-decoration: underline;
}

.bh-card__title {
	font-size: var(--wp--preset--font-size--card);
	line-height: 1.3;
}

.bh-card--lead .bh-card__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.2;
}

.bh-card__lead {
	color: var(--wp--preset--color--text);
}

.bh-card__lead .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.bh-card--lead .bh-card__lead {
	font-size: var(--wp--preset--font-size--medium);
}

.bh-card__meta,
.wp-block-post-time-to-read,
.wp-block-post-date {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Row card: thumbnail left, text right (hero list). */
.bh-card-row {
	display: grid;
	grid-template-columns: 128px minmax(0, 1fr);
	gap: var(--wp--preset--spacing--20);
	align-items: start;
}

.bh-card-row .bh-card__title {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.35;
}

/* ---------------------------------------------------------------------------
 * 5. Sections and grids (O2, O4, spec section 5)
 * ------------------------------------------------------------------------ */

.bh-section {
	margin-top: var(--wp--preset--spacing--50) !important;
}

.bh-section:first-child,
.bh-hero {
	margin-top: 0 !important;
}

.bh-hero > .bh-split {
	margin-top: 0;
}

.bh-section > * + * {
	margin-top: var(--wp--preset--spacing--30);
}

.bh-section .bh-section__head {
	align-items: baseline;
	gap: var(--wp--preset--spacing--20);
	padding-top: var(--wp--preset--spacing--10);
	border-top: 3px solid var(--wp--preset--color--accent);
}

.bh-section__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-large);
}

.bh-section__title a {
	color: inherit;
	text-decoration: none;
}

.bh-section__title a:hover {
	text-decoration: underline;
}

.bh-section__title--plain {
	padding-top: var(--wp--preset--spacing--10);
	border-top: 3px solid var(--wp--preset--color--accent);
}

.bh-section__more {
	margin: 0;
	white-space: nowrap;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.bh-section__more a {
	color: var(--wp--preset--color--accent-text);
	text-decoration: none;
}

.bh-section__more a:hover {
	text-decoration: underline;
}

/* Lead card next to a list (hero) or next to a 2 x 2 grid (category sections). */
.bh-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
	align-items: start;
}

.bh-split > * {
	margin: 0 !important;
}

.bh-split--hero {
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
}

.bh-rows .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bh-rows .wp-block-post {
	margin: 0;
	padding: var(--wp--preset--spacing--20) 0;
	border-top: 1px solid var(--wp--preset--color--line);
}

.bh-rows .wp-block-post:first-child {
	padding-top: 0;
	border-top: 0;
}

.bh-compact .bh-card__lead {
	display: none;
}

.bh-grid .wp-block-post-template,
.bh-compact .wp-block-post-template {
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}

@media (max-width: 1023px) {
	.bh-grid--4 .wp-block-post-template,
	.bh-grid--3 .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.bh-split,
	.bh-split--hero {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 599px) {
	.bh-grid .wp-block-post-template,
	.bh-compact .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr);
	}

	/* "Aktuell": only the first four cards on phones. */
	.bh-latest .wp-block-post:nth-child(n+5) {
		display: none;
	}

	.bh-card-row {
		grid-template-columns: 104px minmax(0, 1fr);
	}
}

/* Hide related posts when the post has no related posts. */
.bh-related-section:not(:has(.wp-block-post)) {
	display: none;
}

/* ---------------------------------------------------------------------------
 * 6. Article (O7) and archives
 * ------------------------------------------------------------------------ */

.bh-article > * + * {
	margin-top: var(--wp--preset--spacing--30);
}

.bh-article__head {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bh-article__head > * {
	margin: 0 !important;
}

.bh-meta-row {
	gap: 4px 8px;
}

.bh-meta-row > * + *::before {
	content: "·";
	margin-right: 8px;
	color: var(--wp--preset--color--muted);
}

.bh-tags a {
	display: inline-block;
	margin: 0 4px 4px 0;
	padding: 2px 10px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.bh-tags .wp-block-post-terms__separator {
	display: none;
}

.bh-post-nav {
	gap: var(--wp--preset--spacing--20);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--line);
}

.bh-post-nav > * {
	flex: 1 1 260px;
	margin: 0;
}

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

.bh-archive-head {
	margin-bottom: var(--wp--preset--spacing--40);
}

.bh-archive-head .wp-block-query-title {
	margin: 8px 0;
}

.bh-search--page {
	max-width: 560px;
}

.bh-pagination {
	margin-top: var(--wp--preset--spacing--50);
	gap: 8px;
}

.bh-pagination .page-numbers,
.bh-pagination .wp-block-query-pagination-previous,
.bh-pagination .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.bh-pagination .page-numbers.current {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

.bh-pagination .page-numbers.dots {
	border: 0;
}

.bh-404 {
	margin-bottom: var(--wp--preset--spacing--50);
}

/* "Auf einen Blick" key-facts box (Q6). */
.bh-keyfacts {
	padding: var(--wp--preset--spacing--30);
	border-left: 4px solid var(--wp--preset--color--accent);
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--surface);
}

.bh-keyfacts__title {
	margin-top: 0;
	font-size: var(--wp--preset--font-size--large);
}

/* ---------------------------------------------------------------------------
 * 7. Breadcrumbs (core block, JSON-LD from inc/breadcrumbs.php)
 * ------------------------------------------------------------------------ */

.bh-breadcrumbs {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.bh-breadcrumbs a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.bh-breadcrumbs a:hover {
	text-decoration: underline;
}

/* ---------------------------------------------------------------------------
 * 8. Content elements and third-party markup, styled with tokens so dark mode
 * follows automatically: tables, quotes, code, details/accordion, Easy TOC.
 * ------------------------------------------------------------------------ */

.wp-block-table {
	overflow-x: auto;
}

.wp-block-table th,
.wp-block-table td {
	border: 1px solid var(--wp--preset--color--line);
	padding: 8px 12px;
}

.wp-block-table thead,
.wp-block-table th {
	border-bottom-color: var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--wp--preset--color--surface);
}

.wp-block-table.is-style-stripes {
	border-bottom-color: var(--wp--preset--color--line);
}

.wp-block-quote cite,
.wp-block-pullquote cite {
	color: var(--wp--preset--color--muted);
}

:not(pre) > code {
	padding: 0.1em 0.35em;
	border-radius: 4px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
	font-size: 0.9em;
}

.wp-block-preformatted,
.wp-block-verse {
	padding: var(--wp--preset--spacing--20);
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
}

.wp-block-details {
	padding: 12px 16px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--surface);
}

.wp-block-details summary {
	color: var(--wp--preset--color--ink);
	font-weight: 500;
	cursor: pointer;
}

.wp-block-accordion {
	border-top: 1px solid var(--wp--preset--color--line);
}

.wp-block-accordion-item {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.wp-block-accordion-heading {
	margin: 0;
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--card);
}

.wp-block-accordion-heading__toggle {
	min-height: 44px;
	padding: 12px 0;
}

.wp-block-accordion-panel {
	padding-bottom: var(--wp--preset--spacing--20);
}

:root div#ez-toc-container {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--bh-radius);
	background: var(--wp--preset--color--surface);
	box-shadow: none;
	color: var(--wp--preset--color--text);
}

:root div#ez-toc-container .ez-toc-title,
:root div#ez-toc-container p.ez-toc-title {
	color: var(--wp--preset--color--ink);
}

:root div#ez-toc-container a,
:root div#ez-toc-container a:visited {
	color: var(--wp--preset--color--accent-text);
}

:root div#ez-toc-container .ez-toc-btn,
:root div#ez-toc-container .ez-toc-toggle,
:root div#ez-toc-container .ez-toc-pull-right .ez-toc-btn {
	border-color: var(--wp--preset--color--line);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}

:root div#ez-toc-container svg {
	color: currentColor;
	fill: currentColor;
}

/* ---------------------------------------------------------------------------
 * 9. Footer: ink band in light mode, surface band in dark mode, logo on a plaque.
 * ------------------------------------------------------------------------ */

.bh-footer {
	margin-top: 0;
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--line);
	background: var(--bh-footer-bg);
	color: var(--bh-footer-fg);
	font-size: var(--wp--preset--font-size--small);
}

.bh-footer a,
.bh-footer .wp-block-navigation-item__content {
	color: var(--bh-footer-fg);
}

.bh-footer .bh-footer__top,
.bh-footer .bh-footer__bottom {
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}

.bh-footer .bh-footer__bottom {
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid color-mix(in srgb, var(--bh-footer-fg) 25%, transparent);
}

.bh-footer .bh-logo a {
	padding: 6px 10px;
	background: var(--bh-footer-plaque);
}

.bh-footernav {
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	font-weight: 400;
}

.bh-footernav .wp-block-navigation-item__content {
	display: inline-block;
	padding: 6px 0;
}

.bh-copyright {
	margin: 0;
}
