/*
Theme Name: Blue Horizon
Theme URI: https://bluehorizonrp.com
Author: Blue Horizon Team
Author URI: https://bluehorizonrp.com
Description: Dunkles, cleanes Theme für BLUE HORIZON REMASTERED, deutschsprachigen Five-Emergency-Server auf FiveM. Aufgebaut auf einem shadcn/ui-inspirierten Design-System: dunkle Flächen, präzise Typografie, Indigo-Akzente.
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bluehorizon
Tags: one-column, custom-logo, custom-menu, translation-ready, dark
Version: 2.24.6
*/

/* -------------------------------------------------------------------------
   1. Design Tokens (Dark Theme)
   ------------------------------------------------------------------------- */
:root {
	/* Hintergrundflächen */
	--bh-bg: #0A0A0A;
	--bh-bg-muted: #111113;
	--bh-bg-elevated: #17171A;
	--bh-bg-hover: rgba(255, 255, 255, 0.06);
	--bh-bg-active: rgba(255, 255, 255, 0.1);

	/* Text */
	--bh-ink: #FAFAFA;
	--bh-body: #D4D4D8;
	--bh-ink-muted: #A1A1AA;
	--bh-ink-dim: #71717A;

	/* Rahmen */
	--bh-border: #27272A;
	--bh-border-strong: #3F3F46;

	/* Akzente */
	--bh-indigo: #3E43F0;
	--bh-indigo-hover: #565CFF;
	--bh-indigo-tint: rgba(62, 67, 240, 0.18);
	/* RGB-Tripel der Akzentfarbe für Glows/Tints mit eigener Deckkraft.
	   Wird vom Branding (bh_branding_css) mit der gewählten Farbe überschrieben. */
	--bh-accent-rgb: 62, 67, 240;
	--bh-link: #8B93FF;
	--bh-success: #22C55E;
	--bh-success-tint: rgba(34, 197, 94, 0.14);
	--bh-warning: #F59E0B;
	--bh-warning-tint: rgba(245, 158, 11, 0.14);
	--bh-error: #F87171;
	--bh-error-tint: rgba(248, 113, 113, 0.14);

	/* Invertierte Flächen (heller Fill auf dunklem Grund, z. B. Primär-Button) */
	--bh-invert-bg: #FAFAFA;
	--bh-invert-bg-hover: #E4E4E7;
	--bh-invert-bg-active: #D4D4D8;
	--bh-invert-text: #0A0A0A;

	/* Typografie */
	--bh-font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--bh-font-mono: "Geist Mono", "SF Mono", Monaco, "Cascadia Mono", "Roboto Mono", Consolas, "Courier New", monospace;

	/* Elevation (dunkler Grund: hoehere Deckkraft, damit Schatten noch wirken) */
	--bh-shadow-1: 0px 1px 2px rgba(0, 0, 0, 0.3);
	--bh-shadow-2: 0px 2px 8px rgba(0, 0, 0, 0.4);
	--bh-shadow-3: 0px 4px 16px rgba(0, 0, 0, 0.5);
	--bh-shadow-4: 0px 8px 32px rgba(0, 0, 0, 0.6);
	--bh-shadow-btn: rgba(0, 0, 0, 0.4) 0px 1px 3px 0px, rgba(0, 0, 0, 0.3) 0px 1px 2px -1px;

	/* Radius */
	--bh-radius-sm: 4px;
	--bh-radius-md: 6px;
	--bh-radius-btn: 8px;
	--bh-radius-card: 10px;
	--bh-radius-lg: 12px;
	--bh-radius-xl: 16px;
}

/* -------------------------------------------------------------------------
   1b. Light Theme (Overrides) + Farbschema-Umschalter
   -------------------------------------------------------------------------
   Das Standard-`:root` oben ist das Dark-Theme. Wählt der Besucher „hell"
   (oder ist Hell/System serverseitig als Standard gesetzt), setzt ein
   Inline-Skript im <head> `data-theme="light"` auf <html> — noch vor dem
   ersten Paint, daher kein Flackern. Hier flippen nur die Farb-/Schatten-
   Tokens; die Struktur bleibt identisch. Komponenten mit fest verdrahteten
   „Glass"-Overlays (rgba(255,255,255,…)) auf Theme-Flächen bekommen weiter
   unten gezielte Light-Overrides — der Dark-Look bleibt unverändert. */
:root[data-theme="light"] {
	--bh-bg: #FFFFFF;
	--bh-bg-muted: #F4F4F5;
	--bh-bg-elevated: #FFFFFF;
	--bh-bg-hover: rgba(0, 0, 0, 0.04);
	--bh-bg-active: rgba(0, 0, 0, 0.07);

	--bh-ink: #09090B;
	--bh-body: #3F3F46;
	--bh-ink-muted: #52525B;
	--bh-ink-dim: #71717A;

	--bh-border: #E4E4E7;
	--bh-border-strong: #D4D4D8;

	/* Akzent bleibt gleich; nur Hover (dunkler statt heller) und Link/Tint
	   werden für hellen Grund angepasst. Branding (bh_branding_css) überschreibt
	   diese für eine eigene Akzentfarbe zusätzlich in einem [data-theme="light"]-
	   Block. */
	--bh-indigo-hover: #3237D6;
	--bh-indigo-tint: rgba(62, 67, 240, 0.10);
	--bh-link: #3E43F0;
	--bh-success: #16A34A;
	--bh-success-tint: rgba(22, 163, 74, 0.12);
	--bh-warning: #B45309;
	--bh-warning-tint: rgba(245, 158, 11, 0.14);
	--bh-error: #DC2626;
	--bh-error-tint: rgba(220, 38, 38, 0.10);

	/* Primär-Button: dunkler Fill auf hellem Grund. */
	--bh-invert-bg: #18181B;
	--bh-invert-bg-hover: #27272A;
	--bh-invert-bg-active: #3F3F46;
	--bh-invert-text: #FAFAFA;

	/* Schatten auf hellem Grund deutlich weicher. */
	--bh-shadow-1: 0px 1px 2px rgba(0, 0, 0, 0.06);
	--bh-shadow-2: 0px 2px 8px rgba(0, 0, 0, 0.08);
	--bh-shadow-3: 0px 4px 16px rgba(0, 0, 0, 0.10);
	--bh-shadow-4: 0px 8px 32px rgba(0, 0, 0, 0.12);
	--bh-shadow-btn: rgba(0, 0, 0, 0.08) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px -1px;
}

/* Header-Fläche: dunkles Glas → helles Glas. */
:root[data-theme="light"] .bh-header {
	background: rgba(255, 255, 255, 0.85);
}

/* Header-Bedienelemente (Status, Glocke, Konto, Umschalter) nutzen im Dark-
   Theme helle Glas-Overlays; auf hellem Header werden sie zu dunklem Glas. */
:root[data-theme="light"] .bh-header__status,
:root[data-theme="light"] .bh-notify__toggle,
:root[data-theme="light"] .bh-account--login,
:root[data-theme="light"] .bh-account__toggle,
:root[data-theme="light"] .bh-theme-toggle {
	background: rgba(0, 0, 0, 0.04);
	border-color: rgba(0, 0, 0, 0.12);
}

:root[data-theme="light"] .bh-notify__toggle:hover,
:root[data-theme="light"] .bh-notify.is-open .bh-notify__toggle,
:root[data-theme="light"] .bh-account--login:hover,
:root[data-theme="light"] .bh-account__toggle:hover,
:root[data-theme="light"] .bh-account.is-open .bh-account__toggle,
:root[data-theme="light"] .bh-theme-toggle:hover {
	background: rgba(0, 0, 0, 0.07);
}

:root[data-theme="light"] .bh-account--login:hover {
	color: var(--bh-ink);
}

:root[data-theme="light"] .bh-notify.is-open .bh-notify__toggle {
	border-color: rgba(0, 0, 0, 0.18);
}

/* Hero liegt transparent über der Theme-Fläche → im Light-Mode hell. Text und
   Glas-Elemente, die hart auf Weiß gesetzt waren, hier flippen. */
:root[data-theme="light"] .bh-hero__lead {
	color: var(--bh-ink-muted);
}

:root[data-theme="light"] .bh-hero h1 .bh-accent {
	background: none;
	-webkit-text-fill-color: var(--bh-indigo);
	color: var(--bh-indigo);
}

:root[data-theme="light"] .bh-connect__addr,
:root[data-theme="light"] .bh-connect__copy {
	color: var(--bh-ink-muted);
	background: rgba(0, 0, 0, 0.04);
	border-color: rgba(0, 0, 0, 0.10);
}

:root[data-theme="light"] .bh-connect__copy:hover {
	background: rgba(0, 0, 0, 0.07);
	color: var(--bh-ink);
}

:root[data-theme="light"] .bh-hero__media {
	border-color: var(--bh-border);
}

/* Ambient-Glow auf Weiß dezenter, sonst wirkt der Indigo-Nebel zu kräftig. */
:root[data-theme="light"] .bh-ambient-glow {
	background:
		radial-gradient(900px 520px at 50% 0%, rgba(var(--bh-accent-rgb), 0.14), transparent 70%),
		radial-gradient(720px 620px at 88% 34%, rgba(var(--bh-accent-rgb), 0.10), transparent 70%),
		radial-gradient(820px 520px at 8% 78%, rgba(var(--bh-accent-rgb), 0.07), transparent 70%);
}

/* „Auf-dunkel"-Varianten (Server-beitreten-Button, Status-Badge) sitzen im
   Hero/CTA und damit im Light-Mode auf hellem Grund. */
:root[data-theme="light"] .bh-btn--on-dark {
	background: rgba(0, 0, 0, 0.04);
	border-color: rgba(0, 0, 0, 0.14);
	color: var(--bh-ink);
}

:root[data-theme="light"] .bh-btn--on-dark:hover {
	background: rgba(0, 0, 0, 0.08);
	border-color: rgba(0, 0, 0, 0.22);
	color: var(--bh-ink);
}

:root[data-theme="light"] .bh-badge--on-dark {
	background: rgba(0, 0, 0, 0.04);
	border-color: rgba(0, 0, 0, 0.14);
}

/* CTA-Band: im Dark ein dunkles Elevated-Panel; auf hellem Grund braucht es
   eine abgesetzte Fläche + Rahmen, sonst „weiß auf weiß". */
:root[data-theme="light"] .bh-cta {
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
}

:root[data-theme="light"] .bh-cta p {
	color: var(--bh-ink-muted);
}

/* Footer: Text war hart auf Weiß gesetzt; Fläche leicht abgesetzt. */
:root[data-theme="light"] .bh-footer {
	background: var(--bh-bg-muted);
	color: var(--bh-ink-muted);
}

:root[data-theme="light"] .bh-footer ul a {
	color: var(--bh-ink-muted);
}

:root[data-theme="light"] .bh-footer__hint {
	color: var(--bh-ink-dim);
}

:root[data-theme="light"] .bh-footer__bottom {
	color: var(--bh-ink-dim);
	border-top-color: var(--bh-border);
}

:root[data-theme="light"] .bh-footer__bottom a {
	color: var(--bh-ink-muted);
}

/* Farbschema-Umschalter (Sonne/Mond) im Header. Gleiche Glas-Optik und Größe
   wie die Benachrichtigungs-Glocke daneben. Beide Icons liegen übereinander
   und werden beim Umschalten weich überblendet (rotieren + skalieren). */
.bh-theme-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--bh-radius-btn);
	color: var(--bh-ink);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.bh-theme-toggle:hover {
	background: rgba(255, 255, 255, 0.14);
}

.bh-theme-toggle__icon {
	position: absolute;
	inset: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.bh-theme-toggle__icon svg {
	width: 18px;
	height: 18px;
}

/* Dark-Theme (Standard): Mond sichtbar (= aktueller Zustand), Sonne versteckt. */
.bh-theme-toggle__icon--sun {
	opacity: 0;
	transform: rotate(-90deg) scale(0.4);
}

.bh-theme-toggle__icon--moon {
	opacity: 1;
	transform: rotate(0) scale(1);
}

/* Light-Theme: Sonne sichtbar, Mond versteckt. */
:root[data-theme="light"] .bh-theme-toggle__icon--sun {
	opacity: 1;
	transform: rotate(0) scale(1);
}

:root[data-theme="light"] .bh-theme-toggle__icon--moon {
	opacity: 0;
	transform: rotate(90deg) scale(0.4);
}

@media (prefers-reduced-motion: reduce) {
	.bh-theme-toggle__icon {
		transition: opacity 0.15s ease;
	}
	.bh-theme-toggle__icon--sun,
	.bh-theme-toggle__icon--moon,
	:root[data-theme="light"] .bh-theme-toggle__icon--sun,
	:root[data-theme="light"] .bh-theme-toggle__icon--moon {
		transform: none;
	}
}

/* -------------------------------------------------------------------------
   2. Reset & Basis
   ------------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

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

/* Sticky Footer: main füllt den Rest der Viewport-Höhe, damit der Footer bei
   kurzen Seiten (z. B. ein einzelner Beitrag) am unteren Rand bleibt statt
   mittig zu schweben. Bei langen Seiten wächst main normal über die
   Viewport-Höhe hinaus. */
body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
	font-family: var(--bh-font-sans);
	font-size: 16px;
	line-height: 1.5;
	font-weight: 400;
	color: var(--bh-body);
	background: var(--bh-bg);
	-webkit-font-smoothing: antialiased;
}

main {
	flex: 1 0 auto;
}

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

a {
	color: var(--bh-link);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

code,
pre,
kbd {
	font-family: var(--bh-font-mono);
	font-size: 14px;
	line-height: 1.5;
}

:focus-visible {
	outline: 2px solid var(--bh-indigo);
	outline-offset: 2px;
	border-radius: var(--bh-radius-sm);
}

::selection {
	background: var(--bh-indigo);
	color: var(--bh-ink);
}

/* Typografie-Hierarchie */
h1, h2, h3, h4, h5, h6 {
	font-weight: 600;
	color: var(--bh-ink);
	line-height: 1.2;
	overflow-wrap: break-word;
}

h1 { font-size: 48px; letter-spacing: 0; }
h2 { font-size: 32px; }
h3 { font-size: 24px; }
h4 { font-size: 20px; }
h5, h6 { font-size: 16px; }

.bh-lead {
	font-size: 18px;
	line-height: 28px;
	color: var(--bh-ink-muted);
}

.bh-small {
	font-size: 14px;
	line-height: 20px;
}

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

.skip-link {
	position: absolute;
	left: 16px;
	top: -48px;
	z-index: 200;
	padding: 8px 16px;
	background: var(--bh-invert-bg);
	color: var(--bh-invert-text);
	border-radius: var(--bh-radius-btn);
	font-size: 14px;
	font-weight: 500;
	transition: top 0.15s ease;
}

.skip-link:focus {
	top: 16px;
}

/* -------------------------------------------------------------------------
   3. Layout
   ------------------------------------------------------------------------- */
.bh-container {
	max-width: 1280px;
	margin: 0 auto;
	padding-left: 24px;
	padding-right: 24px;
}

.bh-section {
	padding: 96px 0;
}

.bh-section--muted {
	background: var(--bh-bg-muted);
	border-top: 1px solid var(--bh-border);
	border-bottom: 1px solid var(--bh-border);
}

.bh-section-head {
	max-width: 640px;
	margin: 0 auto 48px;
	text-align: center;
}

.bh-section-head--left {
	margin-left: 0;
	text-align: left;
}

.bh-eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--bh-link);
	margin-bottom: 12px;
}

.bh-section-head h2 {
	margin-bottom: 16px;
}

.bh-section-head p {
	font-size: 18px;
	line-height: 28px;
	color: var(--bh-ink-muted);
}

/* -------------------------------------------------------------------------
   4. Buttons
   ------------------------------------------------------------------------- */
.bh-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 16px;
	min-height: 36px;
	font-family: var(--bh-font-sans);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	border-radius: var(--bh-radius-btn);
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.bh-btn:hover {
	text-decoration: none;
}

/* display:inline-flex würde das hidden-Attribut sonst überstimmen */
.bh-btn[hidden] {
	display: none;
}

.bh-btn svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.bh-btn--lg {
	padding: 12px 24px;
	min-height: 44px;
	font-size: 16px;
}

/* Primär: heller, invertierter Fill (typisch für Buttons auf dunklem Grund) */
.bh-btn--primary {
	background: var(--bh-invert-bg);
	color: var(--bh-invert-text);
	box-shadow: var(--bh-shadow-btn);
}

.bh-btn--primary:hover {
	background: var(--bh-invert-bg-hover);
	color: var(--bh-invert-text);
}

.bh-btn--primary:active {
	background: var(--bh-invert-bg-active);
	box-shadow: var(--bh-shadow-2);
}

/* Akzent: Indigo für Haupt-CTAs */
.bh-btn--accent {
	background: var(--bh-indigo);
	color: var(--bh-ink);
	box-shadow: var(--bh-shadow-btn);
}

.bh-btn--accent:hover {
	background: var(--bh-indigo-hover);
	color: var(--bh-ink);
}

/* Sekundär: dezent gefüllte Flaeche */
.bh-btn--secondary {
	background: var(--bh-bg-elevated);
	color: var(--bh-ink);
	border-color: var(--bh-border);
}

.bh-btn--secondary:hover {
	background: var(--bh-bg-hover);
	border-color: var(--bh-border-strong);
	color: var(--bh-ink);
}

.bh-btn--secondary:active {
	background: var(--bh-bg-active);
}

/* Ghost */
.bh-btn--ghost {
	background: transparent;
	color: var(--bh-ink);
}

.bh-btn--ghost:hover {
	background: var(--bh-bg-hover);
	border-color: var(--bh-border);
	color: var(--bh-ink);
}

/* Variante mit leichter, transluzenter Aufhellung (z. B. auf Bild-Hintergruenden) */
.bh-btn--on-dark {
	background: rgba(255, 255, 255, 0.06);
	color: var(--bh-ink);
	border-color: rgba(255, 255, 255, 0.2);
}

.bh-btn--on-dark:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.35);
	color: var(--bh-ink);
}

/* -------------------------------------------------------------------------
   5. Badges
   ------------------------------------------------------------------------- */
.bh-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 8px;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	white-space: nowrap;
	border-radius: var(--bh-radius-md);
	border: 1px solid var(--bh-border);
	background: var(--bh-bg-elevated);
	color: var(--bh-ink);
}

.bh-badge--on-dark {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.2);
	color: var(--bh-ink);
}

.bh-badge .bh-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bh-success);
}

.bh-badge .bh-dot--offline {
	background: var(--bh-ink-dim);
}

/* „Server offline" immer in Großbuchstaben (nur der Offline-Zustand). */
.bh-badge--offline [data-bh-status-text] {
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

/* display:inline-flex würde das hidden-Attribut sonst überstimmen */
.bh-badge[hidden] {
	display: none;
}

/* -------------------------------------------------------------------------
   6. Header / Navigation
   ------------------------------------------------------------------------- */
.bh-header {
	position: sticky;
	top: 0;
	z-index: 100;
	flex-shrink: 0;
	background: rgba(10, 10, 10, 0.85);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--bh-border);
}

.bh-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 64px;
}

.bh-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--bh-ink);
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
}

.bh-brand:hover {
	text-decoration: none;
	color: var(--bh-ink);
}

.bh-brand img,
.bh-brand .custom-logo {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	border-radius: var(--bh-radius-btn);
	object-fit: cover;
}

.bh-nav {
	display: flex;
	align-items: center;
	gap: 4px;
}

.bh-nav > ul {
	display: flex;
	align-items: center;
	gap: 4px;
	list-style: none;
}

/* Nur die oberste Ebene (Home + Überbegriffe) ist uppercase/bold; die Links
   in den Mega-Panels haben ihr eigenes, ruhigeres Styling. */
.bh-nav > ul > li > a,
.bh-nav__trigger,
.bh-nav__more-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 8px 10px;
	font-family: var(--bh-font-sans);
	font-size: 13px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bh-ink);
	background: transparent;
	border: 0;
	border-radius: var(--bh-radius-md);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.bh-nav > ul > li > a:hover,
.bh-nav__trigger:hover,
.bh-nav__more-btn:hover {
	background: var(--bh-bg-hover);
}

.bh-nav > ul > li.current-menu-item > a,
.bh-nav > ul > li > a.is-active {
	color: var(--bh-link);
	background: var(--bh-indigo-tint);
}

/* Priority-Plus-Überlauf ("Mehr"-Dropdown) */
.bh-nav__more {
	position: relative;
}

.bh-nav__more[hidden] {
	display: none;
}

.bh-nav__more-btn {
	gap: 4px;
	background: transparent;
	border: 0;
	cursor: pointer;
}

.bh-nav__more-btn svg {
	width: 14px;
	height: 14px;
	transition: transform 0.15s ease;
}

.bh-nav__more.is-open .bh-nav__more-btn svg {
	transform: rotate(180deg);
}

.bh-nav__more-list {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	z-index: 120;
	display: none;
	flex-direction: column;
	gap: 2px;
	min-width: 180px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card);
	box-shadow: var(--bh-shadow-3);
}

.bh-nav__more.is-open .bh-nav__more-list {
	display: flex;
}

.bh-nav__more-list a {
	width: 100%;
}

/* -------------------------------------------------------------------------
   6b. Mega-Menü (Überbegriffe mit aufklappendem Panel)
   ------------------------------------------------------------------------- */
.bh-has-mega {
	position: relative;
}

.bh-nav__trigger svg {
	width: 14px;
	height: 14px;
	transition: transform 0.15s ease;
}

.bh-has-mega:hover .bh-nav__trigger svg,
.bh-has-mega:focus-within .bh-nav__trigger svg,
.bh-has-mega.is-open .bh-nav__trigger svg {
	transform: rotate(180deg);
}

.bh-mega {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	z-index: 120;
	min-width: 340px;
	max-width: calc(100vw - 32px);
	padding: 8px;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-lg);
	box-shadow: var(--bh-shadow-4);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

/* Rechtsbündige Panels (per JS gesetzt), damit sie nicht rechts aus dem
   Container laufen. */
.bh-mega--right {
	left: auto;
	right: 0;
}

/* Unsichtbare Brücke über die 10px-Lücke, damit der Hover beim Weg vom
   Überbegriff ins Panel nicht abreißt. */
.bh-mega::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 0;
	right: 0;
	height: 10px;
}

.bh-has-mega:hover .bh-mega,
.bh-has-mega:focus-within .bh-mega,
.bh-has-mega.is-open .bh-mega {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.bh-mega__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bh-mega__link {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 12px;
	border-radius: var(--bh-radius-md);
	text-decoration: none;
	transition: background 0.15s ease;
}

.bh-mega__link:hover {
	background: var(--bh-bg-hover);
	text-decoration: none;
}

.bh-mega__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--bh-radius-btn);
	background: var(--bh-indigo-tint);
	color: var(--bh-link);
}

.bh-mega__icon svg {
	width: 18px;
	height: 18px;
}

.bh-mega__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bh-mega__title {
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	color: var(--bh-ink);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.bh-mega__desc {
	font-size: 13px;
	line-height: 18px;
	color: var(--bh-ink-muted);
}

.bh-mega__link:hover .bh-mega__title {
	color: var(--bh-link);
}

.bh-header__actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

/* Gleiche Höhe/Rundung wie der Button daneben, damit beide als ein Set
   wirken statt als zwei unpassend unterschiedlich große Elemente. */
.bh-header__status {
	height: 36px;
	padding: 0 14px;
	font-size: 13px;
	border-radius: var(--bh-radius-btn);
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.22);
}

/* Discord-Button im Header etwas kompakter als sonst, damit er in Größe
   und Optik zum Status-Badge daneben passt (andere Discord-Buttons im
   Hero/CTA-Bereich bleiben bewusst groß und prominent). */
.bh-header__actions .bh-btn--primary {
	height: 36px;
	padding: 0 14px;
	font-size: 13px;
}

.bh-header__actions .bh-btn--primary svg {
	width: 14px;
	height: 14px;
}

/* Mobile Toggle */
.bh-nav-toggle {
	display: none;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
	cursor: pointer;
	color: var(--bh-ink);
}

.bh-nav-toggle svg {
	width: 20px;
	height: 20px;
}

.bh-nav-toggle .icon-close { display: none; }
.bh-nav-toggle[aria-expanded="true"] .icon-open { display: none; }
.bh-nav-toggle[aria-expanded="true"] .icon-close { display: block; }

/* -------------------------------------------------------------------------
   7. Hero
   ------------------------------------------------------------------------- */
/* Das Hero-Bild liegt außerhalb dieser Section (siehe front-page.php), damit
   es nicht durch overflow:hidden beschnitten wird. Kein eigenes background
   hier — die Fläche bleibt transparent, damit der .bh-ambient-glow-Layer
   dahinter (und die Seiten-Grundfarbe von body) durchscheinen. */
.bh-hero {
	position: relative;
	overflow: hidden;
	color: var(--bh-ink);
	padding: 96px 0 80px;
}

/* Ambient-Glow: ein einzelner, hoher Verlaufs-Layer hinter Hero, Bild und
   einem Teil der folgenden Section — blendet weich aus statt hart an der
   Hero-Box-Kante abzuschneiden. Liegt hinter allem (z-index:0 < Header 100). */
.bh-ambient-glow {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1600px;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(900px 520px at 50% 0%, rgba(var(--bh-accent-rgb), 0.32), transparent 70%),
		radial-gradient(720px 620px at 88% 34%, rgba(var(--bh-accent-rgb), 0.22), transparent 70%),
		radial-gradient(820px 520px at 8% 78%, rgba(var(--bh-accent-rgb), 0.16), transparent 70%);
}

.bh-hero__inner {
	position: relative;
	text-align: center;
	max-width: 800px;
	margin: 0 auto;
}

.bh-hero .bh-badge {
	margin-bottom: 24px;
}

.bh-hero h1 {
	margin-bottom: 24px;
}

.bh-hero h1 .bh-accent {
	color: transparent;
	background: linear-gradient(100deg, #7AA2FF, var(--bh-indigo));
	-webkit-background-clip: text;
	background-clip: text;
}

.bh-hero__lead {
	font-size: 18px;
	line-height: 28px;
	color: rgba(255, 255, 255, 0.72);
	max-width: 560px;
	margin: 0 auto 32px;
}

.bh-hero__actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* Connect-Box (Serveradresse + Kopieren) im Hero */
.bh-connect {
	margin-top: 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.bh-connect__addr {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.8);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--bh-radius-md);
	padding: 6px 10px;
}

.bh-connect__copy {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--bh-radius-md);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.bh-connect__copy:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

/* Copy- und Check-Icon liegen übereinander; beim Kopieren wird smooth
   überblendet (Copy schrumpft weg, Haken poppt hinein). */
.bh-connect__icon {
	position: absolute;
	inset: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.18s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.bh-connect__icon svg {
	width: 15px;
	height: 15px;
}

.bh-connect__icon--check {
	opacity: 0;
	transform: scale(0.3);
	color: var(--bh-success);
}

.bh-connect__copy.is-copied .bh-connect__icon--copy {
	opacity: 0;
	transform: scale(0.3);
}

.bh-connect__copy.is-copied .bh-connect__icon--check {
	opacity: 1;
	transform: scale(1);
}

.bh-connect__copy.is-copied {
	border-color: rgba(34, 197, 94, 0.4);
}

/* Restart-Countdown im Hero */
/* Server-Status im Header: Hover-/Fokus-Popover mit dem nächsten Neustart. */
.bh-status-wrap {
	position: relative;
	display: inline-flex;
	border-radius: var(--bh-radius-btn);
}

.bh-status-wrap:focus-visible {
	outline: 2px solid var(--bh-link);
	outline-offset: 2px;
}

.bh-status-pop {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	z-index: 200;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 12px;
	white-space: nowrap;
	text-align: center;
	font-size: 12px;
	font-weight: 500;
	color: var(--bh-ink);
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
	box-shadow: var(--bh-shadow-3);
	opacity: 0;
	transform: translate(-50%, -4px);
	pointer-events: none;
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.bh-status-wrap:hover .bh-status-pop,
.bh-status-wrap:focus-within .bh-status-pop {
	opacity: 1;
	transform: translate(-50%, 0);
	pointer-events: auto;
}

.bh-status-pop__icon {
	display: inline-flex;
	color: var(--bh-ink-dim);
}

.bh-status-pop__icon svg {
	width: 14px;
	height: 14px;
}

@media (prefers-reduced-motion: reduce) {
	.bh-status-pop {
		transition: none;
	}
}

.bh-hero__media {
	position: relative;
	max-width: 960px;
	margin: 64px auto -160px;
	border-radius: var(--bh-radius-lg);
	border: 1px solid rgba(255, 255, 255, 0.15);
	box-shadow: var(--bh-shadow-4);
	overflow: hidden;
}

.bh-hero__media img {
	width: 100%;
	object-fit: cover;
}

.bh-hero--has-media {
	padding-bottom: 0;
}

/* Kein eigenes background — bleibt transparent, damit der Ambient-Glow und
   die Vorschaubild-Überlappung nahtlos in die folgende Section übergehen. */
.bh-hero-spacer {
	height: 160px;
}

/* -------------------------------------------------------------------------
   8. Cards & Grids
   ------------------------------------------------------------------------- */
.bh-grid {
	display: grid;
	gap: 24px;
}

.bh-grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.bh-grid--2 {
	grid-template-columns: repeat(2, 1fr);
}

.bh-card {
	--bh-card-pad-y: 24px;
	--bh-card-pad-x: 32px;
	display: flex;
	flex-direction: column;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card);
	padding: var(--bh-card-pad-y) var(--bh-card-pad-x);
	box-shadow: var(--bh-shadow-1);
	transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

/* Beitragsbild oben in der Karte: hebt das Card-Padding per negativem
   Margin wieder auf, damit das Bild randlos sitzt. */
.bh-card__media {
	display: block;
	margin: calc(-1 * var(--bh-card-pad-y)) calc(-1 * var(--bh-card-pad-x)) 16px;
	border-bottom: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card) var(--bh-radius-card) 0 0;
	overflow: hidden;
}

.bh-card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}

.bh-card:hover {
	box-shadow: var(--bh-shadow-2);
	border-color: var(--bh-border-strong);
	transform: translateY(-2px);
}

.bh-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--bh-radius-btn);
	background: var(--bh-indigo-tint);
	color: var(--bh-link);
	margin-bottom: 16px;
}

.bh-card__icon svg {
	width: 20px;
	height: 20px;
}

.bh-card h3 {
	font-size: 20px;
	line-height: 24px;
	margin-bottom: 8px;
}

.bh-card h3 a {
	color: var(--bh-ink);
}

.bh-card h3 a:hover {
	color: var(--bh-link);
	text-decoration: none;
}

.bh-card p {
	font-size: 14px;
	line-height: 20px;
	color: var(--bh-ink-muted);
	margin-bottom: 16px;
}

.bh-card__link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 14px;
	font-weight: 500;
	color: var(--bh-link);
}

.bh-card__link svg {
	width: 16px;
	height: 16px;
	transition: transform 0.15s ease;
}

.bh-card__link:hover {
	text-decoration: none;
	color: var(--bh-indigo-hover);
}

.bh-card__link:hover svg {
	transform: translateX(2px);
}

/* -------------------------------------------------------------------------
   9. Vision / Feature-Split
   ------------------------------------------------------------------------- */
.bh-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
}

.bh-split__media {
	border-radius: var(--bh-radius-lg);
	border: 1px solid var(--bh-border);
	box-shadow: var(--bh-shadow-2);
	overflow: hidden;
}

.bh-split__media img {
	width: 100%;
	object-fit: cover;
}

.bh-feature-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 32px;
}

.bh-feature-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 16px;
	line-height: 24px;
	color: var(--bh-body);
}

.bh-feature-list .bh-check {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-top: 0;
	border-radius: 50%;
	background: var(--bh-success-tint);
	border: 1px solid var(--bh-success);
	color: var(--bh-success);
}

.bh-feature-list .bh-check svg {
	width: 12px;
	height: 12px;
}

/* -------------------------------------------------------------------------
   10. Galerie
   ------------------------------------------------------------------------- */
.bh-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.bh-gallery figure {
	position: relative;
	border-radius: var(--bh-radius-card);
	border: 1px solid var(--bh-border);
	overflow: hidden;
	box-shadow: var(--bh-shadow-1);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.bh-gallery figure:hover {
	box-shadow: var(--bh-shadow-3);
	transform: translateY(-2px);
}

.bh-gallery__link {
	display: block;
}

.bh-gallery img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

/* -------------------------------------------------------------------------
   11. Team
   ------------------------------------------------------------------------- */
.bh-team-card {
	align-items: center;
	text-align: center;
	padding: 32px;
}

.bh-team-card__avatar {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid var(--bh-border);
	background: var(--bh-bg-elevated);
	margin-bottom: 16px;
}

.bh-team-card__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bh-team-card__avatar--initials {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: 600;
	color: var(--bh-link);
	background: var(--bh-indigo-tint);
}

.bh-team-card h3 {
	margin-bottom: 4px;
}

.bh-team-card__role {
	display: inline-block;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: var(--bh-link);
	background: var(--bh-indigo-tint);
	border: 1px solid transparent;
	border-radius: var(--bh-radius-sm);
	padding: 4px 8px;
	margin-bottom: 12px;
}

.bh-team-card p {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   12. CTA-Band
   ------------------------------------------------------------------------- */
.bh-cta {
	position: relative;
	background: var(--bh-bg-elevated);
	color: var(--bh-ink);
	border-radius: var(--bh-radius-xl);
	padding: 80px 48px;
	text-align: center;
	overflow: hidden;
}

.bh-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(480px 240px at 50% 0%, rgba(var(--bh-accent-rgb), 0.35), transparent 70%);
	pointer-events: none;
}

.bh-cta > * {
	position: relative;
}

.bh-cta h2 {
	margin-bottom: 16px;
}

.bh-cta p {
	font-size: 18px;
	line-height: 28px;
	color: rgba(255, 255, 255, 0.72);
	max-width: 520px;
	margin: 0 auto 32px;
}

.bh-cta__actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* -------------------------------------------------------------------------
   13. Footer
   ------------------------------------------------------------------------- */
.bh-footer {
	flex-shrink: 0;
	background: var(--bh-bg-elevated);
	color: rgba(255, 255, 255, 0.72);
	margin-top: 96px;
	border-top: 1px solid var(--bh-border);
}

.bh-footer__main {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 48px;
	padding: 80px 0 48px;
}

.bh-footer__brand .bh-brand {
	margin-bottom: 16px;
}

.bh-footer__brand p {
	font-size: 14px;
	line-height: 20px;
	max-width: 320px;
}

.bh-footer h4 {
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	margin-bottom: 16px;
}

.bh-footer ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bh-footer ul a {
	font-size: 14px;
	line-height: 20px;
	color: rgba(255, 255, 255, 0.72);
}

.bh-footer ul a:hover {
	color: var(--bh-ink);
	text-decoration: none;
}

.bh-footer__hint {
	display: block;
	font-size: 12px;
	line-height: 16px;
	color: rgba(255, 255, 255, 0.4);
}

.bh-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 12px;
	line-height: 16px;
	color: rgba(255, 255, 255, 0.5);
}

.bh-footer__bottom a {
	color: rgba(255, 255, 255, 0.72);
}

.bh-footer__bottom a:hover {
	color: var(--bh-ink);
}

/* -------------------------------------------------------------------------
   14. Inhaltsseiten (z. B. Impressum) & Blog
   ------------------------------------------------------------------------- */
.bh-page-header {
	background: var(--bh-bg-muted);
	border-bottom: 1px solid var(--bh-border);
	padding: 80px 0 48px;
}

.bh-page-header h1 {
	font-size: 32px;
	line-height: 38.4px;
}

.bh-page-header p {
	margin-top: 8px;
	color: var(--bh-ink-muted);
}

.bh-content {
	max-width: 760px;
	margin: 0 auto;
	padding: 48px 24px 96px;
}

.bh-content > * + * {
	margin-top: 16px;
}

.bh-content h2 {
	font-size: 24px;
	line-height: 28.8px;
	margin-top: 48px;
}

.bh-content h3 {
	font-size: 20px;
	line-height: 24px;
	margin-top: 32px;
}

.bh-content ul,
.bh-content ol {
	padding-left: 24px;
}

.bh-content li + li {
	margin-top: 8px;
}

.bh-content blockquote {
	border-left: 3px solid var(--bh-indigo);
	background: var(--bh-bg-muted);
	border-radius: var(--bh-radius-md);
	padding: 16px 24px;
	color: var(--bh-ink-muted);
}

.bh-content pre {
	background: var(--bh-bg-elevated);
	color: var(--bh-body);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-btn);
	padding: 16px 24px;
	overflow-x: auto;
}

.bh-content img {
	border-radius: var(--bh-radius-card);
	border: 1px solid var(--bh-border);
}

.bh-content a {
	color: var(--bh-link);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Blog-Listing */
.bh-post-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 48px 24px 96px;
}

.bh-post-card h2 {
	font-size: 20px;
	line-height: 24px;
	margin-bottom: 8px;
}

.bh-post-card h2 a {
	color: var(--bh-ink);
}

.bh-post-card h2 a:hover {
	color: var(--bh-link);
	text-decoration: none;
}

.bh-card time,
.bh-post-card time {
	font-size: 12px;
	font-weight: 500;
	color: var(--bh-ink-muted);
	margin-bottom: 8px;
	display: block;
}

.bh-more-link {
	text-align: center;
	margin-top: 32px;
}

/* -------------------------------------------------------------------------
   15. Scroll-Reveal
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.bh-reveal {
		opacity: 0;
		transform: translateY(16px);
		transition: opacity 0.5s ease, transform 0.5s ease;
	}

	.bh-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
}

/* -------------------------------------------------------------------------
   16. Responsive
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.bh-grid--3 {
		grid-template-columns: repeat(2, 1fr);
	}

	.bh-gallery {
		grid-template-columns: repeat(2, 1fr);
	}

	.bh-section {
		padding: 80px 0;
	}
}

/* Die Hauptnavigation ist mit Changelog/Whitelist zu breit für eine Zeile
   neben Brand, Status-Badge und Discord-Button — daher klappt sie hier ins
   Hamburger-Menü. Discord-Button und Badge bleiben in diesem Bereich sichtbar
   (erst ab 768px ausgeblendet). */
@media (max-width: 1240px) {
	.bh-nav-toggle {
		display: inline-flex;
	}

	.bh-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--bh-bg-elevated);
		border-bottom: 1px solid var(--bh-border);
		box-shadow: var(--bh-shadow-3);
		padding: 16px 24px;
	}

	.bh-nav.is-open {
		display: block;
	}

	.bh-nav > ul {
		flex-direction: column;
		align-items: stretch;
		gap: 4px;
	}

	.bh-nav a {
		display: flex;
		min-height: 44px;
		font-size: 14px;
	}

	/* Mega-Menü im Hamburger-Modus: Überbegriff als volle Zeile, Panel klappt
	   als Akkordeon darunter auf (nur per Klick, kein Hover). */
	.bh-nav__trigger {
		width: 100%;
		justify-content: space-between;
		min-height: 44px;
	}

	.bh-mega {
		position: static;
		display: none;
		min-width: 0;
		max-width: none;
		padding: 0 0 8px 8px;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.bh-mega::before {
		display: none;
	}

	.bh-has-mega.is-open .bh-mega {
		display: block;
	}
}

@media (max-width: 768px) {
	h1 { font-size: 32px; }
	h2 { font-size: 24px; }
	h3 { font-size: 20px; }

	.bh-section {
		padding: 48px 0;
	}

	.bh-hero {
		padding-top: 48px;
	}

	.bh-hero__media {
		margin-top: 48px;
		margin-bottom: -80px;
	}

	.bh-hero-spacer {
		height: 80px;
	}

	.bh-grid--3,
	.bh-grid--2,
	.bh-gallery,
	.bh-split,
	.bh-post-list {
		grid-template-columns: 1fr;
	}

	.bh-split {
		gap: 32px;
	}

	.bh-card {
		--bh-card-pad-x: 24px;
	}

	.bh-cta {
		padding: 48px 24px;
	}

	.bh-footer__main {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 48px 0 32px;
	}

	.bh-hero__actions .bh-btn,
	.bh-cta__actions .bh-btn {
		width: 100%;
		min-height: 44px;
	}

	/* Auf echten Mobilgeräten zusätzlich Discord-Button und Status-Badge
	   ausblenden (Platz). Die Nav klappt bereits ab 1240px ins Menü. */
	.bh-header__actions .bh-btn,
	.bh-header__status,
	.bh-status-wrap {
		display: none;
	}

	/* White-Label-Absicherung: Ein langer Community-Name darf den Header
	   nicht horizontal überlaufen lassen. Das Logo bleibt fix (36px), der
	   Name darf schrumpfen und auf max. 2 Zeilen umbrechen (Ellipsis).
	   Actions/Hamburger behalten dank flex-shrink:0 ihren Platz. */
	.bh-brand {
		min-width: 0;
		flex-shrink: 1;
	}

	.bh-brand span {
		min-width: 0;
		white-space: normal;
		overflow-wrap: anywhere;
		line-height: 1.15;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	/* Login-Button auf Mobile icon-only (wie Theme-Toggle/Bell), damit links
	   genug Platz für den Brand-Namen bleibt. Das Label wird nur visuell
	   versteckt, bleibt aber als zugänglicher Name für Screenreader erhalten. */
	.bh-account--login {
		width: 36px;
		padding: 0;
		gap: 0;
		justify-content: center;
	}

	.bh-account--login .bh-account__label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
}

/* -------------------------------------------------------------------------
   17. Kommentare
   ------------------------------------------------------------------------- */
.bh-comments {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 24px 96px;
}

.bh-comments__title,
.comment-reply-title {
	font-size: 24px;
	line-height: 28.8px;
	margin-bottom: 24px;
}

.bh-comment-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 48px;
}

/* Verschachtelte Antworten: eingerückt mit Führungslinie */
.bh-comment-list .children {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 16px;
	padding-left: 24px;
	border-left: 1px solid var(--bh-border);
}

.bh-comment-list .comment-body {
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card);
	padding: 16px 20px;
}

.bh-comment-list .comment-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.bh-comment-list .comment-author {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--bh-ink);
}

.bh-comment-list .comment-author .avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
}

.bh-comment-list .comment-metadata {
	font-size: 12px;
}

.bh-comment-list .comment-metadata a {
	color: var(--bh-ink-dim);
}

.bh-comment-list .comment-content {
	font-size: 14px;
	line-height: 20px;
}

.bh-comment-list .comment-content > * + * {
	margin-top: 8px;
}

.bh-comment-list .comment-awaiting-moderation {
	display: block;
	font-size: 12px;
	color: var(--bh-ink-muted);
	margin-bottom: 8px;
}

.bh-comment-list .reply {
	margin-top: 12px;
}

/* "Antworten" als dezenter kleiner Button statt nacktem Link */
.bh-comment-list .comment-reply-link {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	color: var(--bh-ink);
	background: transparent;
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
	transition: background 0.15s ease, border-color 0.15s ease;
}

.bh-comment-list .comment-reply-link:hover {
	text-decoration: none;
	background: var(--bh-bg-hover);
	border-color: var(--bh-border-strong);
}

.comment-navigation {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 32px;
	font-size: 14px;
}

.bh-comments__closed {
	color: var(--bh-ink-muted);
	margin-bottom: 32px;
}

/* Modal: das Kommentar-Formular lebt in einem <dialog> (siehe main.js) */
.bh-modal {
	/* Der globale *-Reset nullt das margin:auto der UA-Styles, mit dem
	   Browser <dialog> zentrieren — hier wieder herstellen. */
	margin: auto;
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100vh - 64px);
	background: var(--bh-bg-elevated);
	color: var(--bh-body);
	border: 1px solid var(--bh-border-strong);
	border-radius: var(--bh-radius-xl);
	padding: 0;
	box-shadow: var(--bh-shadow-4);
}

.bh-modal::backdrop {
	background: rgba(0, 0, 0, 0.65);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}

@media (prefers-reduced-motion: no-preference) {
	.bh-modal[open] {
		animation: bh-modal-in 0.18s ease-out;
	}
}

@keyframes bh-modal-in {
	from {
		opacity: 0;
		transform: translateY(8px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.bh-modal__inner {
	position: relative;
	padding: 32px;
}

.bh-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--bh-radius-md);
	color: var(--bh-ink-muted);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.bh-modal__close:hover {
	background: var(--bh-bg-hover);
	color: var(--bh-ink);
}

.bh-modal__close svg {
	width: 18px;
	height: 18px;
}

.bh-modal__close[hidden] {
	display: none;
}

/* Formular: eigene Card-Fläche im No-JS-Fall; im Modal ist der Dialog
   selbst die Fläche, dann ohne doppelten Rahmen. */
.comment-respond {
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-lg);
	padding: 24px;
}

.bh-modal .comment-respond {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}

.comment-reply-title {
	margin-bottom: 16px;
}

.comment-reply-title small {
	font-size: 13px;
	font-weight: 400;
	margin-left: 8px;
}

.comment-reply-title small a {
	color: var(--bh-ink-muted);
}

.comment-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.comment-form p {
	margin: 0;
	grid-column: 1 / -1;
}

/* Name und E-Mail nebeneinander */
.comment-form .comment-form-author,
.comment-form .comment-form-email {
	grid-column: auto;
}

.comment-form label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--bh-ink);
	margin-bottom: 6px;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 8px 12px;
	font-family: var(--bh-font-sans);
	font-size: 14px;
	line-height: 20px;
	color: var(--bh-ink);
	background: var(--bh-bg);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
	transition: border-color 0.15s ease;
}

.comment-form textarea {
	min-height: 120px;
	resize: vertical;
}

.comment-form input:hover,
.comment-form textarea:hover {
	border-color: var(--bh-border-strong);
}

.comment-notes,
.logged-in-as {
	font-size: 13px;
	color: var(--bh-ink-muted);
}

.logged-in-as a,
.comment-notes a {
	color: var(--bh-link);
}

.comment-form .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 13px;
	color: var(--bh-ink-muted);
}

.comment-form .comment-form-cookies-consent input {
	margin-top: 2px;
}

.comment-form .comment-form-cookies-consent label {
	display: inline;
	margin: 0;
	font-weight: 400;
	color: var(--bh-ink-muted);
}

/* Honeypot: offscreen statt display:none (manche Bots überspringen
   display:none-Felder, füllen offscreen-Felder aber aus). */
.comment-form .bh-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 768px) {
	.comment-form {
		grid-template-columns: 1fr;
	}

	.comment-form .comment-form-author,
	.comment-form .comment-form-email {
		grid-column: 1 / -1;
	}

	.bh-comments__open {
		width: 100%;
	}
}

/* -------------------------------------------------------------------------
   18. Lightbox (Galerie)
   ------------------------------------------------------------------------- */
.bh-modal--lightbox {
	background: transparent;
	border: 0;
	box-shadow: none;
	width: auto;
	max-width: min(1100px, calc(100vw - 112px));
	max-height: calc(100vh - 64px);
	overflow: visible;
}

.bh-lightbox__img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	max-height: calc(100vh - 96px);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--bh-radius-lg);
	box-shadow: var(--bh-shadow-4);
}

.bh-lightbox__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	color: var(--bh-ink);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.bh-lightbox__btn:hover {
	background: rgba(255, 255, 255, 0.16);
	border-color: rgba(255, 255, 255, 0.35);
}

.bh-lightbox__btn svg {
	width: 20px;
	height: 20px;
}

.bh-lightbox__btn--prev {
	left: -56px;
}

.bh-lightbox__btn--next {
	right: -56px;
}

.bh-lightbox__btn--close {
	top: -20px;
	right: -20px;
	transform: none;
	width: 32px;
	height: 32px;
}

@media (max-width: 768px) {
	.bh-modal--lightbox {
		max-width: calc(100vw - 16px);
	}

	.bh-lightbox__btn--prev {
		left: 8px;
	}

	.bh-lightbox__btn--next {
		right: 8px;
	}

	.bh-lightbox__btn--close {
		top: 8px;
		right: 8px;
	}
}

/* -------------------------------------------------------------------------
   18b. Bewerbungssystem (Whitelist-Modul)
   ------------------------------------------------------------------------- */
/* Container ohne eigene Karte — die einzelnen Blöcke (Login, Status,
   Formular) sind je eigene Karten mit klarem Abstand dazwischen. */
.bh-app {
	max-width: 720px;
}

.bh-app__head {
	margin-bottom: 24px;
}

.bh-app__head h2 {
	font-size: 28px;
	line-height: 1.2;
}

/* Karten-Block */
.bh-app__panel {
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-lg);
	padding: 32px;
	margin-bottom: 24px;
}

.bh-app > .bh-app__panel:last-child,
.bh-app__status:last-child {
	margin-bottom: 0;
}

.bh-app__panel--center {
	text-align: center;
}

.bh-app__panel-title {
	font-size: 20px;
	font-weight: 600;
	color: var(--bh-ink);
	margin-bottom: 6px;
}

.bh-app__panel-intro {
	font-size: 14px;
	line-height: 20px;
	color: var(--bh-ink-muted);
	margin-bottom: 28px;
}

.bh-app__lead {
	font-size: 15px;
	line-height: 22px;
	color: var(--bh-body);
	margin-bottom: 24px;
}

/* Angemeldet-als-Leiste */
.bh-app__user {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px;
	padding: 12px 16px;
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card);
	font-size: 14px;
	color: var(--bh-ink-muted);
}

.bh-app__user img {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	flex-shrink: 0;
}

.bh-app__user strong {
	color: var(--bh-ink);
}

.bh-app__logout {
	margin-left: auto;
	flex-shrink: 0;
	font-size: 13px;
}

/* Status-Karte */
.bh-app__status {
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-lg);
	background: var(--bh-bg-elevated);
	padding: 32px;
	margin-bottom: 24px;
}

.bh-app__status--accepted {
	border-color: var(--bh-success);
	background: var(--bh-success-tint);
}

.bh-app__status--rejected {
	border-color: var(--bh-error);
	background: rgba(248, 113, 113, 0.08);
}

.bh-app__status-title {
	font-size: 18px;
	font-weight: 600;
	color: var(--bh-ink);
	margin: 0 0 6px;
}

.bh-app__status-sub {
	font-size: 14px;
	line-height: 20px;
	color: var(--bh-ink-muted);
	margin: 0;
}

.bh-app__meta {
	font-size: 13px;
	color: var(--bh-ink-dim);
	margin: 16px 0 0;
}

.bh-app__badge {
	display: inline-block;
	margin-bottom: 16px;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	letter-spacing: 0.02em;
	border: 1px solid var(--bh-border-strong);
	color: var(--bh-ink);
}

.bh-app__badge--pending {
	background: var(--bh-indigo-tint);
	border-color: transparent;
	color: var(--bh-link);
}

.bh-app__badge--accepted {
	background: rgba(34, 197, 94, 0.16);
	border-color: var(--bh-success);
	color: var(--bh-success);
}

.bh-app__badge--rejected {
	background: rgba(248, 113, 113, 0.14);
	border-color: var(--bh-error);
	color: var(--bh-error);
}

/* Antworten-Rückblick */
.bh-app__answers {
	margin-top: 24px;
	border-top: 1px solid var(--bh-border);
	padding-top: 20px;
}

.bh-app__answers summary {
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	color: var(--bh-link);
}

.bh-app__answers[open] summary {
	margin-bottom: 8px;
}

.bh-app__answer-q {
	margin: 16px 0 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--bh-ink);
}

.bh-app__answer-a {
	margin: 4px 0 0;
	font-size: 14px;
	line-height: 20px;
	color: var(--bh-body);
	white-space: pre-wrap;
}

.bh-app__status .bh-btn {
	margin-top: 24px;
}

/* Bestätigung/Fehler laufen seit v2.15.1 als Flash-Toasts (bh_flash_toast),
   nicht mehr als Inline-Kasten – deshalb hier keine eigenen Styles mehr. */

/* Formular */
.bh-app-form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.bh-app-form p {
	margin: 0;
}

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

.bh-app-form label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: var(--bh-ink);
}

.bh-app-form .required {
	color: var(--bh-error);
	margin-left: 2px;
}

.bh-app-form input[type="text"],
.bh-app-form textarea {
	width: 100%;
	padding: 10px 14px;
	font-family: var(--bh-font-sans);
	font-size: 14px;
	line-height: 22px;
	color: var(--bh-ink);
	background: var(--bh-bg);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
	transition: border-color 0.15s ease;
}

.bh-app-form textarea {
	min-height: 120px;
	resize: vertical;
}

.bh-app-form input:hover,
.bh-app-form textarea:hover {
	border-color: var(--bh-border-strong);
}

.bh-app-form input:focus,
.bh-app-form textarea:focus {
	border-color: var(--bh-indigo);
	outline: none;
}

.bh-app-form .bh-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.bh-app-form__hint {
	display: flex;
	gap: 4px;
	font-size: 12px;
	line-height: 16px;
	color: var(--bh-ink-dim);
}

.bh-app-form__count {
	font-variant-numeric: tabular-nums;
	color: var(--bh-ink-muted);
}

.bh-app-form__field.is-short .bh-app-form__count {
	color: var(--bh-error);
	font-weight: 600;
}

.bh-app-form__actions {
	margin-top: 4px;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.bh-app-form__draft {
	font-size: 12px;
	color: var(--bh-ink-dim);
}

.bh-app-form__draft[hidden] {
	display: none;
}

/* "Erneut bewerben": Formular öffnet erst per Klick (natives <details>) */
.bh-app__reapply {
	margin-bottom: 24px;
}

.bh-app__reapply:last-child {
	margin-bottom: 0;
}

.bh-app__reapply-toggle {
	list-style: none;
	cursor: pointer;
}

.bh-app__reapply-toggle::-webkit-details-marker {
	display: none;
}

.bh-app__reapply-toggle::marker {
	content: "";
}

.bh-app__reapply-toggle svg {
	width: 16px;
	height: 16px;
	transition: transform 0.15s ease;
}

.bh-app__reapply[open] .bh-app__reapply-toggle svg {
	transform: rotate(180deg);
}

/* Panel im geöffneten Zustand mit Abstand unter dem Button, ohne
   nachlaufenden Rand. */
.bh-app__reapply .bh-app__panel {
	margin: 20px 0 0;
}

/* Explizit ausblenden, solange nicht geöffnet: Ein <summary> mit eigenem
   display (Button-Optik) hebelt das native Verstecken von <details> aus,
   deshalb hier über das [open]-Attribut steuern. */
.bh-app__reapply:not([open]) > .bh-app__panel {
	display: none;
}

@media (max-width: 768px) {
	.bh-app__panel,
	.bh-app__status {
		padding: 24px;
	}

	.bh-app__user {
		flex-wrap: wrap;
	}
}

/* -------------------------------------------------------------------------
   19. Changelog (Modul)
   ------------------------------------------------------------------------- */
.bh-changelog-list {
	max-width: 760px;
	margin: 0 auto;
	padding: 48px 24px 96px;
}

.bh-changelog-entry {
	position: relative;
	padding: 0 0 40px 28px;
	border-left: 1px solid var(--bh-border);
}

.bh-changelog-entry:last-of-type {
	padding-bottom: 0;
}

.bh-changelog-entry::before {
	content: "";
	position: absolute;
	left: -5px;
	top: 5px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--bh-indigo);
}

.bh-changelog-entry time {
	font-size: 12px;
	font-weight: 500;
	color: var(--bh-ink-muted);
}

.bh-changelog-entry h2 {
	font-size: 20px;
	line-height: 24px;
	margin: 4px 0 12px;
}

.bh-changelog-entry h2 a {
	color: var(--bh-ink);
}

.bh-changelog-entry h2 a:hover {
	color: var(--bh-link);
	text-decoration: none;
}

.bh-changelog-body {
	font-size: 14px;
	line-height: 20px;
	color: var(--bh-body);
}

.bh-changelog-body > * + * {
	margin-top: 8px;
}

.bh-changelog-body ul,
.bh-changelog-body ol {
	padding-left: 20px;
}

.bh-changelog-list .pagination,
.bh-changelog-list .nav-links {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 32px;
	font-size: 14px;
}

/* -------------------------------------------------------------------------
   20. Benachrichtigungen (Glocke, Center, Toasts)
   ------------------------------------------------------------------------- */
.bh-notify {
	position: relative;
	display: inline-flex;
}

/* display:inline-flex würde das hidden-Attribut sonst überstimmen (Glocke
   ist bis zum JS-Init versteckt — Progressive Enhancement). */
.bh-notify[hidden] {
	display: none;
}

.bh-notify__toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--bh-radius-btn);
	color: var(--bh-ink);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.bh-notify__toggle:hover {
	background: rgba(255, 255, 255, 0.14);
}

.bh-notify__toggle svg {
	width: 18px;
	height: 18px;
}

.bh-notify.is-open .bh-notify__toggle {
	background: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.32);
}

.bh-notify__badge {
	position: absolute;
	top: -5px;
	right: -5px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	background: var(--bh-indigo);
	border: 2px solid var(--bh-bg);
	border-radius: 999px;
}

.bh-notify__badge[hidden] {
	display: none;
}

/* Center-Panel */
.bh-notify__panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	width: 360px;
	max-width: calc(100vw - 32px);
	max-height: min(70vh, 520px);
	display: flex;
	flex-direction: column;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border-strong);
	border-radius: var(--bh-radius-lg);
	box-shadow: var(--bh-shadow-4);
	z-index: 200;
	overflow: hidden;
}

.bh-notify__panel[hidden] {
	display: none;
}

@media (prefers-reduced-motion: no-preference) {
	.bh-notify.is-open .bh-notify__panel {
		animation: bh-notify-in 0.16s ease-out;
	}
}

@keyframes bh-notify-in {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.bh-notify__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--bh-border);
	flex-shrink: 0;
}

.bh-notify__title {
	font-weight: 600;
	font-size: 14px;
	color: var(--bh-ink);
}

.bh-notify__readall {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	font-size: 12px;
	color: var(--bh-link);
	cursor: pointer;
}

.bh-notify__readall:hover {
	text-decoration: underline;
}

.bh-notify__list {
	list-style: none;
	margin: 0;
	padding: 6px;
	overflow-y: auto;
	flex: 1 1 auto;
}

.bh-notify__item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 10px;
	border-radius: var(--bh-radius-md);
	color: var(--bh-body);
	text-decoration: none;
}

a.bh-notify__item:hover {
	background: var(--bh-bg-hover);
	text-decoration: none;
}

.bh-notify__item.is-unread {
	background: rgba(var(--bh-accent-rgb), 0.06);
}

/* Ungelesen-Punkt am rechten Rand (letztes Flex-Kind). */
.bh-notify__item.is-unread::after {
	content: "";
	flex-shrink: 0;
	align-self: center;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bh-indigo);
}

.bh-notify__icon {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--bh-radius-md);
	background: var(--bh-indigo-tint);
	color: var(--bh-link);
}

.bh-notify__icon svg {
	width: 17px;
	height: 17px;
}

.bh-notify__item.is-important .bh-notify__icon {
	background: var(--bh-warning-tint);
	color: var(--bh-warning);
}

.bh-notify__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1 1 auto;
}

.bh-notify__item-title {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--bh-body);
}

.bh-notify__item.is-unread .bh-notify__item-title {
	color: var(--bh-ink);
}

.bh-notify__excerpt {
	font-size: 12px;
	line-height: 1.4;
	color: var(--bh-ink-muted);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bh-notify__time {
	margin-top: 2px;
	font-size: 11px;
	color: var(--bh-ink-dim);
}

.bh-notify__empty {
	padding: 32px 16px;
	text-align: center;
	font-size: 13px;
	color: var(--bh-ink-muted);
}

.bh-notify__empty[hidden] {
	display: none;
}

/* Toasts */
.bh-toast-region {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 360px;
	max-width: calc(100vw - 32px);
	pointer-events: none;
}

.bh-toast {
	pointer-events: auto;
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 14px;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border-strong);
	border-left: 3px solid var(--bh-indigo);
	border-radius: var(--bh-radius-lg);
	box-shadow: var(--bh-shadow-4);
	color: var(--bh-body);
	text-decoration: none;
	opacity: 0;
	transform: translateX(16px) translateY(4px);
	transition: opacity 0.22s ease, transform 0.22s ease;
}

a.bh-toast:hover {
	text-decoration: none;
}

.bh-toast.is-in {
	opacity: 1;
	transform: none;
}

.bh-toast.is-out {
	opacity: 0;
	transform: translateX(16px);
}

.bh-toast--success {
	border-left-color: var(--bh-success);
}

.bh-toast--warning {
	border-left-color: var(--bh-warning);
}

.bh-toast--danger {
	border-left-color: var(--bh-error);
}

.bh-toast--announcement {
	border-left-color: var(--bh-indigo);
}

.bh-toast__icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--bh-radius-md);
	background: var(--bh-indigo-tint);
	color: var(--bh-link);
}

.bh-toast--success .bh-toast__icon {
	background: var(--bh-success-tint);
	color: var(--bh-success);
}

.bh-toast--warning .bh-toast__icon {
	background: var(--bh-warning-tint);
	color: var(--bh-warning);
}

.bh-toast--danger .bh-toast__icon {
	background: var(--bh-error-tint);
	color: var(--bh-error);
}

.bh-toast__icon svg {
	width: 17px;
	height: 17px;
}

.bh-toast__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1 1 auto;
	padding-top: 2px;
}

.bh-toast__title {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--bh-ink);
}

.bh-toast__message {
	font-size: 12px;
	line-height: 1.4;
	color: var(--bh-ink-muted);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bh-toast__close {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	margin: -4px -4px 0 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	border-radius: var(--bh-radius-sm);
	color: var(--bh-ink-dim);
	cursor: pointer;
}

.bh-toast__close:hover {
	background: var(--bh-bg-hover);
	color: var(--bh-ink);
}

.bh-toast__close svg {
	width: 14px;
	height: 14px;
}

/* Auf schmalen Screens Panel und Toasts an die Viewport-Ränder heften. */
@media (max-width: 480px) {
	/* Auf sehr schmalen Displays die Brand-Schrift leicht reduzieren, damit
	   die meisten Namen einzeilig bleiben (Umbruch/Ellipsis greift erst bei
	   wirklich langen Namen). */
	.bh-brand span {
		font-size: 15px;
	}

	.bh-notify__panel {
		position: fixed;
		top: 64px;
		right: 8px;
		left: 8px;
		width: auto;
		max-width: none;
	}

	.bh-toast-region {
		right: 8px;
		left: 8px;
		bottom: 8px;
		width: auto;
		max-width: none;
	}
}

/* -------------------------------------------------------------------------
   21. Discord-Konto (Header) + Rollen + Zugriffssperre
   ------------------------------------------------------------------------- */
.bh-account {
	position: relative;
	display: inline-flex;
}

.bh-account--login {
	align-items: center;
	gap: 6px;
	height: 36px;
	padding: 0 12px;
	font-size: 13px;
	font-weight: 500;
	color: var(--bh-ink);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--bh-radius-btn);
}

.bh-account--login:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	text-decoration: none;
}

.bh-account--login svg {
	width: 16px;
	height: 16px;
}

.bh-account__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 36px;
	padding: 0 10px;
	font: inherit;
	font-size: 13px;
	color: var(--bh-ink);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--bh-radius-btn);
	cursor: pointer;
	transition: background 0.15s ease;
}

.bh-account__toggle:hover,
.bh-account.is-open .bh-account__toggle {
	background: rgba(255, 255, 255, 0.14);
}

.bh-account__toggle svg {
	width: 14px;
	height: 14px;
	opacity: 0.7;
}

.bh-account__avatar {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	flex-shrink: 0;
}

.bh-account__avatar--fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--bh-indigo-tint);
	color: var(--bh-link);
	font-size: 12px;
	font-weight: 600;
}

.bh-account__name {
	max-width: 130px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
}

.bh-account__menu {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	width: 240px;
	max-width: calc(100vw - 32px);
	padding: 14px;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border-strong);
	border-radius: var(--bh-radius-lg);
	box-shadow: var(--bh-shadow-4);
	z-index: 200;
}

.bh-account__menu[hidden] {
	display: none;
}

.bh-account__menu-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--bh-ink);
	margin-bottom: 10px;
}

.bh-account__roles {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
}

.bh-account__role {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	line-height: 1;
	padding: 4px 8px;
	border-radius: 999px;
	color: var(--bh-body);
	background: var(--bh-bg-hover);
	border: 1px solid var(--bh-border);
}

.bh-account__role::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bh-role-color, var(--bh-ink-dim));
}

.bh-account__logout {
	display: block;
	padding-top: 10px;
	border-top: 1px solid var(--bh-border);
	font-size: 13px;
	color: var(--bh-link);
}

/* Discord-Identität / Login-Hinweis im Kommentarbereich */
.bh-comment-identity {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	padding: 8px 12px;
	font-size: 13px;
	color: var(--bh-ink-muted);
	background: var(--bh-bg-hover);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
}

.bh-comment-identity svg {
	width: 16px;
	height: 16px;
	color: var(--bh-link);
	flex-shrink: 0;
}

.bh-comment-identity strong {
	color: var(--bh-ink);
}

.bh-comment-login {
	margin-bottom: 12px;
	font-size: 13px;
}

.bh-comment-login a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.bh-comment-login svg {
	width: 16px;
	height: 16px;
}

/* Zugriffssperre (rollenbeschränkte Seite) */
.bh-gate {
	max-width: 560px;
	margin: 48px auto;
	padding: 40px 24px;
	text-align: center;
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-lg);
}

.bh-gate__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 16px;
	border-radius: 50%;
	background: var(--bh-bg-hover);
	color: var(--bh-ink-muted);
}

.bh-gate__icon svg {
	width: 22px;
	height: 22px;
}

.bh-gate h2 {
	margin-bottom: 8px;
}

.bh-gate p {
	margin-bottom: 20px;
	color: var(--bh-ink-muted);
}

.bh-gate .bh-btn svg {
	width: 18px;
	height: 18px;
}

/* Ab hier wird es im Header eng: Kontoname ausblenden (Avatar bleibt). */
@media (max-width: 1100px) {
	.bh-account__name {
		display: none;
	}
}

@media (max-width: 480px) {
	.bh-account__menu {
		position: fixed;
		top: 64px;
		right: 8px;
		left: auto;
	}
}

/* -------------------------------------------------------------------------
   22. Regelwerk & Downloads (Module)
   ------------------------------------------------------------------------- */
.bh-rules {
	max-width: 820px;
}

.bh-rules__search {
	position: relative;
	display: flex;
	align-items: center;
	margin-bottom: 32px;
}

.bh-rules__search svg {
	position: absolute;
	left: 14px;
	width: 18px;
	height: 18px;
	color: var(--bh-ink-dim);
	pointer-events: none;
}

.bh-rules__search input {
	width: 100%;
	padding: 12px 14px 12px 44px;
	font: inherit;
	font-size: 15px;
	color: var(--bh-ink);
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-btn);
}

.bh-rules__search input:focus {
	outline: none;
	border-color: var(--bh-indigo);
}

.bh-rules__noresult {
	padding: 8px 0;
	color: var(--bh-ink-muted);
}

.bh-rules__cat {
	margin-bottom: 40px;
}

.bh-rules__cat[hidden] {
	display: none;
}

.bh-rules__cat-title {
	font-size: 20px;
	margin-bottom: 6px;
}

.bh-rules__cat-desc {
	margin-bottom: 16px;
	color: var(--bh-ink-muted);
}

.bh-rules__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.bh-rule {
	padding: 18px 20px;
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card);
	scroll-margin-top: 88px;
}

.bh-rule[hidden] {
	display: none;
}

.bh-rule:target {
	border-color: var(--bh-indigo);
	box-shadow: 0 0 0 1px var(--bh-indigo);
}

.bh-rule__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.bh-rule__title {
	margin: 0;
	font-size: 16px;
}

.bh-rule__copy {
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
	color: var(--bh-ink-dim);
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.bh-rule__copy:hover {
	color: var(--bh-ink);
	border-color: var(--bh-border-strong);
}

.bh-rule__copy svg {
	width: 15px;
	height: 15px;
}

.bh-rule__body {
	margin-top: 8px;
	font-size: 15px;
	color: var(--bh-body);
}

.bh-rule__body > * + * {
	margin-top: 8px;
}

.bh-rule__body ul,
.bh-rule__body ol {
	padding-left: 20px;
}

/* Downloads */
.bh-downloads__cat {
	margin-bottom: 40px;
}

.bh-downloads__cat-title {
	font-size: 20px;
	margin-bottom: 16px;
}

.bh-downloads__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.bh-download {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px;
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-card);
}

.bh-download__icon {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--bh-radius-md);
	background: var(--bh-indigo-tint);
	color: var(--bh-link);
}

.bh-download__icon svg {
	width: 20px;
	height: 20px;
}

.bh-download__body {
	flex: 1 1 auto;
	min-width: 0;
}

.bh-download__title {
	margin: 0 0 4px;
	font-size: 16px;
}

.bh-download__desc {
	margin-bottom: 10px;
	font-size: 14px;
	color: var(--bh-ink-muted);
}

.bh-download__file {
	display: flex;
	gap: 8px;
	font-size: 12px;
	color: var(--bh-ink-dim);
}

.bh-download__type {
	font-family: var(--bh-font-mono);
	text-transform: uppercase;
	padding: 1px 6px;
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-sm);
}

.bh-download__btn {
	flex-shrink: 0;
	align-self: center;
}

.bh-download__btn svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 768px) {
	.bh-downloads__list {
		grid-template-columns: 1fr;
	}

	.bh-download {
		flex-wrap: wrap;
	}

	.bh-download__btn {
		width: 100%;
		justify-content: center;
	}
}

/* -------------------------------------------------------------------------
   23. Cookie-/Consent-Banner
   ------------------------------------------------------------------------- */
/* Freischwebende Karte mit Abstand zu allen Rändern — klebt bewusst nicht am
   unteren Seitenrand. left/right + max-width + margin:auto zentriert sie. */
.bh-consent {
	position: fixed;
	left: 24px;
	right: 24px;
	bottom: 24px;
	z-index: 1100;
	max-width: 1280px;
	margin: 0 auto;
	background: var(--bh-bg-elevated);
	border: 1px solid var(--bh-border-strong);
	border-radius: var(--bh-radius-xl);
	box-shadow: var(--bh-shadow-4);
}

.bh-consent[hidden] {
	display: none;
}

@media (prefers-reduced-motion: no-preference) {
	.bh-consent:not([hidden]) {
		animation: bh-consent-in 0.2s ease-out;
	}
}

/* +24px, damit die Karte trotz Abstand vollständig unter den Rand fährt. */
@keyframes bh-consent-in {
	from {
		opacity: 0;
		transform: translateY(calc(100% + 24px));
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.bh-consent__inner {
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.bh-consent__title {
	margin-bottom: 6px;
	font-size: 16px;
}

.bh-consent__text {
	max-width: 780px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--bh-ink-muted);
}

.bh-consent__details {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-height: 34vh;
	overflow-y: auto;
	padding: 16px;
	background: var(--bh-bg-muted);
	border: 1px solid var(--bh-border);
	border-radius: var(--bh-radius-md);
}

.bh-consent__details[hidden] {
	display: none;
}

.bh-consent__cat-head {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--bh-ink);
	cursor: pointer;
}

.bh-consent__cat-head input[disabled] {
	cursor: default;
}

.bh-consent__cat-always {
	padding: 2px 8px;
	font-size: 11px;
	font-weight: 500;
	color: var(--bh-ink-dim);
	border: 1px solid var(--bh-border);
	border-radius: 999px;
}

.bh-consent__cat-desc {
	margin: 4px 0 0 24px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--bh-ink-muted);
}

.bh-consent__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.bh-consent__link {
	padding: 0;
	background: none;
	border: 0;
	font: inherit;
	font-size: 13px;
	color: var(--bh-link);
	text-decoration: underline;
	cursor: pointer;
}

.bh-consent__buttons {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

/* Ablehnen muss genauso leicht sein wie Annehmen: gleiche Größe, gleiche Ebene. */
.bh-consent__buttons .bh-btn {
	min-width: 150px;
	justify-content: center;
}

/* Footer-Link „Cookie-Einstellungen" (Button, sieht aus wie die Links daneben). */
.bh-consent-open {
	padding: 0;
	background: none;
	border: 0;
	font: inherit;
	color: var(--bh-link);
	cursor: pointer;
}

.bh-consent-open:hover {
	text-decoration: underline;
}

/* Toasts nicht unter dem Banner verstecken. */
body.bh-consent-visible .bh-toast-region {
	bottom: 200px;
}

@media (max-width: 640px) {
	.bh-consent__inner {
		padding: 16px;
	}

	.bh-consent__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.bh-consent__link {
		align-self: flex-start;
	}

	.bh-consent__buttons {
		flex-direction: column;
	}

	.bh-consent__buttons .bh-btn {
		width: 100%;
	}
}
