/* ==========================================================================
   TMK Altenmarkt – Theme-Styles
   Farben angelehnt an die Tracht: dunkelrote Samtweste, braune Joppe,
   blaue Stutzen, Messing der Instrumente.
   ========================================================================== */

@font-face {
	font-family: "Fraunces";
	src: url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Fraunces";
	src: url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2");
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Josefin Sans";
	src: url("../fonts/josefin-sans-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Sans 3";
	src: url("../fonts/source-sans-3-latin-wght-normal.woff2") format("woff2");
	font-weight: 200 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Sans 3";
	src: url("../fonts/source-sans-3-latin-wght-italic.woff2") format("woff2");
	font-weight: 200 900;
	font-style: italic;
	font-display: swap;
}

:root {
	--c-bg: #f8f4ec;
	--c-surface: #fffdf9;
	--c-tint: #f0e8db;
	--c-ink: #241a14;
	--c-muted: #6b5c50;
	--c-line: #e2d6c4;
	--c-red: #6e1423;
	--c-red-hover: #8c1c2e;
	--c-brown: #4a3427;
	--c-blue: #2e4a66;
	--c-brass: #b5832c;
	--c-brass-light: #e4c88f;
	--c-on-dark: #fbf6ee;

	--f-serif: "Fraunces", Georgia, "Times New Roman", serif;
	--f-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-nav: "Josefin Sans", "Source Sans 3", system-ui, sans-serif;

	--w-content: 46rem;
	--w-wide: 76rem;
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--radius: 4px;
	--radius-sm: 2px;
	--shadow: 0 1px 2px rgb(36 26 20 / .06), 0 8px 24px -8px rgb(36 26 20 / .18);
	--header-h: 76px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Basis ---------- */

/* Kein seitliches Scrollen durch überstehende Inhalte (bewusst nicht auf html/body: das bricht den sticky Header und die Scroll-Sperre des Mobilmenüs) */
.site-main,
.site-footer { overflow-x: clip; }

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 1rem);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-ink);
	font-family: var(--f-sans);
	font-size: clamp(1.0625rem, .35vw + 1rem, 1.1875rem);
	line-height: 1.65;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.01em;
	color: var(--c-ink);
	margin: 1.6em 0 .5em;
	font-variation-settings: "SOFT" 50, "WONK" 0;
	text-wrap: balance;
}
h1 { font-size: clamp(2.25rem, 4.5vw + 1rem, 4.25rem); }
h2 { font-size: clamp(1.75rem, 2.2vw + 1rem, 2.6rem); }
h3 { font-size: clamp(1.3rem, 1vw + 1rem, 1.6rem); }
h4 { font-size: 1.2rem; }

p { margin: 0 0 1.1em; text-wrap: pretty; }

a {
	color: var(--c-red);
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	transition: color .2s;
}
a:hover { color: var(--c-red-hover); text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--c-brass);
	outline-offset: 3px;
	border-radius: var(--radius-sm);
}

::selection { background: var(--c-brass-light); color: var(--c-ink); }

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

.skip-link {
	position: absolute;
	left: 1rem; top: -4rem;
	z-index: 100;
	padding: .6rem 1rem;
	background: var(--c-ink);
	color: #fff;
	border-radius: var(--radius-sm);
}
.skip-link:focus { top: 1rem; color: #fff; }

.wrap {
	width: min(100% - 2 * var(--gutter), var(--w-wide));
	margin-inline: auto;
}
.wrap-narrow {
	width: min(100% - 2 * var(--gutter), var(--w-content));
	margin-inline: auto;
}

.tmk-icon { width: 1.2em; height: 1.2em; flex: none; vertical-align: -.2em; }

.eyebrow {
	font-family: var(--f-sans);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--c-brass);
	margin: 0 0 .75rem;
}
.eyebrow--light { color: var(--c-brass-light); }

/* ---------- Buttons & Links ---------- */

.tmk-btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .8em 1.5em;
	border: 2px solid var(--c-red);
	border-radius: var(--radius-sm);
	background: var(--c-red);
	color: var(--c-on-dark);
	font-family: var(--f-sans);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background .2s, border-color .2s, color .2s, transform .2s var(--ease);
}
.tmk-btn:hover,
.wp-block-button__link:hover {
	background: var(--c-red-hover);
	border-color: var(--c-red-hover);
	color: #fff;
	transform: translateY(-1px);
}
.tmk-btn--ghost,
.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--c-red);
}
.hero .tmk-btn--ghost { color: #fff; border-color: rgb(255 255 255 / .7); }
.hero .tmk-btn--ghost:hover { background: #fff; color: var(--c-ink); border-color: #fff; }
.is-style-outline .wp-block-button__link:hover { color: #fff; }

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-weight: 700;
	color: var(--c-red);
	text-decoration: none;
}
.link-arrow .tmk-icon { transition: transform .25s var(--ease); }
.link-arrow:hover .tmk-icon,
.card:hover .link-arrow .tmk-icon { transform: translateX(4px); }

/* ---------- Header & Navigation ---------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgb(248 244 236 / .55);
	backdrop-filter: saturate(1.6) blur(18px);
	-webkit-backdrop-filter: saturate(1.6) blur(18px);
	border-bottom: 1px solid rgb(226 214 196 / .6);
	transition: box-shadow .35s var(--ease), background .35s;
}

.site-header.is-scrolled {
	background: rgb(248 244 236 / .68);
	box-shadow: 0 10px 30px -18px rgb(36 26 20 / .45);
}
/* Lesefortschritt / Akzentlinie, die beim Scrollen einläuft */
.site-header::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 2px;
	background: linear-gradient(90deg, var(--c-red), var(--c-brass));
	transform: scaleX(var(--scroll, 0));
	transform-origin: left;
	z-index: 1;
	pointer-events: none;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: var(--header-h);
	transition: min-height .35s var(--ease);
}
.is-scrolled .site-header__inner { min-height: 62px; }

.brand {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	color: var(--c-ink);
	text-decoration: none;
}
.brand:hover { color: var(--c-ink); text-decoration: none; }
.brand__clef {
	color: var(--c-red);
	display: block;
	height: 46px;
	width: auto;
	transform-origin: 50% 70%;
	transition: height .35s var(--ease), transform .5s var(--ease);
}
.brand:hover .brand__clef { transform: rotate(-8deg) scale(1.06); }
.is-scrolled .brand__clef { height: 36px; }
.brand__clef svg { height: 100%; width: auto; display: block; }
.brand__logo { height: 52px; width: auto; }
.brand__text { display: flex; flex-direction: column; line-height: 1; }
.brand__small {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--c-muted);
	white-space: nowrap;
}
.brand__small b { font-weight: inherit; }
.brand__small i { font-style: normal; }

/* Logo-Morph im Header: „Trachtenmusikkapelle / Altenmarkt“ → „TMK Altenmarkt“.
   Abstände (--tmk-dx/-dy) misst main.js, damit es bei jeder Schriftgröße passt. */
.site-header .brand__text {
	--tmk-s: 2;
	transition: transform .55s var(--ease);
}
.site-header .brand__small {
	transform-origin: 0 50%;
	transition: transform .55s var(--ease), color .4s;
}
.site-header .brand__small i {
	display: inline-block;
	max-width: 7em;
	overflow: hidden;
	vertical-align: top;
	transition: max-width .5s var(--ease), opacity .25s;
}
.site-header .brand__name {
	display: block;
	transition: transform .55s var(--ease);
}
.site-header.is-scrolled .brand__small i { max-width: 0; opacity: 0; }
.site-header.is-scrolled .brand__small {
	transform: translateY(var(--tmk-dy, 1.2rem)) scale(var(--tmk-s));
	color: var(--c-red);
}
.site-header.is-scrolled .brand__name { transform: translateX(var(--tmk-dx, 3.4rem)); }
.site-header.is-scrolled .brand__text { transform: translateY(calc(var(--tmk-dy, 1.2rem) / -2 + .4rem)); }
.brand__name {
	font-family: var(--f-serif);
	font-size: 1.65rem;
	font-weight: 650;
	letter-spacing: -.01em;
	margin-top: .15rem;
}

.main-nav .menu,
.main-nav .sub-menu { list-style: none; margin: 0; padding: 0; }

.main-nav a {
	display: block;
	color: var(--c-ink);
	text-decoration: none;
	font-family: var(--f-nav);
	font-weight: 500;
}

/* Burger → X */
.nav-toggle {
	display: none;
	position: relative;
	z-index: 2;
	width: 48px; height: 48px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-sm);
	background: transparent;
	color: var(--c-ink);
	cursor: pointer;
}
.nav-toggle__bars,
.nav-toggle__bars::before,
.nav-toggle__bars::after {
	position: absolute;
	left: 12px;
	width: 24px;
	height: 2px;
	background: currentColor;
	transition: transform .4s var(--ease), top .4s var(--ease), width .3s var(--ease), opacity .2s;
}
.nav-toggle__bars { top: 23px; width: 16px; }
.nav-toggle__bars::before,
.nav-toggle__bars::after { content: ""; left: 0; }
.nav-toggle__bars::before { top: -7px; }
.nav-toggle__bars::after { top: 7px; }
.nav-toggle:hover .nav-toggle__bars { width: 24px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars { width: 24px; background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { top: 0; transform: rotate(-45deg); }

.sub-toggle { display: none; }

/* Desktop */
@media (min-width: 64.01em) {
	.main-nav .menu { display: flex; align-items: center; gap: .35rem; }
	.main-nav .menu > li { position: relative; }
	.main-nav .menu > li > a {
		position: relative;
		padding: .7rem .9rem .55rem;
		font-size: .9rem;
		font-weight: 600;
		letter-spacing: .14em;
		text-transform: uppercase;
		transition: color .25s;
	}
	/* Unterstrich wächst von links ein, verschwindet nach rechts */
	.main-nav .menu > li > a::before {
		content: "";
		position: absolute;
		left: .85rem; right: .85rem; bottom: .25rem;
		height: 2px;
		background: var(--c-red);
		transform: scaleX(0);
		transform-origin: right;
		transition: transform .4s var(--ease);
	}
	.main-nav .menu > li > a:hover,
	.main-nav .menu > li:focus-within > a { color: var(--c-red); }
	.main-nav .menu > li > a:hover::before,
	.main-nav .menu > li:hover > a::before,
	.main-nav .menu > li:focus-within > a::before,
	.main-nav .menu > .current-menu-item > a::before,
	.main-nav .menu > .current-menu-ancestor > a::before,
	.main-nav .menu > .current_page_item > a::before,
	.main-nav .menu > .current_page_ancestor > a::before {
		transform: scaleX(1);
		transform-origin: left;
	}
	.main-nav .current-menu-item > a,
	.main-nav .current-menu-ancestor > a,
	.main-nav .current_page_item > a,
	.main-nav .current_page_ancestor > a { color: var(--c-red); }

	.main-nav .menu > .menu-item-has-children > a { padding-right: 1.7rem; }
	.main-nav .menu > .menu-item-has-children > a::after {
		content: "";
		position: absolute;
		right: .8rem; top: 50%;
		width: .4em; height: .4em;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-70%) rotate(45deg);
		opacity: .55;
		transition: transform .35s var(--ease), opacity .2s;
	}
	.main-nav .menu > .menu-item-has-children:hover > a::after,
	.main-nav .menu > .menu-item-has-children:focus-within > a::after {
		transform: translateY(-20%) rotate(-135deg);
		opacity: 1;
	}

	/* Dropdown */
	.main-nav .sub-menu {
		position: absolute;
		left: 0;
		top: 100%;
		z-index: 2; /* über der Scroll-Fortschrittslinie des Headers */
		min-width: 16rem;
		padding: .5rem 0;
		background: var(--c-surface);
		border-top: 2px solid var(--c-red);
		border-radius: 0 0 var(--radius) var(--radius);
		box-shadow: 0 24px 40px -20px rgb(36 26 20 / .35), 0 0 0 1px var(--c-line);
		opacity: 0;
		visibility: hidden;
		clip-path: inset(0 0 100% 0);
		transform: translateY(8px);
		transition: opacity .25s, transform .4s var(--ease), clip-path .45s var(--ease), visibility .45s;
	}
	/* Rechts im Menü: nach links aufklappen, sonst ragt das (auch unsichtbare) Dropdown über den Rand */
	.main-nav .menu > li:nth-last-child(-n+2) .sub-menu { left: auto; right: 0; }
	.main-nav .sub-menu::before { /* Hover-Brücke */
		content: "";
		position: absolute;
		inset: -.9rem 0 auto;
		height: .9rem;
	}
	.main-nav .sub-wrap { display: contents; }
	.main-nav li:hover .sub-menu,
	.main-nav li:focus-within .sub-menu {
		opacity: 1;
		visibility: visible;
		clip-path: inset(-2px -40px -60px -40px);
		transform: none;
	}
	.main-nav .sub-menu li {
		opacity: 0;
		transform: translateY(-6px);
		transition: opacity .3s, transform .4s var(--ease);
		transition-delay: 0s;
	}
	.main-nav li:hover .sub-menu li,
	.main-nav li:focus-within .sub-menu li {
		opacity: 1;
		transform: none;
		transition-delay: calc(var(--i, 0) * 35ms + 60ms);
	}
	.main-nav .sub-menu a {
		position: relative;
		padding: .6rem 1.25rem .5rem;
		font-size: .98rem;
		letter-spacing: .03em;
		background: linear-gradient(90deg, var(--c-tint), var(--c-tint)) no-repeat left / 0 100%;
		transition: background-size .35s var(--ease), color .2s, padding .35s var(--ease);
	}
	.main-nav .sub-menu a::before { /* Marker links */
		content: "";
		position: absolute;
		left: 0; top: 0; bottom: 0;
		width: 3px;
		background: var(--c-red);
		transform: scaleY(0);
		transition: transform .3s var(--ease);
	}
	.main-nav .sub-menu a:hover,
	.main-nav .sub-menu a:focus-visible {
		color: var(--c-red);
		background-size: 100% 100%;
		padding-left: 1.6rem;
	}
	.main-nav .sub-menu a:hover::before,
	.main-nav .sub-menu .current-menu-item > a::before,
	.main-nav .sub-menu .current_page_item > a::before { transform: scaleY(1); }
}

/* Mobil */
@media (max-width: 64em) {
	.nav-toggle { display: inline-block; }

	/* Der Header ist wegen backdrop-filter Bezugsrahmen für position:fixed → Panel direkt unter ihm. */
	.main-nav {
		position: fixed;
		top: 100%;
		left: 0; right: 0;
		height: calc(100dvh - var(--header-h));
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 1.5rem var(--gutter) 3rem;
		background: var(--c-bg);
		visibility: hidden;
		clip-path: inset(0 0 100% 0);
		transition: clip-path .55s var(--ease), visibility .55s;
	}
	.is-scrolled .main-nav { height: calc(100dvh - 62px); }
	.admin-bar .main-nav { height: calc(100dvh - var(--header-h) - 46px); }
	.nav-open .main-nav { visibility: visible; clip-path: inset(0); }
	.nav-lock { overflow: hidden; }
	.nav-open .site-header,
	.nav-open .site-header.is-scrolled { background: var(--c-bg); box-shadow: none; }

	.main-nav .menu > li {
		position: relative;
		border-bottom: 1px solid var(--c-line);
		opacity: 0;
		transform: translateY(18px);
		transition: opacity .35s, transform .5s var(--ease);
	}
	.nav-open .main-nav .menu > li {
		opacity: 1;
		transform: none;
		transition-delay: calc(var(--i, 0) * 60ms + 150ms);
	}
	.main-nav .menu > li > a {
		display: flex;
		align-items: baseline;
		gap: .9rem;
		padding: 1.1rem 3.5rem .9rem 0;
		font-size: 1.5rem;
		font-weight: 400;
		letter-spacing: .06em;
		text-transform: uppercase;
		transition: color .2s, transform .35s var(--ease);
	}
	.main-nav .menu > li > a:active { transform: translateX(6px); }

	.main-nav .sub-wrap {
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows .45s var(--ease);
	}
	.main-nav .sub-open > .sub-wrap { grid-template-rows: 1fr; }
	.main-nav .sub-wrap > .sub-menu { overflow: hidden; min-height: 0; padding-left: .1rem; }
	.main-nav .sub-menu li:last-child { padding-bottom: 1rem; }
	.main-nav .sub-menu a { padding: .45rem 0; color: var(--c-muted); }
	.main-nav .current-menu-item > a,
	.main-nav .current_page_item > a { color: var(--c-red); }

	.sub-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		right: 0; top: .75rem;
		width: 44px; height: 44px;
		border: 1px solid var(--c-line);
		border-radius: var(--radius-sm);
		background: transparent;
		color: var(--c-ink);
		cursor: pointer;
		transition: background .2s, border-color .2s;
	}
	.sub-open > .sub-toggle { background: var(--c-red); border-color: var(--c-red); color: #fff; }
	.sub-toggle::before {
		content: "";
		width: .5rem; height: .5rem;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform .35s var(--ease);
	}
	.sub-open > .sub-toggle::before { transform: translateY(2px) rotate(-135deg); }
}

/* Startseite: Header liegt transparent über dem Foto, bis gescrollt wird */
/* Header ist var(--header-h) + 1px Unterkante hoch – sonst bleibt oben eine 1px-Linie */
.home .site-main { margin-top: calc(-1 * var(--header-h) - 1px); }
/* Foto etwas nach oben gerückt; unten weich in den dunklen Textbereich ausgeblendet */
.home .hero { background: #1c0a0c; }
.home .hero__slides {
	top: -7%;
	-webkit-mask-image: linear-gradient(180deg, #000 82%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 82%, transparent 100%);
}
.home .hero { padding-top: calc(var(--header-h) + 3rem); min-height: min(98vh, 56rem); }
.home:not(.nav-open) .site-header:not(.is-scrolled) {
	background: transparent;
	border-bottom-color: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
.home:not(.nav-open) .site-header:not(.is-scrolled) .brand,
.home:not(.nav-open) .site-header:not(.is-scrolled) .nav-toggle,
.home:not(.nav-open) .site-header:not(.is-scrolled) .main-nav .menu > li > a { color: #fff; text-shadow: 0 1px 10px rgb(0 0 0 / .35); }
.home:not(.nav-open) .site-header:not(.is-scrolled) .brand__clef { color: var(--c-brass-light); filter: drop-shadow(0 1px 6px rgb(0 0 0 / .35)); }
.home:not(.nav-open) .site-header:not(.is-scrolled) .brand__small { color: rgb(255 255 255 / .8); }
.home:not(.nav-open) .site-header:not(.is-scrolled) .main-nav .menu > li > a::before { background: var(--c-brass-light); }
.home:not(.nav-open) .site-header:not(.is-scrolled) .main-nav .menu > li > a:hover,
.home:not(.nav-open) .site-header:not(.is-scrolled) .main-nav .menu > li:focus-within > a { color: var(--c-brass-light); }
.home .site-header .brand,
.home .site-header .main-nav .menu > li > a,
.home .site-header .brand__small,
.home .site-header .brand__clef { transition: color .35s, text-shadow .35s, background .35s, box-shadow .35s, height .35s var(--ease), transform .5s var(--ease); }

/* ---------- Unterseiten: dunkler Header in Lederhosen-Braun (TMK Theme → Darstellung: „Leder“) ----------
   Oben auf der Seite dunkles Leder mit Ziernaht; beim Scrollen weicher Übergang
   ins helle Milchglas (Standard-Header). */

body:not(.home):not(.tmk-header-hell) {
	--leder-text: #f6eedf;
	--leder-dark: #281b13;
}
.site-header { transition: box-shadow .35s var(--ease), background-color .45s var(--ease); }
.site-header .brand,
.site-header .brand__small,
.site-header .brand__clef,
.site-header .nav-toggle,
.main-nav .menu > li > a { transition: color .4s var(--ease), height .35s var(--ease), transform .5s var(--ease); }

body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) {
	background-color: rgb(52 36 26 / .97);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
	border-bottom-color: transparent;
	box-shadow: 0 1px 0 rgb(0 0 0 / .25);
}
/* Ziernaht wie an der Lederhose – blendet beim Scrollen aus */
body:not(.home):not(.tmk-header-hell) .site-header::before {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 6px;
	border-top: 1.5px dashed rgb(228 200 143 / .42);
	pointer-events: none;
	transition: opacity .35s;
}
body:not(.home):not(.tmk-header-hell) .site-header.is-scrolled::before { opacity: 0; }

body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .brand,
body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .brand:hover,
body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .nav-toggle { color: var(--leder-text); }
body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .brand__clef { color: var(--c-brass-light); }
body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .brand__small { color: rgb(246 238 223 / .6); }

@media (min-width: 64.01em) {
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > li > a { color: var(--leder-text); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > li > a::before { background: var(--c-brass-light); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > li > a:hover,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > li:focus-within > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > .current-menu-item > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > .current-menu-ancestor > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > .current_page_item > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > .current_page_ancestor > a { color: var(--c-brass-light); }

	/* Dropdown passend in Leder, solange der Header dunkel ist */
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu {
		background: var(--leder-dark);
		border-top-color: var(--c-brass-light);
		box-shadow: 0 24px 40px -18px rgb(0 0 0 / .6), 0 0 0 1px rgb(255 255 255 / .06);
	}
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu a {
		color: rgb(246 238 223 / .85);
		background-image: linear-gradient(90deg, rgb(255 255 255 / .07), rgb(255 255 255 / .07));
	}
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu a::before { background: var(--c-brass-light); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu a:hover,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu a:focus-visible,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu .current-menu-item > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu .current_page_item > a { color: var(--c-brass-light); }
}

@media (max-width: 64em) {
	body:not(.home):not(.tmk-header-hell).nav-open .site-header:not(.is-scrolled) { background-color: #34241a; }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav { background: var(--leder-dark); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > li { border-bottom-color: rgb(255 255 255 / .1); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .menu > li > a { color: var(--leder-text); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .current-menu-item > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .current_page_item > a,
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .current-menu-ancestor > a { color: var(--c-brass-light); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .main-nav .sub-menu a { color: rgb(246 238 223 / .7); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .sub-toggle { color: var(--leder-text); border-color: rgb(255 255 255 / .2); }
	body:not(.home):not(.tmk-header-hell) .site-header:not(.is-scrolled) .sub-open > .sub-toggle { background: var(--c-brass-light); border-color: var(--c-brass-light); color: var(--c-ink); }
}

/* ---------- Startseiten-Hero ---------- */

.hero {
	position: relative;
	display: grid;
	align-items: end;
	min-height: min(82vh, 46rem);
	padding: 6rem 0 clamp(1rem, 2vw, 1.5rem);
	color: #fff;
	background: var(--c-brown);
	overflow: hidden;
	isolation: isolate;
}
/* ---------- Slider im Startbild (Fotos & Videos) ---------- */
.hero__slides {
	position: absolute;
	inset: 0;
	z-index: -2;
	overflow: hidden;
	animation: hero-zoom 2.8s var(--ease) both;
}
.hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1.4s ease, visibility 0s linear 1.4s;
}
.hero__slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
	transition: opacity 1.4s ease, visibility 0s;
}
.hero__slide.is-leaving { visibility: visible; z-index: 0; }
.hero__media {
	display: block;
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: center;
	transform-origin: 50% 70%;
}
.hero__slide[data-focus="top"] .hero__media { object-position: center 15%; transform-origin: 50% 20%; }
.hero__slide[data-focus="bottom"] .hero__media { object-position: center bottom; transform-origin: 50% 90%; }
/* Sanfter Zoom (Ken Burns) für Fotos – abwechselnd hinein und heraus */
.hero__slides--kenburns .hero__slide img.hero__media { animation: none; }
.hero__slides--kenburns .hero__slide.is-active img.hero__media,
.hero__slides--kenburns .hero__slide.is-leaving img.hero__media {
	animation: hero-kenburns calc(var(--dur, 7s) + 2s) linear both;
}
.hero__slides--kenburns .hero__slide:nth-child(even).is-active img.hero__media,
.hero__slides--kenburns .hero__slide:nth-child(even).is-leaving img.hero__media { animation-name: hero-kenburns-out; }
@keyframes hero-kenburns { from { transform: scale(1); } to { transform: scale(1.09); } }
@keyframes hero-kenburns-out { from { transform: scale(1.09); } to { transform: scale(1); } }
.hero__slides.is-paused .hero__media { animation-play-state: paused !important; }

/* Steuerung: Fortschrittsbalken je Folie + Pause/Pfeile, unten rechts */
.hero__controls {
	position: absolute;
	left: 0; right: 0; bottom: clamp(1rem, 2vw, 1.6rem);
	z-index: 2;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 1.1rem;
	pointer-events: none;
}
.hero__controls > * { pointer-events: auto; }
.hero__dots { display: flex; gap: 6px; }
.hero__dot {
	width: clamp(1.75rem, 4vw, 3rem);
	height: 22px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	display: grid;
	align-items: center;
}
.hero__dot span {
	position: relative;
	display: block;
	height: 2px;
	background: rgb(255 255 255 / .35);
	overflow: hidden;
	transition: height .2s;
}
.hero__dot:hover span,
.hero__dot:focus-visible span { height: 4px; }
.hero__dot span::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--c-brass-light);
	transform: scaleX(0);
	transform-origin: left;
}
.hero__dot.is-done span::after { transform: scaleX(1); }
.hero__dot.is-active span::after { animation: hero-progress var(--dur, 7s) linear both; }
.hero__slides.is-paused ~ .hero__controls .hero__dot.is-active span::after,
.hero.is-paused .hero__dot.is-active span::after { animation-play-state: paused; }
@keyframes hero-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.hero__nav { display: flex; gap: 4px; }
.hero__btn {
	display: grid;
	place-items: center;
	width: 38px; height: 38px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-sm);
	background: rgb(255 255 255 / .1);
	color: #fff;
	cursor: pointer;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / .3);
	transition: background .2s, color .2s, box-shadow .2s;
}
.hero__btn svg { width: 16px; height: 16px; grid-area: 1 / 1; }
.hero__btn:hover,
.hero__btn:focus-visible { background: var(--c-brass-light); color: var(--c-ink); box-shadow: none; }
.hero__pause .i-play { display: none; }
.hero.is-paused .hero__pause .i-play { display: block; }
.hero.is-paused .hero__pause .i-pause { display: none; }
@media (max-width: 40em) {
	.hero__controls--balken { justify-content: flex-start; top: calc(var(--header-h) + 1rem); bottom: auto; }
	.hero__controls--balken .hero__prev,
	.hero__controls--balken .hero__next { display: none; }
}
.hero__count { display: none; }

/* Variante „Schlicht“: nur feine Pfeile und Zähler „01 / 05“ */
.hero__controls--schlicht .hero__dots,
.hero__controls--schlicht .hero__pause { display: none; }
.hero__controls--schlicht .hero__nav { align-items: center; gap: .25rem; }
.hero__controls--schlicht .hero__prev { order: 1; }
.hero__controls--schlicht .hero__count { order: 2; }
.hero__controls--schlicht .hero__next { order: 3; }
.hero__controls--schlicht .hero__btn {
	width: 34px; height: 34px;
	background: none;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	color: rgb(255 255 255 / .85);
}
.hero__controls--schlicht .hero__btn svg { width: 18px; height: 18px; transition: transform .3s var(--ease); }
.hero__controls--schlicht .hero__btn:hover,
.hero__controls--schlicht .hero__btn:focus-visible { background: none; color: var(--c-brass-light); }
.hero__controls--schlicht .hero__prev:hover svg { transform: translateX(-3px); }
.hero__controls--schlicht .hero__next:hover svg { transform: translateX(3px); }
.hero__controls--schlicht .hero__count {
	display: inline-flex;
	align-items: baseline;
	gap: .15rem;
	min-width: 4.6rem;
	justify-content: center;
	font-family: var(--f-nav);
	font-size: .78rem;
	letter-spacing: .18em;
	color: rgb(255 255 255 / .6);
	text-shadow: 0 1px 6px rgb(0 0 0 / .4);
}
.hero__controls--schlicht .hero__count b { font-weight: 600; color: #fff; }

/* Variante „Seitenpfeile“: große Pfeile links und rechts, Balken mittig unten */
.hero__controls--seiten { position: static; }
.hero__controls--seiten .hero__dots {
	position: absolute;
	left: 50%; bottom: clamp(1rem, 2vw, 1.6rem);
	z-index: 2;
	transform: translateX(-50%);
}
.hero__controls--seiten .hero__dot { width: 1.6rem; }
.hero__controls--seiten .hero__pause {
	position: absolute;
	right: var(--gutter); bottom: clamp(.75rem, 2vw, 1.3rem);
	z-index: 2;
	width: 32px; height: 32px;
}
.hero__controls--seiten .hero__prev,
.hero__controls--seiten .hero__next {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 54px; height: 54px;
	transform: translateY(-50%);
}
.hero__controls--seiten .hero__prev { left: max(.75rem, calc((100vw - var(--w-wide)) / 2 - 5rem)); }
.hero__controls--seiten .hero__next { right: max(.75rem, calc((100vw - var(--w-wide)) / 2 - 5rem)); }
.hero__controls--seiten .hero__btn svg { width: 22px; height: 22px; }
@media (max-width: 40em) {
	.hero__controls--seiten .hero__prev,
	.hero__controls--seiten .hero__next { width: 40px; height: 40px; top: 42%; }
	.hero__controls--seiten .hero__dots { bottom: auto; top: calc(var(--header-h) + 1rem); }
	.hero__controls--seiten .hero__pause { bottom: auto; top: calc(var(--header-h) + .6rem); }
}
.hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgb(20 12 8 / .55) 0%, rgb(20 12 8 / 0) 22%),
		linear-gradient(0deg, rgb(28 10 12 / .85) 0%, rgb(28 10 12 / .45) 18%, rgb(20 12 8 / 0) 38%),
		linear-gradient(90deg, rgb(28 10 12 / .4), transparent 45%);
}
.hero__inner { position: relative; }
.hero__title {
	color: #fff;
	margin: 0 0 .5rem;
	font-size: clamp(1.6rem, 1.6vw + 1rem, 2.6rem);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -.015em;
	text-shadow: 0 2px 18px rgb(0 0 0 / .45);
}
.hero__line { display: block; overflow: hidden; padding-bottom: .08em; }
.hero__line > * { display: inline-block; }
.hero__title em {
	font-style: italic;
	font-weight: 400;
	color: var(--c-brass-light);
}
.hero .eyebrow { margin-bottom: .6rem; font-size: .72rem; }
.hero__lead {
	max-width: 30rem;
	font-size: 1rem;
	color: rgb(255 255 255 / .9);
	margin-bottom: 1.1rem;
	text-shadow: 0 1px 10px rgb(0 0 0 / .5);
}
.hero__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; }
.hero__actions .tmk-cta { font-size: .7rem; letter-spacing: .14em; }
.hero__actions .tmk-cta span { padding: .62rem .95rem .52rem; }
.hero__actions .tmk-cta i { width: 2.15rem; }
.hero__actions .tmk-cta:hover i { width: 2.7rem; }
.hero__actions .tmk-cta .tmk-icon,
.hero__actions .tmk-cta svg { width: 1rem; height: 1rem; }

/* Helle Variante auf Fotos: weiß umrandet, füllt sich beim Hover von links */
.tmk-cta.tmk-cta--light { color: #fff; box-shadow: none; }
.tmk-cta.tmk-cta--light span {
	background: linear-gradient(#fff, #fff) no-repeat left / 0 100%;
	box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .85);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: background-size .45s var(--ease), color .3s;
}
.tmk-cta.tmk-cta--light i {
	background: rgb(255 255 255 / .14);
	box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .85);
	margin-left: -1.5px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.tmk-cta.tmk-cta--light:hover { color: var(--c-ink); }
.tmk-cta.tmk-cta--light:hover span { background: linear-gradient(#fff, #fff) no-repeat left / 100% 100%; }
.tmk-cta.tmk-cta--light:hover i { background: var(--c-brass-light); color: var(--c-ink); box-shadow: none; }
.tmk-cta.tmk-cta--light:hover svg { transform: none; }

/* Einlauf-Animation: Zeilen gleiten aus einer Maske, Rest blendet gestaffelt ein. */
.hero__anim {
	animation: hero-in .9s var(--ease) both;
	animation-delay: calc(var(--d, 0) * 120ms + 250ms);
}
.hero__line > .hero__anim { animation-name: hero-line; animation-duration: 1s; }
@keyframes hero-in {
	from { opacity: 0; transform: translateY(14px); filter: blur(4px); }
}
@keyframes hero-line {
	from { transform: translateY(110%); }
}
@keyframes hero-zoom {
	from { transform: scale(1.08); filter: saturate(.7) brightness(.85); }
}

/* ---------- Seitenkopf ---------- */

.page-hero {
	position: relative;
	padding: clamp(3.5rem, 8vw, 6.5rem) 0 clamp(2.5rem, 5vw, 4rem);
	background:
		radial-gradient(60rem 20rem at 85% -20%, rgb(181 131 44 / .14), transparent 70%),
		var(--c-tint);
	border-bottom: 1px solid var(--c-line);
	overflow: hidden;
	isolation: isolate;
}
.page-hero__title { margin: 0; max-width: 20ch; hyphens: auto; overflow-wrap: break-word; }
.page-hero__lead {
	max-width: 40rem;
	margin: 1rem 0 0;
	font-size: clamp(1.1rem, .5vw + 1rem, 1.3rem);
	color: var(--c-muted);
}
.page-hero--image {
	display: grid;
	align-items: end;
	min-height: clamp(20rem, 45vw, 32rem);
	color: #fff;
	background: var(--c-brown);
	border: 0;
}
.page-hero--image .page-hero__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: -2;
}
.page-hero--image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgb(20 12 8 / .05) 20%, rgb(28 10 12 / .8) 100%);
}
.page-hero--image .page-hero__title { color: #fff; text-shadow: 0 2px 20px rgb(0 0 0 / .3); }
.page-hero--image .page-hero__lead { color: rgb(255 255 255 / .9); }
.page-hero--image .eyebrow { color: var(--c-brass-light); }

/* ---------- Sektionen ---------- */

.section { padding: clamp(3rem, 7vw, 6rem) 0; }
.section--tinted { background: var(--c-tint); border-top: 1px solid var(--c-line); }
.section-head { margin-bottom: 1.75rem; }
.section-head h2 { margin: 0; }

.split {
	display: grid;
	gap: clamp(2.5rem, 5vw, 4.5rem);
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 60em) {
	.split { grid-template-columns: minmax(0, 1.7fr) minmax(18rem, 1fr); }
}

/* ---------- Karten ---------- */

.card-grid {
	display: grid;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	margin-bottom: 1.5rem;
}
.card-grid--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }

.card {
	display: flex;
	flex-direction: column;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	color: var(--c-ink);
	text-decoration: none;
	transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); color: var(--c-ink); text-decoration: none; }
.card__media { aspect-ratio: 10 / 7; overflow: hidden; background: var(--c-tint); }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.card:hover .card__media img { transform: scale(1.04); }
.card__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	color: var(--c-line);
	background: linear-gradient(135deg, var(--c-tint), var(--c-bg));
}
.card__placeholder svg { height: 55%; width: auto; color: #d8c8b0; }
.card__body { display: flex; flex-direction: column; gap: .4rem; padding: 1.25rem 1.4rem 1.5rem; flex: 1; }
.card__date { font-size: .85rem; font-weight: 600; color: var(--c-muted); }
.card__title { margin: 0; font-size: 1.3rem; }
.card__text { margin: 0 0 .5rem; color: var(--c-muted); font-size: 1rem; }
.card .link-arrow { margin-top: auto; font-size: .95rem; }

.subpages { padding: clamp(1rem, 3vw, 2rem) 0 clamp(3rem, 6vw, 5rem); }

/* ---------- Termine ---------- */

.termine-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .75rem; }

.termin {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	padding: .9rem 1.1rem .9rem .9rem;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	transition: border-color .2s, box-shadow .2s;
}
.termin:hover { border-color: var(--c-brass-light); box-shadow: var(--shadow); }
.termin--single { margin-top: 2rem; margin-bottom: 0; }
.termin--single:hover { box-shadow: none; border-color: var(--c-line); }
.termin__title { margin: 0; font-size: 1.2rem; }
.termin__title a { color: var(--c-ink); text-decoration: none; }
.termin__title a::after { content: ""; position: absolute; inset: 0; }
.termin { position: relative; }
.termin__title a:hover { color: var(--c-red); }
.termin__date { margin: 0; font-family: var(--f-serif); font-size: 1.3rem; font-weight: 600; }
.termin__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1rem;
	margin: .25rem 0 0;
	font-size: .95rem;
	color: var(--c-muted);
}
.termin__meta span { display: inline-flex; align-items: center; gap: .35rem; }

.date-badge {
	display: grid;
	justify-items: center;
	flex: none;
	width: 4.25rem;
	padding: .45rem 0 .4rem;
	border-radius: var(--radius-sm);
	background: var(--c-red);
	color: var(--c-on-dark);
	line-height: 1;
}
.date-badge__day { font-family: var(--f-serif); font-size: 1.75rem; font-weight: 600; }
.date-badge__month { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin-top: .2rem; }
.date-badge__wd { font-size: .7rem; opacity: .75; margin-top: .2rem; }

.termine-list--compact .termin { padding: .7rem .9rem .7rem .7rem; }
.termine-list--compact .date-badge { width: 3.6rem; }
.termine-list--compact .date-badge__day { font-size: 1.45rem; }
.termine-list--compact .termin__title { font-size: 1.05rem; }

.empty-state { text-align: center; padding-block: 2rem; color: var(--c-muted); }
.empty-state > .tmk-icon { width: 3rem; height: 3rem; color: var(--c-brass); margin-bottom: 1rem; }
.empty-state .social { justify-content: center; }
.empty-state__clef { display: block; width: 4rem; margin: 0 auto 2rem; color: var(--c-red); }
.empty-note { color: var(--c-muted); }
.hint { font-size: .9rem; color: var(--c-muted); }

.follow-box {
	margin-top: 2.5rem;
	padding: 1.5rem;
	border-radius: var(--radius);
	background: var(--c-red);
	color: var(--c-on-dark);
}
.follow-box h3 { margin: 0 0 .5rem; color: #fff; }
.follow-box p { color: rgb(255 255 255 / .85); font-size: 1rem; }
.follow-box .social a { background: rgb(255 255 255 / .12); color: #fff; }
.follow-box .social a:hover { background: #fff; color: var(--c-red); }

/* ---------- Social ---------- */

.social { display: flex; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.social a {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	border-radius: var(--radius-sm);
	background: var(--c-tint);
	color: var(--c-ink);
	transition: background .2s, color .2s, transform .2s var(--ease);
}
.social a:hover { background: var(--c-red); color: #fff; transform: translateY(-2px); }
.follow { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 3rem; color: var(--c-muted); }

/* ---------- Inhalte (Block-Editor) ---------- */

.entry { padding-bottom: clamp(3rem, 7vw, 6rem); }
.entry-meta {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-top: 2rem;
	color: var(--c-muted);
	font-size: .95rem;
}

.entry-content { padding-top: clamp(2rem, 5vw, 3.5rem); }
.entry-content--front { padding-top: 0; }

.entry-content > * {
	width: min(100% - 2 * var(--gutter), var(--w-content));
	margin-inline: auto;
}
.entry-content > .alignwide { width: min(100% - 2 * var(--gutter), var(--w-wide)); }
.entry-content > .alignfull { width: 100%; }
.entry-content > :first-child { margin-top: 0; }

.entry-content h2 { margin-top: 2.2em; }
.entry-content h2 + h3 { margin-top: .5em; }

.entry-content ul,
.entry-content ol { padding-left: 1.3em; }
.entry-content li { margin-bottom: .35em; }
.entry-content li::marker { color: var(--c-brass); }

.is-style-lead {
	font-family: var(--f-serif);
	font-size: clamp(1.25rem, .9vw + 1rem, 1.6rem);
	line-height: 1.5;
	font-weight: 400;
	color: var(--c-brown);
}

.wp-block-quote {
	margin-block: 2.5rem;
	padding: .25rem 0 .25rem 1.5rem;
	border-left: 3px solid var(--c-brass);
	font-family: var(--f-serif);
	font-size: 1.3rem;
	font-style: italic;
}
.wp-block-quote cite { display: block; margin-top: .5rem; font-family: var(--f-sans); font-size: .95rem; font-style: normal; color: var(--c-muted); }

.wp-block-separator {
	border: 0;
	height: 1px;
	background: var(--c-line);
	margin-block: 3rem;
}
.wp-block-separator.is-style-dots {
	background: none;
	height: auto;
	text-align: center;
	color: var(--c-brass);
}

.wp-block-image { margin-block: 2rem; }
.wp-block-image img { border-radius: var(--radius); }
.wp-block-image.alignfull img { border-radius: 0; }
.wp-block-image figcaption,
.wp-element-caption {
	margin-top: .6rem;
	font-size: .9rem;
	color: var(--c-muted);
	text-align: center;
}

.wp-block-gallery { margin-block: 2rem; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: var(--radius-sm); }
/* Gleichmäßiges Raster statt Flex-Reihen mit unterschiedlich hohen Hoch-/Querformaten */
.wp-block-gallery.has-nested-images.is-cropped {
	display: grid !important;
	grid-template-columns: repeat(var(--tmk-cols, 3), minmax(0, 1fr));
	gap: .6rem;
}
.wp-block-gallery.columns-2 { --tmk-cols: 2; }
.wp-block-gallery.columns-4 { --tmk-cols: 4; }
@media (max-width: 48em) { .wp-block-gallery.has-nested-images.is-cropped { --tmk-cols: 2; } }
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) {
	width: auto !important;
	margin: 0 !important;
}
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img {
	aspect-ratio: 4 / 3;
	height: auto !important;
	object-fit: cover;
}

.wp-block-columns { gap: clamp(1.5rem, 4vw, 3rem); margin-block: 2rem; }

.wp-block-media-text { margin-block: 3rem; gap: 0; }
.wp-block-media-text__media img { border-radius: var(--radius); }
.wp-block-media-text .wp-block-media-text__content { padding: 0 0 0 clamp(1.25rem, 4vw, 3rem); }
.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { padding: 0 clamp(1.25rem, 4vw, 3rem) 0 0; }
.wp-block-media-text__content > :first-child { margin-top: 0; }
@media (max-width: 600px) {
	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content,
	.wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__content { padding: 1.25rem 0 0; }
}

.wp-block-cover { border-radius: var(--radius); overflow: hidden; }
.wp-block-cover.alignfull { border-radius: 0; }
.wp-block-cover h2, .wp-block-cover h3 { color: #fff; }

.wp-block-audio { margin-block: 1.25rem 2rem; }
.wp-block-audio audio { width: 100%; }
.wp-block-audio figcaption { text-align: left; margin-top: .6rem; font-style: italic; font-family: var(--f-serif); }

/* Eigener Audio-Player */
.tmk-player {
	display: flex;
	align-items: stretch;
	background: var(--c-brown);
	color: var(--c-on-dark);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: 0 14px 30px -18px rgb(36 26 20 / .6);
}
.tmk-player__play {
	position: relative;
	flex: none;
	display: grid;
	place-items: center;
	width: 4.25rem;
	border: 0;
	background: var(--c-red);
	color: #fff;
	cursor: pointer;
	transition: background .25s;
}
.tmk-player__play:hover { background: var(--c-red-hover); }
.tmk-player__play svg { width: 1.6rem; height: 1.6rem; grid-area: 1 / 1; transition: transform .3s var(--ease), opacity .2s; }
.tmk-player__play .i-pause { opacity: 0; transform: scale(.6); }
.is-playing .tmk-player__play .i-play { opacity: 0; transform: scale(.6); }
.is-playing .tmk-player__play .i-pause { opacity: 1; transform: none; }
.tmk-player__play::after { /* pulsierender Ring beim Abspielen */
	content: "";
	position: absolute;
	inset: 0;
	box-shadow: inset 0 0 0 0 rgb(228 200 143 / .6);
}
.is-playing .tmk-player__play::after { animation: player-pulse 2s var(--ease) infinite; }
@keyframes player-pulse { 0% { box-shadow: inset 0 0 0 0 rgb(228 200 143 / .5); } 100% { box-shadow: inset 0 0 0 14px rgb(228 200 143 / 0); } }

.tmk-player__main { flex: 1; min-width: 0; padding: .85rem 1.25rem 1rem; }
.tmk-player__meta {
	display: flex;
	align-items: center;
	gap: .7rem;
	margin-bottom: .55rem;
	font-family: var(--f-nav);
	font-size: .75rem;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.tmk-player__label { color: var(--c-brass-light); }
.tmk-player__time { margin-left: auto; letter-spacing: .06em; color: rgb(251 246 238 / .65); font-variant-numeric: tabular-nums; }
.tmk-player__time b { font-weight: 600; color: #fff; }

/* kleine Pegelbalken */
.tmk-player__eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 12px; }
.tmk-player__eq i { width: 3px; height: 30%; background: var(--c-brass-light); }
.is-playing .tmk-player__eq i { animation: player-eq .9s ease-in-out infinite alternate; }
.is-playing .tmk-player__eq i:nth-child(2) { animation-delay: -.3s; animation-duration: .7s; }
.is-playing .tmk-player__eq i:nth-child(3) { animation-delay: -.6s; animation-duration: 1.1s; }
.is-playing .tmk-player__eq i:nth-child(4) { animation-delay: -.15s; animation-duration: .8s; }
@keyframes player-eq { from { height: 20%; } to { height: 100%; } }

/* Fortschrittsleiste (range) */
.tmk-player__seek {
	--p: 0%;
	display: block;
	width: 100%;
	height: 18px;
	margin: 0;
	background: transparent;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.tmk-player__seek::-webkit-slider-runnable-track {
	height: 3px;
	background: linear-gradient(90deg, var(--c-brass-light) var(--p), rgb(255 255 255 / .2) var(--p));
}
.tmk-player__seek::-moz-range-track { height: 3px; background: rgb(255 255 255 / .2); }
.tmk-player__seek::-moz-range-progress { height: 3px; background: var(--c-brass-light); }
.tmk-player__seek::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 12px; height: 12px;
	margin-top: -4.5px;
	background: #fff;
	border: 2px solid var(--c-brass);
	transform: rotate(45deg);
	transition: transform .2s;
}
.tmk-player__seek::-moz-range-thumb {
	width: 10px; height: 10px;
	background: #fff;
	border: 2px solid var(--c-brass);
	border-radius: 0;
	transform: rotate(45deg);
}
.tmk-player__seek:hover::-webkit-slider-thumb { transform: rotate(45deg) scale(1.25); }
.tmk-player__seek:focus-visible { outline: 2px solid var(--c-brass-light); outline-offset: 2px; }

.wp-block-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
}
.wp-block-file .wp-block-file__button {
	margin-left: auto;
	padding: .55em 1.2em;
	border-radius: var(--radius-sm);
	background: var(--c-red);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.wp-block-verse,
pre.wp-block-verse {
	font-family: var(--f-serif);
	font-size: 1.15rem;
	line-height: 1.7;
	white-space: pre-wrap;
	background: none;
	padding: 0;
	margin-block: 1rem 1.5rem;
	color: var(--c-brown);
	overflow: visible;
}

.wp-block-table table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.wp-block-table th, .wp-block-table td { padding: .6rem .75rem; border-bottom: 1px solid var(--c-line); text-align: left; }
.wp-block-table th { font-weight: 700; }

/* --- Eigene Inhalts-Bausteine (über „Zusätzliche CSS-Klasse“ im Editor) --- */

/* Zahlenleiste */
.tmk-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
	gap: 1px;
	margin-block: clamp(2.5rem, 6vw, 4.5rem);
	background: var(--c-line);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
}
.tmk-facts > * { margin: 0 !important; background: var(--c-surface); padding: 1.5rem 1.25rem; text-align: center; }
.tmk-facts strong {
	display: block;
	font-family: var(--f-serif);
	font-size: clamp(2.1rem, 3vw + 1rem, 3rem);
	font-weight: 600;
	line-height: 1.05;
	color: var(--c-red);
}
.tmk-facts p { font-size: .95rem; color: var(--c-muted); line-height: 1.35; }

/* Intro-Block der Startseite */
.tmk-intro { padding-top: clamp(3rem, 7vw, 5.5rem); }
.tmk-intro h2 { margin-top: 0; }

/* Ensemble-/Feature-Kacheln */
.tmk-features { margin-block: 2rem clamp(3rem, 6vw, 5rem); }
.tmk-features > .wp-block-column {
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.tmk-features .wp-block-image { margin: 0; }
.tmk-features .wp-block-image img { border-radius: 0; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.tmk-features .wp-block-column > :not(.wp-block-image) { margin-inline: 1.4rem; }
.tmk-features h3 { margin-top: 1.25rem; margin-bottom: .4rem; }
.tmk-features p { font-size: 1rem; color: var(--c-muted); }
.tmk-features .wp-block-column > :last-child { margin-bottom: 1.5rem; }

/* Personen (Kapellmeister, Stabführer) */
.tmk-people {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	margin-block: 2rem 3rem;
}
.tmk-person { margin: 0 !important; flex: 0 1 11.5rem; min-width: 9rem; }
@media (max-width: 30em) { .tmk-person { flex-basis: calc(50% - .5rem); min-width: 0; } }
.tmk-person .wp-block-image { margin: 0 0 .9rem; }
.tmk-person .wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	object-position: center 15%;
	filter: sepia(.15) contrast(1.02);
}
.tmk-person:not(:has(.wp-block-image))::before { /* Person ohne Foto */
	content: "";
	display: block;
	aspect-ratio: 4 / 5;
	margin-bottom: .9rem;
	border-radius: var(--radius);
	background: var(--c-tint) url("../img/clef.svg") center / auto 40% no-repeat;
	opacity: .55;
}
.tmk-person h3 { margin: 0 0 .15rem; font-size: 1.2rem; }
.tmk-person p { margin: 0; font-size: .95rem; color: var(--c-muted); }

/* Chronik / Zeitleiste */
.tmk-timeline { position: relative; margin-block: 2.5rem; padding-left: 2rem; }
.tmk-timeline::before {
	content: "";
	position: absolute;
	left: .4rem; top: .5rem; bottom: .5rem;
	width: 2px;
	background: linear-gradient(var(--c-brass), var(--c-line));
}
.tmk-milestone { position: relative; margin: 0 0 2.75rem !important; }
.tmk-milestone::before {
	content: "";
	position: absolute;
	left: calc(-2rem + .4rem - 6px);
	top: .45rem;
	width: 13px; height: 13px;
	background: var(--c-bg);
	border: 3px solid var(--c-red);
	transform: rotate(45deg);
}
.tmk-milestone .tmk-year {
	margin: 0 0 .1rem;
	font-family: var(--f-serif);
	font-size: 2rem;
	font-weight: 600;
	color: var(--c-red);
	line-height: 1;
}
.tmk-milestone h3 { margin: .25rem 0 .6rem; }
.tmk-milestone .wp-block-image { margin: 1rem 0 0; }

/* Highlight-Box */
.tmk-highlight {
	padding: clamp(1.5rem, 4vw, 2.5rem) !important;
	border-radius: var(--radius);
	background: var(--c-red);
	color: var(--c-on-dark);
	margin-bottom: clamp(3rem, 7vw, 5.5rem) !important;
}
.tmk-highlight h2, .tmk-highlight h3 { color: #fff; margin-top: 0; }
.tmk-highlight a { color: var(--c-brass-light); }
.tmk-highlight .wp-block-button__link { background: #fff; border-color: #fff; color: var(--c-red); }
.tmk-highlight .wp-block-button__link:hover { background: var(--c-brass-light); border-color: var(--c-brass-light); color: var(--c-ink); }

/* Jubiläums-Box (Startseite) */
.tmk-jubi {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-block: clamp(2rem, 6vw, 4rem) clamp(3rem, 7vw, 5.5rem) !important;
	color: var(--c-on-dark);
	background: #4a0d18;
	border-radius: var(--radius);
}
.tmk-jubi__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: center 40%;
	filter: grayscale(.35) contrast(1.05);
	transform: scale(1.04);
	transition: transform 6s var(--ease);
}
.tmk-jubi:hover .tmk-jubi__bg { transform: scale(1.1); }
.tmk-jubi::before { /* tiefrote Überlagerung, rechts etwas offener */
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(60rem 30rem at 15% 40%, rgb(110 20 35 / .97), rgb(110 20 35 / .88) 45%, rgb(60 10 18 / .72)),
		linear-gradient(0deg, rgb(30 6 10 / .85), transparent 45%);
}
.tmk-jubi::after { /* feiner Messingrahmen */
	content: "";
	position: absolute;
	inset: 12px;
	border: 1px solid rgb(228 200 143 / .35);
	border-radius: 2px;
	pointer-events: none;
}
.tmk-jubi__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 6vw, 5rem) clamp(2rem, 4vw, 3rem);
}

/* Siegel mit rotierender Umschrift */
.tmk-jubi__seal {
	position: relative;
	display: grid;
	place-items: center;
	width: clamp(10rem, 18vw, 14rem);
	aspect-ratio: 1;
}
.tmk-jubi__ring {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	overflow: visible;
	animation: jubi-spin 28s linear infinite;
}
.tmk-jubi__ring text {
	fill: var(--c-brass-light);
	font-family: var(--f-nav);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .5px;
}
.tmk-jubi__seal::before { /* innerer Kreis */
	content: "";
	position: absolute;
	inset: 17%;
	border: 1px solid rgb(228 200 143 / .55);
	border-radius: 50%;
}
@keyframes jubi-spin { to { transform: rotate(360deg); } }
.tmk-jubi__num {
	font-family: var(--f-serif);
	font-size: clamp(3.4rem, 6vw, 4.9rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.04em;
	color: #fff;
	margin-top: -.6rem;
	text-shadow: 0 4px 30px rgb(0 0 0 / .35);
}
.tmk-jubi__jahre {
	position: absolute;
	bottom: 28%;
	font-family: var(--f-nav);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--c-brass-light);
	padding-left: .32em;
}

.tmk-jubi__eyebrow {
	margin: 0 0 .9rem;
	font-family: var(--f-nav);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--c-brass-light);
	display: flex;
	align-items: center;
	gap: .8rem;
}
.tmk-jubi__eyebrow::before { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.tmk-jubi .tmk-jubi__title {
	margin: 0 0 1rem;
	color: #fff;
	font-size: clamp(2rem, 2.8vw + 1rem, 3.4rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -.02em;
}
.tmk-jubi__title em { font-weight: 400; color: var(--c-brass-light); }
.tmk-jubi__text { max-width: 34rem; margin: 0 0 1.75rem; color: rgb(251 246 238 / .88); }

/* Button: Messing, eckig, Pfeilfeld fährt aus */
.tmk-cta,
.tmk-jubi__cta {
	display: inline-flex;
	align-items: stretch;
	color: var(--c-ink);
	text-decoration: none;
	font-family: var(--f-nav);
	font-size: .88rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	box-shadow: 0 10px 30px -12px rgb(0 0 0 / .6);
}
.tmk-cta span,
.tmk-jubi__cta span {
	display: flex;
	align-items: center;
	padding: 1rem 1.5rem .9rem;
	background: var(--c-brass-light);
	transition: background .3s;
}
.tmk-cta i,
.tmk-jubi__cta i {
	display: grid;
	place-items: center;
	width: 3.2rem;
	background: var(--c-brass);
	color: #fff;
	transition: width .4s var(--ease), background .3s;
}
.tmk-cta svg,
.tmk-cta .tmk-icon,
.tmk-jubi__cta svg { width: 1.2rem; height: 1.2rem; transition: transform .4s var(--ease); }
.tmk-cta:hover,
.tmk-jubi__cta:hover { color: var(--c-ink); }
.tmk-cta:hover span,
.tmk-jubi__cta:hover span { background: #fff; }
.tmk-cta:hover i,
.tmk-jubi__cta:hover i { width: 4.2rem; background: var(--c-ink); }
.tmk-cta:hover svg,
.tmk-jubi__cta:hover svg { transform: translateX(4px); }

/* Foto-Kacheln je Festtag */
.tmk-jubi__days {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2px;
	padding: 0 clamp(1.5rem, 6vw, 5rem) clamp(1.5rem, 5vw, 3.5rem);
}
.tmk-jubi__day {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	background: #111;
}
.tmk-jubi__day:hover,
.tmk-jubi__day:focus-visible { color: #fff; }
.tmk-jubi__day img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: brightness(.85);
	transition: transform .8s var(--ease), filter .4s;
}
.tmk-jubi__day::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgb(0 0 0 / .75), rgb(0 0 0 / 0) 60%);
	transition: opacity .4s;
}
.tmk-jubi__daytext {
	position: absolute;
	left: 1rem; right: 1rem; bottom: .85rem;
	z-index: 1;
	display: grid;
	line-height: 1.15;
}
.tmk-jubi__daytext small { font-family: var(--f-nav); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--c-brass-light); text-shadow: 0 1px 6px rgb(0 0 0 / .6); }
.tmk-jubi__daytext strong { text-shadow: 0 1px 10px rgb(0 0 0 / .5); }
.tmk-jubi__daytext strong { font-family: var(--f-serif); font-size: 1.45rem; font-weight: 500; }
.tmk-jubi__daytext em {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-style: normal;
	font-size: .85rem;
	color: #fff;
	max-height: 0;
	opacity: 0;
	transition: max-height .4s var(--ease), opacity .3s, margin .4s var(--ease);
}
.tmk-jubi__daytext em svg { width: 1rem; height: 1rem; }
.tmk-jubi__day:hover img,
.tmk-jubi__day:focus-visible img { transform: scale(1.08); filter: brightness(1); }
.tmk-jubi__day:hover em,
.tmk-jubi__day:focus-visible em { max-height: 2em; opacity: 1; margin-top: .25rem; }

@media (max-width: 48em) {
	.tmk-jubi__inner { grid-template-columns: minmax(0, 1fr); justify-items: start; }
	.tmk-jubi__seal { width: 9rem; }
	.tmk-jubi__days { grid-template-columns: minmax(0, 1fr); }
	.tmk-jubi__day { aspect-ratio: 21 / 8; }
	.tmk-jubi__daytext em { max-height: 2em; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .tmk-jubi__ring { animation: none; } }

/* ---------- Jubiläumsseite (175 Jahre) ---------- */

.fest-kicker {
	display: flex;
	align-items: center;
	gap: .8rem;
	margin: 0 0 .8rem;
	font-family: var(--f-nav);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--c-brass);
}
.fest-kicker::before { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.fest-head { max-width: 40rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.fest-head h2 { margin: 0 0 .75rem; }
.fest-head p:last-child { color: var(--c-muted); }

/* Auftakt */
.fest-intro {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
	margin-block: 0 clamp(2.5rem, 6vw, 4rem) !important;
}
.fest-intro__num { display: grid; justify-items: center; line-height: .8; }
.fest-n {
	display: inline-flex;
	font-family: var(--f-serif);
	font-size: clamp(6rem, 15vw, 13rem);
	font-style: italic;
	font-weight: 300;
	line-height: 1;
}
/* Jede Ziffer einzeln: großzügiger Innenraum, damit kursive Überhänge (Fahne der 5) mitgefüllt werden */
.fest-n b {
	display: inline-block;
	padding: .08em .28em .12em .08em;
	margin-right: -.4em;
	font-weight: inherit;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--c-red);
	background:
		linear-gradient(105deg, transparent 38%, rgb(255 250 232 / .55) 45%, #fffef8 50%, rgb(255 250 232 / .55) 55%, transparent 62%) no-repeat,
		linear-gradient(180deg, #efdcae 0%, #ddb978 50%, #c99f55 100%) no-repeat;
	background-size: 260% 100%, 100% 100%;
	background-position: 140% 0, 0 100%;
	-webkit-background-clip: text;
	background-clip: text;
	filter: drop-shadow(2px 3px 0 rgb(110 20 35 / .12));
	transform-origin: 30% 90%;
}
.fest-n b:last-child { margin-right: 0; }

/* Ablauf beim Hineinscrollen: Kontur schwingt ein → Messing steigt von unten auf → später gelegentlicher Glanz */
.has-js .fest-intro:not(.is-in) .fest-n b { opacity: 0; transform: translateY(.35em) rotate(-8deg); }
.has-js .fest-intro.is-in .fest-n b {
	opacity: 1;
	transform: none;
	transition: opacity .6s calc(var(--d) * 160ms), transform 1s cubic-bezier(.2, 1.4, .4, 1) calc(var(--d) * 160ms);
	animation:
		fest-fill 1.3s cubic-bezier(.6, 0, .25, 1) calc(var(--d) * 220ms + 700ms) both,
		fest-glint 9s ease-in-out calc(var(--d) * 120ms + 3.2s) infinite;
}
@keyframes fest-fill {
	from { background-size: 260% 100%, 100% 0%; }
	to { background-size: 260% 100%, 100% 100%; }
}
@keyframes fest-glint {
	0% { background-position: 140% 0, 0 100%; }
	22%, 100% { background-position: -40% 0, 0 100%; }
}
.fest-intro__num small {
	margin-top: 1rem;
	font-family: var(--f-nav);
	font-size: .85rem;
	letter-spacing: .3em;
	color: var(--c-brass);
}
.fest-intro .fest-intro__title { margin: 0 0 1rem; font-size: clamp(2rem, 2.5vw + 1rem, 3.2rem); line-height: 1.05; }
.fest-intro__title em { font-weight: 400; color: var(--c-red); }
.fest-intro__text > p:last-child { color: var(--c-muted); margin: 0; }

/* Zahlen */
.fest-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
	margin-block: 0 clamp(4rem, 8vw, 6.5rem) !important;
	padding: 0 !important;
	list-style: none;
	border-block: 1px solid var(--c-line);
}
.fest-facts li { margin: 0; padding: 1.6rem 1rem; text-align: center; position: relative; }
.fest-facts li + li::before {
	content: "";
	position: absolute;
	left: 0; top: 50%;
	width: 7px; height: 7px;
	margin: -3.5px 0 0 -3.5px;
	background: var(--c-brass);
	transform: rotate(45deg);
}
.fest-facts strong {
	display: block;
	font-family: var(--f-serif);
	font-size: clamp(2.4rem, 3.5vw + 1rem, 3.6rem);
	font-weight: 500;
	line-height: 1;
	color: var(--c-red);
	font-variant-numeric: tabular-nums;
}
.fest-facts li > span { display: block; margin-top: .5rem; font-size: .92rem; line-height: 1.35; color: var(--c-muted); }
.fest-facts em { font-style: normal; color: var(--c-brass); font-weight: 600; }

/* Festtage */
.fest-days { margin-block: 0 clamp(4rem, 8vw, 6.5rem) !important; }
.fest-day {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(1.5rem, 5vw, 4rem);
	margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}
.fest-day:nth-child(odd of .fest-day) .fest-day__media { order: 2; }
.fest-day__media {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 6px;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: var(--radius);
}
.fest-day__img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .5s; }
.fest-day__img--0 { grid-row: 1 / 3; }
.fest-day__media:hover .fest-day__img { transform: scale(1.05); }
.fest-day:has(.fest-day__link:hover) .fest-day__img { transform: scale(1.05); }
.fest-day__date {
	display: flex;
	align-items: baseline;
	gap: .8rem;
	margin: 0 0 .25rem;
	font-family: var(--f-nav);
	font-size: .82rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--c-brass);
}
.fest-day__date span {
	font-family: var(--f-serif);
	font-size: 1.1rem;
	letter-spacing: 0;
	color: var(--c-red);
	padding-right: .8rem;
	border-right: 1px solid var(--c-line);
}
.fest-days .fest-day__name { margin: 0 0 .8rem; font-size: clamp(2.4rem, 3vw + 1rem, 3.6rem); font-weight: 400; font-style: italic; letter-spacing: -.02em; }
.fest-day__text { color: var(--c-muted); max-width: 26rem; }
.fest-day__link {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding-bottom: .3rem;
	font-family: var(--f-nav);
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--c-ink);
	text-decoration: none;
	background: linear-gradient(var(--c-red), var(--c-red)) no-repeat left bottom / 100% 2px;
	transition: background-size .4s var(--ease), color .2s;
}
.fest-day__link svg { width: 1.1rem; height: 1.1rem; transition: transform .35s var(--ease); }
.fest-day__link:hover { color: var(--c-red); background-size: 30% 2px; }
.fest-day__link:hover svg { transform: translateX(5px); }

/* Zitat */
.fest-quote {
	position: relative;
	margin-block: 0 clamp(4rem, 8vw, 6.5rem) !important;
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 8vw, 7rem);
	background: var(--c-red);
	color: var(--c-on-dark);
	text-align: center;
	border-radius: var(--radius);
	overflow: hidden;
}
.fest-quote::before {
	content: "„";
	position: absolute;
	left: 50%; top: -2.2rem;
	transform: translateX(-50%);
	font-family: var(--f-serif);
	font-size: 12rem;
	line-height: 1;
	color: rgb(228 200 143 / .18);
}
.fest-quote blockquote { margin: 0; padding: 0; border: 0; }
.fest-quote blockquote p {
	position: relative;
	margin: 0 auto;
	max-width: 38rem;
	font-family: var(--f-serif);
	font-size: clamp(1.5rem, 1.6vw + 1rem, 2.2rem);
	font-style: italic;
	line-height: 1.3;
}
.fest-quote figcaption {
	max-width: 34rem;
	margin: 1.5rem auto 0;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(228 200 143 / .35);
	font-size: .98rem;
	color: rgb(251 246 238 / .82);
}

/* Mini-Chronik */
.fest-history { margin-block: 0 clamp(4rem, 8vw, 6.5rem) !important; }
.fest-history__line {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 0 0 2.5rem !important;
	padding: 0 !important;
	list-style: none;
}
.fest-history__line::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 7px;
	height: 2px;
	background: linear-gradient(90deg, var(--c-brass), var(--c-red));
}
.fest-history__line li { position: relative; margin: 0; padding-top: 2rem; }
.fest-history__line li::before {
	content: "";
	position: absolute;
	left: 0; top: 1px;
	width: 14px; height: 14px;
	background: var(--c-bg);
	border: 3px solid var(--c-red);
	transform: rotate(45deg);
}
.fest-history__line strong { display: block; font-family: var(--f-serif); font-size: 1.6rem; font-weight: 500; color: var(--c-red); line-height: 1.1; }
.fest-history__line span { display: block; margin-top: .35rem; font-size: .95rem; color: var(--c-muted); line-height: 1.4; }
.fest-history__more { margin: 0; }

/* Jubiläumszeitung */
.fest-paper {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
	margin-block: 0 clamp(4rem, 8vw, 6.5rem) !important;
	padding: clamp(2rem, 5vw, 3.5rem);
	background: var(--c-tint);
	border-radius: var(--radius);
}
.fest-paper__cover { display: block; justify-self: center; width: min(100%, 20rem); perspective: 1200px; }
.fest-paper__cover img {
	width: 100%;
	border-radius: 2px;
	box-shadow: 0 2px 4px rgb(0 0 0 / .1), 0 30px 50px -20px rgb(36 26 20 / .5), 12px 12px 0 -2px var(--c-brass-light);
	transform: rotate(-4deg);
	transition: transform .6s var(--ease), box-shadow .6s var(--ease);
}
.fest-paper__cover:hover img { transform: rotate(0) translateY(-6px) scale(1.02); }
.fest-paper__text h2 { margin: 0 0 1rem; }
.fest-paper__text p { color: var(--c-muted); margin-bottom: 1.75rem; }

/* Dank */
.fest-thanks {
	position: relative;
	max-width: 44rem;
	margin-inline: auto !important;
	margin-block: 0 1rem !important;
	text-align: center;
}
.fest-thanks__clef { display: block; width: 2.4rem; margin: 0 auto 1rem; color: var(--c-brass); }
.fest-thanks h2 { margin: 0 0 1rem; font-size: clamp(2.4rem, 3vw + 1rem, 3.4rem); font-style: italic; font-weight: 400; color: var(--c-red); }
.fest-thanks p { color: var(--c-muted); }
.fest-thanks__credit { margin-top: 1.5rem; font-family: var(--f-nav); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--c-brass) !important; }

/* Heller Button-Stil (auf hellem Grund) */
.tmk-cta--ghost span { background: transparent; box-shadow: inset 0 0 0 1.5px var(--c-ink); }
.tmk-cta--ghost i { background: var(--c-ink); }
.tmk-cta--ghost:hover span { background: var(--c-ink); color: #fff; }
.tmk-cta--ghost:hover i { background: var(--c-red); }

/* Einblenden beim Scrollen */
.has-js .fest-day,
.has-js .fest-history__line li,
.has-js .fest-paper__cover img { opacity: 0; transform: translateY(30px); transition: opacity .8s, transform 1s var(--ease); }
.has-js .fest-paper__cover img { transform: rotate(4deg) translateY(30px); }
.has-js .fest-history__line li { transition-delay: calc(var(--i, 0) * 110ms); }
.has-js .is-in.fest-day,
.has-js .is-in .fest-history__line li,
.has-js .fest-history.is-in .fest-history__line li { opacity: 1; transform: none; }
.has-js .fest-paper.is-in .fest-paper__cover img { opacity: 1; transform: rotate(-4deg); }
.has-js .fest-paper.is-in .fest-paper__cover:hover img { transform: rotate(0) translateY(-6px) scale(1.02); }

@media (max-width: 52em) {
	.fest-intro { grid-template-columns: minmax(0, 1fr); justify-items: start; }
	.fest-intro__num { justify-items: start; }
	.fest-day { grid-template-columns: minmax(0, 1fr); }
	.fest-day:nth-child(odd of .fest-day) .fest-day__media { order: 0; }
	.fest-history__line { grid-template-columns: minmax(0, 1fr); gap: 0; padding-left: 2rem !important; }
	.fest-history__line::before { left: 6px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; background: linear-gradient(var(--c-brass), var(--c-red)); }
	.fest-history__line li { padding: 0 0 1.5rem; }
	.fest-history__line li::before { left: -2rem; top: .45rem; }
	.fest-paper { grid-template-columns: minmax(0, 1fr); }
	.fest-facts li + li::before { display: none; }
	.fest-facts li { border-bottom: 1px solid var(--c-line); }
}

/* Gedichte */
.tmk-poem {
	padding: clamp(1.5rem, 4vw, 2.5rem) !important;
	margin-block: 2rem !important;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
}
.tmk-poem h2 { margin-top: 0; }

/* ---------- Kapellmeister: Taktstock-Leiste & Chronik ---------- */

.tmk-baton { margin-block: clamp(2rem, 5vw, 3.5rem) clamp(1rem, 3vw, 2rem); }
.tmk-baton ol {
	display: flex;
	gap: 2px;
	height: 3.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tmk-baton li { flex: var(--y) 1 0; min-width: 5px; position: relative; container-type: inline-size; }
@container (max-width: 100px) { .tmk-baton__name { display: none; } }
.tmk-baton a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: #fff;
	text-decoration: none;
	background: var(--c-brown);
	transform-origin: left;
	transition: filter .2s, transform .25s var(--ease);
}
.tmk-baton li:nth-child(odd).is-early a { background: #6a5141; }
.tmk-baton li:nth-child(even).is-early a { background: #8a6d58; }
.tmk-baton .is-major:nth-child(odd) a { background: var(--c-red); }
.tmk-baton .is-major:nth-child(even) a { background: #8c2a3a; }
.tmk-baton .is-major.is-now a {
	background: repeating-linear-gradient(-45deg, var(--c-brass) 0 8px, #c99a46 8px 16px);
	background-size: 22.6px 22.6px;
	animation: baton-now 1.2s linear infinite;
}
@keyframes baton-now { to { background-position: 22.6px 0; } }
.tmk-baton a:hover,
.tmk-baton a:focus-visible { filter: brightness(1.18); transform: scaleY(1.12); }
.tmk-baton__name {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: clip;
	padding-inline: .3rem;
}
.tmk-baton__tip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 10px);
	z-index: 5;
	padding: .45rem .7rem;
	background: var(--c-ink);
	color: #fff;
	font-size: .82rem;
	line-height: 1.3;
	white-space: nowrap;
	border-radius: var(--radius-sm);
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, 6px);
	transition: opacity .2s, transform .25s var(--ease);
}
.tmk-baton__tip small { color: var(--c-brass-light); font-size: .78rem; }
.tmk-baton a:hover .tmk-baton__tip,
.tmk-baton a:focus-visible .tmk-baton__tip { opacity: 1; transform: translate(-50%, 0); }
.tmk-baton li:first-child .tmk-baton__tip { left: 0; transform: translate(0, 6px); }
.tmk-baton li:first-child a:hover .tmk-baton__tip { transform: none; }
.tmk-baton li:last-child .tmk-baton__tip { left: auto; right: 0; transform: translate(0, 6px); }
.tmk-baton li:last-child a:hover .tmk-baton__tip { transform: none; }
.tmk-baton__scale { position: relative; height: 1.6rem; margin-top: .4rem; border-top: 1px solid var(--c-line); }
.tmk-baton__scale span {
	position: absolute;
	top: .3rem;
	transform: translateX(-50%);
	font-size: .78rem;
	font-weight: 600;
	color: var(--c-muted);
}
.tmk-baton__scale span:first-child { transform: none; }
.tmk-baton__scale span:last-child { transform: translateX(-100%); color: var(--c-brass); }
@media (max-width: 40em) { .tmk-baton__name { display: none; } .tmk-baton ol { height: 2.5rem; } }

/* Chronik: durchgehende Zeitlinie, Bild und Text wechseln die Seite */
.tmk-chronik { position: relative; margin-block: 1rem 3rem; }
.tmk-chronik::before {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	left: 50%;
	width: 2px;
	transform: translateX(-1px);
	background: linear-gradient(var(--c-line), var(--c-brass) 15%, var(--c-red) 85%, var(--c-brass));
}
.tmk-era {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: clamp(3rem, 8vw, 7rem);
	align-items: center;
	margin: 0 !important;
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
	scroll-margin-top: calc(var(--header-h) + 1rem);
}
.tmk-era::before { /* Knoten auf der Zeitlinie */
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 16px; height: 16px;
	margin: -8px 0 0 -8px;
	background: var(--c-bg);
	border: 3px solid var(--c-red);
	transform: rotate(45deg);
	z-index: 1;
}
.tmk-era > .tmk-era__img { grid-column: 1; grid-row: 1; justify-self: end; }
.tmk-era > .tmk-era__text { grid-column: 2; grid-row: 1; }
.tmk-era:nth-child(even) > .tmk-era__img { grid-column: 2; justify-self: start; }
.tmk-era:nth-child(even) > .tmk-era__text { grid-column: 1; }

.tmk-era__img { position: relative; margin: 0 !important; width: min(100%, 21rem); }
.tmk-era__img img {
	position: relative;
	z-index: 1;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 20%;
	border-radius: var(--radius);
	filter: sepia(.18) contrast(1.03);
	transition: filter .6s, transform .6s var(--ease);
}
.tmk-era__img::after { /* versetzter Messing-Rahmen */
	content: "";
	position: absolute;
	inset: 0;
	border: 2px solid var(--c-brass);
	border-radius: var(--radius);
	transform: translate(14px, 14px);
	transition: transform .6s var(--ease);
}
.tmk-era:nth-child(even) .tmk-era__img::after { transform: translate(-14px, 14px); }
.tmk-era:hover .tmk-era__img img { filter: none; transform: translate(-4px, -4px); }
.tmk-era:hover .tmk-era__img::after { transform: translate(18px, 18px); }
.tmk-era:nth-child(even):hover .tmk-era__img img { transform: translate(4px, -4px); }
.tmk-era:nth-child(even):hover .tmk-era__img::after { transform: translate(-18px, 18px); }

.tmk-era__text { margin: 0 !important; }
.tmk-era__text > * { max-width: 34rem; }
.tmk-era:nth-child(even) .tmk-era__text > * { margin-left: auto; }
.tmk-era__years {
	margin: 0 0 .25rem;
	font-family: var(--f-serif);
	font-size: clamp(2.4rem, 4vw + 1rem, 4.25rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--c-red);
	font-variant-numeric: lining-nums;
}
.tmk-era__name { margin: .4rem 0 .2rem !important; font-size: clamp(1.5rem, 1.2vw + 1rem, 2rem); }
.tmk-era__role {
	margin-bottom: 1.25rem;
	font-family: var(--f-serif);
	font-style: italic;
	color: var(--c-brass);
}
.tmk-era__text p:not([class]) { font-size: 1.02rem; }

/* Angesprungene Station kurz hervorheben */
.tmk-era.is-target::before { animation: era-ping 1.6s .5s var(--ease) 2; }
.tmk-era.is-target .tmk-era__years { animation: era-glow 2.4s .5s var(--ease); }
@keyframes era-ping {
	0%, 100% { box-shadow: 0 0 0 0 rgb(181 131 44 / .7); }
	60% { box-shadow: 0 0 0 14px rgb(181 131 44 / 0); }
}
@keyframes era-glow {
	0%, 100% { color: inherit; }
	30% { color: var(--c-brass); }
}

/* Die Anfänge: ohne Bild, Liste über die ganze Breite */
.tmk-era--early { grid-template-columns: minmax(0, 1fr); text-align: center; }
.tmk-era--early::before { top: 0; }
.tmk-era--early > .tmk-era__text { grid-column: 1 !important; text-align: center !important; background: var(--c-bg); position: relative; z-index: 1; padding-block: 1.5rem; }
.tmk-era--early .tmk-era__text > * { margin-inline: auto !important; }
.tmk-era__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: .5rem 1.5rem;
	max-width: 52rem !important;
	padding: 0 !important;
	list-style: none;
	text-align: left;
}
.tmk-era__list li { margin: 0; padding: .6rem 0 .6rem .9rem; border-left: 2px solid var(--c-line); font-size: .98rem; line-height: 1.35; }
.tmk-era__list strong { display: block; font-family: var(--f-serif); font-size: 1.15rem; color: var(--c-red); }

/* Heute */
.tmk-era--now { margin-top: 1.5rem !important; padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 3rem); background: var(--c-red); color: var(--c-on-dark); border-radius: var(--radius); }
.tmk-era--now::before { border-color: var(--c-brass-light); background: var(--c-red); }
.tmk-era--now .tmk-era__years { color: var(--c-brass-light); }
.tmk-era--now .tmk-era__name { color: #fff; }
.tmk-era--now .tmk-era__role { color: var(--c-brass-light); }
.tmk-era--now a { color: var(--c-brass-light); }
.tmk-era--now .wp-block-quote { color: #fff; border-color: var(--c-brass-light) !important; }
.tmk-era--now .wp-block-quote cite { color: rgb(255 255 255 / .7); }
.tmk-era--now .tmk-era__img::after { border-color: var(--c-brass-light); }

/* Breite Fotos (Gruppenbilder) in der Chronik: Foto in natürlichem Format, mehr Platz */
.tmk-era--wide { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.tmk-era--wide:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.tmk-era--wide > .tmk-era__img { width: min(100%, 36rem); }
.tmk-era--wide .tmk-era__img img { aspect-ratio: auto 3 / 2; height: auto; object-position: center; filter: sepia(.1) contrast(1.02); }
.tmk-era--wide.tmk-era--now { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }

/* Jahresleiste als Sprungnavigation */
.tmk-yearnav { margin-block: 0 clamp(1.5rem, 4vw, 2.5rem) !important; overflow-x: auto; scrollbar-width: thin; }
.tmk-yearnav ol {
	position: relative;
	display: flex;
	justify-content: space-between;
	min-width: 46rem;
	margin: 0 !important;
	padding: 0 0 .5rem !important;
	list-style: none;
}
.tmk-yearnav ol::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 7px;
	height: 2px;
	background: linear-gradient(90deg, var(--c-brass), var(--c-red));
}
.tmk-yearnav li { position: relative; margin: 0; }
.tmk-yearnav a {
	display: block;
	padding-top: 1.6rem;
	font-family: var(--f-serif);
	font-size: 1.05rem;
	font-weight: 500;
	color: var(--c-muted);
	text-decoration: none;
	transition: color .2s, transform .3s var(--ease);
}
.tmk-yearnav a::before {
	content: "";
	position: absolute;
	left: 50%; top: 1px;
	width: 13px; height: 13px;
	margin-left: -6.5px;
	background: var(--c-bg);
	border: 2.5px solid var(--c-red);
	transform: rotate(45deg);
	transition: background .2s, transform .3s var(--ease);
}
.tmk-yearnav li:first-child a::before { left: 0; margin-left: 0; }
.tmk-yearnav li:last-child a::before { left: auto; right: 0; margin-left: 0; }
.tmk-yearnav a:hover,
.tmk-yearnav a:focus-visible { color: var(--c-red); transform: translateY(-2px); }
.tmk-yearnav a:hover::before,
.tmk-yearnav a:focus-visible::before { background: var(--c-brass-light); transform: rotate(45deg) scale(1.25); }

/* Weiterlesen */
.tmk-more {
	margin-block: clamp(1rem, 3vw, 2rem) 1rem !important;
	padding: clamp(2rem, 5vw, 3rem);
	background: var(--c-tint);
	border-radius: var(--radius);
	text-align: center;
}
.tmk-more .fest-kicker { justify-content: center; }
.tmk-more h2 { margin: 0 0 1.5rem; }
.tmk-more__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.tmk-more .tmk-cta { font-size: .78rem; }

@media (max-width: 48em) {
	.tmk-era--wide,
	.tmk-era--wide:nth-child(even),
	.tmk-era--wide.tmk-era--now { grid-template-columns: minmax(0, 1fr); }
	.tmk-era--wide > .tmk-era__img,
	.tmk-era--wide:nth-child(even) > .tmk-era__img { width: 100%; }
}

/* Einblenden beim Scrollen (nur mit JS) */
.has-js .tmk-yearnav li { opacity: 0; transform: translateY(10px); transition: opacity .5s, transform .6s var(--ease); transition-delay: calc(var(--i, 0) * 45ms); }
.has-js .tmk-yearnav.is-in li { opacity: 1; transform: none; }
.has-js .tmk-era > .tmk-era__img { opacity: 0; transform: translateX(-40px); transition: opacity .8s, transform 1s var(--ease); }
.has-js .tmk-era:nth-child(even) > .tmk-era__img { transform: translateX(40px); }
.has-js .tmk-era > .tmk-era__text { opacity: 0; transform: translateY(30px); transition: opacity .8s .15s, transform 1s .15s var(--ease); }
.has-js .tmk-era::before { transform: rotate(45deg) scale(0); transition: transform .6s .3s var(--ease); }
.has-js .tmk-era.is-in > .tmk-era__img,
.has-js .tmk-era.is-in > .tmk-era__text { opacity: 1; transform: none; }
.has-js .tmk-era.is-in::before { transform: rotate(45deg) scale(1); }
.has-js .tmk-baton a { transform: scaleX(0); }
.has-js .tmk-baton.is-in a { transform: none; transition: transform .7s var(--ease), filter .2s; transition-delay: calc(var(--i, 0) * 70ms); }
.has-js .tmk-baton.is-in a:hover { transform: scaleY(1.12); transition-delay: 0s; }

@media (max-width: 48em) {
	.tmk-chronik::before { left: .5rem; }
	.tmk-era,
	.tmk-era:nth-child(even) { grid-template-columns: minmax(0, 1fr); padding-left: 2.25rem; row-gap: 1.75rem; }
	.tmk-baton__tip { display: none; }
	.tmk-era::before { left: .5rem; top: 3.5rem; }
	.tmk-era > .tmk-era__img,
	.tmk-era:nth-child(even) > .tmk-era__img { grid-column: 1; grid-row: 1; justify-self: start; width: min(78%, 17rem); }
	.tmk-era > .tmk-era__text,
	.tmk-era:nth-child(even) > .tmk-era__text { grid-column: 1; grid-row: 2; text-align: left; }
	.tmk-era:nth-child(even) .tmk-era__text > * { margin-left: 0; }
	.tmk-era:nth-child(even) .tmk-era__img::after { transform: translate(14px, 14px); }
	.tmk-era--early { padding-left: 2.25rem; }
	.tmk-era--early > .tmk-era__text { text-align: left !important; }
	.tmk-era--now { padding-left: 2.25rem; }
	.has-js .tmk-era:nth-child(even):not(.is-in) > .tmk-era__img { transform: translateX(-40px); }
}

/* ---------- Formular ---------- */

.tmk-form { display: grid; gap: 1.1rem; margin-block: 1.5rem 2.5rem; }
.tmk-form__row { display: grid; gap: .35rem; }
.tmk-form label { font-weight: 600; font-size: .95rem; }
.tmk-form input[type="text"],
.tmk-form input[type="email"],
.tmk-form textarea {
	width: 100%;
	padding: .8rem 1rem;
	border: 1px solid #cdbfa9;
	border-radius: var(--radius-sm);
	background: var(--c-surface);
	color: var(--c-ink);
	font: inherit;
	transition: border-color .2s, box-shadow .2s;
}
.tmk-form input:focus,
.tmk-form textarea:focus {
	outline: none;
	border-color: var(--c-red);
	box-shadow: 0 0 0 3px rgb(110 20 35 / .15);
}
.tmk-form__row--check { grid-template-columns: auto 1fr; align-items: start; gap: .7rem; }
.tmk-form__row--check input { width: 1.2rem; height: 1.2rem; margin-top: .25rem; accent-color: var(--c-red); }
.tmk-form__row--check label { font-weight: 400; color: var(--c-muted); }
.tmk-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tmk-form .tmk-btn { justify-self: start; }

.tmk-notice { padding: 1rem 1.25rem; border-radius: var(--radius-sm); margin-block: 1rem; font-weight: 600; }
.tmk-notice--ok { background: #e6f0e4; color: #24502a; }
.tmk-notice--error { background: #f6e0e0; color: #7a1c1c; }

/* ---------- Ausschuss: Leder-Karten ---------- */

.leder-card {
	--leder-bg: #3a281d;
	position: relative;
	isolation: isolate;
	color: var(--c-on-dark);
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),
		radial-gradient(120% 90% at 20% 0%, #4c3526, var(--leder-bg) 60%, #2a1c14);
	border-radius: var(--radius);
	box-shadow: 0 1px 0 rgb(255 255 255 / .06) inset, 0 18px 36px -24px rgb(20 12 8 / .8);
}
.leder-card::before { /* Ziernaht */
	content: "";
	position: absolute;
	inset: 7px;
	z-index: -1;
	border: 1.5px dashed rgb(228 200 143 / .38);
	border-radius: 2px;
	pointer-events: none;
}
.leder-card::after { /* Messingknöpfe in den Ecken */
	content: "";
	position: absolute;
	inset: 14px;
	pointer-events: none;
	background:
		radial-gradient(circle, #f3dda8 0 2px, #b5832c 2.5px 4px, transparent 4.5px) top left / 9px 9px no-repeat,
		radial-gradient(circle, #f3dda8 0 2px, #b5832c 2.5px 4px, transparent 4.5px) top right / 9px 9px no-repeat,
		radial-gradient(circle, #f3dda8 0 2px, #b5832c 2.5px 4px, transparent 4.5px) bottom left / 9px 9px no-repeat,
		radial-gradient(circle, #f3dda8 0 2px, #b5832c 2.5px 4px, transparent 4.5px) bottom right / 9px 9px no-repeat;
}
.leder-card__role {
	margin: 0 0 .35rem;
	font-family: var(--f-nav);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--c-brass-light);
}

/* Spitze: große Karten mit Foto */
.leder-board { margin-block: 0 clamp(2rem, 5vw, 3.5rem) !important; }
.leder-board__lead { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2rem); margin-bottom: clamp(2.5rem, 6vw, 4rem); }
.leder-card--lead { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); align-items: center; gap: clamp(1rem, 3vw, 1.75rem); padding: 1.6rem; }
.leder-card__photo { position: relative; }
.leder-card__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 20%;
	border-radius: 2px;
	box-shadow: 0 0 0 4px rgb(228 200 143 / .25), 0 14px 26px -14px rgb(0 0 0 / .7);
	filter: sepia(.12) contrast(1.03);
}
.leder-board .leder-card__name { margin: 0 0 .6rem; color: #fff; font-size: clamp(1.5rem, 1.4vw + 1rem, 2.1rem); font-weight: 500; line-height: 1.1; }
.leder-card__extra { margin: 0; color: rgb(246 238 223 / .78); font-size: .98rem; }

/* Gruppen mit Abzeichen */
.leder-board__group { margin-bottom: clamp(2rem, 4vw, 2.75rem); }
.leder-board .leder-board__title {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0 0 1.1rem;
	font-size: clamp(1.4rem, 1vw + 1rem, 1.75rem);
}
.leder-board__title::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--c-line), transparent); }
.leder-board__title::before { content: ""; width: 9px; height: 9px; background: var(--c-brass); transform: rotate(45deg); flex: none; }
.leder-board__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr));
	gap: .9rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.leder-card--badge { margin: 0 !important; padding: 1.35rem 1.4rem 1.3rem; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.leder-card--badge:hover { transform: translateY(-3px); box-shadow: 0 1px 0 rgb(255 255 255 / .06) inset, 0 24px 40px -22px rgb(20 12 8 / .9); }
.leder-card__names { margin: 0; display: grid; gap: .1rem; font-family: var(--f-serif); font-size: 1.2rem; line-height: 1.3; color: #fff; }
.leder-board__note { margin-top: 1rem; font-size: .9rem; color: var(--c-muted); }

/* Einblenden beim Scrollen */
.has-js .leder-board__group .leder-card--badge { opacity: 0; transform: translateY(16px); }
.has-js .leder-board__group.is-in .leder-card--badge { opacity: 1; transform: none; transition: opacity .6s, transform .7s var(--ease); }
.has-js .leder-board__group.is-in .leder-card--badge:nth-child(2) { transition-delay: .08s; }
.has-js .leder-board__group.is-in .leder-card--badge:nth-child(3) { transition-delay: .16s; }
.has-js .leder-board__group.is-in .leder-card--badge:nth-child(4) { transition-delay: .24s; }

@media (max-width: 56em) {
	.leder-board__lead { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 30em) {
	.leder-card--lead { grid-template-columns: minmax(0, 1fr); }
	.leder-card__photo { max-width: 14rem; }
}

/* ---------- Kontaktseite ---------- */

.kontakt {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 0;
	margin-block: 0 clamp(2rem, 5vw, 3.5rem) !important;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: 0 30px 60px -40px rgb(36 26 20 / .45);
}
.kontakt__visual {
	position: relative;
	min-height: 32rem;
	display: flex;
	align-items: flex-end;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--c-brown);
	isolation: isolate;
}
.kontakt__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%; height: 100%;
	object-fit: cover;
}
.kontakt__visual::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgb(20 12 8 / 0) 35%, rgb(20 12 8 / .55) 100%);
}
.kontakt__card {
	width: min(100%, 22rem);
	padding: 1.5rem 1.6rem 1.4rem;
	background: rgb(40 27 19 / .88);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: var(--c-on-dark);
	border-radius: var(--radius);
	position: relative;
}
.kontakt__card::after { /* Ziernaht */
	content: "";
	position: absolute;
	inset: 6px;
	border: 1.5px dashed rgb(228 200 143 / .3);
	border-radius: 2px;
	pointer-events: none;
}
.kontakt__card .fest-kicker { color: var(--c-brass-light); margin-bottom: .6rem; }
.kontakt__name { margin: 0 0 1rem; font-family: var(--f-serif); font-size: 1.35rem; font-weight: 500; color: #fff; line-height: 1.2; }
.kontakt__list { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .65rem; font-size: .98rem; }
.kontakt__list li { display: flex; gap: .7rem; align-items: flex-start; }
.kontakt__list .tmk-icon { color: var(--c-brass-light); margin-top: .15rem; }
.kontakt__list a { color: #fff; text-decoration: none; border-bottom: 1px solid rgb(228 200 143 / .4); }
.kontakt__list a:hover { color: var(--c-brass-light); }
.kontakt__card .social { position: relative; z-index: 1; }

.kontakt__form { padding: clamp(1.75rem, 4vw, 3.25rem); }
.kontakt__form h2 { margin: 0 0 .6rem; }
.kontakt__intro { color: var(--c-muted); margin-bottom: 1.25rem; }
.kontakt__form .tmk-form { margin: 0; }

.tmk-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.tmk-form select {
	width: 100%;
	padding: .8rem 2.5rem .8rem 1rem;
	border: 1px solid #cdbfa9;
	border-radius: var(--radius-sm);
	background: var(--c-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%236e1423' stroke-width='2'/%3E%3C/svg%3E") no-repeat right .9rem center / 1rem;
	color: var(--c-ink);
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
}
.tmk-form select:focus { outline: none; border-color: var(--c-red); box-shadow: 0 0 0 3px rgb(110 20 35 / .15); }
.tmk-form .tmk-form__submit { justify-self: start; border: 0; padding: 0; background: none; cursor: pointer; font-size: .82rem; }

@media (max-width: 56em) {
	.kontakt { grid-template-columns: minmax(0, 1fr); }
	.kontakt__visual { min-height: 24rem; }
}
@media (max-width: 34em) {
	.tmk-form__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Beitragsnavigation & Pagination ---------- */

.post-nav {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--c-line);
	font-weight: 600;
}
.post-nav a { text-decoration: none; }
.post-nav__next { margin-left: auto; text-align: right; }

.pagination .nav-links { display: flex; gap: .4rem; justify-content: center; }
.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px; height: 44px;
	border-radius: var(--radius-sm);
	text-decoration: none;
	font-weight: 600;
	color: var(--c-ink);
}
.pagination .page-numbers.current { background: var(--c-red); color: #fff; }

/* ---------- Footer ---------- */

.site-footer {
	position: relative;
	isolation: isolate;
	background: var(--c-brown);
	color: rgb(251 246 238 / .8);
	font-size: 1rem;
}
.site-footer a { color: var(--c-on-dark); text-decoration: none; }
.site-footer a:hover { color: var(--c-brass-light); }

/* Rautenband in Messing – Anklang an Stickerei und Chronik-Rauten */
.site-footer__ornament {
	height: 14px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14'%3E%3Cpath d='M14 2 19 7 14 12 9 7Z' fill='%23e4c88f'/%3E%3Cpath d='M0 7h7M21 7h7' stroke='%23b5832c' stroke-width='1'/%3E%3C/svg%3E") repeat-x center / 28px 14px,
		var(--c-brown);
	opacity: .9;
	border-top: 3px solid var(--c-red);
}

.site-footer__watermark {
	position: absolute;
	right: max(2vw, calc((100vw - var(--w-wide)) / 2 - 4rem));
	top: 3.5rem;
	z-index: -1;
	height: min(78%, 34rem);
	color: rgb(228 200 143 / .06);
	pointer-events: none;
}
.site-footer__watermark svg { height: 100%; width: auto; display: block; }

.site-footer__intro {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem 3rem;
	padding: clamp(3rem, 7vw, 5rem) 0 clamp(2rem, 5vw, 3rem);
	border-bottom: 1px solid rgb(255 255 255 / .1);
}
.site-footer__statement {
	margin: 0;
	max-width: 15ch;
	font-family: var(--f-serif);
	font-size: clamp(2rem, 3.4vw + 1rem, 3.6rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -.02em;
	color: var(--c-on-dark);
}
.site-footer__statement em { font-weight: 400; color: var(--c-brass-light); }
.site-footer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; }

.site-footer__inner {
	display: grid;
	gap: 2.5rem 3rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	padding: clamp(2.5rem, 5vw, 3.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
}
@media (min-width: 60em) { .site-footer__inner { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; } }

.brand--footer { color: var(--c-on-dark); margin-bottom: 1.1rem; }
.brand--footer:hover { color: var(--c-on-dark); }
.brand--footer .brand__clef { color: var(--c-brass-light); }
.brand--footer .brand__small { color: rgb(251 246 238 / .6); }
.site-footer__claim { max-width: 21rem; margin: 0; font-size: .97rem; line-height: 1.6; }
.site-footer__muted { color: rgb(251 246 238 / .6); }

.site-footer__heading {
	margin: .3rem 0 1.1rem;
	font-family: var(--f-nav);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--c-brass-light);
	display: flex;
	align-items: center;
	gap: .6rem;
}
.site-footer__heading::before { /* kleine Raute */
	content: "";
	width: 6px; height: 6px;
	background: var(--c-brass);
	transform: rotate(45deg);
}
.site-footer address { font-style: normal; margin-bottom: .75rem; line-height: 1.6; }

.footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.footer-links a {
	position: relative;
	display: inline-block;
	font-family: var(--f-nav);
	font-size: .98rem;
	letter-spacing: .02em;
	transition: color .2s, transform .3s var(--ease);
}
.footer-links a::before { /* Strich fährt beim Hover ein */
	content: "";
	position: absolute;
	left: -1.1rem; top: 50%;
	width: .7rem; height: 1px;
	background: var(--c-brass-light);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .3s var(--ease);
}
.footer-links a:hover { transform: translateX(.35rem); }
.footer-links a:hover::before { transform: scaleX(1); }

.footer-termine { list-style: none; margin: 0 0 1rem; padding: 0; }
.footer-termine li { padding: .45rem 0; border-bottom: 1px solid rgb(255 255 255 / .08); }
.footer-termine span { display: inline-block; min-width: 4.2rem; font-weight: 700; color: var(--c-brass-light); }
.site-footer .link-arrow { color: var(--c-brass-light); font-family: var(--f-nav); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; }

.social--footer a { background: transparent; color: var(--c-on-dark); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .25); }
.social--footer a:hover { background: var(--c-brass-light); color: var(--c-ink); box-shadow: none; }

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 2rem;
	padding: 1.4rem 0 1.8rem;
	border-top: 1px solid rgb(255 255 255 / .1);
	font-size: .85rem;
	color: rgb(251 246 238 / .55);
}
.site-footer__bottom p { margin: 0; margin-right: auto; }
.footer-menu { display: flex; flex-wrap: wrap; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.footer-menu a { color: rgb(251 246 238 / .7); }
.to-top {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem .8rem;
	font-family: var(--f-nav);
	font-size: .75rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2);
	border-radius: var(--radius-sm);
	transition: box-shadow .2s, background .2s;
}
.to-top span { display: inline-block; transition: transform .3s var(--ease); }
.to-top:hover { background: rgb(255 255 255 / .06); box-shadow: inset 0 0 0 1px var(--c-brass-light); }
.to-top:hover span { transform: translateY(-3px); }

/* ---------- Druck ---------- */

@media print {
	.site-header, .site-footer, .hero__actions, .nav-toggle, .post-nav { display: none !important; }
	body { background: #fff; }
	.page-hero, .hero { min-height: 0; padding: 1rem 0; background: none; color: #000; }
	.hero__slides, .hero__controls, .page-hero__img, .hero::after, .page-hero--image::after { display: none; }
	.hero__title, .page-hero--image .page-hero__title { color: #000; text-shadow: none; }
}

/* Footer-Links-Farbe nicht auf den Messing-Button anwenden */
.site-footer .tmk-cta,
.site-footer .tmk-cta:hover { color: var(--c-ink); }

/* ---------- Bildergalerie: Großansicht (assets/js/gallery.js) ---------- */
html.tmk-lb-open { overflow: hidden; }
html.tmk-lb-open body { padding-right: var(--sbw, 0); }

.tmk-lb {
	--fade: 1;
	--dir: 1;
	position: fixed;
	inset: 0;
	z-index: 1000;
	color: var(--c-on-dark);
	opacity: 0;
	transition: opacity .32s var(--ease);
}
.tmk-lb[hidden] { display: none; }
.tmk-lb::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 50% 40%, rgb(52 36 28 / .55), transparent 70%),
		#120c09;
	opacity: var(--fade);
}
.tmk-lb.is-open { opacity: 1; }
.tmk-lb.is-closing { opacity: 0; }

.tmk-lb__stage {
	position: absolute;
	inset: 0;
	overflow: hidden;
	touch-action: none;
	user-select: none;
	-webkit-user-select: none;
	cursor: grab;
}
.tmk-lb.is-dragging .tmk-lb__stage { cursor: grabbing; }

.tmk-lb__track {
	--dx: 0px;
	--dy: 0px;
	position: absolute;
	inset: 0;
	transform: translate3d(var(--dx), var(--dy), 0);
	transition: transform .42s cubic-bezier(.22, .8, .24, 1);
	will-change: transform;
}
.tmk-lb.is-dragging .tmk-lb__track,
.tmk-lb.no-anim .tmk-lb__track,
.tmk-lb.no-anim .tmk-lb__slide { transition: none; animation: none; }

.tmk-lb__slide {
	--pos: 0;
	position: absolute;
	inset: 0;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(3.75rem, 9vh, 5.5rem) clamp(.5rem, 6vw, 6.5rem) clamp(4.5rem, 11vh, 6.5rem);
	transform: translateX(calc(var(--pos) * (100% + 24px)));
}
.tmk-lb__slide img {
	max-width: 100%;
	max-height: 100%;
	min-width: 0;
	min-height: 0;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--radius-sm);
	box-shadow: 0 30px 80px -20px rgb(0 0 0 / .7);
	cursor: default;
	-webkit-user-drag: none;
	transform: scale(.965);
	transition: transform .5s var(--ease);
}
.tmk-lb.is-open .tmk-lb__slide img { transform: none; }
@media (hover: none) { .tmk-lb__slide img { cursor: inherit; } }

/* Weiterklicken am Desktop: weiche Überblendung mit leichtem Zug in Blätterrichtung */
.tmk-lb__slide.is-in {
	transform: none;
	z-index: 2;
	animation: tmk-lb-in .62s cubic-bezier(.25, .7, .25, 1) both;
}
.tmk-lb__slide.is-out {
	z-index: 1;
	animation: tmk-lb-out .62s cubic-bezier(.4, 0, .2, 1) both;
}
@keyframes tmk-lb-in {
	from { opacity: 0; transform: translateX(calc(var(--dir) * 28px)) scale(1.012); filter: blur(4px); }
	to { opacity: 1; transform: none; filter: none; }
}
@keyframes tmk-lb-out {
	from { opacity: 1; transform: none; }
	to { opacity: 0; transform: translateX(calc(var(--dir) * -18px)) scale(.992); filter: blur(2px); }
}

/* Bedienleiste */
.tmk-lb__top {
	position: absolute;
	inset: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem clamp(1rem, 3vw, 1.75rem);
	pointer-events: none;
}
.tmk-lb__count {
	font-family: var(--f-nav);
	font-size: .82rem;
	letter-spacing: .22em;
	color: var(--c-brass-light);
	font-variant-numeric: tabular-nums;
}
.tmk-lb__btn {
	pointer-events: auto;
	display: grid;
	place-items: center;
	width: 2.9rem;
	height: 2.9rem;
	padding: 0;
	border: 1px solid rgb(228 200 143 / .45);
	border-radius: 50%;
	background: rgb(18 12 9 / .35);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	color: var(--c-on-dark);
	cursor: pointer;
	transition: background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.tmk-lb__btn:hover { background: var(--c-brass); border-color: var(--c-brass); color: #1c130e; }
.tmk-lb__btn:focus-visible { outline: 2px solid var(--c-brass-light); outline-offset: 3px; }
.tmk-lb__nav {
	position: absolute;
	top: 50%;
	width: 3.4rem;
	height: 3.4rem;
	margin-top: -1.7rem;
}
.tmk-lb__nav--prev { left: clamp(.75rem, 2vw, 1.75rem); }
.tmk-lb__nav--next { right: clamp(.75rem, 2vw, 1.75rem); }
.tmk-lb__nav--prev:hover { transform: translateX(-3px); }
.tmk-lb__nav--next:hover { transform: translateX(3px); }
.tmk-lb.is-single .tmk-lb__nav,
.tmk-lb.is-single .tmk-lb__count { display: none; }

.tmk-lb__caption {
	position: absolute;
	inset: auto 0 0;
	margin: 0;
	padding: 1rem clamp(1rem, 6vw, 6.5rem) 1.4rem;
	text-align: center;
	font-family: var(--f-serif);
	font-style: italic;
	font-size: 1rem;
	color: rgb(251 246 238 / .85);
	pointer-events: none;
}
.tmk-lb__top,
.tmk-lb__nav,
.tmk-lb__caption { opacity: var(--fade); transition: opacity .3s var(--ease), background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.tmk-lb.is-dragging .tmk-lb__top,
.tmk-lb.is-dragging .tmk-lb__nav { transition: none; }

/* Handy: wischen statt Pfeile, Bild nutzt die volle Breite */
@media (hover: none) and (pointer: coarse) {
	.tmk-lb__nav { display: none; }
	.tmk-lb__slide { padding-inline: 0; }
	.tmk-lb__slide img { border-radius: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.tmk-lb,
	.tmk-lb__track,
	.tmk-lb__slide img { transition: none; }
	.tmk-lb__slide.is-in,
	.tmk-lb__slide.is-out { animation: none; }
}
