/* ==========================================================================
   Mühlbachhofschule – Theme-Styles
   Tokens kommen aus theme.json (--wp--preset--*, --wp--custom--*).
   Das WordPress-Layout-System ist deaktiviert (blockGap: null); Abstände
   und Raster werden ausschließlich hier über .mbh-* Klassen gesteuert.
   ========================================================================== */
:root {
	--paper: var(--wp--preset--color--paper);
	--white: var(--wp--preset--color--white);
	--sand: var(--wp--preset--color--sand);
	--mist: var(--wp--preset--color--mist);
	--sky: var(--wp--preset--color--sky);
	--sky-deep: var(--wp--preset--color--sky-deep);
	--apricot: var(--wp--preset--color--apricot);
	--ink: var(--wp--preset--color--ink);
	--ink-soft: var(--wp--preset--color--ink-soft);
	--line: var(--wp--preset--color--line);

	--serif: var(--wp--preset--font-family--serif);
	--sans: var(--wp--preset--font-family--sans);

	--fs-xs: var(--wp--preset--font-size--xs);
	--fs-sm: var(--wp--preset--font-size--sm);
	--fs-base: var(--wp--preset--font-size--base);
	--fs-md: var(--wp--preset--font-size--md);
	--fs-lg: var(--wp--preset--font-size--lg);
	--fs-xl: var(--wp--preset--font-size--xl);
	--fs-xxl: var(--wp--preset--font-size--xxl);
	--fs-display: var(--wp--preset--font-size--display);

	--s-10: var(--wp--preset--spacing--10);
	--s-20: var(--wp--preset--spacing--20);
	--s-30: var(--wp--preset--spacing--30);
	--s-40: var(--wp--preset--spacing--40);
	--s-50: var(--wp--preset--spacing--50);
	--s-60: var(--wp--preset--spacing--60);
	--s-70: var(--wp--preset--spacing--70);

	--r-sm: var(--wp--custom--radius--sm);
	--r-md: var(--wp--custom--radius--md);
	--r-lg: var(--wp--custom--radius--lg);
	--r-pill: var(--wp--custom--radius--pill);
	--ease: var(--wp--custom--ease--out);
	--ease-io: var(--wp--custom--ease--in-out);
	--shadow-soft: var(--wp--custom--shadow--soft);
	--shadow-lift: var(--wp--custom--shadow--lift);

	--gutter: clamp(1rem, 4vw, 3rem);
	--wide: 82rem;
	--content: 44rem;
	--header-h: 76px;
	--topbar-h: 38px;

	/* z-index-Skala */
	--z-base: 1;
	--z-float: 10;
	--z-header: 100;
	--z-skip: 1000;
}

/* ---------- Basis ------------------------------------------------------- */
@view-transition { navigation: auto; }
*, *::before, *::after { box-sizing: border-box; }
html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 1rem);
	interpolate-size: allow-keywords;
}
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: var(--fs-base);
	line-height: 1.65;
	font-feature-settings: "ss01", "kern";
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
p { margin: 0; }
ul, ol { margin: 0; }
h1, h2, h3, h4 {
	margin: 0;
	hyphens: manual;
	overflow-wrap: break-word;
	font-family: var(--serif);
	font-weight: 380;
	line-height: 1.08;
	letter-spacing: -0.015em;
	font-optical-sizing: auto;
	text-wrap: balance;
	color: inherit;
}
h1 { font-size: var(--fs-xxl); }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); line-height: 1.2; }
h4 { font-size: var(--fs-md); line-height: 1.3; }
p, li { text-wrap: pretty; }
h1 em, h2 em, h3 em, .mbh-display em {
	font-style: italic;
	font-weight: 340;
	color: var(--sky-deep);
}
a { color: var(--sky-deep); text-underline-offset: 0.22em; text-decoration-thickness: 1px; }
a:hover { color: var(--ink); }
::selection { background: var(--sky); color: var(--ink); }
:focus-visible {
	outline: 2px solid var(--sky-deep);
	outline-offset: 3px;
	border-radius: 4px;
}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
/* Sprunglink zum Inhalt: der von WordPress (#wp-skip-link), in der Gestaltung der Seite */
body .skip-link.screen-reader-text:focus {
	position: fixed !important;
	top: 0.75rem; left: 0.75rem;
	z-index: var(--z-skip);
	width: auto; height: auto;
	overflow: visible; clip: auto; clip-path: none; white-space: nowrap;
	padding: 0.75rem 1.1rem;
	background: var(--ink);
	color: var(--paper);
	border-radius: var(--r-pill);
	font-size: var(--fs-sm);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}

/* ---------- Layout-Grundbausteine -------------------------------------- */
.mbh-container {
	width: min(100% - 2 * var(--gutter), var(--wide));
	margin-inline: auto;
}
.mbh-container--narrow { width: min(100% - 2 * var(--gutter), var(--content)); margin-inline: auto; }
.mbh-section { padding-block: var(--s-60); position: relative; }
.mbh-section--tight { padding-block: var(--s-50); }
.mbh-section--flush-top { padding-top: 0; }
.mbh-bg-sand { background: var(--sand); }
.mbh-bg-mist { background: var(--mist); }
.mbh-bg-white { background: var(--white); }
.mbh-bg-ink { background: var(--ink); color: var(--paper); }
.mbh-bg-ink a:not(.wp-element-button) { color: var(--sky); }
.mbh-bg-ink h1 em, .mbh-bg-ink h2 em, .mbh-bg-ink h3 em { color: var(--sky); }

/* Fließtext-Rhythmus */
.mbh-stack > * + * { margin-top: var(--s-30); }

/* Kopfzeile einer Sektion */
.mbh-head {
	display: grid;
	gap: var(--s-30);
	margin-bottom: var(--s-50);
}
.mbh-head > * { margin: 0; }
@media (min-width: 900px) {
	.mbh-head--split {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
		align-items: end;
		column-gap: var(--s-50);
	}
	.mbh-head--split > :is(.mbh-eyebrow) { grid-column: 1 / -1; }
}
.mbh-head--row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: end;
	gap: var(--s-20) var(--s-40);
}

/* ---------- Typografie-Bausteine --------------------------------------- */
.mbh-display {
	font-size: var(--fs-display);
	font-weight: 330;
	line-height: 0.98;
	letter-spacing: -0.022em;
}
.mbh-h2 { font-size: var(--fs-xl); letter-spacing: -0.025em; }
.mbh-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sky-deep);
}
.mbh-eyebrow::before {
	content: "";
	width: 1.75rem;
	height: 1px;
	background: currentColor;
	opacity: .6;
}
.mbh-bg-ink .mbh-eyebrow { color: var(--sky); }
.mbh-lead {
	font-size: var(--fs-md);
	line-height: 1.55;
	color: var(--ink-soft);
	max-width: 40ch;
}
.mbh-bg-ink .mbh-lead { color: color-mix(in srgb, var(--paper) 78%, transparent); }
.mbh-muted { color: var(--ink-soft); }
.mbh-small { font-size: var(--fs-sm); }

/* Textlink mit Pfeil */
.mbh-link a, a.mbh-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	padding-bottom: 2px;
	transition: background-size .45s var(--ease), color .2s;
}
.mbh-link a::after, a.mbh-link::after {
	content: "";
	width: 1rem; height: 1rem;
	background: currentColor;
	mask: url(../icons/arrow-right.svg) center / contain no-repeat;
	transition: transform .35s var(--ease);
}
.mbh-link a:hover, a.mbh-link:hover { background-size: 100% 1px; color: var(--sky-deep); }
.mbh-link a:hover::after, a.mbh-link:hover::after { transform: translateX(4px); }
.mbh-bg-ink .mbh-link a { color: var(--paper); }
.mbh-bg-ink .mbh-link a:hover { color: var(--sky); }

/* ---------- Buttons ----------------------------------------------------- */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-height: 3.25rem;
	padding: 0.95rem 1.6rem;
	border: 0;
	border-radius: var(--r-pill);
	background: var(--ink);
	color: var(--paper);
	font-family: var(--sans);
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.1;
	text-decoration: none;
	cursor: pointer;
	touch-action: manipulation;
	transition: background-color .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.wp-block-button__link::after {
	content: "";
	width: 1rem; height: 1rem;
	background: currentColor;
	mask: url(../icons/arrow-right.svg) center / contain no-repeat;
	transition: transform .4s var(--ease);
}
.wp-block-button__link:hover { background: var(--sky-deep); color: var(--white); }
.wp-block-button__link:hover::after { transform: translateX(4px); }
.wp-block-button__link:active { transform: scale(0.98); }
/* Button zu einer fremden Website: gleicher Primär-Button, Pfeil schräg (↗) */
.wp-block-button.mbh-btn--external .wp-block-button__link::after { mask-image: url(../icons/arrow-up-right.svg); }
.wp-block-button.mbh-btn--external .wp-block-button__link:hover::after { transform: translate(3px, -3px); }
.wp-block-button.is-style-ghost > .wp-block-button__link {
	background: transparent;
	color: var(--ink);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ink) 22%, transparent);
	border: 0;
	padding: 0.95rem 1.6rem;
}
.wp-block-button.is-style-ghost > .wp-block-button__link:hover {
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--ink);
	color: var(--ink);
}
.wp-block-button.mbh-btn--small > .wp-block-button__link { min-height: 2.75rem; padding: 0.7rem 1.2rem; }

/* ---------- Kopfbereich ------------------------------------------------ */
/* WordPress legt um Kopf- und Fußbereich einen Rahmen (.wp-block-template-part), der nur so hoch ist wie der Kopf.
   Darin könnte der klebende Kopf nicht kleben – der Rahmen wird deshalb „aufgelöst“. */
.wp-block-template-part:has(> .mbh-header) { display: contents; }
/* Angemeldete Redakteur*innen: Platz für die WordPress-Admin-Leiste (ab 601 px fest oben) */
@media (min-width: 601px) { body.admin-bar { --adminbar: var(--wp-admin--admin-bar--height, 32px); } }
.mbh-header {
	position: sticky;
	top: calc(var(--adminbar, 0px) - var(--topbar-h));
	z-index: var(--z-header);
}
.mbh-topbar {
	height: var(--topbar-h);
	display: flex;
	align-items: center;
	background: var(--ink);
	color: color-mix(in srgb, var(--paper) 82%, transparent);
	font-size: var(--fs-xs);
	letter-spacing: 0.02em;
}
.mbh-topbar__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
}
.mbh-topbar p { display: inline-flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.mbh-topbar a { color: var(--paper); text-decoration: none; font-weight: 600; }
.mbh-topbar a:hover { color: var(--sky); }
.mbh-topbar .mbh-topbar__note { overflow: hidden; text-overflow: ellipsis; }
/* Schmale Handys: Nummer vollständig zeigen, Zusatz weglassen */
@media (max-width: 520px) { .mbh-topbar__long { display: none; } }
.mbh-topbar__note::before {
	content: ""; width: 0.95rem; height: 0.95rem; flex: none;
	background: var(--sky);
	mask: url(../icons/thermometer.svg) center / contain no-repeat;
}
.mbh-topbar__meta { display: none !important; }
@media (min-width: 900px) {
	.mbh-topbar__meta { display: inline-flex !important; }
}
.mbh-topbar__meta::before {
	content: ""; width: 0.95rem; height: 0.95rem; flex: none;
	background: var(--sky);
	mask: url(../icons/map-pin.svg) center / contain no-repeat;
}
.mbh-bar {
	position: relative;
	height: var(--header-h);
}
.mbh-bar::before {
	content: "";
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--paper) 86%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(16px);
	backdrop-filter: saturate(1.4) blur(16px);
	border-bottom: 1px solid transparent;
	transition: border-color .4s var(--ease), box-shadow .4s var(--ease);
	z-index: -1;
}
.is-scrolled .mbh-bar::before {
	border-bottom-color: var(--line);
	box-shadow: 0 10px 30px -20px rgba(18, 35, 48, .25);
}
.mbh-bar__inner {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}
.mbh-brand {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	min-width: 0;
}
.mbh-brand .wp-block-site-logo, .mbh-brand .wp-block-site-logo a { display: block; line-height: 0; }
.mbh-brand .wp-block-site-logo img { width: 46px; height: auto; }
.mbh-brand__text { line-height: 1.1; }
.mbh-brand .wp-block-site-title {
	margin: 0;
	font-family: var(--serif);
	font-size: 1.28rem;
	font-weight: 450;
	letter-spacing: -0.01em;
}
.mbh-brand .wp-block-site-title a { color: var(--ink); text-decoration: none; }
.mbh-brand .wp-block-site-title a::after { content: ""; position: absolute; inset: -0.5rem; border-radius: var(--r-md); }
.mbh-brand .wp-block-site-title a:focus-visible { outline: none; }
.mbh-brand:has(a:focus-visible) { outline: 2px solid var(--sky-deep); outline-offset: 0.35rem; border-radius: var(--r-sm); }
.mbh-brand .wp-block-site-tagline {
	margin: 0.2rem 0 0;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink-soft);
}
.mbh-bar__actions { display: flex; align-items: center; gap: 0.5rem; }

/* Navigation (core/navigation, overlayMenu: always → ab 1080px inline) */
.mbh-header .wp-block-navigation {
	font-size: var(--fs-sm);
	font-weight: 500;
}
.mbh-header .wp-block-navigation__container {
	display: flex;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.mbh-header .wp-block-navigation-item__content {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.6rem 0.9rem;
	color: var(--ink);
	text-decoration: none;
	border-radius: var(--r-pill);
	transition: background-color .25s var(--ease), color .25s;
}
.mbh-header .wp-block-navigation-item__content:hover { background: color-mix(in srgb, var(--ink) 6%, transparent); color: var(--ink); }
.mbh-header .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.mbh-header .wp-block-navigation-item__content[aria-current] {
	color: var(--ink);
	background: var(--mist);
}
.mbh-header .wp-block-navigation__responsive-container-open,
.mbh-header .wp-block-navigation__responsive-container-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ink);
	color: var(--paper);
	cursor: pointer;
	transition: transform .3s var(--ease), background-color .3s;
}
.mbh-header .wp-block-navigation__responsive-container-open:hover { background: var(--sky-deep); }
.mbh-header .wp-block-navigation__responsive-container-open svg,
.mbh-header .wp-block-navigation__responsive-container-close svg { width: 22px; height: 22px; fill: currentColor; }
@media (min-width: 1080px) {
	.mbh-header .wp-block-navigation__responsive-container-open { display: none; }
	.mbh-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: block;
		position: relative;
		inset: auto;
		width: auto;
		background: none;
		z-index: auto;
		padding: 0;
		animation: none;
	}
	.mbh-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
}

/* Mobiles Overlay */
.mbh-header .wp-block-navigation__responsive-container { display: none; }
.mbh-header .wp-block-navigation__responsive-container.is-menu-open {
	display: flex;
	flex-direction: column;
	position: fixed;
	inset: 0;
	z-index: var(--z-header);
	padding: 0;
	background: var(--paper) !important;
	color: var(--ink) !important;
	overflow: auto;
	animation: mbh-overlay-in .5s var(--ease) both;
}
@keyframes mbh-overlay-in { from { opacity: 0; } to { opacity: 1; } }
.mbh-header .is-menu-open .wp-block-navigation__responsive-close,
.mbh-header .is-menu-open .wp-block-navigation__responsive-dialog {
	width: 100%;
	max-width: none;
	margin: 0;
	min-height: 100%;
}
.mbh-header .is-menu-open .wp-block-navigation__responsive-dialog {
	display: flex;
	flex-direction: column;
	padding: calc(var(--header-h) + 1.5rem) var(--gutter) 2rem;
}
.mbh-header .is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: calc((var(--header-h) - 48px) / 2);
	right: var(--gutter);
}
.mbh-header .is-menu-open .wp-block-navigation__responsive-container-content {
	display: block;
	padding: 0;
}
.mbh-header .is-menu-open .wp-block-navigation__container {
	flex-direction: column;
	gap: 0;
	border-top: 1px solid var(--line);
}
.mbh-header .is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid var(--line);
	opacity: 0;
	transform: translateY(14px);
	animation: mbh-rise .6s var(--ease) forwards;
	animation-delay: calc(var(--i, 0) * 55ms + 80ms);
}
.mbh-header .is-menu-open .wp-block-navigation-item:nth-child(1) { --i: 0; }
.mbh-header .is-menu-open .wp-block-navigation-item:nth-child(2) { --i: 1; }
.mbh-header .is-menu-open .wp-block-navigation-item:nth-child(3) { --i: 2; }
.mbh-header .is-menu-open .wp-block-navigation-item:nth-child(4) { --i: 3; }
.mbh-header .is-menu-open .wp-block-navigation-item:nth-child(5) { --i: 4; }
.mbh-header .is-menu-open .wp-block-navigation-item:nth-child(6) { --i: 5; }
.mbh-header .is-menu-open .wp-block-navigation-item__content {
	display: flex;
	width: 100%;
	justify-content: space-between;
	padding: 1.1rem 0;
	border-radius: 0;
	font-family: var(--serif);
	font-size: clamp(1.75rem, 7vw, 2.5rem);
	font-weight: 360;
	letter-spacing: -0.02em;
	background: none !important;
}
.mbh-header .is-menu-open .wp-block-navigation-item__content::after {
	content: "";
	width: 1.5rem; height: 1.5rem;
	background: var(--sky-deep);
	mask: url(../icons/arrow-right.svg) center / contain no-repeat;
}
@keyframes mbh-rise { to { opacity: 1; transform: none; } }

/* Core-Overrides im geöffneten Overlay (höhere Spezifität nötig) */
.mbh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	align-items: stretch;
	gap: 0;
}
.mbh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { width: 100%; }
.mbh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { padding: 1.1rem 0; }

/* ---------- Reveal-Animationen ----------------------------------------- */
.js :is(.mbh-reveal, .is-style-reveal) {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition: opacity 1s var(--ease), transform 1.1s var(--ease);
	transition-delay: var(--delay, 0ms);
}
.js :is(.mbh-reveal, .is-style-reveal).is-in { opacity: 1; transform: none; }
.mbh-d1 { --delay: 110ms; }
.mbh-d2 { --delay: 220ms; }
.mbh-d3 { --delay: 380ms; }
.js :is(.mbh-stagger, .is-style-stagger) > * {
	opacity: 0;
	transform: translate3d(0, 22px, 0);
	transition: opacity .9s var(--ease), transform 1s var(--ease);
	transition-delay: calc(min(var(--i, 0), 8) * 70ms);
}
.js :is(.mbh-stagger, .is-style-stagger).is-in > * { opacity: 1; transform: none; }
.js .mbh-fade { opacity: 0; transition: opacity 1.2s var(--ease); }
.js .mbh-fade.is-in { opacity: 1; }

/* Wortweises Einblenden (Headline) */
/* Safari kennt overflow-clip-margin nicht: Luft für Unterlängen (g, y) als Innenabstand, per negativem Rand ausgeglichen */
.mbh-w { display: inline-block; overflow: clip; vertical-align: top; padding: 0.1em 0.06em 0.24em 0; margin: -0.1em -0.06em -0.24em 0; }
.mbh-w > span { display: inline-block; }
.js .mbh-words:not(.is-in) .mbh-w > span { transform: translate3d(0, 140%, 0); }
.js .mbh-words .mbh-w > span {
	transition: transform 1.15s var(--ease);
	transition-delay: calc(var(--wi, 0) * 55ms + 120ms);
}

/* Bild-Enthüllung */
.js .mbh-unveil { clip-path: inset(14% 0 0 0 round var(--r-lg)); transition: clip-path 1.5s var(--ease); }
.js .mbh-unveil img { transform: scale(1.14); transition: transform 2s var(--ease); }
.js .mbh-unveil.is-in { clip-path: inset(0 0 0 0 round 0); }
.js .mbh-unveil.is-in img { transform: scale(1); }

/* Dezente Parallaxe (per JS gesetzte Variable) */
/* Parallaxe für große, freistehende Fotos (Seitenköpfe, Werkraum, Mensa, Eingang, Girlande) – nicht für Karten, Listen, Laufband.
   Eigene translate/scale-Eigenschaften, damit sie mit der Bild-Enthüllung (transform) zusammenspielt und nicht nachzieht. */
.mbh-parallax { overflow: hidden; }
.mbh-parallax img { translate: 0 var(--py, 0px); scale: 1.12; will-change: translate; }
.mbh-rounded.mbh-parallax { border-radius: var(--r-lg); }

/* ---------- Hero ------------------------------------------------------- */
.mbh-hero { position: relative; overflow: clip; }
.mbh-hero__grid {
	display: grid;
	gap: clamp(2.5rem, 6vw, 5rem);
	align-items: center;
}
@media (min-width: 1024px) {
	.mbh-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
}
.mbh-hero__text > * + * { margin-top: var(--s-30); }
.mbh-hero__text .mbh-display { margin-top: var(--s-40); }
.mbh-hero__text .mbh-lead { max-width: 42ch; }
.mbh-hero__text .wp-block-buttons { margin-top: var(--s-40); }
.mbh-hero__media { position: relative; margin-inline: auto; }
@media (min-width: 1024px) {
	.mbh-hero__media { margin-inline: auto 0; }
}
.mbh-arch img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 50% 50% var(--r-lg) var(--r-lg) / 40% 40% var(--r-lg) var(--r-lg);
}
.mbh-arch { border-radius: 50% 50% var(--r-lg) var(--r-lg) / 40% 40% var(--r-lg) var(--r-lg); overflow: hidden; }
.js .mbh-arch.mbh-unveil { clip-path: inset(30% 0 0 0); }
.js .mbh-arch.mbh-unveil.is-in { clip-path: inset(0); }
.mbh-hero__badge {
	position: absolute !important;
	left: -9%;
	bottom: 16%;
	width: 34%;
	z-index: var(--z-float);
}
.mbh-hero__badge img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	border: 6px solid var(--paper);
	box-shadow: var(--shadow-lift);
}
@media (max-width: 600px) {
	.mbh-hero__badge { left: -2%; width: 30%; }
}

/* Bachlauf-Linie (Mühlbach) */
.mbh-brook {
	position: absolute;
	inset: auto 0 6% 0;
	z-index: 0;
	pointer-events: none;
	color: var(--sky);
	opacity: .55;
}
.mbh-brook svg { width: 100%; height: auto; }
.mbh-brook path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js .mbh-brook.is-in path { animation: mbh-draw 3.2s var(--ease-io) forwards; }
.js .mbh-brook.is-in path:nth-child(2) { animation-delay: .35s; }
html:not(.js) .mbh-brook path { stroke-dashoffset: 0; }
@keyframes mbh-draw { to { stroke-dashoffset: 0; } }
.mbh-hero .mbh-container { position: relative; z-index: 1; }
@keyframes mbh-cue { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* ---------- Wegweiser (Startseite) ----------------------------------- */
.mbh-guide { padding-block: var(--s-50); background: var(--white); border-block: 1px solid var(--line); }
/* letzte Reihe ohne eigene Linie – die Bereichslinie schließt den Wegweiser ab */
.mbh-guide__item:last-child { border-bottom: 0; }
@media (min-width: 768px) { .mbh-guide__item:nth-last-child(2) { border-bottom: 0; } }
.mbh-guide__grid { display: grid; gap: var(--s-40) var(--s-50); }
/* Eine Liste ohne Zielgruppen-Spalten: Alltägliches zuerst, Themen für neue Familien zuletzt */
.mbh-guide__list { display: grid; column-gap: var(--s-50); border-top: 1px solid var(--ink); }
@media (min-width: 768px) {
	.mbh-guide__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
	.mbh-guide__grid { grid-template-columns: minmax(0, .8fr) minmax(0, 2fr); column-gap: var(--s-50); }
}
.mbh-guide__label > * + * { margin-top: .6rem; }
.mbh-guide__label h2 { font-size: var(--fs-lg); line-height: 1.15; }
.mbh-guide__item {
	position: relative;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) 1.1rem;
	column-gap: 1rem;
	align-items: center;
	padding: .9rem 0;
	border-bottom: 1px solid var(--line);
}

/* Icon: ::before = Kreis, ::after = Pfeil; das Icon selbst sitzt als Hintergrund-Maske im Titel-Link */
.mbh-guide__item::before {
	content: "";
	grid-row: 1 / span 2;
	width: 2.5rem; height: 2.5rem;
	border-radius: 50%;
	background: var(--mist);
	transition: background-color .4s var(--ease);
}
.mbh-guide__item > :is(h3, p) { grid-column: 2; margin: 0; }
.mbh-guide__item::after {
	content: "";
	grid-column: 3; grid-row: 1 / span 2;
	width: 1.1rem; height: 1.1rem;
	background: var(--ink);
	mask: url(../icons/arrow-right.svg) center / contain no-repeat;
	opacity: .35;
	transition: opacity .3s, transform .4s var(--ease);
}
.mbh-guide__item h3 { font-family: var(--sans); font-size: var(--fs-base); font-weight: 650; letter-spacing: 0; line-height: 1.3; }
.mbh-guide__item h3 a { color: var(--ink); text-decoration: none; }
.mbh-guide__item h3 a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.mbh-guide__item h3 a::after {
	content: "";
	position: absolute;
	left: .65rem; top: 50%;
	width: 1.2rem; height: 1.2rem;
	margin-top: -.6rem;
	background: var(--sky-deep);
	mask: var(--ico, url(../icons/info.svg)) center / contain no-repeat;
	transition: background-color .4s var(--ease);
}
.mbh-guide__item p { font-size: var(--fs-sm); color: var(--ink-soft); line-height: 1.4; }
.mbh-guide__item:hover::before { background: var(--sky); }
.mbh-guide__item:hover h3 a { color: var(--sky-deep); }
.mbh-guide__item:hover h3 a::after { background: var(--ink); }
.mbh-guide__item:hover::after { opacity: 1; transform: translateX(4px); }
.mbh-guide__item:has(a:focus-visible) { outline: 2px solid var(--sky-deep); outline-offset: 4px; border-radius: 4px; }
.mbh-guide__item a:focus-visible { outline: none; }

/* Icon-Klassen (auch für andere Bausteine nutzbar) */
.mbh-i-thermometer { --ico: url(../icons/thermometer.svg); }
.mbh-i-calendar { --ico: url(../icons/calendar.svg); }
.mbh-i-utensils { --ico: url(../icons/utensils.svg); }
.mbh-i-download { --ico: url(../icons/file-down.svg); }
.mbh-i-sun { --ico: url(../icons/sun.svg); }
.mbh-i-phone { --ico: url(../icons/phone.svg); }
.mbh-i-heart { --ico: url(../icons/heart.svg); }
.mbh-i-users { --ico: url(../icons/users.svg); }
.mbh-i-sparkles { --ico: url(../icons/sparkles.svg); }
.mbh-i-book { --ico: url(../icons/book.svg); }
.mbh-i-leaf { --ico: url(../icons/leaf.svg); }
.mbh-i-compass { --ico: url(../icons/compass.svg); }
.mbh-i-handshake { --ico: url(../icons/handshake.svg); }

/* ---------- Profil-Zeilen mit wechselndem Bild ------------------------- */
.mbh-features {
	display: grid;
	gap: var(--s-50);
}
@media (min-width: 960px) {
	.mbh-features { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--s-60); align-items: start; }
}
.mbh-features__media {
	display: none;
}
@media (min-width: 960px) {
	.mbh-features__media {
		display: grid;
		position: sticky;
		top: calc(var(--header-h) + 2rem);
		aspect-ratio: 4 / 5;
		border-radius: var(--r-lg);
		overflow: hidden;
		background: var(--sand);
	}
	.mbh-features__media > figure {
		grid-area: 1 / 1;
		opacity: 0;
		transform: scale(1.06);
		transition: opacity .9s var(--ease), transform 1.6s var(--ease);
	}
	.mbh-features__media > figure.is-active { opacity: 1; transform: none; }
	.mbh-features__media img { width: 100%; height: 100%; object-fit: cover; }
}
.mbh-features__list { counter-reset: feat; }
.mbh-feature {
	counter-increment: feat;
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	column-gap: 1rem;
	padding: var(--s-40) 0;
	border-top: 1px solid var(--line);
	position: relative;
	transition: opacity .5s var(--ease);
}
.mbh-feature:last-child { border-bottom: 1px solid var(--line); }
.mbh-feature::before {
	content: counter(feat, decimal-leading-zero);
	grid-row: 1 / span 3;
	font-family: var(--serif);
	font-style: italic;
	font-size: var(--fs-md);
	color: var(--sky-deep);
	line-height: 1.5;
}
.mbh-feature::after {
	content: "";
	position: absolute;
	left: 0; top: -1px;
	height: 1px; width: 100%;
	background: var(--ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .9s var(--ease);
}
.mbh-feature > * { grid-column: 2; }
.mbh-feature > * + * { margin-top: .6rem; }
.mbh-feature h3 { font-size: var(--fs-lg); }
.mbh-feature p { color: var(--ink-soft); max-width: 52ch; }
.mbh-feature .mbh-tag { margin-top: .9rem; }
@media (min-width: 960px) {
	.mbh-features.is-enhanced .mbh-feature { opacity: .42; cursor: default; }
	.mbh-features.is-enhanced .mbh-feature.is-active { opacity: 1; }
	.mbh-feature.is-active::after { transform: scaleX(1); }
}
.mbh-feature__img { display: block; margin-top: 1.25rem !important; }
.mbh-feature__img img { border-radius: var(--r-md); aspect-ratio: 16/10; object-fit: cover; width: 100%; }
@media (min-width: 960px) {
	.mbh-feature__img { display: none; }
}
/* Handy/Tablet: Schwerpunkte als wischbare Karten – Bild oben, Text darunter; die nächste Karte schaut hervor */
@media (max-width: 959px) {
	.mbh-features__list {
		display: flex; gap: .875rem; overflow-x: auto; overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none;
		margin-inline: calc(var(--gutter) * -1); padding: .25rem var(--gutter) .75rem;
	}
	.mbh-features__list::-webkit-scrollbar { display: none; }
	.mbh-feature {
		flex: 0 0 min(84%, 24rem); display: flex; flex-direction: column; scroll-snap-align: start;
		padding: 0 0 1.4rem; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); overflow: hidden;
	}
	.mbh-feature:last-child { border-bottom: 1px solid var(--line); }
	.mbh-feature::after { display: none; }
	.mbh-feature > .mbh-feature__img { order: -1; margin: 0 0 1.1rem !important; }
	.mbh-feature__img img { border-radius: 0; aspect-ratio: 16 / 10; }
	.mbh-feature::before, .mbh-feature > :not(figure) { padding-inline: 1.25rem; }
	.mbh-feature::before { font-size: var(--fs-base); line-height: 1.2; }
	.mbh-feature > h3 { margin-top: .3rem; font-size: var(--fs-md); line-height: 1.2; }
	.mbh-feature > p { margin-top: .6rem; font-size: var(--fs-sm); max-width: none; }
	.mbh-feature > .mbh-tag { align-self: flex-start; margin: .9rem 0 0 1.25rem; padding-inline: .7rem; }
	.mbh-features__list:focus-visible { outline: 2px solid var(--sky-deep); outline-offset: 2px; }
}

.mbh-tag {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	width: fit-content;
	padding: .3rem .7rem;
	border-radius: var(--r-pill);
	background: var(--mist);
	color: var(--sky-deep);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: .04em;
}

/* ---------- Tagesablauf (Tabs) ----------------------------------------- */
.mbh-day {
	display: grid;
	gap: var(--s-50);
}
@media (min-width: 1024px) {
	.mbh-day { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: var(--s-60); align-items: center; }
}
.mbh-day__intro > * + * { margin-top: var(--s-30); }
.mbh-day__intro .mbh-link { margin-top: var(--s-40); }
.mbh-schedule {
	position: relative;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	border-radius: var(--r-lg);
	background: color-mix(in srgb, var(--paper) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--paper) 12%, transparent);
}
.mbh-bg-ink .mbh-schedule { background: color-mix(in srgb, var(--paper) 5%, transparent); }
.mbh-schedule--light { background: var(--white); border-color: var(--line); box-shadow: var(--shadow-soft); }
.mbh-tabs {
	position: relative;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	padding: 4px;
	margin-bottom: var(--s-40);
	border-radius: var(--r-pill);
	background: color-mix(in srgb, var(--paper) 10%, transparent);
}
.mbh-schedule--light .mbh-tabs { background: var(--sand); }
.mbh-tabs__indicator {
	position: absolute;
	top: 4px; bottom: 4px; left: 4px;
	width: calc((100% - 8px) / var(--n, 2));
	border-radius: var(--r-pill);
	background: var(--sky);
	transform: translateX(calc(var(--idx, 0) * 100%));
	transition: transform .55s var(--ease);
}
.mbh-schedule--light .mbh-tabs__indicator { background: var(--ink); }
.mbh-tabs button {
	position: relative;
	z-index: 1;
	min-height: 44px;
	padding: .65rem 1rem;
	border: 0;
	background: none;
	color: inherit;
	font: 600 var(--fs-sm) / 1.2 var(--sans);
	cursor: pointer;
	border-radius: var(--r-pill);
	transition: color .4s var(--ease);
}
.mbh-bg-ink .mbh-tabs button[aria-selected="true"] { color: var(--ink); }
.mbh-schedule--light .mbh-tabs button[aria-selected="true"] { color: var(--paper); }
.mbh-schedule__panel > h3 { font-size: var(--fs-lg); margin-bottom: .4rem; }
.mbh-schedule.is-enhanced .mbh-schedule__panel > h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.mbh-schedule__panel + .mbh-schedule__panel { margin-top: var(--s-50); }
.mbh-schedule.is-enhanced .mbh-schedule__panel + .mbh-schedule__panel { margin-top: 0; }
.mbh-schedule__panel[hidden] { display: none; }
.mbh-schedule__panel > p { font-size: var(--fs-sm); opacity: .78; margin-bottom: var(--s-30); }
.mbh-timeline-list {
	list-style: none;
	padding: 0;
	margin: 0;
	position: relative;
}
.mbh-timeline-list::before {
	content: "";
	position: absolute;
	left: 6.6rem; top: .9rem; bottom: .9rem;
	width: 1px;
	background: currentColor;
	opacity: .18;
}
.mbh-timeline-list li {
	position: relative;
	display: grid;
	grid-template-columns: 5.8rem minmax(0, 1fr);
	column-gap: 1.6rem;
	padding: .7rem 0;
	line-height: 1.45;
}
.mbh-timeline-list li::before {
	content: "";
	position: absolute;
	left: calc(6.6rem - 4px);
	top: 1.15rem;
	width: 9px; height: 9px;
	border-radius: 50%;
	background: var(--sky);
	box-shadow: 0 0 0 4px var(--ink);
}
.mbh-schedule--light .mbh-timeline-list li::before { box-shadow: 0 0 0 4px var(--white); background: var(--sky-deep); }
.mbh-timeline-list li strong {
	font-family: var(--serif);
	font-weight: 400;
	font-variant-numeric: tabular-nums;
	font-size: 1.05rem;
	text-align: right;
}
.mbh-timeline-list li em { grid-column: 2; font-style: normal; font-size: var(--fs-sm); opacity: .7; }
.mbh-schedule__panel.is-showing .mbh-timeline-list li {
	animation: mbh-rise-sm .6s var(--ease) both;
	animation-delay: calc(var(--i, 0) * 45ms);
}
@keyframes mbh-rise-sm { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---------- Karten: News ----------------------------------------------- */
.mbh-newsgrid { display: grid; gap: var(--s-50); }
@media (min-width: 1024px) {
	.mbh-newsgrid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); column-gap: var(--s-50); align-items: start; }
}
.mbh-posts .wp-block-post-template,
.mbh-posts > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--s-40) var(--s-30);
}
@media (min-width: 560px) {
	.mbh-posts .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mbh-posts--3 .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.mbh-posts--3 .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.mbh-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .7rem;
}
.mbh-card .wp-block-post-featured-image {
	margin: 0 0 .5rem;
	border-radius: var(--r-md);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--sand);
}
.mbh-card .wp-block-post-featured-image a { display: block; height: 100%; }
.mbh-card .wp-block-post-featured-image img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ease);
}
.mbh-card:hover .wp-block-post-featured-image img { transform: scale(1.045); }
.mbh-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem .75rem;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink-soft);
}
.mbh-card__meta .wp-block-post-terms :is(a, span) { color: var(--sky-deep); text-decoration: none; }
/* „Weitere Eindrücke“: Knopf mittig unter den Karten, neue Karten blenden nacheinander ein */
.mbh-posts__more { justify-content: center; margin-top: var(--s-50); }
.mbh-posts__more .wp-block-button__link::after { mask-image: url(../icons/plus.svg); }
.mbh-posts__more .wp-block-button__link:hover::after { transform: rotate(90deg); }
.mbh-posts__more.is-open .wp-block-button__link::after { mask-image: url(../icons/minus.svg); }
.mbh-posts__more.is-open .wp-block-button__link:hover::after { transform: none; }
.mbh-posts--more .wp-block-post.is-new { animation: mbh-card-in .7s var(--ease) both; animation-delay: calc(min(var(--i, 0), 8) * 70ms); }
@keyframes mbh-card-in { from { opacity: 0; transform: translateY(18px); } }
@media (prefers-reduced-motion: reduce) { .mbh-posts--more .wp-block-post.is-new { animation: none; } }
.mbh-card__meta .wp-block-post-date::before { content: "·"; margin-right: .75rem; color: var(--line); }
.mbh-card .wp-block-post-title { font-size: var(--fs-lg); line-height: 1.18; }
.mbh-card .wp-block-post-title a {
	color: var(--ink);
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size .6s var(--ease);
}
.mbh-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.mbh-card:hover .wp-block-post-title a { background-size: 100% 1px; }
.mbh-card .wp-block-post-excerpt { color: var(--ink-soft); font-size: var(--fs-sm); }
.mbh-card .wp-block-post-excerpt__excerpt { margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.mbh-card .wp-block-post-excerpt__more-text { display: none; }

/* ---------- Termine ---------------------------------------------------- */
.mbh-events {
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
}
.mbh-events .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.mbh-events .wp-block-query-no-results p { padding: 1.25rem 0; color: var(--ink-soft); font-size: var(--fs-sm); }
.mbh-event { display: grid; padding: 1rem 0; }
.mbh-event__date { place-items: center; align-content: center; }
.mbh-event__day { font-family: var(--serif); font-weight: 420; color: var(--ink); }
.mbh-event__month { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-top: .15rem; }
.mbh-event__meta { font-size: var(--fs-sm); }

/* Große Terminliste (Unterseite) */
.mbh-events--list { padding: 0; background: none; border: 0; border-radius: 0; }

/* ---------- Laufband Schulleben ---------------------------------------- */
.mbh-marquee {
	overflow: hidden;
	padding-block: var(--s-20);
	-webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.mbh-marquee__track {
	display: flex;
	gap: 1rem;
	width: max-content;
	align-items: center;
}
.mbh-marquee.is-running .mbh-marquee__track { animation: mbh-marquee var(--dur, 70s) linear infinite; }
.mbh-marquee:hover .mbh-marquee__track,
.mbh-marquee:focus-within .mbh-marquee__track,
.mbh-marquee.is-paused .mbh-marquee__track { animation-play-state: paused; }
.mbh-marquee figure { flex: none; }
.mbh-marquee img {
	height: clamp(200px, 26vw, 360px);
	width: auto;
	aspect-ratio: var(--ar, 4 / 5);
	object-fit: cover;
	border-radius: var(--r-md);
}
.mbh-marquee figure:nth-child(3n + 1) img { --ar: 4 / 5; }
.mbh-marquee figure:nth-child(3n + 2) img { --ar: 1 / 1; height: clamp(160px, 20vw, 280px); }
.mbh-marquee figure:nth-child(3n) img { --ar: 3 / 2; }
@keyframes mbh-marquee { to { transform: translateX(calc(-50% - .5rem)); } }
.mbh-marquee__toggle {
	display: inline-flex; align-items: center; gap: .5rem;
	min-height: 44px;
	padding: .5rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--r-pill);
	background: var(--white);
	color: var(--ink);
	font: 600 var(--fs-xs) / 1 var(--sans);
	letter-spacing: .06em;
	cursor: pointer;
}
.mbh-marquee__toggle:hover { border-color: var(--ink); }

/* ---------- CTA Anmeldung ---------------------------------------------- */
.mbh-steps {
	display: grid;
	gap: var(--s-30);
	margin-top: var(--s-50);
	counter-reset: step;
}
@media (min-width: 900px) {
	.mbh-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-40); }
}
.mbh-step {
	counter-increment: step;
	padding-top: var(--s-30);
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}
.mbh-step::before {
	content: counter(step);
	display: grid; place-items: center;
	width: 2.5rem; height: 2.5rem;
	margin-bottom: 1.25rem;
	border-radius: 50%;
	border: 1px solid var(--sky);
	color: var(--sky);
	font-family: var(--serif);
	font-size: 1.1rem;
}
.mbh-section:not(.mbh-bg-ink) .mbh-step::before { border-color: var(--sky-deep); color: var(--sky-deep); }
.mbh-step h3 { font-size: var(--fs-md); font-family: var(--serif); }
.mbh-step p { margin-top: .5rem; font-size: var(--fs-sm); opacity: .78; }
.mbh-step .mbh-tag { margin-top: .9rem; }

/* ---------- Fußbereich ------------------------------------------------- */
.mbh-footer {
	position: relative;
	padding-top: var(--s-60);
	background: var(--sand);
	overflow: clip;
}
.mbh-footer__grid {
	display: grid;
	gap: var(--s-40);
}
@media (min-width: 700px) {
	.mbh-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.mbh-footer__grid { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); column-gap: var(--s-50); }
}
.mbh-footer h2, .mbh-footer h3 {
	font-family: var(--sans);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-soft);
	margin-bottom: 1rem;
}
.mbh-footer__brand p.mbh-footer__claim {
	font-family: var(--serif);
	font-size: var(--fs-lg);
	line-height: 1.2;
	letter-spacing: -0.015em;
	max-width: 18ch;
	margin-bottom: var(--s-30);
}
.mbh-footer p, .mbh-footer li { font-size: var(--fs-sm); line-height: 1.7; }
.mbh-footer ul { list-style: none; padding: 0; }
.mbh-footer a { color: var(--ink); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--ease); }
.mbh-footer a:hover { background-size: 100% 1px; }
.mbh-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	margin-top: var(--s-50);
	padding-block: 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
	font-size: var(--fs-xs);
	color: var(--ink-soft);
}
.mbh-footer__bottom ul { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; }
.mbh-footer__bottom li { font-size: var(--fs-xs); }
.mbh-footer .mbh-footer__mark {
	margin: var(--s-40) 0 -0.19em;
	font-family: var(--serif);
	font-size: min(14.6vw, 15rem);
	font-variation-settings: "opsz" 144; /* gleiche Laufweite auf allen Breiten */
	font-weight: 300;
	line-height: .8;
	letter-spacing: -0.055em;
	white-space: nowrap;
	text-align: center;
	color: color-mix(in srgb, var(--ink) 7%, var(--sand));
	user-select: none;
}
/* Buchstabe für Buchstabe von unten (setzt site.js); ohne JavaScript steht der Schriftzug einfach da */
.mbh-footer__mark.mbh-letters { overflow: clip; padding-block: .15em; margin-block: -.15em; }
.mbh-l { display: inline-block; }
.js .mbh-letters:not(.is-in) .mbh-l { transform: translate3d(0, 130%, 0); }
.js .mbh-letters .mbh-l { transition: transform 1.1s var(--ease); transition-delay: calc(var(--li, 0) * 38ms); }

/* ---------- Unterseiten: Seitenkopf ------------------------------------ */
.mbh-pagehero { padding-block: clamp(2.5rem, 7vw, 6rem) var(--s-50); }
.mbh-pagehero__grid { display: grid; gap: var(--s-30); }
@media (min-width: 960px) {
	.mbh-pagehero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--s-60); align-items: end; }
	.mbh-pagehero__grid > .mbh-eyebrow { grid-column: 1 / -1; }
}
.mbh-pagehero h1 { font-size: var(--fs-xxl); letter-spacing: -0.035em; line-height: 1; }
.mbh-pagehero .mbh-lead { max-width: 38ch; }
.mbh-pagehero__image {
	margin-top: var(--s-50);
	border-radius: var(--r-lg);
	overflow: hidden;
}
.mbh-pagehero__image img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
@media (max-width: 700px) {
	.mbh-pagehero__image img { aspect-ratio: 4 / 3; }
}

/* In-Page-Navigation (Anker) */
.mbh-anchors {
	position: sticky;
	top: calc(var(--header-h) + var(--adminbar, 0px));
	z-index: var(--z-float);
	background: color-mix(in srgb, var(--paper) 90%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-block: 1px solid var(--line);
}
.mbh-anchors ul {
	display: flex;
	gap: .25rem;
	list-style: none;
	margin: 0 auto;
	padding: .5rem 0;
	overflow-x: auto;
	scrollbar-width: none;
}
.mbh-anchors ul::-webkit-scrollbar { display: none; }
/* Lesefortschritt: feine Linie am unteren Rand der Sprungleiste (setzt site.js) */
.mbh-anchors::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--sky); transform: scaleX(var(--read, 0)); transform-origin: left center; pointer-events: none; }
/* Weitere Punkte rechts/links: Rand blendet weich aus (setzt site.js) */
.mbh-anchors ul.has-more-r { mask-image: linear-gradient(to right, #000 calc(100% - 3rem), transparent); }
.mbh-anchors ul.has-more-l { mask-image: linear-gradient(to left, #000 calc(100% - 3rem), transparent); }
.mbh-anchors ul.has-more-l.has-more-r { mask-image: linear-gradient(to right, transparent, #000 3rem, #000 calc(100% - 3rem), transparent); }
.mbh-anchors li { flex: none; }
.mbh-anchors a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: .4rem .95rem;
	border-radius: var(--r-pill);
	font-size: var(--fs-sm);
	font-weight: 500;
	color: var(--ink-soft);
	text-decoration: none;
	transition: background-color .3s var(--ease), color .3s;
}
.mbh-anchors a:hover { color: var(--ink); background: color-mix(in srgb, var(--ink) 5%, transparent); }
.mbh-anchors a.is-current { background: var(--ink); color: var(--paper); }

/* Bild-Text-Teiler */
.mbh-mediatext { display: grid; gap: var(--s-40); align-items: center; }
@media (min-width: 960px) {
	.mbh-mediatext { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-60); }
}
.mbh-mediatext figure { border-radius: var(--r-lg); overflow: hidden; }
.mbh-mediatext img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.mbh-mediatext__text > * + * { margin-top: var(--s-30); }
.mbh-mediatext__text p:not(.mbh-eyebrow):not(.mbh-link) { color: var(--ink-soft); }
.mbh-bg-ink .mbh-mediatext__text p:not(.mbh-eyebrow):not(.mbh-link) { color: color-mix(in srgb, var(--paper) 78%, transparent); }

/* Werte-/Angebotskarten */
.mbh-cards {
	display: grid;
	gap: 1rem;
}
@media (min-width: 640px) {
	.mbh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.mbh-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mbh-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.mbh-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: clamp(1.4rem, 2.5vw, 2rem);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.mbh-tile::before {
	content: "";
	width: 1.6rem; height: 1.6rem;
	margin-bottom: 1rem;
	background: var(--sky-deep);
	mask: var(--ico, url(../icons/sparkles.svg)) center / contain no-repeat;
}
.mbh-tile h3 { font-size: var(--fs-md); line-height: 1.25; }
.mbh-tile p { font-size: var(--fs-sm); color: var(--ink-soft); }
.mbh-tile .mbh-tag { position: absolute; top: 1.4rem; right: 1.4rem; }
.mbh-tile .mbh-link { margin-top: auto; padding-top: .75rem; }
.mbh-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.mbh-bg-sand .mbh-tile { border-color: transparent; }

/* Chronik */
.mbh-chronicle {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	--progress: 0;
}
.mbh-chronicle::before, .mbh-chronicle::after {
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 1px;
	background: var(--line);
}
.mbh-chronicle::after { background: var(--sky-deep); transform: scaleY(var(--progress)); transform-origin: top; }
@media (min-width: 900px) {
	.mbh-chronicle::before, .mbh-chronicle::after { left: 12rem; }
}
.mbh-chronicle > li {
	position: relative;
	display: grid;
	gap: .5rem 3rem;
	padding: 0 0 var(--s-50) 2rem;
}
@media (min-width: 900px) {
	.mbh-chronicle > li { grid-template-columns: 10rem minmax(0, 1fr); column-gap: 4rem; padding-left: 0; }
}
.mbh-chronicle > li::before {
	content: "";
	position: absolute;
	left: -5px; top: .75rem;
	width: 11px; height: 11px;
	border-radius: 50%;
	background: var(--paper);
	border: 1px solid var(--sky-deep);
	z-index: 1;
}
@media (min-width: 900px) {
	.mbh-chronicle > li::before { left: calc(12rem - 5px); }
}
.mbh-chronicle strong {
	font-family: var(--serif);
	font-weight: 300;
	font-size: var(--fs-xl);
	line-height: 1;
	letter-spacing: -0.03em;
}
@media (min-width: 900px) {
	.mbh-chronicle strong { text-align: right; }
}
.mbh-chronicle span { display: block; max-width: 56ch; color: var(--ink-soft); }
.mbh-chronicle span b { display: block; font-family: var(--serif); font-weight: 420; color: var(--ink); font-size: var(--fs-md); margin-bottom: .35rem; }

/* Vergleich Ganztag / Verlässliche GS */
.mbh-compare { display: grid; gap: 1rem; }
@media (min-width: 900px) {
	.mbh-compare { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.mbh-option {
	position: relative;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: var(--r-lg);
	background: var(--white);
	border: 1px solid var(--line);
}
.mbh-option > * + * { margin-top: var(--s-20); }
.mbh-option h3 { font-size: var(--fs-lg); }
.mbh-option .mbh-option__time {
	font-family: var(--serif);
	font-size: var(--fs-xl);
	font-weight: 300;
	letter-spacing: -0.03em;
	line-height: 1;
}
.mbh-option .mbh-option__sub { font-size: var(--fs-sm); opacity: .75; }
.mbh-checks { list-style: none; padding: 0; margin-top: var(--s-30) !important; border-top: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.mbh-checks li {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr);
	gap: .8rem;
	padding: .8rem 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
	font-size: var(--fs-sm);
}
.mbh-checks li::before {
	content: "";
	width: 1.1rem; height: 1.1rem; margin-top: .2rem;
	background: var(--sky-deep);
	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%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* in der Karte schließt der Kartenrand die Liste ab – keine zweite Linie */
.mbh-option .mbh-checks li:last-child { border-bottom: 0; padding-bottom: 0; }

/* Stichwort-Etiketten (Themenangebote, Funktionsräume, Kindergärten) – reine Information, nicht klickbar:
   flache Fläche ohne Rand, Schatten oder Hover; ein himmelblauer Punkt wie bei den Stichpunkten. Bewegung nur beim Einblenden. */
.mbh-chips { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.mbh-chips li {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .45rem .95rem .45rem .8rem;
	border-radius: var(--r-pill);
	background: var(--white);
	font-size: var(--fs-sm);
	font-weight: 500;
	color: var(--ink);
	cursor: default;
}
.mbh-chips li::before { content: ""; flex: none; width: .4rem; height: .4rem; border-radius: 50%; background: var(--sky); }

/* FAQ (core/details) */
.mbh-faq-list { border-top: 1px solid var(--ink); }
.wp-block-details:is(.mbh-faq, .is-style-faq) {
	border-bottom: 1px solid var(--line);
	padding: 0;
}
.mbh-faq summary {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: 1.4rem 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--serif);
	font-size: var(--fs-md);
	line-height: 1.3;
	transition: color .25s;
}
.mbh-faq summary::-webkit-details-marker { display: none; }
.mbh-faq summary::after {
	content: "";
	flex: none;
	width: 2.25rem; height: 2.25rem;
	border-radius: 50%;
	background: var(--sand) url(../icons/plus.svg) center / 1.1rem no-repeat;
	transition: transform .5s var(--ease), background-color .3s;
}
.mbh-faq[open] summary::after { transform: rotate(135deg); background-color: var(--mist); }
.mbh-faq summary:hover { color: var(--sky-deep); }
.mbh-faq::details-content {
	block-size: 0;
	overflow: hidden;
	transition: block-size .5s var(--ease), content-visibility .5s allow-discrete;
}
.mbh-faq[open]::details-content { block-size: auto; }
.mbh-faq > :not(summary) { max-width: 62ch; color: var(--ink-soft); }
.mbh-faq > :last-child { padding-bottom: 1.5rem; }
.mbh-faq > :not(summary) + :not(summary) { margin-top: .8rem; }

/* Tabelle (Ferien) */
.mbh-table { margin: 0; }
.mbh-table table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); border: 0; }
.mbh-table thead { border: 0; }
.mbh-table th, .mbh-table td { text-align: left; padding: 1.1rem .75rem 1.1rem 0; border: 0; border-bottom: 1px solid var(--line); vertical-align: baseline; }
.mbh-table thead th { font-size: var(--fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); font-weight: 700; border-bottom-color: var(--ink); }
.mbh-table td:first-child { font-family: var(--serif); font-size: var(--fs-md); }
.mbh-table td:last-child { font-variant-numeric: tabular-nums; }
.mbh-table figcaption { margin-top: .75rem; font-size: var(--fs-xs); color: var(--ink-soft); }

/* Hinweisbox */
.mbh-callout { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: 0 1rem; padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--r-lg); background: color-mix(in srgb, var(--apricot) 16%, var(--white)); }
.mbh-callout::before {
	content: "";
	grid-row: 1 / span 4;
	width: 2.75rem; height: 2.75rem;
	border-radius: 50%;
	background: var(--white);
}
.mbh-callout::after { content: ""; position: absolute; width: 1.25rem; height: 1.25rem; margin: .75rem; background: #8A4B22; mask: var(--ico, url(../icons/info.svg)) center / contain no-repeat; }
.mbh-callout { position: relative; }
.mbh-callout::after { top: clamp(1.25rem, 3vw, 2rem); left: clamp(1.25rem, 3vw, 2rem); }
.mbh-callout > * { grid-column: 2; }
.mbh-callout > * + * { margin-top: .5rem; }
.mbh-callout :is(h2, h3) { font-size: var(--fs-md); }
.mbh-callout p { font-size: var(--fs-sm); max-width: 68ch; }
.mbh-callout a { color: var(--ink); font-weight: 600; }

/* Aktuelle Info: ganz oben auf der Startseite, über dem Einstieg (kein Popup) */
.mbh-notice { padding-top: clamp(1rem, 3vw, 1.75rem); }
.mbh-notice .mbh-container { display: grid; gap: .75rem; }
.mbh-notice .mbh-notice__meta { margin: 0; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8A4B22; }
.mbh-notice h2 { margin-top: .25rem; font-size: var(--fs-lg); }
.mbh-notice__text > * { margin: .5rem 0 0; }
.mbh-notice__text p { font-size: var(--fs-base); }
/* Editor: Platzhalter der Theme-Blöcke */
.mbh-block-placeholder { padding: 1.25rem 1.5rem; border: 1px dashed var(--line); border-radius: var(--r-md); color: var(--ink-soft); font-size: var(--fs-sm); }

/* Kontaktkarten */
.mbh-contact { display: flex; flex-direction: column; border-radius: var(--r-lg); background: var(--white); border: 1px solid var(--line); }
.mbh-contact h3 { font-family: var(--sans); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sky-deep); }
.mbh-contact p { font-size: var(--fs-sm); color: var(--ink-soft); }
.mbh-contact a { color: var(--ink); font-weight: 600; text-decoration: none; }
.mbh-contact a:hover { color: var(--sky-deep); text-decoration: underline; }

/* Karte (statisch, datenschutzfreundlich) */
.mbh-map {
	position: relative;
	min-height: 22rem;
	border-radius: var(--r-lg);
	overflow: hidden;
	background:
		radial-gradient(circle at 58% 46%, color-mix(in srgb, var(--sky) 30%, transparent) 0 3.2rem, transparent 3.3rem),
		repeating-linear-gradient(28deg, transparent 0 46px, color-mix(in srgb, var(--ink) 6%, transparent) 46px 48px),
		repeating-linear-gradient(-62deg, transparent 0 70px, color-mix(in srgb, var(--ink) 5%, transparent) 70px 73px),
		var(--mist);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.5rem;
}
.mbh-map::before {
	content: "";
	position: absolute;
	left: 58%; top: 46%;
	width: 2.75rem; height: 2.75rem;
	translate: -50% -100%;
	background: var(--ink);
	mask: url(../icons/map-pin.svg) center / contain no-repeat;
}
.mbh-map > * { position: relative; }
.mbh-map .mbh-map__card {
	padding: 1.1rem 1.25rem;
	background: color-mix(in srgb, var(--white) 88%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-radius: var(--r-md);
	box-shadow: var(--shadow-soft);
	max-width: 22rem;
}
.mbh-map__card > * + * { margin-top: .35rem; }
.mbh-map__card p { font-size: var(--fs-sm); }

/* Zweispaltiges Raster */
.mbh-two { display: grid; gap: var(--s-40); }
@media (min-width: 960px) {
	.mbh-two { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--s-60); align-items: start; }
}
@media (min-width: 960px) {
	.mbh-two--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Nur mehrspaltig „klebend“ – einspaltig würde die Spalte über den Folgeinhalt gleiten */
@media (min-width: 960px) {
	.mbh-sticky { position: sticky; top: calc(var(--header-h) + 5rem); }
}
.mbh-sticky > * + * { margin-top: var(--s-30); }

/* Filter-Chips (Aktuelles) */
.mbh-filter a[aria-current] { background: var(--ink); border-color: var(--ink); color: var(--paper); }

/* Paginierung */
.wp-block-query-pagination { display: flex; gap: .5rem; justify-content: center; margin-top: var(--s-50); font-size: var(--fs-sm); }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers {
	display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .9rem;
	border-radius: var(--r-pill); border: 1px solid var(--line); color: var(--ink); text-decoration: none;
}
.wp-block-query-pagination .current { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ---------- Beitragsinhalt (Prosa) ------------------------------------ */
.mbh-prose { max-width: var(--content); margin-inline: auto; }
.mbh-prose > * + * { margin-top: 1.25em; }
.mbh-prose > :is(h2, h3) { margin-top: 2em; }
.mbh-prose h2 { font-size: var(--fs-lg); }
.mbh-prose h3 { font-size: var(--fs-md); }
.mbh-prose .wp-block-image img { border-radius: var(--r-md); }
.mbh-prose .alignwide { max-width: var(--wide); width: min(100vw - 2 * var(--gutter), var(--wide)); margin-inline: 50%; transform: translateX(-50%); }
.mbh-prose ul, .mbh-prose ol { padding-left: 1.2em; }
.mbh-prose li + li { margin-top: .4em; }
.mbh-prose blockquote { margin-inline: 0; padding-left: 1.5rem; border-left: 2px solid var(--sky); font-family: var(--serif); font-size: var(--fs-md); font-style: italic; }

/* 404 */
.mbh-404 { min-height: 60vh; display: grid; place-items: center; text-align: center; }
.mbh-404 .mbh-display { font-size: clamp(6rem, 22vw, 16rem); color: var(--sky); }

/* Schritte untereinander (Kontaktseite) */
.mbh-steps--stacked { margin-top: 0; }
@media (min-width: 900px) {
	.mbh-steps--stacked { grid-template-columns: 1fr; gap: var(--s-30); }
}
.mbh-steps--stacked .mbh-step { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); column-gap: 1rem; }
.mbh-steps--stacked .mbh-step::before { grid-row: 1 / span 3; margin: 0; }
.mbh-steps--stacked .mbh-step > * { grid-column: 2; }

/* Downloads */
.mbh-downloads { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ink); }
.mbh-downloads li {
	position: relative;
	display: grid;
	grid-template-columns: 2.75rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem 0;
	border-bottom: 1px solid var(--line);
}
.mbh-downloads li::before {
	content: "";
	width: 2.75rem; height: 2.75rem;
	border-radius: 50%;
	background: var(--mist) center / 1.2rem no-repeat;
	transition: background-color .35s var(--ease);
}
.mbh-downloads li::after {
	content: "";
	position: absolute;
	left: .775rem; top: 50%;
	width: 1.2rem; height: 1.2rem;
	translate: 0 -50%;
	background: var(--sky-deep);
	mask: url(../icons/file-down.svg) center / contain no-repeat;
	pointer-events: none;
}
.mbh-downloads a { font-family: var(--serif); font-size: var(--fs-md); color: var(--ink); text-decoration: none; }
.mbh-downloads a::before { content: ""; position: absolute; inset: 0; }
.mbh-downloads span { font-size: var(--fs-xs); color: var(--ink-soft); letter-spacing: .06em; white-space: nowrap; }
.mbh-downloads li.is-external::after { mask-image: url(../icons/external.svg); }
.mbh-downloads li:hover::before { background-color: var(--sky); }
.mbh-downloads li:hover a { color: var(--sky-deep); }

/* Query-Listen */
.wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.mbh-content > * { margin-block: 0; }

/* ---------- Ergänzungen (echte Inhalte) ------------------------------ */
.wp-block-post-title { word-break: normal; overflow-wrap: break-word; hyphens: auto; }
.mbh-hero .mbh-arch img { object-position: 50% 50%; }
.mbh-note { margin-top: var(--s-30); font-size: var(--fs-sm); color: var(--ink-soft); max-width: 70ch; }
.mbh-note a { color: var(--ink); }
.mbh-h-small {
	margin: var(--s-40) 0 1rem;
	font-family: var(--sans);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-soft);
}
.mbh-head + .mbh-h-small { margin-top: 0; }
/* Zweite Ebene: ohne Fläche, nur Punkt und Text */
.mbh-chips--quiet { gap: .35rem 1.4rem; }
.mbh-chips--quiet li { padding: .2rem 0; background: transparent; font-weight: 400; color: var(--ink-soft); }
.mbh-rounded img { border-radius: var(--r-lg); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.mbh-sticky .mbh-rounded { margin-top: var(--s-40); }
.mbh-dl-groups { display: grid; gap: var(--s-40) var(--s-50); }
@media (min-width: 900px) {
	.mbh-dl-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.mbh-dl-groups .mbh-h-small { margin-top: 0; }
.mbh-dl-groups .mbh-downloads a { font-size: var(--fs-base); }
/* Mit JavaScript: Kategorien als Tabs (Stil wie der Filter in „Alle Termine“), Dokumente daneben */
.mbh-dl { display: grid; gap: var(--s-30) var(--s-50); }
.mbh-dl__nav { display: flex; flex-wrap: wrap; gap: .4rem; }
@media (min-width: 900px) {
	.mbh-dl { grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr); align-items: start; }
	.mbh-dl__nav { position: sticky; top: calc(var(--header-h) + var(--anchors-h, 0px) + 1.5rem); flex-direction: column; }
	.mbh-dl__tab { width: 100%; }
}
.mbh-dl__tab {
	display: flex; align-items: center; justify-content: space-between; gap: .75rem;
	min-height: 44px; padding: .5rem .55rem .5rem 1.05rem;
	border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--white);
	color: var(--ink); font: inherit; font-size: var(--fs-sm); font-weight: 500; text-align: left; cursor: pointer;
	transition: background-color .25s var(--ease), border-color .25s, color .25s;
}
.mbh-dl__tab:hover { border-color: var(--ink); }
.mbh-dl__tab[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.mbh-dl__tab:focus-visible { outline: 2px solid var(--sky-deep); outline-offset: 2px; }
.mbh-dl__count {
	display: inline-grid; place-items: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .4rem;
	border-radius: var(--r-pill); background: var(--mist); color: var(--sky-deep); font-size: var(--fs-xs); font-weight: 600;
}
.mbh-dl__tab[aria-selected="true"] .mbh-dl__count { background: color-mix(in srgb, var(--paper) 16%, transparent); color: var(--paper); }
.mbh-dl-groups.is-enhanced { display: block; }
.mbh-dl-groups.is-enhanced > [role="tabpanel"] > h3 { display: none; }
.mbh-dl-groups.is-enhanced [role="tabpanel"]:focus-visible { outline: 2px solid var(--sky-deep); outline-offset: 6px; border-radius: var(--r-sm); }
.mbh-dl-groups.is-enhanced .mbh-downloads a { font-size: var(--fs-md); }
.mbh-dl-groups.is-enhanced .is-in li { animation: mbh-in .45s var(--ease) both; animation-delay: calc(min(var(--i, 0), 8) * 40ms); }
.mbh-faq-list details ul { padding-left: 0; list-style: none; }
.mbh-faq-list details li { padding: .35rem 0; border-bottom: 1px solid var(--line); }
.mbh-section .mbh-faq-list { margin-top: var(--s-40); }
.mbh-two > .mbh-contact { align-self: start; }

/* Team (Gruppenfotos + Namen) */
.mbh-team { display: grid; gap: var(--s-40); margin-top: var(--s-50); }
@media (min-width: 900px) {
	.mbh-team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.mbh-team__group > * + * { margin-top: .6rem; }
.mbh-team__group h3 { margin-top: var(--s-30); font-size: var(--fs-lg); }
.mbh-team__photo { border-radius: var(--r-lg); overflow: hidden; }
.mbh-team__photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: 50% 45%; }
.mbh-team__names { margin-top: var(--s-20) !important; border-top: 1px solid var(--line); }
.mbh-team__names summary { font-family: var(--sans); font-size: var(--fs-sm); font-weight: 600; padding: 1rem 0; }
.mbh-team__names summary::after { width: 1.9rem; height: 1.9rem; background-color: var(--white); }
.mbh-namelist { list-style: none; padding: 0; margin: 0; font-size: var(--fs-sm); }
.mbh-namelist li { padding: .55rem 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.mbh-namelist strong { color: var(--ink); font-weight: 600; }
/* Letzter Eintrag ohne Linie – die Linie des Aufklapp-Elements schließt die Liste ab (keine Doppellinie) */
.mbh-namelist li:last-child, .mbh-faq-list details li:last-child { border-bottom: 0; }

/* Personenkarten: Bereich · Personen · Kontaktzeilen (immer gleiche Reihenfolge) */
.mbh-contact { gap: 0; padding: 1.5rem 1.5rem 1.25rem; }
.mbh-contact h3 { margin-bottom: 1rem; }
.mbh-person { display: flex; align-items: center; gap: 1rem; margin-bottom: .85rem; }
.mbh-person__text { display: flex; flex-direction: column; gap: .1rem; font-size: var(--fs-sm); color: var(--ink-soft); line-height: 1.4; }
.mbh-person strong { font-family: var(--serif); font-size: 1.125rem; font-weight: 420; color: var(--ink); line-height: 1.25; }
/* Porträt optional, in Bogenform wie die Fenster des Schulhauses */
.mbh-person__photo { flex: none; width: 4.5rem; margin: 0; }
.mbh-person__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2.25rem 2.25rem var(--r-sm) var(--r-sm); background: var(--mist); outline: 1px solid rgb(0 0 0 / .06); outline-offset: -1px; }
.mbh-contact__actions { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); display: grid; gap: .5rem; }
.mbh-act { display: grid; grid-template-columns: 1rem minmax(0, 1fr); column-gap: .65rem; align-items: baseline; font-size: var(--fs-sm); line-height: 1.4; color: var(--ink); overflow-wrap: anywhere; }
.mbh-act::before { content: ""; width: 1rem; height: 1rem; align-self: center; background: var(--sky-deep); mask: url(../icons/phone.svg) center / contain no-repeat; }
.mbh-act--mail::before { mask-image: url(../icons/mail.svg); }
.mbh-act--fax::before { mask-image: url(../icons/printer.svg); }
.mbh-act--info::before { mask-image: url(../icons/clock.svg); }
.mbh-act > :not(span) { grid-column: 2; }
.mbh-act a { color: var(--ink); font-weight: 600; text-decoration: none; }
.mbh-act a:hover { color: var(--sky-deep); text-decoration: underline; }
.mbh-act span { grid-column: 2; display: block; font-size: var(--fs-xs); color: var(--ink-soft); font-weight: 400; }
.mbh-act--info { color: var(--ink-soft); }
.mbh-contact .mbh-person + .mbh-contact__actions { margin-top: auto; }

/* Schulleben: ruhige Viererreihe ohne Kartenrahmen */
.mbh-facts { display: grid; gap: var(--s-30) var(--s-40); }
@media (min-width: 640px) {
	.mbh-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.mbh-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.mbh-fact { position: relative; padding-top: 1.25rem; border-top: 1px solid var(--ink); }
.mbh-fact::before { content: ""; display: block; width: 1.5rem; height: 1.5rem; margin-bottom: .9rem; background: var(--sky-deep); mask: var(--ico, url(../icons/info.svg)) center / contain no-repeat; }
.mbh-fact :is(h3, h4) { font-size: var(--fs-md); line-height: 1.25; }
.mbh-fact p { margin-top: .5rem; font-size: var(--fs-sm); color: var(--ink-soft); }
.mbh-mediatext__text .mbh-h-small { margin: var(--s-30) 0 -.5rem; }

/* Unterabschnitte innerhalb eines Kapitels */
.mbh-sub { margin-top: var(--s-60); scroll-margin-top: calc(var(--header-h) + 5rem); }
.mbh-sub > .mbh-h-small:first-child { margin-top: 0; }
.mbh-sub .mbh-mediatext { padding-top: var(--s-50); border-top: 1px solid var(--line); }

/* Nur mehrspaltig zeigen (spart einspaltig Höhe) */
@media (max-width: 959px) {
	.mbh-hide-narrow { display: none !important; }
}

/* Chronik einspaltig kompakter */
@media (max-width: 899px) {
	.mbh-chronicle > li { padding-bottom: var(--s-40); }
	.mbh-chronicle strong { font-size: var(--fs-lg); }
}

/* Eltern: zwei gleichwertige Spalten mit Karte am Ende */
.mbh-parents { align-items: stretch; }
.mbh-parent { display: flex; flex-direction: column; gap: 1rem; }
.mbh-parent > h3 { font-size: var(--fs-lg); }
.mbh-parent > p { color: var(--ink-soft); max-width: 52ch; }
.mbh-parent .mbh-contact { margin-top: auto; }
.mbh-act--download::before { mask-image: url(../icons/file-down.svg); }

/* Tagesablauf: Panels liegen übereinander → feste Höhe, kein Springen beim Umschalten */
.mbh-schedule.is-enhanced { display: grid; grid-template-columns: minmax(0, 1fr); }
.mbh-schedule.is-enhanced > .mbh-tabs { grid-row: 1; }
.mbh-schedule.is-enhanced > .mbh-schedule__panel { grid-row: 2; grid-column: 1; align-self: start; transition: opacity .35s var(--ease), visibility 0s; }
.mbh-schedule.is-enhanced > .mbh-schedule__panel.is-inactive { opacity: 0; visibility: hidden; transition: opacity .2s var(--ease), visibility 0s .2s; }

/* Mittagessen: Eckdaten statt Symbolfoto */
.mbh-keyfacts { padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.mbh-keyfacts > h3 { display: flex; align-items: center; gap: .75rem; font-size: var(--fs-lg); margin-bottom: var(--s-20); }
.mbh-keyfacts > h3::before { content: ""; width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; background: var(--mist) url(../icons/utensils.svg) center / 1.2rem no-repeat; }
.mbh-keyfacts ul { list-style: none; padding: 0; margin: 0; }
.mbh-keyfacts li { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: .25rem 1rem; padding: .9rem 0; border-top: 1px solid var(--line); font-size: var(--fs-sm); color: var(--ink-soft); }
.mbh-keyfacts li strong { color: var(--ink); font-weight: 600; }
.mbh-keyfacts li b { font-family: var(--serif); font-weight: 420; font-size: var(--fs-md); color: var(--ink); }
@media (max-width: 480px) {
	.mbh-keyfacts li { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Termine v2: Datum links · Titel, Art, Zeitraum, Zeit/Ort, Hinweis rechts
   ========================================================================== */
.mbh-event p:empty, .mbh-event .wp-block-post-terms:empty { display: none; }
.mbh-event__group { display: none; }
.mbh-event__date { grid-row: auto; align-self: start; text-align: center; }
.mbh-event__weekday { font-size: .66rem; font-weight: 600; margin-top: .05rem; }
.mbh-event__body { min-width: 0; display: grid; gap: .3rem; padding-top: .15rem; }
.mbh-event__meta, .mbh-event__note { display: flex; align-items: flex-start; gap: .45rem; font-size: var(--fs-sm); line-height: 1.4; }
.mbh-event__meta::before, .mbh-event__note::before { content: ""; flex: none; width: .95rem; height: .95rem; margin-top: .15rem; background: currentColor; mask: url(../icons/clock.svg) center / contain no-repeat; opacity: .8; }
.mbh-event__meta { color: var(--ink-soft); }
.mbh-event__note { color: var(--ink); font-style: italic; }
.mbh-event__note::before { mask-image: url(../icons/info.svg); color: var(--sky-deep); }

/* Ausführliche Liste (Aktuelles, Alle Termine) */
.mbh-events--list { max-width: 58rem; }
.mbh-events--list .wp-block-post-template { border-top: 0; }
.mbh-events--list .wp-block-post { border-bottom: 1px solid var(--line); }
.mbh-events--list .mbh-event__date { min-height: 4.5rem; place-items: center; justify-items: center; background: var(--white); }
.mbh-events--list .mbh-event__day { font-weight: 380; }
.mbh-events--list .mbh-event .wp-block-post-title { font-family: var(--serif); font-weight: 420; letter-spacing: -.01em; }
.mbh-events--list .wp-block-query-pagination { justify-content: flex-start; flex-wrap: wrap; }
.mbh-events__month { padding: var(--s-40) 0 .75rem; border-bottom: 1px solid var(--ink); }
.mbh-events__month:first-child { padding-top: 0; }
.mbh-events__month h3 { font-family: var(--sans); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-soft); }
@media (max-width: 560px) {
	.mbh-events--list .mbh-event { grid-template-columns: 3.75rem minmax(0, 1fr); column-gap: 1rem; }
	.mbh-events--list .mbh-event__date { width: 3.75rem; min-height: 3.75rem; }
	.mbh-events--list .mbh-event__day { font-size: 1.4rem; }
}

/* Filter nach Terminart */
.mbh-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: var(--s-40); }
.mbh-filter p, .mbh-filter ul { margin: 0; }
.mbh-filter .wp-block-categories { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
.mbh-filter a { display: inline-flex; align-items: center; min-height: 40px; padding: .4rem 1rem; border-radius: var(--r-pill); border: 1px solid var(--line); background: var(--white); color: var(--ink); font-size: var(--fs-sm); font-weight: 500; text-decoration: none; transition: border-color .25s, background-color .25s; }
.mbh-filter a:hover { border-color: var(--ink); }
.mbh-filter .current-cat > a, .post-type-archive-termin .mbh-filter__all a { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.wp-block-query-pagination .wp-block-query-pagination-previous, .wp-block-query-pagination .wp-block-query-pagination-next { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 1.1rem; border-radius: var(--r-pill); border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-weight: 600; }

/* Eindruck (Einzelbeitrag): Kopf mit Bild daneben, Text, ruhige Galerie */

/* Galerie: gleich große Kacheln, etwas breiter als die Textspalte, ohne Hochskalieren */
.mbh-prose .wp-block-gallery.has-nested-images {
	--gal: min(100vw - 2 * var(--gutter), 60rem);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
	width: var(--gal);
	margin: var(--s-50) 0 0 calc(50% - var(--gal) / 2);
}
@media (min-width: 700px) {
	.mbh-prose .wp-block-gallery.has-nested-images { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
}
.mbh-prose .wp-block-gallery.has-nested-images figure.wp-block-image { width: auto !important; margin: 0 !important; border-radius: var(--r-md); overflow: hidden; background: var(--sand); }
.mbh-prose .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; cursor: zoom-in; transition: transform .8s var(--ease), opacity .3s; }
.mbh-prose .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { transform: scale(1.03); }
.mbh-prose .wp-block-gallery.has-nested-images > .wp-element-caption,
.mbh-prose .wp-block-gallery .blocks-gallery-caption { grid-column: 1 / -1; flex-basis: 100%; margin: .25rem 0 0; text-align: left; font-size: var(--fs-xs); color: var(--ink-soft); }

.mbh-events--teaser { padding-top: .5rem; }
.mbh-events--teaser .mbh-event .wp-block-post-title { font-size: var(--fs-base); }

/* ==========================================================================
   Termine v3 – eine Zeile für alle Orte (Hero, Startseite, Aktuelles, Alle Termine)
   Gleiche Datumskachel, gleiche Serif-Titel, gleiche Hover- und Einblend-Bewegung.
   ========================================================================== */
.mbh-event { position: relative; grid-template-columns: 3.75rem minmax(0, 1fr); column-gap: 1.1rem; align-items: center; }
.mbh-event__date {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem;
	width: 3.75rem; min-height: 0; aspect-ratio: auto; padding: .7rem .25rem .6rem;
	border-radius: 14px; background: var(--mist); color: var(--sky-deep); line-height: 1;
	transition: background-color .35s var(--ease), color .35s var(--ease), transform .45s var(--ease);
}
.mbh-event__day { margin: 0; font-size: 1.4rem; line-height: 1; }
.mbh-event__month, .mbh-event__weekday { margin: 0; font-size: .62rem; line-height: 1; }
.mbh-event__weekday { color: var(--ink-soft); letter-spacing: .04em; }
.mbh-bg-sand .mbh-event__date, .mbh-events--list .mbh-event__date { background: var(--white); }
.mbh-event .wp-block-post-title { font-family: var(--serif); font-weight: 420; font-size: 1.1rem; line-height: 1.25; letter-spacing: -.005em; }
/* Termine sind keine Links (es gibt keine Termin-Seiten). Der Hover ist nur Lesehilfe – überall gleich:
   Die Datumskachel wird himmelblau und hebt sich leicht an; kein Pfeil, keine Unterstreichung, kein Zeiger. */
@media (hover: hover) {
	.mbh-event:hover .mbh-event__date { background: var(--sky); color: var(--ink); transform: translateY(-2px); }
	.mbh-event:hover .mbh-event__weekday { color: var(--ink); }
}
/* Leere Angaben verschwinden */
.mbh-event__meta:empty, .mbh-event__note:empty { display: none; }

/* Kompakt (Startseite-Karte, Aktuelles): Zeilen mit Trennlinie */
.mbh-events .wp-block-post { border-bottom: 1px solid var(--line); }
.mbh-events .wp-block-post:last-child { border-bottom: 0; }
.mbh-events:not(.mbh-events--list) .mbh-event { padding: 1rem 0; }
.mbh-events:not(.mbh-events--list):not(.mbh-events--teaser) .mbh-event__meta { font-size: var(--fs-xs); }

/* Aktuelles: gleiche Sprache wie „Alle Termine“ – keine Box, Linie oben */
.mbh-events--teaser { padding: 0; background: none; border: 0; border-radius: 0; }
.mbh-events--teaser .wp-block-post-template { border-top: 1px solid var(--ink); }
.mbh-events--teaser .wp-block-post:last-child { border-bottom: 1px solid var(--line); }
.mbh-events--teaser .mbh-event { padding: 1.15rem 0; }

/* Ausführliche Liste */
.mbh-events--list .mbh-event { grid-template-columns: 4.75rem minmax(0, 1fr); column-gap: 1.5rem; padding: 1.25rem .5rem 1.25rem 0; }
.mbh-events--list .mbh-event__date { width: 4.75rem; padding: .85rem .25rem .75rem; border-radius: var(--r-md); }
.mbh-events--list .mbh-event__day { font-size: 1.75rem; }
.mbh-events--list .mbh-event .wp-block-post-title { font-size: var(--fs-md); }
@media (max-width: 560px) {
	.mbh-events--list .mbh-event { grid-template-columns: 3.75rem minmax(0, 1fr); column-gap: 1rem; }
	.mbh-events--list .mbh-event__date { width: 3.75rem; padding: .7rem .25rem .6rem; }
	.mbh-events--list .mbh-event__day { font-size: 1.4rem; }
}

/* Kontaktkarten: Trennlinie pro Reihe auf gleicher Höhe (Subgrid) */
.mbh-contact__people { display: flex; flex-direction: column; }
.mbh-contact__people .mbh-person:last-child { margin-bottom: 0; }
.mbh-contact__people { padding-bottom: 1rem; }
@supports (grid-template-rows: subgrid) {
	.mbh-cards:has(> .mbh-contact) { grid-auto-rows: auto; }
	.mbh-cards > .mbh-contact { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; align-content: start; }
	.mbh-cards > .mbh-contact .mbh-contact__actions { margin-top: 0; align-self: start; }
}

/* Krankmeldung: gleich oben, mit direkten Aktionen */
.mbh-callout--wide { grid-template-columns: 2.75rem minmax(0, 1fr); align-items: start; }
.mbh-callout--wide :is(h2, h3) { font-size: var(--fs-lg); }
.mbh-callout--wide p { max-width: 62ch; }
.mbh-callout--wide .wp-block-buttons { margin-top: 1rem !important; }
.mbh-callout--wide .wp-block-button__link[href^="tel:"]::after { mask-image: url(../icons/phone.svg); }
.mbh-callout--wide .wp-block-button__link[href^="mailto:"]::after { mask-image: url(../icons/mail.svg); }
.mbh-callout .wp-block-button__link { color: var(--paper); font-weight: 600; }
.mbh-callout .wp-block-button__link:hover { color: var(--white); }
.mbh-callout .is-style-ghost .wp-block-button__link, .mbh-callout .is-style-ghost .wp-block-button__link:hover { color: var(--ink); }
.mbh-callout--wide .is-style-ghost .wp-block-button__link { background: color-mix(in srgb, var(--white) 60%, transparent); }

/* Anfahrt als ruhiger Streifen unter den Karten */
.mbh-map--strip { min-height: 13rem; margin-top: var(--s-40); justify-content: center; }
.mbh-map--strip .mbh-map__card { max-width: 24rem; }
.mbh-map--strip .mbh-map__card .mbh-eyebrow { margin-bottom: .35rem; }

/* ---------- Bewegung reduzieren --------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	@view-transition { navigation: none; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.js :is(.mbh-reveal, .is-style-reveal), .js :is(.mbh-stagger, .is-style-stagger) > *, .js .mbh-fade { opacity: 1; transform: none; }
	.js .mbh-words:not(.is-in) .mbh-w > span { transform: none; }
	.js .mbh-unveil, .js .mbh-arch.mbh-unveil { clip-path: none; }
	.js .mbh-unveil img { transform: none; }
	.mbh-parallax img { translate: none !important; scale: none !important; }
	.mbh-marquee { overflow-x: auto; }
	.mbh-marquee .mbh-marquee__track { animation: none !important; }
	.mbh-brook path { stroke-dashoffset: 0 !important; }
}

/* Druck */
@media print {
	.mbh-header, .mbh-footer__mark, .mbh-marquee, .mbh-brook, .mbh-anchors { display: none !important; }
	.js .mbh-reveal, .js :is(.mbh-stagger, .is-style-stagger) > * { opacity: 1 !important; transform: none !important; }
}

/* ---------- Startseite: einheitliche Abschnittsköpfe -------------------- */

/* Kicker = Menüpunkt, genau ein Link – immer rechts oben (mobil darunter) */
.mbh-head--row > .mbh-stack { max-width: 44rem; }
.mbh-head--row .mbh-lead { max-width: 40rem; }
.mbh-head__aside { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.mbh-head__aside > * { margin: 0; }

/* Termine neben den Eindrücken */
.mbh-events__title { padding-bottom: 1rem; border-bottom: 1px solid var(--line); font-size: var(--fs-md); }

/* Hero: kompakter, damit der Wegweiser im ersten Bildschirm anschneidet */
.mbh-hero { padding-block: clamp(1.5rem, 4vw, 3.5rem) var(--s-50); }
.mbh-hero__media { width: min(100%, 30rem); padding-bottom: 0; }
@media (min-width: 1024px) {
	.mbh-arch img { aspect-ratio: 5 / 6; }
}
@media (max-width: 1023px) {
	.mbh-arch img { aspect-ratio: 4 / 3; }
	.mbh-hero__media { width: min(100%, 36rem); }
}

/* Ganztag oder Halbtag – zwei ruhige Spalten auf Tinte */
.mbh-pair { display: grid; gap: var(--s-40); }
@media (min-width: 768px) {
	.mbh-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-60); }
}
.mbh-pair__item {
	padding: clamp(1.4rem, 3vw, 2.25rem);
	border-radius: var(--r-lg);
	background: color-mix(in srgb, var(--paper) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--paper) 10%, transparent);
}
.mbh-pair__item > * + * { margin-top: .6rem; }
.mbh-pair__item h3 { font-family: var(--sans); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 75%, transparent); }
.mbh-pair__time { font-family: var(--serif); font-size: var(--fs-xl); font-weight: 300; letter-spacing: -.03em; line-height: 1.05; color: var(--sky); }
/* Stichpunkte statt Trennlinien: kleiner himmelblauer Punkt, ruhiger Zeilenabstand */
.mbh-pair__facts { list-style: none; padding: 0; margin-top: var(--s-30) !important; display: grid; gap: .55rem; }
.mbh-pair__facts li {
	position: relative;
	padding-left: 1.25rem;
	font-size: var(--fs-sm);
	line-height: 1.5;
	color: color-mix(in srgb, var(--paper) 88%, transparent);
}
/* Tagesbalken 7–17 Uhr: füllt sich beim Hineinscrollen, Segment für Segment */
.mbh-daybar { margin-top: 1.1rem !important; }
.mbh-daybar__track { position: relative; height: .7rem; border-radius: var(--r-pill); background: color-mix(in srgb, var(--paper) 10%, transparent); overflow: hidden; }
.mbh-daybar__seg {
	position: absolute; top: 0; bottom: 0;
	left: calc((var(--from) - 7) * 10%); width: calc((var(--to) - var(--from)) * 10%);
	background: var(--sky);
}
.mbh-daybar__seg.is-opt { background: color-mix(in srgb, var(--sky) 38%, transparent); }
/* Der Tag „läuft“ einmal gleichmäßig von 7 nach 17 Uhr durch – erst, wenn der Balken gut sichtbar ist (site.js) */
.mbh-daybar__fill { position: absolute; inset: 0; }
.js .mbh-daybar .mbh-daybar__fill { clip-path: inset(0 100% 0 0); transition: clip-path 2.2s cubic-bezier(.45, .05, .25, 1) .15s; }
.js .mbh-daybar.is-in .mbh-daybar__fill { clip-path: inset(0 0 0 0); }
.mbh-daybar__scale { position: relative; height: 1.1rem; margin-top: .4rem; font-size: var(--fs-xs); line-height: 1.1rem; color: color-mix(in srgb, var(--paper) 60%, transparent); font-variant-numeric: tabular-nums; }
.mbh-daybar__scale span { position: absolute; top: 0; }
.mbh-daybar__scale span:nth-child(1) { left: 0; }
.mbh-daybar__scale span:nth-child(2) { left: 50%; translate: -50% 0; }
.mbh-daybar__scale span:nth-child(3) { right: 0; }
.mbh-daybar__legend { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .55rem; font-size: var(--fs-xs); color: color-mix(in srgb, var(--paper) 72%, transparent); }
.mbh-daybar__legend span { display: inline-flex; align-items: center; gap: .4rem; }
.mbh-daybar__legend span::before { content: ""; width: .8rem; height: .45rem; border-radius: var(--r-pill); background: var(--sky); }
.mbh-daybar__legend .is-opt::before { background: color-mix(in srgb, var(--sky) 38%, transparent); }

.mbh-pair__facts li::before {
	content: ""; position: absolute; left: .1rem; top: .62em;
	width: .4rem; height: .4rem; border-radius: 50%; background: var(--sky);
}

/* Mehrtägige Termine: gleiche Kachel wie eintägige, Ende steht als Infozeile darunter */

/* Zeitraum in der Kachel („1.–15.“): gleiche Kachel, nur kleinere Ziffern */
.mbh-event__day.is-range { font-size: 1rem; letter-spacing: -.02em; white-space: nowrap; }
.mbh-events--list .mbh-event__day.is-range { font-size: 1.2rem; }
@media (max-width: 560px) {
	.mbh-events--list .mbh-event__day.is-range { font-size: 1rem; }
}

/* ---------- Alle Termine: Monatsansicht --------------------------------- */
.mbh-agenda { display: grid; gap: var(--s-40); margin-top: var(--s-40); }
@media (min-width: 1024px) {
	.mbh-agenda { grid-template-columns: minmax(0, 21rem) minmax(0, 1fr); column-gap: var(--s-60); align-items: start; }
	.mbh-agenda__cal { position: sticky; top: calc(var(--header-h) + 2rem); }
}
.mbh-events--month .wp-block-post-template { border-top: 1px solid var(--ink); }
.mbh-events--month .wp-block-post { scroll-margin-top: calc(var(--header-h) + 2rem); transition: background-color .6s var(--ease); }
.mbh-events--month .wp-block-post.is-flash { animation: mbh-flash 1.6s var(--ease); }
@keyframes mbh-flash { 0%, 30% { background: var(--mist); } 100% { background: transparent; } }
button.mbh-cal__day { cursor: pointer; }
.mbh-cal__today { padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--ink); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.mbh-cal__today:hover { color: var(--sky-deep); }

/* Ohne JavaScript: kein Kalender, vollständige Liste */
.mbh-agenda:not(.is-enhanced) { grid-template-columns: minmax(0, 1fr); }
.mbh-agenda:not(.is-enhanced) .mbh-agenda__cal { display: none; }

/* Monatswechsel: Liste blendet kurz aus und gestaffelt wieder ein */
.mbh-agenda .mbh-events--month { transition: opacity .16s var(--ease), transform .16s var(--ease); }
.mbh-agenda.is-switching .mbh-events--month { opacity: 0; transform: translateY(6px); }
.mbh-agenda.is-enhanced .mbh-events--month .wp-block-post:not([hidden]) { animation: mbh-in .5s var(--ease) both; animation-delay: calc(min(var(--i, 0), 8) * 40ms); }
@keyframes mbh-in { from { opacity: 0; transform: translateY(8px); } }
.mbh-agenda .mbh-cal__grid tbody { animation: mbh-fadein .35s var(--ease); }
@keyframes mbh-fadein { from { opacity: 0; } }

/* Filter ohne Neuladen: aktiver Chip */
.mbh-filter .is-active > a { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.mbh-filter.is-filtered .mbh-filter__all:not(.is-active) a { background: var(--white); border-color: var(--line); color: var(--ink); }
.mbh-events--month .wp-block-post.is-past { opacity: .55; }
.mbh-events--month .wp-block-post.is-past:hover { opacity: 1; }
.mbh-events__empty { padding: var(--s-40) 0; border-top: 1px solid var(--ink); color: var(--ink-soft); }
.mbh-cal { padding: clamp(1.1rem, 2.5vw, 1.5rem); background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.mbh-cal__head { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.mbh-cal__title { margin: 0; text-align: center; font-size: var(--fs-md); line-height: 1.2; }
.mbh-cal__title span { color: var(--ink-soft); font-weight: 300; }
.mbh-cal__nav { position: relative; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); transition: background-color .3s var(--ease), border-color .3s; }
.mbh-cal__nav::after {
	content: ""; position: absolute; inset: 0; margin: auto; width: 1rem; height: 1rem;
	background: var(--ink); mask: url(../icons/arrow-right.svg) center / contain no-repeat;
}
.mbh-cal__nav--prev::after { transform: scaleX(-1); }
.mbh-cal__nav { cursor: pointer; padding: 0; }
.mbh-cal__nav:not(:disabled):hover { background: var(--sky); border-color: var(--sky); }
.mbh-cal__nav:disabled { opacity: .35; cursor: default; }
.mbh-cal__grid { width: 100%; border-collapse: collapse; table-layout: fixed; }
.mbh-cal__grid th { padding: 0 0 .5rem; font-size: var(--fs-xs); font-weight: 600; letter-spacing: .06em; color: var(--ink-soft); text-align: center; }
.mbh-cal__grid th:nth-child(n+6) { color: color-mix(in srgb, var(--ink-soft) 60%, transparent); }
.mbh-cal__grid td { padding: 2px; text-align: center; }
.mbh-cal__day {
	width: 100%; padding: 0; border: 0; background: none; font: inherit; cursor: default;
	display: grid; place-items: center; aspect-ratio: 1; max-width: 2.75rem; margin-inline: auto;
	border-radius: 10px; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; color: var(--ink); text-decoration: none;
}
span.mbh-cal__day.is-past { color: color-mix(in srgb, var(--ink-soft) 55%, transparent); }
button.mbh-cal__day.has-events {
	background: var(--mist); color: var(--sky-deep); font-weight: 700;
	transition: background-color .3s var(--ease), color .3s, transform .3s var(--ease);
}
button.mbh-cal__day.has-range { position: relative; color: var(--ink); transition: background-color .3s var(--ease), color .3s; }
button.mbh-cal__day.has-range::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: 18%; height: 2px; border-radius: 2px; background: var(--sky); }
button.mbh-cal__day.has-range:hover, button.mbh-cal__day.has-range:focus-visible { background: var(--mist); color: var(--sky-deep); }
button.mbh-cal__day:is(.has-events, .has-range).is-past { opacity: .6; }
button.mbh-cal__day.has-events:hover, button.mbh-cal__day.has-events:focus-visible { background: var(--sky); color: var(--ink); transform: translateY(-1px); opacity: 1; }
.mbh-cal__day.is-today { box-shadow: inset 0 0 0 1.5px var(--ink); }
.mbh-cal__legend { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: .9rem 0 0; font-size: var(--fs-xs); color: var(--ink-soft); }
.mbh-cal__legend span { display: inline-flex; align-items: center; gap: .4rem; }
.mbh-cal__legend span::before { content: ""; width: .85rem; height: .85rem; border-radius: 4px; background: var(--mist); }
.mbh-cal__legend span + span::before { height: 2px; border-radius: 2px; background: var(--sky); }
.mbh-cal__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; margin: 1rem 0 0; padding-top: .9rem; border-top: 1px solid var(--line); font-size: var(--fs-xs); color: var(--ink-soft); }
.mbh-cal__foot a { color: var(--ink); font-weight: 600; }
@media (prefers-reduced-motion: reduce) {
	.mbh-agenda.is-enhanced .mbh-events--month .wp-block-post { animation: none; }
}

/* ---------- Eindrücke: Aufklappen statt Einzelseite ---------------------- */
.mbh-posts--expand .mbh-card { height: 100%; }

.mbh-card__toggle {
	align-self: flex-start;
	display: inline-flex; align-items: center; gap: .6rem;
	margin-top: auto; padding: .35rem 0; min-height: 44px;
	border: 0; background: none; cursor: pointer;
	font: 600 var(--fs-sm) / 1 var(--sans); color: var(--ink);
	position: relative; z-index: 2;
}
.mbh-card__toggle::after {
	content: ""; width: 1.75rem; height: 1.75rem; border-radius: 50%;
	background: var(--mist) url(../icons/plus.svg) center / .85rem no-repeat;
	transition: transform .45s var(--ease), background-color .3s var(--ease);
}
.mbh-card__toggle:hover::after { background-color: var(--sky); }
.mbh-card__toggle[aria-expanded="true"]::after { transform: rotate(45deg); }
.mbh-card__more[hidden] { display: none; }

/* Seiten mit klebender Ankerleiste: deren Höhe für alles, was darunter kleben soll */
body:has(.mbh-anchors) { --anchors-h: 3.625rem; }

/* Geöffnete Karte: bleibt an ihrem Platz, nur ein feiner Rahmen zeigt, wozu der Lesebereich gehört */
.mbh-posts--expand .wp-block-post.is-open .wp-block-post-featured-image { outline: 3px solid var(--sky); outline-offset: 3px; }

/* Lesebereich unter der Kartenreihe: öffnet sich weich in der Höhe, darüber bewegt sich nichts */
.mbh-story-panel {
	grid-column: 1 / -1; position: relative; list-style: none; min-width: 0;
	display: grid; grid-template-rows: 0fr; opacity: 0;
	transition: grid-template-rows .55s var(--ease), opacity .35s var(--ease);
	outline: none;
}
.mbh-story-panel.is-open { grid-template-rows: 1fr; opacity: 1; }
.mbh-story-panel__inner {
	min-height: 0; overflow: hidden; position: relative;
	border-radius: var(--r-lg); background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow-soft);
}
.mbh-story-panel__body { padding: clamp(1.25rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 2.5rem) .5rem; min-width: 0; }
.mbh-story-panel__body > * { max-width: 100%; }
/* kleiner Pfeil zeigt auf die geöffnete Karte */
.mbh-story-panel::before {
	content: ""; position: absolute; top: -8px; left: clamp(1.5rem, var(--arrow-x, 50%), calc(100% - 1.5rem)); z-index: 1;
	width: 16px; height: 16px; translate: -50% 0; rotate: 45deg;
	background: var(--white); border-left: 1px solid var(--line); border-top: 1px solid var(--line);
	opacity: 0; transition: opacity .3s var(--ease) .15s;
}
.mbh-story-panel.is-open::before { opacity: 1; }
.mbh-story-panel__close {
	display: inline-flex; align-items: center; gap: .6rem; min-height: 44px;
	margin: .25rem clamp(1.25rem, 4vw, 2.5rem) clamp(1rem, 3vw, 1.75rem); padding: .35rem 0;
	border: 0; background: none; cursor: pointer; font: 600 var(--fs-sm) / 1 var(--sans); color: var(--ink);
}
.mbh-story-panel__close::after {
	content: ""; width: 1.75rem; height: 1.75rem; border-radius: 50%; rotate: 45deg;
	background: var(--mist) url(../icons/plus.svg) center / .85rem no-repeat; transition: background-color .3s var(--ease);
}
.mbh-story-panel__close:hover::after { background-color: var(--sky); }
.mbh-story-panel:focus-visible .mbh-story-panel__inner { outline: 2px solid var(--sky-deep); outline-offset: 3px; }
@media (min-width: 900px) {
	/* breit: Text links, Bilder rechts daneben */
	.mbh-story-panel__body .mbh-card__content { max-width: none; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--s-50); align-items: start; }
	.mbh-story-panel__body .mbh-card__content > :not(.wp-block-gallery) { grid-column: 1; }
	.mbh-story-panel__body .mbh-card__content > .wp-block-gallery { grid-column: 2; grid-row: 1 / span 20; margin-top: 0 !important; }
}

.mbh-card__content { max-width: 40rem; font-size: var(--fs-base); line-height: 1.65; color: var(--ink); }
.mbh-card__content > * + * { margin-top: 1em; }
.mbh-card__content .wp-block-gallery.has-nested-images {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: var(--s-30);
}
.mbh-card__content .wp-block-gallery.has-nested-images figure.wp-block-image { width: auto !important; margin: 0 !important; border-radius: 10px; overflow: hidden; background: var(--sand); }
.mbh-card__content .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; cursor: zoom-in; transition: transform .6s var(--ease); }
.mbh-card__content .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { transform: scale(1.05); }
.mbh-card__content .wp-block-image:not(.wp-block-gallery *) img { border-radius: var(--r-md); }


/* ---------- Neue Fotos (Rundgang Oktober 2026) ------------------------- */
/* Mittagessen: Foto der Mensa, der Kasten „Auf einen Blick“ schiebt sich unten darüber */
.mbh-stackcard { position: relative; }
.mbh-stackcard__img { margin: 0; border-radius: var(--r-lg); overflow: hidden; }
.mbh-stackcard__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.mbh-stackcard .mbh-keyfacts { position: relative; margin: -4.5rem clamp(.75rem, 3vw, 1.5rem) 0; box-shadow: var(--shadow-soft); }

/* Angebote: drei Räume als Fotos über den Funktionsräumen */
.mbh-rooms { display: grid; gap: var(--s-20); margin: var(--s-20) 0 var(--s-30); }
@media (min-width: 640px) { .mbh-rooms { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mbh-rooms figure { margin: 0; }
.mbh-rooms img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); }
.mbh-rooms figcaption { margin-top: .5rem; font-size: var(--fs-sm); font-weight: 500; color: var(--ink); text-align: left; }
@media (max-width: 639px) {
	/* Handy: wischbare Reihe statt drei großer Fotos untereinander */
	.mbh-rooms { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
	.mbh-rooms::-webkit-scrollbar { display: none; }
	.mbh-rooms figure { flex: 0 0 72%; scroll-snap-align: start; }
}

/* Kontakt › Anfahrt: echtes Foto des Eingangs statt angedeuteter Karte */
.mbh-map--photo { background: var(--ink); }
.mbh-map--photo::before { display: none; }
.mbh-map--photo .mbh-map__photo { position: absolute; inset: 0; margin: 0; }
.mbh-map--photo .mbh-map__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.mbh-map--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--ink) 35%, transparent), transparent 60%); pointer-events: none; }
.mbh-map--photo .mbh-map__card { z-index: 1; }
.mbh-map--strip.mbh-map--photo { min-height: 18rem; }
/* Bildunterschrift unter abgerundeten Fotos (Brunnenhaus, Wiese) */
.mbh-rounded .wp-element-caption { margin: .6rem 0 0; font-size: var(--fs-sm); line-height: 1.45; color: var(--ink-soft); text-align: left; }
.mbh-day__intro .mbh-rounded { margin-top: var(--s-40); }

/* Ältere iPhones (Safari < 16) kennen overflow: clip nicht – dort seitliches Scrollen anders verhindern */
@supports not (overflow: clip) {
	html, body { overflow-x: hidden; }
}
.mbh-card__content { overflow-wrap: anywhere; }
.mbh-card__content img { max-width: 100%; height: auto; }

/* Breite Motive (Girlande): Panorama statt 4:3, damit nicht die leere Wand das Bild füllt */
.mbh-rounded.mbh-rounded--wide img { aspect-ratio: 21 / 9; }
