/* theme-base: nur Struktur und Barrierefreiheit. Keine Farben/Schriften – Child-Theme setzt die Token. */
:root {
	--tb-gutter: clamp(1rem, 4vw, 2rem);
	--tb-content: 760px;
	--tb-wide: 1200px;
	--tb-header-height: 72px;
	--tb-bg: Canvas;
	--tb-fg: CanvasText;
	--tb-focus: Highlight;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--tb-bg); color: var(--tb-fg); }
img, video, svg { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--tb-focus); outline-offset: 2px; }
.tb-skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: .75rem 1rem; background: var(--tb-bg); color: var(--tb-fg); }
.tb-skip-link:focus { left: 1rem; top: 1rem; }
.screen-reader-text { clip: rect(1px,1px,1px,1px); position: absolute !important; height: 1px; width: 1px; overflow: hidden; }

.tb-header__inner, .tb-footer__inner, .tb-archive { max-width: var(--tb-wide); margin-inline: auto; padding-inline: var(--tb-gutter); }
.tb-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: var(--tb-header-height); }
.tb-brand { flex: 0 0 auto; }
.tb-brand img { display: block; max-height: calc(var(--tb-header-height) - 24px); width: auto; }
.tb-nav { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.tb-menu, .tb-langs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.tb-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.tb-nav-toggle { display: none; margin-left: auto; }
@media (max-width: 960px) {
	.tb-nav-toggle { display: inline-flex; }
	.tb-nav { display: none; position: absolute; left: 0; right: 0; top: var(--tb-header-height); flex-direction: column; align-items: stretch; padding: var(--tb-gutter); background: var(--tb-bg); }
	.tb-nav-open .tb-nav { display: flex; }
	.tb-menu { flex-direction: column; }
	.tb-header { position: relative; }
}
@media (min-width: 961px) {
	.tb-menu > li { position: relative; }
	.tb-menu > li > .sub-menu { display: none; position: absolute; left: 0; top: 100%; min-width: 14rem; z-index: 50; background: var(--tb-bg); }
	.tb-menu > li:hover > .sub-menu, .tb-menu > li:focus-within > .sub-menu { display: block; }
}

/* Inhalt: Blöcke tragen ihre Breite selbst (constrained layout aus theme.json) */
.tb-entry__header { max-width: var(--tb-content); margin-inline: auto; padding-inline: var(--tb-gutter); }
.tb-entry__content > * { max-width: var(--tb-content); margin-inline: auto; padding-inline: var(--tb-gutter); }
.tb-entry__content > .alignwide { max-width: var(--tb-wide); }
.tb-entry__content > .alignfull { max-width: none; padding-inline: 0; }
.tb-cards { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.tb-footer__inner { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; }
